summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorgjb <gjb@FreeBSD.org>2016-04-11 15:24:59 +0000
committergjb <gjb@FreeBSD.org>2016-04-11 15:24:59 +0000
commite0e3598ce13850597a66fd28d102b36881f7d610 (patch)
treef5194d1ce3fa45b67cf63080fc519fec83abc57a
parentcbc3bd9845ba5fd58e8132f9565cfbc41433938d (diff)
parent26836fccd261358467b3d92e77ff4695af286de9 (diff)
downloadFreeBSD-src-e0e3598ce13850597a66fd28d102b36881f7d610.zip
FreeBSD-src-e0e3598ce13850597a66fd28d102b36881f7d610.tar.gz
MFH
Sponsored by: The FreeBSD Foundation
-rw-r--r--bin/csh/config_p.h4
-rw-r--r--bin/sh/miscbltin.c2
-rw-r--r--bin/sh/parser.c2
-rw-r--r--bin/sh/tests/builtins/getopts1.08
-rw-r--r--bin/sh/tests/builtins/getopts2.02
-rw-r--r--bin/sh/tests/builtins/getopts9.04
-rw-r--r--cddl/contrib/opensolaris/cmd/dtrace/dtrace.c71
-rw-r--r--cddl/contrib/opensolaris/cmd/zdb/zdb.c5
-rw-r--r--cddl/contrib/opensolaris/cmd/zpool/zpool_main.c156
-rw-r--r--cddl/contrib/opensolaris/cmd/zpool/zpool_vdev.c4
-rw-r--r--cddl/contrib/opensolaris/lib/libzfs/common/libzfs_import.c16
-rw-r--r--cddl/contrib/opensolaris/lib/libzfs/common/libzfs_pool.c16
-rw-r--r--contrib/netbsd-tests/lib/libc/sys/t_gettimeofday.c2
-rw-r--r--lib/libc/aarch64/gen/Makefile.inc2
-rw-r--r--lib/libc/aarch64/sys/Makefile.inc2
-rw-r--r--lib/libc/db/hash/hash.c5
-rw-r--r--lib/libc/db/hash/hash_buf.c4
-rw-r--r--lib/libc/gen/err.c8
-rw-r--r--lib/libc/gen/getmntinfo.c2
-rw-r--r--lib/libc/gen/opendir.c2
-rw-r--r--lib/libc/gen/semctl.c6
-rw-r--r--lib/libc/gen/tls.c4
-rw-r--r--lib/libc/include/compat.h2
-rw-r--r--lib/libc/locale/xlocale_private.h11
-rw-r--r--lib/libc/net/base64.c2
-rw-r--r--lib/libc/net/getifaddrs.c3
-rw-r--r--lib/libc/net/getservent.c4
-rw-r--r--lib/libc/net/rcmd.c2
-rw-r--r--lib/libc/posix1e/acl_support_nfs4.c2
-rw-r--r--lib/libc/resolv/mtctxres.c11
-rw-r--r--lib/libc/resolv/res_init.c4
-rw-r--r--lib/libc/resolv/res_mkupdate.c4
-rw-r--r--lib/libc/rpc/auth_none.c6
-rw-r--r--lib/libc/rpc/clnt_perror.c8
-rw-r--r--lib/libc/rpc/mt_misc.c2
-rw-r--r--lib/libc/rpc/rpcdname.c10
-rw-r--r--lib/libc/softfloat/timesoftfloat.c6
-rw-r--r--lib/libc/uuid/uuid_to_string.c2
-rw-r--r--lib/libc/xdr/xdr_mem.c2
-rw-r--r--lib/libedit/filecomplete.c4
-rw-r--r--lib/libedit/vi.c4
-rw-r--r--lib/libfetch/ftp.c2
-rw-r--r--lib/libpam/modules/pam_krb5/pam_krb5.c2
-rw-r--r--lib/libpam/modules/pam_login_access/login_access.c4
-rw-r--r--lib/libthr/thread/thr_affinity.c6
-rw-r--r--lib/libthr/thread/thr_attr.c5
-rw-r--r--lib/libthr/thread/thr_autoinit.c5
-rw-r--r--lib/libthr/thread/thr_barrier.c8
-rw-r--r--lib/libthr/thread/thr_barrierattr.c5
-rw-r--r--lib/libthr/thread/thr_cancel.c6
-rw-r--r--lib/libthr/thread/thr_clean.c5
-rw-r--r--lib/libthr/thread/thr_concurrency.c5
-rw-r--r--lib/libthr/thread/thr_cond.c8
-rw-r--r--lib/libthr/thread/thr_condattr.c5
-rw-r--r--lib/libthr/thread/thr_create.c5
-rw-r--r--lib/libthr/thread/thr_detach.c6
-rw-r--r--lib/libthr/thread/thr_equal.c6
-rw-r--r--lib/libthr/thread/thr_event.c5
-rw-r--r--lib/libthr/thread/thr_exit.c5
-rw-r--r--lib/libthr/thread/thr_fork.c5
-rw-r--r--lib/libthr/thread/thr_getcpuclockid.c5
-rw-r--r--lib/libthr/thread/thr_getprio.c6
-rw-r--r--lib/libthr/thread/thr_getschedparam.c5
-rw-r--r--lib/libthr/thread/thr_getthreadid_np.c5
-rw-r--r--lib/libthr/thread/thr_info.c5
-rw-r--r--lib/libthr/thread/thr_init.c5
-rw-r--r--lib/libthr/thread/thr_join.c6
-rw-r--r--lib/libthr/thread/thr_kern.c5
-rw-r--r--lib/libthr/thread/thr_kill.c5
-rw-r--r--lib/libthr/thread/thr_list.c5
-rw-r--r--lib/libthr/thread/thr_main_np.c9
-rw-r--r--lib/libthr/thread/thr_multi_np.c7
-rw-r--r--lib/libthr/thread/thr_mutex.c8
-rw-r--r--lib/libthr/thread/thr_mutexattr.c5
-rw-r--r--lib/libthr/thread/thr_once.c6
-rw-r--r--lib/libthr/thread/thr_printf.c5
-rw-r--r--lib/libthr/thread/thr_pspinlock.c8
-rw-r--r--lib/libthr/thread/thr_resume_np.c5
-rw-r--r--lib/libthr/thread/thr_rtld.c6
-rw-r--r--lib/libthr/thread/thr_rwlock.c8
-rw-r--r--lib/libthr/thread/thr_rwlockattr.c5
-rw-r--r--lib/libthr/thread/thr_self.c5
-rw-r--r--lib/libthr/thread/thr_sem.c5
-rw-r--r--lib/libthr/thread/thr_setprio.c5
-rw-r--r--lib/libthr/thread/thr_setschedparam.c5
-rw-r--r--lib/libthr/thread/thr_sig.c5
-rw-r--r--lib/libthr/thread/thr_single_np.c8
-rw-r--r--lib/libthr/thread/thr_sleepq.c5
-rw-r--r--lib/libthr/thread/thr_spec.c5
-rw-r--r--lib/libthr/thread/thr_spinlock.c6
-rw-r--r--lib/libthr/thread/thr_stack.c5
-rw-r--r--lib/libthr/thread/thr_suspend_np.c5
-rw-r--r--lib/libthr/thread/thr_switch_np.c5
-rw-r--r--lib/libthr/thread/thr_symbols.c5
-rw-r--r--lib/libthr/thread/thr_umtx.c6
-rw-r--r--lib/libthr/thread/thr_yield.c5
-rw-r--r--lib/libusb/libusb20.c4
-rw-r--r--lib/libusbhid/descr.c2
-rw-r--r--lib/libusbhid/usage.c6
-rw-r--r--sbin/fsck_msdosfs/dir.c10
-rw-r--r--sbin/geom/class/eli/geli.816
-rw-r--r--sbin/geom/class/eli/geom_eli.c50
-rw-r--r--sbin/geom/class/part/geom_part.c20
-rw-r--r--sbin/reboot/nextboot.89
-rw-r--r--sbin/reboot/nextboot.sh26
-rw-r--r--sys/amd64/cloudabi64/cloudabi64_sysvec.c64
-rw-r--r--sys/amd64/vmm/amd/svm_msr.c5
-rw-r--r--sys/arm/allwinner/a10_ahci.c52
-rw-r--r--sys/arm/allwinner/a10_clk.c862
-rw-r--r--sys/arm/allwinner/a10_clk.h247
-rw-r--r--sys/arm/allwinner/a10_codec.c33
-rw-r--r--sys/arm/allwinner/a10_dmac.c14
-rw-r--r--sys/arm/allwinner/a10_ehci.c61
-rw-r--r--sys/arm/allwinner/a10_fb.c137
-rw-r--r--sys/arm/allwinner/a10_hdmi.c73
-rw-r--r--sys/arm/allwinner/a10_mmc.c97
-rw-r--r--sys/arm/allwinner/a10_sramc.c23
-rw-r--r--sys/arm/allwinner/a10_sramc.h1
-rw-r--r--sys/arm/allwinner/a20/a20_if_dwc.c68
-rw-r--r--sys/arm/allwinner/a31/a31_clk.c378
-rw-r--r--sys/arm/allwinner/a31/a31_clk.h213
-rw-r--r--sys/arm/allwinner/a31/a31_padconf.c40
-rw-r--r--sys/arm/allwinner/aw_ccu.c224
-rw-r--r--sys/arm/allwinner/aw_reset.c164
-rw-r--r--sys/arm/allwinner/aw_usbphy.c107
-rw-r--r--sys/arm/allwinner/clk/aw_ahbclk.c308
-rw-r--r--sys/arm/allwinner/clk/aw_apbclk.c283
-rw-r--r--sys/arm/allwinner/clk/aw_axiclk.c201
-rw-r--r--sys/arm/allwinner/clk/aw_codecclk.c164
-rw-r--r--sys/arm/allwinner/clk/aw_cpuclk.c161
-rw-r--r--sys/arm/allwinner/clk/aw_debeclk.c351
-rw-r--r--sys/arm/allwinner/clk/aw_gate.c198
-rw-r--r--sys/arm/allwinner/clk/aw_gmacclk.c259
-rw-r--r--sys/arm/allwinner/clk/aw_hdmiclk.c315
-rw-r--r--sys/arm/allwinner/clk/aw_lcdclk.c560
-rw-r--r--sys/arm/allwinner/clk/aw_mmcclk.c351
-rw-r--r--sys/arm/allwinner/clk/aw_modclk.c318
-rw-r--r--sys/arm/allwinner/clk/aw_oscclk.c132
-rw-r--r--sys/arm/allwinner/clk/aw_pll.c757
-rw-r--r--sys/arm/allwinner/clk/aw_usbclk.c246
-rw-r--r--sys/arm/allwinner/files.allwinner19
-rw-r--r--sys/arm/allwinner/if_emac.c33
-rw-r--r--sys/arm/altera/socfpga/socfpga_rstmgr.c2
-rw-r--r--sys/arm/amlogic/aml8726/aml8726_sdxc-m8.c2
-rw-r--r--sys/arm/arm/disassem.c2
-rw-r--r--sys/arm/arm/gic.c34
-rw-r--r--sys/arm/arm/locore.S2
-rw-r--r--sys/arm/arm/physmem.c2
-rw-r--r--sys/arm/arm/vm_machdep.c2
-rw-r--r--sys/arm/broadcom/bcm2835/bcm2836.c25
-rw-r--r--sys/arm/conf/A107
-rw-r--r--sys/arm/conf/A207
-rw-r--r--sys/arm/freescale/imx/imx6_sdma.c2
-rw-r--r--sys/arm/freescale/imx/imx6_ssi.c2
-rw-r--r--sys/arm/freescale/imx/imx_gpio.c171
-rw-r--r--sys/arm/freescale/vybrid/vf_ccm.c10
-rw-r--r--sys/arm/freescale/vybrid/vf_edma.c6
-rw-r--r--sys/arm/freescale/vybrid/vf_port.c2
-rw-r--r--sys/arm/freescale/vybrid/vf_sai.c12
-rw-r--r--sys/arm/mv/mv_pci.c2
-rw-r--r--sys/arm/samsung/exynos/chrome_ec.c4
-rw-r--r--sys/arm/samsung/exynos/chrome_ec_spi.c4
-rw-r--r--sys/arm/samsung/exynos/chrome_kb.c14
-rw-r--r--sys/arm/samsung/exynos/exynos5_i2c.c6
-rw-r--r--sys/arm/samsung/exynos/exynos5_pad.c8
-rw-r--r--sys/arm64/arm64/copyinout.S2
-rw-r--r--sys/arm64/arm64/genassym.c3
-rw-r--r--sys/arm64/arm64/gic_v3_its.c4
-rw-r--r--sys/arm64/arm64/locore.S43
-rw-r--r--sys/arm64/arm64/pmap.c6
-rw-r--r--sys/arm64/arm64/support.S1
-rw-r--r--sys/arm64/cavium/thunder_pcie_pem.c2
-rw-r--r--sys/arm64/cloudabi64/cloudabi64_sysvec.c28
-rw-r--r--sys/arm64/include/frame.h5
-rw-r--r--sys/arm64/include/vmparam.h6
-rw-r--r--sys/boot/arm/at91/libat91/sd-card.c2
-rw-r--r--sys/boot/arm/uboot/ldscript.arm5
-rw-r--r--sys/boot/common/load_elf_obj.c2
-rw-r--r--sys/boot/common/part.c2
-rw-r--r--sys/boot/fdt/dts/arm/bananapi.dts78
-rw-r--r--sys/boot/fdt/dts/arm/cubieboard.dts54
-rw-r--r--sys/boot/fdt/dts/arm/cubieboard2.dts7
-rw-r--r--sys/boot/fdt/dts/arm/olimex-a20-som-evb.dts12
-rw-r--r--sys/boot/fdt/dts/arm/olinuxino-lime.dts11
-rw-r--r--sys/boot/fdt/dts/arm/sun4i-a10.dtsi153
-rw-r--r--sys/boot/fdt/dts/arm/sun7i-a20-hdmi.dtsi63
-rw-r--r--sys/boot/fdt/dts/arm/sun7i-a20.dtsi217
-rw-r--r--sys/boot/forth/loader.conf.525
-rw-r--r--sys/boot/geli/geliboot.c68
-rw-r--r--sys/boot/geli/geliboot.h3
-rw-r--r--sys/boot/i386/libi386/biosdisk.c36
-rw-r--r--sys/boot/i386/zfsboot/zfsboot.c69
-rw-r--r--sys/boot/userboot/test/test.c2
-rw-r--r--sys/boot/userboot/userboot/elf64_freebsd.c2
-rw-r--r--sys/cam/ctl/ctl_ha.c2
-rw-r--r--sys/cam/scsi/scsi_all.h2
-rw-r--r--sys/cam/scsi/scsi_ch.c12
-rw-r--r--sys/cddl/contrib/opensolaris/uts/common/dtrace/dtrace.c161
-rw-r--r--sys/cddl/contrib/opensolaris/uts/common/fs/zfs/arc.c9
-rw-r--r--sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dmu.c20
-rw-r--r--sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dsl_pool.c4
-rw-r--r--sys/cddl/contrib/opensolaris/uts/common/fs/zfs/spa.c2
-rw-r--r--sys/cddl/contrib/opensolaris/uts/common/fs/zfs/spa_misc.c84
-rw-r--r--sys/cddl/contrib/opensolaris/uts/common/fs/zfs/vdev_geom.c10
-rw-r--r--sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zio.c4
-rw-r--r--sys/cddl/contrib/opensolaris/uts/common/sys/fs/zfs.h4
-rw-r--r--sys/cddl/dev/dtrace/aarch64/dtrace_isa.c119
-rw-r--r--sys/cddl/dev/dtrace/amd64/dtrace_subr.c48
-rw-r--r--sys/cddl/dev/dtrace/i386/dtrace_subr.c48
-rw-r--r--sys/cddl/dev/sdt/sdt.c18
-rw-r--r--sys/compat/cloudabi64/cloudabi64_module.c8
-rw-r--r--sys/compat/cloudabi64/cloudabi64_thread.c10
-rw-r--r--sys/compat/cloudabi64/cloudabi64_util.h4
-rw-r--r--sys/compat/linprocfs/linprocfs.c113
-rw-r--r--sys/compat/linux/linux_misc.h7
-rw-r--r--sys/conf/NOTES14
-rw-r--r--sys/conf/files4
-rw-r--r--sys/conf/newvers.sh2
-rw-r--r--sys/conf/options4
-rw-r--r--sys/contrib/cloudabi/cloudabi64_types.h7
-rw-r--r--sys/contrib/ipfilter/netinet/fil.c50
-rw-r--r--sys/contrib/ipfilter/netinet/ip_fil_freebsd.c8
-rw-r--r--sys/contrib/ipfilter/netinet/ip_frag.c3
-rw-r--r--sys/contrib/ipfilter/netinet/ip_state.c12
-rw-r--r--sys/dev/aac/aac.c2
-rw-r--r--sys/dev/aacraid/aacraid.c4
-rw-r--r--sys/dev/acpica/acpi.c4
-rw-r--r--sys/dev/acpica/acpi_pci.c68
-rw-r--r--sys/dev/acpica/acpi_pcivar.h38
-rw-r--r--sys/dev/acpica/acpivar.h2
-rw-r--r--sys/dev/ahci/ahci_pci.c2
-rw-r--r--sys/dev/ata/chipsets/ata-intel.c2
-rw-r--r--sys/dev/ath/ath_hal/ar5416/ar5416_radar.c2
-rw-r--r--sys/dev/ath/if_ath.c1
-rw-r--r--sys/dev/ath/if_ath_rx.c145
-rw-r--r--sys/dev/bhnd/bcma/bcma_erom.c4
-rw-r--r--sys/dev/bhnd/bhndb/bhndb_pci.c2
-rw-r--r--sys/dev/bhnd/cores/chipc/chipc.c2
-rw-r--r--sys/dev/bhnd/siba/siba.c2
-rw-r--r--sys/dev/bktr/bktr_core.c4
-rw-r--r--sys/dev/bktr/bktr_os.c2
-rw-r--r--sys/dev/bxe/bxe.c2
-rw-r--r--sys/dev/cardbus/cardbus.c36
-rw-r--r--sys/dev/cxgbe/firmware/t5fw_cfg.txt3
-rw-r--r--sys/dev/cxgbe/iw_cxgbe/mem.c2
-rw-r--r--sys/dev/cxgbe/t4_main.c180
-rw-r--r--sys/dev/cxgbe/tom/t4_ddp.c25
-rw-r--r--sys/dev/drm2/radeon/radeon_bios.c2
-rw-r--r--sys/dev/dwc/if_dwc.c40
-rw-r--r--sys/dev/etherswitch/arswitch/arswitch.c2
-rw-r--r--sys/dev/etherswitch/arswitch/arswitch_8327.c2
-rw-r--r--sys/dev/etherswitch/ip17x/ip175c.c2
-rw-r--r--sys/dev/etherswitch/ip17x/ip175d.c2
-rw-r--r--sys/dev/gpio/gpioiic.c2
-rw-r--r--sys/dev/hwpmc/hwpmc_e500.c7
-rw-r--r--sys/dev/hwpmc/hwpmc_mips.c4
-rw-r--r--sys/dev/hyperv/netvsc/hv_net_vsc.c6
-rw-r--r--sys/dev/hyperv/netvsc/hv_netvsc_drv_freebsd.c14
-rw-r--r--sys/dev/hyperv/netvsc/hv_rndis_filter.c9
-rw-r--r--sys/dev/hyperv/utilities/hv_heartbeat.c2
-rw-r--r--sys/dev/hyperv/utilities/hv_kvp.c2
-rw-r--r--sys/dev/hyperv/utilities/hv_shutdown.c2
-rw-r--r--sys/dev/hyperv/vmbus/hv_channel.c24
-rw-r--r--sys/dev/hyperv/vmbus/hv_channel_mgmt.c16
-rw-r--r--sys/dev/hyperv/vmbus/hv_connection.c14
-rw-r--r--sys/dev/hyperv/vmbus/hv_hv.c168
-rw-r--r--sys/dev/hyperv/vmbus/hv_vmbus_drv_freebsd.c98
-rw-r--r--sys/dev/hyperv/vmbus/hv_vmbus_priv.h30
-rw-r--r--sys/dev/ichiic/ig4_iic.c5
-rw-r--r--sys/dev/ie/if_ie_isa.c2
-rw-r--r--sys/dev/iicbus/twsi/a10_twsi.c51
-rw-r--r--sys/dev/ioat/ioat.c36
-rw-r--r--sys/dev/ioat/ioat.h4
-rw-r--r--sys/dev/ioat/ioat_internal.h1
-rw-r--r--sys/dev/ioat/ioat_test.c2
-rw-r--r--sys/dev/isci/scil/scic_sds_controller_registers.h2
-rw-r--r--sys/dev/isp/isp.c456
-rw-r--r--sys/dev/isp/isp_freebsd.h1
-rw-r--r--sys/dev/isp/isp_library.c33
-rw-r--r--sys/dev/isp/isp_library.h2
-rw-r--r--sys/dev/isp/isp_stds.h25
-rw-r--r--sys/dev/isp/ispmbox.h2
-rw-r--r--sys/dev/ispfw/asm_2500.h29490
-rw-r--r--sys/dev/ixgbe/if_ix.c2
-rw-r--r--sys/dev/ixgbe/ixgbe_common.c4
-rw-r--r--sys/dev/ixl/if_ixl.c4
-rw-r--r--sys/dev/ixl/if_ixlv.c2
-rw-r--r--sys/dev/kbdmux/kbdmux.c8
-rw-r--r--sys/dev/mii/mii_physubr.c2
-rw-r--r--sys/dev/mmc/host/dwmmc.c2
-rw-r--r--sys/dev/mvs/mvs.c2
-rw-r--r--sys/dev/nand/nand.c2
-rw-r--r--sys/dev/nand/nandsim_chip.c2
-rw-r--r--sys/dev/ncr/ncr.c150
-rw-r--r--sys/dev/nfe/if_nfe.c2
-rw-r--r--sys/dev/oce/oce_mbox.c4
-rw-r--r--sys/dev/oce/oce_sysctl.c2
-rw-r--r--sys/dev/ow/ow.c2
-rw-r--r--sys/dev/patm/if_patm_attach.c2
-rw-r--r--sys/dev/pcf/pcf.c2
-rw-r--r--sys/dev/pci/pci.c15
-rw-r--r--sys/dev/pci/pci_iov.c4
-rw-r--r--sys/dev/pci/pci_private.h2
-rw-r--r--sys/dev/pdq/pdq.c2
-rw-r--r--sys/dev/qlxgbe/ql_hw.c4
-rw-r--r--sys/dev/ral/rt2860.c2
-rw-r--r--sys/dev/rt/if_rt.c116
-rw-r--r--sys/dev/rt/if_rtvar.h13
-rw-r--r--sys/dev/sound/midi/midi.c4
-rw-r--r--sys/dev/sound/pci/hda/hdaa.c8
-rw-r--r--sys/dev/sym/sym_hipd.c64
-rw-r--r--sys/dev/tdfx/tdfx_pci.c2
-rw-r--r--sys/dev/ti/if_ti.c6
-rw-r--r--sys/dev/uart/uart_dev_msm.c2
-rw-r--r--sys/dev/usb/net/if_mos.c2
-rw-r--r--sys/dev/usb/net/if_ure.c2
-rw-r--r--sys/dev/usb/net/if_urndis.c2
-rw-r--r--sys/dev/usb/quirk/usb_quirk.c3
-rw-r--r--sys/dev/usb/usb_transfer.c2
-rw-r--r--sys/dev/usb/usbdevs3
-rw-r--r--sys/dev/vnic/nicvf_queues.c8
-rw-r--r--sys/dev/vnic/thunder_bgx.c4
-rw-r--r--sys/dev/vt/vt_core.c2
-rw-r--r--sys/dev/xen/pci/xen_acpi_pci.c11
-rw-r--r--sys/fs/ext2fs/ext2_alloc.c3
-rw-r--r--sys/fs/ext2fs/ext2_bmap.c8
-rw-r--r--sys/fs/ext2fs/ext2_vfsops.c6
-rw-r--r--sys/fs/nandfs/nandfs_segment.c6
-rw-r--r--sys/fs/nfs/nfs_commonacl.c4
-rw-r--r--sys/fs/nfs/nfs_commonport.c2
-rw-r--r--sys/fs/nfs/nfs_commonsubs.c10
-rw-r--r--sys/fs/nfsclient/nfs_clbio.c4
-rw-r--r--sys/fs/nfsclient/nfs_clport.c2
-rw-r--r--sys/fs/nfsclient/nfs_clrpcops.c6
-rw-r--r--sys/fs/nfsclient/nfs_clstate.c4
-rw-r--r--sys/fs/nfsclient/nfs_clvnops.c2
-rw-r--r--sys/fs/nfsserver/nfs_nfsdport.c8
-rw-r--r--sys/fs/nfsserver/nfs_nfsdserv.c28
-rw-r--r--sys/fs/nfsserver/nfs_nfsdsocket.c2
-rw-r--r--sys/fs/nfsserver/nfs_nfsdsubs.c2
-rw-r--r--sys/fs/smbfs/smbfs_io.c2
-rw-r--r--sys/fs/smbfs/smbfs_subr.c1
-rw-r--r--sys/fs/smbfs/smbfs_vnops.c2
-rw-r--r--sys/fs/tmpfs/tmpfs_subr.c2
-rw-r--r--sys/fs/unionfs/union_subr.c4
-rw-r--r--sys/geom/eli/g_eli.c1
-rw-r--r--sys/geom/eli/g_eli.h2
-rw-r--r--sys/geom/eli/g_eli_ctl.c33
-rw-r--r--sys/geom/raid/md_promise.c2
-rw-r--r--sys/geom/sched/g_sched.c2
-rw-r--r--sys/kern/kern_cpuset.c16
-rw-r--r--sys/kern/kern_physio.c17
-rw-r--r--sys/kern/kern_racct.c77
-rw-r--r--sys/kern/kern_rctl.c309
-rw-r--r--sys/kern/link_elf_obj.c16
-rw-r--r--sys/kern/subr_bus.c22
-rw-r--r--sys/kern/subr_hash.c3
-rw-r--r--sys/kern/subr_intr.c52
-rw-r--r--sys/kern/subr_smp.c4
-rw-r--r--sys/kern/subr_trap.c10
-rw-r--r--sys/kern/vfs_bio.c31
-rw-r--r--sys/kern/vfs_cluster.c15
-rw-r--r--sys/kern/vfs_vnops.c2
-rw-r--r--sys/kgssapi/gss_impl.c2
-rw-r--r--sys/mips/mediatek/fdt_reset.c125
-rw-r--r--sys/mips/mediatek/fdt_reset.h49
-rw-r--r--sys/mips/mediatek/fdt_reset_if.m58
-rw-r--r--sys/mips/mediatek/mtk_clock.c156
-rw-r--r--sys/mips/mediatek/mtk_dotg.c220
-rw-r--r--sys/mips/mediatek/mtk_ehci.c223
-rw-r--r--sys/mips/mediatek/mtk_gpio_v1.c675
-rw-r--r--sys/mips/mediatek/mtk_gpio_v2.c675
-rw-r--r--sys/mips/mediatek/mtk_intr_gic.c377
-rw-r--r--sys/mips/mediatek/mtk_intr_v1.c353
-rw-r--r--sys/mips/mediatek/mtk_intr_v2.c348
-rw-r--r--sys/mips/mediatek/mtk_machdep.c286
-rw-r--r--sys/mips/mediatek/mtk_ohci.c223
-rw-r--r--sys/mips/mediatek/mtk_pcie.c1489
-rw-r--r--sys/mips/mediatek/mtk_pcie.h164
-rw-r--r--sys/mips/mediatek/mtk_pinctrl.c114
-rw-r--r--sys/mips/mediatek/mtk_reset.c139
-rw-r--r--sys/mips/mediatek/mtk_soc.c438
-rw-r--r--sys/mips/mediatek/mtk_soc.h130
-rw-r--r--sys/mips/mediatek/mtk_spi_v1.c351
-rw-r--r--sys/mips/mediatek/mtk_spi_v1.h71
-rw-r--r--sys/mips/mediatek/mtk_spi_v2.c357
-rw-r--r--sys/mips/mediatek/mtk_spi_v2.h55
-rw-r--r--sys/mips/mediatek/mtk_sysctl.c191
-rw-r--r--sys/mips/mediatek/mtk_sysctl.h59
-rw-r--r--sys/mips/mediatek/mtk_usb_phy.c324
-rw-r--r--sys/mips/mediatek/mtk_usb_phy.h66
-rw-r--r--sys/mips/mediatek/mtk_xhci.c298
-rw-r--r--sys/mips/mediatek/uart_dev_mtk.c552
-rw-r--r--sys/mips/mediatek/uart_dev_mtk.h126
-rw-r--r--sys/mips/mediatek/uart_dev_mtk_ns8250.c113
-rw-r--r--sys/mips/mips/db_disasm.c6
-rw-r--r--sys/mips/mips/db_trace.c4
-rw-r--r--sys/mips/mips/mips_pic.c307
-rw-r--r--sys/mips/mips/nexus.c19
-rw-r--r--sys/mips/mips/ofw_machdep.c2
-rw-r--r--sys/modules/cxgbe/if_cxgbe/Makefile1
-rw-r--r--sys/modules/kbdmux/Makefile2
-rw-r--r--sys/net/bpf.c62
-rw-r--r--sys/net/bpf.h3
-rw-r--r--sys/net/if.c11
-rw-r--r--sys/net/if_gif.c2
-rw-r--r--sys/net/if_gre.c4
-rw-r--r--sys/net80211/ieee80211_adhoc.c5
-rw-r--r--sys/net80211/ieee80211_ht.c29
-rw-r--r--sys/net80211/ieee80211_node.c51
-rw-r--r--sys/net80211/ieee80211_node.h1
-rw-r--r--sys/net80211/ieee80211_sta.c8
-rw-r--r--sys/netgraph/netflow/ng_netflow.c2
-rw-r--r--sys/netgraph/ng_base.c2
-rw-r--r--sys/netgraph/ng_ipfw.c4
-rw-r--r--sys/netgraph/ng_nat.c2
-rw-r--r--sys/netinet/ip_divert.c3
-rw-r--r--sys/netinet/raw_ip.c3
-rw-r--r--sys/netinet/sctp.h6
-rw-r--r--sys/netinet/sctp_constants.h23
-rw-r--r--sys/netinet/sctp_dtrace_define.h176
-rw-r--r--sys/netinet/sctp_header.h23
-rw-r--r--sys/netinet/sctp_indata.c2974
-rw-r--r--sys/netinet/sctp_indata.h20
-rw-r--r--sys/netinet/sctp_input.c71
-rw-r--r--sys/netinet/sctp_output.c219
-rw-r--r--sys/netinet/sctp_pcb.c157
-rw-r--r--sys/netinet/sctp_pcb.h3
-rw-r--r--sys/netinet/sctp_structs.h36
-rw-r--r--sys/netinet/sctp_uio.h13
-rw-r--r--sys/netinet/sctp_usrreq.c72
-rw-r--r--sys/netinet/sctp_var.h12
-rw-r--r--sys/netinet/sctputil.c114
-rw-r--r--sys/netinet/sctputil.h3
-rw-r--r--sys/netinet/tcp_fastopen.c2
-rw-r--r--sys/netinet/tcp_subr.c29
-rw-r--r--sys/netinet/tcp_syncache.c8
-rw-r--r--sys/netinet6/in6_src.c2
-rw-r--r--sys/netpfil/ipfw/ip_fw_sockopt.c2
-rw-r--r--sys/netsmb/smb_subr.c2
-rw-r--r--sys/ofed/drivers/infiniband/hw/mthca/mthca_provider.c2
-rw-r--r--sys/ofed/drivers/net/mlx4/cmd.c2
-rw-r--r--sys/ofed/drivers/net/mlx4/eq.c2
-rw-r--r--sys/pc98/cbus/olpt.c2
-rw-r--r--sys/powerpc/booke/pmap.c35
-rw-r--r--sys/powerpc/include/vmparam.h2
-rw-r--r--sys/powerpc/ofw/ofw_pcibus.c12
-rw-r--r--sys/powerpc/powermac/fcu.c2
-rw-r--r--sys/powerpc/powermac/pmu.c2
-rw-r--r--sys/powerpc/powermac/smu.c2
-rw-r--r--sys/rpc/clnt_bck.c2
-rw-r--r--sys/security/audit/audit_syscalls.c4
-rw-r--r--sys/sparc64/include/bus.h2
-rw-r--r--sys/sparc64/pci/ofw_pcibus.c12
-rw-r--r--sys/sparc64/sparc64/db_disasm.c4
-rw-r--r--sys/sys/bus.h1
-rw-r--r--sys/sys/elf_common.h3
-rw-r--r--sys/sys/intr.h4
-rw-r--r--sys/sys/proc.h2
-rw-r--r--sys/sys/racct.h9
-rw-r--r--sys/sys/rctl.h4
-rw-r--r--sys/ufs/ffs/ffs_alloc.c11
-rw-r--r--sys/ufs/ffs/ffs_inode.c8
-rw-r--r--sys/ufs/ffs/ffs_snapshot.c4
-rw-r--r--sys/ufs/ffs/ffs_softdep.c41
-rw-r--r--sys/ufs/ufs/ufs_bmap.c8
-rw-r--r--sys/ufs/ufs/ufs_lookup.c3
-rw-r--r--sys/vm/vm_domain.c25
-rw-r--r--sys/vm/vm_fault.c16
-rw-r--r--sys/vm/vm_pageout.c4
-rw-r--r--sys/vm/vm_phys.c22
-rw-r--r--sys/vm/vm_phys.h2
-rw-r--r--sys/x86/acpica/srat.c55
-rw-r--r--sys/x86/cpufreq/smist.c2
-rw-r--r--sys/x86/x86/local_apic.c8
-rw-r--r--sys/x86/xen/xen_apic.c4
-rwxr-xr-xtools/tools/nanobsd/defaults.sh77
-rw-r--r--tools/tools/net80211/wlanstats/wlanstats.c13
-rw-r--r--usr.bin/calendar/calendars/calendar.freebsd1
-rw-r--r--usr.bin/rctl/rctl.839
-rw-r--r--usr.bin/uuencode/uuencode.14
-rw-r--r--usr.bin/uuencode/uuencode.c18
-rw-r--r--usr.bin/whois/whois.c13
-rw-r--r--usr.sbin/bhyve/Makefile4
-rwxr-xr-xusr.sbin/bsdinstall/scripts/zfsboot6
-rw-r--r--usr.sbin/etcupdate/tests/tzsetup_test.sh2
-rw-r--r--usr.sbin/lpr/chkprintcap/chkprintcap.c8
-rw-r--r--usr.sbin/lpr/common_source/common.c4
-rw-r--r--usr.sbin/lpr/common_source/net.c2
-rw-r--r--usr.sbin/lpr/common_source/printcap.c8
-rw-r--r--usr.sbin/lpr/common_source/request.c4
-rw-r--r--usr.sbin/lpr/common_source/rmjob.c2
-rw-r--r--usr.sbin/lpr/lpc/lpc.c12
-rw-r--r--usr.sbin/lpr/lpd/printjob.c6
494 files changed, 35709 insertions, 20849 deletions
diff --git a/bin/csh/config_p.h b/bin/csh/config_p.h
index f2d7ebc..c25e87a 100644
--- a/bin/csh/config_p.h
+++ b/bin/csh/config_p.h
@@ -34,7 +34,8 @@
* Note that some machines eg. rs6000 have a vfork, but not
* with the berkeley semantics, so we cannot use it there either.
*/
-#define VFORK
+/* #define VFORK */
+#define vfork fork
/*
* BSDJOBS You have BSD-style job control (both process groups and
@@ -80,7 +81,6 @@
/****************** local defines *********************/
#if defined(__FreeBSD__)
-#define SAVESIGVEC
#define NLS_BUGS
#define BSD_STYLE_COLORLS
/* Use LC_MESSAGES locale category to open the message catalog */
diff --git a/bin/sh/miscbltin.c b/bin/sh/miscbltin.c
index 1537196..56ecae8 100644
--- a/bin/sh/miscbltin.c
+++ b/bin/sh/miscbltin.c
@@ -341,7 +341,7 @@ umaskcmd(int argc __unused, char **argv __unused)
} else {
void *set;
INTOFF;
- if ((set = setmode (ap)) == 0)
+ if ((set = setmode (ap)) == NULL)
error("Illegal number: %s", ap);
mask = getmode (set, ~mask & 0777);
diff --git a/bin/sh/parser.c b/bin/sh/parser.c
index da6defd..3f9732c 100644
--- a/bin/sh/parser.c
+++ b/bin/sh/parser.c
@@ -628,7 +628,7 @@ simplecmd(union node **rpp, union node *redir)
/* If we don't have any redirections already, then we must reset */
/* rpp to be the address of the local redir variable. */
- if (redir == 0)
+ if (redir == NULL)
rpp = &redir;
args = NULL;
diff --git a/bin/sh/tests/builtins/getopts1.0 b/bin/sh/tests/builtins/getopts1.0
index 64763bc..10d2b59 100644
--- a/bin/sh/tests/builtins/getopts1.0
+++ b/bin/sh/tests/builtins/getopts1.0
@@ -3,7 +3,7 @@
printf -- '-1-\n'
set -- -abc
getopts "ab:" OPTION
-echo ${OPTION}
+printf '%s\n' "${OPTION}"
# In this case 'getopts' should realize that we have not provided the
# required argument for "-b".
@@ -14,12 +14,12 @@ echo ${OPTION}
printf -- '-2-\n'
set -- -ab
getopts "ab:" OPTION
-echo ${OPTION}
+printf '%s\n' "${OPTION}"
getopts "ab:" OPTION 3>&2 2>&1 >&3 3>&-
-echo ${OPTION}
+printf '%s\n' "${OPTION}"
# The 'shift' is aimed at causing an error.
printf -- '-3-\n'
shift 1
getopts "ab:" OPTION
-echo ${OPTION}
+printf '%s\n' "${OPTION}"
diff --git a/bin/sh/tests/builtins/getopts2.0 b/bin/sh/tests/builtins/getopts2.0
index 5a5dbe2..1bd2c32 100644
--- a/bin/sh/tests/builtins/getopts2.0
+++ b/bin/sh/tests/builtins/getopts2.0
@@ -3,4 +3,4 @@ set - -ax
getopts ax option
set -C
getopts ax option
-echo $option
+printf '%s\n' "$option"
diff --git a/bin/sh/tests/builtins/getopts9.0 b/bin/sh/tests/builtins/getopts9.0
index d23fc43..1c35fc6 100644
--- a/bin/sh/tests/builtins/getopts9.0
+++ b/bin/sh/tests/builtins/getopts9.0
@@ -2,8 +2,8 @@
args='-ab'
getopts ab opt $args
-echo $?:$opt:$OPTARG
+printf '%s\n' "$?:$opt:$OPTARG"
for dummy in dummy1 dummy2; do
getopts ab opt $args
- echo $?:$opt:$OPTARG
+ printf '%s\n' "$?:$opt:$OPTARG"
done
diff --git a/cddl/contrib/opensolaris/cmd/dtrace/dtrace.c b/cddl/contrib/opensolaris/cmd/dtrace/dtrace.c
index d8bdaa6..d065cdc 100644
--- a/cddl/contrib/opensolaris/cmd/dtrace/dtrace.c
+++ b/cddl/contrib/opensolaris/cmd/dtrace/dtrace.c
@@ -50,6 +50,9 @@
#ifdef illumos
#include <libproc.h>
#endif
+#ifdef __FreeBSD__
+#include <spawn.h>
+#endif
typedef struct dtrace_cmd {
void (*dc_func)(struct dtrace_cmd *); /* function to compile arg */
@@ -397,7 +400,41 @@ dof_prune(const char *fname)
free(buf);
}
-#ifdef illumos
+#ifdef __FreeBSD__
+/*
+ * Use nextboot(8) to tell the loader to load DTrace kernel modules during
+ * the next boot of the system. The nextboot(8) configuration is removed during
+ * boot, so it will not persist indefinitely.
+ */
+static void
+bootdof_add(void)
+{
+ char * const nbargv[] = {
+ "nextboot", "-a",
+ "-e", "dtraceall_load=\"YES\"",
+ "-e", "dtrace_dof_load=\"YES\"",
+ "-e", "dtrace_dof_name=\"/boot/dtrace.dof\"",
+ "-e", "dtrace_dof_type=\"dtrace_dof\"",
+ NULL,
+ };
+ pid_t child;
+ int err, status;
+
+ err = posix_spawnp(&child, "nextboot", NULL, NULL, nbargv,
+ NULL);
+ if (err != 0) {
+ error("failed to execute nextboot: %s", strerror(err));
+ exit(E_ERROR);
+ }
+
+ if (waitpid(child, &status, 0) != child)
+ fatal("waiting for nextboot");
+ if (!WIFEXITED(status) || WEXITSTATUS(status) != 0) {
+ error("nextboot returned with status %d", status);
+ exit(E_ERROR);
+ }
+}
+#else
static void
etcsystem_prune(void)
{
@@ -508,7 +545,7 @@ etcsystem_add(void)
error("added forceload directives to %s\n", g_ofile);
}
-#endif /* illumos */
+#endif /* !__FreeBSD__ */
static void
print_probe_info(const dtrace_probeinfo_t *p)
@@ -643,24 +680,24 @@ anon_prog(const dtrace_cmd_t *dcp, dof_hdr_t *dof, int n)
p = (uchar_t *)dof;
q = p + dof->dofh_loadsz;
-#ifdef illumos
- oprintf("dof-data-%d=0x%x", n, *p++);
-
- while (p < q)
- oprintf(",0x%x", *p++);
-
- oprintf(";\n");
-#else
+#ifdef __FreeBSD__
/*
- * On FreeBSD, the DOF data is handled as a kernel environment (kenv)
- * string. We use two hex characters per DOF byte.
+ * On FreeBSD, the DOF file is read directly during boot - just write
+ * two hex characters per byte.
*/
- oprintf("dof-data-%d=%02x", n, *p++);
+ oprintf("dof-data-%d=", n);
while (p < q)
oprintf("%02x", *p++);
oprintf("\n");
+#else
+ oprintf("dof-data-%d=0x%x", n, *p++);
+
+ while (p < q)
+ oprintf(",0x%x", *p++);
+
+ oprintf(";\n");
#endif
dtrace_dof_destroy(g_dtp, dof);
@@ -1725,8 +1762,7 @@ main(int argc, char *argv[])
#else
/*
* On FreeBSD, anonymous DOF data is written to
- * the DTrace DOF file that the boot loader will
- * read if booting with the DTrace option.
+ * the DTrace DOF file.
*/
g_ofile = "/boot/dtrace.dof";
#endif
@@ -1765,7 +1801,10 @@ main(int argc, char *argv[])
* that itself contains a #pragma D option quiet.
*/
error("saved anonymous enabling in %s\n", g_ofile);
-#ifdef illumos
+
+#ifdef __FreeBSD__
+ bootdof_add();
+#else
etcsystem_add();
error("run update_drv(1M) or reboot to enable changes\n");
#endif
diff --git a/cddl/contrib/opensolaris/cmd/zdb/zdb.c b/cddl/contrib/opensolaris/cmd/zdb/zdb.c
index bb45b5e..64e5cbd 100644
--- a/cddl/contrib/opensolaris/cmd/zdb/zdb.c
+++ b/cddl/contrib/opensolaris/cmd/zdb/zdb.c
@@ -2156,10 +2156,11 @@ dump_label(const char *dev)
uint64_t psize, ashift;
int len = strlen(dev) + 1;
- if (strncmp(dev, "/dev/dsk/", 9) == 0) {
+ if (strncmp(dev, ZFS_DISK_ROOTD, strlen(ZFS_DISK_ROOTD)) == 0) {
len++;
path = malloc(len);
- (void) snprintf(path, len, "%s%s", "/dev/rdsk/", dev + 9);
+ (void) snprintf(path, len, "%s%s", ZFS_RDISK_ROOTD,
+ dev + strlen(ZFS_DISK_ROOTD));
} else {
path = strdup(dev);
}
diff --git a/cddl/contrib/opensolaris/cmd/zpool/zpool_main.c b/cddl/contrib/opensolaris/cmd/zpool/zpool_main.c
index b979833..ce8782f 100644
--- a/cddl/contrib/opensolaris/cmd/zpool/zpool_main.c
+++ b/cddl/contrib/opensolaris/cmd/zpool/zpool_main.c
@@ -21,12 +21,12 @@
/*
* Copyright (c) 2005, 2010, Oracle and/or its affiliates. All rights reserved.
- * Copyright 2011 Nexenta Systems, Inc. All rights reserved.
* Copyright (c) 2011, 2015 by Delphix. All rights reserved.
* Copyright (c) 2012 by Frederik Wessels. All rights reserved.
* Copyright (c) 2012 Martin Matuska <mm@FreeBSD.org>. All rights reserved.
* Copyright (c) 2013 by Prasad Joshi (sTec). All rights reserved.
* Copyright 2016 Igor Kozhukhov <ikozhukhov@gmail.com>.
+ * Copyright 2016 Nexenta Systems, Inc.
*/
#include <solaris.h>
@@ -626,7 +626,10 @@ zpool_do_remove(int argc, char **argv)
}
/*
- * zpool labelclear <vdev>
+ * zpool labelclear [-f] <vdev>
+ *
+ * -f Force clearing the label for the vdevs which are members of
+ * the exported or foreign pools.
*
* Verifies that the vdev is not active and zeros out the label information
* on the device.
@@ -634,8 +637,11 @@ zpool_do_remove(int argc, char **argv)
int
zpool_do_labelclear(int argc, char **argv)
{
- char *vdev, *name;
- int c, fd = -1, ret = 0;
+ char vdev[MAXPATHLEN];
+ char *name = NULL;
+ struct stat st;
+ int c, fd, ret = 0;
+ nvlist_t *config;
pool_state_t state;
boolean_t inuse = B_FALSE;
boolean_t force = B_FALSE;
@@ -658,88 +664,110 @@ zpool_do_labelclear(int argc, char **argv)
/* get vdev name */
if (argc < 1) {
- (void) fprintf(stderr, gettext("missing vdev device name\n"));
+ (void) fprintf(stderr, gettext("missing vdev name\n"));
usage(B_FALSE);
}
+ if (argc > 1) {
+ (void) fprintf(stderr, gettext("too many arguments\n"));
+ usage(B_FALSE);
+ }
+
+ /*
+ * Check if we were given absolute path and use it as is.
+ * Otherwise if the provided vdev name doesn't point to a file,
+ * try prepending dsk path and appending s0.
+ */
+ (void) strlcpy(vdev, argv[0], sizeof (vdev));
+ if (vdev[0] != '/' && stat(vdev, &st) != 0) {
+ char *s;
+
+ (void) snprintf(vdev, sizeof (vdev), "%s/%s",
+#ifdef illumos
+ ZFS_DISK_ROOT, argv[0]);
+ if ((s = strrchr(argv[0], 's')) == NULL ||
+ !isdigit(*(s + 1)))
+ (void) strlcat(vdev, "s0", sizeof (vdev));
+#else
+ "/dev", argv[0]);
+#endif
+ if (stat(vdev, &st) != 0) {
+ (void) fprintf(stderr, gettext(
+ "failed to find device %s, try specifying absolute "
+ "path instead\n"), argv[0]);
+ return (1);
+ }
+ }
- vdev = argv[0];
if ((fd = open(vdev, O_RDWR)) < 0) {
- (void) fprintf(stderr, gettext("Unable to open %s\n"), vdev);
- return (B_FALSE);
+ (void) fprintf(stderr, gettext("failed to open %s: %s\n"),
+ vdev, strerror(errno));
+ return (1);
}
- name = NULL;
- if (zpool_in_use(g_zfs, fd, &state, &name, &inuse) != 0) {
- if (force)
- goto wipe_label;
-
+ if (zpool_read_label(fd, &config) != 0 || config == NULL) {
(void) fprintf(stderr,
- gettext("Unable to determine pool state for %s\n"
- "Use -f to force the clearing any label data\n"), vdev);
-
+ gettext("failed to read label from %s\n"), vdev);
return (1);
}
+ nvlist_free(config);
- if (inuse) {
- switch (state) {
- default:
- case POOL_STATE_ACTIVE:
- case POOL_STATE_SPARE:
- case POOL_STATE_L2CACHE:
- (void) fprintf(stderr,
-gettext("labelclear operation failed.\n"
- "\tVdev %s is a member (%s), of pool \"%s\".\n"
- "\tTo remove label information from this device, export or destroy\n"
- "\tthe pool, or remove %s from the configuration of this pool\n"
- "\tand retry the labelclear operation\n"),
- vdev, zpool_pool_state_to_name(state), name, vdev);
- ret = 1;
- goto errout;
-
- case POOL_STATE_EXPORTED:
- if (force)
- break;
+ ret = zpool_in_use(g_zfs, fd, &state, &name, &inuse);
+ if (ret != 0) {
+ (void) fprintf(stderr,
+ gettext("failed to check state for %s\n"), vdev);
+ return (1);
+ }
- (void) fprintf(stderr,
-gettext("labelclear operation failed.\n"
- "\tVdev %s is a member of the exported pool \"%s\".\n"
- "\tUse \"zpool labelclear -f %s\" to force the removal of label\n"
- "\tinformation.\n"),
- vdev, name, vdev);
- ret = 1;
- goto errout;
+ if (!inuse)
+ goto wipe_label;
- case POOL_STATE_POTENTIALLY_ACTIVE:
- if (force)
- break;
+ switch (state) {
+ default:
+ case POOL_STATE_ACTIVE:
+ case POOL_STATE_SPARE:
+ case POOL_STATE_L2CACHE:
+ (void) fprintf(stderr, gettext(
+ "%s is a member (%s) of pool \"%s\"\n"),
+ vdev, zpool_pool_state_to_name(state), name);
+ ret = 1;
+ goto errout;
- (void) fprintf(stderr,
-gettext("labelclear operation failed.\n"
- "\tVdev %s is a member of the pool \"%s\".\n"
- "\tThis pool is unknown to this system, but may be active on\n"
- "\tanother system. Use \'zpool labelclear -f %s\' to force the\n"
- "\tremoval of label information.\n"),
- vdev, name, vdev);
- ret = 1;
- goto errout;
+ case POOL_STATE_EXPORTED:
+ if (force)
+ break;
+ (void) fprintf(stderr, gettext(
+ "use '-f' to override the following error:\n"
+ "%s is a member of exported pool \"%s\"\n"),
+ vdev, name);
+ ret = 1;
+ goto errout;
- case POOL_STATE_DESTROYED:
- /* inuse should never be set for a destoryed pool... */
+ case POOL_STATE_POTENTIALLY_ACTIVE:
+ if (force)
break;
- }
+ (void) fprintf(stderr, gettext(
+ "use '-f' to override the following error:\n"
+ "%s is a member of potentially active pool \"%s\"\n"),
+ vdev, name);
+ ret = 1;
+ goto errout;
+
+ case POOL_STATE_DESTROYED:
+ /* inuse should never be set for a destroyed pool */
+ assert(0);
+ break;
}
wipe_label:
- if (zpool_clear_label(fd) != 0) {
+ ret = zpool_clear_label(fd);
+ if (ret != 0) {
(void) fprintf(stderr,
- gettext("Label clear failed on vdev %s\n"), vdev);
- ret = 1;
+ gettext("failed to clear label for %s\n"), vdev);
}
errout:
- close(fd);
- if (name != NULL)
- free(name);
+ free(name);
+ (void) close(fd);
return (ret);
}
diff --git a/cddl/contrib/opensolaris/cmd/zpool/zpool_vdev.c b/cddl/contrib/opensolaris/cmd/zpool/zpool_vdev.c
index 227d25a..14f37e1 100644
--- a/cddl/contrib/opensolaris/cmd/zpool/zpool_vdev.c
+++ b/cddl/contrib/opensolaris/cmd/zpool/zpool_vdev.c
@@ -79,8 +79,6 @@
#include "zpool_util.h"
-#define DISK_ROOT "/dev/dsk"
-#define RDISK_ROOT "/dev/rdsk"
#define BACKUP_SLICE "s2"
/*
@@ -384,7 +382,7 @@ is_whole_disk(const char *arg)
char path[MAXPATHLEN];
(void) snprintf(path, sizeof (path), "%s%s%s",
- RDISK_ROOT, strrchr(arg, '/'), BACKUP_SLICE);
+ ZFS_RDISK_ROOT, strrchr(arg, '/'), BACKUP_SLICE);
if ((fd = open(path, O_RDWR | O_NDELAY)) < 0)
return (B_FALSE);
if (efi_alloc_and_init(fd, EFI_NUMPAR, &label) != 0) {
diff --git a/cddl/contrib/opensolaris/lib/libzfs/common/libzfs_import.c b/cddl/contrib/opensolaris/lib/libzfs/common/libzfs_import.c
index 133cc6f..aa2f142 100644
--- a/cddl/contrib/opensolaris/lib/libzfs/common/libzfs_import.c
+++ b/cddl/contrib/opensolaris/lib/libzfs/common/libzfs_import.c
@@ -20,10 +20,10 @@
*/
/*
- * Copyright 2015 Nexenta Systems, Inc. All rights reserved.
* Copyright (c) 2005, 2010, Oracle and/or its affiliates. All rights reserved.
* Copyright (c) 2013 by Delphix. All rights reserved.
* Copyright 2015 RackTop Systems.
+ * Copyright 2016 Nexenta Systems, Inc.
*/
/*
@@ -1099,9 +1099,7 @@ zpool_open_func(void *arg)
}
/*
- * Given a file descriptor, clear (zero) the label information. This function
- * is used in the appliance stack as part of the ZFS sysevent module and
- * to implement the "zpool labelclear" command.
+ * Given a file descriptor, clear (zero) the label information.
*/
int
zpool_clear_label(int fd)
@@ -1168,7 +1166,7 @@ zpool_find_import_impl(libzfs_handle_t *hdl, importargs_t *iarg)
*/
for (i = 0; i < dirs; i++) {
tpool_t *t;
- char *rdsk;
+ char rdsk[MAXPATHLEN];
int dfd;
boolean_t config_failed = B_FALSE;
DIR *dirp;
@@ -1184,15 +1182,17 @@ zpool_find_import_impl(libzfs_handle_t *hdl, importargs_t *iarg)
*end = 0;
pathleft = &path[sizeof (path)] - end;
+#ifdef illumos
/*
* Using raw devices instead of block devices when we're
* reading the labels skips a bunch of slow operations during
* close(2) processing, so we replace /dev/dsk with /dev/rdsk.
*/
- if (strcmp(path, "/dev/dsk/") == 0)
- rdsk = "/dev/";
+ if (strcmp(path, ZFS_DISK_ROOTD) == 0)
+ (void) strlcpy(rdsk, ZFS_RDISK_ROOTD, sizeof (rdsk));
else
- rdsk = path;
+#endif
+ (void) strlcpy(rdsk, path, sizeof (rdsk));
if ((dfd = open64(rdsk, O_RDONLY)) < 0 ||
(dirp = fdopendir(dfd)) == NULL) {
diff --git a/cddl/contrib/opensolaris/lib/libzfs/common/libzfs_pool.c b/cddl/contrib/opensolaris/lib/libzfs/common/libzfs_pool.c
index 4dc48fa..658059c 100644
--- a/cddl/contrib/opensolaris/lib/libzfs/common/libzfs_pool.c
+++ b/cddl/contrib/opensolaris/lib/libzfs/common/libzfs_pool.c
@@ -20,10 +20,10 @@
*/
/*
- * Copyright 2015 Nexenta Systems, Inc. All rights reserved.
* Copyright (c) 2005, 2010, Oracle and/or its affiliates. All rights reserved.
* Copyright (c) 2011, 2015 by Delphix. All rights reserved.
* Copyright (c) 2013, Joyent, Inc. All rights reserved.
+ * Copyright 2016 Nexenta Systems, Inc.
*/
#include <sys/types.h>
@@ -49,8 +49,6 @@
static int read_efi_label(nvlist_t *config, diskaddr_t *sb);
-#define DISK_ROOT "/dev/dsk"
-#define RDISK_ROOT "/dev/rdsk"
#define BACKUP_SLICE "s2"
typedef struct prop_flags {
@@ -2345,7 +2343,7 @@ zpool_relabel_disk(libzfs_handle_t *hdl, const char *name)
"efi_use_whole_disk")) == NULL)
return (-1);
- (void) snprintf(path, sizeof (path), "%s/%s", RDISK_ROOT, name);
+ (void) snprintf(path, sizeof (path), "%s/%s", ZFS_RDISK_ROOT, name);
if ((fd = open(path, O_RDWR | O_NDELAY)) < 0) {
zfs_error_aux(hdl, dgettext(TEXT_DOMAIN, "cannot "
@@ -2421,7 +2419,7 @@ zpool_vdev_online(zpool_handle_t *zhp, const char *path, int flags,
}
if (wholedisk) {
- pathname += strlen(DISK_ROOT) + 1;
+ pathname += strlen(ZFS_DISK_ROOT) + 1;
(void) zpool_relabel_disk(hdl, pathname);
}
}
@@ -3411,8 +3409,8 @@ zpool_vdev_name(libzfs_handle_t *hdl, zpool_handle_t *zhp, nvlist_t *nv,
}
#ifdef illumos
- if (strncmp(path, "/dev/dsk/", 9) == 0)
- path += 9;
+ if (strncmp(path, ZFS_DISK_ROOTD, strlen(ZFS_DISK_ROOTD)) == 0)
+ path += strlen(ZFS_DISK_ROOTD);
if (nvlist_lookup_uint64(nv, ZPOOL_CONFIG_WHOLE_DISK,
&value) == 0 && value) {
@@ -3846,7 +3844,7 @@ read_efi_label(nvlist_t *config, diskaddr_t *sb)
if (nvlist_lookup_string(config, ZPOOL_CONFIG_PATH, &path) != 0)
return (err);
- (void) snprintf(diskname, sizeof (diskname), "%s%s", RDISK_ROOT,
+ (void) snprintf(diskname, sizeof (diskname), "%s%s", ZFS_RDISK_ROOT,
strrchr(path, '/'));
if ((fd = open(diskname, O_RDONLY|O_NDELAY)) >= 0) {
struct dk_gpt *vtoc;
@@ -3931,7 +3929,7 @@ zpool_label_disk(libzfs_handle_t *hdl, zpool_handle_t *zhp, const char *name)
start_block = NEW_START_BLOCK;
}
- (void) snprintf(path, sizeof (path), "%s/%s%s", RDISK_ROOT, name,
+ (void) snprintf(path, sizeof (path), "%s/%s%s", ZFS_RDISK_ROOT, name,
BACKUP_SLICE);
if ((fd = open(path, O_RDWR | O_NDELAY)) < 0) {
diff --git a/contrib/netbsd-tests/lib/libc/sys/t_gettimeofday.c b/contrib/netbsd-tests/lib/libc/sys/t_gettimeofday.c
index 1cf303b..4d82a26 100644
--- a/contrib/netbsd-tests/lib/libc/sys/t_gettimeofday.c
+++ b/contrib/netbsd-tests/lib/libc/sys/t_gettimeofday.c
@@ -46,9 +46,11 @@ ATF_TC_HEAD(gettimeofday_err, tc)
ATF_TC_BODY(gettimeofday_err, tc)
{
+#ifdef __NetBSD__
errno = 0;
ATF_REQUIRE_ERRNO(EFAULT, gettimeofday((void *)-1, NULL) != 0);
+#endif
}
ATF_TC(gettimeofday_mono);
diff --git a/lib/libc/aarch64/gen/Makefile.inc b/lib/libc/aarch64/gen/Makefile.inc
index f138008..fe39136 100644
--- a/lib/libc/aarch64/gen/Makefile.inc
+++ b/lib/libc/aarch64/gen/Makefile.inc
@@ -1,5 +1,7 @@
# $FreeBSD$
+CFLAGS+= -DNO_COMPAT7
+
SRCS+= _ctx_start.S \
fabs.S \
flt_rounds.c \
diff --git a/lib/libc/aarch64/sys/Makefile.inc b/lib/libc/aarch64/sys/Makefile.inc
index b33b568..5a8c595 100644
--- a/lib/libc/aarch64/sys/Makefile.inc
+++ b/lib/libc/aarch64/sys/Makefile.inc
@@ -1,5 +1,7 @@
# $FreeBSD$
+MIASM:= ${MIASM:Nfreebsd[467]_*}
+
SRCS+= __vdso_gettc.c
#MDASM= ptrace.S
diff --git a/lib/libc/db/hash/hash.c b/lib/libc/db/hash/hash.c
index 02503ee..f7b1427 100644
--- a/lib/libc/db/hash/hash.c
+++ b/lib/libc/db/hash/hash.c
@@ -423,7 +423,8 @@ hdestroy(HTAB *hashp)
free(hashp->tmp_buf);
if (hashp->fp != -1) {
- (void)_fsync(hashp->fp);
+ if (hashp->save_file)
+ (void)_fsync(hashp->fp);
(void)_close(hashp->fp);
}
@@ -770,7 +771,7 @@ next_bucket:
if (__big_keydata(hashp, bufp, key, data, 1))
return (ERROR);
} else {
- if (hashp->cpage == 0)
+ if (hashp->cpage == NULL)
return (ERROR);
key->data = (u_char *)hashp->cpage->page + bp[ndx];
key->size = (ndx > 1 ? bp[ndx - 1] : hashp->BSIZE) - bp[ndx];
diff --git a/lib/libc/db/hash/hash_buf.c b/lib/libc/db/hash/hash_buf.c
index e79e7b3..5c62a2c 100644
--- a/lib/libc/db/hash/hash_buf.c
+++ b/lib/libc/db/hash/hash_buf.c
@@ -245,7 +245,7 @@ newbuf(HTAB *hashp, u_int32_t addr, BUFHEAD *prev_bp)
*/
for (xbp = bp; xbp->ovfl;) {
next_xbp = xbp->ovfl;
- xbp->ovfl = 0;
+ xbp->ovfl = NULL;
xbp = next_xbp;
/* Check that ovfl pointer is up date. */
@@ -350,7 +350,7 @@ __buf_free(HTAB *hashp, int do_free, int to_disk)
void
__reclaim_buf(HTAB *hashp, BUFHEAD *bp)
{
- bp->ovfl = 0;
+ bp->ovfl = NULL;
bp->addr = 0;
bp->flags = 0;
BUF_REMOVE(bp);
diff --git a/lib/libc/gen/err.c b/lib/libc/gen/err.c
index a536e5a..3b32c3d 100644
--- a/lib/libc/gen/err.c
+++ b/lib/libc/gen/err.c
@@ -96,7 +96,7 @@ errc(int eval, int code, const char *fmt, ...)
void
verrc(int eval, int code, const char *fmt, va_list ap)
{
- if (err_file == 0)
+ if (err_file == NULL)
err_set_file((FILE *)0);
fprintf(err_file, "%s: ", _getprogname());
if (fmt != NULL) {
@@ -121,7 +121,7 @@ errx(int eval, const char *fmt, ...)
void
verrx(int eval, const char *fmt, va_list ap)
{
- if (err_file == 0)
+ if (err_file == NULL)
err_set_file((FILE *)0);
fprintf(err_file, "%s: ", _getprogname());
if (fmt != NULL)
@@ -161,7 +161,7 @@ warnc(int code, const char *fmt, ...)
void
vwarnc(int code, const char *fmt, va_list ap)
{
- if (err_file == 0)
+ if (err_file == NULL)
err_set_file((FILE *)0);
fprintf(err_file, "%s: ", _getprogname());
if (fmt != NULL) {
@@ -183,7 +183,7 @@ warnx(const char *fmt, ...)
void
vwarnx(const char *fmt, va_list ap)
{
- if (err_file == 0)
+ if (err_file == NULL)
err_set_file((FILE *)0);
fprintf(err_file, "%s: ", _getprogname());
if (fmt != NULL)
diff --git a/lib/libc/gen/getmntinfo.c b/lib/libc/gen/getmntinfo.c
index 99f82aa..606fea7 100644
--- a/lib/libc/gen/getmntinfo.c
+++ b/lib/libc/gen/getmntinfo.c
@@ -56,7 +56,7 @@ getmntinfo(struct statfs **mntbufp, int flags)
if (mntbuf)
free(mntbuf);
bufsize = (mntsize + 1) * sizeof(struct statfs);
- if ((mntbuf = (struct statfs *)malloc(bufsize)) == 0)
+ if ((mntbuf = malloc(bufsize)) == NULL)
return (0);
if ((mntsize = getfsstat(mntbuf, bufsize, flags)) < 0)
return (0);
diff --git a/lib/libc/gen/opendir.c b/lib/libc/gen/opendir.c
index 54928e7..bf4dea3 100644
--- a/lib/libc/gen/opendir.c
+++ b/lib/libc/gen/opendir.c
@@ -209,7 +209,7 @@ _filldir(DIR *dirp, bool use_current_pos)
* On the second pass, save pointers to each one.
* Then sort the pointers and remove duplicate names.
*/
- for (dpv = 0;;) {
+ for (dpv = NULL;;) {
n = 0;
ddptr = buf;
while (ddptr < ddeptr) {
diff --git a/lib/libc/gen/semctl.c b/lib/libc/gen/semctl.c
index c68734d..0e418f6 100644
--- a/lib/libc/gen/semctl.c
+++ b/lib/libc/gen/semctl.c
@@ -29,7 +29,9 @@
#include <sys/cdefs.h>
__FBSDID("$FreeBSD$");
+#ifndef NO_COMPAT7
#define _WANT_SEMUN_OLD
+#endif
#include <sys/types.h>
#include <sys/ipc.h>
@@ -38,8 +40,10 @@ __FBSDID("$FreeBSD$");
#include <stdlib.h>
int __semctl(int semid, int semnum, int cmd, union semun *arg);
+#ifndef NO_COMPAT7
int freebsd7___semctl(int semid, int semnum, int cmd, union semun_old *arg);
int freebsd7_semctl(int semid, int semnum, int cmd, ...);
+#endif
int
semctl(int semid, int semnum, int cmd, ...)
@@ -61,6 +65,7 @@ semctl(int semid, int semnum, int cmd, ...)
return (__semctl(semid, semnum, cmd, semun_ptr));
}
+#ifndef NO_COMPAT7
int
freebsd7_semctl(int semid, int semnum, int cmd, ...)
{
@@ -82,3 +87,4 @@ freebsd7_semctl(int semid, int semnum, int cmd, ...)
}
__sym_compat(semctl, freebsd7_semctl, FBSD_1.0);
+#endif
diff --git a/lib/libc/gen/tls.c b/lib/libc/gen/tls.c
index 7932055..dd1e7df 100644
--- a/lib/libc/gen/tls.c
+++ b/lib/libc/gen/tls.c
@@ -285,7 +285,7 @@ _init_tls(void)
while (*sp++ != 0)
;
aux = (Elf_Auxinfo *) sp;
- phdr = 0;
+ phdr = NULL;
phent = phnum = 0;
for (auxp = aux; auxp->a_type != AT_NULL; auxp++) {
switch (auxp->a_type) {
@@ -302,7 +302,7 @@ _init_tls(void)
break;
}
}
- if (phdr == 0 || phent != sizeof(Elf_Phdr) || phnum == 0)
+ if (phdr == NULL || phent != sizeof(Elf_Phdr) || phnum == 0)
return;
for (i = 0; (unsigned) i < phnum; i++) {
diff --git a/lib/libc/include/compat.h b/lib/libc/include/compat.h
index b20fac5..e83d13c 100644
--- a/lib/libc/include/compat.h
+++ b/lib/libc/include/compat.h
@@ -38,9 +38,11 @@
#define __sym_compat(sym,impl,verid) \
.symver impl, sym@verid
+#ifndef NO_COMPAT7
__sym_compat(__semctl, freebsd7___semctl, FBSD_1.0);
__sym_compat(msgctl, freebsd7_msgctl, FBSD_1.0);
__sym_compat(shmctl, freebsd7_shmctl, FBSD_1.0);
+#endif
#undef __sym_compat
diff --git a/lib/libc/locale/xlocale_private.h b/lib/libc/locale/xlocale_private.h
index 502b548..77b9ff4 100644
--- a/lib/libc/locale/xlocale_private.h
+++ b/lib/libc/locale/xlocale_private.h
@@ -155,12 +155,11 @@ __attribute__((unused)) static void
xlocale_release(void *val)
{
struct xlocale_refcounted *obj = val;
- long count = atomic_fetchadd_long(&(obj->retain_count), -1) - 1;
- if (count < 0) {
- if (0 != obj->destructor) {
- obj->destructor(obj);
- }
- }
+ long count;
+
+ count = atomic_fetchadd_long(&(obj->retain_count), -1) - 1;
+ if (count < 0 && obj->destructor != NULL)
+ obj->destructor(obj);
}
/**
diff --git a/lib/libc/net/base64.c b/lib/libc/net/base64.c
index 8a9c59e..2c4cfe3 100644
--- a/lib/libc/net/base64.c
+++ b/lib/libc/net/base64.c
@@ -210,7 +210,7 @@ b64_pton(const char *src, u_char *target, size_t targsize)
break;
pos = strchr(Base64, ch);
- if (pos == 0) /* A non-base64 character. */
+ if (pos == NULL) /* A non-base64 character. */
return (-1);
switch (state) {
diff --git a/lib/libc/net/getifaddrs.c b/lib/libc/net/getifaddrs.c
index f8633d5..4c04e9e 100644
--- a/lib/libc/net/getifaddrs.c
+++ b/lib/libc/net/getifaddrs.c
@@ -85,7 +85,7 @@ getifaddrs(struct ifaddrs **pif)
size_t needed;
char *buf;
char *next;
- struct ifaddrs *cif = 0;
+ struct ifaddrs *cif;
char *p, *p0;
struct rt_msghdr *rtm;
struct if_msghdrl *ifm;
@@ -214,6 +214,7 @@ getifaddrs(struct ifaddrs **pif)
ift = ifa;
idx = 0;
+ cif = NULL;
for (next = buf; next < buf + needed; next += rtm->rtm_msglen) {
rtm = (struct rt_msghdr *)(void *)next;
if (rtm->rtm_version != RTM_VERSION)
diff --git a/lib/libc/net/getservent.c b/lib/libc/net/getservent.c
index 6a68ef5..45a5355 100644
--- a/lib/libc/net/getservent.c
+++ b/lib/libc/net/getservent.c
@@ -406,14 +406,14 @@ files_servent(void *retval, void *mdata, va_list ap)
continue;
gotname:
- if (proto == 0 || strcmp(serv->s_proto, proto) == 0)
+ if (proto == NULL || strcmp(serv->s_proto, proto) == 0)
rv = NS_SUCCESS;
break;
case nss_lt_id:
if (port != serv->s_port)
continue;
- if (proto == 0 || strcmp(serv->s_proto, proto) == 0)
+ if (proto == NULL || strcmp(serv->s_proto, proto) == 0)
rv = NS_SUCCESS;
break;
case nss_lt_all:
diff --git a/lib/libc/net/rcmd.c b/lib/libc/net/rcmd.c
index c7ca870..7b92f08 100644
--- a/lib/libc/net/rcmd.c
+++ b/lib/libc/net/rcmd.c
@@ -207,7 +207,7 @@ rcmd_af(char **ahost, int rport, const char *locuser, const char *remuser,
}
}
lport--;
- if (fd2p == 0) {
+ if (fd2p == NULL) {
_write(s, "", 1);
lport = 0;
} else {
diff --git a/lib/libc/posix1e/acl_support_nfs4.c b/lib/libc/posix1e/acl_support_nfs4.c
index 1eece98..7dd7f04 100644
--- a/lib/libc/posix1e/acl_support_nfs4.c
+++ b/lib/libc/posix1e/acl_support_nfs4.c
@@ -81,7 +81,7 @@ static const char *
format_flag(uint32_t *var, const struct flagnames_struct *flags)
{
- for (; flags->name != 0; flags++) {
+ for (; flags->name != NULL; flags++) {
if ((flags->flag & *var) == 0)
continue;
diff --git a/lib/libc/resolv/mtctxres.c b/lib/libc/resolv/mtctxres.c
index f02a7f5..c2aea38 100644
--- a/lib/libc/resolv/mtctxres.c
+++ b/lib/libc/resolv/mtctxres.c
@@ -75,7 +75,7 @@ __res_init_ctx(void) {
return (0);
}
- if ((mt = malloc(sizeof (mtctxres_t))) == 0) {
+ if ((mt = malloc(sizeof(mtctxres_t))) == NULL) {
errno = ENOMEM;
return (-1);
}
@@ -94,10 +94,7 @@ __res_init_ctx(void) {
static void
__res_destroy_ctx(void *value) {
- mtctxres_t *mt = (mtctxres_t *)value;
-
- if (mt != 0)
- free(mt);
+ free(value);
}
#endif
@@ -130,9 +127,9 @@ ___mtctxres(void) {
* that fails return a global context.
*/
if (mt_key_initialized) {
- if (((mt = pthread_getspecific(key)) != 0) ||
+ if (((mt = pthread_getspecific(key)) != NULL) ||
(__res_init_ctx() == 0 &&
- (mt = pthread_getspecific(key)) != 0)) {
+ (mt = pthread_getspecific(key)) != NULL)) {
return (mt);
}
}
diff --git a/lib/libc/resolv/res_init.c b/lib/libc/resolv/res_init.c
index 8832342..9856322 100644
--- a/lib/libc/resolv/res_init.c
+++ b/lib/libc/resolv/res_init.c
@@ -315,7 +315,7 @@ __res_vinit(res_state statp, int preinit) {
while (*cp != '\0' && *cp != ' ' && *cp != '\t' && *cp != '\n')
cp++;
*cp = '\0';
- *pp++ = 0;
+ *pp++ = NULL;
}
#define MATCH(line, name) \
@@ -391,7 +391,7 @@ __res_vinit(res_state statp, int preinit) {
while (*cp != '\0' && *cp != ' ' && *cp != '\t')
cp++;
*cp = '\0';
- *pp++ = 0;
+ *pp++ = NULL;
havesearch = 1;
continue;
}
diff --git a/lib/libc/resolv/res_mkupdate.c b/lib/libc/resolv/res_mkupdate.c
index c076c1e5..3ebb242 100644
--- a/lib/libc/resolv/res_mkupdate.c
+++ b/lib/libc/resolv/res_mkupdate.c
@@ -1175,7 +1175,7 @@ res_protocolname(int num) {
if (protolist == (struct valuelist *)0)
res_buildprotolist();
pp = cgetprotobynumber(num);
- if (pp == 0) {
+ if (pp == NULL) {
(void) sprintf(number, "%d", num);
return (number);
}
@@ -1190,7 +1190,7 @@ res_servicename(u_int16_t port, const char *proto) { /*%< Host byte order. */
if (servicelist == (struct valuelist *)0)
res_buildservicelist();
ss = cgetservbyport(htons(port), proto);
- if (ss == 0) {
+ if (ss == NULL) {
(void) sprintf(number, "%d", port);
return (number);
}
diff --git a/lib/libc/rpc/auth_none.c b/lib/libc/rpc/auth_none.c
index 0b846eb..32bebeb 100644
--- a/lib/libc/rpc/auth_none.c
+++ b/lib/libc/rpc/auth_none.c
@@ -83,9 +83,9 @@ authnone_create(void)
XDR *xdrs;
mutex_lock(&authnone_lock);
- if (ap == 0) {
- ap = (struct authnone_private *)calloc(1, sizeof (*ap));
- if (ap == 0) {
+ if (ap == NULL) {
+ ap = calloc(1, sizeof (*ap));
+ if (ap == NULL) {
mutex_unlock(&authnone_lock);
return (0);
}
diff --git a/lib/libc/rpc/clnt_perror.c b/lib/libc/rpc/clnt_perror.c
index 15d7280..d674fbb 100644
--- a/lib/libc/rpc/clnt_perror.c
+++ b/lib/libc/rpc/clnt_perror.c
@@ -64,8 +64,8 @@ static char *
_buf(void)
{
- if (buf == 0)
- buf = (char *)malloc(CLNT_PERROR_BUFLEN);
+ if (buf == NULL)
+ buf = malloc(CLNT_PERROR_BUFLEN);
return (buf);
}
@@ -85,7 +85,7 @@ clnt_sperror(CLIENT *rpch, const char *s)
assert(s != NULL);
str = _buf(); /* side effect: sets CLNT_PERROR_BUFLEN */
- if (str == 0)
+ if (str == NULL)
return (0);
len = CLNT_PERROR_BUFLEN;
strstart = str;
@@ -240,7 +240,7 @@ clnt_spcreateerror(const char *s)
assert(s != NULL);
str = _buf(); /* side effect: sets CLNT_PERROR_BUFLEN */
- if (str == 0)
+ if (str == NULL)
return(0);
len = CLNT_PERROR_BUFLEN;
i = snprintf(str, len, "%s: ", s);
diff --git a/lib/libc/rpc/mt_misc.c b/lib/libc/rpc/mt_misc.c
index 0ec4d8a..a1b8057 100644
--- a/lib/libc/rpc/mt_misc.c
+++ b/lib/libc/rpc/mt_misc.c
@@ -95,7 +95,7 @@ rce_key_init(void)
struct rpc_createerr *
__rpc_createerr(void)
{
- struct rpc_createerr *rce_addr = 0;
+ struct rpc_createerr *rce_addr = NULL;
if (thr_main())
return (&rpc_createerr);
diff --git a/lib/libc/rpc/rpcdname.c b/lib/libc/rpc/rpcdname.c
index f214b21..08b5d7d 100644
--- a/lib/libc/rpc/rpcdname.c
+++ b/lib/libc/rpc/rpcdname.c
@@ -43,20 +43,20 @@ __FBSDID("$FreeBSD$");
#include <string.h>
#include "un-namespace.h"
-static char *default_domain = 0;
+static char *default_domain;
static char *
get_default_domain(void)
{
char temp[256];
- if (default_domain)
+ if (default_domain != NULL)
return (default_domain);
if (getdomainname(temp, sizeof(temp)) < 0)
return (0);
if ((int) strlen(temp) > 0) {
- default_domain = (char *)malloc((strlen(temp)+(unsigned)1));
- if (default_domain == 0)
+ default_domain = malloc((strlen(temp) + (unsigned)1));
+ if (default_domain == NULL)
return (0);
(void) strcpy(default_domain, temp);
return (default_domain);
@@ -73,7 +73,7 @@ get_default_domain(void)
int
__rpc_get_default_domain(char **domain)
{
- if ((*domain = get_default_domain()) != 0)
+ if ((*domain = get_default_domain()) != NULL)
return (0);
return (-1);
}
diff --git a/lib/libc/softfloat/timesoftfloat.c b/lib/libc/softfloat/timesoftfloat.c
index 98b6ba2..b97c8b0 100644
--- a/lib/libc/softfloat/timesoftfloat.c
+++ b/lib/libc/softfloat/timesoftfloat.c
@@ -2068,14 +2068,14 @@ static void
roundingPrecisionName = "80";
}
else {
- roundingPrecisionName = 0;
+ roundingPrecisionName = NULL;
}
#ifdef FLOATX80
floatx80_rounding_precision = roundingPrecision;
#endif
switch ( roundingMode ) {
case 0:
- roundingModeName = 0;
+ roundingModeName = NULL;
roundingCode = float_round_nearest_even;
break;
case ROUND_NEAREST_EVEN:
@@ -2098,7 +2098,7 @@ static void
float_rounding_mode = roundingCode;
switch ( tininessMode ) {
case 0:
- tininessModeName = 0;
+ tininessModeName = NULL;
tininessCode = float_tininess_after_rounding;
break;
case TININESS_BEFORE_ROUNDING:
diff --git a/lib/libc/uuid/uuid_to_string.c b/lib/libc/uuid/uuid_to_string.c
index f816391..35f8581 100644
--- a/lib/libc/uuid/uuid_to_string.c
+++ b/lib/libc/uuid/uuid_to_string.c
@@ -49,7 +49,7 @@ uuid_to_string(const uuid_t *u, char **s, uint32_t *status)
*status = uuid_s_ok;
/* Why allow a NULL-pointer here? */
- if (s == 0)
+ if (s == NULL)
return;
if (u == NULL) {
diff --git a/lib/libc/xdr/xdr_mem.c b/lib/libc/xdr/xdr_mem.c
index 0455a5a..ecefb2e 100644
--- a/lib/libc/xdr/xdr_mem.c
+++ b/lib/libc/xdr/xdr_mem.c
@@ -215,7 +215,7 @@ xdrmem_setpos(XDR *xdrs, u_int pos)
static int32_t *
xdrmem_inline_aligned(XDR *xdrs, u_int len)
{
- int32_t *buf = 0;
+ int32_t *buf = NULL;
if (xdrs->x_handy >= len) {
xdrs->x_handy -= len;
diff --git a/lib/libedit/filecomplete.c b/lib/libedit/filecomplete.c
index 10d44e4..4527302 100644
--- a/lib/libedit/filecomplete.c
+++ b/lib/libedit/filecomplete.c
@@ -471,7 +471,7 @@ fn_complete(EditLine *el,
/* these can be used by function called in completion_matches() */
/* or (*attempted_completion_function)() */
- if (point != 0)
+ if (point != NULL)
*point = (int)(li->cursor - li->buffer);
if (end != NULL)
*end = (int)(li->lastchar - li->buffer);
@@ -483,7 +483,7 @@ fn_complete(EditLine *el,
&el->el_scratch),
cur_off - (int)len, cur_off);
} else
- matches = 0;
+ matches = NULL;
if (!attempted_completion_function ||
(over != NULL && !*over && !matches))
matches = completion_matches(
diff --git a/lib/libedit/vi.c b/lib/libedit/vi.c
index 0a426fd..6b0a775 100644
--- a/lib/libedit/vi.c
+++ b/lib/libedit/vi.c
@@ -1088,7 +1088,7 @@ vi_history_word(EditLine *el, Int c __attribute__((__unused__)))
if (wp == NULL)
return CC_ERROR;
- wep = wsp = 0;
+ wep = wsp = NULL;
do {
while (Isspace(*wp))
wp++;
@@ -1101,7 +1101,7 @@ vi_history_word(EditLine *el, Int c __attribute__((__unused__)))
} while ((!el->el_state.doingarg || --el->el_state.argument > 0)
&& *wp != 0);
- if (wsp == 0 || (el->el_state.doingarg && el->el_state.argument != 0))
+ if (wsp == NULL || (el->el_state.doingarg && el->el_state.argument != 0))
return CC_ERROR;
cv_undo(el);
diff --git a/lib/libfetch/ftp.c b/lib/libfetch/ftp.c
index 4e650b9..dd58c0d 100644
--- a/lib/libfetch/ftp.c
+++ b/lib/libfetch/ftp.c
@@ -929,7 +929,7 @@ ftp_authenticate(conn_t *conn, struct url *url, struct url *purl)
if (*pwd == '\0')
pwd = getenv("FTP_PASSWORD");
if (pwd == NULL || *pwd == '\0') {
- if ((logname = getlogin()) == 0)
+ if ((logname = getlogin()) == NULL)
logname = FTP_ANONYMOUS_USER;
if ((len = snprintf(pbuf, MAXLOGNAME + 1, "%s@", logname)) < 0)
len = 0;
diff --git a/lib/libpam/modules/pam_krb5/pam_krb5.c b/lib/libpam/modules/pam_krb5/pam_krb5.c
index 19592e3..8c72e28 100644
--- a/lib/libpam/modules/pam_krb5/pam_krb5.c
+++ b/lib/libpam/modules/pam_krb5/pam_krb5.c
@@ -860,7 +860,7 @@ verify_krb_v5_tgt(krb5_context context, krb5_ccache ccache,
services[0] = "host";
services[1] = pam_service;
services[2] = NULL;
- keyblock = 0;
+ keyblock = NULL;
retval = -1;
for (service = &services[0]; *service != NULL; service++) {
retval = krb5_sname_to_principal(context, NULL, *service,
diff --git a/lib/libpam/modules/pam_login_access/login_access.c b/lib/libpam/modules/pam_login_access/login_access.c
index dacb9d7..9b6d257 100644
--- a/lib/libpam/modules/pam_login_access/login_access.c
+++ b/lib/libpam/modules/pam_login_access/login_access.c
@@ -124,7 +124,7 @@ list_match(char *list, const char *item,
* the match is affected by any exceptions.
*/
- for (tok = strtok(list, sep); tok != 0; tok = strtok((char *) 0, sep)) {
+ for (tok = strtok(list, sep); tok != NULL; tok = strtok((char *) 0, sep)) {
if (strcasecmp(tok, "EXCEPT") == 0) /* EXCEPT: give up */
break;
if ((match = (*match_fn)(tok, item)) != 0) /* YES */
@@ -135,7 +135,7 @@ list_match(char *list, const char *item,
if (match != NO) {
while ((tok = strtok((char *) 0, sep)) && strcasecmp(tok, "EXCEPT"))
/* VOID */ ;
- if (tok == 0 || list_match((char *) 0, item, match_fn) == NO)
+ if (tok == NULL || list_match((char *) 0, item, match_fn) == NO)
return (match);
}
return (NO);
diff --git a/lib/libthr/thread/thr_affinity.c b/lib/libthr/thread/thr_affinity.c
index 7e9b0f9..e76ca2a 100644
--- a/lib/libthr/thread/thr_affinity.c
+++ b/lib/libthr/thread/thr_affinity.c
@@ -22,11 +22,11 @@
* 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 <sys/cdefs.h>
+__FBSDID("$FreeBSD$");
+
#include "namespace.h"
#include <pthread_np.h>
#include <sys/param.h>
diff --git a/lib/libthr/thread/thr_attr.c b/lib/libthr/thread/thr_attr.c
index 0cac528..ff9eb2d5 100644
--- a/lib/libthr/thread/thr_attr.c
+++ b/lib/libthr/thread/thr_attr.c
@@ -89,10 +89,11 @@
* 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 <sys/cdefs.h>
+__FBSDID("$FreeBSD$");
+
#include "namespace.h"
#include <errno.h>
#include <pthread.h>
diff --git a/lib/libthr/thread/thr_autoinit.c b/lib/libthr/thread/thr_autoinit.c
index c425569..7d9e52c 100644
--- a/lib/libthr/thread/thr_autoinit.c
+++ b/lib/libthr/thread/thr_autoinit.c
@@ -29,10 +29,11 @@
* 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 <sys/cdefs.h>
+__FBSDID("$FreeBSD$");
+
#include <pthread.h>
#include "thr_private.h"
diff --git a/lib/libthr/thread/thr_barrier.c b/lib/libthr/thread/thr_barrier.c
index 45ca41a..dd8f48e 100644
--- a/lib/libthr/thread/thr_barrier.c
+++ b/lib/libthr/thread/thr_barrier.c
@@ -22,10 +22,11 @@
* 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 <sys/cdefs.h>
+__FBSDID("$FreeBSD$");
+
#include "namespace.h"
#include <errno.h>
#include <stdlib.h>
@@ -34,6 +35,9 @@
#include "thr_private.h"
+_Static_assert(sizeof(struct pthread_barrier) <= PAGE_SIZE,
+ "pthread_barrier is too large for off-page");
+
__weak_reference(_pthread_barrier_init, pthread_barrier_init);
__weak_reference(_pthread_barrier_wait, pthread_barrier_wait);
__weak_reference(_pthread_barrier_destroy, pthread_barrier_destroy);
diff --git a/lib/libthr/thread/thr_barrierattr.c b/lib/libthr/thread/thr_barrierattr.c
index e98a66f..acaa059 100644
--- a/lib/libthr/thread/thr_barrierattr.c
+++ b/lib/libthr/thread/thr_barrierattr.c
@@ -24,10 +24,11 @@
* 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 <sys/cdefs.h>
+__FBSDID("$FreeBSD$");
+
#include "namespace.h"
#include <errno.h>
#include <stdlib.h>
diff --git a/lib/libthr/thread/thr_cancel.c b/lib/libthr/thread/thr_cancel.c
index beae707..c080931 100644
--- a/lib/libthr/thread/thr_cancel.c
+++ b/lib/libthr/thread/thr_cancel.c
@@ -22,11 +22,11 @@
* 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 <sys/cdefs.h>
+__FBSDID("$FreeBSD$");
+
#include "namespace.h"
#include <pthread.h>
#include "un-namespace.h"
diff --git a/lib/libthr/thread/thr_clean.c b/lib/libthr/thread/thr_clean.c
index f200726..62e3db2 100644
--- a/lib/libthr/thread/thr_clean.c
+++ b/lib/libthr/thread/thr_clean.c
@@ -25,10 +25,11 @@
* 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 <sys/cdefs.h>
+__FBSDID("$FreeBSD$");
+
#include "namespace.h"
#include <signal.h>
#include <errno.h>
diff --git a/lib/libthr/thread/thr_concurrency.c b/lib/libthr/thread/thr_concurrency.c
index 61f0c4a..24714e6 100644
--- a/lib/libthr/thread/thr_concurrency.c
+++ b/lib/libthr/thread/thr_concurrency.c
@@ -28,10 +28,11 @@
* 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 <sys/cdefs.h>
+__FBSDID("$FreeBSD$");
+
#include "namespace.h"
#include <errno.h>
#include <pthread.h>
diff --git a/lib/libthr/thread/thr_cond.c b/lib/libthr/thread/thr_cond.c
index 934f9a0..0e37b70 100644
--- a/lib/libthr/thread/thr_cond.c
+++ b/lib/libthr/thread/thr_cond.c
@@ -26,10 +26,11 @@
* 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 <sys/cdefs.h>
+__FBSDID("$FreeBSD$");
+
#include "namespace.h"
#include <stdlib.h>
#include <errno.h>
@@ -40,6 +41,9 @@
#include "thr_private.h"
+_Static_assert(sizeof(struct pthread_cond) <= PAGE_SIZE,
+ "pthread_cond too large");
+
/*
* Prototypes
*/
diff --git a/lib/libthr/thread/thr_condattr.c b/lib/libthr/thread/thr_condattr.c
index 7ce827b..906ea77 100644
--- a/lib/libthr/thread/thr_condattr.c
+++ b/lib/libthr/thread/thr_condattr.c
@@ -25,10 +25,11 @@
* 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 <sys/cdefs.h>
+__FBSDID("$FreeBSD$");
+
#include "namespace.h"
#include <stdlib.h>
#include <string.h>
diff --git a/lib/libthr/thread/thr_create.c b/lib/libthr/thread/thr_create.c
index 81a95da..ee2c727 100644
--- a/lib/libthr/thread/thr_create.c
+++ b/lib/libthr/thread/thr_create.c
@@ -23,10 +23,11 @@
* 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 <sys/cdefs.h>
+__FBSDID("$FreeBSD$");
+
#include "namespace.h"
#include <sys/types.h>
#include <sys/rtprio.h>
diff --git a/lib/libthr/thread/thr_detach.c b/lib/libthr/thread/thr_detach.c
index c494f7c..f03731f 100644
--- a/lib/libthr/thread/thr_detach.c
+++ b/lib/libthr/thread/thr_detach.c
@@ -23,11 +23,11 @@
* 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 <sys/cdefs.h>
+__FBSDID("$FreeBSD$");
+
#include "namespace.h"
#include <sys/types.h>
#include <errno.h>
diff --git a/lib/libthr/thread/thr_equal.c b/lib/libthr/thread/thr_equal.c
index 2f602b5..a9eed8c 100644
--- a/lib/libthr/thread/thr_equal.c
+++ b/lib/libthr/thread/thr_equal.c
@@ -25,9 +25,11 @@
* 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 <sys/cdefs.h>
+__FBSDID("$FreeBSD$");
+
#include "namespace.h"
#include <pthread.h>
#include "un-namespace.h"
diff --git a/lib/libthr/thread/thr_event.c b/lib/libthr/thread/thr_event.c
index 716d21e..982f86a 100644
--- a/lib/libthr/thread/thr_event.c
+++ b/lib/libthr/thread/thr_event.c
@@ -22,10 +22,11 @@
* 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 <sys/cdefs.h>
+__FBSDID("$FreeBSD$");
+
#include "thr_private.h"
void
diff --git a/lib/libthr/thread/thr_exit.c b/lib/libthr/thread/thr_exit.c
index 7001311..e76623c 100644
--- a/lib/libthr/thread/thr_exit.c
+++ b/lib/libthr/thread/thr_exit.c
@@ -25,10 +25,11 @@
* 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 <sys/cdefs.h>
+__FBSDID("$FreeBSD$");
+
#include "namespace.h"
#include <errno.h>
#ifdef _PTHREAD_FORCED_UNWIND
diff --git a/lib/libthr/thread/thr_fork.c b/lib/libthr/thread/thr_fork.c
index 531e09c..1a646b0 100644
--- a/lib/libthr/thread/thr_fork.c
+++ b/lib/libthr/thread/thr_fork.c
@@ -23,8 +23,6 @@
* 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$
*/
/*
@@ -57,6 +55,9 @@
*
*/
+#include <sys/cdefs.h>
+__FBSDID("$FreeBSD$");
+
#include <sys/syscall.h>
#include "namespace.h"
#include <errno.h>
diff --git a/lib/libthr/thread/thr_getcpuclockid.c b/lib/libthr/thread/thr_getcpuclockid.c
index b4ec666..1ad6a08 100644
--- a/lib/libthr/thread/thr_getcpuclockid.c
+++ b/lib/libthr/thread/thr_getcpuclockid.c
@@ -22,10 +22,11 @@
* 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 <sys/cdefs.h>
+__FBSDID("$FreeBSD$");
+
#include "namespace.h"
#include <errno.h>
#include <pthread.h>
diff --git a/lib/libthr/thread/thr_getprio.c b/lib/libthr/thread/thr_getprio.c
index f0d1a296..033f4f5 100644
--- a/lib/libthr/thread/thr_getprio.c
+++ b/lib/libthr/thread/thr_getprio.c
@@ -25,9 +25,11 @@
* 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 <sys/cdefs.h>
+__FBSDID("$FreeBSD$");
+
#include "namespace.h"
#include <errno.h>
#include <pthread.h>
diff --git a/lib/libthr/thread/thr_getschedparam.c b/lib/libthr/thread/thr_getschedparam.c
index ff6c3ab..04ff399 100644
--- a/lib/libthr/thread/thr_getschedparam.c
+++ b/lib/libthr/thread/thr_getschedparam.c
@@ -28,10 +28,11 @@
* 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 <sys/cdefs.h>
+__FBSDID("$FreeBSD$");
+
#include "namespace.h"
#include <sys/types.h>
#include <sys/rtprio.h>
diff --git a/lib/libthr/thread/thr_getthreadid_np.c b/lib/libthr/thread/thr_getthreadid_np.c
index f963a56..e7b496e 100644
--- a/lib/libthr/thread/thr_getthreadid_np.c
+++ b/lib/libthr/thread/thr_getthreadid_np.c
@@ -21,10 +21,11 @@
* 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 <sys/cdefs.h>
+__FBSDID("$FreeBSD$");
+
#include "namespace.h"
#include <pthread.h>
#include <pthread_np.h>
diff --git a/lib/libthr/thread/thr_info.c b/lib/libthr/thread/thr_info.c
index 350c848..4e4f41e 100644
--- a/lib/libthr/thread/thr_info.c
+++ b/lib/libthr/thread/thr_info.c
@@ -25,10 +25,11 @@
* 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 <sys/cdefs.h>
+__FBSDID("$FreeBSD$");
+
#include "namespace.h"
#include <stdlib.h>
#include <string.h>
diff --git a/lib/libthr/thread/thr_init.c b/lib/libthr/thread/thr_init.c
index c9f30ab..c852406 100644
--- a/lib/libthr/thread/thr_init.c
+++ b/lib/libthr/thread/thr_init.c
@@ -29,10 +29,11 @@
* 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 <sys/cdefs.h>
+__FBSDID("$FreeBSD$");
+
#include "namespace.h"
#include <sys/types.h>
#include <sys/signalvar.h>
diff --git a/lib/libthr/thread/thr_join.c b/lib/libthr/thread/thr_join.c
index a39ff67..42bd749 100644
--- a/lib/libthr/thread/thr_join.c
+++ b/lib/libthr/thread/thr_join.c
@@ -22,11 +22,11 @@
* 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 <sys/cdefs.h>
+__FBSDID("$FreeBSD$");
+
#include "namespace.h"
#include <errno.h>
#include <pthread.h>
diff --git a/lib/libthr/thread/thr_kern.c b/lib/libthr/thread/thr_kern.c
index b5a8358..6463f1d 100644
--- a/lib/libthr/thread/thr_kern.c
+++ b/lib/libthr/thread/thr_kern.c
@@ -23,10 +23,11 @@
* 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 <sys/cdefs.h>
+__FBSDID("$FreeBSD$");
+
#include <sys/types.h>
#include <sys/signalvar.h>
#include <sys/rtprio.h>
diff --git a/lib/libthr/thread/thr_kill.c b/lib/libthr/thread/thr_kill.c
index 8b0f683..15928b1 100644
--- a/lib/libthr/thread/thr_kill.c
+++ b/lib/libthr/thread/thr_kill.c
@@ -25,10 +25,11 @@
* 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 <sys/cdefs.h>
+__FBSDID("$FreeBSD$");
+
#include "namespace.h"
#include <errno.h>
#include <signal.h>
diff --git a/lib/libthr/thread/thr_list.c b/lib/libthr/thread/thr_list.c
index d27d87d..ae1f124 100644
--- a/lib/libthr/thread/thr_list.c
+++ b/lib/libthr/thread/thr_list.c
@@ -23,10 +23,11 @@
* 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 <sys/cdefs.h>
+__FBSDID("$FreeBSD$");
+
#include <sys/types.h>
#include <sys/queue.h>
diff --git a/lib/libthr/thread/thr_main_np.c b/lib/libthr/thread/thr_main_np.c
index bfa8b87..9558adf 100644
--- a/lib/libthr/thread/thr_main_np.c
+++ b/lib/libthr/thread/thr_main_np.c
@@ -23,10 +23,11 @@
* 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 <sys/cdefs.h>
+__FBSDID("$FreeBSD$");
+
#include "namespace.h"
#include <pthread.h>
#include <pthread_np.h>
@@ -37,10 +38,10 @@
__weak_reference(_pthread_main_np, pthread_main_np);
/*
- * Provide the equivelant to Solaris thr_main() function
+ * Provide the equivalent to Solaris thr_main() function.
*/
int
-_pthread_main_np()
+_pthread_main_np(void)
{
if (!_thr_initial)
diff --git a/lib/libthr/thread/thr_multi_np.c b/lib/libthr/thread/thr_multi_np.c
index 339a21d..74379f5 100644
--- a/lib/libthr/thread/thr_multi_np.c
+++ b/lib/libthr/thread/thr_multi_np.c
@@ -25,10 +25,11 @@
* 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 <sys/cdefs.h>
+__FBSDID("$FreeBSD$");
+
#include "namespace.h"
#include <pthread.h>
#include <pthread_np.h>
@@ -37,7 +38,7 @@
__weak_reference(_pthread_multi_np, pthread_multi_np);
int
-_pthread_multi_np()
+_pthread_multi_np(void)
{
/* Return to multi-threaded scheduling mode: */
diff --git a/lib/libthr/thread/thr_mutex.c b/lib/libthr/thread/thr_mutex.c
index 865e4cf..28fd9ee 100644
--- a/lib/libthr/thread/thr_mutex.c
+++ b/lib/libthr/thread/thr_mutex.c
@@ -34,10 +34,11 @@
* 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 <sys/cdefs.h>
+__FBSDID("$FreeBSD$");
+
#include <stdbool.h>
#include "namespace.h"
#include <stdlib.h>
@@ -51,6 +52,9 @@
#include "thr_private.h"
+_Static_assert(sizeof(struct pthread_mutex) <= PAGE_SIZE,
+ "pthread_mutex is too large for off-page");
+
/*
* For adaptive mutexes, how many times to spin doing trylock2
* before entering the kernel to block
diff --git a/lib/libthr/thread/thr_mutexattr.c b/lib/libthr/thread/thr_mutexattr.c
index fa349cf..a9e07c2 100644
--- a/lib/libthr/thread/thr_mutexattr.c
+++ b/lib/libthr/thread/thr_mutexattr.c
@@ -25,8 +25,6 @@
* 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$
*/
/*
@@ -59,6 +57,9 @@
*
*/
+#include <sys/cdefs.h>
+__FBSDID("$FreeBSD$");
+
#include "namespace.h"
#include <string.h>
#include <stdlib.h>
diff --git a/lib/libthr/thread/thr_once.c b/lib/libthr/thread/thr_once.c
index 208b703..80739da 100644
--- a/lib/libthr/thread/thr_once.c
+++ b/lib/libthr/thread/thr_once.c
@@ -22,11 +22,11 @@
* 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 <sys/cdefs.h>
+__FBSDID("$FreeBSD$");
+
#include "namespace.h"
#include <pthread.h>
#include "un-namespace.h"
diff --git a/lib/libthr/thread/thr_printf.c b/lib/libthr/thread/thr_printf.c
index a64b446..ed94287 100644
--- a/lib/libthr/thread/thr_printf.c
+++ b/lib/libthr/thread/thr_printf.c
@@ -22,10 +22,11 @@
* 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 <sys/cdefs.h>
+__FBSDID("$FreeBSD$");
+
#include <stdarg.h>
#include <string.h>
#include <unistd.h>
diff --git a/lib/libthr/thread/thr_pspinlock.c b/lib/libthr/thread/thr_pspinlock.c
index 1c9b412..1c83b25 100644
--- a/lib/libthr/thread/thr_pspinlock.c
+++ b/lib/libthr/thread/thr_pspinlock.c
@@ -26,10 +26,11 @@
* 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 <sys/cdefs.h>
+__FBSDID("$FreeBSD$");
+
#include "namespace.h"
#include <errno.h>
#include <stdlib.h>
@@ -38,6 +39,9 @@
#include "thr_private.h"
+_Static_assert(sizeof(struct pthread_spinlock) <= PAGE_SIZE,
+ "pthread_spinlock is too large for off-page");
+
#define SPIN_COUNT 100000
__weak_reference(_pthread_spin_init, pthread_spin_init);
diff --git a/lib/libthr/thread/thr_resume_np.c b/lib/libthr/thread/thr_resume_np.c
index 53377da..d11e328 100644
--- a/lib/libthr/thread/thr_resume_np.c
+++ b/lib/libthr/thread/thr_resume_np.c
@@ -25,10 +25,11 @@
* 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 <sys/cdefs.h>
+__FBSDID("$FreeBSD$");
+
#include "namespace.h"
#include <errno.h>
#include <pthread.h>
diff --git a/lib/libthr/thread/thr_rtld.c b/lib/libthr/thread/thr_rtld.c
index 6c407d1..6f5347d 100644
--- a/lib/libthr/thread/thr_rtld.c
+++ b/lib/libthr/thread/thr_rtld.c
@@ -22,11 +22,11 @@
* 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 <sys/cdefs.h>
+__FBSDID("$FreeBSD$");
+
/*
* A lockless rwlock for rtld.
*/
diff --git a/lib/libthr/thread/thr_rwlock.c b/lib/libthr/thread/thr_rwlock.c
index aadd0e9..748eb52 100644
--- a/lib/libthr/thread/thr_rwlock.c
+++ b/lib/libthr/thread/thr_rwlock.c
@@ -22,10 +22,11 @@
* 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 <sys/cdefs.h>
+__FBSDID("$FreeBSD$");
+
#include <errno.h>
#include <limits.h>
#include <stdlib.h>
@@ -35,6 +36,9 @@
#include "un-namespace.h"
#include "thr_private.h"
+_Static_assert(sizeof(struct pthread_rwlock) <= PAGE_SIZE,
+ "pthread_rwlock is too large for off-page");
+
__weak_reference(_pthread_rwlock_destroy, pthread_rwlock_destroy);
__weak_reference(_pthread_rwlock_init, pthread_rwlock_init);
__weak_reference(_pthread_rwlock_rdlock, pthread_rwlock_rdlock);
diff --git a/lib/libthr/thread/thr_rwlockattr.c b/lib/libthr/thread/thr_rwlockattr.c
index b9e442e..56174ed 100644
--- a/lib/libthr/thread/thr_rwlockattr.c
+++ b/lib/libthr/thread/thr_rwlockattr.c
@@ -22,10 +22,11 @@
* 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 <sys/cdefs.h>
+__FBSDID("$FreeBSD$");
+
#include "namespace.h"
#include <errno.h>
#include <stdlib.h>
diff --git a/lib/libthr/thread/thr_self.c b/lib/libthr/thread/thr_self.c
index 72cda7e..65ad631 100644
--- a/lib/libthr/thread/thr_self.c
+++ b/lib/libthr/thread/thr_self.c
@@ -25,10 +25,11 @@
* 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 <sys/cdefs.h>
+__FBSDID("$FreeBSD$");
+
#include "namespace.h"
#include <pthread.h>
#include "un-namespace.h"
diff --git a/lib/libthr/thread/thr_sem.c b/lib/libthr/thread/thr_sem.c
index f20bde3..a8b02ac 100644
--- a/lib/libthr/thread/thr_sem.c
+++ b/lib/libthr/thread/thr_sem.c
@@ -26,10 +26,11 @@
* 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 <sys/cdefs.h>
+__FBSDID("$FreeBSD$");
+
#include "namespace.h"
#include <sys/types.h>
#include <sys/queue.h>
diff --git a/lib/libthr/thread/thr_setprio.c b/lib/libthr/thread/thr_setprio.c
index 4b7d2c0..6f8a009 100644
--- a/lib/libthr/thread/thr_setprio.c
+++ b/lib/libthr/thread/thr_setprio.c
@@ -25,10 +25,11 @@
* 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 <sys/cdefs.h>
+__FBSDID("$FreeBSD$");
+
#include "namespace.h"
#include <pthread.h>
#include "un-namespace.h"
diff --git a/lib/libthr/thread/thr_setschedparam.c b/lib/libthr/thread/thr_setschedparam.c
index 6e98fb4..4db09e7 100644
--- a/lib/libthr/thread/thr_setschedparam.c
+++ b/lib/libthr/thread/thr_setschedparam.c
@@ -28,10 +28,11 @@
* 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 <sys/cdefs.h>
+__FBSDID("$FreeBSD$");
+
#include "namespace.h"
#include <sys/param.h>
#include <errno.h>
diff --git a/lib/libthr/thread/thr_sig.c b/lib/libthr/thread/thr_sig.c
index ebb6c58..ce7e70b 100644
--- a/lib/libthr/thread/thr_sig.c
+++ b/lib/libthr/thread/thr_sig.c
@@ -22,10 +22,11 @@
* 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 <sys/cdefs.h>
+__FBSDID("$FreeBSD$");
+
#include "namespace.h"
#include <sys/param.h>
#include <sys/types.h>
diff --git a/lib/libthr/thread/thr_single_np.c b/lib/libthr/thread/thr_single_np.c
index 81bdf8c..32bc586 100644
--- a/lib/libthr/thread/thr_single_np.c
+++ b/lib/libthr/thread/thr_single_np.c
@@ -25,10 +25,11 @@
* 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 <sys/cdefs.h>
+__FBSDID("$FreeBSD$");
+
#include "namespace.h"
#include <pthread.h>
#include <pthread_np.h>
@@ -36,7 +37,8 @@
__weak_reference(_pthread_single_np, pthread_single_np);
-int _pthread_single_np()
+int
+_pthread_single_np(void)
{
/* Enter single-threaded (non-POSIX) scheduling mode: */
diff --git a/lib/libthr/thread/thr_sleepq.c b/lib/libthr/thread/thr_sleepq.c
index c5dcac5..5ecd6f9 100644
--- a/lib/libthr/thread/thr_sleepq.c
+++ b/lib/libthr/thread/thr_sleepq.c
@@ -22,10 +22,11 @@
* 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 <sys/cdefs.h>
+__FBSDID("$FreeBSD$");
+
#include <stdlib.h>
#include "thr_private.h"
diff --git a/lib/libthr/thread/thr_spec.c b/lib/libthr/thread/thr_spec.c
index b53c4b7..46d4ddf 100644
--- a/lib/libthr/thread/thr_spec.c
+++ b/lib/libthr/thread/thr_spec.c
@@ -25,10 +25,11 @@
* 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 <sys/cdefs.h>
+__FBSDID("$FreeBSD$");
+
#include "namespace.h"
#include <sys/mman.h>
#include <signal.h>
diff --git a/lib/libthr/thread/thr_spinlock.c b/lib/libthr/thread/thr_spinlock.c
index 380d10d..6639612 100644
--- a/lib/libthr/thread/thr_spinlock.c
+++ b/lib/libthr/thread/thr_spinlock.c
@@ -25,11 +25,11 @@
* 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 <sys/cdefs.h>
+__FBSDID("$FreeBSD$");
+
#include <sys/types.h>
#include <pthread.h>
#include <libc_private.h>
diff --git a/lib/libthr/thread/thr_stack.c b/lib/libthr/thread/thr_stack.c
index 74e1329..3510a74 100644
--- a/lib/libthr/thread/thr_stack.c
+++ b/lib/libthr/thread/thr_stack.c
@@ -23,10 +23,11 @@
* 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 <sys/cdefs.h>
+__FBSDID("$FreeBSD$");
+
#include <sys/types.h>
#include <sys/mman.h>
#include <sys/queue.h>
diff --git a/lib/libthr/thread/thr_suspend_np.c b/lib/libthr/thread/thr_suspend_np.c
index 284619d..48d4bc1 100644
--- a/lib/libthr/thread/thr_suspend_np.c
+++ b/lib/libthr/thread/thr_suspend_np.c
@@ -25,10 +25,11 @@
* 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 <sys/cdefs.h>
+__FBSDID("$FreeBSD$");
+
#include "namespace.h"
#include <errno.h>
#include <pthread.h>
diff --git a/lib/libthr/thread/thr_switch_np.c b/lib/libthr/thread/thr_switch_np.c
index f6ffb07..4380386 100644
--- a/lib/libthr/thread/thr_switch_np.c
+++ b/lib/libthr/thread/thr_switch_np.c
@@ -28,10 +28,11 @@
* 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 <sys/cdefs.h>
+__FBSDID("$FreeBSD$");
+
#include "namespace.h"
#include <errno.h>
#include <pthread.h>
diff --git a/lib/libthr/thread/thr_symbols.c b/lib/libthr/thread/thr_symbols.c
index ea323c5..9eef8db 100644
--- a/lib/libthr/thread/thr_symbols.c
+++ b/lib/libthr/thread/thr_symbols.c
@@ -25,10 +25,11 @@
* 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 <sys/cdefs.h>
+__FBSDID("$FreeBSD$");
+
#include <sys/types.h>
#include <stddef.h>
#include <pthread.h>
diff --git a/lib/libthr/thread/thr_umtx.c b/lib/libthr/thread/thr_umtx.c
index 37e5df1..ebf344b 100644
--- a/lib/libthr/thread/thr_umtx.c
+++ b/lib/libthr/thread/thr_umtx.c
@@ -22,11 +22,11 @@
* 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 <sys/cdefs.h>
+__FBSDID("$FreeBSD$");
+
#include "thr_private.h"
#include "thr_umtx.h"
diff --git a/lib/libthr/thread/thr_yield.c b/lib/libthr/thread/thr_yield.c
index c3f68f2..1739495 100644
--- a/lib/libthr/thread/thr_yield.c
+++ b/lib/libthr/thread/thr_yield.c
@@ -25,10 +25,11 @@
* 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 <sys/cdefs.h>
+__FBSDID("$FreeBSD$");
+
#include "namespace.h"
#include <pthread.h>
#include <sched.h>
diff --git a/lib/libusb/libusb20.c b/lib/libusb/libusb20.c
index 1de3a26..2eb75f1 100644
--- a/lib/libusb/libusb20.c
+++ b/lib/libusb/libusb20.c
@@ -139,8 +139,8 @@ libusb20_tr_close(struct libusb20_transfer *xfer)
free(xfer->ppBuffer);
}
/* reset variable fields in case the transfer is opened again */
- xfer->priv_sc0 = 0;
- xfer->priv_sc1 = 0;
+ xfer->priv_sc0 = NULL;
+ xfer->priv_sc1 = NULL;
xfer->is_opened = 0;
xfer->is_pending = 0;
xfer->is_cancel = 0;
diff --git a/lib/libusbhid/descr.c b/lib/libusbhid/descr.c
index 0c66342..4ca9dd7 100644
--- a/lib/libusbhid/descr.c
+++ b/lib/libusbhid/descr.c
@@ -159,7 +159,7 @@ hid_use_report_desc(unsigned char *data, unsigned int size)
report_desc_t r;
r = malloc(sizeof(*r) + size);
- if (r == 0) {
+ if (r == NULL) {
errno = ENOMEM;
return (NULL);
}
diff --git a/lib/libusbhid/usage.c b/lib/libusbhid/usage.c
index eeff818..3960dad 100644
--- a/lib/libusbhid/usage.c
+++ b/lib/libusbhid/usage.c
@@ -77,9 +77,9 @@ hid_init(const char *hidname)
char line[100], name[100], *p, *n;
int no;
int lineno;
- struct usage_page *curpage = 0;
+ struct usage_page *curpage = NULL;
- if (hidname == 0)
+ if (hidname == NULL)
hidname = _PATH_HIDTABLE;
f = fopen(hidname, "r");
@@ -124,7 +124,7 @@ hid_init(const char *hidname)
curpage->pagesize++;
} else {
if (npages >= npagesmax) {
- if (pages == 0) {
+ if (pages == NULL) {
npagesmax = 5;
pages = malloc(npagesmax *
sizeof (struct usage_page));
diff --git a/sbin/fsck_msdosfs/dir.c b/sbin/fsck_msdosfs/dir.c
index e8d6475..d20762b 100644
--- a/sbin/fsck_msdosfs/dir.c
+++ b/sbin/fsck_msdosfs/dir.c
@@ -925,6 +925,7 @@ int
reconnect(int dosfs, struct bootblock *boot, struct fatEntry *fat, cl_t head)
{
struct dosDirEntry d;
+ int len;
u_char *p;
if (!ask(1, "Reconnect"))
@@ -976,14 +977,15 @@ reconnect(int dosfs, struct bootblock *boot, struct fatEntry *fat, cl_t head)
boot->NumFiles++;
/* Ensure uniqueness of entry here! XXX */
memset(&d, 0, sizeof d);
- (void)snprintf(d.name, sizeof(d.name), "%u", head);
+ /* worst case -1 = 4294967295, 10 digits */
+ len = snprintf(d.name, sizeof(d.name), "%u", head);
d.flags = 0;
d.head = head;
d.size = fat[head].length * boot->ClusterSize;
- memset(p, 0, 32);
- memset(p, ' ', 11);
- memcpy(p, d.name, strlen(d.name));
+ memcpy(p, d.name, len);
+ memset(p + len, ' ', 11 - len);
+ memset(p + 11, 0, 32 - 11);
p[26] = (u_char)d.head;
p[27] = (u_char)(d.head >> 8);
if (boot->ClustMask == CLUST32_MASK) {
diff --git a/sbin/geom/class/eli/geli.8 b/sbin/geom/class/eli/geli.8
index ed425da..e8a1ef0 100644
--- a/sbin/geom/class/eli/geli.8
+++ b/sbin/geom/class/eli/geli.8
@@ -51,7 +51,7 @@ utility:
.Pp
.Nm
.Cm init
-.Op Fl bPTv
+.Op Fl bgPTv
.Op Fl a Ar aalgo
.Op Fl B Ar backupfile
.Op Fl e Ar ealgo
@@ -88,7 +88,7 @@ utility:
.Ar prov
.Nm
.Cm configure
-.Op Fl bBtT
+.Op Fl bBgGtT
.Ar prov ...
.Nm
.Cm setkey
@@ -293,6 +293,11 @@ The default and recommended algorithm is
.Nm AES-XTS .
.Nm NULL
is unencrypted.
+.It Fl g
+Enable booting from this encrypted root filesystem.
+The boot loader prompts for the passphrase and loads
+.Xr loader 8
+from the encrypted partition.
.It Fl i Ar iterations
Number of iterations to use with PKCS#5v2 when processing User Key
passphrase component.
@@ -485,6 +490,13 @@ For more information, see the description of the
subcommand.
.It Fl B
Remove the BOOT flag from the given providers.
+.It Fl g
+Enable booting from this encrypted root filesystem.
+The boot loader prompts for the passphrase and loads
+.Xr loader 8
+from the encrypted partition.
+.It Fl G
+Deactivate booting from this encrypted root partition.
.It Fl t
Enable TRIM/UNMAP passthru.
For more information, see the description of the
diff --git a/sbin/geom/class/eli/geom_eli.c b/sbin/geom/class/eli/geom_eli.c
index 0c6ca2c..c804622 100644
--- a/sbin/geom/class/eli/geom_eli.c
+++ b/sbin/geom/class/eli/geom_eli.c
@@ -82,13 +82,13 @@ static int eli_backup_create(struct gctl_req *req, const char *prov,
/*
* Available commands:
*
- * init [-bhPv] [-a aalgo] [-B backupfile] [-e ealgo] [-i iterations] [-l keylen] [-J newpassfile] [-K newkeyfile] [-V version] prov
+ * init [-bgPTv] [-a aalgo] [-B backupfile] [-e ealgo] [-i iterations] [-l keylen] [-J newpassfile] [-K newkeyfile] [-s sectorsize] [-V version] prov
* label - alias for 'init'
* attach [-dprv] [-j passfile] [-k keyfile] prov
* detach [-fl] prov ...
* stop - alias for 'detach'
* onetime [-d] [-a aalgo] [-e ealgo] [-l keylen] prov
- * configure [-bB] prov ...
+ * configure [-bBgGtT] prov ...
* setkey [-pPv] [-n keyno] [-j passfile] [-J newpassfile] [-k keyfile] [-K newkeyfile] prov
* delkey [-afv] [-n keyno] prov
* suspend [-v] -a | prov ...
@@ -108,6 +108,7 @@ struct g_command class_commands[] = {
{ 'b', "boot", NULL, G_TYPE_BOOL },
{ 'B', "backupfile", "", G_TYPE_STRING },
{ 'e', "ealgo", "", G_TYPE_STRING },
+ { 'g', "geliboot", NULL, G_TYPE_BOOL },
{ 'i', "iterations", "-1", G_TYPE_NUMBER },
{ 'J', "newpassfile", G_VAL_OPTIONAL, G_TYPE_STRING | G_TYPE_MULTI },
{ 'K', "newkeyfile", G_VAL_OPTIONAL, G_TYPE_STRING | G_TYPE_MULTI },
@@ -118,7 +119,7 @@ struct g_command class_commands[] = {
{ 'V', "mdversion", "-1", G_TYPE_NUMBER },
G_OPT_SENTINEL
},
- "[-bPTv] [-a aalgo] [-B backupfile] [-e ealgo] [-i iterations] [-l keylen] [-J newpassfile] [-K newkeyfile] [-s sectorsize] [-V version] prov"
+ "[-bgPTv] [-a aalgo] [-B backupfile] [-e ealgo] [-i iterations] [-l keylen] [-J newpassfile] [-K newkeyfile] [-s sectorsize] [-V version] prov"
},
{ "label", G_FLAG_VERBOSE, eli_main,
{
@@ -126,6 +127,7 @@ struct g_command class_commands[] = {
{ 'b', "boot", NULL, G_TYPE_BOOL },
{ 'B', "backupfile", "", G_TYPE_STRING },
{ 'e', "ealgo", "", G_TYPE_STRING },
+ { 'g', "geliboot", NULL, G_TYPE_BOOL },
{ 'i', "iterations", "-1", G_TYPE_NUMBER },
{ 'J', "newpassfile", G_VAL_OPTIONAL, G_TYPE_STRING | G_TYPE_MULTI },
{ 'K', "newkeyfile", G_VAL_OPTIONAL, G_TYPE_STRING | G_TYPE_MULTI },
@@ -180,11 +182,13 @@ struct g_command class_commands[] = {
{
{ 'b', "boot", NULL, G_TYPE_BOOL },
{ 'B', "noboot", NULL, G_TYPE_BOOL },
+ { 'g', "geliboot", NULL, G_TYPE_BOOL },
+ { 'G', "nogeliboot", NULL, G_TYPE_BOOL },
{ 't', "trim", NULL, G_TYPE_BOOL },
{ 'T', "notrim", NULL, G_TYPE_BOOL },
G_OPT_SENTINEL
},
- "[-bBtT] prov ..."
+ "[-bBgGtT] prov ..."
},
{ "setkey", G_FLAG_VERBOSE, eli_main,
{
@@ -702,6 +706,8 @@ eli_init(struct gctl_req *req)
md.md_flags = 0;
if (gctl_get_int(req, "boot"))
md.md_flags |= G_ELI_FLAG_BOOT;
+ if (gctl_get_int(req, "geliboot"))
+ md.md_flags |= G_ELI_FLAG_GELIBOOT;
if (gctl_get_int(req, "notrim"))
md.md_flags |= G_ELI_FLAG_NODELETE;
md.md_ealgo = CRYPTO_ALGORITHM_MIN - 1;
@@ -906,7 +912,7 @@ eli_attach(struct gctl_req *req)
static void
eli_configure_detached(struct gctl_req *req, const char *prov, int boot,
- int trim)
+ int geliboot, int trim)
{
struct g_eli_metadata md;
bool changed = 0;
@@ -928,6 +934,20 @@ eli_configure_detached(struct gctl_req *req, const char *prov, int boot,
changed = 1;
}
+ if (geliboot == 1 && (md.md_flags & G_ELI_FLAG_GELIBOOT)) {
+ if (verbose)
+ printf("GELIBOOT flag already configured for %s.\n", prov);
+ } else if (geliboot == 0 && !(md.md_flags & G_ELI_FLAG_GELIBOOT)) {
+ if (verbose)
+ printf("GELIBOOT flag not configured for %s.\n", prov);
+ } else if (geliboot >= 0) {
+ if (geliboot)
+ md.md_flags |= G_ELI_FLAG_GELIBOOT;
+ else
+ md.md_flags &= ~G_ELI_FLAG_GELIBOOT;
+ changed = 1;
+ }
+
if (trim == 0 && (md.md_flags & G_ELI_FLAG_NODELETE)) {
if (verbose)
printf("TRIM disable flag already configured for %s.\n", prov);
@@ -951,8 +971,8 @@ static void
eli_configure(struct gctl_req *req)
{
const char *prov;
- bool boot, noboot, trim, notrim;
- int doboot, dotrim;
+ bool boot, noboot, geliboot, nogeliboot, trim, notrim;
+ int doboot, dogeliboot, dotrim;
int i, nargs;
nargs = gctl_get_int(req, "nargs");
@@ -963,6 +983,8 @@ eli_configure(struct gctl_req *req)
boot = gctl_get_int(req, "boot");
noboot = gctl_get_int(req, "noboot");
+ geliboot = gctl_get_int(req, "geliboot");
+ nogeliboot = gctl_get_int(req, "nogeliboot");
trim = gctl_get_int(req, "trim");
notrim = gctl_get_int(req, "notrim");
@@ -976,6 +998,16 @@ eli_configure(struct gctl_req *req)
else if (noboot)
doboot = 0;
+ dogeliboot = -1;
+ if (geliboot && nogeliboot) {
+ gctl_error(req, "Options -g and -G are mutually exclusive.");
+ return;
+ }
+ if (geliboot)
+ dogeliboot = 1;
+ else if (nogeliboot)
+ dogeliboot = 0;
+
dotrim = -1;
if (trim && notrim) {
gctl_error(req, "Options -t and -T are mutually exclusive.");
@@ -986,7 +1018,7 @@ eli_configure(struct gctl_req *req)
else if (notrim)
dotrim = 0;
- if (doboot == -1 && dotrim == -1) {
+ if (doboot == -1 && dogeliboot == -1 && dotrim == -1) {
gctl_error(req, "No option given.");
return;
}
@@ -997,7 +1029,7 @@ eli_configure(struct gctl_req *req)
for (i = 0; i < nargs; i++) {
prov = gctl_get_ascii(req, "arg%d", i);
if (!eli_is_attached(prov))
- eli_configure_detached(req, prov, doboot, dotrim);
+ eli_configure_detached(req, prov, doboot, dogeliboot, dotrim);
}
}
diff --git a/sbin/geom/class/part/geom_part.c b/sbin/geom/class/part/geom_part.c
index 44309f9..4f57f00 100644
--- a/sbin/geom/class/part/geom_part.c
+++ b/sbin/geom/class/part/geom_part.c
@@ -1126,6 +1126,7 @@ gpart_write_partcode(struct ggeom *gp, int idx, void *code, ssize_t size)
err(EXIT_FAILURE, "%s", dsf);
free(buf);
close(fd);
+ printf("partcode written to %s\n", pp->lg_name);
} else
errx(EXIT_FAILURE, "invalid partition index");
}
@@ -1172,6 +1173,9 @@ gpart_write_partcode_vtoc8(struct ggeom *gp, int idx, void *code)
}
if (installed == 0)
errx(EXIT_FAILURE, "%s: no partitions", gp->lg_name);
+ else
+ printf("partcode written to %s\n",
+ idx != 0 ? pp->lg_name: gp->lg_name);
}
static void
@@ -1193,10 +1197,8 @@ gpart_bootcode(struct gctl_req *req, unsigned int fl)
bootcode);
if (error)
errc(EXIT_FAILURE, error, "internal error");
- } else {
+ } else
bootcode = NULL;
- bootsize = 0;
- }
s = gctl_get_ascii(req, "class");
if (s == NULL)
@@ -1220,21 +1222,23 @@ gpart_bootcode(struct gctl_req *req, unsigned int fl)
s = find_geomcfg(gp, "scheme");
if (s == NULL)
errx(EXIT_FAILURE, "Scheme not found for geom %s", gp->lg_name);
- vtoc8 = 0;
if (strcmp(s, "VTOC8") == 0)
vtoc8 = 1;
+ else
+ vtoc8 = 0;
if (gctl_has_param(req, GPART_PARAM_PARTCODE)) {
s = gctl_get_ascii(req, GPART_PARAM_PARTCODE);
- partsize = vtoc8 != 0 ? VTOC_BOOTSIZE : bootsize * 1024;
+ if (vtoc8 != 0)
+ partsize = VTOC_BOOTSIZE;
+ else
+ partsize = 1024 * 1024; /* Arbitrary limit. */
partcode = gpart_bootfile_read(s, &partsize);
error = gctl_delete_param(req, GPART_PARAM_PARTCODE);
if (error)
errc(EXIT_FAILURE, error, "internal error");
- } else {
+ } else
partcode = NULL;
- partsize = 0;
- }
if (gctl_has_param(req, GPART_PARAM_INDEX)) {
if (partcode == NULL)
diff --git a/sbin/reboot/nextboot.8 b/sbin/reboot/nextboot.8
index df46a0c..d006c3f 100644
--- a/sbin/reboot/nextboot.8
+++ b/sbin/reboot/nextboot.8
@@ -24,7 +24,7 @@
.\"
.\" $FreeBSD$
.\"
-.Dd March 17, 2015
+.Dd April 9, 2016
.Dt NEXTBOOT 8
.Os
.Sh NAME
@@ -32,6 +32,7 @@
.Nd "specify an alternate kernel and boot flags for the next reboot"
.Sh SYNOPSIS
.Nm
+.Op Fl a
.Op Fl e Ar variable=value
.Op Fl f
.Op Fl k Ar kernel
@@ -53,6 +54,12 @@ configuration.
.Pp
The options are as follows:
.Bl -tag -width ".Fl o Ar options"
+.It Fl a
+This option causes
+.Nm
+to append to an existing configuration in
+.Pa /boot/nextboot.conf .
+By default any existing configuration is overwritten.
.It Fl D
Invoking
.Nm
diff --git a/sbin/reboot/nextboot.sh b/sbin/reboot/nextboot.sh
index 655e533..a90fdeb 100644
--- a/sbin/reboot/nextboot.sh
+++ b/sbin/reboot/nextboot.sh
@@ -26,6 +26,7 @@
#
# $FreeBSD$
+append="NO"
delete="NO"
kenv=
force="NO"
@@ -48,12 +49,17 @@ add_kenv()
}
display_usage() {
- echo "Usage: nextboot [-e variable=value] [-f] [-k kernel] [-o options]"
- echo " nextboot -D"
+ cat <<-EOF
+ Usage: nextboot [-e variable=value] [-f] [-k kernel] [-o options]
+ nextboot -D
+ EOF
}
-while getopts "De:fk:o:" argument ; do
+while getopts "aDe:fk:o:" argument ; do
case "${argument}" in
+ a)
+ append="YES"
+ ;;
D)
delete="YES"
;;
@@ -106,7 +112,19 @@ df -Tn "/boot/" 2>/dev/null | while read _fs _type _other ; do
EOF
done
-cat > ${nextboot_file} << EOF
+set -e
+
+nextboot_tmp=$(mktemp $(dirname ${nextboot_file})/nextboot.XXXXXX)
+
+if [ ${append} = "YES" -a -f ${nextboot_file} ]; then
+ cp -f ${nextboot_file} ${nextboot_tmp}
+fi
+
+cat >> ${nextboot_tmp} << EOF
nextboot_enable="YES"
$kenv
EOF
+
+fsync ${nextboot_tmp}
+
+mv ${nextboot_tmp} ${nextboot_file}
diff --git a/sys/amd64/cloudabi64/cloudabi64_sysvec.c b/sys/amd64/cloudabi64/cloudabi64_sysvec.c
index 16d3ef9..b94c0ef 100644
--- a/sys/amd64/cloudabi64/cloudabi64_sysvec.c
+++ b/sys/amd64/cloudabi64/cloudabi64_sysvec.c
@@ -27,6 +27,7 @@
__FBSDID("$FreeBSD$");
#include <sys/param.h>
+#include <sys/imgact.h>
#include <sys/kernel.h>
#include <sys/proc.h>
#include <sys/sysent.h>
@@ -47,6 +48,45 @@ extern const char *cloudabi64_syscallnames[];
extern struct sysent cloudabi64_sysent[];
static int
+cloudabi64_fixup_tcb(register_t **stack_base, struct image_params *imgp)
+{
+ int error;
+ register_t tcbptr;
+
+ /* Place auxiliary vector and TCB on the stack. */
+ error = cloudabi64_fixup(stack_base, imgp);
+ if (error != 0)
+ return (error);
+
+ /*
+ * On x86-64, the TCB is referred to by %fs:0. Take some space
+ * from the top of the stack to store a single element array,
+ * containing a pointer to the TCB. %fs base will point to this.
+ */
+ tcbptr = (register_t)*stack_base;
+ return (copyout(&tcbptr, --*stack_base, sizeof(tcbptr)));
+}
+
+static void
+cloudabi64_proc_setregs(struct thread *td, struct image_params *imgp,
+ unsigned long stack)
+{
+ struct trapframe *regs;
+
+ exec_setregs(td, imgp, stack);
+
+ /*
+ * The stack now contains a pointer to the TCB, the TCB itself,
+ * and the auxiliary vector. Let %rdx point to the auxiliary
+ * vector, and set %fs base to the address of the TCB.
+ */
+ regs = td->td_frame;
+ regs->tf_rdi = stack + sizeof(register_t) +
+ roundup(sizeof(cloudabi64_tcb_t), sizeof(register_t));
+ (void)cpu_set_user_tls(td, (void *)stack);
+}
+
+static int
cloudabi64_fetch_syscall_args(struct thread *td, struct syscall_args *sa)
{
struct trapframe *frame = td->td_frame;
@@ -109,16 +149,29 @@ cloudabi64_schedtail(struct thread *td)
frame->tf_rdx = td->td_tid;
}
-void
+int
cloudabi64_thread_setregs(struct thread *td,
- const cloudabi64_threadattr_t *attr)
+ const cloudabi64_threadattr_t *attr, uint64_t tcb)
{
struct trapframe *frame;
stack_t stack;
+ uint64_t tcbptr;
+ int error;
+
+ /*
+ * On x86-64, the TCB is referred to by %fs:0. Take some space
+ * from the top of the stack to store a single element array,
+ * containing a pointer to the TCB. %fs base will point to this.
+ */
+ tcbptr = rounddown(attr->stack + attr->stack_size - sizeof(tcbptr),
+ _Alignof(tcbptr));
+ error = copyout(&tcb, (void *)tcbptr, sizeof(tcb));
+ if (error != 0)
+ return (error);
/* Perform standard register initialization. */
stack.ss_sp = (void *)attr->stack;
- stack.ss_size = attr->stack_size;
+ stack.ss_size = tcbptr - attr->stack;
cpu_set_upcall_kse(td, (void *)attr->entry_point, NULL, &stack);
/*
@@ -129,12 +182,14 @@ cloudabi64_thread_setregs(struct thread *td,
frame = td->td_frame;
frame->tf_rdi = td->td_tid;
frame->tf_rsi = attr->argument;
+
+ return (cpu_set_user_tls(td, (void *)tcbptr));
}
static struct sysentvec cloudabi64_elf_sysvec = {
.sv_size = CLOUDABI64_SYS_MAXSYSCALL,
.sv_table = cloudabi64_sysent,
- .sv_fixup = cloudabi64_fixup,
+ .sv_fixup = cloudabi64_fixup_tcb,
.sv_name = "CloudABI ELF64",
.sv_coredump = elf64_coredump,
.sv_pagesize = PAGE_SIZE,
@@ -143,6 +198,7 @@ static struct sysentvec cloudabi64_elf_sysvec = {
.sv_usrstack = USRSTACK,
.sv_stackprot = VM_PROT_READ | VM_PROT_WRITE,
.sv_copyout_strings = cloudabi64_copyout_strings,
+ .sv_setregs = cloudabi64_proc_setregs,
.sv_flags = SV_ABI_CLOUDABI | SV_CAPSICUM | SV_LP64,
.sv_set_syscall_retval = cloudabi64_set_syscall_retval,
.sv_fetch_syscall_args = cloudabi64_fetch_syscall_args,
diff --git a/sys/amd64/vmm/amd/svm_msr.c b/sys/amd64/vmm/amd/svm_msr.c
index 088751a..49208a3 100644
--- a/sys/amd64/vmm/amd/svm_msr.c
+++ b/sys/amd64/vmm/amd/svm_msr.c
@@ -156,6 +156,11 @@ svm_wrmsr(struct svm_softc *sc, int vcpu, u_int num, uint64_t val, bool *retu)
* Ignore writes to the "Interrupt Pending Message" MSR.
*/
break;
+ case MSR_K8_UCODE_UPDATE:
+ /*
+ * Ignore writes to microcode update register.
+ */
+ break;
default:
error = EINVAL;
break;
diff --git a/sys/arm/allwinner/a10_ahci.c b/sys/arm/allwinner/a10_ahci.c
index a6c5f5d..009ef5f 100644
--- a/sys/arm/allwinner/a10_ahci.c
+++ b/sys/arm/allwinner/a10_ahci.c
@@ -47,7 +47,7 @@ __FBSDID("$FreeBSD$");
#include <dev/ofw/ofw_bus_subr.h>
#include <dev/ahci/ahci.h>
-#include <arm/allwinner/a10_clk.h>
+#include <dev/extres/clk/clk.h>
/*
* Allwinner a1x/a2x/a8x SATA attachment. This is just the AHCI register
@@ -117,6 +117,8 @@ __FBSDID("$FreeBSD$");
#define AHCI_P0PHYCR 0x0078
#define AHCI_P0PHYSR 0x007C
+#define PLL_FREQ 100000000
+
static void inline
ahci_set(struct resource *m, bus_size_t off, uint32_t set)
{
@@ -295,8 +297,11 @@ ahci_a10_attach(device_t dev)
{
int error;
struct ahci_controller *ctlr;
+ clk_t clk_pll, clk_gate;
ctlr = device_get_softc(dev);
+ clk_pll = clk_gate = NULL;
+
ctlr->quirks = AHCI_Q_NOPMP;
ctlr->vendorid = 0;
ctlr->deviceid = 0;
@@ -307,15 +312,36 @@ ahci_a10_attach(device_t dev)
&ctlr->r_rid, RF_ACTIVE)))
return (ENXIO);
- /* Turn on the PLL for SATA */
- a10_clk_ahci_activate();
-
+ /* Enable clocks */
+ error = clk_get_by_ofw_index(dev, 0, &clk_pll);
+ if (error != 0) {
+ device_printf(dev, "Cannot get PLL clock\n");
+ goto fail;
+ }
+ error = clk_get_by_ofw_index(dev, 1, &clk_gate);
+ if (error != 0) {
+ device_printf(dev, "Cannot get gate clock\n");
+ goto fail;
+ }
+ error = clk_set_freq(clk_pll, PLL_FREQ, CLK_SET_ROUND_DOWN);
+ if (error != 0) {
+ device_printf(dev, "Cannot set PLL frequency\n");
+ goto fail;
+ }
+ error = clk_enable(clk_pll);
+ if (error != 0) {
+ device_printf(dev, "Cannot enable PLL\n");
+ goto fail;
+ }
+ error = clk_enable(clk_gate);
+ if (error != 0) {
+ device_printf(dev, "Cannot enable clk gate\n");
+ goto fail;
+ }
+
/* Reset controller */
- if ((error = ahci_a10_ctlr_reset(dev)) != 0) {
- bus_release_resource(dev, SYS_RES_MEMORY, ctlr->r_rid,
- ctlr->r_mem);
- return (error);
- };
+ if ((error = ahci_a10_ctlr_reset(dev)) != 0)
+ goto fail;
/*
* No MSI registers on this platform.
@@ -330,6 +356,14 @@ ahci_a10_attach(device_t dev)
* Note: ahci_attach will release ctlr->r_mem on errors automatically
*/
return (ahci_attach(dev));
+
+fail:
+ if (clk_gate != NULL)
+ clk_release(clk_gate);
+ if (clk_pll != NULL)
+ clk_release(clk_pll);
+ bus_release_resource(dev, SYS_RES_MEMORY, ctlr->r_rid, ctlr->r_mem);
+ return (error);
}
static int
diff --git a/sys/arm/allwinner/a10_clk.c b/sys/arm/allwinner/a10_clk.c
deleted file mode 100644
index 46bd6ad..0000000
--- a/sys/arm/allwinner/a10_clk.c
+++ /dev/null
@@ -1,862 +0,0 @@
-/*-
- * Copyright (c) 2013 Ganbold Tsagaankhuu <ganbold@freebsd.org>
- * 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.
- */
-
-/* Simple clock driver for Allwinner A10 */
-
-#include <sys/cdefs.h>
-__FBSDID("$FreeBSD$");
-
-#include <sys/param.h>
-#include <sys/systm.h>
-#include <sys/bus.h>
-#include <sys/kernel.h>
-#include <sys/module.h>
-#include <sys/malloc.h>
-#include <sys/rman.h>
-#include <machine/bus.h>
-
-#include <dev/ofw/openfirm.h>
-#include <dev/ofw/ofw_bus_subr.h>
-
-#include "a10_clk.h"
-
-#define TCON_PLL_WORST 1000000
-#define TCON_PLL_N_MIN 1
-#define TCON_PLL_N_MAX 15
-#define TCON_PLL_M_MIN 9
-#define TCON_PLL_M_MAX 127
-#define TCON_PLLREF_SINGLE 3000 /* kHz */
-#define TCON_PLLREF_DOUBLE 6000 /* kHz */
-#define TCON_RATE_KHZ(rate_hz) ((rate_hz) / 1000)
-#define TCON_RATE_HZ(rate_khz) ((rate_khz) * 1000)
-#define HDMI_DEFAULT_RATE 297000000
-#define DEBE_DEFAULT_RATE 300000000
-
-struct a10_ccm_softc {
- struct resource *res;
- bus_space_tag_t bst;
- bus_space_handle_t bsh;
- struct mtx mtx;
- int pll6_enabled;
- int ehci_cnt;
- int ohci_cnt;
- int usbphy_cnt;
- int usb_cnt;
-};
-
-static struct a10_ccm_softc *a10_ccm_sc = NULL;
-
-static int a10_clk_usbphy_activate(struct a10_ccm_softc *sc);
-static int a10_clk_usbphy_deactivate(struct a10_ccm_softc *sc);
-static int a10_clk_usb_activate(struct a10_ccm_softc *sc);
-static int a10_clk_usb_deactivate(struct a10_ccm_softc *sc);
-
-#define CCM_LOCK(sc) mtx_lock(&(sc)->mtx);
-#define CCM_UNLOCK(sc) mtx_unlock(&(sc)->mtx);
-#define CCM_LOCK_ASSERT(sc) mtx_assert(&(sc)->mtx, MA_OWNED)
-#define ccm_read_4(sc, reg) \
- bus_space_read_4((sc)->bst, (sc)->bsh, (reg))
-#define ccm_write_4(sc, reg, val) \
- bus_space_write_4((sc)->bst, (sc)->bsh, (reg), (val))
-
-static int
-a10_ccm_probe(device_t dev)
-{
-
- if (!ofw_bus_status_okay(dev))
- return (ENXIO);
-
- if (ofw_bus_is_compatible(dev, "allwinner,sun4i-ccm")) {
- device_set_desc(dev, "Allwinner Clock Control Module");
- return(BUS_PROBE_DEFAULT);
- }
-
- return (ENXIO);
-}
-
-static int
-a10_ccm_attach(device_t dev)
-{
- struct a10_ccm_softc *sc = device_get_softc(dev);
- int rid = 0;
-
- if (a10_ccm_sc)
- return (ENXIO);
-
- sc->res = bus_alloc_resource_any(dev, SYS_RES_MEMORY, &rid, RF_ACTIVE);
- if (!sc->res) {
- device_printf(dev, "could not allocate resource\n");
- return (ENXIO);
- }
-
- sc->bst = rman_get_bustag(sc->res);
- sc->bsh = rman_get_bushandle(sc->res);
-
- mtx_init(&sc->mtx, "a10_ccm", NULL, MTX_DEF);
-
- a10_ccm_sc = sc;
-
- return (0);
-}
-
-static device_method_t a10_ccm_methods[] = {
- DEVMETHOD(device_probe, a10_ccm_probe),
- DEVMETHOD(device_attach, a10_ccm_attach),
- { 0, 0 }
-};
-
-static driver_t a10_ccm_driver = {
- "a10_ccm",
- a10_ccm_methods,
- sizeof(struct a10_ccm_softc),
-};
-
-static devclass_t a10_ccm_devclass;
-
-EARLY_DRIVER_MODULE(a10_ccm, simplebus, a10_ccm_driver, a10_ccm_devclass, 0, 0,
- BUS_PASS_TIMER + BUS_PASS_ORDER_MIDDLE);
-
-int
-a10_clk_ehci_activate(void)
-{
- struct a10_ccm_softc *sc = a10_ccm_sc;
- uint32_t reg_value;
-
- if (sc == NULL)
- return (ENXIO);
-
- CCM_LOCK(sc);
-
- if (++sc->ehci_cnt == 1) {
- /* Gating AHB clock for USB */
- reg_value = ccm_read_4(sc, CCM_AHB_GATING0);
- reg_value |= CCM_AHB_GATING_EHCI0; /* AHB clock gate ehci0 */
- reg_value |= CCM_AHB_GATING_EHCI1; /* AHB clock gate ehci1 */
- ccm_write_4(sc, CCM_AHB_GATING0, reg_value);
- }
-
- a10_clk_usb_activate(sc);
- a10_clk_usbphy_activate(sc);
-
- CCM_UNLOCK(sc);
-
- return (0);
-}
-
-int
-a10_clk_ehci_deactivate(void)
-{
- struct a10_ccm_softc *sc = a10_ccm_sc;
- uint32_t reg_value;
-
- if (sc == NULL)
- return (ENXIO);
-
- CCM_LOCK(sc);
-
- if (--sc->ehci_cnt == 0) {
- /* Disable gating AHB clock for USB */
- reg_value = ccm_read_4(sc, CCM_AHB_GATING0);
- reg_value &= ~CCM_AHB_GATING_EHCI0; /* disable AHB clock gate ehci0 */
- reg_value &= ~CCM_AHB_GATING_EHCI1; /* disable AHB clock gate ehci1 */
- ccm_write_4(sc, CCM_AHB_GATING0, reg_value);
- }
-
- a10_clk_usb_deactivate(sc);
- a10_clk_usbphy_deactivate(sc);
-
- CCM_UNLOCK(sc);
-
- return (0);
-}
-
-int
-a10_clk_ohci_activate(void)
-{
- struct a10_ccm_softc *sc = a10_ccm_sc;
- uint32_t reg_value;
-
- if (sc == NULL)
- return (ENXIO);
-
- CCM_LOCK(sc);
-
- if (++sc->ohci_cnt == 1) {
- /* Gating AHB clock for USB */
- reg_value = ccm_read_4(sc, CCM_AHB_GATING0);
- reg_value |= CCM_AHB_GATING_OHCI0; /* AHB clock gate ohci0 */
- reg_value |= CCM_AHB_GATING_OHCI1; /* AHB clock gate ohci1 */
- ccm_write_4(sc, CCM_AHB_GATING0, reg_value);
-
- /* Enable clock for USB */
- reg_value = ccm_read_4(sc, CCM_USB_CLK);
- reg_value |= CCM_SCLK_GATING_OHCI0;
- reg_value |= CCM_SCLK_GATING_OHCI1;
- ccm_write_4(sc, CCM_USB_CLK, reg_value);
- }
-
- a10_clk_usb_activate(sc);
- a10_clk_usbphy_activate(sc);
-
- CCM_UNLOCK(sc);
-
- return (0);
-}
-
-int
-a10_clk_ohci_deactivate(void)
-{
- struct a10_ccm_softc *sc = a10_ccm_sc;
- uint32_t reg_value;
-
- if (sc == NULL)
- return (ENXIO);
-
- CCM_LOCK(sc);
-
- if (--sc->ohci_cnt == 0) {
- /* Disable clock for USB */
- reg_value = ccm_read_4(sc, CCM_USB_CLK);
- reg_value &= ~CCM_SCLK_GATING_OHCI0;
- reg_value &= ~CCM_SCLK_GATING_OHCI1;
- ccm_write_4(sc, CCM_USB_CLK, reg_value);
-
- /* Disable gating AHB clock for USB */
- reg_value = ccm_read_4(sc, CCM_AHB_GATING0);
- reg_value &= ~CCM_AHB_GATING_OHCI0; /* disable AHB clock gate ohci0 */
- reg_value &= ~CCM_AHB_GATING_OHCI1; /* disable AHB clock gate ohci1 */
- ccm_write_4(sc, CCM_AHB_GATING0, reg_value);
- }
-
- a10_clk_usb_deactivate(sc);
- a10_clk_usbphy_deactivate(sc);
-
- CCM_UNLOCK(sc);
-
- return (0);
-}
-
-static int
-a10_clk_usb_activate(struct a10_ccm_softc *sc)
-{
- uint32_t reg_value;
-
- CCM_LOCK_ASSERT(sc);
-
- if (++sc->usb_cnt == 1) {
- /* Gating AHB clock for USB */
- reg_value = ccm_read_4(sc, CCM_AHB_GATING0);
- reg_value |= CCM_AHB_GATING_USB0; /* AHB clock gate usb0 */
- ccm_write_4(sc, CCM_AHB_GATING0, reg_value);
- }
-
- return (0);
-}
-
-static int
-a10_clk_usb_deactivate(struct a10_ccm_softc *sc)
-{
- uint32_t reg_value;
-
- CCM_LOCK_ASSERT(sc);
-
- if (--sc->usb_cnt == 0) {
- /* Disable gating AHB clock for USB */
- reg_value = ccm_read_4(sc, CCM_AHB_GATING0);
- reg_value &= ~CCM_AHB_GATING_USB0; /* disable AHB clock gate usb0 */
- ccm_write_4(sc, CCM_AHB_GATING0, reg_value);
- }
-
- return (0);
-}
-
-static int
-a10_clk_usbphy_activate(struct a10_ccm_softc *sc)
-{
- uint32_t reg_value;
-
- CCM_LOCK_ASSERT(sc);
-
- if (++sc->usbphy_cnt == 1) {
- /* Enable clock for USB */
- reg_value = ccm_read_4(sc, CCM_USB_CLK);
- reg_value |= CCM_USB_PHY; /* USBPHY */
- reg_value |= CCM_USBPHY0_RESET; /* disable reset for USBPHY0 */
- reg_value |= CCM_USBPHY1_RESET; /* disable reset for USBPHY1 */
- reg_value |= CCM_USBPHY2_RESET; /* disable reset for USBPHY2 */
- ccm_write_4(sc, CCM_USB_CLK, reg_value);
- }
-
- return (0);
-}
-
-static int
-a10_clk_usbphy_deactivate(struct a10_ccm_softc *sc)
-{
- uint32_t reg_value;
-
- CCM_LOCK_ASSERT(sc);
-
- if (--sc->usbphy_cnt == 0) {
- /* Disable clock for USB */
- reg_value = ccm_read_4(sc, CCM_USB_CLK);
- reg_value &= ~CCM_USB_PHY; /* USBPHY */
- reg_value &= ~CCM_USBPHY0_RESET; /* reset for USBPHY0 */
- reg_value &= ~CCM_USBPHY1_RESET; /* reset for USBPHY1 */
- reg_value &= ~CCM_USBPHY2_RESET; /* reset for USBPHY2 */
- ccm_write_4(sc, CCM_USB_CLK, reg_value);
- }
-
- return (0);
-}
-
-int
-a10_clk_emac_activate(void)
-{
- struct a10_ccm_softc *sc = a10_ccm_sc;
- uint32_t reg_value;
-
- if (sc == NULL)
- return (ENXIO);
-
- /* Gating AHB clock for EMAC */
- reg_value = ccm_read_4(sc, CCM_AHB_GATING0);
- reg_value |= CCM_AHB_GATING_EMAC;
- ccm_write_4(sc, CCM_AHB_GATING0, reg_value);
-
- return (0);
-}
-
-int
-a10_clk_gmac_activate(phandle_t node)
-{
- char *phy_type;
- struct a10_ccm_softc *sc;
- uint32_t reg_value;
-
- sc = a10_ccm_sc;
- if (sc == NULL)
- return (ENXIO);
-
- /* Gating AHB clock for GMAC */
- reg_value = ccm_read_4(sc, CCM_AHB_GATING1);
- reg_value |= CCM_AHB_GATING_GMAC;
- ccm_write_4(sc, CCM_AHB_GATING1, reg_value);
-
- /* Set GMAC mode. */
- reg_value = CCM_GMAC_CLK_MII;
- if (OF_getprop_alloc(node, "phy-mode", 1, (void **)&phy_type) > 0) {
- if (strcasecmp(phy_type, "rgmii") == 0)
- reg_value = CCM_GMAC_CLK_RGMII | CCM_GMAC_MODE_RGMII;
- else if (strcasecmp(phy_type, "rgmii-bpi") == 0) {
- reg_value = CCM_GMAC_CLK_RGMII | CCM_GMAC_MODE_RGMII;
- reg_value |= (3 << CCM_GMAC_CLK_DELAY_SHIFT);
- }
- free(phy_type, M_OFWPROP);
- }
- ccm_write_4(sc, CCM_GMAC_CLK, reg_value);
-
- return (0);
-}
-
-static void
-a10_clk_pll6_enable(void)
-{
- struct a10_ccm_softc *sc;
- uint32_t reg_value;
-
- /*
- * SATA needs PLL6 to be a 100MHz clock.
- * The SATA output frequency is 24MHz * n * k / m / 6.
- * To get to 100MHz, k & m must be equal and n must be 25.
- * For other uses the output frequency is 24MHz * n * k / 2.
- */
- sc = a10_ccm_sc;
- if (sc->pll6_enabled)
- return;
- reg_value = ccm_read_4(sc, CCM_PLL6_CFG);
- reg_value &= ~CCM_PLL_CFG_BYPASS;
- reg_value &= ~(CCM_PLL_CFG_FACTOR_K | CCM_PLL_CFG_FACTOR_M |
- CCM_PLL_CFG_FACTOR_N);
- reg_value |= (25 << CCM_PLL_CFG_FACTOR_N_SHIFT);
- reg_value |= CCM_PLL6_CFG_SATA_CLKEN;
- reg_value |= CCM_PLL_CFG_ENABLE;
- ccm_write_4(sc, CCM_PLL6_CFG, reg_value);
- sc->pll6_enabled = 1;
-}
-
-static unsigned int
-a10_clk_pll6_get_rate(void)
-{
- struct a10_ccm_softc *sc;
- uint32_t k, n, reg_value;
-
- sc = a10_ccm_sc;
- reg_value = ccm_read_4(sc, CCM_PLL6_CFG);
- n = ((reg_value & CCM_PLL_CFG_FACTOR_N) >> CCM_PLL_CFG_FACTOR_N_SHIFT);
- k = ((reg_value & CCM_PLL_CFG_FACTOR_K) >> CCM_PLL_CFG_FACTOR_K_SHIFT) +
- 1;
-
- return ((CCM_CLK_REF_FREQ * n * k) / 2);
-}
-
-static int
-a10_clk_pll2_set_rate(unsigned int freq)
-{
- struct a10_ccm_softc *sc;
- uint32_t reg_value;
- unsigned int prediv, postdiv, n;
-
- sc = a10_ccm_sc;
- if (sc == NULL)
- return (ENXIO);
-
- reg_value = ccm_read_4(sc, CCM_PLL2_CFG);
- reg_value &= ~(CCM_PLL2_CFG_PREDIV | CCM_PLL2_CFG_POSTDIV |
- CCM_PLL_CFG_FACTOR_N);
-
- /*
- * Audio Codec needs PLL2 to be either 24576000 Hz or 22579200 Hz
- *
- * PLL2 output frequency is 24MHz * n / prediv / postdiv.
- * To get as close as possible to the desired rate, we use a
- * pre-divider of 21 and a post-divider of 4. With these values,
- * a multiplier of 86 or 79 gets us close to the target rates.
- */
- prediv = 21;
- postdiv = 4;
-
- switch (freq) {
- case 24576000:
- n = 86;
- reg_value |= CCM_PLL_CFG_ENABLE;
- break;
- case 22579200:
- n = 79;
- reg_value |= CCM_PLL_CFG_ENABLE;
- break;
- case 0:
- n = 1;
- reg_value &= ~CCM_PLL_CFG_ENABLE;
- break;
- default:
- return (EINVAL);
- }
-
- reg_value |= (prediv << CCM_PLL2_CFG_PREDIV_SHIFT);
- reg_value |= (postdiv << CCM_PLL2_CFG_POSTDIV_SHIFT);
- reg_value |= (n << CCM_PLL_CFG_FACTOR_N_SHIFT);
- ccm_write_4(sc, CCM_PLL2_CFG, reg_value);
-
- return (0);
-}
-
-static int
-a10_clk_pll3_set_rate(unsigned int freq)
-{
- struct a10_ccm_softc *sc;
- uint32_t reg_value;
- int m;
-
- sc = a10_ccm_sc;
- if (sc == NULL)
- return (ENXIO);
-
- if (freq == 0) {
- /* Disable PLL3 */
- ccm_write_4(sc, CCM_PLL3_CFG, 0);
- return (0);
- }
-
- m = freq / TCON_RATE_HZ(TCON_PLLREF_SINGLE);
-
- reg_value = CCM_PLL_CFG_ENABLE | CCM_PLL3_CFG_MODE_SEL_INT | m;
- ccm_write_4(sc, CCM_PLL3_CFG, reg_value);
-
- return (0);
-}
-
-static unsigned int
-a10_clk_pll5x_get_rate(void)
-{
- struct a10_ccm_softc *sc;
- uint32_t k, n, p, reg_value;
-
- sc = a10_ccm_sc;
- reg_value = ccm_read_4(sc, CCM_PLL5_CFG);
- n = ((reg_value & CCM_PLL_CFG_FACTOR_N) >> CCM_PLL_CFG_FACTOR_N_SHIFT);
- k = ((reg_value & CCM_PLL_CFG_FACTOR_K) >> CCM_PLL_CFG_FACTOR_K_SHIFT) +
- 1;
- p = ((reg_value & CCM_PLL5_CFG_OUT_EXT_DIV_P) >> CCM_PLL5_CFG_OUT_EXT_DIV_P_SHIFT);
-
- return ((CCM_CLK_REF_FREQ * n * k) >> p);
-}
-
-int
-a10_clk_ahci_activate(void)
-{
- struct a10_ccm_softc *sc;
- uint32_t reg_value;
-
- sc = a10_ccm_sc;
- if (sc == NULL)
- return (ENXIO);
-
- a10_clk_pll6_enable();
-
- /* Gating AHB clock for SATA */
- reg_value = ccm_read_4(sc, CCM_AHB_GATING0);
- reg_value |= CCM_AHB_GATING_SATA;
- ccm_write_4(sc, CCM_AHB_GATING0, reg_value);
- DELAY(1000);
-
- ccm_write_4(sc, CCM_SATA_CLK, CCM_PLL_CFG_ENABLE);
-
- return (0);
-}
-
-int
-a10_clk_mmc_activate(int devid)
-{
- struct a10_ccm_softc *sc;
- uint32_t reg_value;
-
- sc = a10_ccm_sc;
- if (sc == NULL)
- return (ENXIO);
-
- a10_clk_pll6_enable();
-
- /* Gating AHB clock for SD/MMC */
- reg_value = ccm_read_4(sc, CCM_AHB_GATING0);
- reg_value |= CCM_AHB_GATING_SDMMC0 << devid;
- ccm_write_4(sc, CCM_AHB_GATING0, reg_value);
-
- return (0);
-}
-
-int
-a10_clk_mmc_cfg(int devid, int freq)
-{
- struct a10_ccm_softc *sc;
- uint32_t clksrc, m, n, ophase, phase, reg_value;
- unsigned int pll_freq;
-
- sc = a10_ccm_sc;
- if (sc == NULL)
- return (ENXIO);
-
- freq /= 1000;
- if (freq <= 400) {
- pll_freq = CCM_CLK_REF_FREQ / 1000;
- clksrc = CCM_SD_CLK_SRC_SEL_OSC24M;
- ophase = 0;
- phase = 0;
- n = 2;
- } else if (freq <= 25000) {
- pll_freq = a10_clk_pll6_get_rate() / 1000;
- clksrc = CCM_SD_CLK_SRC_SEL_PLL6;
- ophase = 0;
- phase = 5;
- n = 2;
- } else if (freq <= 50000) {
- pll_freq = a10_clk_pll6_get_rate() / 1000;
- clksrc = CCM_SD_CLK_SRC_SEL_PLL6;
- ophase = 3;
- phase = 5;
- n = 0;
- } else
- return (EINVAL);
- m = ((pll_freq / (1 << n)) / (freq)) - 1;
- reg_value = ccm_read_4(sc, CCM_MMC0_SCLK_CFG + (devid * 4));
- reg_value &= ~CCM_SD_CLK_SRC_SEL;
- reg_value |= (clksrc << CCM_SD_CLK_SRC_SEL_SHIFT);
- reg_value &= ~CCM_SD_CLK_PHASE_CTR;
- reg_value |= (phase << CCM_SD_CLK_PHASE_CTR_SHIFT);
- reg_value &= ~CCM_SD_CLK_DIV_RATIO_N;
- reg_value |= (n << CCM_SD_CLK_DIV_RATIO_N_SHIFT);
- reg_value &= ~CCM_SD_CLK_OPHASE_CTR;
- reg_value |= (ophase << CCM_SD_CLK_OPHASE_CTR_SHIFT);
- reg_value &= ~CCM_SD_CLK_DIV_RATIO_M;
- reg_value |= m;
- reg_value |= CCM_PLL_CFG_ENABLE;
- ccm_write_4(sc, CCM_MMC0_SCLK_CFG + (devid * 4), reg_value);
-
- return (0);
-}
-
-int
-a10_clk_i2c_activate(int devid)
-{
- struct a10_ccm_softc *sc;
- uint32_t reg_value;
-
- sc = a10_ccm_sc;
- if (sc == NULL)
- return (ENXIO);
-
- a10_clk_pll6_enable();
-
- /* Gating APB clock for I2C/TWI */
- reg_value = ccm_read_4(sc, CCM_APB1_GATING);
- if (devid == 4)
- reg_value |= CCM_APB1_GATING_TWI << 15;
- else
- reg_value |= CCM_APB1_GATING_TWI << devid;
- ccm_write_4(sc, CCM_APB1_GATING, reg_value);
-
- return (0);
-}
-
-int
-a10_clk_dmac_activate(void)
-{
- struct a10_ccm_softc *sc;
- uint32_t reg_value;
-
- sc = a10_ccm_sc;
- if (sc == NULL)
- return (ENXIO);
-
- /* Gating AHB clock for DMA controller */
- reg_value = ccm_read_4(sc, CCM_AHB_GATING0);
- reg_value |= CCM_AHB_GATING_DMA;
- ccm_write_4(sc, CCM_AHB_GATING0, reg_value);
-
- return (0);
-}
-
-int
-a10_clk_codec_activate(unsigned int freq)
-{
- struct a10_ccm_softc *sc;
- uint32_t reg_value;
-
- sc = a10_ccm_sc;
- if (sc == NULL)
- return (ENXIO);
-
- a10_clk_pll2_set_rate(freq);
-
- /* Gating APB clock for ADDA */
- reg_value = ccm_read_4(sc, CCM_APB0_GATING);
- reg_value |= CCM_APB0_GATING_ADDA;
- ccm_write_4(sc, CCM_APB0_GATING, reg_value);
-
- /* Enable audio codec clock */
- reg_value = ccm_read_4(sc, CCM_AUDIO_CODEC_CLK);
- reg_value |= CCM_AUDIO_CODEC_ENABLE;
- ccm_write_4(sc, CCM_AUDIO_CODEC_CLK, reg_value);
-
- return (0);
-}
-
-static void
-calc_tcon_pll(int f_ref, int f_out, int *pm, int *pn)
-{
- int best, m, n, f_cur, diff;
-
- best = TCON_PLL_WORST;
- for (n = TCON_PLL_N_MIN; n <= TCON_PLL_N_MAX; n++) {
- for (m = TCON_PLL_M_MIN; m <= TCON_PLL_M_MAX; m++) {
- f_cur = (m * f_ref) / n;
- diff = f_out - f_cur;
- if (diff > 0 && diff < best) {
- best = diff;
- *pm = m;
- *pn = n;
- }
- }
- }
-}
-
-int
-a10_clk_debe_activate(void)
-{
- struct a10_ccm_softc *sc;
- int pll_rate, clk_div;
- uint32_t reg_value;
-
- sc = a10_ccm_sc;
- if (sc == NULL)
- return (ENXIO);
-
- /* Leave reset */
- reg_value = ccm_read_4(sc, CCM_BE0_SCLK);
- reg_value |= CCM_BE_CLK_RESET;
- ccm_write_4(sc, CCM_BE0_SCLK, reg_value);
-
- pll_rate = a10_clk_pll5x_get_rate();
-
- clk_div = howmany(pll_rate, DEBE_DEFAULT_RATE);
-
- /* Set BE0 source to PLL5 (DDR external peripheral clock) */
- reg_value = CCM_BE_CLK_RESET;
- reg_value |= (CCM_BE_CLK_SRC_SEL_PLL5 << CCM_BE_CLK_SRC_SEL_SHIFT);
- reg_value |= (clk_div - 1);
- ccm_write_4(sc, CCM_BE0_SCLK, reg_value);
-
- /* Gating AHB clock for BE0 */
- reg_value = ccm_read_4(sc, CCM_AHB_GATING1);
- reg_value |= CCM_AHB_GATING_DE_BE0;
- ccm_write_4(sc, CCM_AHB_GATING1, reg_value);
-
- /* Enable DRAM clock to BE0 */
- reg_value = ccm_read_4(sc, CCM_DRAM_CLK);
- reg_value |= CCM_DRAM_CLK_BE0_CLK_ENABLE;
- ccm_write_4(sc, CCM_DRAM_CLK, reg_value);
-
- /* Enable BE0 clock */
- reg_value = ccm_read_4(sc, CCM_BE0_SCLK);
- reg_value |= CCM_BE_CLK_SCLK_GATING;
- ccm_write_4(sc, CCM_BE0_SCLK, reg_value);
-
- return (0);
-}
-
-int
-a10_clk_lcd_activate(void)
-{
- struct a10_ccm_softc *sc;
- uint32_t reg_value;
-
- sc = a10_ccm_sc;
- if (sc == NULL)
- return (ENXIO);
-
- /* Clear LCD0 reset */
- reg_value = ccm_read_4(sc, CCM_LCD0_CH0_CLK);
- reg_value |= CCM_LCD_CH0_RESET;
- ccm_write_4(sc, CCM_LCD0_CH0_CLK, reg_value);
-
- /* Gating AHB clock for LCD0 */
- reg_value = ccm_read_4(sc, CCM_AHB_GATING1);
- reg_value |= CCM_AHB_GATING_LCD0;
- ccm_write_4(sc, CCM_AHB_GATING1, reg_value);
-
- return (0);
-}
-
-int
-a10_clk_tcon_activate(unsigned int freq)
-{
- struct a10_ccm_softc *sc;
- int m, n, m2, n2, f_single, f_double, dbl, src_sel;
-
- sc = a10_ccm_sc;
- if (sc == NULL)
- return (ENXIO);
-
- m = n = m2 = n2 = 0;
- dbl = 0;
-
- calc_tcon_pll(TCON_PLLREF_SINGLE, TCON_RATE_KHZ(freq), &m, &n);
- calc_tcon_pll(TCON_PLLREF_DOUBLE, TCON_RATE_KHZ(freq), &m2, &n2);
-
- f_single = n ? (m * TCON_PLLREF_SINGLE) / n : 0;
- f_double = n2 ? (m2 * TCON_PLLREF_DOUBLE) / n2 : 0;
-
- if (f_double > f_single) {
- dbl = 1;
- m = m2;
- n = n2;
- }
- src_sel = dbl ? CCM_LCD_CH1_SRC_SEL_PLL3_2X : CCM_LCD_CH1_SRC_SEL_PLL3;
-
- if (n == 0 || m == 0)
- return (EINVAL);
-
- /* Set PLL3 to the closest possible rate */
- a10_clk_pll3_set_rate(TCON_RATE_HZ(m * TCON_PLLREF_SINGLE));
-
- /* Enable LCD0 CH1 clock */
- ccm_write_4(sc, CCM_LCD0_CH1_CLK,
- CCM_LCD_CH1_SCLK2_GATING | CCM_LCD_CH1_SCLK1_GATING |
- (src_sel << CCM_LCD_CH1_SRC_SEL_SHIFT) | (n - 1));
-
- return (0);
-}
-
-int
-a10_clk_tcon_get_config(int *pdiv, int *pdbl)
-{
- struct a10_ccm_softc *sc;
- uint32_t reg_value;
- int src;
-
- sc = a10_ccm_sc;
- if (sc == NULL)
- return (ENXIO);
-
- reg_value = ccm_read_4(sc, CCM_LCD0_CH1_CLK);
-
- *pdiv = (reg_value & CCM_LCD_CH1_CLK_DIV_RATIO_M) + 1;
-
- src = (reg_value & CCM_LCD_CH1_SRC_SEL) >> CCM_LCD_CH1_SRC_SEL_SHIFT;
- switch (src) {
- case CCM_LCD_CH1_SRC_SEL_PLL3:
- case CCM_LCD_CH1_SRC_SEL_PLL7:
- *pdbl = 0;
- break;
- case CCM_LCD_CH1_SRC_SEL_PLL3_2X:
- case CCM_LCD_CH1_SRC_SEL_PLL7_2X:
- *pdbl = 1;
- break;
- }
-
- return (0);
-}
-
-int
-a10_clk_hdmi_activate(void)
-{
- struct a10_ccm_softc *sc;
- uint32_t reg_value;
- int error;
-
- sc = a10_ccm_sc;
- if (sc == NULL)
- return (ENXIO);
-
- /* Set PLL3 to 297MHz */
- error = a10_clk_pll3_set_rate(HDMI_DEFAULT_RATE);
- if (error != 0)
- return (error);
-
- /* Enable HDMI clock, source PLL3 */
- reg_value = ccm_read_4(sc, CCM_HDMI_CLK);
- reg_value |= CCM_HDMI_CLK_SCLK_GATING;
- reg_value &= ~CCM_HDMI_CLK_SRC_SEL;
- reg_value |= (CCM_HDMI_CLK_SRC_SEL_PLL3 << CCM_HDMI_CLK_SRC_SEL_SHIFT);
- ccm_write_4(sc, CCM_HDMI_CLK, reg_value);
-
- /* Gating AHB clock for HDMI */
- reg_value = ccm_read_4(sc, CCM_AHB_GATING1);
- reg_value |= CCM_AHB_GATING_HDMI;
- ccm_write_4(sc, CCM_AHB_GATING1, reg_value);
-
- return (0);
-}
diff --git a/sys/arm/allwinner/a10_clk.h b/sys/arm/allwinner/a10_clk.h
deleted file mode 100644
index 6b626be..0000000
--- a/sys/arm/allwinner/a10_clk.h
+++ /dev/null
@@ -1,247 +0,0 @@
-/*-
- * Copyright (c) 2013 Ganbold Tsagaankhuu <ganbold@freebsd.org>
- * 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 _A10_CLK_H_
-#define _A10_CLK_H_
-
-#define CCM_PLL1_CFG 0x0000
-#define CCM_PLL1_TUN 0x0004
-#define CCM_PLL2_CFG 0x0008
-#define CCM_PLL2_TUN 0x000c
-#define CCM_PLL3_CFG 0x0010
-#define CCM_PLL3_TUN 0x0014
-#define CCM_PLL4_CFG 0x0018
-#define CCM_PLL4_TUN 0x001c
-#define CCM_PLL5_CFG 0x0020
-#define CCM_PLL5_TUN 0x0024
-#define CCM_PLL6_CFG 0x0028
-#define CCM_PLL6_TUN 0x002c
-#define CCM_PLL7_CFG 0x0030
-#define CCM_PLL7_TUN 0x0034
-#define CCM_PLL1_TUN2 0x0038
-#define CCM_PLL5_TUN2 0x003c
-#define CCM_PLL_LOCK_DBG 0x004c
-#define CCM_OSC24M_CFG 0x0050
-#define CCM_CPU_AHB_APB0_CFG 0x0054
-#define CCM_APB1_CLK_DIV 0x0058
-#define CCM_AXI_GATING 0x005c
-#define CCM_AHB_GATING0 0x0060
-#define CCM_AHB_GATING1 0x0064
-#define CCM_APB0_GATING 0x0068
-#define CCM_APB1_GATING 0x006c
-#define CCM_NAND_SCLK_CFG 0x0080
-#define CCM_MS_SCLK_CFG 0x0084
-#define CCM_MMC0_SCLK_CFG 0x0088
-#define CCM_MMC1_SCLK_CFG 0x008c
-#define CCM_MMC2_SCLK_CFG 0x0090
-#define CCM_MMC3_SCLK_CFG 0x0094
-#define CCM_TS_CLK 0x0098
-#define CCM_SS_CLK 0x009c
-#define CCM_SPI0_CLK 0x00a0
-#define CCM_SPI1_CLK 0x00a4
-#define CCM_SPI2_CLK 0x00a8
-#define CCM_PATA_CLK 0x00ac
-#define CCM_IR0_CLK 0x00b0
-#define CCM_IR1_CLK 0x00b4
-#define CCM_IIS_CLK 0x00b8
-#define CCM_AC97_CLK 0x00bc
-#define CCM_SPDIF_CLK 0x00c0
-#define CCM_KEYPAD_CLK 0x00c4
-#define CCM_SATA_CLK 0x00c8
-#define CCM_USB_CLK 0x00cc
-#define CCM_GPS_CLK 0x00d0
-#define CCM_SPI3_CLK 0x00d4
-#define CCM_DRAM_CLK 0x0100
-#define CCM_BE0_SCLK 0x0104
-#define CCM_BE1_SCLK 0x0108
-#define CCM_FE0_CLK 0x010c
-#define CCM_FE1_CLK 0x0110
-#define CCM_MP_CLK 0x0114
-#define CCM_LCD0_CH0_CLK 0x0118
-#define CCM_LCD1_CH0_CLK 0x011c
-#define CCM_CSI_ISP_CLK 0x0120
-#define CCM_TVD_CLK 0x0128
-#define CCM_LCD0_CH1_CLK 0x012c
-#define CCM_LCD1_CH1_CLK 0x0130
-#define CCM_CS0_CLK 0x0134
-#define CCM_CS1_CLK 0x0138
-#define CCM_VE_CLK 0x013c
-#define CCM_AUDIO_CODEC_CLK 0x0140
-#define CCM_AVS_CLK 0x0144
-#define CCM_ACE_CLK 0x0148
-#define CCM_LVDS_CLK 0x014c
-#define CCM_HDMI_CLK 0x0150
-#define CCM_MALI400_CLK 0x0154
-#define CCM_GMAC_CLK 0x0164
-
-#define CCM_GMAC_CLK_DELAY_SHIFT 10
-#define CCM_GMAC_CLK_MODE_MASK 0x7
-#define CCM_GMAC_MODE_RGMII (1 << 2)
-#define CCM_GMAC_CLK_MII 0x0
-#define CCM_GMAC_CLK_EXT_RGMII 0x1
-#define CCM_GMAC_CLK_RGMII 0x2
-
-/* APB0_GATING */
-#define CCM_APB0_GATING_ADDA (1 << 0)
-
-/* AHB_GATING_REG0 */
-#define CCM_AHB_GATING_USB0 (1 << 0)
-#define CCM_AHB_GATING_EHCI0 (1 << 1)
-#define CCM_AHB_GATING_OHCI0 (1 << 2)
-#define CCM_AHB_GATING_EHCI1 (1 << 3)
-#define CCM_AHB_GATING_OHCI1 (1 << 4)
-#define CCM_AHB_GATING_DMA (1 << 6)
-#define CCM_AHB_GATING_SDMMC0 (1 << 8)
-#define CCM_AHB_GATING_EMAC (1 << 17)
-#define CCM_AHB_GATING_SATA (1 << 25)
-
-/* AHB_GATING_REG1 */
-#define CCM_AHB_GATING_GMAC (1 << 17)
-#define CCM_AHB_GATING_DE_BE1 (1 << 13)
-#define CCM_AHB_GATING_DE_BE0 (1 << 12)
-#define CCM_AHB_GATING_HDMI (1 << 11)
-#define CCM_AHB_GATING_LCD1 (1 << 5)
-#define CCM_AHB_GATING_LCD0 (1 << 4)
-
-/* APB1_GATING_REG */
-#define CCM_APB1_GATING_TWI (1 << 0)
-
-/* USB */
-#define CCM_USB_PHY (1 << 8)
-#define CCM_SCLK_GATING_OHCI1 (1 << 7)
-#define CCM_SCLK_GATING_OHCI0 (1 << 6)
-#define CCM_USBPHY2_RESET (1 << 2)
-#define CCM_USBPHY1_RESET (1 << 1)
-#define CCM_USBPHY0_RESET (1 << 0)
-
-#define CCM_PLL_CFG_ENABLE (1U << 31)
-#define CCM_PLL_CFG_BYPASS (1U << 30)
-#define CCM_PLL_CFG_PLL5 (1U << 25)
-#define CCM_PLL_CFG_PLL6 (1U << 24)
-#define CCM_PLL_CFG_FACTOR_N 0x1f00
-#define CCM_PLL_CFG_FACTOR_N_SHIFT 8
-#define CCM_PLL_CFG_FACTOR_K 0x30
-#define CCM_PLL_CFG_FACTOR_K_SHIFT 4
-#define CCM_PLL_CFG_FACTOR_M 0x3
-
-#define CCM_PLL2_CFG_POSTDIV 0x3c000000
-#define CCM_PLL2_CFG_POSTDIV_SHIFT 26
-#define CCM_PLL2_CFG_PREDIV 0x1f
-#define CCM_PLL2_CFG_PREDIV_SHIFT 0
-
-#define CCM_PLL3_CFG_MODE_SEL_SHIFT 15
-#define CCM_PLL3_CFG_MODE_SEL_FRACT (0 << CCM_PLL3_CFG_MODE_SEL_SHIFT)
-#define CCM_PLL3_CFG_MODE_SEL_INT (1 << CCM_PLL3_CFG_MODE_SEL_SHIFT)
-#define CCM_PLL3_CFG_FUNC_SET_SHIFT 14
-#define CCM_PLL3_CFG_FUNC_SET_270MHZ (0 << CCM_PLL3_CFG_FUNC_SET_SHIFT)
-#define CCM_PLL3_CFG_FUNC_SET_297MHZ (1 << CCM_PLL3_CFG_FUNC_SET_SHIFT)
-#define CCM_PLL3_CFG_FACTOR_M 0x7f
-
-#define CCM_PLL5_CFG_OUT_EXT_DIV_P 0x30000
-#define CCM_PLL5_CFG_OUT_EXT_DIV_P_SHIFT 16
-
-#define CCM_PLL6_CFG_SATA_CLKEN (1U << 14)
-
-#define CCM_SD_CLK_SRC_SEL 0x3000000
-#define CCM_SD_CLK_SRC_SEL_SHIFT 24
-#define CCM_SD_CLK_SRC_SEL_OSC24M 0
-#define CCM_SD_CLK_SRC_SEL_PLL6 1
-#define CCM_SD_CLK_PHASE_CTR 0x700000
-#define CCM_SD_CLK_PHASE_CTR_SHIFT 20
-#define CCM_SD_CLK_DIV_RATIO_N 0x30000
-#define CCM_SD_CLK_DIV_RATIO_N_SHIFT 16
-#define CCM_SD_CLK_OPHASE_CTR 0x700
-#define CCM_SD_CLK_OPHASE_CTR_SHIFT 8
-#define CCM_SD_CLK_DIV_RATIO_M 0xf
-
-#define CCM_AUDIO_CODEC_ENABLE (1U << 31)
-
-#define CCM_LCD_CH0_SCLK_GATING (1U << 31)
-#define CCM_LCD_CH0_RESET (1U << 30)
-#define CCM_LCD_CH0_SRC_SEL 0x03000000
-#define CCM_LCD_CH0_SRC_SEL_SHIFT 24
-#define CCM_LCD_CH0_SRC_SEL_PLL3 0
-#define CCM_LCD_CH0_SRC_SEL_PLL7 1
-#define CCM_LCD_CH0_SRC_SEL_PLL3_2X 2
-#define CCM_LCD_CH0_SRC_SEL_PLL6_2X 3
-
-#define CCM_LCD_CH1_SCLK2_GATING (1U << 31)
-#define CCM_LCD_CH1_SRC_SEL 0x03000000
-#define CCM_LCD_CH1_SRC_SEL_SHIFT 24
-#define CCM_LCD_CH1_SRC_SEL_PLL3 0
-#define CCM_LCD_CH1_SRC_SEL_PLL7 1
-#define CCM_LCD_CH1_SRC_SEL_PLL3_2X 2
-#define CCM_LCD_CH1_SRC_SEL_PLL7_2X 3
-#define CCM_LCD_CH1_SCLK1_GATING (1U << 15)
-#define CCM_LCD_CH1_SCLK1_SRC_SEL_SHIFT 11
-#define CCM_LCD_CH1_SCLK1_SRC_SEL_SCLK2 0
-#define CCM_LCD_CH1_SCLK1_SRC_SEL_SCLK2_DIV2 1
-#define CCM_LCD_CH1_CLK_DIV_RATIO_M 0xf
-
-#define CCM_DRAM_CLK_BE1_CLK_ENABLE (1U << 27)
-#define CCM_DRAM_CLK_BE0_CLK_ENABLE (1U << 26)
-
-#define CCM_BE_CLK_SCLK_GATING (1U << 31)
-#define CCM_BE_CLK_RESET (1U << 30)
-#define CCM_BE_CLK_SRC_SEL 0x03000000
-#define CCM_BE_CLK_SRC_SEL_SHIFT 24
-#define CCM_BE_CLK_SRC_SEL_PLL3 0
-#define CCM_BE_CLK_SRC_SEL_PLL7 1
-#define CCM_BE_CLK_SRC_SEL_PLL5 2
-#define CCM_BE_CLK_DIV_RATIO_M 0xf
-
-#define CCM_HDMI_CLK_SCLK_GATING (1U << 31)
-#define CCM_HDMI_CLK_SRC_SEL 0x03000000
-#define CCM_HDMI_CLK_SRC_SEL_SHIFT 24
-#define CCM_HDMI_CLK_SRC_SEL_PLL3 0
-#define CCM_HDMI_CLK_SRC_SEL_PLL7 1
-#define CCM_HDMI_CLK_SRC_SEL_PLL3_2X 2
-#define CCM_HDMI_CLK_SRC_SEL_PLL7_2X 3
-#define CCM_HDMI_CLK_DIV_RATIO_M 0xf
-
-#define CCM_CLK_REF_FREQ 24000000U
-
-int a10_clk_ehci_activate(void);
-int a10_clk_ehci_deactivate(void);
-int a10_clk_ohci_activate(void);
-int a10_clk_ohci_deactivate(void);
-int a10_clk_emac_activate(void);
-int a10_clk_gmac_activate(phandle_t);
-int a10_clk_ahci_activate(void);
-int a10_clk_mmc_activate(int);
-int a10_clk_mmc_cfg(int, int);
-int a10_clk_i2c_activate(int);
-int a10_clk_dmac_activate(void);
-int a10_clk_codec_activate(unsigned int);
-int a10_clk_debe_activate(void);
-int a10_clk_lcd_activate(void);
-int a10_clk_tcon_activate(unsigned int);
-int a10_clk_tcon_get_config(int *, int *);
-int a10_clk_hdmi_activate(void);
-
-#endif /* _A10_CLK_H_ */
diff --git a/sys/arm/allwinner/a10_codec.c b/sys/arm/allwinner/a10_codec.c
index 6646f2d..f791b18 100644
--- a/sys/arm/allwinner/a10_codec.c
+++ b/sys/arm/allwinner/a10_codec.c
@@ -50,7 +50,7 @@ __FBSDID("$FreeBSD$");
#include <dev/ofw/ofw_bus.h>
#include <dev/ofw/ofw_bus_subr.h>
-#include <arm/allwinner/a10_clk.h>
+#include <dev/extres/clk/clk.h>
#include "sunxi_dma_if.h"
#include "mixer_if.h"
@@ -738,6 +738,7 @@ a10codec_attach(device_t dev)
{
struct a10codec_info *sc;
char status[SND_STATUSLEN];
+ clk_t clk_apb, clk_codec;
uint32_t val;
int error;
@@ -778,6 +779,24 @@ a10codec_attach(device_t dev)
goto fail;
}
+ /* Get clocks */
+ error = clk_get_by_ofw_name(dev, "apb", &clk_apb);
+ if (error != 0) {
+ device_printf(dev, "cannot find apb clock\n");
+ goto fail;
+ }
+ error = clk_get_by_ofw_name(dev, "codec", &clk_codec);
+ if (error != 0) {
+ device_printf(dev, "cannot find codec clock\n");
+ goto fail;
+ }
+
+ /* Gating APB clock for codec */
+ error = clk_enable(clk_apb);
+ if (error != 0) {
+ device_printf(dev, "cannot enable apb clock\n");
+ goto fail;
+ }
/* Activate audio codec clock. According to the A10 and A20 user
* manuals, Audio_pll can be either 24.576MHz or 22.5792MHz. Most
* audio sampling rates require an 24.576MHz input clock with the
@@ -787,7 +806,17 @@ a10codec_attach(device_t dev)
* 24.576MHz clock source and don't advertise native support for
* the three sampling rates that require a 22.5792MHz input.
*/
- a10_clk_codec_activate(24576000);
+ error = clk_set_freq(clk_codec, 24576000, CLK_SET_ROUND_DOWN);
+ if (error != 0) {
+ device_printf(dev, "cannot set codec clock frequency\n");
+ goto fail;
+ }
+ /* Enable audio codec clock */
+ error = clk_enable(clk_codec);
+ if (error != 0) {
+ device_printf(dev, "cannot enable codec clock\n");
+ goto fail;
+ }
/* Enable DAC */
val = CODEC_READ(sc, AC_DAC_DPC);
diff --git a/sys/arm/allwinner/a10_dmac.c b/sys/arm/allwinner/a10_dmac.c
index 65fa352..fd5aaa6 100644
--- a/sys/arm/allwinner/a10_dmac.c
+++ b/sys/arm/allwinner/a10_dmac.c
@@ -46,7 +46,7 @@ __FBSDID("$FreeBSD$");
#include <dev/ofw/ofw_bus_subr.h>
#include <arm/allwinner/a10_dmac.h>
-#include <arm/allwinner/a10_clk.h>
+#include <dev/extres/clk/clk.h>
#include "sunxi_dma_if.h"
@@ -111,6 +111,7 @@ a10dmac_attach(device_t dev)
{
struct a10dmac_softc *sc;
unsigned int index;
+ clk_t clk;
int error;
sc = device_get_softc(dev);
@@ -123,7 +124,16 @@ a10dmac_attach(device_t dev)
mtx_init(&sc->sc_mtx, "a10 dmac", NULL, MTX_SPIN);
/* Activate DMA controller clock */
- a10_clk_dmac_activate();
+ error = clk_get_by_ofw_index(dev, 0, &clk);
+ if (error != 0) {
+ device_printf(dev, "cannot get clock\n");
+ return (error);
+ }
+ error = clk_enable(clk);
+ if (error != 0) {
+ device_printf(dev, "cannot enable clock\n");
+ return (error);
+ }
/* Disable all interrupts and clear pending status */
DMA_WRITE(sc, AWIN_DMA_IRQ_EN_REG, 0);
diff --git a/sys/arm/allwinner/a10_ehci.c b/sys/arm/allwinner/a10_ehci.c
index c633de2..c325d60 100644
--- a/sys/arm/allwinner/a10_ehci.c
+++ b/sys/arm/allwinner/a10_ehci.c
@@ -59,8 +59,8 @@ __FBSDID("$FreeBSD$");
#include <dev/usb/controller/ehcireg.h>
#include <arm/allwinner/allwinner_machdep.h>
-#include <arm/allwinner/a10_clk.h>
-#include <arm/allwinner/a31/a31_clk.h>
+#include <dev/extres/clk/clk.h>
+#include <dev/extres/hwreset/hwreset.h>
#define EHCI_HC_DEVSTR "Allwinner Integrated USB 2.0 controller"
@@ -90,25 +90,22 @@ static device_detach_t a10_ehci_detach;
bs_r_1_proto(reversed);
bs_w_1_proto(reversed);
+struct aw_ehci_softc {
+ ehci_softc_t sc;
+ clk_t clk;
+ hwreset_t rst;
+};
+
struct aw_ehci_conf {
- int (*clk_activate)(void);
- int (*clk_deactivate)(void);
bool sdram_init;
};
static const struct aw_ehci_conf a10_ehci_conf = {
-#if defined(SOC_ALLWINNER_A10) || defined(SOC_ALLWINNER_A20)
- .clk_activate = a10_clk_ehci_activate,
- .clk_deactivate = a10_clk_ehci_deactivate,
-#endif
.sdram_init = true,
};
static const struct aw_ehci_conf a31_ehci_conf = {
-#if defined(SOC_ALLWINNER_A31) || defined(SOC_ALLWINNER_A31S)
- .clk_activate = a31_clk_ehci_activate,
- .clk_deactivate = a31_clk_ehci_deactivate,
-#endif
+ .sdram_init = false,
};
static struct ofw_compat_data compat_data[] = {
@@ -136,7 +133,8 @@ a10_ehci_probe(device_t self)
static int
a10_ehci_attach(device_t self)
{
- ehci_softc_t *sc = device_get_softc(self);
+ struct aw_ehci_softc *aw_sc = device_get_softc(self);
+ ehci_softc_t *sc = &aw_sc->sc;
const struct aw_ehci_conf *conf;
bus_space_handle_t bsh;
int err;
@@ -144,10 +142,6 @@ a10_ehci_attach(device_t self)
uint32_t reg_value = 0;
conf = USB_CONF(self);
- if (conf->clk_activate == NULL) {
- device_printf(self, "clock not supported\n");
- return (ENXIO);
- }
/* initialise some bus fields */
sc->sc_bus.parent = self;
@@ -208,9 +202,24 @@ a10_ehci_attach(device_t self)
sc->sc_flags |= EHCI_SCFLG_DONTRESET;
+ /* De-assert reset */
+ if (hwreset_get_by_ofw_idx(self, 0, &aw_sc->rst) == 0) {
+ err = hwreset_deassert(aw_sc->rst);
+ if (err != 0) {
+ device_printf(self, "Could not de-assert reset\n");
+ goto error;
+ }
+ }
+
/* Enable clock for USB */
- if (conf->clk_activate() != 0) {
- device_printf(self, "Could not activate clock\n");
+ err = clk_get_by_ofw_index(self, 0, &aw_sc->clk);
+ if (err != 0) {
+ device_printf(self, "Could not get clock\n");
+ goto error;
+ }
+ err = clk_enable(aw_sc->clk);
+ if (err != 0) {
+ device_printf(self, "Could not enable clock\n");
goto error;
}
@@ -240,6 +249,8 @@ a10_ehci_attach(device_t self)
return (0);
error:
+ if (aw_sc->clk)
+ clk_release(aw_sc->clk);
a10_ehci_detach(self);
return (ENXIO);
}
@@ -247,7 +258,8 @@ error:
static int
a10_ehci_detach(device_t self)
{
- ehci_softc_t *sc = device_get_softc(self);
+ struct aw_ehci_softc *aw_sc = device_get_softc(self);
+ ehci_softc_t *sc = &aw_sc->sc;
const struct aw_ehci_conf *conf;
device_t bdev;
int err;
@@ -305,7 +317,14 @@ a10_ehci_detach(device_t self)
A10_WRITE_4(sc, SW_USB_PMU_IRQ_ENABLE, reg_value);
/* Disable clock for USB */
- conf->clk_deactivate();
+ clk_disable(aw_sc->clk);
+ clk_release(aw_sc->clk);
+
+ /* Assert reset */
+ if (aw_sc->rst != NULL) {
+ hwreset_assert(aw_sc->rst);
+ hwreset_release(aw_sc->rst);
+ }
return (0);
}
diff --git a/sys/arm/allwinner/a10_fb.c b/sys/arm/allwinner/a10_fb.c
index ea033f8..cf8f167 100644
--- a/sys/arm/allwinner/a10_fb.c
+++ b/sys/arm/allwinner/a10_fb.c
@@ -54,7 +54,8 @@ __FBSDID("$FreeBSD$");
#include <dev/videomode/videomode.h>
#include <dev/videomode/edidvar.h>
-#include <arm/allwinner/a10_clk.h>
+#include <dev/extres/clk/clk.h>
+#include <dev/extres/hwreset/hwreset.h>
#include "fb_if.h"
#include "hdmi_if.h"
@@ -66,6 +67,7 @@ __FBSDID("$FreeBSD$");
#define FB_ALIGN 0x1000
#define HDMI_ENABLE_DELAY 20000
+#define DEBE_FREQ 300000000
#define DOT_CLOCK_TO_HZ(c) ((c) * 1000)
@@ -193,18 +195,68 @@ a10fb_freefb(struct a10fb_softc *sc)
kmem_free(kernel_arena, sc->vaddr, sc->fbsize);
}
-static void
+static int
a10fb_setup_debe(struct a10fb_softc *sc, const struct videomode *mode)
{
int width, height, interlace, reg;
+ clk_t clk_ahb, clk_dram, clk_debe;
+ hwreset_t rst;
uint32_t val;
+ int error;
interlace = !!(mode->flags & VID_INTERLACE);
width = mode->hdisplay;
height = mode->vdisplay << interlace;
- /* Enable DEBE clocks */
- a10_clk_debe_activate();
+ /* Leave reset */
+ error = hwreset_get_by_ofw_name(sc->dev, "de_be", &rst);
+ if (error != 0) {
+ device_printf(sc->dev, "cannot find reset 'de_be'\n");
+ return (error);
+ }
+ error = hwreset_deassert(rst);
+ if (error != 0) {
+ device_printf(sc->dev, "couldn't de-assert reset 'de_be'\n");
+ return (error);
+ }
+ /* Gating AHB clock for BE */
+ error = clk_get_by_ofw_name(sc->dev, "ahb_de_be", &clk_ahb);
+ if (error != 0) {
+ device_printf(sc->dev, "cannot find clk 'ahb_de_be'\n");
+ return (error);
+ }
+ error = clk_enable(clk_ahb);
+ if (error != 0) {
+ device_printf(sc->dev, "cannot enable clk 'ahb_de_be'\n");
+ return (error);
+ }
+ /* Enable DRAM clock to BE */
+ error = clk_get_by_ofw_name(sc->dev, "dram_de_be", &clk_dram);
+ if (error != 0) {
+ device_printf(sc->dev, "cannot find clk 'dram_de_be'\n");
+ return (error);
+ }
+ error = clk_enable(clk_dram);
+ if (error != 0) {
+ device_printf(sc->dev, "cannot enable clk 'dram_de_be'\n");
+ return (error);
+ }
+ /* Set BE clock to 300MHz and enable */
+ error = clk_get_by_ofw_name(sc->dev, "de_be", &clk_debe);
+ if (error != 0) {
+ device_printf(sc->dev, "cannot find clk 'de_be'\n");
+ return (error);
+ }
+ error = clk_set_freq(clk_debe, DEBE_FREQ, CLK_SET_ROUND_DOWN);
+ if (error != 0) {
+ device_printf(sc->dev, "cannot set 'de_be' frequency\n");
+ return (error);
+ }
+ error = clk_enable(clk_debe);
+ if (error != 0) {
+ device_printf(sc->dev, "cannot enable clk 'de_be'\n");
+ return (error);
+ }
/* Initialize all registers to 0 */
for (reg = DEBE_REG_START; reg < DEBE_REG_END; reg += DEBE_REG_WIDTH)
@@ -247,14 +299,55 @@ a10fb_setup_debe(struct a10fb_softc *sc, const struct videomode *mode)
val = DEBE_READ(sc, DEBE_MODCTL);
val |= MODCTL_START_CTL;
DEBE_WRITE(sc, DEBE_MODCTL, val);
+
+ return (0);
}
-static void
+static int
+a10fb_setup_pll(struct a10fb_softc *sc, uint64_t freq)
+{
+ clk_t clk_sclk1, clk_sclk2;
+ int error;
+
+ error = clk_get_by_ofw_name(sc->dev, "lcd_ch1_sclk1", &clk_sclk1);
+ if (error != 0) {
+ device_printf(sc->dev, "cannot find clk 'lcd_ch1_sclk1'\n");
+ return (error);
+ }
+ error = clk_get_by_ofw_name(sc->dev, "lcd_ch1_sclk2", &clk_sclk2);
+ if (error != 0) {
+ device_printf(sc->dev, "cannot find clk 'lcd_ch1_sclk2'\n");
+ return (error);
+ }
+
+ error = clk_set_freq(clk_sclk2, freq, 0);
+ if (error != 0) {
+ device_printf(sc->dev, "cannot set lcd ch1 frequency\n");
+ return (error);
+ }
+ error = clk_enable(clk_sclk2);
+ if (error != 0) {
+ device_printf(sc->dev, "cannot enable lcd ch1 sclk2\n");
+ return (error);
+ }
+ error = clk_enable(clk_sclk1);
+ if (error != 0) {
+ device_printf(sc->dev, "cannot enable lcd ch1 sclk1\n");
+ return (error);
+ }
+
+ return (0);
+}
+
+static int
a10fb_setup_tcon(struct a10fb_softc *sc, const struct videomode *mode)
{
u_int interlace, hspw, hbp, vspw, vbp, vbl, width, height, start_delay;
u_int vtotal, framerate, clk;
+ clk_t clk_ahb;
+ hwreset_t rst;
uint32_t val;
+ int error;
interlace = !!(mode->flags & VID_INTERLACE);
width = mode->hdisplay;
@@ -266,8 +359,28 @@ a10fb_setup_tcon(struct a10fb_softc *sc, const struct videomode *mode)
vbl = VBLANK_LEN(mode->vtotal, mode->vdisplay, interlace);
start_delay = START_DELAY(vbl);
- /* Enable LCD clocks */
- a10_clk_lcd_activate();
+ /* Leave reset */
+ error = hwreset_get_by_ofw_name(sc->dev, "lcd", &rst);
+ if (error != 0) {
+ device_printf(sc->dev, "cannot find reset 'lcd'\n");
+ return (error);
+ }
+ error = hwreset_deassert(rst);
+ if (error != 0) {
+ device_printf(sc->dev, "couldn't de-assert reset 'lcd'\n");
+ return (error);
+ }
+ /* Gating AHB clock for LCD */
+ error = clk_get_by_ofw_name(sc->dev, "ahb_lcd", &clk_ahb);
+ if (error != 0) {
+ device_printf(sc->dev, "cannot find clk 'ahb_lcd'\n");
+ return (error);
+ }
+ error = clk_enable(clk_ahb);
+ if (error != 0) {
+ device_printf(sc->dev, "cannot enable clk 'ahb_lcd'\n");
+ return (error);
+ }
/* Disable TCON and TCON1 */
TCON_WRITE(sc, TCON_GCTL, 0);
@@ -322,7 +435,7 @@ a10fb_setup_tcon(struct a10fb_softc *sc, const struct videomode *mode)
TCON_WRITE(sc, TCON1_CTL, val);
/* Setup PLL */
- a10_clk_tcon_activate(DOT_CLOCK_TO_HZ(mode->dot_clock));
+ return (a10fb_setup_pll(sc, DOT_CLOCK_TO_HZ(mode->dot_clock)));
}
static void
@@ -378,10 +491,14 @@ a10fb_configure(struct a10fb_softc *sc, const struct videomode *mode)
}
/* Setup display backend */
- a10fb_setup_debe(sc, mode);
+ error = a10fb_setup_debe(sc, mode);
+ if (error != 0)
+ return (error);
/* Setup display timing controller */
- a10fb_setup_tcon(sc, mode);
+ error = a10fb_setup_tcon(sc, mode);
+ if (error != 0)
+ return (error);
/* Attach framebuffer device */
sc->info.fb_name = device_get_nameunit(sc->dev);
diff --git a/sys/arm/allwinner/a10_hdmi.c b/sys/arm/allwinner/a10_hdmi.c
index ff86fa0..99cbc2f 100644
--- a/sys/arm/allwinner/a10_hdmi.c
+++ b/sys/arm/allwinner/a10_hdmi.c
@@ -49,7 +49,7 @@ __FBSDID("$FreeBSD$");
#include <dev/videomode/videomode.h>
#include <dev/videomode/edidvar.h>
-#include <arm/allwinner/a10_clk.h>
+#include <dev/extres/clk/clk.h>
#include "hdmi_if.h"
@@ -204,6 +204,7 @@ __FBSDID("$FreeBSD$");
#define HDMI_VSDB_MINLEN 5
#define HDMI_OUI "\x03\x0c\x00"
#define HDMI_OUI_LEN 3
+#define HDMI_DEFAULT_FREQ 297000000
struct a10hdmi_softc {
struct resource *res;
@@ -214,6 +215,10 @@ struct a10hdmi_softc {
int has_hdmi;
int has_audio;
+
+ clk_t clk_ahb;
+ clk_t clk_hdmi;
+ clk_t clk_lcd;
};
static struct resource_spec a10hdmi_spec[] = {
@@ -287,7 +292,33 @@ a10hdmi_attach(device_t dev)
return (ENXIO);
}
- a10_clk_hdmi_activate();
+ /* Setup clocks */
+ error = clk_get_by_ofw_name(dev, "ahb", &sc->clk_ahb);
+ if (error != 0) {
+ device_printf(dev, "cannot find ahb clock\n");
+ return (error);
+ }
+ error = clk_get_by_ofw_name(dev, "hdmi", &sc->clk_hdmi);
+ if (error != 0) {
+ device_printf(dev, "cannot find hdmi clock\n");
+ return (error);
+ }
+ error = clk_get_by_ofw_name(dev, "lcd", &sc->clk_lcd);
+ if (error != 0) {
+ device_printf(dev, "cannot find lcd clock\n");
+ }
+ /* Enable HDMI clock */
+ error = clk_enable(sc->clk_hdmi);
+ if (error != 0) {
+ device_printf(dev, "cannot enable hdmi clock\n");
+ return (error);
+ }
+ /* Gating AHB clock for HDMI */
+ error = clk_enable(sc->clk_ahb);
+ if (error != 0) {
+ device_printf(dev, "cannot enable ahb gate\n");
+ return (error);
+ }
a10hdmi_init(sc);
@@ -527,6 +558,38 @@ a10hdmi_set_audiomode(device_t dev, const struct videomode *mode)
}
static int
+a10hdmi_get_tcon_config(struct a10hdmi_softc *sc, int *div, int *dbl)
+{
+ uint64_t lcd_fin, lcd_fout;
+ clk_t clk_lcd_parent;
+ const char *pname;
+ int error;
+
+ error = clk_get_parent(sc->clk_lcd, &clk_lcd_parent);
+ if (error != 0)
+ return (error);
+
+ /* Get the LCD CH1 special clock 2 divider */
+ error = clk_get_freq(sc->clk_lcd, &lcd_fout);
+ if (error != 0)
+ return (error);
+ error = clk_get_freq(clk_lcd_parent, &lcd_fin);
+ if (error != 0)
+ return (error);
+ *div = lcd_fin / lcd_fout;
+
+ /* Detect LCD CH1 special clock using a 1X or 2X source */
+ /* XXX */
+ pname = clk_get_name(clk_lcd_parent);
+ if (strcmp(pname, "pll3-1x") == 0 || strcmp(pname, "pll7-1x") == 0)
+ *dbl = 0;
+ else
+ *dbl = 1;
+
+ return (0);
+}
+
+static int
a10hdmi_set_videomode(device_t dev, const struct videomode *mode)
{
struct a10hdmi_softc *sc;
@@ -543,9 +606,11 @@ a10hdmi_set_videomode(device_t dev, const struct videomode *mode)
vspw = mode->vsync_end - mode->vsync_start;
vbp = mode->vtotal - mode->vsync_start;
- error = a10_clk_tcon_get_config(&clk_div, &clk_dbl);
- if (error != 0)
+ error = a10hdmi_get_tcon_config(sc, &clk_div, &clk_dbl);
+ if (error != 0) {
+ device_printf(dev, "couldn't get tcon config: %d\n", error);
return (error);
+ }
/* Clear interrupt status */
HDMI_WRITE(sc, HDMI_INT_STATUS, HDMI_READ(sc, HDMI_INT_STATUS));
diff --git a/sys/arm/allwinner/a10_mmc.c b/sys/arm/allwinner/a10_mmc.c
index dc341dd..1b89c0f 100644
--- a/sys/arm/allwinner/a10_mmc.c
+++ b/sys/arm/allwinner/a10_mmc.c
@@ -49,9 +49,9 @@ __FBSDID("$FreeBSD$");
#include <dev/mmc/mmcbrvar.h>
#include <arm/allwinner/allwinner_machdep.h>
-#include <arm/allwinner/a10_clk.h>
#include <arm/allwinner/a10_mmc.h>
-#include <arm/allwinner/a31/a31_clk.h>
+#include <dev/extres/clk/clk.h>
+#include <dev/extres/hwreset/hwreset.h>
#define A10_MMC_MEMRES 0
#define A10_MMC_IRQRES 1
@@ -60,6 +60,8 @@ __FBSDID("$FreeBSD$");
#define A10_MMC_DMA_MAX_SIZE 0x2000
#define A10_MMC_DMA_FTRGLEVEL 0x20070008
+#define CARD_ID_FREQUENCY 400000
+
static int a10_mmc_pio_mode = 0;
TUNABLE_INT("hw.a10.mmc.pio_mode", &a10_mmc_pio_mode);
@@ -74,6 +76,9 @@ struct a10_mmc_softc {
bus_space_handle_t a10_bsh;
bus_space_tag_t a10_bst;
device_t a10_dev;
+ clk_t a10_clk_ahb;
+ clk_t a10_clk_mmc;
+ hwreset_t a10_rst_ahb;
int a10_bus_busy;
int a10_id;
int a10_resid;
@@ -147,7 +152,7 @@ a10_mmc_attach(device_t dev)
struct a10_mmc_softc *sc;
struct sysctl_ctx_list *ctx;
struct sysctl_oid_list *tree;
- int clk;
+ int error;
sc = device_get_softc(dev);
sc->a10_dev = dev;
@@ -170,6 +175,9 @@ a10_mmc_attach(device_t dev)
device_printf(dev, "cannot setup interrupt handler\n");
return (ENXIO);
}
+ mtx_init(&sc->a10_mtx, device_get_nameunit(sc->a10_dev), "a10_mmc",
+ MTX_DEF);
+ callout_init_mtx(&sc->a10_timeoutc, &sc->a10_mtx, 0);
/*
* Later chips use a different FIFO offset. Unfortunately the FDT
@@ -186,30 +194,41 @@ a10_mmc_attach(device_t dev)
break;
}
+ /* De-assert reset */
+ if (hwreset_get_by_ofw_name(dev, "ahb", &sc->a10_rst_ahb) == 0) {
+ error = hwreset_deassert(sc->a10_rst_ahb);
+ if (error != 0) {
+ device_printf(dev, "cannot de-assert reset\n");
+ return (error);
+ }
+ }
+
/* Activate the module clock. */
- switch (allwinner_soc_type()) {
-#if defined(SOC_ALLWINNER_A10) || defined(SOC_ALLWINNER_A20)
- case ALLWINNERSOC_A10:
- case ALLWINNERSOC_A10S:
- case ALLWINNERSOC_A20:
- clk = a10_clk_mmc_activate(sc->a10_id);
- break;
-#endif
-#if defined(SOC_ALLWINNER_A31) || defined(SOC_ALLWINNER_A31S)
- case ALLWINNERSOC_A31:
- case ALLWINNERSOC_A31S:
- clk = a31_clk_mmc_activate(sc->a10_id);
- break;
-#endif
- default:
- clk = -1;
+ error = clk_get_by_ofw_name(dev, "ahb", &sc->a10_clk_ahb);
+ if (error != 0) {
+ device_printf(dev, "cannot get ahb clock\n");
+ goto fail;
}
- if (clk != 0) {
- bus_teardown_intr(dev, sc->a10_res[A10_MMC_IRQRES],
- sc->a10_intrhand);
- bus_release_resources(dev, a10_mmc_res_spec, sc->a10_res);
- device_printf(dev, "cannot activate mmc clock\n");
- return (ENXIO);
+ error = clk_enable(sc->a10_clk_ahb);
+ if (error != 0) {
+ device_printf(dev, "cannot enable ahb clock\n");
+ goto fail;
+ }
+ error = clk_get_by_ofw_name(dev, "mmc", &sc->a10_clk_mmc);
+ if (error != 0) {
+ device_printf(dev, "cannot get mmc clock\n");
+ goto fail;
+ }
+ error = clk_set_freq(sc->a10_clk_mmc, CARD_ID_FREQUENCY,
+ CLK_SET_ROUND_DOWN);
+ if (error != 0) {
+ device_printf(dev, "cannot init mmc clock\n");
+ goto fail;
+ }
+ error = clk_enable(sc->a10_clk_mmc);
+ if (error != 0) {
+ device_printf(dev, "cannot enable mmc clock\n");
+ goto fail;
}
sc->a10_timeout = 10;
@@ -217,9 +236,6 @@ a10_mmc_attach(device_t dev)
tree = SYSCTL_CHILDREN(device_get_sysctl_tree(dev));
SYSCTL_ADD_INT(ctx, tree, OID_AUTO, "req_timeout", CTLFLAG_RW,
&sc->a10_timeout, 0, "Request timeout in seconds");
- mtx_init(&sc->a10_mtx, device_get_nameunit(sc->a10_dev), "a10_mmc",
- MTX_DEF);
- callout_init_mtx(&sc->a10_timeoutc, &sc->a10_mtx, 0);
/* Reset controller. */
if (a10_mmc_reset(sc) != 0) {
@@ -826,25 +842,14 @@ a10_mmc_update_ios(device_t bus, device_t child)
return (error);
/* Set the MMC clock. */
- switch (allwinner_soc_type()) {
-#if defined(SOC_ALLWINNER_A10) || defined(SOC_ALLWINNER_A20)
- case ALLWINNERSOC_A10:
- case ALLWINNERSOC_A10S:
- case ALLWINNERSOC_A20:
- error = a10_clk_mmc_cfg(sc->a10_id, ios->clock);
- break;
-#endif
-#if defined(SOC_ALLWINNER_A31) || defined(SOC_ALLWINNER_A31S)
- case ALLWINNERSOC_A31:
- case ALLWINNERSOC_A31S:
- error = a31_clk_mmc_cfg(sc->a10_id, ios->clock);
- break;
-#endif
- default:
- error = ENXIO;
- }
- if (error != 0)
+ error = clk_set_freq(sc->a10_clk_mmc, ios->clock,
+ CLK_SET_ROUND_DOWN);
+ if (error != 0) {
+ device_printf(sc->a10_dev,
+ "failed to set frequency to %u Hz: %d\n",
+ ios->clock, error);
return (error);
+ }
/* Enable clock. */
clkcr |= A10_MMC_CARD_CLK_ON;
diff --git a/sys/arm/allwinner/a10_sramc.c b/sys/arm/allwinner/a10_sramc.c
index a26afbb..22ba1f7 100644
--- a/sys/arm/allwinner/a10_sramc.c
+++ b/sys/arm/allwinner/a10_sramc.c
@@ -52,6 +52,7 @@ __FBSDID("$FreeBSD$");
#include "a10_sramc.h"
#define SRAM_CTL1_CFG 0x04
+#define CTL1_CFG_SRAMD_MAP_USB0 (1 << 0)
struct a10_sramc_softc {
struct resource *res;
@@ -71,7 +72,7 @@ static int
a10_sramc_probe(device_t dev)
{
- if (ofw_bus_is_compatible(dev, "allwinner,sun4i-sramc")) {
+ if (ofw_bus_is_compatible(dev, "allwinner,sun4i-a10-sram-controller")) {
device_set_desc(dev, "Allwinner sramc module");
return (BUS_PROBE_DEFAULT);
}
@@ -113,7 +114,8 @@ static driver_t a10_sramc_driver = {
static devclass_t a10_sramc_devclass;
-DRIVER_MODULE(a10_sramc, simplebus, a10_sramc_driver, a10_sramc_devclass, 0, 0);
+EARLY_DRIVER_MODULE(a10_sramc, simplebus, a10_sramc_driver, a10_sramc_devclass,
+ 0, 0, BUS_PASS_RESOURCE + BUS_PASS_ORDER_EARLY);
int
a10_map_to_emac(void)
@@ -131,3 +133,20 @@ a10_map_to_emac(void)
return (0);
}
+
+int
+a10_map_to_otg(void)
+{
+ struct a10_sramc_softc *sc = a10_sramc_sc;
+ uint32_t reg_value;
+
+ if (sc == NULL)
+ return (ENXIO);
+
+ /* Map SRAM to OTG */
+ reg_value = sramc_read_4(sc, SRAM_CTL1_CFG);
+ reg_value |= CTL1_CFG_SRAMD_MAP_USB0;
+ sramc_write_4(sc, SRAM_CTL1_CFG, reg_value);
+
+ return (0);
+}
diff --git a/sys/arm/allwinner/a10_sramc.h b/sys/arm/allwinner/a10_sramc.h
index 9c906df..d66a8f2 100644
--- a/sys/arm/allwinner/a10_sramc.h
+++ b/sys/arm/allwinner/a10_sramc.h
@@ -30,5 +30,6 @@
#define _A10_SRAMC_H_
int a10_map_to_emac(void);
+int a10_map_to_otg(void);
#endif
diff --git a/sys/arm/allwinner/a20/a20_if_dwc.c b/sys/arm/allwinner/a20/a20_if_dwc.c
index 711873d..2f88d9d 100644
--- a/sys/arm/allwinner/a20/a20_if_dwc.c
+++ b/sys/arm/allwinner/a20/a20_if_dwc.c
@@ -41,8 +41,8 @@ __FBSDID("$FreeBSD$");
#include <dev/ofw/ofw_bus_subr.h>
#include <arm/allwinner/allwinner_machdep.h>
-#include <arm/allwinner/a10_clk.h>
-#include <arm/allwinner/a31/a31_clk.h>
+#include <dev/extres/clk/clk.h>
+#include <dev/extres/regulator/regulator.h>
#include "if_dwc_if.h"
@@ -62,29 +62,49 @@ a20_if_dwc_probe(device_t dev)
static int
a20_if_dwc_init(device_t dev)
{
- int clk;
-
- /* Activate GMAC clock and set the pin mux to rgmii. */
- switch (allwinner_soc_type()) {
-#if defined(SOC_ALLWINNER_A10) || defined(SOC_ALLWINNER_A20)
- case ALLWINNERSOC_A10:
- case ALLWINNERSOC_A10S:
- case ALLWINNERSOC_A20:
- clk = a10_clk_gmac_activate(ofw_bus_get_node(dev));
- break;
-#endif
-#if defined(SOC_ALLWINNER_A31) || defined(SOC_ALLWINNER_A31S)
- case ALLWINNERSOC_A31:
- case ALLWINNERSOC_A31S:
- clk = a31_clk_gmac_activate(ofw_bus_get_node(dev));
- break;
-#endif
- default:
- clk = -1;
+ const char *tx_parent_name;
+ char *phy_type;
+ clk_t clk_tx, clk_tx_parent;
+ regulator_t reg;
+ phandle_t node;
+ int error;
+
+ node = ofw_bus_get_node(dev);
+
+ /* Configure PHY for MII or RGMII mode */
+ if (OF_getprop_alloc(node, "phy-mode", 1, (void **)&phy_type)) {
+ error = clk_get_by_ofw_name(dev, "allwinner_gmac_tx", &clk_tx);
+ if (error != 0) {
+ device_printf(dev, "could not get tx clk\n");
+ return (error);
+ }
+
+ if (strcmp(phy_type, "rgmii") == 0)
+ tx_parent_name = "gmac_int_tx";
+ else
+ tx_parent_name = "mii_phy_tx";
+
+ error = clk_get_by_name(dev, tx_parent_name, &clk_tx_parent);
+ if (error != 0) {
+ device_printf(dev, "could not get clock '%s'\n",
+ tx_parent_name);
+ return (error);
+ }
+
+ error = clk_set_parent_by_clk(clk_tx, clk_tx_parent);
+ if (error != 0) {
+ device_printf(dev, "could not set tx clk parent\n");
+ return (error);
+ }
}
- if (clk != 0) {
- device_printf(dev, "could not activate gmac module\n");
- return (ENXIO);
+
+ /* Enable PHY regulator if applicable */
+ if (regulator_get_by_ofw_property(dev, "phy-supply", &reg) == 0) {
+ error = regulator_enable(reg);
+ if (error != 0) {
+ device_printf(dev, "could not enable PHY regulator\n");
+ return (error);
+ }
}
return (0);
diff --git a/sys/arm/allwinner/a31/a31_clk.c b/sys/arm/allwinner/a31/a31_clk.c
deleted file mode 100644
index edda8bb..0000000
--- a/sys/arm/allwinner/a31/a31_clk.c
+++ /dev/null
@@ -1,378 +0,0 @@
-/*-
- * Copyright (c) 2013 Ganbold Tsagaankhuu <ganbold@freebsd.org>
- * Copyright (c) 2016 Emmanuel Vadot <manu@bidouilliste.com>
- * 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.
- */
-
-/*
- * Simple clock driver for Allwinner A31
- * Adapted from a10_clk.c
-*/
-
-#include <sys/cdefs.h>
-__FBSDID("$FreeBSD$");
-
-#include <sys/param.h>
-#include <sys/systm.h>
-#include <sys/bus.h>
-#include <sys/kernel.h>
-#include <sys/module.h>
-#include <sys/malloc.h>
-#include <machine/bus.h>
-
-#include <dev/ofw/openfirm.h>
-#include <dev/ofw/ofw_bus_subr.h>
-
-#include <arm/allwinner/a31/a31_clk.h>
-
-struct a31_ccm_softc {
- struct resource *res;
- struct mtx mtx;
- int pll6_enabled;
- int ehci_refcnt;
-};
-
-static struct a31_ccm_softc *a31_ccm_sc = NULL;
-
-#define ccm_read_4(sc, reg) \
- bus_read_4((sc)->res, (reg))
-#define ccm_write_4(sc, reg, val) \
- bus_write_4((sc)->res, (reg), (val))
-
-#define CCM_LOCK(sc) mtx_lock(&(sc)->mtx)
-#define CCM_UNLOCK(sc) mtx_unlock(&(sc)->mtx)
-
-#define PLL6_TIMEOUT 10
-
-static int
-a31_ccm_probe(device_t dev)
-{
-
- if (!ofw_bus_status_okay(dev))
- return (ENXIO);
-
- if (ofw_bus_is_compatible(dev, "allwinner,sun6i-a31-ccm")) {
- device_set_desc(dev, "Allwinner Clock Control Module");
- return(BUS_PROBE_DEFAULT);
- }
-
- return (ENXIO);
-}
-
-static int
-a31_ccm_attach(device_t dev)
-{
- struct a31_ccm_softc *sc = device_get_softc(dev);
- int rid = 0;
-
- if (a31_ccm_sc)
- return (ENXIO);
-
- sc->res = bus_alloc_resource_any(dev, SYS_RES_MEMORY, &rid, RF_ACTIVE);
- if (!sc->res) {
- device_printf(dev, "could not allocate resource\n");
- return (ENXIO);
- }
-
- mtx_init(&sc->mtx, "a31 ccm", NULL, MTX_DEF);
-
- a31_ccm_sc = sc;
-
- return (0);
-}
-
-static device_method_t a31_ccm_methods[] = {
- DEVMETHOD(device_probe, a31_ccm_probe),
- DEVMETHOD(device_attach, a31_ccm_attach),
- { 0, 0 }
-};
-
-static driver_t a31_ccm_driver = {
- "a31_ccm",
- a31_ccm_methods,
- sizeof(struct a31_ccm_softc),
-};
-
-static devclass_t a31_ccm_devclass;
-
-EARLY_DRIVER_MODULE(a31_ccm, simplebus, a31_ccm_driver, a31_ccm_devclass, 0, 0,
- BUS_PASS_TIMER + BUS_PASS_ORDER_MIDDLE);
-
-static int
-a31_clk_pll6_enable(void)
-{
- struct a31_ccm_softc *sc;
- uint32_t reg_value;
- int i;
-
- /* Datasheet recommand to use the default 600Mhz value */
- sc = a31_ccm_sc;
- if (sc->pll6_enabled)
- return (0);
- reg_value = ccm_read_4(sc, A31_CCM_PLL6_CFG);
- reg_value |= A31_CCM_PLL_CFG_ENABLE;
- ccm_write_4(sc, A31_CCM_PLL6_CFG, reg_value);
-
- /* Wait for PLL to be stable */
- for (i = 0; i < PLL6_TIMEOUT; i++)
- if ((ccm_read_4(sc, A31_CCM_PLL6_CFG) &
- A31_CCM_PLL6_CFG_REG_LOCK) == A31_CCM_PLL6_CFG_REG_LOCK)
- break;
- if (i == PLL6_TIMEOUT)
- return (ENXIO);
- sc->pll6_enabled = 1;
-
- return (0);
-}
-
-static unsigned int
-a31_clk_pll6_get_rate(void)
-{
- struct a31_ccm_softc *sc;
- uint32_t k, n, reg_value;
-
- sc = a31_ccm_sc;
- reg_value = ccm_read_4(sc, A31_CCM_PLL6_CFG);
- n = ((reg_value & A31_CCM_PLL_CFG_FACTOR_N) >>
- A31_CCM_PLL_CFG_FACTOR_N_SHIFT);
- k = ((reg_value & A31_CCM_PLL_CFG_FACTOR_K) >>
- A31_CCM_PLL_CFG_FACTOR_K_SHIFT) + 1;
-
- return ((A31_CCM_CLK_REF_FREQ * n * k) / 2);
-}
-
-int
-a31_clk_gmac_activate(phandle_t node)
-{
- char *phy_type;
- struct a31_ccm_softc *sc;
- uint32_t reg_value;
-
- sc = a31_ccm_sc;
- if (sc == NULL)
- return (ENXIO);
-
- if (a31_clk_pll6_enable())
- return (ENXIO);
-
- /* Gating AHB clock for GMAC */
- reg_value = ccm_read_4(sc, A31_CCM_AHB_GATING0);
- reg_value |= A31_CCM_AHB_GATING_GMAC;
- ccm_write_4(sc, A31_CCM_AHB_GATING0, reg_value);
-
- /* Set GMAC mode. */
- reg_value = A31_CCM_GMAC_CLK_MII;
- if (OF_getprop_alloc(node, "phy-mode", 1, (void **)&phy_type) > 0) {
- if (strcasecmp(phy_type, "rgmii") == 0)
- reg_value = A31_CCM_GMAC_CLK_RGMII |
- A31_CCM_GMAC_MODE_RGMII;
- free(phy_type, M_OFWPROP);
- }
- ccm_write_4(sc, A31_CCM_GMAC_CLK, reg_value);
-
- /* Reset gmac */
- reg_value = ccm_read_4(sc, A31_CCM_AHB1_RST_REG0);
- reg_value |= A31_CCM_AHB1_RST_REG0_GMAC;
- ccm_write_4(sc, A31_CCM_AHB1_RST_REG0, reg_value);
-
- return (0);
-}
-
-int
-a31_clk_mmc_activate(int devid)
-{
- struct a31_ccm_softc *sc;
- uint32_t reg_value;
-
- sc = a31_ccm_sc;
- if (sc == NULL)
- return (ENXIO);
-
- if (a31_clk_pll6_enable())
- return (ENXIO);
-
- /* Gating AHB clock for SD/MMC */
- reg_value = ccm_read_4(sc, A31_CCM_AHB_GATING0);
- reg_value |= A31_CCM_AHB_GATING_SDMMC0 << devid;
- ccm_write_4(sc, A31_CCM_AHB_GATING0, reg_value);
-
- /* Soft reset */
- reg_value = ccm_read_4(sc, A31_CCM_AHB1_RST_REG0);
- reg_value |= A31_CCM_AHB1_RST_REG0_SDMMC << devid;
- ccm_write_4(sc, A31_CCM_AHB1_RST_REG0, reg_value);
-
- return (0);
-}
-
-int
-a31_clk_mmc_cfg(int devid, int freq)
-{
- struct a31_ccm_softc *sc;
- uint32_t clksrc, m, n, ophase, phase, reg_value;
- unsigned int pll_freq;
-
- sc = a31_ccm_sc;
- if (sc == NULL)
- return (ENXIO);
-
- freq /= 1000;
- if (freq <= 400) {
- pll_freq = A31_CCM_CLK_REF_FREQ / 1000;
- clksrc = A31_CCM_SD_CLK_SRC_SEL_OSC24M;
- ophase = 0;
- phase = 0;
- n = 2;
- } else if (freq <= 25000) {
- pll_freq = a31_clk_pll6_get_rate() / 1000;
- clksrc = A31_CCM_SD_CLK_SRC_SEL_PLL6;
- ophase = 0;
- phase = 5;
- n = 2;
- } else if (freq <= 50000) {
- pll_freq = a31_clk_pll6_get_rate() / 1000;
- clksrc = A31_CCM_SD_CLK_SRC_SEL_PLL6;
- ophase = 3;
- phase = 5;
- n = 0;
- } else
- return (EINVAL);
- m = ((pll_freq / (1 << n)) / (freq)) - 1;
- reg_value = ccm_read_4(sc, A31_CCM_MMC0_SCLK_CFG + (devid * 4));
- reg_value &= ~A31_CCM_SD_CLK_SRC_SEL;
- reg_value |= (clksrc << A31_CCM_SD_CLK_SRC_SEL_SHIFT);
- reg_value &= ~A31_CCM_SD_CLK_PHASE_CTR;
- reg_value |= (phase << A31_CCM_SD_CLK_PHASE_CTR_SHIFT);
- reg_value &= ~A31_CCM_SD_CLK_DIV_RATIO_N;
- reg_value |= (n << A31_CCM_SD_CLK_DIV_RATIO_N_SHIFT);
- reg_value &= ~A31_CCM_SD_CLK_OPHASE_CTR;
- reg_value |= (ophase << A31_CCM_SD_CLK_OPHASE_CTR_SHIFT);
- reg_value &= ~A31_CCM_SD_CLK_DIV_RATIO_M;
- reg_value |= m;
- reg_value |= A31_CCM_PLL_CFG_ENABLE;
- ccm_write_4(sc, A31_CCM_MMC0_SCLK_CFG + (devid * 4), reg_value);
-
- return (0);
-}
-
-int
-a31_clk_i2c_activate(int devid)
-{
- struct a31_ccm_softc *sc;
- uint32_t reg_value;
-
- sc = a31_ccm_sc;
- if (sc == NULL)
- return (ENXIO);
-
- if (a31_clk_pll6_enable())
- return (ENXIO);
-
- /* Gating APB clock for I2C/TWI */
- reg_value = ccm_read_4(sc, A31_CCM_APB2_GATING);
- reg_value |= A31_CCM_APB2_GATING_TWI << devid;
- ccm_write_4(sc, A31_CCM_APB2_GATING, reg_value);
-
- /* Soft reset */
- reg_value = ccm_read_4(sc, A31_CCM_APB2_RST);
- reg_value |= A31_CCM_APB2_RST_TWI << devid;
- ccm_write_4(sc, A31_CCM_APB2_RST, reg_value);
-
- return (0);
-}
-
-int
-a31_clk_ehci_activate(void)
-{
- struct a31_ccm_softc *sc;
- uint32_t reg_value;
-
- sc = a31_ccm_sc;
- if (sc == NULL)
- return (ENXIO);
-
- CCM_LOCK(sc);
- if (++sc->ehci_refcnt == 1) {
- /* Enable USB PHY */
- reg_value = ccm_read_4(sc, A31_CCM_USBPHY_CLK);
- reg_value |= A31_CCM_USBPHY_CLK_GATING_USBPHY0;
- reg_value |= A31_CCM_USBPHY_CLK_GATING_USBPHY1;
- reg_value |= A31_CCM_USBPHY_CLK_GATING_USBPHY2;
- reg_value |= A31_CCM_USBPHY_CLK_USBPHY1_RST;
- reg_value |= A31_CCM_USBPHY_CLK_USBPHY2_RST;
- ccm_write_4(sc, A31_CCM_USBPHY_CLK, reg_value);
-
- /* Gating AHB clock for EHCI */
- reg_value = ccm_read_4(sc, A31_CCM_AHB_GATING0);
- reg_value |= A31_CCM_AHB_GATING_EHCI0;
- reg_value |= A31_CCM_AHB_GATING_EHCI1;
- ccm_write_4(sc, A31_CCM_AHB_GATING0, reg_value);
-
- /* De-assert reset */
- reg_value = ccm_read_4(sc, A31_CCM_AHB1_RST_REG0);
- reg_value |= A31_CCM_AHB1_RST_REG0_EHCI0;
- reg_value |= A31_CCM_AHB1_RST_REG0_EHCI1;
- ccm_write_4(sc, A31_CCM_AHB1_RST_REG0, reg_value);
- }
- CCM_UNLOCK(sc);
-
- return (0);
-}
-
-int
-a31_clk_ehci_deactivate(void)
-{
- struct a31_ccm_softc *sc;
- uint32_t reg_value;
-
- sc = a31_ccm_sc;
- if (sc == NULL)
- return (ENXIO);
-
- CCM_LOCK(sc);
- if (--sc->ehci_refcnt == 0) {
- /* Disable USB PHY */
- reg_value = ccm_read_4(sc, A31_CCM_USBPHY_CLK);
- reg_value &= ~A31_CCM_USBPHY_CLK_GATING_USBPHY0;
- reg_value &= ~A31_CCM_USBPHY_CLK_GATING_USBPHY1;
- reg_value &= ~A31_CCM_USBPHY_CLK_GATING_USBPHY2;
- reg_value &= ~A31_CCM_USBPHY_CLK_USBPHY1_RST;
- reg_value &= ~A31_CCM_USBPHY_CLK_USBPHY2_RST;
- ccm_write_4(sc, A31_CCM_USBPHY_CLK, reg_value);
-
- /* Gating AHB clock for EHCI */
- reg_value = ccm_read_4(sc, A31_CCM_AHB_GATING0);
- reg_value &= ~A31_CCM_AHB_GATING_EHCI0;
- reg_value &= ~A31_CCM_AHB_GATING_EHCI1;
- ccm_write_4(sc, A31_CCM_AHB_GATING0, reg_value);
-
- /* Assert reset */
- reg_value = ccm_read_4(sc, A31_CCM_AHB1_RST_REG0);
- reg_value &= ~A31_CCM_AHB1_RST_REG0_EHCI0;
- reg_value &= ~A31_CCM_AHB1_RST_REG0_EHCI1;
- ccm_write_4(sc, A31_CCM_AHB1_RST_REG0, reg_value);
- }
- CCM_UNLOCK(sc);
-
- return (0);
-}
diff --git a/sys/arm/allwinner/a31/a31_clk.h b/sys/arm/allwinner/a31/a31_clk.h
deleted file mode 100644
index 1ec6a79..0000000
--- a/sys/arm/allwinner/a31/a31_clk.h
+++ /dev/null
@@ -1,213 +0,0 @@
-/*-
- * Copyright (c) 2013 Ganbold Tsagaankhuu <ganbold@freebsd.org>
- * Copyright (c) 2016 Emmanuel Vadot <manu@bidouilliste.com>
- * 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 _A31_CLK_H_
-#define _A31_CLK_H_
-
-#define A31_CCM_PLL1_CFG 0x0000
-#define A31_CCM_PLL2_CFG 0x0008
-#define A31_CCM_PLL3_CFG 0x0010
-#define A31_CCM_PLL4_CFG 0x0018
-#define A31_CCM_PLL5_CFG 0x0020
-#define A31_CCM_PLL6_CFG 0x0028
-#define A31_CCM_PLL7_CFG 0x0030
-#define A31_CCM_PLL8_CFG 0x0038
-#define A31_CCM_MIPI_PLL_CFG 0x0040
-#define A31_CCM_PLL9_CFG 0x0044
-#define A31_CCM_PLL10_CFG 0x0048
-#define A31_CCM_AXI_CFG_REG 0x0050
-#define A31_CCM_AHB1_APB1_CFG 0x0054
-#define A31_CCM_APB2_CLK_DIV 0x0058
-#define A31_CCM_AHB_GATING0 0x0060
-#define A31_CCM_AHB_GATING1 0x0064
-#define A31_CCM_APB1_GATING 0x0068
-#define A31_CCM_APB2_GATING 0x006c
-#define A31_CCM_NAND0_SCLK_CFG 0x0080
-#define A31_CCM_NAND1_SCLK_CFG 0x0084
-#define A31_CCM_MMC0_SCLK_CFG 0x0088
-#define A31_CCM_MMC1_SCLK_CFG 0x008c
-#define A31_CCM_MMC2_SCLK_CFG 0x0090
-#define A31_CCM_MMC3_SCLK_CFG 0x0094
-#define A31_CCM_TS_CLK 0x0098
-#define A31_CCM_SS_CLK 0x009c
-#define A31_CCM_SPI0_CLK 0x00a0
-#define A31_CCM_SPI1_CLK 0x00a4
-#define A31_CCM_SPI2_CLK 0x00a8
-#define A31_CCM_SPI3_CLK 0x00ac
-#define A31_CCM_DAUDIO0_CLK 0x00b0
-#define A31_CCM_DAUDIO1_CLK 0x00b4
-#define A31_CCM_USBPHY_CLK 0x00cc
-#define A31_CCM_GMAC_CLK 0x00d0
-#define A31_CCM_MDFS_CLK 0x00f0
-#define A31_CCM_DRAM_CLK 0x00f4
-#define A31_CCM_DRAM_GATING 0x0100
-#define A31_CCM_BE0_SCLK 0x0104
-#define A31_CCM_BE1_SCLK 0x0108
-#define A31_CCM_FE0_CLK 0x010c
-#define A31_CCM_FE1_CLK 0x0110
-#define A31_CCM_MP_CLK 0x0114
-#define A31_CCM_LCD0_CH0_CLK 0x0118
-#define A31_CCM_LCD1_CH0_CLK 0x011c
-#define A31_CCM_LCD0_CH1_CLK 0x012c
-#define A31_CCM_LCD1_CH1_CLK 0x0130
-#define A31_CCM_CSI0_CLK 0x0134
-#define A31_CCM_CSI1_CLK 0x0138
-#define A31_CCM_VE_CLK 0x013c
-#define A31_CCM_AUDIO_CODEC_CLK 0x0140
-#define A31_CCM_AVS_CLK 0x0144
-#define A31_CCM_DIGITAL_MIC_CLK 0x0148
-#define A31_CCM_HDMI_CLK 0x0150
-#define A31_CCM_PS_CLK 0x0154
-#define A31_CCM_MBUS_SCLK_CFG0 0x015c
-#define A31_CCM_MBUS_SCLK_CFG1 0x0160
-#define A31_CCM_MIPI_DSI_CLK 0x0168
-#define A31_CCM_MIPI_CSI0_CLK 0x016c
-#define A31_CCM_DRC0_SCLK_CFG 0x0180
-#define A31_CCM_DRC1_SCLK_CFG 0x0184
-#define A31_CCM_DEU0_SCLK_CFG 0x0188
-#define A31_CCM_DEU1_SCLK_CFG 0x018c
-#define A31_CCM_GPU_CORE_CLK 0x01a0
-#define A31_CCM_GPU_MEM_CLK 0x01a4
-#define A31_CCM_GPU_HYD_CLK 0x01a8
-#define A31_CCM_ATS_CLK 0x01b0
-#define A31_CCM_TRACE_CLK 0x01b4
-#define A31_CCM_PLL_LOCK_CFG 0x0200
-#define A31_CCM_PLL1_LOCK_CFG 0x0204
-#define A31_CCM_PLL1_BIAS 0x0220
-#define A31_CCM_PLL2_BIAS 0x0224
-#define A31_CCM_PLL3_BIAS 0x0228
-#define A31_CCM_PLL4_BIAS 0x022c
-#define A31_CCM_PLL5_BIAS 0x0230
-#define A31_CCM_PLL6_BIAS 0x0234
-#define A31_CCM_PLL7_BIAS 0x0238
-#define A31_CCM_PLL8_BIAS 0x023c
-#define A31_CCM_PLL9_BIAS 0x0240
-#define A31_CCM_MIPI_PLL_BIAS 0x0244
-#define A31_CCM_PLL10_BIAS 0x0248
-#define A31_CCM_PLL1_PAT_CFG 0x0280
-#define A31_CCM_PLL2_PAT_CFG 0x0284
-#define A31_CCM_PLL3_PAT_CFG 0x0288
-#define A31_CCM_PLL4_PAT_CFG 0x028c
-#define A31_CCM_PLL5_PAT_CFG 0x0290
-#define A31_CCM_PLL6_PAT_CFG 0x0294
-#define A31_CCM_PLL7_PAT_CFG 0x0298
-#define A31_CCM_PLL8_PAT_CFG 0x029c
-#define A31_CCM_MIPI_PLL_PAT_CFG 0x02a0
-#define A31_CCM_PLL9_PAT_CFG 0x02a4
-#define A31_CCM_PLL10_PAT_CFG 0x02a8
-#define A31_CCM_AHB1_RST_REG0 0x02c0
-#define A31_CCM_AHB1_RST_REG1 0x02c4
-#define A31_CCM_AHB1_RST_REG2 0x02c8
-#define A31_CCM_APB1_RST 0x02d0
-#define A31_CCM_APB2_RST 0x02d8
-#define A31_CCM_CLK_OUTA 0x0300
-#define A31_CCM_CLK_OUTB 0x0304
-#define A31_CCM_CLK_OUTC 0x0308
-
-/* PLL6_CFG_REG */
-#define A31_CCM_PLL6_CFG_REG_LOCK (1 << 28)
-
-/* AHB_GATING_REG0 */
-#define A31_CCM_AHB_GATING_OHCI2 (1 << 31)
-#define A31_CCM_AHB_GATING_OHCI1 (1 << 30)
-#define A31_CCM_AHB_GATING_OHCI0 (1 << 29)
-#define A31_CCM_AHB_GATING_EHCI1 (1 << 27)
-#define A31_CCM_AHB_GATING_EHCI0 (1 << 26)
-#define A31_CCM_AHB_GATING_USBDRD (1 << 24)
-#define A31_CCM_AHB_GATING_GMAC (1 << 17)
-#define A31_CCM_AHB_GATING_SDMMC0 (1 << 8)
-
-#define A31_CCM_PLL_CFG_ENABLE (1U << 31)
-#define A31_CCM_PLL_CFG_BYPASS (1U << 30)
-#define A31_CCM_PLL_CFG_PLL5 (1U << 25)
-#define A31_CCM_PLL_CFG_PLL6 (1U << 24)
-#define A31_CCM_PLL_CFG_FACTOR_N 0x1f00
-#define A31_CCM_PLL_CFG_FACTOR_N_SHIFT 8
-#define A31_CCM_PLL_CFG_FACTOR_K 0x30
-#define A31_CCM_PLL_CFG_FACTOR_K_SHIFT 4
-#define A31_CCM_PLL_CFG_FACTOR_M 0x3
-
-/* APB2_GATING */
-#define A31_CCM_APB2_GATING_TWI (1 << 0)
-
-/* AHB1_RST_REG0 */
-#define A31_CCM_AHB1_RST_REG0_OHCI2 (1 << 31)
-#define A31_CCM_AHB1_RST_REG0_OHCI1 (1 << 30)
-#define A31_CCM_AHB1_RST_REG0_OHCI0 (1 << 29)
-#define A31_CCM_AHB1_RST_REG0_EHCI1 (1 << 27)
-#define A31_CCM_AHB1_RST_REG0_EHCI0 (1 << 26)
-#define A31_CCM_AHB1_RST_REG0_GMAC (1 << 17)
-#define A31_CCM_AHB1_RST_REG0_SDMMC (1 << 8)
-
-/* APB2_RST_REG */
-#define A31_CCM_APB2_RST_TWI (1 << 0)
-
-
-/* GMAC */
-#define A31_CCM_GMAC_CLK_DELAY_SHIFT 10
-#define A31_CCM_GMAC_CLK_MODE_MASK 0x7
-#define A31_CCM_GMAC_MODE_RGMII (1 << 2)
-#define A31_CCM_GMAC_CLK_MII 0x0
-#define A31_CCM_GMAC_CLK_EXT_RGMII 0x1
-#define A31_CCM_GMAC_CLK_RGMII 0x2
-
-/* SD/MMC */
-#define A31_CCM_SD_CLK_SRC_SEL 0x3000000
-#define A31_CCM_SD_CLK_SRC_SEL_SHIFT 24
-#define A31_CCM_SD_CLK_SRC_SEL_OSC24M 0
-#define A31_CCM_SD_CLK_SRC_SEL_PLL6 1
-#define A31_CCM_SD_CLK_PHASE_CTR 0x700000
-#define A31_CCM_SD_CLK_PHASE_CTR_SHIFT 20
-#define A31_CCM_SD_CLK_DIV_RATIO_N 0x30000
-#define A31_CCM_SD_CLK_DIV_RATIO_N_SHIFT 16
-#define A31_CCM_SD_CLK_OPHASE_CTR 0x700
-#define A31_CCM_SD_CLK_OPHASE_CTR_SHIFT 8
-#define A31_CCM_SD_CLK_DIV_RATIO_M 0xf
-
-/* USB */
-#define A31_CCM_USBPHY_CLK_GATING_OHCI2 (1 << 18)
-#define A31_CCM_USBPHY_CLK_GATING_OHCI1 (1 << 17)
-#define A31_CCM_USBPHY_CLK_GATING_OHCI0 (1 << 16)
-#define A31_CCM_USBPHY_CLK_GATING_USBPHY2 (1 << 10)
-#define A31_CCM_USBPHY_CLK_GATING_USBPHY1 (1 << 9)
-#define A31_CCM_USBPHY_CLK_GATING_USBPHY0 (1 << 8)
-#define A31_CCM_USBPHY_CLK_USBPHY2_RST (1 << 2)
-#define A31_CCM_USBPHY_CLK_USBPHY1_RST (1 << 1)
-#define A31_CCM_USBPHY_CLK_USBPHY0_RST (1 << 0)
-
-#define A31_CCM_CLK_REF_FREQ 24000000U
-
-int a31_clk_gmac_activate(phandle_t);
-int a31_clk_mmc_activate(int);
-int a31_clk_mmc_cfg(int, int);
-int a31_clk_i2c_activate(int);
-int a31_clk_ehci_activate(void);
-int a31_clk_ehci_deactivate(void);
-
-#endif /* _A31_CLK_H_ */
diff --git a/sys/arm/allwinner/a31/a31_padconf.c b/sys/arm/allwinner/a31/a31_padconf.c
index 1a38c79..e591d57 100644
--- a/sys/arm/allwinner/a31/a31_padconf.c
+++ b/sys/arm/allwinner/a31/a31_padconf.c
@@ -51,19 +51,19 @@ const static struct allwinner_pins a31_pins[] = {
{"PA12", 0, 12, {"gpio_in", "gpio_out", "gmac", "lcd1", "mmc3", "mmc2", NULL, NULL}},
{"PA13", 0, 13, {"gpio_in", "gpio_out", "gmac", "lcd1", "mmc3", "mmc2", NULL, NULL}},
{"PA14", 0, 14, {"gpio_in", "gpio_out", "gmac", "lcd1", "mmc3", "mmc2", NULL, NULL}},
- {"PA15", 0, 15, {"gpio_in", "gpio_out", "gmac", "lcd1", "dmic", NULL, NULL, NULL}},
+ {"PA15", 0, 15, {"gpio_in", "gpio_out", "gmac", "lcd1", "clk_out_a", NULL, NULL, NULL}},
{"PA16", 0, 16, {"gpio_in", "gpio_out", "gmac", "lcd1", "dmic", NULL, NULL, NULL}},
- {"PA17", 0, 17, {"gpio_in", "gpio_out", "gmac", "lcd1", "clk_out_b", NULL, NULL, NULL}},
- {"PA18", 0, 17, {"gpio_in", "gpio_out", "gmac", "lcd1", "pwm3", NULL, NULL, NULL}},
- {"PA19", 0, 17, {"gpio_in", "gpio_out", "gmac", "lcd1", "pwm3", NULL, NULL, NULL}},
- {"PA20", 0, 17, {"gpio_in", "gpio_out", "gmac", "lcd1", "spi3", NULL, NULL, NULL}},
- {"PA21", 0, 17, {"gpio_in", "gpio_out", "gmac", "lcd1", "spi3", NULL, NULL, NULL}},
- {"PA22", 0, 17, {"gpio_in", "gpio_out", "gmac", "lcd1", "spi3", NULL, NULL, NULL}},
- {"PA23", 0, 17, {"gpio_in", "gpio_out", "gmac", "lcd1", "spi3", NULL, NULL, NULL}},
- {"PA24", 0, 17, {"gpio_in", "gpio_out", "gmac", "lcd1", "spi3", NULL, NULL, NULL}},
- {"PA25", 0, 17, {"gpio_in", "gpio_out", "gmac", "lcd1", "spi3", NULL, NULL, NULL}},
- {"PA26", 0, 17, {"gpio_in", "gpio_out", "gmac", "lcd1", "clk_out_c", NULL, NULL, NULL}},
- {"PA27", 0, 17, {"gpio_in", "gpio_out", "gmac", "lcd1", NULL, NULL, NULL, NULL}},
+ {"PA17", 0, 17, {"gpio_in", "gpio_out", "gmac", "lcd1", "dmic", NULL, NULL, NULL}},
+ {"PA18", 0, 18, {"gpio_in", "gpio_out", "gmac", "lcd1", "clk_out_b", NULL, NULL, NULL}},
+ {"PA19", 0, 19, {"gpio_in", "gpio_out", "gmac", "lcd1", "pwm3", NULL, NULL, NULL}},
+ {"PA20", 0, 20, {"gpio_in", "gpio_out", "gmac", "lcd1", "pwm3", NULL, NULL, NULL}},
+ {"PA21", 0, 21, {"gpio_in", "gpio_out", "gmac", "lcd1", "spi3", NULL, NULL, NULL}},
+ {"PA22", 0, 22, {"gpio_in", "gpio_out", "gmac", "lcd1", "spi3", NULL, NULL, NULL}},
+ {"PA23", 0, 23, {"gpio_in", "gpio_out", "gmac", "lcd1", "spi3", NULL, NULL, NULL}},
+ {"PA24", 0, 24, {"gpio_in", "gpio_out", "gmac", "lcd1", "spi3", NULL, NULL, NULL}},
+ {"PA25", 0, 25, {"gpio_in", "gpio_out", "gmac", "lcd1", "spi3", NULL, NULL, NULL}},
+ {"PA26", 0, 26, {"gpio_in", "gpio_out", "gmac", "lcd1", "clk_out_c", NULL, NULL, NULL}},
+ {"PA27", 0, 27, {"gpio_in", "gpio_out", "gmac", "lcd1", NULL, NULL, NULL, NULL}},
{"PB0", 1, 0, {"gpio_in", "gpio_out", "i2s0", "uart3", "csi", NULL, NULL, NULL}},
{"PB1", 1, 1, {"gpio_in", "gpio_out", "i2s0", NULL, NULL, NULL, NULL, NULL}},
@@ -144,11 +144,11 @@ const static struct allwinner_pins a31_pins[] = {
{"PE9", 4, 9, {"gpio_in", "gpio_out", "csi", "ts", NULL, NULL, NULL, NULL}},
{"PE10", 4, 10, {"gpio_in", "gpio_out", "csi", "ts", NULL, NULL, NULL, NULL}},
{"PE11", 4, 11, {"gpio_in", "gpio_out", "csi", "ts", NULL, NULL, NULL, NULL}},
- {"PE12", 4, 11, {"gpio_in", "gpio_out", "csi", "ts", NULL, NULL, NULL, NULL}},
- {"PE13", 4, 11, {"gpio_in", "gpio_out", "csi", "ts", NULL, NULL, NULL, NULL}},
- {"PE14", 4, 11, {"gpio_in", "gpio_out", "csi", "ts", NULL, NULL, NULL, NULL}},
- {"PE15", 4, 11, {"gpio_in", "gpio_out", "csi", "ts", NULL, NULL, NULL, NULL}},
- {"PE16", 4, 11, {"gpio_in", "gpio_out", "csi", NULL, NULL, NULL, NULL, NULL}},
+ {"PE12", 4, 12, {"gpio_in", "gpio_out", "csi", "ts", NULL, NULL, NULL, NULL}},
+ {"PE13", 4, 13, {"gpio_in", "gpio_out", "csi", "ts", NULL, NULL, NULL, NULL}},
+ {"PE14", 4, 14, {"gpio_in", "gpio_out", "csi", "ts", NULL, NULL, NULL, NULL}},
+ {"PE15", 4, 15, {"gpio_in", "gpio_out", "csi", "ts", NULL, NULL, NULL, NULL}},
+ {"PE16", 4, 16, {"gpio_in", "gpio_out", "csi", NULL, NULL, NULL, NULL, NULL}},
{"PF0", 5, 0, {"gpio_in", "gpio_out", "mmc0", NULL, "jtag", NULL, NULL, NULL}},
{"PF1", 5, 1, {"gpio_in", "gpio_out", "mmc0", NULL, "jtag", NULL, NULL, NULL}},
@@ -205,9 +205,9 @@ const static struct allwinner_pins a31_pins[] = {
{"PH25", 7, 25, {"gpio_in", "gpio_out", NULL, NULL, NULL, NULL, NULL, NULL}},
{"PH26", 7, 26, {"gpio_in", "gpio_out", NULL, NULL, NULL, NULL, NULL, NULL}},
{"PH27", 7, 27, {"gpio_in", "gpio_out", NULL, NULL, NULL, NULL, NULL, NULL}},
- {"PH28", 7, 27, {"gpio_in", "gpio_out", NULL, NULL, NULL, NULL, NULL, NULL}},
- {"PH29", 7, 27, {"gpio_in", "gpio_out", "nand1", NULL, NULL, NULL, NULL, NULL}},
- {"PH30", 7, 27, {"gpio_in", "gpio_out", "nand1", NULL, NULL, NULL, NULL, NULL}},
+ {"PH28", 7, 28, {"gpio_in", "gpio_out", NULL, NULL, NULL, NULL, NULL, NULL}},
+ {"PH29", 7, 29, {"gpio_in", "gpio_out", "nand1", NULL, NULL, NULL, NULL, NULL}},
+ {"PH30", 7, 30, {"gpio_in", "gpio_out", "nand1", NULL, NULL, NULL, NULL, NULL}},
};
const struct allwinner_padconf a31_padconf = {
diff --git a/sys/arm/allwinner/aw_ccu.c b/sys/arm/allwinner/aw_ccu.c
new file mode 100644
index 0000000..d2ce774
--- /dev/null
+++ b/sys/arm/allwinner/aw_ccu.c
@@ -0,0 +1,224 @@
+/*-
+ * Copyright (c) 2016 Jared McNeill <jmcneill@invisible.ca>
+ * 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 ``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.
+ *
+ * $FreeBSD$
+ */
+
+/*
+ * Allwinner oscillator clock
+ */
+
+#include <sys/cdefs.h>
+__FBSDID("$FreeBSD$");
+
+#include <sys/param.h>
+#include <sys/systm.h>
+#include <sys/bus.h>
+#include <sys/rman.h>
+#include <sys/kernel.h>
+#include <sys/module.h>
+#include <machine/bus.h>
+
+#include <dev/fdt/simplebus.h>
+
+#include <dev/ofw/ofw_bus.h>
+#include <dev/ofw/ofw_bus_subr.h>
+
+#include <dev/extres/clk/clk.h>
+
+#include "clkdev_if.h"
+
+#define CCU_BASE 0x01c20000
+#define CCU_SIZE 0x400
+
+struct aw_ccu_softc {
+ struct simplebus_softc sc;
+ bus_space_tag_t bst;
+ bus_space_handle_t bsh;
+ struct mtx mtx;
+};
+
+static struct ofw_compat_data compat_data[] = {
+ { "allwinner,sun4i-a10", 1 },
+ { "allwinner,sun7i-a20", 1 },
+ { "allwinner,sun6i-a31", 1 },
+ { "allwinner,sun6i-a31s", 1 },
+ { NULL, 0 }
+};
+
+static int
+aw_ccu_check_addr(bus_addr_t addr)
+{
+ if (addr < CCU_BASE || addr >= (CCU_BASE + CCU_SIZE))
+ return (EINVAL);
+ return (0);
+}
+
+static int
+aw_ccu_write_4(device_t dev, bus_addr_t addr, uint32_t val)
+{
+ struct aw_ccu_softc *sc;
+
+ if (aw_ccu_check_addr(addr) != 0)
+ return (EINVAL);
+
+ sc = device_get_softc(dev);
+ mtx_assert(&sc->mtx, MA_OWNED);
+ bus_space_write_4(sc->bst, sc->bsh, addr - CCU_BASE, val);
+
+ return (0);
+}
+
+static int
+aw_ccu_read_4(device_t dev, bus_addr_t addr, uint32_t *val)
+{
+ struct aw_ccu_softc *sc;
+
+ if (aw_ccu_check_addr(addr) != 0)
+ return (EINVAL);
+
+ sc = device_get_softc(dev);
+ mtx_assert(&sc->mtx, MA_OWNED);
+ *val = bus_space_read_4(sc->bst, sc->bsh, addr - CCU_BASE);
+
+ return (0);
+}
+
+static int
+aw_ccu_modify_4(device_t dev, bus_addr_t addr, uint32_t clr, uint32_t set)
+{
+ struct aw_ccu_softc *sc;
+ uint32_t val;
+
+ if (aw_ccu_check_addr(addr) != 0)
+ return (EINVAL);
+
+ sc = device_get_softc(dev);
+ mtx_assert(&sc->mtx, MA_OWNED);
+ val = bus_space_read_4(sc->bst, sc->bsh, addr - CCU_BASE);
+ val &= ~clr;
+ val |= set;
+ bus_space_write_4(sc->bst, sc->bsh, addr - CCU_BASE, val);
+
+ return (0);
+}
+
+static void
+aw_ccu_device_lock(device_t dev)
+{
+ struct aw_ccu_softc *sc;
+
+ sc = device_get_softc(dev);
+ mtx_lock(&sc->mtx);
+}
+
+static void
+aw_ccu_device_unlock(device_t dev)
+{
+ struct aw_ccu_softc *sc;
+
+ sc = device_get_softc(dev);
+ mtx_unlock(&sc->mtx);
+}
+
+static int
+aw_ccu_probe(device_t dev)
+{
+ const char *name;
+ device_t pdev;
+
+ name = ofw_bus_get_name(dev);
+
+ if (name == NULL || strcmp(name, "clocks") != 0)
+ return (ENXIO);
+
+ pdev = device_get_parent(dev);
+ if (ofw_bus_search_compatible(pdev, compat_data)->ocd_data == 0)
+ return (0);
+
+ device_set_desc(dev, "Allwinner Clock Control Unit");
+ return (BUS_PROBE_SPECIFIC);
+}
+
+static int
+aw_ccu_attach(device_t dev)
+{
+ struct aw_ccu_softc *sc;
+ phandle_t node, child;
+ device_t cdev;
+ int error;
+
+ sc = device_get_softc(dev);
+ node = ofw_bus_get_node(dev);
+
+ simplebus_init(dev, node);
+
+ /*
+ * Map CCU registers. The DT doesn't have a "reg" property for the
+ * /clocks node and child nodes have conflicting "reg" properties.
+ */
+ sc->bst = bus_get_bus_tag(dev);
+ error = bus_space_map(sc->bst, CCU_BASE, CCU_SIZE, 0, &sc->bsh);
+ if (error != 0) {
+ device_printf(dev, "couldn't map CCU: %d\n", error);
+ return (error);
+ }
+
+ mtx_init(&sc->mtx, device_get_nameunit(dev), NULL, MTX_DEF);
+
+ /* Attach child devices */
+ for (child = OF_child(node); child > 0; child = OF_peer(child)) {
+ cdev = simplebus_add_device(dev, child, 0, NULL, -1, NULL);
+ if (cdev != NULL)
+ device_probe_and_attach(cdev);
+ }
+
+ return (bus_generic_attach(dev));
+}
+
+static device_method_t aw_ccu_methods[] = {
+ /* Device interface */
+ DEVMETHOD(device_probe, aw_ccu_probe),
+ DEVMETHOD(device_attach, aw_ccu_attach),
+
+ /* clkdev interface */
+ DEVMETHOD(clkdev_write_4, aw_ccu_write_4),
+ DEVMETHOD(clkdev_read_4, aw_ccu_read_4),
+ DEVMETHOD(clkdev_modify_4, aw_ccu_modify_4),
+ DEVMETHOD(clkdev_device_lock, aw_ccu_device_lock),
+ DEVMETHOD(clkdev_device_unlock, aw_ccu_device_unlock),
+
+ DEVMETHOD_END
+};
+
+DEFINE_CLASS_1(aw_ccu, aw_ccu_driver, aw_ccu_methods,
+ sizeof(struct aw_ccu_softc), simplebus_driver);
+
+static devclass_t aw_ccu_devclass;
+
+EARLY_DRIVER_MODULE(aw_ccu, simplebus, aw_ccu_driver, aw_ccu_devclass,
+ 0, 0, BUS_PASS_BUS + BUS_PASS_ORDER_MIDDLE);
+
+MODULE_VERSION(aw_ccu, 1);
diff --git a/sys/arm/allwinner/aw_reset.c b/sys/arm/allwinner/aw_reset.c
new file mode 100644
index 0000000..3f56e9f
--- /dev/null
+++ b/sys/arm/allwinner/aw_reset.c
@@ -0,0 +1,164 @@
+/*-
+ * Copyright (c) 2016 Jared McNeill <jmcneill@invisible.ca>
+ * 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 ``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.
+ *
+ * $FreeBSD$
+ */
+
+/*
+ * Allwinner module software reset registers
+ */
+
+#include <sys/cdefs.h>
+__FBSDID("$FreeBSD$");
+
+#include <sys/param.h>
+#include <sys/systm.h>
+#include <sys/bus.h>
+#include <sys/rman.h>
+#include <sys/kernel.h>
+#include <sys/module.h>
+#include <machine/bus.h>
+
+#include <dev/ofw/ofw_bus.h>
+#include <dev/ofw/ofw_bus_subr.h>
+
+#include <dev/extres/hwreset/hwreset.h>
+
+#include "hwreset_if.h"
+
+#define RESET_OFFSET(index) ((index / 32) * 4)
+#define RESET_SHIFT(index) (index % 32)
+
+static struct ofw_compat_data compat_data[] = {
+ { "allwinner,sun6i-a31-ahb1-reset", 1 },
+ { "allwinner,sun6i-a31-clock-reset", 1 },
+ { NULL, 0 }
+};
+
+struct aw_reset_softc {
+ struct resource *res;
+ struct mtx mtx;
+};
+
+static struct resource_spec aw_reset_spec[] = {
+ { SYS_RES_MEMORY, 0, RF_ACTIVE },
+ { -1, 0 }
+};
+
+#define RESET_READ(sc, reg) bus_read_4((sc)->res, (reg))
+#define RESET_WRITE(sc, reg, val) bus_write_4((sc)->res, (reg), (val))
+
+static int
+aw_reset_assert(device_t dev, intptr_t id, bool reset)
+{
+ struct aw_reset_softc *sc;
+ uint32_t reg_value;
+
+ sc = device_get_softc(dev);
+
+ mtx_lock(&sc->mtx);
+ reg_value = RESET_READ(sc, RESET_OFFSET(id));
+ if (reset)
+ reg_value &= ~(1 << RESET_SHIFT(id));
+ else
+ reg_value |= (1 << RESET_SHIFT(id));
+ RESET_WRITE(sc, RESET_OFFSET(id), reg_value);
+ mtx_unlock(&sc->mtx);
+
+ return (0);
+}
+
+static int
+aw_reset_is_asserted(device_t dev, intptr_t id, bool *reset)
+{
+ struct aw_reset_softc *sc;
+ uint32_t reg_value;
+
+ sc = device_get_softc(dev);
+
+ mtx_lock(&sc->mtx);
+ reg_value = RESET_READ(sc, RESET_OFFSET(id));
+ mtx_unlock(&sc->mtx);
+
+ *reset = (reg_value & (1 << RESET_SHIFT(id))) != 0 ? false : true;
+
+ return (0);
+}
+
+static int
+aw_reset_probe(device_t dev)
+{
+ if (!ofw_bus_status_okay(dev))
+ return (ENXIO);
+
+ if (ofw_bus_search_compatible(dev, compat_data)->ocd_data == 0)
+ return (ENXIO);
+
+ device_set_desc(dev, "Allwinner Module Resets");
+ return (BUS_PROBE_DEFAULT);
+}
+
+static int
+aw_reset_attach(device_t dev)
+{
+ struct aw_reset_softc *sc;
+
+ sc = device_get_softc(dev);
+
+ if (bus_alloc_resources(dev, aw_reset_spec, &sc->res) != 0) {
+ device_printf(dev, "cannot allocate resources for device\n");
+ return (ENXIO);
+ }
+
+ mtx_init(&sc->mtx, device_get_nameunit(dev), NULL, MTX_DEF);
+
+ hwreset_register_ofw_provider(dev);
+
+ return (0);
+}
+
+static device_method_t aw_reset_methods[] = {
+ /* Device interface */
+ DEVMETHOD(device_probe, aw_reset_probe),
+ DEVMETHOD(device_attach, aw_reset_attach),
+
+ /* Reset interface */
+ DEVMETHOD(hwreset_assert, aw_reset_assert),
+ DEVMETHOD(hwreset_is_asserted, aw_reset_is_asserted),
+
+ DEVMETHOD_END
+};
+
+static driver_t aw_reset_driver = {
+ "aw_reset",
+ aw_reset_methods,
+ sizeof(struct aw_reset_softc),
+};
+
+static devclass_t aw_reset_devclass;
+
+EARLY_DRIVER_MODULE(aw_reset, simplebus, aw_reset_driver, aw_reset_devclass,
+ 0, 0, BUS_PASS_BUS + BUS_PASS_ORDER_MIDDLE);
+MODULE_VERSION(aw_reset, 1);
diff --git a/sys/arm/allwinner/aw_usbphy.c b/sys/arm/allwinner/aw_usbphy.c
index f0ee79d..25e8da0 100644
--- a/sys/arm/allwinner/aw_usbphy.c
+++ b/sys/arm/allwinner/aw_usbphy.c
@@ -44,10 +44,11 @@ __FBSDID("$FreeBSD$");
#include <dev/ofw/ofw_bus.h>
#include <dev/ofw/ofw_bus_subr.h>
-#include "gpio_if.h"
+#include <dev/extres/clk/clk.h>
+#include <dev/extres/hwreset/hwreset.h>
+#include <dev/extres/regulator/regulator.h>
#define USBPHY_NUMOFF 3
-#define GPIO_POLARITY(flags) (((flags) & 1) ? GPIO_PIN_LOW : GPIO_PIN_HIGH)
static struct ofw_compat_data compat_data[] = {
{ "allwinner,sun4i-a10-usb-phy", 1 },
@@ -58,89 +59,45 @@ static struct ofw_compat_data compat_data[] = {
};
static int
-awusbphy_gpio_set(device_t dev, phandle_t node, const char *pname)
-{
- pcell_t gpio_prop[4];
- phandle_t gpio_node;
- device_t gpio_dev;
- uint32_t pin, flags;
- ssize_t len;
- int val;
-
- len = OF_getencprop(node, pname, gpio_prop, sizeof(gpio_prop));
- if (len == -1)
- return (0);
-
- if (len != sizeof(gpio_prop)) {
- device_printf(dev, "property %s length was %d, expected %d\n",
- pname, len, sizeof(gpio_prop));
- return (ENXIO);
- }
-
- gpio_node = OF_node_from_xref(gpio_prop[0]);
- gpio_dev = OF_device_from_xref(gpio_prop[0]);
- if (gpio_dev == NULL) {
- device_printf(dev, "failed to get the GPIO device for %s\n",
- pname);
- return (ENOENT);
- }
-
- if (GPIO_MAP_GPIOS(gpio_dev, node, gpio_node,
- sizeof(gpio_prop) / sizeof(gpio_prop[0]) - 1, gpio_prop + 1,
- &pin, &flags) != 0) {
- device_printf(dev, "failed to map the GPIO pin for %s\n",
- pname);
- return (ENXIO);
- }
-
- val = GPIO_POLARITY(flags);
-
- GPIO_PIN_SETFLAGS(gpio_dev, pin, GPIO_PIN_OUTPUT);
- GPIO_PIN_SET(gpio_dev, pin, val);
-
- return (0);
-}
-
-static int
-awusbphy_supply_set(device_t dev, const char *pname)
-{
- phandle_t node, reg_node;
- pcell_t reg_xref;
-
- node = ofw_bus_get_node(dev);
-
- if (OF_getencprop(node, pname, &reg_xref, sizeof(reg_xref)) == -1)
- return (0);
-
- reg_node = OF_node_from_xref(reg_xref);
-
- return (awusbphy_gpio_set(dev, reg_node, "gpio"));
-}
-
-static int
awusbphy_init(device_t dev)
{
char pname[20];
- phandle_t node;
int error, off;
-
- node = ofw_bus_get_node(dev);
-
- for (off = 0; off < USBPHY_NUMOFF; off++) {
- snprintf(pname, sizeof(pname), "usb%d_id_det-gpio", off);
- error = awusbphy_gpio_set(dev, node, pname);
- if (error)
+ regulator_t reg;
+ hwreset_t rst;
+ clk_t clk;
+
+ /* Enable clocks */
+ for (off = 0; clk_get_by_ofw_index(dev, off, &clk) == 0; off++) {
+ error = clk_enable(clk);
+ if (error != 0) {
+ device_printf(dev, "couldn't enable clock %s\n",
+ clk_get_name(clk));
return (error);
+ }
+ }
- snprintf(pname, sizeof(pname), "usb%d_vbus_det-gpio", off);
- error = awusbphy_gpio_set(dev, node, pname);
- if (error)
+ /* De-assert resets */
+ for (off = 0; hwreset_get_by_ofw_idx(dev, off, &rst) == 0; off++) {
+ error = hwreset_deassert(rst);
+ if (error != 0) {
+ device_printf(dev, "couldn't de-assert reset %d\n",
+ off);
return (error);
+ }
+ }
+ /* Enable regulator(s) */
+ for (off = 0; off < USBPHY_NUMOFF; off++) {
snprintf(pname, sizeof(pname), "usb%d_vbus-supply", off);
- error = awusbphy_supply_set(dev, pname);
- if (error)
+ if (regulator_get_by_ofw_property(dev, pname, &reg) != 0)
+ continue;
+ error = regulator_enable(reg);
+ if (error != 0) {
+ device_printf(dev, "couldn't enable regulator %s\n",
+ pname);
return (error);
+ }
}
return (0);
diff --git a/sys/arm/allwinner/clk/aw_ahbclk.c b/sys/arm/allwinner/clk/aw_ahbclk.c
new file mode 100644
index 0000000..1d3b1a4
--- /dev/null
+++ b/sys/arm/allwinner/clk/aw_ahbclk.c
@@ -0,0 +1,308 @@
+/*-
+ * Copyright (c) 2016 Jared McNeill <jmcneill@invisible.ca>
+ * 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 ``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.
+ *
+ * $FreeBSD$
+ */
+
+/*
+ * Allwinner AHB clock
+ */
+
+#include <sys/cdefs.h>
+__FBSDID("$FreeBSD$");
+
+#include <sys/param.h>
+#include <sys/systm.h>
+#include <sys/bus.h>
+#include <sys/rman.h>
+#include <sys/kernel.h>
+#include <sys/module.h>
+#include <machine/bus.h>
+
+#include <dev/ofw/ofw_bus.h>
+#include <dev/ofw/ofw_bus_subr.h>
+#include <dev/ofw/ofw_subr.h>
+
+#include <dev/extres/clk/clk.h>
+
+#include "clkdev_if.h"
+
+#define A10_AHB_CLK_DIV_RATIO (0x3 << 4)
+#define A10_AHB_CLK_DIV_RATIO_SHIFT 4
+
+#define A13_AHB_CLK_SRC_SEL (0x3 << 6)
+#define A13_AHB_CLK_SRC_SEL_MAX 3
+#define A13_AHB_CLK_SRC_SEL_SHIFT 6
+
+#define A31_AHB1_PRE_DIV (0x3 << 6)
+#define A31_AHB1_PRE_DIV_SHIFT 6
+#define A31_AHB1_CLK_SRC_SEL (0x3 << 12)
+#define A31_AHB1_CLK_SRC_SEL_PLL6 3
+#define A31_AHB1_CLK_SRC_SEL_MAX 3
+#define A31_AHB1_CLK_SRC_SEL_SHIFT 12
+
+enum aw_ahbclk_type {
+ AW_A10_AHB = 1,
+ AW_A13_AHB,
+ AW_A31_AHB1,
+};
+
+static struct ofw_compat_data compat_data[] = {
+ { "allwinner,sun4i-a10-ahb-clk", AW_A10_AHB },
+ { "allwinner,sun5i-a13-ahb-clk", AW_A13_AHB },
+ { "allwinner,sun6i-a31-ahb1-clk", AW_A31_AHB1 },
+ { NULL, 0 }
+};
+
+struct aw_ahbclk_sc {
+ device_t clkdev;
+ bus_addr_t reg;
+ enum aw_ahbclk_type type;
+};
+
+#define AHBCLK_READ(sc, val) CLKDEV_READ_4((sc)->clkdev, (sc)->reg, (val))
+#define AHBCLK_WRITE(sc, val) CLKDEV_WRITE_4((sc)->clkdev, (sc)->reg, (val))
+#define DEVICE_LOCK(sc) CLKDEV_DEVICE_LOCK((sc)->clkdev)
+#define DEVICE_UNLOCK(sc) CLKDEV_DEVICE_UNLOCK((sc)->clkdev)
+
+static int
+aw_ahbclk_init(struct clknode *clk, device_t dev)
+{
+ struct aw_ahbclk_sc *sc;
+ uint32_t val, index;
+
+ sc = clknode_get_softc(clk);
+
+ switch (sc->type) {
+ case AW_A10_AHB:
+ index = 0;
+ break;
+ case AW_A13_AHB:
+ DEVICE_LOCK(sc);
+ AHBCLK_READ(sc, &val);
+ DEVICE_UNLOCK(sc);
+ index = (val & A13_AHB_CLK_SRC_SEL) >>
+ A13_AHB_CLK_SRC_SEL_SHIFT;
+ break;
+ case AW_A31_AHB1:
+ DEVICE_LOCK(sc);
+ AHBCLK_READ(sc, &val);
+ DEVICE_UNLOCK(sc);
+ index = (val & A31_AHB1_CLK_SRC_SEL) >>
+ A31_AHB1_CLK_SRC_SEL_SHIFT;
+ break;
+ default:
+ return (ENXIO);
+ }
+
+ clknode_init_parent_idx(clk, index);
+ return (0);
+}
+
+static int
+aw_ahbclk_recalc_freq(struct clknode *clk, uint64_t *freq)
+{
+ struct aw_ahbclk_sc *sc;
+ uint32_t val, src_sel, div, pre_div;
+
+ sc = clknode_get_softc(clk);
+
+ DEVICE_LOCK(sc);
+ AHBCLK_READ(sc, &val);
+ DEVICE_UNLOCK(sc);
+
+ div = 1 << ((val & A10_AHB_CLK_DIV_RATIO) >>
+ A10_AHB_CLK_DIV_RATIO_SHIFT);
+
+ switch (sc->type) {
+ case AW_A31_AHB1:
+ src_sel = (val & A31_AHB1_CLK_SRC_SEL) >>
+ A31_AHB1_CLK_SRC_SEL_SHIFT;
+ if (src_sel == A31_AHB1_CLK_SRC_SEL_PLL6)
+ pre_div = ((val & A31_AHB1_PRE_DIV) >>
+ A31_AHB1_PRE_DIV_SHIFT) + 1;
+ else
+ pre_div = 1;
+ break;
+ default:
+ pre_div = 1;
+ break;
+ }
+
+ *freq = *freq / pre_div / div;
+
+ return (0);
+}
+
+static int
+aw_ahbclk_set_mux(struct clknode *clk, int index)
+{
+ struct aw_ahbclk_sc *sc;
+ uint32_t val;
+
+ sc = clknode_get_softc(clk);
+
+ switch (sc->type) {
+ case AW_A10_AHB:
+ if (index != 0)
+ return (ERANGE);
+ break;
+ case AW_A13_AHB:
+ if (index < 0 || index > A13_AHB_CLK_SRC_SEL_MAX)
+ return (ERANGE);
+ DEVICE_LOCK(sc);
+ AHBCLK_READ(sc, &val);
+ val &= ~A13_AHB_CLK_SRC_SEL;
+ val |= (index << A13_AHB_CLK_SRC_SEL_SHIFT);
+ AHBCLK_WRITE(sc, val);
+ DEVICE_UNLOCK(sc);
+ break;
+ default:
+ return (ENXIO);
+ }
+
+ return (0);
+}
+
+static clknode_method_t aw_ahbclk_clknode_methods[] = {
+ /* Device interface */
+ CLKNODEMETHOD(clknode_init, aw_ahbclk_init),
+ CLKNODEMETHOD(clknode_recalc_freq, aw_ahbclk_recalc_freq),
+ CLKNODEMETHOD(clknode_set_mux, aw_ahbclk_set_mux),
+ CLKNODEMETHOD_END
+};
+DEFINE_CLASS_1(aw_ahbclk_clknode, aw_ahbclk_clknode_class,
+ aw_ahbclk_clknode_methods, sizeof(struct aw_ahbclk_sc), clknode_class);
+
+static int
+aw_ahbclk_probe(device_t dev)
+{
+ if (!ofw_bus_status_okay(dev))
+ return (ENXIO);
+
+ if (ofw_bus_search_compatible(dev, compat_data)->ocd_data == 0)
+ return (ENXIO);
+
+ device_set_desc(dev, "Allwinner AHB Clock");
+ return (BUS_PROBE_DEFAULT);
+}
+
+static int
+aw_ahbclk_attach(device_t dev)
+{
+ struct clknode_init_def def;
+ struct aw_ahbclk_sc *sc;
+ struct clkdom *clkdom;
+ struct clknode *clk;
+ clk_t clk_parent;
+ bus_addr_t paddr;
+ bus_size_t psize;
+ phandle_t node;
+ int error, ncells, i;
+
+ node = ofw_bus_get_node(dev);
+
+ if (ofw_reg_to_paddr(node, 0, &paddr, &psize, NULL) != 0) {
+ device_printf(dev, "cannot parse 'reg' property\n");
+ return (ENXIO);
+ }
+
+ error = ofw_bus_parse_xref_list_get_length(node, "clocks",
+ "#clock-cells", &ncells);
+ if (error != 0) {
+ device_printf(dev, "cannot get clock count\n");
+ return (error);
+ }
+
+ clkdom = clkdom_create(dev);
+
+ memset(&def, 0, sizeof(def));
+ def.id = 1;
+ def.parent_names = malloc(sizeof(char *) * ncells, M_OFWPROP,
+ M_WAITOK);
+ for (i = 0; i < ncells; i++) {
+ error = clk_get_by_ofw_index(dev, i, &clk_parent);
+ if (error != 0) {
+ device_printf(dev, "cannot get clock %d\n", i);
+ goto fail;
+ }
+ def.parent_names[i] = clk_get_name(clk_parent);
+ clk_release(clk_parent);
+ }
+ def.parent_cnt = ncells;
+
+ error = clk_parse_ofw_clk_name(dev, node, &def.name);
+ if (error != 0) {
+ device_printf(dev, "cannot parse clock name\n");
+ error = ENXIO;
+ goto fail;
+ }
+
+ clk = clknode_create(clkdom, &aw_ahbclk_clknode_class, &def);
+ if (clk == NULL) {
+ device_printf(dev, "cannot create clknode\n");
+ error = ENXIO;
+ goto fail;
+ }
+ sc = clknode_get_softc(clk);
+ sc->type = ofw_bus_search_compatible(dev, compat_data)->ocd_data;
+ sc->reg = paddr;
+ sc->clkdev = device_get_parent(dev);
+
+ clknode_register(clkdom, clk);
+
+ if (clkdom_finit(clkdom) != 0) {
+ device_printf(dev, "cannot finalize clkdom initialization\n");
+ error = ENXIO;
+ goto fail;
+ }
+
+ if (bootverbose)
+ clkdom_dump(clkdom);
+
+ return (0);
+
+fail:
+ return (error);
+}
+
+static device_method_t aw_ahbclk_methods[] = {
+ /* Device interface */
+ DEVMETHOD(device_probe, aw_ahbclk_probe),
+ DEVMETHOD(device_attach, aw_ahbclk_attach),
+
+ DEVMETHOD_END
+};
+
+static driver_t aw_ahbclk_driver = {
+ "aw_ahbclk",
+ aw_ahbclk_methods,
+ 0
+};
+
+static devclass_t aw_ahbclk_devclass;
+
+EARLY_DRIVER_MODULE(aw_ahbclk, simplebus, aw_ahbclk_driver,
+ aw_ahbclk_devclass, 0, 0, BUS_PASS_BUS + BUS_PASS_ORDER_MIDDLE);
diff --git a/sys/arm/allwinner/clk/aw_apbclk.c b/sys/arm/allwinner/clk/aw_apbclk.c
new file mode 100644
index 0000000..a56387b
--- /dev/null
+++ b/sys/arm/allwinner/clk/aw_apbclk.c
@@ -0,0 +1,283 @@
+/*-
+ * Copyright (c) 2016 Jared McNeill <jmcneill@invisible.ca>
+ * 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 ``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.
+ *
+ * $FreeBSD$
+ */
+
+/*
+ * Allwinner APB clock
+ */
+
+#include <sys/cdefs.h>
+__FBSDID("$FreeBSD$");
+
+#include <sys/param.h>
+#include <sys/systm.h>
+#include <sys/bus.h>
+#include <sys/rman.h>
+#include <sys/kernel.h>
+#include <sys/module.h>
+#include <machine/bus.h>
+
+#include <dev/ofw/ofw_bus.h>
+#include <dev/ofw/ofw_bus_subr.h>
+#include <dev/ofw/ofw_subr.h>
+
+#include <dev/extres/clk/clk.h>
+
+#include "clkdev_if.h"
+
+#define APB0_CLK_RATIO (0x3 << 8)
+#define APB0_CLK_RATIO_SHIFT 8
+#define APB1_CLK_SRC_SEL (0x3 << 24)
+#define APB1_CLK_SRC_SEL_SHIFT 24
+#define APB1_CLK_SRC_SEL_MAX 0x3
+#define APB1_CLK_RAT_N (0x3 << 16)
+#define APB1_CLK_RAT_N_SHIFT 16
+#define APB1_CLK_RAT_M (0x1f << 0)
+#define APB1_CLK_RAT_M_SHIFT 0
+
+enum aw_apbclk_type {
+ AW_A10_APB0 = 1,
+ AW_A10_APB1,
+};
+
+static struct ofw_compat_data compat_data[] = {
+ { "allwinner,sun4i-a10-apb0-clk", AW_A10_APB0 },
+ { "allwinner,sun4i-a10-apb1-clk", AW_A10_APB1 },
+ { NULL, 0 }
+};
+
+struct aw_apbclk_sc {
+ device_t clkdev;
+ bus_addr_t reg;
+ enum aw_apbclk_type type;
+};
+
+#define APBCLK_READ(sc, val) CLKDEV_READ_4((sc)->clkdev, (sc)->reg, (val))
+#define APBCLK_WRITE(sc, val) CLKDEV_WRITE_4((sc)->clkdev, (sc)->reg, (val))
+#define DEVICE_LOCK(sc) CLKDEV_DEVICE_LOCK((sc)->clkdev)
+#define DEVICE_UNLOCK(sc) CLKDEV_DEVICE_UNLOCK((sc)->clkdev)
+
+static int
+aw_apbclk_init(struct clknode *clk, device_t dev)
+{
+ struct aw_apbclk_sc *sc;
+ uint32_t val, index;
+
+ sc = clknode_get_softc(clk);
+
+ switch (sc->type) {
+ case AW_A10_APB0:
+ index = 0;
+ break;
+ case AW_A10_APB1:
+ DEVICE_LOCK(sc);
+ APBCLK_READ(sc, &val);
+ DEVICE_UNLOCK(sc);
+ index = (val & APB1_CLK_SRC_SEL) >> APB1_CLK_SRC_SEL_SHIFT;
+ break;
+ default:
+ return (ENXIO);
+ }
+
+ clknode_init_parent_idx(clk, index);
+ return (0);
+}
+
+static int
+aw_apbclk_recalc_freq(struct clknode *clk, uint64_t *freq)
+{
+ struct aw_apbclk_sc *sc;
+ uint32_t val, div, m, n;
+
+ sc = clknode_get_softc(clk);
+
+ DEVICE_LOCK(sc);
+ APBCLK_READ(sc, &val);
+ DEVICE_UNLOCK(sc);
+
+ switch (sc->type) {
+ case AW_A10_APB0:
+ div = 1 << ((val & APB0_CLK_RATIO) >> APB0_CLK_RATIO_SHIFT);
+ if (div == 1)
+ div = 2;
+ *freq = *freq / div;
+ break;
+ case AW_A10_APB1:
+ n = 1 << ((val & APB1_CLK_RAT_N) >> APB1_CLK_RAT_N_SHIFT);
+ m = ((val & APB1_CLK_RAT_N) >> APB1_CLK_RAT_M_SHIFT) + 1;
+ *freq = *freq / n / m;
+ break;
+ default:
+ return (ENXIO);
+ }
+
+ return (0);
+}
+
+static int
+aw_apbclk_set_mux(struct clknode *clk, int index)
+{
+ struct aw_apbclk_sc *sc;
+ uint32_t val;
+
+ sc = clknode_get_softc(clk);
+
+ if (sc->type != AW_A10_APB1)
+ return (ENXIO);
+
+ if (index < 0 || index > APB1_CLK_SRC_SEL_MAX)
+ return (ERANGE);
+
+ DEVICE_LOCK(sc);
+ APBCLK_READ(sc, &val);
+ val &= ~APB1_CLK_SRC_SEL;
+ val |= (index << APB1_CLK_SRC_SEL_SHIFT);
+ APBCLK_WRITE(sc, val);
+ DEVICE_UNLOCK(sc);
+
+ return (0);
+}
+
+static clknode_method_t aw_apbclk_clknode_methods[] = {
+ /* Device interface */
+ CLKNODEMETHOD(clknode_init, aw_apbclk_init),
+ CLKNODEMETHOD(clknode_recalc_freq, aw_apbclk_recalc_freq),
+ CLKNODEMETHOD(clknode_set_mux, aw_apbclk_set_mux),
+ CLKNODEMETHOD_END
+};
+DEFINE_CLASS_1(aw_apbclk_clknode, aw_apbclk_clknode_class,
+ aw_apbclk_clknode_methods, sizeof(struct aw_apbclk_sc), clknode_class);
+
+static int
+aw_apbclk_probe(device_t dev)
+{
+ if (!ofw_bus_status_okay(dev))
+ return (ENXIO);
+
+ if (ofw_bus_search_compatible(dev, compat_data)->ocd_data == 0)
+ return (ENXIO);
+
+ device_set_desc(dev, "Allwinner APB Clock");
+ return (BUS_PROBE_DEFAULT);
+}
+
+static int
+aw_apbclk_attach(device_t dev)
+{
+ struct clknode_init_def def;
+ struct aw_apbclk_sc *sc;
+ struct clkdom *clkdom;
+ struct clknode *clk;
+ clk_t clk_parent;
+ bus_addr_t paddr;
+ bus_size_t psize;
+ phandle_t node;
+ int error, ncells, i;
+
+ node = ofw_bus_get_node(dev);
+
+ if (ofw_reg_to_paddr(node, 0, &paddr, &psize, NULL) != 0) {
+ device_printf(dev, "cannot parse 'reg' property\n");
+ return (ENXIO);
+ }
+
+ error = ofw_bus_parse_xref_list_get_length(node, "clocks",
+ "#clock-cells", &ncells);
+ if (error != 0) {
+ device_printf(dev, "cannot get clock count\n");
+ return (error);
+ }
+
+ clkdom = clkdom_create(dev);
+
+ memset(&def, 0, sizeof(def));
+ error = clk_parse_ofw_clk_name(dev, node, &def.name);
+ if (error != 0) {
+ device_printf(dev, "cannot parse clock name\n");
+ error = ENXIO;
+ goto fail;
+ }
+ def.id = 1;
+ def.parent_names = malloc(sizeof(char *) * ncells, M_OFWPROP, M_WAITOK);
+ for (i = 0; i < ncells; i++) {
+ error = clk_get_by_ofw_index(dev, i, &clk_parent);
+ if (error != 0) {
+ device_printf(dev, "cannot get clock %d\n", i);
+ goto fail;
+ }
+ def.parent_names[i] = clk_get_name(clk_parent);
+ clk_release(clk_parent);
+ }
+ def.parent_cnt = ncells;
+
+ clk = clknode_create(clkdom, &aw_apbclk_clknode_class, &def);
+ if (clk == NULL) {
+ device_printf(dev, "cannot create clknode\n");
+ error = ENXIO;
+ goto fail;
+ }
+
+ sc = clknode_get_softc(clk);
+ sc->type = ofw_bus_search_compatible(dev, compat_data)->ocd_data;
+ sc->reg = paddr;
+ sc->clkdev = device_get_parent(dev);
+
+ clknode_register(clkdom, clk);
+
+ if (clkdom_finit(clkdom) != 0) {
+ device_printf(dev, "cannot finalize clkdom initialization\n");
+ error = ENXIO;
+ goto fail;
+ }
+
+ if (bootverbose)
+ clkdom_dump(clkdom);
+
+ return (0);
+
+fail:
+ return (error);
+}
+
+static device_method_t aw_apbclk_methods[] = {
+ /* Device interface */
+ DEVMETHOD(device_probe, aw_apbclk_probe),
+ DEVMETHOD(device_attach, aw_apbclk_attach),
+
+ DEVMETHOD_END
+};
+
+static driver_t aw_apbclk_driver = {
+ "aw_apbclk",
+ aw_apbclk_methods,
+ 0
+};
+
+static devclass_t aw_apbclk_devclass;
+
+EARLY_DRIVER_MODULE(aw_apbclk, simplebus, aw_apbclk_driver,
+ aw_apbclk_devclass, 0, 0, BUS_PASS_BUS + BUS_PASS_ORDER_MIDDLE);
diff --git a/sys/arm/allwinner/clk/aw_axiclk.c b/sys/arm/allwinner/clk/aw_axiclk.c
new file mode 100644
index 0000000..8f4a6d6
--- /dev/null
+++ b/sys/arm/allwinner/clk/aw_axiclk.c
@@ -0,0 +1,201 @@
+/*-
+ * Copyright (c) 2016 Jared McNeill <jmcneill@invisible.ca>
+ * 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 ``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.
+ *
+ * $FreeBSD$
+ */
+
+/*
+ * Allwinner AXI clock
+ */
+
+#include <sys/cdefs.h>
+__FBSDID("$FreeBSD$");
+
+#include <sys/param.h>
+#include <sys/systm.h>
+#include <sys/bus.h>
+#include <sys/rman.h>
+#include <sys/kernel.h>
+#include <sys/module.h>
+#include <machine/bus.h>
+
+#include <dev/ofw/ofw_bus.h>
+#include <dev/ofw/ofw_bus_subr.h>
+#include <dev/ofw/ofw_subr.h>
+
+#include <dev/extres/clk/clk_mux.h>
+#include <dev/extres/clk/clk_gate.h>
+
+#include "clkdev_if.h"
+
+#define AXI_CLK_DIV_RATIO (0x3 << 0)
+
+static struct ofw_compat_data compat_data[] = {
+ { "allwinner,sun4i-a10-axi-clk", 1 },
+ { NULL, 0 }
+};
+
+struct aw_axiclk_sc {
+ device_t clkdev;
+ bus_addr_t reg;
+};
+
+#define AXICLK_READ(sc, val) CLKDEV_READ_4((sc)->clkdev, (sc)->reg, (val))
+#define AXICLK_WRITE(sc, val) CLKDEV_WRITE_4((sc)->clkdev, (sc)->reg, (val))
+#define DEVICE_LOCK(sc) CLKDEV_DEVICE_LOCK((sc)->clkdev)
+#define DEVICE_UNLOCK(sc) CLKDEV_DEVICE_UNLOCK((sc)->clkdev)
+
+static int
+aw_axiclk_init(struct clknode *clk, device_t dev)
+{
+ clknode_init_parent_idx(clk, 0);
+ return (0);
+}
+
+static int
+aw_axiclk_recalc_freq(struct clknode *clk, uint64_t *freq)
+{
+ struct aw_axiclk_sc *sc;
+ uint32_t val;
+
+ sc = clknode_get_softc(clk);
+
+ DEVICE_LOCK(sc);
+ AXICLK_READ(sc, &val);
+ DEVICE_UNLOCK(sc);
+
+ *freq = *freq / ((val & AXI_CLK_DIV_RATIO) + 1);
+
+ return (0);
+}
+
+static clknode_method_t aw_axiclk_clknode_methods[] = {
+ /* Device interface */
+ CLKNODEMETHOD(clknode_init, aw_axiclk_init),
+ CLKNODEMETHOD(clknode_recalc_freq, aw_axiclk_recalc_freq),
+ CLKNODEMETHOD_END
+};
+DEFINE_CLASS_1(aw_axiclk_clknode, aw_axiclk_clknode_class,
+ aw_axiclk_clknode_methods, sizeof(struct aw_axiclk_sc), clknode_class);
+
+static int
+aw_axiclk_probe(device_t dev)
+{
+ if (!ofw_bus_status_okay(dev))
+ return (ENXIO);
+
+ if (ofw_bus_search_compatible(dev, compat_data)->ocd_data == 0)
+ return (ENXIO);
+
+ device_set_desc(dev, "Allwinner AXI Clock");
+ return (BUS_PROBE_DEFAULT);
+}
+
+static int
+aw_axiclk_attach(device_t dev)
+{
+ struct clknode_init_def def;
+ struct aw_axiclk_sc *sc;
+ struct clkdom *clkdom;
+ struct clknode *clk;
+ clk_t clk_parent;
+ bus_addr_t paddr;
+ bus_size_t psize;
+ phandle_t node;
+ int error;
+
+ node = ofw_bus_get_node(dev);
+
+ if (ofw_reg_to_paddr(node, 0, &paddr, &psize, NULL) != 0) {
+ device_printf(dev, "cannot parse 'reg' property\n");
+ return (ENXIO);
+ }
+
+ clkdom = clkdom_create(dev);
+
+ error = clk_get_by_ofw_index(dev, 0, &clk_parent);
+ if (error != 0) {
+ device_printf(dev, "cannot parse clock parent\n");
+ return (ENXIO);
+ }
+
+ memset(&def, 0, sizeof(def));
+ error = clk_parse_ofw_clk_name(dev, node, &def.name);
+ if (error != 0) {
+ device_printf(dev, "cannot parse clock name\n");
+ error = ENXIO;
+ goto fail;
+ }
+ def.id = 1;
+ def.parent_names = malloc(sizeof(char *), M_OFWPROP, M_WAITOK);
+ def.parent_names[0] = clk_get_name(clk_parent);
+ def.parent_cnt = 1;
+
+ clk = clknode_create(clkdom, &aw_axiclk_clknode_class, &def);
+ if (clk == NULL) {
+ device_printf(dev, "cannot create clknode\n");
+ error = ENXIO;
+ goto fail;
+ }
+
+ sc = clknode_get_softc(clk);
+ sc->reg = paddr;
+ sc->clkdev = device_get_parent(dev);
+
+ clknode_register(clkdom, clk);
+
+ if (clkdom_finit(clkdom) != 0) {
+ device_printf(dev, "cannot finalize clkdom initialization\n");
+ error = ENXIO;
+ goto fail;
+ }
+
+ if (bootverbose)
+ clkdom_dump(clkdom);
+
+ return (0);
+
+fail:
+ return (error);
+}
+
+static device_method_t aw_axiclk_methods[] = {
+ /* Device interface */
+ DEVMETHOD(device_probe, aw_axiclk_probe),
+ DEVMETHOD(device_attach, aw_axiclk_attach),
+
+ DEVMETHOD_END
+};
+
+static driver_t aw_axiclk_driver = {
+ "aw_axiclk",
+ aw_axiclk_methods,
+ 0
+};
+
+static devclass_t aw_axiclk_devclass;
+
+EARLY_DRIVER_MODULE(aw_axiclk, simplebus, aw_axiclk_driver,
+ aw_axiclk_devclass, 0, 0, BUS_PASS_BUS + BUS_PASS_ORDER_MIDDLE);
diff --git a/sys/arm/allwinner/clk/aw_codecclk.c b/sys/arm/allwinner/clk/aw_codecclk.c
new file mode 100644
index 0000000..5c50f49
--- /dev/null
+++ b/sys/arm/allwinner/clk/aw_codecclk.c
@@ -0,0 +1,164 @@
+/*-
+ * Copyright (c) 2016 Jared McNeill <jmcneill@invisible.ca>
+ * 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 ``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.
+ *
+ * $FreeBSD$
+ */
+
+/*
+ * Allwinner CODEC clock
+ */
+
+#include <sys/cdefs.h>
+__FBSDID("$FreeBSD$");
+
+#include <sys/param.h>
+#include <sys/systm.h>
+#include <sys/bus.h>
+#include <sys/rman.h>
+#include <sys/kernel.h>
+#include <sys/module.h>
+#include <machine/bus.h>
+
+#include <dev/ofw/ofw_bus.h>
+#include <dev/ofw/ofw_bus_subr.h>
+#include <dev/ofw/ofw_subr.h>
+
+#include <dev/extres/clk/clk_gate.h>
+#include <dev/extres/hwreset/hwreset.h>
+
+#include "clkdev_if.h"
+
+#define SCLK_GATING_SHIFT 31
+
+static struct ofw_compat_data compat_data[] = {
+ { "allwinner,sun4i-a10-codec-clk", 1 },
+ { NULL, 0 }
+};
+
+static int
+aw_codecclk_create(device_t dev, bus_addr_t paddr, struct clkdom *clkdom,
+ const char *pclkname, const char *clkname, int index)
+{
+ const char *parent_names[1] = { pclkname };
+ struct clk_gate_def def;
+
+ memset(&def, 0, sizeof(def));
+ def.clkdef.id = index;
+ def.clkdef.name = clkname;
+ def.clkdef.parent_names = parent_names;
+ def.clkdef.parent_cnt = 1;
+ def.offset = paddr;
+ def.shift = SCLK_GATING_SHIFT;
+ def.mask = 1;
+ def.on_value = 1;
+ def.off_value = 0;
+
+ return (clknode_gate_register(clkdom, &def));
+}
+
+static int
+aw_codecclk_probe(device_t dev)
+{
+ if (!ofw_bus_status_okay(dev))
+ return (ENXIO);
+
+ if (ofw_bus_search_compatible(dev, compat_data)->ocd_data == 0)
+ return (ENXIO);
+
+ device_set_desc(dev, "Allwinner CODEC Clock");
+ return (BUS_PROBE_DEFAULT);
+}
+
+static int
+aw_codecclk_attach(device_t dev)
+{
+ struct clkdom *clkdom;
+ const char **names;
+ int nout, error;
+ uint32_t *indices;
+ clk_t clk_parent;
+ bus_addr_t paddr;
+ bus_size_t psize;
+ phandle_t node;
+
+ node = ofw_bus_get_node(dev);
+ indices = NULL;
+
+ if (ofw_reg_to_paddr(node, 0, &paddr, &psize, NULL) != 0) {
+ device_printf(dev, "cannot parse 'reg' property\n");
+ return (ENXIO);
+ }
+
+ clkdom = clkdom_create(dev);
+
+ nout = clk_parse_ofw_out_names(dev, node, &names, &indices);
+ if (nout != 1) {
+ device_printf(dev, "must have exactly one output clock\n");
+ error = ENOENT;
+ goto fail;
+ }
+
+ error = clk_get_by_ofw_index(dev, 0, &clk_parent);
+ if (error != 0) {
+ device_printf(dev, "cannot parse clock parent\n");
+ return (ENXIO);
+ }
+
+ error = aw_codecclk_create(dev, paddr, clkdom,
+ clk_get_name(clk_parent), names[0], 1);
+
+ if (clkdom_finit(clkdom) != 0) {
+ device_printf(dev, "cannot finalize clkdom initialization\n");
+ error = ENXIO;
+ goto fail;
+ }
+
+ if (bootverbose)
+ clkdom_dump(clkdom);
+
+ return (0);
+
+fail:
+ return (error);
+}
+
+static device_method_t aw_codecclk_methods[] = {
+ /* Device interface */
+ DEVMETHOD(device_probe, aw_codecclk_probe),
+ DEVMETHOD(device_attach, aw_codecclk_attach),
+
+ DEVMETHOD_END
+};
+
+static driver_t aw_codecclk_driver = {
+ "aw_codecclk",
+ aw_codecclk_methods,
+ 0
+};
+
+static devclass_t aw_codecclk_devclass;
+
+EARLY_DRIVER_MODULE(aw_codecclk, simplebus, aw_codecclk_driver,
+ aw_codecclk_devclass, 0, 0, BUS_PASS_BUS + BUS_PASS_ORDER_MIDDLE);
diff --git a/sys/arm/allwinner/clk/aw_cpuclk.c b/sys/arm/allwinner/clk/aw_cpuclk.c
new file mode 100644
index 0000000..045751b
--- /dev/null
+++ b/sys/arm/allwinner/clk/aw_cpuclk.c
@@ -0,0 +1,161 @@
+/*-
+ * Copyright (c) 2016 Jared McNeill <jmcneill@invisible.ca>
+ * 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 ``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.
+ *
+ * $FreeBSD$
+ */
+
+/*
+ * Allwinner CPU clock
+ */
+
+#include <sys/cdefs.h>
+__FBSDID("$FreeBSD$");
+
+#include <sys/param.h>
+#include <sys/systm.h>
+#include <sys/bus.h>
+#include <sys/rman.h>
+#include <sys/kernel.h>
+#include <sys/module.h>
+#include <machine/bus.h>
+
+#include <dev/ofw/ofw_bus.h>
+#include <dev/ofw/ofw_bus_subr.h>
+#include <dev/ofw/ofw_subr.h>
+
+#include <dev/extres/clk/clk_mux.h>
+
+#define CPU_CLK_SRC_SEL_WIDTH 2
+#define CPU_CLK_SRC_SEL_SHIFT 16
+
+static int
+aw_cpuclk_probe(device_t dev)
+{
+ if (!ofw_bus_status_okay(dev))
+ return (ENXIO);
+
+ if (!ofw_bus_is_compatible(dev, "allwinner,sun4i-a10-cpu-clk"))
+ return (ENXIO);
+
+ device_set_desc(dev, "Allwinner CPU Clock");
+ return (BUS_PROBE_DEFAULT);
+}
+
+static int
+aw_cpuclk_attach(device_t dev)
+{
+ struct clk_mux_def def;
+ struct clkdom *clkdom;
+ bus_addr_t paddr;
+ bus_size_t psize;
+ phandle_t node;
+ int error, ncells, i;
+ clk_t clk;
+
+ node = ofw_bus_get_node(dev);
+
+ if (ofw_reg_to_paddr(node, 0, &paddr, &psize, NULL) != 0) {
+ device_printf(dev, "cannot parse 'reg' property\n");
+ return (ENXIO);
+ }
+
+ error = ofw_bus_parse_xref_list_get_length(node, "clocks",
+ "#clock-cells", &ncells);
+ if (error != 0) {
+ device_printf(dev, "cannot get clock count\n");
+ return (error);
+ }
+
+ clkdom = clkdom_create(dev);
+
+ memset(&def, 0, sizeof(def));
+ def.clkdef.id = 1;
+ def.clkdef.parent_names = malloc(sizeof(char *) * ncells, M_OFWPROP,
+ M_WAITOK);
+ for (i = 0; i < ncells; i++) {
+ error = clk_get_by_ofw_index(dev, i, &clk);
+ if (error != 0) {
+ device_printf(dev, "cannot get clock %d\n", i);
+ goto fail;
+ }
+ def.clkdef.parent_names[i] = clk_get_name(clk);
+ clk_release(clk);
+ }
+ def.clkdef.parent_cnt = ncells;
+ def.offset = paddr;
+ def.shift = CPU_CLK_SRC_SEL_SHIFT;
+ def.width = CPU_CLK_SRC_SEL_WIDTH;
+
+ error = clk_parse_ofw_clk_name(dev, node, &def.clkdef.name);
+ if (error != 0) {
+ device_printf(dev, "cannot parse clock name\n");
+ error = ENXIO;
+ goto fail;
+ }
+
+ error = clknode_mux_register(clkdom, &def);
+ if (error != 0) {
+ device_printf(dev, "cannot register mux clock\n");
+ error = ENXIO;
+ goto fail;
+ }
+
+ if (clkdom_finit(clkdom) != 0) {
+ device_printf(dev, "cannot finalize clkdom initialization\n");
+ error = ENXIO;
+ goto fail;
+ }
+
+ free(__DECONST(char *, def.clkdef.parent_names), M_OFWPROP);
+ free(__DECONST(char *, def.clkdef.name), M_OFWPROP);
+
+ if (bootverbose)
+ clkdom_dump(clkdom);
+
+ return (0);
+
+fail:
+ free(__DECONST(char *, def.clkdef.name), M_OFWPROP);
+ return (error);
+}
+
+static device_method_t aw_cpuclk_methods[] = {
+ /* Device interface */
+ DEVMETHOD(device_probe, aw_cpuclk_probe),
+ DEVMETHOD(device_attach, aw_cpuclk_attach),
+
+ DEVMETHOD_END
+};
+
+static driver_t aw_cpuclk_driver = {
+ "aw_cpuclk",
+ aw_cpuclk_methods,
+ 0
+};
+
+static devclass_t aw_cpuclk_devclass;
+
+EARLY_DRIVER_MODULE(aw_cpuclk, simplebus, aw_cpuclk_driver,
+ aw_cpuclk_devclass, 0, 0, BUS_PASS_BUS + BUS_PASS_ORDER_MIDDLE);
diff --git a/sys/arm/allwinner/clk/aw_debeclk.c b/sys/arm/allwinner/clk/aw_debeclk.c
new file mode 100644
index 0000000..885fad8
--- /dev/null
+++ b/sys/arm/allwinner/clk/aw_debeclk.c
@@ -0,0 +1,351 @@
+/*-
+ * Copyright (c) 2016 Jared McNeill <jmcneill@invisible.ca>
+ * 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 ``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.
+ *
+ * $FreeBSD$
+ */
+
+/*
+ * Allwinner display backend clocks
+ */
+
+#include <sys/cdefs.h>
+__FBSDID("$FreeBSD$");
+
+#include <sys/param.h>
+#include <sys/systm.h>
+#include <sys/bus.h>
+#include <sys/rman.h>
+#include <sys/kernel.h>
+#include <sys/module.h>
+#include <machine/bus.h>
+
+#include <dev/ofw/ofw_bus.h>
+#include <dev/ofw/ofw_bus_subr.h>
+#include <dev/ofw/ofw_subr.h>
+
+#include <dev/extres/clk/clk.h>
+#include <dev/extres/hwreset/hwreset.h>
+
+#include "clkdev_if.h"
+#include "hwreset_if.h"
+
+#define SCLK_GATING (1 << 31)
+#define BE_RST (1 << 30)
+#define CLK_SRC_SEL (0x3 << 24)
+#define CLK_SRC_SEL_SHIFT 24
+#define CLK_SRC_SEL_MAX 2
+#define CLK_SRC_SEL_PLL3 0
+#define CLK_SRC_SEL_PLL7 1
+#define CLK_SRC_SEL_PLL5 2
+#define CLK_RATIO_M (0xf << 0)
+#define CLK_RATIO_M_SHIFT 0
+#define CLK_RATIO_M_MAX 0xf
+
+static struct ofw_compat_data compat_data[] = {
+ { "allwinner,sun4i-a10-de-be-clk", 1 },
+ { NULL, 0 }
+};
+
+struct aw_debeclk_softc {
+ device_t clkdev;
+ bus_addr_t reg;
+};
+
+#define DEBECLK_READ(sc, val) CLKDEV_READ_4((sc)->clkdev, (sc)->reg, (val))
+#define DEBECLK_WRITE(sc, val) CLKDEV_WRITE_4((sc)->clkdev, (sc)->reg, (val))
+#define DEBECLK_MODIFY(sc, clr, set) \
+ CLKDEV_MODIFY_4((sc)->clkdev, (sc)->reg, (clr), (set))
+#define DEVICE_LOCK(sc) CLKDEV_DEVICE_LOCK((sc)->clkdev)
+#define DEVICE_UNLOCK(sc) CLKDEV_DEVICE_UNLOCK((sc)->clkdev)
+
+static int
+aw_debeclk_hwreset_assert(device_t dev, intptr_t id, bool value)
+{
+ struct aw_debeclk_softc *sc;
+ int error;
+
+ sc = device_get_softc(dev);
+
+ DEVICE_LOCK(sc);
+ error = DEBECLK_MODIFY(sc, BE_RST, value ? 0 : BE_RST);
+ DEVICE_UNLOCK(sc);
+
+ return (error);
+}
+
+static int
+aw_debeclk_hwreset_is_asserted(device_t dev, intptr_t id, bool *value)
+{
+ struct aw_debeclk_softc *sc;
+ uint32_t val;
+ int error;
+
+ sc = device_get_softc(dev);
+
+ DEVICE_LOCK(sc);
+ error = DEBECLK_READ(sc, &val);
+ DEVICE_UNLOCK(sc);
+
+ if (error)
+ return (error);
+
+ *value = (val & BE_RST) != 0 ? false : true;
+
+ return (0);
+}
+
+static int
+aw_debeclk_init(struct clknode *clk, device_t dev)
+{
+ struct aw_debeclk_softc *sc;
+ uint32_t val, index;
+
+ sc = clknode_get_softc(clk);
+
+ /* Set BE source to PLL5 (DDR external peripheral clock) */
+ index = CLK_SRC_SEL_PLL5;
+
+ DEVICE_LOCK(sc);
+ DEBECLK_READ(sc, &val);
+ val &= ~CLK_SRC_SEL;
+ val |= (index << CLK_SRC_SEL_SHIFT);
+ DEBECLK_WRITE(sc, val);
+ DEVICE_UNLOCK(sc);
+
+ clknode_init_parent_idx(clk, index);
+ return (0);
+}
+
+static int
+aw_debeclk_set_mux(struct clknode *clk, int index)
+{
+ struct aw_debeclk_softc *sc;
+ uint32_t val;
+
+ sc = clknode_get_softc(clk);
+
+ if (index < 0 || index > CLK_SRC_SEL_MAX)
+ return (ERANGE);
+
+ DEVICE_LOCK(sc);
+ DEBECLK_READ(sc, &val);
+ val &= ~CLK_SRC_SEL;
+ val |= (index << CLK_SRC_SEL_SHIFT);
+ DEBECLK_WRITE(sc, val);
+ DEVICE_UNLOCK(sc);
+
+ return (0);
+}
+
+static int
+aw_debeclk_set_gate(struct clknode *clk, bool enable)
+{
+ struct aw_debeclk_softc *sc;
+ uint32_t val;
+
+ sc = clknode_get_softc(clk);
+
+ DEVICE_LOCK(sc);
+ DEBECLK_READ(sc, &val);
+ if (enable)
+ val |= SCLK_GATING;
+ else
+ val &= ~SCLK_GATING;
+ DEBECLK_WRITE(sc, val);
+ DEVICE_UNLOCK(sc);
+
+ return (0);
+}
+
+static int
+aw_debeclk_recalc_freq(struct clknode *clk, uint64_t *freq)
+{
+ struct aw_debeclk_softc *sc;
+ uint32_t val, m;
+
+ sc = clknode_get_softc(clk);
+
+ DEVICE_LOCK(sc);
+ DEBECLK_READ(sc, &val);
+ DEVICE_UNLOCK(sc);
+
+ m = ((val & CLK_RATIO_M) >> CLK_RATIO_M_SHIFT) + 1;
+
+ *freq = *freq / m;
+
+ return (0);
+}
+
+static int
+aw_debeclk_set_freq(struct clknode *clk, uint64_t fin, uint64_t *fout,
+ int flags, int *stop)
+{
+ struct aw_debeclk_softc *sc;
+ uint32_t val, m;
+
+ sc = clknode_get_softc(clk);
+
+ m = howmany(fin, *fout) - 1;
+
+ DEVICE_LOCK(sc);
+ DEBECLK_READ(sc, &val);
+ val &= ~CLK_RATIO_M;
+ val |= (m << CLK_RATIO_M_SHIFT);
+ DEBECLK_WRITE(sc, val);
+ DEVICE_UNLOCK(sc);
+
+ *fout = fin / (m + 1);
+ *stop = 1;
+
+ return (0);
+}
+
+static clknode_method_t aw_debeclk_clknode_methods[] = {
+ /* Device interface */
+ CLKNODEMETHOD(clknode_init, aw_debeclk_init),
+ CLKNODEMETHOD(clknode_set_gate, aw_debeclk_set_gate),
+ CLKNODEMETHOD(clknode_set_mux, aw_debeclk_set_mux),
+ CLKNODEMETHOD(clknode_recalc_freq, aw_debeclk_recalc_freq),
+ CLKNODEMETHOD(clknode_set_freq, aw_debeclk_set_freq),
+ CLKNODEMETHOD_END
+};
+DEFINE_CLASS_1(aw_debeclk_clknode, aw_debeclk_clknode_class,
+ aw_debeclk_clknode_methods, sizeof(struct aw_debeclk_softc), clknode_class);
+
+static int
+aw_debeclk_probe(device_t dev)
+{
+ if (!ofw_bus_status_okay(dev))
+ return (ENXIO);
+
+ if (ofw_bus_search_compatible(dev, compat_data)->ocd_data == 0)
+ return (ENXIO);
+
+ device_set_desc(dev, "Allwinner Display Engine Backend Clock");
+ return (BUS_PROBE_DEFAULT);
+}
+
+static int
+aw_debeclk_attach(device_t dev)
+{
+ struct clknode_init_def def;
+ struct aw_debeclk_softc *sc, *clk_sc;
+ struct clkdom *clkdom;
+ struct clknode *clk;
+ clk_t clk_parent;
+ bus_size_t psize;
+ phandle_t node;
+ int error, ncells, i;
+
+ sc = device_get_softc(dev);
+ sc->clkdev = device_get_parent(dev);
+ node = ofw_bus_get_node(dev);
+
+ if (ofw_reg_to_paddr(node, 0, &sc->reg, &psize, NULL) != 0) {
+ device_printf(dev, "cannot parse 'reg' property\n");
+ return (ENXIO);
+ }
+
+ error = ofw_bus_parse_xref_list_get_length(node, "clocks",
+ "#clock-cells", &ncells);
+ if (error != 0) {
+ device_printf(dev, "cannot get clock count\n");
+ return (error);
+ }
+
+ clkdom = clkdom_create(dev);
+
+ memset(&def, 0, sizeof(def));
+ error = clk_parse_ofw_clk_name(dev, node, &def.name);
+ if (error != 0) {
+ device_printf(dev, "cannot parse clock name\n");
+ error = ENXIO;
+ goto fail;
+ }
+ def.id = 1;
+ def.parent_names = malloc(sizeof(char *) * ncells, M_OFWPROP, M_WAITOK);
+ for (i = 0; i < ncells; i++) {
+ error = clk_get_by_ofw_index(dev, i, &clk_parent);
+ if (error != 0) {
+ device_printf(dev, "cannot get clock %d\n", i);
+ goto fail;
+ }
+ def.parent_names[i] = clk_get_name(clk_parent);
+ clk_release(clk_parent);
+ }
+ def.parent_cnt = ncells;
+
+ clk = clknode_create(clkdom, &aw_debeclk_clknode_class, &def);
+ if (clk == NULL) {
+ device_printf(dev, "cannot create clknode\n");
+ error = ENXIO;
+ goto fail;
+ }
+
+ clk_sc = clknode_get_softc(clk);
+ clk_sc->reg = sc->reg;
+ clk_sc->clkdev = device_get_parent(dev);
+
+ clknode_register(clkdom, clk);
+
+ if (clkdom_finit(clkdom) != 0) {
+ device_printf(dev, "cannot finalize clkdom initialization\n");
+ error = ENXIO;
+ goto fail;
+ }
+
+ if (bootverbose)
+ clkdom_dump(clkdom);
+
+ hwreset_register_ofw_provider(dev);
+
+ return (0);
+
+fail:
+ return (error);
+}
+
+static device_method_t aw_debeclk_methods[] = {
+ /* Device interface */
+ DEVMETHOD(device_probe, aw_debeclk_probe),
+ DEVMETHOD(device_attach, aw_debeclk_attach),
+
+ /* Reset interface */
+ DEVMETHOD(hwreset_assert, aw_debeclk_hwreset_assert),
+ DEVMETHOD(hwreset_is_asserted, aw_debeclk_hwreset_is_asserted),
+
+ DEVMETHOD_END
+};
+
+static driver_t aw_debeclk_driver = {
+ "aw_debeclk",
+ aw_debeclk_methods,
+ sizeof(struct aw_debeclk_softc)
+};
+
+static devclass_t aw_debeclk_devclass;
+
+EARLY_DRIVER_MODULE(aw_debeclk, simplebus, aw_debeclk_driver,
+ aw_debeclk_devclass, 0, 0, BUS_PASS_BUS + BUS_PASS_ORDER_MIDDLE);
diff --git a/sys/arm/allwinner/clk/aw_gate.c b/sys/arm/allwinner/clk/aw_gate.c
new file mode 100644
index 0000000..d43d021
--- /dev/null
+++ b/sys/arm/allwinner/clk/aw_gate.c
@@ -0,0 +1,198 @@
+/*-
+ * Copyright (c) 2016 Jared McNeill <jmcneill@invisible.ca>
+ * 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 ``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.
+ *
+ * $FreeBSD$
+ */
+
+/*
+ * Allwinner clock gates
+ */
+
+#include <sys/cdefs.h>
+__FBSDID("$FreeBSD$");
+
+#include <sys/param.h>
+#include <sys/systm.h>
+#include <sys/bus.h>
+#include <sys/rman.h>
+#include <sys/kernel.h>
+#include <sys/module.h>
+#include <machine/bus.h>
+
+#include <dev/ofw/ofw_bus.h>
+#include <dev/ofw/ofw_bus_subr.h>
+#include <dev/ofw/ofw_subr.h>
+
+#include <dev/extres/clk/clk_gate.h>
+
+#define GATE_OFFSET(index) ((index / 32) * 4)
+#define GATE_SHIFT(index) (index % 32)
+
+static struct ofw_compat_data compat_data[] = {
+ { "allwinner,sun4i-a10-dram-gates-clk",
+ (uintptr_t)"Allwinner DRAM Clock Gates" },
+ { "allwinner,sun4i-a10-ahb-gates-clk",
+ (uintptr_t)"Allwinner AHB Clock Gates" },
+ { "allwinner,sun4i-a10-apb0-gates-clk",
+ (uintptr_t)"Allwinner APB0 Clock Gates" },
+ { "allwinner,sun4i-a10-apb1-gates-clk",
+ (uintptr_t)"Allwinner APB1 Clock Gates" },
+
+ { "allwinner,sun7i-a20-ahb-gates-clk",
+ (uintptr_t)"Allwinner AHB Clock Gates" },
+ { "allwinner,sun7i-a20-apb0-gates-clk",
+ (uintptr_t)"Allwinner APB0 Clock Gates" },
+ { "allwinner,sun7i-a20-apb1-gates-clk",
+ (uintptr_t)"Allwinner APB1 Clock Gates" },
+
+ { "allwinner,sun6i-a31-ahb1-gates-clk",
+ (uintptr_t)"Allwinner AHB1 Clock Gates" },
+ { "allwinner,sun6i-a31-apb0-gates-clk",
+ (uintptr_t)"Allwinner APB0 Clock Gates" },
+ { "allwinner,sun6i-a31-apb1-gates-clk",
+ (uintptr_t)"Allwinner APB1 Clock Gates" },
+ { "allwinner,sun6i-a31-apb2-gates-clk",
+ (uintptr_t)"Allwinner APB2 Clock Gates" },
+
+ { NULL, 0 }
+};
+
+static int
+aw_gate_create(device_t dev, bus_addr_t paddr, struct clkdom *clkdom,
+ const char *pclkname, const char *clkname, int index)
+{
+ const char *parent_names[1] = { pclkname };
+ struct clk_gate_def def;
+
+ memset(&def, 0, sizeof(def));
+ def.clkdef.id = index;
+ def.clkdef.name = clkname;
+ def.clkdef.parent_names = parent_names;
+ def.clkdef.parent_cnt = 1;
+ def.offset = paddr + GATE_OFFSET(index);
+ def.shift = GATE_SHIFT(index);
+ def.mask = 1;
+ def.on_value = 1;
+ def.off_value = 0;
+
+ return (clknode_gate_register(clkdom, &def));
+}
+
+static int
+aw_gate_probe(device_t dev)
+{
+ const char *d;
+
+ if (!ofw_bus_status_okay(dev))
+ return (ENXIO);
+
+ d = (const char *)ofw_bus_search_compatible(dev, compat_data)->ocd_data;
+ if (d == NULL)
+ return (ENXIO);
+
+ device_set_desc(dev, d);
+ return (BUS_PROBE_DEFAULT);
+}
+
+static int
+aw_gate_attach(device_t dev)
+{
+ struct clkdom *clkdom;
+ const char **names;
+ int index, nout, error;
+ uint32_t *indices;
+ clk_t clk_parent;
+ bus_addr_t paddr;
+ bus_size_t psize;
+ phandle_t node;
+
+ node = ofw_bus_get_node(dev);
+ indices = NULL;
+
+ if (ofw_reg_to_paddr(node, 0, &paddr, &psize, NULL) != 0) {
+ device_printf(dev, "cannot parse 'reg' property\n");
+ return (ENXIO);
+ }
+
+ clkdom = clkdom_create(dev);
+
+ nout = clk_parse_ofw_out_names(dev, node, &names, &indices);
+ if (nout == 0) {
+ device_printf(dev, "no clock outputs found\n");
+ error = ENOENT;
+ goto fail;
+ }
+ if (indices == NULL) {
+ device_printf(dev, "no clock-indices property\n");
+ error = ENXIO;
+ goto fail;
+ }
+
+ error = clk_get_by_ofw_index(dev, 0, &clk_parent);
+ if (error != 0) {
+ device_printf(dev, "cannot parse clock parent\n");
+ return (ENXIO);
+ }
+
+ for (index = 0; index < nout; index++) {
+ error = aw_gate_create(dev, paddr, clkdom,
+ clk_get_name(clk_parent), names[index], indices[index]);
+ if (error)
+ goto fail;
+ }
+
+ if (clkdom_finit(clkdom) != 0) {
+ device_printf(dev, "cannot finalize clkdom initialization\n");
+ error = ENXIO;
+ goto fail;
+ }
+
+ if (bootverbose)
+ clkdom_dump(clkdom);
+
+ return (0);
+
+fail:
+ return (error);
+}
+
+static device_method_t aw_gate_methods[] = {
+ /* Device interface */
+ DEVMETHOD(device_probe, aw_gate_probe),
+ DEVMETHOD(device_attach, aw_gate_attach),
+
+ DEVMETHOD_END
+};
+
+static driver_t aw_gate_driver = {
+ "aw_gate",
+ aw_gate_methods,
+ 0
+};
+
+static devclass_t aw_gate_devclass;
+
+EARLY_DRIVER_MODULE(aw_gate, simplebus, aw_gate_driver,
+ aw_gate_devclass, 0, 0, BUS_PASS_BUS + BUS_PASS_ORDER_MIDDLE);
diff --git a/sys/arm/allwinner/clk/aw_gmacclk.c b/sys/arm/allwinner/clk/aw_gmacclk.c
new file mode 100644
index 0000000..5e2f618
--- /dev/null
+++ b/sys/arm/allwinner/clk/aw_gmacclk.c
@@ -0,0 +1,259 @@
+/*-
+ * Copyright (c) 2016 Jared McNeill <jmcneill@invisible.ca>
+ * 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 ``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.
+ *
+ * $FreeBSD$
+ */
+
+/*
+ * Allwinner GMAC clock
+ */
+
+#include <sys/cdefs.h>
+__FBSDID("$FreeBSD$");
+
+#include <sys/param.h>
+#include <sys/systm.h>
+#include <sys/bus.h>
+#include <sys/rman.h>
+#include <sys/kernel.h>
+#include <sys/module.h>
+#include <machine/bus.h>
+
+#include <dev/ofw/ofw_bus.h>
+#include <dev/ofw/ofw_bus_subr.h>
+#include <dev/ofw/ofw_subr.h>
+
+#include <dev/extres/clk/clk_mux.h>
+#include <dev/extres/clk/clk_gate.h>
+
+#include "clkdev_if.h"
+
+#define GMAC_CLK_PIT (0x1 << 2)
+#define GMAC_CLK_PIT_SHIFT 2
+#define GMAC_CLK_PIT_MII 0
+#define GMAC_CLK_PIT_RGMII 1
+#define GMAC_CLK_SRC (0x3 << 0)
+#define GMAC_CLK_SRC_SHIFT 0
+#define GMAC_CLK_SRC_MII 0
+#define GMAC_CLK_SRC_EXT_RGMII 1
+#define GMAC_CLK_SRC_RGMII 2
+
+#define CLK_IDX_MII 0
+#define CLK_IDX_RGMII 1
+#define CLK_IDX_COUNT 2
+
+static struct ofw_compat_data compat_data[] = {
+ { "allwinner,sun7i-a20-gmac-clk", 1 },
+ { NULL, 0 }
+};
+
+struct aw_gmacclk_sc {
+ device_t clkdev;
+ bus_addr_t reg;
+};
+
+#define GMACCLK_READ(sc, val) CLKDEV_READ_4((sc)->clkdev, (sc)->reg, (val))
+#define GMACCLK_WRITE(sc, val) CLKDEV_WRITE_4((sc)->clkdev, (sc)->reg, (val))
+#define DEVICE_LOCK(sc) CLKDEV_DEVICE_LOCK((sc)->clkdev)
+#define DEVICE_UNLOCK(sc) CLKDEV_DEVICE_UNLOCK((sc)->clkdev)
+
+static int
+aw_gmacclk_init(struct clknode *clk, device_t dev)
+{
+ struct aw_gmacclk_sc *sc;
+ uint32_t val, index;
+
+ sc = clknode_get_softc(clk);
+
+ DEVICE_LOCK(sc);
+ GMACCLK_READ(sc, &val);
+ DEVICE_UNLOCK(sc);
+
+ switch ((val & GMAC_CLK_SRC) >> GMAC_CLK_SRC_SHIFT) {
+ case GMAC_CLK_SRC_MII:
+ index = CLK_IDX_MII;
+ break;
+ case GMAC_CLK_SRC_RGMII:
+ index = CLK_IDX_RGMII;
+ break;
+ default:
+ return (ENXIO);
+ }
+
+ clknode_init_parent_idx(clk, index);
+ return (0);
+}
+
+static int
+aw_gmacclk_set_mux(struct clknode *clk, int index)
+{
+ struct aw_gmacclk_sc *sc;
+ uint32_t val, clk_src, pit;
+ int error;
+
+ sc = clknode_get_softc(clk);
+ error = 0;
+
+ switch (index) {
+ case CLK_IDX_MII:
+ clk_src = GMAC_CLK_SRC_MII;
+ pit = GMAC_CLK_PIT_MII;
+ break;
+ case CLK_IDX_RGMII:
+ clk_src = GMAC_CLK_SRC_RGMII;
+ pit = GMAC_CLK_PIT_RGMII;
+ break;
+ default:
+ return (ENXIO);
+ }
+
+ DEVICE_LOCK(sc);
+ GMACCLK_READ(sc, &val);
+ val &= ~(GMAC_CLK_SRC | GMAC_CLK_PIT);
+ val |= (clk_src << GMAC_CLK_SRC_SHIFT);
+ val |= (pit << GMAC_CLK_PIT_SHIFT);
+ GMACCLK_WRITE(sc, val);
+ DEVICE_UNLOCK(sc);
+
+ return (0);
+}
+
+static clknode_method_t aw_gmacclk_clknode_methods[] = {
+ /* Device interface */
+ CLKNODEMETHOD(clknode_init, aw_gmacclk_init),
+ CLKNODEMETHOD(clknode_set_mux, aw_gmacclk_set_mux),
+ CLKNODEMETHOD_END
+};
+DEFINE_CLASS_1(aw_gmacclk_clknode, aw_gmacclk_clknode_class,
+ aw_gmacclk_clknode_methods, sizeof(struct aw_gmacclk_sc), clknode_class);
+
+static int
+aw_gmacclk_probe(device_t dev)
+{
+ if (!ofw_bus_status_okay(dev))
+ return (ENXIO);
+
+ if (ofw_bus_search_compatible(dev, compat_data)->ocd_data == 0)
+ return (ENXIO);
+
+ device_set_desc(dev, "Allwinner Module Clock");
+ return (BUS_PROBE_DEFAULT);
+}
+
+static int
+aw_gmacclk_attach(device_t dev)
+{
+ struct clknode_init_def def;
+ struct aw_gmacclk_sc *sc;
+ struct clkdom *clkdom;
+ struct clknode *clk;
+ clk_t clk_parent;
+ bus_addr_t paddr;
+ bus_size_t psize;
+ phandle_t node;
+ int error, ncells, i;
+
+ node = ofw_bus_get_node(dev);
+
+ if (ofw_reg_to_paddr(node, 0, &paddr, &psize, NULL) != 0) {
+ device_printf(dev, "cannot parse 'reg' property\n");
+ return (ENXIO);
+ }
+
+ error = ofw_bus_parse_xref_list_get_length(node, "clocks",
+ "#clock-cells", &ncells);
+ if (error != 0 || ncells != CLK_IDX_COUNT) {
+ device_printf(dev, "couldn't find parent clocks\n");
+ return (ENXIO);
+ }
+
+ clkdom = clkdom_create(dev);
+
+ memset(&def, 0, sizeof(def));
+ error = clk_parse_ofw_clk_name(dev, node, &def.name);
+ if (error != 0) {
+ device_printf(dev, "cannot parse clock name\n");
+ error = ENXIO;
+ goto fail;
+ }
+ def.id = 1;
+ def.parent_names = malloc(sizeof(char *) * ncells, M_OFWPROP, M_WAITOK);
+ for (i = 0; i < ncells; i++) {
+ error = clk_get_by_ofw_index(dev, i, &clk_parent);
+ if (error != 0) {
+ device_printf(dev, "cannot get clock %d\n", error);
+ goto fail;
+ }
+ def.parent_names[i] = clk_get_name(clk_parent);
+ clk_release(clk_parent);
+ }
+ def.parent_cnt = ncells;
+
+ clk = clknode_create(clkdom, &aw_gmacclk_clknode_class, &def);
+ if (clk == NULL) {
+ device_printf(dev, "cannot create clknode\n");
+ error = ENXIO;
+ goto fail;
+ }
+
+ sc = clknode_get_softc(clk);
+ sc->reg = paddr;
+ sc->clkdev = device_get_parent(dev);
+
+ clknode_register(clkdom, clk);
+
+ if (clkdom_finit(clkdom) != 0) {
+ device_printf(dev, "cannot finalize clkdom initialization\n");
+ error = ENXIO;
+ goto fail;
+ }
+
+ if (bootverbose)
+ clkdom_dump(clkdom);
+
+ return (0);
+
+fail:
+ return (error);
+}
+
+static device_method_t aw_gmacclk_methods[] = {
+ /* Device interface */
+ DEVMETHOD(device_probe, aw_gmacclk_probe),
+ DEVMETHOD(device_attach, aw_gmacclk_attach),
+
+ DEVMETHOD_END
+};
+
+static driver_t aw_gmacclk_driver = {
+ "aw_gmacclk",
+ aw_gmacclk_methods,
+ 0
+};
+
+static devclass_t aw_gmacclk_devclass;
+
+EARLY_DRIVER_MODULE(aw_gmacclk, simplebus, aw_gmacclk_driver,
+ aw_gmacclk_devclass, 0, 0, BUS_PASS_BUS + BUS_PASS_ORDER_MIDDLE);
diff --git a/sys/arm/allwinner/clk/aw_hdmiclk.c b/sys/arm/allwinner/clk/aw_hdmiclk.c
new file mode 100644
index 0000000..635418c
--- /dev/null
+++ b/sys/arm/allwinner/clk/aw_hdmiclk.c
@@ -0,0 +1,315 @@
+/*-
+ * Copyright (c) 2016 Jared McNeill <jmcneill@invisible.ca>
+ * 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 ``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.
+ *
+ * $FreeBSD$
+ */
+
+/*
+ * Allwinner HDMI clock
+ */
+
+#include <sys/cdefs.h>
+__FBSDID("$FreeBSD$");
+
+#include <sys/param.h>
+#include <sys/systm.h>
+#include <sys/bus.h>
+#include <sys/rman.h>
+#include <sys/kernel.h>
+#include <sys/module.h>
+#include <machine/bus.h>
+
+#include <dev/ofw/ofw_bus.h>
+#include <dev/ofw/ofw_bus_subr.h>
+#include <dev/ofw/ofw_subr.h>
+
+#include <dev/extres/clk/clk_mux.h>
+#include <dev/extres/clk/clk_gate.h>
+
+#include "clkdev_if.h"
+
+#define SCLK_GATING (1 << 31)
+#define CLK_SRC_SEL (0x3 << 24)
+#define CLK_SRC_SEL_SHIFT 24
+#define CLK_SRC_SEL_MAX 0x3
+#define CLK_RATIO_N (0x3 << 16)
+#define CLK_RATIO_N_SHIFT 16
+#define CLK_RATIO_N_MAX 0x3
+#define CLK_RATIO_M (0x1f << 0)
+#define CLK_RATIO_M_SHIFT 0
+#define CLK_RATIO_M_MAX 0x1f
+
+#define CLK_IDX_PLL3_1X 0
+
+static struct ofw_compat_data compat_data[] = {
+ { "allwinner,sun4i-a10-hdmi-clk", 1 },
+ { NULL, 0 }
+};
+
+struct aw_hdmiclk_sc {
+ device_t clkdev;
+ bus_addr_t reg;
+};
+
+#define HDMICLK_READ(sc, val) CLKDEV_READ_4((sc)->clkdev, (sc)->reg, (val))
+#define HDMICLK_WRITE(sc, val) CLKDEV_WRITE_4((sc)->clkdev, (sc)->reg, (val))
+#define DEVICE_LOCK(sc) CLKDEV_DEVICE_LOCK((sc)->clkdev)
+#define DEVICE_UNLOCK(sc) CLKDEV_DEVICE_UNLOCK((sc)->clkdev)
+
+static int
+aw_hdmiclk_init(struct clknode *clk, device_t dev)
+{
+ struct aw_hdmiclk_sc *sc;
+ uint32_t val, index;
+
+ sc = clknode_get_softc(clk);
+
+ /* Select PLL3(1X) clock source */
+ index = CLK_IDX_PLL3_1X;
+
+ DEVICE_LOCK(sc);
+ HDMICLK_READ(sc, &val);
+ val &= ~CLK_SRC_SEL;
+ val |= (index << CLK_SRC_SEL_SHIFT);
+ HDMICLK_WRITE(sc, val);
+ DEVICE_UNLOCK(sc);
+
+ clknode_init_parent_idx(clk, index);
+ return (0);
+}
+
+static int
+aw_hdmiclk_set_mux(struct clknode *clk, int index)
+{
+ struct aw_hdmiclk_sc *sc;
+ uint32_t val;
+
+ sc = clknode_get_softc(clk);
+
+ if (index < 0 || index > CLK_SRC_SEL_MAX)
+ return (ERANGE);
+
+ DEVICE_LOCK(sc);
+ HDMICLK_READ(sc, &val);
+ val &= ~CLK_SRC_SEL;
+ val |= (index << CLK_SRC_SEL_SHIFT);
+ HDMICLK_WRITE(sc, val);
+ DEVICE_UNLOCK(sc);
+
+ return (0);
+}
+
+static int
+aw_hdmiclk_set_gate(struct clknode *clk, bool enable)
+{
+ struct aw_hdmiclk_sc *sc;
+ uint32_t val;
+
+ sc = clknode_get_softc(clk);
+
+ DEVICE_LOCK(sc);
+ HDMICLK_READ(sc, &val);
+ if (enable)
+ val |= SCLK_GATING;
+ else
+ val &= ~SCLK_GATING;
+ HDMICLK_WRITE(sc, val);
+ DEVICE_UNLOCK(sc);
+
+ return (0);
+}
+
+static int
+aw_hdmiclk_recalc_freq(struct clknode *clk, uint64_t *freq)
+{
+ struct aw_hdmiclk_sc *sc;
+ uint32_t val, m, n;
+
+ sc = clknode_get_softc(clk);
+
+ DEVICE_LOCK(sc);
+ HDMICLK_READ(sc, &val);
+ DEVICE_UNLOCK(sc);
+
+ n = 1 << ((val & CLK_RATIO_N) >> CLK_RATIO_N_SHIFT);
+ m = ((val & CLK_RATIO_M) >> CLK_RATIO_M_SHIFT) + 1;
+
+ *freq = *freq / n / m;
+
+ return (0);
+}
+
+static int
+aw_hdmiclk_set_freq(struct clknode *clk, uint64_t fin, uint64_t *fout,
+ int flags, int *stop)
+{
+ struct aw_hdmiclk_sc *sc;
+ uint32_t val, m, n, best_m, best_n;
+ uint64_t cur_freq;
+ int64_t best_diff, cur_diff;
+
+ sc = clknode_get_softc(clk);
+ best_n = best_m = 0;
+ best_diff = (int64_t)*fout;
+
+ for (n = 0; n <= CLK_RATIO_N_MAX; n++)
+ for (m = 0; m <= CLK_RATIO_M_MAX; m++) {
+ cur_freq = fin / (1 << n) / (m + 1);
+ cur_diff = (int64_t)*fout - cur_freq;
+ if (cur_diff >= 0 && cur_diff < best_diff) {
+ best_diff = cur_diff;
+ best_m = m;
+ best_n = n;
+ }
+ }
+
+ if (best_diff == (int64_t)*fout)
+ return (ERANGE);
+
+ DEVICE_LOCK(sc);
+ HDMICLK_READ(sc, &val);
+ val &= ~(CLK_RATIO_N | CLK_RATIO_M);
+ val |= (best_n << CLK_RATIO_N_SHIFT);
+ val |= (best_m << CLK_RATIO_M_SHIFT);
+ HDMICLK_WRITE(sc, val);
+ DEVICE_UNLOCK(sc);
+
+ *fout = fin / (1 << best_n) / (best_m + 1);
+ *stop = 1;
+
+ return (0);
+}
+
+static clknode_method_t aw_hdmiclk_clknode_methods[] = {
+ /* Device interface */
+ CLKNODEMETHOD(clknode_init, aw_hdmiclk_init),
+ CLKNODEMETHOD(clknode_set_gate, aw_hdmiclk_set_gate),
+ CLKNODEMETHOD(clknode_set_mux, aw_hdmiclk_set_mux),
+ CLKNODEMETHOD(clknode_recalc_freq, aw_hdmiclk_recalc_freq),
+ CLKNODEMETHOD(clknode_set_freq, aw_hdmiclk_set_freq),
+ CLKNODEMETHOD_END
+};
+DEFINE_CLASS_1(aw_hdmiclk_clknode, aw_hdmiclk_clknode_class,
+ aw_hdmiclk_clknode_methods, sizeof(struct aw_hdmiclk_sc), clknode_class);
+
+static int
+aw_hdmiclk_probe(device_t dev)
+{
+ if (!ofw_bus_status_okay(dev))
+ return (ENXIO);
+
+ if (ofw_bus_search_compatible(dev, compat_data)->ocd_data == 0)
+ return (ENXIO);
+
+ device_set_desc(dev, "Allwinner HDMI Clock");
+ return (BUS_PROBE_DEFAULT);
+}
+
+static int
+aw_hdmiclk_attach(device_t dev)
+{
+ struct clknode_init_def def;
+ struct aw_hdmiclk_sc *sc;
+ struct clkdom *clkdom;
+ struct clknode *clk;
+ clk_t clk_parent;
+ bus_addr_t paddr;
+ bus_size_t psize;
+ phandle_t node;
+ int error;
+
+ node = ofw_bus_get_node(dev);
+
+ if (ofw_reg_to_paddr(node, 0, &paddr, &psize, NULL) != 0) {
+ device_printf(dev, "cannot parse 'reg' property\n");
+ return (ENXIO);
+ }
+
+ clkdom = clkdom_create(dev);
+
+ error = clk_get_by_ofw_index(dev, 0, &clk_parent);
+ if (error != 0) {
+ device_printf(dev, "cannot parse clock parent\n");
+ return (ENXIO);
+ }
+
+ memset(&def, 0, sizeof(def));
+ error = clk_parse_ofw_clk_name(dev, node, &def.name);
+ if (error != 0) {
+ device_printf(dev, "cannot parse clock name\n");
+ error = ENXIO;
+ goto fail;
+ }
+ def.id = 1;
+ def.parent_names = malloc(sizeof(char *), M_OFWPROP, M_WAITOK);
+ def.parent_names[0] = clk_get_name(clk_parent);
+ def.parent_cnt = 1;
+
+ clk = clknode_create(clkdom, &aw_hdmiclk_clknode_class, &def);
+ if (clk == NULL) {
+ device_printf(dev, "cannot create clknode\n");
+ error = ENXIO;
+ goto fail;
+ }
+
+ sc = clknode_get_softc(clk);
+ sc->reg = paddr;
+ sc->clkdev = device_get_parent(dev);
+
+ clknode_register(clkdom, clk);
+
+ if (clkdom_finit(clkdom) != 0) {
+ device_printf(dev, "cannot finalize clkdom initialization\n");
+ error = ENXIO;
+ goto fail;
+ }
+
+ if (bootverbose)
+ clkdom_dump(clkdom);
+
+ return (0);
+
+fail:
+ return (error);
+}
+
+static device_method_t aw_hdmiclk_methods[] = {
+ /* Device interface */
+ DEVMETHOD(device_probe, aw_hdmiclk_probe),
+ DEVMETHOD(device_attach, aw_hdmiclk_attach),
+
+ DEVMETHOD_END
+};
+
+static driver_t aw_hdmiclk_driver = {
+ "aw_hdmiclk",
+ aw_hdmiclk_methods,
+ 0
+};
+
+static devclass_t aw_hdmiclk_devclass;
+
+EARLY_DRIVER_MODULE(aw_hdmiclk, simplebus, aw_hdmiclk_driver,
+ aw_hdmiclk_devclass, 0, 0, BUS_PASS_BUS + BUS_PASS_ORDER_MIDDLE);
diff --git a/sys/arm/allwinner/clk/aw_lcdclk.c b/sys/arm/allwinner/clk/aw_lcdclk.c
new file mode 100644
index 0000000..bebee01
--- /dev/null
+++ b/sys/arm/allwinner/clk/aw_lcdclk.c
@@ -0,0 +1,560 @@
+/*-
+ * Copyright (c) 2016 Jared McNeill <jmcneill@invisible.ca>
+ * 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 ``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.
+ *
+ * $FreeBSD$
+ */
+
+/*
+ * Allwinner LCD clocks
+ */
+
+#include <sys/cdefs.h>
+__FBSDID("$FreeBSD$");
+
+#include <sys/param.h>
+#include <sys/systm.h>
+#include <sys/bus.h>
+#include <sys/rman.h>
+#include <sys/kernel.h>
+#include <sys/module.h>
+#include <machine/bus.h>
+
+#include <dev/ofw/ofw_bus.h>
+#include <dev/ofw/ofw_bus_subr.h>
+#include <dev/ofw/ofw_subr.h>
+
+#include <dev/extres/clk/clk.h>
+#include <dev/extres/hwreset/hwreset.h>
+
+#include "clkdev_if.h"
+#include "hwreset_if.h"
+
+/* CH0 */
+#define CH0_SCLK_GATING (1 << 31)
+#define CH0_LCD_RST (1 << 30)
+#define CH0_CLK_SRC_SEL (0x3 << 24)
+#define CH0_CLK_SRC_SEL_SHIFT 24
+#define CH0_CLK_SRC_SEL_PLL3_1X 0
+#define CH0_CLK_SRC_SEL_PLL7_1X 1
+#define CH0_CLK_SRC_SEL_PLL3_2X 2
+#define CH0_CLK_SRC_SEL_PLL6 3
+
+/* CH1 */
+#define CH1_SCLK2_GATING (1 << 31)
+#define CH1_SCLK2_SEL (0x3 << 24)
+#define CH1_SCLK2_SEL_SHIFT 24
+#define CH1_SCLK2_SEL_PLL3_1X 0
+#define CH1_SCLK2_SEL_PLL7_1X 1
+#define CH1_SCLK2_SEL_PLL3_2X 2
+#define CH1_SCLK2_SEL_PLL7_2X 3
+#define CH1_SCLK1_GATING (1 << 15)
+#define CH1_SCLK1_SEL (0x1 << 11)
+#define CH1_SCLK1_SEL_SHIFT 11
+#define CH1_SCLK1_SEL_SCLK2 0
+#define CH1_SCLK1_SEL_SCLK2_DIV2 1
+#define CH1_CLK_DIV_RATIO_M (0x1f << 0)
+#define CH1_CLK_DIV_RATIO_M_SHIFT 0
+
+#define TCON_PLLREF 3000000ULL
+#define TCON_PLL_M_MIN 1
+#define TCON_PLL_M_MAX 15
+#define TCON_PLL_N_MIN 9
+#define TCON_PLL_N_MAX 127
+
+#define CLK_IDX_CH1_SCLK1 0
+#define CLK_IDX_CH1_SCLK2 1
+
+#define CLK_IDX_
+
+enum aw_lcdclk_type {
+ AW_LCD_CH0 = 1,
+ AW_LCD_CH1,
+};
+
+static struct ofw_compat_data compat_data[] = {
+ { "allwinner,sun4i-a10-lcd-ch0-clk", AW_LCD_CH0 },
+ { "allwinner,sun4i-a10-lcd-ch1-clk", AW_LCD_CH1 },
+ { NULL, 0 }
+};
+
+struct aw_lcdclk_softc {
+ enum aw_lcdclk_type type;
+ device_t clkdev;
+ bus_addr_t reg;
+ int id;
+};
+
+#define LCDCLK_READ(sc, val) CLKDEV_READ_4((sc)->clkdev, (sc)->reg, (val))
+#define LCDCLK_WRITE(sc, val) CLKDEV_WRITE_4((sc)->clkdev, (sc)->reg, (val))
+#define LCDCLK_MODIFY(sc, clr, set) \
+ CLKDEV_MODIFY_4((sc)->clkdev, (sc)->reg, (clr), (set))
+#define DEVICE_LOCK(sc) CLKDEV_DEVICE_LOCK((sc)->clkdev)
+#define DEVICE_UNLOCK(sc) CLKDEV_DEVICE_UNLOCK((sc)->clkdev)
+
+static int
+aw_lcdclk_hwreset_assert(device_t dev, intptr_t id, bool value)
+{
+ struct aw_lcdclk_softc *sc;
+ int error;
+
+ sc = device_get_softc(dev);
+
+ if (sc->type != AW_LCD_CH0)
+ return (ENXIO);
+
+ DEVICE_LOCK(sc);
+ error = LCDCLK_MODIFY(sc, CH0_LCD_RST, value ? 0 : CH0_LCD_RST);
+ DEVICE_UNLOCK(sc);
+
+ return (error);
+}
+
+static int
+aw_lcdclk_hwreset_is_asserted(device_t dev, intptr_t id, bool *value)
+{
+ struct aw_lcdclk_softc *sc;
+ uint32_t val;
+ int error;
+
+ sc = device_get_softc(dev);
+
+ if (sc->type != AW_LCD_CH0)
+ return (ENXIO);
+
+ DEVICE_LOCK(sc);
+ error = LCDCLK_READ(sc, &val);
+ DEVICE_UNLOCK(sc);
+
+ if (error)
+ return (error);
+
+ *value = (val & CH0_LCD_RST) != 0 ? false : true;
+
+ return (0);
+}
+
+static int
+aw_lcdclk_init(struct clknode *clk, device_t dev)
+{
+ struct aw_lcdclk_softc *sc;
+ uint32_t val, index;
+
+ sc = clknode_get_softc(clk);
+
+ DEVICE_LOCK(sc);
+ LCDCLK_READ(sc, &val);
+ DEVICE_UNLOCK(sc);
+
+ switch (sc->type) {
+ case AW_LCD_CH0:
+ index = (val & CH0_CLK_SRC_SEL) >> CH0_CLK_SRC_SEL_SHIFT;
+ break;
+ case AW_LCD_CH1:
+ switch (sc->id) {
+ case CLK_IDX_CH1_SCLK1:
+ index = 0;
+ break;
+ case CLK_IDX_CH1_SCLK2:
+ index = (val & CH1_SCLK2_SEL_SHIFT) >>
+ CH1_SCLK2_SEL_SHIFT;
+ break;
+ default:
+ return (ENXIO);
+ }
+ break;
+ default:
+ return (ENXIO);
+ }
+
+ clknode_init_parent_idx(clk, index);
+ return (0);
+}
+
+static int
+aw_lcdclk_set_mux(struct clknode *clk, int index)
+{
+ struct aw_lcdclk_softc *sc;
+ uint32_t val;
+
+ sc = clknode_get_softc(clk);
+
+ switch (sc->type) {
+ case AW_LCD_CH0:
+ DEVICE_LOCK(sc);
+ LCDCLK_READ(sc, &val);
+ val &= ~CH0_CLK_SRC_SEL;
+ val |= (index << CH0_CLK_SRC_SEL_SHIFT);
+ LCDCLK_WRITE(sc, val);
+ DEVICE_UNLOCK(sc);
+ break;
+ case AW_LCD_CH1:
+ switch (sc->id) {
+ case CLK_IDX_CH1_SCLK2:
+ DEVICE_LOCK(sc);
+ LCDCLK_READ(sc, &val);
+ val &= ~CH1_SCLK2_SEL;
+ val |= (index << CH1_SCLK2_SEL_SHIFT);
+ LCDCLK_WRITE(sc, val);
+ DEVICE_UNLOCK(sc);
+ break;
+ default:
+ return (ENXIO);
+ }
+ break;
+ default:
+ return (ENXIO);
+ }
+
+ return (0);
+}
+
+static int
+aw_lcdclk_set_gate(struct clknode *clk, bool enable)
+{
+ struct aw_lcdclk_softc *sc;
+ uint32_t val, mask;
+
+ sc = clknode_get_softc(clk);
+
+ switch (sc->type) {
+ case AW_LCD_CH0:
+ mask = CH0_SCLK_GATING;
+ break;
+ case AW_LCD_CH1:
+ mask = (sc->id == CLK_IDX_CH1_SCLK1) ? CH1_SCLK1_GATING :
+ CH1_SCLK2_GATING;
+ break;
+ default:
+ return (ENXIO);
+ }
+
+ DEVICE_LOCK(sc);
+ LCDCLK_READ(sc, &val);
+ if (enable)
+ val |= mask;
+ else
+ val &= ~mask;
+ LCDCLK_WRITE(sc, val);
+ DEVICE_UNLOCK(sc);
+
+ return (0);
+}
+
+static int
+aw_lcdclk_recalc_freq(struct clknode *clk, uint64_t *freq)
+{
+ struct aw_lcdclk_softc *sc;
+ uint32_t val, m;
+
+ sc = clknode_get_softc(clk);
+
+ if (sc->type != AW_LCD_CH1)
+ return (0);
+
+ DEVICE_LOCK(sc);
+ LCDCLK_READ(sc, &val);
+ DEVICE_UNLOCK(sc);
+
+ m = ((val & CH1_CLK_DIV_RATIO_M) >> CH1_CLK_DIV_RATIO_M_SHIFT) + 1;
+ *freq = *freq / m;
+
+ if (sc->id == CLK_IDX_CH1_SCLK1) {
+ if ((val & CH1_SCLK1_SEL) == CH1_SCLK1_SEL_SCLK2_DIV2)
+ *freq /= 2;
+ }
+
+ return (0);
+}
+
+static void
+calc_tcon_pll(uint64_t fin, uint64_t fout, uint32_t *pm, uint32_t *pn)
+{
+ int64_t diff, fcur, best;
+ int m, n;
+
+ best = fout;
+ for (m = TCON_PLL_M_MIN; m <= TCON_PLL_M_MAX; m++) {
+ for (n = TCON_PLL_N_MIN; n <= TCON_PLL_N_MAX; n++) {
+ fcur = (n * fin) / m;
+ diff = (int64_t)fout - fcur;
+ if (diff > 0 && diff < best) {
+ best = diff;
+ *pm = m;
+ *pn = n;
+ }
+ }
+ }
+}
+
+static int
+aw_lcdclk_set_freq(struct clknode *clk, uint64_t fin, uint64_t *fout,
+ int flags, int *stop)
+{
+ struct aw_lcdclk_softc *sc;
+ uint32_t val, m, m2, n, n2, src_sel;
+ uint64_t fsingle, fdouble;
+ int error;
+ bool dbl;
+
+ sc = clknode_get_softc(clk);
+
+ switch (sc->type) {
+ case AW_LCD_CH0:
+ *stop = 0;
+ break;
+ case AW_LCD_CH1:
+ if (sc->id != CLK_IDX_CH1_SCLK2)
+ return (ENXIO);
+
+ m = n = m2 = n2 = 0;
+ dbl = false;
+
+ /* Find the frequency closes to the target dot clock, using
+ * both 1X and 2X PLL inputs as possible candidates.
+ */
+ calc_tcon_pll(TCON_PLLREF, *fout, &m, &n);
+ calc_tcon_pll(TCON_PLLREF * 2, *fout, &m2, &n2);
+
+ fsingle = m ? (n * TCON_PLLREF) / m : 0;
+ fdouble = m2 ? (n2 * TCON_PLLREF * 2) / m2 : 0;
+
+ if (fdouble > fsingle) {
+ dbl = true;
+ m = m2;
+ n = n2;
+ }
+
+ src_sel = dbl ? CH0_CLK_SRC_SEL_PLL3_2X :
+ CH0_CLK_SRC_SEL_PLL3_1X;
+
+ /* Switch parent clock if necessary */
+ if (src_sel != clknode_get_parent_idx(clk)) {
+ error = clknode_set_parent_by_idx(clk, src_sel);
+ if (error != 0)
+ return (error);
+ }
+
+ /* Set desired parent frequency */
+ fin = n * TCON_PLLREF;
+
+ error = clknode_set_freq(clknode_get_parent(clk), fin, 0, 0);
+ if (error != 0)
+ return (error);
+
+ error = clknode_enable(clknode_get_parent(clk));
+ if (error != 0)
+ return (error);
+
+ /* Fetch new input frequency */
+ error = clknode_get_freq(clknode_get_parent(clk), &fin);
+ if (error != 0)
+ return (error);
+
+ /* Set LCD divisor */
+ DEVICE_LOCK(sc);
+ LCDCLK_READ(sc, &val);
+ val &= ~CH1_CLK_DIV_RATIO_M;
+ val |= ((m - 1) << CH1_CLK_DIV_RATIO_M_SHIFT);
+ LCDCLK_WRITE(sc, val);
+ DEVICE_UNLOCK(sc);
+
+ *fout = fin / m;
+ *stop = 1;
+
+ break;
+ }
+
+ return (0);
+}
+
+static clknode_method_t aw_lcdclk_clknode_methods[] = {
+ /* Device interface */
+ CLKNODEMETHOD(clknode_init, aw_lcdclk_init),
+ CLKNODEMETHOD(clknode_set_gate, aw_lcdclk_set_gate),
+ CLKNODEMETHOD(clknode_set_mux, aw_lcdclk_set_mux),
+ CLKNODEMETHOD(clknode_recalc_freq, aw_lcdclk_recalc_freq),
+ CLKNODEMETHOD(clknode_set_freq, aw_lcdclk_set_freq),
+ CLKNODEMETHOD_END
+};
+DEFINE_CLASS_1(aw_lcdclk_clknode, aw_lcdclk_clknode_class,
+ aw_lcdclk_clknode_methods, sizeof(struct aw_lcdclk_softc), clknode_class);
+
+static int
+aw_lcdclk_create(device_t dev, struct clkdom *clkdom,
+ const char **parent_names, int parent_cnt, const char *name, int index)
+{
+ struct aw_lcdclk_softc *sc, *clk_sc;
+ struct clknode_init_def def;
+ struct clknode *clk;
+ phandle_t node;
+
+ sc = device_get_softc(dev);
+ node = ofw_bus_get_node(dev);
+
+ memset(&def, 0, sizeof(def));
+ def.id = index;
+ def.name = name;
+ def.parent_names = parent_names;
+ def.parent_cnt = parent_cnt;
+
+ clk = clknode_create(clkdom, &aw_lcdclk_clknode_class, &def);
+ if (clk == NULL) {
+ device_printf(dev, "cannot create clknode\n");
+ return (ENXIO);
+ }
+
+ clk_sc = clknode_get_softc(clk);
+ clk_sc->type = sc->type;
+ clk_sc->reg = sc->reg;
+ clk_sc->clkdev = sc->clkdev;
+ clk_sc->id = index;
+
+ clknode_register(clkdom, clk);
+
+ return (0);
+}
+
+static int
+aw_lcdclk_probe(device_t dev)
+{
+ enum aw_lcdclk_type type;
+
+ if (!ofw_bus_status_okay(dev))
+ return (ENXIO);
+
+ type = ofw_bus_search_compatible(dev, compat_data)->ocd_data;
+ switch (type) {
+ case AW_LCD_CH0:
+ device_set_desc(dev, "Allwinner LCD CH0 Clock");
+ break;
+ case AW_LCD_CH1:
+ device_set_desc(dev, "Allwinner LCD CH1 Clock");
+ break;
+ default:
+ return (ENXIO);
+ }
+
+ return (BUS_PROBE_DEFAULT);
+}
+
+static int
+aw_lcdclk_attach(device_t dev)
+{
+ struct aw_lcdclk_softc *sc;
+ struct clkdom *clkdom;
+ clk_t clk_parent;
+ bus_size_t psize;
+ phandle_t node;
+ uint32_t *indices;
+ const char **parent_names;
+ const char **names;
+ int error, ncells, nout, i;
+
+ sc = device_get_softc(dev);
+ sc->clkdev = device_get_parent(dev);
+ sc->type = ofw_bus_search_compatible(dev, compat_data)->ocd_data;
+
+ node = ofw_bus_get_node(dev);
+
+ if (ofw_reg_to_paddr(node, 0, &sc->reg, &psize, NULL) != 0) {
+ device_printf(dev, "cannot parse 'reg' property\n");
+ return (ENXIO);
+ }
+
+ error = ofw_bus_parse_xref_list_get_length(node, "clocks",
+ "#clock-cells", &ncells);
+ if (error != 0) {
+ device_printf(dev, "cannot get clock count\n");
+ return (error);
+ }
+
+ parent_names = malloc(sizeof(char *) * ncells, M_OFWPROP, M_WAITOK);
+ for (i = 0; i < ncells; i++) {
+ error = clk_get_by_ofw_index(dev, i, &clk_parent);
+ if (error != 0) {
+ device_printf(dev, "cannot get clock %d\n", i);
+ goto fail;
+ }
+ parent_names[i] = clk_get_name(clk_parent);
+ clk_release(clk_parent);
+ }
+
+ nout = clk_parse_ofw_out_names(dev, node, &names, &indices);
+ if (nout == 0) {
+ device_printf(dev, "no clock outputs found\n");
+ return (error);
+ }
+
+ clkdom = clkdom_create(dev);
+
+ for (i = 0; i < nout; i++) {
+ error = aw_lcdclk_create(dev, clkdom, parent_names, ncells,
+ names[i], nout == 1 ? 1 : i);
+ if (error)
+ goto fail;
+ }
+
+ if (clkdom_finit(clkdom) != 0) {
+ device_printf(dev, "cannot finalize clkdom initialization\n");
+ error = ENXIO;
+ goto fail;
+ }
+
+ if (bootverbose)
+ clkdom_dump(clkdom);
+
+ if (sc->type == AW_LCD_CH0)
+ hwreset_register_ofw_provider(dev);
+
+ free(parent_names, M_OFWPROP);
+ return (0);
+
+fail:
+ free(parent_names, M_OFWPROP);
+ return (error);
+}
+
+static device_method_t aw_lcdclk_methods[] = {
+ /* Device interface */
+ DEVMETHOD(device_probe, aw_lcdclk_probe),
+ DEVMETHOD(device_attach, aw_lcdclk_attach),
+
+ /* Reset interface */
+ DEVMETHOD(hwreset_assert, aw_lcdclk_hwreset_assert),
+ DEVMETHOD(hwreset_is_asserted, aw_lcdclk_hwreset_is_asserted),
+
+ DEVMETHOD_END
+};
+
+static driver_t aw_lcdclk_driver = {
+ "aw_lcdclk",
+ aw_lcdclk_methods,
+ sizeof(struct aw_lcdclk_softc)
+};
+
+static devclass_t aw_lcdclk_devclass;
+
+EARLY_DRIVER_MODULE(aw_lcdclk, simplebus, aw_lcdclk_driver,
+ aw_lcdclk_devclass, 0, 0, BUS_PASS_BUS + BUS_PASS_ORDER_MIDDLE);
diff --git a/sys/arm/allwinner/clk/aw_mmcclk.c b/sys/arm/allwinner/clk/aw_mmcclk.c
new file mode 100644
index 0000000..653afd9
--- /dev/null
+++ b/sys/arm/allwinner/clk/aw_mmcclk.c
@@ -0,0 +1,351 @@
+/*-
+ * Copyright (c) 2016 Jared McNeill <jmcneill@invisible.ca>
+ * 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 ``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.
+ *
+ * $FreeBSD$
+ */
+
+/*
+ * Allwinner MMC clocks
+ */
+
+#include <sys/cdefs.h>
+__FBSDID("$FreeBSD$");
+
+#include <sys/param.h>
+#include <sys/systm.h>
+#include <sys/bus.h>
+#include <sys/rman.h>
+#include <sys/kernel.h>
+#include <sys/module.h>
+#include <machine/bus.h>
+
+#include <dev/ofw/ofw_bus.h>
+#include <dev/ofw/ofw_bus_subr.h>
+#include <dev/ofw/ofw_subr.h>
+
+#include <dev/extres/clk/clk_mux.h>
+#include <dev/extres/clk/clk_gate.h>
+
+#include "clkdev_if.h"
+
+#define SCLK_GATING (1 << 31)
+#define CLK_SRC_SEL (0x3 << 24)
+#define CLK_SRC_SEL_SHIFT 24
+#define CLK_SRC_SEL_MAX 0x3
+#define CLK_SRC_SEL_OSC24M 0
+#define CLK_SRC_SEL_PLL6 1
+#define CLK_PHASE_CTR (0x7 << 20)
+#define CLK_PHASE_CTR_SHIFT 20
+#define CLK_RATIO_N (0x3 << 16)
+#define CLK_RATIO_N_SHIFT 16
+#define CLK_RATIO_N_MAX 0x3
+#define OUTPUT_CLK_PHASE_CTR (0x7 << 8)
+#define OUTPUT_CLK_PHASE_CTR_SHIFT 8
+#define CLK_RATIO_M (0xf << 0)
+#define CLK_RATIO_M_SHIFT 0
+#define CLK_RATIO_M_MAX 0xf
+
+static struct ofw_compat_data compat_data[] = {
+ { "allwinner,sun4i-a10-mmc-clk", 1 },
+ { NULL, 0 }
+};
+
+struct aw_mmcclk_sc {
+ device_t clkdev;
+ bus_addr_t reg;
+};
+
+#define MODCLK_READ(sc, val) CLKDEV_READ_4((sc)->clkdev, (sc)->reg, (val))
+#define MODCLK_WRITE(sc, val) CLKDEV_WRITE_4((sc)->clkdev, (sc)->reg, (val))
+#define DEVICE_LOCK(sc) CLKDEV_DEVICE_LOCK((sc)->clkdev)
+#define DEVICE_UNLOCK(sc) CLKDEV_DEVICE_UNLOCK((sc)->clkdev)
+
+static int
+aw_mmcclk_init(struct clknode *clk, device_t dev)
+{
+ struct aw_mmcclk_sc *sc;
+ uint32_t val, index;
+
+ sc = clknode_get_softc(clk);
+
+ DEVICE_LOCK(sc);
+ MODCLK_READ(sc, &val);
+ DEVICE_UNLOCK(sc);
+
+ index = (val & CLK_SRC_SEL) >> CLK_SRC_SEL_SHIFT;
+
+ clknode_init_parent_idx(clk, index);
+ return (0);
+}
+
+static int
+aw_mmcclk_set_mux(struct clknode *clk, int index)
+{
+ struct aw_mmcclk_sc *sc;
+ uint32_t val;
+
+ sc = clknode_get_softc(clk);
+
+ if (index < 0 || index > CLK_SRC_SEL_MAX)
+ return (ERANGE);
+
+ DEVICE_LOCK(sc);
+ MODCLK_READ(sc, &val);
+ val &= ~CLK_SRC_SEL;
+ val |= (index << CLK_SRC_SEL_SHIFT);
+ MODCLK_WRITE(sc, val);
+ DEVICE_UNLOCK(sc);
+
+ return (0);
+}
+
+static int
+aw_mmcclk_set_gate(struct clknode *clk, bool enable)
+{
+ struct aw_mmcclk_sc *sc;
+ uint32_t val;
+
+ sc = clknode_get_softc(clk);
+
+ DEVICE_LOCK(sc);
+ MODCLK_READ(sc, &val);
+ if (enable)
+ val |= SCLK_GATING;
+ else
+ val &= ~SCLK_GATING;
+ MODCLK_WRITE(sc, val);
+ DEVICE_UNLOCK(sc);
+
+ return (0);
+}
+
+static int
+aw_mmcclk_recalc_freq(struct clknode *clk, uint64_t *freq)
+{
+ struct aw_mmcclk_sc *sc;
+ uint32_t val, m, n;
+
+ sc = clknode_get_softc(clk);
+
+ DEVICE_LOCK(sc);
+ MODCLK_READ(sc, &val);
+ DEVICE_UNLOCK(sc);
+
+ n = 1 << ((val & CLK_RATIO_N) >> CLK_RATIO_N_SHIFT);
+ m = ((val & CLK_RATIO_M) >> CLK_RATIO_M_SHIFT) + 1;
+
+ *freq = *freq / n / m;
+
+ return (0);
+}
+
+static int
+aw_mmcclk_set_freq(struct clknode *clk, uint64_t fin, uint64_t *fout,
+ int flags, int *stop)
+{
+ struct aw_mmcclk_sc *sc;
+ uint32_t val, m, n, phase, ophase;
+ int parent_idx, error;
+
+ sc = clknode_get_softc(clk);
+
+ /* XXX
+ * The ophase/phase values should be set by the MMC driver, but
+ * there is currently no way to do this with the clk API
+ */
+ if (*fout <= 400000) {
+ parent_idx = CLK_SRC_SEL_OSC24M;
+ ophase = 0;
+ phase = 0;
+ n = 2;
+ } else if (*fout <= 25000000) {
+ parent_idx = CLK_SRC_SEL_PLL6;
+ ophase = 0;
+ phase = 5;
+ n = 2;
+ } else if (*fout <= 50000000) {
+ parent_idx = CLK_SRC_SEL_PLL6;
+ ophase = 3;
+ phase = 5;
+ n = 0;
+ } else
+ return (ERANGE);
+
+ /* Switch parent clock, if necessary */
+ if (parent_idx != clknode_get_parent_idx(clk)) {
+ error = clknode_set_parent_by_idx(clk, parent_idx);
+ if (error != 0)
+ return (error);
+
+ /* Fetch new input frequency */
+ error = clknode_get_freq(clknode_get_parent(clk), &fin);
+ if (error != 0)
+ return (error);
+ }
+
+ m = ((fin / (1 << n)) / *fout) - 1;
+
+ DEVICE_LOCK(sc);
+ MODCLK_READ(sc, &val);
+ val &= ~(CLK_RATIO_N | CLK_RATIO_M | CLK_PHASE_CTR |
+ OUTPUT_CLK_PHASE_CTR);
+ val |= (n << CLK_RATIO_N_SHIFT);
+ val |= (m << CLK_RATIO_M_SHIFT);
+ val |= (phase << CLK_PHASE_CTR_SHIFT);
+ val |= (ophase << OUTPUT_CLK_PHASE_CTR_SHIFT);
+ MODCLK_WRITE(sc, val);
+ DEVICE_UNLOCK(sc);
+
+ *fout = fin / (1 << n) / (m + 1);
+ *stop = 1;
+
+ return (0);
+}
+
+static clknode_method_t aw_mmcclk_clknode_methods[] = {
+ /* Device interface */
+ CLKNODEMETHOD(clknode_init, aw_mmcclk_init),
+ CLKNODEMETHOD(clknode_set_gate, aw_mmcclk_set_gate),
+ CLKNODEMETHOD(clknode_set_mux, aw_mmcclk_set_mux),
+ CLKNODEMETHOD(clknode_recalc_freq, aw_mmcclk_recalc_freq),
+ CLKNODEMETHOD(clknode_set_freq, aw_mmcclk_set_freq),
+ CLKNODEMETHOD_END
+};
+DEFINE_CLASS_1(aw_mmcclk_clknode, aw_mmcclk_clknode_class,
+ aw_mmcclk_clknode_methods, sizeof(struct aw_mmcclk_sc), clknode_class);
+
+static int
+aw_mmcclk_probe(device_t dev)
+{
+ if (!ofw_bus_status_okay(dev))
+ return (ENXIO);
+
+ if (ofw_bus_search_compatible(dev, compat_data)->ocd_data == 0)
+ return (ENXIO);
+
+ device_set_desc(dev, "Allwinner MMC Clock");
+ return (BUS_PROBE_DEFAULT);
+}
+
+static int
+aw_mmcclk_attach(device_t dev)
+{
+ struct clknode_init_def def;
+ struct aw_mmcclk_sc *sc;
+ struct clkdom *clkdom;
+ struct clknode *clk;
+ const char **names;
+ uint32_t *indices;
+ clk_t clk_parent;
+ bus_addr_t paddr;
+ bus_size_t psize;
+ phandle_t node;
+ int error, nout, ncells, i;
+
+ node = ofw_bus_get_node(dev);
+
+ if (ofw_reg_to_paddr(node, 0, &paddr, &psize, NULL) != 0) {
+ device_printf(dev, "cannot parse 'reg' property\n");
+ return (ENXIO);
+ }
+
+ error = ofw_bus_parse_xref_list_get_length(node, "clocks",
+ "#clock-cells", &ncells);
+ if (error != 0 || ncells == 0) {
+ device_printf(dev, "couldn't find parent clocks\n");
+ return (ENXIO);
+ }
+
+ clkdom = clkdom_create(dev);
+
+ nout = clk_parse_ofw_out_names(dev, node, &names, &indices);
+ if (nout == 0) {
+ device_printf(dev, "no output clocks found\n");
+ error = ENXIO;
+ goto fail;
+ }
+
+ memset(&def, 0, sizeof(def));
+ def.name = names[0];
+ def.id = 0;
+ def.parent_names = malloc(sizeof(char *) * ncells, M_OFWPROP, M_WAITOK);
+ for (i = 0; i < ncells; i++) {
+ error = clk_get_by_ofw_index(dev, i, &clk_parent);
+ if (error != 0) {
+ device_printf(dev, "cannot get clock %d\n", i);
+ goto fail;
+ }
+ def.parent_names[i] = clk_get_name(clk_parent);
+ clk_release(clk_parent);
+ }
+ def.parent_cnt = ncells;
+ def.flags = CLK_NODE_GLITCH_FREE;
+
+ clk = clknode_create(clkdom, &aw_mmcclk_clknode_class, &def);
+ if (clk == NULL) {
+ device_printf(dev, "cannot create clknode\n");
+ error = ENXIO;
+ goto fail;
+ }
+
+ sc = clknode_get_softc(clk);
+ sc->reg = paddr;
+ sc->clkdev = device_get_parent(dev);
+
+ clknode_register(clkdom, clk);
+
+ if (clkdom_finit(clkdom) != 0) {
+ device_printf(dev, "cannot finalize clkdom initialization\n");
+ error = ENXIO;
+ goto fail;
+ }
+
+ if (bootverbose)
+ clkdom_dump(clkdom);
+
+ return (0);
+
+fail:
+ return (error);
+}
+
+static device_method_t aw_mmcclk_methods[] = {
+ /* Device interface */
+ DEVMETHOD(device_probe, aw_mmcclk_probe),
+ DEVMETHOD(device_attach, aw_mmcclk_attach),
+
+ DEVMETHOD_END
+};
+
+static driver_t aw_mmcclk_driver = {
+ "aw_mmcclk",
+ aw_mmcclk_methods,
+ 0
+};
+
+static devclass_t aw_mmcclk_devclass;
+
+EARLY_DRIVER_MODULE(aw_mmcclk, simplebus, aw_mmcclk_driver,
+ aw_mmcclk_devclass, 0, 0, BUS_PASS_BUS + BUS_PASS_ORDER_MIDDLE);
diff --git a/sys/arm/allwinner/clk/aw_modclk.c b/sys/arm/allwinner/clk/aw_modclk.c
new file mode 100644
index 0000000..f4755ea
--- /dev/null
+++ b/sys/arm/allwinner/clk/aw_modclk.c
@@ -0,0 +1,318 @@
+/*-
+ * Copyright (c) 2016 Jared McNeill <jmcneill@invisible.ca>
+ * 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 ``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.
+ *
+ * $FreeBSD$
+ */
+
+/*
+ * Allwinner module clocks
+ */
+
+#include <sys/cdefs.h>
+__FBSDID("$FreeBSD$");
+
+#include <sys/param.h>
+#include <sys/systm.h>
+#include <sys/bus.h>
+#include <sys/rman.h>
+#include <sys/kernel.h>
+#include <sys/module.h>
+#include <machine/bus.h>
+
+#include <dev/ofw/ofw_bus.h>
+#include <dev/ofw/ofw_bus_subr.h>
+#include <dev/ofw/ofw_subr.h>
+
+#include <dev/extres/clk/clk_mux.h>
+#include <dev/extres/clk/clk_gate.h>
+
+#include "clkdev_if.h"
+
+#define SCLK_GATING (1 << 31)
+#define CLK_SRC_SEL (0x3 << 24)
+#define CLK_SRC_SEL_SHIFT 24
+#define CLK_SRC_SEL_MAX 0x3
+#define CLK_RATIO_N (0x3 << 16)
+#define CLK_RATIO_N_SHIFT 16
+#define CLK_RATIO_N_MAX 0x3
+#define CLK_RATIO_M (0x1f << 0)
+#define CLK_RATIO_M_SHIFT 0
+#define CLK_RATIO_M_MAX 0x1f
+
+static struct ofw_compat_data compat_data[] = {
+ { "allwinner,sun4i-a10-mod0-clk", 1 },
+ { NULL, 0 }
+};
+
+struct aw_modclk_sc {
+ device_t clkdev;
+ bus_addr_t reg;
+};
+
+#define MODCLK_READ(sc, val) CLKDEV_READ_4((sc)->clkdev, (sc)->reg, (val))
+#define MODCLK_WRITE(sc, val) CLKDEV_WRITE_4((sc)->clkdev, (sc)->reg, (val))
+#define DEVICE_LOCK(sc) CLKDEV_DEVICE_LOCK((sc)->clkdev)
+#define DEVICE_UNLOCK(sc) CLKDEV_DEVICE_UNLOCK((sc)->clkdev)
+
+static int
+aw_modclk_init(struct clknode *clk, device_t dev)
+{
+ struct aw_modclk_sc *sc;
+ uint32_t val, index;
+
+ sc = clknode_get_softc(clk);
+
+ DEVICE_LOCK(sc);
+ MODCLK_READ(sc, &val);
+ DEVICE_UNLOCK(sc);
+
+ index = (val & CLK_SRC_SEL) >> CLK_SRC_SEL_SHIFT;
+
+ clknode_init_parent_idx(clk, index);
+ return (0);
+}
+
+static int
+aw_modclk_set_mux(struct clknode *clk, int index)
+{
+ struct aw_modclk_sc *sc;
+ uint32_t val;
+
+ sc = clknode_get_softc(clk);
+
+ if (index < 0 || index > CLK_SRC_SEL_MAX)
+ return (ERANGE);
+
+ DEVICE_LOCK(sc);
+ MODCLK_READ(sc, &val);
+ val &= ~CLK_SRC_SEL;
+ val |= (index << CLK_SRC_SEL_SHIFT);
+ MODCLK_WRITE(sc, val);
+ DEVICE_UNLOCK(sc);
+
+ return (0);
+}
+
+static int
+aw_modclk_set_gate(struct clknode *clk, bool enable)
+{
+ struct aw_modclk_sc *sc;
+ uint32_t val;
+
+ sc = clknode_get_softc(clk);
+
+ DEVICE_LOCK(sc);
+ MODCLK_READ(sc, &val);
+ if (enable)
+ val |= SCLK_GATING;
+ else
+ val &= ~SCLK_GATING;
+ MODCLK_WRITE(sc, val);
+ DEVICE_UNLOCK(sc);
+
+ return (0);
+}
+
+static int
+aw_modclk_recalc_freq(struct clknode *clk, uint64_t *freq)
+{
+ struct aw_modclk_sc *sc;
+ uint32_t val, m, n;
+
+ sc = clknode_get_softc(clk);
+
+ DEVICE_LOCK(sc);
+ MODCLK_READ(sc, &val);
+ DEVICE_UNLOCK(sc);
+
+ n = 1 << ((val & CLK_RATIO_N) >> CLK_RATIO_N_SHIFT);
+ m = ((val & CLK_RATIO_M) >> CLK_RATIO_M_SHIFT) + 1;
+
+ *freq = *freq / n / m;
+
+ return (0);
+}
+
+static int
+aw_modclk_set_freq(struct clknode *clk, uint64_t fin, uint64_t *fout,
+ int flags, int *stop)
+{
+ struct aw_modclk_sc *sc;
+ uint32_t val, m, n, best_m, best_n;
+ uint64_t cur_freq;
+ int64_t best_diff, cur_diff;
+
+ sc = clknode_get_softc(clk);
+ best_n = best_m = 0;
+ best_diff = (int64_t)*fout;
+
+ for (n = 0; n <= CLK_RATIO_N_MAX; n++)
+ for (m = 0; m <= CLK_RATIO_M_MAX; m++) {
+ cur_freq = fin / (1 << n) / (m + 1);
+ cur_diff = (int64_t)*fout - cur_freq;
+ if (cur_diff >= 0 && cur_diff < best_diff) {
+ best_diff = cur_diff;
+ best_m = m;
+ best_n = n;
+ }
+ }
+
+ if (best_diff == (int64_t)*fout)
+ return (ERANGE);
+
+ DEVICE_LOCK(sc);
+ MODCLK_READ(sc, &val);
+ val &= ~(CLK_RATIO_N | CLK_RATIO_M);
+ val |= (best_n << CLK_RATIO_N_SHIFT);
+ val |= (best_m << CLK_RATIO_M_SHIFT);
+ MODCLK_WRITE(sc, val);
+ DEVICE_UNLOCK(sc);
+
+ *fout = fin / (1 << best_n) / (best_m + 1);
+ *stop = 1;
+
+ return (0);
+}
+
+static clknode_method_t aw_modclk_clknode_methods[] = {
+ /* Device interface */
+ CLKNODEMETHOD(clknode_init, aw_modclk_init),
+ CLKNODEMETHOD(clknode_set_gate, aw_modclk_set_gate),
+ CLKNODEMETHOD(clknode_set_mux, aw_modclk_set_mux),
+ CLKNODEMETHOD(clknode_recalc_freq, aw_modclk_recalc_freq),
+ CLKNODEMETHOD(clknode_set_freq, aw_modclk_set_freq),
+ CLKNODEMETHOD_END
+};
+DEFINE_CLASS_1(aw_modclk_clknode, aw_modclk_clknode_class,
+ aw_modclk_clknode_methods, sizeof(struct aw_modclk_sc), clknode_class);
+
+static int
+aw_modclk_probe(device_t dev)
+{
+ if (!ofw_bus_status_okay(dev))
+ return (ENXIO);
+
+ if (ofw_bus_search_compatible(dev, compat_data)->ocd_data == 0)
+ return (ENXIO);
+
+ device_set_desc(dev, "Allwinner Module Clock");
+ return (BUS_PROBE_DEFAULT);
+}
+
+static int
+aw_modclk_attach(device_t dev)
+{
+ struct clknode_init_def def;
+ struct aw_modclk_sc *sc;
+ struct clkdom *clkdom;
+ struct clknode *clk;
+ clk_t clk_parent;
+ bus_addr_t paddr;
+ bus_size_t psize;
+ phandle_t node;
+ int error, ncells, i;
+
+ node = ofw_bus_get_node(dev);
+
+ if (ofw_reg_to_paddr(node, 0, &paddr, &psize, NULL) != 0) {
+ device_printf(dev, "cannot parse 'reg' property\n");
+ return (ENXIO);
+ }
+
+ error = ofw_bus_parse_xref_list_get_length(node, "clocks",
+ "#clock-cells", &ncells);
+ if (error != 0) {
+ device_printf(dev, "cannot get clock count\n");
+ return (error);
+ }
+
+ clkdom = clkdom_create(dev);
+
+ memset(&def, 0, sizeof(def));
+ error = clk_parse_ofw_clk_name(dev, node, &def.name);
+ if (error != 0) {
+ device_printf(dev, "cannot parse clock name\n");
+ error = ENXIO;
+ goto fail;
+ }
+ def.id = 1;
+ def.parent_names = malloc(sizeof(char *) * ncells, M_OFWPROP, M_WAITOK);
+ for (i = 0; i < ncells; i++) {
+ error = clk_get_by_ofw_index(dev, i, &clk_parent);
+ if (error != 0) {
+ device_printf(dev, "cannot get clock %d\n", i);
+ goto fail;
+ }
+ def.parent_names[i] = clk_get_name(clk_parent);
+ clk_release(clk_parent);
+ }
+ def.parent_cnt = ncells;
+
+ clk = clknode_create(clkdom, &aw_modclk_clknode_class, &def);
+ if (clk == NULL) {
+ device_printf(dev, "cannot create clknode\n");
+ error = ENXIO;
+ goto fail;
+ }
+
+ sc = clknode_get_softc(clk);
+ sc->reg = paddr;
+ sc->clkdev = device_get_parent(dev);
+
+ clknode_register(clkdom, clk);
+
+ if (clkdom_finit(clkdom) != 0) {
+ device_printf(dev, "cannot finalize clkdom initialization\n");
+ error = ENXIO;
+ goto fail;
+ }
+
+ if (bootverbose)
+ clkdom_dump(clkdom);
+
+ return (0);
+
+fail:
+ return (error);
+}
+
+static device_method_t aw_modclk_methods[] = {
+ /* Device interface */
+ DEVMETHOD(device_probe, aw_modclk_probe),
+ DEVMETHOD(device_attach, aw_modclk_attach),
+
+ DEVMETHOD_END
+};
+
+static driver_t aw_modclk_driver = {
+ "aw_modclk",
+ aw_modclk_methods,
+ 0
+};
+
+static devclass_t aw_modclk_devclass;
+
+EARLY_DRIVER_MODULE(aw_modclk, simplebus, aw_modclk_driver,
+ aw_modclk_devclass, 0, 0, BUS_PASS_BUS + BUS_PASS_ORDER_MIDDLE);
diff --git a/sys/arm/allwinner/clk/aw_oscclk.c b/sys/arm/allwinner/clk/aw_oscclk.c
new file mode 100644
index 0000000..313111f
--- /dev/null
+++ b/sys/arm/allwinner/clk/aw_oscclk.c
@@ -0,0 +1,132 @@
+/*-
+ * Copyright (c) 2016 Jared McNeill <jmcneill@invisible.ca>
+ * 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 ``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.
+ *
+ * $FreeBSD$
+ */
+
+/*
+ * Allwinner oscillator clock
+ */
+
+#include <sys/cdefs.h>
+__FBSDID("$FreeBSD$");
+
+#include <sys/param.h>
+#include <sys/systm.h>
+#include <sys/bus.h>
+#include <sys/rman.h>
+#include <sys/kernel.h>
+#include <sys/module.h>
+
+#include <dev/ofw/ofw_bus.h>
+#include <dev/ofw/ofw_bus_subr.h>
+
+#include <dev/extres/clk/clk_fixed.h>
+
+static int
+aw_oscclk_probe(device_t dev)
+{
+ if (!ofw_bus_status_okay(dev))
+ return (ENXIO);
+
+ if (!ofw_bus_is_compatible(dev, "allwinner,sun4i-a10-osc-clk"))
+ return (ENXIO);
+
+ device_set_desc(dev, "Allwinner Oscillator Clock");
+ return (BUS_PROBE_DEFAULT);
+}
+
+static int
+aw_oscclk_attach(device_t dev)
+{
+ struct clk_fixed_def def;
+ struct clkdom *clkdom;
+ phandle_t node;
+ uint32_t freq;
+ int error;
+
+ node = ofw_bus_get_node(dev);
+
+ if (OF_getencprop(node, "clock-frequency", &freq, sizeof(freq)) <= 0) {
+ device_printf(dev, "missing clock-frequency property\n");
+ error = ENXIO;
+ goto fail;
+ }
+
+ clkdom = clkdom_create(dev);
+
+ memset(&def, 0, sizeof(def));
+ def.clkdef.id = 1;
+ def.freq = freq;
+ error = clk_parse_ofw_clk_name(dev, node, &def.clkdef.name);
+ if (error != 0) {
+ device_printf(dev, "cannot parse clock name\n");
+ error = ENXIO;
+ goto fail;
+ }
+
+ error = clknode_fixed_register(clkdom, &def);
+ if (error != 0) {
+ device_printf(dev, "cannot register fixed clock\n");
+ error = ENXIO;
+ goto fail;
+ }
+
+ if (clkdom_finit(clkdom) != 0) {
+ device_printf(dev, "cannot finalize clkdom initialization\n");
+ error = ENXIO;
+ goto fail;
+ }
+
+ if (bootverbose)
+ clkdom_dump(clkdom);
+
+ free(__DECONST(char *, def.clkdef.name), M_OFWPROP);
+
+ return (0);
+
+fail:
+ free(__DECONST(char *, def.clkdef.name), M_OFWPROP);
+ return (error);
+}
+
+static device_method_t aw_oscclk_methods[] = {
+ /* Device interface */
+ DEVMETHOD(device_probe, aw_oscclk_probe),
+ DEVMETHOD(device_attach, aw_oscclk_attach),
+
+ DEVMETHOD_END
+};
+
+static driver_t aw_oscclk_driver = {
+ "aw_oscclk",
+ aw_oscclk_methods,
+ 0,
+};
+
+static devclass_t aw_oscclk_devclass;
+
+EARLY_DRIVER_MODULE(aw_oscclk, simplebus, aw_oscclk_driver,
+ aw_oscclk_devclass, 0, 0, BUS_PASS_BUS + BUS_PASS_ORDER_MIDDLE);
diff --git a/sys/arm/allwinner/clk/aw_pll.c b/sys/arm/allwinner/clk/aw_pll.c
new file mode 100644
index 0000000..2e67646
--- /dev/null
+++ b/sys/arm/allwinner/clk/aw_pll.c
@@ -0,0 +1,757 @@
+/*-
+ * Copyright (c) 2016 Jared McNeill <jmcneill@invisible.ca>
+ * 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 ``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.
+ *
+ * $FreeBSD$
+ */
+
+/*
+ * Allwinner PLL clock
+ */
+
+#include <sys/cdefs.h>
+__FBSDID("$FreeBSD$");
+
+#include <sys/param.h>
+#include <sys/systm.h>
+#include <sys/bus.h>
+#include <sys/rman.h>
+#include <sys/kernel.h>
+#include <sys/module.h>
+#include <machine/bus.h>
+
+#include <dev/ofw/ofw_bus.h>
+#include <dev/ofw/ofw_bus_subr.h>
+#include <dev/ofw/ofw_subr.h>
+
+#include <dev/extres/clk/clk.h>
+
+#include <dt-bindings/clock/sun4i-a10-pll2.h>
+
+#include "clkdev_if.h"
+
+#define AW_PLL_ENABLE (1 << 31)
+
+#define A10_PLL1_OUT_EXT_DIVP (0x3 << 16)
+#define A10_PLL1_OUT_EXT_DIVP_SHIFT 16
+#define A10_PLL1_FACTOR_N (0x1f << 8)
+#define A10_PLL1_FACTOR_N_SHIFT 8
+#define A10_PLL1_FACTOR_K (0x3 << 4)
+#define A10_PLL1_FACTOR_K_SHIFT 4
+#define A10_PLL1_FACTOR_M (0x3 << 0)
+#define A10_PLL1_FACTOR_M_SHIFT 0
+
+#define A10_PLL2_POST_DIV (0xf << 26)
+#define A10_PLL2_POST_DIV_SHIFT 26
+#define A10_PLL2_FACTOR_N (0x7f << 8)
+#define A10_PLL2_FACTOR_N_SHIFT 8
+#define A10_PLL2_PRE_DIV (0x1f << 0)
+#define A10_PLL2_PRE_DIV_SHIFT 0
+
+#define A10_PLL3_MODE_SEL (0x1 << 15)
+#define A10_PLL3_MODE_SEL_FRACT (0 << 15)
+#define A10_PLL3_MODE_SEL_INT (1 << 15)
+#define A10_PLL3_FUNC_SET (0x1 << 14)
+#define A10_PLL3_FUNC_SET_270MHZ (0 << 14)
+#define A10_PLL3_FUNC_SET_297MHZ (1 << 14)
+#define A10_PLL3_FACTOR_M (0x7f << 0)
+#define A10_PLL3_FACTOR_M_SHIFT 0
+#define A10_PLL3_REF_FREQ 3000000
+
+#define A10_PLL5_OUT_EXT_DIVP (0x3 << 16)
+#define A10_PLL5_OUT_EXT_DIVP_SHIFT 16
+#define A10_PLL5_FACTOR_N (0x1f << 8)
+#define A10_PLL5_FACTOR_N_SHIFT 8
+#define A10_PLL5_FACTOR_K (0x3 << 4)
+#define A10_PLL5_FACTOR_K_SHIFT 4
+#define A10_PLL5_FACTOR_M1 (0x3 << 2)
+#define A10_PLL5_FACTOR_M1_SHIFT 2
+#define A10_PLL5_FACTOR_M (0x3 << 0)
+#define A10_PLL5_FACTOR_M_SHIFT 0
+
+#define A10_PLL6_BYPASS_EN (1 << 30)
+#define A10_PLL6_SATA_CLK_EN (1 << 14)
+#define A10_PLL6_FACTOR_N (0x1f << 8)
+#define A10_PLL6_FACTOR_N_SHIFT 8
+#define A10_PLL6_FACTOR_K (0x3 << 4)
+#define A10_PLL6_FACTOR_K_SHIFT 4
+#define A10_PLL6_FACTOR_M (0x3 << 0)
+#define A10_PLL6_FACTOR_M_SHIFT 0
+
+#define A10_PLL2_POST_DIV (0xf << 26)
+
+#define A31_PLL1_LOCK (1 << 28)
+#define A31_PLL1_CPU_SIGMA_DELTA_EN (1 << 24)
+#define A31_PLL1_FACTOR_N (0x1f << 8)
+#define A31_PLL1_FACTOR_N_SHIFT 8
+#define A31_PLL1_FACTOR_K (0x3 << 4)
+#define A31_PLL1_FACTOR_K_SHIFT 4
+#define A31_PLL1_FACTOR_M (0x3 << 0)
+#define A31_PLL1_FACTOR_M_SHIFT 0
+
+#define A31_PLL6_LOCK (1 << 28)
+#define A31_PLL6_BYPASS_EN (1 << 25)
+#define A31_PLL6_CLK_OUT_EN (1 << 24)
+#define A31_PLL6_24M_OUT_EN (1 << 18)
+#define A31_PLL6_24M_POST_DIV (0x3 << 16)
+#define A31_PLL6_24M_POST_DIV_SHIFT 16
+#define A31_PLL6_FACTOR_N (0x1f << 8)
+#define A31_PLL6_FACTOR_N_SHIFT 8
+#define A31_PLL6_FACTOR_K (0x3 << 4)
+#define A31_PLL6_FACTOR_K_SHIFT 4
+#define A31_PLL6_DEFAULT_N 0x18
+#define A31_PLL6_DEFAULT_K 0x1
+#define A31_PLL6_TIMEOUT 10
+
+#define CLKID_A10_PLL3_1X 0
+#define CLKID_A10_PLL3_2X 1
+
+#define CLKID_A10_PLL5_DDR 0
+#define CLKID_A10_PLL5_OTHER 1
+
+#define CLKID_A10_PLL6_SATA 0
+#define CLKID_A10_PLL6_OTHER 1
+#define CLKID_A10_PLL6 2
+#define CLKID_A10_PLL6_DIV_4 3
+
+#define CLKID_A31_PLL6 0
+#define CLKID_A31_PLL6_X2 1
+
+enum aw_pll_type {
+ AWPLL_A10_PLL1 = 1,
+ AWPLL_A10_PLL2,
+ AWPLL_A10_PLL3,
+ AWPLL_A10_PLL5,
+ AWPLL_A10_PLL6,
+ AWPLL_A31_PLL1,
+ AWPLL_A31_PLL6,
+};
+
+struct aw_pll_sc {
+ enum aw_pll_type type;
+ device_t clkdev;
+ bus_addr_t reg;
+ int id;
+};
+
+struct aw_pll_funcs {
+ int (*recalc)(struct aw_pll_sc *, uint64_t *);
+ int (*set_freq)(struct aw_pll_sc *, uint64_t, uint64_t *, int);
+ int (*init)(device_t, bus_addr_t, struct clknode_init_def *);
+};
+
+#define PLL_READ(sc, val) CLKDEV_READ_4((sc)->clkdev, (sc)->reg, (val))
+#define PLL_WRITE(sc, val) CLKDEV_WRITE_4((sc)->clkdev, (sc)->reg, (val))
+#define DEVICE_LOCK(sc) CLKDEV_DEVICE_LOCK((sc)->clkdev)
+#define DEVICE_UNLOCK(sc) CLKDEV_DEVICE_UNLOCK((sc)->clkdev)
+
+static int
+a10_pll1_recalc(struct aw_pll_sc *sc, uint64_t *freq)
+{
+ uint32_t val, m, n, k, p;
+
+ DEVICE_LOCK(sc);
+ PLL_READ(sc, &val);
+ DEVICE_UNLOCK(sc);
+
+ p = 1 << ((val & A10_PLL1_OUT_EXT_DIVP) >> A10_PLL1_OUT_EXT_DIVP_SHIFT);
+ m = ((val & A10_PLL1_FACTOR_M) >> A10_PLL1_FACTOR_M_SHIFT) + 1;
+ k = ((val & A10_PLL1_FACTOR_K) >> A10_PLL1_FACTOR_K_SHIFT) + 1;
+ n = (val & A10_PLL1_FACTOR_N) >> A10_PLL1_FACTOR_N_SHIFT;
+ if (n == 0)
+ n = 1;
+
+ *freq = (*freq * n * k) / (m * p);
+
+ return (0);
+}
+
+static int
+a10_pll2_recalc(struct aw_pll_sc *sc, uint64_t *freq)
+{
+ uint32_t val, post_div, n, pre_div;
+
+ DEVICE_LOCK(sc);
+ PLL_READ(sc, &val);
+ DEVICE_UNLOCK(sc);
+
+ post_div = (val & A10_PLL2_POST_DIV) >> A10_PLL2_POST_DIV_SHIFT;
+ if (post_div == 0)
+ post_div = 1;
+ n = (val & A10_PLL2_FACTOR_N) >> A10_PLL2_FACTOR_N_SHIFT;
+ if (n == 0)
+ n = 1;
+ pre_div = (val & A10_PLL2_PRE_DIV) >> A10_PLL2_PRE_DIV_SHIFT;
+ if (pre_div == 0)
+ pre_div = 1;
+
+ switch (sc->id) {
+ case SUN4I_A10_PLL2_1X:
+ *freq = (*freq * 2 * n) / pre_div / post_div / 2;
+ break;
+ case SUN4I_A10_PLL2_2X:
+ *freq = (*freq * 2 * n) / pre_div / 4;
+ break;
+ case SUN4I_A10_PLL2_4X:
+ *freq = (*freq * 2 * n) / pre_div / 2;
+ break;
+ case SUN4I_A10_PLL2_8X:
+ *freq = (*freq * 2 * n) / pre_div;
+ break;
+ default:
+ return (EINVAL);
+ }
+
+ return (0);
+}
+
+static int
+a10_pll2_set_freq(struct aw_pll_sc *sc, uint64_t fin, uint64_t *fout,
+ int flags)
+{
+ uint32_t val, post_div, n, pre_div;
+
+ if (sc->id != SUN4I_A10_PLL2_1X)
+ return (ENXIO);
+
+ /*
+ * Audio Codec needs PLL2-1X to be either 24576000 or 22579200.
+ *
+ * PLL2-1X output frequency is (48MHz * n) / pre_div / post_div / 2.
+ * To get as close as possible to the desired rate, we use a
+ * pre-divider of 21 and a post-divider of 4. With these values,
+ * a multiplier of 86 or 79 gets us close to the target rates.
+ */
+ if (*fout != 24576000 && *fout != 22579200)
+ return (EINVAL);
+
+ pre_div = 21;
+ post_div = 4;
+ n = (*fout * pre_div * post_div * 2) / (2 * fin);
+
+ DEVICE_LOCK(sc);
+ PLL_READ(sc, &val);
+ val &= ~(A10_PLL2_POST_DIV | A10_PLL2_FACTOR_N | A10_PLL2_PRE_DIV);
+ val |= (post_div << A10_PLL2_POST_DIV_SHIFT);
+ val |= (n << A10_PLL2_FACTOR_N_SHIFT);
+ val |= (pre_div << A10_PLL2_PRE_DIV_SHIFT);
+ PLL_WRITE(sc, val);
+ DEVICE_UNLOCK(sc);
+
+ return (0);
+}
+
+static int
+a10_pll3_recalc(struct aw_pll_sc *sc, uint64_t *freq)
+{
+ uint32_t val, m;
+
+ DEVICE_LOCK(sc);
+ PLL_READ(sc, &val);
+ DEVICE_UNLOCK(sc);
+
+ if ((val & A10_PLL3_MODE_SEL) == A10_PLL3_MODE_SEL_INT) {
+ /* In integer mode, output is 3MHz * m */
+ m = (val & A10_PLL3_FACTOR_M) >> A10_PLL3_FACTOR_M_SHIFT;
+ *freq = A10_PLL3_REF_FREQ * m;
+ } else {
+ /* In fractional mode, output is either 270MHz or 297MHz */
+ if ((val & A10_PLL3_FUNC_SET) == A10_PLL3_FUNC_SET_270MHZ)
+ *freq = 270000000;
+ else
+ *freq = 297000000;
+ }
+
+ if (sc->id == CLKID_A10_PLL3_2X)
+ *freq *= 2;
+
+ return (0);
+}
+
+static int
+a10_pll3_set_freq(struct aw_pll_sc *sc, uint64_t fin, uint64_t *fout,
+ int flags)
+{
+ uint32_t val, m, mode, func;
+
+ m = *fout / A10_PLL3_REF_FREQ;
+ if (sc->id == CLKID_A10_PLL3_2X)
+ m /= 2;
+
+ mode = A10_PLL3_MODE_SEL_INT;
+ func = 0;
+ *fout = m * A10_PLL3_REF_FREQ;
+ if (sc->id == CLKID_A10_PLL3_2X)
+ *fout *= 2;
+
+ DEVICE_LOCK(sc);
+ PLL_READ(sc, &val);
+ val &= ~(A10_PLL3_MODE_SEL | A10_PLL3_FUNC_SET | A10_PLL3_FACTOR_M);
+ val |= mode;
+ val |= func;
+ val |= (m << A10_PLL3_FACTOR_M_SHIFT);
+ PLL_WRITE(sc, val);
+ DEVICE_UNLOCK(sc);
+
+ return (0);
+}
+
+static int
+a10_pll3_init(device_t dev, bus_addr_t reg, struct clknode_init_def *def)
+{
+ uint32_t val;
+
+ /* Allow changing PLL frequency while enabled */
+ def->flags = CLK_NODE_GLITCH_FREE;
+
+ /* Set PLL to 297MHz */
+ CLKDEV_DEVICE_LOCK(dev);
+ CLKDEV_READ_4(dev, reg, &val);
+ val &= ~(A10_PLL3_MODE_SEL | A10_PLL3_FUNC_SET | A10_PLL3_FACTOR_M);
+ val |= A10_PLL3_MODE_SEL_FRACT;
+ val |= A10_PLL3_FUNC_SET_297MHZ;
+ CLKDEV_WRITE_4(dev, reg, val);
+ CLKDEV_DEVICE_UNLOCK(dev);
+
+ return (0);
+}
+
+static int
+a10_pll5_recalc(struct aw_pll_sc *sc, uint64_t *freq)
+{
+ uint32_t val, m, n, k, p;
+
+ DEVICE_LOCK(sc);
+ PLL_READ(sc, &val);
+ DEVICE_UNLOCK(sc);
+
+ p = 1 << ((val & A10_PLL5_OUT_EXT_DIVP) >> A10_PLL5_OUT_EXT_DIVP_SHIFT);
+ m = ((val & A10_PLL5_FACTOR_M) >> A10_PLL5_FACTOR_M_SHIFT) + 1;
+ k = ((val & A10_PLL5_FACTOR_K) >> A10_PLL5_FACTOR_K_SHIFT) + 1;
+ n = (val & A10_PLL5_FACTOR_N) >> A10_PLL5_FACTOR_N_SHIFT;
+ if (n == 0)
+ return (ENXIO);
+
+ switch (sc->id) {
+ case CLKID_A10_PLL5_DDR:
+ *freq = (*freq * n * k) / m;
+ break;
+ case CLKID_A10_PLL5_OTHER:
+ *freq = (*freq * n * k) / p;
+ break;
+ default:
+ return (ENXIO);
+ }
+
+ return (0);
+}
+
+static int
+a10_pll6_init(device_t dev, bus_addr_t reg, struct clknode_init_def *def)
+{
+ uint32_t val, m, n, k;
+
+ /*
+ * SATA needs PLL6 to be a 100MHz clock.
+ *
+ * The SATA output frequency is (24MHz * n * k) / m / 6.
+ * To get to 100MHz, k & m must be equal and n must be 25.
+ */
+ m = k = 0;
+ n = 25;
+
+ CLKDEV_DEVICE_LOCK(dev);
+ CLKDEV_READ_4(dev, reg, &val);
+ val &= ~(A10_PLL6_FACTOR_N | A10_PLL6_FACTOR_K | A10_PLL6_FACTOR_M);
+ val &= ~A10_PLL6_BYPASS_EN;
+ val |= A10_PLL6_SATA_CLK_EN;
+ val |= (n << A10_PLL6_FACTOR_N_SHIFT);
+ val |= (k << A10_PLL6_FACTOR_K_SHIFT);
+ val |= (m << A10_PLL6_FACTOR_M_SHIFT);
+ CLKDEV_WRITE_4(dev, reg, val);
+ CLKDEV_DEVICE_UNLOCK(dev);
+
+ return (0);
+}
+
+static int
+a10_pll6_recalc(struct aw_pll_sc *sc, uint64_t *freq)
+{
+ uint32_t val, m, k, n;
+
+ DEVICE_LOCK(sc);
+ PLL_READ(sc, &val);
+ DEVICE_UNLOCK(sc);
+
+ m = ((val & A10_PLL6_FACTOR_M) >> A10_PLL6_FACTOR_M_SHIFT) + 1;
+ k = ((val & A10_PLL6_FACTOR_K) >> A10_PLL6_FACTOR_K_SHIFT) + 1;
+ n = (val & A10_PLL6_FACTOR_N) >> A10_PLL6_FACTOR_N_SHIFT;
+ if (n == 0)
+ return (ENXIO);
+
+ switch (sc->id) {
+ case CLKID_A10_PLL6_SATA:
+ *freq = (*freq * n * k) / m / 6;
+ break;
+ case CLKID_A10_PLL6_OTHER:
+ *freq = (*freq * n * k) / 2;
+ break;
+ case CLKID_A10_PLL6:
+ *freq = (*freq * n * k);
+ break;
+ case CLKID_A10_PLL6_DIV_4:
+ *freq = (*freq * n * k) / 4;
+ break;
+ default:
+ return (ENXIO);
+ }
+
+ return (0);
+}
+
+static int
+a10_pll6_set_freq(struct aw_pll_sc *sc, uint64_t fin, uint64_t *fout,
+ int flags)
+{
+ if (sc->id != CLKID_A10_PLL6_SATA)
+ return (ENXIO);
+
+ /* PLL6 SATA output has been set to 100MHz in a10_pll6_init */
+ if (*fout != 100000000)
+ return (ERANGE);
+
+ return (0);
+}
+
+static int
+a31_pll1_recalc(struct aw_pll_sc *sc, uint64_t *freq)
+{
+ uint32_t val, m, n, k;
+
+ DEVICE_LOCK(sc);
+ PLL_READ(sc, &val);
+ DEVICE_UNLOCK(sc);
+
+ m = ((val & A31_PLL1_FACTOR_M) >> A31_PLL1_FACTOR_M_SHIFT) + 1;
+ k = ((val & A31_PLL1_FACTOR_K) >> A31_PLL1_FACTOR_K_SHIFT) + 1;
+ n = ((val & A31_PLL1_FACTOR_N) >> A31_PLL1_FACTOR_N_SHIFT) + 1;
+
+ *freq = (*freq * n * k) / m;
+
+ return (0);
+}
+
+static int
+a31_pll6_init(device_t dev, bus_addr_t reg, struct clknode_init_def *def)
+{
+ uint32_t val;
+ int retry;
+
+ if (def->id != CLKID_A31_PLL6)
+ return (0);
+
+ /*
+ * The datasheet recommends that PLL6 output should be fixed to
+ * 600MHz.
+ */
+ CLKDEV_DEVICE_LOCK(dev);
+ CLKDEV_READ_4(dev, reg, &val);
+ val &= ~(A31_PLL6_FACTOR_N | A31_PLL6_FACTOR_K | A31_PLL6_BYPASS_EN);
+ val |= (A31_PLL6_DEFAULT_N << A31_PLL6_FACTOR_N_SHIFT);
+ val |= (A31_PLL6_DEFAULT_K << A31_PLL6_FACTOR_K_SHIFT);
+ CLKDEV_WRITE_4(dev, reg, val);
+
+ /* Wait for PLL to become stable */
+ for (retry = A31_PLL6_TIMEOUT; retry > 0; retry--) {
+ CLKDEV_READ_4(dev, reg, &val);
+ if ((val & A31_PLL6_LOCK) == A31_PLL6_LOCK)
+ break;
+ DELAY(1);
+ }
+
+ CLKDEV_DEVICE_UNLOCK(dev);
+
+ if (retry == 0)
+ return (ETIMEDOUT);
+
+ return (0);
+}
+
+static int
+a31_pll6_recalc(struct aw_pll_sc *sc, uint64_t *freq)
+{
+ uint32_t val, k, n;
+
+ DEVICE_LOCK(sc);
+ PLL_READ(sc, &val);
+ DEVICE_UNLOCK(sc);
+
+ k = ((val & A10_PLL6_FACTOR_K) >> A10_PLL6_FACTOR_K_SHIFT) + 1;
+ n = ((val & A10_PLL6_FACTOR_N) >> A10_PLL6_FACTOR_N_SHIFT) + 1;
+
+ switch (sc->id) {
+ case CLKID_A31_PLL6:
+ *freq = (*freq * n * k) / 2;
+ break;
+ case CLKID_A31_PLL6_X2:
+ *freq = *freq * n * k;
+ break;
+ default:
+ return (ENXIO);
+ }
+
+ return (0);
+}
+
+#define PLL(_type, _recalc, _set_freq, _init) \
+ [(_type)] = { \
+ .recalc = (_recalc), \
+ .set_freq = (_set_freq), \
+ .init = (_init) \
+ }
+
+static struct aw_pll_funcs aw_pll_func[] = {
+ PLL(AWPLL_A10_PLL1, a10_pll1_recalc, NULL, NULL),
+ PLL(AWPLL_A10_PLL2, a10_pll2_recalc, a10_pll2_set_freq, NULL),
+ PLL(AWPLL_A10_PLL3, a10_pll3_recalc, a10_pll3_set_freq, a10_pll3_init),
+ PLL(AWPLL_A10_PLL5, a10_pll5_recalc, NULL, NULL),
+ PLL(AWPLL_A10_PLL6, a10_pll6_recalc, a10_pll6_set_freq, a10_pll6_init),
+ PLL(AWPLL_A31_PLL1, a31_pll1_recalc, NULL, NULL),
+ PLL(AWPLL_A31_PLL6, a31_pll6_recalc, NULL, a31_pll6_init),
+};
+
+static struct ofw_compat_data compat_data[] = {
+ { "allwinner,sun4i-a10-pll1-clk", AWPLL_A10_PLL1 },
+ { "allwinner,sun4i-a10-pll2-clk", AWPLL_A10_PLL2 },
+ { "allwinner,sun4i-a10-pll3-clk", AWPLL_A10_PLL3 },
+ { "allwinner,sun4i-a10-pll5-clk", AWPLL_A10_PLL5 },
+ { "allwinner,sun4i-a10-pll6-clk", AWPLL_A10_PLL6 },
+ { "allwinner,sun6i-a31-pll1-clk", AWPLL_A31_PLL1 },
+ { "allwinner,sun6i-a31-pll6-clk", AWPLL_A31_PLL6 },
+ { NULL, 0 }
+};
+
+static int
+aw_pll_init(struct clknode *clk, device_t dev)
+{
+ clknode_init_parent_idx(clk, 0);
+ return (0);
+}
+
+static int
+aw_pll_set_gate(struct clknode *clk, bool enable)
+{
+ struct aw_pll_sc *sc;
+ uint32_t val;
+
+ sc = clknode_get_softc(clk);
+
+ DEVICE_LOCK(sc);
+ PLL_READ(sc, &val);
+ if (enable)
+ val |= AW_PLL_ENABLE;
+ else
+ val &= ~AW_PLL_ENABLE;
+ PLL_WRITE(sc, val);
+ DEVICE_UNLOCK(sc);
+
+ return (0);
+}
+
+static int
+aw_pll_recalc(struct clknode *clk, uint64_t *freq)
+{
+ struct aw_pll_sc *sc;
+
+ sc = clknode_get_softc(clk);
+
+ if (aw_pll_func[sc->type].recalc == NULL)
+ return (ENXIO);
+
+ return (aw_pll_func[sc->type].recalc(sc, freq));
+}
+
+static int
+aw_pll_set_freq(struct clknode *clk, uint64_t fin, uint64_t *fout,
+ int flags, int *stop)
+{
+ struct aw_pll_sc *sc;
+
+ sc = clknode_get_softc(clk);
+
+ *stop = 1;
+
+ if (aw_pll_func[sc->type].set_freq == NULL)
+ return (ENXIO);
+
+ return (aw_pll_func[sc->type].set_freq(sc, fin, fout, flags));
+}
+
+static clknode_method_t aw_pll_clknode_methods[] = {
+ /* Device interface */
+ CLKNODEMETHOD(clknode_init, aw_pll_init),
+ CLKNODEMETHOD(clknode_set_gate, aw_pll_set_gate),
+ CLKNODEMETHOD(clknode_recalc_freq, aw_pll_recalc),
+ CLKNODEMETHOD(clknode_set_freq, aw_pll_set_freq),
+ CLKNODEMETHOD_END
+};
+
+DEFINE_CLASS_1(aw_pll_clknode, aw_pll_clknode_class, aw_pll_clknode_methods,
+ sizeof(struct aw_pll_sc), clknode_class);
+
+static int
+aw_pll_create(device_t dev, bus_addr_t paddr, struct clkdom *clkdom,
+ const char *pclkname, const char *clkname, int index)
+{
+ enum aw_pll_type type;
+ struct clknode_init_def clkdef;
+ struct aw_pll_sc *sc;
+ struct clknode *clk;
+ int error;
+
+ type = ofw_bus_search_compatible(dev, compat_data)->ocd_data;
+
+ memset(&clkdef, 0, sizeof(clkdef));
+ clkdef.id = index;
+ clkdef.name = clkname;
+ if (pclkname != NULL) {
+ clkdef.parent_names = malloc(sizeof(char *), M_OFWPROP,
+ M_WAITOK);
+ clkdef.parent_names[0] = pclkname;
+ clkdef.parent_cnt = 1;
+ } else
+ clkdef.parent_cnt = 0;
+
+ if (aw_pll_func[type].init != NULL) {
+ error = aw_pll_func[type].init(device_get_parent(dev),
+ paddr, &clkdef);
+ if (error != 0) {
+ device_printf(dev, "clock %s init failed\n", clkname);
+ return (error);
+ }
+ }
+
+ clk = clknode_create(clkdom, &aw_pll_clknode_class, &clkdef);
+ if (clk == NULL) {
+ device_printf(dev, "cannot create clock node\n");
+ return (ENXIO);
+ }
+ sc = clknode_get_softc(clk);
+ sc->clkdev = device_get_parent(dev);
+ sc->reg = paddr;
+ sc->type = type;
+ sc->id = clkdef.id;
+
+ clknode_register(clkdom, clk);
+
+ free(__DECONST(char *, clkdef.parent_names), M_OFWPROP);
+
+ return (0);
+}
+
+static int
+aw_pll_probe(device_t dev)
+{
+ if (!ofw_bus_status_okay(dev))
+ return (ENXIO);
+
+ if (ofw_bus_search_compatible(dev, compat_data)->ocd_data == 0)
+ return (ENXIO);
+
+ device_set_desc(dev, "Allwinner PLL Clock");
+ return (BUS_PROBE_DEFAULT);
+}
+
+static int
+aw_pll_attach(device_t dev)
+{
+ struct clkdom *clkdom;
+ const char **names;
+ int index, nout, error;
+ clk_t clk_parent;
+ uint32_t *indices;
+ bus_addr_t paddr;
+ bus_size_t psize;
+ phandle_t node;
+
+ node = ofw_bus_get_node(dev);
+
+ if (ofw_reg_to_paddr(node, 0, &paddr, &psize, NULL) != 0) {
+ device_printf(dev, "couldn't parse 'reg' property\n");
+ return (ENXIO);
+ }
+
+ clkdom = clkdom_create(dev);
+
+ nout = clk_parse_ofw_out_names(dev, node, &names, &indices);
+ if (nout == 0) {
+ device_printf(dev, "no clock outputs found\n");
+ error = ENOENT;
+ goto fail;
+ }
+
+ if (clk_get_by_ofw_index(dev, 0, &clk_parent) != 0)
+ clk_parent = NULL;
+
+ for (index = 0; index < nout; index++) {
+ error = aw_pll_create(dev, paddr, clkdom,
+ clk_parent ? clk_get_name(clk_parent) : NULL,
+ names[index], nout == 1 ? 1 : index);
+ if (error)
+ goto fail;
+ }
+
+ if (clkdom_finit(clkdom) != 0) {
+ device_printf(dev, "cannot finalize clkdom initialization\n");
+ error = ENXIO;
+ goto fail;
+ }
+
+ if (bootverbose)
+ clkdom_dump(clkdom);
+
+ return (0);
+
+fail:
+ return (error);
+}
+
+static device_method_t aw_pll_methods[] = {
+ /* Device interface */
+ DEVMETHOD(device_probe, aw_pll_probe),
+ DEVMETHOD(device_attach, aw_pll_attach),
+
+ DEVMETHOD_END
+};
+
+static driver_t aw_pll_driver = {
+ "aw_pll",
+ aw_pll_methods,
+ 0,
+};
+
+static devclass_t aw_pll_devclass;
+
+EARLY_DRIVER_MODULE(aw_pll, simplebus, aw_pll_driver,
+ aw_pll_devclass, 0, 0, BUS_PASS_BUS + BUS_PASS_ORDER_MIDDLE);
diff --git a/sys/arm/allwinner/clk/aw_usbclk.c b/sys/arm/allwinner/clk/aw_usbclk.c
new file mode 100644
index 0000000..bac9991
--- /dev/null
+++ b/sys/arm/allwinner/clk/aw_usbclk.c
@@ -0,0 +1,246 @@
+/*-
+ * Copyright (c) 2016 Jared McNeill <jmcneill@invisible.ca>
+ * 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 ``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.
+ *
+ * $FreeBSD$
+ */
+
+/*
+ * Allwinner USB clocks
+ */
+
+#include <sys/cdefs.h>
+__FBSDID("$FreeBSD$");
+
+#include <sys/param.h>
+#include <sys/systm.h>
+#include <sys/bus.h>
+#include <sys/rman.h>
+#include <sys/kernel.h>
+#include <sys/module.h>
+#include <machine/bus.h>
+
+#include <dev/ofw/ofw_bus.h>
+#include <dev/ofw/ofw_bus_subr.h>
+#include <dev/ofw/ofw_subr.h>
+
+#include <dev/extres/clk/clk_gate.h>
+#include <dev/extres/hwreset/hwreset.h>
+
+#include "clkdev_if.h"
+#include "hwreset_if.h"
+
+#define A10_SCLK_GATING_USBPHY (1 << 8)
+#define A10_SCLK_GATING_OHCI1 (1 << 7)
+#define A10_SCLK_GATING_OHCI0 (1 << 6)
+
+#define USBPHY2_RST (1 << 2)
+#define USBPHY1_RST (1 << 1)
+#define USBPHY0_RST (1 << 0)
+
+enum aw_usbclk_type {
+ AW_A10_USBCLK = 1,
+ AW_A31_USBCLK,
+};
+
+static struct ofw_compat_data compat_data[] = {
+ { "allwinner,sun4i-a10-usb-clk", AW_A10_USBCLK },
+ { "allwinner,sun6i-a31-usb-clk", AW_A31_USBCLK },
+ { NULL, 0 }
+};
+
+/* Clock indices for A10, as there is no clock-indices property in the DT */
+static uint32_t aw_usbclk_indices_a10[] = { 6, 7, 8 };
+
+struct aw_usbclk_softc {
+ bus_addr_t reg;
+};
+
+static int
+aw_usbclk_hwreset_assert(device_t dev, intptr_t id, bool value)
+{
+ struct aw_usbclk_softc *sc;
+ uint32_t mask;
+ device_t pdev;
+ int error;
+
+ sc = device_get_softc(dev);
+ pdev = device_get_parent(dev);
+
+ mask = USBPHY0_RST << id;
+
+ CLKDEV_DEVICE_LOCK(pdev);
+ error = CLKDEV_MODIFY_4(pdev, sc->reg, mask, value ? 0 : mask);
+ CLKDEV_DEVICE_UNLOCK(pdev);
+
+ return (error);
+}
+
+static int
+aw_usbclk_hwreset_is_asserted(device_t dev, intptr_t id, bool *value)
+{
+ struct aw_usbclk_softc *sc;
+ uint32_t mask, val;
+ device_t pdev;
+ int error;
+
+ sc = device_get_softc(dev);
+ pdev = device_get_parent(dev);
+
+ mask = USBPHY0_RST << id;
+
+ CLKDEV_DEVICE_LOCK(pdev);
+ error = CLKDEV_READ_4(pdev, sc->reg, &val);
+ CLKDEV_DEVICE_UNLOCK(pdev);
+
+ if (error)
+ return (error);
+
+ *value = (val & mask) != 0 ? false : true;
+
+ return (0);
+}
+
+static int
+aw_usbclk_create(device_t dev, bus_addr_t paddr, struct clkdom *clkdom,
+ const char *pclkname, const char *clkname, int index)
+{
+ const char *parent_names[1] = { pclkname };
+ struct clk_gate_def def;
+
+ memset(&def, 0, sizeof(def));
+ def.clkdef.id = index;
+ def.clkdef.name = clkname;
+ def.clkdef.parent_names = parent_names;
+ def.clkdef.parent_cnt = 1;
+ def.offset = paddr;
+ def.shift = index;
+ def.mask = 1;
+ def.on_value = 1;
+ def.off_value = 0;
+
+ return (clknode_gate_register(clkdom, &def));
+}
+
+static int
+aw_usbclk_probe(device_t dev)
+{
+ if (!ofw_bus_status_okay(dev))
+ return (ENXIO);
+
+ if (ofw_bus_search_compatible(dev, compat_data)->ocd_data == 0)
+ return (ENXIO);
+
+ device_set_desc(dev, "Allwinner USB Clocks");
+ return (BUS_PROBE_DEFAULT);
+}
+
+static int
+aw_usbclk_attach(device_t dev)
+{
+ struct aw_usbclk_softc *sc;
+ struct clkdom *clkdom;
+ const char **names;
+ int index, nout, error;
+ enum aw_usbclk_type type;
+ uint32_t *indices;
+ clk_t clk_parent;
+ bus_size_t psize;
+ phandle_t node;
+
+ sc = device_get_softc(dev);
+ node = ofw_bus_get_node(dev);
+ indices = NULL;
+ type = ofw_bus_search_compatible(dev, compat_data)->ocd_data;
+
+ if (ofw_reg_to_paddr(node, 0, &sc->reg, &psize, NULL) != 0) {
+ device_printf(dev, "cannot parse 'reg' property\n");
+ return (ENXIO);
+ }
+
+ clkdom = clkdom_create(dev);
+
+ nout = clk_parse_ofw_out_names(dev, node, &names, &indices);
+ if (nout == 0) {
+ device_printf(dev, "no clock outputs found\n");
+ error = ENOENT;
+ goto fail;
+ }
+
+ if (indices == NULL && type == AW_A10_USBCLK)
+ indices = aw_usbclk_indices_a10;
+
+ error = clk_get_by_ofw_index(dev, 0, &clk_parent);
+ if (error != 0) {
+ device_printf(dev, "cannot parse clock parent\n");
+ return (ENXIO);
+ }
+
+ for (index = 0; index < nout; index++) {
+ error = aw_usbclk_create(dev, sc->reg, clkdom,
+ clk_get_name(clk_parent), names[index],
+ indices != NULL ? indices[index] : index);
+ if (error)
+ goto fail;
+ }
+
+ if (clkdom_finit(clkdom) != 0) {
+ device_printf(dev, "cannot finalize clkdom initialization\n");
+ error = ENXIO;
+ goto fail;
+ }
+
+ if (bootverbose)
+ clkdom_dump(clkdom);
+
+ hwreset_register_ofw_provider(dev);
+
+ return (0);
+
+fail:
+ return (error);
+}
+
+static device_method_t aw_usbclk_methods[] = {
+ /* Device interface */
+ DEVMETHOD(device_probe, aw_usbclk_probe),
+ DEVMETHOD(device_attach, aw_usbclk_attach),
+
+ /* Reset interface */
+ DEVMETHOD(hwreset_assert, aw_usbclk_hwreset_assert),
+ DEVMETHOD(hwreset_is_asserted, aw_usbclk_hwreset_is_asserted),
+
+ DEVMETHOD_END
+};
+
+static driver_t aw_usbclk_driver = {
+ "aw_usbclk",
+ aw_usbclk_methods,
+ sizeof(struct aw_usbclk_softc)
+};
+
+static devclass_t aw_usbclk_devclass;
+
+EARLY_DRIVER_MODULE(aw_usbclk, simplebus, aw_usbclk_driver,
+ aw_usbclk_devclass, 0, 0, BUS_PASS_BUS + BUS_PASS_ORDER_MIDDLE);
diff --git a/sys/arm/allwinner/files.allwinner b/sys/arm/allwinner/files.allwinner
index a13b637..34daf43 100644
--- a/sys/arm/allwinner/files.allwinner
+++ b/sys/arm/allwinner/files.allwinner
@@ -2,7 +2,6 @@
kern/kern_clocksource.c standard
arm/allwinner/a10_ahci.c optional ahci
-arm/allwinner/a10_clk.c standard
arm/allwinner/a10_codec.c optional sound
arm/allwinner/a10_common.c standard
arm/allwinner/a10_dmac.c standard
@@ -25,3 +24,21 @@ arm/allwinner/a10_fb.c optional vt
arm/allwinner/a10_hdmi.c optional hdmi
arm/allwinner/a10_hdmiaudio.c optional hdmi sound
arm/arm/hdmi_if.m optional hdmi
+
+arm/allwinner/aw_reset.c standard
+arm/allwinner/aw_ccu.c standard
+arm/allwinner/clk/aw_ahbclk.c standard
+arm/allwinner/clk/aw_apbclk.c standard
+arm/allwinner/clk/aw_axiclk.c standard
+arm/allwinner/clk/aw_codecclk.c standard
+arm/allwinner/clk/aw_cpuclk.c standard
+arm/allwinner/clk/aw_debeclk.c standard
+arm/allwinner/clk/aw_gate.c standard
+arm/allwinner/clk/aw_gmacclk.c standard
+arm/allwinner/clk/aw_hdmiclk.c standard
+arm/allwinner/clk/aw_lcdclk.c standard
+arm/allwinner/clk/aw_modclk.c standard
+arm/allwinner/clk/aw_mmcclk.c standard
+arm/allwinner/clk/aw_oscclk.c standard
+arm/allwinner/clk/aw_pll.c standard
+arm/allwinner/clk/aw_usbclk.c standard
diff --git a/sys/arm/allwinner/if_emac.c b/sys/arm/allwinner/if_emac.c
index 268f5cb..cb9892f 100644
--- a/sys/arm/allwinner/if_emac.c
+++ b/sys/arm/allwinner/if_emac.c
@@ -78,11 +78,12 @@ __FBSDID("$FreeBSD$");
#include <arm/allwinner/if_emacreg.h>
+#include <dev/extres/clk/clk.h>
+
#include "miibus_if.h"
#include "gpio_if.h"
-#include "a10_clk.h"
#include "a10_sramc.h"
struct emac_softc {
@@ -94,6 +95,7 @@ struct emac_softc {
struct resource *emac_res;
struct resource *emac_irq;
void *emac_intrhand;
+ clk_t emac_clk;
int emac_if_flags;
struct mtx emac_mtx;
struct callout emac_tick_ch;
@@ -110,7 +112,7 @@ static int emac_shutdown(device_t);
static int emac_suspend(device_t);
static int emac_resume(device_t);
-static void emac_sys_setup(void);
+static int emac_sys_setup(struct emac_softc *);
static void emac_reset(struct emac_softc *);
static void emac_init_locked(struct emac_softc *);
@@ -138,14 +140,27 @@ static int sysctl_hw_emac_proc_limit(SYSCTL_HANDLER_ARGS);
#define EMAC_WRITE_REG(sc, reg, val) \
bus_space_write_4(sc->emac_tag, sc->emac_handle, reg, val)
-static void
-emac_sys_setup(void)
+static int
+emac_sys_setup(struct emac_softc *sc)
{
+ int error;
/* Activate EMAC clock. */
- a10_clk_emac_activate();
+ error = clk_get_by_ofw_index(sc->emac_dev, 0, &sc->emac_clk);
+ if (error != 0) {
+ device_printf(sc->emac_dev, "cannot get clock\n");
+ return (error);
+ }
+ error = clk_enable(sc->emac_clk);
+ if (error != 0) {
+ device_printf(sc->emac_dev, "cannot enable clock\n");
+ return (error);
+ }
+
/* Map sram. */
a10_map_to_emac();
+
+ return (0);
}
static void
@@ -784,6 +799,9 @@ emac_detach(device_t dev)
bus_generic_detach(sc->emac_dev);
}
+ if (sc->emac_clk != NULL)
+ clk_disable(sc->emac_clk);
+
if (sc->emac_res != NULL)
bus_release_resource(dev, SYS_RES_MEMORY, 0, sc->emac_res);
@@ -897,7 +915,10 @@ emac_attach(device_t dev)
}
}
/* Setup EMAC */
- emac_sys_setup();
+ error = emac_sys_setup(sc);
+ if (error != 0)
+ goto fail;
+
emac_reset(sc);
ifp = sc->emac_ifp = if_alloc(IFT_ETHER);
diff --git a/sys/arm/altera/socfpga/socfpga_rstmgr.c b/sys/arm/altera/socfpga/socfpga_rstmgr.c
index 36a1d75..49db05e 100644
--- a/sys/arm/altera/socfpga/socfpga_rstmgr.c
+++ b/sys/arm/altera/socfpga/socfpga_rstmgr.c
@@ -145,7 +145,7 @@ rstmgr_sysctl(SYSCTL_HANDLER_ARGS)
break;
default:
return (1);
- };
+ }
reg = READ4(sc, RSTMGR_BRGMODRST);
enable = reg & bit ? 0 : 1;
diff --git a/sys/arm/amlogic/aml8726/aml8726_sdxc-m8.c b/sys/arm/amlogic/aml8726/aml8726_sdxc-m8.c
index 3daa99f..75825fb 100644
--- a/sys/arm/amlogic/aml8726/aml8726_sdxc-m8.c
+++ b/sys/arm/amlogic/aml8726/aml8726_sdxc-m8.c
@@ -621,7 +621,7 @@ spurious:
stop = 1;
if ((sndr & AML_SDXC_SEND_RESP_136) != 0) {
start = 1;
- stop = start + 4;;
+ stop = start + 4;
}
for (i = start; i < stop; i++) {
pdmar = CSR_READ_4(sc, AML_SDXC_PDMA_REG);
diff --git a/sys/arm/arm/disassem.c b/sys/arm/arm/disassem.c
index dbe533a..b7aa099 100644
--- a/sys/arm/arm/disassem.c
+++ b/sys/arm/arm/disassem.c
@@ -523,7 +523,7 @@ disasm(const disasm_interface_t *di, vm_offset_t loc, int altfmt)
else
di->di_printf(", ");
}
- };
+ }
di->di_printf("\n");
diff --git a/sys/arm/arm/gic.c b/sys/arm/arm/gic.c
index 23b9577..5c0aece 100644
--- a/sys/arm/arm/gic.c
+++ b/sys/arm/arm/gic.c
@@ -256,11 +256,11 @@ static void
arm_gic_init_secondary(device_t dev)
{
struct arm_gic_softc *sc = device_get_softc(dev);
- struct intr_irqsrc *isrc;
- u_int irq;
+ u_int irq, cpu;
/* Set the mask so we can find this CPU to send it IPIs */
- arm_gic_map[PCPU_GET(cpuid)] = gic_cpu_mask(sc);
+ cpu = PCPU_GET(cpuid);
+ arm_gic_map[cpu] = gic_cpu_mask(sc);
for (irq = 0; irq < sc->nirqs; irq += 4)
gic_d_write_4(sc, GICD_IPRIORITYR(irq >> 2), 0);
@@ -280,27 +280,14 @@ arm_gic_init_secondary(device_t dev)
gic_d_write_4(sc, GICD_CTLR, 0x01);
/* Unmask attached SGI interrupts. */
- for (irq = GIC_FIRST_SGI; irq <= GIC_LAST_SGI; irq++) {
- isrc = GIC_INTR_ISRC(sc, irq);
- if (isrc != NULL && isrc->isrc_handlers != 0) {
- CPU_SET(PCPU_GET(cpuid), &isrc->isrc_cpu);
+ for (irq = GIC_FIRST_SGI; irq <= GIC_LAST_SGI; irq++)
+ if (intr_isrc_init_on_cpu(GIC_INTR_ISRC(sc, irq), cpu))
gic_irq_unmask(sc, irq);
- }
- }
/* Unmask attached PPI interrupts. */
- for (irq = GIC_FIRST_PPI; irq <= GIC_LAST_PPI; irq++) {
- isrc = GIC_INTR_ISRC(sc, irq);
- if (isrc == NULL || isrc->isrc_handlers == 0)
- continue;
- if (isrc->isrc_flags & INTR_ISRCF_BOUND) {
- if (CPU_ISSET(PCPU_GET(cpuid), &isrc->isrc_cpu))
- gic_irq_unmask(sc, irq);
- } else {
- CPU_SET(PCPU_GET(cpuid), &isrc->isrc_cpu);
+ for (irq = GIC_FIRST_PPI; irq <= GIC_LAST_PPI; irq++)
+ if (intr_isrc_init_on_cpu(GIC_INTR_ISRC(sc, irq), cpu))
gic_irq_unmask(sc, irq);
- }
- }
}
#else
static void
@@ -1016,13 +1003,18 @@ arm_gic_ipi_send(device_t dev, struct intr_irqsrc *isrc, cpuset_t cpus,
static int
arm_gic_ipi_setup(device_t dev, u_int ipi, struct intr_irqsrc **isrcp)
{
+ struct intr_irqsrc *isrc;
struct arm_gic_softc *sc = device_get_softc(dev);
if (sgi_first_unused > GIC_LAST_SGI)
return (ENOSPC);
- *isrcp = GIC_INTR_ISRC(sc, sgi_first_unused);
+ isrc = GIC_INTR_ISRC(sc, sgi_first_unused);
sgi_to_ipi[sgi_first_unused++] = ipi;
+
+ CPU_SET(PCPU_GET(cpuid), &isrc->isrc_cpu);
+
+ *isrcp = isrc;
return (0);
}
#endif
diff --git a/sys/arm/arm/locore.S b/sys/arm/arm/locore.S
index 2aecb7e..0a6a2d3 100644
--- a/sys/arm/arm/locore.S
+++ b/sys/arm/arm/locore.S
@@ -1,6 +1,6 @@
/*-
* Copyright (c) 2014 Ian Lepore <ian@freebsd.org>
- * All rights excluded.
+ * All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
diff --git a/sys/arm/arm/physmem.c b/sys/arm/arm/physmem.c
index d023905..f6222c3 100644
--- a/sys/arm/arm/physmem.c
+++ b/sys/arm/arm/physmem.c
@@ -1,6 +1,6 @@
/*-
* Copyright (c) 2014 Ian Lepore <ian@freebsd.org>
- * All rights excluded.
+ * All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
diff --git a/sys/arm/arm/vm_machdep.c b/sys/arm/arm/vm_machdep.c
index fdab1c6..fec2ca0 100644
--- a/sys/arm/arm/vm_machdep.c
+++ b/sys/arm/arm/vm_machdep.c
@@ -148,7 +148,7 @@ cpu_fork(register struct thread *td1, register struct proc *p2,
/* Setup to release spin count in fork_exit(). */
td2->td_md.md_spinlock_count = 1;
- td2->td_md.md_saved_cspr = PSR_SVC32_MODE;;
+ td2->td_md.md_saved_cspr = PSR_SVC32_MODE;
#if __ARM_ARCH >= 6
td2->td_md.md_tp = td1->td_md.md_tp;
#else
diff --git a/sys/arm/broadcom/bcm2835/bcm2836.c b/sys/arm/broadcom/bcm2835/bcm2836.c
index 05e9cc6..f9a2fcc 100644
--- a/sys/arm/broadcom/bcm2835/bcm2836.c
+++ b/sys/arm/broadcom/bcm2835/bcm2836.c
@@ -525,40 +525,21 @@ bcm_lintc_setup_intr(device_t dev, struct intr_irqsrc *isrc,
}
#ifdef SMP
-static bool
-bcm_lint_init_on_ap(struct bcm_lintc_softc *sc, struct bcm_lintc_irqsrc *bli,
- u_int cpu)
-{
- struct intr_irqsrc *isrc;
-
- isrc = &bli->bli_isrc;
-
- KASSERT(isrc->isrc_flags & INTR_ISRCF_PPI,
- ("%s: irq %d is not PPI", __func__, bli->bli_irq));
-
- if (isrc->isrc_handlers == 0)
- return (false);
- if (isrc->isrc_flags & INTR_ISRCF_BOUND)
- return (CPU_ISSET(cpu, &isrc->isrc_cpu));
-
- CPU_SET(cpu, &isrc->isrc_cpu);
- return (true);
-}
-
static void
bcm_lintc_init_rwreg_on_ap(struct bcm_lintc_softc *sc, u_int cpu, u_int irq,
uint32_t reg, uint32_t mask)
{
- if (bcm_lint_init_on_ap(sc, &sc->bls_isrcs[irq], cpu))
+ if (intr_isrc_init_on_cpu(&sc->bls_isrcs[irq].bli_isrc, cpu))
bcm_lintc_rwreg_set(sc, reg, mask);
}
static void
bcm_lintc_init_pmu_on_ap(struct bcm_lintc_softc *sc, u_int cpu)
{
+ struct intr_irqsrc *isrc = &sc->bls_isrcs[BCM_LINTC_PMU_IRQ].bli_isrc;
- if (bcm_lint_init_on_ap(sc, &sc->bls_isrcs[BCM_LINTC_PMU_IRQ], cpu)) {
+ if (intr_isrc_init_on_cpu(isrc, cpu)) {
/* Write-set register. */
bcm_lintc_write_4(sc, BCM_LINTC_PMU_ROUTING_SET_REG,
BCM_LINTC_PIRR_IRQ_EN_CORE(cpu));
diff --git a/sys/arm/conf/A10 b/sys/arm/conf/A10
index 31a5e24..fc39be7 100644
--- a/sys/arm/conf/A10
+++ b/sys/arm/conf/A10
@@ -51,6 +51,13 @@ options WITNESS_SKIPSPIN # Don't run witness on spinlocks for speed
#options BOOTP_NFSV3
#options BOOTP_WIRED_TO=emac0
+# EXT_RESOURCES pseudo devices
+options EXT_RESOURCES
+device clk
+device phy
+device hwreset
+device regulator
+
# MMC/SD/SDIO Card slot support
device mmc # mmc/sd bus
device mmcsd # mmc/sd flash cards
diff --git a/sys/arm/conf/A20 b/sys/arm/conf/A20
index ad3b29a..8f56523 100644
--- a/sys/arm/conf/A20
+++ b/sys/arm/conf/A20
@@ -55,6 +55,13 @@ options WITNESS_SKIPSPIN # Don't run witness on spinlocks for speed
#options BOOTP_NFSV3
#options BOOTP_WIRED_TO=dwc0
+# EXT_RESOURCES pseudo devices
+options EXT_RESOURCES
+device clk
+device phy
+device hwreset
+device regulator
+
# Interrupt controller
device gic
diff --git a/sys/arm/freescale/imx/imx6_sdma.c b/sys/arm/freescale/imx/imx6_sdma.c
index ae9a339..4839270 100644
--- a/sys/arm/freescale/imx/imx6_sdma.c
+++ b/sys/arm/freescale/imx/imx6_sdma.c
@@ -444,7 +444,7 @@ boot_firmware(struct sdma_softc *sc)
if (timeout-- <= 0)
break;
DELAY(10);
- };
+ }
if (ret == 0) {
device_printf(sc->dev, "SDMA failed to boot\n");
diff --git a/sys/arm/freescale/imx/imx6_ssi.c b/sys/arm/freescale/imx/imx6_ssi.c
index 184de2a..9387aa3 100644
--- a/sys/arm/freescale/imx/imx6_ssi.c
+++ b/sys/arm/freescale/imx/imx6_ssi.c
@@ -463,7 +463,7 @@ find_sdma_controller(struct sc_info *sc)
if (sdma_sc == NULL) {
device_printf(sc->dev, "No sDMA found. Can't operate\n");
return (ENXIO);
- };
+ }
sc->sdma_sc = sdma_sc;
diff --git a/sys/arm/freescale/imx/imx_gpio.c b/sys/arm/freescale/imx/imx_gpio.c
index cdff020..df0f2ad 100644
--- a/sys/arm/freescale/imx/imx_gpio.c
+++ b/sys/arm/freescale/imx/imx_gpio.c
@@ -157,45 +157,6 @@ static int imx51_gpio_pin_toggle(device_t, uint32_t pin);
#ifdef ARM_INTRNG
static int
-gpio_pic_teardown_intr(device_t dev, struct intr_irqsrc *isrc,
- struct resource *res, struct intr_map_data *data)
-{
- struct imx51_gpio_softc *sc;
- struct gpio_irqsrc *gi;
-
- sc = device_get_softc(dev);
- if (isrc->isrc_handlers == 0) {
- gi = (struct gpio_irqsrc *)isrc;
- gi->gi_pol = INTR_POLARITY_CONFORM;
- gi->gi_trig = INTR_TRIGGER_CONFORM;
-
- // XXX Not sure this is necessary
- mtx_lock_spin(&sc->sc_mtx);
- CLEAR4(sc, IMX_GPIO_IMR_REG, (1U << gi->gi_irq));
- WRITE4(sc, IMX_GPIO_ISR_REG, (1U << gi->gi_irq));
- mtx_unlock_spin(&sc->sc_mtx);
- }
- return (0);
-}
-
-/*
- * this is mask_intr
- */
-static void
-gpio_pic_disable_intr(device_t dev, struct intr_irqsrc *isrc)
-{
- struct imx51_gpio_softc *sc;
- u_int irq;
-
- sc = device_get_softc(dev);
- irq = ((struct gpio_irqsrc *)isrc)->gi_irq;
-
- mtx_lock_spin(&sc->sc_mtx);
- CLEAR4(sc, IMX_GPIO_IMR_REG, (1U << irq));
- mtx_unlock_spin(&sc->sc_mtx);
-}
-
-static int
gpio_pic_map_fdt(device_t dev, u_int ncells, pcell_t *cells, u_int *irqp,
enum intr_polarity *polp, enum intr_trigger *trigp)
{
@@ -279,6 +240,28 @@ gpio_pic_map_intr(device_t dev, struct intr_map_data *data,
}
static int
+gpio_pic_teardown_intr(device_t dev, struct intr_irqsrc *isrc,
+ struct resource *res, struct intr_map_data *data)
+{
+ struct imx51_gpio_softc *sc;
+ struct gpio_irqsrc *gi;
+
+ sc = device_get_softc(dev);
+ if (isrc->isrc_handlers == 0) {
+ gi = (struct gpio_irqsrc *)isrc;
+ gi->gi_pol = INTR_POLARITY_CONFORM;
+ gi->gi_trig = INTR_TRIGGER_CONFORM;
+
+ // XXX Not sure this is necessary
+ mtx_lock_spin(&sc->sc_mtx);
+ CLEAR4(sc, IMX_GPIO_IMR_REG, (1U << gi->gi_irq));
+ WRITE4(sc, IMX_GPIO_ISR_REG, (1U << gi->gi_irq));
+ mtx_unlock_spin(&sc->sc_mtx);
+ }
+ return (0);
+}
+
+static int
gpio_pic_setup_intr(device_t dev, struct intr_irqsrc *isrc,
struct resource *res, struct intr_map_data *data)
{
@@ -345,6 +328,23 @@ gpio_pic_setup_intr(device_t dev, struct intr_irqsrc *isrc,
}
/*
+ * this is mask_intr
+ */
+static void
+gpio_pic_disable_intr(device_t dev, struct intr_irqsrc *isrc)
+{
+ struct imx51_gpio_softc *sc;
+ u_int irq;
+
+ sc = device_get_softc(dev);
+ irq = ((struct gpio_irqsrc *)isrc)->gi_irq;
+
+ mtx_lock_spin(&sc->sc_mtx);
+ CLEAR4(sc, IMX_GPIO_IMR_REG, (1U << irq));
+ mtx_unlock_spin(&sc->sc_mtx);
+}
+
+/*
* this is unmask_intr
*/
static void
@@ -417,7 +417,7 @@ gpio_pic_filter(void *arg)
}
/*
- * register our isrcs into intrng to make it known about them.
+ * Initialize our isrcs and register them with intrng.
*/
static int
gpio_pic_register_isrcs(struct imx51_gpio_softc *sc)
@@ -451,22 +451,27 @@ static void
imx51_gpio_pin_configure(struct imx51_gpio_softc *sc, struct gpio_pin *pin,
unsigned int flags)
{
+ u_int newflags;
mtx_lock_spin(&sc->sc_mtx);
/*
- * Manage input/output
+ * Manage input/output; other flags not supported yet.
+ *
+ * Note that changes to pin->gp_flags must be acccumulated in newflags
+ * and stored with a single writeback to gp_flags at the end, to enable
+ * unlocked reads of that value elsewhere.
*/
- if (flags & (GPIO_PIN_INPUT|GPIO_PIN_OUTPUT)) {
- pin->gp_flags &= ~(GPIO_PIN_INPUT|GPIO_PIN_OUTPUT);
+ if (flags & (GPIO_PIN_INPUT | GPIO_PIN_OUTPUT)) {
+ newflags = pin->gp_flags & ~(GPIO_PIN_INPUT | GPIO_PIN_OUTPUT);
if (flags & GPIO_PIN_OUTPUT) {
- pin->gp_flags |= GPIO_PIN_OUTPUT;
+ newflags |= GPIO_PIN_OUTPUT;
SET4(sc, IMX_GPIO_OE_REG, (1U << pin->gp_pin));
- }
- else {
- pin->gp_flags |= GPIO_PIN_INPUT;
+ } else {
+ newflags |= GPIO_PIN_INPUT;
CLEAR4(sc, IMX_GPIO_OE_REG, (1U << pin->gp_pin));
}
+ pin->gp_flags = newflags;
}
mtx_unlock_spin(&sc->sc_mtx);
@@ -497,20 +502,13 @@ static int
imx51_gpio_pin_getcaps(device_t dev, uint32_t pin, uint32_t *caps)
{
struct imx51_gpio_softc *sc;
- int i;
sc = device_get_softc(dev);
- for (i = 0; i < sc->gpio_npins; i++) {
- if (sc->gpio_pins[i].gp_pin == pin)
- break;
- }
- if (i >= sc->gpio_npins)
+ if (pin >= sc->gpio_npins)
return (EINVAL);
- mtx_lock_spin(&sc->sc_mtx);
- *caps = sc->gpio_pins[i].gp_caps;
- mtx_unlock_spin(&sc->sc_mtx);
+ *caps = sc->gpio_pins[pin].gp_caps;
return (0);
}
@@ -519,20 +517,13 @@ static int
imx51_gpio_pin_getflags(device_t dev, uint32_t pin, uint32_t *flags)
{
struct imx51_gpio_softc *sc;
- int i;
sc = device_get_softc(dev);
- for (i = 0; i < sc->gpio_npins; i++) {
- if (sc->gpio_pins[i].gp_pin == pin)
- break;
- }
- if (i >= sc->gpio_npins)
+ if (pin >= sc->gpio_npins)
return (EINVAL);
- mtx_lock_spin(&sc->sc_mtx);
- *flags = sc->gpio_pins[i].gp_flags;
- mtx_unlock_spin(&sc->sc_mtx);
+ *flags = sc->gpio_pins[pin].gp_flags;
return (0);
}
@@ -541,19 +532,13 @@ static int
imx51_gpio_pin_getname(device_t dev, uint32_t pin, char *name)
{
struct imx51_gpio_softc *sc;
- int i;
sc = device_get_softc(dev);
- for (i = 0; i < sc->gpio_npins; i++) {
- if (sc->gpio_pins[i].gp_pin == pin)
- break;
- }
-
- if (i >= sc->gpio_npins)
+ if (pin >= sc->gpio_npins)
return (EINVAL);
mtx_lock_spin(&sc->sc_mtx);
- memcpy(name, sc->gpio_pins[i].gp_name, GPIOMAXNAME);
+ memcpy(name, sc->gpio_pins[pin].gp_name, GPIOMAXNAME);
mtx_unlock_spin(&sc->sc_mtx);
return (0);
@@ -563,18 +548,13 @@ static int
imx51_gpio_pin_setflags(device_t dev, uint32_t pin, uint32_t flags)
{
struct imx51_gpio_softc *sc;
- int i;
sc = device_get_softc(dev);
- for (i = 0; i < sc->gpio_npins; i++) {
- if (sc->gpio_pins[i].gp_pin == pin)
- break;
- }
- if (i >= sc->gpio_npins)
+ if (pin >= sc->gpio_npins)
return (EINVAL);
- imx51_gpio_pin_configure(sc, &sc->gpio_pins[i], flags);
+ imx51_gpio_pin_configure(sc, &sc->gpio_pins[pin], flags);
return (0);
}
@@ -583,22 +563,17 @@ static int
imx51_gpio_pin_set(device_t dev, uint32_t pin, unsigned int value)
{
struct imx51_gpio_softc *sc;
- int i;
sc = device_get_softc(dev);
- for (i = 0; i < sc->gpio_npins; i++) {
- if (sc->gpio_pins[i].gp_pin == pin)
- break;
- }
- if (i >= sc->gpio_npins)
+ if (pin >= sc->gpio_npins)
return (EINVAL);
mtx_lock_spin(&sc->sc_mtx);
if (value)
- SET4(sc, IMX_GPIO_DR_REG, (1U << i));
+ SET4(sc, IMX_GPIO_DR_REG, (1U << pin));
else
- CLEAR4(sc, IMX_GPIO_DR_REG, (1U << i));
+ CLEAR4(sc, IMX_GPIO_DR_REG, (1U << pin));
mtx_unlock_spin(&sc->sc_mtx);
return (0);
@@ -608,20 +583,13 @@ static int
imx51_gpio_pin_get(device_t dev, uint32_t pin, unsigned int *val)
{
struct imx51_gpio_softc *sc;
- int i;
sc = device_get_softc(dev);
- for (i = 0; i < sc->gpio_npins; i++) {
- if (sc->gpio_pins[i].gp_pin == pin)
- break;
- }
- if (i >= sc->gpio_npins)
+ if (pin >= sc->gpio_npins)
return (EINVAL);
- mtx_lock_spin(&sc->sc_mtx);
- *val = (READ4(sc, IMX_GPIO_DR_REG) >> i) & 1;
- mtx_unlock_spin(&sc->sc_mtx);
+ *val = (READ4(sc, IMX_GPIO_DR_REG) >> pin) & 1;
return (0);
}
@@ -630,20 +598,15 @@ static int
imx51_gpio_pin_toggle(device_t dev, uint32_t pin)
{
struct imx51_gpio_softc *sc;
- int i;
sc = device_get_softc(dev);
- for (i = 0; i < sc->gpio_npins; i++) {
- if (sc->gpio_pins[i].gp_pin == pin)
- break;
- }
- if (i >= sc->gpio_npins)
+ if (pin >= sc->gpio_npins)
return (EINVAL);
mtx_lock_spin(&sc->sc_mtx);
WRITE4(sc, IMX_GPIO_DR_REG,
- (READ4(sc, IMX_GPIO_DR_REG) ^ (1U << i)));
+ (READ4(sc, IMX_GPIO_DR_REG) ^ (1U << pin)));
mtx_unlock_spin(&sc->sc_mtx);
return (0);
diff --git a/sys/arm/freescale/vybrid/vf_ccm.c b/sys/arm/freescale/vybrid/vf_ccm.c
index 8f8a3f0..82284d5 100644
--- a/sys/arm/freescale/vybrid/vf_ccm.c
+++ b/sys/arm/freescale/vybrid/vf_ccm.c
@@ -379,15 +379,15 @@ set_clock(struct ccm_softc *sc, char *name)
reg &= ~(clk->sel_mask << clk->sel_shift);
reg |= (clk->sel_val << clk->sel_shift);
WRITE4(sc, clk->sel_reg, reg);
- };
+ }
reg = READ4(sc, clk->reg);
reg |= clk->enable_reg;
reg &= ~(clk->div_mask << clk->div_shift);
reg |= (clk->div_val << clk->div_shift);
WRITE4(sc, clk->reg, reg);
- };
- };
+ }
+ }
return (0);
}
@@ -425,8 +425,8 @@ ccm_fdt_set(struct ccm_softc *sc)
fdt_config += strlen(name) + 1;
len -= strlen(name) + 1;
set_clock(sc, name);
- };
- };
+ }
+ }
if (OF_peer(child) == 0) {
/* No more siblings. */
diff --git a/sys/arm/freescale/vybrid/vf_edma.c b/sys/arm/freescale/vybrid/vf_edma.c
index ed12072..9317921 100644
--- a/sys/arm/freescale/vybrid/vf_edma.c
+++ b/sys/arm/freescale/vybrid/vf_edma.c
@@ -161,7 +161,7 @@ channel_configure(struct edma_softc *sc, int mux_grp, int mux_src)
} else {
channel_first = 0;
mux_num = sc->device_id * 2;
- };
+ }
/* Take first unused eDMA channel */
ch = NULL;
@@ -171,12 +171,12 @@ channel_configure(struct edma_softc *sc, int mux_grp, int mux_src)
break;
}
ch = NULL;
- };
+ }
if (ch == NULL) {
/* Can't find free channel */
return (-1);
- };
+ }
chnum = i;
diff --git a/sys/arm/freescale/vybrid/vf_port.c b/sys/arm/freescale/vybrid/vf_port.c
index 943ca88..6ff8bfc 100644
--- a/sys/arm/freescale/vybrid/vf_port.c
+++ b/sys/arm/freescale/vybrid/vf_port.c
@@ -171,7 +171,7 @@ port_setup(int pnum, enum ev_type pevt, void (*ih)(void *), void *ih_user)
break;
default:
return (-1);
- };
+ }
reg = READ4(sc, PORT_PCR(pnum));
reg &= ~(PCR_IRQC_M << PCR_IRQC_S);
diff --git a/sys/arm/freescale/vybrid/vf_sai.c b/sys/arm/freescale/vybrid/vf_sai.c
index 309d95e..83f689f 100644
--- a/sys/arm/freescale/vybrid/vf_sai.c
+++ b/sys/arm/freescale/vybrid/vf_sai.c
@@ -433,7 +433,7 @@ find_edma_controller(struct sc_info *sc)
if ((len = OF_getproplen(edma_node, "device-id")) <= 0) {
return (ENXIO);
- };
+ }
OF_getprop(edma_node, "device-id", &dts_value, len);
edma_device_id = fdt32_to_cpu(dts_value);
@@ -447,16 +447,16 @@ find_edma_controller(struct sc_info *sc)
if (edma_sc->device_id == edma_device_id) {
/* found */
break;
- };
+ }
edma_sc = NULL;
- };
- };
+ }
+ }
if (edma_sc == NULL) {
device_printf(sc->dev, "no eDMA. can't operate\n");
return (ENXIO);
- };
+ }
sc->edma_sc = edma_sc;
@@ -465,7 +465,7 @@ find_edma_controller(struct sc_info *sc)
if (sc->edma_chnum < 0) {
/* cant setup eDMA */
return (ENXIO);
- };
+ }
return (0);
};
diff --git a/sys/arm/mv/mv_pci.c b/sys/arm/mv/mv_pci.c
index dc8b890..2ef6604 100644
--- a/sys/arm/mv/mv_pci.c
+++ b/sys/arm/mv/mv_pci.c
@@ -842,7 +842,7 @@ mv_pcib_alloc_resource(device_t dev, device_t child, int type, int *rid,
default:
return (BUS_ALLOC_RESOURCE(device_get_parent(dev), dev,
type, rid, start, end, count, flags));
- };
+ }
if (RMAN_IS_DEFAULT_RANGE(start, end)) {
start = sc->sc_mem_base;
diff --git a/sys/arm/samsung/exynos/chrome_ec.c b/sys/arm/samsung/exynos/chrome_ec.c
index 2c88414..8f794b7 100644
--- a/sys/arm/samsung/exynos/chrome_ec.c
+++ b/sys/arm/samsung/exynos/chrome_ec.c
@@ -176,7 +176,7 @@ ec_command(uint8_t cmd, uint8_t *dout, uint8_t dout_len,
for (i = 0; i < dout_len; i++) {
msg_dout[i + 3] = dout[i];
- };
+ }
fill_checksum(msg_dout, dout_len + 3);
@@ -195,7 +195,7 @@ ec_command(uint8_t cmd, uint8_t *dout, uint8_t dout_len,
for (i = 0; i < dinp_len; i++) {
dinp[i] = msg_dinp[i + 2];
- };
+ }
free(msg_dout, M_DEVBUF);
free(msg_dinp, M_DEVBUF);
diff --git a/sys/arm/samsung/exynos/chrome_ec_spi.c b/sys/arm/samsung/exynos/chrome_ec_spi.c
index a018afa..9e54969 100644
--- a/sys/arm/samsung/exynos/chrome_ec_spi.c
+++ b/sys/arm/samsung/exynos/chrome_ec_spi.c
@@ -143,7 +143,7 @@ ec_command(uint8_t cmd, uint8_t *dout, uint8_t dout_len,
for (i = 0; i < dout_len; i++) {
msg_dout[i + 3] = dout[i];
- };
+ }
fill_checksum(msg_dout, dout_len + 3);
@@ -177,7 +177,7 @@ ec_command(uint8_t cmd, uint8_t *dout, uint8_t dout_len,
for (i = 0; i < dinp_len; i++) {
dinp[i] = msg_dinp[i + 2];
- };
+ }
free(msg_dout, M_DEVBUF);
free(msg_dinp, M_DEVBUF);
diff --git a/sys/arm/samsung/exynos/chrome_kb.c b/sys/arm/samsung/exynos/chrome_kb.c
index b10a5ac..6965d3c 100644
--- a/sys/arm/samsung/exynos/chrome_kb.c
+++ b/sys/arm/samsung/exynos/chrome_kb.c
@@ -255,12 +255,12 @@ ckb_check(keyboard_t *kbd)
if (sc->sc_flags & CKB_FLAG_POLLING) {
return (1);
- };
+ }
for (i = 0; i < sc->cols; i++)
if (sc->scan_local[i] != sc->scan[i]) {
return (1);
- };
+ }
if (sc->sc_repeating)
return (1);
@@ -356,7 +356,7 @@ ckb_read_char_locked(keyboard_t *kbd, int wait)
callout_reset(&sc->sc_repeat_callout, hz / 10,
ckb_repeat, sc);
return (sc->sc_repeat_key);
- };
+ }
if (sc->sc_flags & CKB_FLAG_POLLING) {
for (;;) {
@@ -374,7 +374,7 @@ ckb_read_char_locked(keyboard_t *kbd, int wait)
}
DELAY(1000);
}
- };
+ }
for (i = 0; i < sc->cols; i++) {
for (j = 0; j < sc->rows; j++) {
@@ -387,7 +387,7 @@ ckb_read_char_locked(keyboard_t *kbd, int wait)
key = keymap_read(sc, i, j);
if (key == 0) {
continue;
- };
+ }
if (newbit > 0) {
/* key pressed */
@@ -841,7 +841,7 @@ chrome_kb_attach(device_t dev)
for (i = 0; i < sc->cols; i++) {
sc->scan_local[i] = 0;
sc->scan[i] = 0;
- };
+ }
kbd_init_struct(kbd, KBD_DRIVER_NAME, KB_OTHER,
device_get_unit(dev), 0, 0, 0);
@@ -866,7 +866,7 @@ chrome_kb_attach(device_t dev)
if (kbd_register(kbd) < 0) {
return (ENXIO);
- };
+ }
KBD_CONFIG_DONE(kbd);
return (0);
diff --git a/sys/arm/samsung/exynos/exynos5_i2c.c b/sys/arm/samsung/exynos/exynos5_i2c.c
index d879138..756a27d 100644
--- a/sys/arm/samsung/exynos/exynos5_i2c.c
+++ b/sys/arm/samsung/exynos/exynos5_i2c.c
@@ -292,7 +292,7 @@ i2c_start(device_t dev, u_char slave, int timeout)
mtx_unlock(&sc->mutex);
return (IIC_ENOACK);
- };
+ }
mtx_unlock(&sc->mutex);
return (IIC_NOERR);
@@ -387,7 +387,7 @@ i2c_read(device_t dev, char *buf, int len,
reg = READ1(sc, I2CCON);
reg &= ~(ACKGEN);
WRITE1(sc, I2CCON, reg);
- };
+ }
clear_ipend(sc);
@@ -444,7 +444,7 @@ i2c_write(device_t dev, const char *buf, int len, int *sent, int timeout)
DPRINTF("cant i2c write: no ack\n");
mtx_unlock(&sc->mutex);
return (IIC_ENOACK);
- };
+ }
(*sent)++;
}
diff --git a/sys/arm/samsung/exynos/exynos5_pad.c b/sys/arm/samsung/exynos/exynos5_pad.c
index ea07f5d..27d0d53 100644
--- a/sys/arm/samsung/exynos/exynos5_pad.c
+++ b/sys/arm/samsung/exynos/exynos5_pad.c
@@ -330,10 +330,10 @@ get_bank(struct pad_softc *sc, int gpio_number,
*bank = sc->gpio_map[i];
*pin_shift = (gpio_number - n);
return (0);
- };
+ }
n += ngpio;
- };
+ }
return (-1);
}
@@ -516,7 +516,7 @@ pad_attach(device_t dev)
break;
default:
goto fail;
- };
+ }
if (bus_alloc_resources(dev, sc->pad_spec, sc->res)) {
device_printf(dev, "could not allocate resources\n");
@@ -528,7 +528,7 @@ pad_attach(device_t dev)
for (i = 0; i < sc->nports; i++) {
sc->bst[i] = rman_get_bustag(sc->res[i]);
sc->bsh[i] = rman_get_bushandle(sc->res[i]);
- };
+ }
sc->dev = dev;
diff --git a/sys/arm64/arm64/copyinout.S b/sys/arm64/arm64/copyinout.S
index b99dbc2..86711fc 100644
--- a/sys/arm64/arm64/copyinout.S
+++ b/sys/arm64/arm64/copyinout.S
@@ -33,6 +33,8 @@ __FBSDID("$FreeBSD$");
#include <sys/errno.h>
+#include <machine/vmparam.h>
+
#include "assym.s"
/*
diff --git a/sys/arm64/arm64/genassym.c b/sys/arm64/arm64/genassym.c
index 26adc6d..36ad877 100644
--- a/sys/arm64/arm64/genassym.c
+++ b/sys/arm64/arm64/genassym.c
@@ -37,9 +37,6 @@ __FBSDID("$FreeBSD$");
#include <machine/pcb.h>
#include <machine/vmparam.h>
-ASSYM(KERNBASE, KERNBASE);
-ASSYM(VM_MAXUSER_ADDRESS, VM_MAXUSER_ADDRESS);
-
ASSYM(TDF_ASTPENDING, TDF_ASTPENDING);
ASSYM(TDF_NEEDRESCHED, TDF_NEEDRESCHED);
diff --git a/sys/arm64/arm64/gic_v3_its.c b/sys/arm64/arm64/gic_v3_its.c
index c847f95..aef6346 100644
--- a/sys/arm64/arm64/gic_v3_its.c
+++ b/sys/arm64/arm64/gic_v3_its.c
@@ -1579,9 +1579,7 @@ its_get_devid_thunder(device_t pci_dev)
uint32_t bus;
bus = pci_get_bus(pci_dev);
-
- bsf = PCI_RID(pci_get_bus(pci_dev), pci_get_slot(pci_dev),
- pci_get_function(pci_dev));
+ bsf = pci_get_rid(pci_dev);
/* Check if accessing internal PCIe (low bus numbers) */
if (bus < GIC_V3_ITS_QUIRK_THUNDERX_PEM_BUS_OFFSET) {
diff --git a/sys/arm64/arm64/locore.S b/sys/arm64/arm64/locore.S
index 676c1d5..ca57cfc 100644
--- a/sys/arm64/arm64/locore.S
+++ b/sys/arm64/arm64/locore.S
@@ -34,6 +34,7 @@
#include <machine/hypervisor.h>
#include <machine/param.h>
#include <machine/pte.h>
+#include <machine/vmparam.h>
#define VIRT_BITS 48
@@ -377,6 +378,7 @@ create_pagetables:
/* Link the l0 -> l1 table */
mov x9, x6
mov x6, x24
+ mov x10, #1
bl link_l0_pagetable
/*
@@ -407,6 +409,7 @@ create_pagetables:
/* Link the l0 -> l1 table */
mov x9, x6
mov x6, x27
+ mov x10, #1
bl link_l0_pagetable
/* Restore the Link register */
@@ -422,6 +425,7 @@ create_pagetables:
* x6 = L0 table
* x8 = Virtual Address
* x9 = L1 PA (trashed)
+ * x10 = Entry count
* x11, x12 and x13 are trashed
*/
link_l0_pagetable:
@@ -436,11 +440,16 @@ link_l0_pagetable:
mov x12, #L0_TABLE
/* Only use the output address bits */
- lsr x9, x9, #12
- orr x12, x12, x9, lsl #12
+ lsr x9, x9, #PAGE_SHIFT
+1: orr x13, x12, x9, lsl #PAGE_SHIFT
/* Store the entry */
- str x12, [x6, x11, lsl #3]
+ str x13, [x6, x11, lsl #3]
+
+ sub x10, x10, #1
+ add x11, x11, #1
+ add x9, x9, #1
+ cbnz x10, 1b
ret
@@ -467,11 +476,11 @@ link_l1_pagetable:
mov x12, #L1_TABLE
/* Only use the output address bits */
- lsr x9, x9, #12
- orr x12, x12, x9, lsl #12
+ lsr x9, x9, #PAGE_SHIFT
+ orr x13, x12, x9, lsl #PAGE_SHIFT
/* Store the entry */
- str x12, [x6, x11, lsl #3]
+ str x13, [x6, x11, lsl #3]
ret
@@ -481,7 +490,7 @@ link_l1_pagetable:
* x7 = Type (0 = Device, 1 = Normal)
* x8 = VA start
* x9 = PA start (trashed)
- * x10 = Entry count (TODO)
+ * x10 = Entry count
* x11, x12 and x13 are trashed
*/
build_l1_block_pagetable:
@@ -504,20 +513,17 @@ build_l1_block_pagetable:
lsr x9, x9, #L1_SHIFT
/* Set the physical address for this virtual address */
-1: orr x12, x12, x9, lsl #L1_SHIFT
+1: orr x13, x12, x9, lsl #L1_SHIFT
/* Store the entry */
- str x12, [x6, x11, lsl #3]
-
- /* Clear the address bits */
- and x12, x12, #ATTR_MASK_L
+ str x13, [x6, x11, lsl #3]
sub x10, x10, #1
add x11, x11, #1
add x9, x9, #1
cbnz x10, 1b
-2: ret
+ ret
/*
* Builds count 2 MiB page table entry
@@ -525,7 +531,7 @@ build_l1_block_pagetable:
* x7 = Type (0 = Device, 1 = Normal)
* x8 = VA start
* x9 = PA start (trashed)
- * x10 = Entry count (TODO)
+ * x10 = Entry count
* x11, x12 and x13 are trashed
*/
build_l2_block_pagetable:
@@ -548,20 +554,17 @@ build_l2_block_pagetable:
lsr x9, x9, #L2_SHIFT
/* Set the physical address for this virtual address */
-1: orr x12, x12, x9, lsl #L2_SHIFT
+1: orr x13, x12, x9, lsl #L2_SHIFT
/* Store the entry */
- str x12, [x6, x11, lsl #3]
-
- /* Clear the address bits */
- and x12, x12, #ATTR_MASK_L
+ str x13, [x6, x11, lsl #3]
sub x10, x10, #1
add x11, x11, #1
add x9, x9, #1
cbnz x10, 1b
-2: ret
+ ret
start_mmu:
dsb sy
diff --git a/sys/arm64/arm64/pmap.c b/sys/arm64/arm64/pmap.c
index 5eeccdd..ca232f0 100644
--- a/sys/arm64/arm64/pmap.c
+++ b/sys/arm64/arm64/pmap.c
@@ -3534,7 +3534,7 @@ pmap_map_io_transient(vm_page_t page[], vm_offset_t vaddr[], int count,
needs_mapping = FALSE;
for (i = 0; i < count; i++) {
paddr = VM_PAGE_TO_PHYS(page[i]);
- if (__predict_false(paddr >= DMAP_MAX_PHYSADDR)) {
+ if (__predict_false(!PHYS_IN_DMAP(paddr))) {
error = vmem_alloc(kernel_arena, PAGE_SIZE,
M_BESTFIT | M_WAITOK, &vaddr[i]);
KASSERT(error == 0, ("vmem_alloc failed: %d", error));
@@ -3552,7 +3552,7 @@ pmap_map_io_transient(vm_page_t page[], vm_offset_t vaddr[], int count,
sched_pin();
for (i = 0; i < count; i++) {
paddr = VM_PAGE_TO_PHYS(page[i]);
- if (paddr >= DMAP_MAX_PHYSADDR) {
+ if (!PHYS_IN_DMAP(paddr)) {
panic(
"pmap_map_io_transient: TODO: Map out of DMAP data");
}
@@ -3572,7 +3572,7 @@ pmap_unmap_io_transient(vm_page_t page[], vm_offset_t vaddr[], int count,
sched_unpin();
for (i = 0; i < count; i++) {
paddr = VM_PAGE_TO_PHYS(page[i]);
- if (paddr >= DMAP_MAX_PHYSADDR) {
+ if (!PHYS_IN_DMAP(paddr)) {
panic("ARM64TODO: pmap_unmap_io_transient: Unmap data");
}
}
diff --git a/sys/arm64/arm64/support.S b/sys/arm64/arm64/support.S
index 4938240..1ca8c2b 100644
--- a/sys/arm64/arm64/support.S
+++ b/sys/arm64/arm64/support.S
@@ -34,6 +34,7 @@ __FBSDID("$FreeBSD$");
#include <machine/setjmp.h>
#include <machine/param.h>
+#include <machine/vmparam.h>
#include "assym.s"
diff --git a/sys/arm64/cavium/thunder_pcie_pem.c b/sys/arm64/cavium/thunder_pcie_pem.c
index 8679850..09ea206 100644
--- a/sys/arm64/cavium/thunder_pcie_pem.c
+++ b/sys/arm64/cavium/thunder_pcie_pem.c
@@ -530,7 +530,7 @@ thunder_pem_alloc_resource(device_t dev, device_t child, int type, int *rid,
parent_dev = device_get_parent(device_get_parent(dev));
return (BUS_ALLOC_RESOURCE(parent_dev, dev, type, rid, start,
end, count, flags));
- };
+ }
if (!RMAN_IS_DEFAULT_RANGE(start, end)) {
diff --git a/sys/arm64/cloudabi64/cloudabi64_sysvec.c b/sys/arm64/cloudabi64/cloudabi64_sysvec.c
index a26007a..fd13db8 100644
--- a/sys/arm64/cloudabi64/cloudabi64_sysvec.c
+++ b/sys/arm64/cloudabi64/cloudabi64_sysvec.c
@@ -27,6 +27,7 @@
__FBSDID("$FreeBSD$");
#include <sys/param.h>
+#include <sys/imgact.h>
#include <sys/kernel.h>
#include <sys/proc.h>
#include <sys/sysent.h>
@@ -46,6 +47,25 @@ __FBSDID("$FreeBSD$");
extern const char *cloudabi64_syscallnames[];
extern struct sysent cloudabi64_sysent[];
+static void
+cloudabi64_proc_setregs(struct thread *td, struct image_params *imgp,
+ unsigned long stack)
+{
+ struct trapframe *regs;
+
+ exec_setregs(td, imgp, stack);
+
+ /*
+ * The stack now contains a pointer to the TCB and the auxiliary
+ * vector. Let x0 point to the auxiliary vector, and set
+ * tpidr_el0 to the TCB.
+ */
+ regs = td->td_frame;
+ regs->tf_x[0] = td->td_retval[0] =
+ stack + roundup(sizeof(cloudabi64_tcb_t), sizeof(register_t));
+ (void)cpu_set_user_tls(td, (void *)stack);
+}
+
static int
cloudabi64_fetch_syscall_args(struct thread *td, struct syscall_args *sa)
{
@@ -110,9 +130,9 @@ cloudabi64_schedtail(struct thread *td)
}
}
-void
+int
cloudabi64_thread_setregs(struct thread *td,
- const cloudabi64_threadattr_t *attr)
+ const cloudabi64_threadattr_t *attr, uint64_t tcb)
{
struct trapframe *frame;
stack_t stack;
@@ -130,6 +150,9 @@ cloudabi64_thread_setregs(struct thread *td,
frame = td->td_frame;
frame->tf_x[0] = td->td_tid;
frame->tf_x[1] = attr->argument;
+
+ /* Set up TLS. */
+ return (cpu_set_user_tls(td, (void *)tcb));
}
static struct sysentvec cloudabi64_elf_sysvec = {
@@ -144,6 +167,7 @@ static struct sysentvec cloudabi64_elf_sysvec = {
.sv_usrstack = USRSTACK,
.sv_stackprot = VM_PROT_READ | VM_PROT_WRITE,
.sv_copyout_strings = cloudabi64_copyout_strings,
+ .sv_setregs = cloudabi64_proc_setregs,
.sv_flags = SV_ABI_CLOUDABI | SV_CAPSICUM | SV_LP64,
.sv_set_syscall_retval = cloudabi64_set_syscall_retval,
.sv_fetch_syscall_args = cloudabi64_fetch_syscall_args,
diff --git a/sys/arm64/include/frame.h b/sys/arm64/include/frame.h
index 7e644d5..6d43e13 100644
--- a/sys/arm64/include/frame.h
+++ b/sys/arm64/include/frame.h
@@ -49,6 +49,11 @@ struct trapframe {
uint64_t tf_x[30];
};
+struct arm64_frame {
+ struct arm64_frame *f_frame;
+ u_long f_retaddr;
+};
+
/*
* Signal frame, pushedonto the user stack
*/
diff --git a/sys/arm64/include/vmparam.h b/sys/arm64/include/vmparam.h
index cd9198e..e086422 100644
--- a/sys/arm64/include/vmparam.h
+++ b/sys/arm64/include/vmparam.h
@@ -160,7 +160,6 @@
#define DMAP_MIN_ADDRESS (0xffffffc000000000UL)
#define DMAP_MAX_ADDRESS (0xffffffdfffffffffUL)
-extern vm_paddr_t dmap_phys_base;
#define DMAP_MIN_PHYSADDR (dmap_phys_base)
#define DMAP_MAX_PHYSADDR (dmap_phys_base + (DMAP_MAX_ADDRESS - DMAP_MIN_ADDRESS))
@@ -229,10 +228,15 @@ extern vm_paddr_t dmap_phys_base;
#define UMA_MD_SMALL_ALLOC
+#ifndef LOCORE
+
+extern vm_paddr_t dmap_phys_base;
extern u_int tsb_kernel_ldd_phys;
extern vm_offset_t vm_max_kernel_address;
extern vm_offset_t init_pt_va;
+#endif
+
#define ZERO_REGION_SIZE (64 * 1024) /* 64KB */
#endif /* !_MACHINE_VMPARAM_H_ */
diff --git a/sys/boot/arm/at91/libat91/sd-card.c b/sys/boot/arm/at91/libat91/sd-card.c
index 803d782..d173399 100644
--- a/sys/boot/arm/at91/libat91/sd-card.c
+++ b/sys/boot/arm/at91/libat91/sd-card.c
@@ -187,7 +187,7 @@ MCI_StartReadBlock(unsigned blknum, void *dataBuffer)
// (PDC) Receiver Transfer Enable
AT91C_BASE_PDC_MCI->PDC_PTCR = (AT91C_PDC_TXTDIS | AT91C_PDC_RXTDIS);
AT91C_BASE_PDC_MCI->PDC_RPR = (unsigned int)dataBuffer;
- AT91C_BASE_PDC_MCI->PDC_RCR = SD_BLOCK_SIZE / 4;;
+ AT91C_BASE_PDC_MCI->PDC_RCR = SD_BLOCK_SIZE / 4;
AT91C_BASE_PDC_MCI->PDC_PTCR = AT91C_PDC_RXTEN;
// SDHC wants block offset, non-HC wants byte offset.
diff --git a/sys/boot/arm/uboot/ldscript.arm b/sys/boot/arm/uboot/ldscript.arm
index 1eb10a8..8eb604c 100644
--- a/sys/boot/arm/uboot/ldscript.arm
+++ b/sys/boot/arm/uboot/ldscript.arm
@@ -6,6 +6,7 @@ SECTIONS
{
/* Read-only sections, merged into text segment: */
. = UBLDR_LOADADDR + SIZEOF_HEADERS;
+ . = ALIGN(8);
.text :
{
*(.text)
@@ -47,8 +48,8 @@ SECTIONS
.rodata1 : { *(.rodata1) }
.sdata2 : { *(.sdata2) }
.sbss2 : { *(.sbss2) }
- /* Adjust the address for the data segment to the next page up. */
- . = ((. + 0x1000) & ~(0x1000 - 1));
+ /* Adjust the address for the data segment to the doubleword boundary. */
+ . = ALIGN(8);
.data :
{
*(.data)
diff --git a/sys/boot/common/load_elf_obj.c b/sys/boot/common/load_elf_obj.c
index 285a88e..a32b9fd 100644
--- a/sys/boot/common/load_elf_obj.c
+++ b/sys/boot/common/load_elf_obj.c
@@ -222,7 +222,7 @@ __elfN(obj_loadimage)(struct preloaded_file *fp, elf_file_t ef, u_int64_t off)
case SHT_PROGBITS:
case SHT_NOBITS:
#if defined(__i386__) || defined(__amd64__)
- case SHT_AMD64_UNWIND:
+ case SHT_X86_64_UNWIND:
#endif
lastaddr = roundup(lastaddr, shdr[i].sh_addralign);
shdr[i].sh_addr = (Elf_Addr)lastaddr;
diff --git a/sys/boot/common/part.c b/sys/boot/common/part.c
index 3fad5dd..b349e96 100644
--- a/sys/boot/common/part.c
+++ b/sys/boot/common/part.c
@@ -514,7 +514,7 @@ vtoc8_parttype(uint16_t type)
return (PART_FREEBSD_VINUM);
case VTOC_TAG_FREEBSD_ZFS:
return (PART_FREEBSD_ZFS);
- };
+ }
return (PART_UNKNOWN);
}
diff --git a/sys/boot/fdt/dts/arm/bananapi.dts b/sys/boot/fdt/dts/arm/bananapi.dts
index a101720..03a9fef 100644
--- a/sys/boot/fdt/dts/arm/bananapi.dts
+++ b/sys/boot/fdt/dts/arm/bananapi.dts
@@ -26,83 +26,21 @@
* $FreeBSD$
*/
-/dts-v1/;
-
-#include "sun7i-a20.dtsi"
-
-#include <dt-bindings/gpio/gpio.h>
+#include "sun7i-a20-bananapi.dts"
+#include "sun7i-a20-hdmi.dtsi"
/ {
- model = "LeMaker Banana Pi";
- compatible = "lemaker,bananapi", "allwinner,sun7i-a20";
-
- memory {
- device_type = "memory";
- reg = < 0x40000000 0x40000000 >; /* 1GB RAM */
- };
-
- aliases {
- soc = &SOC;
- UART0 = &UART0;
- };
-
- SOC: a20 {
-
- usb1: usb@01c14000 {
- status = "okay";
- };
-
- usb2: usb@01c1c000 {
- status = "okay";
- };
-
- UART0: serial@01c28000 {
- status = "okay";
- };
-
- mmc0: mmc@01c0f000 {
+ soc@01c00000 {
+ hdmi@01c16000 {
status = "okay";
};
- gmac@01c50000 {
- phy-mode = "rgmii-bpi";
- status = "okay";
- pinctrl-names = "default";
- pinctrl-0 = <&gmac_pins_rgmii>;
- };
-
- ahci: sata@01c18000 {
- status = "okay";
- };
-
- hdmi: hdmi@01c16000 {
- compatible = "allwinner,sun7i-a20-hdmi";
- reg = <0x01c16000 0x1000>;
- };
-
hdmiaudio {
- compatible = "allwinner,sun7i-a20-hdmiaudio";
- };
-
- fb: fb@01e60000 {
- compatible = "allwinner,sun7i-a20-fb";
- reg = <0x01e60000 0x10000>, /* DEBE0 */
- <0x01c0c000 0x1000>; /* LCD0 */
- };
- };
-
- leds {
- compatible = "gpio-leds";
-
- green {
- label = "bananapi:green:usr";
- gpios = <&pio 7 24 GPIO_ACTIVE_HIGH>;
+ status = "okay";
};
};
+};
- chosen {
- bootargs = "-v";
- stdin = "UART0";
- stdout = "UART0";
- };
+&mmc0_pins_a {
+ allwinner,pull = <SUN4I_PINCTRL_PULL_UP>;
};
diff --git a/sys/boot/fdt/dts/arm/cubieboard.dts b/sys/boot/fdt/dts/arm/cubieboard.dts
index a21ea4d..a3095b9 100644
--- a/sys/boot/fdt/dts/arm/cubieboard.dts
+++ b/sys/boot/fdt/dts/arm/cubieboard.dts
@@ -26,56 +26,4 @@
* $FreeBSD$
*/
-/dts-v1/;
-
-#include "sun4i-a10.dtsi"
-
-/ {
- model = "Cubietech Cubieboard";
-
- memory {
- device_type = "memory";
- reg = < 0x40000000 0x40000000 >; /* 1GB RAM */
- };
-
- aliases {
- soc = &SOC;
- UART0 = &UART0;
- };
-
- SOC: a10 {
-
- usb1: usb@01c14000 {
- status = "okay";
- };
-
- usb2: usb@01c1c000 {
- status = "okay";
- };
-
- UART0: serial@01c28000 {
- status = "okay";
- };
-
- mmc0: mmc@01c0f000 {
- status = "okay";
- };
-
- emac@01c0b000 {
- status = "okay";
- pinctrl-names = "default";
- pinctrl-0 = <&emac_pins>;
- };
-
- ahci: sata@01c18000 {
- status = "okay";
- };
- };
-
- chosen {
- bootargs = "-v";
- stdin = "UART0";
- stdout = "UART0";
- };
-};
-
+#include "sun4i-a10-cubieboard.dts"
diff --git a/sys/boot/fdt/dts/arm/cubieboard2.dts b/sys/boot/fdt/dts/arm/cubieboard2.dts
index f9e1eb8..a240e84 100644
--- a/sys/boot/fdt/dts/arm/cubieboard2.dts
+++ b/sys/boot/fdt/dts/arm/cubieboard2.dts
@@ -32,13 +32,6 @@
/ {
soc@01c00000 {
- ccm@01c20000 {
- compatible = "allwinner,sun4i-ccm";
- #address-cells = <1>;
- #size-cells = <1>;
- reg = < 0x01c20000 0x400 >;
- };
-
hdmi@01c16000 {
status = "okay";
};
diff --git a/sys/boot/fdt/dts/arm/olimex-a20-som-evb.dts b/sys/boot/fdt/dts/arm/olimex-a20-som-evb.dts
index ffe0777..5d99f30 100644
--- a/sys/boot/fdt/dts/arm/olimex-a20-som-evb.dts
+++ b/sys/boot/fdt/dts/arm/olimex-a20-som-evb.dts
@@ -27,14 +27,16 @@
*/
#include "sun7i-a20-olimex-som-evb.dts"
+#include "sun7i-a20-hdmi.dtsi"
/ {
soc@01c00000 {
- ccm@01c20000 {
- compatible = "allwinner,sun4i-ccm";
- #address-cells = <1>;
- #size-cells = <1>;
- reg = < 0x01c20000 0x400 >;
+ hdmi@01c16000 {
+ status = "okay";
+ };
+
+ hdmiaudio {
+ status = "okay";
};
};
};
diff --git a/sys/boot/fdt/dts/arm/olinuxino-lime.dts b/sys/boot/fdt/dts/arm/olinuxino-lime.dts
index b965788..cd39f66 100644
--- a/sys/boot/fdt/dts/arm/olinuxino-lime.dts
+++ b/sys/boot/fdt/dts/arm/olinuxino-lime.dts
@@ -27,14 +27,3 @@
*/
#include "sun4i-a10-olinuxino-lime.dts"
-
-/ {
- soc@01c00000 {
- ccm@01c20000 {
- compatible = "allwinner,sun4i-ccm";
- #address-cells = <1>;
- #size-cells = <1>;
- reg = < 0x01c20000 0x400 >;
- };
- };
-};
diff --git a/sys/boot/fdt/dts/arm/sun4i-a10.dtsi b/sys/boot/fdt/dts/arm/sun4i-a10.dtsi
deleted file mode 100644
index 417ea22..0000000
--- a/sys/boot/fdt/dts/arm/sun4i-a10.dtsi
+++ /dev/null
@@ -1,153 +0,0 @@
-/*-
- * Copyright (c) 2014 Ganbold Tsagaankhuu <ganbold@freebsd.org>
- * 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 <dt-bindings/pinctrl/sun4i-a10.h>
-
-/ {
- compatible = "allwinner,sun4i-a10";
- #address-cells = <1>;
- #size-cells = <1>;
-
- interrupt-parent = <&AINTC>;
-
- aliases {
- soc = &SOC;
- };
-
- SOC: a10 {
- #address-cells = <1>;
- #size-cells = <1>;
- compatible = "simple-bus";
- ranges;
- bus-frequency = <0>;
-
- AINTC: interrupt-controller@01c20400 {
- compatible = "allwinner,sun4i-a10-ic";
- interrupt-controller;
- #address-cells = <0>;
- #interrupt-cells = <1>;
- reg = < 0x01c20400 0x400 >;
- };
-
- sramc@01c00000 {
- compatible = "allwinner,sun4i-sramc";
- #address-cells = <1>;
- #size-cells = <1>;
- reg = < 0x01c00000 0x1000 >;
- };
-
- ccm@01c20000 {
- compatible = "allwinner,sun4i-ccm";
- #address-cells = <1>;
- #size-cells = <1>;
- reg = < 0x01c20000 0x400 >;
- };
-
- timer@01c20c00 {
- compatible = "allwinner,sun4i-a10-timer";
- reg = <0x01c20c00 0x90>;
- interrupts = < 22 >;
- interrupt-parent = <&AINTC>;
- clock-frequency = < 24000000 >;
- };
-
- watchdog@01c20c90 {
- compatible = "allwinner,sun4i-wdt";
- reg = <0x01c20c90 0x08>;
- };
-
-
- GPIO: gpio@01c20800 {
- #gpio-cells = <3>;
- compatible = "allwinner,sun4i-a10-pinctrl";
- gpio-controller;
- reg =< 0x01c20800 0x400 >;
- interrupts = < 28 >;
- interrupt-parent = <&AINTC>;
-
- emac_pins: emac@0 {
- allwinner,pins = "PA0", "PA1", "PA2",
- "PA3", "PA4", "PA5", "PA6",
- "PA7", "PA8", "PA9", "PA10",
- "PA11", "PA12", "PA13", "PA14",
- "PA15", "PA16";
- allwinner,function = "emac";
- allwinner,drive = <SUN4I_PINCTRL_10_MA>;
- allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
- };
- };
-
- usb1: usb@01c14000 {
- compatible = "allwinner,sun4i-a10-ehci", "generic-ehci";
- reg = <0x01c14000 0x1000>;
- interrupts = < 39 >;
- interrupt-parent = <&AINTC>;
- };
-
- usb2: usb@01c1c000 {
- compatible = "allwinner,sun4i-a10-ehci", "generic-ehci";
- reg = <0x01c1c000 0x1000>;
- interrupts = < 40 >;
- interrupt-parent = <&AINTC>;
- };
-
- mmc0: mmc@01c0f000 {
- compatible = "allwinner,sun4i-a10-mmc";
- reg = <0x01c0f000 0x1000>;
- interrupts = <32>;
- interrupt-parent = <&AINTC>;
- status = "disabled";
- };
-
- sata@01c18000 {
- compatible = "allwinner,sun4i-a10-ahci";
- reg = <0x01c18000 0x1000>;
- interrupts = <56>;
- interrupt-parent = <&AINTC>;
- status = "disabled";
- };
-
- UART0: serial@01c28000 {
- compatible = "snps,dw-apb-uart";
- reg = <0x01c28000 0x400>;
- reg-shift = <2>;
- interrupts = <1>;
- interrupt-parent = <&AINTC>;
- current-speed = <115200>;
- clock-frequency = < 24000000 >;
- };
-
- emac@01c0b000 {
- compatible = "allwinner,sun4i-a10-emac";
- reg = <0x01c0b000 0x1000>;
- interrupts = <55>;
- interrupt-parent = <&AINTC>;
- };
- };
-};
-
diff --git a/sys/boot/fdt/dts/arm/sun7i-a20-hdmi.dtsi b/sys/boot/fdt/dts/arm/sun7i-a20-hdmi.dtsi
index 4d4a3c5..2567be5 100644
--- a/sys/boot/fdt/dts/arm/sun7i-a20-hdmi.dtsi
+++ b/sys/boot/fdt/dts/arm/sun7i-a20-hdmi.dtsi
@@ -27,10 +27,65 @@
*/
/ {
+ clocks {
+ pll3: clk@01c20010 {
+ #clock-cells = <1>;
+ compatible = "allwinner,sun4i-a10-pll3-clk";
+ reg = <0x01c20010 0x4>;
+ clock-output-names = "pll3-1x", "pll3-2x";
+ };
+
+ pll7: clk@01c20030 {
+ #clock-cells = <1>;
+ compatible = "allwinner,sun4i-a10-pll3-clk";
+ reg = <0x01c20030 0x4>;
+ clock-output-names = "pll7-1x", "pll7-2x";
+ };
+
+ hdmi_clk: clk@01c20150 {
+ #clock-cells = <0>;
+ compatible = "allwinner,sun4i-a10-hdmi-clk";
+ reg = <0x01c20150 0x4>;
+ clocks = <&pll3 0>, <&pll7 0>, <&pll3 1>, <&pll7 1>;
+ clock-output-names = "hdmi";
+ };
+
+ lcd0_ch0_clk: clk@01c20118 {
+ #clock-cells = <0>;
+ #reset-cells = <0>;
+ compatible = "allwinner,sun4i-a10-lcd-ch0-clk";
+ reg = <0x01c20118 0x4>;
+ clocks = <&pll3 0>, <&pll7 0>, <&pll3 1>, <&pll6 2>;
+ clock-output-names = "lcd0_ch0";
+ };
+
+ lcd0_ch1_clk: clk@01c2012c {
+ #clock-cells = <1>;
+ compatible = "allwinner,sun4i-a10-lcd-ch1-clk";
+ reg = <0x01c2012c 0x4>;
+ clocks = <&pll3 0>, <&pll7 0>, <&pll3 1>, <&pll7 1>;
+ clock-output-names = "lcd0_ch1_sclk1",
+ "lcd0_ch1_sclk2";
+ };
+
+ de_be0_clk: clk@01c20104 {
+ #clock-cells = <0>;
+ #reset-cells = <0>;
+ compatible = "allwinner,sun4i-a10-de-be-clk";
+ reg = <0x01c20104 0x4>;
+ clocks = <&pll3 0>, <&pll7 0>, <&pll5 1>;
+ clock-output-names = "de_be0";
+ };
+ };
+
soc@01c00000 {
hdmi: hdmi@01c16000 {
compatible = "allwinner,sun7i-a20-hdmi";
reg = <0x01c16000 0x1000>;
+ clocks = <&ahb_gates 43>, <&hdmi_clk>,
+ <&lcd0_ch1_clk 1>;
+ clock-names = "ahb", "hdmi",
+ "lcd";
status = "disabled";
};
@@ -43,6 +98,14 @@
compatible = "allwinner,sun7i-a20-fb";
reg = <0x01e60000 0x10000>, /* DEBE0 */
<0x01c0c000 0x1000>; /* LCD0 */
+ clocks = <&ahb_gates 44>, <&dram_gates 26>,
+ <&de_be0_clk>, <&ahb_gates 36>,
+ <&lcd0_ch1_clk 0>, <&lcd0_ch1_clk 1>;
+ clock-names = "ahb_de_be", "dram_de_be",
+ "de_be", "ahb_lcd",
+ "lcd_ch1_sclk1", "lcd_ch1_sclk2";
+ resets = <&de_be0_clk>, <&lcd0_ch0_clk>;
+ reset-names = "de_be", "lcd";
};
};
};
diff --git a/sys/boot/fdt/dts/arm/sun7i-a20.dtsi b/sys/boot/fdt/dts/arm/sun7i-a20.dtsi
deleted file mode 100644
index 43c6e4b..0000000
--- a/sys/boot/fdt/dts/arm/sun7i-a20.dtsi
+++ /dev/null
@@ -1,217 +0,0 @@
-/*-
- * Copyright (c) 2014 Ganbold Tsagaankhuu <ganbold@freebsd.org>
- * 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 <dt-bindings/interrupt-controller/arm-gic.h>
-#include <dt-bindings/pinctrl/sun4i-a10.h>
-
-/ {
- compatible = "allwinner,sun7i-a20";
- #address-cells = <1>;
- #size-cells = <1>;
-
- interrupt-parent = <&GIC>;
-
- aliases {
- soc = &SOC;
- };
-
- timer {
- compatible = "arm,armv7-timer";
- interrupts = <GIC_PPI 13 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>,
- <GIC_PPI 14 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>,
- <GIC_PPI 11 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>,
- <GIC_PPI 10 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>;
- };
-
- SOC: a20 {
- #address-cells = <1>;
- #size-cells = <1>;
- compatible = "simple-bus";
- ranges;
- bus-frequency = <0>;
-
- GIC: interrupt-controller@01c81000 {
- compatible = "arm,gic";
- reg = <0x01c81000 0x1000>, /* Distributor Registers */
- <0x01c82000 0x0100>, /* CPU Interface Registers */
- <0x01c84000 0x2000>,
- <0x01c86000 0x2000>;
- interrupt-controller;
- #interrupt-cells = <3>;
- interrupts = <GIC_PPI 9 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_HIGH)>;
- };
-
- sramc@01c00000 {
- compatible = "allwinner,sun4i-sramc";
- #address-cells = <1>;
- #size-cells = <1>;
- reg = < 0x01c00000 0x1000 >;
- };
-
- cpu-cfg@01c25c00 {
- compatible = "allwinner,sun7i-cpu-cfg";
- #address-cells = <1>;
- #size-cells = <1>;
- reg = < 0x01c25c00 0x400 >;
- };
-
- ccm@01c20000 {
- compatible = "allwinner,sun4i-ccm";
- #address-cells = <1>;
- #size-cells = <1>;
- reg = < 0x01c20000 0x400 >;
- };
-
- timer@01c20c00 {
- compatible = "allwinner,sun4i-a10-timer";
- reg = <0x01c20c00 0x90>;
- interrupts = <GIC_SPI 22 IRQ_TYPE_LEVEL_HIGH>,
- <GIC_SPI 23 IRQ_TYPE_LEVEL_HIGH>,
- <GIC_SPI 24 IRQ_TYPE_LEVEL_HIGH>,
- <GIC_SPI 25 IRQ_TYPE_LEVEL_HIGH>,
- <GIC_SPI 67 IRQ_TYPE_LEVEL_HIGH>,
- <GIC_SPI 68 IRQ_TYPE_LEVEL_HIGH>;
- interrupt-parent = <&GIC>;
- clock-frequency = < 24000000 >;
- };
-
- watchdog@01c20c90 {
- compatible = "allwinner,sun4i-a10-wdt";
- reg = <0x01c20c90 0x10>;
- };
-
- pio: gpio@01c20800 {
- #gpio-cells = <3>;
- compatible = "allwinner,sun7i-a20-pinctrl";
- gpio-controller;
- reg =< 0x01c20800 0x400 >;
- interrupts = <GIC_SPI 28 IRQ_TYPE_LEVEL_HIGH>;
- interrupt-controller;
- #interrupt-cells = <2>;
- interrupt-parent = <&GIC>;
-
- gmac_pins_mii: gmac_mii@0 {
- allwinner,pins = "PA0", "PA1", "PA2",
- "PA3", "PA4", "PA5", "PA6",
- "PA7", "PA8", "PA9", "PA10",
- "PA11", "PA12", "PA13", "PA14",
- "PA15", "PA16";
- allwinner,function = "gmac";
- allwinner,drive = <SUN4I_PINCTRL_10_MA>;
- allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
- };
-
- gmac_pins_rgmii: gmac_rgmii@0 {
- allwinner,pins = "PA0", "PA1", "PA2",
- "PA3", "PA4", "PA5", "PA6",
- "PA7", "PA8", "PA10",
- "PA11", "PA12", "PA13",
- "PA15", "PA16";
- allwinner,function = "gmac";
- allwinner,drive = <SUN4I_PINCTRL_40_MA>;
- allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
- };
-
- };
-
- usb1: usb@01c14000 {
- compatible = "allwinner,sun7i-a20-ehci", "generic-ehci";
- reg = <0x01c14000 0x1000>;
- interrupts = <GIC_SPI 39 IRQ_TYPE_LEVEL_HIGH>;
- interrupt-parent = <&GIC>;
- };
-
- usb2: usb@01c1c000 {
- compatible = "allwinner,sun7i-a20-ehci", "generic-ehci";
- reg = <0x01c1c000 0x1000>;
- interrupts = <GIC_SPI 40 IRQ_TYPE_LEVEL_HIGH>;
- interrupt-parent = <&GIC>;
- };
-
- mmc0: mmc@01c0f000 {
- compatible = "allwinner,sun5i-a13-mmc";
- reg = <0x01c0f000 0x1000>;
- interrupts = <GIC_SPI 32 IRQ_TYPE_LEVEL_HIGH>;
- status = "disabled";
- };
-
- sata@01c18000 {
- compatible = "allwinner,sun4i-a10-ahci";
- reg = <0x01c18000 0x1000>;
- interrupts = <GIC_SPI 56 IRQ_TYPE_LEVEL_HIGH>;
- interrupt-parent = <&GIC>;
- status = "disabled";
- };
-
- UART0: serial@01c28000 {
- compatible = "snps,dw-apb-uart";
- reg = <0x01c28000 0x400>;
- reg-shift = <2>;
- interrupts = <GIC_SPI 1 IRQ_TYPE_LEVEL_HIGH>;
- current-speed = <115200>;
- clock-frequency = < 24000000 >;
- };
-
- emac@01c0b000 {
- compatible = "allwinner,sun4i-a10-emac";
- reg = <0x01c0b000 0x1000>;
- interrupts = <GIC_SPI 55 IRQ_TYPE_LEVEL_HIGH>;
- interrupt-parent = <&GIC>;
- status = "disabled";
- };
-
- gmac@01c50000 {
- compatible = "allwinner,sun7i-a20-gmac";
- reg = <0x01c50000 0x10000>;
- interrupts = <GIC_SPI 85 IRQ_TYPE_LEVEL_HIGH>;
- interrupt-parent = <&GIC>;
- snps,pbl = <2>;
- snps,fixed-burst;
- snps,force_sf_dma_mode;
- status = "disabled";
- #address-cells = <1>;
- #size-cells = <0>;
- };
-
- dma: dma-controller@01c02000 {
- compatible = "allwinner,sun4i-a10-dma";
- reg = <0x01c02000 0x1000>;
- interrupts = <27>;
- interrupt-parent = <&GIC>;
- };
-
- codec: codec@01c22c00 {
- compatible = "allwinner,sun7i-a20-codec";
- reg = <0x01c22c00 0x40>;
- interrupts = <30>;
- interrupt-parent = <&GIC>;
- status = "disabled";
- };
- };
-};
-
diff --git a/sys/boot/forth/loader.conf.5 b/sys/boot/forth/loader.conf.5
index 0320e98..631250c 100644
--- a/sys/boot/forth/loader.conf.5
+++ b/sys/boot/forth/loader.conf.5
@@ -112,6 +112,31 @@ The name must be a subdirectory of
that contains a kernel.
.It Ar kernel_options
Flags to be passed to the kernel.
+.It Ar vfs.root.mountfrom
+Specify the root partition to mount.
+For example:
+.Pp
+.Dl vfs.root.mountfrom="ufs:/dev/da0s1a"
+.Pp
+.Xr loader 8
+automatically calculates the value of this tunable from
+.Pa /etc/fstab
+from the partition the kernel was loaded from.
+The calculated value might be calculated incorrectly when
+.Pa /etc/fstab
+is not available during
+.Xr loader 8
+startup (as during diskless booting from NFS), or if a different
+device is desired by the user.
+The preferred value can be set in
+.Pa /loader.conf .
+.Pp
+The value can also be overridden from the
+.Xr loader 8
+command line.
+This is useful for system recovery when
+.Pa /etc/fstab
+is damaged, lost, or read from the wrong partition.
.It Ar password
Protect boot menu with a password without interrupting
.Ic autoboot
diff --git a/sys/boot/geli/geliboot.c b/sys/boot/geli/geliboot.c
index becbc5f..df40c3b 100644
--- a/sys/boot/geli/geliboot.c
+++ b/sys/boot/geli/geliboot.c
@@ -73,30 +73,34 @@ geli_taste(int read_func(void *vdev, void *priv, off_t off, void *buf,
size_t bytes), struct dsk *dskp, daddr_t lastsector)
{
struct g_eli_metadata md;
- u_char buf[DEV_BSIZE];
+ u_char buf[DEV_GELIBOOT_BSIZE];
int error;
+ off_t alignsector;
- error = read_func(NULL, dskp, (off_t) lastsector * DEV_BSIZE, &buf,
- (size_t) DEV_BSIZE);
+ alignsector = (lastsector * DEV_BSIZE) &
+ ~(off_t)(DEV_GELIBOOT_BSIZE - 1);
+ error = read_func(NULL, dskp, alignsector, &buf, DEV_GELIBOOT_BSIZE);
if (error != 0) {
return (error);
}
- error = eli_metadata_decode(buf, &md);
+ /* Extract the last DEV_BSIZE bytes from the block. */
+ error = eli_metadata_decode(buf + (DEV_GELIBOOT_BSIZE - DEV_BSIZE),
+ &md);
if (error != 0) {
return (error);
}
- if ((md.md_flags & G_ELI_FLAG_ONETIME)) {
- /* Swap device, skip it */
+ if (!(md.md_flags & G_ELI_FLAG_GELIBOOT)) {
+ /* The GELIBOOT feature is not activated */
return (1);
}
- if (!(md.md_flags & G_ELI_FLAG_BOOT)) {
- /* Disk is not GELI boot device, skip it */
+ if ((md.md_flags & G_ELI_FLAG_ONETIME)) {
+ /* Swap device, skip it. */
return (1);
}
if (md.md_iterations < 0) {
- /* XXX TODO: Support loading key files */
- /* Disk does not have a passphrase, skip it */
+ /* XXX TODO: Support loading key files. */
+ /* Disk does not have a passphrase, skip it. */
return (1);
}
geli_e = malloc(sizeof(struct geli_entry));
@@ -143,7 +147,7 @@ geli_attach(struct dsk *dskp, const char *passphrase)
* Prepare Derived-Key from the user passphrase.
*/
if (geli_e->md.md_iterations < 0) {
- /* XXX TODO: Support loading key files */
+ /* XXX TODO: Support loading key files. */
return (1);
} else if (geli_e->md.md_iterations == 0) {
g_eli_crypto_hmac_update(&ctx, geli_e->md.md_salt,
@@ -151,8 +155,8 @@ geli_attach(struct dsk *dskp, const char *passphrase)
g_eli_crypto_hmac_update(&ctx, passphrase,
strlen(passphrase));
} else if (geli_e->md.md_iterations > 0) {
- printf("Calculating GELI Decryption Key disk%dp%d @ %lu "
- "iterations...\n", dskp->unit,
+ printf("Calculating GELI Decryption Key disk%dp%d @ %lu"
+ " iterations...\n", dskp->unit,
(dskp->slice > 0 ? dskp->slice : dskp->part),
geli_e->md.md_iterations);
u_char dkey[G_ELI_USERKEYLEN];
@@ -193,7 +197,7 @@ geli_attach(struct dsk *dskp, const char *passphrase)
}
bzero(&mkey, sizeof(mkey));
- /* Initialize the per-sector IV */
+ /* Initialize the per-sector IV. */
switch (geli_e->sc.sc_ealgo) {
case CRYPTO_AES_XTS:
break;
@@ -207,7 +211,7 @@ geli_attach(struct dsk *dskp, const char *passphrase)
return (0);
}
- /* Disk not found */
+ /* Disk not found. */
return (2);
}
@@ -229,35 +233,49 @@ geli_read(struct dsk *dskp, off_t offset, u_char *buf, size_t bytes)
u_char iv[G_ELI_IVKEYLEN];
u_char *pbuf;
int error;
- off_t os;
+ off_t dstoff;
uint64_t keyno;
- size_t n, nb;
+ size_t n, nsec, secsize;
struct g_eli_key gkey;
+ pbuf = buf;
SLIST_FOREACH_SAFE(geli_e, &geli_head, entries, geli_e_tmp) {
if (geli_same_device(geli_e, dskp) != 0) {
continue;
}
- nb = bytes / DEV_BSIZE;
- for (n = 0; n < nb; n++) {
- os = offset + (n * DEV_BSIZE);
- pbuf = buf + (n * DEV_BSIZE);
+ secsize = geli_e->sc.sc_sectorsize;
+ nsec = bytes / secsize;
+ if (nsec == 0) {
+ /*
+ * A read of less than the GELI sector size has been
+ * requested. The caller provided destination buffer may
+ * not be big enough to boost the read to a full sector,
+ * so just attempt to decrypt the truncated sector.
+ */
+ secsize = bytes;
+ nsec = 1;
+ }
+
+ for (n = 0, dstoff = offset; n < nsec; n++, dstoff += secsize) {
- g_eli_crypto_ivgen(&geli_e->sc, os, iv, G_ELI_IVKEYLEN);
+ g_eli_crypto_ivgen(&geli_e->sc, dstoff, iv,
+ G_ELI_IVKEYLEN);
- /* Get the key that corresponds to this offset */
- keyno = (os >> G_ELI_KEY_SHIFT) / DEV_BSIZE;
+ /* Get the key that corresponds to this offset. */
+ keyno = (dstoff >> G_ELI_KEY_SHIFT) / secsize;
g_eli_key_fill(&geli_e->sc, &gkey, keyno);
error = geliboot_crypt(geli_e->sc.sc_ealgo, 0, pbuf,
- DEV_BSIZE, gkey.gek_key, geli_e->sc.sc_ekeylen, iv);
+ secsize, gkey.gek_key,
+ geli_e->sc.sc_ekeylen, iv);
if (error != 0) {
bzero(&gkey, sizeof(gkey));
printf("Failed to decrypt in geli_read()!");
return (error);
}
+ pbuf += secsize;
}
bzero(&gkey, sizeof(gkey));
return (0);
diff --git a/sys/boot/geli/geliboot.h b/sys/boot/geli/geliboot.h
index 36bebcc..61e64f1 100644
--- a/sys/boot/geli/geliboot.h
+++ b/sys/boot/geli/geliboot.h
@@ -55,6 +55,9 @@
#ifndef DEV_BSIZE
#define DEV_BSIZE 512
#endif
+#ifndef DEV_GELIBOOT_BSIZE
+#define DEV_GELIBOOT_BSIZE 4096
+#endif
#ifndef MIN
#define MIN(a,b) (((a) < (b)) ? (a) : (b))
diff --git a/sys/boot/i386/libi386/biosdisk.c b/sys/boot/i386/libi386/biosdisk.c
index 1c54769..38ca85d 100644
--- a/sys/boot/i386/libi386/biosdisk.c
+++ b/sys/boot/i386/libi386/biosdisk.c
@@ -706,15 +706,38 @@ bd_read(struct disk_devdesc *dev, daddr_t dblk, int blks, caddr_t dest)
{
#ifdef LOADER_GELI_SUPPORT
struct dsk dskp;
- off_t p_off;
- int err, n;
+ off_t p_off, diff;
+ daddr_t alignlba;
+ int err, n, alignblks;
+ char *tmpbuf;
/* if we already know there is no GELI, skip the rest */
if (geli_status[dev->d_unit][dev->d_slice] != ISGELI_YES)
return (bd_io(dev, dblk, blks, dest, 0));
if (geli_status[dev->d_unit][dev->d_slice] == ISGELI_YES) {
- err = bd_io(dev, dblk, blks, dest, 0);
+ /*
+ * Align reads to DEV_GELIBOOT_BSIZE bytes because partial
+ * sectors cannot be decrypted. Round the requested LBA down to
+ * nearest multiple of DEV_GELIBOOT_BSIZE bytes.
+ */
+ alignlba = dblk &
+ ~(daddr_t)((DEV_GELIBOOT_BSIZE / BIOSDISK_SECSIZE) - 1);
+ /*
+ * Round number of blocks to read up to nearest multiple of
+ * DEV_GELIBOOT_BSIZE
+ */
+ alignblks = blks + (dblk - alignlba) +
+ ((DEV_GELIBOOT_BSIZE / BIOSDISK_SECSIZE) - 1) &
+ ~(int)((DEV_GELIBOOT_BSIZE / BIOSDISK_SECSIZE) - 1);
+ diff = (dblk - alignlba) * BIOSDISK_SECSIZE;
+ /*
+ * Use a temporary buffer here because the buffer provided by
+ * the caller may be too small.
+ */
+ tmpbuf = alloca(alignblks * BIOSDISK_SECSIZE);
+
+ err = bd_io(dev, alignlba, alignblks, tmpbuf, 0);
if (err)
return (err);
@@ -726,13 +749,14 @@ bd_read(struct disk_devdesc *dev, daddr_t dblk, int blks, caddr_t dest)
dskp.start = dev->d_offset;
/* GELI needs the offset relative to the partition start */
- p_off = dblk - dskp.start;
+ p_off = alignlba - dskp.start;
- err = geli_read(&dskp, p_off * BIOSDISK_SECSIZE, dest,
- blks * BIOSDISK_SECSIZE);
+ err = geli_read(&dskp, p_off * BIOSDISK_SECSIZE, tmpbuf,
+ alignblks * BIOSDISK_SECSIZE);
if (err)
return (err);
+ bcopy(tmpbuf + diff, dest, blks * BIOSDISK_SECSIZE);
return (0);
}
#endif /* LOADER_GELI_SUPPORT */
diff --git a/sys/boot/i386/zfsboot/zfsboot.c b/sys/boot/i386/zfsboot/zfsboot.c
index 4b371dc..71d6cfa 100644
--- a/sys/boot/i386/zfsboot/zfsboot.c
+++ b/sys/boot/i386/zfsboot/zfsboot.c
@@ -46,18 +46,20 @@ __FBSDID("$FreeBSD$");
#include "libzfs.h"
-#define ARGS 0x900
-#define NOPT 14
-#define NDEV 3
+#define ARGS 0x900
+#define NOPT 14
+#define NDEV 3
-#define BIOS_NUMDRIVES 0x475
-#define DRV_HARD 0x80
-#define DRV_MASK 0x7f
+#define BIOS_NUMDRIVES 0x475
+#define DRV_HARD 0x80
+#define DRV_MASK 0x7f
-#define TYPE_AD 0
-#define TYPE_DA 1
-#define TYPE_MAXHARD TYPE_DA
-#define TYPE_FD 2
+#define TYPE_AD 0
+#define TYPE_DA 1
+#define TYPE_MAXHARD TYPE_DA
+#define TYPE_FD 2
+
+#define DEV_GELIBOOT_BSIZE 4096
extern uint32_t _end;
@@ -104,13 +106,13 @@ static struct bios_smap smap;
/*
* The minimum amount of memory to reserve in bios_extmem for the heap.
*/
-#define HEAP_MIN (3 * 1024 * 1024)
+#define HEAP_MIN (3 * 1024 * 1024)
static char *heap_next;
static char *heap_end;
/* Buffers that must not span a 64k boundary. */
-#define READ_BUF_SIZE 8192
+#define READ_BUF_SIZE 8192
struct dmadat {
char rdbuf[READ_BUF_SIZE]; /* for reading large things */
char secbuf[READ_BUF_SIZE]; /* for MBR/disklabel */
@@ -198,8 +200,9 @@ static int
vdev_read(vdev_t *vdev, void *priv, off_t off, void *buf, size_t bytes)
{
char *p;
- daddr_t lba;
- unsigned int nb;
+ daddr_t lba, alignlba;
+ off_t alignoff, diff;
+ unsigned int nb, alignnb;
struct dsk *dsk = (struct dsk *) priv;
if ((off & (DEV_BSIZE - 1)) || (bytes & (DEV_BSIZE - 1)))
@@ -208,24 +211,52 @@ vdev_read(vdev_t *vdev, void *priv, off_t off, void *buf, size_t bytes)
p = buf;
lba = off / DEV_BSIZE;
lba += dsk->start;
+ /* Align reads to 4k else 4k sector GELIs will not decrypt. */
+ alignoff = off & ~ (off_t)(DEV_GELIBOOT_BSIZE - 1);
+ /* Round LBA down to nearest multiple of DEV_GELIBOOT_BSIZE bytes. */
+ alignlba = alignoff / DEV_BSIZE;
+ /*
+ * The read must be aligned to DEV_GELIBOOT_BSIZE bytes relative to the
+ * start of the GELI partition, not the start of the actual disk.
+ */
+ alignlba += dsk->start;
+ diff = (lba - alignlba) * DEV_BSIZE;
+
while (bytes > 0) {
nb = bytes / DEV_BSIZE;
if (nb > READ_BUF_SIZE / DEV_BSIZE)
nb = READ_BUF_SIZE / DEV_BSIZE;
- if (drvread(dsk, dmadat->rdbuf, lba, nb))
+ /*
+ * Ensure that the read size plus the leading offset does not
+ * exceed the size of the read buffer.
+ */
+ if (nb * DEV_BSIZE + diff > READ_BUF_SIZE)
+ nb -= diff / DEV_BSIZE;
+ /*
+ * Round the number of blocks to read up to the nearest multiple
+ * of DEV_GELIBOOT_BSIZE.
+ */
+ alignnb = nb + (diff / DEV_BSIZE) +
+ (DEV_GELIBOOT_BSIZE / DEV_BSIZE - 1) & ~
+ (unsigned int)(DEV_GELIBOOT_BSIZE / DEV_BSIZE - 1);
+
+ if (drvread(dsk, dmadat->rdbuf, alignlba, alignnb))
return -1;
#ifdef LOADER_GELI_SUPPORT
/* decrypt */
if (is_geli(dsk) == 0) {
- if (geli_read(dsk, ((lba - dsk->start) * DEV_BSIZE),
- dmadat->rdbuf, nb * DEV_BSIZE))
- return (-1);
+ if (geli_read(dsk, ((alignlba - dsk->start) *
+ DEV_BSIZE), dmadat->rdbuf, alignnb * DEV_BSIZE))
+ return (-1);
}
#endif
- memcpy(p, dmadat->rdbuf, nb * DEV_BSIZE);
+ memcpy(p, dmadat->rdbuf + diff, nb * DEV_BSIZE);
p += nb * DEV_BSIZE;
lba += nb;
+ alignlba += alignnb;
bytes -= nb * DEV_BSIZE;
+ /* Don't need the leading offset after the first block. */
+ diff = 0;
}
return 0;
diff --git a/sys/boot/userboot/test/test.c b/sys/boot/userboot/test/test.c
index d5707de..bf64e90 100644
--- a/sys/boot/userboot/test/test.c
+++ b/sys/boot/userboot/test/test.c
@@ -273,7 +273,7 @@ test_diskioctl(void *arg, int unit, u_long cmd, void *data)
break;
default:
return (ENOTTY);
- };
+ }
return (0);
}
diff --git a/sys/boot/userboot/userboot/elf64_freebsd.c b/sys/boot/userboot/userboot/elf64_freebsd.c
index 36129ef..19d369d 100644
--- a/sys/boot/userboot/userboot/elf64_freebsd.c
+++ b/sys/boot/userboot/userboot/elf64_freebsd.c
@@ -141,7 +141,7 @@ elf64_exec(struct preloaded_file *fp)
dev_cleanup();
- stack[0] = 0; /* return address */;
+ stack[0] = 0; /* return address */
stack[1] = modulep;
stack[2] = kernend;
CALLBACK(copyin, stack, 0x1000, sizeof(stack));
diff --git a/sys/cam/ctl/ctl_ha.c b/sys/cam/ctl/ctl_ha.c
index 57466ec..f1f5b8c 100644
--- a/sys/cam/ctl/ctl_ha.c
+++ b/sys/cam/ctl/ctl_ha.c
@@ -356,7 +356,7 @@ ctl_ha_send(struct ha_softc *softc)
printf("%s: sosend() error %d\n", __func__, error);
return;
}
- };
+ }
}
static void
diff --git a/sys/cam/scsi/scsi_all.h b/sys/cam/scsi/scsi_all.h
index f2b4b21..997a58c 100644
--- a/sys/cam/scsi/scsi_all.h
+++ b/sys/cam/scsi/scsi_all.h
@@ -2291,6 +2291,8 @@ struct scsi_vpd_id_descriptor
#define SVPD_ID_TYPE_LUNGRP 0x06
#define SVPD_ID_TYPE_MD5_LUN_ID 0x07
#define SVPD_ID_TYPE_SCSI_NAME 0x08
+#define SVPD_ID_TYPE_PROTO 0x09
+#define SVPD_ID_TYPE_UUID 0x0a
#define SVPD_ID_TYPE_MASK 0x0f
u_int8_t reserved;
u_int8_t length;
diff --git a/sys/cam/scsi/scsi_ch.c b/sys/cam/scsi/scsi_ch.c
index 8e069db..59ec6aa 100644
--- a/sys/cam/scsi/scsi_ch.c
+++ b/sys/cam/scsi/scsi_ch.c
@@ -648,10 +648,14 @@ chdone(struct cam_periph *periph, union ccb *done_ccb)
softc->sc_counts[CHET_IE],
PLURAL(softc->sc_counts[CHET_IE]));
#undef PLURAL
+ if (announce_buf[0] != '\0') {
+ xpt_announce_periph(periph, announce_buf);
+ xpt_announce_quirks(periph, softc->quirks,
+ CH_Q_BIT_STRING);
+ }
} else {
int error;
- announce_buf[0] = '\0';
error = cherror(done_ccb, CAM_RETRY_SELTO,
SF_RETRY_UA | SF_NO_PRINT);
/*
@@ -715,14 +719,8 @@ chdone(struct cam_periph *periph, union ccb *done_ccb)
cam_periph_invalidate(periph);
- announce_buf[0] = '\0';
}
}
- if (announce_buf[0] != '\0') {
- xpt_announce_periph(periph, announce_buf);
- xpt_announce_quirks(periph, softc->quirks,
- CH_Q_BIT_STRING);
- }
softc->state = CH_STATE_NORMAL;
free(mode_header, M_SCSICH);
/*
diff --git a/sys/cddl/contrib/opensolaris/uts/common/dtrace/dtrace.c b/sys/cddl/contrib/opensolaris/uts/common/dtrace/dtrace.c
index 7ec7dfd..0012975 100644
--- a/sys/cddl/contrib/opensolaris/uts/common/dtrace/dtrace.c
+++ b/sys/cddl/contrib/opensolaris/uts/common/dtrace/dtrace.c
@@ -117,6 +117,7 @@
#include <sys/ctype.h>
#include <sys/eventhandler.h>
#include <sys/limits.h>
+#include <sys/linker.h>
#include <sys/kdb.h>
#include <sys/kernel.h>
#include <sys/malloc.h>
@@ -11916,6 +11917,21 @@ dtrace_buffer_activate(dtrace_state_t *state)
dtrace_interrupt_enable(cookie);
}
+#ifdef __FreeBSD__
+/*
+ * Activate the specified per-CPU buffer. This is used instead of
+ * dtrace_buffer_activate() when APs have not yet started, i.e. when
+ * activating anonymous state.
+ */
+static void
+dtrace_buffer_activate_cpu(dtrace_state_t *state, int cpu)
+{
+
+ if (state->dts_buffer[cpu].dtb_tomax != NULL)
+ state->dts_buffer[cpu].dtb_flags &= ~DTRACEBUF_INACTIVE;
+}
+#endif
+
static int
dtrace_buffer_alloc(dtrace_buffer_t *bufs, size_t size, int flags,
processorid_t cpu, int *factor)
@@ -12532,9 +12548,15 @@ dtrace_enabling_dump(dtrace_enabling_t *enab)
for (i = 0; i < enab->dten_ndesc; i++) {
dtrace_probedesc_t *desc = &enab->dten_desc[i]->dted_probe;
+#ifdef __FreeBSD__
+ printf("dtrace: enabling probe %d (%s:%s:%s:%s)\n", i,
+ desc->dtpd_provider, desc->dtpd_mod,
+ desc->dtpd_func, desc->dtpd_name);
+#else
cmn_err(CE_NOTE, "enabling probe %d (%s:%s:%s:%s)", i,
desc->dtpd_provider, desc->dtpd_mod,
desc->dtpd_func, desc->dtpd_name);
+#endif
}
}
@@ -13185,19 +13207,91 @@ dtrace_dof_char(char c)
return (c - 'a' + 10);
}
/* Should not reach here. */
- return (0);
+ return (UCHAR_MAX);
}
#endif /* __FreeBSD__ */
static dof_hdr_t *
dtrace_dof_property(const char *name)
{
+#ifdef __FreeBSD__
+ uint8_t *dofbuf;
+ u_char *data, *eol;
+ caddr_t doffile;
+ size_t bytes, len, i;
+ dof_hdr_t *dof;
+ u_char c1, c2;
+
+ dof = NULL;
+
+ doffile = preload_search_by_type("dtrace_dof");
+ if (doffile == NULL)
+ return (NULL);
+
+ data = preload_fetch_addr(doffile);
+ len = preload_fetch_size(doffile);
+ for (;;) {
+ /* Look for the end of the line. All lines end in a newline. */
+ eol = memchr(data, '\n', len);
+ if (eol == NULL)
+ return (NULL);
+
+ if (strncmp(name, data, strlen(name)) == 0)
+ break;
+
+ eol++; /* skip past the newline */
+ len -= eol - data;
+ data = eol;
+ }
+
+ /* We've found the data corresponding to the specified key. */
+
+ data += strlen(name) + 1; /* skip past the '=' */
+ len = eol - data;
+ bytes = len / 2;
+
+ if (bytes < sizeof(dof_hdr_t)) {
+ dtrace_dof_error(NULL, "truncated header");
+ goto doferr;
+ }
+
+ /*
+ * Each byte is represented by the two ASCII characters in its hex
+ * representation.
+ */
+ dofbuf = malloc(bytes, M_SOLARIS, M_WAITOK);
+ for (i = 0; i < bytes; i++) {
+ c1 = dtrace_dof_char(data[i * 2]);
+ c2 = dtrace_dof_char(data[i * 2 + 1]);
+ if (c1 == UCHAR_MAX || c2 == UCHAR_MAX) {
+ dtrace_dof_error(NULL, "invalid hex char in DOF");
+ goto doferr;
+ }
+ dofbuf[i] = c1 * 16 + c2;
+ }
+
+ dof = (dof_hdr_t *)dofbuf;
+ if (bytes < dof->dofh_loadsz) {
+ dtrace_dof_error(NULL, "truncated DOF");
+ goto doferr;
+ }
+
+ if (dof->dofh_loadsz >= dtrace_dof_maxsize) {
+ dtrace_dof_error(NULL, "oversized DOF");
+ goto doferr;
+ }
+
+ return (dof);
+
+doferr:
+ free(dof, M_SOLARIS);
+ return (NULL);
+#else /* __FreeBSD__ */
uchar_t *buf;
uint64_t loadsz;
unsigned int len, i;
dof_hdr_t *dof;
-#ifdef illumos
/*
* Unfortunately, array of values in .conf files are always (and
* only) interpreted to be integer arrays. We must read our DOF
@@ -13231,49 +13325,9 @@ dtrace_dof_property(const char *name)
dof = kmem_alloc(loadsz, KM_SLEEP);
bcopy(buf, dof, loadsz);
ddi_prop_free(buf);
-#else
- char *p;
- char *p_env;
-
- if ((p_env = kern_getenv(name)) == NULL)
- return (NULL);
-
- len = strlen(p_env) / 2;
-
- buf = kmem_alloc(len, KM_SLEEP);
-
- dof = (dof_hdr_t *) buf;
-
- p = p_env;
-
- for (i = 0; i < len; i++) {
- buf[i] = (dtrace_dof_char(p[0]) << 4) |
- dtrace_dof_char(p[1]);
- p += 2;
- }
-
- freeenv(p_env);
-
- if (len < sizeof (dof_hdr_t)) {
- kmem_free(buf, 0);
- dtrace_dof_error(NULL, "truncated header");
- return (NULL);
- }
-
- if (len < (loadsz = dof->dofh_loadsz)) {
- kmem_free(buf, 0);
- dtrace_dof_error(NULL, "truncated DOF");
- return (NULL);
- }
-
- if (loadsz >= dtrace_dof_maxsize) {
- kmem_free(buf, 0);
- dtrace_dof_error(NULL, "oversized DOF");
- return (NULL);
- }
-#endif
return (dof);
+#endif /* !__FreeBSD__ */
}
static void
@@ -14332,7 +14386,7 @@ static dtrace_state_t *
#ifdef illumos
dtrace_state_create(dev_t *devp, cred_t *cr)
#else
-dtrace_state_create(struct cdev *dev)
+dtrace_state_create(struct cdev *dev, struct ucred *cred __unused)
#endif
{
#ifdef illumos
@@ -14945,6 +14999,18 @@ dtrace_state_go(dtrace_state_t *state, processorid_t *cpu)
if (state->dts_activity == DTRACE_ACTIVITY_WARMUP)
state->dts_activity = DTRACE_ACTIVITY_ACTIVE;
+#ifdef __FreeBSD__
+ /*
+ * We enable anonymous tracing before APs are started, so we must
+ * activate buffers using the current CPU.
+ */
+ if (state == dtrace_anon.dta_state)
+ for (int i = 0; i < NCPU; i++)
+ dtrace_buffer_activate_cpu(state, i);
+ else
+ dtrace_xcall(DTRACE_CPUALL,
+ (dtrace_xcall_t)dtrace_buffer_activate, state);
+#else
/*
* Regardless of whether or not now we're in ACTIVE or DRAINING, we
* want each CPU to transition its principal buffer out of the
@@ -14955,6 +15021,7 @@ dtrace_state_go(dtrace_state_t *state, processorid_t *cpu)
*/
dtrace_xcall(DTRACE_CPUALL,
(dtrace_xcall_t)dtrace_buffer_activate, state);
+#endif
goto out;
err:
@@ -15316,11 +15383,7 @@ dtrace_anon_property(void)
* If we haven't allocated an anonymous state, we'll do so now.
*/
if ((state = dtrace_anon.dta_state) == NULL) {
-#ifdef illumos
state = dtrace_state_create(NULL, NULL);
-#else
- state = dtrace_state_create(NULL);
-#endif
dtrace_anon.dta_state = state;
if (state == NULL) {
@@ -17001,7 +17064,7 @@ dtrace_open(struct cdev *dev, int oflags, int devtype, struct thread *td)
state = dtrace_state_create(devp, cred_p);
#else
- state = dtrace_state_create(dev);
+ state = dtrace_state_create(dev, NULL);
devfs_set_cdevpriv(state, dtrace_dtr);
#endif
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 f944903..534dfb2 100644
--- a/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/arc.c
+++ b/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/arc.c
@@ -132,6 +132,7 @@
#include <sys/multilist.h>
#ifdef _KERNEL
#include <sys/dnlc.h>
+#include <sys/racct.h>
#endif
#include <sys/callb.h>
#include <sys/kstat.h>
@@ -4503,6 +4504,14 @@ top:
demand, prefetch, !HDR_ISTYPE_METADATA(hdr),
data, metadata, misses);
#ifdef _KERNEL
+#ifdef RACCT
+ if (racct_enable) {
+ PROC_LOCK(curproc);
+ racct_add_force(curproc, RACCT_READBPS, size);
+ racct_add_force(curproc, RACCT_READIOPS, 1);
+ PROC_UNLOCK(curproc);
+ }
+#endif /* RACCT */
curthread->td_ru.ru_inblock++;
#endif
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 b60236f..af8d366 100644
--- a/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dmu.c
+++ b/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dmu.c
@@ -47,6 +47,7 @@
#include <sys/sa.h>
#include <sys/zfeature.h>
#ifdef _KERNEL
+#include <sys/racct.h>
#include <sys/vm.h>
#include <sys/zfs_znode.h>
#endif
@@ -427,6 +428,15 @@ dmu_buf_hold_array_by_dnode(dnode_t *dn, uint64_t offset, uint64_t length,
}
dbp = kmem_zalloc(sizeof (dmu_buf_t *) * nblks, KM_SLEEP);
+#if defined(_KERNEL) && defined(RACCT)
+ if (racct_enable && !read) {
+ PROC_LOCK(curproc);
+ racct_add_force(curproc, RACCT_WRITEBPS, length);
+ racct_add_force(curproc, RACCT_WRITEIOPS, nblks);
+ PROC_UNLOCK(curproc);
+ }
+#endif
+
zio = zio_root(dn->dn_objset->os_spa, NULL, NULL, ZIO_FLAG_CANFAIL);
blkid = dbuf_whichblock(dn, 0, offset);
for (i = 0; i < nblks; i++) {
@@ -1422,7 +1432,15 @@ dmu_assign_arcbuf(dmu_buf_t *handle, uint64_t offset, arc_buf_t *buf,
DBUF_GET_BUFC_TYPE(db) == ARC_BUFC_DATA) {
#ifdef _KERNEL
curthread->td_ru.ru_oublock++;
-#endif
+#ifdef RACCT
+ if (racct_enable) {
+ PROC_LOCK(curproc);
+ racct_add_force(curproc, RACCT_WRITEBPS, blksz);
+ racct_add_force(curproc, RACCT_WRITEIOPS, 1);
+ PROC_UNLOCK(curproc);
+ }
+#endif /* RACCT */
+#endif /* _KERNEL */
dbuf_assign_arcbuf(db, buf, tx);
dbuf_rele(db, FTAG);
} else {
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 30a0710..95e741f 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
@@ -48,7 +48,7 @@
#include <sys/zil_impl.h>
#include <sys/dsl_userhold.h>
-#ifdef __FreeBSD__
+#if defined(__FreeBSD__) && defined(_KERNEL)
#include <sys/sysctl.h>
#include <sys/types.h>
#endif
@@ -132,7 +132,7 @@ int zfs_delay_min_dirty_percent = 60;
uint64_t zfs_delay_scale = 1000 * 1000 * 1000 / 2000;
-#ifdef __FreeBSD__
+#if defined(__FreeBSD__) && defined(_KERNEL)
extern int zfs_vdev_async_write_active_max_dirty_percent;
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 f69a5e7..2e039ed 100644
--- a/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/spa.c
+++ b/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/spa.c
@@ -929,7 +929,7 @@ spa_taskqs_init(spa_t *spa, zio_type_t t, zio_taskq_type_t q)
* than the other taskqs.
*/
if (t == ZIO_TYPE_WRITE && q == ZIO_TASKQ_ISSUE)
- pri--;
+ pri++;
tq = taskq_create_proc(name, value, pri, 50,
INT_MAX, spa->spa_proc, flags);
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 6080594..63350b3 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
@@ -55,6 +55,11 @@
#include "zfs_prop.h"
#include <sys/zfeature.h>
+#if defined(__FreeBSD__) && defined(_KERNEL)
+#include <sys/types.h>
+#include <sys/sysctl.h>
+#endif
+
/*
* SPA locking
*
@@ -255,35 +260,6 @@ int zfs_flags = 0;
* in leaked space, or worse.
*/
boolean_t zfs_recover = B_FALSE;
-SYSCTL_DECL(_vfs_zfs);
-SYSCTL_INT(_vfs_zfs, OID_AUTO, recover, CTLFLAG_RWTUN, &zfs_recover, 0,
- "Try to recover from otherwise-fatal errors.");
-
-static int
-sysctl_vfs_zfs_debug_flags(SYSCTL_HANDLER_ARGS)
-{
- int err, val;
-
- val = zfs_flags;
- err = sysctl_handle_int(oidp, &val, 0, req);
- if (err != 0 || req->newptr == NULL)
- return (err);
-
- /*
- * ZFS_DEBUG_MODIFY must be enabled prior to boot so all
- * arc buffers in the system have the necessary additional
- * checksum data. However, it is safe to disable at any
- * time.
- */
- if (!(zfs_flags & ZFS_DEBUG_MODIFY))
- val &= ~ZFS_DEBUG_MODIFY;
- zfs_flags = val;
-
- return (0);
-}
-SYSCTL_PROC(_vfs_zfs, OID_AUTO, debug_flags,
- CTLTYPE_UINT | CTLFLAG_MPSAFE | CTLFLAG_RWTUN, 0, sizeof(int),
- sysctl_vfs_zfs_debug_flags, "IU", "Debug flags for ZFS testing.");
/*
* If destroy encounters an EIO while reading metadata (e.g. indirect
@@ -325,26 +301,18 @@ boolean_t zfs_free_leak_on_eio = B_FALSE;
* in a system panic.
*/
uint64_t zfs_deadman_synctime_ms = 1000000ULL;
-SYSCTL_UQUAD(_vfs_zfs, OID_AUTO, deadman_synctime_ms, CTLFLAG_RDTUN,
- &zfs_deadman_synctime_ms, 0,
- "Stalled ZFS I/O expiration time in milliseconds");
/*
* Check time in milliseconds. This defines the frequency at which we check
* for hung I/O.
*/
uint64_t zfs_deadman_checktime_ms = 5000ULL;
-SYSCTL_UQUAD(_vfs_zfs, OID_AUTO, deadman_checktime_ms, CTLFLAG_RDTUN,
- &zfs_deadman_checktime_ms, 0,
- "Period of checks for stalled ZFS I/O in milliseconds");
/*
* Default value of -1 for zfs_deadman_enabled is resolved in
* zfs_deadman_init()
*/
int zfs_deadman_enabled = -1;
-SYSCTL_INT(_vfs_zfs, OID_AUTO, deadman_enabled, CTLFLAG_RDTUN,
- &zfs_deadman_enabled, 0, "Kernel panic on stalled ZFS I/O");
/*
* The worst case is single-sector max-parity RAID-Z blocks, in which
@@ -356,8 +324,50 @@ SYSCTL_INT(_vfs_zfs, OID_AUTO, deadman_enabled, CTLFLAG_RDTUN,
* (VDEV_RAIDZ_MAXPARITY + 1) * SPA_DVAS_PER_BP * 2 == 24
*/
int spa_asize_inflation = 24;
+
+#if defined(__FreeBSD__) && defined(_KERNEL)
+SYSCTL_DECL(_vfs_zfs);
+SYSCTL_INT(_vfs_zfs, OID_AUTO, recover, CTLFLAG_RWTUN, &zfs_recover, 0,
+ "Try to recover from otherwise-fatal errors.");
+
+static int
+sysctl_vfs_zfs_debug_flags(SYSCTL_HANDLER_ARGS)
+{
+ int err, val;
+
+ val = zfs_flags;
+ err = sysctl_handle_int(oidp, &val, 0, req);
+ if (err != 0 || req->newptr == NULL)
+ return (err);
+
+ /*
+ * ZFS_DEBUG_MODIFY must be enabled prior to boot so all
+ * arc buffers in the system have the necessary additional
+ * checksum data. However, it is safe to disable at any
+ * time.
+ */
+ if (!(zfs_flags & ZFS_DEBUG_MODIFY))
+ val &= ~ZFS_DEBUG_MODIFY;
+ zfs_flags = val;
+
+ return (0);
+}
+
+SYSCTL_PROC(_vfs_zfs, OID_AUTO, debug_flags,
+ CTLTYPE_UINT | CTLFLAG_MPSAFE | CTLFLAG_RWTUN, 0, sizeof(int),
+ sysctl_vfs_zfs_debug_flags, "IU", "Debug flags for ZFS testing.");
+
+SYSCTL_UQUAD(_vfs_zfs, OID_AUTO, deadman_synctime_ms, CTLFLAG_RDTUN,
+ &zfs_deadman_synctime_ms, 0,
+ "Stalled ZFS I/O expiration time in milliseconds");
+SYSCTL_UQUAD(_vfs_zfs, OID_AUTO, deadman_checktime_ms, CTLFLAG_RDTUN,
+ &zfs_deadman_checktime_ms, 0,
+ "Period of checks for stalled ZFS I/O in milliseconds");
+SYSCTL_INT(_vfs_zfs, OID_AUTO, deadman_enabled, CTLFLAG_RDTUN,
+ &zfs_deadman_enabled, 0, "Kernel panic on stalled ZFS I/O");
SYSCTL_INT(_vfs_zfs, OID_AUTO, spa_asize_inflation, CTLFLAG_RWTUN,
&spa_asize_inflation, 0, "Worst case inflation factor for single sector writes");
+#endif
#ifndef illumos
#ifdef _KERNEL
diff --git a/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/vdev_geom.c b/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/vdev_geom.c
index 1fd9623..f459655 100644
--- a/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/vdev_geom.c
+++ b/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/vdev_geom.c
@@ -679,7 +679,15 @@ vdev_geom_open_by_path(vdev_t *vd, int check_guid)
g_topology_unlock();
vdev_geom_read_guids(cp, &pguid, &vguid);
g_topology_lock();
- if (pguid != spa_guid(vd->vdev_spa) ||
+ /*
+ * Check that the label's vdev guid matches the
+ * desired guid. If the label has a pool guid,
+ * check that it matches too. (Inactive spares
+ * and L2ARCs do not have any pool guid in the
+ * label.)
+ */
+ if ((pguid != 0 &&
+ pguid != spa_guid(vd->vdev_spa)) ||
vguid != vd->vdev_guid) {
vdev_geom_close_locked(vd);
cp = NULL;
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 05e16ba..6dc0ad3 100644
--- a/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zio.c
+++ b/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zio.c
@@ -128,11 +128,13 @@ SYSCTL_INT(_vfs_zfs, OID_AUTO, sync_pass_rewrite, CTLFLAG_RDTUN,
boolean_t zio_requeue_io_start_cut_in_line = B_TRUE;
+#ifdef illumos
#ifdef ZFS_DEBUG
int zio_buf_debug_limit = 16384;
#else
int zio_buf_debug_limit = 0;
#endif
+#endif
void
zio_init(void)
@@ -154,7 +156,7 @@ zio_init(void)
size_t size = (c + 1) << SPA_MINBLOCKSHIFT;
size_t p2 = size;
size_t align = 0;
- size_t cflags = (size > zio_buf_debug_limit) ? KMC_NODEBUG : 0;
+ int cflags = zio_exclude_metadata ? KMC_NODEBUG : 0;
while (!ISP2(p2))
p2 &= p2 - 1;
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 3818616..7c25ddd 100644
--- a/sys/cddl/contrib/opensolaris/uts/common/sys/fs/zfs.h
+++ b/sys/cddl/contrib/opensolaris/uts/common/sys/fs/zfs.h
@@ -785,6 +785,10 @@ typedef struct ddt_histogram {
#define ZFS_DRIVER "zfs"
#define ZFS_DEV_NAME "zfs"
#define ZFS_DEV "/dev/" ZFS_DEV_NAME
+#define ZFS_DISK_ROOT "/dev/dsk"
+#define ZFS_DISK_ROOTD ZFS_DISK_ROOT "/"
+#define ZFS_RDISK_ROOT "/dev/rdsk"
+#define ZFS_RDISK_ROOTD ZFS_RDISK_ROOT "/"
/* general zvol path */
#define ZVOL_DIR "/dev/zvol"
diff --git a/sys/cddl/dev/dtrace/aarch64/dtrace_isa.c b/sys/cddl/dev/dtrace/aarch64/dtrace_isa.c
index 3d7e044..442367f 100644
--- a/sys/cddl/dev/dtrace/aarch64/dtrace_isa.c
+++ b/sys/cddl/dev/dtrace/aarch64/dtrace_isa.c
@@ -57,6 +57,7 @@
*/
#define MAX_FUNCTION_SIZE 0x10000
#define MAX_PROLOGUE_SIZE 0x100
+#define MAX_USTACK_DEPTH 2048
uint8_t dtrace_fuword8_nocheck(void *);
uint16_t dtrace_fuword16_nocheck(void *);
@@ -111,11 +112,127 @@ dtrace_getpcstack(pc_t *pcstack, int pcstack_limit, int aframes,
}
}
+static int
+dtrace_getustack_common(uint64_t *pcstack, int pcstack_limit, uintptr_t pc,
+ uintptr_t fp)
+{
+ volatile uint16_t *flags =
+ (volatile uint16_t *)&cpu_core[curcpu].cpuc_dtrace_flags;
+ int ret = 0;
+ uintptr_t oldfp;
+
+ ASSERT(pcstack == NULL || pcstack_limit > 0);
+
+ while (pc != 0) {
+ /*
+ * We limit the number of times we can go around this
+ * loop to account for a circular stack.
+ */
+ if (ret++ >= MAX_USTACK_DEPTH) {
+ *flags |= CPU_DTRACE_BADSTACK;
+ cpu_core[curcpu].cpuc_dtrace_illval = fp;
+ break;
+ }
+
+ if (pcstack != NULL) {
+ *pcstack++ = (uint64_t)pc;
+ pcstack_limit--;
+ if (pcstack_limit <= 0)
+ break;
+ }
+
+ if (fp == 0)
+ break;
+
+ pc = dtrace_fuword64((void *)(fp +
+ offsetof(struct arm64_frame, f_retaddr)));
+ fp = dtrace_fuword64((void *)fp);
+
+ if (fp == oldfp) {
+ *flags |= CPU_DTRACE_BADSTACK;
+ cpu_core[curcpu].cpuc_dtrace_illval = fp;
+ break;
+ }
+
+ /*
+ * ARM64TODO:
+ * This workaround might not be necessary. It needs to be
+ * revised and removed from all architectures if found
+ * unwanted. Leaving the original x86 comment for reference.
+ *
+ * This is totally bogus: if we faulted, we're going to clear
+ * the fault and break. This is to deal with the apparently
+ * broken Java stacks on x86.
+ */
+ if (*flags & CPU_DTRACE_FAULT) {
+ *flags &= ~CPU_DTRACE_FAULT;
+ break;
+ }
+ }
+
+ return (ret);
+}
+
void
dtrace_getupcstack(uint64_t *pcstack, int pcstack_limit)
{
+ proc_t *p = curproc;
+ struct trapframe *tf;
+ uintptr_t pc, sp, fp;
+ volatile uint16_t *flags =
+ (volatile uint16_t *)&cpu_core[curcpu].cpuc_dtrace_flags;
+ int n;
- printf("IMPLEMENT ME: %s\n", __func__);
+ if (*flags & CPU_DTRACE_FAULT)
+ return;
+
+ if (pcstack_limit <= 0)
+ return;
+
+ /*
+ * If there's no user context we still need to zero the stack.
+ */
+ if (p == NULL || (tf = curthread->td_frame) == NULL)
+ goto zero;
+
+ *pcstack++ = (uint64_t)p->p_pid;
+ pcstack_limit--;
+
+ if (pcstack_limit <= 0)
+ return;
+
+ pc = tf->tf_elr;
+ sp = tf->tf_sp;
+ fp = tf->tf_x[29];
+
+ if (DTRACE_CPUFLAG_ISSET(CPU_DTRACE_ENTRY)) {
+ /*
+ * In an entry probe. The frame pointer has not yet been
+ * pushed (that happens in the function prologue). The
+ * best approach is to add the current pc as a missing top
+ * of stack and back the pc up to the caller, which is stored
+ * at the current stack pointer address since the call
+ * instruction puts it there right before the branch.
+ */
+
+ *pcstack++ = (uint64_t)pc;
+ pcstack_limit--;
+ if (pcstack_limit <= 0)
+ return;
+
+ pc = tf->tf_lr;
+ }
+
+ n = dtrace_getustack_common(pcstack, pcstack_limit, pc, fp);
+ ASSERT(n >= 0);
+ ASSERT(n <= pcstack_limit);
+
+ pcstack += n;
+ pcstack_limit -= n;
+
+zero:
+ while (pcstack_limit-- > 0)
+ *pcstack++ = 0;
}
int
diff --git a/sys/cddl/dev/dtrace/amd64/dtrace_subr.c b/sys/cddl/dev/dtrace/amd64/dtrace_subr.c
index f6577d5..2a26b65 100644
--- a/sys/cddl/dev/dtrace/amd64/dtrace_subr.c
+++ b/sys/cddl/dev/dtrace/amd64/dtrace_subr.c
@@ -246,24 +246,14 @@ static uint64_t nsec_scale;
/* See below for the explanation of this macro. */
#define SCALE_SHIFT 28
+/*
+ * Get the frequency and scale factor as early as possible so that they can be
+ * used for boot-time tracing.
+ */
static void
-dtrace_gethrtime_init_cpu(void *arg)
-{
- uintptr_t cpu = (uintptr_t) arg;
-
- if (cpu == curcpu)
- tgt_cpu_tsc = rdtsc();
- else
- hst_cpu_tsc = rdtsc();
-}
-
-static void
-dtrace_gethrtime_init(void *arg)
+dtrace_gethrtime_init_early(void *arg)
{
- struct pcpu *pc;
uint64_t tsc_f;
- cpuset_t map;
- int i;
/*
* Get TSC frequency known at this moment.
@@ -279,7 +269,8 @@ dtrace_gethrtime_init(void *arg)
* another 32-bit integer without overflowing 64-bit.
* Thus minimum supported TSC frequency is 62.5MHz.
*/
- KASSERT(tsc_f > (NANOSEC >> (32 - SCALE_SHIFT)), ("TSC frequency is too low"));
+ KASSERT(tsc_f > (NANOSEC >> (32 - SCALE_SHIFT)),
+ ("TSC frequency is too low"));
/*
* We scale up NANOSEC/tsc_f ratio to preserve as much precision
@@ -291,6 +282,27 @@ dtrace_gethrtime_init(void *arg)
* (terahertz) values;
*/
nsec_scale = ((uint64_t)NANOSEC << SCALE_SHIFT) / tsc_f;
+}
+SYSINIT(dtrace_gethrtime_init_early, SI_SUB_CPU, SI_ORDER_ANY,
+ dtrace_gethrtime_init_early, NULL);
+
+static void
+dtrace_gethrtime_init_cpu(void *arg)
+{
+ uintptr_t cpu = (uintptr_t) arg;
+
+ if (cpu == curcpu)
+ tgt_cpu_tsc = rdtsc();
+ else
+ hst_cpu_tsc = rdtsc();
+}
+
+static void
+dtrace_gethrtime_init(void *arg)
+{
+ struct pcpu *pc;
+ cpuset_t map;
+ int i;
/* The current CPU is the reference one. */
sched_pin();
@@ -311,8 +323,8 @@ dtrace_gethrtime_init(void *arg)
}
sched_unpin();
}
-
-SYSINIT(dtrace_gethrtime_init, SI_SUB_SMP, SI_ORDER_ANY, dtrace_gethrtime_init, NULL);
+SYSINIT(dtrace_gethrtime_init, SI_SUB_SMP, SI_ORDER_ANY, dtrace_gethrtime_init,
+ NULL);
/*
* DTrace needs a high resolution time function which can
diff --git a/sys/cddl/dev/dtrace/i386/dtrace_subr.c b/sys/cddl/dev/dtrace/i386/dtrace_subr.c
index be5bd4b..daca7dd 100644
--- a/sys/cddl/dev/dtrace/i386/dtrace_subr.c
+++ b/sys/cddl/dev/dtrace/i386/dtrace_subr.c
@@ -248,24 +248,14 @@ static uint64_t nsec_scale;
/* See below for the explanation of this macro. */
#define SCALE_SHIFT 28
+/*
+ * Get the frequency and scale factor as early as possible so that they can be
+ * used for boot-time tracing.
+ */
static void
-dtrace_gethrtime_init_cpu(void *arg)
-{
- uintptr_t cpu = (uintptr_t) arg;
-
- if (cpu == curcpu)
- tgt_cpu_tsc = rdtsc();
- else
- hst_cpu_tsc = rdtsc();
-}
-
-static void
-dtrace_gethrtime_init(void *arg)
+dtrace_gethrtime_init_early(void *arg)
{
- cpuset_t map;
- struct pcpu *pc;
uint64_t tsc_f;
- int i;
/*
* Get TSC frequency known at this moment.
@@ -281,7 +271,8 @@ dtrace_gethrtime_init(void *arg)
* another 32-bit integer without overflowing 64-bit.
* Thus minimum supported TSC frequency is 62.5MHz.
*/
- KASSERT(tsc_f > (NANOSEC >> (32 - SCALE_SHIFT)), ("TSC frequency is too low"));
+ KASSERT(tsc_f > (NANOSEC >> (32 - SCALE_SHIFT)),
+ ("TSC frequency is too low"));
/*
* We scale up NANOSEC/tsc_f ratio to preserve as much precision
@@ -293,6 +284,27 @@ dtrace_gethrtime_init(void *arg)
* (terahertz) values;
*/
nsec_scale = ((uint64_t)NANOSEC << SCALE_SHIFT) / tsc_f;
+}
+SYSINIT(dtrace_gethrtime_init_early, SI_SUB_CPU, SI_ORDER_ANY,
+ dtrace_gethrtime_init_early, NULL);
+
+static void
+dtrace_gethrtime_init_cpu(void *arg)
+{
+ uintptr_t cpu = (uintptr_t) arg;
+
+ if (cpu == curcpu)
+ tgt_cpu_tsc = rdtsc();
+ else
+ hst_cpu_tsc = rdtsc();
+}
+
+static void
+dtrace_gethrtime_init(void *arg)
+{
+ cpuset_t map;
+ struct pcpu *pc;
+ int i;
/* The current CPU is the reference one. */
sched_pin();
@@ -313,8 +325,8 @@ dtrace_gethrtime_init(void *arg)
}
sched_unpin();
}
-
-SYSINIT(dtrace_gethrtime_init, SI_SUB_SMP, SI_ORDER_ANY, dtrace_gethrtime_init, NULL);
+SYSINIT(dtrace_gethrtime_init, SI_SUB_SMP, SI_ORDER_ANY, dtrace_gethrtime_init,
+ NULL);
/*
* DTrace needs a high resolution time function which can
diff --git a/sys/cddl/dev/sdt/sdt.c b/sys/cddl/dev/sdt/sdt.c
index 4e5dd71..cef816f 100644
--- a/sys/cddl/dev/sdt/sdt.c
+++ b/sys/cddl/dev/sdt/sdt.c
@@ -384,28 +384,20 @@ sdt_unload()
static int
sdt_modevent(module_t mod __unused, int type, void *data __unused)
{
- int error = 0;
switch (type) {
case MOD_LOAD:
- sdt_load();
- break;
-
case MOD_UNLOAD:
- error = sdt_unload();
- break;
-
case MOD_SHUTDOWN:
- break;
-
+ return (0);
default:
- error = EOPNOTSUPP;
- break;
+ return (EOPNOTSUPP);
}
-
- return (error);
}
+SYSINIT(sdt_load, SI_SUB_DTRACE_PROVIDER, SI_ORDER_ANY, sdt_load, NULL);
+SYSUNINIT(sdt_unload, SI_SUB_DTRACE_PROVIDER, SI_ORDER_ANY, sdt_unload, NULL);
+
DEV_MODULE(sdt, sdt_modevent, NULL);
MODULE_VERSION(sdt, 1);
MODULE_DEPEND(sdt, dtrace, 1, 1, 1);
diff --git a/sys/compat/cloudabi64/cloudabi64_module.c b/sys/compat/cloudabi64/cloudabi64_module.c
index de890bc..246a887 100644
--- a/sys/compat/cloudabi64/cloudabi64_module.c
+++ b/sys/compat/cloudabi64/cloudabi64_module.c
@@ -112,7 +112,13 @@ cloudabi64_fixup(register_t **stack_base, struct image_params *imgp)
{ .a_type = CLOUDABI_AT_NULL },
};
*stack_base -= howmany(sizeof(auxv), sizeof(register_t));
- return (copyout(auxv, *stack_base, sizeof(auxv)));
+ error = copyout(auxv, *stack_base, sizeof(auxv));
+ if (error != 0)
+ return (error);
+
+ /* Reserve space for storing the TCB. */
+ *stack_base -= howmany(sizeof(cloudabi64_tcb_t), sizeof(register_t));
+ return (0);
}
static int
diff --git a/sys/compat/cloudabi64/cloudabi64_thread.c b/sys/compat/cloudabi64/cloudabi64_thread.c
index 51961f8..429ad33 100644
--- a/sys/compat/cloudabi64/cloudabi64_thread.c
+++ b/sys/compat/cloudabi64/cloudabi64_thread.c
@@ -37,6 +37,7 @@ __FBSDID("$FreeBSD$");
struct thread_create_args {
cloudabi64_threadattr_t attr;
+ uint64_t tcb;
lwpid_t tid;
};
@@ -49,8 +50,7 @@ initialize_thread(struct thread *td, void *thunk)
args->tid = td->td_tid;
/* Set up initial register contents. */
- cloudabi64_thread_setregs(td, &args->attr);
- return (0);
+ return (cloudabi64_thread_setregs(td, &args->attr, args->tcb));
}
int
@@ -63,6 +63,12 @@ cloudabi64_sys_thread_create(struct thread *td,
error = copyin(uap->attr, &args.attr, sizeof(args.attr));
if (error != 0)
return (error);
+
+ /* Remove some space on the top of the stack for the TCB. */
+ args.tcb = rounddown(args.attr.stack + args.attr.stack_size -
+ sizeof(cloudabi64_tcb_t), _Alignof(cloudabi64_tcb_t));
+ args.attr.stack_size = args.tcb - args.attr.stack;
+
error = thread_create(td, NULL, initialize_thread, &args);
if (error != 0)
return (error);
diff --git a/sys/compat/cloudabi64/cloudabi64_util.h b/sys/compat/cloudabi64/cloudabi64_util.h
index dcec70e..29a90d7 100644
--- a/sys/compat/cloudabi64/cloudabi64_util.h
+++ b/sys/compat/cloudabi64/cloudabi64_util.h
@@ -42,7 +42,7 @@ extern Elf64_Brandinfo cloudabi64_brand;
register_t *cloudabi64_copyout_strings(struct image_params *);
int cloudabi64_fixup(register_t **, struct image_params *);
-void cloudabi64_thread_setregs(struct thread *,
- const cloudabi64_threadattr_t *);
+int cloudabi64_thread_setregs(struct thread *,
+ const cloudabi64_threadattr_t *, uint64_t);
#endif
diff --git a/sys/compat/linprocfs/linprocfs.c b/sys/compat/linprocfs/linprocfs.c
index 86c4b05..395c94f 100644
--- a/sys/compat/linprocfs/linprocfs.c
+++ b/sys/compat/linprocfs/linprocfs.c
@@ -640,7 +640,7 @@ linprocfs_doprocstat(PFS_FILL_ARGS)
} else {
startcode = 0;
startdata = 0;
- };
+ }
sbuf_printf(sb, "%d", p->p_pid);
#define PS_ADD(name, fmt, arg) sbuf_printf(sb, " " fmt, arg)
PS_ADD("comm", "(%s)", p->p_comm);
@@ -1370,65 +1370,92 @@ linprocfs_dofdescfs(PFS_FILL_ARGS)
/*
* Filler function for proc/pid/limits
*/
-
-#define RLIM_NONE -1
-
-static const struct limit_info {
+static const struct linux_rlimit_ident {
const char *desc;
const char *unit;
- unsigned long long rlim_id;
-} limits_info[] = {
- { "Max cpu time", "seconds", RLIMIT_CPU },
- { "Max file size", "bytes", RLIMIT_FSIZE },
- { "Max data size", "bytes", RLIMIT_DATA },
- { "Max stack size", "bytes", RLIMIT_STACK },
- { "Max core file size", "bytes", RLIMIT_CORE },
- { "Max resident set", "bytes", RLIMIT_RSS },
- { "Max processes", "processes", RLIMIT_NPROC },
- { "Max open files", "files", RLIMIT_NOFILE },
- { "Max locked memory", "bytes", RLIMIT_MEMLOCK },
- { "Max address space", "bytes", RLIMIT_AS },
- { "Max file locks", "locks", RLIM_INFINITY },
- { "Max pending signals", "signals", RLIM_INFINITY },
- { "Max msgqueue size", "bytes", RLIM_NONE },
- { "Max nice priority", "", RLIM_NONE },
- { "Max realtime priority", "", RLIM_NONE },
- { "Max realtime timeout", "us", RLIM_INFINITY },
+ unsigned int rlim_id;
+} linux_rlimits_ident[] = {
+ { "Max cpu time", "seconds", RLIMIT_CPU },
+ { "Max file size", "bytes", RLIMIT_FSIZE },
+ { "Max data size", "bytes", RLIMIT_DATA },
+ { "Max stack size", "bytes", RLIMIT_STACK },
+ { "Max core file size", "bytes", RLIMIT_CORE },
+ { "Max resident set", "bytes", RLIMIT_RSS },
+ { "Max processes", "processes", RLIMIT_NPROC },
+ { "Max open files", "files", RLIMIT_NOFILE },
+ { "Max locked memory", "bytes", RLIMIT_MEMLOCK },
+ { "Max address space", "bytes", RLIMIT_AS },
+ { "Max file locks", "locks", LINUX_RLIMIT_LOCKS },
+ { "Max pending signals", "signals", LINUX_RLIMIT_SIGPENDING },
+ { "Max msgqueue size", "bytes", LINUX_RLIMIT_MSGQUEUE },
+ { "Max nice priority", "", LINUX_RLIMIT_NICE },
+ { "Max realtime priority", "", LINUX_RLIMIT_RTPRIO },
+ { "Max realtime timeout", "us", LINUX_RLIMIT_RTTIME },
{ 0, 0, 0 }
};
static int
linprocfs_doproclimits(PFS_FILL_ARGS)
{
- const struct limit_info *li;
- struct rlimit li_rlimits;
- struct plimit *cur_proc_lim;
+ const struct linux_rlimit_ident *li;
+ struct plimit *limp;
+ struct rlimit rl;
+ ssize_t size;
+ int res, error;
- cur_proc_lim = lim_alloc();
- lim_copy(cur_proc_lim, p->p_limit);
- sbuf_printf(sb, "%-26s%-21s%-21s%-10s\n", "Limit", "Soft Limit",
+ PROC_LOCK(p);
+ limp = lim_hold(p->p_limit);
+ PROC_UNLOCK(p);
+ size = sizeof(res);
+ sbuf_printf(sb, "%-26s%-21s%-21s%-21s\n", "Limit", "Soft Limit",
"Hard Limit", "Units");
- for (li = limits_info; li->desc != NULL; ++li) {
- if (li->rlim_id != RLIM_INFINITY && li->rlim_id != RLIM_NONE)
- li_rlimits = cur_proc_lim->pl_rlimit[li->rlim_id];
- else {
- li_rlimits.rlim_cur = 0;
- li_rlimits.rlim_max = 0;
+ for (li = linux_rlimits_ident; li->desc != NULL; ++li) {
+ switch (li->rlim_id)
+ {
+ case LINUX_RLIMIT_LOCKS:
+ /* FALLTHROUGH */
+ case LINUX_RLIMIT_RTTIME:
+ rl.rlim_cur = RLIM_INFINITY;
+ break;
+ case LINUX_RLIMIT_SIGPENDING:
+ error = kernel_sysctlbyname(td,
+ "kern.sigqueue.max_pending_per_proc",
+ &res, &size, 0, 0, 0, 0);
+ if (error != 0)
+ break;
+ rl.rlim_cur = res;
+ rl.rlim_max = res;
+ break;
+ case LINUX_RLIMIT_MSGQUEUE:
+ error = kernel_sysctlbyname(td,
+ "kern.ipc.msgmnb", &res, &size, 0, 0, 0, 0);
+ if (error != 0)
+ break;
+ rl.rlim_cur = res;
+ rl.rlim_max = res;
+ break;
+ case LINUX_RLIMIT_NICE:
+ /* FALLTHROUGH */
+ case LINUX_RLIMIT_RTPRIO:
+ rl.rlim_cur = 0;
+ rl.rlim_max = 0;
+ break;
+ default:
+ rl = limp->pl_rlimit[li->rlim_id];
+ break;
}
- if (li->rlim_id == RLIM_INFINITY ||
- li_rlimits.rlim_cur == RLIM_INFINITY)
+ if (rl.rlim_cur == RLIM_INFINITY)
sbuf_printf(sb, "%-26s%-21s%-21s%-10s\n",
li->desc, "unlimited", "unlimited", li->unit);
else
- sbuf_printf(sb, "%-26s%-21ld%-21ld%-10s\n",
- li->desc, (long)li_rlimits.rlim_cur,
- (long)li_rlimits.rlim_max, li->unit);
+ sbuf_printf(sb, "%-26s%-21llu%-21llu%-10s\n",
+ li->desc, (unsigned long long)rl.rlim_cur,
+ (unsigned long long)rl.rlim_max, li->unit);
}
- lim_free(cur_proc_lim);
- return (0);
+ lim_free(limp);
+ return (error);
}
-
/*
* Filler function for proc/sys/kernel/random/uuid
*/
diff --git a/sys/compat/linux/linux_misc.h b/sys/compat/linux/linux_misc.h
index 08bc85f..0d2d86c 100644
--- a/sys/compat/linux/linux_misc.h
+++ b/sys/compat/linux/linux_misc.h
@@ -143,6 +143,13 @@ extern int stclohz;
#define LINUX_P_PID 1
#define LINUX_P_PGID 2
+#define LINUX_RLIMIT_LOCKS RLIM_NLIMITS + 1
+#define LINUX_RLIMIT_SIGPENDING RLIM_NLIMITS + 2
+#define LINUX_RLIMIT_MSGQUEUE RLIM_NLIMITS + 3
+#define LINUX_RLIMIT_NICE RLIM_NLIMITS + 4
+#define LINUX_RLIMIT_RTPRIO RLIM_NLIMITS + 5
+#define LINUX_RLIMIT_RTTIME RLIM_NLIMITS + 6
+
#define LINUX_RLIM_INFINITY (~0UL)
int linux_common_wait(struct thread *td, int pid, int *status,
diff --git a/sys/conf/NOTES b/sys/conf/NOTES
index c9fce2e..ec5618c 100644
--- a/sys/conf/NOTES
+++ b/sys/conf/NOTES
@@ -229,7 +229,15 @@ options MAXCPU=32
# MAXMEMDOM defines the maximum number of memory domains that can boot in the
# system. A default value should already be defined by every architecture.
-options MAXMEMDOM=1
+options MAXMEMDOM=2
+
+# VM_NUMA_ALLOC enables use of memory domain-aware allocation in the VM
+# system.
+options VM_NUMA_ALLOC
+
+# DEVICE_NUMA enables reporting of domain affinity of I/O devices via
+# bus_get_domain(), etc.
+options DEVICE_NUMA
# ADAPTIVE_MUTEXES changes the behavior of blocking mutexes to spin
# if the thread that currently owns the mutex is executing on another
@@ -1409,6 +1417,10 @@ options MSGBUF_SIZE=40960
options KBD_DISABLE_KEYMAP_LOAD # refuse to load a keymap
options KBD_INSTALL_CDEV # install a CDEV entry in /dev
+device kbdmux # keyboard multiplexer
+options KBDMUX_DFLT_KEYMAP # specify the built-in keymap
+makeoptions KBDMUX_DFLT_KEYMAP=it.iso
+
options FB_DEBUG # Frame buffer debugging
device splash # Splash screen and screen saver support
diff --git a/sys/conf/files b/sys/conf/files
index e2dbc67..46e9768 100644
--- a/sys/conf/files
+++ b/sys/conf/files
@@ -47,6 +47,10 @@ pccarddevs.h standard \
compile-with "${AWK} -f $S/tools/pccarddevs2h.awk $S/dev/pccard/pccarddevs" \
no-obj no-implicit-rule before-depend \
clean "pccarddevs.h"
+kbdmuxmap.h optional kbdmux_dflt_keymap \
+ compile-with "kbdcontrol -P ${S:S/sys$/share/}/vt/keymaps -P ${S:S/sys$/share/}/syscons/keymaps -L ${KBDMUX_DFLT_KEYMAP} | sed -e 's/^static keymap_t.* = /static keymap_t key_map = /' -e 's/^static accentmap_t.* = /static accentmap_t accent_map = /' > kbdmuxmap.h" \
+ no-obj no-implicit-rule before-depend \
+ clean "kbdmuxmap.h"
teken_state.h optional sc | vt \
dependency "$S/teken/gensequences $S/teken/sequences" \
compile-with "${AWK} -f $S/teken/gensequences $S/teken/sequences > teken_state.h" \
diff --git a/sys/conf/newvers.sh b/sys/conf/newvers.sh
index a5d4749..b8aeea5 100644
--- a/sys/conf/newvers.sh
+++ b/sys/conf/newvers.sh
@@ -11,7 +11,7 @@
# 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.
-# 4. Neither the name of the University nor the names of its contributors
+# 3. Neither the name of the University nor the names of its contributors
# may be used to endorse or promote products derived from this software
# without specific prior written permission.
#
diff --git a/sys/conf/options b/sys/conf/options
index 4df24a5..2283705 100644
--- a/sys/conf/options
+++ b/sys/conf/options
@@ -90,6 +90,7 @@ COMPAT_LINUXKPI opt_compat.h
COMPILING_LINT opt_global.h
CY_PCI_FASTINTR
DEADLKRES opt_watchdog.h
+DEVICE_NUMA
EXT_RESOURCES opt_global.h
DIRECTIO
FILEMON opt_dontuse.h
@@ -603,6 +604,7 @@ VM_KMEM_SIZE opt_vm.h
VM_KMEM_SIZE_SCALE opt_vm.h
VM_KMEM_SIZE_MAX opt_vm.h
VM_NRESERVLEVEL opt_vm.h
+VM_NUMA_ALLOC opt_vm.h
VM_LEVEL_0_ORDER opt_vm.h
NO_SWAPPING opt_vm.h
MALLOC_MAKE_FAILURES opt_vm.h
@@ -801,6 +803,8 @@ KBD_MAXWAIT opt_kbd.h
KBD_RESETDELAY opt_kbd.h
KBDIO_DEBUG opt_kbd.h
+KBDMUX_DFLT_KEYMAP opt_kbdmux.h
+
# options for the Atheros driver
ATH_DEBUG opt_ath.h
ATH_TXBUF opt_ath.h
diff --git a/sys/contrib/cloudabi/cloudabi64_types.h b/sys/contrib/cloudabi/cloudabi64_types.h
index 88babaa..cb354d4 100644
--- a/sys/contrib/cloudabi/cloudabi64_types.h
+++ b/sys/contrib/cloudabi/cloudabi64_types.h
@@ -192,6 +192,13 @@ _Static_assert(offsetof(cloudabi64_subscription_t, proc_terminate.fd) == 16, "In
_Static_assert(sizeof(cloudabi64_subscription_t) == 56, "Incorrect layout");
_Static_assert(_Alignof(cloudabi64_subscription_t) == 8, "Incorrect layout");
+typedef struct {
+ _Alignas(8) uint64_t parent;
+} cloudabi64_tcb_t;
+_Static_assert(offsetof(cloudabi64_tcb_t, parent) == 0, "Incorrect layout");
+_Static_assert(sizeof(cloudabi64_tcb_t) == 8, "Incorrect layout");
+_Static_assert(_Alignof(cloudabi64_tcb_t) == 8, "Incorrect layout");
+
typedef void cloudabi64_threadentry_t(cloudabi_tid_t tid, uint64_t aux);
typedef struct {
diff --git a/sys/contrib/ipfilter/netinet/fil.c b/sys/contrib/ipfilter/netinet/fil.c
index 58d9028..0aeb44b 100644
--- a/sys/contrib/ipfilter/netinet/fil.c
+++ b/sys/contrib/ipfilter/netinet/fil.c
@@ -629,6 +629,7 @@ ipf_pr_ipv6hdr(fin)
ipf_main_softc_t *softc = fin->fin_main_soft;
fin->fin_flx |= FI_BAD;
+ DT2(ipf_fi_bad_ipv6_frag_1, fr_info_t *, fin, int, go);
LBUMPD(ipf_stats[fin->fin_out], fr_v6_badfrag);
LBUMP(ipf_stats[fin->fin_out].fr_v6_bad);
}
@@ -687,6 +688,7 @@ ipf_pr_ipv6exthdr(fin, multiple, proto)
if (shift > fin->fin_dlen) { /* Nasty extension header length? */
fin->fin_flx |= FI_BAD;
+ DT3(ipf_fi_bad_pr_ipv6exthdr_len, fr_info_t *, fin, u_short, shift, u_short, fin->fin_dlen);
LBUMPD(ipf_stats[fin->fin_out], fr_v6_ext_hlen);
return NULL;
}
@@ -708,9 +710,10 @@ ipf_pr_ipv6exthdr(fin, multiple, proto)
* Most IPv6 extension headers are only allowed once.
*/
if ((multiple == 0) &&
- ((fin->fin_optmsk & ip6exthdr[i].ol_bit) != 0))
+ ((fin->fin_optmsk & ip6exthdr[i].ol_bit) != 0)) {
fin->fin_flx |= FI_BAD;
- else
+ DT2(ipf_fi_bad_ipv6exthdr_once, fr_info_t *, fin, u_int, (fin->fin_optmsk & ip6exthdr[i].ol_bit));
+ } else
fin->fin_optmsk |= ip6exthdr[i].ol_bit;
break;
}
@@ -790,6 +793,7 @@ ipf_pr_routing6(fin)
ipf_main_softc_t *softc = fin->fin_main_soft;
fin->fin_flx |= FI_BAD;
+ DT1(ipf_fi_bad_routing6, fr_info_t *, fin);
LBUMPD(ipf_stats[fin->fin_out], fr_v6_rh_bad);
return IPPROTO_NONE;
}
@@ -852,8 +856,10 @@ ipf_pr_fragment6(fin)
* Any fragment that isn't the last fragment must have its
* length as a multiple of 8.
*/
- if ((fin->fin_plen & 7) != 0)
+ if ((fin->fin_plen & 7) != 0) {
fin->fin_flx |= FI_BAD;
+ DT2(ipf_fi_bad_frag_not_8, fr_info_t *, fin, u_int, (fin->fin_plen & 7));
+ }
}
fin->fin_fraghdr = frag;
@@ -865,8 +871,10 @@ ipf_pr_fragment6(fin)
/*
* Jumbograms aren't handled, so the max. length is 64k
*/
- if ((fin->fin_off << 3) + fin->fin_dlen > 65535)
+ if ((fin->fin_off << 3) + fin->fin_dlen > 65535) {
fin->fin_flx |= FI_BAD;
+ DT2(ipf_fi_bad_jumbogram, fr_info_t *, fin, u_int, ((fin->fin_off << 3) + fin->fin_dlen));
+ }
/*
* We don't know where the transport layer header (or whatever is next
@@ -970,8 +978,10 @@ ipf_pr_icmp6(fin)
icmp6 = fin->fin_dp;
ip6 = (ip6_t *)((char *)icmp6 + ICMPERR_ICMPHLEN);
if (IP6_NEQ(&fin->fin_fi.fi_dst,
- (i6addr_t *)&ip6->ip6_src))
+ (i6addr_t *)&ip6->ip6_src)) {
fin->fin_flx |= FI_BAD;
+ DT1(ipf_fi_bad_icmp6, fr_info_t *, fin);
+ }
break;
default :
break;
@@ -1283,8 +1293,10 @@ ipf_pr_icmp(fin)
case ICMP_UNREACH :
#ifdef icmp_nextmtu
if (icmp->icmp_code == ICMP_UNREACH_NEEDFRAG) {
- if (icmp->icmp_nextmtu < softc->ipf_icmpminfragmtu)
+ if (icmp->icmp_nextmtu < softc->ipf_icmpminfragmtu) {
fin->fin_flx |= FI_BAD;
+ DT3(ipf_fi_bad_icmp_nextmtu, fr_info_t *, fin, u_int, icmp->icmp_nextmtu, u_int, softc->ipf_icmpminfragmtu);
+ }
}
#endif
case ICMP_SOURCEQUENCH :
@@ -1303,16 +1315,20 @@ ipf_pr_icmp(fin)
* fragment.
*/
oip = (ip_t *)((char *)fin->fin_dp + ICMPERR_ICMPHLEN);
- if ((ntohs(oip->ip_off) & IP_OFFMASK) != 0)
+ if ((ntohs(oip->ip_off) & IP_OFFMASK) != 0) {
fin->fin_flx |= FI_BAD;
+ DT2(ipf_fi_bad_icmp_err, fr_info_t, fin, u_int, (ntohs(oip->ip_off) & IP_OFFMASK));
+ }
/*
* If the destination of this packet doesn't match the
* source of the original packet then this packet is
* not correct.
*/
- if (oip->ip_src.s_addr != fin->fin_daddr)
+ if (oip->ip_src.s_addr != fin->fin_daddr) {
fin->fin_flx |= FI_BAD;
+ DT1(ipf_fi_bad_src_ne_dst, fr_info_t *, fin);
+ }
break;
default :
break;
@@ -1372,6 +1388,7 @@ ipf_pr_tcpcommon(fin)
if (tlen < sizeof(tcphdr_t)) {
LBUMPD(ipf_stats[fin->fin_out], fr_tcp_small);
fin->fin_flx |= FI_BAD;
+ DT3(ipf_fi_bad_tlen, fr_info_t, fin, u_int, tlen, u_int, sizeof(tcphdr_t));
return 1;
}
@@ -1385,6 +1402,7 @@ ipf_pr_tcpcommon(fin)
*/
if ((flags & TH_URG) != 0 && (tcp->th_urp == 0)) {
fin->fin_flx |= FI_BAD;
+ DT3(ipf_fi_bad_th_urg, fr_info_t*, fin, u_int, (flags & TH_URG), u_int, tcp->th_urp);
#if 0
} else if ((flags & TH_URG) == 0 && (tcp->th_urp != 0)) {
/*
@@ -1392,11 +1410,13 @@ ipf_pr_tcpcommon(fin)
* traffic with bogus values in the urgent pointer field.
*/
fin->fin_flx |= FI_BAD;
+ DT3(ipf_fi_bad_th_urg0, fr_info_t *, fin, u_int, (flags & TH_URG), u_int, tcp->th_urp);
#endif
} else if (((flags & (TH_SYN|TH_FIN)) != 0) &&
((flags & (TH_RST|TH_ACK)) == TH_RST)) {
/* TH_FIN|TH_RST|TH_ACK seems to appear "naturally" */
fin->fin_flx |= FI_BAD;
+ DT1(ipf_fi_bad_th_fin_rst_ack, fr_info_t, fin);
#if 1
} else if (((flags & TH_SYN) != 0) &&
((flags & (TH_URG|TH_PUSH)) != 0)) {
@@ -1405,6 +1425,7 @@ ipf_pr_tcpcommon(fin)
* possible(?) with T/TCP...but who uses T/TCP?
*/
fin->fin_flx |= FI_BAD;
+ DT1(ipf_fi_bad_th_syn_urg_psh, fr_info_t *, fin);
#endif
} else if (!(flags & TH_ACK)) {
/*
@@ -1423,10 +1444,13 @@ ipf_pr_tcpcommon(fin)
* achieved.
*/
/*fin->fin_flx |= FI_BAD*/;
+ /*DT1(ipf_fi_bad_th_syn_ack, fr_info_t *, fin);*/
} else if (!(flags & (TH_RST|TH_SYN))) {
fin->fin_flx |= FI_BAD;
+ DT1(ipf_fi_bad_th_rst_syn, fr_info_t *, fin);
} else if ((flags & (TH_URG|TH_PUSH|TH_FIN)) != 0) {
fin->fin_flx |= FI_BAD;
+ DT1(ipf_fi_bad_th_urg_push_fin, fr_info_t *, fin);
}
}
if (fin->fin_flx & FI_BAD) {
@@ -1757,6 +1781,7 @@ ipf_pr_ipv4hdr(fin)
* must be an even multiple of 8.
*/
fi->fi_flx |= FI_BAD;
+ DT1(ipf_fi_bad_fragbody_gt_65535, fr_info_t *, fin);
}
}
}
@@ -1840,6 +1865,7 @@ ipf_pr_ipv4hdr(fin)
case IPOPT_SECURITY :
if (optmsk & op->ol_bit) {
fin->fin_flx |= FI_BAD;
+ DT2(ipf_fi_bad_ipopt_security, fr_info_t *, fin, u_short, (optmsk & op->ol_bit));
} else {
doi = ipf_checkripso(s);
secmsk = doi >> 16;
@@ -1851,6 +1877,7 @@ ipf_pr_ipv4hdr(fin)
if (optmsk & op->ol_bit) {
fin->fin_flx |= FI_BAD;
+ DT2(ipf_fi_bad_ipopt_cipso, fr_info_t *, fin, u_short, (optmsk & op->ol_bit));
} else {
doi = ipf_checkcipso(fin,
s, ol);
@@ -1949,6 +1976,7 @@ ipf_checkcipso(fin, s, ol)
if (ol < 6 || ol > 40) {
LBUMPD(ipf_stats[fin->fin_out], fr_v4_cipso_bad);
fin->fin_flx |= FI_BAD;
+ DT2(ipf_fi_bad_checkcipso_ol, fr_info_t *, fin, u_int, ol);
return 0;
}
@@ -1966,6 +1994,7 @@ ipf_checkcipso(fin, s, ol)
if (tlen > len || tlen < 4 || tlen > 34) {
LBUMPD(ipf_stats[fin->fin_out], fr_v4_cipso_tlen);
fin->fin_flx |= FI_BAD;
+ DT2(ipf_fi_bad_checkcipso_tlen, fr_info_t *, fin, u_int, tlen);
return 0;
}
@@ -1976,10 +2005,12 @@ ipf_checkcipso(fin, s, ol)
*/
if (tag == 0) {
fin->fin_flx |= FI_BAD;
+ DT2(ipf_fi_bad_checkcipso_tag, fr_info_t *, fin, u_int, tag);
continue;
} else if (tag == 1) {
if (*(t + 2) != 0) {
fin->fin_flx |= FI_BAD;
+ DT2(ipf_fi_bad_checkcipso_tag1_t2, fr_info_t *, fin, u_int, (*t + 2));
continue;
}
sensitivity = *(t + 3);
@@ -1988,6 +2019,7 @@ ipf_checkcipso(fin, s, ol)
} else if (tag == 4) {
if (*(t + 2) != 0) {
fin->fin_flx |= FI_BAD;
+ DT2(ipf_fi_bad_checkcipso_tag4_t2, fr_info_t *, fin, u_int, (*t + 2));
continue;
}
sensitivity = *(t + 3);
@@ -1996,6 +2028,7 @@ ipf_checkcipso(fin, s, ol)
} else if (tag == 5) {
if (*(t + 2) != 0) {
fin->fin_flx |= FI_BAD;
+ DT2(ipf_fi_bad_checkcipso_tag5_t2, fr_info_t *, fin, u_int, (*t + 2));
continue;
}
sensitivity = *(t + 3);
@@ -2006,6 +2039,7 @@ ipf_checkcipso(fin, s, ol)
;
} else {
fin->fin_flx |= FI_BAD;
+ DT2(ipf_fi_bad_checkcipso_tag127, fr_info_t *, fin, u_int, tag);
continue;
}
diff --git a/sys/contrib/ipfilter/netinet/ip_fil_freebsd.c b/sys/contrib/ipfilter/netinet/ip_fil_freebsd.c
index 8a5a90d..3b74f8c 100644
--- a/sys/contrib/ipfilter/netinet/ip_fil_freebsd.c
+++ b/sys/contrib/ipfilter/netinet/ip_fil_freebsd.c
@@ -1091,6 +1091,7 @@ ipf_checkv4sum(fin)
CSUM_IP_CHECKED) {
fin->fin_cksum = FI_CK_BAD;
fin->fin_flx |= FI_BAD;
+ DT2(ipf_fi_bad_checkv4sum_csum_ip_checked, fr_info_t *, fin, u_int, m->m_pkthdr.csum_flags & (CSUM_IP_CHECKED|CSUM_IP_VALID));
return -1;
}
if (m->m_pkthdr.csum_flags & CSUM_DATA_VALID) {
@@ -1120,6 +1121,7 @@ ipf_checkv4sum(fin)
if (sum != 0) {
fin->fin_cksum = FI_CK_BAD;
fin->fin_flx |= FI_BAD;
+ DT2(ipf_fi_bad_checkv4sum_sum, fr_info_t *, fin, u_int, sum);
} else {
fin->fin_cksum = FI_CK_SUMOK;
return 0;
@@ -1143,12 +1145,14 @@ skipauto:
if (manual != 0) {
if (ipf_checkl4sum(fin) == -1) {
fin->fin_flx |= FI_BAD;
+ DT2(ipf_fi_bad_checkv4sum_manual, fr_info_t *, fin, u_int, manual);
return -1;
}
}
#else
if (ipf_checkl4sum(fin) == -1) {
fin->fin_flx |= FI_BAD;
+ DT2(ipf_fi_bad_checkv4sum_checkl4sum, fr_info_t *, fin, u_int, -1);
return -1;
}
#endif
@@ -1162,16 +1166,20 @@ ipf_checkv6sum(fin)
fr_info_t *fin;
{
if ((fin->fin_flx & FI_NOCKSUM) != 0)
+ DT(ipf_checkv6sum_fi_nocksum);
return 0;
if ((fin->fin_flx & FI_SHORT) != 0)
+ DT(ipf_checkv6sum_fi_short);
return 1;
if (fin->fin_cksum != FI_CK_NEEDED)
+ DT(ipf_checkv6sum_fi_ck_needed);
return (fin->fin_cksum > FI_CK_NEEDED) ? 0 : -1;
if (ipf_checkl4sum(fin) == -1) {
fin->fin_flx |= FI_BAD;
+ DT2(ipf_fi_bad_checkv6sum_checkl4sum, fr_info_t *, fin, u_int, -1);
return -1;
}
return 0;
diff --git a/sys/contrib/ipfilter/netinet/ip_frag.c b/sys/contrib/ipfilter/netinet/ip_frag.c
index 7e3457a..e0cc5f3 100644
--- a/sys/contrib/ipfilter/netinet/ip_frag.c
+++ b/sys/contrib/ipfilter/netinet/ip_frag.c
@@ -719,6 +719,8 @@ ipf_frag_lookup(softc, softf, fin, table
FBUMP(ifs_overlap);
DT2(ifs_overlap, u_short, off,
ipfr_t *, f);
+ DT3(ipf_fi_bad_ifs_overlap, fr_info_t *, fin, u_short, off,
+ ipfr_t *, f);
fin->fin_flx |= FI_BAD;
break;
}
@@ -901,6 +903,7 @@ ipf_frag_known(fin, passp)
if (fin->fin_flx & FI_BAD) {
fr = &ipfr_block;
fin->fin_reason = FRB_BADFRAG;
+ DT2(ipf_frb_badfrag, fr_info_t *, fin, uint, fra);
} else {
fr = fra->ipfr_rule;
}
diff --git a/sys/contrib/ipfilter/netinet/ip_state.c b/sys/contrib/ipfilter/netinet/ip_state.c
index 2ceec32..34a64f0 100644
--- a/sys/contrib/ipfilter/netinet/ip_state.c
+++ b/sys/contrib/ipfilter/netinet/ip_state.c
@@ -1611,8 +1611,10 @@ ipf_state_add(softc, fin, stsave, flags)
TH_SYN &&
(TCP_OFF(tcp) > (sizeof(tcphdr_t) >> 2))) {
if (ipf_tcpoptions(softs, fin, tcp,
- &is->is_tcp.ts_data[0]) == -1)
+ &is->is_tcp.ts_data[0]) == -1) {
fin->fin_flx |= FI_BAD;
+ DT1(ipf_fi_bad_tcpoptions_th_fin_ack_ecnall, fr_info_t *, fin);
+ }
}
if ((fin->fin_out != 0) && (pass & FR_NEWISN) != 0) {
@@ -2068,8 +2070,10 @@ ipf_state_tcp(softc, softs, fin, tcp, is)
is->is_s0[!source] = ntohl(tcp->th_seq) + 1;
if ((TCP_OFF(tcp) > (sizeof(tcphdr_t) >> 2))) {
if (ipf_tcpoptions(softs, fin, tcp,
- fdata) == -1)
+ fdata) == -1) {
fin->fin_flx |= FI_BAD;
+ DT1(ipf_fi_bad_winscale_syn_ack, fr_info_t *, fin);
+ }
}
if ((fin->fin_out != 0) && (is->is_pass & FR_NEWISN))
ipf_checknewisn(fin, is);
@@ -2077,8 +2081,10 @@ ipf_state_tcp(softc, softs, fin, tcp, is)
is->is_s0[source] = ntohl(tcp->th_seq) + 1;
if ((TCP_OFF(tcp) > (sizeof(tcphdr_t) >> 2))) {
if (ipf_tcpoptions(softs, fin, tcp,
- fdata) == -1)
+ fdata) == -1) {
fin->fin_flx |= FI_BAD;
+ DT1(ipf_fi_bad_winscale_syn, fr_info_t *, fin);
+ }
}
if ((fin->fin_out != 0) && (is->is_pass & FR_NEWISN))
diff --git a/sys/dev/aac/aac.c b/sys/dev/aac/aac.c
index decacb9..4028cb4 100644
--- a/sys/dev/aac/aac.c
+++ b/sys/dev/aac/aac.c
@@ -3762,7 +3762,7 @@ aac_get_bus_info(struct aac_softc *sc)
device_printf(sc->aac_dev,
"No memory to add passthrough bus %d\n", i);
break;
- };
+ }
child = device_add_child(sc->aac_dev, "aacp", -1);
if (child == NULL) {
diff --git a/sys/dev/aacraid/aacraid.c b/sys/dev/aacraid/aacraid.c
index 26b2296..879d466 100644
--- a/sys/dev/aacraid/aacraid.c
+++ b/sys/dev/aacraid/aacraid.c
@@ -3550,7 +3550,7 @@ aac_container_bus(struct aac_softc *sc)
device_printf(sc->aac_dev,
"No memory to add container bus\n");
panic("Out of memory?!");
- };
+ }
child = device_add_child(sc->aac_dev, "aacraidp", -1);
if (child == NULL) {
device_printf(sc->aac_dev,
@@ -3662,7 +3662,7 @@ aac_get_bus_info(struct aac_softc *sc)
device_printf(sc->aac_dev,
"No memory to add passthrough bus %d\n", i);
break;
- };
+ }
child = device_add_child(sc->aac_dev, "aacraidp", -1);
if (child == NULL) {
diff --git a/sys/dev/acpica/acpi.c b/sys/dev/acpica/acpi.c
index 6f5a11f..32a07dd 100644
--- a/sys/dev/acpica/acpi.c
+++ b/sys/dev/acpica/acpi.c
@@ -31,6 +31,8 @@
__FBSDID("$FreeBSD$");
#include "opt_acpi.h"
+#include "opt_device_numa.h"
+
#include <sys/param.h>
#include <sys/kernel.h>
#include <sys/proc.h>
@@ -1083,7 +1085,7 @@ acpi_hint_device_unit(device_t acdev, device_t child, const char *name,
int
acpi_parse_pxm(device_t dev, int *domain)
{
-#if MAXMEMDOM > 1
+#ifdef DEVICE_NUMA
ACPI_HANDLE h;
int d, pxm;
diff --git a/sys/dev/acpica/acpi_pci.c b/sys/dev/acpica/acpi_pci.c
index 9509f82..1dee131 100644
--- a/sys/dev/acpica/acpi_pci.c
+++ b/sys/dev/acpica/acpi_pci.c
@@ -42,6 +42,7 @@ __FBSDID("$FreeBSD$");
#include <contrib/dev/acpica/include/accommon.h>
#include <dev/acpica/acpivar.h>
+#include <dev/acpica/acpi_pcivar.h>
#include <sys/pciio.h>
#include <dev/pci/pcireg.h>
@@ -70,6 +71,7 @@ CTASSERT(ACPI_STATE_D2 == PCI_POWERSTATE_D2);
CTASSERT(ACPI_STATE_D3 == PCI_POWERSTATE_D3);
static int acpi_pci_attach(device_t dev);
+static void acpi_pci_child_deleted(device_t dev, device_t child);
static int acpi_pci_child_location_str_method(device_t cbdev,
device_t child, char *buf, size_t buflen);
static int acpi_pci_probe(device_t dev);
@@ -97,11 +99,13 @@ static device_method_t acpi_pci_methods[] = {
/* Bus interface */
DEVMETHOD(bus_read_ivar, acpi_pci_read_ivar),
DEVMETHOD(bus_write_ivar, acpi_pci_write_ivar),
+ DEVMETHOD(bus_child_deleted, acpi_pci_child_deleted),
DEVMETHOD(bus_child_location_str, acpi_pci_child_location_str_method),
DEVMETHOD(bus_get_dma_tag, acpi_pci_get_dma_tag),
DEVMETHOD(bus_get_domain, acpi_get_domain),
/* PCI interface */
+ DEVMETHOD(pci_child_added, acpi_pci_child_added),
DEVMETHOD(pci_set_powerstate, acpi_pci_set_powerstate_method),
#ifdef PCI_IOV
DEVMETHOD(pci_create_iov_child, acpi_pci_create_iov_child),
@@ -153,6 +157,16 @@ acpi_pci_write_ivar(device_t dev, device_t child, int which, uintptr_t value)
return (pci_write_ivar(dev, child, which, value));
}
+static void
+acpi_pci_child_deleted(device_t dev, device_t child)
+{
+ struct acpi_pci_devinfo *dinfo = device_get_ivars(child);
+
+ if (acpi_get_device(dinfo->ap_handle) == child)
+ AcpiDetachData(dinfo->ap_handle, acpi_fake_objhandler);
+ pci_child_deleted(dev, child);
+}
+
static int
acpi_pci_child_location_str_method(device_t cbdev, device_t child, char *buf,
size_t buflen)
@@ -259,31 +273,35 @@ acpi_pci_save_handle(ACPI_HANDLE handle, UINT32 level, void *context,
void **status)
{
struct acpi_pci_devinfo *dinfo;
- device_t *devlist;
- int devcount, i, func, slot;
+ device_t child;
+ int func, slot;
UINT32 address;
ACPI_FUNCTION_TRACE((char *)(uintptr_t)__func__);
+ child = context;
if (ACPI_FAILURE(acpi_GetInteger(handle, "_ADR", &address)))
return_ACPI_STATUS (AE_OK);
slot = ACPI_ADR_PCI_SLOT(address);
func = ACPI_ADR_PCI_FUNC(address);
- if (device_get_children((device_t)context, &devlist, &devcount) != 0)
- return_ACPI_STATUS (AE_OK);
- for (i = 0; i < devcount; i++) {
- dinfo = device_get_ivars(devlist[i]);
- if (dinfo->ap_dinfo.cfg.func == func &&
- dinfo->ap_dinfo.cfg.slot == slot) {
- dinfo->ap_handle = handle;
- acpi_pci_update_device(handle, devlist[i]);
- break;
- }
+ dinfo = device_get_ivars(child);
+ if (dinfo->ap_dinfo.cfg.func == func &&
+ dinfo->ap_dinfo.cfg.slot == slot) {
+ dinfo->ap_handle = handle;
+ acpi_pci_update_device(handle, child);
+ return_ACPI_STATUS (AE_CTRL_TERMINATE);
}
- free(devlist, M_TEMP);
return_ACPI_STATUS (AE_OK);
}
+void
+acpi_pci_child_added(device_t dev, device_t child)
+{
+
+ AcpiWalkNamespace(ACPI_TYPE_DEVICE, acpi_get_handle(dev), 1,
+ acpi_pci_save_handle, NULL, child, NULL);
+}
+
static int
acpi_pci_probe(device_t dev)
{
@@ -313,18 +331,18 @@ acpi_pci_attach(device_t dev)
busno = pcib_get_bus(dev);
/*
- * First, PCI devices are added as in the normal PCI bus driver.
- * Afterwards, the ACPI namespace under the bridge driver is
- * walked to save ACPI handles to all the devices that appear in
- * the ACPI namespace as immediate descendants of the bridge.
+ * PCI devices are added via the bus scan in the normal PCI
+ * bus driver. As each device is added, the
+ * acpi_pci_child_added() callback walks the ACPI namespace
+ * under the bridge driver to save ACPI handles to all the
+ * devices that appear in the ACPI namespace as immediate
+ * descendants of the bridge.
*
* XXX: Sometimes PCI devices show up in the ACPI namespace that
* pci_add_children() doesn't find. We currently just ignore
* these devices.
*/
pci_add_children(dev, domain, busno, sizeof(struct acpi_pci_devinfo));
- AcpiWalkNamespace(ACPI_TYPE_DEVICE, acpi_get_handle(dev), 1,
- acpi_pci_save_handle, NULL, dev, NULL);
return (bus_generic_attach(dev));
}
@@ -359,17 +377,9 @@ static device_t
acpi_pci_create_iov_child(device_t bus, device_t pf, uint16_t rid, uint16_t vid,
uint16_t did)
{
- struct acpi_pci_devinfo *dinfo;
- device_t vf;
-
- vf = pci_add_iov_child(bus, pf, sizeof(struct acpi_pci_devinfo), rid,
- vid, did);
- if (vf == NULL)
- return (NULL);
- dinfo = device_get_ivars(vf);
- dinfo->ap_handle = NULL;
- return (vf);
+ return (pci_add_iov_child(bus, pf, sizeof(struct acpi_pci_devinfo), rid,
+ vid, did));
}
#endif
diff --git a/sys/dev/acpica/acpi_pcivar.h b/sys/dev/acpica/acpi_pcivar.h
new file mode 100644
index 0000000..a720cc2
--- /dev/null
+++ b/sys/dev/acpica/acpi_pcivar.h
@@ -0,0 +1,38 @@
+/*-
+ * Copyright (c) 2016 John Baldwin <jhb@FreeBSD.org>
+ * 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 _ACPI_PCIVAR_H_
+#define _ACPI_PCIVAR_H_
+
+#ifdef _KERNEL
+
+void acpi_pci_child_added(device_t dev, device_t child);
+
+#endif
+
+#endif /* !_ACPI_PCIVAR_H_ */
diff --git a/sys/dev/acpica/acpivar.h b/sys/dev/acpica/acpivar.h
index 4df83d5..3ee7ab3 100644
--- a/sys/dev/acpica/acpivar.h
+++ b/sys/dev/acpica/acpivar.h
@@ -502,9 +502,7 @@ SYSCTL_DECL(_debug_acpi);
*
* Returns the VM domain ID if found, or -1 if not found / invalid.
*/
-#if MAXMEMDOM > 1
extern int acpi_map_pxm_to_vm_domainid(int pxm);
-#endif
extern int acpi_get_domain(device_t dev, device_t child, int *domain);
extern int acpi_parse_pxm(device_t dev, int *domain);
diff --git a/sys/dev/ahci/ahci_pci.c b/sys/dev/ahci/ahci_pci.c
index 57f7ea9..b6a961f 100644
--- a/sys/dev/ahci/ahci_pci.c
+++ b/sys/dev/ahci/ahci_pci.c
@@ -491,7 +491,7 @@ ahci_pci_attach(device_t dev)
if ((error = ahci_pci_ctlr_reset(dev)) != 0) {
ahci_free_mem(dev);
return (error);
- };
+ }
/* Setup interrupts. */
diff --git a/sys/dev/ata/chipsets/ata-intel.c b/sys/dev/ata/chipsets/ata-intel.c
index 46d0055..502a859 100644
--- a/sys/dev/ata/chipsets/ata-intel.c
+++ b/sys/dev/ata/chipsets/ata-intel.c
@@ -380,7 +380,7 @@ ata_intel_ch_attach(device_t dev)
} else if (ata_intel_sata_sidpr_test(dev)) {
ch->hw.pm_read = ata_intel_sata_sidpr_read;
ch->hw.pm_write = ata_intel_sata_sidpr_write;
- };
+ }
}
if (ch->hw.pm_write != NULL) {
ch->flags |= ATA_PERIODIC_POLL;
diff --git a/sys/dev/ath/ath_hal/ar5416/ar5416_radar.c b/sys/dev/ath/ath_hal/ar5416/ar5416_radar.c
index edac235..9759b74 100644
--- a/sys/dev/ath/ath_hal/ar5416/ar5416_radar.c
+++ b/sys/dev/ath/ath_hal/ar5416/ar5416_radar.c
@@ -365,7 +365,7 @@ ar5416ProcessRadarEvent(struct ath_hal *ah, struct ath_rx_status *rxs,
/* Cannot use ctrl channel RSSI if ext channel is stronger */
if (ext_rssi >= (rssi + 3)) {
rssi = 0;
- };
+ }
break;
case EXT_CH_RADAR_FOUND:
/* Radar in extended channel */
diff --git a/sys/dev/ath/if_ath.c b/sys/dev/ath/if_ath.c
index 8b1580a..e2dc250 100644
--- a/sys/dev/ath/if_ath.c
+++ b/sys/dev/ath/if_ath.c
@@ -1073,7 +1073,6 @@ ath_attach(u_int16_t devid, struct ath_softc *sc)
| IEEE80211_HTCAP_MAXAMSDU_3839
/* max A-MSDU length */
| IEEE80211_HTCAP_SMPS_OFF; /* SM power save off */
- ;
/*
* Enable short-GI for HT20 only if the hardware
diff --git a/sys/dev/ath/if_ath_rx.c b/sys/dev/ath/if_ath_rx.c
index dbdfb89..ff056ad 100644
--- a/sys/dev/ath/if_ath_rx.c
+++ b/sys/dev/ath/if_ath_rx.c
@@ -361,85 +361,102 @@ ath_recv_mgmt(struct ieee80211_node *ni, struct mbuf *m,
ATH_VAP(vap)->av_recv_mgmt(ni, m, subtype, rxs, rssi, nf);
switch (subtype) {
case IEEE80211_FC0_SUBTYPE_BEACON:
- /* update rssi statistics for use by the hal */
- /* XXX unlocked check against vap->iv_bss? */
- ATH_RSSI_LPF(sc->sc_halstats.ns_avgbrssi, rssi);
-
- tsf_beacon = ((uint64_t) LE_READ_4(ni->ni_tstamp.data + 4)) << 32;
- tsf_beacon |= LE_READ_4(ni->ni_tstamp.data);
-
- nexttbtt = ath_hal_getnexttbtt(sc->sc_ah);
/*
- * Let's calculate the delta and remainder, so we can see
- * if the beacon timer from the AP is varying by more than
- * a few TU. (Which would be a huge, huge problem.)
+ * Only do the following processing if it's for
+ * the current BSS.
+ *
+ * In scan and IBSS mode we receive all beacons,
+ * which means we need to filter out stuff
+ * that isn't for us or we'll end up constantly
+ * trying to sync / merge to BSSes that aren't
+ * actually us.
*/
- tsf_delta = (long long) tsf_beacon - (long long) tsf_beacon_old;
+ if (IEEE80211_ADDR_EQ(ni->ni_bssid, vap->iv_bss->ni_bssid)) {
+ /* update rssi statistics for use by the hal */
+ /* XXX unlocked check against vap->iv_bss? */
+ ATH_RSSI_LPF(sc->sc_halstats.ns_avgbrssi, rssi);
- tsf_delta_bmiss = tsf_delta / tsf_intval;
- /*
- * If our delta is greater than half the beacon interval,
- * let's round the bmiss value up to the next beacon
- * interval. Ie, we're running really, really early
- * on the next beacon.
- */
- if (tsf_delta % tsf_intval > (tsf_intval / 2))
- tsf_delta_bmiss ++;
+ tsf_beacon = ((uint64_t) LE_READ_4(ni->ni_tstamp.data + 4)) << 32;
+ tsf_beacon |= LE_READ_4(ni->ni_tstamp.data);
- tsf_beacon_target = tsf_beacon_old +
- (((unsigned long long) tsf_delta_bmiss) * (long long) tsf_intval);
+ nexttbtt = ath_hal_getnexttbtt(sc->sc_ah);
- /*
- * The remainder using '%' is between 0 .. intval-1.
- * If we're actually running too fast, then the remainder
- * will be some large number just under intval-1.
- * So we need to look at whether we're running
- * before or after the target beacon interval
- * and if we are, modify how we do the remainder
- * calculation.
- */
- if (tsf_beacon < tsf_beacon_target) {
- tsf_remainder =
- -(tsf_intval - ((tsf_beacon - tsf_beacon_old) % tsf_intval));
- } else {
- tsf_remainder = (tsf_beacon - tsf_beacon_old) % tsf_intval;
- }
+ /*
+ * Let's calculate the delta and remainder, so we can see
+ * if the beacon timer from the AP is varying by more than
+ * a few TU. (Which would be a huge, huge problem.)
+ */
+ tsf_delta = (long long) tsf_beacon - (long long) tsf_beacon_old;
+
+ tsf_delta_bmiss = tsf_delta / tsf_intval;
+
+ /*
+ * If our delta is greater than half the beacon interval,
+ * let's round the bmiss value up to the next beacon
+ * interval. Ie, we're running really, really early
+ * on the next beacon.
+ */
+ if (tsf_delta % tsf_intval > (tsf_intval / 2))
+ tsf_delta_bmiss ++;
+
+ tsf_beacon_target = tsf_beacon_old +
+ (((unsigned long long) tsf_delta_bmiss) * (long long) tsf_intval);
- DPRINTF(sc, ATH_DEBUG_BEACON, "%s: old_tsf=%llu, new_tsf=%llu, target_tsf=%llu, delta=%lld, bmiss=%d, remainder=%d\n",
- __func__,
- (unsigned long long) tsf_beacon_old,
- (unsigned long long) tsf_beacon,
- (unsigned long long) tsf_beacon_target,
- (long long) tsf_delta,
- tsf_delta_bmiss,
- tsf_remainder);
-
- DPRINTF(sc, ATH_DEBUG_BEACON, "%s: tsf=%llu, nexttbtt=%llu, delta=%d\n",
- __func__,
- (unsigned long long) tsf_beacon,
- (unsigned long long) nexttbtt,
- (int32_t) tsf_beacon - (int32_t) nexttbtt + tsf_intval);
-
- if (sc->sc_syncbeacon &&
- ni == vap->iv_bss &&
- (vap->iv_state == IEEE80211_S_RUN || vap->iv_state == IEEE80211_S_SLEEP)) {
- DPRINTF(sc, ATH_DEBUG_BEACON,
- "%s: syncbeacon=1; syncing\n",
- __func__);
/*
- * Resync beacon timers using the tsf of the beacon
- * frame we just received.
+ * The remainder using '%' is between 0 .. intval-1.
+ * If we're actually running too fast, then the remainder
+ * will be some large number just under intval-1.
+ * So we need to look at whether we're running
+ * before or after the target beacon interval
+ * and if we are, modify how we do the remainder
+ * calculation.
*/
- ath_beacon_config(sc, vap);
- sc->sc_syncbeacon = 0;
+ if (tsf_beacon < tsf_beacon_target) {
+ tsf_remainder =
+ -(tsf_intval - ((tsf_beacon - tsf_beacon_old) % tsf_intval));
+ } else {
+ tsf_remainder = (tsf_beacon - tsf_beacon_old) % tsf_intval;
+ }
+
+ DPRINTF(sc, ATH_DEBUG_BEACON, "%s: old_tsf=%llu, new_tsf=%llu, target_tsf=%llu, delta=%lld, bmiss=%d, remainder=%d\n",
+ __func__,
+ (unsigned long long) tsf_beacon_old,
+ (unsigned long long) tsf_beacon,
+ (unsigned long long) tsf_beacon_target,
+ (long long) tsf_delta,
+ tsf_delta_bmiss,
+ tsf_remainder);
+
+ DPRINTF(sc, ATH_DEBUG_BEACON, "%s: tsf=%llu, nexttbtt=%llu, delta=%d\n",
+ __func__,
+ (unsigned long long) tsf_beacon,
+ (unsigned long long) nexttbtt,
+ (int32_t) tsf_beacon - (int32_t) nexttbtt + tsf_intval);
+
+ /* We only do syncbeacon on STA VAPs; not on IBSS */
+ if (vap->iv_opmode == IEEE80211_M_STA &&
+ sc->sc_syncbeacon &&
+ ni == vap->iv_bss &&
+ (vap->iv_state == IEEE80211_S_RUN || vap->iv_state == IEEE80211_S_SLEEP)) {
+ DPRINTF(sc, ATH_DEBUG_BEACON,
+ "%s: syncbeacon=1; syncing\n",
+ __func__);
+ /*
+ * Resync beacon timers using the tsf of the beacon
+ * frame we just received.
+ */
+ ath_beacon_config(sc, vap);
+ sc->sc_syncbeacon = 0;
+ }
}
/* fall thru... */
case IEEE80211_FC0_SUBTYPE_PROBE_RESP:
if (vap->iv_opmode == IEEE80211_M_IBSS &&
- vap->iv_state == IEEE80211_S_RUN) {
+ vap->iv_state == IEEE80211_S_RUN &&
+ ieee80211_ibss_merge_check(ni)) {
uint32_t rstamp = sc->sc_lastrs->rs_tstamp;
uint64_t tsf = ath_extend_tsf(sc, rstamp,
ath_hal_gettsf64(sc->sc_ah));
diff --git a/sys/dev/bhnd/bcma/bcma_erom.c b/sys/dev/bhnd/bcma/bcma_erom.c
index 2fd3275..3f9abf9 100644
--- a/sys/dev/bhnd/bcma/bcma_erom.c
+++ b/sys/dev/bhnd/bcma/bcma_erom.c
@@ -567,7 +567,7 @@ bcma_erom_get_core_info(struct bcma_erom *erom,
for (u_int j = 0; j < i; j++) {
if (buffer[i].vendor == buffer[j].vendor &&
buffer[i].device == buffer[j].device)
- buffer[i].unit++;;
+ buffer[i].unit++;
}
}
@@ -625,7 +625,7 @@ erom_corecfg_fill_port_regions(struct bcma_erom *erom,
EROM_LOG(erom, "unsupported region type %hhx\n",
region_type);
return (EINVAL);
- };
+ }
/* Fetch the list to be populated */
sports = bcma_corecfg_get_port_list(corecfg, port_type);
diff --git a/sys/dev/bhnd/bhndb/bhndb_pci.c b/sys/dev/bhnd/bhndb/bhndb_pci.c
index 03a0996..ac5409a 100644
--- a/sys/dev/bhnd/bhndb/bhndb_pci.c
+++ b/sys/dev/bhnd/bhndb/bhndb_pci.c
@@ -1007,7 +1007,7 @@ bhndb_pci_discover_quirks(struct bhndb_pci_softc *sc,
for (qt = id->quirks; qt->quirks != 0; qt++) {
if (bhnd_hwrev_matches(hwrev, &qt->hwrev))
quirks |= qt->quirks;
- };
+ }
}
diff --git a/sys/dev/bhnd/cores/chipc/chipc.c b/sys/dev/bhnd/cores/chipc/chipc.c
index f47a8f2..e03ddfe 100644
--- a/sys/dev/bhnd/cores/chipc/chipc.c
+++ b/sys/dev/bhnd/cores/chipc/chipc.c
@@ -160,7 +160,7 @@ chipc_attach(device_t dev)
for (dq = chipc_quirks; dq->quirks != 0; dq++) {
if (bhnd_hwrev_matches(bhnd_get_hwrev(dev), &dq->hwrev))
sc->quirks |= dq->quirks;
- };
+ }
// TODO
switch (bhnd_chipc_nvram_src(dev)) {
diff --git a/sys/dev/bhnd/siba/siba.c b/sys/dev/bhnd/siba/siba.c
index 5f1410d..9e837e3f 100644
--- a/sys/dev/bhnd/siba/siba.c
+++ b/sys/dev/bhnd/siba/siba.c
@@ -126,7 +126,7 @@ siba_attach(device_t dev)
error = ENXIO;
goto cleanup;
}
- };
+ }
}
cleanup:
diff --git a/sys/dev/bktr/bktr_core.c b/sys/dev/bktr/bktr_core.c
index c38afe5..764eda5 100644
--- a/sys/dev/bktr/bktr_core.c
+++ b/sys/dev/bktr/bktr_core.c
@@ -590,7 +590,7 @@ bktr_store_address(unit, BKTR_MEM_BUF, buf);
bktr->id = BROOKTREE_879;
break;
}
- };
+ }
bktr->clr_on_start = FALSE;
@@ -3046,7 +3046,7 @@ rgb_prog( bktr_ptr_t bktr, char i_flag, int cols, int rows, int interlace )
/* sync vro */
*dma_prog++ = OP_SYNC | BKTR_GEN_IRQ | BKTR_RESYNC | BKTR_VRO;
*dma_prog++ = 0; /* NULL WORD */
- *dma_prog++ = OP_JUMP; ;
+ *dma_prog++ = OP_JUMP;
*dma_prog = (uint32_t ) vtophys(bktr->odd_dma_prog);
break;
}
diff --git a/sys/dev/bktr/bktr_os.c b/sys/dev/bktr/bktr_os.c
index e5ea53b..e8c0f7b 100644
--- a/sys/dev/bktr/bktr_os.c
+++ b/sys/dev/bktr/bktr_os.c
@@ -304,7 +304,7 @@ bktr_probe( device_t dev )
device_set_desc(dev, "BrookTree 879");
return BUS_PROBE_DEFAULT;
}
- };
+ }
return ENXIO;
}
diff --git a/sys/dev/bxe/bxe.c b/sys/dev/bxe/bxe.c
index 53d8e97..91a5bf3 100644
--- a/sys/dev/bxe/bxe.c
+++ b/sys/dev/bxe/bxe.c
@@ -1620,7 +1620,7 @@ bxe_read_dmae(struct bxe_softc *sc,
/* issue the command and wait for completion */
if ((rc = bxe_issue_dmae_with_comp(sc, &dmae)) != 0) {
bxe_panic(sc, ("DMAE failed (%d)\n", rc));
- };
+ }
}
void
diff --git a/sys/dev/cardbus/cardbus.c b/sys/dev/cardbus/cardbus.c
index b33f462a..e785b0f 100644
--- a/sys/dev/cardbus/cardbus.c
+++ b/sys/dev/cardbus/cardbus.c
@@ -226,31 +226,30 @@ cardbus_attach_card(device_t cbdev)
return (ENOENT);
}
+static void
+cardbus_child_deleted(device_t cbdev, device_t child)
+{
+ struct cardbus_devinfo *dinfo = device_get_ivars(child);
+
+ if (dinfo->pci.cfg.dev != child)
+ device_printf(cbdev, "devinfo dev mismatch\n");
+ cardbus_device_destroy(dinfo);
+ pci_child_deleted(cbdev, child);
+}
+
static int
cardbus_detach_card(device_t cbdev)
{
- int numdevs;
- device_t *devlist;
- int tmp;
int err = 0;
- if (device_get_children(cbdev, &devlist, &numdevs) != 0)
- return (ENOENT);
- if (numdevs == 0) {
- free(devlist, M_TEMP);
- return (ENOENT);
- }
-
- for (tmp = 0; tmp < numdevs; tmp++) {
- struct cardbus_devinfo *dinfo = device_get_ivars(devlist[tmp]);
+ err = bus_generic_detach(cbdev);
+ if (err)
+ return (err);
+ err = device_delete_children(cbdev);
+ if (err)
+ return (err);
- if (dinfo->pci.cfg.dev != devlist[tmp])
- device_printf(cbdev, "devinfo dev mismatch\n");
- cardbus_device_destroy(dinfo);
- pci_delete_child(cbdev, devlist[tmp]);
- }
POWER_DISABLE_SOCKET(device_get_parent(cbdev), cbdev);
- free(devlist, M_TEMP);
return (err);
}
@@ -335,6 +334,7 @@ static device_method_t cardbus_methods[] = {
DEVMETHOD(device_resume, cardbus_resume),
/* Bus interface */
+ DEVMETHOD(bus_child_deleted, cardbus_child_deleted),
DEVMETHOD(bus_get_dma_tag, bus_generic_get_dma_tag),
DEVMETHOD(bus_read_ivar, cardbus_read_ivar),
DEVMETHOD(bus_driver_added, cardbus_driver_added),
diff --git a/sys/dev/cxgbe/firmware/t5fw_cfg.txt b/sys/dev/cxgbe/firmware/t5fw_cfg.txt
index 9e16da5..721ff37 100644
--- a/sys/dev/cxgbe/firmware/t5fw_cfg.txt
+++ b/sys/dev/cxgbe/firmware/t5fw_cfg.txt
@@ -151,6 +151,7 @@
niqflint = 512
nethctrl = 1024
neq = 2048
+ nqpcq = 8192
nexactf = 456
cmask = all
pmask = all
@@ -289,7 +290,7 @@
[fini]
version = 0x1
- checksum = 0x2d7417e5
+ checksum = 0x89c83d98
#
# $FreeBSD$
#
diff --git a/sys/dev/cxgbe/iw_cxgbe/mem.c b/sys/dev/cxgbe/iw_cxgbe/mem.c
index e42aa1a..f7e90a5 100644
--- a/sys/dev/cxgbe/iw_cxgbe/mem.c
+++ b/sys/dev/cxgbe/iw_cxgbe/mem.c
@@ -796,7 +796,7 @@ struct ib_fast_reg_page_list *c4iw_alloc_fastreg_pbl(struct ib_device *device,
if (c4pl)
dma_addr = vtophys(c4pl);
else
- return ERR_PTR(-ENOMEM);;
+ return ERR_PTR(-ENOMEM);
pci_unmap_addr_set(c4pl, mapping, dma_addr);
c4pl->dma_addr = dma_addr;
diff --git a/sys/dev/cxgbe/t4_main.c b/sys/dev/cxgbe/t4_main.c
index 11d4253..e3b64b0 100644
--- a/sys/dev/cxgbe/t4_main.c
+++ b/sys/dev/cxgbe/t4_main.c
@@ -28,6 +28,7 @@
#include <sys/cdefs.h>
__FBSDID("$FreeBSD$");
+#include "opt_ddb.h"
#include "opt_inet.h"
#include "opt_inet6.h"
#include "opt_rss.h"
@@ -63,6 +64,10 @@ __FBSDID("$FreeBSD$");
#include <vm/vm.h>
#include <vm/pmap.h>
#endif
+#ifdef DDB
+#include <ddb/ddb.h>
+#include <ddb/db_lex.h>
+#endif
#include "common/common.h"
#include "common/t4_msg.h"
@@ -2123,7 +2128,7 @@ rw_via_memwin(struct adapter *sc, int idx, uint32_t addr, uint32_t *val,
} else {
v = *val++;
t4_write_reg(sc, mw->mw_base + addr -
- mw->mw_curpos, htole32(v));;
+ mw->mw_curpos, htole32(v));
}
addr += 4;
len -= 4;
@@ -9163,6 +9168,179 @@ tweak_tunables(void)
t4_intr_types &= INTR_MSIX | INTR_MSI | INTR_INTX;
}
+#ifdef DDB
+static void
+t4_dump_tcb(struct adapter *sc, int tid)
+{
+ uint32_t base, i, j, off, pf, reg, save, tcb_addr, win_pos;
+
+ reg = PCIE_MEM_ACCESS_REG(A_PCIE_MEM_ACCESS_OFFSET, 2);
+ save = t4_read_reg(sc, reg);
+ base = sc->memwin[2].mw_base;
+
+ /* Dump TCB for the tid */
+ tcb_addr = t4_read_reg(sc, A_TP_CMM_TCB_BASE);
+ tcb_addr += tid * TCB_SIZE;
+
+ if (is_t4(sc)) {
+ pf = 0;
+ win_pos = tcb_addr & ~0xf; /* start must be 16B aligned */
+ } else {
+ pf = V_PFNUM(sc->pf);
+ win_pos = tcb_addr & ~0x7f; /* start must be 128B aligned */
+ }
+ t4_write_reg(sc, reg, win_pos | pf);
+ t4_read_reg(sc, reg);
+
+ off = tcb_addr - win_pos;
+ for (i = 0; i < 4; i++) {
+ uint32_t buf[8];
+ for (j = 0; j < 8; j++, off += 4)
+ buf[j] = htonl(t4_read_reg(sc, base + off));
+
+ db_printf("%08x %08x %08x %08x %08x %08x %08x %08x\n",
+ buf[0], buf[1], buf[2], buf[3], buf[4], buf[5], buf[6],
+ buf[7]);
+ }
+
+ t4_write_reg(sc, reg, save);
+ t4_read_reg(sc, reg);
+}
+
+static void
+t4_dump_devlog(struct adapter *sc)
+{
+ struct devlog_params *dparams = &sc->params.devlog;
+ struct fw_devlog_e e;
+ int i, first, j, m, nentries, rc;
+ uint64_t ftstamp = UINT64_MAX;
+
+ if (dparams->start == 0) {
+ db_printf("devlog params not valid\n");
+ return;
+ }
+
+ nentries = dparams->size / sizeof(struct fw_devlog_e);
+ m = fwmtype_to_hwmtype(dparams->memtype);
+
+ /* Find the first entry. */
+ first = -1;
+ for (i = 0; i < nentries && !db_pager_quit; i++) {
+ rc = -t4_mem_read(sc, m, dparams->start + i * sizeof(e),
+ sizeof(e), (void *)&e);
+ if (rc != 0)
+ break;
+
+ if (e.timestamp == 0)
+ break;
+
+ e.timestamp = be64toh(e.timestamp);
+ if (e.timestamp < ftstamp) {
+ ftstamp = e.timestamp;
+ first = i;
+ }
+ }
+
+ if (first == -1)
+ return;
+
+ i = first;
+ do {
+ rc = -t4_mem_read(sc, m, dparams->start + i * sizeof(e),
+ sizeof(e), (void *)&e);
+ if (rc != 0)
+ return;
+
+ if (e.timestamp == 0)
+ return;
+
+ e.timestamp = be64toh(e.timestamp);
+ e.seqno = be32toh(e.seqno);
+ for (j = 0; j < 8; j++)
+ e.params[j] = be32toh(e.params[j]);
+
+ db_printf("%10d %15ju %8s %8s ",
+ e.seqno, e.timestamp,
+ (e.level < nitems(devlog_level_strings) ?
+ devlog_level_strings[e.level] : "UNKNOWN"),
+ (e.facility < nitems(devlog_facility_strings) ?
+ devlog_facility_strings[e.facility] : "UNKNOWN"));
+ db_printf(e.fmt, e.params[0], e.params[1], e.params[2],
+ e.params[3], e.params[4], e.params[5], e.params[6],
+ e.params[7]);
+
+ if (++i == nentries)
+ i = 0;
+ } while (i != first && !db_pager_quit);
+}
+
+static struct command_table db_t4_table = LIST_HEAD_INITIALIZER(db_t4_table);
+_DB_SET(_show, t4, NULL, db_show_table, 0, &db_t4_table);
+
+DB_FUNC(devlog, db_show_devlog, db_t4_table, CS_OWN, NULL)
+{
+ device_t dev;
+ int t;
+ bool valid;
+
+ valid = false;
+ t = db_read_token();
+ if (t == tIDENT) {
+ dev = device_lookup_by_name(db_tok_string);
+ valid = true;
+ }
+ db_skip_to_eol();
+ if (!valid) {
+ db_printf("usage: show t4 devlog <nexus>\n");
+ return;
+ }
+
+ if (dev == NULL) {
+ db_printf("device not found\n");
+ return;
+ }
+
+ t4_dump_devlog(device_get_softc(dev));
+}
+
+DB_FUNC(tcb, db_show_t4tcb, db_t4_table, CS_OWN, NULL)
+{
+ device_t dev;
+ int radix, tid, t;
+ bool valid;
+
+ valid = false;
+ radix = db_radix;
+ db_radix = 10;
+ t = db_read_token();
+ if (t == tIDENT) {
+ dev = device_lookup_by_name(db_tok_string);
+ t = db_read_token();
+ if (t == tNUMBER) {
+ tid = db_tok_number;
+ valid = true;
+ }
+ }
+ db_radix = radix;
+ db_skip_to_eol();
+ if (!valid) {
+ db_printf("usage: show t4 tcb <nexus> <tid>\n");
+ return;
+ }
+
+ if (dev == NULL) {
+ db_printf("device not found\n");
+ return;
+ }
+ if (tid < 0) {
+ db_printf("invalid tid\n");
+ return;
+ }
+
+ t4_dump_tcb(device_get_softc(dev), tid);
+}
+#endif
+
static struct sx mlu; /* mod load unload */
SX_SYSINIT(cxgbe_mlu, &mlu, "cxgbe mod load/unload");
diff --git a/sys/dev/cxgbe/tom/t4_ddp.c b/sys/dev/cxgbe/tom/t4_ddp.c
index 2df02577..2aa774d 100644
--- a/sys/dev/cxgbe/tom/t4_ddp.c
+++ b/sys/dev/cxgbe/tom/t4_ddp.c
@@ -80,31 +80,6 @@ static struct mbuf *get_ddp_mbuf(int len);
/* XXX: must match A_ULP_RX_TDDP_PSZ */
static int t4_ddp_pgsz[] = {4096, 4096 << 2, 4096 << 4, 4096 << 6};
-#if 0
-static void
-t4_dump_tcb(struct adapter *sc, int tid)
-{
- uint32_t tcb_base, off, i, j;
-
- /* Dump TCB for the tid */
- tcb_base = t4_read_reg(sc, A_TP_CMM_TCB_BASE);
- t4_write_reg(sc, PCIE_MEM_ACCESS_REG(A_PCIE_MEM_ACCESS_OFFSET, 2),
- tcb_base + tid * TCB_SIZE);
- t4_read_reg(sc, PCIE_MEM_ACCESS_REG(A_PCIE_MEM_ACCESS_OFFSET, 2));
- off = 0;
- printf("\n");
- for (i = 0; i < 4; i++) {
- uint32_t buf[8];
- for (j = 0; j < 8; j++, off += 4)
- buf[j] = htonl(t4_read_reg(sc, MEMWIN2_BASE + off));
-
- printf("%08x %08x %08x %08x %08x %08x %08x %08x\n",
- buf[0], buf[1], buf[2], buf[3], buf[4], buf[5], buf[6],
- buf[7]);
- }
-}
-#endif
-
#define MAX_DDP_BUFFER_SIZE (M_TCB_RX_DDP_BUF0_LEN)
static int
alloc_ppods(struct tom_data *td, int n, u_int *ppod_addr)
diff --git a/sys/dev/drm2/radeon/radeon_bios.c b/sys/dev/drm2/radeon/radeon_bios.c
index ffb3756..78416bb 100644
--- a/sys/dev/drm2/radeon/radeon_bios.c
+++ b/sys/dev/drm2/radeon/radeon_bios.c
@@ -676,7 +676,7 @@ static bool radeon_acpi_vfct_bios(struct radeon_device *rdev)
vhdr->DeviceID != rdev->ddev->pci_device) {
DRM_INFO("ACPI VFCT table is not for this card\n");
goto out_unmap;
- };
+ }
if (vfct->VBIOSImageOffset + sizeof(VFCT_IMAGE_HEADER) + vhdr->ImageLength > tbl_size) {
DRM_ERROR("ACPI VFCT image truncated\n");
diff --git a/sys/dev/dwc/if_dwc.c b/sys/dev/dwc/if_dwc.c
index f0548d8..1984c48 100644
--- a/sys/dev/dwc/if_dwc.c
+++ b/sys/dev/dwc/if_dwc.c
@@ -70,6 +70,11 @@ __FBSDID("$FreeBSD$");
#include <dev/ofw/ofw_bus.h>
#include <dev/ofw/ofw_bus_subr.h>
+#ifdef EXT_RESOURCES
+#include <dev/extres/clk/clk.h>
+#include <dev/extres/hwreset/hwreset.h>
+#endif
+
#include "if_dwc_if.h"
#include "gpio_if.h"
#include "miibus_if.h"
@@ -1068,6 +1073,36 @@ dwc_reset(device_t dev)
return (0);
}
+#ifdef EXT_RESOURCES
+static int
+dwc_clock_init(device_t dev)
+{
+ hwreset_t rst;
+ clk_t clk;
+ int error;
+
+ /* Enable clock */
+ if (clk_get_by_ofw_name(dev, "stmmaceth", &clk) == 0) {
+ error = clk_enable(clk);
+ if (error != 0) {
+ device_printf(dev, "could not enable main clock\n");
+ return (error);
+ }
+ }
+
+ /* De-assert reset */
+ if (hwreset_get_by_ofw_name(dev, "stmmaceth", &rst) == 0) {
+ error = hwreset_deassert(rst);
+ if (error != 0) {
+ device_printf(dev, "could not de-assert reset\n");
+ return (error);
+ }
+ }
+
+ return (0);
+}
+#endif
+
static int
dwc_probe(device_t dev)
{
@@ -1101,6 +1136,11 @@ dwc_attach(device_t dev)
if (IF_DWC_INIT(dev) != 0)
return (ENXIO);
+#ifdef EXT_RESOURCES
+ if (dwc_clock_init(dev) != 0)
+ return (ENXIO);
+#endif
+
if (bus_alloc_resources(dev, dwc_spec, sc->res)) {
device_printf(dev, "could not allocate resources\n");
return (ENXIO);
diff --git a/sys/dev/etherswitch/arswitch/arswitch.c b/sys/dev/etherswitch/arswitch/arswitch.c
index 4388819..8396f8a 100644
--- a/sys/dev/etherswitch/arswitch/arswitch.c
+++ b/sys/dev/etherswitch/arswitch/arswitch.c
@@ -225,7 +225,7 @@ arswitch_set_vlan_mode(struct arswitch_softc *sc, uint32_t mode)
break;
default:
sc->vlan_mode = 0;
- };
+ }
/* Reset VLANs. */
sc->hal.arswitch_vlan_init_hw(sc);
diff --git a/sys/dev/etherswitch/arswitch/arswitch_8327.c b/sys/dev/etherswitch/arswitch/arswitch_8327.c
index 6e221a8..92e44fc 100644
--- a/sys/dev/etherswitch/arswitch/arswitch_8327.c
+++ b/sys/dev/etherswitch/arswitch/arswitch_8327.c
@@ -662,7 +662,7 @@ ar8327_hw_setup(struct arswitch_softc *sc)
/* start PHY autonegotiation? */
/* XXX is this done as part of the normal PHY setup? */
- };
+ }
/* Let things settle */
DELAY(1000);
diff --git a/sys/dev/etherswitch/ip17x/ip175c.c b/sys/dev/etherswitch/ip17x/ip175c.c
index f787052..30614a4 100644
--- a/sys/dev/etherswitch/ip17x/ip175c.c
+++ b/sys/dev/etherswitch/ip17x/ip175c.c
@@ -210,7 +210,7 @@ ip175c_set_vlan_mode(struct ip17x_softc *sc, uint32_t mode)
ip17x_updatephy(sc->sc_dev, 30, 9, 0x80, 0);
sc->vlan_mode = ETHERSWITCH_VLAN_PORT;
break;
- };
+ }
/* Reset vlans. */
ip17x_reset_vlans(sc, sc->vlan_mode);
diff --git a/sys/dev/etherswitch/ip17x/ip175d.c b/sys/dev/etherswitch/ip17x/ip175d.c
index 4962ac2..5d43641 100644
--- a/sys/dev/etherswitch/ip17x/ip175d.c
+++ b/sys/dev/etherswitch/ip17x/ip175d.c
@@ -167,7 +167,7 @@ ip175d_set_vlan_mode(struct ip17x_softc *sc, uint32_t mode)
ip17x_updatephy(sc->sc_dev, 22, 0, 0xbfff, 0x8000);
sc->vlan_mode = 0;
break;
- };
+ }
if (sc->vlan_mode != 0) {
/*
diff --git a/sys/dev/gpio/gpioiic.c b/sys/dev/gpio/gpioiic.c
index 15f8f18..d365eea 100644
--- a/sys/dev/gpio/gpioiic.c
+++ b/sys/dev/gpio/gpioiic.c
@@ -157,7 +157,7 @@ gpioiic_callback(device_t dev, int index, caddr_t data)
int error, how;
how = GPIOBUS_DONTWAIT;
- if (data != NULL && (int)*data == IIC_WAIT)
+ if (data != NULL && *(int*)data == IIC_WAIT)
how = GPIOBUS_WAIT;
error = 0;
switch (index) {
diff --git a/sys/dev/hwpmc/hwpmc_e500.c b/sys/dev/hwpmc/hwpmc_e500.c
index f8ae119..dbec7ae 100644
--- a/sys/dev/hwpmc/hwpmc_e500.c
+++ b/sys/dev/hwpmc/hwpmc_e500.c
@@ -507,6 +507,7 @@ e500_allocate_pmc(int cpu, int ri, struct pmc *pm,
pe = a->pm_ev;
config = PMLCax_FCS | PMLCax_FCU |
PMLCax_FCM1 | PMLCax_FCM1;
+
if (pe < PMC_EV_E500_FIRST || pe > PMC_EV_E500_LAST)
return (EINVAL);
@@ -517,14 +518,14 @@ e500_allocate_pmc(int cpu, int ri, struct pmc *pm,
vers = mfpvr() >> 16;
switch (vers) {
case FSL_E500v1:
- pe_cpu_mask = ev->pe_code & PMC_PPC_E500V1;
+ pe_cpu_mask = ev->pe_cpu & PMC_PPC_E500V1;
break;
case FSL_E500v2:
- pe_cpu_mask = ev->pe_code & PMC_PPC_E500V2;
+ pe_cpu_mask = ev->pe_cpu & PMC_PPC_E500V2;
break;
case FSL_E500mc:
case FSL_E5500:
- pe_cpu_mask = ev->pe_code & PMC_PPC_E500MC;
+ pe_cpu_mask = ev->pe_cpu & PMC_PPC_E500MC;
break;
}
if (pe_cpu_mask == 0)
diff --git a/sys/dev/hwpmc/hwpmc_mips.c b/sys/dev/hwpmc/hwpmc_mips.c
index 72f8e89..d9c26af 100644
--- a/sys/dev/hwpmc/hwpmc_mips.c
+++ b/sys/dev/hwpmc/hwpmc_mips.c
@@ -543,7 +543,7 @@ pmc_next_frame(register_t *pc, register_t *sp)
case OP_SYSCALL:
case OP_BREAK:
more = 1; /* stop now */
- };
+ }
break;
case OP_BCOND:
@@ -564,7 +564,7 @@ pmc_next_frame(register_t *pc, register_t *sp)
case OP_BCx:
case OP_BCy:
more = 2; /* stop after next instruction */
- };
+ }
break;
case OP_SW:
diff --git a/sys/dev/hyperv/netvsc/hv_net_vsc.c b/sys/dev/hyperv/netvsc/hv_net_vsc.c
index f6d7d9e..11b3435 100644
--- a/sys/dev/hyperv/netvsc/hv_net_vsc.c
+++ b/sys/dev/hyperv/netvsc/hv_net_vsc.c
@@ -742,10 +742,8 @@ cleanup:
* Free the packet buffers on the netvsc device packet queue.
* Release other resources.
*/
- if (net_dev) {
- sema_destroy(&net_dev->channel_init_sema);
- free(net_dev, M_NETVSC);
- }
+ sema_destroy(&net_dev->channel_init_sema);
+ free(net_dev, M_NETVSC);
return (NULL);
}
diff --git a/sys/dev/hyperv/netvsc/hv_netvsc_drv_freebsd.c b/sys/dev/hyperv/netvsc/hv_netvsc_drv_freebsd.c
index acc49b4..68c301a 100644
--- a/sys/dev/hyperv/netvsc/hv_netvsc_drv_freebsd.c
+++ b/sys/dev/hyperv/netvsc/hv_netvsc_drv_freebsd.c
@@ -136,6 +136,8 @@ __FBSDID("$FreeBSD$");
#define HN_LROENT_CNT_DEF 128
+#define HN_RING_CNT_DEF_MAX 8
+
#define HN_RNDIS_MSG_LEN \
(sizeof(rndis_msg) + \
RNDIS_HASH_PPI_SIZE + \
@@ -280,12 +282,12 @@ static int hn_use_if_start = 0;
SYSCTL_INT(_hw_hn, OID_AUTO, use_if_start, CTLFLAG_RDTUN,
&hn_use_if_start, 0, "Use if_start TX method");
-static int hn_chan_cnt = 1;
+static int hn_chan_cnt = 0;
SYSCTL_INT(_hw_hn, OID_AUTO, chan_cnt, CTLFLAG_RDTUN,
&hn_chan_cnt, 0,
"# of channels to use; each channel has one RX ring and one TX ring");
-static int hn_tx_ring_cnt = 1;
+static int hn_tx_ring_cnt = 0;
SYSCTL_INT(_hw_hn, OID_AUTO, tx_ring_cnt, CTLFLAG_RDTUN,
&hn_tx_ring_cnt, 0, "# of TX rings to use");
@@ -460,8 +462,14 @@ netvsc_attach(device_t dev)
* The # of RX rings to use is same as the # of channels to use.
*/
ring_cnt = hn_chan_cnt;
- if (ring_cnt <= 0 || ring_cnt > mp_ncpus)
+ if (ring_cnt <= 0) {
+ /* Default */
+ ring_cnt = mp_ncpus;
+ if (ring_cnt > HN_RING_CNT_DEF_MAX)
+ ring_cnt = HN_RING_CNT_DEF_MAX;
+ } else if (ring_cnt > mp_ncpus) {
ring_cnt = mp_ncpus;
+ }
tx_ring_cnt = hn_tx_ring_cnt;
if (tx_ring_cnt <= 0 || tx_ring_cnt > ring_cnt)
diff --git a/sys/dev/hyperv/netvsc/hv_rndis_filter.c b/sys/dev/hyperv/netvsc/hv_rndis_filter.c
index 1eb24fa..19da7e5 100644
--- a/sys/dev/hyperv/netvsc/hv_rndis_filter.c
+++ b/sys/dev/hyperv/netvsc/hv_rndis_filter.c
@@ -405,8 +405,7 @@ hv_rf_send_offload_request(struct hv_device *device,
}
cleanup:
- if (request)
- hv_put_rndis_request(rndis_dev, request);
+ hv_put_rndis_request(rndis_dev, request);
return (ret);
}
@@ -907,10 +906,8 @@ hv_rf_halt_device(rndis_device *device)
}
device->state = RNDIS_DEV_UNINITIALIZED;
-
- if (request != NULL) {
- hv_put_rndis_request(device, request);
- }
+
+ hv_put_rndis_request(device, request);
return (0);
}
diff --git a/sys/dev/hyperv/utilities/hv_heartbeat.c b/sys/dev/hyperv/utilities/hv_heartbeat.c
index 09bd28b..62de10b 100644
--- a/sys/dev/hyperv/utilities/hv_heartbeat.c
+++ b/sys/dev/hyperv/utilities/hv_heartbeat.c
@@ -59,7 +59,7 @@ hv_heartbeat_cb(void *context)
hv_util_sc *softc;
softc = (hv_util_sc*)context;
- buf = softc->receive_buffer;;
+ buf = softc->receive_buffer;
channel = softc->hv_dev->channel;
ret = hv_vmbus_channel_recv_packet(channel, buf, PAGE_SIZE, &recvlen,
diff --git a/sys/dev/hyperv/utilities/hv_kvp.c b/sys/dev/hyperv/utilities/hv_kvp.c
index d71310b..50563c4 100644
--- a/sys/dev/hyperv/utilities/hv_kvp.c
+++ b/sys/dev/hyperv/utilities/hv_kvp.c
@@ -619,7 +619,7 @@ hv_kvp_process_request(void *context, int pending)
hv_kvp_log_info("%s: entering hv_kvp_process_request\n", __func__);
sc = (hv_kvp_sc*)context;
- kvp_buf = sc->util_sc.receive_buffer;;
+ kvp_buf = sc->util_sc.receive_buffer;
channel = sc->util_sc.hv_dev->channel;
ret = hv_vmbus_channel_recv_packet(channel, kvp_buf, 2 * PAGE_SIZE,
diff --git a/sys/dev/hyperv/utilities/hv_shutdown.c b/sys/dev/hyperv/utilities/hv_shutdown.c
index 0beed5a..b0802af 100644
--- a/sys/dev/hyperv/utilities/hv_shutdown.c
+++ b/sys/dev/hyperv/utilities/hv_shutdown.c
@@ -63,7 +63,7 @@ hv_shutdown_cb(void *context)
hv_util_sc *softc;
softc = (hv_util_sc*)context;
- buf = softc->receive_buffer;;
+ buf = softc->receive_buffer;
channel = softc->hv_dev->channel;
ret = hv_vmbus_channel_recv_packet(channel, buf, PAGE_SIZE,
&recv_len, &request_id);
diff --git a/sys/dev/hyperv/vmbus/hv_channel.c b/sys/dev/hyperv/vmbus/hv_channel.c
index 03a3457..46d15bf 100644
--- a/sys/dev/hyperv/vmbus/hv_channel.c
+++ b/sys/dev/hyperv/vmbus/hv_channel.c
@@ -270,12 +270,12 @@ hv_vmbus_channel_open(
if (user_data_len)
memcpy(open_msg->user_data, user_data, user_data_len);
- mtx_lock_spin(&hv_vmbus_g_connection.channel_msg_lock);
+ mtx_lock(&hv_vmbus_g_connection.channel_msg_lock);
TAILQ_INSERT_TAIL(
&hv_vmbus_g_connection.channel_msg_anchor,
open_info,
msg_list_entry);
- mtx_unlock_spin(&hv_vmbus_g_connection.channel_msg_lock);
+ mtx_unlock(&hv_vmbus_g_connection.channel_msg_lock);
ret = hv_vmbus_post_message(
open_msg, sizeof(hv_vmbus_channel_open_channel));
@@ -302,12 +302,12 @@ hv_vmbus_channel_open(
}
cleanup:
- mtx_lock_spin(&hv_vmbus_g_connection.channel_msg_lock);
+ mtx_lock(&hv_vmbus_g_connection.channel_msg_lock);
TAILQ_REMOVE(
&hv_vmbus_g_connection.channel_msg_anchor,
open_info,
msg_list_entry);
- mtx_unlock_spin(&hv_vmbus_g_connection.channel_msg_lock);
+ mtx_unlock(&hv_vmbus_g_connection.channel_msg_lock);
sema_destroy(&open_info->wait_sema);
free(open_info, M_DEVBUF);
@@ -496,13 +496,13 @@ hv_vmbus_channel_establish_gpadl(
gpadl_msg->child_rel_id = channel->offer_msg.child_rel_id;
gpadl_msg->gpadl = next_gpadl_handle;
- mtx_lock_spin(&hv_vmbus_g_connection.channel_msg_lock);
+ mtx_lock(&hv_vmbus_g_connection.channel_msg_lock);
TAILQ_INSERT_TAIL(
&hv_vmbus_g_connection.channel_msg_anchor,
msg_info,
msg_list_entry);
- mtx_unlock_spin(&hv_vmbus_g_connection.channel_msg_lock);
+ mtx_unlock(&hv_vmbus_g_connection.channel_msg_lock);
ret = hv_vmbus_post_message(
gpadl_msg,
@@ -541,10 +541,10 @@ hv_vmbus_channel_establish_gpadl(
cleanup:
- mtx_lock_spin(&hv_vmbus_g_connection.channel_msg_lock);
+ mtx_lock(&hv_vmbus_g_connection.channel_msg_lock);
TAILQ_REMOVE(&hv_vmbus_g_connection.channel_msg_anchor,
msg_info, msg_list_entry);
- mtx_unlock_spin(&hv_vmbus_g_connection.channel_msg_lock);
+ mtx_unlock(&hv_vmbus_g_connection.channel_msg_lock);
sema_destroy(&msg_info->wait_sema);
free(msg_info, M_DEVBUF);
@@ -583,10 +583,10 @@ hv_vmbus_channel_teardown_gpdal(
msg->child_rel_id = channel->offer_msg.child_rel_id;
msg->gpadl = gpadl_handle;
- mtx_lock_spin(&hv_vmbus_g_connection.channel_msg_lock);
+ mtx_lock(&hv_vmbus_g_connection.channel_msg_lock);
TAILQ_INSERT_TAIL(&hv_vmbus_g_connection.channel_msg_anchor,
info, msg_list_entry);
- mtx_unlock_spin(&hv_vmbus_g_connection.channel_msg_lock);
+ mtx_unlock(&hv_vmbus_g_connection.channel_msg_lock);
ret = hv_vmbus_post_message(msg,
sizeof(hv_vmbus_channel_gpadl_teardown));
@@ -599,10 +599,10 @@ cleanup:
/*
* Received a torndown response
*/
- mtx_lock_spin(&hv_vmbus_g_connection.channel_msg_lock);
+ mtx_lock(&hv_vmbus_g_connection.channel_msg_lock);
TAILQ_REMOVE(&hv_vmbus_g_connection.channel_msg_anchor,
info, msg_list_entry);
- mtx_unlock_spin(&hv_vmbus_g_connection.channel_msg_lock);
+ mtx_unlock(&hv_vmbus_g_connection.channel_msg_lock);
sema_destroy(&info->wait_sema);
free(info, M_DEVBUF);
diff --git a/sys/dev/hyperv/vmbus/hv_channel_mgmt.c b/sys/dev/hyperv/vmbus/hv_channel_mgmt.c
index 30f2504..42d3750 100644
--- a/sys/dev/hyperv/vmbus/hv_channel_mgmt.c
+++ b/sys/dev/hyperv/vmbus/hv_channel_mgmt.c
@@ -492,7 +492,7 @@ vmbus_channel_on_open_result(hv_vmbus_channel_msg_header* hdr)
/*
* Find the open msg, copy the result and signal/unblock the wait event
*/
- mtx_lock_spin(&hv_vmbus_g_connection.channel_msg_lock);
+ mtx_lock(&hv_vmbus_g_connection.channel_msg_lock);
TAILQ_FOREACH(msg_info, &hv_vmbus_g_connection.channel_msg_anchor,
msg_list_entry) {
@@ -510,7 +510,7 @@ vmbus_channel_on_open_result(hv_vmbus_channel_msg_header* hdr)
}
}
}
- mtx_unlock_spin(&hv_vmbus_g_connection.channel_msg_lock);
+ mtx_unlock(&hv_vmbus_g_connection.channel_msg_lock);
}
@@ -534,7 +534,7 @@ vmbus_channel_on_gpadl_created(hv_vmbus_channel_msg_header* hdr)
/* Find the establish msg, copy the result and signal/unblock
* the wait event
*/
- mtx_lock_spin(&hv_vmbus_g_connection.channel_msg_lock);
+ mtx_lock(&hv_vmbus_g_connection.channel_msg_lock);
TAILQ_FOREACH(msg_info, &hv_vmbus_g_connection.channel_msg_anchor,
msg_list_entry) {
request_header = (hv_vmbus_channel_msg_header*) msg_info->msg;
@@ -553,7 +553,7 @@ vmbus_channel_on_gpadl_created(hv_vmbus_channel_msg_header* hdr)
}
}
}
- mtx_unlock_spin(&hv_vmbus_g_connection.channel_msg_lock);
+ mtx_unlock(&hv_vmbus_g_connection.channel_msg_lock);
}
/**
@@ -578,7 +578,7 @@ vmbus_channel_on_gpadl_torndown(hv_vmbus_channel_msg_header* hdr)
* wait event.
*/
- mtx_lock_spin(&hv_vmbus_g_connection.channel_msg_lock);
+ mtx_lock(&hv_vmbus_g_connection.channel_msg_lock);
TAILQ_FOREACH(msg_info, &hv_vmbus_g_connection.channel_msg_anchor,
msg_list_entry) {
@@ -598,7 +598,7 @@ vmbus_channel_on_gpadl_torndown(hv_vmbus_channel_msg_header* hdr)
}
}
}
- mtx_unlock_spin(&hv_vmbus_g_connection.channel_msg_lock);
+ mtx_unlock(&hv_vmbus_g_connection.channel_msg_lock);
}
/**
@@ -618,7 +618,7 @@ vmbus_channel_on_version_response(hv_vmbus_channel_msg_header* hdr)
versionResponse = (hv_vmbus_channel_version_response*)hdr;
- mtx_lock_spin(&hv_vmbus_g_connection.channel_msg_lock);
+ mtx_lock(&hv_vmbus_g_connection.channel_msg_lock);
TAILQ_FOREACH(msg_info, &hv_vmbus_g_connection.channel_msg_anchor,
msg_list_entry) {
requestHeader = (hv_vmbus_channel_msg_header*) msg_info->msg;
@@ -632,7 +632,7 @@ vmbus_channel_on_version_response(hv_vmbus_channel_msg_header* hdr)
sema_post(&msg_info->wait_sema);
}
}
- mtx_unlock_spin(&hv_vmbus_g_connection.channel_msg_lock);
+ mtx_unlock(&hv_vmbus_g_connection.channel_msg_lock);
}
diff --git a/sys/dev/hyperv/vmbus/hv_connection.c b/sys/dev/hyperv/vmbus/hv_connection.c
index e170298..44effef 100644
--- a/sys/dev/hyperv/vmbus/hv_connection.c
+++ b/sys/dev/hyperv/vmbus/hv_connection.c
@@ -96,26 +96,26 @@ hv_vmbus_negotiate_version(hv_vmbus_channel_msg_info *msg_info,
* Add to list before we send the request since we may receive the
* response before returning from this routine
*/
- mtx_lock_spin(&hv_vmbus_g_connection.channel_msg_lock);
+ mtx_lock(&hv_vmbus_g_connection.channel_msg_lock);
TAILQ_INSERT_TAIL(
&hv_vmbus_g_connection.channel_msg_anchor,
msg_info,
msg_list_entry);
- mtx_unlock_spin(&hv_vmbus_g_connection.channel_msg_lock);
+ mtx_unlock(&hv_vmbus_g_connection.channel_msg_lock);
ret = hv_vmbus_post_message(
msg,
sizeof(hv_vmbus_channel_initiate_contact));
if (ret != 0) {
- mtx_lock_spin(&hv_vmbus_g_connection.channel_msg_lock);
+ mtx_lock(&hv_vmbus_g_connection.channel_msg_lock);
TAILQ_REMOVE(
&hv_vmbus_g_connection.channel_msg_anchor,
msg_info,
msg_list_entry);
- mtx_unlock_spin(&hv_vmbus_g_connection.channel_msg_lock);
+ mtx_unlock(&hv_vmbus_g_connection.channel_msg_lock);
return (ret);
}
@@ -124,12 +124,12 @@ hv_vmbus_negotiate_version(hv_vmbus_channel_msg_info *msg_info,
*/
ret = sema_timedwait(&msg_info->wait_sema, 5 * hz); /* KYS 5 seconds */
- mtx_lock_spin(&hv_vmbus_g_connection.channel_msg_lock);
+ mtx_lock(&hv_vmbus_g_connection.channel_msg_lock);
TAILQ_REMOVE(
&hv_vmbus_g_connection.channel_msg_anchor,
msg_info,
msg_list_entry);
- mtx_unlock_spin(&hv_vmbus_g_connection.channel_msg_lock);
+ mtx_unlock(&hv_vmbus_g_connection.channel_msg_lock);
/**
* Check if successful
@@ -166,7 +166,7 @@ hv_vmbus_connect(void) {
TAILQ_INIT(&hv_vmbus_g_connection.channel_msg_anchor);
mtx_init(&hv_vmbus_g_connection.channel_msg_lock, "vmbus channel msg",
- NULL, MTX_SPIN);
+ NULL, MTX_DEF);
TAILQ_INIT(&hv_vmbus_g_connection.channel_anchor);
mtx_init(&hv_vmbus_g_connection.channel_lock, "vmbus channel",
diff --git a/sys/dev/hyperv/vmbus/hv_hv.c b/sys/dev/hyperv/vmbus/hv_hv.c
index a87b5ce..b835a34 100644
--- a/sys/dev/hyperv/vmbus/hv_hv.c
+++ b/sys/dev/hyperv/vmbus/hv_hv.c
@@ -33,10 +33,10 @@
__FBSDID("$FreeBSD$");
#include <sys/param.h>
+#include <sys/kernel.h>
#include <sys/malloc.h>
#include <sys/pcpu.h>
#include <sys/timetc.h>
-#include <sys/kernel.h>
#include <machine/bus.h>
#include <machine/md_var.h>
#include <vm/vm.h>
@@ -48,9 +48,16 @@ __FBSDID("$FreeBSD$");
#define HV_NANOSECONDS_PER_SEC 1000000000L
+#define HYPERV_INTERFACE 0x31237648 /* HV#1 */
static u_int hv_get_timecount(struct timecounter *tc);
+u_int hyperv_features;
+u_int hyperv_recommends;
+
+static u_int hyperv_pm_features;
+static u_int hyperv_features3;
+
/**
* Globals
*/
@@ -71,47 +78,6 @@ hv_get_timecount(struct timecounter *tc)
}
/**
- * @brief Query the cpuid for presence of windows hypervisor
- */
-int
-hv_vmbus_query_hypervisor_presence(void)
-{
- if (vm_guest != VM_GUEST_HV)
- return (0);
-
- return (hv_high >= HV_X64_CPUID_MIN && hv_high <= HV_X64_CPUID_MAX);
-}
-
-/**
- * @brief Get version of the windows hypervisor
- */
-static int
-hv_vmbus_get_hypervisor_version(void)
-{
- u_int regs[4];
- unsigned int maxLeaf;
- unsigned int op;
-
- /*
- * Its assumed that this is called after confirming that
- * Viridian is present
- * Query id and revision.
- */
- op = HV_CPU_ID_FUNCTION_HV_VENDOR_AND_MAX_FUNCTION;
- do_cpuid(op, regs);
-
- maxLeaf = regs[0];
- op = HV_CPU_ID_FUNCTION_HV_INTERFACE;
- do_cpuid(op, regs);
-
- if (maxLeaf >= HV_CPU_ID_FUNCTION_MS_HV_VERSION) {
- op = HV_CPU_ID_FUNCTION_MS_HV_VERSION;
- do_cpuid(op, regs);
- }
- return (maxLeaf);
-}
-
-/**
* @brief Invoke the specified hypercall
*/
static uint64_t
@@ -160,7 +126,6 @@ hv_vmbus_do_hypercall(uint64_t control, void* input, void* output)
int
hv_vmbus_init(void)
{
- int max_leaf;
hv_vmbus_x64_msr_hypercall_contents hypercall_msr;
void* virt_addr = 0;
@@ -177,8 +142,6 @@ hv_vmbus_init(void)
if (vm_guest != VM_GUEST_HV)
goto cleanup;
- max_leaf = hv_vmbus_get_hypervisor_version();
-
/*
* Write our OS info
*/
@@ -436,14 +399,117 @@ void hv_vmbus_synic_cleanup(void *arg)
wrmsr(HV_X64_MSR_SIEFP, siefp.as_uint64_t);
}
-static void
-hv_tc_init(void)
+static bool
+hyperv_identify(void)
{
+ u_int regs[4];
+ unsigned int maxLeaf;
+ unsigned int op;
+
if (vm_guest != VM_GUEST_HV)
- return;
+ return (false);
+
+ op = HV_CPU_ID_FUNCTION_HV_VENDOR_AND_MAX_FUNCTION;
+ do_cpuid(op, regs);
+ maxLeaf = regs[0];
+ if (maxLeaf < HV_CPU_ID_FUNCTION_MS_HV_IMPLEMENTATION_LIMITS)
+ return (false);
+
+ op = HV_CPU_ID_FUNCTION_HV_INTERFACE;
+ do_cpuid(op, regs);
+ if (regs[0] != HYPERV_INTERFACE)
+ return (false);
- /* register virtual timecounter */
- tc_init(&hv_timecounter);
+ op = HV_CPU_ID_FUNCTION_MS_HV_FEATURES;
+ do_cpuid(op, regs);
+ if ((regs[0] & HV_FEATURE_MSR_HYPERCALL) == 0) {
+ /*
+ * Hyper-V w/o Hypercall is impossible; someone
+ * is faking Hyper-V.
+ */
+ return (false);
+ }
+ hyperv_features = regs[0];
+ hyperv_pm_features = regs[2];
+ hyperv_features3 = regs[3];
+
+ op = HV_CPU_ID_FUNCTION_MS_HV_VERSION;
+ do_cpuid(op, regs);
+ printf("Hyper-V Version: %d.%d.%d [SP%d]\n",
+ regs[1] >> 16, regs[1] & 0xffff, regs[0], regs[2]);
+
+ printf(" Features=0x%b\n", hyperv_features,
+ "\020"
+ "\001VPRUNTIME" /* MSR_VP_RUNTIME */
+ "\002TMREFCNT" /* MSR_TIME_REF_COUNT */
+ "\003SYNIC" /* MSRs for SynIC */
+ "\004SYNTM" /* MSRs for SynTimer */
+ "\005APIC" /* MSR_{EOI,ICR,TPR} */
+ "\006HYPERCALL" /* MSR_{GUEST_OS_ID,HYPERCALL} */
+ "\007VPINDEX" /* MSR_VP_INDEX */
+ "\010RESET" /* MSR_RESET */
+ "\011STATS" /* MSR_STATS_ */
+ "\012REFTSC" /* MSR_REFERENCE_TSC */
+ "\013IDLE" /* MSR_GUEST_IDLE */
+ "\014TMFREQ" /* MSR_{TSC,APIC}_FREQUENCY */
+ "\015DEBUG"); /* MSR_SYNTH_DEBUG_ */
+ printf(" PM Features=max C%u, 0x%b\n",
+ HV_PM_FEATURE_CSTATE(hyperv_pm_features),
+ (hyperv_pm_features & ~HV_PM_FEATURE_CSTATE_MASK),
+ "\020"
+ "\005C3HPET"); /* HPET is required for C3 state */
+ printf(" Features3=0x%b\n", hyperv_features3,
+ "\020"
+ "\001MWAIT" /* MWAIT */
+ "\002DEBUG" /* guest debug support */
+ "\003PERFMON" /* performance monitor */
+ "\004PCPUDPE" /* physical CPU dynamic partition event */
+ "\005XMMHC" /* hypercall input through XMM regs */
+ "\006IDLE" /* guest idle support */
+ "\007SLEEP" /* hypervisor sleep support */
+ "\010NUMA" /* NUMA distance query support */
+ "\011TMFREQ" /* timer frequency query (TSC, LAPIC) */
+ "\012SYNCMC" /* inject synthetic machine checks */
+ "\013CRASH" /* MSRs for guest crash */
+ "\014DEBUGMSR" /* MSRs for guest debug */
+ "\015NPIEP" /* NPIEP */
+ "\016HVDIS"); /* disabling hypervisor */
+
+ op = HV_CPU_ID_FUNCTION_MS_HV_ENLIGHTENMENT_INFORMATION;
+ do_cpuid(op, regs);
+ hyperv_recommends = regs[0];
+ if (bootverbose)
+ printf(" Recommends: %08x %08x\n", regs[0], regs[1]);
+
+ op = HV_CPU_ID_FUNCTION_MS_HV_IMPLEMENTATION_LIMITS;
+ do_cpuid(op, regs);
+ if (bootverbose) {
+ printf(" Limits: Vcpu:%d Lcpu:%d Int:%d\n",
+ regs[0], regs[1], regs[2]);
+ }
+
+ if (maxLeaf >= HV_CPU_ID_FUNCTION_MS_HV_HARDWARE_FEATURE) {
+ op = HV_CPU_ID_FUNCTION_MS_HV_HARDWARE_FEATURE;
+ do_cpuid(op, regs);
+ if (bootverbose) {
+ printf(" HW Features: %08x AMD: %08x\n",
+ regs[0], regs[3]);
+ }
+ }
+
+ return (true);
}
-SYSINIT(hv_tc_init, SI_SUB_HYPERVISOR, SI_ORDER_FIRST, hv_tc_init, NULL);
+static void
+hyperv_init(void *dummy __unused)
+{
+ if (!hyperv_identify())
+ return;
+
+ if (hyperv_features & HV_FEATURE_MSR_TIME_REFCNT) {
+ /* Register virtual timecount */
+ tc_init(&hv_timecounter);
+ }
+}
+SYSINIT(hyperv_initialize, SI_SUB_HYPERVISOR, SI_ORDER_FIRST, hyperv_init,
+ NULL);
diff --git a/sys/dev/hyperv/vmbus/hv_vmbus_drv_freebsd.c b/sys/dev/hyperv/vmbus/hv_vmbus_drv_freebsd.c
index 669a532..8a07e45 100644
--- a/sys/dev/hyperv/vmbus/hv_vmbus_drv_freebsd.c
+++ b/sys/dev/hyperv/vmbus/hv_vmbus_drv_freebsd.c
@@ -117,8 +117,12 @@ handled:
* message_pending and EOMing. Otherwise, the EOMing will
* not deliver any more messages
* since there is no empty slot
+ *
+ * NOTE:
+ * mb() is used here, since atomic_thread_fence_seq_cst()
+ * will become compiler fence on UP kernel.
*/
- atomic_thread_fence_seq_cst();
+ mb();
if (msg->header.message_flags.u.message_pending) {
/*
@@ -190,8 +194,12 @@ hv_vmbus_isr(struct trapframe *frame)
* message_pending and EOMing. Otherwise, the EOMing will
* not deliver any more messages
* since there is no empty slot
+ *
+ * NOTE:
+ * mb() is used here, since atomic_thread_fence_seq_cst()
+ * will become compiler fence on UP kernel.
*/
- atomic_thread_fence_seq_cst();
+ mb();
if (msg->header.message_flags.u.message_pending) {
/*
@@ -383,80 +391,9 @@ vmbus_probe(device_t dev) {
}
#ifdef HYPERV
-extern inthand_t IDTVEC(rsvd), IDTVEC(hv_vmbus_callback);
-
-/**
- * @brief Find a free IDT slot and setup the interrupt handler.
- */
-static int
-vmbus_vector_alloc(void)
-{
- int vector;
- uintptr_t func;
- struct gate_descriptor *ip;
-
- /*
- * Search backwards form the highest IDT vector available for use
- * as vmbus channel callback vector. We install 'hv_vmbus_callback'
- * handler at that vector and use it to interrupt vcpus.
- */
- vector = APIC_SPURIOUS_INT;
- while (--vector >= APIC_IPI_INTS) {
- ip = &idt[vector];
- func = ((long)ip->gd_hioffset << 16 | ip->gd_looffset);
- if (func == (uintptr_t)&IDTVEC(rsvd)) {
-#ifdef __i386__
- setidt(vector , IDTVEC(hv_vmbus_callback), SDT_SYS386IGT,
- SEL_KPL, GSEL(GCODE_SEL, SEL_KPL));
-#else
- setidt(vector , IDTVEC(hv_vmbus_callback), SDT_SYSIGT,
- SEL_KPL, 0);
+extern inthand_t IDTVEC(hv_vmbus_callback);
#endif
- return (vector);
- }
- }
- return (0);
-}
-
-/**
- * @brief Restore the IDT slot to rsvd.
- */
-static void
-vmbus_vector_free(int vector)
-{
- uintptr_t func;
- struct gate_descriptor *ip;
-
- if (vector == 0)
- return;
-
- KASSERT(vector >= APIC_IPI_INTS && vector < APIC_SPURIOUS_INT,
- ("invalid vector %d", vector));
-
- ip = &idt[vector];
- func = ((long)ip->gd_hioffset << 16 | ip->gd_looffset);
- KASSERT(func == (uintptr_t)&IDTVEC(hv_vmbus_callback),
- ("invalid vector %d", vector));
-
- setidt(vector, IDTVEC(rsvd), SDT_SYSIGT, SEL_KPL, 0);
-}
-
-#else /* HYPERV */
-
-static int
-vmbus_vector_alloc(void)
-{
- return(0);
-}
-
-static void
-vmbus_vector_free(int vector)
-{
-}
-
-#endif /* HYPERV */
-
/**
* @brief Main vmbus driver initialization routine.
*
@@ -489,12 +426,15 @@ vmbus_bus_init(void)
return (ret);
}
+#ifdef HYPERV
/*
* Find a free IDT slot for vmbus callback.
*/
- hv_vmbus_g_context.hv_cb_vector = vmbus_vector_alloc();
-
- if (hv_vmbus_g_context.hv_cb_vector == 0) {
+ hv_vmbus_g_context.hv_cb_vector = lapic_ipi_alloc(IDTVEC(hv_vmbus_callback));
+#else
+ hv_vmbus_g_context.hv_cb_vector = -1;
+#endif
+ if (hv_vmbus_g_context.hv_cb_vector < 0) {
if(bootverbose)
printf("Error VMBUS: Cannot find free IDT slot for "
"vmbus callback!\n");
@@ -587,7 +527,7 @@ vmbus_bus_init(void)
}
}
- vmbus_vector_free(hv_vmbus_g_context.hv_cb_vector);
+ lapic_ipi_free(hv_vmbus_g_context.hv_cb_vector);
cleanup:
hv_vmbus_cleanup();
@@ -655,7 +595,7 @@ vmbus_bus_exit(void)
}
}
- vmbus_vector_free(hv_vmbus_g_context.hv_cb_vector);
+ lapic_ipi_free(hv_vmbus_g_context.hv_cb_vector);
return;
}
diff --git a/sys/dev/hyperv/vmbus/hv_vmbus_priv.h b/sys/dev/hyperv/vmbus/hv_vmbus_priv.h
index 1a0ed04..8410494 100644
--- a/sys/dev/hyperv/vmbus/hv_vmbus_priv.h
+++ b/sys/dev/hyperv/vmbus/hv_vmbus_priv.h
@@ -208,10 +208,10 @@ typedef struct {
struct taskqueue *hv_msg_tq[MAXCPU];
struct task hv_msg_task[MAXCPU];
/*
- * Host use this vector to intrrupt guest for vmbus channel
+ * Host use this vector to interrupt guest for vmbus channel
* event and msg.
*/
- unsigned int hv_cb_vector;
+ int hv_cb_vector;
} hv_vmbus_context;
/*
@@ -471,10 +471,28 @@ typedef enum {
HV_CPU_ID_FUNCTION_MS_HV_VERSION = 0x40000002,
HV_CPU_ID_FUNCTION_MS_HV_FEATURES = 0x40000003,
HV_CPU_ID_FUNCTION_MS_HV_ENLIGHTENMENT_INFORMATION = 0x40000004,
- HV_CPU_ID_FUNCTION_MS_HV_IMPLEMENTATION_LIMITS = 0x40000005
-
+ HV_CPU_ID_FUNCTION_MS_HV_IMPLEMENTATION_LIMITS = 0x40000005,
+ HV_CPU_ID_FUNCTION_MS_HV_HARDWARE_FEATURE = 0x40000006
} hv_vmbus_cpuid_function;
+#define HV_FEATURE_MSR_TIME_REFCNT 0x0002 /* MSR_TIME_REF_COUNT */
+#define HV_FEATURE_MSR_SYNIC 0x0004 /* MSRs for SynIC */
+#define HV_FEATURE_MSR_SYNTIMER 0x0008 /* MSRs for SynTimer */
+#define HV_FEATURE_MSR_APIC 0x0010 /* MSR_{EOI,ICR,TPR} */
+#define HV_FEATURE_MSR_HYPERCALL 0x0020 /* MSR_{GUEST_OS_ID,HYPERCALL} */
+#define HV_FEATURE_MSR_GUEST_IDLE 0x0400 /* MSR_GUEST_IDLE */
+
+#define HV_PM_FEATURE_CSTATE_MASK 0x000f
+#define HV_PM_FEATURE_C3_HPET 0x0010 /* C3 requires HPET */
+#define HV_PM_FEATURE_CSTATE(f) ((f) & HV_PM_FEATURE_CSTATE_MASK)
+
+#define HV_FEATURE3_MWAIT 0x0001 /* MWAIT */
+#define HV_FEATURE3_XMM_HYPERCALL 0x0010 /* hypercall input through XMM regs */
+#define HV_FEATURE3_GUEST_IDLE 0x0020 /* guest idle support */
+#define HV_FEATURE3_NUMA 0x0080 /* NUMA distance query support */
+#define HV_FEATURE3_TIME_FREQ 0x0100 /* timer frequency query (TSC, LAPIC) */
+#define HV_FEATURE3_MSR_CRASH 0x0400 /* MSRs for guest crash */
+
/*
* Define the format of the SIMP register
*/
@@ -628,6 +646,9 @@ typedef enum {
extern hv_vmbus_context hv_vmbus_g_context;
extern hv_vmbus_connection hv_vmbus_g_connection;
+extern u_int hyperv_features;
+extern u_int hyperv_recommends;
+
typedef void (*vmbus_msg_handler)(hv_vmbus_channel_msg_header *msg);
typedef struct hv_vmbus_channel_msg_table_entry {
@@ -704,7 +725,6 @@ uint16_t hv_vmbus_post_msg_via_msg_ipc(
uint16_t hv_vmbus_signal_event(void *con_id);
void hv_vmbus_synic_init(void *irq_arg);
void hv_vmbus_synic_cleanup(void *arg);
-int hv_vmbus_query_hypervisor_presence(void);
struct hv_device* hv_vmbus_child_device_create(
hv_guid device_type,
diff --git a/sys/dev/ichiic/ig4_iic.c b/sys/dev/ichiic/ig4_iic.c
index a556127..23bdb7d 100644
--- a/sys/dev/ichiic/ig4_iic.c
+++ b/sys/dev/ichiic/ig4_iic.c
@@ -117,7 +117,10 @@ set_controller(ig4iic_softc_t *sc, uint32_t ctl)
error = 0;
break;
}
- mtx_sleep(sc, &sc->io_lock, 0, "i2cslv", 1);
+ if (cold)
+ DELAY(1000);
+ else
+ mtx_sleep(sc, &sc->io_lock, 0, "i2cslv", 1);
}
return (error);
}
diff --git a/sys/dev/ie/if_ie_isa.c b/sys/dev/ie/if_ie_isa.c
index c0403b1..73151b4 100644
--- a/sys/dev/ie/if_ie_isa.c
+++ b/sys/dev/ie/if_ie_isa.c
@@ -881,7 +881,7 @@ ie_modevent (mod, what, arg)
break;
default:
break;
- };
+ }
return (0);
}
diff --git a/sys/dev/iicbus/twsi/a10_twsi.c b/sys/dev/iicbus/twsi/a10_twsi.c
index 6ee13ad..701153b 100644
--- a/sys/dev/iicbus/twsi/a10_twsi.c
+++ b/sys/dev/iicbus/twsi/a10_twsi.c
@@ -48,8 +48,8 @@ __FBSDID("$FreeBSD$");
#include <dev/ofw/ofw_bus.h>
#include <dev/ofw/ofw_bus_subr.h>
-#include <arm/allwinner/a10_clk.h>
-#include <arm/allwinner/a31/a31_clk.h>
+#include <dev/extres/clk/clk.h>
+#include <dev/extres/hwreset/hwreset.h>
#include "iicbus_if.h"
@@ -63,21 +63,16 @@ __FBSDID("$FreeBSD$");
#define TWI_EFR 0x1C
#define TWI_LCR 0x20
-#define A10_I2C 1
-#define A31_I2C 2
-
static struct ofw_compat_data compat_data[] = {
- {"allwinner,sun4i-a10-i2c", A10_I2C},
- {"allwinner,sun6i-a31-i2c", A31_I2C},
+ {"allwinner,sun4i-a10-i2c", 1},
+ {"allwinner,sun6i-a31-i2c", 1},
{NULL, 0},
};
static int
a10_twsi_probe(device_t dev)
{
- struct twsi_softc *sc;
- sc = device_get_softc(dev);
if (!ofw_bus_status_okay(dev))
return (ENXIO);
@@ -92,29 +87,31 @@ static int
a10_twsi_attach(device_t dev)
{
struct twsi_softc *sc;
- int clk;
+ clk_t clk;
+ hwreset_t rst;
+ int error;
sc = device_get_softc(dev);
- /* Activate clock */
- switch (ofw_bus_search_compatible(dev, compat_data)->ocd_data) {
-#if defined(SOC_ALLWINNER_A10) || defined(SOC_ALLWINNER_A20)
- case A10_I2C:
- clk = a10_clk_i2c_activate(device_get_unit(dev));
- break;
-#endif
-#if defined(SOC_ALLWINNER_A31) || defined(SOC_ALLWINNER_A31S)
- case A31_I2C:
- clk = a31_clk_i2c_activate(device_get_unit(dev));
- break;
-#endif
- default:
- clk = -1;
+ /* De-assert reset */
+ if (hwreset_get_by_ofw_idx(dev, 0, &rst) == 0) {
+ error = hwreset_deassert(rst);
+ if (error != 0) {
+ device_printf(dev, "could not de-assert reset\n");
+ return (error);
+ }
}
- if (clk != 0) {
- device_printf(dev, "could not activate i2c clock\n");
- return (ENXIO);
+ /* Activate clock */
+ error = clk_get_by_ofw_index(dev, 0, &clk);
+ if (error != 0) {
+ device_printf(dev, "could not find clock\n");
+ return (error);
+ }
+ error = clk_enable(clk);
+ if (error != 0) {
+ device_printf(dev, "could not enable clock\n");
+ return (error);
}
sc->reg_data = TWI_DATA;
diff --git a/sys/dev/ioat/ioat.c b/sys/dev/ioat/ioat.c
index bcc4e9a..85ceacb 100644
--- a/sys/dev/ioat/ioat.c
+++ b/sys/dev/ioat/ioat.c
@@ -314,6 +314,9 @@ ioat_detach(device_t device)
mtx_lock(IOAT_REFLK);
ioat->quiescing = TRUE;
+ ioat->destroying = TRUE;
+ wakeup(&ioat->quiescing);
+
ioat_channel[ioat->chan_idx] = NULL;
ioat_drain_locked(ioat);
@@ -739,18 +742,40 @@ ioat_reset_hw_task(void *ctx, int pending __unused)
* User API functions
*/
bus_dmaengine_t
-ioat_get_dmaengine(uint32_t index)
+ioat_get_dmaengine(uint32_t index, int flags)
{
- struct ioat_softc *sc;
+ struct ioat_softc *ioat;
+
+ KASSERT((flags & ~(M_NOWAIT | M_WAITOK)) == 0,
+ ("invalid flags: 0x%08x", flags));
+ KASSERT((flags & (M_NOWAIT | M_WAITOK)) != (M_NOWAIT | M_WAITOK),
+ ("invalid wait | nowait"));
if (index >= ioat_channel_index)
return (NULL);
- sc = ioat_channel[index];
- if (sc == NULL || sc->quiescing)
+ ioat = ioat_channel[index];
+ if (ioat == NULL || ioat->destroying)
return (NULL);
- return (&ioat_get(sc, IOAT_DMAENGINE_REF)->dmaengine);
+ if (ioat->quiescing) {
+ if ((flags & M_NOWAIT) != 0)
+ return (NULL);
+
+ mtx_lock(IOAT_REFLK);
+ while (ioat->quiescing && !ioat->destroying)
+ msleep(&ioat->quiescing, IOAT_REFLK, 0, "getdma", 0);
+ mtx_unlock(IOAT_REFLK);
+
+ if (ioat->destroying)
+ return (NULL);
+ }
+
+ /*
+ * There's a race here between the quiescing check and HW reset or
+ * module destroy.
+ */
+ return (&ioat_get(ioat, IOAT_DMAENGINE_REF)->dmaengine);
}
void
@@ -1571,6 +1596,7 @@ ioat_reset_hw(struct ioat_softc *ioat)
out:
mtx_lock(IOAT_REFLK);
ioat->quiescing = FALSE;
+ wakeup(&ioat->quiescing);
mtx_unlock(IOAT_REFLK);
if (error == 0)
diff --git a/sys/dev/ioat/ioat.h b/sys/dev/ioat/ioat.h
index 3b6e094..ff05602 100644
--- a/sys/dev/ioat/ioat.h
+++ b/sys/dev/ioat/ioat.h
@@ -68,8 +68,10 @@ typedef void (*bus_dmaengine_callback_t)(void *arg, int error);
/*
* Called first to acquire a reference to the DMA channel
+ *
+ * Flags may be M_WAITOK or M_NOWAIT.
*/
-bus_dmaengine_t ioat_get_dmaengine(uint32_t channel_index);
+bus_dmaengine_t ioat_get_dmaengine(uint32_t channel_index, int flags);
/* Release the DMA channel */
void ioat_put_dmaengine(bus_dmaengine_t dmaengine);
diff --git a/sys/dev/ioat/ioat_internal.h b/sys/dev/ioat/ioat_internal.h
index b33faea..85b7316 100644
--- a/sys/dev/ioat/ioat_internal.h
+++ b/sys/dev/ioat/ioat_internal.h
@@ -410,6 +410,7 @@ struct ioat_softc {
struct task reset_task;
boolean_t quiescing;
+ boolean_t destroying;
boolean_t is_resize_pending;
boolean_t is_completion_pending;
boolean_t is_reset_pending;
diff --git a/sys/dev/ioat/ioat_test.c b/sys/dev/ioat/ioat_test.c
index ee014c0..7fecd48 100644
--- a/sys/dev/ioat/ioat_test.c
+++ b/sys/dev/ioat/ioat_test.c
@@ -388,7 +388,7 @@ ioat_dma_test(void *arg)
return;
}
- dmaengine = ioat_get_dmaengine(test->channel_index);
+ dmaengine = ioat_get_dmaengine(test->channel_index, M_NOWAIT);
if (dmaengine == NULL) {
ioat_test_log(0, "Couldn't acquire dmaengine\n");
test->status[IOAT_TEST_NO_DMA_ENGINE]++;
diff --git a/sys/dev/isci/scil/scic_sds_controller_registers.h b/sys/dev/isci/scil/scic_sds_controller_registers.h
index e4a0fb4..81a1f3f 100644
--- a/sys/dev/isci/scil/scic_sds_controller_registers.h
+++ b/sys/dev/isci/scil/scic_sds_controller_registers.h
@@ -586,7 +586,7 @@ extern "C" {
#define SCU_PTSGRTC_READ(controller) \
scu_ptsg_register_read( \
- contoller, \
+ controller, \
real_time_clock \
)
/*@}*/
diff --git a/sys/dev/isp/isp.c b/sys/dev/isp/isp.c
index d5c393b..2e69855 100644
--- a/sys/dev/isp/isp.c
+++ b/sys/dev/isp/isp.c
@@ -126,6 +126,8 @@ static int isp_send_change_request(ispsoftc_t *, int);
static int isp_register_fc4_type(ispsoftc_t *, int);
static int isp_register_fc4_type_24xx(ispsoftc_t *, int);
static int isp_register_fc4_features_24xx(ispsoftc_t *, int);
+static int isp_register_port_name_24xx(ispsoftc_t *, int);
+static int isp_register_node_name_24xx(ispsoftc_t *, int);
static uint16_t isp_next_handle(ispsoftc_t *, uint16_t *);
static int isp_fw_state(ispsoftc_t *, int);
static void isp_mboxcmd_qnw(ispsoftc_t *, mbreg_t *, int);
@@ -1970,10 +1972,12 @@ isp_fibre_init(ispsoftc_t *isp)
}
isp_prt(isp, ISP_LOGDEBUG0, "isp_fibre_init: fwopt 0x%x xfwopt 0x%x zfwopt 0x%x",
icbp->icb_fwoptions, icbp->icb_xfwoptions, icbp->icb_zfwoptions);
- if (isp->isp_dblev & ISP_LOGDEBUG1)
- isp_print_bytes(isp, "isp_fibre_init", sizeof (*icbp), icbp);
isp_put_icb(isp, icbp, (isp_icb_t *)fcp->isp_scratch);
+ if (isp->isp_dblev & ISP_LOGDEBUG1) {
+ isp_print_bytes(isp, "isp_fibre_init",
+ sizeof(*icbp), fcp->isp_scratch);
+ }
/*
* Init the firmware
@@ -2238,16 +2242,16 @@ isp_fibre_init_2400(ispsoftc_t *isp)
DMA_WD1(isp->isp_rquest_dma), DMA_WD0(isp->isp_rquest_dma), DMA_WD3(isp->isp_result_dma), DMA_WD2(isp->isp_result_dma),
DMA_WD1(isp->isp_result_dma), DMA_WD0(isp->isp_result_dma));
- if (isp->isp_dblev & ISP_LOGDEBUG1) {
- isp_print_bytes(isp, "isp_fibre_init_2400", sizeof (*icbp), icbp);
- }
-
if (FC_SCRATCH_ACQUIRE(isp, 0)) {
isp_prt(isp, ISP_LOGERR, sacq);
return;
}
ISP_MEMZERO(fcp->isp_scratch, ISP_FC_SCRLEN);
isp_put_icb_2400(isp, icbp, fcp->isp_scratch);
+ if (isp->isp_dblev & ISP_LOGDEBUG1) {
+ isp_print_bytes(isp, "isp_fibre_init_2400",
+ sizeof (*icbp), fcp->isp_scratch);
+ }
/*
* Now fill in information about any additional channels
@@ -2393,6 +2397,8 @@ isp_fc_enable_vp(ispsoftc_t *isp, int chan)
return (EIO);
}
isp_put_vp_modify(isp, &vp, (vp_modify_t *)reqp);
+ if (isp->isp_dblev & ISP_LOGDEBUG1)
+ isp_print_bytes(isp, "IOCB VP_MODIFY", QENTRY_LEN, reqp);
ISP_SYNC_REQUEST(isp);
if (msleep(resp, &isp->isp_lock, 0, "VP_MODIFY", 5*hz) == EWOULDBLOCK) {
isp_prt(isp, ISP_LOGERR,
@@ -2400,6 +2406,8 @@ isp_fc_enable_vp(ispsoftc_t *isp, int chan)
isp_destroy_handle(isp, vp.vp_mod_hdl);
return (EIO);
}
+ if (isp->isp_dblev & ISP_LOGDEBUG1)
+ isp_print_bytes(isp, "IOCB VP_MODIFY response", QENTRY_LEN, resp);
isp_get_vp_modify(isp, (vp_modify_t *)resp, &vp);
if (vp.vp_mod_hdr.rqs_flags != 0 || vp.vp_mod_status != VP_STS_OK) {
@@ -2450,6 +2458,8 @@ isp_fc_disable_vp(ispsoftc_t *isp, int chan)
return (EIO);
}
isp_put_vp_ctrl_info(isp, &vp, (vp_ctrl_info_t *)reqp);
+ if (isp->isp_dblev & ISP_LOGDEBUG1)
+ isp_print_bytes(isp, "IOCB VP_CTRL", QENTRY_LEN, reqp);
ISP_SYNC_REQUEST(isp);
if (msleep(resp, &isp->isp_lock, 0, "VP_CTRL", 5*hz) == EWOULDBLOCK) {
isp_prt(isp, ISP_LOGERR,
@@ -2457,6 +2467,8 @@ isp_fc_disable_vp(ispsoftc_t *isp, int chan)
isp_destroy_handle(isp, vp.vp_ctrl_handle);
return (EIO);
}
+ if (isp->isp_dblev & ISP_LOGDEBUG1)
+ isp_print_bytes(isp, "IOCB VP_CTRL response", QENTRY_LEN, resp);
isp_get_vp_ctrl_info(isp, (vp_ctrl_info_t *)resp, &vp);
if (vp.vp_ctrl_hdr.rqs_flags != 0 || vp.vp_ctrl_status != 0) {
@@ -2600,9 +2612,9 @@ isp_plogx(ispsoftc_t *isp, int chan, uint16_t handle, uint32_t portid, int flags
isp_destroy_handle(isp, pl.plogx_handle);
return (-1);
}
- if (isp->isp_dblev & ISP_LOGDEBUG1)
- isp_print_bytes(isp, "IOCB LOGX", QENTRY_LEN, &pl);
isp_put_plogx(isp, &pl, (isp_plogx_t *)reqp);
+ if (isp->isp_dblev & ISP_LOGDEBUG1)
+ isp_print_bytes(isp, "IOCB LOGX", QENTRY_LEN, reqp);
ISP_SYNC_REQUEST(isp);
if (msleep(resp, &isp->isp_lock, 0, "PLOGX", 3 * ICB_LOGIN_TOV * hz)
== EWOULDBLOCK) {
@@ -2611,9 +2623,9 @@ isp_plogx(ispsoftc_t *isp, int chan, uint16_t handle, uint32_t portid, int flags
isp_destroy_handle(isp, pl.plogx_handle);
return (-1);
}
- isp_get_plogx(isp, (isp_plogx_t *)resp, &pl);
if (isp->isp_dblev & ISP_LOGDEBUG1)
- isp_print_bytes(isp, "IOCB LOGX response", QENTRY_LEN, &pl);
+ isp_print_bytes(isp, "IOCB LOGX response", QENTRY_LEN, resp);
+ isp_get_plogx(isp, (isp_plogx_t *)resp, &pl);
if (pl.plogx_status == PLOGX_STATUS_OK) {
return (0);
@@ -3073,6 +3085,8 @@ isp_fclink_test(ispsoftc_t *isp, int chan, int usdelay)
r = isp_register_fc4_type_24xx(isp, chan);
if (r == 0)
isp_register_fc4_features_24xx(isp, chan);
+ isp_register_port_name_24xx(isp, chan);
+ isp_register_node_name_24xx(isp, chan);
} else {
fcp->isp_sns_hdl = SNS_ID;
r = isp_register_fc4_type(isp, chan);
@@ -3494,26 +3508,17 @@ isp_gid_ft_sns(ispsoftc_t *isp, int chan)
}
static int
-isp_gid_ft_ct_passthru(ispsoftc_t *isp, int chan)
+isp_ct_passthru(ispsoftc_t *isp, int chan, uint32_t cmd_bcnt, uint32_t rsp_bcnt)
{
mbreg_t mbs;
fcparam *fcp = FCPARAM(isp, chan);
union {
isp_ct_pt_t plocal;
- ct_hdr_t clocal;
uint8_t q[QENTRY_LEN];
} un;
isp_ct_pt_t *pt;
- ct_hdr_t *ct;
- uint32_t *rp;
uint8_t *scp = fcp->isp_scratch;
- isp_prt(isp, ISP_LOGDEBUG0, "Chan %d requesting GID_FT via CT", chan);
- if (FC_SCRATCH_ACQUIRE(isp, chan)) {
- isp_prt(isp, ISP_LOGERR, sacq);
- return (-1);
- }
-
/*
* Build a Passthrough IOCB in memory.
*/
@@ -3527,39 +3532,21 @@ isp_gid_ft_ct_passthru(ispsoftc_t *isp, int chan)
pt->ctp_vpidx = ISP_GET_VPIDX(isp, chan);
pt->ctp_time = 10;
pt->ctp_rsp_cnt = 1;
- pt->ctp_rsp_bcnt = GIDLEN;
- pt->ctp_cmd_bcnt = sizeof (*ct) + sizeof (uint32_t);
+ pt->ctp_rsp_bcnt = rsp_bcnt;
+ pt->ctp_cmd_bcnt = cmd_bcnt;
pt->ctp_dataseg[0].ds_base = DMA_LO32(fcp->isp_scdma+XTXOFF);
pt->ctp_dataseg[0].ds_basehi = DMA_HI32(fcp->isp_scdma+XTXOFF);
- pt->ctp_dataseg[0].ds_count = sizeof (*ct) + sizeof (uint32_t);
+ pt->ctp_dataseg[0].ds_count = cmd_bcnt;
pt->ctp_dataseg[1].ds_base = DMA_LO32(fcp->isp_scdma);
pt->ctp_dataseg[1].ds_basehi = DMA_HI32(fcp->isp_scdma);
- pt->ctp_dataseg[1].ds_count = GIDLEN;
- if (isp->isp_dblev & ISP_LOGDEBUG1) {
- isp_print_bytes(isp, "ct IOCB", QENTRY_LEN, pt);
- }
- isp_put_ct_pt(isp, pt, (isp_ct_pt_t *) &scp[CTXOFF]);
+ pt->ctp_dataseg[1].ds_count = rsp_bcnt;
+ isp_put_ct_pt(isp, pt, (isp_ct_pt_t *)&scp[CTXOFF]);
+ if (isp->isp_dblev & ISP_LOGDEBUG1)
+ isp_print_bytes(isp, "CT IOCB request", QENTRY_LEN, &scp[CTXOFF]);
/*
- * Build the CT header and command in memory.
- *
- * Note that the CT header has to end up as Big Endian format in memory.
+ * Execute the Passthrough IOCB.
*/
- ct = &un.clocal;
- ISP_MEMZERO(ct, sizeof (*ct));
- ct->ct_revision = CT_REVISION;
- ct->ct_fcs_type = CT_FC_TYPE_FC;
- ct->ct_fcs_subtype = CT_FC_SUBTYPE_NS;
- ct->ct_cmd_resp = SNS_GID_FT;
- ct->ct_bcnt_resid = (GIDLEN - 16) >> 2;
-
- isp_put_ct_hdr(isp, ct, (ct_hdr_t *) &scp[XTXOFF]);
- rp = (uint32_t *) &scp[XTXOFF+sizeof (*ct)];
- ISP_IOZPUT_32(isp, FC4_SCSI, rp);
- if (isp->isp_dblev & ISP_LOGDEBUG1) {
- isp_print_bytes(isp, "CT HDR + payload after put",
- sizeof (*ct) + sizeof (uint32_t), &scp[XTXOFF]);
- }
ISP_MEMZERO(&scp[ZTXOFF], QENTRY_LEN);
MBSINIT(&mbs, MBOX_EXEC_COMMAND_IOCB_A64, MBLOGALL,
MBCMD_DEFAULT_TIMEOUT + pt->ctp_time * 1000000);
@@ -3574,18 +3561,56 @@ isp_gid_ft_ct_passthru(ispsoftc_t *isp, int chan)
return (-1);
}
MEMORYBARRIER(isp, SYNC_SFORCPU, 0, ISP_FC_SCRLEN, chan);
+ if (isp->isp_dblev & ISP_LOGDEBUG1)
+ isp_print_bytes(isp, "CT IOCB response", QENTRY_LEN, &scp[ZTXOFF]);
pt = &un.plocal;
isp_get_ct_pt(isp, (isp_ct_pt_t *) &scp[ZTXOFF], pt);
- if (isp->isp_dblev & ISP_LOGDEBUG1) {
- isp_print_bytes(isp, "IOCB response", QENTRY_LEN, pt);
- }
-
if (pt->ctp_status && pt->ctp_status != RQCS_DATA_UNDERRUN) {
isp_prt(isp, ISP_LOGWARN,
"Chan %d GID_FT CT Passthrough returned 0x%x",
chan, pt->ctp_status);
return (-1);
}
+
+ return (0);
+}
+
+static int
+isp_gid_ft_ct_passthru(ispsoftc_t *isp, int chan)
+{
+ fcparam *fcp = FCPARAM(isp, chan);
+ ct_hdr_t ct;
+ uint32_t *rp;
+ uint8_t *scp = fcp->isp_scratch;
+
+ isp_prt(isp, ISP_LOGDEBUG0, "Chan %d requesting GID_FT via CT", chan);
+ if (FC_SCRATCH_ACQUIRE(isp, chan)) {
+ isp_prt(isp, ISP_LOGERR, sacq);
+ return (-1);
+ }
+
+ /*
+ * Build the CT header and command in memory.
+ */
+ ISP_MEMZERO(&ct, sizeof (ct));
+ ct.ct_revision = CT_REVISION;
+ ct.ct_fcs_type = CT_FC_TYPE_FC;
+ ct.ct_fcs_subtype = CT_FC_SUBTYPE_NS;
+ ct.ct_cmd_resp = SNS_GID_FT;
+ ct.ct_bcnt_resid = (GIDLEN - 16) >> 2;
+ isp_put_ct_hdr(isp, &ct, (ct_hdr_t *) &scp[XTXOFF]);
+ rp = (uint32_t *) &scp[XTXOFF + sizeof(ct)];
+ ISP_IOZPUT_32(isp, FC4_SCSI, rp);
+ if (isp->isp_dblev & ISP_LOGDEBUG1) {
+ isp_print_bytes(isp, "CT request",
+ sizeof(ct) + sizeof(uint32_t), &scp[XTXOFF]);
+ }
+
+ if (isp_ct_passthru(isp, chan, sizeof(ct) + sizeof(uint32_t), GIDLEN)) {
+ FC_SCRATCH_RELEASE(isp, chan);
+ return (-1);
+ }
+
if (isp->isp_dblev & ISP_LOGDEBUG1)
isp_print_bytes(isp, "CT response", GIDLEN, scp);
isp_get_gid_ft_response(isp, (sns_gid_ft_rsp_t *)scp,
@@ -3957,16 +3982,9 @@ isp_register_fc4_type(ispsoftc_t *isp, int chan)
static int
isp_register_fc4_type_24xx(ispsoftc_t *isp, int chan)
{
- mbreg_t mbs;
fcparam *fcp = FCPARAM(isp, chan);
- union {
- isp_ct_pt_t plocal;
- rft_id_t clocal;
- uint8_t q[QENTRY_LEN];
- } un;
- isp_ct_pt_t *pt;
ct_hdr_t *ct;
- rft_id_t *rp;
+ rft_id_t rp;
uint8_t *scp = fcp->isp_scratch;
if (FC_SCRATCH_ACQUIRE(isp, chan)) {
@@ -3975,110 +3993,48 @@ isp_register_fc4_type_24xx(ispsoftc_t *isp, int chan)
}
/*
- * Build a Passthrough IOCB in memory.
- */
- ISP_MEMZERO(un.q, QENTRY_LEN);
- pt = &un.plocal;
- pt->ctp_header.rqs_entry_count = 1;
- pt->ctp_header.rqs_entry_type = RQSTYPE_CT_PASSTHRU;
- pt->ctp_handle = 0xffffffff;
- pt->ctp_nphdl = fcp->isp_sns_hdl;
- pt->ctp_cmd_cnt = 1;
- pt->ctp_vpidx = ISP_GET_VPIDX(isp, chan);
- pt->ctp_time = 4;
- pt->ctp_rsp_cnt = 1;
- pt->ctp_rsp_bcnt = sizeof (ct_hdr_t);
- pt->ctp_cmd_bcnt = sizeof (rft_id_t);
- pt->ctp_dataseg[0].ds_base = DMA_LO32(fcp->isp_scdma+XTXOFF);
- pt->ctp_dataseg[0].ds_basehi = DMA_HI32(fcp->isp_scdma+XTXOFF);
- pt->ctp_dataseg[0].ds_count = sizeof (rft_id_t);
- pt->ctp_dataseg[1].ds_base = DMA_LO32(fcp->isp_scdma);
- pt->ctp_dataseg[1].ds_basehi = DMA_HI32(fcp->isp_scdma);
- pt->ctp_dataseg[1].ds_count = sizeof (ct_hdr_t);
- isp_put_ct_pt(isp, pt, (isp_ct_pt_t *) &scp[CTXOFF]);
- if (isp->isp_dblev & ISP_LOGDEBUG1) {
- isp_print_bytes(isp, "IOCB CT Request", QENTRY_LEN, pt);
- }
-
- /*
* Build the CT header and command in memory.
- *
- * Note that the CT header has to end up as Big Endian format in memory.
*/
- ISP_MEMZERO(&un.clocal, sizeof (un.clocal));
- ct = &un.clocal.rftid_hdr;
+ ISP_MEMZERO(&rp, sizeof(rp));
+ ct = &rp.rftid_hdr;
ct->ct_revision = CT_REVISION;
ct->ct_fcs_type = CT_FC_TYPE_FC;
ct->ct_fcs_subtype = CT_FC_SUBTYPE_NS;
ct->ct_cmd_resp = SNS_RFT_ID;
ct->ct_bcnt_resid = (sizeof (rft_id_t) - sizeof (ct_hdr_t)) >> 2;
- rp = &un.clocal;
- rp->rftid_portid[0] = fcp->isp_portid >> 16;
- rp->rftid_portid[1] = fcp->isp_portid >> 8;
- rp->rftid_portid[2] = fcp->isp_portid;
- rp->rftid_fc4types[FC4_SCSI >> 5] = 1 << (FC4_SCSI & 0x1f);
- isp_put_rft_id(isp, rp, (rft_id_t *) &scp[XTXOFF]);
- if (isp->isp_dblev & ISP_LOGDEBUG1) {
- isp_print_bytes(isp, "CT Header", QENTRY_LEN, &scp[XTXOFF]);
- }
-
- ISP_MEMZERO(&scp[ZTXOFF], sizeof (ct_hdr_t));
+ rp.rftid_portid[0] = fcp->isp_portid >> 16;
+ rp.rftid_portid[1] = fcp->isp_portid >> 8;
+ rp.rftid_portid[2] = fcp->isp_portid;
+ rp.rftid_fc4types[FC4_SCSI >> 5] = 1 << (FC4_SCSI & 0x1f);
+ isp_put_rft_id(isp, &rp, (rft_id_t *)&scp[XTXOFF]);
+ if (isp->isp_dblev & ISP_LOGDEBUG1)
+ isp_print_bytes(isp, "CT request", sizeof(rft_id_t), &scp[XTXOFF]);
- MBSINIT(&mbs, MBOX_EXEC_COMMAND_IOCB_A64, MBLOGALL,
- MBCMD_DEFAULT_TIMEOUT + pt->ctp_time * 1000000);
- mbs.param[1] = QENTRY_LEN;
- mbs.param[2] = DMA_WD1(fcp->isp_scdma + CTXOFF);
- mbs.param[3] = DMA_WD0(fcp->isp_scdma + CTXOFF);
- mbs.param[6] = DMA_WD3(fcp->isp_scdma + CTXOFF);
- mbs.param[7] = DMA_WD2(fcp->isp_scdma + CTXOFF);
- MEMORYBARRIER(isp, SYNC_SFORDEV, XTXOFF, 2 * QENTRY_LEN, chan);
- isp_mboxcmd(isp, &mbs);
- if (mbs.param[0] != MBOX_COMMAND_COMPLETE) {
+ if (isp_ct_passthru(isp, chan, sizeof(rft_id_t), sizeof(ct_hdr_t))) {
FC_SCRATCH_RELEASE(isp, chan);
return (-1);
}
- MEMORYBARRIER(isp, SYNC_SFORCPU, ZTXOFF, QENTRY_LEN, chan);
- pt = &un.plocal;
- isp_get_ct_pt(isp, (isp_ct_pt_t *) &scp[ZTXOFF], pt);
- if (isp->isp_dblev & ISP_LOGDEBUG1) {
- isp_print_bytes(isp, "IOCB response", QENTRY_LEN, pt);
- }
- if (pt->ctp_status) {
- FC_SCRATCH_RELEASE(isp, chan);
- isp_prt(isp, ISP_LOGWARN,
- "Chan %d Register FC4 Type CT Passthrough returned 0x%x",
- chan, pt->ctp_status);
- return (1);
- }
isp_get_ct_hdr(isp, (ct_hdr_t *) scp, ct);
FC_SCRATCH_RELEASE(isp, chan);
-
if (ct->ct_cmd_resp == LS_RJT) {
isp_prt(isp, ISP_LOG_SANCFG|ISP_LOG_WARN1, "Chan %d Register FC4 Type rejected", chan);
return (-1);
} else if (ct->ct_cmd_resp == LS_ACC) {
isp_prt(isp, ISP_LOG_SANCFG, "Chan %d Register FC4 Type accepted", chan);
- return (0);
} else {
isp_prt(isp, ISP_LOGWARN, "Chan %d Register FC4 Type: 0x%x", chan, ct->ct_cmd_resp);
return (-1);
}
+ return (0);
}
static int
isp_register_fc4_features_24xx(ispsoftc_t *isp, int chan)
{
- mbreg_t mbs;
fcparam *fcp = FCPARAM(isp, chan);
- union {
- isp_ct_pt_t plocal;
- rff_id_t clocal;
- uint8_t q[QENTRY_LEN];
- } un;
- isp_ct_pt_t *pt;
ct_hdr_t *ct;
- rff_id_t *rp;
+ rff_id_t rp;
uint8_t *scp = fcp->isp_scratch;
if (FC_SCRATCH_ACQUIRE(isp, chan)) {
@@ -4087,103 +4043,172 @@ isp_register_fc4_features_24xx(ispsoftc_t *isp, int chan)
}
/*
- * Build a Passthrough IOCB in memory.
- */
- ISP_MEMZERO(un.q, QENTRY_LEN);
- pt = &un.plocal;
- pt->ctp_header.rqs_entry_count = 1;
- pt->ctp_header.rqs_entry_type = RQSTYPE_CT_PASSTHRU;
- pt->ctp_handle = 0xffffffff;
- pt->ctp_nphdl = fcp->isp_sns_hdl;
- pt->ctp_cmd_cnt = 1;
- pt->ctp_vpidx = ISP_GET_VPIDX(isp, chan);
- pt->ctp_time = 4;
- pt->ctp_rsp_cnt = 1;
- pt->ctp_rsp_bcnt = sizeof (ct_hdr_t);
- pt->ctp_cmd_bcnt = sizeof (rff_id_t);
- pt->ctp_dataseg[0].ds_base = DMA_LO32(fcp->isp_scdma+XTXOFF);
- pt->ctp_dataseg[0].ds_basehi = DMA_HI32(fcp->isp_scdma+XTXOFF);
- pt->ctp_dataseg[0].ds_count = sizeof (rff_id_t);
- pt->ctp_dataseg[1].ds_base = DMA_LO32(fcp->isp_scdma);
- pt->ctp_dataseg[1].ds_basehi = DMA_HI32(fcp->isp_scdma);
- pt->ctp_dataseg[1].ds_count = sizeof (ct_hdr_t);
- isp_put_ct_pt(isp, pt, (isp_ct_pt_t *) &scp[CTXOFF]);
- if (isp->isp_dblev & ISP_LOGDEBUG1) {
- isp_print_bytes(isp, "IOCB CT Request", QENTRY_LEN, pt);
- }
-
- /*
* Build the CT header and command in memory.
- *
- * Note that the CT header has to end up as Big Endian format in memory.
*/
- ISP_MEMZERO(&un.clocal, sizeof (un.clocal));
- ct = &un.clocal.rffid_hdr;
+ ISP_MEMZERO(&rp, sizeof(rp));
+ ct = &rp.rffid_hdr;
ct->ct_revision = CT_REVISION;
ct->ct_fcs_type = CT_FC_TYPE_FC;
ct->ct_fcs_subtype = CT_FC_SUBTYPE_NS;
ct->ct_cmd_resp = SNS_RFF_ID;
ct->ct_bcnt_resid = (sizeof (rff_id_t) - sizeof (ct_hdr_t)) >> 2;
- rp = &un.clocal;
- rp->rffid_portid[0] = fcp->isp_portid >> 16;
- rp->rffid_portid[1] = fcp->isp_portid >> 8;
- rp->rffid_portid[2] = fcp->isp_portid;
- rp->rffid_fc4features = 0;
+ rp.rffid_portid[0] = fcp->isp_portid >> 16;
+ rp.rffid_portid[1] = fcp->isp_portid >> 8;
+ rp.rffid_portid[2] = fcp->isp_portid;
+ rp.rffid_fc4features = 0;
if (fcp->role & ISP_ROLE_TARGET)
- rp->rffid_fc4features |= 1;
+ rp.rffid_fc4features |= 1;
if (fcp->role & ISP_ROLE_INITIATOR)
- rp->rffid_fc4features |= 2;
- rp->rffid_fc4type = FC4_SCSI;
- isp_put_rff_id(isp, rp, (rff_id_t *) &scp[XTXOFF]);
- if (isp->isp_dblev & ISP_LOGDEBUG1) {
- isp_print_bytes(isp, "CT Header", QENTRY_LEN, &scp[XTXOFF]);
+ rp.rffid_fc4features |= 2;
+ rp.rffid_fc4type = FC4_SCSI;
+ isp_put_rff_id(isp, &rp, (rff_id_t *)&scp[XTXOFF]);
+ if (isp->isp_dblev & ISP_LOGDEBUG1)
+ isp_print_bytes(isp, "CT request", sizeof(rft_id_t), &scp[XTXOFF]);
+
+ if (isp_ct_passthru(isp, chan, sizeof(rft_id_t), sizeof(ct_hdr_t))) {
+ FC_SCRATCH_RELEASE(isp, chan);
+ return (-1);
+ }
+
+ isp_get_ct_hdr(isp, (ct_hdr_t *) scp, ct);
+ FC_SCRATCH_RELEASE(isp, chan);
+ if (ct->ct_cmd_resp == LS_RJT) {
+ isp_prt(isp, ISP_LOG_SANCFG|ISP_LOG_WARN1,
+ "Chan %d Register FC4 Features rejected", chan);
+ return (-1);
+ } else if (ct->ct_cmd_resp == LS_ACC) {
+ isp_prt(isp, ISP_LOG_SANCFG,
+ "Chan %d Register FC4 Features accepted", chan);
+ } else {
+ isp_prt(isp, ISP_LOGWARN,
+ "Chan %d Register FC4 Features: 0x%x", chan, ct->ct_cmd_resp);
+ return (-1);
}
+ return (0);
+}
- ISP_MEMZERO(&scp[ZTXOFF], sizeof (ct_hdr_t));
+static int
+isp_register_port_name_24xx(ispsoftc_t *isp, int chan)
+{
+ fcparam *fcp = FCPARAM(isp, chan);
+ ct_hdr_t *ct;
+ rspn_id_t rp;
+ uint8_t *scp = fcp->isp_scratch;
+ int len;
- MBSINIT(&mbs, MBOX_EXEC_COMMAND_IOCB_A64, MBLOGALL,
- MBCMD_DEFAULT_TIMEOUT + pt->ctp_time * 1000000);
- mbs.param[1] = QENTRY_LEN;
- mbs.param[2] = DMA_WD1(fcp->isp_scdma + CTXOFF);
- mbs.param[3] = DMA_WD0(fcp->isp_scdma + CTXOFF);
- mbs.param[6] = DMA_WD3(fcp->isp_scdma + CTXOFF);
- mbs.param[7] = DMA_WD2(fcp->isp_scdma + CTXOFF);
- MEMORYBARRIER(isp, SYNC_SFORDEV, XTXOFF, 2 * QENTRY_LEN, chan);
- isp_mboxcmd(isp, &mbs);
- if (mbs.param[0] != MBOX_COMMAND_COMPLETE) {
+ if (FC_SCRATCH_ACQUIRE(isp, chan)) {
+ isp_prt(isp, ISP_LOGERR, sacq);
+ return (-1);
+ }
+
+ /*
+ * Build the CT header and command in memory.
+ */
+ ISP_MEMZERO(&rp, sizeof(rp));
+ ct = &rp.rspnid_hdr;
+ ct->ct_revision = CT_REVISION;
+ ct->ct_fcs_type = CT_FC_TYPE_FC;
+ ct->ct_fcs_subtype = CT_FC_SUBTYPE_NS;
+ ct->ct_cmd_resp = SNS_RSPN_ID;
+ rp.rspnid_portid[0] = fcp->isp_portid >> 16;
+ rp.rspnid_portid[1] = fcp->isp_portid >> 8;
+ rp.rspnid_portid[2] = fcp->isp_portid;
+ rp.rspnid_length = 0;
+ len = offsetof(rspn_id_t, rspnid_name);
+ mtx_lock(&prison0.pr_mtx);
+ rp.rspnid_length += sprintf(&scp[XTXOFF + len + rp.rspnid_length],
+ "%s", prison0.pr_hostname[0] ? prison0.pr_hostname : "FreeBSD");
+ mtx_unlock(&prison0.pr_mtx);
+ rp.rspnid_length += sprintf(&scp[XTXOFF + len + rp.rspnid_length],
+ ":%s", device_get_nameunit(isp->isp_dev));
+ if (chan != 0) {
+ rp.rspnid_length += sprintf(&scp[XTXOFF + len +
+ rp.rspnid_length], "/%d", chan);
+ }
+ len += rp.rspnid_length;
+ ct->ct_bcnt_resid = (len - sizeof(ct_hdr_t)) >> 2;
+ isp_put_rspn_id(isp, &rp, (rspn_id_t *)&scp[XTXOFF]);
+ if (isp->isp_dblev & ISP_LOGDEBUG1)
+ isp_print_bytes(isp, "CT request", len, &scp[XTXOFF]);
+
+ if (isp_ct_passthru(isp, chan, len, sizeof(ct_hdr_t))) {
FC_SCRATCH_RELEASE(isp, chan);
return (-1);
}
- MEMORYBARRIER(isp, SYNC_SFORCPU, ZTXOFF, QENTRY_LEN, chan);
- pt = &un.plocal;
- isp_get_ct_pt(isp, (isp_ct_pt_t *) &scp[ZTXOFF], pt);
- if (isp->isp_dblev & ISP_LOGDEBUG1) {
- isp_print_bytes(isp, "IOCB response", QENTRY_LEN, pt);
+
+ isp_get_ct_hdr(isp, (ct_hdr_t *) scp, ct);
+ FC_SCRATCH_RELEASE(isp, chan);
+ if (ct->ct_cmd_resp == LS_RJT) {
+ isp_prt(isp, ISP_LOG_SANCFG|ISP_LOG_WARN1,
+ "Chan %d Register Symbolic Port Name rejected", chan);
+ return (-1);
+ } else if (ct->ct_cmd_resp == LS_ACC) {
+ isp_prt(isp, ISP_LOG_SANCFG,
+ "Chan %d Register Symbolic Port Name accepted", chan);
+ } else {
+ isp_prt(isp, ISP_LOGWARN,
+ "Chan %d Register Symbolic Port Name: 0x%x", chan, ct->ct_cmd_resp);
+ return (-1);
}
- if (pt->ctp_status) {
+ return (0);
+}
+
+static int
+isp_register_node_name_24xx(ispsoftc_t *isp, int chan)
+{
+ fcparam *fcp = FCPARAM(isp, chan);
+ ct_hdr_t *ct;
+ rsnn_nn_t rp;
+ uint8_t *scp = fcp->isp_scratch;
+ int len;
+
+ if (FC_SCRATCH_ACQUIRE(isp, chan)) {
+ isp_prt(isp, ISP_LOGERR, sacq);
+ return (-1);
+ }
+
+ /*
+ * Build the CT header and command in memory.
+ */
+ ISP_MEMZERO(&rp, sizeof(rp));
+ ct = &rp.rsnnnn_hdr;
+ ct->ct_revision = CT_REVISION;
+ ct->ct_fcs_type = CT_FC_TYPE_FC;
+ ct->ct_fcs_subtype = CT_FC_SUBTYPE_NS;
+ ct->ct_cmd_resp = SNS_RSNN_NN;
+ MAKE_NODE_NAME_FROM_WWN(rp.rsnnnn_nodename, fcp->isp_wwnn);
+ rp.rsnnnn_length = 0;
+ len = offsetof(rsnn_nn_t, rsnnnn_name);
+ mtx_lock(&prison0.pr_mtx);
+ rp.rsnnnn_length += sprintf(&scp[XTXOFF + len + rp.rsnnnn_length],
+ "%s", prison0.pr_hostname[0] ? prison0.pr_hostname : "FreeBSD");
+ mtx_unlock(&prison0.pr_mtx);
+ len += rp.rsnnnn_length;
+ ct->ct_bcnt_resid = (len - sizeof(ct_hdr_t)) >> 2;
+ isp_put_rsnn_nn(isp, &rp, (rsnn_nn_t *)&scp[XTXOFF]);
+ if (isp->isp_dblev & ISP_LOGDEBUG1)
+ isp_print_bytes(isp, "CT request", len, &scp[XTXOFF]);
+
+ if (isp_ct_passthru(isp, chan, len, sizeof(ct_hdr_t))) {
FC_SCRATCH_RELEASE(isp, chan);
- isp_prt(isp, ISP_LOGWARN,
- "Chan %d Register FC4 Features CT Passthrough returned 0x%x",
- chan, pt->ctp_status);
- return (1);
+ return (-1);
}
isp_get_ct_hdr(isp, (ct_hdr_t *) scp, ct);
FC_SCRATCH_RELEASE(isp, chan);
-
if (ct->ct_cmd_resp == LS_RJT) {
isp_prt(isp, ISP_LOG_SANCFG|ISP_LOG_WARN1,
- "Chan %d Register FC4 Features rejected", chan);
+ "Chan %d Register Symbolic Node Name rejected", chan);
return (-1);
} else if (ct->ct_cmd_resp == LS_ACC) {
isp_prt(isp, ISP_LOG_SANCFG,
- "Chan %d Register FC4 Features accepted", chan);
- return (0);
+ "Chan %d Register Symbolic Node Name accepted", chan);
} else {
isp_prt(isp, ISP_LOGWARN,
- "Chan %d Register FC4 Features: 0x%x", chan, ct->ct_cmd_resp);
+ "Chan %d Register Symbolic Node Name: 0x%x", chan, ct->ct_cmd_resp);
return (-1);
}
+ return (0);
}
static uint16_t
@@ -5140,15 +5165,14 @@ again:
* Synchronize our view of this response queue entry.
*/
MEMORYBARRIER(isp, SYNC_RESULT, oop, QENTRY_LEN, -1);
+ if (isp->isp_dblev & ISP_LOGDEBUG1)
+ isp_print_qentry(isp, "Response Queue Entry", oop, hp);
isp_get_hdr(isp, hp, &sp->req_header);
etype = sp->req_header.rqs_entry_type;
if (IS_24XX(isp) && etype == RQSTYPE_RESPONSE) {
isp24xx_statusreq_t *sp2 = (isp24xx_statusreq_t *)qe;
isp_get_24xx_response(isp, (isp24xx_statusreq_t *)hp, sp2);
- if (isp->isp_dblev & ISP_LOGDEBUG1) {
- isp_print_bytes(isp, "Response Queue Entry", QENTRY_LEN, sp2);
- }
scsi_status = sp2->req_scsi_status;
completion_status = sp2->req_completion_status;
if ((scsi_status & 0xff) != 0)
@@ -5158,9 +5182,6 @@ again:
resid = sp2->req_resid;
} else if (etype == RQSTYPE_RESPONSE) {
isp_get_response(isp, (ispstatusreq_t *) hp, sp);
- if (isp->isp_dblev & ISP_LOGDEBUG1) {
- isp_print_bytes(isp, "Response Queue Entry", QENTRY_LEN, sp);
- }
scsi_status = sp->req_scsi_status;
completion_status = sp->req_completion_status;
req_status_flags = sp->req_status_flags;
@@ -5169,9 +5190,6 @@ again:
} else if (etype == RQSTYPE_RIO1) {
isp_rio1_t *rio = (isp_rio1_t *) qe;
isp_get_rio1(isp, (isp_rio1_t *) hp, rio);
- if (isp->isp_dblev & ISP_LOGDEBUG1) {
- isp_print_bytes(isp, "Response Queue Entry", QENTRY_LEN, rio);
- }
for (i = 0; i < rio->req_header.rqs_seqno; i++) {
isp_fastpost_complete(isp, rio->req_handles[i]);
}
@@ -5235,7 +5253,6 @@ again:
*/
if (etype != RQSTYPE_REQUEST) {
isp_prt(isp, ISP_LOGERR, notresp, etype, oop, optr, nlooked);
- isp_print_bytes(isp, "Request Queue Entry", QENTRY_LEN, sp);
ISP_MEMZERO(hp, QENTRY_LEN); /* PERF */
last_etype = etype;
continue;
@@ -5250,7 +5267,8 @@ again:
if (sp->req_header.rqs_flags & RQSFLAG_MASK) {
if (sp->req_header.rqs_flags & RQSFLAG_CONTINUATION) {
- isp_print_bytes(isp, "unexpected continuation segment", QENTRY_LEN, sp);
+ isp_print_qentry(isp, "unexpected continuation segment",
+ oop, hp);
last_etype = etype;
continue;
}
@@ -5261,19 +5279,23 @@ again:
*/
}
if (sp->req_header.rqs_flags & RQSFLAG_BADHEADER) {
- isp_print_bytes(isp, "bad header flag", QENTRY_LEN, sp);
+ isp_print_qentry(isp, "bad header flag",
+ oop, hp);
buddaboom++;
}
if (sp->req_header.rqs_flags & RQSFLAG_BADPACKET) {
- isp_print_bytes(isp, "bad request packet", QENTRY_LEN, sp);
+ isp_print_qentry(isp, "bad request packet",
+ oop, hp);
buddaboom++;
}
if (sp->req_header.rqs_flags & RQSFLAG_BADCOUNT) {
- isp_print_bytes(isp, "invalid entry count", QENTRY_LEN, sp);
+ isp_print_qentry(isp, "invalid entry count",
+ oop, hp);
buddaboom++;
}
if (sp->req_header.rqs_flags & RQSFLAG_BADORDER) {
- isp_print_bytes(isp, "invalid IOCB ordering", QENTRY_LEN, sp);
+ isp_print_qentry(isp, "invalid IOCB ordering",
+ oop, hp);
last_etype = etype;
continue;
}
@@ -5431,7 +5453,8 @@ again:
XS_SAVE_SENSE(xs, snsp, totslen, slen);
} else if ((req_status_flags & RQSF_GOT_STATUS) && (scsi_status & 0xff) == SCSI_CHECK && IS_FC(isp)) {
isp_prt(isp, ISP_LOGWARN, "CHECK CONDITION w/o sense data for CDB=0x%x", XS_CDBP(xs)[0] & 0xff);
- isp_print_bytes(isp, "CC with no Sense", QENTRY_LEN, qe);
+ isp_print_qentry(isp, "CC with no Sense",
+ oop, hp);
}
isp_prt(isp, ISP_LOGDEBUG2, "asked for %ld got raw resid %ld settled for %ld", (long) XS_XFRLEN(xs), resid, (long) XS_GET_RESID(xs));
break;
@@ -5457,7 +5480,8 @@ again:
XS_SET_RESID(xs, XS_XFRLEN(xs));
break;
default:
- isp_print_bytes(isp, "Unhandled Response Type", QENTRY_LEN, qe);
+ isp_print_qentry(isp, "Unhandled Response Type",
+ oop, hp);
if (XS_NOERR(xs)) {
XS_SETERR(xs, HBA_BOTCH);
}
diff --git a/sys/dev/isp/isp_freebsd.h b/sys/dev/isp/isp_freebsd.h
index 7702ee6..3e77077 100644
--- a/sys/dev/isp/isp_freebsd.h
+++ b/sys/dev/isp/isp_freebsd.h
@@ -32,6 +32,7 @@
#include <sys/param.h>
#include <sys/systm.h>
#include <sys/endian.h>
+#include <sys/jail.h>
#include <sys/lock.h>
#include <sys/kernel.h>
#include <sys/queue.h>
diff --git a/sys/dev/isp/isp_library.c b/sys/dev/isp/isp_library.c
index 78c7f6f..c7bce2d 100644
--- a/sys/dev/isp/isp_library.c
+++ b/sys/dev/isp/isp_library.c
@@ -180,7 +180,8 @@ isp_send_cmd(ispsoftc_t *isp, void *fqe, void *segp, uint32_t nsegs, uint32_t to
isp_put_cont_req(isp, (ispcontreq_t *)storage, qe1);
}
if (isp->isp_dblev & ISP_LOGDEBUG1) {
- isp_print_bytes(isp, "additional queue entry", QENTRY_LEN, storage);
+ isp_print_bytes(isp, "additional queue entry",
+ QENTRY_LEN, qe1);
}
nqe++;
}
@@ -241,7 +242,7 @@ copy_and_sync:
return (CMD_COMPLETE);
}
if (isp->isp_dblev & ISP_LOGDEBUG1) {
- isp_print_bytes(isp, "first queue entry", QENTRY_LEN, fqe);
+ isp_print_bytes(isp, "first queue entry", QENTRY_LEN, qe0);
}
ISP_ADD_REQUEST(isp, nxt);
return (CMD_QUEUED);
@@ -1988,6 +1989,17 @@ isp_put_rft_id(ispsoftc_t *isp, rft_id_t *src, rft_id_t *dst)
}
void
+isp_put_rspn_id(ispsoftc_t *isp, rspn_id_t *src, rspn_id_t *dst)
+{
+/* int i;*/
+ isp_put_ct_hdr(isp, &src->rspnid_hdr, &dst->rspnid_hdr);
+ ISP_IOZPUT_8(isp, src->rspnid_reserved, &dst->rspnid_reserved);
+ ISP_IOZPUT_8(isp, src->rspnid_length, &dst->rspnid_length);
+/* for (i = 0; i < src->rspnid_length; i++)
+ ISP_IOZPUT_8(isp, src->rspnid_name[i], &dst->rspnid_name[i]);*/
+}
+
+void
isp_put_rff_id(ispsoftc_t *isp, rff_id_t *src, rff_id_t *dst)
{
int i;
@@ -2002,6 +2014,18 @@ isp_put_rff_id(ispsoftc_t *isp, rff_id_t *src, rff_id_t *dst)
}
void
+isp_put_rsnn_nn(ispsoftc_t *isp, rsnn_nn_t *src, rsnn_nn_t *dst)
+{
+ int i;
+ isp_put_ct_hdr(isp, &src->rsnnnn_hdr, &dst->rsnnnn_hdr);
+ for (i = 0; i < 8; i++)
+ ISP_IOZPUT_8(isp, src->rsnnnn_nodename[i], &dst->rsnnnn_nodename[i]);
+ ISP_IOZPUT_8(isp, src->rsnnnn_length, &dst->rsnnnn_length);
+/* for (i = 0; i < src->rsnnnn_length; i++)
+ ISP_IOZPUT_8(isp, src->rsnnnn_name[i], &dst->rsnnnn_name[i]);*/
+}
+
+void
isp_get_ct_hdr(ispsoftc_t *isp, ct_hdr_t *src, ct_hdr_t *dst)
{
ISP_IOZGET_8(isp, &src->ct_revision, dst->ct_revision);
@@ -2170,7 +2194,8 @@ isp_send_tgt_cmd(ispsoftc_t *isp, void *fqe, void *segp, uint32_t nsegs, uint32_
isp_put_cont_req(isp, (ispcontreq_t *)storage, qe1);
}
if (isp->isp_dblev & ISP_LOGTDEBUG1) {
- isp_print_bytes(isp, "additional queue entry", QENTRY_LEN, storage);
+ isp_print_bytes(isp, "additional queue entry",
+ QENTRY_LEN, qe1);
}
nqe++;
}
@@ -2207,7 +2232,7 @@ isp_send_tgt_cmd(ispsoftc_t *isp, void *fqe, void *segp, uint32_t nsegs, uint32_
return (CMD_COMPLETE);
}
if (isp->isp_dblev & ISP_LOGTDEBUG1) {
- isp_print_bytes(isp, "first queue entry", QENTRY_LEN, fqe);
+ isp_print_bytes(isp, "first queue entry", QENTRY_LEN, qe0);
}
ISP_ADD_REQUEST(isp, nxt);
return (CMD_QUEUED);
diff --git a/sys/dev/isp/isp_library.h b/sys/dev/isp/isp_library.h
index 922a98b..c70b2cc 100644
--- a/sys/dev/isp/isp_library.h
+++ b/sys/dev/isp/isp_library.h
@@ -144,7 +144,9 @@ void isp_get_fc_hdr(ispsoftc_t *, fc_hdr_t *, fc_hdr_t *);
void isp_put_fc_hdr(ispsoftc_t *, fc_hdr_t *, fc_hdr_t *);
void isp_get_fcp_cmnd_iu(ispsoftc_t *, fcp_cmnd_iu_t *, fcp_cmnd_iu_t *);
void isp_put_rft_id(ispsoftc_t *, rft_id_t *, rft_id_t *);
+void isp_put_rspn_id(ispsoftc_t *, rspn_id_t *, rspn_id_t *);
void isp_put_rff_id(ispsoftc_t *, rff_id_t *, rff_id_t *);
+void isp_put_rsnn_nn(ispsoftc_t *, rsnn_nn_t *, rsnn_nn_t *);
void isp_get_ct_hdr(ispsoftc_t *isp, ct_hdr_t *, ct_hdr_t *);
void isp_put_ct_hdr(ispsoftc_t *isp, ct_hdr_t *, ct_hdr_t *);
void isp_put_fcp_rsp_iu(ispsoftc_t *isp, fcp_rsp_iu_t *, fcp_rsp_iu_t *);
diff --git a/sys/dev/isp/isp_stds.h b/sys/dev/isp/isp_stds.h
index 315870e..a83f08f 100644
--- a/sys/dev/isp/isp_stds.h
+++ b/sys/dev/isp/isp_stds.h
@@ -139,6 +139,19 @@ typedef struct {
} rft_id_t;
/*
+ * RSPN_ID Requet CT_IU
+ *
+ * Source: INCITS 463-2010 Generic Services 6 Section 5.2.5.32
+ */
+typedef struct {
+ ct_hdr_t rspnid_hdr;
+ uint8_t rspnid_reserved;
+ uint8_t rspnid_portid[3];
+ uint8_t rspnid_length;
+ uint8_t rspnid_name[0];
+} rspn_id_t;
+
+/*
* RFF_ID Requet CT_IU
*
* Source: INCITS 463-2010 Generic Services 6 Section 5.2.5.34
@@ -153,6 +166,18 @@ typedef struct {
} rff_id_t;
/*
+ * RSNN_NN Requet CT_IU
+ *
+ * Source: INCITS 463-2010 Generic Services 6 Section 5.2.5.35
+ */
+typedef struct {
+ ct_hdr_t rsnnnn_hdr;
+ uint8_t rsnnnn_nodename[8];
+ uint8_t rsnnnn_length;
+ uint8_t rsnnnn_name[0];
+} rsnn_nn_t;
+
+/*
* FCP Response IU and bits of interest
* Source: NCITS T10, Project 1828D, Revision 02b (aka FCP4r02b)
*/
diff --git a/sys/dev/isp/ispmbox.h b/sys/dev/isp/ispmbox.h
index 5a1306f..8bd4d1a 100644
--- a/sys/dev/isp/ispmbox.h
+++ b/sys/dev/isp/ispmbox.h
@@ -1548,7 +1548,9 @@ typedef struct {
#define SNS_GFF_ID 0x11F
#define SNS_GID_FT 0x171
#define SNS_RFT_ID 0x217
+#define SNS_RSPN_ID 0x218
#define SNS_RFF_ID 0x21F
+#define SNS_RSNN_NN 0x239
typedef struct {
uint16_t snscb_rblen; /* response buffer length (words) */
uint16_t snscb_reserved0;
diff --git a/sys/dev/ispfw/asm_2500.h b/sys/dev/ispfw/asm_2500.h
index 1cc3c9f..92993f2 100644
--- a/sys/dev/ispfw/asm_2500.h
+++ b/sys/dev/ispfw/asm_2500.h
@@ -30,1158 +30,1197 @@
* *
* ******************************************************************** */
/*
- * Firmware Version 7.03.00 (Apr 14, 2014)
+ * Firmware Version 8.03.00 (2015)
*/
#ifdef ISP_2500
static const uint32_t isp_2500_risc_code[] = {
- 0x0501f042, 0x00112000, 0x00100000, 0x0000d32a,
- 0x00000007, 0x00000003, 0x00000000, 0x000090d5,
+ 0x0501f06b, 0x00116000, 0x00100000, 0x0000daa9,
+ 0x00000008, 0x00000003, 0x00000000, 0x001090d5,
0x00000004, 0x00000000, 0x20434f50, 0x59524947,
- 0x48542032, 0x30303720, 0x514c4f47, 0x49432043,
+ 0x48542032, 0x30313520, 0x514c4f47, 0x49432043,
0x4f52504f, 0x52415449, 0x4f4e2020, 0x20495350,
0x32357878, 0x20466972, 0x6d776172, 0x65202020,
- 0x56657273, 0x696f6e20, 0x2020372e, 0x30332e30,
+ 0x56657273, 0x696f6e20, 0x2020382e, 0x30332e30,
0x30202024, 0x00000000, 0x00000000, 0x00000000,
0x00000000, 0x00000000, 0x00100000, 0x00100000,
- 0x0000d32a, 0xffffffff, 0x00112004, 0x00020000,
- 0x000011a6, 0xffffffff, 0x001131af, 0x0000c000,
- 0x00000aa2, 0x00ffffff, 0x00113c51, 0x00008000,
- 0x00000703, 0x00ffffff, 0x00114354, 0x0000a000,
- 0x00000621, 0x00ffffff, 0x00114975, 0x0000400e,
+ 0x0000daa9, 0xffffffff, 0x00116004, 0x00020000,
+ 0x000011e7, 0xffffffff, 0x001171f0, 0x0000c000,
+ 0x00000adf, 0x00ffffff, 0x00117ccf, 0x00008000,
+ 0x0000070b, 0x00ffffff, 0x001183da, 0x0000a000,
+ 0x0000062a, 0x00ffffff, 0x00118a04, 0x0000400e,
0x00000808, 0xffffffff, 0x00000000, 0x00000000,
0x00000000, 0x00000000, 0x00000000, 0x00000000,
- 0x00000000, 0x00000000, 0x4203f000, 0x00021fff,
- 0x40000000, 0x4203e000, 0x90000100, 0x40000000,
- 0x42000800, 0x000211a7, 0x6002f000, 0x608c00e0,
- 0x50000000, 0x8c000500, 0x05020003, 0x42000800,
- 0x00020000, 0x45780800, 0x80040800, 0x82040580,
- 0x00022000, 0x05fe07fc, 0x4178a000, 0x4200a800,
- 0x0010d32a, 0x42000800, 0x00111b00, 0x40540000,
- 0x8004b480, 0x0569f852, 0x0501ffcd, 0x600c6020,
- 0x50304800, 0x8c240500, 0x0500001c, 0x59e00016,
- 0x8c000504, 0x05020019, 0x0569f8a9, 0x604808fa,
- 0x50041000, 0x82081500, 0xfffffffc, 0x90081d43,
- 0x90081540, 0x84244d00, 0x440c0800, 0x44080800,
- 0x44246000, 0x64030000, 0x4203e000, 0x70000000,
- 0x4203e000, 0xb0300000, 0x603ff84e, 0x59e00016,
- 0x8c000504, 0x05020002, 0x05fe47fd, 0x84244d40,
- 0x44246000, 0x0569f892, 0x64030000, 0x0501fde5,
- 0x4803c856, 0x0509fbf8, 0x6413c020, 0x4203e000,
- 0x6000000f, 0x640f70e8, 0x640f78e8, 0x640da8e8,
- 0x59e00023, 0x8c000500, 0x0502002b, 0x42002800,
- 0x00100022, 0x58140800, 0x4817c857, 0x4807c857,
- 0x800409c0, 0x0500000a, 0x58142002, 0x4813c857,
- 0x58141003, 0x4c140000, 0x0501ff8c, 0x5c002800,
- 0x0502003d, 0x90142c04, 0x05fdf7f3, 0x42002800,
- 0x00100022, 0x5814a000, 0x4817c857, 0x4853c857,
- 0x8050a1c0, 0x05000014, 0x4c140000, 0x5814a801,
- 0x4857c857, 0x40500000, 0x80540480, 0x0500000b,
- 0x82540480, 0x0000400e, 0x05020005, 0x9050a404,
- 0x0509ff8a, 0x05020028, 0x0501f004, 0x5814b002,
- 0x485bc857, 0x0565fff6, 0x5c002800, 0x90142c04,
- 0x05fdf7e9, 0x050dfdf3, 0x42001000, 0x7ff481fe,
- 0x59e00002, 0x8c00051e, 0x05020003, 0x42001000,
- 0x7ff480fe, 0x50081000, 0x480b5092, 0x42002800,
- 0x00100022, 0x58140801, 0x4817c857, 0x4807c857,
- 0x800409c0, 0x05000023, 0x58142002, 0x4813c857,
- 0x58141003, 0x4c140000, 0x82040480, 0x0000400e,
- 0x05020004, 0x0509ff94, 0x4803c856, 0x0501f003,
- 0x0501ff52, 0x05020004, 0x5c002800, 0x90142c04,
- 0x05fdf7ed, 0x4803c856, 0x4a03c020, 0x00004010,
- 0x4a03c011, 0x40100011, 0x05006000, 0x4203e000,
- 0x40000000, 0x59e00017, 0x60000800, 0x8c00050a,
- 0x050a0df0, 0x8d0c0530, 0x050a0de3, 0x050a0de5,
- 0x6403c017, 0x4203e000, 0x30000001, 0x0501f000,
- 0x4803c856, 0x59e00024, 0x8c000500, 0x050a0f32,
- 0x0501ffca, 0x4a03c014, 0x001c001c, 0x4817c857,
- 0x0501fff8, 0x42002000, 0x00111b00, 0x0565ffc3,
- 0x59a800a1, 0x800001c0, 0x0500000c, 0x59a800ca,
- 0x8c000500, 0x05000005, 0x59a8000a, 0x82000480,
- 0x0013ffff, 0x05001005, 0x59a820a1, 0x80102000,
- 0x59a8280a, 0x0565ffb5, 0x0569f9db, 0x0569fa02,
- 0x59a8280a, 0x60000812, 0x60001802, 0x4807503b,
- 0x480f529c, 0x60c01000, 0x053dfe68, 0x82040c00,
- 0x00111b00, 0x4807500b, 0x600400de, 0x50000000,
- 0x8c000502, 0x05000004, 0x59a800ca, 0x84000540,
- 0x480350ca, 0x4a03c810, 0x00100000, 0x4a03c811,
- 0x0010d32a, 0x0501ff90, 0x6447c829, 0x59e40001,
- 0x82000540, 0x0003401f, 0x4803c801, 0x4a03c802,
- 0x00000933, 0x59e00003, 0x82000540, 0x00240000,
- 0x4803c003, 0x64ffc019, 0x60701000, 0x0501fedf,
- 0x4202c000, 0x00111b00, 0x59aab00b, 0x59aaa00b,
- 0x59aaa80b, 0x59aac83b, 0x4967509b, 0x496754dd,
- 0x59a8000b, 0x4803500c, 0x0501fffe, 0x0549fa90,
- 0x0505f807, 0x0505f875, 0x0509ffb5, 0x59a80084,
- 0x8c000508, 0x05000004, 0x050dfebf, 0x0525f87d,
- 0x050dffef, 0x0505f9b8, 0x0505ffb0, 0x053dfe71,
- 0x0501fc55, 0x0515f812, 0x0531fb18, 0x052dfc90,
- 0x0539fd03, 0x0509ffe6, 0x0509fe0f, 0x4203e000,
- 0xf0000001, 0x0569f9c9, 0x6403c018, 0x4203e000,
- 0xa0000001, 0x59a800ca, 0x80000540, 0x05000004,
- 0x4203e000, 0x20000551, 0x0501f003, 0x4203e000,
- 0x20000511, 0x4203e000, 0x50010000, 0x6403c020,
- 0x05027019, 0x59e00020, 0x90000582, 0x05020016,
- 0x4a03c020, 0x00004000, 0x4a03c011, 0x40000010,
- 0x05006000, 0x4203e000, 0x40000000, 0x4df00000,
- 0x4203e000, 0x50000000, 0x59e00017, 0x60000800,
- 0x8c00050a, 0x00020892, 0x8d0c0530, 0x050a0d5a,
- 0x000209bc, 0x5c03e000, 0x6403c017, 0x4203e000,
- 0x30000001, 0x6002d800, 0x4203e000, 0xb0600000,
- 0x59a800d5, 0x4003f800, 0x0001f004, 0x4df00000,
- 0x4203e000, 0x50000000, 0x416c0000, 0x90000c88,
- 0x05021c5e, 0x0c01f803, 0x5c03e000, 0x0001f006,
- 0x00100189, 0x0010019a, 0x001002bf, 0x00100188,
- 0x001003fa, 0x00100188, 0x00100188, 0x00100592,
- 0x0501fc52, 0x42000800, 0x0010dceb, 0x5804001e,
- 0x8c000500, 0x0500000c, 0x84000500, 0x4800081e,
- 0x6012d800, 0x0501fe6d, 0x49f3c857, 0x5c000800,
- 0x5c000000, 0x82000540, 0x00007e20, 0x4c000000,
- 0x4c040000, 0x1c01f000, 0x41780000, 0x800001c0,
- 0x05020039, 0x59c4000d, 0x8c00051e, 0x0502001f,
- 0x59a800a7, 0x8c000500, 0x05000012, 0x60300830,
- 0x050dfc0d, 0x90040560, 0x60300830, 0x4c000000,
- 0x050dfc0e, 0x6041d04e, 0x0539fe5b, 0x5c000000,
- 0x8400050a, 0x60300830, 0x050dfc08, 0x6191d000,
- 0x0539fe55, 0x59c4000d, 0x8c00051e, 0x0502000b,
- 0x59c40005, 0x8c000500, 0x05020008, 0x050dff96,
- 0x640b50b4, 0x64075075, 0x6012d800, 0x42000000,
- 0x0010e4be, 0x0565f622, 0x0501fe39, 0x052dfeef,
- 0x0500000f, 0x052dfeff, 0x05020032, 0x5994002d,
- 0x82000580, 0x001051ae, 0x05020004, 0x5994002c,
- 0x800001c0, 0x0502002b, 0x59c40006, 0x82000540,
- 0x000000c0, 0x48038806, 0x0501f026, 0x052dfe62,
- 0x916c0581, 0x050200c5, 0x59a8003f, 0x90000589,
- 0x050200c2, 0x497b503d, 0x42000800, 0xffffd815,
- 0x0511fcf2, 0x42024800, 0x0010e512, 0x497a4805,
- 0x64078893, 0x4a038805, 0x000000f0, 0x052dfedb,
- 0x59c41006, 0x05020006, 0x82081540, 0x000000f1,
- 0x82081500, 0xbbffffff, 0x0501f003, 0x82081540,
- 0x440000f1, 0x480b8806, 0x0539fe23, 0x0541fb6d,
- 0x0501f8ab, 0x050000a9, 0x42000000, 0x0010e39b,
- 0x0565fdec, 0x60c01100, 0x497b50b2, 0x0501f036,
- 0x0525f9b0, 0x59c400a4, 0x9000050f, 0x90000487,
- 0x0502109e, 0x0539fe14, 0x59c400a3, 0x82000500,
- 0xffefffff, 0x480388a3, 0x59a800bd, 0x800001c0,
- 0x05020003, 0x0525ff01, 0x0501f094, 0x59a80043,
- 0x84000546, 0x48035043, 0x052dfeae, 0x59c41006,
- 0x05020006, 0x82081540, 0x44000001, 0x82081500,
- 0xffffff0f, 0x0501f003, 0x82081540, 0x440000f1,
- 0x480b8806, 0x497b9005, 0x0501f885, 0x05000083,
- 0x60000000, 0x052dfc3b, 0x4a038802, 0x0000ffff,
- 0x4a0378e4, 0x00003000, 0x42007000, 0x0010e060,
- 0x58380401, 0x8c000508, 0x05020003, 0x4a01a8e4,
- 0x0000c000, 0x42000000, 0x0010e392, 0x0565fdb9,
- 0x59a8103d, 0x600c0800, 0x0541fb1b, 0x60401100,
- 0x59a81809, 0x0521fdb3, 0x59a804cc, 0x82000500,
- 0xffffff40, 0x480354cc, 0x59a80249, 0x84000518,
- 0x48035249, 0x59c40001, 0x82000500, 0x00018000,
- 0x82000580, 0x00018000, 0x59c400a3, 0x05020004,
- 0x82000540, 0x00001000, 0x0501f003, 0x82000500,
- 0xffffefff, 0x480388a3, 0x59c80015, 0x84000548,
- 0x48039015, 0x050dfacb, 0x59a81008, 0x84081500,
- 0x480b5008, 0x850e1d0a, 0x0529fd8a, 0x052dfe67,
- 0x05000007, 0x8d0c0506, 0x05000005, 0x640750b2,
- 0x850e1d0e, 0x0525fa79, 0x0501f048, 0x0529fe89,
- 0x05000005, 0x59c41002, 0x8408150c, 0x480b8802,
- 0x0501f017, 0x052dfe59, 0x05020005, 0x59a80046,
- 0x80000540, 0x05540e1d, 0x0501f011, 0x0555fe1b,
- 0x59a80249, 0x8c000506, 0x0502000d, 0x59a80046,
- 0x80000540, 0x05020007, 0x59a81c49, 0x820c0580,
- 0x0000ffff, 0x05000006, 0x8c0c0508, 0x05000004,
- 0x4a035449, 0x0000ffff, 0x0525ffb4, 0x497b504b,
- 0x497b504a, 0x497b50b3, 0x052dfe40, 0x59a81249,
- 0x05020009, 0x050df8bd, 0x80001580, 0x59a8004d,
- 0x82000500, 0xffff0000, 0x80040d40, 0x4807504d,
- 0x0501f005, 0x59a8004d, 0x82000500, 0xffff0000,
- 0x4803504d, 0x599c0017, 0x8c00050a, 0x05000002,
- 0x84081544, 0x480b5249, 0x052dfe2c, 0x05000003,
- 0x050df8aa, 0x48078880, 0x60141000, 0x0541ffae,
- 0x497b504b, 0x497b5044, 0x4a035045, 0x0000ffff,
- 0x4a01a8e4, 0x000000c0, 0x600ad800, 0x052dfe1f,
- 0x05000005, 0x59a80249, 0x9000050c, 0x90000584,
- 0x05000002, 0x0511fa30, 0x1c01f000, 0x0521fe7f,
- 0x05020026, 0x599c0019, 0x82000500, 0x0000e000,
- 0x82000580, 0x00004000, 0x05020020, 0x59c40001,
- 0x82000d00, 0x00018000, 0x82040580, 0x00010000,
- 0x05000004, 0x82040580, 0x00008000, 0x05020017,
- 0x59a800a6, 0x90000483, 0x05001003, 0x90000541,
- 0x0501f012, 0x050dfe6f, 0x64075075, 0x4a035076,
- 0xaabbccdd, 0x64135069, 0x6403506a, 0x6012d800,
- 0x59a800a6, 0x80000000, 0x480350a6, 0x59a800a5,
- 0x82000500, 0xfffffff8, 0x90000544, 0x480350a5,
- 0x0501fd42, 0x80000580, 0x1c01f000, 0x0525f854,
- 0x05000051, 0x59a80249, 0x90000523, 0x900005a3,
- 0x0502004d, 0x0525f853, 0x0500004b, 0x4a038802,
- 0x0000ffbf, 0x59a804cc, 0x8c00050c, 0x0502012e,
- 0x8c000506, 0x0502000b, 0x8c000508, 0x0502012a,
- 0x84000548, 0x480354cc, 0x0525f84b, 0x05000004,
- 0x417a5800, 0x0559fcae, 0x0501f123, 0x0501f0ea,
- 0x8c00050a, 0x05020038, 0x8400054a, 0x480354cc,
- 0x497b504b, 0x497b504a, 0x497b5044, 0x4a035045,
- 0x0000ffff, 0x59a80249, 0x82000500, 0xffffff7c,
- 0x48035249, 0x42024800, 0x0010e512, 0x59240200,
- 0x82000500, 0xffffff1f, 0x48024a00, 0x59a802cc,
- 0x5924100b, 0x82081500, 0x00001fff, 0x80080580,
- 0x05000012, 0x4d3c0000, 0x4d300000, 0x4d400000,
- 0x60aa8000, 0x417a6000, 0x600a7800, 0x41780800,
- 0x0511fc4a, 0x5c028000, 0x5c026000, 0x5c027800,
- 0x59a802cc, 0x5924080b, 0x82040d00, 0xffffe000,
- 0x80040540, 0x4802480b, 0x4d300000, 0x417a6000,
- 0x0511fbeb, 0x5c026000, 0x4803c856, 0x5924000c,
- 0x800001c0, 0x05020006, 0x0001f817, 0x050000ee,
- 0x492e480c, 0x5924000b, 0x48025802, 0x0511f9b6,
- 0x0501f0e9, 0x59a80045, 0x82000580, 0x0000ffff,
- 0x05000003, 0x0511f9b0, 0x0501f0e3, 0x0565fdfe,
- 0x05000017, 0x0565fe01, 0x05000008, 0x052dfd93,
- 0x05000006, 0x59a80249, 0x8c000506, 0x0500004e,
- 0x0529fdb8, 0x050200d8, 0x80000580, 0x0509ff61,
- 0x600ed800, 0x4a035045, 0x0000ffff, 0x4a01a8e4,
- 0x00000080, 0x4a038802, 0x0000ffff, 0x850e1d02,
- 0x0541fd6a, 0x0501fcb8, 0x0501f0cb, 0x59a80249,
- 0x8c00050a, 0x05020003, 0x8c000506, 0x05000037,
- 0x8c000500, 0x05000035, 0x4a038802, 0x0000ffbf,
- 0x8c000502, 0x05000031, 0x0521ffde, 0x05020004,
- 0x599c0018, 0x8c000516, 0x05020029, 0x59a8004a,
- 0x82000580, 0x0000ffff, 0x05000020, 0x0521ffd5,
- 0x05000006, 0x59a804cc, 0x8c000500, 0x05000003,
- 0x0511fc27, 0x0501f008, 0x41781800, 0x0565fddb,
- 0x05000002, 0x60401800, 0x59a80249, 0x8c00050a,
- 0x05120a8a, 0x42024800, 0x0010e512, 0x417a4000,
- 0x59240200, 0x82000500, 0x000000e0, 0x82000580,
- 0x000000e0, 0x050200a0, 0x050dff2c, 0x59a80249,
- 0x8c000504, 0x0502009c, 0x600c1000, 0x417a5800,
- 0x050dff4b, 0x0501f098, 0x59a80249, 0x8c00051c,
- 0x05020003, 0x8c000504, 0x05fc07f8, 0x59a8004b,
- 0x80000540, 0x05020090, 0x59a80249, 0x8c000508,
- 0x05020017, 0x59a80044, 0x80000540, 0x0502008a,
- 0x59a80249, 0x8c00050e, 0x0500000c, 0x8c000502,
- 0x0502000a, 0x052dfd39, 0x05000083, 0x82000500,
- 0xffffff77, 0x48035249, 0x4a035045, 0x0000ffff,
- 0x0511f949, 0x0501f07c, 0x0565fda8, 0x0500000c,
- 0x0511fcc7, 0x05020078, 0x0501f009, 0x599c1819,
- 0x8c0c0510, 0x05000004, 0x8c000502, 0x0502001d,
- 0x0501f071, 0x8c000516, 0x0500006f, 0x0529fd4d,
- 0x0502006d, 0x0521ff8b, 0x05020004, 0x599c0018,
- 0x8c000516, 0x05020003, 0x052df90d, 0x05020066,
- 0x59a80006, 0x8c00051c, 0x05020004, 0x599c0017,
- 0x8c00050a, 0x0500000b, 0x61c0b00f, 0x417a8800,
- 0x0001fb00, 0x05020004, 0x59340200, 0x8c00051a,
- 0x05020059, 0x81468800, 0x8058b040, 0x05fe07f9,
- 0x0565fda3, 0x05000004, 0x4a038802, 0x0000ffbf,
- 0x0501f003, 0x4a038802, 0x0000ffff, 0x42001800,
- 0x0010dd46, 0x0501fd73, 0x42001800, 0x0010dd53,
- 0x0501fd70, 0x850e1d02, 0x4a01a8e4, 0x00000080,
- 0x600ed800, 0x4a035045, 0x0000ffff, 0x0501fc2e,
- 0x80000580, 0x0509fecb, 0x497b50a6, 0x64075078,
- 0x0521ff5c, 0x0502000b, 0x599c0018, 0x8c000516,
- 0x05000008, 0x59a804cc, 0x8c00050e, 0x05020036,
- 0x8400054e, 0x480354cc, 0x0521fcda, 0x0501f016,
- 0x59a81a49, 0x59a82041, 0x82102580, 0x0000aaaa,
- 0x05000004, 0x8c0c0506, 0x05020002, 0x480f5449,
- 0x8c0c0508, 0x05000007, 0x599c1819, 0x8c0c0510,
- 0x05000004, 0x61f8180f, 0x60102000, 0x0501f003,
- 0x61fc19ff, 0x60182000, 0x60003000, 0x417a4000,
- 0x0521fc6c, 0x052dfce3, 0x0500000a, 0x59c40006,
- 0x052dfcce, 0x05000004, 0x82000500, 0xffffff0f,
- 0x0501f003, 0x82000500, 0xfbffffff, 0x48038806,
- 0x0521ff30, 0x0500000a, 0x59a804cc, 0x8c000500,
- 0x05000007, 0x59c40801, 0x82040d40, 0x00004000,
- 0x48078801, 0x64c378e4, 0x0501f006, 0x59c40801,
- 0x82040d00, 0xffffbfff, 0x48078801, 0x648378e4,
- 0x0541fc9e, 0x1c01f000, 0x4c040000, 0x4c080000,
- 0x4c100000, 0x59a8006a, 0x90000c84, 0x050219db,
- 0x0c01f805, 0x5c002000, 0x5c001000, 0x5c000800,
- 0x1c01f000, 0x00100409, 0x001004a3, 0x001004c8,
- 0x00100576, 0x60380938, 0x050df9a7, 0x90040550,
- 0x82000500, 0xfffffff7, 0x60380938, 0x050df9a7,
- 0x59c410a3, 0x84081518, 0x480b88a3, 0x0521fd03,
- 0x05020021, 0x599c0019, 0x82000500, 0x0000e000,
- 0x82000580, 0x00004000, 0x0502001b, 0x59a808a5,
- 0x90040d07, 0x90040580, 0x0502000b, 0x59a80069,
- 0x90000582, 0x05000011, 0x050df8ea, 0x497b5068,
- 0x050dfce9, 0x640f5076, 0x640b5069, 0x64075075,
- 0x0501f00a, 0x90040584, 0x05020008, 0x497b2804,
- 0x497b2805, 0x050dfcef, 0x64075075, 0x4a035076,
- 0xaabbccdd, 0x64135069, 0x59a800a5, 0x80000000,
- 0x480350a5, 0x60000001, 0x0509fe4e, 0x0539fbd6,
- 0x59c408a3, 0x82040d00, 0xfffffff7, 0x480788a3,
- 0x052dfc78, 0x0500000d, 0x052dfc82, 0x0500000b,
- 0x052dfc7a, 0x05020999, 0x59c400a3, 0x84000532,
- 0x84000570, 0x480388a3, 0x052dffa3, 0x4a038808,
- 0x00000208, 0x0501f012, 0x59c400a3, 0x84000530,
- 0x82000500, 0xbf7fffff, 0x480388a3, 0x61e00801,
- 0x0525fd72, 0x59c400a3, 0x82000540, 0x00018000,
- 0x8400051c, 0x480388a3, 0x82000500, 0xfffeffff,
- 0x480388a3, 0x4a038808, 0x00000200, 0x59c40006,
- 0x82000500, 0xfbffff0e, 0x48038806, 0x497b282c,
- 0x497b282d, 0x61d00803, 0x42001000, 0x00100590,
- 0x0539fa3c, 0x59c40805, 0x64078805, 0x0509fefb,
- 0x05020006, 0x60040000, 0x050df8db, 0x60040000,
- 0x050df8a9, 0x0501f01e, 0x0509fefa, 0x05020006,
- 0x41780000, 0x050df8d4, 0x41780000, 0x050df8a2,
- 0x0501f017, 0x0509fef9, 0x05020006, 0x60080000,
- 0x050df8cd, 0x60080000, 0x050df89b, 0x0501f010,
- 0x0509fef8, 0x05020006, 0x600c0000, 0x050df8c6,
- 0x600c0000, 0x050df894, 0x0501f009, 0x0509fef7,
- 0x05020956, 0x59a80075, 0x800001c0, 0x05000004,
- 0x0509fef7, 0x6407506a, 0x0501f018, 0x050df914,
- 0x6407506a, 0x052dfc27, 0x05000008, 0x052dfc31,
- 0x05000006, 0x052dfc29, 0x05020948, 0x64075042,
- 0x052dfb9d, 0x0501f00d, 0x59c400a4, 0x9000050f,
- 0x90000588, 0x05000003, 0x4a038805, 0x04000000,
- 0x59c400a3, 0x82000540, 0x0001c000, 0x480388a3,
- 0x84000520, 0x480388a3, 0x1c01f000, 0x0501f8e9,
- 0x05020003, 0x640f506a, 0x0501f021, 0x0509fed3,
- 0x0502000d, 0x59a80075, 0x800001c0, 0x0500000a,
- 0x0509fed3, 0x59a80074, 0x8c00051e, 0x05000018,
- 0x052dfc0a, 0x05020006, 0x64075042, 0x052dfb7e,
- 0x0501f003, 0x050df8be, 0x05020011, 0x050df855,
- 0x640b506a, 0x497b5075, 0x59c400a3, 0x84000520,
- 0x480388a3, 0x052dfbfd, 0x05000009, 0x0521fc57,
- 0x05000007, 0x497b282c, 0x497b282d, 0x60b40800,
- 0x42001000, 0x00100590, 0x0539f9da, 0x1c01f000,
- 0x0501f8c4, 0x05020003, 0x640f506a, 0x0501f0a9,
- 0x4a038805, 0x000000f0, 0x050df8a5, 0x050200a0,
- 0x050dfab0, 0x05000017, 0x050dfa95, 0x05020015,
- 0x050dfa9e, 0x0502000a, 0x59a80076, 0x90000584,
- 0x05fc07f2, 0x0509fe9b, 0x0502000e, 0x59a80076,
- 0x82000580, 0xaabbccdd, 0x05fc07ec, 0x59a80076,
- 0x90000580, 0x05fc07e9, 0x0509fe80, 0x05020005,
- 0x59a80076, 0x82000580, 0xaabbccdd, 0x05fc07e3,
- 0x59a800a7, 0x8c000500, 0x0502000b, 0x59a80884,
- 0x8c04050c, 0x05020008, 0x60380938, 0x050df8c2,
- 0x90040548, 0x82000500, 0xffffffef, 0x60380938,
- 0x050df8c2, 0x050dfa8b, 0x05000032, 0x0521fe5a,
- 0x0500000c, 0x4a03c014, 0x00200020, 0x59c40001,
- 0x82000500, 0x00018000, 0x82000580, 0x00018000,
- 0x05020026, 0x4a03c013, 0x00200020, 0x0501f025,
- 0x4a03c013, 0x03800300, 0x4a03c014, 0x03800380,
+ 0x00000000, 0x00000000, 0x00000009, 0x0000000c,
+ 0x0000000f, 0x00000012, 0x00000015, 0x00000000,
+ 0x00000000, 0x0000000f, 0x00000000, 0x00000000,
+ 0x00000000, 0x00100046, 0x00100045, 0x00000000,
+ 0x00100046, 0x00000000, 0x00000000, 0x00100046,
+ 0x00100045, 0x00100042, 0x00100046, 0x00100045,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00100046, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00100046,
+ 0x00100046, 0x00100046, 0x00000000, 0x00100046,
+ 0x00000000, 0x00000000, 0x00000000, 0x4203f000,
+ 0x00021fff, 0x40000000, 0x4203e000, 0x90000100,
+ 0x40000000, 0x42000800, 0x000211e8, 0x6002f000,
+ 0x608c00e0, 0x50000000, 0x8c000500, 0x05020003,
+ 0x42000800, 0x00020000, 0x45780800, 0x80040800,
+ 0x82040580, 0x00022000, 0x05fe07fc, 0x4178a000,
+ 0x4200a800, 0x0010daa9, 0x42000800, 0x00115aa4,
+ 0x40540000, 0x8004b480, 0x0569ffa4, 0x0501ffd3,
+ 0x600c6020, 0x50304800, 0x8c240500, 0x0500001c,
+ 0x59e00016, 0x8c000504, 0x05020019, 0x0569fffb,
+ 0x604808fa, 0x50041000, 0x82081500, 0xfffffffc,
+ 0x90081d43, 0x90081540, 0x84244d00, 0x440c0800,
+ 0x44080800, 0x44246000, 0x64030000, 0x4203e000,
+ 0x70000000, 0x4203e000, 0xb0300000, 0x603ff84e,
+ 0x59e00016, 0x8c000504, 0x05020002, 0x05fe47fd,
+ 0x84244d40, 0x44246000, 0x0569ffe4, 0x64030000,
+ 0x0501fdf7, 0x4803c856, 0x0509fc3e, 0x6413c020,
+ 0x4203e000, 0x6000000f, 0x640f70e8, 0x640f78e8,
+ 0x640da8e8, 0x59e00023, 0x8c000500, 0x0502002b,
+ 0x42002800, 0x00100022, 0x58140800, 0x4817c857,
+ 0x4807c857, 0x800409c0, 0x0500000a, 0x58142002,
+ 0x4813c857, 0x58141003, 0x4c140000, 0x0501ff92,
+ 0x5c002800, 0x0502003d, 0x90142c04, 0x05fdf7f3,
+ 0x42002800, 0x00100022, 0x5814a000, 0x4817c857,
+ 0x4853c857, 0x8050a1c0, 0x05000014, 0x4c140000,
+ 0x5814a801, 0x4857c857, 0x40500000, 0x80540480,
+ 0x0500000b, 0x82540480, 0x0000400e, 0x05020005,
+ 0x9050a404, 0x0509ffd2, 0x05020028, 0x0501f004,
+ 0x5814b002, 0x485bc857, 0x0569ff48, 0x5c002800,
+ 0x90142c04, 0x05fdf7e9, 0x050dfe4a, 0x42001000,
+ 0x7ff481fe, 0x59e00002, 0x8c00051e, 0x05020003,
+ 0x42001000, 0x7ff480fe, 0x50081000, 0x480b5095,
+ 0x42002800, 0x00100022, 0x58140801, 0x4817c857,
+ 0x4807c857, 0x800409c0, 0x05000023, 0x58142002,
+ 0x4813c857, 0x58141003, 0x4c140000, 0x82040480,
+ 0x0000400e, 0x05020004, 0x0509ffdc, 0x4803c856,
+ 0x0501f003, 0x0501ff58, 0x05020004, 0x5c002800,
+ 0x90142c04, 0x05fdf7ed, 0x4803c856, 0x4a03c020,
+ 0x00004010, 0x4a03c011, 0x40100011, 0x05006000,
+ 0x4203e000, 0x40000000, 0x59e00017, 0x60000800,
+ 0x8c00050a, 0x050a0e38, 0x8d0c0530, 0x050a0e2b,
+ 0x050a0e2d, 0x6403c017, 0x4203e000, 0x30000001,
+ 0x0501f000, 0x4803c856, 0x59e00024, 0x8c000500,
+ 0x050a0f7a, 0x59e00024, 0x8c00050e, 0x05000003,
+ 0x4a020200, 0x00003800, 0x0501ffd3, 0x4a03c014,
+ 0x001c001c, 0x4817c857, 0x0505f801, 0x42002000,
+ 0x00115aa4, 0x0569ff10, 0x59a800a4, 0x800001c0,
+ 0x0500000c, 0x59a800cf, 0x8c000500, 0x05000005,
+ 0x59a8000a, 0x82000480, 0x0013ffff, 0x05001005,
+ 0x59a820a4, 0x80102000, 0x59a8280a, 0x0569ff02,
+ 0x056df92b, 0x056df953, 0x59a8280a, 0x60800812,
+ 0x60001802, 0x4807503d, 0x480f529f, 0x900d0420,
+ 0x800404a0, 0x4803543e, 0x60c01000, 0x0541faf0,
+ 0x82040c00, 0x00115aa4, 0x4807500b, 0x600400de,
+ 0x50000000, 0x8c000502, 0x05000004, 0x59a800cf,
+ 0x84000540, 0x480350cf, 0x4a03c810, 0x00100000,
+ 0x4a03c811, 0x0010daa9, 0x0501ff96, 0x6447c829,
+ 0x59e40001, 0x82000540, 0x0003401f, 0x4803c801,
+ 0x4a03c802, 0x00000933, 0x59e00003, 0x82000540,
+ 0x00240000, 0x4803c003, 0x64ffc019, 0x60701000,
+ 0x0501fedd, 0x4202c000, 0x00115aa4, 0x42017800,
+ 0x00115aa4, 0x59aab00b, 0x59aaa00b, 0x59aaa80b,
+ 0x59aac83d, 0x4967509e, 0x496754e2, 0x59a8000b,
+ 0x4803500c, 0x0505f802, 0x0549ff51, 0x0505f80b,
+ 0x0505f898, 0x0509fff9, 0x59a80087, 0x8c000508,
+ 0x05000004, 0x050dff0c, 0x0525f9f0, 0x0511f83c,
+ 0x0505f9e7, 0x0509f81c, 0x0541faf7, 0x0501fc59,
+ 0x0515f887, 0x0531fdd5, 0x052dff41, 0x053df8ea,
+ 0x050df82a, 0x0509fe4d, 0x4203e000, 0xf0000001,
+ 0x056df915, 0x6403c018, 0x4203e000, 0xa0000001,
+ 0x59a800cf, 0x80000540, 0x05000004, 0x4203e000,
+ 0x20000551, 0x0501f003, 0x4203e000, 0x20000511,
+ 0x4203e000, 0x50010000, 0x6403c020, 0x05027019,
+ 0x59e00020, 0x90000582, 0x05020016, 0x4a03c020,
+ 0x00004000, 0x4a03c011, 0x40000010, 0x05006000,
+ 0x4203e000, 0x40000000, 0x4df00000, 0x4203e000,
+ 0x50000000, 0x59e00017, 0x60000800, 0x8c00050a,
+ 0x0002089a, 0x8d0c0530, 0x050a0d98, 0x000209c4,
+ 0x5c03e000, 0x6403c017, 0x4203e000, 0x30000001,
+ 0x6002d800, 0x4203e000, 0xb0600000, 0x59a800da,
+ 0x4003f800, 0x0001f004, 0x4df00000, 0x4203e000,
+ 0x50000000, 0x416c0000, 0x90000c88, 0x05021c66,
+ 0x0c01f803, 0x5c03e000, 0x0001f006, 0x001001bc,
+ 0x001001cd, 0x001002f2, 0x001001bb, 0x00100431,
+ 0x001001bb, 0x001001bb, 0x001005c9, 0x0501fc5a,
+ 0x42000800, 0x00111c71, 0x5804001e, 0x8c000500,
+ 0x0500000c, 0x84000500, 0x4800081e, 0x6012d800,
+ 0x0501fe69, 0x49f3c857, 0x5c000800, 0x5c000000,
+ 0x82000540, 0x00007e20, 0x4c000000, 0x4c040000,
+ 0x1c01f000, 0x41780000, 0x800001c0, 0x05020039,
+ 0x59c4000d, 0x8c00051e, 0x0502001f, 0x59a800aa,
+ 0x8c000500, 0x05000012, 0x60300830, 0x050dfc5a,
+ 0x90040560, 0x60300830, 0x4c000000, 0x050dfc5b,
+ 0x6041d04e, 0x053dfa93, 0x5c000000, 0x8400050a,
+ 0x60300830, 0x050dfc55, 0x6191d000, 0x053dfa8d,
+ 0x59c4000d, 0x8c00051e, 0x0502000b, 0x59c40005,
+ 0x8c000500, 0x05020008, 0x050dffe3, 0x640b50b9,
+ 0x64075078, 0x6012d800, 0x42000000, 0x00112462,
+ 0x0569f56a, 0x0501fe35, 0x0531f9a6, 0x0500000f,
+ 0x0531f9b6, 0x05020032, 0x5994002e, 0x82000580,
+ 0x001053a5, 0x05020004, 0x5994002d, 0x800001c0,
+ 0x0502002b, 0x59c40006, 0x82000540, 0x000000c0,
+ 0x48038806, 0x0501f026, 0x0531f913, 0x916c0581,
+ 0x050200c5, 0x59a80042, 0x90000589, 0x050200c2,
+ 0x497b5040, 0x42000800, 0xffffd815, 0x0511fd66,
+ 0x42024800, 0x001124b6, 0x497a4805, 0x64078893,
+ 0x4a038805, 0x000000f0, 0x0531f992, 0x59c41006,
+ 0x05020006, 0x82081540, 0x000000f1, 0x82081500,
+ 0xbbffffff, 0x0501f003, 0x82081540, 0x440000f1,
+ 0x480b8806, 0x053dfa5b, 0x0541fff8, 0x0501f8ab,
+ 0x050000a9, 0x42000000, 0x0011233c, 0x0569fd34,
+ 0x60c01100, 0x497b50b7, 0x0501f036, 0x0525fb72,
+ 0x59c400a4, 0x9000050f, 0x90000487, 0x0502109e,
+ 0x053dfa4c, 0x59c400a3, 0x82000500, 0xffefffff,
+ 0x480388a3, 0x59a800c2, 0x800001c0, 0x05020003,
+ 0x0529f8c5, 0x0501f094, 0x59a80046, 0x84000546,
+ 0x48035046, 0x0531f965, 0x59c41006, 0x05020006,
+ 0x82081540, 0x44000001, 0x82081500, 0xffffff0f,
+ 0x0501f003, 0x82081540, 0x440000f1, 0x480b8806,
+ 0x497b9005, 0x0501f885, 0x05000083, 0x60000000,
+ 0x052dfeec, 0x4a038802, 0x0000ffff, 0x4a0378e4,
+ 0x00003000, 0x42007000, 0x00111ffa, 0x58380401,
+ 0x8c000508, 0x05020003, 0x4a01a8e4, 0x0000c000,
+ 0x42000000, 0x00112333, 0x0569fd01, 0x59a81040,
+ 0x600c0800, 0x0541ffa6, 0x60401100, 0x59a81809,
+ 0x0521ff1d, 0x59a804d1, 0x82000500, 0xffffff40,
+ 0x480354d1, 0x59a8024c, 0x84000518, 0x4803524c,
0x59c40001, 0x82000500, 0x00018000, 0x82000580,
- 0x00018000, 0x0502000c, 0x60880801, 0x61d81000,
- 0x60201800, 0x0521fe44, 0x050008c8, 0x60880801,
- 0x61b81000, 0x60201800, 0x0521fe3f, 0x050008c3,
- 0x0501f00b, 0x60880801, 0x61d81000, 0x60201800,
- 0x0521fe47, 0x050008bd, 0x60880801, 0x61b81000,
- 0x60201800, 0x0521fe42, 0x050008b8, 0x4a03c014,
- 0x03800000, 0x0501f003, 0x4a03c013, 0x00200000,
- 0x052dfb92, 0x0500003d, 0x59c400a4, 0x9000050f,
- 0x90000588, 0x05000021, 0x59c40005, 0x8c000534,
- 0x0502001e, 0x5994002e, 0x800001c0, 0x05000007,
- 0x0501fae3, 0x90000402, 0x5994082c, 0x80040480,
- 0x0502103c, 0x0501f004, 0x5994002c, 0x90000482,
- 0x05021038, 0x052dfb83, 0x05020036, 0x4a038805,
- 0x000000f0, 0x052dfbad, 0x4a035041, 0x0000aaaa,
- 0x64035042, 0x59c408a3, 0x90040d48, 0x480788a3,
- 0x6006d800, 0x6403506a, 0x64078805, 0x497b282c,
- 0x497b282d, 0x0501f019, 0x052dfb72, 0x05020007,
- 0x59a80041, 0x82000580, 0x0000aaaa, 0x05020003,
- 0x4a03503d, 0x00ffffff, 0x497b5041, 0x59c40006,
- 0x82000540, 0x04000001, 0x48038806, 0x8d0c0506,
- 0x05020004, 0x59c408a3, 0x90040d48, 0x480788a3,
- 0x6006d800, 0x6403506a, 0x64078805, 0x497b282c,
- 0x497b282d, 0x0501f00f, 0x59c40005, 0x82000500,
- 0x000000c0, 0x0500000b, 0x59c40006, 0x82000540,
- 0x000000f1, 0x48038806, 0x05fdf7f2, 0x0509fe0b,
- 0x05020004, 0x59a80075, 0x800001c0, 0x05fe0757,
- 0x497b8885, 0x1c01f000, 0x4803c856, 0x0521fb9f,
- 0x05020005, 0x050dfbc2, 0x42000000, 0x0010e4bf,
- 0x0565fa63, 0x60000001, 0x0509fd06, 0x6403506a,
- 0x0509fdfa, 0x05020009, 0x59a80068, 0x800001c0,
- 0x05000004, 0x80000040, 0x48035068, 0x05020003,
- 0x642b5068, 0x64075075, 0x497b8885, 0x0501f22c,
- 0x5994002c, 0x5994082d, 0x80040540, 0x1c01f000,
- 0x497b282d, 0x1c01f000, 0x4a038805, 0x000000f0,
- 0x1c01f000, 0x641f5093, 0x640f5094, 0x64035095,
- 0x4a035096, 0x000090d5, 0x052dfe64, 0x4a035449,
- 0x0000ffff, 0x4a03503d, 0x00ffffff, 0x0555fad7,
- 0x4a03504d, 0x20200000, 0x4a03504e, 0x88000200,
- 0x4a03504f, 0x00ff001f, 0x4a035050, 0x000007d0,
- 0x4a035051, 0x80000a00, 0x4a035052, 0xa0000200,
- 0x4a035053, 0x00ff0004, 0x4a035054, 0x00010000,
- 0x4a035055, 0x80000000, 0x4a035056, 0x00000200,
- 0x4a035057, 0x00ff0000, 0x4a035058, 0x00010000,
- 0x4a03505f, 0x514c4f47, 0x4a035060, 0x49432020,
- 0x1c01f000, 0x4d440000, 0x417a8800, 0x4c5c0000,
- 0x4178b800, 0x0001fb00, 0x05020004, 0x0529fc62,
- 0x05020002, 0x805cb800, 0x81468800, 0x83440580,
- 0x000007f0, 0x05fe07f8, 0x405c0800, 0x5c00b800,
- 0x5c028800, 0x1c01f000, 0x4803c857, 0x5c000000,
- 0x4c000000, 0x4803c857, 0x0501f808, 0x485fc857,
- 0x4203e000, 0x50000000, 0x5c000000, 0x4d780000,
- 0x6008b900, 0x0501f005, 0x485fc857, 0x4203e000,
- 0x50000000, 0x6008b900, 0x05006000, 0x4c000000,
- 0x4c040000, 0x59bc00ea, 0x4803c857, 0x90000507,
- 0x90000581, 0x05020003, 0x60000800, 0x053dff51,
- 0x59b800ea, 0x4803c857, 0x641370e8, 0x5c000800,
- 0x4807c025, 0x80040920, 0x4807c026, 0x5c000000,
- 0x4803c023, 0x80000120, 0x4803c024, 0x5c000000,
- 0x4803c857, 0x4803c021, 0x80000120, 0x4803c022,
- 0x41f80000, 0x4803c029, 0x80000120, 0x4803c02a,
- 0x41780800, 0x4807c027, 0x59a800af, 0x8c00050a,
- 0x05000005, 0x59e00027, 0x8400054a, 0x4803c857,
- 0x4803c027, 0x0565fafa, 0x0500004a, 0x42000800,
- 0x001105c8, 0x46000800, 0xfaceface, 0x80040800,
- 0x4c080000, 0x4c0c0000, 0x600010f4, 0x58080013,
- 0x44000800, 0x80040800, 0x58080022, 0x44000800,
- 0x80040800, 0x58080023, 0x44000800, 0x80040800,
- 0x58080024, 0x44000800, 0x80040800, 0x58080025,
- 0x44000800, 0x80040800, 0x58080028, 0x44000800,
- 0x80040800, 0x610010f4, 0x602c1800, 0x50080000,
- 0x44000800, 0x80081000, 0x80040800, 0x800c1840,
- 0x05fe07fb, 0x600c1800, 0x600010f6, 0x480c1003,
- 0x58080005, 0x44000800, 0x80040800, 0x800c1840,
- 0x05fe17fb, 0x600010f8, 0x58080002, 0x44000800,
- 0x80040800, 0x58080003, 0x44000800, 0x80040800,
- 0x58080020, 0x44000800, 0x80040800, 0x58080021,
- 0x44000800, 0x80040800, 0x58080022, 0x44000800,
- 0x80040800, 0x58080023, 0x44000800, 0x80040800,
- 0x600010f6, 0x58080007, 0x44000800, 0x80040800,
- 0x5808002b, 0x44000800, 0x80040800, 0x5808007c,
- 0x44000800, 0x80040800, 0x5c001800, 0x5c001000,
- 0x64030000, 0x485fc020, 0x905cb9c0, 0x905cbd52,
- 0x485fc011, 0x4203e000, 0x40000000, 0x6016d800,
- 0x59e00017, 0x60000800, 0x8c00050a, 0x050a0875,
- 0x8d0c0530, 0x050a0868, 0x050a086a, 0x6403c017,
- 0x4203e000, 0x30000001, 0x0501f956, 0x05fdf7ff,
- 0x60100000, 0x0501f80c, 0x4a03c855, 0x0001eb5a,
- 0x59e40001, 0x82000540, 0xff000700, 0x4803c801,
- 0x42000000, 0x0010e4e5, 0x49780003, 0x49780004,
- 0x1c01f000, 0x42000800, 0x0010e4e7, 0x44000800,
- 0x59e40801, 0x82041500, 0x00f3c0ff, 0x480bc801,
- 0x8c040524, 0x0500000b, 0x4c000000, 0x59e41052,
- 0x59e40054, 0x800000d4, 0x82000400, 0x00110772,
- 0x80081480, 0x480bc853, 0x6503c800, 0x5c000000,
- 0x4a03c850, 0x00110772, 0x800000d4, 0x82002400,
- 0x00110771, 0x4813c851, 0x4a03c853, 0x00000400,
- 0x42000000, 0x00110772, 0x82001400, 0x00001000,
- 0x45780000, 0x80000000, 0x80081d80, 0x05fe07fd,
- 0x4807c801, 0x1c01f000, 0x42002000, 0x0010e4e5,
- 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, 0x0010e4e5,
- 0x58142017, 0x5814000d, 0x80100400, 0x445c0000,
- 0x80102000, 0x80000000, 0x82104d00, 0x000000ff,
- 0x050008a9, 0x0500001c, 0x4c000000, 0x0501f890,
- 0x5c000000, 0x44080000, 0x80102000, 0x80000000,
- 0x82104d00, 0x000000ff, 0x0500089f, 0x05000012,
- 0x44600000, 0x80102000, 0x80000000, 0x82104d00,
- 0x000000ff, 0x05000898, 0x0500000b, 0x44640000,
- 0x80102000, 0x80000000, 0x82104d00, 0x000000ff,
- 0x05000891, 0x05000004, 0x48102817, 0x802041c0,
- 0x05060d32, 0x5c00c800, 0x5c00c000, 0x5c00b800,
+ 0x00018000, 0x59c400a3, 0x05020004, 0x82000540,
+ 0x00001000, 0x0501f003, 0x82000500, 0xffffefff,
+ 0x480388a3, 0x59c80015, 0x84000548, 0x48039015,
+ 0x050dfb18, 0x59a81008, 0x84081500, 0x480b5008,
+ 0x850e1d0a, 0x0529ffc1, 0x0531f91e, 0x05000007,
+ 0x8d0c0506, 0x05000005, 0x640750b7, 0x850e1d0e,
+ 0x0525fc3b, 0x0501f048, 0x052df8c8, 0x05000005,
+ 0x59c41002, 0x8408150c, 0x480b8802, 0x0501f017,
+ 0x0531f910, 0x05020005, 0x59a80049, 0x80000540,
+ 0x05580b82, 0x0501f011, 0x0559fb80, 0x59a8024c,
+ 0x8c000506, 0x0502000d, 0x59a80049, 0x80000540,
+ 0x05020007, 0x59a81c4c, 0x820c0580, 0x0000ffff,
+ 0x05000006, 0x8c0c0508, 0x05000004, 0x4a03544c,
+ 0x0000ffff, 0x0529f978, 0x497b504e, 0x497b504d,
+ 0x497b50b8, 0x0531f8f7, 0x59a8124c, 0x05020009,
+ 0x050df90a, 0x80001580, 0x59a80050, 0x82000500,
+ 0xffff0000, 0x80040d40, 0x48075050, 0x0501f005,
+ 0x59a80050, 0x82000500, 0xffff0000, 0x48035050,
+ 0x599c0017, 0x8c00050a, 0x05000002, 0x84081544,
+ 0x480b524c, 0x0531f8e3, 0x05000003, 0x050df8f7,
+ 0x48078880, 0x60141000, 0x0545fc39, 0x497b504e,
+ 0x497b5047, 0x4a035048, 0x0000ffff, 0x4a01a8e4,
+ 0x000000c0, 0x600ad800, 0x0531f8d6, 0x05000005,
+ 0x59a8024c, 0x9000050c, 0x90000584, 0x05000002,
+ 0x0511fa95, 0x1c01f000, 0x0521fff2, 0x05020026,
+ 0x599c0019, 0x82000500, 0x0000e000, 0x82000580,
+ 0x00004000, 0x05020020, 0x59c40001, 0x82000d00,
+ 0x00018000, 0x82040580, 0x00010000, 0x05000004,
+ 0x82040580, 0x00008000, 0x05020017, 0x59a800a9,
+ 0x90000483, 0x05001003, 0x90000541, 0x0501f012,
+ 0x050dfebc, 0x64075078, 0x4a035079, 0xaabbccdd,
+ 0x6413506c, 0x6403506d, 0x6012d800, 0x59a800a9,
+ 0x80000000, 0x480350a9, 0x59a800a8, 0x82000500,
+ 0xfffffff8, 0x90000544, 0x480350a8, 0x0501fd3e,
+ 0x80000580, 0x1c01f000, 0x0525f9c7, 0x05000051,
+ 0x59a8024c, 0x90000523, 0x900005a3, 0x0502004d,
+ 0x0525f9c6, 0x0500004b, 0x4a038802, 0x0000ffbf,
+ 0x59a804d1, 0x8c00050c, 0x05020132, 0x8c000506,
+ 0x0502000b, 0x8c000508, 0x0502012e, 0x84000548,
+ 0x480354d1, 0x0525f9be, 0x05000004, 0x417a5800,
+ 0x055dfa2c, 0x0501f127, 0x0501f0ee, 0x8c00050a,
+ 0x05020038, 0x8400054a, 0x480354d1, 0x497b504e,
+ 0x497b504d, 0x497b5047, 0x4a035048, 0x0000ffff,
+ 0x59a8024c, 0x82000500, 0xffffff7c, 0x4803524c,
+ 0x42024800, 0x001124b6, 0x59240200, 0x82000500,
+ 0xffffff1f, 0x48024a00, 0x59a802d1, 0x5924100b,
+ 0x82081500, 0x00001fff, 0x80080580, 0x05000012,
+ 0x4d3c0000, 0x4d300000, 0x4d400000, 0x60aa8000,
+ 0x417a6000, 0x600a7800, 0x41780800, 0x0511fcbe,
+ 0x5c028000, 0x5c026000, 0x5c027800, 0x59a802d1,
+ 0x5924080b, 0x82040d00, 0xffffe000, 0x80040540,
+ 0x4802480b, 0x4d300000, 0x417a6000, 0x0511fc5f,
+ 0x5c026000, 0x4803c856, 0x5924000c, 0x800001c0,
+ 0x05020006, 0x0001f81f, 0x050000f2, 0x492e480c,
+ 0x5924000b, 0x48025802, 0x0511fa1b, 0x0501f0ed,
+ 0x59a80048, 0x82000580, 0x0000ffff, 0x05000003,
+ 0x0511fa15, 0x0501f0e7, 0x0569fd46, 0x05000017,
+ 0x0569fd49, 0x05000008, 0x0531f84a, 0x05000006,
+ 0x59a8024c, 0x8c000506, 0x0500004e, 0x0529fff7,
+ 0x050200dc, 0x80000580, 0x0509ffae, 0x600ed800,
+ 0x4a035048, 0x0000ffff, 0x4a01a8e4, 0x00000080,
+ 0x4a038802, 0x0000ffff, 0x850e1d02, 0x0545f9f5,
+ 0x0501fcb4, 0x0501f0cf, 0x59a8024c, 0x8c00050a,
+ 0x05020003, 0x8c000506, 0x05000037, 0x8c000500,
+ 0x05000035, 0x4a038802, 0x0000ffbf, 0x8c000502,
+ 0x05000031, 0x0525f951, 0x05020004, 0x599c0018,
+ 0x8c000516, 0x05020029, 0x59a8004d, 0x82000580,
+ 0x0000ffff, 0x05000020, 0x0525f948, 0x05000006,
+ 0x59a804d1, 0x8c000500, 0x05000003, 0x0511fc9b,
+ 0x0501f008, 0x41781800, 0x0569fd23, 0x05000002,
+ 0x60401800, 0x59a8024c, 0x8c00050a, 0x05120af3,
+ 0x42024800, 0x001124b6, 0x417a4000, 0x59240200,
+ 0x82000500, 0x000000e0, 0x82000580, 0x000000e0,
+ 0x050200a4, 0x050dff8c, 0x59a8024c, 0x8c000504,
+ 0x050200a0, 0x600c1000, 0x417a5800, 0x050dffab,
+ 0x0501f09c, 0x59a8024c, 0x8c00051c, 0x05020003,
+ 0x8c000504, 0x05fc07f8, 0x59a8004e, 0x80000540,
+ 0x05020094, 0x59a8024c, 0x8c000508, 0x05020017,
+ 0x59a80047, 0x80000540, 0x0502008e, 0x59a8024c,
+ 0x8c00050e, 0x0500000c, 0x8c000502, 0x0502000a,
+ 0x052dfff0, 0x05000087, 0x82000500, 0xffffff77,
+ 0x4803524c, 0x4a035048, 0x0000ffff, 0x0511f9ae,
+ 0x0501f080, 0x0569fcf0, 0x0500000c, 0x0511fd3c,
+ 0x0502007c, 0x0501f009, 0x599c1819, 0x8c0c0510,
+ 0x05000004, 0x8c000502, 0x05020021, 0x0501f075,
+ 0x8c000516, 0x05000073, 0x0529ff8c, 0x05020071,
+ 0x0525f8fe, 0x05020004, 0x599c0018, 0x8c000516,
+ 0x05020003, 0x052dfbaf, 0x0502006a, 0x59a80006,
+ 0x8c00051c, 0x05020004, 0x599c0017, 0x8c00050a,
+ 0x0500000f, 0x59a8b0ac, 0x417a8800, 0x0001fb08,
+ 0x05020004, 0x59340200, 0x8c00051a, 0x0502005d,
+ 0x81468800, 0x83440580, 0x000007f0, 0x05020002,
+ 0x60028810, 0x8058b040, 0x05fe07f5, 0x0569fce7,
+ 0x05000004, 0x4a038802, 0x0000ffbf, 0x0501f003,
+ 0x4a038802, 0x0000ffff, 0x42001800, 0x00111ce0,
+ 0x0501fd73, 0x42001800, 0x00111ced, 0x0501fd70,
+ 0x850e1d02, 0x4a01a8e4, 0x00000080, 0x600ed800,
+ 0x4a035048, 0x0000ffff, 0x0501fc26, 0x80000580,
+ 0x0509ff14, 0x497b50a9, 0x6407507b, 0x0525f8cb,
+ 0x0502000b, 0x599c0018, 0x8c000516, 0x05000008,
+ 0x59a804d1, 0x8c00050e, 0x05020036, 0x8400054e,
+ 0x480354d1, 0x0521fe46, 0x0501f016, 0x59a81a4c,
+ 0x59a82044, 0x82102580, 0x0000aaaa, 0x05000004,
+ 0x8c0c0506, 0x05020002, 0x480f544c, 0x8c0c0508,
+ 0x05000007, 0x599c1819, 0x8c0c0510, 0x05000004,
+ 0x61f8180f, 0x60102000, 0x0501f003, 0x61fc19ff,
+ 0x60182000, 0x60003000, 0x417a4000, 0x0521fdd2,
+ 0x052dff96, 0x0500000a, 0x59c40006, 0x052dff81,
+ 0x05000004, 0x82000500, 0xffffff0f, 0x0501f003,
+ 0x82000500, 0xfbffffff, 0x48038806, 0x0525f89f,
+ 0x0500000a, 0x59a804d1, 0x8c000500, 0x05000007,
+ 0x59c40801, 0x82040d40, 0x00004000, 0x48078801,
+ 0x64c378e4, 0x0501f006, 0x59c40801, 0x82040d00,
+ 0xffffbfff, 0x48078801, 0x648378e4, 0x0545f925,
+ 0x1c01f000, 0x4c040000, 0x4c080000, 0x4c100000,
+ 0x59a8006d, 0x90000c84, 0x050219df, 0x0c01f805,
+ 0x5c002000, 0x5c001000, 0x5c000800, 0x1c01f000,
+ 0x00100440, 0x001004da, 0x001004ff, 0x001005ad,
+ 0x60380938, 0x050df9f0, 0x90040550, 0x82000500,
+ 0xfffffff7, 0x60380938, 0x050df9f0, 0x59c410a3,
+ 0x84081518, 0x480b88a3, 0x0521fe72, 0x05020021,
+ 0x599c0019, 0x82000500, 0x0000e000, 0x82000580,
+ 0x00004000, 0x0502001b, 0x59a808a8, 0x90040d07,
+ 0x90040580, 0x0502000b, 0x59a8006c, 0x90000582,
+ 0x05000011, 0x050df933, 0x497b506b, 0x050dfd32,
+ 0x640f5079, 0x640b506c, 0x64075078, 0x0501f00a,
+ 0x90040584, 0x05020008, 0x497b2804, 0x497b2805,
+ 0x050dfd38, 0x64075078, 0x4a035079, 0xaabbccdd,
+ 0x6413506c, 0x59a800a8, 0x80000000, 0x480350a8,
+ 0x60000001, 0x0509fe97, 0x053df80a, 0x59c408a3,
+ 0x82040d00, 0xfffffff7, 0x480788a3, 0x052dff2b,
+ 0x0500000d, 0x052dff35, 0x0500000b, 0x052dff2d,
+ 0x0502099d, 0x59c400a3, 0x84000532, 0x84000570,
+ 0x480388a3, 0x0531fa5c, 0x4a038808, 0x00000208,
+ 0x0501f012, 0x59c400a3, 0x84000530, 0x82000500,
+ 0xbf7fffff, 0x480388a3, 0x61e00801, 0x0525ff32,
+ 0x59c400a3, 0x82000540, 0x00018000, 0x8400051c,
+ 0x480388a3, 0x82000500, 0xfffeffff, 0x480388a3,
+ 0x4a038808, 0x00000200, 0x59c40006, 0x82000500,
+ 0xfbffff0e, 0x48038806, 0x497b282d, 0x497b282e,
+ 0x61d00803, 0x42001000, 0x001005c7, 0x0539fe1f,
+ 0x59c40805, 0x64078805, 0x0509ff44, 0x05020006,
+ 0x60040000, 0x050df924, 0x60040000, 0x050df8f2,
+ 0x0501f01e, 0x0509ff43, 0x05020006, 0x41780000,
+ 0x050df91d, 0x41780000, 0x050df8eb, 0x0501f017,
+ 0x0509ff42, 0x05020006, 0x60080000, 0x050df916,
+ 0x60080000, 0x050df8e4, 0x0501f010, 0x0509ff41,
+ 0x05020006, 0x600c0000, 0x050df90f, 0x600c0000,
+ 0x050df8dd, 0x0501f009, 0x0509ff40, 0x0502095a,
+ 0x59a80078, 0x800001c0, 0x05000004, 0x0509ff40,
+ 0x6407506d, 0x0501f018, 0x050df95d, 0x6407506d,
+ 0x052dfeda, 0x05000008, 0x052dfee4, 0x05000006,
+ 0x052dfedc, 0x0502094c, 0x64075045, 0x052dfe4a,
+ 0x0501f00d, 0x59c400a4, 0x9000050f, 0x90000588,
+ 0x05000003, 0x4a038805, 0x04000000, 0x59c400a3,
+ 0x82000540, 0x0001c000, 0x480388a3, 0x84000520,
+ 0x480388a3, 0x1c01f000, 0x0501f8e9, 0x05020003,
+ 0x640f506d, 0x0501f021, 0x0509ff1c, 0x0502000d,
+ 0x59a80078, 0x800001c0, 0x0500000a, 0x0509ff1c,
+ 0x59a80077, 0x8c00051e, 0x05000018, 0x052dfebd,
+ 0x05020006, 0x64075045, 0x052dfe2b, 0x0501f003,
+ 0x050df907, 0x05020011, 0x050df89e, 0x640b506d,
+ 0x497b5078, 0x59c400a3, 0x84000520, 0x480388a3,
+ 0x052dfeb0, 0x05000009, 0x0521fdc6, 0x05000007,
+ 0x497b282d, 0x497b282e, 0x60b40800, 0x42001000,
+ 0x001005c7, 0x0539fdbd, 0x1c01f000, 0x0501f8c4,
+ 0x05020003, 0x640f506d, 0x0501f0a9, 0x4a038805,
+ 0x000000f0, 0x050df8ee, 0x050200a0, 0x050dfaf9,
+ 0x05000017, 0x050dfade, 0x05020015, 0x050dfae7,
+ 0x0502000a, 0x59a80079, 0x90000584, 0x05fc07f2,
+ 0x0509fee4, 0x0502000e, 0x59a80079, 0x82000580,
+ 0xaabbccdd, 0x05fc07ec, 0x59a80079, 0x90000580,
+ 0x05fc07e9, 0x0509fec9, 0x05020005, 0x59a80079,
+ 0x82000580, 0xaabbccdd, 0x05fc07e3, 0x59a800aa,
+ 0x8c000500, 0x0502000b, 0x59a80887, 0x8c04050c,
+ 0x05020008, 0x60380938, 0x050df90b, 0x90040548,
+ 0x82000500, 0xffffffef, 0x60380938, 0x050df90b,
+ 0x050dfad4, 0x05000032, 0x0525f817, 0x0500000c,
+ 0x4a03c014, 0x00200020, 0x59c40001, 0x82000500,
+ 0x00018000, 0x82000580, 0x00018000, 0x05020026,
+ 0x4a03c013, 0x00200020, 0x0501f025, 0x4a03c013,
+ 0x03800300, 0x4a03c014, 0x03800380, 0x59c40001,
+ 0x82000500, 0x00018000, 0x82000580, 0x00018000,
+ 0x0502000c, 0x60880801, 0x61d81000, 0x60201800,
+ 0x0525f801, 0x050008cc, 0x60880801, 0x61b81000,
+ 0x60201800, 0x0521fffc, 0x050008c7, 0x0501f00b,
+ 0x60880801, 0x61d81000, 0x60201800, 0x0525f804,
+ 0x050008c1, 0x60880801, 0x61b81000, 0x60201800,
+ 0x0521ffff, 0x050008bc, 0x4a03c014, 0x03800000,
+ 0x0501f003, 0x4a03c013, 0x00200000, 0x052dfe45,
+ 0x0500003d, 0x59c400a4, 0x9000050f, 0x90000588,
+ 0x05000021, 0x59c40005, 0x8c000534, 0x0502001e,
+ 0x5994002f, 0x800001c0, 0x05000007, 0x0501fadb,
+ 0x90000402, 0x5994082d, 0x80040480, 0x0502103c,
+ 0x0501f004, 0x5994002d, 0x90000482, 0x05021038,
+ 0x052dfe36, 0x05020036, 0x4a038805, 0x000000f0,
+ 0x052dfe60, 0x4a035044, 0x0000aaaa, 0x64035045,
+ 0x59c408a3, 0x90040d48, 0x480788a3, 0x6006d800,
+ 0x6403506d, 0x64078805, 0x497b282d, 0x497b282e,
+ 0x0501f019, 0x052dfe25, 0x05020007, 0x59a80044,
+ 0x82000580, 0x0000aaaa, 0x05020003, 0x4a035040,
+ 0x00ffffff, 0x497b5044, 0x59c40006, 0x82000540,
+ 0x04000001, 0x48038806, 0x8d0c0506, 0x05020004,
+ 0x59c408a3, 0x90040d48, 0x480788a3, 0x6006d800,
+ 0x6403506d, 0x64078805, 0x497b282d, 0x497b282e,
+ 0x0501f00f, 0x59c40005, 0x82000500, 0x000000c0,
+ 0x0500000b, 0x59c40006, 0x82000540, 0x000000f1,
+ 0x48038806, 0x05fdf7f2, 0x0509fe54, 0x05020004,
+ 0x59a80078, 0x800001c0, 0x05fe0757, 0x497b8885,
+ 0x1c01f000, 0x4803c856, 0x0521fd0e, 0x05020005,
+ 0x050dfc0b, 0x42000000, 0x00112463, 0x0569f9a7,
+ 0x60000001, 0x0509fd4f, 0x6403506d, 0x0509fe43,
+ 0x05020009, 0x59a8006b, 0x800001c0, 0x05000004,
+ 0x80000040, 0x4803506b, 0x05020003, 0x642b506b,
+ 0x64075078, 0x497b8885, 0x0501f224, 0x5994002d,
+ 0x5994082e, 0x80040540, 0x1c01f000, 0x497b282e,
+ 0x1c01f000, 0x4a038805, 0x000000f0, 0x1c01f000,
+ 0x64235096, 0x640f5097, 0x64035098, 0x4a035099,
+ 0x001090d5, 0x0531f91d, 0x4a03544c, 0x0000ffff,
+ 0x4a035040, 0x00ffffff, 0x0559f838, 0x4a035050,
+ 0x20200000, 0x4a035051, 0x88000200, 0x4a035052,
+ 0x00ff001f, 0x4a035053, 0x000007d0, 0x4a035054,
+ 0x80000a00, 0x4a035055, 0xa0000200, 0x4a035056,
+ 0x00ff0004, 0x4a035057, 0x00010000, 0x4a035058,
+ 0x80000000, 0x4a035059, 0x00000200, 0x4a03505a,
+ 0x00ff0000, 0x4a03505b, 0x00010000, 0x4a035062,
+ 0x514c4f47, 0x4a035063, 0x49432020, 0x1c01f000,
+ 0x4d440000, 0x417a8800, 0x4c5c0000, 0x4178b800,
+ 0x0001fb08, 0x05020004, 0x0529fef4, 0x05020002,
+ 0x805cb800, 0x81468800, 0x83440580, 0x000007f0,
+ 0x05020002, 0x60028810, 0x59a800ad, 0x81440580,
+ 0x05fe07f4, 0x405c0800, 0x5c00b800, 0x5c028800,
+ 0x1c01f000, 0x4803c857, 0x5c000000, 0x4c000000,
+ 0x4803c857, 0x0501f808, 0x485fc857, 0x4203e000,
+ 0x50000000, 0x5c000000, 0x4d780000, 0x6008b900,
+ 0x0501f005, 0x485fc857, 0x4203e000, 0x50000000,
+ 0x6008b900, 0x05006000, 0x4c000000, 0x4c040000,
+ 0x59bc00ea, 0x4803c857, 0x90000507, 0x90000581,
+ 0x05020003, 0x60000800, 0x0541fbd4, 0x59b800ea,
+ 0x4803c857, 0x641370e8, 0x5c000800, 0x4807c025,
+ 0x80040920, 0x4807c026, 0x5c000000, 0x4803c023,
+ 0x80000120, 0x4803c024, 0x5c000000, 0x4803c857,
+ 0x4803c021, 0x80000120, 0x4803c022, 0x41f80000,
+ 0x4803c029, 0x80000120, 0x4803c02a, 0x41780800,
+ 0x4807c027, 0x59a800b4, 0x8c00050a, 0x05000005,
+ 0x59e00027, 0x8400054a, 0x4803c857, 0x4803c027,
+ 0x0569fa3a, 0x0500004a, 0x42000800, 0x0011456c,
+ 0x46000800, 0xfaceface, 0x80040800, 0x4c080000,
+ 0x4c0c0000, 0x600010f4, 0x58080013, 0x44000800,
+ 0x80040800, 0x58080022, 0x44000800, 0x80040800,
+ 0x58080023, 0x44000800, 0x80040800, 0x58080024,
+ 0x44000800, 0x80040800, 0x58080025, 0x44000800,
+ 0x80040800, 0x58080028, 0x44000800, 0x80040800,
+ 0x610010f4, 0x602c1800, 0x50080000, 0x44000800,
+ 0x80081000, 0x80040800, 0x800c1840, 0x05fe07fb,
+ 0x600c1800, 0x600010f6, 0x480c1003, 0x58080005,
+ 0x44000800, 0x80040800, 0x800c1840, 0x05fe17fb,
+ 0x600010f8, 0x58080002, 0x44000800, 0x80040800,
+ 0x58080003, 0x44000800, 0x80040800, 0x58080020,
+ 0x44000800, 0x80040800, 0x58080021, 0x44000800,
+ 0x80040800, 0x58080022, 0x44000800, 0x80040800,
+ 0x58080023, 0x44000800, 0x80040800, 0x600010f6,
+ 0x58080007, 0x44000800, 0x80040800, 0x5808002b,
+ 0x44000800, 0x80040800, 0x5808007c, 0x44000800,
+ 0x80040800, 0x5c001800, 0x5c001000, 0x64030000,
+ 0x485fc020, 0x905cb9c0, 0x905cbd52, 0x485fc011,
+ 0x4203e000, 0x40000000, 0x6016d800, 0x59e00017,
+ 0x60000800, 0x8c00050a, 0x050a08ab, 0x8d0c0530,
+ 0x050a089e, 0x050a08a0, 0x6403c017, 0x4203e000,
+ 0x30000001, 0x0501f94a, 0x05fdf7ff, 0x600c0000,
+ 0x0501f80c, 0x4a03c855, 0x0001eb5a, 0x59e40001,
+ 0x82000540, 0xff000700, 0x4803c801, 0x42000000,
+ 0x00112489, 0x49780003, 0x49780004, 0x1c01f000,
+ 0x42000800, 0x0011248b, 0x44000800, 0x59e40801,
+ 0x82041500, 0x00f3c0ff, 0x480bc801, 0x4a03c850,
+ 0x00114716, 0x800000d4, 0x82002400, 0x00114715,
+ 0x4813c851, 0x4a03c853, 0x00000400, 0x42000000,
+ 0x00114716, 0x82001400, 0x00000c00, 0x45780000,
+ 0x80000000, 0x80081d80, 0x05fe07fd, 0x4807c801,
+ 0x1c01f000, 0x42002000, 0x00112489, 0x59e41801,
+ 0x58100c01, 0x82040500, 0x00003800, 0x820c1d00,
+ 0xffffc7ff, 0x800c1d40, 0x480fc801, 0x1c01f000,
+ 0x5c036000, 0x4db00000, 0x49b3c857, 0x4803c857,
0x1c01f000, 0x4c5c0000, 0x4c600000, 0x4c640000,
- 0x42001000, 0x04000000, 0x41ccc800, 0x42002800,
- 0x0010e4e5, 0x59a800d0, 0x82000d00, 0x000003ff,
- 0x4c000000, 0x58140212, 0x0501f85d, 0x5c000000,
- 0x4004b800, 0x4008c000, 0x905cbc06, 0x8c000516,
- 0x05000002, 0x905cbc02, 0x0501f016, 0x4c5c0000,
- 0x4c600000, 0x4c640000, 0x42002800, 0x0010e4e5,
- 0x42001000, 0x03000000, 0x4000c800, 0x821c0500,
- 0x00003c00, 0x80000114, 0x821c0d00, 0x000003ff,
- 0x4c000000, 0x58140412, 0x0501f845, 0x5c000000,
- 0x4004b800, 0x4008c000, 0x805cbc00, 0x805cb840,
- 0x825c0480, 0x00000240, 0x05fe1ed0, 0x0501f878,
- 0x405c0000, 0x905cbc02, 0x80600d40, 0x42002800,
- 0x0010e4e5, 0x41784000, 0x58142017, 0x825c0480,
- 0x00000101, 0x05021028, 0x5814000d, 0x80100400,
- 0x44040000, 0x80102000, 0x80000000, 0x805cb840,
- 0x82104d00, 0x000000ff, 0x05000847, 0x0500001a,
- 0x4c000000, 0x0501f82e, 0x5c000000, 0x44080000,
+ 0x8d0c052a, 0x0500002f, 0x401c0000, 0x80040d40,
+ 0x4004b800, 0x400cc000, 0x4018c800, 0x0501f8d3,
+ 0x41784000, 0x42002800, 0x00112489, 0x58142017,
+ 0x5814000d, 0x80100400, 0x445c0000, 0x80102000,
+ 0x80000000, 0x82104d00, 0x000000ff, 0x050008a9,
+ 0x0500001c, 0x4c000000, 0x0501f890, 0x5c000000,
+ 0x44080000, 0x80102000, 0x80000000, 0x82104d00,
+ 0x000000ff, 0x0500089f, 0x05000012, 0x44600000,
+ 0x80102000, 0x80000000, 0x82104d00, 0x000000ff,
+ 0x05000898, 0x0500000b, 0x44640000, 0x80102000,
+ 0x80000000, 0x82104d00, 0x000000ff, 0x05000891,
+ 0x05000004, 0x48102817, 0x802041c0, 0x05060d72,
+ 0x5c00c800, 0x5c00c000, 0x5c00b800, 0x1c01f000,
+ 0x4c5c0000, 0x4c600000, 0x4c640000, 0x42001000,
+ 0x04000000, 0x41ccc800, 0x42002800, 0x00112489,
+ 0x59a800d5, 0x82000d00, 0x000003ff, 0x4c000000,
+ 0x58140212, 0x0501f85d, 0x5c000000, 0x4004b800,
+ 0x4008c000, 0x905cbc06, 0x8c000516, 0x05000002,
+ 0x905cbc02, 0x0501f016, 0x4c5c0000, 0x4c600000,
+ 0x4c640000, 0x42002800, 0x00112489, 0x42001000,
+ 0x03000000, 0x4000c800, 0x821c0500, 0x00003c00,
+ 0x80000114, 0x821c0d00, 0x000003ff, 0x4c000000,
+ 0x58140412, 0x0501f845, 0x5c000000, 0x4004b800,
+ 0x4008c000, 0x805cbc00, 0x805cb840, 0x825c0480,
+ 0x00000240, 0x05fe1edc, 0x0501f878, 0x405c0000,
+ 0x905cbc02, 0x80600d40, 0x42002800, 0x00112489,
+ 0x41784000, 0x58142017, 0x825c0480, 0x00000101,
+ 0x05021028, 0x5814000d, 0x80100400, 0x44040000,
0x80102000, 0x80000000, 0x805cb840, 0x82104d00,
- 0x000000ff, 0x0500083c, 0x0500000f, 0x50641800,
- 0x440c0000, 0x80000000, 0x80102000, 0x8064c800,
- 0x805cb840, 0x05fe07f6, 0x82104d00, 0x000000ff,
- 0x05000831, 0x05000004, 0x48102817, 0x802041c0,
- 0x05060cd2, 0x5c00c800, 0x5c00c000, 0x5c00b800,
- 0x1c01f000, 0x82100500, 0x000000ff, 0x805c0400,
- 0x82000480, 0x00000200, 0x05fc17d4, 0x6108b800,
- 0x82600d40, 0x00008040, 0x05fdf7d0, 0x800001c0,
- 0x05000006, 0x80041c80, 0x05001004, 0x05000003,
- 0x40000800, 0x8408155c, 0x1c01f000, 0x59a800ba,
- 0x800018c4, 0x800010ca, 0x800000cc, 0x800c0400,
- 0x80081400, 0x59940024, 0x61a01807, 0x800c1c80,
- 0x05021002, 0x61a01807, 0x5994002e, 0x800c0400,
- 0x82001c80, 0x000007d0, 0x05001002, 0x6140000f,
- 0x4c080000, 0x0501f8b6, 0x5c001000, 0x80081400,
- 0x1c01f000, 0x4813c857, 0x5c036000, 0x4db00000,
- 0x49b3c857, 0x40001800, 0x58140000, 0x8c000502,
- 0x05000009, 0x58140821, 0x80040800, 0x48042821,
- 0x4807c857, 0x8400054a, 0x48002800, 0x80000580,
- 0x0501f00e, 0x82102500, 0x000003ff, 0x80204000,
- 0x58140014, 0x80000000, 0x90000503, 0x48002814,
- 0x05000003, 0x400c0000, 0x0501f002, 0x5814000d,
- 0x80000540, 0x4803c857, 0x1c01f000, 0x42002800,
- 0x0010e4e5, 0x58140000, 0x8c00050a, 0x0500002f,
- 0x8c000502, 0x0502002d, 0x4c5c0000, 0x5814b821,
- 0x49782821, 0x8400050a, 0x48002800, 0x58142017,
- 0x4813c857, 0x5814000d, 0x80100400, 0x41784000,
- 0x42000800, 0x0b000001, 0x44040000, 0x80000000,
- 0x80102000, 0x82104d00, 0x000000ff, 0x05fc0fca,
- 0x05fc0e3e, 0x4c000000, 0x05fdffb1, 0x5c000000,
- 0x44080000, 0x80000000, 0x80102000, 0x82104d00,
- 0x000000ff, 0x05fc0fc0, 0x05fc0e34, 0x445c0000,
+ 0x000000ff, 0x05000847, 0x0500001a, 0x4c000000,
+ 0x0501f82e, 0x5c000000, 0x44080000, 0x80102000,
+ 0x80000000, 0x805cb840, 0x82104d00, 0x000000ff,
+ 0x0500083c, 0x0500000f, 0x50641800, 0x440c0000,
+ 0x80000000, 0x80102000, 0x8064c800, 0x805cb840,
+ 0x05fe07f6, 0x82104d00, 0x000000ff, 0x05000831,
+ 0x05000004, 0x48102817, 0x802041c0, 0x05060d12,
+ 0x5c00c800, 0x5c00c000, 0x5c00b800, 0x1c01f000,
+ 0x82100500, 0x000000ff, 0x805c0400, 0x82000480,
+ 0x00000200, 0x05fc17d4, 0x6108b800, 0x82600d40,
+ 0x00008040, 0x05fdf7d0, 0x800001c0, 0x05000006,
+ 0x80041c80, 0x05001004, 0x05000003, 0x40000800,
+ 0x8408155c, 0x1c01f000, 0x59a800bf, 0x800018c4,
+ 0x800010ca, 0x800000cc, 0x800c0400, 0x80081400,
+ 0x59940024, 0x61a01807, 0x800c1c80, 0x05021002,
+ 0x61a01807, 0x5994002f, 0x800c0400, 0x82001c80,
+ 0x000007d0, 0x05001002, 0x6140000f, 0x4c080000,
+ 0x0501f8b6, 0x5c001000, 0x80081400, 0x1c01f000,
+ 0x4813c857, 0x5c036000, 0x4db00000, 0x49b3c857,
+ 0x40001800, 0x58140000, 0x8c000502, 0x05000009,
+ 0x58140821, 0x80040800, 0x48042821, 0x4807c857,
+ 0x8400054a, 0x48002800, 0x80000580, 0x0501f00e,
+ 0x82102500, 0x000003ff, 0x80204000, 0x58140014,
+ 0x80000000, 0x90000503, 0x48002814, 0x05000003,
+ 0x400c0000, 0x0501f002, 0x5814000d, 0x80000540,
+ 0x4803c857, 0x1c01f000, 0x42002800, 0x00112489,
+ 0x58140000, 0x8c00050a, 0x0500002f, 0x8c000502,
+ 0x0502002d, 0x4c5c0000, 0x5814b821, 0x49782821,
+ 0x8400050a, 0x48002800, 0x58142017, 0x4813c857,
+ 0x5814000d, 0x80100400, 0x41784000, 0x42000800,
+ 0x0b000001, 0x44040000, 0x80000000, 0x80102000,
+ 0x82104d00, 0x000000ff, 0x05fc0fca, 0x05fc0e4a,
+ 0x4c000000, 0x05fdffb1, 0x5c000000, 0x44080000,
0x80000000, 0x80102000, 0x82104d00, 0x000000ff,
- 0x05fc0fb9, 0x05fc0e2d, 0x48102817, 0x802041c0,
- 0x05060c5a, 0x405c2000, 0x600c1800, 0x60a01100,
- 0x0521f828, 0x5c00b800, 0x1c01f000, 0x1c01f000,
- 0x59a800b5, 0x8c000530, 0x05fe07fe, 0x4c080000,
- 0x60101000, 0x0501f849, 0x5c001000, 0x4201d000,
- 0x00028b0a, 0x0539f844, 0x4c080000, 0x60201000,
- 0x0501f842, 0x5c001000, 0x4201d000, 0x00028b0a,
- 0x0539f83d, 0x4c080000, 0x60401000, 0x0501f83b,
- 0x5c001000, 0x4201d000, 0x00028b0a, 0x0539f836,
- 0x05fdf7e8, 0x8c00050c, 0x59a808b5, 0x05020003,
- 0x84040d30, 0x0501f005, 0x84040d70, 0x480750b5,
- 0x60001000, 0x0501f02d, 0x480750b5, 0x916c0507,
- 0x0c01f001, 0x00100805, 0x001007f7, 0x001007f7,
- 0x001007e5, 0x001007fe, 0x001007f7, 0x001007f7,
- 0x001007fe, 0x59c40801, 0x82040d00, 0x00018000,
- 0x82040580, 0x00018000, 0x0500000a, 0x82040580,
- 0x00010000, 0x05000004, 0x42001000, 0x42004000,
- 0x0501f006, 0x42001000, 0x22002000, 0x0501f003,
- 0x42001000, 0x12001000, 0x0501f015, 0x59a800b5,
- 0x8c000534, 0x05020004, 0x42001000, 0x74057005,
- 0x0501f80f, 0x1c01f000, 0x59a800b5, 0x8c000534,
- 0x05020004, 0x42001000, 0x74057005, 0x0501f008,
- 0x1c01f000, 0x1c01f000, 0x9008151c, 0x82081540,
- 0x001c0000, 0x480bc013, 0x1c01f000, 0x59a800b5,
- 0x8c000530, 0x05000002, 0x84081570, 0x480b50b5,
- 0x8c000530, 0x05020005, 0x82081500, 0x00007000,
- 0x80081114, 0x05fdfff1, 0x1c01f000, 0x40001800,
- 0x800c18c2, 0x800c0400, 0x800c18c6, 0x800c0400,
- 0x800c18c2, 0x800c0400, 0x800c190e, 0x800c0400,
- 0x80000112, 0x1c01f000, 0x41780000, 0x50041800,
- 0x800c0400, 0x80040800, 0x80102040, 0x05fe07fc,
- 0x80080500, 0x80000540, 0x1c01f000, 0x6002f000,
- 0x41780000, 0x41780800, 0x41781000, 0x41781800,
- 0x41782000, 0x41782800, 0x41783000, 0x41783800,
- 0x41784000, 0x41784800, 0x41785000, 0x41785800,
- 0x41786000, 0x41786800, 0x41787000, 0x41787800,
- 0x41788000, 0x41788800, 0x41789000, 0x41789800,
- 0x4178a000, 0x4178a800, 0x4178b000, 0x4178b800,
- 0x4178c000, 0x4178c800, 0x4178d000, 0x4178d800,
- 0x4178e000, 0x4178e800, 0x4178f000, 0x4178f800,
- 0x41790000, 0x41790800, 0x41791000, 0x41791800,
- 0x41792000, 0x41792800, 0x41793000, 0x41793800,
- 0x41794000, 0x41794800, 0x41795000, 0x41795800,
- 0x41796000, 0x41796800, 0x41797000, 0x41797800,
- 0x41798000, 0x41798800, 0x41799000, 0x41799800,
- 0x4179a000, 0x6001a960, 0x60c9b17e, 0x4179b800,
- 0x4179c800, 0x4179c000, 0x4179d000, 0x4179d800,
- 0x4179e000, 0x4179e800, 0x4179f000, 0x4179f800,
- 0x417a0000, 0x417a0800, 0x417a1000, 0x417a1800,
+ 0x05fc0fc0, 0x05fc0e40, 0x445c0000, 0x80000000,
+ 0x80102000, 0x82104d00, 0x000000ff, 0x05fc0fb9,
+ 0x05fc0e39, 0x48102817, 0x802041c0, 0x05060c9a,
+ 0x405c2000, 0x600c1800, 0x60a01100, 0x0521f996,
+ 0x5c00b800, 0x1c01f000, 0x1c01f000, 0x59a800ba,
+ 0x8c000530, 0x05fe07fe, 0x4c080000, 0x60101000,
+ 0x0501f849, 0x5c001000, 0x4201d000, 0x00028b0a,
+ 0x0539fc80, 0x4c080000, 0x60201000, 0x0501f842,
+ 0x5c001000, 0x4201d000, 0x00028b0a, 0x0539fc79,
+ 0x4c080000, 0x60401000, 0x0501f83b, 0x5c001000,
+ 0x4201d000, 0x00028b0a, 0x0539fc72, 0x05fdf7e8,
+ 0x8c00050c, 0x59a808ba, 0x05020003, 0x84040d30,
+ 0x0501f005, 0x84040d70, 0x480750ba, 0x60001000,
+ 0x0501f02d, 0x480750ba, 0x916c0507, 0x0c01f001,
+ 0x00100834, 0x00100826, 0x00100826, 0x00100814,
+ 0x0010082d, 0x00100826, 0x00100826, 0x0010082d,
+ 0x59c40801, 0x82040d00, 0x00018000, 0x82040580,
+ 0x00018000, 0x0500000a, 0x82040580, 0x00010000,
+ 0x05000004, 0x42001000, 0x42004000, 0x0501f006,
+ 0x42001000, 0x22002000, 0x0501f003, 0x42001000,
+ 0x12001000, 0x0501f015, 0x59a800ba, 0x8c000534,
+ 0x05020004, 0x42001000, 0x74057005, 0x0501f80f,
+ 0x1c01f000, 0x59a800ba, 0x8c000534, 0x05020004,
+ 0x42001000, 0x74057005, 0x0501f008, 0x1c01f000,
+ 0x1c01f000, 0x9008151c, 0x82081540, 0x001c0000,
+ 0x480bc013, 0x1c01f000, 0x59a800ba, 0x8c000530,
+ 0x05000002, 0x84081570, 0x480b50ba, 0x8c000530,
+ 0x05020005, 0x82081500, 0x00007000, 0x80081114,
+ 0x05fdfff1, 0x1c01f000, 0x40001800, 0x800c18c2,
+ 0x800c0400, 0x800c18c6, 0x800c0400, 0x800c18c2,
+ 0x800c0400, 0x800c190e, 0x800c0400, 0x80000112,
+ 0x1c01f000, 0x41780000, 0x50041800, 0x800c0400,
+ 0x80040800, 0x80102040, 0x05fe07fc, 0x80080500,
+ 0x80000540, 0x1c01f000, 0x6002f000, 0x41780000,
+ 0x41780800, 0x41781000, 0x41781800, 0x41782000,
+ 0x41782800, 0x41783000, 0x41783800, 0x41784000,
+ 0x41784800, 0x41785000, 0x41785800, 0x41786000,
+ 0x41786800, 0x41787000, 0x41787800, 0x41788000,
+ 0x41788800, 0x41789000, 0x41789800, 0x4178a000,
+ 0x4178a800, 0x4178b000, 0x4178b800, 0x4178c000,
+ 0x4178c800, 0x4178d000, 0x4178d800, 0x4178e000,
+ 0x4178e800, 0x4178f000, 0x4178f800, 0x41790000,
+ 0x41790800, 0x41791000, 0x41791800, 0x41792000,
+ 0x41792800, 0x41793000, 0x41793800, 0x41794000,
+ 0x41794800, 0x41795000, 0x41795800, 0x41796000,
+ 0x41796800, 0x41797000, 0x41797800, 0x41798000,
+ 0x41798800, 0x41799000, 0x41799800, 0x4179a000,
+ 0x6001a960, 0x60c9b17e, 0x4179b800, 0x4179c800,
+ 0x4179c000, 0x4179d000, 0x4179d800, 0x4179e000,
+ 0x4179e800, 0x4179f000, 0x4179f800, 0x42020000,
+ 0x00111cdc, 0x417a0800, 0x417a1000, 0x417a1800,
0x417a2000, 0x600228c2, 0x417a3000, 0x417a3800,
0x417a4000, 0x417a4800, 0x417a5000, 0x417a5800,
0x417a6000, 0x417a6800, 0x417a7000, 0x417a7800,
0x417a8000, 0x417a8800, 0x417a9000, 0x417a9800,
0x417ae800, 0x417af800, 0x600300f8, 0x42031000,
- 0x0010e38c, 0x607f1960, 0x60df2160, 0x42032800,
- 0x0010e2f9, 0x42033000, 0x000211b0, 0x42034000,
- 0x0010dceb, 0x42033800, 0x0010dd0a, 0x42034800,
- 0x0010e063, 0x42035000, 0x0010dc00, 0x42035800,
- 0x0010d400, 0x417b6000, 0x600368de, 0x6003c860,
- 0x600371fe, 0x6003797e, 0x600380ee, 0x60038880,
- 0x600390c0, 0x42039800, 0x001102fe, 0x6003a0ec,
- 0x6003a8e8, 0x6003b0e4, 0x6003b8e2, 0x6003c0e0,
- 0x6003d000, 0x4203e800, 0x000201e5, 0x417bd800,
- 0x1c01f000, 0x6407c830, 0x640fc831, 0x6413c832,
- 0x6427c833, 0x6417c834, 0x641bc835, 0x641fc836,
- 0x6423c837, 0x6403c838, 0x642bc839, 0x642fc83a,
- 0x640bc83b, 0x1c01f000, 0x42002800, 0x00140000,
- 0x59a800ca, 0x8c000500, 0x05000003, 0x42002800,
- 0x0013a000, 0x46002800, 0xaaaaaaaa, 0x60283000,
- 0x80183040, 0x05fe07ff, 0x50140000, 0x82000580,
- 0xaaaaaaaa, 0x05020013, 0x41782000, 0x40140800,
- 0x82102400, 0x00010000, 0x80042c04, 0x46002800,
- 0x55555555, 0x60283000, 0x80183040, 0x05fe07ff,
- 0x50140000, 0x82000580, 0x55555555, 0x05020005,
- 0x50040000, 0x82000580, 0x55555555, 0x05fe07f1,
- 0x59a800ca, 0x8c000500, 0x05000005, 0x82140580,
- 0x0013a000, 0x05020005, 0x0501f005, 0x82140580,
- 0x00140000, 0x05000002, 0x6407c820, 0x80142840,
- 0x4817c857, 0x4817c861, 0x4817500a, 0x1c01f000,
- 0x4817c857, 0x4c5c0000, 0x4c600000, 0x0565f814,
- 0x05000030, 0x4817c857, 0x606c08f6, 0x50040800,
- 0x8c04053e, 0x0500002b, 0x4817c857, 0x850e1d70,
- 0x4c040000, 0x4c140000, 0x0505fdc7, 0x5c002800,
- 0x5c000800, 0x59e0b81a, 0x8204b500, 0x000007ff,
- 0x8058b000, 0x485b50a4, 0x600008f4, 0x58042029,
- 0x5804302a, 0x82102500, 0xfffffff8, 0x82183500,
- 0xfffffff8, 0x40100000, 0x8018c480, 0x8060c104,
- 0x80600417, 0x4803509f, 0x497b50a3, 0x9058b41f,
- 0x8058090a, 0x8004c418, 0x8060c040, 0x805cc418,
- 0x485f50a0, 0x486350a1, 0x805c2840, 0x59a800ca,
- 0x8c000500, 0x05000007, 0x59a8000a, 0x82000580,
- 0x00139fff, 0x05020003, 0x4817500a, 0x4817c857,
- 0x64030000, 0x5c00c000, 0x5c00b800, 0x1c01f000,
- 0x59a80847, 0x800409c0, 0x05020006, 0x49781c0c,
- 0x64081a0c, 0x641c1804, 0x59a8003d, 0x48001805,
- 0x4c0c0000, 0x05fdfc94, 0x5c001800, 0x800409c0,
- 0x05020002, 0x80040800, 0x48041806, 0x1c01f000,
- 0x61fcb001, 0x42024800, 0x0010e512, 0x42000000,
- 0x0010f212, 0x48024809, 0x90000410, 0x91264c0d,
- 0x8058b040, 0x05fe07fc, 0x1c01f000, 0x59a8080c,
- 0x4006d000, 0x6006b800, 0x59a8180a, 0x480fc857,
- 0x41783000, 0x90041418, 0x90082418, 0x40100000,
- 0x800c0480, 0x05001020, 0x8d0c0530, 0x0500000b,
- 0x59a800a1, 0x80000482, 0x05001008, 0x40100000,
- 0x59a828a0, 0x80140480, 0x05021004, 0x59a810a1,
- 0x80081000, 0x05fdf7f1, 0x801831c0, 0x0502000d,
- 0x59a800ca, 0x8c000500, 0x05000006, 0x42000000,
- 0x0013a000, 0x80000484, 0x0500100e, 0x0501f005,
- 0x42000000, 0x00140000, 0x80000484, 0x05001009,
- 0x44080800, 0x40080800, 0x40101000, 0x815eb800,
- 0x05fdf7de, 0x45780800, 0x495f5048, 0x1c01f000,
- 0x42001000, 0x00140000, 0x59a800ca, 0x8c000500,
- 0x05000003, 0x42001000, 0x0013a000, 0x80183040,
- 0x05fdf7d2, 0x835c0480, 0x00000104, 0x0500100a,
- 0x496bc857, 0x815eb840, 0x416a5800, 0x592ed000,
- 0x497a5800, 0x497a5801, 0x497a5808, 0x812e59c0,
- 0x1c01f000, 0x42000000, 0x0010e441, 0x0561fe5d,
- 0x417a5800, 0x05fdf7fa, 0x815eb840, 0x05001009,
- 0x416a5800, 0x492fc857, 0x592ed000, 0x497a5800,
+ 0x0011232d, 0x607f1960, 0x60df2160, 0x42032800,
+ 0x00112293, 0x42033000, 0x000211f1, 0x42034000,
+ 0x00111c71, 0x42033800, 0x00111c90, 0x42034800,
+ 0x00111ffd, 0x42035000, 0x00111b80, 0x4a0350ac,
+ 0x000007f0, 0x4a0350ad, 0x00000800, 0x4a03500d,
+ 0x0010e380, 0x42035800, 0x0010db80, 0x41790000,
+ 0x417b6000, 0x600368de, 0x6003c860, 0x600371fe,
+ 0x6003797e, 0x600380ee, 0x60038880, 0x600390c0,
+ 0x42039800, 0x001142a2, 0x6003a0ec, 0x6003a8e8,
+ 0x6003b0e4, 0x6003b8e2, 0x6003c0e0, 0x6003d000,
+ 0x4203e800, 0x000201ed, 0x417bd800, 0x1c01f000,
+ 0x6407c830, 0x640fc831, 0x6413c832, 0x6427c833,
+ 0x6417c834, 0x641bc835, 0x641fc836, 0x6423c837,
+ 0x6403c838, 0x642bc839, 0x642fc83a, 0x640bc83b,
+ 0x1c01f000, 0x42002800, 0x00140000, 0x59a800cf,
+ 0x8c000500, 0x05000003, 0x42002800, 0x0013a000,
+ 0x46002800, 0xaaaaaaaa, 0x60283000, 0x80183040,
+ 0x05fe07ff, 0x50140000, 0x82000580, 0xaaaaaaaa,
+ 0x05020013, 0x41782000, 0x40140800, 0x82102400,
+ 0x00010000, 0x80042c04, 0x46002800, 0x55555555,
+ 0x60283000, 0x80183040, 0x05fe07ff, 0x50140000,
+ 0x82000580, 0x55555555, 0x05020005, 0x50040000,
+ 0x82000580, 0x55555555, 0x05fe07f1, 0x59a800cf,
+ 0x8c000500, 0x05000005, 0x82140580, 0x0013a000,
+ 0x05020005, 0x0501f005, 0x82140580, 0x00140000,
+ 0x05000002, 0x6407c820, 0x80142840, 0x4817c857,
+ 0x4817c861, 0x4817500a, 0x1c01f000, 0x4817c857,
+ 0x4c5c0000, 0x4c600000, 0x0565ff58, 0x05000030,
+ 0x4817c857, 0x606c08f6, 0x50040800, 0x8c04053e,
+ 0x0500002b, 0x4817c857, 0x850e1d70, 0x4c040000,
+ 0x4c140000, 0x0505fe01, 0x5c002800, 0x5c000800,
+ 0x59e0b81a, 0x8204b500, 0x000007ff, 0x8058b000,
+ 0x485b50a7, 0x600008f4, 0x58042029, 0x5804302a,
+ 0x82102500, 0xfffffff8, 0x82183500, 0xfffffff8,
+ 0x40100000, 0x8018c480, 0x8060c104, 0x80600417,
+ 0x480350a2, 0x497b50a6, 0x9058b41f, 0x8058090a,
+ 0x8004c418, 0x8060c040, 0x805cc418, 0x485f50a3,
+ 0x486350a4, 0x805c2840, 0x59a800cf, 0x8c000500,
+ 0x05000007, 0x59a8000a, 0x82000580, 0x00139fff,
+ 0x05020003, 0x4817500a, 0x4817c857, 0x64030000,
+ 0x5c00c000, 0x5c00b800, 0x1c01f000, 0x59a8084a,
+ 0x800409c0, 0x05020006, 0x49781c0c, 0x64081a0c,
+ 0x641c1804, 0x59a80040, 0x48001805, 0x4c0c0000,
+ 0x05fdfc94, 0x5c001800, 0x800409c0, 0x05020002,
+ 0x80040800, 0x48041806, 0x1c01f000, 0x61fcb001,
+ 0x42024800, 0x001124b6, 0x42000000, 0x001131b6,
+ 0x48024809, 0x90000410, 0x91264c0d, 0x8058b040,
+ 0x05fe07fc, 0x1c01f000, 0x59a8080c, 0x4006d000,
+ 0x6006b800, 0x59a8180a, 0x480fc857, 0x41783000,
+ 0x90041418, 0x90082418, 0x40100000, 0x800c0480,
+ 0x05001020, 0x8d0c0530, 0x0500000b, 0x59a800a4,
+ 0x80000482, 0x05001008, 0x40100000, 0x59a828a3,
+ 0x80140480, 0x05021004, 0x59a810a4, 0x80081000,
+ 0x05fdf7f1, 0x801831c0, 0x0502000d, 0x59a800cf,
+ 0x8c000500, 0x05000006, 0x42000000, 0x0013a000,
+ 0x80000484, 0x0500100e, 0x0501f005, 0x42000000,
+ 0x00140000, 0x80000484, 0x05001009, 0x44080800,
+ 0x40080800, 0x40101000, 0x815eb800, 0x05fdf7de,
+ 0x45780800, 0x495f504b, 0x1c01f000, 0x42001000,
+ 0x00140000, 0x59a800cf, 0x8c000500, 0x05000003,
+ 0x42001000, 0x0013a000, 0x80183040, 0x05fdf7d2,
+ 0x835c0480, 0x00000104, 0x0500100a, 0x496bc857,
+ 0x815eb840, 0x416a5800, 0x592ed000, 0x497a5800,
0x497a5801, 0x497a5808, 0x812e59c0, 0x1c01f000,
- 0x42000000, 0x0010e441, 0x0561fe4e, 0x417ab800,
- 0x417a5800, 0x05fdf7f9, 0x492fc857, 0x496a5800,
- 0x412ed000, 0x815eb800, 0x59c80000, 0x82000540,
- 0x00001200, 0x48039000, 0x1c01f000, 0x492fc857,
- 0x812e59c0, 0x05000007, 0x592c0001, 0x497a5801,
- 0x4c000000, 0x05fdfff1, 0x5c025800, 0x05fdf7f9,
- 0x1c01f000, 0x42000000, 0x0010e441, 0x0561fe38,
- 0x80025d80, 0x1c01f000, 0x4807c856, 0x42007000,
- 0x000211a7, 0x64007000, 0x59e00003, 0x82000540,
- 0x00008080, 0x4803c003, 0x4a03b805, 0x90000001,
- 0x59dc0006, 0x4a03b805, 0x70000000, 0x59dc0006,
- 0x4a03b805, 0x30000000, 0x59dc0006, 0x4a03b805,
- 0x80000000, 0x6100b000, 0x497bb807, 0x8058b040,
- 0x05fe07fe, 0x4a03b805, 0x30000000, 0x59dc0006,
- 0x4a03b805, 0x60000001, 0x59dc0006, 0x4a03b805,
- 0x60000003, 0x59dc0006, 0x4a03b805, 0x60000005,
- 0x59dc0006, 0x4a03b805, 0x60000007, 0x59dc0006,
- 0x4a03b805, 0x70000001, 0x59dc0006, 0x4a03b805,
- 0x30000002, 0x6100b000, 0x497bb807, 0x8058b040,
- 0x05fe07fe, 0x4a03b805, 0x30000000, 0x59dc0006,
- 0x4a03b805, 0x60000001, 0x4803c856, 0x05fdffa3,
- 0x05fc0bfa, 0x42001000, 0x0010e387, 0x452c1000,
- 0x64065801, 0x4a025802, 0x00000100, 0x4a025809,
- 0x00108adc, 0x497a580a, 0x497a580b, 0x497a580c,
- 0x05fdff96, 0x05fc0bed, 0x42001000, 0x0010e388,
- 0x452c1000, 0x64025801, 0x4a025802, 0x00000100,
- 0x4a025809, 0x001013bc, 0x497a5803, 0x497a5807,
- 0x497a5808, 0x497a580a, 0x05fdff88, 0x05fc0bdf,
- 0x42001000, 0x0010e389, 0x452c1000, 0x64025801,
- 0x4a025802, 0x00000100, 0x4a025809, 0x001013e0,
+ 0x42000000, 0x001123e2, 0x0565fda1, 0x417a5800,
+ 0x05fdf7fa, 0x815eb840, 0x05001009, 0x416a5800,
+ 0x492fc857, 0x592ed000, 0x497a5800, 0x497a5801,
+ 0x497a5808, 0x812e59c0, 0x1c01f000, 0x42000000,
+ 0x001123e2, 0x0565fd92, 0x417ab800, 0x417a5800,
+ 0x05fdf7f9, 0x492fc857, 0x496a5800, 0x412ed000,
+ 0x815eb800, 0x59c80000, 0x82000540, 0x00001200,
+ 0x48039000, 0x1c01f000, 0x492fc857, 0x812e59c0,
+ 0x05000007, 0x592c0001, 0x497a5801, 0x4c000000,
+ 0x05fdfff1, 0x5c025800, 0x05fdf7f9, 0x1c01f000,
+ 0x42000000, 0x001123e2, 0x0565fd7c, 0x80025d80,
+ 0x1c01f000, 0x80040840, 0x41783000, 0x90081498,
+ 0x80040482, 0x05001003, 0x90041401, 0x0501f018,
+ 0x4c080000, 0x60043000, 0x90081c98, 0x80040483,
+ 0x05021006, 0x480c1000, 0x49781001, 0x400c1000,
+ 0x80183000, 0x05fdf7f9, 0xa01abc17, 0x59a8084b,
+ 0x80180c01, 0x4807504b, 0x4d2c0000, 0x400a5800,
+ 0x0555f86e, 0x5c025800, 0x05020002, 0x480b500c,
+ 0x49681000, 0x49781001, 0x5c02d000, 0x1c01f000,
+ 0x4807c856, 0x42007000, 0x000211e8, 0x64007000,
+ 0x59e00003, 0x82000540, 0x00008080, 0x4803c003,
+ 0x4a03b805, 0x90000001, 0x59dc0006, 0x4a03b805,
+ 0x70000000, 0x59dc0006, 0x4a03b805, 0x30000000,
+ 0x59dc0006, 0x4a03b805, 0x80000000, 0x6100b000,
+ 0x497bb807, 0x8058b040, 0x05fe07fe, 0x4a03b805,
+ 0x30000000, 0x59dc0006, 0x4a03b805, 0x60000001,
+ 0x59dc0006, 0x4a03b805, 0x60000003, 0x59dc0006,
+ 0x4a03b805, 0x60000005, 0x59dc0006, 0x4a03b805,
+ 0x60000007, 0x59dc0006, 0x4a03b805, 0x70000001,
+ 0x59dc0006, 0x4a03b805, 0x30000002, 0x6100b000,
+ 0x497bb807, 0x8058b040, 0x05fe07fe, 0x4a03b805,
+ 0x30000000, 0x59dc0006, 0x4a03b805, 0x60000001,
+ 0x4803c856, 0x05fdff84, 0x05fc0bdf, 0x42001000,
+ 0x00112322, 0x452c1000, 0x64065801, 0x4a025802,
+ 0x00000100, 0x4a025809, 0x00108f9a, 0x497a580a,
+ 0x497a580b, 0x497a580c, 0x05fdff77, 0x05fc0bd2,
+ 0x42001000, 0x00112323, 0x452c1000, 0x64025801,
+ 0x4a025802, 0x00000100, 0x4a025809, 0x0010142b,
0x497a5803, 0x497a5807, 0x497a5808, 0x497a580a,
- 0x05fdff7a, 0x05fc0bd1, 0x497a5806, 0x42001000,
- 0x0010dc1a, 0x452c1000, 0x64025801, 0x4a025802,
- 0x00000100, 0x4a025809, 0x001078b4, 0x497a5803,
- 0x497a5807, 0x497a5808, 0x497a580a, 0x05fdff6b,
- 0x05fc0bc2, 0x497a5806, 0x492f500d, 0x64025801,
- 0x4a025802, 0x00000100, 0x4a025809, 0x001078bf,
+ 0x05fdff69, 0x05fc0bc4, 0x42001000, 0x00112324,
+ 0x452c1000, 0x64025801, 0x4a025802, 0x00000100,
+ 0x4a025809, 0x0010144f, 0x497a5803, 0x497a5807,
+ 0x497a5808, 0x497a580a, 0x05fdff5b, 0x05fc0bb6,
+ 0x497a5806, 0x42001000, 0x00112325, 0x492c1001,
+ 0x64001000, 0x05fdff54, 0x05fc0baf, 0x497a5806,
+ 0x42001000, 0x00111b9c, 0x452c1000, 0x64025801,
+ 0x4a025802, 0x00000100, 0x4a025809, 0x00107d74,
0x497a5803, 0x497a5807, 0x497a5808, 0x497a580a,
- 0x497a580b, 0x05fdff5d, 0x05fc0bb4, 0x497a5806,
- 0x492f500e, 0x64025801, 0x4a025802, 0x00000100,
- 0x4a025809, 0x001078bf, 0x497a5803, 0x497a5807,
- 0x497a5808, 0x497a580a, 0x497a580b, 0x1c01f000,
- 0x42001000, 0x00020030, 0x0535fc87, 0x0551ff0b,
- 0x58380807, 0x60042000, 0x58040801, 0x800409c0,
- 0x05000003, 0x80102000, 0x05fdf7fc, 0x0561f8fc,
- 0x0502000c, 0x42000000, 0x0010e3a9, 0x0561fd99,
- 0x0551ff09, 0x60040800, 0x42001000, 0x00020030,
- 0x0535fc4a, 0x42007000, 0x000211a7, 0x0001f039,
- 0x4a03b805, 0x30000002, 0x59dc0006, 0x4807b800,
- 0x480bb801, 0x42007000, 0x000211a7, 0x65007002,
- 0x480c7008, 0x58380007, 0x90000408, 0x48007003,
- 0x640c7000, 0x4803b803, 0x0001f05a, 0x58380802,
- 0x600011fe, 0x82040480, 0x0000ff00, 0x05021003,
- 0x40041000, 0x80000580, 0x48007002, 0x480bb802,
- 0x59dc0006, 0x4a03b805, 0x10000000, 0x1c01f000,
- 0x4a03b805, 0x30000001, 0x58386001, 0x58301009,
- 0x4807c857, 0x4803c857, 0x4833c857, 0x4a006002,
- 0x00000200, 0x64007000, 0x800811c0, 0x00000036,
- 0x0001f090, 0x4833c857, 0x4807c857, 0x5830080a,
- 0x4c040000, 0x4d2c0000, 0x40325800, 0x05fdff18,
- 0x5c025800, 0x5c000800, 0x4807c857, 0x0001f092,
- 0x59e00017, 0x8c00050c, 0x05020028, 0x59a838a2,
- 0xa01c459e, 0x05000025, 0x59a8209f, 0x59a808a3,
- 0x59a848a4, 0x40245000, 0x9004051f, 0x81782800,
- 0x801428c0, 0x8004010a, 0x80101400, 0x50083000,
- 0x80140506, 0x0502000c, 0x80040800, 0x80244840,
- 0x05000012, 0x80280581, 0x05000005, 0x80142942,
- 0x9004051f, 0x05fe07f7, 0x05fdf7f3, 0x41780800,
- 0x05fdf7ee, 0x59a818a0, 0x800400c4, 0x800c1c00,
- 0x580c0003, 0x8c000500, 0x05000009, 0x80204040,
- 0x05fe07ee, 0x80040800, 0x80280581, 0x05020002,
- 0x41780800, 0x480750a3, 0x1c01f000, 0x80142880,
- 0x80140506, 0x44001000, 0x80042800, 0x80280585,
- 0x05020002, 0x41782800, 0x481750a3, 0x801c3840,
- 0x481f50a2, 0x0001f0a3, 0x59a8189f, 0x8004110a,
- 0x9004051f, 0x80081c03, 0x81782000, 0x801020c0,
- 0x500c0000, 0x80100d00, 0x05020006, 0x80100540,
- 0x59a808a2, 0x44001800, 0x80040800, 0x480750a2,
- 0x1c01f000, 0x4df00000, 0x4203e000, 0x50000000,
- 0x835c0480, 0x00000104, 0x05fe1fb6, 0x5c03e000,
- 0x1c01f000, 0x59dc0006, 0x8c000520, 0x05000009,
- 0x00044e27, 0x59dc0006, 0x82000500, 0x00006000,
- 0x05000004, 0x82000580, 0x00006000, 0x05fe07f9,
- 0x1c01f000, 0x41781800, 0x58382005, 0x40300000,
- 0x80100580, 0x05000007, 0x40101800, 0x58102000,
- 0x801021c0, 0x05fe07fa, 0x4803c856, 0x0501f011,
- 0x4833c857, 0x58302000, 0x49786000, 0x800c19c0,
- 0x05020008, 0x801021c0, 0x05000003, 0x48107005,
- 0x0501f008, 0x49787005, 0x49787004, 0x0501f005,
- 0x48101800, 0x801021c0, 0x05020002, 0x480c7004,
- 0x1c01f000, 0x4803c856, 0x4dc00000, 0x42007000,
- 0x0010e38a, 0x64007400, 0x49787001, 0x600380ee,
- 0x60080800, 0x59c00007, 0x4a038006, 0x60000001,
- 0x59c00007, 0x4a038006, 0x60000003, 0x59c00007,
- 0x4a038006, 0x60000005, 0x59c00007, 0x4a038006,
- 0x60000007, 0x59c00007, 0x4a038006, 0x60000009,
- 0x59c00007, 0x4a038006, 0x6000000b, 0x59c00007,
- 0x4c040000, 0x0501f817, 0x5c000800, 0x4a038009,
- 0xf4f60000, 0x91c38420, 0x80040840, 0x05fe07e6,
- 0x600380ee, 0x6443c822, 0x640370e8, 0x0501f83c,
- 0x4a0370ee, 0x00100000, 0x4a0370ee, 0x00080102,
- 0x4a0370e9, 0x00000400, 0x4a0370e9, 0x00003a0f,
- 0x640370e8, 0x640770e8, 0x5c038000, 0x1c01f000,
- 0x59c00007, 0x4a038006, 0xe0000001, 0x61000800,
- 0x497b8005, 0x59c00007, 0x80040840, 0x05fe07fd,
- 0x4a038006, 0x30000001, 0x59c00007, 0x8c000508,
- 0x05fe07fe, 0x59c00007, 0x4a038006, 0xb0000003,
- 0x59c00007, 0x4a038006, 0xb0000005, 0x59c00007,
- 0x4a038006, 0xb0000001, 0x59c00007, 0x4a038006,
- 0xb0000009, 0x59c00007, 0x4a038006, 0xb0000007,
- 0x59c00007, 0x4a038006, 0xb000000b, 0x59c00007,
+ 0x05fdff45, 0x05fc0ba0, 0x497a5806, 0x492f500f,
+ 0x64025801, 0x4a025802, 0x00000100, 0x4a025809,
+ 0x00107d7f, 0x497a5803, 0x497a5807, 0x497a5808,
+ 0x497a580a, 0x497a580b, 0x05fdff37, 0x05fc0b92,
+ 0x497a5806, 0x492f5010, 0x64025801, 0x4a025802,
+ 0x00000100, 0x4a025809, 0x00107d7f, 0x497a5803,
+ 0x497a5807, 0x497a5808, 0x497a580a, 0x497a580b,
+ 0x1c01f000, 0x42001000, 0x00020038, 0x0539f844,
+ 0x59a80c9f, 0x8c040502, 0x05020005, 0x0555fc43,
+ 0x59a80c9f, 0x84040d42, 0x4807549f, 0x58380807,
+ 0x60042000, 0x58040801, 0x800409c0, 0x05000003,
+ 0x80102000, 0x05fdf7fc, 0x0561ffe3, 0x0502000b,
+ 0x42000000, 0x0011234a, 0x0565fcb1, 0x60040800,
+ 0x42001000, 0x00020038, 0x0539f802, 0x42007000,
+ 0x000211e8, 0x0001f041, 0x4a03b805, 0x30000002,
+ 0x59dc0006, 0x4807b800, 0x480bb801, 0x42007000,
+ 0x000211e8, 0x65007002, 0x480c7008, 0x58380007,
+ 0x90000408, 0x48007003, 0x640c7000, 0x4803b803,
+ 0x0001f062, 0x58380802, 0x600011fe, 0x82040480,
+ 0x0000ff00, 0x05021003, 0x40041000, 0x80000580,
+ 0x48007002, 0x480bb802, 0x59dc0006, 0x4a03b805,
+ 0x10000000, 0x1c01f000, 0x4a03b805, 0x30000001,
+ 0x58386001, 0x58301009, 0x4807c857, 0x4803c857,
+ 0x4833c857, 0x4a006002, 0x00000200, 0x64007000,
+ 0x800811c0, 0x0000003e, 0x0001f098, 0x4833c857,
+ 0x4807c857, 0x5830080a, 0x4c040000, 0x4d2c0000,
+ 0x40325800, 0x05fdfeed, 0x5c025800, 0x5c000800,
+ 0x4807c857, 0x0001f09a, 0x59e00017, 0x8c00050c,
+ 0x05020028, 0x59a838a5, 0xa01c459e, 0x05000025,
+ 0x59a820a2, 0x59a808a6, 0x59a848a7, 0x40245000,
+ 0x9004051f, 0x81782800, 0x801428c0, 0x8004010a,
+ 0x80101400, 0x50083000, 0x80140506, 0x0502000c,
+ 0x80040800, 0x80244840, 0x05000012, 0x80280581,
+ 0x05000005, 0x80142942, 0x9004051f, 0x05fe07f7,
+ 0x05fdf7f3, 0x41780800, 0x05fdf7ee, 0x59a818a3,
+ 0x800400c4, 0x800c1c00, 0x580c0003, 0x8c000500,
+ 0x05000009, 0x80204040, 0x05fe07ee, 0x80040800,
+ 0x80280581, 0x05020002, 0x41780800, 0x480750a6,
+ 0x1c01f000, 0x80142880, 0x80140506, 0x44001000,
+ 0x80042800, 0x80280585, 0x05020002, 0x41782800,
+ 0x481750a6, 0x801c3840, 0x481f50a5, 0x0001f0ab,
+ 0x59a818a2, 0x8004110a, 0x9004051f, 0x80081c03,
+ 0x81782000, 0x801020c0, 0x500c0000, 0x80100d00,
+ 0x05020006, 0x80100540, 0x59a808a5, 0x44001800,
+ 0x80040800, 0x480750a5, 0x1c01f000, 0x4df00000,
+ 0x4203e000, 0x50000000, 0x835c0480, 0x00000104,
+ 0x05fe1fb6, 0x5c03e000, 0x1c01f000, 0x59dc0006,
+ 0x8c000520, 0x05000009, 0x00044e5d, 0x59dc0006,
+ 0x82000500, 0x00006000, 0x05000004, 0x82000580,
+ 0x00006000, 0x05fe07f9, 0x1c01f000, 0x41781800,
+ 0x58382005, 0x40300000, 0x80100580, 0x05000007,
+ 0x40101800, 0x58102000, 0x801021c0, 0x05fe07fa,
+ 0x4803c856, 0x0501f011, 0x4833c857, 0x58302000,
+ 0x49786000, 0x800c19c0, 0x05020008, 0x801021c0,
+ 0x05000003, 0x48107005, 0x0501f008, 0x49787005,
+ 0x49787004, 0x0501f005, 0x48101800, 0x801021c0,
+ 0x05020002, 0x480c7004, 0x1c01f000, 0x4803c856,
+ 0x4dc00000, 0x42007000, 0x0011232b, 0x64007400,
+ 0x49787001, 0x600380ee, 0x60080800, 0x59c00007,
0x4a038006, 0x60000001, 0x59c00007, 0x4a038006,
0x60000003, 0x59c00007, 0x4a038006, 0x60000005,
0x59c00007, 0x4a038006, 0x60000007, 0x59c00007,
- 0x4a038006, 0xe0000000, 0x1c01f000, 0x4c5c0000,
- 0x4178b800, 0x0501f809, 0x5c00b800, 0x1c01f000,
- 0x4803c856, 0x4c5c0000, 0x905cbd41, 0x0501f803,
- 0x5c00b800, 0x1c01f000, 0x4803c856, 0x4dc00000,
- 0x4c500000, 0x4c580000, 0x4c540000, 0x640370e8,
- 0x805cb9c0, 0x05000009, 0x64138807, 0x4a0370f2,
- 0x80000000, 0x59b800ea, 0x8c000510, 0x05000003,
- 0x59b800e0, 0x05fdf7fc, 0x608380ee, 0x0501fd02,
- 0x59c00007, 0x4a038006, 0x20000000, 0x59c00007,
- 0x4a038006, 0x8000000a, 0x59c00007, 0x4a038006,
- 0x8000000b, 0x59c00007, 0x4a038006, 0x40000001,
- 0x83c00580, 0x00007700, 0x05000003, 0x600380ee,
- 0x05fdf7ef, 0x608380ee, 0x60000810, 0x59c00007,
- 0x8c00051e, 0x05000006, 0x4a038006, 0x90000001,
- 0x80040840, 0x05fe07fa, 0x05fdfa4c, 0x83c00580,
- 0x00007700, 0x05000003, 0x600380ee, 0x05fdf7f3,
- 0x4178a000, 0x805cb9c0, 0x0502000f, 0x6080b000,
- 0x91b8ac20, 0x0561fd16, 0x640770fb, 0x4a037020,
- 0x001012ac, 0x59a8005e, 0x82000500, 0x0000ffff,
- 0x48037021, 0x4a037035, 0x00110202, 0x4a037038,
- 0x001012a3, 0x640770fb, 0x6080b000, 0x91b8ac00,
- 0x0561fd07, 0x6100b000, 0xb1b8ac00, 0x0561fd04,
- 0x805cb9c0, 0x05020006, 0x4a0370e4, 0xaaaaaaaa,
- 0x4a0370e5, 0xaaaaaaaa, 0x0501f005, 0x4a0370e4,
- 0x82aa2a82, 0x4a0370e5, 0xaaaaa2aa, 0x4a0370e6,
- 0xaaaaaaaa, 0x640370fb, 0x4a0370e6, 0xaaaaaaaa,
- 0x608380ee, 0x4a038006, 0x90000000, 0x59c00007,
- 0x8c00051e, 0x05fe0a19, 0x600380ee, 0x4a038006,
- 0x90000000, 0x59c00007, 0x8c00051e, 0x05fe0a13,
- 0x5c00a800, 0x5c00b000, 0x5c00a000, 0x5c038000,
- 0x1c01f000, 0x4d300000, 0x4d2c0000, 0x4d340000,
+ 0x4a038006, 0x60000009, 0x59c00007, 0x4a038006,
+ 0x6000000b, 0x59c00007, 0x4c040000, 0x0501f817,
+ 0x5c000800, 0x4a038009, 0xf4f60000, 0x91c38420,
+ 0x80040840, 0x05fe07e6, 0x600380ee, 0x6443c822,
+ 0x640370e8, 0x0501f83c, 0x4a0370ee, 0x00100000,
+ 0x4a0370ee, 0x00080102, 0x4a0370e9, 0x00000400,
+ 0x4a0370e9, 0x00003a0f, 0x640370e8, 0x640770e8,
+ 0x5c038000, 0x1c01f000, 0x59c00007, 0x4a038006,
+ 0xe0000001, 0x61000800, 0x497b8005, 0x59c00007,
+ 0x80040840, 0x05fe07fd, 0x4a038006, 0x30000001,
+ 0x59c00007, 0x8c000508, 0x05fe07fe, 0x59c00007,
+ 0x4a038006, 0xb0000003, 0x59c00007, 0x4a038006,
+ 0xb0000005, 0x59c00007, 0x4a038006, 0xb0000001,
+ 0x59c00007, 0x4a038006, 0xb0000009, 0x59c00007,
+ 0x4a038006, 0xb0000007, 0x59c00007, 0x4a038006,
+ 0xb000000b, 0x59c00007, 0x4a038006, 0x60000001,
+ 0x59c00007, 0x4a038006, 0x60000003, 0x59c00007,
+ 0x4a038006, 0x60000005, 0x59c00007, 0x4a038006,
+ 0x60000007, 0x59c00007, 0x4a038006, 0xe0000000,
+ 0x1c01f000, 0x4c5c0000, 0x4178b800, 0x0501f809,
+ 0x5c00b800, 0x1c01f000, 0x4803c856, 0x4c5c0000,
+ 0x905cbd41, 0x0501f803, 0x5c00b800, 0x1c01f000,
+ 0x4803c856, 0x4dc00000, 0x4c500000, 0x4c580000,
+ 0x4c540000, 0x640370e8, 0x805cb9c0, 0x05000009,
+ 0x64138807, 0x4a0370f2, 0x80000000, 0x59b800ea,
+ 0x8c000510, 0x05000003, 0x59b800e0, 0x05fdf7fc,
+ 0x608380ee, 0x0501fd3e, 0x59c00007, 0x4a038006,
+ 0x20000000, 0x59c00007, 0x4a038006, 0x8000000a,
+ 0x59c00007, 0x4a038006, 0x8000000b, 0x59c00007,
+ 0x4a038006, 0x40000001, 0x83c00580, 0x00007700,
+ 0x05000003, 0x600380ee, 0x05fdf7ef, 0x608380ee,
+ 0x60000810, 0x59c00007, 0x8c00051e, 0x05000006,
+ 0x4a038006, 0x90000001, 0x80040840, 0x05fe07fa,
+ 0x05fdfa25, 0x83c00580, 0x00007700, 0x05000003,
+ 0x600380ee, 0x05fdf7f3, 0x4178a000, 0x805cb9c0,
+ 0x0502000f, 0x6080b000, 0x91b8ac20, 0x0565fc2f,
+ 0x640770fb, 0x4a037020, 0x0010004b, 0x59a80061,
+ 0x82000500, 0x0000ffff, 0x48037021, 0x4a037035,
+ 0x001141a6, 0x4a037038, 0x00100042, 0x640770fb,
+ 0x6080b000, 0x91b8ac00, 0x0565fc20, 0x6100b000,
+ 0xb1b8ac00, 0x0565fc1d, 0x805cb9c0, 0x05020006,
+ 0x4a0370e4, 0xaaaaaaaa, 0x4a0370e5, 0xaaaaaaaa,
+ 0x0501f005, 0x4a0370e4, 0x82aa2a82, 0x4a0370e5,
+ 0xaaaaa2aa, 0x4a0370e6, 0xaaaaaaaa, 0x640370fb,
+ 0x4a0370e6, 0xaaaaaaaa, 0x608380ee, 0x4a038006,
+ 0x90000000, 0x59c00007, 0x8c00051e, 0x05fe09f2,
+ 0x600380ee, 0x4a038006, 0x90000000, 0x59c00007,
+ 0x8c00051e, 0x05fe09ec, 0x5c00a800, 0x5c00b000,
+ 0x5c00a000, 0x5c038000, 0x1c01f000, 0x4d300000,
+ 0x4d2c0000, 0x4d340000, 0x4d400000, 0x4cfc0000,
+ 0x4d380000, 0x4d3c0000, 0x4d440000, 0x4d4c0000,
+ 0x4d480000, 0x4c5c0000, 0x4c600000, 0x4c640000,
+ 0x4d040000, 0x4cf40000, 0x4cf80000, 0x0001f8d0,
+ 0x5c01f000, 0x5c01e800, 0x5c020800, 0x5c00c800,
+ 0x5c00c000, 0x5c00b800, 0x5c029000, 0x5c029800,
+ 0x5c028800, 0x5c027800, 0x5c027000, 0x5c01f800,
+ 0x5c028000, 0x5c026800, 0x5c025800, 0x5c026000,
+ 0x1c01f000, 0x5c000000, 0x4c000000, 0x4803c857,
+ 0x4c540000, 0x4c500000, 0x4d240000, 0x4d200000,
+ 0x4d1c0000, 0x4d300000, 0x4d2c0000, 0x4d340000,
0x4d400000, 0x4cfc0000, 0x4d380000, 0x4d3c0000,
0x4d440000, 0x4d4c0000, 0x4d480000, 0x4c5c0000,
0x4c600000, 0x4c640000, 0x4d040000, 0x4cf40000,
- 0x4cf80000, 0x0001f8c8, 0x5c01f000, 0x5c01e800,
- 0x5c020800, 0x5c00c800, 0x5c00c000, 0x5c00b800,
- 0x5c029000, 0x5c029800, 0x5c028800, 0x5c027800,
- 0x5c027000, 0x5c01f800, 0x5c028000, 0x5c026800,
- 0x5c025800, 0x5c026000, 0x1c01f000, 0x493bc857,
- 0x0001f0f5, 0x83300500, 0x000000ff, 0x90000c88,
- 0x05fe19e6, 0x0c01f023, 0x1c01f000, 0x82000d00,
- 0xc2000038, 0x05fe09da, 0x05fdf9e0, 0x00000000,
- 0x00000048, 0x00000054, 0x00000053, 0x00100c17,
- 0x00100c42, 0x00100c30, 0x00100c5c, 0x00100c21,
- 0x00100c2a, 0x00100c33, 0x00100c58, 0x00100ccf,
- 0x00100c17, 0x00100cd1, 0x00100c17, 0x00100c17,
- 0x00100cd4, 0x00100cd8, 0x00100ce9, 0x00100cfb,
- 0x00100c84, 0x00100d02, 0x00100d0c, 0x00100c17,
- 0x00100c17, 0x00100c5d, 0x00100c17, 0x05fdf9c3,
- 0x00100c20, 0x00100d8d, 0x00100ca1, 0x00100cc1,
- 0x00100c20, 0x00100c20, 0x00100c20, 0x001010e6,
- 0x05fdf9ba, 0x4803c856, 0x59300004, 0x8c00053e,
- 0x05020003, 0x61567000, 0x0009f000, 0x053dfc92,
- 0x05fc07fd, 0x1c01f000, 0x4803c856, 0x0501f8e3,
- 0x40002800, 0x41782000, 0x615a7000, 0x0009f000,
- 0x4803c856, 0x615e7000, 0x0009f000, 0x4803c856,
- 0x0531ff4c, 0x4a0370e5, 0x00800000, 0x40000000,
- 0x59b800e5, 0x8c00052c, 0x05000007, 0x4a0370e5,
+ 0x4cf80000, 0x4c580000, 0x0001f86e, 0x5c00b000,
+ 0x5c01f000, 0x5c01e800, 0x5c020800, 0x5c00c800,
+ 0x5c00c000, 0x5c00b800, 0x5c029000, 0x5c029800,
+ 0x5c028800, 0x5c027800, 0x5c027000, 0x5c01f800,
+ 0x5c028000, 0x5c026800, 0x5c025800, 0x5c026000,
+ 0x5c023800, 0x5c024000, 0x5c024800, 0x5c00a000,
+ 0x5c00a800, 0x1c01f000, 0x493bc857, 0x0001f0fd,
+ 0x83300500, 0x000000ff, 0x90000c88, 0x05fe198e,
+ 0x0c01f026, 0x1c01f000, 0x82000d00, 0xc2000038,
+ 0x05fe0982, 0x05fdf988, 0x00000000, 0x00000048,
+ 0x00000054, 0x00000053, 0x00100cad, 0x00100cd8,
+ 0x00100cc6, 0x00100cf2, 0x00100cb7, 0x00100cc0,
+ 0x00100cc9, 0x00100cee, 0x00100d6b, 0x00100cad,
+ 0x00100d6d, 0x00100cad, 0x00100cad, 0x00100d70,
+ 0x00100d74, 0x00100d85, 0x00100d97, 0x00100d20,
+ 0x00100d9e, 0x00100da8, 0x00100cad, 0x00100cad,
+ 0x00100cf3, 0x00100cad, 0x00100cad, 0x00100d1a,
+ 0x00100cad, 0x05fdf968, 0x00100cb6, 0x00100e29,
+ 0x00100d3d, 0x00100d5d, 0x00100cb6, 0x00100cb6,
+ 0x00100cb6, 0x00101181, 0x05fdf95f, 0x4803c856,
+ 0x59300004, 0x8c00053e, 0x05020003, 0x61567000,
+ 0x0009f039, 0x0541f8ba, 0x05fc07fd, 0x1c01f000,
+ 0x4803c856, 0x0501f8e9, 0x40002800, 0x41782000,
+ 0x615a7000, 0x0009f039, 0x4803c856, 0x615e7000,
+ 0x0009f039, 0x4803c856, 0x0535faa6, 0x4a0370e5,
0x00800000, 0x40000000, 0x59b800e5, 0x8c00052c,
- 0x05fe099a, 0x1c01f000, 0x4803c856, 0x59325809,
- 0x812e59c0, 0x05000012, 0x59300008, 0x8c00051a,
- 0x0502000b, 0x592c040c, 0x8c00051c, 0x05020003,
- 0x4a026013, 0xffffffff, 0x59300004, 0x8c00053e,
- 0x05020005, 0x61227000, 0x0009f000, 0x641e5a0a,
- 0x05fdf7f8, 0x053dfc64, 0x05fc07fb, 0x1c01f000,
- 0x4803c856, 0x83300500, 0x00ffffff, 0x0539f306,
- 0x1c01f000, 0x4178b800, 0x59300817, 0x82040580,
- 0xdeaddead, 0x05000011, 0x82040580, 0x00110228,
- 0x05000009, 0x48066009, 0x497a6017, 0x0001f945,
- 0x59300008, 0x60840800, 0x80040540, 0x48026008,
- 0x0501f014, 0x48066009, 0x42026000, 0x00111ad0,
- 0x0001f945, 0x0501f00f, 0x59a800de, 0x80000d40,
- 0x4807c857, 0x05fc0965, 0x58041000, 0x49780800,
- 0x59a800df, 0x80040580, 0x05020004, 0x497b50de,
- 0x497b50df, 0x0501f002, 0x480b50de, 0x05fdf7ee,
- 0x6503900d, 0x642370e5, 0x64126203, 0x1c01f000,
- 0x4803c856, 0x813261c0, 0x05fc0954, 0x0551f842,
+ 0x05000007, 0x4a0370e5, 0x00800000, 0x40000000,
+ 0x59b800e5, 0x8c00052c, 0x05fe093f, 0x1c01f000,
+ 0x4803c856, 0x59325809, 0x812e59c0, 0x05000012,
+ 0x59300008, 0x8c00051a, 0x0502000b, 0x592c040c,
+ 0x8c00051c, 0x05020003, 0x4a026013, 0xffffffff,
+ 0x59300004, 0x8c00053e, 0x05020005, 0x61227000,
+ 0x0009f039, 0x641e5a0a, 0x05fdf7f8, 0x0541f88c,
+ 0x05fc07fb, 0x1c01f000, 0x4803c856, 0x83300500,
+ 0x00ffffff, 0x0539f724, 0x1c01f000, 0x4178b800,
+ 0x59300817, 0x82040580, 0xdeaddead, 0x05000011,
+ 0x82040580, 0x001141cc, 0x05000009, 0x48066009,
+ 0x497a6017, 0x0001f94d, 0x59300008, 0x60840800,
+ 0x80040540, 0x48026008, 0x0501f014, 0x48066009,
+ 0x42026000, 0x00115a74, 0x0001f94d, 0x0501f00f,
+ 0x59a800e3, 0x80000d40, 0x4807c857, 0x05fc090a,
+ 0x58041000, 0x49780800, 0x59a800e4, 0x80040580,
+ 0x05020004, 0x497b50e3, 0x497b50e4, 0x0501f002,
+ 0x480b50e3, 0x05fdf7ee, 0x6503900d, 0x642370e5,
+ 0x64126203, 0x1c01f000, 0x42000000, 0x0011235f,
+ 0x0565fa3e, 0x42000000, 0x00112484, 0x0565f238,
+ 0x4803c856, 0x813261c0, 0x05fc08f3, 0x0551fd2f,
0x0500000b, 0x59325809, 0x592c020c, 0x84000552,
- 0x48025a0c, 0x0505f8a4, 0x59300004, 0x8c00053e,
- 0x05020004, 0x417a7800, 0x054dfb83, 0x1c01f000,
- 0x053dfc25, 0x05fc07fc, 0x1c01f000, 0x4c040000,
+ 0x48025a0c, 0x0505f87a, 0x59300004, 0x8c00053e,
+ 0x05020004, 0x417a7800, 0x0551f859, 0x1c01f000,
+ 0x0541f847, 0x05fc07fc, 0x1c01f000, 0x4c040000,
0x59b808ea, 0x90040d07, 0x90040583, 0x05000004,
0x42000000, 0x60000000, 0x0501f894, 0x5c000800,
0x1c01f000, 0x0501f8d7, 0x05000015, 0x59325809,
0x812e59c0, 0x05000012, 0x592c0208, 0x82000500,
0x000000ff, 0x90000da9, 0x0502000d, 0x59300203,
0x90000583, 0x05000008, 0x59300808, 0x84040d26,
- 0x48066008, 0x0001f945, 0x6503900d, 0x642370e5,
- 0x1c01f000, 0x053dfc04, 0x05fc07f8, 0x42000000,
- 0x0010e44c, 0x0561fb23, 0x59880151, 0x80000000,
- 0x48031151, 0x6503900d, 0x42000000, 0xc0000000,
- 0x0001f13a, 0x4c5c0000, 0x4c600000, 0x4c640000,
- 0x4200c800, 0x00110209, 0x6000b860, 0x6014c002,
- 0x0531ffed, 0x4a0370e4, 0x02000000, 0x5c00c800,
+ 0x48066008, 0x0001f94d, 0x6503900d, 0x642370e5,
+ 0x1c01f000, 0x0541f826, 0x05fc07f8, 0x42000000,
+ 0x001123f0, 0x0565fa02, 0x59880154, 0x80000000,
+ 0x48031154, 0x6503900d, 0x42000000, 0xc0000000,
+ 0x0001f142, 0x4c5c0000, 0x4c600000, 0x4c640000,
+ 0x4200c800, 0x001141ad, 0x6000b860, 0x6014c002,
+ 0x0535fb41, 0x4a0370e4, 0x02000000, 0x5c00c800,
0x5c00c000, 0x5c00b800, 0x1c01f000, 0x4933c857,
- 0x0005f7dc, 0x4933c857, 0x0501fbab, 0x1c01f000,
- 0x41300800, 0x800409c0, 0x05fe0904, 0x05fdf8fc,
- 0x42000000, 0x0010e44c, 0x0561fb02, 0x4933c857,
- 0x813261c0, 0x05fc08fd, 0x0501f830, 0x40002800,
- 0x0561fa66, 0x0501f88e, 0x05000006, 0x5932680a,
- 0x59340200, 0x8c00050e, 0x59300416, 0x05520ad7,
- 0x1c01f000, 0x42000000, 0x0010e44c, 0x0561faf1,
- 0x4933c857, 0x813261c0, 0x05fc08ec, 0x0501f880,
- 0x0500000a, 0x054dffd8, 0x05000008, 0x59325809,
+ 0x0009f010, 0x4933c857, 0x0501fbad, 0x1c01f000,
+ 0x41300800, 0x800409c0, 0x05fe08a3, 0x05fdf89b,
+ 0x42000000, 0x001123f0, 0x0565f9e1, 0x4933c857,
+ 0x813261c0, 0x05fc089c, 0x0501f830, 0x40002800,
+ 0x0565f942, 0x0501f88e, 0x05000006, 0x5932680a,
+ 0x59340200, 0x8c00050e, 0x59300416, 0x05520fd3,
+ 0x1c01f000, 0x42000000, 0x001123f0, 0x0565f9d0,
+ 0x4933c857, 0x813261c0, 0x05fc088b, 0x0501f880,
+ 0x0500000a, 0x0551fcc5, 0x05000008, 0x59325809,
0x592c020c, 0x84000544, 0x8400054e, 0x48025a0c,
- 0x417a7800, 0x054dfb1c, 0x1c01f000, 0x485fc857,
+ 0x417a7800, 0x054dfff2, 0x1c01f000, 0x485fc857,
0x5c000000, 0x4d780000, 0x4203e000, 0x50000000,
- 0x6014b900, 0x05fdf0dd, 0x4933c857, 0x913004a0,
- 0x05fe18d6, 0x83300c00, 0x0010e4c1, 0x50040000,
+ 0x6014b900, 0x05fdf07c, 0x4933c857, 0x913004a0,
+ 0x05fe1875, 0x83300c00, 0x00112465, 0x50040000,
0x80000000, 0x05001002, 0x44000800, 0x1c01f000,
0x4933c857, 0x05fdf7f6, 0x4807c856, 0x59b800ea,
0x8c000510, 0x05fc07fd, 0x59b800e0, 0x4803c857,
0x1c01f000, 0x4803c856, 0x42000000, 0x10000000,
- 0x41300800, 0x0501f019, 0x8c000510, 0x00000140,
+ 0x41300800, 0x0501f019, 0x8c000510, 0x00000148,
0x4c040000, 0x0501f808, 0x5c000800, 0x90100488,
- 0x00001140, 0x4c040000, 0x05fdfeab, 0x5c000800,
- 0x0001f140, 0x59b800e2, 0x59b820e2, 0x80100580,
+ 0x00001148, 0x4c040000, 0x05fdfe71, 0x5c000800,
+ 0x0001f148, 0x59b800e2, 0x59b820e2, 0x80100580,
0x05fe07fd, 0x80102114, 0x0501f001, 0x40101800,
0x800c190a, 0x9010051f, 0x900c1d1f, 0x800c2480,
0x9010251f, 0x1c01f000, 0x82000500, 0xf0000000,
0x82040d00, 0x0fffffff, 0x80040d40, 0x4807c857,
- 0x42001000, 0x0010e38b, 0x50080000, 0x80000540,
+ 0x42001000, 0x0011232c, 0x50080000, 0x80000540,
0x05020004, 0x640f70e5, 0x4a0370e4, 0x00000300,
0x80000000, 0x44001000, 0x60001008, 0x59b800ea,
0x8c000510, 0x0500000b, 0x05fdffdf, 0x90100488,
- 0x05001007, 0x4c040000, 0x4c080000, 0x05fdfe82,
+ 0x05001007, 0x4c040000, 0x4c080000, 0x05fdfe48,
0x5c001000, 0x5c000800, 0x0501f01c, 0x59b800ea,
0x8c000516, 0x05020019, 0x4a0370e4, 0x00300000,
0x480770e1, 0x600011fe, 0x80081040, 0x05000010,
0x59b808e4, 0x8c040528, 0x05fe07fc, 0x42001000,
- 0x0010e38b, 0x50080000, 0x80000040, 0x05020004,
- 0x640b70e5, 0x4a0370e4, 0x00000200, 0x05fc1877,
+ 0x0011232c, 0x50080000, 0x80000040, 0x05020004,
+ 0x640b70e5, 0x4a0370e4, 0x00000200, 0x05fc1816,
0x44001000, 0x8c04052c, 0x1c01f000, 0x41f80000,
- 0x50000000, 0x05fdf871, 0x80081040, 0x05fe07d8,
- 0x41f80000, 0x50000000, 0x05fdf86c, 0x4d380000,
+ 0x50000000, 0x05fdf810, 0x80081040, 0x05fe07d8,
+ 0x41f80000, 0x50000000, 0x05fdf80b, 0x4d380000,
0x59300c07, 0x90040589, 0x05020004, 0x611e7000,
- 0x0009f800, 0x80000580, 0x5c027000, 0x1c01f000,
- 0x4c500000, 0x59a80249, 0x8c000518, 0x05000006,
+ 0x0009f839, 0x80000580, 0x5c027000, 0x1c01f000,
+ 0x4c500000, 0x59a8024c, 0x8c000518, 0x05000006,
0x640b900d, 0x59c8a020, 0x640f900d, 0x59c80820,
0x0501f005, 0x6407900d, 0x59c8a020, 0x640b900d,
0x59c80820, 0x8c50052e, 0x05000002, 0x900409c0,
- 0x82040d00, 0x0000ffff, 0x0531fd12, 0x5c00a000,
- 0x1c01f000, 0x42000000, 0x0010e43e, 0x0561fa4d,
- 0x05fdffe8, 0x05000052, 0x4933c857, 0x59300407,
- 0x90000580, 0x0500004e, 0x59c82021, 0x6407900d,
+ 0x82040d00, 0x0000ffff, 0x0535f864, 0x5c00a000,
+ 0x1c01f000, 0x42000000, 0x001123df, 0x0565f92c,
+ 0x05fdffe8, 0x05000054, 0x4933c857, 0x59300407,
+ 0x90000580, 0x05000050, 0x59c82021, 0x6407900d,
0x59c82821, 0x82142d00, 0x0000ffff, 0x59325809,
- 0x812e59c0, 0x05000046, 0x59300008, 0x8c000536,
- 0x05020043, 0x5932680a, 0x0525fb16, 0x05520a03,
- 0x599c0019, 0x8c00050c, 0x0502001e, 0x0525fb11,
- 0x0502001c, 0x59300813, 0x4807c857, 0x592c040c,
- 0x8c00051c, 0x05020015, 0x8400055c, 0x48025c0c,
- 0x42000000, 0x0010e3ba, 0x0561fa2a, 0x592c0a08,
- 0x82040d00, 0x000000ff, 0xb0040588, 0x05000007,
- 0x90040598, 0x05000005, 0xb00405a8, 0x05000003,
- 0xb00405aa, 0x05020005, 0x59300013, 0x0555f8fb,
- 0x80000d40, 0x48065806, 0x4a026013, 0x7fffffff,
- 0x59300008, 0x8c000516, 0x0502001d, 0x48166015,
- 0x0525faf0, 0x05000004, 0x59300416, 0x8c00051c,
- 0x05000004, 0x599c0019, 0x8c00050c, 0x05000014,
- 0x0501fcfc, 0x05020012, 0x0501fa0b, 0x40280000,
- 0x4802600f, 0x05000005, 0x4832600d, 0x50200000,
- 0x4802600c, 0x4822600e, 0x59300416, 0x8c00051c,
- 0x05020004, 0x599c0019, 0x8c00050c, 0x05020871,
- 0x6503900d, 0x642370e5, 0x1c01f000, 0x42000000,
- 0x0010e44c, 0x0561f9f7, 0x59880153, 0x80000000,
- 0x48031153, 0x6503900d, 0x42000000, 0xc0000000,
- 0x0001f13a, 0x4cf80000, 0x58f40000, 0x8001f540,
- 0x0501f81e, 0x41781800, 0x0501f903, 0x05020013,
- 0x44140800, 0x0501f826, 0x05000010, 0x40043800,
- 0x60041800, 0x40142000, 0x0501f8fb, 0x0502000b,
- 0x801c3800, 0x501c0000, 0x44000800, 0x0501f80f,
- 0x801c0580, 0x05000004, 0x44103800, 0x801c3840,
- 0x44143800, 0x0501f816, 0x5c01f000, 0x1c01f000,
- 0x80f9f1c0, 0x05020003, 0x58f41202, 0x0501f002,
- 0x601c1000, 0x1c01f000, 0x80f9f1c0, 0x05020005,
- 0x58f40401, 0x90000482, 0x80f40400, 0x0501f004,
- 0x58f80401, 0x90000482, 0x80f80400, 0x50002800,
- 0x80000000, 0x50002000, 0x1c01f000, 0x80f9f1c0,
- 0x05020006, 0x58f40401, 0x90000482, 0x05f81fbb,
- 0x4801ec01, 0x0501f008, 0x58f80401, 0x90000482,
- 0x05f81fb6, 0x4801f401, 0x90000582, 0x05020002,
- 0x0501f817, 0x58f40202, 0x80000040, 0x4801ea02,
- 0x05f80fae, 0x90000581, 0x1c01f000, 0x82f40580,
- 0xffffffff, 0x0500000d, 0x58f40201, 0x82000580,
- 0x0000dcb3, 0x05fa0fa5, 0x58f40000, 0x8001f540,
- 0x05000005, 0x58f80201, 0x82000580, 0x0000ddb9,
- 0x05fa0f9e, 0x0501f809, 0x1c01f000, 0x4d2c0000,
- 0x40fa5800, 0x05fdfb51, 0x4979e800, 0x4179f000,
- 0x5c025800, 0x1c01f000, 0x80f5e9c0, 0x05000008,
- 0x80f9f1c0, 0x05fe0ff6, 0x4d2c0000, 0x40f65800,
- 0x05fdfb46, 0x4179e800, 0x5c025800, 0x1c01f000,
- 0x4cf40000, 0x0525fa67, 0x0502002e, 0x59300808,
- 0x82040500, 0x00003000, 0x0502002a, 0x8c040522,
- 0x0500002a, 0x5930002b, 0x8001ed40, 0x05f80f7f,
- 0x82000580, 0xffffffff, 0x05000022, 0x58f40201,
- 0x82000580, 0x0000dcb3, 0x05fa0f78, 0x58f40a02,
- 0x82040500, 0x0000fffe, 0x05000003, 0x05fdff86,
- 0x58f40a02, 0x9004048f, 0x0502107a, 0x80040800,
- 0x4805ea02, 0x90040588, 0x0500007d, 0x90040488,
- 0x05001008, 0x58f40000, 0x8001ed40, 0x05f80f67,
- 0x58f40201, 0x82000580, 0x0000ddb9, 0x05fa0f63,
- 0x58f40401, 0x90000c02, 0x4805ec01, 0x80f40400,
- 0x59300814, 0x44040000, 0x80000000, 0x45780000,
- 0x5c01e800, 0x1c01f000, 0x60001020, 0x4203e000,
- 0xb0800000, 0x4203f800, 0x0c000000, 0x40000000,
- 0x80081040, 0x05f80f51, 0x05ffb7fb, 0x59300808,
- 0x84040d62, 0x48066008, 0x4203f800, 0x08000000,
- 0x4d2c0000, 0x05fdfae0, 0x0500004e, 0x492e602b,
- 0x4a025a01, 0x0000dcb3, 0x59300009, 0x80001d40,
- 0x05f80f42, 0x580c0813, 0x48065803, 0x580c0208,
- 0x82000500, 0x000000ff, 0xb00005a8, 0x05000007,
- 0x90000582, 0x05000005, 0x90000598, 0x05000003,
- 0x90000588, 0x0502002b, 0x580c1801, 0x800c19c0,
- 0x05f80f32, 0x580c0c09, 0x90040d03, 0x90040582,
- 0x05020003, 0x592c0803, 0x0501f022, 0x580c2a0a,
- 0x580c000b, 0x59301813, 0x800c0580, 0x05000021,
- 0x90040580, 0x0500000e, 0x40140000, 0x4c080000,
- 0x400c1000, 0x41780800, 0x0539f8d4, 0x800409c0,
- 0x05fa0f1e, 0x90140c08, 0x0539f8b4, 0x5c001000,
- 0x40041800, 0x592c0803, 0x0501f015, 0x90140408,
- 0x4c080000, 0x400c1000, 0x41780800, 0x0539f8c7,
- 0x800409c0, 0x05fa0f11, 0x40140800, 0x0539f8a7,
- 0x5c001000, 0x40041800, 0x592c0803, 0x0501f008,
- 0x59301813, 0x40040000, 0x800c0580, 0x05020004,
- 0x497a5a02, 0x64125c01, 0x0501f007, 0x64065a02,
- 0x641a5c01, 0x497a5804, 0x400c0000, 0x80040480,
- 0x48025805, 0x412de800, 0x5c025800, 0x05fdf789,
- 0x5c025800, 0x4a02602b, 0xffffffff, 0x05fdf79d,
- 0x4d2c0000, 0x58f65800, 0x05fdfaac, 0x40f65800,
- 0x05fdfaaa, 0x5c025800, 0x05fdf7f7, 0x4d2c0000,
- 0x05fdfa85, 0x05fc07fa, 0x4a025a01, 0x0000ddb9,
- 0x640a5c01, 0x492de800, 0x412de800, 0x5c025800,
- 0x05fdf784, 0x05fdff13, 0x90f40404, 0x800c0400,
- 0x40000800, 0x50040000, 0x80100580, 0x05000012,
- 0x90040c02, 0x80081040, 0x05fe07fb, 0x80f9f1c0,
- 0x0500000e, 0x58f41202, 0x90081487, 0x90f80402,
- 0x800c0400, 0x40000800, 0x50040000, 0x80100580,
- 0x05000005, 0x90040c02, 0x80081040, 0x05fe07fb,
- 0x0501f002, 0x1c01f000, 0x90000541, 0x05fdf7fe,
- 0x4cf40000, 0x4cf80000, 0x4001e800, 0x812e59c0,
- 0x05000021, 0x592c0a0a, 0x800409c0, 0x0502001e,
- 0x82f40580, 0xffffffff, 0x05000019, 0x58f40201,
- 0x82000580, 0x0000dcb3, 0x05fa0ebc, 0x58f40000,
- 0x8001f540, 0x05000005, 0x58f80201, 0x82000580,
- 0x0000ddb9, 0x05fa0eb5, 0x41783800, 0x58f44003,
- 0x0501f833, 0x05020009, 0x05fdff1c, 0x497a602b,
- 0x59300808, 0x84040d22, 0x48066008, 0x5c01f000,
- 0x5c01e800, 0x1c01f000, 0x05fdff14, 0x64465a0a,
- 0x05fdf7f7, 0x05fdfefa, 0x05fdf7f5, 0x4cf40000,
- 0x4cf80000, 0x4001e800, 0x90040581, 0x0502001c,
- 0x82f40580, 0xffffffff, 0x05000017, 0x58f40201,
- 0x82000580, 0x0000dcb3, 0x05fa0e98, 0x58f40000,
- 0x8001f540, 0x05000005, 0x58f80201, 0x82000580,
- 0x0000ddb9, 0x05fa0e91, 0x41783800, 0x58f44003,
- 0x0501f80f, 0x05020007, 0x05fdfef8, 0x60040800,
- 0x497a602b, 0x5c01f000, 0x5c01e800, 0x1c01f000,
- 0x05fdfef2, 0x60440800, 0x05fdf7fa, 0x4c040000,
- 0x05fdfed7, 0x5c000800, 0x05fdf7f6, 0x4803c856,
- 0x401c2000, 0x41781800, 0x4c200000, 0x05fdff96,
- 0x5c004000, 0x05020022, 0x40202000, 0x60041800,
- 0x05fdff91, 0x0502001e, 0x05fdfea2, 0x40082800,
- 0x90f43404, 0x50182000, 0x40100000, 0x801c0580,
- 0x05000004, 0x60041800, 0x05fdff87, 0x05020014,
- 0x90183402, 0x80142840, 0x05fe07f7, 0x80f9f1c0,
- 0x0500000e, 0x58f42a02, 0x90142c87, 0x90f83402,
- 0x50182000, 0x40100000, 0x801c0580, 0x05000004,
- 0x60041800, 0x05fdff78, 0x05020005, 0x90183402,
- 0x80142840, 0x05fe07f7, 0x1c01f000, 0x90000541,
- 0x05fdf7fe, 0x05f9fe55, 0x592c020e, 0x8c000502,
- 0x05fc07fd, 0x497a6014, 0x0501fdbe, 0x412c7000,
- 0x59300008, 0x84000556, 0x48026008, 0x9004050f,
- 0x82000c00, 0x001012ac, 0x50044000, 0x80204000,
- 0x50200000, 0x80187c00, 0x583c2800, 0x583c2001,
- 0x583c1002, 0x58380a0b, 0x40187000, 0x5818300b,
- 0x59303808, 0x497a6015, 0x0001f183, 0x592c040e,
- 0x8c000500, 0x05f80e39, 0x592c0011, 0x48026014,
- 0x05fdf7e6, 0x592c040c, 0x8c000502, 0x05fc07de,
- 0x592c040d, 0x80000540, 0x05fc07db, 0x90000c82,
- 0x0500100e, 0x58380001, 0x80007540, 0x05f80e2b,
- 0x58380208, 0x9000050f, 0x82000400, 0x001012ac,
- 0x50004000, 0x40040000, 0x800409c0, 0x05000004,
- 0x90040c85, 0x05fe17f4, 0x80204400, 0x50200000,
- 0x80387c00, 0x583c2800, 0x583c2001, 0x583c1002,
- 0x592c0a0b, 0x592c3011, 0x59303808, 0x497a6014,
- 0x497a6015, 0x48166010, 0x48126011, 0x480a6012,
- 0x481a6013, 0x80040840, 0x4806600f, 0x0000018a,
- 0x80204000, 0x50201800, 0x800c19c0, 0x0502000a,
- 0x58380001, 0x80007540, 0x05f80e08, 0x58380208,
- 0x9000050f, 0x82000400, 0x001012ac, 0x50004000,
- 0x50201800, 0x483a600d, 0x480e600c, 0x4822600e,
- 0x0001f18a, 0x4803c856, 0x592c020c, 0x8c00051e,
- 0x05020016, 0x50200000, 0x80306c00, 0x40240000,
- 0x0c01f001, 0x00100ff5, 0x00100ff5, 0x00100ffd,
- 0x00100ff5, 0x00100ff5, 0x00100ff5, 0x00100ff5,
- 0x00100ff5, 0x00100ffd, 0x00100ff5, 0x00100ffd,
- 0x00100ff5, 0x00100ff5, 0x00100ffd, 0x00100ff5,
- 0x00100ff5, 0x05f9fde5, 0x8400051e, 0x48025a0c,
- 0x50200000, 0x80306c00, 0x58343801, 0x481e6011,
- 0x0501f007, 0x58341802, 0x58342800, 0x58343801,
- 0x480e6012, 0x48166010, 0x481e6011, 0x0501f289,
- 0x4933c857, 0x5931f809, 0x59301006, 0x800811c0,
- 0x05000009, 0x41780800, 0x60280000, 0x0535ff83,
- 0x80080102, 0x05020002, 0x84001542, 0x80081040,
- 0x4809fc0a, 0x640a6006, 0x592c040d, 0x90000508,
- 0x05000008, 0x0501f834, 0x59300203, 0x90000584,
- 0x05020003, 0x61227000, 0x0009f800, 0x1c01f000,
- 0x4cfc0000, 0x58fc0208, 0x82000500, 0x000000ff,
- 0xb0000588, 0x05000003, 0x900005a2, 0x05020009,
- 0x58fc040c, 0x8c000500, 0x05000006, 0x58fc080f,
- 0x8c040516, 0x0500001c, 0x58fc000b, 0x0501f00a,
- 0x58fc040c, 0x8c000512, 0x05020019, 0x58fc0c0d,
- 0x8c040516, 0x05020003, 0x5c01f800, 0x1c01f000,
- 0x58fc000e, 0x4c000000, 0x4d2c0000, 0x40fe5800,
- 0x59300013, 0x0551fe81, 0x5c025800, 0x80000d40,
- 0x5c000000, 0x80040580, 0x05020007, 0x59300008,
- 0x84000500, 0x48026008, 0x61227000, 0x5c01f800,
- 0x0009f000, 0x5c01f800, 0x1c01f000, 0x58fdf80d,
- 0x05fdf7e7, 0x5c000000, 0x4c000000, 0x4803c857,
- 0x4933c857, 0x59b808ea, 0x90040d07, 0x90040580,
- 0x05000021, 0x90040583, 0x0500001f, 0x59300407,
- 0x4c000000, 0x64026407, 0x61043000, 0x4a0370e5,
- 0x00003000, 0x42000000, 0x50000000, 0x41300800,
- 0x4c180000, 0x05fdfcd5, 0x5c003000, 0x0500000d,
- 0x60780000, 0x80000040, 0x05fe07ff, 0x80183040,
- 0x05fe07f5, 0x42000000, 0x40000000, 0x41300800,
- 0x05fdfcca, 0x5988014d, 0x80000000, 0x4803114d,
- 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, 0x0529f828, 0x05020011,
- 0x4a038891, 0x0000ffff, 0x497b8880, 0x4ce80000,
- 0x6059d000, 0x0531ff78, 0x497b8892, 0x6059d000,
- 0x0531ff75, 0x5c01d000, 0x42000000, 0x0010e497,
- 0x055dff48, 0x0501f810, 0x5c038000, 0x0529f102,
- 0x0501f81f, 0x4c080000, 0x4c140000, 0x42000000,
- 0x0010e498, 0x055dff3f, 0x0501f807, 0x5c002800,
+ 0x812e59c0, 0x05000048, 0x59300008, 0x8c000536,
+ 0x05020045, 0x5932680a, 0x0525fcec, 0x05520eff,
+ 0x0565fa96, 0x0502001e, 0x0525fce8, 0x0502001c,
+ 0x59300813, 0x4807c857, 0x592c040c, 0x8c00051c,
+ 0x05020015, 0x8400055c, 0x48025c0c, 0x42000000,
+ 0x0011235b, 0x0565f90a, 0x592c0a08, 0x82040d00,
+ 0x000000ff, 0xb0040588, 0x05000007, 0x90040598,
+ 0x05000005, 0xb00405a8, 0x05000003, 0xb00405aa,
+ 0x05020005, 0x59300013, 0x0555fe06, 0x80000d40,
+ 0x48065806, 0x4a026013, 0x7fffffff, 0x59300014,
+ 0x80000540, 0x05000004, 0x59300008, 0x8c000516,
+ 0x0502001d, 0x48166015, 0x0525fcc4, 0x05000004,
+ 0x59300416, 0x8c00051c, 0x05000005, 0x0565fa6b,
+ 0x05000015, 0x0525fcbd, 0x05020013, 0x0501fcd0,
+ 0x05020011, 0x0501fa0a, 0x40280000, 0x4802600f,
+ 0x05000005, 0x4832600d, 0x50200000, 0x4802600c,
+ 0x4822600e, 0x59300416, 0x8c00051c, 0x05020003,
+ 0x0565fa5a, 0x05020871, 0x6503900d, 0x642370e5,
+ 0x1c01f000, 0x42000000, 0x001123f0, 0x0565f8d4,
+ 0x59880156, 0x80000000, 0x48031156, 0x6503900d,
+ 0x42000000, 0xc0000000, 0x0001f142, 0x4cf80000,
+ 0x58f40000, 0x8001f540, 0x0501f81e, 0x41781800,
+ 0x0501f903, 0x05020013, 0x44140800, 0x0501f826,
+ 0x05000010, 0x40043800, 0x60041800, 0x40142000,
+ 0x0501f8fb, 0x0502000b, 0x801c3800, 0x501c0000,
+ 0x44000800, 0x0501f80f, 0x801c0580, 0x05000004,
+ 0x44103800, 0x801c3840, 0x44143800, 0x0501f816,
+ 0x5c01f000, 0x1c01f000, 0x80f9f1c0, 0x05020003,
+ 0x58f41202, 0x0501f002, 0x601c1000, 0x1c01f000,
+ 0x80f9f1c0, 0x05020005, 0x58f40401, 0x90000482,
+ 0x80f40400, 0x0501f004, 0x58f80401, 0x90000482,
+ 0x80f80400, 0x50002800, 0x80000000, 0x50002000,
+ 0x1c01f000, 0x80f9f1c0, 0x05020006, 0x58f40401,
+ 0x90000482, 0x05f81f58, 0x4801ec01, 0x0501f008,
+ 0x58f80401, 0x90000482, 0x05f81f53, 0x4801f401,
+ 0x90000582, 0x05020002, 0x0501f817, 0x58f40202,
+ 0x80000040, 0x4801ea02, 0x05f80f4b, 0x90000581,
+ 0x1c01f000, 0x82f40580, 0xffffffff, 0x0500000d,
+ 0x58f40201, 0x82000580, 0x0000dcb3, 0x05fa0f42,
+ 0x58f40000, 0x8001f540, 0x05000005, 0x58f80201,
+ 0x82000580, 0x0000ddb9, 0x05fa0f3b, 0x0501f809,
+ 0x1c01f000, 0x4d2c0000, 0x40fa5800, 0x05fdfaea,
+ 0x4979e800, 0x4179f000, 0x5c025800, 0x1c01f000,
+ 0x80f5e9c0, 0x05000008, 0x80f9f1c0, 0x05fe0ff6,
+ 0x4d2c0000, 0x40f65800, 0x05fdfadf, 0x4179e800,
+ 0x5c025800, 0x1c01f000, 0x4cf40000, 0x0525fc3b,
+ 0x0502002e, 0x59300808, 0x82040500, 0x00003000,
+ 0x0502002a, 0x8c040522, 0x0500002a, 0x5930002b,
+ 0x8001ed40, 0x05f80f1c, 0x82000580, 0xffffffff,
+ 0x05000022, 0x58f40201, 0x82000580, 0x0000dcb3,
+ 0x05fa0f15, 0x58f40a02, 0x82040500, 0x0000fffe,
+ 0x05000003, 0x05fdff86, 0x58f40a02, 0x9004048f,
+ 0x0502107a, 0x80040800, 0x4805ea02, 0x90040588,
+ 0x0500007d, 0x90040488, 0x05001008, 0x58f40000,
+ 0x8001ed40, 0x05f80f04, 0x58f40201, 0x82000580,
+ 0x0000ddb9, 0x05fa0f00, 0x58f40401, 0x90000c02,
+ 0x4805ec01, 0x80f40400, 0x59300814, 0x44040000,
+ 0x80000000, 0x45780000, 0x5c01e800, 0x1c01f000,
+ 0x60001020, 0x4203e000, 0xb0800000, 0x4203f800,
+ 0x0c000000, 0x40000000, 0x80081040, 0x05f80eee,
+ 0x05ffb7fb, 0x59300808, 0x84040d62, 0x48066008,
+ 0x4203f800, 0x08000000, 0x4d2c0000, 0x05fdfa79,
+ 0x0500004e, 0x492e602b, 0x4a025a01, 0x0000dcb3,
+ 0x59300009, 0x80001d40, 0x05f80edf, 0x580c0813,
+ 0x48065803, 0x580c0208, 0x82000500, 0x000000ff,
+ 0xb00005a8, 0x05000007, 0x90000582, 0x05000005,
+ 0x90000598, 0x05000003, 0x90000588, 0x0502002b,
+ 0x580c1801, 0x800c19c0, 0x05f80ecf, 0x580c0c09,
+ 0x90040d03, 0x90040582, 0x05020003, 0x592c0803,
+ 0x0501f022, 0x580c2a0a, 0x580c000b, 0x59301813,
+ 0x800c0580, 0x05000021, 0x90040580, 0x0500000e,
+ 0x40140000, 0x4c080000, 0x400c1000, 0x41780800,
+ 0x0539fcef, 0x800409c0, 0x05fa0ebb, 0x90140c08,
+ 0x0539fccf, 0x5c001000, 0x40041800, 0x592c0803,
+ 0x0501f015, 0x90140408, 0x4c080000, 0x400c1000,
+ 0x41780800, 0x0539fce2, 0x800409c0, 0x05fa0eae,
+ 0x40140800, 0x0539fcc2, 0x5c001000, 0x40041800,
+ 0x592c0803, 0x0501f008, 0x59301813, 0x40040000,
+ 0x800c0580, 0x05020004, 0x497a5a02, 0x64125c01,
+ 0x0501f007, 0x64065a02, 0x641a5c01, 0x497a5804,
+ 0x400c0000, 0x80040480, 0x48025805, 0x412de800,
+ 0x5c025800, 0x05fdf789, 0x5c025800, 0x4a02602b,
+ 0xffffffff, 0x05fdf79d, 0x4d2c0000, 0x58f65800,
+ 0x05fdfa45, 0x40f65800, 0x05fdfa43, 0x5c025800,
+ 0x05fdf7f7, 0x4d2c0000, 0x05fdfa1e, 0x05fc07fa,
+ 0x4a025a01, 0x0000ddb9, 0x640a5c01, 0x492de800,
+ 0x412de800, 0x5c025800, 0x05fdf784, 0x05fdff13,
+ 0x90f40404, 0x800c0400, 0x40000800, 0x50040000,
+ 0x80100580, 0x05000012, 0x90040c02, 0x80081040,
+ 0x05fe07fb, 0x80f9f1c0, 0x0500000e, 0x58f41202,
+ 0x90081487, 0x90f80402, 0x800c0400, 0x40000800,
+ 0x50040000, 0x80100580, 0x05000005, 0x90040c02,
+ 0x80081040, 0x05fe07fb, 0x0501f002, 0x1c01f000,
+ 0x90000541, 0x05fdf7fe, 0x4cf40000, 0x4cf80000,
+ 0x4001e800, 0x812e59c0, 0x05000021, 0x592c0a0a,
+ 0x800409c0, 0x0502001e, 0x82f40580, 0xffffffff,
+ 0x05000019, 0x58f40201, 0x82000580, 0x0000dcb3,
+ 0x05fa0e59, 0x58f40000, 0x8001f540, 0x05000005,
+ 0x58f80201, 0x82000580, 0x0000ddb9, 0x05fa0e52,
+ 0x41783800, 0x58f44003, 0x0501f833, 0x05020009,
+ 0x05fdff1c, 0x497a602b, 0x59300808, 0x84040d22,
+ 0x48066008, 0x5c01f000, 0x5c01e800, 0x1c01f000,
+ 0x05fdff14, 0x64465a0a, 0x05fdf7f7, 0x05fdfefa,
+ 0x05fdf7f5, 0x4cf40000, 0x4cf80000, 0x4001e800,
+ 0x90040581, 0x0502001c, 0x82f40580, 0xffffffff,
+ 0x05000017, 0x58f40201, 0x82000580, 0x0000dcb3,
+ 0x05fa0e35, 0x58f40000, 0x8001f540, 0x05000005,
+ 0x58f80201, 0x82000580, 0x0000ddb9, 0x05fa0e2e,
+ 0x41783800, 0x58f44003, 0x0501f80f, 0x05020007,
+ 0x05fdfef8, 0x60040800, 0x497a602b, 0x5c01f000,
+ 0x5c01e800, 0x1c01f000, 0x05fdfef2, 0x60440800,
+ 0x05fdf7fa, 0x4c040000, 0x05fdfed7, 0x5c000800,
+ 0x05fdf7f6, 0x4803c856, 0x401c2000, 0x41781800,
+ 0x4c200000, 0x05fdff96, 0x5c004000, 0x05020022,
+ 0x40202000, 0x60041800, 0x05fdff91, 0x0502001e,
+ 0x05fdfea2, 0x40082800, 0x90f43404, 0x50182000,
+ 0x40100000, 0x801c0580, 0x05000004, 0x60041800,
+ 0x05fdff87, 0x05020014, 0x90183402, 0x80142840,
+ 0x05fe07f7, 0x80f9f1c0, 0x0500000e, 0x58f42a02,
+ 0x90142c87, 0x90f83402, 0x50182000, 0x40100000,
+ 0x801c0580, 0x05000004, 0x60041800, 0x05fdff78,
+ 0x05020005, 0x90183402, 0x80142840, 0x05fe07f7,
+ 0x1c01f000, 0x90000541, 0x05fdf7fe, 0x05f9fdf2,
+ 0x592c020e, 0x8c000502, 0x05fc07fd, 0x497a6014,
+ 0x0501fd92, 0x412c7000, 0x59300008, 0x84000556,
+ 0x48026008, 0x9004050f, 0x82000c00, 0x0010004b,
+ 0x50044000, 0x80204000, 0x50200000, 0x80187c00,
+ 0x583c2800, 0x583c2001, 0x583c1002, 0x58380a0b,
+ 0x40187000, 0x5818300b, 0x59303808, 0x497a6015,
+ 0x0001f18b, 0x592c040e, 0x8c000500, 0x05f80dd6,
+ 0x592c0011, 0x48026014, 0x05fdf7e6, 0x592c040c,
+ 0x8c000502, 0x05fc07de, 0x592c040d, 0x80000540,
+ 0x05fc07db, 0x90000c82, 0x0500100e, 0x58380001,
+ 0x80007540, 0x05f80dc8, 0x58380208, 0x9000050f,
+ 0x82000400, 0x0010004b, 0x50004000, 0x40040000,
+ 0x800409c0, 0x05000004, 0x90040c85, 0x05fe17f4,
+ 0x80204400, 0x50200000, 0x80387c00, 0x583c2800,
+ 0x583c2001, 0x583c1002, 0x592c0a0b, 0x592c3011,
+ 0x59303808, 0x497a6014, 0x497a6015, 0x48166010,
+ 0x48126011, 0x480a6012, 0x481a6013, 0x80040840,
+ 0x4806600f, 0x00000192, 0x80204000, 0x50201800,
+ 0x800c19c0, 0x0502000a, 0x58380001, 0x80007540,
+ 0x05f80da5, 0x58380208, 0x9000050f, 0x82000400,
+ 0x0010004b, 0x50004000, 0x50201800, 0x483a600d,
+ 0x480e600c, 0x4822600e, 0x0001f192, 0x4803c856,
+ 0x592c020c, 0x8c00051e, 0x05020016, 0x50200000,
+ 0x80306c00, 0x40240000, 0x0c01f001, 0x00101093,
+ 0x00101093, 0x0010109b, 0x00101093, 0x00101093,
+ 0x00101093, 0x00101093, 0x00101093, 0x0010109b,
+ 0x00101093, 0x0010109b, 0x00101093, 0x00101093,
+ 0x0010109b, 0x00101093, 0x00101093, 0x05f9fd82,
+ 0x8400051e, 0x48025a0c, 0x50200000, 0x80306c00,
+ 0x58343801, 0x481e6011, 0x0501f007, 0x58341802,
+ 0x58342800, 0x58343801, 0x480e6012, 0x48166010,
+ 0x481e6011, 0x0501f287, 0x4933c857, 0x5931f809,
+ 0x59301006, 0x800811c0, 0x05000009, 0x41780800,
+ 0x60280000, 0x0539fb9e, 0x80080102, 0x05020002,
+ 0x84001542, 0x80081040, 0x4809fc0a, 0x640a6006,
+ 0x592c040d, 0x90000508, 0x05000008, 0x0501f834,
+ 0x59300203, 0x90000584, 0x05020003, 0x61227000,
+ 0x0009f839, 0x1c01f000, 0x4cfc0000, 0x58fc0208,
+ 0x82000500, 0x000000ff, 0xb0000588, 0x05000003,
+ 0x900005a2, 0x05020009, 0x58fc040c, 0x8c000500,
+ 0x05000006, 0x58fc080f, 0x8c040516, 0x0500001c,
+ 0x58fc000b, 0x0501f00a, 0x58fc040c, 0x8c000512,
+ 0x05020019, 0x58fc0c0d, 0x8c040516, 0x05020003,
+ 0x5c01f800, 0x1c01f000, 0x58fc000e, 0x4c000000,
+ 0x4d2c0000, 0x40fe5800, 0x59300013, 0x0555fb89,
+ 0x5c025800, 0x80000d40, 0x5c000000, 0x80040580,
+ 0x05020007, 0x59300008, 0x84000500, 0x48026008,
+ 0x61227000, 0x5c01f800, 0x0009f039, 0x5c01f800,
+ 0x1c01f000, 0x58fdf80d, 0x05fdf7e7, 0x5c000000,
+ 0x4c000000, 0x4803c857, 0x4933c857, 0x59b808ea,
+ 0x90040d07, 0x90040580, 0x05000021, 0x90040583,
+ 0x0500001f, 0x59300407, 0x4c000000, 0x64026407,
+ 0x61043000, 0x4a0370e5, 0x00003000, 0x42000000,
+ 0x50000000, 0x41300800, 0x4c180000, 0x05fdfcd3,
+ 0x5c003000, 0x0500000d, 0x60780000, 0x80000040,
+ 0x05fe07ff, 0x80183040, 0x05fe07f5, 0x42000000,
+ 0x40000000, 0x41300800, 0x05fdfcc8, 0x59880150,
+ 0x80000000, 0x48031150, 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,
+ 0x0529fa74, 0x05020012, 0x4a038891, 0x0000ffff,
+ 0x497b8880, 0x4ce80000, 0x6059d000, 0x0535fb45,
+ 0x497b8892, 0x6059d000, 0x0535fb42, 0x5c01d000,
+ 0x42000000, 0x0011243b, 0x0561fe25, 0x61fc19ff,
+ 0x0501f811, 0x5c038000, 0x0529f34d, 0x0501f81b,
+ 0x4c080000, 0x4c140000, 0x42000000, 0x0011243c,
+ 0x0561fe1b, 0x61fc19ff, 0x0501f807, 0x5c002800,
0x5c001000, 0x48178892, 0x480b8880, 0x5c038000,
- 0x1c01f000, 0x496fc857, 0x916c0583, 0x05020008,
- 0x4c080000, 0x4c0c0000, 0x61201100, 0x61fc19ff,
- 0x0519ff30, 0x5c001800, 0x5c001000, 0x60f00800,
- 0x0501ff46, 0x4a038891, 0x0000ffff, 0x6503900d,
- 0x05fdfaa8, 0x640770e8, 0x1c01f000, 0x5c000000,
- 0x4c000000, 0x4803c857, 0x59c41080, 0x497b8880,
- 0x4ce80000, 0x6059d000, 0x4c080000, 0x0531ff46,
- 0x5c001000, 0x5c01d000, 0x59c42892, 0x497b8892,
- 0x0525ffea, 0x05020002, 0x1c01f000, 0x61802004,
- 0x59c418a4, 0x900c1d0f, 0x900c0580, 0x0500000c,
- 0x59c41805, 0x900c1d01, 0x0502000b, 0x59c418a4,
- 0x900c1d0f, 0x900c0487, 0x05001003, 0x900c048c,
- 0x05001003, 0x80102040, 0x05fe07f2, 0x497b8891,
- 0x1c01f000, 0x4c100000, 0x60642000, 0x64078805,
- 0x0505fccf, 0x59c41805, 0x900c1d01, 0x05000005,
- 0x80102040, 0x05fe07fa, 0x5c002000, 0x05fdf7f4,
- 0x5c002000, 0x05fdf7f0, 0x60080020, 0x46000000,
- 0x0162c58b, 0x59c8080b, 0x4807c857, 0x59c8103f,
- 0x480bc857, 0x05f9fced, 0x4803c856, 0x1c01f000,
- 0x00101100, 0x00101100, 0x00101100, 0x00101114,
- 0x00101100, 0x00101100, 0x00101100, 0x00101100,
- 0x00101100, 0x00101114, 0x00101100, 0x00101101,
- 0x00101100, 0x00101100, 0x00101100, 0x00101100,
- 0x05f9fcda, 0x900405bb, 0x05fa0cd8, 0x592c020e,
- 0x8c000500, 0x0500008d, 0x592c1a0b, 0x9004050f,
- 0x82000400, 0x001012ac, 0x50001000, 0x50080000,
- 0x59302015, 0x4802600c, 0x492e600d, 0x480a600e,
- 0x480e600f, 0x48126014, 0x5c025800, 0x1c01f000,
- 0x9004050f, 0x82000400, 0x001012ac, 0x50001000,
- 0x50080000, 0x592c1a0b, 0x4802600c, 0x492e600d,
- 0x480a600e, 0x480e600f, 0x497a6014, 0x05fdf7f3,
- 0x8c040500, 0x05020071, 0x82040d00, 0x00000080,
- 0x0500006e, 0x0001f19b, 0x0501fc22, 0x843c7d4e,
- 0x0001f1a8, 0x59307804, 0x823c7d00, 0x01880080,
- 0x823c7d40, 0x80000005, 0x59300013, 0x82000500,
- 0xffff0000, 0x05000002, 0x843c7d6a, 0x59300015,
- 0x59301014, 0x80080580, 0x0502000b, 0x800811c0,
- 0x05020004, 0x8c3c050e, 0x05000055, 0x0501f004,
- 0x592c120c, 0x8c08051e, 0x05020051, 0x843c7d4a,
- 0x0501f04f, 0x480bc857, 0x59300804, 0x82040500,
- 0x00008080, 0x82000580, 0x00008080, 0x05020016,
- 0x592c6001, 0x58300409, 0x90000503, 0x90000581,
- 0x05020011, 0x84040d1e, 0x48066004, 0x59302015,
- 0x5930001c, 0x80101480, 0x0500100b, 0x5830020a,
- 0x41780800, 0x0535fe39, 0x800810c6, 0x59301814,
- 0x800c0482, 0x80100580, 0x05020003, 0x48126014,
- 0x05fdf7db, 0x42000000, 0x0010e43f, 0x055dfe7d,
- 0x59302015, 0x59300416, 0x4803c857, 0x8c000514,
- 0x0502000f, 0x599c1819, 0x8c0c0512, 0x0500000a,
- 0x592c0813, 0x59300017, 0x80040c80, 0x05000005,
- 0x05001004, 0x80040000, 0x80140480, 0x05001008,
- 0x0541fac4, 0x900c1d41, 0x0501f01f, 0x84000514,
- 0x48026416, 0x48126017, 0x4813c857, 0x4c3c0000,
- 0x0501f954, 0x5c007800, 0x05020017, 0x5930500f,
- 0x592c020c, 0x4803c857, 0x8c00051e, 0x05020004,
- 0x903c7d60, 0x5930400e, 0x0501f004, 0x8400051e,
- 0x48025a0c, 0x0501f907, 0x50201800, 0x480e600c,
- 0x4832600d, 0x4822600e, 0x482a600f, 0x480fc857,
- 0x4833c857, 0x4823c857, 0x482bc857, 0x80000580,
- 0x483e6004, 0x1c01f000, 0x05f9fc48, 0x4933c857,
- 0x4d2c0000, 0x59900005, 0x81300580, 0x05fa0c43,
- 0x054dfb31, 0x05f80c41, 0x59325809, 0x4d3c0000,
- 0x4d400000, 0x59300004, 0x4803c857, 0x4c000000,
- 0x0539fda9, 0x0539faab, 0x5c000000, 0x8c000516,
- 0x05000014, 0x82000d00, 0x01000080, 0x05020004,
- 0x592c0a0e, 0x8c040506, 0x0502000e, 0x592c0013,
- 0x4803c857, 0x4802580b, 0x41780800, 0x600a8000,
- 0x0525fc7b, 0x4a025c0a, 0x0000ffff, 0x492fc857,
- 0x0001fb82, 0x0551fcfc, 0x0541fa1a, 0x0501f01b,
- 0x640a6203, 0x592c020c, 0x8c000512, 0x05020004,
- 0x592c020c, 0x8400054e, 0x48025a0c, 0x59300407,
- 0x90000586, 0x0502000f, 0x592c0811, 0x59140001,
- 0x82000500, 0xffff0000, 0x05000004, 0x811800ca,
- 0x81c80c00, 0x58040939, 0x48066017, 0x592c0011,
- 0x80040480, 0x592c0813, 0x80040480, 0x4802580f,
- 0x417a7800, 0x0549fe44, 0x5c028000, 0x5c027800,
- 0x5c025800, 0x1c01f000, 0x4933c857, 0x4d2c0000,
- 0x59900005, 0x81300580, 0x05fa0c00, 0x054dfaee,
- 0x05f80bfe, 0x59325809, 0x592c020c, 0x84000540,
- 0x48025a0c, 0x05fdf7ba, 0x491bc857, 0x4dd00000,
+ 0x1c01f000, 0x496fc857, 0x916c0583, 0x05020003,
+ 0x61201100, 0x051df830, 0x60f00800, 0x0501ff1c,
+ 0x4a038891, 0x0000ffff, 0x6503900d, 0x05fdfa6f,
+ 0x640770e8, 0x1c01f000, 0x5c000000, 0x4c000000,
+ 0x4803c857, 0x59c41080, 0x497b8880, 0x4ce80000,
+ 0x6059d000, 0x4c080000, 0x0535fb16, 0x5c001000,
+ 0x5c01d000, 0x59c42892, 0x497b8892, 0x0529fa39,
+ 0x05020002, 0x1c01f000, 0x61802004, 0x59c418a4,
+ 0x900c1d0f, 0x900c0580, 0x0500000c, 0x59c41805,
+ 0x900c1d01, 0x0502000b, 0x59c418a4, 0x900c1d0f,
+ 0x900c0487, 0x05001003, 0x900c048c, 0x05001003,
+ 0x80102040, 0x05fe07f2, 0x497b8891, 0x1c01f000,
+ 0x4c100000, 0x60642000, 0x64078805, 0x0505fcb4,
+ 0x59c41805, 0x900c1d01, 0x05000005, 0x80102040,
+ 0x05fe07fa, 0x5c002000, 0x05fdf7f4, 0x5c002000,
+ 0x05fdf7f0, 0x60080020, 0x46000000, 0x0162c58b,
+ 0x59c8080b, 0x4807c857, 0x59c8103f, 0x480bc857,
+ 0x42000000, 0x00112438, 0x0561fdcd, 0x05fdff90,
+ 0x1c01f000, 0x4803c856, 0x1c01f000, 0x0010119f,
+ 0x0010119f, 0x0010119f, 0x001011b3, 0x0010119f,
+ 0x0010119f, 0x0010119f, 0x0010119f, 0x0010119f,
+ 0x001011b3, 0x0010119f, 0x001011a0, 0x0010119f,
+ 0x0010119f, 0x0010119f, 0x0010119f, 0x05f9fc76,
+ 0x900405bb, 0x05fa0c74, 0x592c020e, 0x8c000500,
+ 0x0500008d, 0x592c1a0b, 0x9004050f, 0x82000400,
+ 0x0010004b, 0x50001000, 0x50080000, 0x59302015,
+ 0x4802600c, 0x492e600d, 0x480a600e, 0x480e600f,
+ 0x48126014, 0x5c025800, 0x1c01f000, 0x9004050f,
+ 0x82000400, 0x0010004b, 0x50001000, 0x50080000,
+ 0x592c1a0b, 0x4802600c, 0x492e600d, 0x480a600e,
+ 0x480e600f, 0x497a6014, 0x05fdf7f3, 0x8c040500,
+ 0x05020071, 0x82040d00, 0x00000080, 0x0500006e,
+ 0x0001f1a3, 0x0501fbf5, 0x843c7d4e, 0x0001f1b0,
+ 0x59307804, 0x823c7d00, 0x01880080, 0x823c7d40,
+ 0x80000005, 0x59300013, 0x82000500, 0xffff0000,
+ 0x05000002, 0x843c7d6a, 0x59300015, 0x59301014,
+ 0x80080580, 0x0502000b, 0x800811c0, 0x05020004,
+ 0x8c3c050e, 0x05000055, 0x0501f004, 0x592c120c,
+ 0x8c08051e, 0x05020051, 0x843c7d4a, 0x0501f04f,
+ 0x480bc857, 0x59300804, 0x82040500, 0x00008080,
+ 0x82000580, 0x00008080, 0x05020016, 0x592c6001,
+ 0x58300409, 0x90000503, 0x90000581, 0x05020011,
+ 0x84040d1e, 0x48066004, 0x59302015, 0x5930001c,
+ 0x80101480, 0x0500100b, 0x5830020a, 0x41780800,
+ 0x0539fa53, 0x800810c6, 0x59301814, 0x800c0482,
+ 0x80100580, 0x05020003, 0x48126014, 0x05fdf7db,
+ 0x42000000, 0x001123e0, 0x0561fd59, 0x59302015,
+ 0x59300416, 0x4803c857, 0x8c000514, 0x0502000f,
+ 0x599c1819, 0x8c0c0512, 0x0500000a, 0x592c0813,
+ 0x59300017, 0x80040c80, 0x05000005, 0x05001004,
+ 0x80040000, 0x80140480, 0x05001008, 0x0541ff57,
+ 0x900c1d41, 0x0501f01f, 0x84000514, 0x48026416,
+ 0x48126017, 0x4813c857, 0x4c3c0000, 0x0501f928,
+ 0x5c007800, 0x05020017, 0x5930500f, 0x592c020c,
+ 0x4803c857, 0x8c00051e, 0x05020004, 0x903c7d60,
+ 0x5930400e, 0x0501f004, 0x8400051e, 0x48025a0c,
+ 0x0501f904, 0x50201800, 0x480e600c, 0x4832600d,
+ 0x4822600e, 0x482a600f, 0x480fc857, 0x4833c857,
+ 0x4823c857, 0x482bc857, 0x80000580, 0x483e6004,
+ 0x1c01f000, 0x05f9fbe4, 0x4933c857, 0x4d2c0000,
+ 0x59900005, 0x81300580, 0x05fa0bdf, 0x0551f81b,
+ 0x05f80bdd, 0x59325809, 0x4d3c0000, 0x4d400000,
+ 0x59300004, 0x4803c857, 0x4c000000, 0x053df9c8,
+ 0x0539feca, 0x5c000000, 0x8c000516, 0x05000014,
+ 0x82000d00, 0x01000080, 0x05020004, 0x592c0a0e,
+ 0x8c040506, 0x0502000e, 0x592c0013, 0x4803c857,
+ 0x4802580b, 0x41780800, 0x600a8000, 0x0525fec0,
+ 0x4a025c0a, 0x0000ffff, 0x492fc857, 0x0001fba8,
+ 0x0555fa03, 0x0541fe90, 0x0501f01b, 0x640a6203,
+ 0x592c020c, 0x8c000512, 0x05020004, 0x592c020c,
+ 0x8400054e, 0x48025a0c, 0x59300407, 0x90000586,
+ 0x0502000f, 0x592c0811, 0x59140001, 0x82000500,
+ 0xffff0000, 0x05000004, 0x811800ca, 0x81c80c00,
+ 0x58040939, 0x48066017, 0x592c0011, 0x80040480,
+ 0x592c0813, 0x80040480, 0x4802580f, 0x417a7800,
+ 0x054dfb17, 0x5c028000, 0x5c027800, 0x5c025800,
+ 0x1c01f000, 0x4933c857, 0x4d2c0000, 0x054dffdb,
+ 0x05f80b9d, 0x59325809, 0x592c020c, 0x84000540,
+ 0x48025a0c, 0x05fdf7bd, 0x491bc857, 0x4dd00000,
0x4c580000, 0x41780800, 0x8007a0ca, 0x83d3a400,
0x00007600, 0x4a03a005, 0x80000002, 0x05024004,
- 0x4c040000, 0x00044e27, 0x5c000800, 0x59d01006,
+ 0x4c040000, 0x00044e5d, 0x5c000800, 0x59d01006,
0x82080500, 0x00006000, 0x82000580, 0x00006000,
0x05000007, 0x8c08051e, 0x05fc07f5, 0x59d01006,
0x82080500, 0x00006000, 0x05fe07f1, 0x91d3a420,
@@ -1202,20 +1241,20 @@ static const uint32_t isp_2500_risc_code[] = {
0x480c2822, 0x59d0000f, 0x59d00810, 0x59d01011,
0x59d01812, 0x48002c23, 0x48042824, 0x48082825,
0x480c2826, 0x6401b006, 0x4a03a005, 0x30000000,
- 0x59d00006, 0x1c01f000, 0x42000000, 0x0010e4e1,
- 0x055dfd98, 0x600008ec, 0x580410a2, 0x41780800,
+ 0x59d00006, 0x1c01f000, 0x42000000, 0x00112485,
+ 0x0561fc77, 0x600008ec, 0x580410a2, 0x41780800,
0x9008050f, 0x8c000506, 0x05020003, 0x81180580,
0x05000006, 0x80040800, 0x80081108, 0x90040587,
- 0x05fe07f8, 0x05f9fb89, 0x4a039040, 0x04000000,
+ 0x05fe07f8, 0x05f9fb28, 0x4a039040, 0x04000000,
0x59c80040, 0x8c000532, 0x05fe07fe, 0x59d0000d,
0x800000e0, 0x59d0100c, 0x82081500, 0x0000ffff,
0x80081540, 0x480b9028, 0x4d2c0000, 0x59325809,
- 0x054dfa69, 0x05f80b79, 0x59d02004, 0x592c0208,
+ 0x054dff56, 0x05f80b18, 0x59d02004, 0x592c0208,
0x82001500, 0x000000ff, 0x9000050f, 0x90000582,
0x05000003, 0xb00805ba, 0x05020004, 0x592c0011,
- 0x80102480, 0x05f81b6d, 0x5c025800, 0x9010250f,
- 0x90102588, 0x05fa0b69, 0x59c80047, 0x8c000530,
- 0x05fa0b66, 0x59d0000b, 0x48039029, 0x800400d6,
+ 0x80102480, 0x05f81b0c, 0x5c025800, 0x9010250f,
+ 0x90102588, 0x05fa0b08, 0x59c80047, 0x8c000530,
+ 0x05fa0b05, 0x59d0000b, 0x48039029, 0x800400d6,
0x40001000, 0x800400dc, 0x80081400, 0x82081540,
0x0400002f, 0x480b9047, 0x59c80047, 0x8c000532,
0x05fe07fe, 0x64079048, 0x59c80048, 0x8c000500,
@@ -1224,546 +1263,539 @@ static const uint32_t isp_2500_risc_code[] = {
0x4803c856, 0x80204000, 0x50200000, 0x80000540,
0x05000003, 0x80285040, 0x1c01f000, 0x58300001,
0x80000540, 0x0500000c, 0x4802600d, 0x40006000,
- 0x58300208, 0x9000050f, 0x82000400, 0x001012ac,
- 0x50004000, 0x802041c0, 0x05f80b3c, 0x80285040,
- 0x1c01f000, 0x40005000, 0x1c01f000, 0x00000009,
- 0x0000000c, 0x0000000f, 0x00000012, 0x00000015,
- 0x00000000, 0x00000000, 0x0000000f, 0x00000000,
- 0x00000000, 0x00000000, 0x001012a7, 0x001012a6,
- 0x00000000, 0x001012a7, 0x00000000, 0x00000000,
- 0x001012a7, 0x001012a6, 0x001012a3, 0x001012a7,
- 0x001012a6, 0x00000000, 0x00000000, 0x00000000,
- 0x00000000, 0x00000000, 0x001012a7, 0x00000000,
- 0x00000000, 0x00000000, 0x00000000, 0x00000000,
- 0x001012a7, 0x001012a7, 0x001012a7, 0x00000000,
- 0x001012a7, 0x00000000, 0x00000000, 0x00000000,
- 0x4813c857, 0x492fc857, 0x4933c857, 0x48126014,
- 0x592c520b, 0x802851c0, 0x05000076, 0x59300008,
- 0x8c000516, 0x0500001e, 0x592c0208, 0x82001500,
- 0x000000ff, 0x9000050f, 0x90000582, 0x05000003,
- 0xb00805ba, 0x05020003, 0x592c0011, 0x80102480,
- 0x801021c0, 0x41781000, 0x0500000e, 0x592c6001,
- 0x58300409, 0x58300a0a, 0x90000503, 0x90000580,
- 0x05000002, 0x90040c08, 0x40040000, 0x40101000,
- 0x41780800, 0x0535fca1, 0x800409c0, 0x05020059,
- 0x0501fa86, 0x0500004f, 0x0501f056, 0x59300004,
- 0x8c00050e, 0x0500000d, 0x0501fb13, 0x05020051,
- 0x592c6001, 0x42004000, 0x001012a4, 0x58300409,
- 0x8c000510, 0x0500000f, 0x5830540d, 0x42004000,
- 0x001012a5, 0x0501f00b, 0x412c6000, 0x0501f847,
- 0x05000008, 0x90240582, 0x05020003, 0x58300011,
- 0x80102480, 0x50200000, 0x80004540, 0x0500003d,
- 0x50200000, 0x80000540, 0x0500000b, 0x80301400,
- 0x58080002, 0x80102480, 0x0500101d, 0x801021c0,
- 0x05000009, 0x80285040, 0x05000032, 0x80204000,
- 0x05fdf7f4, 0x58300001, 0x80006540, 0x0500002d,
- 0x05fdf7e7, 0x80285040, 0x0500002a, 0x80204000,
- 0x50200000, 0x80000540, 0x05020009, 0x58300001,
- 0x80006540, 0x05000023, 0x58300208, 0x90004d0f,
- 0x82244400, 0x001012ac, 0x50204000, 0x592c020c,
- 0x8400051e, 0x48025a0c, 0x0501f012, 0x80102080,
- 0x80102000, 0x48126012, 0x4813c857, 0x58080802,
- 0x40100000, 0x80042480, 0x05f81aa4, 0x58080000,
- 0x58081801, 0x80102400, 0x48126010, 0x480e6011,
- 0x4813c857, 0x592c020c, 0x8400055e, 0x48025a0c,
- 0x4833c857, 0x4823c857, 0x482bc857, 0x4832600d,
- 0x4822600e, 0x482a600f, 0x80000580, 0x0501f002,
- 0x90000541, 0x1c01f000, 0x58300208, 0x90004d0f,
- 0x82244400, 0x001012ac, 0x82000500, 0x000000ff,
- 0x900005a9, 0x05020016, 0x50204000, 0x592c040d,
- 0x80000540, 0x05f80a85, 0x90000c82, 0x0500100e,
- 0x58300001, 0x80006540, 0x05f80a80, 0x58300208,
- 0x9000050f, 0x82000400, 0x001012ac, 0x50004000,
- 0x40040000, 0x800409c0, 0x05000005, 0x90040c85,
- 0x05fe17f4, 0x80204400, 0x80000580, 0x1c01f000,
- 0x4c5c0000, 0x59e4b800, 0x485fc857, 0x905c051f,
- 0x05fa0a6e, 0x825c0500, 0x000000e0, 0x05f80a6b,
- 0x8c5c050e, 0x05020807, 0x8c5c050c, 0x05020809,
- 0x8c5c050a, 0x05020900, 0x5c00b800, 0x1c01f000,
- 0x4803c856, 0x4a03c800, 0x00000080, 0x1c01f000,
- 0x4d2c0000, 0x42007800, 0x0010e4e5, 0x583c0003,
- 0x583c0804, 0x80040540, 0x05000037, 0x42000800,
- 0x0010e388, 0x50065800, 0x592c0002, 0x90000580,
- 0x05000031, 0x59e40050, 0x59e40852, 0x80040480,
- 0x82000500, 0xfffffc00, 0x05020005, 0x59e40050,
- 0x59e40851, 0x80040800, 0x80040480, 0x82000c80,
- 0x00000400, 0x59e40050, 0x80041400, 0x480bc857,
- 0x50080000, 0x58080801, 0x80040540, 0x0500001e,
- 0x480bc857, 0x480a5803, 0x583c1009, 0x583c000a,
- 0x80080580, 0x05020005, 0x583c0000, 0x84000550,
- 0x48007800, 0x41781000, 0x82080400, 0x00001000,
- 0x4803c857, 0x48007809, 0x583c0003, 0x80081400,
- 0x480bc857, 0x583c0804, 0x64025801, 0x4a025809,
- 0x001013bc, 0x480a5807, 0x48065808, 0x59e40053,
- 0x800000c4, 0x48025805, 0x412c1000, 0x492fc857,
- 0x0001f821, 0x5c025800, 0x6503c800, 0x1c01f000,
- 0x42007800, 0x0010e388, 0x503c7800, 0x4a007802,
- 0x00000100, 0x42007800, 0x0010e4e5, 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, 0x0519fbfe, 0x1c01f000,
- 0x42007800, 0x0010e4e5, 0x4d2c0000, 0x4c5c0000,
- 0x4c600000, 0x4030b800, 0x583cc000, 0x4a00b802,
- 0x00000100, 0x583c2015, 0x80100800, 0x583c0013,
- 0x80040580, 0x05020003, 0x8460c554, 0x41780800,
- 0x48047815, 0x8c600502, 0x05f809e8, 0x8460c502,
- 0x48607800, 0x42000000, 0x0010e389, 0x50000000,
- 0x80300580, 0x05fa09e1, 0x583c081e, 0x800409c0,
- 0x05000008, 0x583c001f, 0x80040580, 0x05020005,
- 0x4978781f, 0x60081800, 0x60a01100, 0x0519fbd9,
- 0x8c600508, 0x050e0c69, 0x5c00c000, 0x5c00b800,
- 0x5c025800, 0x1c01f000, 0x4d2c0000, 0x4c5c0000,
- 0x4c600000, 0x4c640000, 0x42000800, 0x0010e389,
- 0x50065800, 0x4a025809, 0x001013e0, 0x6000c002,
- 0x4200b800, 0x0010e4e5, 0x585cc800, 0x4867c857,
- 0x8d0c052a, 0x0502000f, 0x40ee5800, 0x492fc857,
- 0x4a025802, 0x00000100, 0x585c0014, 0x80000000,
- 0x90000503, 0x4800b814, 0x4a025809, 0x0010306e,
- 0x585cc017, 0x8260c500, 0x000000ff, 0x05f809b3,
- 0x4c580000, 0x61e8b001, 0x8058b040, 0x05f809af,
- 0x8c640502, 0x0500000b, 0x8d0c052a, 0x05fa09ab,
- 0x4c580000, 0x4c600000, 0x0001f9b8, 0x585cc800,
- 0x5c00c000, 0x5c00b000, 0x485bc857, 0x05fdf7f3,
- 0x5c00b000, 0x4200b800, 0x0010e4e5, 0x8464cd42,
- 0x4864b800, 0x592c0002, 0x90000580, 0x05f8099b,
- 0x585c100d, 0x585c0018, 0x80081400, 0x80600400,
- 0x4800b818, 0x585c0014, 0x800001c0, 0x05020002,
- 0x4978b818, 0x8060c0c4, 0x492fc857, 0x480bc857,
- 0x4863c857, 0x480a5803, 0x585c001d, 0x4803c857,
- 0x585c180e, 0x800c1400, 0x480a5807, 0x4808b81b,
- 0x80600400, 0x4800b81d, 0x4803c857, 0x800c0400,
- 0x4800b819, 0x585c0810, 0x4807c857, 0x4803c857,
- 0x80040d80, 0x05020004, 0x4978b81d, 0x585c080e,
- 0x4804b819, 0x585c080e, 0x80040580, 0x82000500,
- 0x000003ff, 0x05020004, 0x585c001f, 0x80000000,
- 0x4800b81f, 0x585c080f, 0x48065808, 0x4807c857,
- 0x64025801, 0x48625805, 0x412c1000, 0x0001f821,
- 0x5c00c800, 0x5c00c000, 0x5c00b800, 0x5c025800,
- 0x1c01f000, 0x6483c800, 0x055dfb5f, 0x59e40000,
- 0x1c01f000, 0x60001020, 0x80081040, 0x05000022,
- 0x055dfc83, 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, 0x61880809,
- 0x055dfc68, 0x05020003, 0x4803c856, 0x055dfc6c,
- 0x59800802, 0x4807c857, 0x8c040520, 0x05000007,
- 0x64030000, 0x60101020, 0x50080000, 0x8400054c,
- 0x44001000, 0x0501f000, 0x82040500, 0x00001084,
- 0x05fa092a, 0x8c040510, 0x05000006, 0x42000000,
- 0x0010e4e2, 0x055dfb27, 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, 0x0010e4e3,
- 0x055dfb08, 0x61fc4001, 0x42001800, 0xffffff00,
- 0x8c18050c, 0x05000003, 0x840c19c0, 0x842041c0,
- 0x821c0580, 0x00020000, 0x05020003, 0x900c19c0,
- 0x902041c0, 0x800c0505, 0x80200540, 0x44002000,
- 0x4a030002, 0x00020000, 0x64030000, 0x1c01f000,
- 0x4d2c0000, 0x64007000, 0x82040d00, 0x43200f80,
- 0x05fa08ee, 0x58380008, 0x4803c00f, 0x583a5807,
- 0x592c0801, 0x800409c0, 0x0500000e, 0x592c0000,
- 0x48000800, 0x58380006, 0x812c0580, 0x05020002,
- 0x48047006, 0x48047007, 0x60042000, 0x0559fe40,
- 0x05f808de, 0x05f9fc95, 0x5c025800, 0x05f9f54d,
- 0x4a0370e4, 0x00003000, 0x054dfc4b, 0x583a5807,
- 0x592c0000, 0x48007007, 0x800001c0, 0x05020002,
- 0x49787006, 0x05f9fc89, 0x5c025800, 0x42007000,
- 0x000211a7, 0x0001f036, 0x4803c856, 0x4c3c0000,
- 0x4d2c0000, 0x4d300000, 0x5830000a, 0x80025d40,
- 0x0500001a, 0x592e600c, 0x4c300000, 0x054dfc4b,
- 0x5c006000, 0x05f808c1, 0x58300002, 0x82000580,
- 0x00000100, 0x05000003, 0x640a5a0a, 0x492fc857,
- 0x4c300000, 0x0001fb82, 0x5c025800, 0x05f9fc6f,
- 0x0005ffdc, 0x59c80000, 0x82000540, 0x00001200,
- 0x48039000, 0x850e1d1c, 0x5c026000, 0x5c025800,
- 0x5c007800, 0x1c01f000, 0x40325800, 0x05f9fc63,
- 0x05fdf7fa, 0x59300025, 0x48025814, 0x59300026,
- 0x48025815, 0x59300a23, 0x8c04050c, 0x05020007,
- 0x59300020, 0x59300a21, 0x800408e0, 0x80040540,
- 0x5930081f, 0x0501f006, 0x59300820, 0x59300221,
- 0x800408e0, 0x80040d40, 0x5930001f, 0x9c0001c0,
- 0x9c0409c0, 0x48025816, 0x48065817, 0x1c01f000,
- 0x592c0001, 0x80003540, 0x05f80890, 0x58180a08,
- 0x82040d00, 0x000000ff, 0xb004058a, 0x05fa088b,
- 0x592c1015, 0x592c1a16, 0x58182209, 0x592c2c16,
- 0x592c0017, 0x800000e0, 0x80142d40, 0x592c0017,
- 0x80003920, 0x58184409, 0x5818020a, 0x8c20050e,
- 0x05fa087e, 0x800048e0, 0x80244d40, 0x5818000b,
- 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, 0x05f80861, 0x58300a08, 0x82040d00,
- 0x000000ff, 0xb004058a, 0x05fa085c, 0x58302c09,
- 0x8c140506, 0x58300209, 0x05000002, 0x80080400,
- 0x48026421, 0x48026221, 0x5830020a, 0x800008e0,
- 0x80040540, 0x48026024, 0x8c14050a, 0x05020004,
- 0x592c0015, 0x80080400, 0x4802601f, 0x5830320a,
- 0x8c140510, 0x0502000c, 0x90142d03, 0x90140582,
- 0x0500000e, 0x90140581, 0x05000007, 0x40080800,
- 0x90180408, 0x40001000, 0x0535f9d8, 0x40042000,
- 0x0501f006, 0x40080800, 0x40181000, 0x4004b800,
- 0x0535f9d2, 0x40042000, 0x4c100000, 0x05fdfda7,
- 0x05f80836, 0x5c002000, 0x50200000, 0x80004540,
- 0x0500005e, 0x58300a08, 0x82040d00, 0x000000ff,
- 0xb004058a, 0x05020006, 0x80204000, 0x58300409,
- 0x8c000510, 0x05000002, 0x80204000, 0x50200000,
+ 0x58300208, 0x9000050f, 0x82000400, 0x0010004b,
+ 0x50004000, 0x802041c0, 0x05f80adb, 0x80285040,
+ 0x1c01f000, 0x40005000, 0x1c01f000, 0x4813c857,
+ 0x492fc857, 0x4933c857, 0x48126014, 0x592c520b,
+ 0x802851c0, 0x05000076, 0x59300008, 0x8c000516,
+ 0x0500001e, 0x592c0208, 0x82001500, 0x000000ff,
+ 0x9000050f, 0x90000582, 0x05000003, 0xb00805ba,
+ 0x05020003, 0x592c0011, 0x80102480, 0x801021c0,
+ 0x41781000, 0x0500000e, 0x592c6001, 0x58300409,
+ 0x58300a0a, 0x90000503, 0x90000580, 0x05000002,
+ 0x90040c08, 0x40040000, 0x40101000, 0x41780800,
+ 0x0539f8e7, 0x800409c0, 0x05020059, 0x0501fa85,
+ 0x0500004f, 0x0501f056, 0x59300004, 0x8c00050e,
+ 0x0500000d, 0x0501fb11, 0x05020051, 0x592c6001,
+ 0x42004000, 0x00100043, 0x58300409, 0x8c000510,
+ 0x0500000f, 0x5830540d, 0x42004000, 0x00100044,
+ 0x0501f00b, 0x412c6000, 0x0501f847, 0x05000008,
+ 0x90240582, 0x05020003, 0x58300011, 0x80102480,
+ 0x50200000, 0x80004540, 0x0500003d, 0x50200000,
0x80000540, 0x0500000b, 0x80301400, 0x58080002,
0x80102480, 0x0500101d, 0x801021c0, 0x05000009,
- 0x80285040, 0x05000049, 0x80204000, 0x05fdf7f4,
- 0x58300001, 0x80006540, 0x05000044, 0x05fdf7df,
- 0x80285040, 0x05000041, 0x80204000, 0x50200000,
+ 0x80285040, 0x05000032, 0x80204000, 0x05fdf7f4,
+ 0x58300001, 0x80006540, 0x0500002d, 0x05fdf7e7,
+ 0x80285040, 0x0500002a, 0x80204000, 0x50200000,
0x80000540, 0x05020009, 0x58300001, 0x80006540,
- 0x0500003a, 0x58300208, 0x90004d0f, 0x82244400,
- 0x001012ac, 0x50204000, 0x592c020c, 0x8400051e,
- 0x48025a0c, 0x0501f010, 0x80102080, 0x80102000,
+ 0x05000023, 0x58300208, 0x90004d0f, 0x82244400,
+ 0x0010004b, 0x50204000, 0x592c020c, 0x8400051e,
+ 0x48025a0c, 0x0501f012, 0x80102080, 0x80102000,
0x48126012, 0x4813c857, 0x58080802, 0x40100000,
- 0x80042480, 0x05f41ffd, 0x58080000, 0x80102400,
- 0x48126010, 0x4813c857, 0x592c020c, 0x8400055e,
- 0x48025a0c, 0x59300008, 0x8400052c, 0x48026008,
- 0x592c1001, 0x58080409, 0x90000503, 0x90000581,
- 0x05020012, 0x599c0019, 0x8c00050c, 0x0502000f,
- 0x90280581, 0x05020003, 0x59300812, 0x0501f007,
- 0x80280840, 0x5808020a, 0x40001000, 0x0535f97b,
- 0x59300012, 0x80040c00, 0x48066013, 0x59300008,
- 0x8400056c, 0x48026008, 0x592c1001, 0x58080409,
- 0x8c000510, 0x05000003, 0x0501f822, 0x05000003,
- 0x80000580, 0x0501f002, 0x90000541, 0x5c00b800,
- 0x1c01f000, 0x592c6801, 0x803469c0, 0x05000017,
- 0x58347805, 0x58347409, 0x90380503, 0x8c380510,
- 0x0c020006, 0x0c01f001, 0x0010161d, 0x0010161a,
- 0x00101620, 0x00101622, 0x00101622, 0x00101622,
- 0x0010161d, 0x0010161d, 0x803c00c6, 0x80102400,
- 0x0501f004, 0x803c00c6, 0x80102480, 0x05001003,
- 0x80000580, 0x1c01f000, 0x90000541, 0x1c01f000,
- 0x4c040000, 0x4c080000, 0x4c600000, 0x592c0208,
- 0x82000500, 0x000000ff, 0xb00005a8, 0x05000007,
- 0x90000582, 0x05000005, 0x90000598, 0x05000003,
- 0x90000588, 0x05020037, 0x592c6801, 0x803469c0,
- 0x05000034, 0x58340208, 0x82000500, 0x000000ff,
- 0xb000058a, 0x0502002f, 0x5834740d, 0x592cc20b,
- 0x40380000, 0x8060c480, 0x42007800, 0x001012a5,
- 0x0501f82a, 0x05fe07ff, 0x40607000, 0x503c0000,
- 0x80341400, 0x805c00c6, 0x58088002, 0x80408480,
- 0x0500101b, 0x0500001a, 0x58088800, 0x80448c00,
- 0x58089001, 0x90489440, 0x59300827, 0x800409c0,
- 0x05000018, 0x4844080d, 0x4848080e, 0x4840080f,
- 0x4978080c, 0x80380040, 0x05000003, 0x05020813,
- 0x4838080c, 0x59300827, 0x4834080a, 0x483c080b,
- 0x503c0000, 0x48000809, 0x90000541, 0x5c00c000,
- 0x5c001000, 0x5c000800, 0x1c01f000, 0x58088002,
- 0x80400106, 0x805cbc80, 0x0501f804, 0x05fe07dc,
- 0x80000580, 0x05fdf7f6, 0x4803c856, 0x803c7800,
- 0x503c0000, 0x80000540, 0x05000003, 0x80387040,
- 0x1c01f000, 0x58340001, 0x80006d40, 0x0500000a,
- 0x58340208, 0x9000050f, 0x82000400, 0x001012ac,
- 0x50007800, 0x803c79c0, 0x05f40f60, 0x80387040,
- 0x1c01f000, 0x40007000, 0x1c01f000, 0x802850c6,
- 0x59306827, 0x58340009, 0x5834100a, 0x5834180b,
- 0x5834200c, 0x58344810, 0x80087c00, 0x583c0002,
- 0x80284480, 0x0500100f, 0x80102040, 0x0500001f,
- 0x80244c80, 0x0500001d, 0x40205000, 0x800c1800,
- 0x500c0000, 0x80000d40, 0x05fe07f4, 0x58081001,
- 0x42001800, 0x001012a3, 0x60240000, 0x05fdf7ef,
- 0x80204080, 0x80204000, 0x4810680c, 0x583c0000,
- 0x80282c00, 0x583c3001, 0x90183440, 0x500c0800,
- 0x48046809, 0x4808680a, 0x480c680b, 0x4810680c,
- 0x4814680d, 0x4818680e, 0x4820680f, 0x48246810,
- 0x80000580, 0x1c01f000, 0x90000541, 0x1c01f000,
- 0x4d2c0000, 0x0001f817, 0x05f40f2c, 0x412c1000,
- 0x5c025800, 0x4a001009, 0x000201cd, 0x9008040a,
- 0x48001003, 0x0001f1c3, 0x4d2c0000, 0x40325800,
- 0x05f9fadb, 0x5c025800, 0x1c01f000, 0x4807c857,
- 0x05f5ff1e, 0x42001000, 0x001105e7, 0x4a001003,
- 0x001105f1, 0x4a001009, 0x000201cd, 0x4978100a,
- 0x1c01f000, 0x59e00017, 0x8c000500, 0x1c01f000,
- 0x0001f9d6, 0x4d040000, 0x4c640000, 0x4c600000,
- 0x40120800, 0x400cc800, 0x4014c000, 0x0501f01a,
- 0x59e00017, 0x8c00050c, 0x05020005, 0x59a808a0,
- 0x58040003, 0x8c000500, 0x0500000d, 0x4c080000,
- 0x59a8109f, 0x50080000, 0x84000542, 0x44001000,
- 0x5c001000, 0x59e00017, 0x8c00050c, 0x05fe07fe,
- 0x58040003, 0x8c000500, 0x05fe07fb, 0x4d040000,
- 0x4c640000, 0x4c600000, 0x5804c800, 0x58060801,
- 0x5804c002, 0x4a03b805, 0x20000000, 0x59dc0006,
+ 0x80042480, 0x05f81a6c, 0x58080000, 0x58081801,
+ 0x80102400, 0x48126010, 0x480e6011, 0x4813c857,
+ 0x592c020c, 0x8400055e, 0x48025a0c, 0x4833c857,
+ 0x4823c857, 0x482bc857, 0x4832600d, 0x4822600e,
+ 0x482a600f, 0x80000580, 0x0501f002, 0x90000541,
+ 0x1c01f000, 0x58300208, 0x90004d0f, 0x82244400,
+ 0x0010004b, 0x82000500, 0x000000ff, 0x900005a9,
+ 0x05020016, 0x50204000, 0x592c040d, 0x80000540,
+ 0x05f80a4d, 0x90000c82, 0x0500100e, 0x58300001,
+ 0x80006540, 0x05f80a48, 0x58300208, 0x9000050f,
+ 0x82000400, 0x0010004b, 0x50004000, 0x40040000,
+ 0x800409c0, 0x05000005, 0x90040c85, 0x05fe17f4,
+ 0x80204400, 0x80000580, 0x1c01f000, 0x4c5c0000,
+ 0x59e4b800, 0x485fc857, 0x905c051f, 0x05fa0a36,
+ 0x825c0500, 0x000000e0, 0x05f80a33, 0x8c5c050e,
+ 0x05020807, 0x8c5c050c, 0x05020809, 0x8c5c050a,
+ 0x050208fc, 0x5c00b800, 0x1c01f000, 0x4803c856,
+ 0x4a03c800, 0x00000080, 0x1c01f000, 0x4d2c0000,
+ 0x42007800, 0x00112489, 0x583c0003, 0x583c0804,
+ 0x80040540, 0x05000033, 0x42000800, 0x00112323,
+ 0x50065800, 0x592c0002, 0x90000580, 0x0500002d,
+ 0x59e40050, 0x59e40852, 0x80040480, 0x82000500,
+ 0xfffffc00, 0x05020005, 0x59e40050, 0x59e40851,
+ 0x80040800, 0x80040480, 0x82000c80, 0x00000400,
+ 0x59e40050, 0x80041400, 0x480bc857, 0x480bc857,
+ 0x480a5803, 0x583c1009, 0x583c000a, 0x80080580,
+ 0x05020005, 0x583c0000, 0x84000550, 0x48007800,
+ 0x41781000, 0x82080400, 0x00001000, 0x4803c857,
+ 0x48007809, 0x583c0003, 0x80081400, 0x480bc857,
+ 0x583c0804, 0x64025801, 0x4a025809, 0x0010142b,
+ 0x480a5807, 0x48065808, 0x59e40053, 0x800000c4,
+ 0x48025805, 0x412c1000, 0x492fc857, 0x0001f829,
+ 0x5c025800, 0x6503c800, 0x1c01f000, 0x42007800,
+ 0x00112323, 0x503c7800, 0x4a007802, 0x00000100,
+ 0x42007800, 0x00112489, 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, 0x0519fd2c, 0x1c01f000, 0x42007800,
+ 0x00112489, 0x4d2c0000, 0x4c5c0000, 0x4c600000,
+ 0x4030b800, 0x583cc000, 0x4a00b802, 0x00000100,
+ 0x583c2015, 0x80100800, 0x583c0013, 0x80040580,
+ 0x05020003, 0x8460c554, 0x41780800, 0x48047815,
+ 0x8c600502, 0x05f809b4, 0x8460c502, 0x48607800,
+ 0x42000000, 0x00112324, 0x50000000, 0x80300580,
+ 0x05fa09ad, 0x583c081e, 0x800409c0, 0x05000008,
+ 0x583c001f, 0x80040580, 0x05020005, 0x4978781f,
+ 0x60081800, 0x60a01100, 0x0519fd07, 0x8c600508,
+ 0x050e0ca2, 0x5c00c000, 0x5c00b800, 0x5c025800,
+ 0x1c01f000, 0x4d2c0000, 0x4c5c0000, 0x4c600000,
+ 0x4c640000, 0x42000800, 0x00112324, 0x50065800,
+ 0x4a025809, 0x0010144f, 0x6000c002, 0x4200b800,
+ 0x00112489, 0x585cc800, 0x4867c857, 0x8d0c052a,
+ 0x0502000f, 0x40ee5800, 0x492fc857, 0x4a025802,
+ 0x00000100, 0x585c0014, 0x80000000, 0x90000503,
+ 0x4800b814, 0x4a025809, 0x00103116, 0x585cc017,
+ 0x8260c500, 0x000000ff, 0x05f8097f, 0x4c580000,
+ 0x61e8b001, 0x8058b040, 0x05f8097b, 0x8c640502,
+ 0x0500000b, 0x8d0c052a, 0x05fa0977, 0x4c580000,
+ 0x4c600000, 0x0001f9c0, 0x585cc800, 0x5c00c000,
+ 0x5c00b000, 0x485bc857, 0x05fdf7f3, 0x5c00b000,
+ 0x4200b800, 0x00112489, 0x8464cd42, 0x4864b800,
+ 0x592c0002, 0x90000580, 0x05f80967, 0x585c100d,
+ 0x585c0018, 0x80081400, 0x80600400, 0x4800b818,
+ 0x585c0014, 0x800001c0, 0x05020002, 0x4978b818,
+ 0x8060c0c4, 0x492fc857, 0x480bc857, 0x4863c857,
+ 0x480a5803, 0x585c001d, 0x4803c857, 0x585c180e,
+ 0x800c1400, 0x480a5807, 0x4808b81b, 0x80600400,
+ 0x4800b81d, 0x4803c857, 0x800c0400, 0x4800b819,
+ 0x585c0810, 0x4807c857, 0x4803c857, 0x80040d80,
+ 0x05020004, 0x4978b81d, 0x585c080e, 0x4804b819,
+ 0x585c080e, 0x80040580, 0x82000500, 0x000003ff,
+ 0x05020004, 0x585c001f, 0x80000000, 0x4800b81f,
+ 0x585c080f, 0x48065808, 0x4807c857, 0x64025801,
+ 0x48625805, 0x412c1000, 0x0001f829, 0x5c00c800,
+ 0x5c00c000, 0x5c00b800, 0x5c025800, 0x1c01f000,
+ 0x6483c800, 0x0561fa6b, 0x59e40000, 0x1c01f000,
+ 0x60001020, 0x80081040, 0x05000022, 0x0561fb8f,
+ 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, 0x61880809, 0x0561fb74,
+ 0x05020003, 0x4803c856, 0x0561fb78, 0x59800802,
+ 0x4807c857, 0x8c040520, 0x05000007, 0x64030000,
+ 0x60101020, 0x50080000, 0x8400054c, 0x44001000,
+ 0x0501f000, 0x82040500, 0x00001084, 0x05fa08f6,
+ 0x8c040510, 0x05000006, 0x42000000, 0x00112486,
+ 0x0561fa33, 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, 0x00112487, 0x0561fa14,
+ 0x61fc4001, 0x42001800, 0xffffff00, 0x8c18050c,
+ 0x05000003, 0x840c19c0, 0x842041c0, 0x821c0580,
+ 0x00020000, 0x05020003, 0x900c19c0, 0x902041c0,
+ 0x800c0505, 0x80200540, 0x44002000, 0x4a030002,
+ 0x00020000, 0x64030000, 0x1c01f000, 0x4d2c0000,
+ 0x64007000, 0x82040d00, 0x43200f80, 0x05fa08ba,
+ 0x58380008, 0x4803c00f, 0x583a5807, 0x592c0801,
+ 0x800409c0, 0x0500000e, 0x592c0000, 0x48000800,
+ 0x58380006, 0x812c0580, 0x05020002, 0x48047006,
+ 0x48047007, 0x60042000, 0x055dfd1b, 0x05f808aa,
+ 0x05f9fc5d, 0x5c025800, 0x05f9f540, 0x4a0370e4,
+ 0x00003000, 0x0551f978, 0x59a8049f, 0x84000502,
+ 0x4803549f, 0x583a5807, 0x592c0000, 0x48007007,
+ 0x800001c0, 0x05020002, 0x49787006, 0x05f9fc4e,
+ 0x5c025800, 0x42007000, 0x000211e8, 0x0001f03e,
+ 0x4803c856, 0x4c3c0000, 0x4d2c0000, 0x4d300000,
+ 0x5830000a, 0x80025d40, 0x0500001a, 0x592e600c,
+ 0x4c300000, 0x0551f975, 0x5c006000, 0x05f8088a,
+ 0x58300002, 0x82000580, 0x00000100, 0x05000003,
+ 0x640a5a0a, 0x492fc857, 0x4c300000, 0x0001fba8,
+ 0x5c025800, 0x05f9fc34, 0x0009f810, 0x59c80000,
+ 0x82000540, 0x00001200, 0x48039000, 0x850e1d1c,
+ 0x5c026000, 0x5c025800, 0x5c007800, 0x1c01f000,
+ 0x40325800, 0x05f9fc28, 0x05fdf7fa, 0x59300025,
+ 0x48025814, 0x59300026, 0x48025815, 0x59300a23,
+ 0x8c04050c, 0x05020007, 0x59300020, 0x59300a21,
+ 0x800408e0, 0x80040540, 0x5930081f, 0x0501f006,
+ 0x59300820, 0x59300221, 0x800408e0, 0x80040d40,
+ 0x5930001f, 0x9c0001c0, 0x9c0409c0, 0x48025816,
+ 0x48065817, 0x1c01f000, 0x592c0001, 0x80003540,
+ 0x05f80859, 0x58180a08, 0x82040d00, 0x000000ff,
+ 0xb004058a, 0x05fa0854, 0x592c1015, 0x592c1a16,
+ 0x58182209, 0x592c2c16, 0x592c0017, 0x800000e0,
+ 0x80142d40, 0x592c0017, 0x80003920, 0x58184409,
+ 0x5818020a, 0x8c20050e, 0x05fa0847, 0x800048e0,
+ 0x80244d40, 0x5818000b, 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, 0x05f8082a,
+ 0x58300a08, 0x82040d00, 0x000000ff, 0xb004058a,
+ 0x05fa0825, 0x58302c09, 0x8c140506, 0x58300209,
+ 0x05000002, 0x80080400, 0x48026421, 0x48026221,
+ 0x5830020a, 0x800008e0, 0x80040540, 0x48026024,
+ 0x8c14050a, 0x05020004, 0x592c0015, 0x80080400,
+ 0x4802601f, 0x5830320a, 0x8c140510, 0x0502000c,
+ 0x90142d03, 0x90140582, 0x0500000e, 0x90140581,
+ 0x05000007, 0x40080800, 0x90180408, 0x40001000,
+ 0x0535fe1f, 0x40042000, 0x0501f006, 0x40080800,
+ 0x40181000, 0x4004b800, 0x0535fe19, 0x40042000,
+ 0x4c100000, 0x05fdfda8, 0x05f40fff, 0x5c002000,
+ 0x50200000, 0x80004540, 0x0500005d, 0x58300a08,
+ 0x82040d00, 0x000000ff, 0xb004058a, 0x05020006,
+ 0x80204000, 0x58300409, 0x8c000510, 0x05000002,
+ 0x80204000, 0x50200000, 0x80000540, 0x0500000b,
+ 0x80301400, 0x58080002, 0x80102480, 0x0500101d,
+ 0x801021c0, 0x05000009, 0x80285040, 0x05000048,
+ 0x80204000, 0x05fdf7f4, 0x58300001, 0x80006540,
+ 0x05000043, 0x05fdf7df, 0x80285040, 0x05000040,
+ 0x80204000, 0x50200000, 0x80000540, 0x05020009,
+ 0x58300001, 0x80006540, 0x05000039, 0x58300208,
+ 0x90004d0f, 0x82244400, 0x0010004b, 0x50204000,
+ 0x592c020c, 0x8400051e, 0x48025a0c, 0x0501f010,
+ 0x80102080, 0x80102000, 0x48126012, 0x4813c857,
+ 0x58080802, 0x40100000, 0x80042480, 0x05f41fc6,
+ 0x58080000, 0x80102400, 0x48126010, 0x4813c857,
+ 0x592c020c, 0x8400055e, 0x48025a0c, 0x59300008,
+ 0x8400052c, 0x48026008, 0x592c1001, 0x58080409,
+ 0x90000503, 0x90000581, 0x05020011, 0x0561fa77,
+ 0x0502000f, 0x90280581, 0x05020003, 0x59300812,
+ 0x0501f007, 0x80280840, 0x5808020a, 0x40001000,
+ 0x0535fdc3, 0x59300012, 0x80040c00, 0x48066013,
+ 0x59300008, 0x8400056c, 0x48026008, 0x592c1001,
+ 0x58080409, 0x8c000510, 0x05000003, 0x0501f822,
+ 0x05000003, 0x80000580, 0x0501f002, 0x90000541,
+ 0x5c00b800, 0x1c01f000, 0x592c6801, 0x803469c0,
+ 0x05000017, 0x58347805, 0x58347409, 0x90380503,
+ 0x8c380510, 0x0c020006, 0x0c01f001, 0x0010168e,
+ 0x0010168b, 0x00101691, 0x00101693, 0x00101693,
+ 0x00101693, 0x0010168e, 0x0010168e, 0x803c00c6,
+ 0x80102400, 0x0501f004, 0x803c00c6, 0x80102480,
+ 0x05001003, 0x80000580, 0x1c01f000, 0x90000541,
+ 0x1c01f000, 0x4c040000, 0x4c080000, 0x4c600000,
+ 0x592c0208, 0x82000500, 0x000000ff, 0xb00005a8,
+ 0x05000007, 0x90000582, 0x05000005, 0x90000598,
+ 0x05000003, 0x90000588, 0x05020037, 0x592c6801,
+ 0x803469c0, 0x05000034, 0x58340208, 0x82000500,
+ 0x000000ff, 0xb000058a, 0x0502002f, 0x5834740d,
+ 0x592cc20b, 0x40380000, 0x8060c480, 0x42007800,
+ 0x00100044, 0x0501f82a, 0x05fe07ff, 0x40607000,
+ 0x503c0000, 0x80341400, 0x805c00c6, 0x58088002,
+ 0x80408480, 0x0500101b, 0x0500001a, 0x58088800,
+ 0x80448c00, 0x58089001, 0x90489440, 0x59300827,
+ 0x800409c0, 0x05000018, 0x4844080d, 0x4848080e,
+ 0x4840080f, 0x4978080c, 0x80380040, 0x05000003,
+ 0x05020813, 0x4838080c, 0x59300827, 0x4834080a,
+ 0x483c080b, 0x503c0000, 0x48000809, 0x90000541,
+ 0x5c00c000, 0x5c001000, 0x5c000800, 0x1c01f000,
+ 0x58088002, 0x80400106, 0x805cbc80, 0x0501f804,
+ 0x05fe07dc, 0x80000580, 0x05fdf7f6, 0x4803c856,
+ 0x803c7800, 0x503c0000, 0x80000540, 0x05000003,
+ 0x80387040, 0x1c01f000, 0x58340001, 0x80006d40,
+ 0x0500000a, 0x58340208, 0x9000050f, 0x82000400,
+ 0x0010004b, 0x50007800, 0x803c79c0, 0x05f40f2a,
+ 0x80387040, 0x1c01f000, 0x40007000, 0x1c01f000,
+ 0x802850c6, 0x59306827, 0x58340009, 0x5834100a,
+ 0x5834180b, 0x5834200c, 0x58344810, 0x80087c00,
+ 0x583c0002, 0x80284480, 0x0500100f, 0x80102040,
+ 0x0500001f, 0x80244c80, 0x0500001d, 0x40205000,
+ 0x800c1800, 0x500c0000, 0x80000d40, 0x05fe07f4,
+ 0x58081001, 0x42001800, 0x00100042, 0x60240000,
+ 0x05fdf7ef, 0x80204080, 0x80204000, 0x4810680c,
+ 0x583c0000, 0x80282c00, 0x583c3001, 0x90183440,
+ 0x500c0800, 0x48046809, 0x4808680a, 0x480c680b,
+ 0x4810680c, 0x4814680d, 0x4818680e, 0x4820680f,
+ 0x48246810, 0x80000580, 0x1c01f000, 0x90000541,
+ 0x1c01f000, 0x4d2c0000, 0x0001f81f, 0x05f40ef6,
+ 0x412c1000, 0x5c025800, 0x4a001009, 0x000201d5,
+ 0x9008040a, 0x48001003, 0x0001f1cb, 0x4d2c0000,
+ 0x40325800, 0x05f9faa1, 0x5c025800, 0x1c01f000,
+ 0x4807c857, 0x05f5fee8, 0x42001000, 0x0011458b,
+ 0x4a001003, 0x00114595, 0x4a001009, 0x000201d5,
+ 0x4978100a, 0x1c01f000, 0x59e00017, 0x8c000500,
+ 0x1c01f000, 0x0001f9de, 0x4d040000, 0x4c640000,
+ 0x4c600000, 0x40120800, 0x400cc800, 0x4014c000,
+ 0x0501f01a, 0x59e00017, 0x8c00050c, 0x05020005,
+ 0x59a808a3, 0x58040003, 0x8c000500, 0x0500000d,
+ 0x4c080000, 0x59a810a2, 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,
- 0x70000000, 0x59dc0006, 0x4867b800, 0x4907b801,
- 0x6413b802, 0x601c00e2, 0x44600000, 0x4a03b805,
- 0x30000000, 0x59dc0006, 0x4a03b805, 0x10000003,
- 0x59dc0006, 0x8c00053e, 0x05fc07fe, 0x4a03b805,
- 0x20000000, 0x59dc0006, 0x5c00c000, 0x5c00c800,
- 0x5c020800, 0x1c01f000, 0x4803c856, 0x055dfa08,
- 0x0001f1df, 0x59300c03, 0xb0040592, 0x05020037,
- 0x59c80000, 0x82000540, 0x00001200, 0x48039000,
- 0x850e1d1c, 0x4d2c0000, 0x59325809, 0x42007000,
- 0x000211a7, 0x58380800, 0x90040582, 0x0502000c,
- 0x58386001, 0x58300009, 0x82000580, 0x0010150e,
- 0x05020007, 0x5830000a, 0x812c0580, 0x05020004,
- 0x4933c857, 0x4978600a, 0x0501f01e, 0x58386005,
- 0x40305000, 0x803061c0, 0x0500001a, 0x58300009,
- 0x82000580, 0x0010150e, 0x05020004, 0x5830000a,
- 0x812c0580, 0x05000004, 0x40305000, 0x58306000,
- 0x05fdf7f5, 0x4933c856, 0x8030058a, 0x58300000,
- 0x05000006, 0x48005000, 0x800001c0, 0x05020007,
- 0x48287004, 0x0501f005, 0x800001c0, 0x05020002,
- 0x48007004, 0x48007005, 0x40325800, 0x05f9fa53,
- 0x5c025800, 0x0501f010, 0x59300a03, 0x90040581,
- 0x0502000d, 0x42001000, 0x0010e387, 0x50081000,
- 0x58080002, 0x82000580, 0x00000100, 0x05000006,
- 0x5808000c, 0x81300580, 0x05020003, 0x4933c856,
- 0x4978100c, 0x59300004, 0x84000520, 0x48026004,
- 0x1c01f000, 0x4803c856, 0x60f00800, 0x48079000,
- 0x59c80000, 0x80040500, 0x05fe07fe, 0x497b9005,
- 0x4a039035, 0x00880400, 0x59a8003b, 0x800000e0,
- 0x4803900e, 0x64c39011, 0x4a03900f, 0x00111b00,
- 0x4a039010, 0x00111b00, 0x65db9015, 0x4a039003,
- 0x00001f07, 0x6503900d, 0x4a039000, 0x00001600,
- 0x1c01f000, 0x59c80007, 0x8c000508, 0x05020885,
- 0x59c80800, 0x8c040516, 0x05020003, 0x90000506,
- 0x0c01f004, 0x4807c857, 0x9000050e, 0x0c01f001,
- 0x00101789, 0x00101788, 0x00106d20, 0x00101788,
- 0x0010178b, 0x00101788, 0x0010178b, 0x0010178b,
- 0x00101788, 0x00101788, 0x00101788, 0x00101788,
- 0x0010178b, 0x00101788, 0x0010178b, 0x00101788,
- 0x05f5fe52, 0x4803c857, 0x1c01f000, 0x59c8080c,
- 0x4807c857, 0x82040500, 0x00006000, 0x05000003,
- 0x055df808, 0x0501f005, 0x82040500, 0x007f0000,
- 0x05000004, 0x0559ffd5, 0x0539f899, 0x0501f02c,
- 0x90040514, 0x0500000d, 0x055df82d, 0x916c0583,
- 0x05000008, 0x0525f911, 0x05000003, 0x051df94c,
- 0x0501f004, 0x64075042, 0x6006d800, 0x0525f88e,
- 0x0501f820, 0x0501f01e, 0x82040500, 0x00001c00,
- 0x05000004, 0x0559fffd, 0x0501f81a, 0x0501f018,
- 0x82040500, 0x00000140, 0x05000004, 0x055df80a,
- 0x0501f814, 0x0501f012, 0x82040500, 0x00008000,
- 0x0500000f, 0x0525f8f9, 0x0500000b, 0x59c400a4,
- 0x9000050f, 0x9000058b, 0x05020007, 0x4c040000,
- 0x051df946, 0x60780000, 0x80000040, 0x05fe07ff,
- 0x5c000800, 0x0559ffd0, 0x0501f802, 0x1c01f000,
- 0x4c0c0000, 0x4c100000, 0x4c140000, 0x05fdf8b6,
- 0x5c002800, 0x5c002000, 0x5c001800, 0x1c01f000,
- 0x4803c856, 0x59a80804, 0x59a8004e, 0x82000500,
- 0xfffff000, 0x80040540, 0x4803504e, 0x59a80052,
- 0x82000500, 0xfffff000, 0x80040540, 0x48035052,
- 0x59a80056, 0x82000500, 0xfffff000, 0x80040540,
- 0x48035056, 0x48078882, 0x82040480, 0x00000204,
- 0x05021004, 0x42001000, 0x00240f00, 0x0501f00f,
- 0x82040480, 0x00000404, 0x05021004, 0x42001000,
- 0x00440800, 0x0501f009, 0x82040480, 0x00000804,
- 0x05021004, 0x42001000, 0x00840400, 0x0501f003,
- 0x42001000, 0x00880400, 0x480b9035, 0x0501f350,
- 0x59c80815, 0x05f5fdde, 0x4807c857, 0xb0040d3c,
+ 0x10000003, 0x59dc0006, 0x8c00053e, 0x05fc07fe,
+ 0x4a03b805, 0x20000000, 0x59dc0006, 0x5c00c000,
+ 0x5c00c800, 0x5c020800, 0x1c01f000, 0x4803c856,
+ 0x0561f912, 0x0001f1e7, 0x59300c03, 0xb0040592,
+ 0x05020037, 0x59c80000, 0x82000540, 0x00001200,
+ 0x48039000, 0x850e1d1c, 0x4d2c0000, 0x59325809,
+ 0x42007000, 0x000211e8, 0x58380800, 0x90040582,
+ 0x0502000c, 0x58386001, 0x58300009, 0x82000580,
+ 0x00101580, 0x05020007, 0x5830000a, 0x812c0580,
+ 0x05020004, 0x4933c857, 0x4978600a, 0x0501f01e,
+ 0x58386005, 0x40305000, 0x803061c0, 0x0500001a,
+ 0x58300009, 0x82000580, 0x00101580, 0x05020004,
+ 0x5830000a, 0x812c0580, 0x05000004, 0x40305000,
+ 0x58306000, 0x05fdf7f5, 0x4933c856, 0x8030058a,
+ 0x58300000, 0x05000006, 0x48005000, 0x800001c0,
+ 0x05020007, 0x48287004, 0x0501f005, 0x800001c0,
+ 0x05020002, 0x48007004, 0x48007005, 0x40325800,
+ 0x05f9fa19, 0x5c025800, 0x0501f010, 0x59300a03,
+ 0x90040581, 0x0502000d, 0x42001000, 0x00112322,
+ 0x50081000, 0x58080002, 0x82000580, 0x00000100,
+ 0x05000006, 0x5808000c, 0x81300580, 0x05020003,
+ 0x4933c856, 0x4978100c, 0x59300004, 0x84000520,
+ 0x48026004, 0x1c01f000, 0x4803c856, 0x60f00800,
0x48079000, 0x59c80000, 0x80040500, 0x05fe07fe,
- 0x8c040504, 0x0500001b, 0x59c80035, 0x48039035,
- 0x59a800ca, 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, 0x60100020, 0x50000000, 0x8c000520,
- 0x05020006, 0x42006000, 0x7ff4c000, 0x58300003,
- 0x8c000502, 0x0502000a, 0x600060de, 0x64686000,
- 0x58300000, 0x8c000504, 0x05fe07fe, 0x641c6002,
- 0x59a800ca, 0x84000540, 0x480350ca, 0x1c01f000,
- 0x600060de, 0x58300801, 0x9004050c, 0x05f60da7,
- 0x60f00800, 0x05fdf7c1, 0x4853c857, 0x497b8801,
- 0x850e1d1a, 0x5050b000, 0x485bc857, 0x8058b1c0,
- 0x0500089d, 0x82580480, 0x00000804, 0x0502189a,
- 0x60040000, 0x61000801, 0x0501fd74, 0x40582000,
- 0x8050a000, 0x50500000, 0x80102400, 0x9058b483,
- 0x8050a000, 0x485bc857, 0x4853c857, 0x50501000,
- 0x80082404, 0x60101800, 0x82080500, 0x000000ff,
- 0x61000821, 0x0501fd65, 0x80081110, 0x800c1840,
- 0x05fe07fa, 0x8050a000, 0x8058b040, 0x05fe07f4,
- 0x4803c856, 0x41780000, 0x61000801, 0x0501fd5b,
- 0x50501000, 0x80082404, 0x0502087b, 0x4803c856,
- 0x1c01f000, 0x4a035076, 0xaabbccdd, 0x600c0000,
- 0x0501fcb1, 0x600c0000, 0x0501fcdf, 0x60300868,
- 0x0501fd49, 0x90040541, 0x60300868, 0x0501fd4b,
- 0x60480888, 0x0501fd44, 0x90040548, 0x60480888,
- 0x0501fd46, 0x60180818, 0x0501fd3f, 0x82040540,
- 0x00000080, 0x60180818, 0x0501fd40, 0x60480828,
- 0x0501fd39, 0x90040541, 0x60480828, 0x0501fd3b,
- 0x59a80084, 0x8c00050e, 0x05000006, 0x4803c857,
- 0x82000500, 0x0000ff00, 0x80000110, 0x0501f002,
- 0x60e00001, 0x60300800, 0x0501fd30, 0x60380940,
- 0x0501fd29, 0x82040500, 0xffffff0f, 0x0501fef5,
- 0x05020003, 0x90000540, 0x0501f002, 0x90000550,
- 0x60380940, 0x0501fd25, 0x60380938, 0x0501fd1e,
- 0x90040550, 0x60380938, 0x0501fd20, 0x60800000,
- 0x61000859, 0x0501fd1d, 0x61000000, 0x61000851,
- 0x0501fd1a, 0x60300000, 0x61800861, 0x0501fd17,
- 0x60840000, 0x61800821, 0x0501fd14, 0x59c40001,
- 0x84000574, 0x48038801, 0x850e1d5a, 0x61602004,
- 0x6029d000, 0x0501f83c, 0x4813c857, 0x61000849,
- 0x0501fd05, 0x4807c857, 0x82041500, 0x000000c0,
- 0x82081580, 0x000000c0, 0x05000004, 0x80102040,
- 0x05000825, 0x05fdf7f3, 0x4803c856, 0x60c82000,
- 0x6029d000, 0x0501f82c, 0x60380878, 0x0501fcf6,
- 0x90040d01, 0x05020004, 0x80102040, 0x0500081a,
- 0x05fdf7f8, 0x4803c856, 0x61702001, 0x6029d000,
- 0x052dff41, 0x60380818, 0x0501fceb, 0x90040d10,
- 0x05020004, 0x80102040, 0x05f40d10, 0x05fdf7f8,
- 0x4803c856, 0x60a02000, 0x6029d000, 0x052dff36,
- 0x603808b8, 0x0501fce0, 0x90040d04, 0x05000004,
- 0x80102040, 0x05f40d05, 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, 0x0501fde0, 0x0501fe23, 0x0501f9f6,
- 0x4a0388a7, 0x0000f7f7, 0x4a0388a3, 0x8000403c,
- 0x4a0388ae, 0x000061a8, 0x59c40001, 0x82000500,
- 0xfffe7fff, 0x82000540, 0x005fe063, 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,
- 0x05f40caa, 0x82040500, 0x00e80b00, 0x05020004,
- 0x8c04053e, 0x050208c9, 0x0501f005, 0x82040500,
- 0x00880b00, 0x05f60c9a, 0x05f5fca0, 0x4c5c0000,
- 0x4c600000, 0x59c4b805, 0x485fc857, 0x59c410a3,
- 0x84081518, 0x825c0500, 0x04000000, 0x05020d5c,
- 0x59c40006, 0x8c000500, 0x05000003, 0x8c5c0500,
- 0x05020080, 0x0521ff65, 0x0500001c, 0x0521ff6f,
- 0x0500001a, 0x59c40005, 0x82000500, 0x000000c0,
- 0x05000042, 0x0521ff6f, 0x05020040, 0x59c40006,
- 0x82000500, 0x000000f0, 0x05020004, 0x4a038805,
- 0x000000c0, 0x0501f039, 0x59a80043, 0x84000506,
- 0x48035043, 0x42006000, 0xff203fff, 0x42006800,
- 0x40000000, 0x051df8f6, 0x60400800, 0x42001000,
- 0x001051b3, 0x052dfe99, 0x8c5c0534, 0x0502002b,
- 0x4a035041, 0x0000aaaa, 0x59c40005, 0x8c00050c,
- 0x0502000f, 0x8c00050e, 0x05020015, 0x8c00050a,
- 0x0502001b, 0x8c000508, 0x05000008, 0x59a8003f,
- 0x90000589, 0x05020005, 0x42000000, 0x0010e3a4,
- 0x0559fe64, 0x0525f8e2, 0x0501f04c, 0x42000000,
- 0x0010e3b2, 0x0559fe5f, 0x41781800, 0x60042000,
- 0x0501fd13, 0x64035042, 0x0501f00e, 0x42000000,
- 0x0010e3b3, 0x0559fe57, 0x41781800, 0x60082000,
- 0x0501fd0b, 0x640b5042, 0x0501f006, 0x42000000,
- 0x0010e3a6, 0x0559fe4f, 0x0525f873, 0x0501f037,
- 0x0525f91f, 0x0501f035, 0x8c5c0534, 0x05000031,
- 0x59c40005, 0x8c00053a, 0x05020004, 0x42000000,
- 0x0010e39a, 0x0559fe43, 0x4a038805, 0x20000000,
- 0x0521ff12, 0x0502000e, 0x4a038805, 0x04000000,
- 0x59c418a8, 0x60002000, 0x0501fcf1, 0x0521ff17,
- 0x05020005, 0x64075042, 0x6006d800, 0x0521fe8a,
- 0x0501f053, 0x41780000, 0x0521fedd, 0x0501fce1,
- 0x4000c000, 0x0501fc28, 0x916c1584, 0x0502000b,
+ 0x497b9005, 0x4a039035, 0x00880400, 0x59a8003d,
+ 0x800000e0, 0x4803900e, 0x64c39011, 0x4a03900f,
+ 0x00115aa4, 0x4a039010, 0x00115aa4, 0x65db9015,
+ 0x4a039003, 0x00001f07, 0x6503900d, 0x4a039000,
+ 0x00001600, 0x1c01f000, 0x59c80007, 0x8c000508,
+ 0x05020885, 0x59c80800, 0x8c040516, 0x05020003,
+ 0x90000506, 0x0c01f004, 0x4807c857, 0x9000050e,
+ 0x0c01f001, 0x001017fa, 0x001017f9, 0x001070b1,
+ 0x001017f9, 0x001017fc, 0x001017f9, 0x001017fc,
+ 0x001017fc, 0x001017f9, 0x001017f9, 0x001017f9,
+ 0x001017f9, 0x001017fc, 0x001017f9, 0x001017fc,
+ 0x001017f9, 0x05f5fe1c, 0x4803c857, 0x1c01f000,
+ 0x59c8080c, 0x4807c857, 0x82040500, 0x00006000,
+ 0x05000003, 0x055dff12, 0x0501f005, 0x82040500,
+ 0x007f0000, 0x05000004, 0x055dfedf, 0x0539fce6,
+ 0x0501f02c, 0x90040514, 0x0500000d, 0x055dff37,
+ 0x916c0583, 0x05000008, 0x0525fb8a, 0x05000003,
+ 0x051dfad2, 0x0501f004, 0x64075045, 0x6006d800,
+ 0x0525fb01, 0x0501f820, 0x0501f01e, 0x82040500,
+ 0x00001c00, 0x05000004, 0x055dff07, 0x0501f81a,
+ 0x0501f018, 0x82040500, 0x00000140, 0x05000004,
+ 0x055dff14, 0x0501f814, 0x0501f012, 0x82040500,
+ 0x00008000, 0x0500000f, 0x0525fb72, 0x0500000b,
+ 0x59c400a4, 0x9000050f, 0x9000058b, 0x05020007,
+ 0x4c040000, 0x051dfacc, 0x60780000, 0x80000040,
+ 0x05fe07ff, 0x5c000800, 0x055dfeda, 0x0501f802,
+ 0x1c01f000, 0x4c0c0000, 0x4c100000, 0x4c140000,
+ 0x05fdf8e3, 0x5c002800, 0x5c002000, 0x5c001800,
+ 0x1c01f000, 0x4803c856, 0x59a80804, 0x59a80051,
+ 0x82000500, 0xfffff000, 0x80040540, 0x48035051,
+ 0x59a80055, 0x82000500, 0xfffff000, 0x80040540,
+ 0x48035055, 0x59a80059, 0x82000500, 0xfffff000,
+ 0x80040540, 0x48035059, 0x48078882, 0x82040480,
+ 0x00000204, 0x05021004, 0x42001000, 0x00240f00,
+ 0x0501f00f, 0x82040480, 0x00000404, 0x05021004,
+ 0x42001000, 0x00440800, 0x0501f009, 0x82040480,
+ 0x00000804, 0x05021004, 0x42001000, 0x00840400,
+ 0x0501f003, 0x42001000, 0x00880400, 0x480b9035,
+ 0x0501f35f, 0x59c80815, 0x05f5fda8, 0x4807c857,
+ 0xb0040d3c, 0x48079000, 0x59c80000, 0x80040500,
+ 0x05fe07fe, 0x8c040504, 0x0500001b, 0x59c80035,
+ 0x48039035, 0x59a800cf, 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, 0x60100020, 0x50000000,
+ 0x8c000520, 0x05020006, 0x42006000, 0x7ff4c000,
+ 0x58300003, 0x8c000502, 0x0502000a, 0x600060de,
+ 0x64686000, 0x58300000, 0x8c000504, 0x05fe07fe,
+ 0x641c6002, 0x59a800cf, 0x84000540, 0x480350cf,
+ 0x1c01f000, 0x600060de, 0x58300801, 0x9004050c,
+ 0x05f60d71, 0x60f00800, 0x05fdf7c1, 0x4853c857,
+ 0x497b8801, 0x850e1d1a, 0x5050b000, 0x485bc857,
+ 0x8058b1c0, 0x050008a3, 0x82580480, 0x00000804,
+ 0x050218a0, 0x60040000, 0x61000801, 0x0501fd83,
+ 0x40582000, 0x8050a000, 0x50500000, 0x80102400,
+ 0x9058b483, 0x8050a000, 0x485bc857, 0x4853c857,
+ 0x50501000, 0x80082404, 0x60101800, 0x82080500,
+ 0x000000ff, 0x61000821, 0x0501fd74, 0x80081110,
+ 0x800c1840, 0x05fe07fa, 0x8050a000, 0x8058b040,
+ 0x05fe07f4, 0x4803c856, 0x41780000, 0x61000801,
+ 0x0501fd6a, 0x50501000, 0x80082404, 0x05020881,
+ 0x4803c856, 0x1c01f000, 0x4a035079, 0xaabbccdd,
+ 0x600c0000, 0x0501fcc0, 0x600c0000, 0x0501fcee,
+ 0x60300868, 0x0501fd58, 0x90040541, 0x60300868,
+ 0x0501fd5a, 0x60480888, 0x0501fd53, 0x90040548,
+ 0x60480888, 0x0501fd55, 0x60180818, 0x0501fd4e,
+ 0x82040540, 0x00000080, 0x60180818, 0x0501fd4f,
+ 0x60480828, 0x0501fd48, 0x90040541, 0x60480828,
+ 0x0501fd4a, 0x60300830, 0x0501fd43, 0x82040540,
+ 0x00000080, 0x60300830, 0x0501fd44, 0x59a80087,
+ 0x8c00050e, 0x05000006, 0x4803c857, 0x82000500,
+ 0x0000ff00, 0x80000110, 0x0501f002, 0x60e00001,
+ 0x60300800, 0x0501fd39, 0x60380940, 0x0501fd32,
+ 0x82040500, 0xffffff0f, 0x0501fefe, 0x05020003,
+ 0x90000540, 0x0501f002, 0x90000550, 0x60380940,
+ 0x0501fd2e, 0x60380938, 0x0501fd27, 0x90040550,
+ 0x60380938, 0x0501fd29, 0x60800000, 0x61000859,
+ 0x0501fd26, 0x61000000, 0x61000851, 0x0501fd23,
+ 0x60300000, 0x61800861, 0x0501fd20, 0x60840000,
+ 0x61800821, 0x0501fd1d, 0x59c40001, 0x84000574,
+ 0x48038801, 0x850e1d5a, 0x61602004, 0x6029d000,
+ 0x0501f83c, 0x4813c857, 0x61000849, 0x0501fd0e,
+ 0x4807c857, 0x82041500, 0x000000c0, 0x82081580,
+ 0x000000c0, 0x05000004, 0x80102040, 0x05000825,
+ 0x05fdf7f3, 0x4803c856, 0x60c82000, 0x6029d000,
+ 0x0501f82c, 0x60380878, 0x0501fcff, 0x90040d01,
+ 0x05020004, 0x80102040, 0x0500081a, 0x05fdf7f8,
+ 0x4803c856, 0x61702001, 0x6029d000, 0x0531fb35,
+ 0x60380818, 0x0501fcf4, 0x90040d10, 0x05020004,
+ 0x80102040, 0x05f40cd4, 0x05fdf7f8, 0x4803c856,
+ 0x60a02000, 0x6029d000, 0x0531fb2a, 0x603808b8,
+ 0x0501fce9, 0x90040d04, 0x05000004, 0x80102040,
+ 0x05f40cc9, 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,
+ 0x0501fde9, 0x0501fe2c, 0x0501f9ff, 0x4a0388a7,
+ 0x0000f7f7, 0x4a0388a3, 0x8000403c, 0x4a0388ae,
+ 0x000061a8, 0x59c40001, 0x82000500, 0xfffe7fff,
+ 0x82000540, 0x005fe063, 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, 0x05f40c6e,
+ 0x82040500, 0x00e80b00, 0x05020004, 0x8c04053e,
+ 0x050208d2, 0x0501f005, 0x82040500, 0x00880b00,
+ 0x05f60c5e, 0x05f5fc64, 0x4c5c0000, 0x4c600000,
+ 0x59c4b805, 0x485fc857, 0x59c410a3, 0x84081518,
+ 0x825c0500, 0x04000000, 0x05020d65, 0x59c40006,
+ 0x8c000500, 0x05000003, 0x8c5c0500, 0x05020089,
+ 0x0525f9d8, 0x0500001c, 0x0525f9e2, 0x0500001a,
+ 0x59c40005, 0x82000500, 0x000000c0, 0x05000042,
+ 0x0525f9e2, 0x05020040, 0x59c40006, 0x82000500,
+ 0x000000f0, 0x05020004, 0x4a038805, 0x000000c0,
+ 0x0501f039, 0x59a80046, 0x84000506, 0x48035046,
+ 0x42006000, 0xff203fff, 0x42006800, 0x40000000,
+ 0x051dfa76, 0x60400800, 0x42001000, 0x001053aa,
+ 0x0531fa8d, 0x8c5c0534, 0x0502002b, 0x4a035044,
+ 0x0000aaaa, 0x59c40005, 0x8c00050c, 0x0502000f,
+ 0x8c00050e, 0x05020015, 0x8c00050a, 0x0502001b,
+ 0x8c000508, 0x05000008, 0x59a80042, 0x90000589,
+ 0x05020005, 0x42000000, 0x00112345, 0x055dfd68,
+ 0x0525fb59, 0x0501f055, 0x42000000, 0x00112353,
+ 0x055dfd63, 0x41781800, 0x60042000, 0x0501fd1c,
+ 0x64035045, 0x0501f00e, 0x42000000, 0x00112354,
+ 0x055dfd5b, 0x41781800, 0x60082000, 0x0501fd14,
+ 0x640b5045, 0x0501f006, 0x42000000, 0x00112347,
+ 0x055dfd53, 0x0525fae8, 0x0501f040, 0x0525fb97,
+ 0x0501f03e, 0x8c5c0534, 0x0500003a, 0x59c40005,
+ 0x8c00053a, 0x05020004, 0x42000000, 0x0011233b,
+ 0x055dfd47, 0x4a038805, 0x20000000, 0x0525f985,
+ 0x0502000e, 0x4a038805, 0x04000000, 0x59c418a8,
+ 0x60002000, 0x0501fcfa, 0x0525f98a, 0x05020005,
+ 0x64075045, 0x6006d800, 0x0525f8f7, 0x0501f05c,
+ 0x41780000, 0x0525f94a, 0x0501fcea, 0x4000c000,
+ 0x59c400a2, 0x82000500, 0x0000ffff, 0x59881023,
+ 0x80081400, 0x05021002, 0x81781040, 0x480b1023,
+ 0x0505f8a7, 0x0501fc28, 0x916c1584, 0x0502000b,
0x8c5c0500, 0x05020013, 0x8d0c0506, 0x05020004,
0x59c410a3, 0x90081548, 0x480b88a3, 0x59c41006,
0x84081540, 0x480b8806, 0x4a038805, 0x04000000,
- 0x6006d800, 0x497b503e, 0x8d0c0518, 0x05020004,
- 0x4803c856, 0x850e1d06, 0x0519ff45, 0x0519f9e1,
+ 0x6006d800, 0x497b5041, 0x8d0c0518, 0x05020004,
+ 0x4803c856, 0x850e1d06, 0x051df8bc, 0x0519fb56,
0x8c5c053c, 0x05020852, 0x8c5c0500, 0x05000031,
- 0x42000000, 0x0010e4bc, 0x0559fe12, 0x64078805,
- 0x6148b006, 0x6191d000, 0x4c580000, 0x052dfe36,
+ 0x42000000, 0x00112460, 0x055dfd0d, 0x64078805,
+ 0x6148b006, 0x6191d000, 0x4c580000, 0x0531fa21,
0x0501fba3, 0x5c00b000, 0x05000004, 0x8058b040,
0x05fe07f9, 0x0501f004, 0x485bc857, 0x64078805,
0x0501f020, 0x485bc857, 0x59c40006, 0x84000500,
- 0x48038806, 0x0535fe78, 0x497b8880, 0x0501fda1,
+ 0x48038806, 0x0539fab6, 0x497b8880, 0x0501fda1,
0x05000008, 0x60000818, 0x0501fbcf, 0x8c040500,
- 0x05000004, 0x60142000, 0x0525f908, 0x0501f003,
- 0x60182000, 0x0525f905, 0x59c400a3, 0x82000500,
- 0xfcf8ffff, 0x480388a3, 0x640b50b4, 0x6012d800,
- 0x6403506a, 0x64078805, 0x05f5fe0c, 0x0501fb19,
- 0x497b5068, 0x64075075, 0x497b50a6, 0x05f5fa03,
+ 0x05000004, 0x60142000, 0x0525fb78, 0x0501f003,
+ 0x60182000, 0x0525fb75, 0x59c400a3, 0x82000500,
+ 0xfcf8ffff, 0x480388a3, 0x640b50b9, 0x6012d800,
+ 0x6403506d, 0x64078805, 0x05f5fdbb, 0x0501fb19,
+ 0x497b506b, 0x64075078, 0x497b50a9, 0x05f5f9ba,
0x825cbd00, 0xbbfffffe, 0x485f8805, 0x5c00c000,
0x5c00b800, 0x1c01f000, 0x4d180000, 0x59c41004,
0x480bc857, 0x8c080500, 0x05000006, 0x4803c856,
- 0x4a01a8e5, 0x00000800, 0x0535fefb, 0x0501f007,
+ 0x4a01a8e5, 0x00000800, 0x0539fb39, 0x0501f007,
0x82080500, 0x000001f0, 0x05000004, 0x4803c856,
- 0x0539f820, 0x05360f13, 0x4a038805, 0x80000000,
+ 0x0539fc5e, 0x053a0b51, 0x4a038805, 0x80000000,
0x5c023000, 0x1c01f000, 0x59c408a3, 0x4807c857,
0x84040d40, 0x480788a3, 0x1c01f000, 0x4d900000,
0x4dd00000, 0x4da40000, 0x4d140000, 0x4cd80000,
- 0x4a038805, 0x40000000, 0x42000000, 0x0010e3ac,
- 0x0559fdbc, 0x0535faf2, 0x59c41004, 0x8c080500,
+ 0x4a038805, 0x40000000, 0x42000000, 0x0011234d,
+ 0x055dfcb7, 0x0535ff30, 0x59c41004, 0x8c080500,
0x05000040, 0x598e600b, 0x4a01a8e5, 0x00000800,
0x813261c0, 0x05000024, 0x59300403, 0x900005b2,
0x05020021, 0x5930001e, 0x48038833, 0x4a038807,
- 0x00018000, 0x6009d000, 0x052dfdd3, 0x497b8807,
- 0x6009d000, 0x052dfdd0, 0x0535fd6c, 0x60c1d0ea,
- 0x052dfdcd, 0x59c408a4, 0x90040d0f, 0x90040d80,
+ 0x00018000, 0x6009d000, 0x0531f9be, 0x497b8807,
+ 0x6009d000, 0x0531f9bb, 0x0539f9aa, 0x60c1d0ea,
+ 0x0531f9b8, 0x59c408a4, 0x90040d0f, 0x90040d80,
0x05000004, 0x42000000, 0x00200000, 0x0501fb7c,
- 0x0535fa29, 0x59300009, 0x80000540, 0x05f40b97,
+ 0x0535fe67, 0x59300009, 0x80000540, 0x05f40b52,
0x40025800, 0x4a025a08, 0x00000103, 0x5931d82d,
- 0x58ef400b, 0x58ec0009, 0x0801f800, 0x0005ffdc,
+ 0x58ef400b, 0x58ec0009, 0x0801f800, 0x0009f810,
0x0501f032, 0x598c000d, 0x82001c80, 0x000000c8,
0x0502100c, 0x80000000, 0x4803180d, 0x59c400a4,
0x9000050f, 0x90000582, 0x05020004, 0x42000000,
- 0x00200000, 0x0501fb62, 0x052dfd59, 0x0501f023,
- 0x4933c857, 0x0535fd45, 0x813261c0, 0x0500001f,
- 0x64066203, 0x609e7000, 0x0009f800, 0x0501f01b,
- 0x0535ffc8, 0x05000019, 0x0535ffee, 0x052dfd74,
+ 0x00200000, 0x0501fb62, 0x0531f93d, 0x0501f023,
+ 0x4933c857, 0x0539f983, 0x813261c0, 0x0500001f,
+ 0x64066203, 0x609e7000, 0x0009f839, 0x0501f01b,
+ 0x0539fc06, 0x05000019, 0x0539fc2c, 0x0531f958,
0x59926005, 0x813261c0, 0x0500000d, 0x61201801,
- 0x0535ffb7, 0x0502000a, 0x59c400a4, 0x9000050f,
+ 0x0539fbf5, 0x0502000a, 0x59c400a4, 0x9000050f,
0x90000582, 0x05020004, 0x42000000, 0x00200000,
- 0x0501fb47, 0x052dfd44, 0x0501f008, 0x4933c857,
- 0x0535fcd1, 0x813261c0, 0x05000004, 0x613e7000,
- 0x640e6203, 0x0009f800, 0x5c01b000, 0x5c022800,
- 0x5c034800, 0x5c03a000, 0x5c032000, 0x0535f281,
+ 0x0501fb47, 0x0531f928, 0x0501f008, 0x4933c857,
+ 0x0539f90f, 0x813261c0, 0x05000004, 0x613e7000,
+ 0x640e6203, 0x0009f839, 0x5c01b000, 0x5c022800,
+ 0x5c034800, 0x5c03a000, 0x5c032000, 0x0535f6bf,
0x810c0d80, 0x8c04050e, 0x05000055, 0x4803c857,
- 0x8d0c050e, 0x05000021, 0x850e1d0e, 0x497b50b4,
- 0x42000000, 0x0010e393, 0x0559fd4e, 0x0559fdfa,
- 0x0001ff09, 0x60441100, 0x497b50a8, 0x59c40001,
+ 0x8d0c050e, 0x05000021, 0x850e1d0e, 0x497b50b9,
+ 0x42000000, 0x00112334, 0x055dfc49, 0x055dfcf5,
+ 0x0001ff2f, 0x60441100, 0x497b50ab, 0x59c40001,
0x82000500, 0x00018000, 0x90001d80, 0x0500000b,
0x82001d80, 0x00008000, 0x0500000a, 0x82001d80,
0x00010000, 0x05000009, 0x82001d80, 0x00018000,
- 0x05000008, 0x05f5fb39, 0x60001800, 0x0501f006,
+ 0x05000008, 0x05f5faf4, 0x60001800, 0x0501f006,
0x60041800, 0x0501f004, 0x600c1800, 0x0501f002,
- 0x60101800, 0x0515f533, 0x850e1d4e, 0x59a808b4,
+ 0x60101800, 0x0515f650, 0x850e1d4e, 0x59a808b9,
0x800409c0, 0x05020006, 0x59c4000d, 0x8c000520,
0x05000003, 0x600c1800, 0x0501f002, 0x40041800,
- 0x0559fdbd, 0x4c0c0000, 0x4c0c0000, 0x41782000,
+ 0x055dfcb8, 0x4c0c0000, 0x4c0c0000, 0x41782000,
0x0501fcc8, 0x0500000f, 0x0501fcad, 0x60042000,
0x0502000c, 0x0501fcb5, 0x05020006, 0x60082000,
0x0501f8b4, 0x05020007, 0x60102000, 0x0501f005,
0x600c2000, 0x0501f89d, 0x05020002, 0x60142000,
- 0x5c001800, 0x60481100, 0x5c001800, 0x0515fd11,
- 0x05f5fd32, 0x0559fe1f, 0x0502000c, 0x4d200000,
+ 0x5c001800, 0x60481100, 0x5c001800, 0x0515fe2e,
+ 0x05f5fce1, 0x055dfd1a, 0x0502000c, 0x4d200000,
0x61fe4001, 0x0501f857, 0x5c024000, 0x4d400000,
- 0x4d3c0000, 0x60a28000, 0x60227800, 0x0501fffb,
+ 0x4d3c0000, 0x60a28000, 0x60227800, 0x0505f80e,
0x5c027800, 0x5c028000, 0x1c01f000, 0x80000540,
- 0x05fc07fe, 0x4d3c0000, 0x60067800, 0x054dfb48,
+ 0x05fc07fe, 0x4d3c0000, 0x60067800, 0x0551f86f,
0x5c027800, 0x1c01f000, 0x4803c857, 0x82000400,
- 0x00102853, 0x50000800, 0x82040d00, 0x000000ff,
+ 0x001028fb, 0x50000800, 0x82040d00, 0x000000ff,
0x1c01f000, 0x4803c856, 0x4c580000, 0x6040b000,
0x497b88ac, 0x497b88ad, 0x8058b040, 0x05fe07fe,
0x5c00b000, 0x1c01f000, 0x4807c857, 0x80041908,
- 0x480f88ac, 0x9004250f, 0x82102400, 0x0010d15b,
+ 0x480f88ac, 0x9004250f, 0x82102400, 0x0010d8d9,
0x50102000, 0x59c400ad, 0x80100540, 0x480f88ac,
- 0x480388ad, 0x0559fe18, 0x05000002, 0x4807503d,
+ 0x480388ad, 0x055dfd13, 0x05000002, 0x48075040,
0x1c01f000, 0x4807c857, 0x80041908, 0x480f88ac,
- 0x9004250f, 0x82102400, 0x0010d15b, 0x50102000,
+ 0x9004250f, 0x82102400, 0x0010d8d9, 0x50102000,
0x59c400ad, 0x80101500, 0x05000004, 0x80100580,
0x480f88ac, 0x480388ad, 0x1c01f000, 0x4803c857,
0x4c080000, 0x4c040000, 0x4c000000, 0x59c40892,
@@ -1773,12 +1805,12 @@ static const uint32_t isp_2500_risc_code[] = {
0x48038886, 0x8058b040, 0x05fe07fe, 0x497b8886,
0x5c000000, 0x5c000800, 0x5c001000, 0x1c01f000,
0x4803c856, 0x8d0c0520, 0x05000003, 0x60ba8000,
- 0x0555f47d, 0x1c01f000, 0x59a800ca, 0x80000540,
- 0x05000008, 0x0521fd7d, 0x60280800, 0x0502000e,
+ 0x0559f344, 0x1c01f000, 0x59a800cf, 0x80000540,
+ 0x05000008, 0x0521ffe7, 0x60280800, 0x0502000e,
0x600008de, 0x58040001, 0x8000092c, 0x0501f00a,
0x59c80835, 0x82040d00, 0x00001f00, 0x80040910,
- 0x80040800, 0x59a800ca, 0x80000540, 0x05000002,
- 0x61680804, 0x4807c857, 0x1c01f000, 0x59a800ca,
+ 0x80040800, 0x59a800cf, 0x80000540, 0x05000002,
+ 0x61680804, 0x4807c857, 0x1c01f000, 0x59a800cf,
0x80000540, 0x0500001c, 0x599c1a01, 0x60a80801,
0x820c0480, 0x00000204, 0x0500100a, 0x61680800,
0x820c0480, 0x00000404, 0x05001006, 0x60b80800,
@@ -1786,116 +1818,116 @@ static const uint32_t isp_2500_risc_code[] = {
0x4c300000, 0x600060de, 0x58301000, 0x82081500,
0xfc00ffff, 0x800400e0, 0x80080540, 0x84000574,
0x48006000, 0x58300000, 0x8c000534, 0x05fe07fe,
- 0x5c006000, 0x1c01f000, 0x4c000000, 0x59a80069,
+ 0x5c006000, 0x1c01f000, 0x4c000000, 0x59a8006c,
0x4803c857, 0x90000580, 0x5c000000, 0x1c01f000,
- 0x4c000000, 0x59a80069, 0x4803c857, 0x90000581,
- 0x5c000000, 0x1c01f000, 0x4c000000, 0x59a80069,
+ 0x4c000000, 0x59a8006c, 0x4803c857, 0x90000581,
+ 0x5c000000, 0x1c01f000, 0x4c000000, 0x59a8006c,
0x4803c857, 0x90000583, 0x5c000000, 0x1c01f000,
- 0x4c000000, 0x59a80069, 0x4803c857, 0x90000584,
- 0x5c000000, 0x1c01f000, 0x4c000000, 0x59a80069,
+ 0x4c000000, 0x59a8006c, 0x4803c857, 0x90000584,
+ 0x5c000000, 0x1c01f000, 0x4c000000, 0x59a8006c,
0x90000582, 0x5c000000, 0x1c01f000, 0x4c000000,
- 0x4c040000, 0x4c080000, 0x4c380000, 0x59a8006c,
- 0x90000c87, 0x05f61a55, 0x0c01f806, 0x5c007000,
+ 0x4c040000, 0x4c080000, 0x4c380000, 0x59a8006f,
+ 0x90000c87, 0x05f61a10, 0x0c01f806, 0x5c007000,
0x5c001000, 0x5c000800, 0x5c000000, 0x1c01f000,
- 0x00101b93, 0x00101ba0, 0x00101bad, 0x00101bae,
- 0x00101bcc, 0x00101bcd, 0x00101bce, 0x4803c856,
- 0x6403506e, 0x600c0000, 0x0501f9af, 0x600c0000,
- 0x0501f97d, 0x0501fa06, 0x4803c856, 0x641b506c,
- 0x60740800, 0x42001000, 0x00101bcf, 0x052df449,
- 0x497b5071, 0x64db5066, 0x64ab5065, 0x4803c856,
- 0x6407506e, 0x600c0000, 0x0501f96f, 0x4803c856,
- 0x641b506c, 0x60740800, 0x42001000, 0x00101bcf,
- 0x052df43c, 0x05f5fa2d, 0x64db5066, 0x4803c856,
- 0x640f506e, 0x60000800, 0x0501f9ff, 0x90040d1c,
+ 0x00101c13, 0x00101c20, 0x00101c2d, 0x00101c2e,
+ 0x00101c4c, 0x00101c4d, 0x00101c4e, 0x4803c856,
+ 0x64035071, 0x600c0000, 0x0501f9af, 0x600c0000,
+ 0x0501f97d, 0x0501fa06, 0x4803c856, 0x641b506f,
+ 0x60740800, 0x42001000, 0x00101c4f, 0x0531f02d,
+ 0x497b5074, 0x64db5069, 0x64ab5068, 0x4803c856,
+ 0x64075071, 0x600c0000, 0x0501f96f, 0x4803c856,
+ 0x641b506f, 0x60740800, 0x42001000, 0x00101c4f,
+ 0x0531f020, 0x05f5f9e8, 0x64db5069, 0x4803c856,
+ 0x640f5071, 0x60000800, 0x0501f9ff, 0x90040d1c,
0x9004059c, 0x05000008, 0x90040598, 0x05000008,
0x90040594, 0x05000008, 0x90040590, 0x05000008,
- 0x05f5fa1e, 0x60040000, 0x0501f006, 0x60000000,
+ 0x05f5f9d9, 0x60040000, 0x0501f006, 0x60000000,
0x0501f004, 0x60080000, 0x0501f002, 0x600c0000,
- 0x0501f951, 0x497b5072, 0x4803c856, 0x641b506c,
- 0x60740800, 0x42001000, 0x00101bcf, 0x052df41d,
- 0x05f5fa0e, 0x05f5fa0d, 0x1c01f000, 0x4c000000,
- 0x4c040000, 0x4c080000, 0x4c380000, 0x59a8006e,
- 0x90000c87, 0x05f61a05, 0x0c01f806, 0x5c007000,
+ 0x0501f951, 0x497b5075, 0x4803c856, 0x641b506f,
+ 0x60740800, 0x42001000, 0x00101c4f, 0x0531f001,
+ 0x05f5f9c9, 0x05f5f9c8, 0x1c01f000, 0x4c000000,
+ 0x4c040000, 0x4c080000, 0x4c380000, 0x59a80071,
+ 0x90000c87, 0x05f619c0, 0x0c01f806, 0x5c007000,
0x5c001000, 0x5c000800, 0x5c000000, 0x1c01f000,
- 0x00101be3, 0x00101bff, 0x00101c50, 0x00101c65,
- 0x00101c79, 0x00101c82, 0x00101c83, 0x0501f990,
- 0x05020018, 0x59a81074, 0x60000800, 0x0501f9ca,
+ 0x00101c63, 0x00101c7f, 0x00101cd0, 0x00101ce5,
+ 0x00101cf9, 0x00101d02, 0x00101d03, 0x0501f990,
+ 0x05020018, 0x59a81077, 0x60000800, 0x0501f9ca,
0x90040d1c, 0x9004059c, 0x05000008, 0x90040598,
0x05000008, 0x90040594, 0x05000008, 0x90040590,
- 0x05000008, 0x05f5f9e9, 0x84081540, 0x0501f006,
+ 0x05000008, 0x05f5f9a4, 0x84081540, 0x0501f006,
0x84081542, 0x0501f004, 0x84081544, 0x0501f002,
- 0x84081546, 0x480b5074, 0x6407506c, 0x0501f003,
+ 0x84081546, 0x480b5077, 0x6407506f, 0x0501f003,
0x0501f8be, 0x05fdff9d, 0x1c01f000, 0x0501f885,
0x0500004f, 0x0501f972, 0x05020029, 0x60000800,
0x0501f9ad, 0x59c41001, 0x82081500, 0x00018000,
0x90040d1c, 0x90040590, 0x05000042, 0x90040594,
0x05000006, 0x90040598, 0x0500000a, 0x9004059c,
- 0x0500000a, 0x05f5f9c9, 0x90080580, 0x05000039,
+ 0x0500000a, 0x05f5f984, 0x90080580, 0x05000039,
0x82080580, 0x00008000, 0x05000036, 0x0501f003,
0x90080580, 0x05000033, 0x60000800, 0x0501f996,
- 0x59a80074, 0x90040d1c, 0x90041594, 0x05000006,
+ 0x59a80077, 0x90040d1c, 0x90041594, 0x05000006,
0x90041598, 0x05000006, 0x9004159c, 0x05000006,
- 0x05f609b6, 0x84000544, 0x0501f004, 0x84000542,
- 0x0501f002, 0x84000540, 0x48035074, 0x59a80071,
- 0x80000000, 0x48035071, 0x90000585, 0x05000003,
- 0x0501f859, 0x0501f01d, 0x497b5071, 0x59c40801,
+ 0x05f60971, 0x84000544, 0x0501f004, 0x84000542,
+ 0x0501f002, 0x84000540, 0x48035077, 0x59a80074,
+ 0x80000000, 0x48035074, 0x90000585, 0x05000003,
+ 0x0501f859, 0x0501f01d, 0x497b5074, 0x59c40801,
0x82040d00, 0x00018000, 0x90040580, 0x0500000b,
0x82040580, 0x00008000, 0x0500000a, 0x82040580,
0x00010000, 0x05000009, 0x82040580, 0x00018000,
- 0x05000008, 0x05f5f999, 0x60040000, 0x0501f006,
+ 0x05000008, 0x05f5f954, 0x60040000, 0x0501f006,
0x60000000, 0x0501f004, 0x60080000, 0x0501f002,
- 0x600c0000, 0x0501f8fc, 0x640b506e, 0x0501f003,
- 0x640f506c, 0x0501f002, 0x05fdff59, 0x1c01f000,
- 0x0501f834, 0x05000013, 0x59a80065, 0x80000040,
- 0x48035065, 0x0501f91e, 0x05020004, 0x640f506c,
- 0x497b506d, 0x0501f00b, 0x59a80065, 0x80000540,
+ 0x600c0000, 0x0501f8fc, 0x640b5071, 0x0501f003,
+ 0x640f506f, 0x0501f002, 0x05fdff59, 0x1c01f000,
+ 0x0501f834, 0x05000013, 0x59a80068, 0x80000040,
+ 0x48035068, 0x0501f91e, 0x05020004, 0x640f506f,
+ 0x497b5070, 0x0501f00b, 0x59a80068, 0x80000540,
0x05020003, 0x0501f891, 0x0501f002, 0x0501f841,
- 0x0501f829, 0x497b5071, 0x6407506e, 0x05fdff44,
+ 0x0501f829, 0x497b5074, 0x64075071, 0x05fdff44,
0x1c01f000, 0x0501f81f, 0x05000012, 0x0501f90c,
- 0x0502000d, 0x59a80072, 0x80000000, 0x48035072,
- 0x90000587, 0x0502000a, 0x642b5068, 0x497b5075,
- 0x59a80074, 0x8400055e, 0x48035074, 0x4803c857,
- 0x0501f004, 0x0501f814, 0x6413506e, 0x05fdff4f,
+ 0x0502000d, 0x59a80075, 0x80000000, 0x48035075,
+ 0x90000587, 0x0502000a, 0x642b506b, 0x497b5078,
+ 0x59a80077, 0x8400055e, 0x48035077, 0x4803c857,
+ 0x0501f004, 0x0501f814, 0x64135071, 0x05fdff4f,
0x1c01f000, 0x0501f80b, 0x05000007, 0x0501f8f8,
0x05020003, 0x05fdff32, 0x0501f003, 0x0501f80a,
- 0x05fdff46, 0x1c01f000, 0x05f5f958, 0x05f5f957,
- 0x59a80066, 0x80000040, 0x48035066, 0x05000885,
+ 0x05fdff46, 0x1c01f000, 0x05f5f913, 0x05f5f912,
+ 0x59a80069, 0x80000040, 0x48035069, 0x05000885,
0x1c01f000, 0x4c040000, 0x60000800, 0x0501f926,
0x90040d1c, 0x9004059c, 0x05000008, 0x90040598,
0x0500000a, 0x90040594, 0x0500000a, 0x90040590,
- 0x05000004, 0x05f5f945, 0x600c0000, 0x0501f006,
+ 0x05000004, 0x05f5f900, 0x600c0000, 0x0501f006,
0x60080000, 0x0501f004, 0x60040000, 0x0501f002,
0x60000000, 0x0501f8a8, 0x5c000800, 0x1c01f000,
0x4c040000, 0x59c40801, 0x82040d00, 0x00018000,
0x90040580, 0x0500000b, 0x82040580, 0x00008000,
0x0500000c, 0x82040580, 0x00010000, 0x0500000b,
- 0x82040580, 0x00018000, 0x05000004, 0x05f5f92b,
+ 0x82040580, 0x00018000, 0x05000004, 0x05f5f8e6,
0x600c0000, 0x0501f006, 0x60080000, 0x0501f004,
0x60040000, 0x0501f002, 0x60000000, 0x0501f85e,
- 0x5c000800, 0x1c01f000, 0x4c040000, 0x59a80071,
- 0x80000000, 0x48035071, 0x90000585, 0x05020019,
- 0x497b5071, 0x59c40801, 0x82040d00, 0x00018000,
+ 0x5c000800, 0x1c01f000, 0x4c040000, 0x59a80074,
+ 0x80000000, 0x48035074, 0x90000585, 0x05020019,
+ 0x497b5074, 0x59c40801, 0x82040d00, 0x00018000,
0x90040580, 0x0500000b, 0x82040580, 0x00008000,
0x0500000c, 0x82040580, 0x00010000, 0x0500000b,
- 0x82040580, 0x00018000, 0x05000004, 0x05f5f90b,
+ 0x82040580, 0x00018000, 0x05000004, 0x05f5f8c6,
0x600c0000, 0x0501f006, 0x60080000, 0x0501f004,
0x60040000, 0x0501f002, 0x60000000, 0x0501f83e,
0x60000800, 0x0501f8d8, 0x90040d1c, 0x9004059c,
0x05000008, 0x90040598, 0x0500000a, 0x90040594,
- 0x0500000a, 0x90040590, 0x05000004, 0x05f5f8f7,
+ 0x0500000a, 0x90040590, 0x05000004, 0x05f5f8b2,
0x600c0000, 0x0501f006, 0x60080000, 0x0501f004,
0x60040000, 0x0501f002, 0x60000000, 0x0501f85a,
- 0x5c000800, 0x1c01f000, 0x4c200000, 0x59a80074,
- 0x82000500, 0x00007fff, 0x05f408e8, 0x59a84073,
- 0x80204102, 0x05f418e5, 0x48235073, 0x80204500,
+ 0x5c000800, 0x1c01f000, 0x4c200000, 0x59a80077,
+ 0x82000500, 0x00007fff, 0x05f408a3, 0x59a84076,
+ 0x80204102, 0x05f418a0, 0x48235076, 0x80204500,
0x05fc07fb, 0x8c000506, 0x05020008, 0x8c000504,
0x05020008, 0x8c000502, 0x05020008, 0x8c000500,
- 0x05020008, 0x05f5f8d9, 0x600c0000, 0x0501f006,
+ 0x05020008, 0x05f5f894, 0x600c0000, 0x0501f006,
0x60080000, 0x0501f004, 0x60000000, 0x0501f002,
0x60040000, 0x0501f80c, 0x5c004000, 0x1c01f000,
- 0x05011000, 0x4a03c840, 0x0010dc6c, 0x6427c842,
- 0x40000000, 0x05fd17ff, 0x64235073, 0x6403506a,
- 0x1c01f000, 0x4c000000, 0x59a800a7, 0x8c000500,
+ 0x05011000, 0x4a03c840, 0x00111bef, 0x6427c842,
+ 0x40000000, 0x05fd17ff, 0x64235076, 0x6403506d,
+ 0x1c01f000, 0x4c000000, 0x59a800aa, 0x8c000500,
0x05020002, 0x0501f960, 0x5c000000, 0x0501fa6b,
0x60080800, 0x0501f894, 0x82041500, 0xffffffe3,
0x59c41801, 0x820c1d00, 0xfffe7fff, 0x800001c0,
@@ -1904,8 +1936,8 @@ static const uint32_t isp_2500_risc_code[] = {
0x820c1d40, 0x00008000, 0x840c1d32, 0x0501f00d,
0x90000d82, 0x05020006, 0x90080554, 0x820c1d40,
0x00010000, 0x840c1d32, 0x0501f006, 0x90000d83,
- 0x05f608a2, 0x90080550, 0x820c1d40, 0x02018000,
- 0x60080800, 0x0501f879, 0x480f8801, 0x59a800a7,
+ 0x05f6085d, 0x90080550, 0x820c1d40, 0x02018000,
+ 0x60080800, 0x0501f879, 0x480f8801, 0x59a800aa,
0x8c000500, 0x05020002, 0x0501f13c, 0x1c01f000,
0x1c01f000, 0x4c000000, 0x0501f92e, 0x5c000000,
0x0501fa3e, 0x60000800, 0x0501f867, 0x82041500,
@@ -1913,7 +1945,7 @@ static const uint32_t isp_2500_risc_code[] = {
0x90000d81, 0x05020007, 0x9008055c, 0x840c1d30,
0x0501f00d, 0x90080558, 0x840c1d30, 0x0501f00a,
0x90000d82, 0x05020004, 0x90080554, 0x840c1d30,
- 0x0501f005, 0x90000d83, 0x05f6087c, 0x90080550,
+ 0x0501f005, 0x90000d83, 0x05f60837, 0x90080550,
0x840c1d70, 0x480f8801, 0x60000800, 0x0501f853,
0x0501fa1c, 0x0500000d, 0x4a03c014, 0x00200020,
0x60000800, 0x0501f848, 0x90040d1c, 0x90040590,
@@ -1944,18 +1976,18 @@ static const uint32_t isp_2500_risc_code[] = {
0x480388a3, 0x480788a3, 0x1c01f000, 0x59c400a3,
0x84000556, 0x480388a3, 0x84000516, 0x480388a3,
0x1c01f000, 0x485fc857, 0x4863c857, 0x4c640000,
- 0x4d3c0000, 0x4d400000, 0x0535fa7b, 0x48635009,
+ 0x4d3c0000, 0x4d400000, 0x0535feb9, 0x48635009,
0x40601800, 0x60002000, 0x0501f8b5, 0x42000000,
- 0x0010e3b1, 0x0559f9fb, 0x82600500, 0x0000ff00,
+ 0x00112352, 0x055df8f6, 0x82600500, 0x0000ff00,
0x82000580, 0x0000f700, 0x05020004, 0x42000000,
- 0x0010e399, 0x0559f9f3, 0x0559fb02, 0x05020084,
+ 0x0011233a, 0x055df8ee, 0x055df9fd, 0x05020084,
0x82600d00, 0x0000ff00, 0x61fe41ff, 0x800409c0,
0x0500001b, 0x82041580, 0x0000f700, 0x05000013,
0x82041580, 0x0000f800, 0x05000010, 0x82041580,
0x0000ff00, 0x6000c800, 0x05000029, 0x840439c0,
- 0x0505f82c, 0x05020019, 0x83200400, 0x0010d17b,
+ 0x0505f848, 0x05020019, 0x83200400, 0x0010d8f9,
0x50024800, 0x59240200, 0x8c000500, 0x05000013,
- 0x6004c800, 0x0501f01e, 0x42024800, 0x0010e512,
+ 0x6004c800, 0x0501f01e, 0x42024800, 0x001124b6,
0x59240200, 0x8c000502, 0x0500000c, 0x59c410a3,
0x82081500, 0x00008000, 0x05000008, 0x59c410a7,
0x82081500, 0x0000ff00, 0x82081580, 0x0000ff00,
@@ -1965,23 +1997,23 @@ static const uint32_t isp_2500_risc_code[] = {
0x60128000, 0x60227800, 0x0501f004, 0x850e1d40,
0x60128000, 0x417a7800, 0x59a80005, 0x8c000502,
0x05020004, 0x8d0c050a, 0x05020045, 0x850e1d4a,
- 0x42000000, 0x0010e398, 0x0559f9ae, 0x59a81809,
- 0x604c1100, 0x0515f9ab, 0x83200580, 0x0000ffff,
+ 0x42000000, 0x00112339, 0x055df8a9, 0x59a81809,
+ 0x604c1100, 0x0515fac8, 0x83200580, 0x0000ffff,
0x05000018, 0x59240400, 0x8c000508, 0x05000009,
- 0x417a7800, 0x4d300000, 0x417a6000, 0x0505f82a,
+ 0x417a7800, 0x4d300000, 0x417a6000, 0x0505f850,
0x5c026000, 0x59240400, 0x8c00050a, 0x05020030,
0x4d400000, 0x82600500, 0x000000ff, 0x61fe89ff,
- 0x40643000, 0x603a8000, 0x0555f960, 0x60040800,
- 0x60001002, 0x0531f8fb, 0x5c028000, 0x0501f024,
+ 0x40643000, 0x603a8000, 0x0559f827, 0x60040800,
+ 0x60001002, 0x0531fd2f, 0x5c028000, 0x0501f024,
0x8d0c0520, 0x05000018, 0x4c580000, 0x42024800,
- 0x0010e512, 0x0559faa3, 0x4d400000, 0x59240200,
+ 0x001124b6, 0x055df99e, 0x4d400000, 0x59240200,
0x8c000500, 0x05000004, 0x60040800, 0x60001002,
- 0x0531f8ec, 0x91264c0d, 0x8058b040, 0x05fe07f8,
- 0x603a8000, 0x61fe89ff, 0x40643000, 0x0555f947,
+ 0x0531fd20, 0x91264c0d, 0x8058b040, 0x05fe07f8,
+ 0x603a8000, 0x61fe89ff, 0x40643000, 0x0559f80e,
0x5c028000, 0x5c00b000, 0x599c0817, 0x8c04050a,
- 0x0502000b, 0x493fc857, 0x4943c857, 0x0501fc6b,
+ 0x0502000b, 0x493fc857, 0x4943c857, 0x0501fc7e,
0x0501f007, 0x8d0c0520, 0x05000005, 0x603e8000,
- 0x61fe89ff, 0x60003000, 0x0555f93b, 0x497b8880,
+ 0x61fe89ff, 0x60003000, 0x0559f802, 0x497b8880,
0x5c028000, 0x5c027800, 0x5c00c800, 0x1c01f000,
0x60000800, 0x05fdff3c, 0x90040542, 0x60000800,
0x05fdf73e, 0x60080800, 0x05fdff37, 0x90040542,
@@ -1993,20 +2025,20 @@ static const uint32_t isp_2500_risc_code[] = {
0x80040d80, 0x05fe07fb, 0x1c01f000, 0x59a80005,
0x8c000500, 0x05000008, 0x59a80008, 0x8c000500,
0x05020005, 0x84000540, 0x48035008, 0x60581100,
- 0x0515f940, 0x1c01f000, 0x1c01f000, 0x59c40801,
+ 0x0515fa5d, 0x1c01f000, 0x1c01f000, 0x59c40801,
0x82040d00, 0x00018000, 0x82040d80, 0x00018000,
0x05000002, 0x84081518, 0x480b88a3, 0x1c01f000,
0x42000800, 0x7ff4818e, 0x59e00002, 0x8c00051e,
0x05020003, 0x42000800, 0x7ff4808e, 0x58041800,
- 0x480f5084, 0x8c0c0500, 0x05020007, 0x8c0c0502,
+ 0x480f5087, 0x8c0c0500, 0x05020007, 0x8c0c0502,
0x05000005, 0x58044001, 0x58042002, 0x58041003,
0x0501f007, 0x42004000, 0x0003c014, 0x42002000,
- 0x0003c014, 0x42001000, 0x0002e014, 0x480b507e,
- 0x4813507f, 0x48235080, 0x8c0c0500, 0x05020007,
+ 0x0003c014, 0x42001000, 0x0002e014, 0x480b5081,
+ 0x48135082, 0x48235083, 0x8c0c0500, 0x05020007,
0x8c0c0504, 0x05000005, 0x58044004, 0x58042005,
0x58041006, 0x0501f004, 0x60c8400d, 0x60c8200d,
- 0x60c8100d, 0x480b5081, 0x48135082, 0x48235083,
- 0x1c01f000, 0x59a81081, 0x59a82082, 0x59a84083,
+ 0x60c8100d, 0x480b5084, 0x48135085, 0x48235086,
+ 0x1c01f000, 0x59a81084, 0x59a82085, 0x59a84086,
0x60380840, 0x05fdfedc, 0x82040d00, 0xffffffc0,
0x82200500, 0x003f0000, 0x80000120, 0x80040540,
0x60380840, 0x05fdfed9, 0x60380848, 0x05fdfed2,
@@ -2023,7 +2055,7 @@ static const uint32_t isp_2500_risc_code[] = {
0x0000fc00, 0x80000114, 0x60380920, 0x05fdfeab,
0x82080500, 0x000003e0, 0x8000010a, 0x603808e8,
0x05fdfea6, 0x9008051f, 0x60380900, 0x05fdfea3,
- 0x1c01f000, 0x59a8107e, 0x59a8207f, 0x59a84080,
+ 0x1c01f000, 0x59a81081, 0x59a82082, 0x59a84083,
0x9020051f, 0x800000c2, 0x84000540, 0x60480800,
0x05fdfe9a, 0x82200500, 0x000001e0, 0x80000908,
0x84040d40, 0x82200500, 0x00000600, 0x80000106,
@@ -2044,32 +2076,32 @@ static const uint32_t isp_2500_risc_code[] = {
0x82080500, 0x00001800, 0x80000916, 0x82080500,
0x0003e000, 0x80000114, 0x84000544, 0x80040540,
0x60480858, 0x05fdfe51, 0x1c01f000, 0x4c000000,
- 0x0515fbe9, 0x05000007, 0x0515f99d, 0x05020003,
+ 0x0515fd5d, 0x05000007, 0x0515fac3, 0x05020003,
0x90000541, 0x0501f003, 0x59e00013, 0x8c00050e,
0x5c000000, 0x1c01f000, 0x4c140000, 0x4a03c013,
0x03800300, 0x4a03c014, 0x03800380, 0x60800801,
- 0x60281000, 0x0509faf3, 0x05000002, 0x8c14050c,
+ 0x60281000, 0x0509fb25, 0x05000002, 0x8c14050c,
0x4a03c014, 0x03800000, 0x5c002800, 0x1c01f000,
- 0x4c000000, 0x59a80084, 0x90000510, 0x90000590,
+ 0x4c000000, 0x59a80087, 0x90000510, 0x90000590,
0x5c000000, 0x1c01f000, 0x4c5c0000, 0x4000b800,
- 0x59a80076, 0x82000d80, 0xaabbccdd, 0x0500000f,
- 0x90000c85, 0x05f21e4d, 0x4c000000, 0x0515f95b,
+ 0x59a80079, 0x82000d80, 0xaabbccdd, 0x0500000f,
+ 0x90000c85, 0x05f21e08, 0x4c000000, 0x0515fa81,
0x5c000000, 0x05020003, 0x0c01f81a, 0x0501f016,
- 0x4c000000, 0x0515f96c, 0x5c000000, 0x05fc07fb,
+ 0x4c000000, 0x0515fa92, 0x5c000000, 0x05fc07fb,
0x0c01f819, 0x0501f010, 0x05fdffe6, 0x0500000e,
0x8d0c051a, 0x0500000c, 0x05fdffc9, 0x0502000a,
0x05fdffd2, 0x05020005, 0x905c0d83, 0x05020006,
0x6008b800, 0x0501f004, 0x905c0d81, 0x05020002,
0x600cb800, 0x405c0000, 0x5c00b800, 0x1c01f000,
- 0x00101fb6, 0x00101fb7, 0x00101fb8, 0x00101fb9,
- 0x00101fbd, 0x00101fbe, 0x00101fc0, 0x00101fd0,
- 0x00101fde, 0x00101fee, 0x1c01f000, 0x1c01f000,
+ 0x00102036, 0x00102037, 0x00102038, 0x00102039,
+ 0x0010203d, 0x0010203e, 0x00102040, 0x00102050,
+ 0x0010205e, 0x0010206e, 0x1c01f000, 0x1c01f000,
0x1c01f000, 0x905c0d83, 0x05020002, 0x6008b800,
0x1c01f000, 0x1c01f000, 0x6004b800, 0x1c01f000,
0x05fdffc0, 0x05000007, 0x05fdffa5, 0x05020005,
0x05fdffae, 0x05000003, 0x6000b800, 0x0501f008,
0x905c0d83, 0x05020003, 0x6000b800, 0x0501f004,
- 0x905c0d82, 0x05020002, 0x05f1fe0c, 0x1c01f000,
+ 0x905c0d82, 0x05020002, 0x05f1fdc7, 0x1c01f000,
0x05fdffb0, 0x0500000c, 0x05fdff95, 0x0502000a,
0x05fdff9e, 0x05020005, 0x905c0d83, 0x05020006,
0x6008b800, 0x0501f004, 0x905c0d81, 0x05020002,
@@ -2081,31 +2113,31 @@ static const uint32_t isp_2500_risc_code[] = {
0x05fdff77, 0x05020004, 0x05fdff80, 0x05020002,
0x0501f004, 0x905c0d81, 0x05020002, 0x600cb800,
0x1c01f000, 0x4803c856, 0x4c5c0000, 0x4c600000,
- 0x4c640000, 0x4c580000, 0x497b5086, 0x4200c000,
- 0x7ff52000, 0x0515f906, 0x05020031, 0x4803c856,
- 0x0515f91b, 0x05020029, 0x4803c856, 0x4a03c014,
+ 0x4c640000, 0x4c580000, 0x497b5089, 0x4200c000,
+ 0x7ff52000, 0x0515fa2c, 0x05020031, 0x4803c856,
+ 0x0515fa41, 0x05020029, 0x4803c856, 0x4a03c014,
0x07030701, 0x0501f965, 0x4a03c013, 0x07010701,
0x0501f9ef, 0x0501fa1f, 0x0501f981, 0x4201d000,
- 0x000f4240, 0x0529fff4, 0x0501f95c, 0x0501f9e8,
+ 0x000f4240, 0x052dfbdf, 0x0501f95c, 0x0501f9e8,
0x0501fa23, 0x61800801, 0x600c1000, 0x60801801,
- 0x0509fa1e, 0x05f00dc1, 0x61800801, 0x60001000,
- 0x0509fa50, 0x05f00dbd, 0x4817c857, 0x90141d50,
- 0x61800801, 0x60041000, 0x0509fa14, 0x05f00db7,
- 0x0501f9df, 0x6140b801, 0x0509fa37, 0x05f00db3,
+ 0x0509fa4e, 0x05f00d7c, 0x61800801, 0x60001000,
+ 0x0509fa82, 0x05f00d78, 0x4817c857, 0x90141d50,
+ 0x61800801, 0x60041000, 0x0509fa44, 0x05f00d72,
+ 0x0501f9df, 0x6140b801, 0x0509fa68, 0x05f00d6e,
0x4867c857, 0x4c640000, 0x0501f96b, 0x0501f964,
0x5c00c800, 0x0501f01c, 0x4a03c014, 0x07e30000,
- 0x59e0c813, 0x0501f8be, 0x0501f017, 0x59a80092,
+ 0x59e0c813, 0x0501f8be, 0x0501f017, 0x59a80095,
0x82000d80, 0x3261103c, 0x05000004, 0x82000d80,
0x338e103c, 0x050200b1, 0x4803c856, 0x42000800,
0x7ff481e6, 0x59e06802, 0x8c34051e, 0x05020003,
0x42000800, 0x7ff480e6, 0x50040000, 0x4803c857,
- 0x4803508d, 0x8c00051e, 0x050000a4, 0x8200cd00,
- 0x000000ff, 0x4867c857, 0x48675087, 0x50600800,
- 0x48075088, 0x4807c857, 0x82040d80, 0x53434651,
- 0x05020098, 0x8060c000, 0x50600800, 0x48075089,
- 0x8060c000, 0x50600800, 0x4807508a, 0x8060c000,
- 0x50600800, 0x4807508b, 0x8060c000, 0x50600800,
- 0x82040d00, 0x0000ffff, 0x4807508c, 0x4200c000,
+ 0x48035090, 0x8c00051e, 0x050000a4, 0x8200cd00,
+ 0x000000ff, 0x4867c857, 0x4867508a, 0x50600800,
+ 0x4807508b, 0x4807c857, 0x82040d80, 0x53434651,
+ 0x05020098, 0x8060c000, 0x50600800, 0x4807508c,
+ 0x8060c000, 0x50600800, 0x4807508d, 0x8060c000,
+ 0x50600800, 0x4807508e, 0x8060c000, 0x50600800,
+ 0x82040d00, 0x0000ffff, 0x4807508f, 0x4200c000,
0x7ff52002, 0x5060b800, 0x825cbd00, 0xffff0000,
0x805cb920, 0x805cb800, 0x05001082, 0x8c5c051e,
0x05020080, 0x59e06802, 0x8c34051e, 0x0502006a,
@@ -2115,23 +2147,23 @@ static const uint32_t isp_2500_risc_code[] = {
0xffff0000, 0x80000120, 0x82100d00, 0x0000ffff,
0x4803c857, 0x4807c857, 0x4c180000, 0x05fdfd37,
0x5c003000, 0x80183040, 0x05fe07f3, 0x41780800,
- 0x40641000, 0x60100000, 0x052dff08, 0x59e06802,
+ 0x40641000, 0x60100000, 0x0531fb41, 0x59e06802,
0x8c34051e, 0x05020057, 0x4200c000, 0x7ff52005,
0x8008c418, 0x5060c800, 0x800409c0, 0x0500000a,
0x90041581, 0x05020003, 0x8064c910, 0x0501f006,
0x90041582, 0x05020003, 0x8064c920, 0x0501f002,
0x8064c930, 0x8264cd00, 0x000000ff, 0x4867c857,
- 0x4867508e, 0x42001000, 0x7ff52002, 0x50080000,
+ 0x48675091, 0x42001000, 0x7ff52002, 0x50080000,
0x82000500, 0x0000ffff, 0x4803c857, 0x8c00051e,
0x05020044, 0x80640480, 0x05021042, 0x40640800,
- 0x405c1000, 0x052dfec9, 0x4803c857, 0x800001c0,
+ 0x405c1000, 0x0531fb02, 0x4803c857, 0x800001c0,
0x0502003c, 0x59e06802, 0x8c34051e, 0x05020034,
0x4200c000, 0x7ff52045, 0x805cc418, 0x8004c418,
0x05001034, 0x05000033, 0x4863c857, 0x50600000,
- 0x82000500, 0x0000ffff, 0x4803508f, 0x8c00051e,
+ 0x82000500, 0x0000ffff, 0x48035092, 0x8c00051e,
0x0502002c, 0x4803c857, 0x80000c97, 0x05021029,
- 0x40601000, 0x80081000, 0x50080800, 0x48075090,
- 0x80081000, 0x50080800, 0x48075091, 0x4000b800,
+ 0x40601000, 0x80081000, 0x50080800, 0x48075093,
+ 0x80081000, 0x50080800, 0x48075094, 0x4000b800,
0x8060c000, 0x50602000, 0x82100500, 0xffff0000,
0x80000120, 0x82100d00, 0x0000ffff, 0x4803c857,
0x4807c857, 0x05fdfce5, 0x805cb840, 0x05fe07f5,
@@ -2140,7 +2172,7 @@ static const uint32_t isp_2500_risc_code[] = {
0x8258c400, 0x7ff52000, 0xb060c400, 0x05fdf790,
0x8258c400, 0x7ff52000, 0x05fdf7aa, 0x8258c400,
0x7ff52000, 0xb060c400, 0x805cc418, 0x05fdf7cc,
- 0x4a035086, 0xdeaddead, 0x5c00b000, 0x5c00c800,
+ 0x4a035089, 0xdeaddead, 0x5c00b000, 0x5c00c800,
0x5c00c000, 0x5c00b800, 0x1c01f000, 0x4867c857,
0x90640d20, 0x8004690a, 0x82640d00, 0x00000400,
0x80040912, 0x80046d4d, 0x90640d01, 0x800408c4,
@@ -2149,307 +2181,314 @@ static const uint32_t isp_2500_risc_code[] = {
0x82640d00, 0x00000080, 0x80040904, 0x80046d4d,
0xb0640d00, 0x80046d4d, 0x82640d00, 0x00000200,
0x80040904, 0x80046d4d, 0x8234cd00, 0x000000ff,
- 0x1c01f000, 0x0515f809, 0x0502000d, 0x4803c856,
+ 0x1c01f000, 0x0515f92f, 0x0502000d, 0x4803c856,
0x4a03c014, 0x18001800, 0x4a03c013, 0x18000800,
0x05fdfc97, 0x4a03c013, 0x18000000, 0x61a1d007,
- 0x0529feed, 0x4a03c013, 0x18000800, 0x1c01f000,
- 0x0511fffa, 0x0502000d, 0x4803c856, 0x4a03c014,
+ 0x052dfad8, 0x4a03c013, 0x18000800, 0x1c01f000,
+ 0x0515f920, 0x0502000d, 0x4803c856, 0x4a03c014,
0x18001800, 0x4a03c013, 0x18001800, 0x05fdfc88,
- 0x4a03c013, 0x18001000, 0x61a1d007, 0x0529fede,
- 0x4a03c013, 0x18001800, 0x1c01f000, 0x0511ffeb,
+ 0x4a03c013, 0x18001000, 0x61a1d007, 0x052dfac9,
+ 0x4a03c013, 0x18001800, 0x1c01f000, 0x0515f911,
0x0502000e, 0x0501f831, 0x60041800, 0x42001000,
- 0x0010dc87, 0x60900800, 0x60002180, 0x50080000,
- 0x82000500, 0x000000ff, 0x4803c857, 0x0515f8cb,
- 0x05f00ca2, 0x0501f82d, 0x1c01f000, 0x0501f823,
+ 0x00111c0a, 0x60900800, 0x60002180, 0x50080000,
+ 0x82000500, 0x000000ff, 0x4803c857, 0x0515f9f1,
+ 0x05f00c5d, 0x0501f82d, 0x1c01f000, 0x0501f823,
0x59e00802, 0x8c04051e, 0x05000004, 0x4807c856,
0x60a00800, 0x0501f002, 0x609c0800, 0x4807c857,
- 0x60041800, 0x42001000, 0x0010dc85, 0x60002180,
- 0x64041000, 0x0515f8b9, 0x05f00c90, 0x0501f81b,
- 0x1c01f000, 0x0511ffc9, 0x0502000f, 0x59c40001,
+ 0x60041800, 0x42001000, 0x00111c08, 0x60002180,
+ 0x64041000, 0x0515f9df, 0x05f00c4b, 0x0501f81b,
+ 0x1c01f000, 0x0515f8ef, 0x0502000f, 0x59c40001,
0x82000500, 0x00018000, 0x82000d80, 0x00008000,
0x05000006, 0x82000d80, 0x00010000, 0x05000003,
- 0x497b50a6, 0x0501f004, 0x59a800a6, 0x90000c82,
+ 0x497b50a9, 0x0501f004, 0x59a800a9, 0x90000c82,
0x05fc17fc, 0x1c01f000, 0x42000800, 0x00895440,
- 0x0555ff9f, 0x05020004, 0x80040840, 0x05fe07fd,
- 0x0555ffab, 0x1c01f000, 0x64030000, 0x1c01f000,
+ 0x0559fe9a, 0x05020004, 0x80040840, 0x05fe07fd,
+ 0x0559fea6, 0x1c01f000, 0x64030000, 0x1c01f000,
0x4c5c0000, 0x59e0b802, 0x8c5c051e, 0x05000001,
0x5c00b800, 0x1c01f000, 0x4c5c0000, 0x4c600000,
0x6110b813, 0x4a03c016, 0x00010001, 0x59e00016,
0x8c000500, 0x05000010, 0x8c00051e, 0x05020002,
0x0501f014, 0x4a03c016, 0x00010000, 0x6140c00f,
- 0x61a1d007, 0x0529fe88, 0x59e00016, 0x8c00051e,
+ 0x61a1d007, 0x052dfa73, 0x59e00016, 0x8c00051e,
0x05fc07f1, 0x8060c040, 0x05fe07fa, 0x4a03c016,
- 0x80000000, 0x61a1d007, 0x0529fe7f, 0x805cb840,
+ 0x80000000, 0x61a1d007, 0x052dfa6a, 0x805cb840,
0x05fe07e9, 0x4803c856, 0x4a03c016, 0x80008000,
0x5c00c000, 0x5c00b800, 0x1c01f000, 0x4a03c013,
0x04010401, 0x4a03c016, 0x80010000, 0x05fdfc18,
0x1c01f000, 0x60800801, 0x61d0100d, 0x8408157e,
- 0x0509f8d4, 0x05f00c41, 0x48175079, 0x4817c857,
- 0x60800801, 0x61c0100d, 0x8408157e, 0x0509f8cd,
- 0x05f00c3a, 0x4817507a, 0x4817c857, 0x60800801,
- 0x61e0100d, 0x8408157e, 0x0509f8c6, 0x05f00c33,
- 0x4817507b, 0x4817c857, 0x641f507c, 0x617c1800,
+ 0x0509f906, 0x05f00bfc, 0x4817507c, 0x4817c857,
+ 0x60800801, 0x61c0100d, 0x8408157e, 0x0509f8ff,
+ 0x05f00bf5, 0x4817507d, 0x4817c857, 0x60800801,
+ 0x61e0100d, 0x8408157e, 0x0509f8f8, 0x05f00bee,
+ 0x4817507e, 0x4817c857, 0x641f507f, 0x617c1800,
0x0501f833, 0x0501f84e, 0x60600801, 0x60001000,
- 0x0509f8bc, 0x05020004, 0x0501f859, 0x60600801,
- 0x05f1fc1f, 0x0501f864, 0x4817c857, 0x59a8207c,
- 0x59a80079, 0x80140480, 0x0502101c, 0x59a8007a,
- 0x80140480, 0x05021012, 0x59a8007b, 0x80140480,
+ 0x0509f8ee, 0x05020004, 0x0501f859, 0x60600801,
+ 0x05f1fbda, 0x0501f864, 0x4817c857, 0x59a8207f,
+ 0x59a8007c, 0x80140480, 0x0502101c, 0x59a8007d,
+ 0x80140480, 0x05021012, 0x59a8007e, 0x80140480,
0x05021008, 0x601c1800, 0x90100583, 0x05020014,
- 0x90142c05, 0x59a8007b, 0x80140480, 0x05001010,
+ 0x90142c05, 0x59a8007e, 0x80140480, 0x05001010,
0x600c1800, 0x90100582, 0x0502000d, 0x90142c05,
- 0x59a8007a, 0x80140480, 0x05001009, 0x60081800,
- 0x90100580, 0x05020006, 0x90142c05, 0x59a80079,
+ 0x59a8007d, 0x80140480, 0x05001009, 0x60081800,
+ 0x90100580, 0x05020006, 0x90142c05, 0x59a8007c,
0x80140480, 0x05001002, 0x60001800, 0x80102583,
- 0x480f507c, 0x480fc857, 0x05000003, 0xb00c1d58,
- 0x0501f803, 0x65935078, 0x1c01f000, 0x59a80a77,
+ 0x480f507f, 0x480fc857, 0x05000003, 0xb00c1d58,
+ 0x0501f803, 0x6593507b, 0x1c01f000, 0x59a80a7a,
0x8c040500, 0x05000003, 0x820c1d00, 0xfffffff7,
- 0x0501f817, 0x61800801, 0x60041000, 0x0509f84f,
- 0x05f00bf2, 0x1c01f000, 0x4c580000, 0x0501f810,
- 0x6140b00f, 0x61800801, 0x60001000, 0x0509f87d,
- 0x05f00bea, 0x4817c857, 0x82140d00, 0x000000a0,
+ 0x0501f817, 0x61800801, 0x60041000, 0x0509f87f,
+ 0x05f00bad, 0x1c01f000, 0x4c580000, 0x0501f810,
+ 0x6140b00f, 0x61800801, 0x60001000, 0x0509f8af,
+ 0x05f00ba5, 0x4817c857, 0x82140d00, 0x000000a0,
0x90040da0, 0x05000004, 0x8058b040, 0x05fe07f6,
0x90000541, 0x5c00b000, 0x1c01f000, 0x05fdff6d,
0x05000004, 0x4a03c013, 0x04010401, 0x0501f003,
0x4a03c013, 0x04010400, 0x05fdf3a9, 0x05fdff65,
0x05000004, 0x4a03c013, 0x04010001, 0x0501f003,
- 0x4a03c013, 0x04010000, 0x05fdf3a1, 0x59a80a77,
- 0x84040d40, 0x4807c857, 0x48075277, 0x61800801,
- 0x60001000, 0x0509f85b, 0x05f00bc8, 0x4817c857,
+ 0x4a03c013, 0x04010000, 0x05fdf3a1, 0x59a80a7a,
+ 0x84040d40, 0x4807c857, 0x4807527a, 0x61800801,
+ 0x60001000, 0x0509f88d, 0x05f00b83, 0x4817c857,
0x82142d00, 0xfffffff7, 0xb0142d40, 0x40141800,
- 0x05fdf7c7, 0xb0142c80, 0x05001010, 0x59a80084,
- 0x8c000520, 0x0500000a, 0x59a8087d, 0x9004050f,
+ 0x05fdf7c7, 0xb0142c80, 0x05001010, 0x59a80087,
+ 0x8c000520, 0x0500000a, 0x59a80880, 0x9004050f,
0x05020007, 0x80040910, 0x82040d00, 0x000000ff,
0x4807c857, 0x80142c01, 0x0501f002, 0x90142c05,
0x4817c857, 0x1c01f000, 0x41782800, 0x05fdf7fd,
- 0x60600801, 0x60241000, 0x60101800, 0x0509f807,
- 0x05f00baa, 0x60600801, 0x60281000, 0x601c1800,
- 0x0509f802, 0x05f00ba5, 0x1c01f000, 0x42000800,
+ 0x60600801, 0x60241000, 0x60101800, 0x0509f837,
+ 0x05f00b65, 0x60600801, 0x60281000, 0x601c1800,
+ 0x0509f832, 0x05f00b60, 0x1c01f000, 0x42000800,
0x7ff481f4, 0x59e00002, 0x8c00051e, 0x05020003,
0x42000800, 0x7ff480f4, 0x4807c857, 0x50040000,
- 0x4803c857, 0x4803507d, 0x1c01f000, 0x59c468a4,
+ 0x4803c857, 0x48035080, 0x1c01f000, 0x59c468a4,
+ 0x90346d0f, 0x90346d8a, 0x1c01f000, 0x59c468a4,
0x90346d0f, 0x90346d82, 0x1c01f000, 0x59c468a4,
0x90346d0f, 0x90346d81, 0x1c01f000, 0x59c468a4,
- 0x90346d0f, 0x90346d80, 0x1c01f000, 0x59a80006,
- 0x8c00051c, 0x05020016, 0x4937c857, 0x0539f9b0,
- 0x05000013, 0x4926601d, 0x4936600a, 0x0545fe38,
- 0x64066407, 0x417a7800, 0x0519fa89, 0x59a80044,
- 0x80000000, 0x48035044, 0x60127000, 0x599c0019,
- 0x8c00050e, 0x05000002, 0x60027000, 0x599c0208,
- 0x48026c12, 0x0009f800, 0x90000541, 0x1c01f000,
- 0x4937c857, 0x0539f99a, 0x0500001b, 0x4926601d,
- 0x4936600a, 0x59340403, 0x82000580, 0x000007fe,
- 0x05000005, 0x4d3c0000, 0x417a7800, 0x0501f8b9,
- 0x5c027800, 0x0545fe1a, 0x64066407, 0x417a7800,
- 0x0519fa6b, 0x600c0800, 0x0519fa73, 0x0555fe9a,
- 0x05020004, 0x59a80044, 0x80000000, 0x48035044,
- 0x599c0208, 0x48026c12, 0x600a7000, 0x0009f800,
- 0x90000541, 0x1c01f000, 0x4803c856, 0x59a80006,
- 0x8c00051e, 0x05020008, 0x61f2880f, 0x42003000,
- 0x00fffffc, 0x0519fa87, 0x05020007, 0x0501f808,
- 0x05000005, 0x4a03504a, 0x0000ffff, 0x90000541,
- 0x1c01f000, 0x80000580, 0x05fdf7fe, 0x4937c857,
- 0x0539f96b, 0x05000011, 0x4926601d, 0x4936600a,
- 0x0545fdf3, 0x64066407, 0x417a7800, 0x0519fa44,
- 0x600c0800, 0x0519fa4c, 0x59a8004b, 0x80000000,
- 0x4803504b, 0x599c0208, 0x48026c12, 0x600a7000,
- 0x0009f800, 0x90000541, 0x1c01f000, 0x480bc857,
- 0x492fc857, 0x4923c857, 0x4927c857, 0x4c5c0000,
- 0x4008b800, 0x61f6880f, 0x42003000, 0x00fffffd,
- 0x0519fa60, 0x0502001b, 0x5934000a, 0x84000544,
- 0x4802680a, 0x0539f94a, 0x05000016, 0x4926601d,
- 0x4936600a, 0x812e59c0, 0x05000006, 0x592c0408,
- 0x8c00051e, 0x05000003, 0x48ee602d, 0x0501f004,
- 0x59a80249, 0x8400055c, 0x48035249, 0x492e6009,
- 0x64066407, 0x485e601e, 0x0545fdc5, 0x608a7000,
- 0x0009f800, 0x90000541, 0x5c00b800, 0x1c01f000,
- 0x80000580, 0x05fdf7fd, 0x5c000000, 0x4c000000,
- 0x4803c857, 0x4943c857, 0x493fc857, 0x4d340000,
- 0x4d440000, 0x4c580000, 0x4d2c0000, 0x4c5c0000,
- 0x0531fa37, 0x4df00000, 0x833c0500, 0x00001800,
- 0x05000003, 0x8d3c0516, 0x052c0f54, 0x0531f81d,
- 0x0531f8a9, 0x052dfd9f, 0x053dfcb0, 0x5c03e000,
- 0x05300a1c, 0x61c0b00f, 0x417a8800, 0x0001fb00,
- 0x05020025, 0x8d3c0506, 0x05000004, 0x59340200,
- 0x8c00050e, 0x05020020, 0x0519fccf, 0x497a6c0b,
- 0x8d3c0518, 0x05000017, 0x5934b80f, 0x805cb9c0,
- 0x0500000a, 0x405e5800, 0x49425a0a, 0x492fc857,
- 0x592cb800, 0x0001fb82, 0x805cb9c0, 0x05fe07fa,
- 0x497a680f, 0x497a6810, 0x4937c857, 0x4a026c00,
- 0x00000707, 0x497a6a03, 0x497a6811, 0x59340402,
- 0x82000500, 0x000000ff, 0x48026c02, 0x0501f006,
- 0x4937c857, 0x4a026c00, 0x00000707, 0x8d0c0520,
- 0x05140f78, 0x81468800, 0x8058b040, 0x05fe07d8,
- 0x8d3c0502, 0x05000011, 0x497b5046, 0x61c2880f,
- 0x6040b000, 0x0001fb00, 0x05020009, 0x4937c857,
- 0x5934b80f, 0x5934000c, 0x4a026c00, 0x00000707,
- 0x805c0540, 0x05020002, 0x0515ff66, 0x81468800,
- 0x8058b040, 0x05fe07f4, 0x5c00b800, 0x5c025800,
- 0x5c00b000, 0x5c028800, 0x5c026800, 0x1c01f000,
- 0x5c000000, 0x4c000000, 0x4803c857, 0x4933c857,
- 0x493fc857, 0x4927c857, 0x4d340000, 0x4d400000,
- 0x4d440000, 0x4d2c0000, 0x4c5c0000, 0x0531f9dc,
- 0x4df00000, 0x5932680a, 0x813669c0, 0x05000030,
- 0x59368c03, 0x60a68000, 0x833c0500, 0x00001800,
- 0x05000003, 0x8d3c0516, 0x052c0f03, 0x0531f808,
- 0x0531f851, 0x052dfdd7, 0x0551fb2b, 0x4937c857,
+ 0x90346d0f, 0x90346d80, 0x1c01f000, 0x59c40007,
+ 0x84000568, 0x48038807, 0x1c01f000, 0x42006000,
+ 0xfc18ffff, 0x42006800, 0x01000000, 0x0519f973,
+ 0x05fdfb4f, 0x59c408a4, 0x90040d0f, 0x90040d8c,
+ 0x052208f8, 0x1c01f000, 0x59a80006, 0x8c00051c,
+ 0x05020016, 0x4937c857, 0x0539fe32, 0x05000013,
+ 0x4926601d, 0x4936600a, 0x0549fb3d, 0x64066407,
+ 0x417a7800, 0x0519fc09, 0x59a80047, 0x80000000,
+ 0x48035047, 0x60127000, 0x599c0019, 0x8c00050e,
+ 0x05000002, 0x60027000, 0x599c0208, 0x48026c12,
+ 0x0009f839, 0x90000541, 0x1c01f000, 0x4937c857,
+ 0x0539fe1c, 0x0500001b, 0x4926601d, 0x4936600a,
+ 0x59340403, 0x82000580, 0x000007fe, 0x05000005,
+ 0x4d3c0000, 0x417a7800, 0x0501f8bd, 0x5c027800,
+ 0x0549fb1f, 0x64066407, 0x417a7800, 0x0519fbeb,
+ 0x600c0800, 0x0519fbf3, 0x0559fd82, 0x05020004,
+ 0x59a80047, 0x80000000, 0x48035047, 0x599c0208,
+ 0x48026c12, 0x600a7000, 0x0009f839, 0x90000541,
+ 0x1c01f000, 0x4803c856, 0x59a80006, 0x8c00051e,
+ 0x05020008, 0x61f2880f, 0x42003000, 0x00fffffc,
+ 0x0519fc0f, 0x05020007, 0x0501f808, 0x05000005,
+ 0x4a03504d, 0x0000ffff, 0x90000541, 0x1c01f000,
+ 0x80000580, 0x05fdf7fe, 0x4937c857, 0x0539fded,
+ 0x05000011, 0x4926601d, 0x4936600a, 0x0549faf8,
+ 0x64066407, 0x417a7800, 0x0519fbc4, 0x600c0800,
+ 0x0519fbcc, 0x59a8004e, 0x80000000, 0x4803504e,
+ 0x599c0208, 0x48026c12, 0x600a7000, 0x0009f839,
+ 0x90000541, 0x1c01f000, 0x480bc857, 0x492fc857,
+ 0x4923c857, 0x4927c857, 0x4c5c0000, 0x4008b800,
+ 0x61f6880f, 0x42003000, 0x00fffffd, 0x0519fbe8,
+ 0x0502001b, 0x5934000a, 0x84000544, 0x4802680a,
+ 0x0539fdcc, 0x05000016, 0x4926601d, 0x4936600a,
+ 0x812e59c0, 0x05000006, 0x592c0408, 0x8c00051e,
+ 0x05000003, 0x48ee602d, 0x0501f004, 0x59a8024c,
+ 0x8400055c, 0x4803524c, 0x492e6009, 0x64066407,
+ 0x485e601e, 0x0549faca, 0x608a7000, 0x0009f839,
+ 0x90000541, 0x5c00b800, 0x1c01f000, 0x80000580,
+ 0x05fdf7fd, 0x5c000000, 0x4c000000, 0x4803c857,
+ 0x4943c857, 0x493fc857, 0x4d340000, 0x4d440000,
+ 0x4c580000, 0x4d2c0000, 0x4c5c0000, 0x0531fe62,
+ 0x4df00000, 0x833c0500, 0x00001800, 0x05000003,
+ 0x8d3c0516, 0x05300b7a, 0x0531fc49, 0x0531fcd5,
+ 0x0531f9c5, 0x0541f964, 0x5c03e000, 0x05300e47,
+ 0x59a8b0ac, 0x417a8800, 0x0001fb08, 0x05020025,
0x8d3c0506, 0x05000004, 0x59340200, 0x8c00050e,
- 0x0502001f, 0x0519fc74, 0x497a6c0b, 0x8d3c0518,
+ 0x05020020, 0x0519fea6, 0x497a6c0b, 0x8d3c0518,
0x05000017, 0x5934b80f, 0x805cb9c0, 0x0500000a,
0x405e5800, 0x49425a0a, 0x492fc857, 0x592cb800,
- 0x0001fb82, 0x805cb9c0, 0x05fe07fa, 0x497a680f,
+ 0x0001fba8, 0x805cb9c0, 0x05fe07fa, 0x497a680f,
0x497a6810, 0x4937c857, 0x4a026c00, 0x00000707,
0x497a6a03, 0x497a6811, 0x59340402, 0x82000500,
- 0x000000ff, 0x48026c02, 0x0501f005, 0x4a026c00,
- 0x00000707, 0x8d0c0520, 0x05140f1e, 0x5c03e000,
- 0x05300998, 0x5c00b800, 0x5c025800, 0x5c028800,
- 0x5c028000, 0x5c026800, 0x1c01f000, 0x4933c857,
- 0x59a80249, 0x8c000508, 0x05020013, 0x5930500a,
- 0x482bc857, 0x916c0582, 0x0502000f, 0x0501f81a,
- 0x0502000d, 0x58280403, 0x82004d80, 0x000007fc,
- 0x0500000a, 0x82004d80, 0x000007fd, 0x05000006,
- 0x59a80044, 0x80000040, 0x4803c857, 0x05f01a53,
- 0x48035044, 0x1c01f000, 0x59300429, 0x90004da1,
- 0x05fc07f8, 0xb0000591, 0x05fc07fb, 0x59a8004b,
- 0x80000040, 0x4803c857, 0x05fc17f7, 0x4803504b,
- 0x1c01f000, 0x59300009, 0x800001c0, 0x05020007,
- 0x59300403, 0x90000581, 0x05020003, 0x90000541,
- 0x0501f002, 0x80000580, 0x1c01f000, 0x4937c857,
- 0x59340200, 0x84000502, 0x48026a00, 0x1c01f000,
- 0x4933c857, 0x493fc857, 0x4947c857, 0x4927c857,
- 0x4d400000, 0x4d340000, 0x4d440000, 0x4c580000,
- 0x0531f967, 0x4df00000, 0x8060c1c0, 0x05020003,
- 0x6004b000, 0x0501f003, 0x61c0b00f, 0x417a8800,
- 0x41440000, 0x81ac0400, 0x50000000, 0x80026d40,
- 0x05000018, 0x59245005, 0x59340013, 0x82000500,
+ 0x000000ff, 0x48026c02, 0x0501f006, 0x4937c857,
+ 0x4a026c00, 0x00000707, 0x8d0c0520, 0x051808dc,
+ 0x81468800, 0x83440580, 0x000007f0, 0x05020002,
+ 0x60028810, 0x8058b040, 0x05fe07d4, 0x8d3c0502,
+ 0x05000011, 0x497b5049, 0x61c2880f, 0x6040b000,
+ 0x0001fb08, 0x05020009, 0x4937c857, 0x5934b80f,
+ 0x5934000c, 0x4a026c00, 0x00000707, 0x805c0540,
+ 0x05020002, 0x0519f8c6, 0x81468800, 0x8058b040,
+ 0x05fe07f4, 0x5c00b800, 0x5c025800, 0x5c00b000,
+ 0x5c028800, 0x5c026800, 0x1c01f000, 0x5c000000,
+ 0x4c000000, 0x4803c857, 0x4933c857, 0x493fc857,
+ 0x4927c857, 0x4d340000, 0x4d400000, 0x4d440000,
+ 0x4d2c0000, 0x4c5c0000, 0x0531fe03, 0x4df00000,
+ 0x5932680a, 0x813669c0, 0x05000030, 0x59368c03,
+ 0x60a68000, 0x833c0500, 0x00001800, 0x05000003,
+ 0x8d3c0516, 0x05300b25, 0x0531fc30, 0x0531fc79,
+ 0x0531f9f9, 0x0555f9ab, 0x4937c857, 0x8d3c0506,
+ 0x05000004, 0x59340200, 0x8c00050e, 0x0502001f,
+ 0x0519fe47, 0x497a6c0b, 0x8d3c0518, 0x05000017,
+ 0x5934b80f, 0x805cb9c0, 0x0500000a, 0x405e5800,
+ 0x49425a0a, 0x492fc857, 0x592cb800, 0x0001fba8,
+ 0x805cb9c0, 0x05fe07fa, 0x497a680f, 0x497a6810,
+ 0x4937c857, 0x4a026c00, 0x00000707, 0x497a6a03,
+ 0x497a6811, 0x59340402, 0x82000500, 0x000000ff,
+ 0x48026c02, 0x0501f005, 0x4a026c00, 0x00000707,
+ 0x8d0c0520, 0x0518087e, 0x5c03e000, 0x05300dbf,
+ 0x5c00b800, 0x5c025800, 0x5c028800, 0x5c028000,
+ 0x5c026800, 0x1c01f000, 0x4933c857, 0x59a8024c,
+ 0x8c000508, 0x05020013, 0x5930500a, 0x482bc857,
+ 0x916c0582, 0x0502000f, 0x0501f81a, 0x0502000d,
+ 0x58280403, 0x82004d80, 0x000007fc, 0x0500000a,
+ 0x82004d80, 0x000007fd, 0x05000006, 0x59a80047,
+ 0x80000040, 0x4803c857, 0x05f019f7, 0x48035047,
+ 0x1c01f000, 0x59300429, 0x90004da1, 0x05fc07f8,
+ 0xb0000591, 0x05fc07fb, 0x59a8004e, 0x80000040,
+ 0x4803c857, 0x05fc17f7, 0x4803504e, 0x1c01f000,
+ 0x59300009, 0x800001c0, 0x05020007, 0x59300403,
+ 0x90000581, 0x05020003, 0x90000541, 0x0501f002,
+ 0x80000580, 0x1c01f000, 0x4937c857, 0x59340200,
+ 0x84000502, 0x48026a00, 0x1c01f000, 0x4933c857,
+ 0x493fc857, 0x4947c857, 0x4927c857, 0x4d400000,
+ 0x4d340000, 0x4d440000, 0x4c580000, 0x0531fd8e,
+ 0x4df00000, 0x8060c1c0, 0x05020003, 0x6004b000,
+ 0x0501f003, 0x59a8b0ac, 0x417a8800, 0x0001fb08,
+ 0x05020018, 0x59245005, 0x59340013, 0x82000500,
0x00ffffff, 0x80280580, 0x05020012, 0x4d3c0000,
- 0x60067800, 0x0519fd32, 0x5c027800, 0x60a68000,
- 0x052dff87, 0x052dffd0, 0x052dfd56, 0x0519fe5e,
+ 0x60067800, 0x0519ff10, 0x5c027800, 0x60a68000,
+ 0x0531fbb2, 0x0531fbfb, 0x0531f97b, 0x051df893,
0x05020005, 0x4937c857, 0x4a026c00, 0x00000404,
- 0x0501f002, 0x0519fe83, 0x0551faa3, 0x0519fbf2,
- 0x81468800, 0x8058b040, 0x05fe07e2, 0x5c03e000,
- 0x05300930, 0x5c00b000, 0x5c028800, 0x5c026800,
+ 0x0501f002, 0x051df8b8, 0x0555f926, 0x0519fdc8,
+ 0x81468800, 0x83440580, 0x000007f0, 0x05020002,
+ 0x60028810, 0x8058b040, 0x05fe07e1, 0x5c03e000,
+ 0x05300d56, 0x5c00b000, 0x5c028800, 0x5c026800,
0x5c028000, 0x1c01f000, 0x4937c857, 0x4947c857,
- 0x4c5c0000, 0x4c600000, 0x4c640000, 0x59a800b2,
+ 0x4c5c0000, 0x4c600000, 0x4c640000, 0x59a800b7,
0x8c000500, 0x0500001d, 0x599c0017, 0x8c00050a,
0x0502001a, 0x5934ba02, 0x825cbd00, 0x000000ff,
0x485fc857, 0x4178c000, 0x4178c800, 0x82600400,
- 0x00110258, 0x50002000, 0x8060c1c0, 0x05000008,
+ 0x001141fc, 0x50002000, 0x8060c1c0, 0x05000008,
0x82100500, 0x000000ff, 0x82002d80, 0x000000ff,
0x0500000a, 0x805c0580, 0x0500000a, 0x80102110,
0x8064c800, 0x90640584, 0x05fe07f6, 0x8060c000,
0x906005a0, 0x05fe07ed, 0x4813c857, 0x90000541,
0x5c00c800, 0x5c00c000, 0x5c00b800, 0x1c01f000,
- 0x59a80249, 0x8c000512, 0x05f20a9b, 0x1c01f000,
+ 0x59a8024c, 0x8c000512, 0x05f20a32, 0x1c01f000,
0x4c5c0000, 0x4c600000, 0x4c640000, 0x4c500000,
- 0x6004b000, 0x42024800, 0x0010e512, 0x417a4000,
- 0x61fa880f, 0x0555fd04, 0x05000020, 0x0555fce1,
- 0x5924ba00, 0x8c5c0500, 0x0500007c, 0x59a8a249,
+ 0x6004b000, 0x42024800, 0x001124b6, 0x417a4000,
+ 0x61fa880f, 0x0559fbe7, 0x05000020, 0x0559fbc4,
+ 0x5924ba00, 0x8c5c0500, 0x0500007c, 0x59a8a24c,
0x8c500506, 0x0500000d, 0x825c0500, 0x000000e0,
0x82000580, 0x000000e0, 0x05000074, 0x0501f881,
- 0x59a80044, 0x4923c857, 0x4803c857, 0x80000000,
- 0x48035044, 0x0501f06d, 0x8c5c051e, 0x0500006b,
+ 0x59a80047, 0x4923c857, 0x4803c857, 0x80000000,
+ 0x48035047, 0x0501f06d, 0x8c5c051e, 0x0500006b,
0x4927c856, 0x6004b000, 0x825c0500, 0x000000e1,
0x48024a00, 0x485fc857, 0x825cc500, 0x000000e0,
- 0x0502001f, 0x0501f018, 0x051dfc7c, 0x05000002,
- 0x0555fcc4, 0x5924ba00, 0x8c5c0500, 0x0500005b,
- 0x0555fcdd, 0x05000005, 0x59a80249, 0x8c00050e,
- 0x05020013, 0x0501f004, 0x83240d80, 0x0010e512,
+ 0x0502001f, 0x0501f018, 0x051dfece, 0x05000002,
+ 0x0559fba7, 0x5924ba00, 0x8c5c0500, 0x0500005b,
+ 0x0559fbc0, 0x05000005, 0x59a8024c, 0x8c00050e,
+ 0x05020013, 0x0501f004, 0x83240d80, 0x001124b6,
0x0502000f, 0x825cc500, 0x000000e0, 0x0502000c,
- 0x051dfc6a, 0x05000004, 0x42000800, 0xffffff1d,
- 0x0501fa82, 0x59a80249, 0x82000500, 0xffffdafc,
- 0x8400054e, 0x48035249, 0x0501f006, 0x82600580,
+ 0x051dfebc, 0x05000004, 0x42000800, 0xffffff1d,
+ 0x0501fa91, 0x59a8024c, 0x82000500, 0xffffdafc,
+ 0x8400054e, 0x4803524c, 0x0501f006, 0x82600580,
0x000000e0, 0x0502004a, 0x8c5c050e, 0x0502003f,
0x5924c809, 0x9064040e, 0x50000000, 0x4803c857,
- 0x80026d40, 0x05000011, 0x051dfc54, 0x05000013,
+ 0x80026d40, 0x05000011, 0x051dfea6, 0x05000013,
0x59340200, 0x8c00051a, 0x05020034, 0x59240805,
- 0x80040910, 0x0500000d, 0x59a80046, 0x4803c857,
+ 0x80040910, 0x0500000d, 0x59a80049, 0x4803c857,
0x4807c857, 0x80040580, 0x05000008, 0x4a026806,
0xdeaddead, 0x0501f005, 0x42003000, 0x00fffffe,
- 0x0519f8a8, 0x0502002e, 0x0535ff95, 0x0500002c,
+ 0x0519fa2b, 0x0502002e, 0x0539fc12, 0x0500002c,
0x4936600a, 0x4926601d, 0x64066407, 0x417a7800,
- 0x0519f86f, 0x05fdff2a, 0x600c0800, 0x0519f876,
- 0x0545fc17, 0x49235045, 0x4923c857, 0x59240005,
+ 0x0519f9ea, 0x05fdff29, 0x600c0800, 0x0519f9f1,
+ 0x0549f917, 0x49235048, 0x4923c857, 0x59240005,
0x82000500, 0x000000ff, 0x48024805, 0x916c0583,
- 0x05000004, 0x59a80044, 0x80000000, 0x48035044,
- 0x599c0208, 0x48026c12, 0x600a7000, 0x0009f800,
+ 0x05000004, 0x59a80047, 0x80000000, 0x48035047,
+ 0x599c0208, 0x48026c12, 0x600a7000, 0x0009f839,
0x59240200, 0x82000500, 0xffffff9d, 0x8400054e,
- 0x8400055e, 0x59a80ccc, 0x8c04050a, 0x05000002,
+ 0x8400055e, 0x59a80cd1, 0x8c04050a, 0x05000002,
0x8400055e, 0x48024a00, 0x81224000, 0x91264c0d,
- 0x8058b040, 0x05000004, 0x0555fc7f, 0x05fe077d,
- 0x05fdf79d, 0x4a035045, 0x0000ffff, 0x5c00a000,
+ 0x8058b040, 0x05000004, 0x0559fb62, 0x05fe077d,
+ 0x05fdf79d, 0x4a035048, 0x0000ffff, 0x5c00a000,
0x5c00c800, 0x5c00c000, 0x5c00b800, 0x1c01f000,
0x4d300000, 0x4d440000, 0x4d340000, 0x61fa880f,
- 0x42003000, 0x00fffffe, 0x0519f86e, 0x0502001c,
- 0x0535ff5b, 0x0500001a, 0x4927c857, 0x4923c857,
+ 0x42003000, 0x00fffffe, 0x0519f9f1, 0x0502001c,
+ 0x0539fbd8, 0x0500001a, 0x4927c857, 0x4923c857,
0x497a6009, 0x4936600a, 0x4926601d, 0x64066407,
- 0x600c0800, 0x0519f83c, 0x599c0208, 0x48026c12,
- 0x600a7000, 0x0009f800, 0x59a80a49, 0x8c040506,
+ 0x600c0800, 0x0519f9b7, 0x599c0208, 0x48026c12,
+ 0x600a7000, 0x0009f839, 0x59a80a4c, 0x8c040506,
0x05020002, 0x497a4805, 0x59240200, 0x82000500,
0xffffff9d, 0x8400054e, 0x48024a00, 0x5c026800,
0x5c028800, 0x5c026000, 0x1c01f000, 0x80000580,
0x05fdf7fb, 0x4d200000, 0x4d240000, 0x4c580000,
0x4d340000, 0x4d300000, 0x4d3c0000, 0x4d380000,
- 0x4d440000, 0x0519fc0b, 0x05020009, 0x051dfbdf,
- 0x05000004, 0x59a81249, 0x8c080506, 0x05000003,
+ 0x4d440000, 0x0519fde5, 0x05020009, 0x051dfe31,
+ 0x05000004, 0x59a8124c, 0x8c080506, 0x05000003,
0x05fdff34, 0x0501f002, 0x0501f80a, 0x5c028800,
0x5c027000, 0x5c027800, 0x5c026000, 0x5c026800,
0x5c00b000, 0x5c024800, 0x5c024000, 0x1c01f000,
- 0x4803c856, 0x4c600000, 0x0555fc16, 0x4200c000,
- 0x0010e510, 0x50600000, 0x82024580, 0x0000ffff,
- 0x05020004, 0x42024800, 0x0010e512, 0x0501f008,
+ 0x4803c856, 0x4c600000, 0x0559faf9, 0x4200c000,
+ 0x001124b4, 0x50600000, 0x82024580, 0x0000ffff,
+ 0x05020004, 0x42024800, 0x001124b6, 0x0501f008,
0x8058b480, 0x05000026, 0x05001025, 0x40024000,
- 0x82000400, 0x0010d17b, 0x50024800, 0x4520c000,
+ 0x82000400, 0x0010d8f9, 0x50024800, 0x4520c000,
0x59240005, 0x82000500, 0x000000ff, 0x48024805,
0x59240200, 0x90000503, 0x90000583, 0x0502000e,
- 0x59240400, 0x8c000508, 0x0500000b, 0x59a800b2,
+ 0x59240400, 0x8c000508, 0x0500000b, 0x59a800b7,
0x8c000500, 0x05000003, 0x0501f813, 0x0501f002,
- 0x0501f85e, 0x59a80045, 0x82000580, 0x0000ffff,
+ 0x0501f85e, 0x59a80048, 0x82000580, 0x0000ffff,
0x0502000b, 0x81224000, 0x91264c0d, 0x8058b040,
0x05fe07e7, 0x599c0019, 0x8c00050e, 0x05020004,
- 0x59a800b2, 0x8c000500, 0x05020881, 0x5c00c000,
+ 0x59a800b7, 0x8c000500, 0x05020881, 0x5c00c000,
0x1c01f000, 0x4927c857, 0x4923c857, 0x4c580000,
0x4c100000, 0x4c0c0000, 0x4c080000, 0x4c040000,
- 0x4d240000, 0x59243c08, 0x59a81845, 0x820c1580,
+ 0x4d240000, 0x59243c08, 0x59a81848, 0x820c1580,
0x0000ffff, 0x05020002, 0x60041800, 0x800c1104,
- 0x82082400, 0x00110258, 0x50102000, 0x900c0503,
- 0x0c01f001, 0x0010252d, 0x0010252f, 0x00102531,
- 0x00102533, 0x40101000, 0x0501f006, 0x80101110,
+ 0x82082400, 0x001141fc, 0x50102000, 0x900c0503,
+ 0x0c01f001, 0x001025c5, 0x001025c7, 0x001025c9,
+ 0x001025cb, 0x40101000, 0x0501f006, 0x80101110,
0x0501f004, 0x80101120, 0x0501f002, 0x80101130,
0x4c0c0000, 0x82080500, 0x000000ff, 0x801c0d80,
0x05000019, 0x800001c0, 0x05000017, 0x40000800,
- 0x82000580, 0x000000ff, 0x05000017, 0x0501f916,
- 0x05000011, 0x40040000, 0x0525fb8c, 0x0502001c,
- 0x0519f84b, 0x05000004, 0x05fdfd09, 0x05000018,
+ 0x82000580, 0x000000ff, 0x05000017, 0x0501f924,
+ 0x05000011, 0x40040000, 0x0525fea0, 0x0502001c,
+ 0x0519f9f0, 0x05000004, 0x05fdfd04, 0x05000018,
0x0501f009, 0x599c0019, 0x8c00050e, 0x05020006,
- 0x0515ffc8, 0x05020012, 0x05fdfe51, 0x05fdfd19,
- 0x0500000f, 0x5c001800, 0x480f5045, 0x800c1800,
- 0x05fdf7cf, 0x5c001800, 0x4a035045, 0x0000ffff,
+ 0x0519f94b, 0x05020012, 0x05fdfe50, 0x05fdfd14,
+ 0x0500000f, 0x5c001800, 0x480f5048, 0x800c1800,
+ 0x05fdf7cf, 0x5c001800, 0x4a035048, 0x0000ffff,
0x5c024800, 0x5c000800, 0x5c001000, 0x5c001800,
0x5c002000, 0x5c00b000, 0x1c01f000, 0x5c001800,
- 0x480f5045, 0x05fdf7f7, 0x4927c857, 0x4c5c0000,
+ 0x480f5048, 0x05fdf7f7, 0x4927c857, 0x4c5c0000,
0x4c580000, 0x4c540000, 0x61f8b000, 0x59243c08,
- 0x59a80045, 0x82001580, 0x0000ffff, 0x05020003,
+ 0x59a80048, 0x82001580, 0x0000ffff, 0x05020003,
0x4178a800, 0x0501f004, 0x8058b480, 0x0500101e,
- 0x4000a800, 0x48575045, 0x8254bc00, 0x00102853,
+ 0x4000a800, 0x48575048, 0x8254bc00, 0x001028fb,
0x505cb800, 0x825cbd00, 0x000000ff, 0x405c0800,
- 0x0501f8dd, 0x05000011, 0x405c0000, 0x0525fb53,
- 0x05020013, 0x0519f812, 0x05000004, 0x05fdfcd0,
+ 0x0501f8eb, 0x05000011, 0x405c0000, 0x0525fe67,
+ 0x05020013, 0x0519f9b7, 0x05000004, 0x05fdfccb,
0x0500000f, 0x0501f009, 0x599c0019, 0x8c00050e,
- 0x05020006, 0x0515ff8f, 0x05020009, 0x05fdfe18,
- 0x05fdfce0, 0x05000006, 0x8054a800, 0x8058b040,
- 0x05fe07e5, 0x4a035045, 0x0000ffff, 0x5c00a800,
+ 0x05020006, 0x0519f912, 0x05020009, 0x05fdfe17,
+ 0x05fdfcdb, 0x05000006, 0x8054a800, 0x8058b040,
+ 0x05fe07e5, 0x4a035048, 0x0000ffff, 0x5c00a800,
0x5c00b000, 0x5c00b800, 0x1c01f000, 0x4c580000,
- 0x4d440000, 0x61c0b00f, 0x80028d80, 0x0001fb00,
+ 0x4d440000, 0x59a8b0ac, 0x80028d80, 0x0001fb08,
0x05020018, 0x05fdfe41, 0x05000016, 0x4937c857,
- 0x0519fcd5, 0x42026000, 0x00111a70, 0x4936600a,
- 0x497a6009, 0x4926601d, 0x417a7800, 0x05fdfd89,
- 0x42000000, 0x0010e454, 0x0555fa36, 0x59240400,
+ 0x0519ff06, 0x42026000, 0x00115a14, 0x4936600a,
+ 0x497a6009, 0x4926601d, 0x417a7800, 0x05fdfd88,
+ 0x42000000, 0x001123f8, 0x0559f919, 0x59240400,
0x8c00050a, 0x05020007, 0x41782800, 0x60203000,
- 0x4d400000, 0x60a68000, 0x0551f9f8, 0x5c028000,
- 0x81468800, 0x8058b040, 0x05fe07e5, 0x5c028800,
+ 0x4d400000, 0x60a68000, 0x0555f8a7, 0x5c028000,
+ 0x81468800, 0x83440580, 0x000007f0, 0x05020002,
+ 0x60028810, 0x8058b040, 0x05fe07e1, 0x5c028800,
0x5c00b000, 0x1c01f000, 0x4927c857, 0x4c5c0000,
0x400cb800, 0x4d200000, 0x4d240000, 0x4c580000,
- 0x0555fb38, 0x417a4000, 0x42024800, 0x0010e512,
+ 0x0559fa17, 0x417a4000, 0x42024800, 0x001124b6,
0x59240200, 0x8c000500, 0x0500000f, 0x8c5c0508,
0x05000004, 0x8400055a, 0x48024a00, 0x0501f00a,
0x82000500, 0x000000e0, 0x82000580, 0x000000e0,
@@ -2458,10 +2497,10 @@ static const uint32_t isp_2500_risc_code[] = {
0x05fe07ec, 0x5c00b000, 0x5c024800, 0x5c024000,
0x5c00b800, 0x1c01f000, 0x4d200000, 0x4d240000,
0x4c580000, 0x4c5c0000, 0x400cb800, 0x485fc857,
- 0x0555fb14, 0x8058b040, 0x0500001f, 0x60064000,
- 0x42024800, 0x0010e51f, 0x59a80249, 0x8c000514,
+ 0x0559f9f3, 0x8058b040, 0x0500001f, 0x60064000,
+ 0x42024800, 0x001124c3, 0x59a8024c, 0x8c000514,
0x0500001e, 0x59241200, 0x8c080510, 0x05020012,
- 0x8c080500, 0x05000010, 0x59a80acc, 0x5924000b,
+ 0x8c080500, 0x05000010, 0x59a80ad1, 0x5924000b,
0x82000500, 0x00001fff, 0x80040580, 0x0502000a,
0x8c08051e, 0x05020008, 0x8c5c0508, 0x05000004,
0x8408155a, 0x480a4a00, 0x0501f003, 0x0501f813,
@@ -2470,149 +2509,152 @@ static const uint32_t isp_2500_risc_code[] = {
0x5c024000, 0x1c01f000, 0x497a4805, 0x59240200,
0x90000501, 0x48024a00, 0x91264c0d, 0x8058b040,
0x05fe07fa, 0x05fdf7f4, 0x4927c857, 0x4923c857,
- 0x59a80249, 0x8c000514, 0x05000003, 0x0501f9e6,
+ 0x59a8024c, 0x8c000514, 0x05000003, 0x0501f9f1,
0x1c01f000, 0x80000580, 0x05fdf7fe, 0x4c580000,
- 0x0555fadc, 0x417a4000, 0x42000800, 0x0010e512,
+ 0x0559f9bb, 0x417a4000, 0x42000800, 0x001124b6,
0x5930001d, 0x80040580, 0x05000006, 0x81224000,
- 0x90040c0d, 0x8058b040, 0x05fe07fa, 0x05edffb7,
+ 0x90040c0d, 0x8058b040, 0x05fe07fa, 0x05edff56,
0x4933c857, 0x4923c857, 0x5c00b000, 0x1c01f000,
- 0x4c580000, 0x0555facb, 0x417a4000, 0x42024800,
- 0x0010e512, 0x59a81249, 0x8c080508, 0x0500000a,
- 0x821c0d80, 0x00fffffe, 0x05000020, 0x8c08050c,
- 0x0500001e, 0x59240005, 0x801c0580, 0x0500001b,
- 0x0501f017, 0x90080528, 0x05020005, 0x59240005,
- 0x82000500, 0x000000ff, 0x0501f008, 0x821c0580,
- 0x00fffff0, 0x05000011, 0x59240200, 0x8c000500,
- 0x05000004, 0x59240005, 0x801c0580, 0x0500000b,
- 0x81224000, 0x91264c0d, 0x8058b040, 0x05000004,
- 0x90080528, 0x05fe07f2, 0x05fdf7ed, 0x61fe41ff,
- 0x90000541, 0x481fc856, 0x4923c857, 0x5c00b000,
- 0x1c01f000, 0x4807c857, 0x4c580000, 0x0555fa9d,
- 0x42006800, 0x0010e512, 0x58340005, 0x82000500,
- 0x000000ff, 0x80040580, 0x05000005, 0x90346c0d,
- 0x8058b040, 0x05fe07f9, 0x90000541, 0x5c00b000,
- 0x1c01f000, 0x4923c857, 0x493fc857, 0x4c580000,
- 0x4d400000, 0x4d440000, 0x4d340000, 0x4c5c0000,
- 0x052dfea7, 0x4df00000, 0x61c0b00f, 0x417a8800,
- 0x83440400, 0x0010d400, 0x50000000, 0x80026d40,
- 0x0500001f, 0x59340013, 0x80000130, 0x81200580,
- 0x0502001b, 0x60a68000, 0x833c0500, 0x00004000,
- 0x052e0bc9, 0x052dfcce, 0x052dfd17, 0x052dfa9d,
- 0x054dfff1, 0x8d3c051c, 0x05000004, 0x41240800,
- 0x0519fc0c, 0x0501f00e, 0x8d3c0506, 0x05000004,
- 0x59340200, 0x8c00050e, 0x05020009, 0x4937c857,
- 0x0519f935, 0x497a6c0b, 0x4a026c00, 0x00000707,
- 0x59240400, 0x8c00050a, 0x05160bf6, 0x81468800,
- 0x8058b040, 0x05fe07db, 0x8d3c0502, 0x0500001f,
- 0x6040b000, 0x5924b809, 0x505c0000, 0x80026d40,
- 0x05000017, 0x59368c03, 0x833c0500, 0x00004000,
- 0x052e0ba5, 0x052dfcaa, 0x052dfcf3, 0x052dfa79,
- 0x054dffcd, 0x8d3c051c, 0x0502000b, 0x83440580,
- 0x000007fe, 0x05020006, 0x59340813, 0x82040d00,
- 0xff000000, 0x48066813, 0x0501f005, 0x0515fbd9,
- 0x0501f003, 0x41240800, 0x0519fbde, 0x805cb800,
- 0x8058b040, 0x05fe07e5, 0x4d300000, 0x61fe89ff,
- 0x42026000, 0x00111a70, 0x4a02600a, 0x00110210,
- 0x0519feee, 0x4926601d, 0x60a68000, 0x052dfc8c,
- 0x054dffb1, 0x5c026000, 0x5c03e000, 0x052c0e41,
- 0x5c00b800, 0x5c026800, 0x5c028800, 0x5c028000,
- 0x5c00b000, 0x1c01f000, 0x4807c857, 0x4c580000,
- 0x0555fa28, 0x42001000, 0x0010e512, 0x58080200,
- 0x80040500, 0x48001200, 0x9008140d, 0x8058b040,
- 0x05fe07fb, 0x5c00b000, 0x1c01f000, 0x4803c856,
- 0x4d440000, 0x4d340000, 0x4c580000, 0x4c5c0000,
- 0x6040b000, 0x61c2880f, 0x5924b809, 0x83440580,
- 0x000007fe, 0x05000005, 0x505e6800, 0x813669c0,
- 0x05000002, 0x0515fba3, 0x81468800, 0x805cb800,
- 0x8058b040, 0x05fe07f6, 0x5c00b800, 0x5c00b000,
- 0x5c026800, 0x5c028800, 0x1c01f000, 0x5c000000,
- 0x4c000000, 0x4803c857, 0x4c5c0000, 0x4c600000,
- 0x4c580000, 0x4d240000, 0x4d200000, 0x4178c000,
- 0x59a804cc, 0x4803c857, 0x8c00050c, 0x0502001c,
- 0x0555f9f8, 0x417a4000, 0x42024800, 0x0010e512,
- 0x5924b80b, 0x825cbd00, 0x00001fff, 0x805cb9c0,
- 0x0500000f, 0x405c1000, 0x0501f827, 0x05000017,
- 0x916c0583, 0x0502000a, 0x59240200, 0x8c000500,
- 0x05000007, 0x8c000502, 0x05020005, 0x8c00051e,
- 0x05000003, 0x41780800, 0x0501f87f, 0x81224000,
- 0x91264c0d, 0x8058b040, 0x05fe07ea, 0x8060c1c0,
- 0x5c024000, 0x5c024800, 0x5c00b000, 0x5c00c000,
- 0x5c00b800, 0x1c01f000, 0x405c1000, 0x480bc856,
- 0x4d3c0000, 0x4d400000, 0x60aa8000, 0x600a7800,
- 0x41780800, 0x813261c0, 0x05000002, 0x60400800,
- 0x0501f81a, 0x5c028000, 0x5c027800, 0x8060c000,
- 0x05fdf7e7, 0x5c000000, 0x4c000000, 0x4803c857,
- 0x480bc857, 0x41780800, 0x60800000, 0x052df85b,
- 0x4807c857, 0x607c1800, 0x40040000, 0x800c0480,
- 0x82000c00, 0x0010d15b, 0x50040800, 0x4807c857,
- 0x82080400, 0x00110672, 0x50000000, 0x4803c857,
- 0x80040500, 0x1c01f000, 0x480bc857, 0x4d200000,
- 0x4d240000, 0x4c580000, 0x4c5c0000, 0x4c600000,
- 0x4008c000, 0x4004b800, 0x0555f9aa, 0x417a4000,
- 0x42024800, 0x0010e512, 0x5924000b, 0x82000500,
- 0x00001fff, 0x80600580, 0x05020013, 0x8c5c0506,
- 0x0502000a, 0x05fdff10, 0x497a4805, 0x8c5c0508,
- 0x0500000d, 0x60643000, 0x61fc19ff, 0x601c2000,
- 0x0511f8ec, 0x0501f008, 0x8c640502, 0x05020005,
- 0x05fdff05, 0x497a4805, 0x497a480b, 0x0501f002,
- 0x0521fa84, 0x81224000, 0x91264c0d, 0x8058b040,
- 0x05fe07e6, 0x5c00c000, 0x5c00b800, 0x5c00b000,
- 0x5c024800, 0x5c024000, 0x1c01f000, 0x4803c856,
- 0x4c580000, 0x4d240000, 0x4d200000, 0x59a804cc,
- 0x8c00050c, 0x05020018, 0x0555f97e, 0x8058b040,
- 0x05000015, 0x60064000, 0x42024800, 0x0010e51f,
- 0x59240200, 0x8c00051e, 0x0500000b, 0x8c00050e,
- 0x05020009, 0x59a802cc, 0x5924080b, 0x82040d00,
- 0x00001fff, 0x80040580, 0x05000003, 0x41780800,
- 0x0501f809, 0x91264c0d, 0x81224000, 0x8058b040,
- 0x05fe07f0, 0x5c024000, 0x5c024800, 0x5c00b000,
- 0x1c01f000, 0x4d300000, 0x4d440000, 0x4c040000,
- 0x61fa880f, 0x42003000, 0x00fffffe, 0x0515fd7d,
- 0x05020018, 0x0535fc6a, 0x05000016, 0x5c000800,
- 0x48066009, 0x4936600a, 0x4926601d, 0x64066407,
- 0x600c0800, 0x0515fd4c, 0x599c0208, 0x48026c12,
- 0x600a7000, 0x0009f800, 0x497a4805, 0x59240200,
- 0x82000500, 0xffffff9d, 0x82000540, 0x00008080,
- 0x48024a00, 0x5c028800, 0x5c026000, 0x1c01f000,
- 0x5c000800, 0x05fdf7fc, 0x480bc857, 0x4c5c0000,
- 0x4c580000, 0x4d200000, 0x4d240000, 0x0555f93d,
- 0x8058b040, 0x0500001c, 0x4008b800, 0x60064000,
- 0x42024800, 0x0010e51f, 0x59240200, 0x8c000500,
- 0x05000011, 0x82000500, 0x00008100, 0x0502000e,
- 0x5924000b, 0x82000500, 0x00001fff, 0x05000005,
- 0x805c0580, 0x05020008, 0x0501f82f, 0x0501f006,
- 0x42001000, 0x0010e512, 0x5808000b, 0x4802480b,
- 0x0501f829, 0x81224000, 0x91264c0d, 0x8058b040,
- 0x05fe07ea, 0x5c024800, 0x5c024000, 0x5c00b000,
- 0x5c00b800, 0x1c01f000, 0x480bc857, 0x4c580000,
- 0x4c600000, 0x4008c000, 0x0555f916, 0x42001800,
- 0x0010e512, 0x580c000b, 0x82000500, 0x00001fff,
- 0x80600580, 0x0502000e, 0x81240583, 0x0500000c,
- 0x580c0a00, 0x90040503, 0x90000583, 0x05020008,
- 0x82040d40, 0x000080e0, 0x48041a00, 0x5924080c,
- 0x497a480c, 0x4804180c, 0x0501f004, 0x900c1c0d,
- 0x8058b040, 0x05fe07ec, 0x5c00c000, 0x5c00b000,
- 0x1c01f000, 0x4923c857, 0x61fa880f, 0x42003000,
- 0x00fffffe, 0x0515fd17, 0x05020011, 0x599c0208,
- 0x48026c12, 0x4d2c0000, 0x417a5800, 0x0545fa54,
- 0x5c025800, 0x0500000a, 0x59a800bb, 0x80000000,
- 0x480350bb, 0x59240200, 0x84000550, 0x84000512,
+ 0x4c580000, 0x0559f9aa, 0x417a4000, 0x42024800,
+ 0x001124b6, 0x59a8124c, 0x8c080508, 0x05000013,
+ 0x821c0d80, 0x00fffffe, 0x0502000a, 0x0559f9c1,
+ 0x05000028, 0x60040900, 0x0501fa0b, 0x05000022,
+ 0x40124800, 0x40164000, 0x80000580, 0x0501f021,
+ 0x8c08050c, 0x0500001f, 0x59240005, 0x801c0580,
+ 0x0500001c, 0x0501f018, 0x90080528, 0x05020005,
+ 0x59240005, 0x82000500, 0x000000ff, 0x0501f009,
+ 0x821c0580, 0x00fffff0, 0x05000012, 0x59240200,
+ 0x90000503, 0x90000583, 0x05020004, 0x59240005,
+ 0x801c0580, 0x0500000b, 0x81224000, 0x91264c0d,
+ 0x8058b040, 0x05000004, 0x90080528, 0x05fe07f1,
+ 0x05fdf7ec, 0x61fe41ff, 0x90000541, 0x481fc856,
+ 0x4923c857, 0x5c00b000, 0x1c01f000, 0x4807c857,
+ 0x4c580000, 0x0559f972, 0x42006800, 0x001124b6,
+ 0x58340005, 0x82000500, 0x000000ff, 0x80040580,
+ 0x05000005, 0x90346c0d, 0x8058b040, 0x05fe07f9,
+ 0x90000541, 0x5c00b000, 0x1c01f000, 0x4923c857,
+ 0x493fc857, 0x4c580000, 0x4d400000, 0x4d440000,
+ 0x4d340000, 0x4c5c0000, 0x0531fabf, 0x4df00000,
+ 0x59a8b0ac, 0x417a8800, 0x0001fb08, 0x0502001f,
+ 0x59340013, 0x80000130, 0x81200580, 0x0502001b,
+ 0x60a68000, 0x833c0500, 0x00004000, 0x052e0fdf,
+ 0x0531f8ea, 0x0531f933, 0x052dfeb3, 0x0551fe65,
+ 0x8d3c051c, 0x05000004, 0x41240800, 0x0519fe38,
+ 0x0501f00e, 0x8d3c0506, 0x05000004, 0x59340200,
+ 0x8c00050e, 0x05020009, 0x4937c857, 0x0519fafc,
+ 0x497a6c0b, 0x4a026c00, 0x00000707, 0x59240400,
+ 0x8c00050a, 0x05160d4a, 0x81468800, 0x83440580,
+ 0x000007f0, 0x05020002, 0x60028810, 0x8058b040,
+ 0x05fe07da, 0x8d3c0502, 0x0500001f, 0x6040b000,
+ 0x5924b809, 0x505c0000, 0x80026d40, 0x05000017,
+ 0x59368c03, 0x833c0500, 0x00004000, 0x052e0fb7,
+ 0x0531f8c2, 0x0531f90b, 0x052dfe8b, 0x0551fe3d,
+ 0x8d3c051c, 0x0502000b, 0x83440580, 0x000007fe,
+ 0x05020006, 0x59340813, 0x82040d00, 0xff000000,
+ 0x48066813, 0x0501f005, 0x0515fd29, 0x0501f003,
+ 0x41240800, 0x0519fe06, 0x805cb800, 0x8058b040,
+ 0x05fe07e5, 0x4d300000, 0x61fe89ff, 0x42026000,
+ 0x00115a14, 0x4a02600a, 0x001141b4, 0x051df91c,
+ 0x4926601d, 0x60a68000, 0x0531f8a4, 0x0551fe21,
+ 0x5c026000, 0x5c03e000, 0x05300a58, 0x5c00b800,
+ 0x5c026800, 0x5c028800, 0x5c028000, 0x5c00b000,
+ 0x1c01f000, 0x4807c857, 0x4c580000, 0x0559f8fc,
+ 0x42001000, 0x001124b6, 0x58080200, 0x80040500,
+ 0x48001200, 0x9008140d, 0x8058b040, 0x05fe07fb,
+ 0x5c00b000, 0x1c01f000, 0x4803c856, 0x4d440000,
+ 0x4d340000, 0x4c580000, 0x4c5c0000, 0x6040b000,
+ 0x61c2880f, 0x5924b809, 0x83440580, 0x000007fe,
+ 0x05000005, 0x505e6800, 0x813669c0, 0x05000002,
+ 0x0515fcf3, 0x81468800, 0x805cb800, 0x8058b040,
+ 0x05fe07f6, 0x5c00b800, 0x5c00b000, 0x5c026800,
+ 0x5c028800, 0x1c01f000, 0x5c000000, 0x4c000000,
+ 0x4803c857, 0x4c5c0000, 0x4c600000, 0x4c580000,
+ 0x4d240000, 0x4d200000, 0x4178c000, 0x59a804d1,
+ 0x4803c857, 0x8c00050c, 0x0502001c, 0x0559f8cc,
+ 0x417a4000, 0x42024800, 0x001124b6, 0x5924b80b,
+ 0x825cbd00, 0x00001fff, 0x805cb9c0, 0x0500000f,
+ 0x405c1000, 0x0501f827, 0x05000017, 0x916c0583,
+ 0x0502000a, 0x59240200, 0x8c000500, 0x05000007,
+ 0x8c000502, 0x05020005, 0x8c00051e, 0x05000003,
+ 0x41780800, 0x0501f87f, 0x81224000, 0x91264c0d,
+ 0x8058b040, 0x05fe07ea, 0x8060c1c0, 0x5c024000,
+ 0x5c024800, 0x5c00b000, 0x5c00c000, 0x5c00b800,
+ 0x1c01f000, 0x405c1000, 0x480bc856, 0x4d3c0000,
+ 0x4d400000, 0x60aa8000, 0x600a7800, 0x41780800,
+ 0x813261c0, 0x05000002, 0x60400800, 0x0501f81a,
+ 0x5c028000, 0x5c027800, 0x8060c000, 0x05fdf7e7,
+ 0x5c000000, 0x4c000000, 0x4803c857, 0x480bc857,
+ 0x41780800, 0x60800000, 0x052dfc6d, 0x4807c857,
+ 0x607c1800, 0x40040000, 0x800c0480, 0x82000c00,
+ 0x0010d8d9, 0x50040800, 0x4807c857, 0x82080400,
+ 0x00114616, 0x50000000, 0x4803c857, 0x80040500,
+ 0x1c01f000, 0x480bc857, 0x4d200000, 0x4d240000,
+ 0x4c580000, 0x4c5c0000, 0x4c600000, 0x4008c000,
+ 0x4004b800, 0x0559f87e, 0x417a4000, 0x42024800,
+ 0x001124b6, 0x5924000b, 0x82000500, 0x00001fff,
+ 0x80600580, 0x05020013, 0x8c5c0506, 0x0502000a,
+ 0x05fdff0f, 0x497a4805, 0x8c5c0508, 0x0500000d,
+ 0x60643000, 0x61fc19ff, 0x601c2000, 0x0511f9e2,
+ 0x0501f008, 0x8c640502, 0x05020005, 0x05fdff04,
+ 0x497a4805, 0x497a480b, 0x0501f002, 0x0521fd19,
+ 0x81224000, 0x91264c0d, 0x8058b040, 0x05fe07e6,
+ 0x5c00c000, 0x5c00b800, 0x5c00b000, 0x5c024800,
+ 0x5c024000, 0x1c01f000, 0x4803c856, 0x4c580000,
+ 0x4d240000, 0x4d200000, 0x59a804d1, 0x8c00050c,
+ 0x05020018, 0x0559f852, 0x8058b040, 0x05000015,
+ 0x60064000, 0x42024800, 0x001124c3, 0x59240200,
+ 0x8c00051e, 0x0500000b, 0x8c00050e, 0x05020009,
+ 0x59a802d1, 0x5924080b, 0x82040d00, 0x00001fff,
+ 0x80040580, 0x05000003, 0x41780800, 0x0501f809,
+ 0x91264c0d, 0x81224000, 0x8058b040, 0x05fe07f0,
+ 0x5c024000, 0x5c024800, 0x5c00b000, 0x1c01f000,
+ 0x4d300000, 0x4d440000, 0x4c040000, 0x61fa880f,
+ 0x42003000, 0x00fffffe, 0x0515fef1, 0x05020018,
+ 0x0539f8d8, 0x05000016, 0x5c000800, 0x48066009,
+ 0x4936600a, 0x4926601d, 0x64066407, 0x600c0800,
+ 0x0515feb8, 0x599c0208, 0x48026c12, 0x600a7000,
+ 0x0009f839, 0x497a4805, 0x59240200, 0x82000500,
+ 0xffffff9d, 0x82000540, 0x00008080, 0x48024a00,
+ 0x5c028800, 0x5c026000, 0x1c01f000, 0x5c000800,
+ 0x05fdf7fc, 0x480bc857, 0x4c5c0000, 0x4c580000,
+ 0x4d200000, 0x4d240000, 0x0559f811, 0x8058b040,
+ 0x0500001c, 0x4008b800, 0x60064000, 0x42024800,
+ 0x001124c3, 0x59240200, 0x8c000500, 0x05000011,
+ 0x82000500, 0x00008100, 0x0502000e, 0x5924000b,
+ 0x82000500, 0x00001fff, 0x05000005, 0x805c0580,
+ 0x05020008, 0x0501f82f, 0x0501f006, 0x42001000,
+ 0x001124b6, 0x5808000b, 0x4802480b, 0x0501f829,
+ 0x81224000, 0x91264c0d, 0x8058b040, 0x05fe07ea,
+ 0x5c024800, 0x5c024000, 0x5c00b000, 0x5c00b800,
+ 0x1c01f000, 0x480bc857, 0x4c580000, 0x4c600000,
+ 0x4008c000, 0x0555ffea, 0x42001800, 0x001124b6,
+ 0x580c000b, 0x82000500, 0x00001fff, 0x80600580,
+ 0x0502000e, 0x81240583, 0x0500000c, 0x580c0a00,
+ 0x90040503, 0x90000583, 0x05020008, 0x82040d40,
+ 0x000080e0, 0x48041a00, 0x5924080c, 0x497a480c,
+ 0x4804180c, 0x0501f004, 0x900c1c0d, 0x8058b040,
+ 0x05fe07ec, 0x5c00c000, 0x5c00b000, 0x1c01f000,
+ 0x4923c857, 0x61fa880f, 0x42003000, 0x00fffffe,
+ 0x0515fe8b, 0x05020012, 0x599c0208, 0x48026c12,
+ 0x4d2c0000, 0x417a5800, 0x0545ff4c, 0x5c025800,
+ 0x0500000b, 0x59a800c0, 0x80000000, 0x480350c0,
+ 0x59240200, 0x82000500, 0xfffffd1d, 0x84000550,
0x48024a00, 0x90000541, 0x1c01f000, 0x80000580,
0x05fdf7fe, 0x4923c857, 0x4d300000, 0x4d440000,
- 0x61fa880f, 0x42003000, 0x00fffffe, 0x0515fcfd,
- 0x0502001b, 0x0535fbea, 0x05000019, 0x497a6009,
+ 0x61fa880f, 0x42003000, 0x00fffffe, 0x0515fe70,
+ 0x0502001b, 0x0539f857, 0x05000019, 0x497a6009,
0x4936600a, 0x4926601d, 0x64066407, 0x600c0800,
- 0x0515fccd, 0x599c0208, 0x48026c12, 0x600a7000,
- 0x0009f800, 0x59240200, 0x4927c857, 0x82000500,
- 0xffffff9d, 0x8400054e, 0x48024a00, 0x59a80249,
- 0x82000500, 0xffffdafc, 0x8400054e, 0x48035249,
+ 0x0515fe38, 0x599c0208, 0x48026c12, 0x600a7000,
+ 0x0009f839, 0x59240200, 0x4927c857, 0x82000500,
+ 0xffffff9d, 0x8400054e, 0x48024a00, 0x59a8024c,
+ 0x82000500, 0xffffdafc, 0x8400054e, 0x4803524c,
0x5c028800, 0x5c026000, 0x1c01f000, 0x80000580,
- 0x05fdf7fc, 0x4c580000, 0x4807c857, 0x0555f8bd,
- 0x41782800, 0x42002000, 0x0010e512, 0x58100200,
+ 0x05fdf7fc, 0x4c580000, 0x4807c857, 0x0555ff90,
+ 0x41782800, 0x42002000, 0x001124b6, 0x58100200,
0x80040500, 0x80040580, 0x05000007, 0x80142800,
0x9010240d, 0x8058b040, 0x05fe07f9, 0x5c00b000,
0x1c01f000, 0x90000541, 0x05fdf7fd, 0x4c580000,
- 0x0555f8ac, 0x42001000, 0x0010e512, 0x58080200,
+ 0x0555ff7f, 0x42001000, 0x001124b6, 0x58080200,
0x8c00051a, 0x05020004, 0x9008140d, 0x8058b040,
0x05fe07fb, 0x5c00b000, 0x1c01f000, 0x00007eef,
0x00007de8, 0x00007ce4, 0x000080e2, 0x00007be1,
@@ -2678,74 +2720,74 @@ static const uint32_t isp_2500_risc_code[] = {
0x00008000, 0x00008000, 0x00008000, 0x00008000,
0x00008000, 0x00008000, 0x00008000, 0x00008000,
0x00008000, 0x00008000, 0x00008000, 0x00008000,
- 0x00008000, 0x00008000, 0x00008000, 0x05f1f81e,
- 0x05ec0c86, 0x492f4017, 0x1c01f000, 0x91a0ac07,
- 0x83a00580, 0x0010dceb, 0x05000008, 0x492fc857,
- 0x812e59c0, 0x05ec0c7d, 0x912ca40a, 0x6034b000,
- 0x0551ff47, 0x0501f00d, 0x6040b000, 0x91e0a420,
+ 0x00008000, 0x00008000, 0x00008000, 0x05edffad,
+ 0x05ec0c19, 0x492f4017, 0x1c01f000, 0x91a0ac07,
+ 0x83a00580, 0x00111c71, 0x05000008, 0x492fc857,
+ 0x812e59c0, 0x05ec0c10, 0x912ca40a, 0x6034b000,
+ 0x0555fe1a, 0x0501f00d, 0x6040b000, 0x91e0a420,
0x50500000, 0x8050a000, 0x50500800, 0x900409c0,
0x80040540, 0x4400a800, 0x8050a000, 0x8054a800,
0x8058b040, 0x05fe07f7, 0x1c01f000, 0x42000000,
- 0x0010e3bc, 0x0551fe6e, 0x59a00207, 0xb0000cbf,
- 0x050210ba, 0x0c01f001, 0x001029f8, 0x00102a2e,
- 0x00102a2e, 0x00102a7a, 0x00102a8f, 0x00102a2e,
- 0x001029f8, 0x00102aa6, 0x00102ab7, 0x00102a2e,
- 0x00102a2e, 0x00102ad0, 0x00102aef, 0x00102b0e,
- 0x00102a2e, 0x00102b2b, 0x00102a2e, 0x00102a2e,
- 0x00102b4b, 0x00102a2e, 0x00102c08, 0x00102a2e,
- 0x00102a2e, 0x00102a2e, 0x00102a2e, 0x00102c2f,
- 0x00102c8a, 0x00102a2e, 0x00102a2e, 0x00102a2e,
- 0x00102cd8, 0x00102cf9, 0x00102f40, 0x00102a2e,
- 0x00102f8d, 0x00102a2e, 0x00102a2e, 0x00102a2e,
- 0x00102a2e, 0x00102f92, 0x00103094, 0x00102a2e,
- 0x0010309b, 0x00102a2e, 0x00102a2e, 0x00102a2e,
- 0x00102a2e, 0x00102a2e, 0x0010309c, 0x0010315f,
- 0x00103360, 0x0010336c, 0x00102a2e, 0x00102a2e,
- 0x00102a2e, 0x00102a2e, 0x0010337f, 0x00102a2e,
- 0x00102a2e, 0x00102a2e, 0x00102a2e, 0x00102a2e,
- 0x00102a2e, 0x00102a2e, 0x001033a8, 0x001033ea,
- 0x00103432, 0x00103449, 0x00103461, 0x001036ae,
- 0x00103a28, 0x00102a2e, 0x00103f5d, 0x00103b98,
- 0x00103bcd, 0x00102a2e, 0x00102a2e, 0x00102a2e,
- 0x00102a2e, 0x00102a2e, 0x00102a2e, 0x00102a2e,
- 0x00102a2e, 0x00103be8, 0x00103c39, 0x00102a2e,
- 0x00102a2e, 0x00103c8d, 0x00102a2e, 0x00103d05,
- 0x00103dba, 0x00103e61, 0x00102a2e, 0x00103e8f,
- 0x00103f19, 0x00102a2e, 0x00103f5d, 0x001042c2,
- 0x00102a2e, 0x001042d1, 0x0010434b, 0x00102a2e,
- 0x00102a2e, 0x00102a2e, 0x00102a2e, 0x001043a8,
- 0x001043c2, 0x001043db, 0x00102a2e, 0x0010444d,
- 0x00102a2e, 0x00102a2e, 0x00104491, 0x00102a2e,
- 0x001044b5, 0x00102a2e, 0x00102a2e, 0x0010450c,
- 0x00104639, 0x00102a2e, 0x00102a2e, 0x00102a2e,
- 0x00102a2e, 0x00102a2e, 0x0010467b, 0x001046fa,
- 0x00102a2e, 0x48efc857, 0x0509fc65, 0x0500003b,
- 0x48efc857, 0x4a034207, 0x00004000, 0x050dfdb6,
- 0x83a00580, 0x0010dceb, 0x0500000b, 0x58ee580a,
- 0x4d2c0000, 0x0501f852, 0x41a25800, 0x05edff8f,
- 0x40ee5800, 0x05edff8d, 0x5c025800, 0x492fc857,
- 0x0001f382, 0x05026007, 0x59a0001e, 0x84000542,
- 0x4803401e, 0x4a01d809, 0x00102a09, 0x1c01f000,
+ 0x0011235d, 0x0555fd41, 0x59a00207, 0xb0000cbf,
+ 0x050210ba, 0x0c01f001, 0x00102aa0, 0x00102ad6,
+ 0x00102ad6, 0x00102b22, 0x00102b37, 0x00102ad6,
+ 0x00102aa0, 0x00102b4e, 0x00102b5f, 0x00102ad6,
+ 0x00102ad6, 0x00102b79, 0x00102b98, 0x00102bb7,
+ 0x00102ad6, 0x00102bd4, 0x00102ad6, 0x00102ad6,
+ 0x00102bf4, 0x00102ad6, 0x00102cb0, 0x00102ad6,
+ 0x00102ad6, 0x00102ad6, 0x00102ad6, 0x00102cd7,
+ 0x00102d32, 0x00102ad6, 0x00102ad6, 0x00102ad6,
+ 0x00102d80, 0x00102da1, 0x00102feb, 0x00102ad6,
+ 0x00103038, 0x00102ad6, 0x00102ad6, 0x00102ad6,
+ 0x00102ad6, 0x0010303d, 0x0010313c, 0x00102ad6,
+ 0x00103143, 0x00102ad6, 0x00102ad6, 0x00102ad6,
+ 0x00102ad6, 0x00102ad6, 0x00103144, 0x00103207,
+ 0x0010348c, 0x00103498, 0x00104cec, 0x00102ad6,
+ 0x00102ad6, 0x00102ad6, 0x001034ab, 0x00102ad6,
+ 0x00102ad6, 0x00102ad6, 0x00102ad6, 0x00102ad6,
+ 0x00102ad6, 0x00102ad6, 0x001034f5, 0x00103537,
+ 0x0010357f, 0x00103594, 0x001035ac, 0x001037f9,
+ 0x00103b9b, 0x00102ad6, 0x001040d3, 0x00103d0b,
+ 0x00103d40, 0x00102ad6, 0x00102ad6, 0x00102ad6,
+ 0x00102ad6, 0x00102ad6, 0x00102ad6, 0x00102ad6,
+ 0x00102ad6, 0x00103d5b, 0x00103dac, 0x00102ad6,
+ 0x00102ad6, 0x00103e00, 0x00102ad6, 0x00103e78,
+ 0x00103f2d, 0x00103fd7, 0x00102ad6, 0x00104005,
+ 0x0010408f, 0x00102ad6, 0x001040d3, 0x00104441,
+ 0x00102ad6, 0x00104450, 0x001044cc, 0x00102ad6,
+ 0x00102ad6, 0x00102ad6, 0x00102ad6, 0x0010452c,
+ 0x00104546, 0x0010455f, 0x00102ad6, 0x001045d1,
+ 0x00102ad6, 0x00102ad6, 0x00104621, 0x00102ad6,
+ 0x00104645, 0x00102ad6, 0x00102ad6, 0x0010469c,
+ 0x001047db, 0x00102ad6, 0x00102ad6, 0x00102ad6,
+ 0x00102ad6, 0x00102ad6, 0x0010481d, 0x0010489c,
+ 0x00102ad6, 0x48efc857, 0x0509fd33, 0x0500003b,
+ 0x48efc857, 0x4a034207, 0x00004000, 0x050dfeb0,
+ 0x83a00580, 0x00111c71, 0x0500000b, 0x58ee580a,
+ 0x4d2c0000, 0x0501f852, 0x41a25800, 0x05edff1e,
+ 0x40ee5800, 0x05edff1c, 0x5c025800, 0x492fc857,
+ 0x0001f3a8, 0x05026007, 0x59a0001e, 0x84000542,
+ 0x4803401e, 0x4a01d809, 0x00102ab1, 0x1c01f000,
0x59a00207, 0x82000d80, 0x00004000, 0x05000005,
0x900001c0, 0x90000551, 0x4803c011, 0x0501f004,
0x900001c0, 0x90000550, 0x4803c011, 0x0501f846,
- 0x59e00017, 0x8c00050a, 0x60000800, 0x00020892,
- 0x8d0c0530, 0x05f60ca4, 0x000209bc, 0x6403c017,
+ 0x59e00017, 0x8c00050a, 0x60000800, 0x0002089a,
+ 0x8d0c0530, 0x05f60c6d, 0x000209c4, 0x6403c017,
0x4203e000, 0x30000001, 0x4203e000, 0x40000000,
- 0x40ee5800, 0x05edff69, 0x59a0001e, 0x84000504,
+ 0x40ee5800, 0x05edfef8, 0x59a0001e, 0x84000504,
0x4803401e, 0x1c01f000, 0x4803c856, 0x4a034207,
0x00004001, 0x05fdf7ca, 0x4803c856, 0x4a034207,
0x00004002, 0x05fdf7c6, 0x4803c856, 0x4a034207,
- 0x00004003, 0x05fdf7c2, 0x05f9ff55, 0x4803c856,
- 0x4a034207, 0x00004005, 0x05fdf7bd, 0x05f9ff50,
+ 0x00004003, 0x05fdf7c2, 0x05f9ff2d, 0x4803c856,
+ 0x4a034207, 0x00004005, 0x05fdf7bd, 0x05f9ff28,
0x4803c856, 0x4a034207, 0x00004006, 0x05fdf7b8,
0x4803c856, 0x4a034207, 0x0000400b, 0x05fdf7b4,
0x4803c856, 0x4a034207, 0x0000400c, 0x05fdf7b0,
0x4803c856, 0x4a034207, 0x0000400c, 0x05fdf7ac,
0x4a034207, 0x00004020, 0x05fdf7a9, 0x4c580000,
0x4c500000, 0x4c540000, 0x58eca80a, 0x8054a9c0,
- 0x05ec0b82, 0x91a0a407, 0x9054ac0a, 0x6034b000,
- 0x0551fe4b, 0x5c00a800, 0x5c00a000, 0x5c00b000,
+ 0x05ec0b15, 0x91a0a407, 0x9054ac0a, 0x6034b000,
+ 0x0555fd1e, 0x5c00a800, 0x5c00a000, 0x5c00b000,
0x1c01f000, 0x4c580000, 0x4c500000, 0x4c540000,
0x59a00007, 0x4803c857, 0x59a00008, 0x4803c857,
0x59a00009, 0x4803c857, 0x91e0ac20, 0x91a0a407,
@@ -2755,11 +2797,11 @@ static const uint32_t isp_2500_risc_code[] = {
0x5c00b000, 0x1c01f000, 0x59a00407, 0x800000c2,
0x59a00a08, 0x900409c0, 0x80040540, 0x84000540,
0x59a00c08, 0x8c040500, 0x0500000b, 0x4c000000,
- 0x0551fe7b, 0x5c000000, 0x05000004, 0x48030004,
+ 0x0555fd4e, 0x5c000000, 0x05000004, 0x48030004,
0x64030000, 0x05fdf76f, 0x64030000, 0x64134407,
0x05fc07af, 0x4803880e, 0x05fdf76a, 0x59a00407,
0x800000c2, 0x59a00c08, 0x8c040500, 0x0500000d,
- 0x4c000000, 0x0551fe6a, 0x5c000000, 0x05000006,
+ 0x4c000000, 0x0555fd3d, 0x5c000000, 0x05000006,
0x48030004, 0x59800805, 0x48074407, 0x64030000,
0x05fdf75c, 0x64030000, 0x64134407, 0x05fc079c,
0x4803880e, 0x59c4080f, 0x48074407, 0x900409c0,
@@ -2767,103 +2809,103 @@ static const uint32_t isp_2500_risc_code[] = {
0x900c19c0, 0x800c1d40, 0x580c0803, 0x80000580,
0x500c1000, 0x80080400, 0x800c1800, 0x80040840,
0x05fe07fc, 0x48034407, 0x900001c0, 0x48034208,
- 0x800001c0, 0x05fc0743, 0x05fdf780, 0x641f4407,
+ 0x800001c0, 0x05fc0743, 0x05fdf780, 0x64234407,
0x640f4208, 0x64034408, 0x59a8000a, 0x82000c80,
0x00140000, 0x05021004, 0x42000000, 0x0013ffff,
- 0x0501f006, 0x59a808ca, 0x8c040500, 0x05000003,
+ 0x0501f006, 0x59a808cf, 0x8c040500, 0x05000003,
0x82000400, 0x00006000, 0x48034209, 0x900001c0,
- 0x48034409, 0x61540121, 0x4803420a, 0x900001c0,
- 0x4803440e, 0x60000000, 0x4803400f, 0x05fdf729,
+ 0x48034409, 0x42000000, 0x001090d5, 0x4803420a,
+ 0x900001c0, 0x4803440e, 0x60000000, 0x4803400f,
+ 0x05fdf728, 0x59a00408, 0x59a01208, 0x900811c0,
+ 0x80081540, 0x59a0040a, 0x59a01a0a, 0x900c19c0,
+ 0x800c1d40, 0x59a00a09, 0x59a00409, 0x900409c0,
+ 0x80040d40, 0x59a0020b, 0x59a02407, 0x900001c0,
+ 0x80100540, 0x82002480, 0x00100000, 0x05fc175d,
+ 0x59a8280a, 0x80142480, 0x050e15d3, 0x42002800,
+ 0x7fefffff, 0x80142480, 0x05fe1756, 0x42002800,
+ 0x7ffd0000, 0x80142480, 0x05fc1752, 0x050df5ca,
0x59a00408, 0x59a01208, 0x900811c0, 0x80081540,
0x59a0040a, 0x59a01a0a, 0x900c19c0, 0x800c1d40,
0x59a00a09, 0x59a00409, 0x900409c0, 0x80040d40,
0x59a0020b, 0x59a02407, 0x900001c0, 0x80100540,
- 0x82002480, 0x00100000, 0x05fc175e, 0x59a8280a,
- 0x80142480, 0x050e14da, 0x42002800, 0x7fefffff,
- 0x80142480, 0x05fe1757, 0x42002800, 0x7ffd0000,
- 0x80142480, 0x05fc1753, 0x050df4d1, 0x59a00408,
- 0x59a01208, 0x900811c0, 0x80081540, 0x59a0040a,
- 0x59a01a0a, 0x900c19c0, 0x800c1d40, 0x59a00a09,
- 0x59a00409, 0x900409c0, 0x80040d40, 0x59a0020b,
- 0x59a02407, 0x900001c0, 0x80100540, 0x82002480,
- 0x00100000, 0x05fc173f, 0x59a8280a, 0x80142480,
- 0x050e14c4, 0x42002800, 0x7fefffff, 0x80142480,
- 0x05fe1738, 0x42002800, 0x7ffd0000, 0x80142480,
- 0x05fc1734, 0x050df4bb, 0x59a02408, 0x59a00208,
- 0x901021c0, 0x80102540, 0x59a01a0b, 0x59a00407,
- 0x900c19c0, 0x800c1d40, 0x41781000, 0x820c0580,
- 0x00007c00, 0x0500000a, 0x820c0480, 0x00007a00,
- 0x05001007, 0x820c0480, 0x00007cff, 0x05021004,
- 0x0551fddf, 0x05000007, 0x80081000, 0x44101800,
- 0x800811c0, 0x05fc06d3, 0x64030000, 0x05fdf6d1,
- 0x64030000, 0x64134407, 0x05fdf711, 0x59a01a0b,
+ 0x82002480, 0x00100000, 0x05fc173e, 0x59a8280a,
+ 0x80142480, 0x050e15bd, 0x42002800, 0x7fefffff,
+ 0x80142480, 0x05fe1737, 0x42002800, 0x7ffd0000,
+ 0x80142480, 0x05fc1733, 0x050df5b4, 0x59a02408,
+ 0x59a00208, 0x901021c0, 0x80102540, 0x59a01a0b,
0x59a00407, 0x900c19c0, 0x800c1d40, 0x41781000,
0x820c0580, 0x00007c00, 0x0500000a, 0x820c0480,
0x00007a00, 0x05001007, 0x820c0480, 0x00007cff,
- 0x05021004, 0x0551fdc6, 0x0500000e, 0x80081000,
- 0x500c0000, 0x82000d00, 0x0000ffff, 0x48074208,
- 0x82000d00, 0xffff0000, 0x900409c0, 0x48074408,
- 0x800811c0, 0x05fc06b3, 0x64030000, 0x05fdf6b1,
- 0x64030000, 0x64134407, 0x05fdf6f1, 0x4d2c0000,
- 0x4d340000, 0x4d300000, 0x4d440000, 0x050dfd36,
- 0x05020006, 0x4923c857, 0x4927c857, 0x59a28c07,
- 0x0515ff25, 0x05000006, 0x5c028800, 0x5c026000,
- 0x5c026800, 0x5c025800, 0x05fdf6e6, 0x4937c857,
- 0x59a04408, 0x59a00208, 0x900001c0, 0x80204540,
- 0x4823c857, 0x59a04a0b, 0x0501f877, 0x05000008,
- 0x64074209, 0x4a034407, 0x0000ffff, 0x4a034208,
- 0x0000ffff, 0x497b4408, 0x0501f03d, 0x497b4407,
- 0x0501f87e, 0x0500003f, 0x59300402, 0x48034407,
- 0x59300202, 0x48034208, 0x59300006, 0x48034408,
- 0x59a0020c, 0x8c000500, 0x05000030, 0x4933c857,
- 0x0515feb9, 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, 0x050dfc0d, 0x05020003,
- 0x640b4407, 0x0501f017, 0x492fc857, 0x4a025c08,
- 0x00008000, 0x497a5a08, 0x497a5809, 0x0545fb53,
- 0x05020003, 0x640f4407, 0x0501f00e, 0x4a01d809,
- 0x00102bb1, 0x5c028800, 0x5c026000, 0x5c026800,
- 0x5c025800, 0x1c01f000, 0x640b4209, 0x5c028800,
- 0x5c026000, 0x5c026800, 0x5c025800, 0x05fdf64d,
+ 0x05021004, 0x0555fcb1, 0x05000007, 0x80081000,
+ 0x44101800, 0x800811c0, 0x05fc06d2, 0x64030000,
+ 0x05fdf6d0, 0x64030000, 0x64134407, 0x05fdf710,
+ 0x59a01a0b, 0x59a00407, 0x900c19c0, 0x800c1d40,
+ 0x41781000, 0x820c0580, 0x00007c00, 0x0500000a,
+ 0x820c0480, 0x00007a00, 0x05001007, 0x820c0480,
+ 0x00007cff, 0x05021004, 0x0555fc98, 0x0500000e,
+ 0x80081000, 0x500c0000, 0x82000d00, 0x0000ffff,
+ 0x48074208, 0x82000d00, 0xffff0000, 0x900409c0,
+ 0x48074408, 0x800811c0, 0x05fc06b2, 0x64030000,
+ 0x05fdf6b0, 0x64030000, 0x64134407, 0x05fdf6f0,
+ 0x4d2c0000, 0x4d340000, 0x4d300000, 0x4d440000,
+ 0x050dfe2a, 0x05020006, 0x4923c857, 0x4927c857,
+ 0x59a28c07, 0x0519f945, 0x05000006, 0x5c028800,
+ 0x5c026000, 0x5c026800, 0x5c025800, 0x05fdf6e5,
+ 0x4937c857, 0x59a04408, 0x59a00208, 0x900001c0,
+ 0x80204540, 0x4823c857, 0x59a04a0b, 0x0501f877,
+ 0x05000008, 0x64074209, 0x4a034407, 0x0000ffff,
+ 0x4a034208, 0x0000ffff, 0x497b4408, 0x0501f03d,
+ 0x497b4407, 0x0501f87e, 0x0500003f, 0x59300402,
+ 0x48034407, 0x59300202, 0x48034208, 0x59300006,
+ 0x48034408, 0x59a0020c, 0x8c000500, 0x05000030,
+ 0x4933c857, 0x0519f8d9, 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, 0x050dfd06,
+ 0x05020003, 0x640b4407, 0x0501f017, 0x492fc857,
+ 0x4a025c08, 0x00008000, 0x497a5a08, 0x497a5809,
+ 0x0549f85b, 0x05020003, 0x640f4407, 0x0501f00e,
+ 0x4a01d809, 0x00102c5a, 0x5c028800, 0x5c026000,
+ 0x5c026800, 0x5c025800, 0x1c01f000, 0x640b4209,
0x5c028800, 0x5c026000, 0x5c026800, 0x5c025800,
- 0x05fdf68b, 0x492fc857, 0x4933c857, 0x497a602a,
- 0x592c0009, 0x82000580, 0x01000000, 0x05020003,
- 0x64134407, 0x05fdf682, 0x4d2c0000, 0x912e5c0a,
- 0x592c0000, 0x82000580, 0x02000000, 0x05020011,
- 0x4803c856, 0x64134209, 0x592c0804, 0x82040500,
- 0x0000ffff, 0x48034409, 0x80040920, 0x4807420a,
- 0x592c0805, 0x82040500, 0x0000ffff, 0x4803440a,
- 0x80040920, 0x4807420b, 0x5c025800, 0x05fdf629,
- 0x4803c856, 0x64174209, 0x592c0801, 0x82040500,
- 0x0000ffff, 0x48034409, 0x80040920, 0x4807420a,
- 0x05fdf7f6, 0x4937c857, 0x4823c857, 0x4827c857,
- 0x5934000f, 0x80001d40, 0x05000009, 0x580c0009,
- 0x80200580, 0x05020007, 0x580c0003, 0x58000211,
- 0x80240580, 0x05020003, 0x81780000, 0x1c01f000,
- 0x580c0000, 0x05fdf7f4, 0x4823c857, 0x4d2c0000,
- 0x42026000, 0x00111b00, 0x59300407, 0x90000d83,
+ 0x05fdf64c, 0x5c028800, 0x5c026000, 0x5c026800,
+ 0x5c025800, 0x05fdf68a, 0x492fc857, 0x4933c857,
+ 0x497a602a, 0x592c0009, 0x82000580, 0x01000000,
+ 0x05020003, 0x64134407, 0x05fdf681, 0x4d2c0000,
+ 0x912e5c0a, 0x592c0000, 0x82000580, 0x02000000,
+ 0x05020011, 0x4803c856, 0x64134209, 0x592c0804,
+ 0x82040500, 0x0000ffff, 0x48034409, 0x80040920,
+ 0x4807420a, 0x592c0805, 0x82040500, 0x0000ffff,
+ 0x4803440a, 0x80040920, 0x4807420b, 0x5c025800,
+ 0x05fdf628, 0x4803c856, 0x64174209, 0x592c0801,
+ 0x82040500, 0x0000ffff, 0x48034409, 0x80040920,
+ 0x4807420a, 0x05fdf7f6, 0x4937c857, 0x4823c857,
+ 0x4827c857, 0x5934000f, 0x80001d40, 0x05000009,
+ 0x580c0009, 0x80200580, 0x05020007, 0x580c0003,
+ 0x58000211, 0x80240580, 0x05020003, 0x81780000,
+ 0x1c01f000, 0x580c0000, 0x05fdf7f4, 0x4823c857,
+ 0x4d2c0000, 0x40be6000, 0x59300407, 0x90000d83,
0x05000003, 0x90000d86, 0x0502000b, 0x59325809,
0x812e59c0, 0x05000008, 0x592c0003, 0x58000211,
0x80240580, 0x05020004, 0x592c0009, 0x80200580,
0x05000009, 0x91326430, 0x59a8000b, 0x81300480,
0x05fc17ee, 0x417a6000, 0x80000580, 0x5c025800,
0x1c01f000, 0x90000541, 0x5c025800, 0x1c01f000,
- 0x83a00580, 0x0010dceb, 0x050e076a, 0x64030000,
+ 0x83a00580, 0x00111c71, 0x051200b6, 0x64030000,
0x4a034207, 0x00004000, 0x4a03c011, 0x40000010,
0x05fdfe51, 0x59e00017, 0x8c00050a, 0x60000800,
- 0x00020892, 0x8d0c0530, 0x05f60aaf, 0x000209bc,
+ 0x0002089a, 0x8d0c0530, 0x05f60a78, 0x000209c4,
0x6403c017, 0x4203e000, 0x30000001, 0x4203e000,
0x40000000, 0x4203e000, 0xb0100000, 0x41fc0000,
- 0x8c00050a, 0x05fc07fc, 0x0551fcdd, 0x05fc07ff,
+ 0x8c00050a, 0x05fc07fc, 0x0555fbb0, 0x05fc07ff,
0x59800802, 0x8c040520, 0x05020003, 0x64030000,
0x05fdf7f5, 0x60101020, 0x50080000, 0x8400054c,
0x44001000, 0x64030000, 0x0501f000, 0x59a00c07,
0x800409c0, 0x05000005, 0x916c0580, 0x05000003,
- 0x646b4407, 0x05fdf606, 0x42007000, 0x0010e060,
+ 0x646b4407, 0x05fdf606, 0x42007000, 0x00111ffa,
0x58381c01, 0x58382201, 0x58383202, 0x8c040500,
0x0500000b, 0x59a01208, 0x82080500, 0x0000f003,
0x05fe0600, 0x82080480, 0x00000841, 0x05fe15fd,
@@ -2878,15 +2920,15 @@ static const uint32_t isp_2500_risc_code[] = {
0xd0000000, 0x40040000, 0x800c0540, 0x48007401,
0x8c040500, 0x05000002, 0x48087201, 0x8c04050a,
0x0500001a, 0x481c7202, 0x4c0c0000, 0x4c100000,
- 0x4c180000, 0x052df8a2, 0x4df00000, 0x58383a02,
+ 0x4c180000, 0x052dfcb8, 0x4df00000, 0x58383a02,
0x481fc857, 0x41780000, 0x801c3840, 0x800010c8,
0x82081400, 0x0000b037, 0x64001002, 0x801c1c80,
0x05021002, 0x64081002, 0x80000000, 0x90001c85,
- 0x05fc17f7, 0x5c03e000, 0x052c0882, 0x5c003000,
+ 0x05fc17f7, 0x5c03e000, 0x052c0c98, 0x5c003000,
0x5c002000, 0x5c001800, 0x480f4407, 0x48134208,
0x481b4408, 0x05fdf56f, 0x4d440000, 0x4d340000,
- 0x59a28c07, 0x050dfbf8, 0x05020009, 0x0515fdea,
- 0x05020007, 0x0515fda0, 0x05000008, 0x64274407,
+ 0x59a28c07, 0x050dfced, 0x05020009, 0x0519f80b,
+ 0x05020007, 0x0515ffc1, 0x05000008, 0x64274407,
0x5c026800, 0x5c028800, 0x05fdf5a5, 0x5c026800,
0x5c028800, 0x05fdf5a7, 0x59a01208, 0x59a01c08,
0x5934400a, 0x82203d00, 0x0002e000, 0x801c391a,
@@ -2896,7 +2938,7 @@ static const uint32_t isp_2500_risc_code[] = {
0x05000005, 0x90040585, 0x05000003, 0x4937c857,
0x60100800, 0x82204500, 0xfffd1fff, 0x800400da,
0x80200540, 0x4802680a, 0x4c080000, 0x4c1c0000,
- 0x052df85b, 0x0519f815, 0x052df84a, 0x5c003800,
+ 0x052dfc71, 0x0519fa42, 0x052dfc60, 0x5c003800,
0x5c001000, 0x481f4408, 0x5934400a, 0x82203d00,
0x0f000000, 0x801c3930, 0x8c080504, 0x05020011,
0x8c080502, 0x0500000b, 0x4823c857, 0x82204500,
@@ -2906,234 +2948,234 @@ static const uint32_t isp_2500_risc_code[] = {
0x82204500, 0xf07fffff, 0x4822680a, 0x05fdf7f9,
0x59a02c07, 0x8c140502, 0x05020005, 0x59a00a09,
0x82040480, 0x00000100, 0x05021019, 0x82041400,
- 0x0010de60, 0x50080000, 0x80025d40, 0x05000014,
+ 0x00111dfa, 0x50080000, 0x80025d40, 0x05000014,
0x4178b000, 0x592c0005, 0x80000d40, 0x05000004,
0x8058b000, 0x58040000, 0x05fdf7fc, 0x485b4209,
0x592c1408, 0x592c0c09, 0x58080100, 0x80040c80,
0x05021003, 0x592c0208, 0x80040c00, 0x48074407,
0x497b4408, 0x497b4208, 0x05fdf502, 0x64774407,
- 0x05fdf543, 0x916c2d80, 0x050c0678, 0x83a00580,
- 0x0010dceb, 0x050e0677, 0x59a02c07, 0x4817c857,
+ 0x05fdf543, 0x916c2d80, 0x050c07c4, 0x83a00580,
+ 0x00111c71, 0x050e07c3, 0x59a02c07, 0x4817c857,
0x8c140516, 0x0502003a, 0x82140500, 0x00000408,
0x050200a3, 0x8c140500, 0x050200af, 0x8d0c0516,
0x05000003, 0x64874407, 0x05fdf531, 0x59a00a09,
- 0x82040480, 0x00000100, 0x050211a2, 0x8c140502,
- 0x05020004, 0x82041400, 0x0010dd60, 0x0501f007,
+ 0x82040480, 0x00000100, 0x050211a4, 0x8c140502,
+ 0x05020004, 0x82041400, 0x00111cfa, 0x0501f007,
0x59a0020e, 0x82000480, 0x00000100, 0x05fe1529,
- 0x82041400, 0x0010de60, 0x50080000, 0x80000540,
- 0x05020192, 0x4c040000, 0x4c080000, 0x05edfc52,
- 0x5c001000, 0x5c000800, 0x0500018a, 0x05011000,
+ 0x82041400, 0x00111dfa, 0x50080000, 0x80000540,
+ 0x05020194, 0x4c040000, 0x4c080000, 0x05edfbe1,
+ 0x5c001000, 0x5c000800, 0x0500018c, 0x05011000,
0x492fc840, 0x6463c842, 0x05011000, 0x8c140502,
- 0x05020007, 0x4c080000, 0x0501f9a4, 0x5c001000,
+ 0x05020007, 0x4c080000, 0x0501f9a7, 0x5c001000,
0x05fe050f, 0x452c1000, 0x05fdf4ca, 0x4c080000,
- 0x0501f9d7, 0x5c001000, 0x05fe0509, 0x452c1000,
+ 0x0501f9da, 0x5c001000, 0x05fe0509, 0x452c1000,
0x05fdf4c4, 0x592c000e, 0x48034407, 0x80000120,
0x48034208, 0x497a580e, 0x05fdf4be, 0x59a00a09,
- 0x82040480, 0x00000100, 0x05021172, 0x8d0c0516,
+ 0x82040480, 0x00000100, 0x05021174, 0x8d0c0516,
0x05000003, 0x64874407, 0x05fdf4f9, 0x8c140502,
- 0x0502002e, 0x82041400, 0x0010dd60, 0x50080000,
- 0x80025d40, 0x05000167, 0x592c1a00, 0x580c0000,
- 0x592c1a0c, 0x800c0580, 0x05020160, 0x91701d82,
- 0x0500015e, 0x412c1800, 0x59980002, 0x90000482,
+ 0x0502002e, 0x82041400, 0x00111cfa, 0x50080000,
+ 0x80025d40, 0x05000169, 0x592c1a00, 0x580c0000,
+ 0x592c1a0c, 0x800c0580, 0x05020162, 0x91701d82,
+ 0x05000160, 0x412c1800, 0x59980002, 0x90000482,
0x05021004, 0x4a03b004, 0x10000000, 0x0501f005,
- 0x4c0c0000, 0x80f01d83, 0x05180f10, 0x5c001800,
+ 0x4c0c0000, 0x80f01d83, 0x051c0958, 0x5c001800,
0x59a01208, 0x800810e0, 0x59a00408, 0x80080540,
0x48001808, 0x59a0120a, 0x800810e0, 0x59a0040a,
0x80080540, 0x48001809, 0x59a00a09, 0x59a0140b,
0x82040400, 0x00005c00, 0x48080100, 0x480a5a0c,
0x59980002, 0x90000482, 0x05fe148a, 0x4a03b004,
- 0x10000001, 0x05fdf487, 0x82041400, 0x0010de60,
- 0x50080000, 0x80025d40, 0x0500013a, 0x592c0005,
- 0x80000540, 0x05020135, 0x592c1c08, 0x592c0409,
- 0x580c0900, 0x80040580, 0x05020130, 0x412c1800,
+ 0x10000001, 0x05fdf487, 0x82041400, 0x00111dfa,
+ 0x50080000, 0x80025d40, 0x0500013c, 0x592c0005,
+ 0x80000540, 0x05020137, 0x592c1c08, 0x592c0409,
+ 0x580c0900, 0x80040580, 0x05020132, 0x412c1800,
0x412c0000, 0x81740580, 0x0502000f, 0x59d80106,
- 0x80000540, 0x05020129, 0x8d0c0524, 0x05020127,
+ 0x80000540, 0x0502012b, 0x8d0c0524, 0x05020129,
0x59980008, 0x90000482, 0x05021004, 0x4a03b104,
- 0x10000000, 0x0501f004, 0x4c0c0000, 0x0519f8bb,
+ 0x10000000, 0x0501f004, 0x4c0c0000, 0x0519faf7,
0x5c001800, 0x59a01208, 0x800810e0, 0x59a00408,
0x80080540, 0x48001806, 0x59a0120a, 0x800810e0,
0x59a0040a, 0x80080540, 0x48001807, 0x59a00a09,
0x59a0120b, 0x82040400, 0x00005e00, 0x48080000,
0x48081c09, 0x59980008, 0x90000482, 0x05fe1455,
0x4a03b104, 0x10000001, 0x05fdf452, 0x59a00a09,
- 0x82040480, 0x00000100, 0x05021106, 0x82041400,
- 0x0010dd60, 0x50080000, 0x80025d40, 0x05000101,
- 0x8c140514, 0x05fe0784, 0x41780000, 0x0501f8ff,
+ 0x82040480, 0x00000100, 0x05021108, 0x82041400,
+ 0x00111cfa, 0x50080000, 0x80025d40, 0x05000103,
+ 0x8c140514, 0x05fe0784, 0x41780000, 0x0501f901,
0x05fdf444, 0x8c140512, 0x05000003, 0x8d0c0520,
- 0x050200f8, 0x59a00a09, 0x82040480, 0x00000100,
- 0x050210f4, 0x800409c0, 0x050000f2, 0x8c140502,
- 0x05020087, 0x82041400, 0x0010dd60, 0x50080000,
- 0x80025d40, 0x050000eb, 0x592c1a00, 0x580c0000,
- 0x592c1a0c, 0x800c0580, 0x05000003, 0x0501f96c,
- 0x050200e2, 0x592c1a00, 0x580c0000, 0x48025a0c,
- 0x4d340000, 0x4d440000, 0x4c080000, 0x61c2880f,
- 0x59a04a09, 0x41440000, 0x81ac0400, 0x50026800,
- 0x813669c0, 0x05000020, 0x5934000f, 0x40002000,
- 0x80001d40, 0x0500001c, 0x580c0003, 0x58000211,
- 0x80240580, 0x05000004, 0x580c0000, 0x400c2000,
- 0x05fdf7f8, 0x4937c857, 0x4947c857, 0x480fc857,
- 0x0501f94f, 0x0502001c, 0x4d2c0000, 0x400e5800,
- 0x592c0800, 0x05edfbae, 0x5c025800, 0x40040000,
- 0x5934100f, 0x800c1582, 0x0500000b, 0x4807c857,
- 0x4813c857, 0x48042000, 0x800409c0, 0x05fe07e5,
- 0x48126810, 0x814689c0, 0x0500000f, 0x81468840,
- 0x05fdf7d9, 0x800409c0, 0x05020004, 0x497a680f,
- 0x497a6810, 0x05fdf7f8, 0x4806680f, 0x40042000,
- 0x05fdf7d8, 0x5c001000, 0x5c028800, 0x5c026800,
- 0x0501f0a6, 0x5c001000, 0x5c028800, 0x5c026800,
- 0x4d300000, 0x4d2c0000, 0x42026000, 0x00111b00,
- 0x59325809, 0x812e59c0, 0x05000018, 0x592c0003,
- 0x58000211, 0x80240580, 0x05020014, 0x0501f920,
- 0x0502000f, 0x492fc857, 0x4d2c0000, 0x4c140000,
- 0x4c080000, 0x053df9f8, 0x5c001000, 0x5c002800,
- 0x5c025800, 0x05020009, 0x4c080000, 0x0005ffdc,
- 0x05edfb77, 0x5c001000, 0x0501f004, 0x5c025800,
- 0x5c026000, 0x0501f085, 0x91326430, 0x59a8000b,
- 0x81300480, 0x05fc17e3, 0x5c025800, 0x5c026000,
- 0x59980802, 0x80040840, 0x48073002, 0x45781000,
- 0x59a00a09, 0x4807c857, 0x40f01000, 0x58080801,
- 0x412c0000, 0x80040580, 0x05000004, 0x40041000,
- 0x58040801, 0x05fdf7fb, 0x58040801, 0x48041001,
- 0x4d2c0000, 0x412c0000, 0x80f00580, 0x05180e27,
- 0x5c025800, 0x05edfb4d, 0x05fdf3b2, 0x82041400,
- 0x0010de60, 0x50080000, 0x80025d40, 0x05000065,
- 0x592c0005, 0x80000540, 0x05000012, 0x0501f8e8,
- 0x0502005e, 0x592c0805, 0x4d2c0000, 0x40065800,
- 0x58040000, 0x4c080000, 0x4c000000, 0x05edfb44,
- 0x5c000000, 0x5c001000, 0x80000d40, 0x05fe07f8,
- 0x5c025800, 0x48025804, 0x48025805, 0x850e1d26,
- 0x592c1c08, 0x592c0409, 0x580c0900, 0x80040580,
- 0x05000003, 0x0501f8d2, 0x05020048, 0x412c0000,
- 0x81740580, 0x05020019, 0x59d80106, 0x80000540,
- 0x05000011, 0x0501f8ca, 0x05020040, 0x42000800,
- 0x000fffff, 0x59d80106, 0x80000540, 0x0500000a,
- 0x0502e005, 0x59da5908, 0x4c080000, 0x05edfb1b,
- 0x5c001000, 0x80040840, 0x05fe07f7, 0x4803c857,
- 0x0501f032, 0x8d0c0524, 0x05000004, 0x0501f8b8,
- 0x0502002e, 0x850e1d24, 0x60000802, 0x80040840,
- 0x0500100a, 0x82040400, 0x0010dd60, 0x50000000,
- 0x80000540, 0x05fc07fa, 0x58000012, 0x812c0580,
- 0x05000010, 0x05fdf7f6, 0x59980808, 0x80040840,
- 0x48073008, 0x45781000, 0x59a00a09, 0x4807c857,
- 0x41741000, 0x58080800, 0x412c0000, 0x80040580,
- 0x05000006, 0x40041000, 0x58040800, 0x05fdf7fb,
- 0x492fc857, 0x0501f011, 0x58040800, 0x48041000,
- 0x4d2c0000, 0x412c0000, 0x81740580, 0x05140fa7,
- 0x5c025800, 0x592c0209, 0xb000053f, 0x82000400,
- 0x0010df60, 0x45780000, 0x05edfae8, 0x05fdf34d,
- 0x640b4407, 0x05fdf38e, 0x647b4407, 0x05fdf38c,
- 0x64774407, 0x05fdf38a, 0x59a00c07, 0x8c040510,
- 0x0500000a, 0x64065a0a, 0x59a0020d, 0x48025c11,
- 0x0001ff16, 0x42000000, 0x00102ecb, 0x50000000,
- 0x48025a10, 0x1c01f000, 0x59a00a0d, 0x90040486,
- 0x05001002, 0x60040800, 0x82040c00, 0x00102ec8,
- 0x50040000, 0x48025a10, 0x64025a0a, 0x1c01f000,
- 0x00000002, 0x00000002, 0x00000005, 0x0000000a,
- 0x00000014, 0x000000ff, 0x8c14050e, 0x05020008,
- 0x59a0020c, 0x82000400, 0x0010de60, 0x50000000,
- 0x80000540, 0x0500002d, 0x48025812, 0x48065a11,
- 0x59a01208, 0x800810e0, 0x59a00408, 0x80080540,
- 0x48025808, 0x59a0120a, 0x800810e0, 0x59a0040a,
- 0x80080540, 0x48025809, 0x59a00409, 0x48025c0a,
- 0x64065c10, 0x59980002, 0x80000000, 0x48033002,
- 0x58f01001, 0x492de001, 0x480a5801, 0x82040400,
- 0x00005c00, 0x59a0140b, 0x48080100, 0x480a5a0c,
- 0x48025a00, 0x05fdffc1, 0x59a0140d, 0x8c140508,
- 0x05000002, 0x8408157e, 0x8c14050a, 0x05000002,
- 0x8408157c, 0x8c140504, 0x05000003, 0x82081540,
- 0x20000000, 0x480a580b, 0x59a0040c, 0x48025c0c,
- 0x80000580, 0x1c01f000, 0x45781000, 0x05edfa8f,
- 0x647f4407, 0x90000541, 0x1c01f000, 0x4a025803,
- 0xffff0000, 0x48065a02, 0x59a0020e, 0x48025a09,
- 0x59a01208, 0x800810e0, 0x59a00408, 0x80080540,
- 0x48025806, 0x59a0120a, 0x800810e0, 0x59a0040a,
- 0x80080540, 0x48025807, 0x59a00409, 0x48025a08,
- 0x59980008, 0x80000000, 0x48033008, 0x59741000,
- 0x492ee800, 0x480a5800, 0x82040400, 0x00005e00,
- 0x59a0120b, 0x48080000, 0x480a5c09, 0x48025c08,
- 0x59a00c07, 0x59a0140d, 0x8c040508, 0x05000002,
- 0x8408157e, 0x8c04050a, 0x05000002, 0x8408157c,
- 0x8c040504, 0x05000003, 0x82081540, 0x20000000,
- 0x480a5801, 0x59a0020e, 0x82000400, 0x0010df60,
- 0x44080000, 0x80000580, 0x1c01f000, 0x8c140512,
- 0x05000005, 0x8d0c0520, 0x05020003, 0x80000580,
- 0x0501f002, 0x90000541, 0x4803c857, 0x1c01f000,
- 0x8d0c050e, 0x05000003, 0x64074407, 0x05fdf2f8,
- 0x916c0583, 0x05020014, 0x050df93f, 0x05fe02f9,
- 0x59240200, 0x8c000502, 0x05000041, 0x59240005,
- 0x497b4407, 0x0519f961, 0x0500000e, 0x82000d00,
- 0x00ffff00, 0x0502000b, 0x82000c00, 0x00102853,
- 0x50040800, 0x80040910, 0x82041580, 0x00000080,
- 0x05020003, 0x641f4407, 0x05fdf2e1, 0x48074407,
- 0x82000d00, 0x0000ffff, 0x48074208, 0x80000120,
- 0x48034408, 0x59a80249, 0x82001500, 0x00003500,
- 0x480b440a, 0x5924100b, 0x82081500, 0x00001fff,
- 0x480b420b, 0x480b420b, 0x8c000502, 0x05000016,
- 0x8c000506, 0x05000006, 0x90000d0a, 0x90040d8a,
- 0x05020003, 0x6407420a, 0x0501f018, 0x8c00050a,
- 0x05000006, 0x90000d22, 0x90040da2, 0x05020003,
- 0x640f420a, 0x0501f011, 0x8c000508, 0x05000006,
- 0x90000d12, 0x90040d92, 0x05020003, 0x640b420a,
- 0x0501f00a, 0x0519f92d, 0x05020003, 0x6413420a,
- 0x05fdf274, 0x8c000506, 0x05000003, 0x64174407,
- 0x05fdf2b3, 0x6403420a, 0x05fdf26e, 0x646f4407,
- 0x05fdf2af, 0x59a8005c, 0x48034408, 0x59a8005d,
- 0x4803420a, 0x05fdf267, 0x42007800, 0x0010e4e5,
- 0x59a00407, 0x4803c857, 0x90000c8c, 0x05fe12a9,
- 0x0c01f001, 0x0010300c, 0x00102fac, 0x00102fb9,
- 0x00102fc9, 0x00102fe8, 0x0010300d, 0x00102fa5,
- 0x00102fa5, 0x00103019, 0x00103054, 0x00102fa6,
- 0x00103067, 0x05fdf29b, 0x59a00208, 0x48007c01,
- 0x59a00408, 0x48007a01, 0x05e9feec, 0x0501f061,
- 0x916c0580, 0x05fc028e, 0x59a00a08, 0x59a00408,
- 0x900001c0, 0x80040d40, 0x4807c857, 0x59a00a09,
- 0x59a00409, 0x900001c0, 0x80040d40, 0x4807c857,
- 0x0501f054, 0x916c0580, 0x05fc0281, 0x59a00408,
- 0x59a01208, 0x900001c0, 0x80081540, 0x59a00409,
- 0x59a01a09, 0x900001c0, 0x800c1d40, 0x42000000,
- 0x00110772, 0x480fc857, 0x480bc857, 0x60000820,
- 0x050df000, 0x59a00a08, 0x59a00408, 0x900001c0,
- 0x80041d40, 0x820c0c80, 0x0010d32a, 0x05fe1271,
- 0x820c0c80, 0x00100000, 0x05fc126e, 0x480fc857,
- 0x903c7c22, 0x503c0800, 0x800409c0, 0x05000005,
- 0x903c05a6, 0x05fc0267, 0x803c7800, 0x05fdf7fa,
- 0x59e41001, 0x82080d00, 0xfffeffcf, 0x4807c801,
- 0x440c7800, 0x46001800, 0x0201f800, 0x800c1800,
- 0x46001800, 0x001005ce, 0x480bc801, 0x0501f025,
- 0x59a01a08, 0x59a00408, 0x900001c0, 0x800c1d40,
- 0x480c7803, 0x59a02209, 0x59a00409, 0x900001c0,
- 0x80102540, 0x48107804, 0x59a0020a, 0x40001000,
- 0x48007807, 0x80000040, 0x05fc124a, 0x48007808,
- 0x60000880, 0x0525ff79, 0x80000540, 0x05000002,
- 0x05fdf244, 0x40040000, 0x800c1c00, 0x05fc1241,
- 0x4800780a, 0x480c7805, 0x48107806, 0x4978780c,
- 0x59a0040a, 0x800000c4, 0x4800780b, 0x59e40001,
- 0x4803c857, 0x82000540, 0x00040000, 0x4803c801,
- 0x05fdf1ec, 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, 0x05fc0211,
- 0x48007813, 0x60000808, 0x40001000, 0x0525ff3f,
- 0x80000540, 0x05fe020b, 0x40040000, 0x800c1c00,
- 0x05fc1208, 0x480c7810, 0x48107811, 0x4a03420a,
- 0x00000400, 0x59a0040a, 0x4800781e, 0x850e1d6a,
- 0x59a0040b, 0x48007a12, 0x59a0020c, 0x48007c12,
- 0x600c0000, 0x05e9fe2c, 0x80102000, 0x4810780d,
- 0x48134209, 0x901021c0, 0x48134409, 0x59e40052,
- 0x4803c857, 0x4a007816, 0x00000400, 0x903c0416,
+ 0x050200fa, 0x59a00a09, 0x82040480, 0x00000100,
+ 0x050210f6, 0x800409c0, 0x050000f4, 0x8c140502,
+ 0x05020089, 0x82041400, 0x00111cfa, 0x50080000,
+ 0x80025d40, 0x050000ed, 0x592c1a00, 0x580c0000,
+ 0x592c1a0c, 0x800c0580, 0x05000003, 0x0501f96f,
+ 0x050200e4, 0x592c1a00, 0x580c0000, 0x48025a0c,
+ 0x4d340000, 0x4d440000, 0x4c080000, 0x59aa88ac,
+ 0x81468840, 0x59a04a09, 0x0001fb08, 0x05020020,
+ 0x5934000f, 0x40002000, 0x80001d40, 0x0500001c,
+ 0x580c0003, 0x58000211, 0x80240580, 0x05000004,
+ 0x580c0000, 0x400c2000, 0x05fdf7f8, 0x4937c857,
+ 0x4947c857, 0x480fc857, 0x0501f954, 0x05020020,
+ 0x4d2c0000, 0x400e5800, 0x592c0800, 0x05edfb3f,
+ 0x5c025800, 0x40040000, 0x5934100f, 0x800c1582,
+ 0x0500000f, 0x4807c857, 0x4813c857, 0x48042000,
+ 0x800409c0, 0x05fe07e5, 0x48126810, 0x814689c0,
+ 0x05000013, 0x81468840, 0x83440580, 0x000007ff,
+ 0x05fe07da, 0x61be887f, 0x05fdf7d8, 0x800409c0,
+ 0x05020004, 0x497a680f, 0x497a6810, 0x05fdf7f4,
+ 0x4806680f, 0x40042000, 0x05fdf7d4, 0x5c001000,
+ 0x5c028800, 0x5c026800, 0x0501f0a6, 0x5c001000,
+ 0x5c028800, 0x5c026800, 0x4d300000, 0x4d2c0000,
+ 0x42026000, 0x00115aa4, 0x59325809, 0x812e59c0,
+ 0x05000018, 0x592c0003, 0x58000211, 0x80240580,
+ 0x05020014, 0x0501f921, 0x0502000f, 0x492fc857,
+ 0x4d2c0000, 0x4c140000, 0x4c080000, 0x053dfec0,
+ 0x5c001000, 0x5c002800, 0x5c025800, 0x05020009,
+ 0x4c080000, 0x0009f810, 0x05edfb04, 0x5c001000,
+ 0x0501f004, 0x5c025800, 0x5c026000, 0x0501f085,
+ 0x91326430, 0x59a8000b, 0x81300480, 0x05fc17e3,
+ 0x5c025800, 0x5c026000, 0x59980802, 0x80040840,
+ 0x48073002, 0x45781000, 0x59a00a09, 0x4807c857,
+ 0x40f01000, 0x58080801, 0x412c0000, 0x80040580,
+ 0x05000004, 0x40041000, 0x58040801, 0x05fdf7fb,
+ 0x58040801, 0x48041001, 0x4d2c0000, 0x412c0000,
+ 0x80f00580, 0x051c086d, 0x5c025800, 0x05edfada,
+ 0x05fdf3b0, 0x82041400, 0x00111dfa, 0x50080000,
+ 0x80025d40, 0x05000065, 0x592c0005, 0x80000540,
+ 0x05000012, 0x0501f8e9, 0x0502005e, 0x592c0805,
+ 0x4d2c0000, 0x40065800, 0x58040000, 0x4c080000,
+ 0x4c000000, 0x05edfad1, 0x5c000000, 0x5c001000,
+ 0x80000d40, 0x05fe07f8, 0x5c025800, 0x48025804,
+ 0x48025805, 0x850e1d26, 0x592c1c08, 0x592c0409,
+ 0x580c0900, 0x80040580, 0x05000003, 0x0501f8d3,
+ 0x05020048, 0x412c0000, 0x81740580, 0x05020019,
+ 0x59d80106, 0x80000540, 0x05000011, 0x0501f8cb,
+ 0x05020040, 0x42000800, 0x000fffff, 0x59d80106,
+ 0x80000540, 0x0500000a, 0x0502e005, 0x59da5908,
+ 0x4c080000, 0x05edfaa8, 0x5c001000, 0x80040840,
+ 0x05fe07f7, 0x4803c857, 0x0501f032, 0x8d0c0524,
+ 0x05000004, 0x0501f8b9, 0x0502002e, 0x850e1d24,
+ 0x60000802, 0x80040840, 0x0500100a, 0x82040400,
+ 0x00111cfa, 0x50000000, 0x80000540, 0x05fc07fa,
+ 0x58000012, 0x812c0580, 0x05000010, 0x05fdf7f6,
+ 0x59980808, 0x80040840, 0x48073008, 0x45781000,
+ 0x59a00a09, 0x4807c857, 0x41741000, 0x58080800,
+ 0x412c0000, 0x80040580, 0x05000006, 0x40041000,
+ 0x58040800, 0x05fdf7fb, 0x492fc857, 0x0501f011,
+ 0x58040800, 0x48041000, 0x4d2c0000, 0x412c0000,
+ 0x81740580, 0x051809e1, 0x5c025800, 0x592c0209,
+ 0xb000053f, 0x82000400, 0x00111efa, 0x45780000,
+ 0x05edfa75, 0x05fdf34b, 0x640b4407, 0x05fdf38c,
+ 0x647b4407, 0x05fdf38a, 0x64774407, 0x05fdf388,
+ 0x59a00c07, 0x8c040510, 0x0500000b, 0x64065a0a,
+ 0x497a580d, 0x59a0020d, 0x48025c11, 0x0001ff3c,
+ 0x42000000, 0x00102f76, 0x50000000, 0x48025a10,
+ 0x1c01f000, 0x59a00a0d, 0x90040486, 0x05001002,
+ 0x60040800, 0x82040c00, 0x00102f73, 0x50040000,
+ 0x48025a10, 0x64025a0a, 0x1c01f000, 0x00000002,
+ 0x00000002, 0x00000005, 0x0000000a, 0x00000014,
+ 0x000000ff, 0x8c14050e, 0x05020008, 0x59a0020c,
+ 0x82000400, 0x00111dfa, 0x50000000, 0x80000540,
+ 0x0500002d, 0x48025812, 0x48065a11, 0x59a01208,
+ 0x800810e0, 0x59a00408, 0x80080540, 0x48025808,
+ 0x59a0120a, 0x800810e0, 0x59a0040a, 0x80080540,
+ 0x48025809, 0x59a00409, 0x48025c0a, 0x64065c10,
+ 0x59980002, 0x80000000, 0x48033002, 0x58f01001,
+ 0x492de001, 0x480a5801, 0x82040400, 0x00005c00,
+ 0x59a0140b, 0x48080100, 0x480a5a0c, 0x48025a00,
+ 0x05fdffc0, 0x59a0140d, 0x8c140508, 0x05000002,
+ 0x8408157e, 0x8c14050a, 0x05000002, 0x8408157c,
+ 0x8c140504, 0x05000003, 0x82081540, 0x20000000,
+ 0x480a580b, 0x59a0040c, 0x48025c0c, 0x80000580,
+ 0x1c01f000, 0x45781000, 0x05edfa1b, 0x647f4407,
+ 0x90000541, 0x1c01f000, 0x4a025803, 0xffff0000,
+ 0x48065a02, 0x59a0020e, 0x48025a09, 0x59a01208,
+ 0x800810e0, 0x59a00408, 0x80080540, 0x48025806,
+ 0x59a0120a, 0x800810e0, 0x59a0040a, 0x80080540,
+ 0x48025807, 0x59a00409, 0x48025a08, 0x59980008,
+ 0x80000000, 0x48033008, 0x59741000, 0x492ee800,
+ 0x480a5800, 0x82040400, 0x00005e00, 0x59a0120b,
+ 0x48080000, 0x480a5c09, 0x48025c08, 0x59a00c07,
+ 0x59a0140d, 0x8c040508, 0x05000002, 0x8408157e,
+ 0x8c04050a, 0x05000002, 0x8408157c, 0x8c040504,
+ 0x05000003, 0x82081540, 0x20000000, 0x480a5801,
+ 0x59a0020e, 0x82000400, 0x00111efa, 0x44080000,
+ 0x80000580, 0x1c01f000, 0x8c140512, 0x05000005,
+ 0x8d0c0520, 0x05020003, 0x80000580, 0x0501f002,
+ 0x90000541, 0x4803c857, 0x1c01f000, 0x8d0c050e,
+ 0x05000003, 0x64074407, 0x05fdf2f5, 0x916c0583,
+ 0x05020014, 0x050dfa31, 0x05fe02f6, 0x59240200,
+ 0x8c000502, 0x05000041, 0x59240005, 0x497b4407,
+ 0x0519fba0, 0x0500000e, 0x82000d00, 0x00ffff00,
+ 0x0502000b, 0x82000c00, 0x001028fb, 0x50040800,
+ 0x80040910, 0x82041580, 0x00000080, 0x05020003,
+ 0x641f4407, 0x05fdf2de, 0x48074407, 0x82000d00,
+ 0x0000ffff, 0x48074208, 0x80000120, 0x48034408,
+ 0x59a8024c, 0x82001500, 0x00003500, 0x480b440a,
+ 0x5924100b, 0x82081500, 0x00001fff, 0x480b420b,
+ 0x480b420b, 0x8c000502, 0x05000016, 0x8c000506,
+ 0x05000006, 0x90000d0a, 0x90040d8a, 0x05020003,
+ 0x6407420a, 0x0501f018, 0x8c00050a, 0x05000006,
+ 0x90000d22, 0x90040da2, 0x05020003, 0x640f420a,
+ 0x0501f011, 0x8c000508, 0x05000006, 0x90000d12,
+ 0x90040d92, 0x05020003, 0x640b420a, 0x0501f00a,
+ 0x0519fb6c, 0x05020003, 0x6413420a, 0x05fdf271,
+ 0x8c000506, 0x05000003, 0x64174407, 0x05fdf2b0,
+ 0x6403420a, 0x05fdf26b, 0x646f4407, 0x05fdf2ac,
+ 0x59a8005f, 0x48034408, 0x59a80060, 0x4803420a,
+ 0x05fdf264, 0x42007800, 0x00112489, 0x59a00407,
+ 0x4803c857, 0x90000c8c, 0x05fe12a6, 0x0c01f001,
+ 0x001030b7, 0x00103057, 0x00103064, 0x00103074,
+ 0x00103093, 0x001030b8, 0x00103050, 0x00103050,
+ 0x001030c4, 0x001030fc, 0x00103051, 0x0010310f,
+ 0x05fdf298, 0x59a00208, 0x48007c01, 0x59a00408,
+ 0x48007a01, 0x05e9fe70, 0x0501f061, 0x916c0580,
+ 0x05fc028b, 0x59a00a08, 0x59a00408, 0x900001c0,
+ 0x80040d40, 0x4807c857, 0x59a00a09, 0x59a00409,
+ 0x900001c0, 0x80040d40, 0x4807c857, 0x0501f054,
+ 0x916c0580, 0x05fc027e, 0x59a00408, 0x59a01208,
+ 0x900001c0, 0x80081540, 0x59a00409, 0x59a01a09,
+ 0x900001c0, 0x800c1d40, 0x42000000, 0x00114716,
+ 0x480fc857, 0x480bc857, 0x60000820, 0x050df0f7,
+ 0x59a00a08, 0x59a00408, 0x900001c0, 0x80041d40,
+ 0x820c0c80, 0x0010daa9, 0x05fe126e, 0x820c0c80,
+ 0x00100000, 0x05fc126b, 0x480fc857, 0x903c7c22,
+ 0x503c0800, 0x800409c0, 0x05000005, 0x903c05a6,
+ 0x05fc0264, 0x803c7800, 0x05fdf7fa, 0x59e41001,
+ 0x82080d00, 0xfffeffcf, 0x4807c801, 0x440c7800,
+ 0x46001800, 0x0201f800, 0x800c1800, 0x46001800,
+ 0x00100609, 0x480bc801, 0x0501f025, 0x59a01a08,
+ 0x59a00408, 0x900001c0, 0x800c1d40, 0x480c7803,
+ 0x59a02209, 0x59a00409, 0x900001c0, 0x80102540,
+ 0x48107804, 0x59a0020a, 0x40001000, 0x48007807,
+ 0x80000040, 0x05fc1247, 0x48007808, 0x60000880,
+ 0x0529fb87, 0x80000540, 0x05000002, 0x05fdf241,
+ 0x40040000, 0x800c1c00, 0x05fc123e, 0x4800780a,
+ 0x480c7805, 0x48107806, 0x4978780c, 0x59a0040a,
+ 0x800000c4, 0x4800780b, 0x59e40001, 0x4803c857,
+ 0x82000540, 0x00040000, 0x4803c801, 0x05fdf1e9,
+ 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, 0x05fc020e, 0x48007813,
+ 0x60000808, 0x40001000, 0x0529fb4d, 0x80000540,
+ 0x05fe0208, 0x40040000, 0x800c1c00, 0x05fc1205,
+ 0x480c7810, 0x48107811, 0x4a03420a, 0x00000400,
+ 0x59a0040a, 0x4800781e, 0x850e1d6a, 0x59a0040b,
+ 0x48007a12, 0x59a0020c, 0x48007c12, 0x59e42051,
+ 0x80102000, 0x4810780d, 0x48134209, 0x901021c0,
+ 0x48134409, 0x4a007816, 0x00000400, 0x903c0416,
0x48034208, 0x900001c0, 0x48034408, 0x05fdf1a5,
0x583c0800, 0x830e1d00, 0xffcfffff, 0x48ec7820,
0x4a01d802, 0x00000100, 0x583c0017, 0x82000500,
0x000000ff, 0x05020008, 0x4807c857, 0x8c040502,
0x05000004, 0x84040d48, 0x48047800, 0x1c01f000,
- 0x0501f00a, 0x05f1fba5, 0x1c01f000, 0x916c0580,
- 0x05fc01d3, 0x05e9fee6, 0x900801c0, 0x480b4407,
- 0x48034208, 0x05fdf18b, 0x42007800, 0x0010e4e5,
+ 0x0501f00a, 0x05f1fb6c, 0x1c01f000, 0x916c0580,
+ 0x05fc01d3, 0x05e9fe6d, 0x900801c0, 0x480b4407,
+ 0x48034208, 0x05fdf18b, 0x42007800, 0x00112489,
0x583dd820, 0x58ef400b, 0x40ec6000, 0x583c0000,
0x48efc857, 0x49a3c857, 0x4803c857, 0x82000500,
0x0000ffc0, 0x48007800, 0x583c001d, 0x4803c857,
@@ -3144,2901 +3186,3044 @@ static const uint32_t isp_2500_risc_code[] = {
0x4807440b, 0x49787818, 0x583c0017, 0x49787817,
0x82000500, 0x000000ff, 0x05fe0163, 0x05fdf165,
0x59a80005, 0x48034407, 0x59a80006, 0x48034208,
- 0x59a80007, 0x48034408, 0x05fdf15e, 0x05e9fd3f,
+ 0x59a80007, 0x48034408, 0x05fdf15e, 0x05e9fcd2,
0x4803c856, 0x59a0020c, 0x4803c857, 0x8c00051e,
- 0x050e00de, 0x8c00051a, 0x05000005, 0x050df87c,
- 0x05000018, 0x65034407, 0x05fdf195, 0x05f5fed9,
- 0x05000003, 0x05f5febe, 0x05000003, 0x648b4407,
+ 0x050e01dc, 0x8c00051a, 0x05000005, 0x050df97a,
+ 0x05000018, 0x65034407, 0x05fdf195, 0x05f5feb1,
+ 0x05000003, 0x05f5fe96, 0x05000003, 0x648b4407,
0x05fdf18f, 0x4a03c013, 0x03800300, 0x4a03c014,
0x03800380, 0x59a00c07, 0x82040580, 0x000000a0,
0x05000004, 0x82040580, 0x000000a2, 0x0502001e,
0x59a0140b, 0x82080480, 0x00000100, 0x0502101a,
- 0x050df869, 0x05fe0183, 0x59a0020c, 0x8c000500,
+ 0x050df967, 0x05fe0183, 0x59a0020c, 0x8c000500,
0x0502001b, 0x59a00a0b, 0x800409c0, 0x05000012,
- 0xb0040481, 0x05021010, 0x0509fed9, 0x0500000a,
+ 0xb0040481, 0x05021010, 0x0509ffd3, 0x0500000a,
0x59a01008, 0x900811c0, 0x59a0180a, 0x900c19c0,
- 0x59a00a0b, 0x0509fef4, 0x4a01d809, 0x001030d8,
+ 0x59a00a0b, 0x0509ffee, 0x4a01d809, 0x00103180,
0x1c01f000, 0x640b4407, 0x4a03c014, 0x03800000,
0x05fdf167, 0x4a03c014, 0x03800000, 0x05fdf169,
- 0x0505fd83, 0x05fc0159, 0x58ee580d, 0x59a00c07,
+ 0x0505fe51, 0x05fc0159, 0x58ee580d, 0x59a00c07,
0x59a0140b, 0x59a0020c, 0x8c000500, 0x0502004e,
- 0x912e5c08, 0x4178c000, 0x59a0ba0b, 0x050df853,
- 0x05000009, 0x05f9f889, 0x05f9f904, 0x05000003,
- 0x65074407, 0x05fdf151, 0x05f9f919, 0x59a00c07,
+ 0x912e5c08, 0x4178c000, 0x59a0ba0b, 0x050df951,
+ 0x05000009, 0x05f9f861, 0x05f9f8dc, 0x05000003,
+ 0x65074407, 0x05fdf151, 0x05f9f8f1, 0x59a00c07,
0x59a0140b, 0x40600000, 0x812c0400, 0x5000c800,
0x82641d00, 0x000000ff, 0x4c040000, 0x4c080000,
- 0x050df842, 0x05000002, 0x8408157e, 0x0501f93f,
+ 0x050df940, 0x05000002, 0x8408157e, 0x0501f947,
0x5c001000, 0x5c000800, 0x0500005f, 0x805cb840,
0x05000058, 0x80081000, 0x82641d00, 0x0000ff00,
- 0x800c1910, 0x4c040000, 0x4c080000, 0x050df833,
- 0x05000002, 0x8408157e, 0x0501f930, 0x5c001000,
+ 0x800c1910, 0x4c040000, 0x4c080000, 0x050df931,
+ 0x05000002, 0x8408157e, 0x0501f938, 0x5c001000,
0x5c000800, 0x05000050, 0x805cb840, 0x05000049,
0x80081000, 0x82641d00, 0x00ff0000, 0x800c1920,
- 0x4c040000, 0x4c080000, 0x050df824, 0x05000002,
- 0x8408157e, 0x0501f921, 0x5c001000, 0x5c000800,
+ 0x4c040000, 0x4c080000, 0x050df922, 0x05000002,
+ 0x8408157e, 0x0501f929, 0x5c001000, 0x5c000800,
0x05000041, 0x805cb840, 0x0500003a, 0x80081000,
0x82641d00, 0xff000000, 0x800c1930, 0x4c040000,
- 0x4c080000, 0x050df815, 0x05000002, 0x8408157e,
- 0x0501f912, 0x5c001000, 0x5c000800, 0x05000032,
+ 0x4c080000, 0x050df913, 0x05000002, 0x8408157e,
+ 0x0501f91a, 0x5c001000, 0x5c000800, 0x05000032,
0x805cb840, 0x0500002b, 0x80081000, 0x8060c000,
0x05fdf7c1, 0x59a0020b, 0x82000500, 0x000000ff,
- 0x40001800, 0x050df805, 0x05000020, 0x4c0c0000,
- 0x05f9f83a, 0x5c001800, 0x05f9f8c5, 0x59a00c07,
+ 0x40001800, 0x050df903, 0x05000020, 0x4c0c0000,
+ 0x05f9f812, 0x5c001800, 0x05f9f89d, 0x59a00c07,
0x59a0140b, 0x82040580, 0x000000e0, 0x05000013,
- 0x05f9f8c7, 0x82040580, 0x000000a0, 0x05000007,
+ 0x05f9f89f, 0x82040580, 0x000000a0, 0x05000007,
0x82040580, 0x000000d0, 0x05fe00fd, 0x4807c857,
- 0x8408157c, 0x0501f009, 0x05f9f8a4, 0x05000003,
- 0x65074407, 0x05fdf0f1, 0x05f9f8b9, 0x59a00c07,
- 0x59a0140b, 0x8408157e, 0x0501f8e8, 0x0500000a,
- 0x4817c857, 0x0501f003, 0x0501f8e4, 0x05000006,
- 0x0509ffe2, 0x05fa083a, 0x4a03c014, 0x03800000,
- 0x05fdf0a0, 0x0509ffdd, 0x05fa0835, 0x4a03c014,
+ 0x8408157c, 0x0501f009, 0x05f9f87c, 0x05000003,
+ 0x65074407, 0x05fdf0f1, 0x05f9f891, 0x59a00c07,
+ 0x59a0140b, 0x8408157e, 0x0501f8f0, 0x0500000a,
+ 0x4817c857, 0x0501f003, 0x0501f8ec, 0x05000006,
+ 0x050df8e0, 0x05fa0812, 0x4a03c014, 0x03800000,
+ 0x05fdf0a0, 0x050df8db, 0x05fa080d, 0x4a03c014,
0x03800000, 0x64134407, 0x05fdf0dd, 0x4803c856,
- 0x59a0020c, 0x4803c857, 0x8c00051e, 0x050a07d6,
- 0x8c00051a, 0x05000005, 0x0509ffb9, 0x05000018,
- 0x65034407, 0x05fdf0d2, 0x05f5fe16, 0x05000003,
- 0x05f5fdfb, 0x05000003, 0x648b4407, 0x05fdf0cc,
+ 0x59a0020c, 0x4803c857, 0x8c00051e, 0x050e00d4,
+ 0x8c00051a, 0x05000005, 0x050df8b7, 0x05000018,
+ 0x65034407, 0x05fdf0d2, 0x05f5fdee, 0x05000003,
+ 0x05f5fdd3, 0x05000003, 0x648b4407, 0x05fdf0cc,
0x4a03c013, 0x03800300, 0x4a03c014, 0x03800380,
0x59a00c07, 0x82040580, 0x000000a0, 0x05000004,
- 0x82040580, 0x000000a2, 0x050200b9, 0x59a0140b,
- 0x82080480, 0x00000100, 0x050210b5, 0x0509ffa6,
+ 0x82040580, 0x000000a2, 0x050200c1, 0x59a0140b,
+ 0x82080480, 0x00000100, 0x050210bd, 0x050df8a4,
0x05fe00c0, 0x59a00c07, 0x59a0140b, 0x4807c857,
- 0x480bc857, 0x59a0020c, 0x8c000500, 0x05020068,
- 0x59a01a0b, 0x800c19c0, 0x050000a9, 0xb00c0481,
- 0x050210a7, 0x0509fe12, 0x05020006, 0x640b4407,
+ 0x480bc857, 0x59a0020c, 0x8c000500, 0x05020070,
+ 0x59a01a0b, 0x800c19c0, 0x050000b1, 0xb00c0481,
+ 0x050210af, 0x0509ff0c, 0x05020006, 0x640b4407,
0x4a03c014, 0x03800000, 0x4803c857, 0x05fdf0a8,
- 0x912e5c08, 0x4178c000, 0x59a0ba0b, 0x0509ff9f,
- 0x05000007, 0x05f5ffd5, 0x05f9f850, 0x05000003,
- 0x65074407, 0x05fdf09d, 0x05f9f865, 0x59a00c07,
+ 0x912e5c08, 0x4178c000, 0x59a0ba0b, 0x59a0020c,
+ 0x8c00051a, 0x05020006, 0x8c000502, 0x0500000e,
+ 0x0501f8ff, 0x0502004f, 0x0501f097, 0x050df895,
+ 0x05000007, 0x05f5ffa5, 0x05f9f820, 0x05000003,
+ 0x65074407, 0x05fdf095, 0x05f9f835, 0x59a00c07,
0x59a0140b, 0x4803c857, 0x40600000, 0x812c0400,
- 0x4000c800, 0x4c040000, 0x4c080000, 0x0509ff8f,
- 0x05000002, 0x8408157e, 0x0501f8c2, 0x5c001000,
+ 0x4000c800, 0x4c040000, 0x4c080000, 0x050df885,
+ 0x05000002, 0x8408157e, 0x0501f8c4, 0x5c001000,
0x5c000800, 0x05000080, 0x4414c800, 0x805cb840,
0x05000034, 0x80081000, 0x4c040000, 0x4c080000,
- 0x0509ff82, 0x05000002, 0x8408157e, 0x0501f8b5,
+ 0x050df878, 0x05000002, 0x8408157e, 0x0501f8b7,
0x5c001000, 0x5c000800, 0x05000073, 0x50640000,
0x801428d0, 0x80140540, 0x4400c800, 0x805cb840,
0x05000024, 0x80081000, 0x4c040000, 0x4c080000,
- 0x0509ff72, 0x05000002, 0x8408157e, 0x0501f8a5,
+ 0x050df868, 0x05000002, 0x8408157e, 0x0501f8a7,
0x5c001000, 0x5c000800, 0x05000063, 0x50640000,
0x801428e0, 0x80140540, 0x4400c800, 0x805cb840,
0x05000014, 0x80081000, 0x4c040000, 0x4c080000,
- 0x0509ff62, 0x05000002, 0x8408157e, 0x0501f895,
+ 0x050df858, 0x05000002, 0x8408157e, 0x0501f897,
0x5c001000, 0x5c000800, 0x05000053, 0x50640000,
0x801428f0, 0x80140540, 0x4400c800, 0x805cb840,
0x05000004, 0x80081000, 0x8060c000, 0x05fdf7be,
- 0x0509ff52, 0x05f60faa, 0x59a00a0b, 0x59a01008,
+ 0x050df848, 0x05f60f7a, 0x59a00a0b, 0x59a01008,
0x900811c0, 0x59a0180a, 0x900c19c0, 0x4a03c014,
- 0x03800000, 0x412c0000, 0x0509f5d5, 0x4803c857,
- 0x0509ff46, 0x05000036, 0x05f5ff7c, 0x05f9f808,
+ 0x03800000, 0x412c0000, 0x0509f6c7, 0x4803c857,
+ 0x050df83c, 0x05000036, 0x05f5ff4c, 0x05f5ffd8,
0x59a00c07, 0x59a0140b, 0x82040580, 0x00000098,
- 0x0502000d, 0x59a80084, 0x8c000520, 0x05000006,
- 0x59a8287d, 0x9014050f, 0x05020003, 0x8c140508,
+ 0x0502000d, 0x59a80087, 0x8c000520, 0x05000006,
+ 0x59a82880, 0x9014050f, 0x05020003, 0x8c140508,
0x0500001c, 0x90080581, 0x0502001a, 0x60001000,
0x0501f018, 0x82040580, 0x000000e0, 0x05000015,
- 0x05f5fffb, 0x82040580, 0x000000a0, 0x05000009,
- 0x82040580, 0x000000d0, 0x05fe0031, 0x4807c857,
- 0x6140b801, 0x0501f84c, 0x40642800, 0x0501f011,
- 0x05f5ffd6, 0x05000003, 0x65074407, 0x05fdf023,
- 0x05f5ffeb, 0x59a00c07, 0x59a0140b, 0x8408157e,
- 0x0501f850, 0x05020003, 0x65074407, 0x05fdf01b,
- 0x59a00c07, 0x82040580, 0x00000098, 0x05f40ff6,
- 0x4817c857, 0x05f5ff6a, 0x0501f003, 0x0501f845,
+ 0x05f5ffcb, 0x82040580, 0x000000a0, 0x05000009,
+ 0x82040580, 0x000000d0, 0x05fe0029, 0x4807c857,
+ 0x6140b801, 0x0501f84d, 0x40642800, 0x0501f011,
+ 0x05f5ffa6, 0x05000003, 0x65074407, 0x05fdf01b,
+ 0x05f5ffbb, 0x59a00c07, 0x59a0140b, 0x8408157e,
+ 0x0501f852, 0x05020003, 0x65074407, 0x05fdf013,
+ 0x59a00c07, 0x82040580, 0x00000098, 0x05f40fc6,
+ 0x4817c857, 0x05f5ff3a, 0x0501f003, 0x0501f847,
0x05000005, 0x48174407, 0x4a03c014, 0x03800000,
- 0x05f9f7cc, 0x0509ff09, 0x05f60f61, 0x4a03c014,
- 0x03800000, 0x64134407, 0x05fdf009, 0x4a03c014,
- 0x03800000, 0x05fdf00b, 0x4c5c0000, 0x4c600000,
+ 0x05f9f7c4, 0x0509ffff, 0x05f60f31, 0x4a03c014,
+ 0x03800000, 0x64134407, 0x05fdf001, 0x4a03c014,
+ 0x03800000, 0x05fdf003, 0x4c5c0000, 0x4c600000,
0x4c640000, 0x4004b800, 0x4008c000, 0x400cc800,
- 0x0501f877, 0x05000019, 0x0501f8a3, 0x0502001b,
+ 0x0501f8e7, 0x05000019, 0x0501f913, 0x0502001b,
0x8c60053c, 0x0502000c, 0x8c60053e, 0x05000007,
0x4060b800, 0x825cbd00, 0x0000ff00, 0x805cb910,
- 0x0501f899, 0x05020011, 0x4060b800, 0x0501f896,
- 0x0502000e, 0x4064b800, 0x0501f893, 0x0502000b,
- 0x0501f882, 0x4ce80000, 0x6021d027, 0x0521fdb2,
+ 0x0501f909, 0x05020011, 0x4060b800, 0x0501f906,
+ 0x0502000e, 0x4064b800, 0x0501f903, 0x0502000b,
+ 0x0501f8f2, 0x4ce80000, 0x6021d027, 0x0525f96d,
0x5c01d000, 0x90000541, 0x5c00c800, 0x5c00c000,
- 0x5c00b800, 0x1c01f000, 0x0501f878, 0x80000580,
- 0x05fdf7fa, 0x4c5c0000, 0x0501f855, 0x05000008,
- 0x905cbd41, 0x0501f880, 0x05020007, 0x0501f8ba,
- 0x0501f8ec, 0x0501f86d, 0x90000541, 0x5c00b800,
- 0x1c01f000, 0x0501f869, 0x80000580, 0x05fdf7fc,
- 0x4c5c0000, 0x4c600000, 0x4c640000, 0x4004b800,
- 0x4008c000, 0x0501f842, 0x05000016, 0x0501f86e,
- 0x05020019, 0x8c60053e, 0x05000009, 0x4c5c0000,
- 0x4060b800, 0x825cbd00, 0x0000ff00, 0x805cb910,
- 0x0501f865, 0x5c00b800, 0x0502000f, 0x4c5c0000,
- 0x4060b800, 0x0501f860, 0x5c00b800, 0x0502000a,
- 0x05fdffd9, 0x05000003, 0x0501f84c, 0x90000541,
- 0x40642800, 0x5c00c800, 0x5c00c000, 0x5c00b800,
- 0x1c01f000, 0x0501f845, 0x80000580, 0x05fdf7f9,
- 0x4ce80000, 0x4c580000, 0x4803c856, 0x6030b000,
- 0x6029d000, 0x0521fd70, 0x4a03c013, 0x02000200,
- 0x6029d000, 0x0521fd6c, 0x4a03c013, 0x02000000,
- 0x8058b040, 0x05fe07f7, 0x61a00807, 0x4a03c013,
- 0x03800300, 0x80040840, 0x0500000f, 0x4a03c014,
- 0x03800000, 0x59e00013, 0x4a03c014, 0x03800380,
- 0x82000500, 0x00000300, 0x82000580, 0x00000300,
- 0x05fe07f3, 0x90000541, 0x5c00b000, 0x5c01d000,
- 0x1c01f000, 0x80000580, 0x05fdf7fc, 0x4ce80000,
+ 0x5c00b800, 0x1c01f000, 0x0501f8e8, 0x80000580,
+ 0x4803c856, 0x05fdf7f9, 0x4c5c0000, 0x0501f8c4,
+ 0x05000008, 0x905cbd41, 0x0501f8ef, 0x05020007,
+ 0x0501f929, 0x0501f959, 0x0501f8dc, 0x90000541,
+ 0x5c00b800, 0x1c01f000, 0x0501f8d8, 0x80000580,
+ 0x485fc857, 0x05fdf7fb, 0x4c5c0000, 0x4c600000,
+ 0x4c640000, 0x4004b800, 0x4008c000, 0x0501f8b0,
+ 0x05000016, 0x0501f8dc, 0x05020019, 0x8c60053e,
+ 0x05000009, 0x4c5c0000, 0x4060b800, 0x825cbd00,
+ 0x0000ff00, 0x805cb910, 0x0501f8d3, 0x5c00b800,
+ 0x0502000f, 0x4c5c0000, 0x4060b800, 0x0501f8ce,
+ 0x5c00b800, 0x0502000a, 0x05fdffd8, 0x05000003,
+ 0x0501f8ba, 0x90000541, 0x40642800, 0x5c00c800,
+ 0x5c00c000, 0x5c00b800, 0x1c01f000, 0x0501f8b3,
+ 0x80000580, 0x4867c857, 0x05fdf7f8, 0x4c5c0000,
+ 0x4c600000, 0x4c640000, 0x4d040000, 0x4c500000,
+ 0x4c540000, 0x4c580000, 0x4004a000, 0x4008a800,
+ 0x400cb000, 0x412e0800, 0x40500800, 0x40541000,
+ 0x4004b800, 0x4008c000, 0x0501f881, 0x0500004f,
+ 0x0501f8ad, 0x05020056, 0x8c60053e, 0x05000009,
+ 0x4c5c0000, 0x4060b800, 0x825cbd00, 0x0000ff00,
+ 0x805cb910, 0x0501f8a4, 0x5c00b800, 0x0502004c,
+ 0x4c5c0000, 0x4060b800, 0x0501f89f, 0x5c00b800,
+ 0x05020047, 0x0501f86e, 0x0500003c, 0x905cbd41,
+ 0x0501f899, 0x05020042, 0x40581800, 0x900c1c88,
+ 0x05001004, 0x400cb000, 0x6020b800, 0x0501f003,
+ 0x4058b800, 0x4178b000, 0x0501f8cb, 0x82642d00,
+ 0x000000ff, 0x805cb840, 0x05000020, 0x0501f906,
+ 0x0501f8c5, 0x8064c8d0, 0x82640500, 0x0000ff00,
+ 0x80142d40, 0x805cb840, 0x05000018, 0x0501f8fe,
+ 0x0501f8bd, 0x8064c8e0, 0x82640500, 0x00ff0000,
+ 0x80142d40, 0x805cb840, 0x05000010, 0x0501f8f6,
+ 0x0501f8b5, 0x8064c8f0, 0x82640500, 0xff000000,
+ 0x80142d40, 0x805cb840, 0x05000008, 0x0501f8ee,
+ 0x44160800, 0x81060800, 0x40541800, 0x900c1c04,
+ 0x400ca800, 0x05fdf7dd, 0x44160800, 0x0501f8d7,
+ 0x0501f85a, 0x40581800, 0x90000541, 0x800c19c0,
+ 0x05000006, 0x81060800, 0x40541800, 0x900c1c04,
+ 0x400ca800, 0x05fdf7ad, 0x90000541, 0x5c00b000,
+ 0x5c00a800, 0x5c00a000, 0x5c020800, 0x5c00c800,
+ 0x5c00c000, 0x5c00b800, 0x1c01f000, 0x0501f847,
+ 0x80000580, 0x4867c857, 0x05fdf7f5, 0x4ce80000,
+ 0x4c580000, 0x4803c856, 0x6030b000, 0x6029d000,
+ 0x0525f8bc, 0x4a03c013, 0x02000200, 0x6029d000,
+ 0x0525f8b8, 0x4a03c013, 0x02000000, 0x8058b040,
+ 0x05fe07f7, 0x61a00807, 0x4a03c013, 0x03800300,
+ 0x80040840, 0x0500000f, 0x4a03c014, 0x03800000,
+ 0x59e00013, 0x4a03c014, 0x03800380, 0x82000500,
+ 0x00000300, 0x82000580, 0x00000300, 0x05fe07f3,
+ 0x90000541, 0x5c00b000, 0x5c01d000, 0x1c01f000,
+ 0x4803c856, 0x80000580, 0x05fdf7fb, 0x4ce80000,
0x61a00807, 0x4a03c013, 0x03800300, 0x80040840,
0x05000016, 0x4a03c014, 0x03800000, 0x59e00013,
0x4a03c014, 0x03800380, 0x82000500, 0x00000300,
- 0x82000580, 0x00000300, 0x05fe07f3, 0x6029d000,
- 0x0521fd41, 0x4a03c013, 0x01000000, 0x6029d000,
- 0x0521fd3d, 0x4a03c013, 0x02000000, 0x90000541,
- 0x5c01d000, 0x1c01f000, 0x4803c857, 0x05fdffc1,
+ 0x82000580, 0x00000300, 0x05fe07f3, 0x6055d000,
+ 0x0525f88c, 0x4a03c013, 0x01000000, 0x6029d000,
+ 0x0525f888, 0x4a03c013, 0x02000000, 0x90000541,
+ 0x5c01d000, 0x1c01f000, 0x4803c856, 0x05fdffc0,
0x05fe07f3, 0x05fdf7fb, 0x4a03c013, 0x01000000,
- 0x4ce80000, 0x6029d000, 0x0521fd2f, 0x5c01d000,
+ 0x4ce80000, 0x6029d000, 0x0525f87a, 0x5c01d000,
0x4a03c013, 0x02000200, 0x4ce80000, 0x6029d000,
- 0x0521fd29, 0x5c01d000, 0x4a03c013, 0x01000100,
+ 0x0525f874, 0x5c01d000, 0x4a03c013, 0x01000100,
0x1c01f000, 0x4c5c0000, 0x4c600000, 0x6020c000,
0x825c0500, 0x00000080, 0x800000c2, 0x82000540,
0x01000000, 0x4803c013, 0x4ce80000, 0x6029d000,
- 0x0521fd19, 0x5c01d000, 0x4a03c013, 0x02000200,
- 0x4ce80000, 0x6029d000, 0x0521fd13, 0x5c01d000,
+ 0x0525f864, 0x5c01d000, 0x4a03c013, 0x02000200,
+ 0x4ce80000, 0x6029d000, 0x0525f85e, 0x5c01d000,
0x4a03c013, 0x02000000, 0x805cb8c2, 0x8060c040,
0x05fe07ec, 0x4a03c013, 0x01000100, 0x4ce80000,
- 0x6029d000, 0x0521fd08, 0x5c01d000, 0x4a03c013,
- 0x02000200, 0x4ce80000, 0x6029d000, 0x0521fd02,
+ 0x6029d000, 0x0525f853, 0x5c01d000, 0x4a03c013,
+ 0x02000200, 0x4ce80000, 0x6029d000, 0x0525f84d,
0x5c01d000, 0x4a03c014, 0x03800000, 0x61a00807,
0x59e0b813, 0x825cbd00, 0x00000100, 0x80040840,
0x05000004, 0x405c0000, 0x80000540, 0x05fe07f9,
0x4a03c014, 0x03800380, 0x4a03c013, 0x02000000,
- 0x4ce80000, 0x6029d000, 0x0521fcef, 0x5c01d000,
+ 0x4ce80000, 0x6029d000, 0x0525f83a, 0x5c01d000,
0x405c0000, 0x80000540, 0x5c00c000, 0x5c00b800,
- 0x1c01f000, 0x4c600000, 0x4803c856, 0x4a03c013,
- 0x01000100, 0x6020c000, 0x61a0c807, 0x4ce80000,
- 0x6029d000, 0x0521fce0, 0x5c01d000, 0x4a03c013,
- 0x02000200, 0x4a03c014, 0x03800000, 0x59e00013,
- 0x4a03c014, 0x03800380, 0x82000500, 0x00000200,
- 0x05020003, 0x8064c840, 0x05fe07f7, 0x4178c800,
- 0x0501f007, 0x4ce80000, 0x6029d000, 0x0521fcce,
- 0x5c01d000, 0x4a03c013, 0x02000200, 0x4ce80000,
- 0x6029d000, 0x0521fcc8, 0x5c01d000, 0x4a03c014,
- 0x03800000, 0x59e00013, 0x4a03c014, 0x03800380,
- 0x82000500, 0x00000100, 0x80000110, 0x8064c8c2,
- 0x8064cd40, 0x4a03c013, 0x02000000, 0x8060c040,
- 0x05fe07e9, 0x4867c857, 0x5c00c000, 0x1c01f000,
- 0x4803c856, 0x4a03c013, 0x01000100, 0x4ce80000,
- 0x6029d000, 0x0521fcb0, 0x5c01d000, 0x4a03c013,
- 0x02000200, 0x4ce80000, 0x6029d000, 0x0521fcaa,
+ 0x1c01f000, 0x4c600000, 0x4a03c013, 0x01000100,
+ 0x6020c000, 0x61a0c807, 0x4ce80000, 0x6029d000,
+ 0x0525f82c, 0x5c01d000, 0x4a03c013, 0x02000200,
+ 0x4a03c014, 0x03800000, 0x59e00013, 0x4a03c014,
+ 0x03800380, 0x82000500, 0x00000200, 0x05020003,
+ 0x8064c840, 0x05fe07f7, 0x4178c800, 0x0501f007,
+ 0x4ce80000, 0x6029d000, 0x0525f81a, 0x5c01d000,
+ 0x4a03c013, 0x02000200, 0x4ce80000, 0x6029d000,
+ 0x0525f814, 0x5c01d000, 0x4a03c014, 0x03800000,
+ 0x59e00013, 0x4a03c014, 0x03800380, 0x82000500,
+ 0x00000100, 0x80000110, 0x8064c8c2, 0x8064cd40,
+ 0x4a03c013, 0x02000000, 0x8060c040, 0x05fe07e9,
+ 0x5c00c000, 0x1c01f000, 0x4a03c013, 0x01000100,
+ 0x4ce80000, 0x6029d000, 0x0521fffe, 0x5c01d000,
+ 0x4a03c013, 0x02000200, 0x4ce80000, 0x6029d000,
+ 0x0521fff8, 0x5c01d000, 0x4a03c013, 0x02000000,
+ 0x1c01f000, 0x4a03c013, 0x01000000, 0x4ce80000,
+ 0x6029d000, 0x0521ffef, 0x5c01d000, 0x4a03c013,
+ 0x02000200, 0x4ce80000, 0x6029d000, 0x0521ffe9,
0x5c01d000, 0x4a03c013, 0x02000000, 0x1c01f000,
- 0x59a00408, 0x59a8085c, 0x4803505c, 0x48074408,
- 0x59a00a0a, 0x90040494, 0x05021002, 0x6140080f,
- 0x59a8005d, 0x4807505d, 0x4803420a, 0x05f9f68d,
+ 0x59a00408, 0x59a8085f, 0x4803505f, 0x48074408,
+ 0x59a00a0a, 0x90040494, 0x05021002, 0x60500800,
+ 0x59a80060, 0x48075060, 0x4803420a, 0x05f9f609,
0x59a00407, 0x59a00a08, 0x900409c0, 0x80040d40,
0x59a00408, 0x59a01209, 0x900811c0, 0x80081540,
0x59a00409, 0x59a01a0a, 0x900c19c0, 0x800c1d40,
0x59a0040a, 0x59a0220b, 0x901021c0, 0x80102540,
- 0x054dfeff, 0x05f8067b, 0x05f9f6d2, 0x916c0580,
+ 0x0551fd51, 0x05f805f7, 0x05f9f64e, 0x916c0580,
0x0500000a, 0x59a80005, 0x59a00c07, 0x80041580,
- 0xb0081500, 0x05f80673, 0x80080580, 0x48035005,
- 0x05e9fc49, 0x05f9f66f, 0x59a00407, 0x59a80805,
+ 0xb0081500, 0x05f805ef, 0x80080580, 0x48035005,
+ 0x05e9fb4c, 0x05f9f5eb, 0x59a00407, 0x59a80805,
0x48035005, 0x80040d80, 0x8c040512, 0x05000004,
0x59c40001, 0x84000544, 0x48038801, 0x8c04050c,
- 0x05ea0c3d, 0x59a00208, 0x599c0818, 0x8c040510,
- 0x05000002, 0x8400054a, 0x48035006, 0x59a00408,
- 0x8c00051a, 0x05000009, 0x600018ec, 0x60140800,
- 0x580c1006, 0x4a001805, 0x70000005, 0x900c1c20,
- 0x80040840, 0x05fe07fb, 0x48035007, 0x05f9f651,
- 0x8d0c050e, 0x05000003, 0x64074407, 0x05f9f690,
- 0x0515fd02, 0x05020003, 0x645b4407, 0x05f9f68c,
- 0x916c0583, 0x05000003, 0x641f4407, 0x05f9f688,
- 0x59a00c07, 0x82040500, 0xffffff00, 0x05fa0689,
- 0x82041580, 0x000000ff, 0x05020007, 0x59a8003d,
- 0x82000500, 0x000000ff, 0x82001540, 0x0000ff00,
- 0x0501f00f, 0x82040400, 0x00102853, 0x50000000,
- 0x80000110, 0x82000580, 0x00000080, 0x05f80679,
- 0x59a8003d, 0x82000500, 0x000000ff, 0x80041580,
- 0x05f80674, 0x840409c0, 0x80041540, 0x4c080000,
- 0x0531f833, 0x5c001000, 0x05020003, 0x640f4407,
- 0x05f9f667, 0x48ee602d, 0x480a621e, 0x4a02641e,
- 0x0000bc09, 0x64066407, 0x0509fbc5, 0x05020004,
- 0x0005ffdc, 0x640b4407, 0x05f9f65d, 0x497a5a08,
- 0x4a02601d, 0x0010e512, 0x497a5809, 0x4a025c08,
- 0x00008000, 0x4a01d809, 0x0010342c, 0x492e6009,
- 0x60ca7000, 0x0009f000, 0x8d0c050e, 0x05000003,
- 0x64074407, 0x05f9f64e, 0x0515fcc0, 0x05020003,
- 0x645b4407, 0x05f9f64a, 0x916c0583, 0x05000003,
- 0x641f4407, 0x05f9f646, 0x59a00c07, 0x82040500,
- 0xffffff00, 0x05fa0647, 0x82041580, 0x000000ff,
- 0x05020007, 0x59a8003d, 0x82000500, 0x000000ff,
- 0x82001540, 0x0000ff00, 0x0501f00f, 0x82040400,
- 0x00102853, 0x50000000, 0x80000110, 0x82000580,
- 0x00000080, 0x05f80637, 0x59a8003d, 0x82000500,
- 0x000000ff, 0x80041580, 0x05f80632, 0x840409c0,
- 0x80041540, 0x4c080000, 0x052dfff1, 0x5c001000,
- 0x05020003, 0x640f4407, 0x05f9f625, 0x48ee602d,
- 0x480a621e, 0x4a02641e, 0x0000bc05, 0x64066407,
- 0x0509fb83, 0x05020004, 0x0005ffdc, 0x640b4407,
- 0x05f9f61b, 0x497a5a08, 0x4a02601d, 0x0010e512,
- 0x497a5809, 0x4a025c08, 0x00008000, 0x4a01d809,
- 0x0010342c, 0x492e6009, 0x60ca7000, 0x0009f000,
- 0x592c0009, 0x82000580, 0x01000000, 0x05fa05c9,
- 0x64134407, 0x05f9f60a, 0x497b4407, 0x497b4208,
- 0x8d0c0520, 0x05000008, 0x59a80098, 0x59a80899,
- 0x80040480, 0x59a8089a, 0x48074407, 0x80041480,
- 0x480b4208, 0x0509fc8f, 0x48034408, 0x59a8103b,
- 0x59a8029c, 0x80080480, 0x4803420a, 0x495f440a,
- 0x59a80048, 0x4803420c, 0x4a03440c, 0x000000fe,
- 0x05f9f5b0, 0x8d0c050e, 0x05000003, 0x64074407,
- 0x05f9f5ef, 0x59a00407, 0x8c000500, 0x0502000d,
- 0x59a8009b, 0x81640480, 0x05001008, 0x59a8000b,
- 0x81500580, 0x05000007, 0x59a80099, 0x59a81098,
- 0x80080580, 0x05000003, 0x64634407, 0x05f9f5e0,
- 0x850e1d58, 0x4803c856, 0x850e1d46, 0x050df867,
- 0x05f9f598, 0x4803c856, 0x8d0c050e, 0x05fa05e1,
- 0x59a00407, 0x8c00051e, 0x05000007, 0x4803c856,
- 0x59a0020c, 0x82000480, 0x00000800, 0x0500100f,
- 0x05f9f5d4, 0x4803c856, 0x59a0020c, 0x599c0a01,
- 0x80040480, 0x05021002, 0x05f9f5ce, 0x59a8003b,
- 0x81640580, 0x05000005, 0x64634407, 0x05f9f5c4,
- 0x64174407, 0x05f9f5c2, 0x59a80249, 0x8c00050a,
- 0x05fc07fc, 0x59a00407, 0x8c00051e, 0x05000033,
- 0x052dff83, 0x05020003, 0x640f4407, 0x05f9f5b8,
- 0x0509fb1b, 0x05020004, 0x0005ffdc, 0x640b4407,
- 0x05f9f5b3, 0x497a5a08, 0x59a00407, 0x4802620c,
- 0x59a0020a, 0x4802640c, 0x59a0040a, 0x4802620d,
- 0x59a0020e, 0x4802620e, 0x59a0040e, 0x4802640e,
- 0x59a0020f, 0x4802620f, 0x59a0040f, 0x4802640f,
- 0x59a00211, 0x48026210, 0x59a00411, 0x48026410,
- 0x59a0020c, 0x4802640d, 0x0501f9f9, 0x05fc07e7,
- 0x48ee602d, 0x58ee580d, 0x59300210, 0x59301c10,
- 0x900c19c0, 0x800c1d40, 0x5930020e, 0x5930140e,
- 0x900811c0, 0x80081540, 0x592c0a09, 0x912c040a,
- 0x0509fb15, 0x4a01d809, 0x00103637, 0x64074000,
- 0x49334001, 0x1c01f000, 0x0509fe75, 0x05fa0595,
- 0x0529f85f, 0x598e600b, 0x0529fb5a, 0x0529f85c,
- 0x417a3000, 0x0529fd9b, 0x59926005, 0x813261c0,
- 0x05000007, 0x0529fa8c, 0x0529f825, 0x0529f82a,
- 0x60027820, 0x60ba8000, 0x0525fede, 0x811a3000,
- 0x91180485, 0x05fc17f4, 0x05e9ffd1, 0x0501f88f,
- 0x497b50be, 0x64034408, 0x4201d000, 0x003d0900,
- 0x0521fb63, 0x59c40880, 0x4c040000, 0x59c408a3,
- 0x4c040000, 0x497b4002, 0x0501f892, 0x0501f8ac,
- 0x4a03a005, 0x10000000, 0x4a038805, 0x000000f0,
- 0x0501f8c6, 0x0501f916, 0x0500006c, 0x59dc0806,
- 0x82040500, 0x43200f80, 0x05000007, 0x82040500,
- 0x80000000, 0x05000004, 0x4a034408, 0x0000dddd,
- 0x0501f062, 0x59d00806, 0x82040500, 0x43dc0700,
- 0x05000007, 0x82040500, 0x80000000, 0x05000004,
- 0x4a034408, 0x0000dddd, 0x0501f058, 0x59c80001,
- 0x800001c0, 0x05fc07e8, 0x59c80018, 0x82000500,
- 0xf0000000, 0x59c00808, 0x82040d00, 0x0fffffff,
- 0x80040540, 0x48038008, 0x05edfb7b, 0x59c00006,
- 0x4a038006, 0x10000000, 0x59c00009, 0x82000d00,
- 0x00e00000, 0x05020020, 0x6403900d, 0x59c80020,
- 0x82000500, 0xff000000, 0x82000580, 0x32000000,
- 0x05020019, 0x6407900d, 0x59c80020, 0x82000500,
- 0xff000000, 0x82000580, 0xe1000000, 0x05020012,
- 0x6403900d, 0x59c80020, 0x82000500, 0x00ffffff,
- 0x6403900d, 0x59c80821, 0x82040d00, 0x00ffffff,
- 0x80040580, 0x05020008, 0x59a8003d, 0x80040580,
- 0x05020005, 0x59c40005, 0x82000500, 0x000000f0,
- 0x05000005, 0x4803c856, 0x0501f8da, 0x640750be,
- 0x0501f002, 0x0501f8e5, 0x61900000, 0x80000040,
- 0x0502001a, 0x05f5f84a, 0x0502000c, 0x59c40005,
- 0x82000500, 0x000000f0, 0x0502000b, 0x0501f8c0,
- 0x0500000c, 0x59c00007, 0x82000500, 0x000501c0,
- 0x0502000b, 0x497b4408, 0x4a034408, 0x0000aaaa,
- 0x0501f00e, 0x4a034408, 0x0000bbbb, 0x0501f00b,
- 0x4a034408, 0x0000cccc, 0x0501f008, 0x4a034408,
- 0x0000dddd, 0x0501f005, 0x59c00807, 0x90040d0c,
- 0x05fc07e3, 0x0501f002, 0x640750be, 0x0501f8c8,
- 0x0509fdf6, 0x0529fb4d, 0x0501f813, 0x4201d000,
- 0x000186a0, 0x0521fae2, 0x5c000800, 0x480788a3,
- 0x5c000800, 0x48078880, 0x59a800be, 0x800001c0,
- 0x05f804a4, 0x05f9f4f3, 0x599c0201, 0x480350bf,
- 0x41780800, 0x60401076, 0x0525fa34, 0x480b50c0,
- 0x1c01f000, 0x0525ffa7, 0x59b800ea, 0x90000507,
- 0x90000583, 0x05020002, 0x640770e8, 0x1c01f000,
- 0x600380ee, 0x4a038006, 0x30000000, 0x59c00007,
- 0x8c00050a, 0x05fe07fe, 0x59c00006, 0x59a0020a,
- 0x59a00c0a, 0x900409c0, 0x80040d40, 0x48078001,
- 0x59a0020f, 0x59a00c0f, 0x900409c0, 0x80040d40,
- 0x48078000, 0x59a0020c, 0x48038002, 0x48038003,
- 0x48038005, 0x497b9009, 0x59e00003, 0x82000540,
- 0x00008060, 0x4803c003, 0x1c01f000, 0x41780800,
- 0x8007a0ca, 0x83d3a400, 0x00007600, 0x61000800,
- 0x05f1fa72, 0x6407a00a, 0x4a03a005, 0x20000000,
- 0x59d00006, 0x4a03a005, 0x30000000, 0x59d00006,
- 0x8c00050a, 0x05fe07fe, 0x59d00005, 0x59a00211,
- 0x59a00c11, 0x900409c0, 0x80040d40, 0x4807a001,
- 0x59a0020e, 0x59a00c0e, 0x900409c0, 0x80040d40,
- 0x4807a000, 0x59a0020c, 0x4803a003, 0x4803a002,
- 0x4803a008, 0x1c01f000, 0x59a00002, 0x4803c857,
- 0x800001c0, 0x0502004d, 0x59a800ca, 0x8c000500,
- 0x05020003, 0x59a800c0, 0x48038880, 0x59c400a3,
- 0x82000540, 0x00002008, 0x8400053a, 0x480388a3,
- 0x59c40008, 0x82000500, 0xffffffe1, 0x82000540,
- 0x00000280, 0x48038808, 0x59c80040, 0x84000534,
- 0x48039040, 0x0501f8f6, 0x05020012, 0x59a8003d,
- 0x800000d0, 0x90000551, 0x48039120, 0x59a8003d,
- 0x82000500, 0x00ffffff, 0x82000540, 0x32000000,
- 0x48039121, 0x4a039123, 0xe1290008, 0x59a8003d,
- 0x82000500, 0x00ffffff, 0x48039122, 0x0501f015,
- 0x59a8003d, 0x82000500, 0x000000ff, 0x900009c0,
- 0x840001c0, 0x80040540, 0x90000540, 0x48039120,
- 0x59a8003d, 0x82000500, 0x000000ff, 0x82000540,
- 0x01000000, 0x48039121, 0x4a039123, 0x08210008,
- 0x59a8003d, 0x82000500, 0x000000ff, 0x48039122,
- 0x497b9124, 0x59a80cc1, 0x80040800, 0x480754c1,
- 0x900409c0, 0x82040540, 0x0000aaaa, 0x48039125,
- 0x497b9126, 0x497b9127, 0x59c80101, 0x0501f8c4,
- 0x05020004, 0x4a039100, 0x0000e980, 0x0501f003,
- 0x4a039100, 0x0000e9a0, 0x1c01f000, 0x90000541,
- 0x0502500b, 0x4203e000, 0x80000000, 0x40e81000,
- 0x41780800, 0x61900000, 0x0525f998, 0x5994002e,
- 0x80080400, 0x4803282e, 0x80000580, 0x1c01f000,
- 0x4d900000, 0x4dd00000, 0x4da40000, 0x4d140000,
- 0x4cd80000, 0x417a3000, 0x0529fc52, 0x0529f946,
- 0x5c01b000, 0x5c022800, 0x5c034800, 0x5c03a000,
- 0x5c032000, 0x1c01f000, 0x59c80007, 0x8c000500,
- 0x05000002, 0x64c3900d, 0x1c01f000, 0x4a038805,
- 0x00020000, 0x60f00800, 0x05f1f9e4, 0x4a038891,
- 0x0000ffff, 0x59c80035, 0x48039035, 0x6503900d,
- 0x600380ee, 0x05edfa5c, 0x4a038006, 0x20000000,
- 0x608380ee, 0x05edfa58, 0x4a038006, 0x20000000,
- 0x4a03a005, 0x20000000, 0x59d00006, 0x4a03a005,
- 0x30000000, 0x59a00207, 0xb0000585, 0x05020004,
- 0x59a0000d, 0x800001c0, 0x05000009, 0x4a03b805,
- 0x30000001, 0x59dc0006, 0x4a03b805, 0x20000000,
- 0x59dc0806, 0x8c04050a, 0x05fe07fe, 0x59d00806,
- 0x8c04050a, 0x05fe07fe, 0x1c01f000, 0x0505f824,
- 0x05f803fa, 0x58ee580d, 0x4d300000, 0x59a26001,
- 0x59a00000, 0x4000b000, 0x80000000, 0x48034000,
- 0x592c0001, 0x80000540, 0x0500001a, 0x40025800,
- 0x8058b040, 0x05fe07fb, 0x58ec1007, 0x58ec1808,
- 0x592c0a09, 0x4d2c0000, 0x58ec000d, 0x40025800,
- 0x592c0208, 0x5c025800, 0x82000580, 0x00000103,
- 0x05000006, 0x912c040a, 0x0509f96f, 0x4a01d809,
- 0x00103637, 0x0501f005, 0x912c040a, 0x0509f96c,
- 0x4a01d809, 0x00103637, 0x5c026000, 0x1c01f000,
- 0x58ec000d, 0x40025800, 0x592c0208, 0x82000580,
- 0x00000103, 0x05020004, 0x0005ffdc, 0x5c026000,
- 0x05f9f394, 0x58ec000d, 0x40025800, 0x592c0408,
- 0x8400055e, 0x48025c08, 0x61f6880f, 0x42003000,
- 0x00fffffd, 0x050dfea7, 0x59a26001, 0x05000005,
- 0x0005ffdc, 0x497b4407, 0x5c026000, 0x05f9f3c8,
- 0x053dfa6a, 0x05fc07fb, 0x4a01d809, 0x00103679,
- 0x05fdf7e2, 0x592c0009, 0x82000580, 0x01000000,
- 0x05000013, 0x4d300000, 0x59a26001, 0x5930020d,
- 0x59301c0c, 0x900001c0, 0x800c1d40, 0x5930040f,
- 0x5930120f, 0x900001c0, 0x80081540, 0x592c0a09,
- 0x912c040a, 0x0509f93a, 0x4a01d809, 0x00103637,
- 0x64074000, 0x5c026000, 0x1c01f000, 0x4d300000,
- 0x59a26001, 0x4a034408, 0x0000cccc, 0x4933c857,
- 0x052dfd3c, 0x5c026000, 0x05f9f3b2, 0x4933c857,
- 0x4c300000, 0x5930040d, 0x90000cb8, 0x05001003,
- 0x64e25a09, 0x0501f003, 0x48025a09, 0x0501f009,
- 0x800409c0, 0x05000007, 0x4c040000, 0x0509f8fc,
- 0x5c000800, 0x05000004, 0x40040000, 0x05fdf7f3,
- 0x90000541, 0x5c006000, 0x1c01f000, 0x59a00207,
- 0xb0000584, 0x1c01f000, 0x490fc857, 0x8d0c050e,
- 0x05000007, 0x05f1fcc9, 0x05020005, 0x600c0000,
- 0x05f1fe91, 0x600c0000, 0x05f1fe5f, 0x59a00407,
- 0x90000507, 0x0c01f001, 0x001036c3, 0x001036ca,
- 0x001036e2, 0x001036c2, 0x001036c2, 0x001036c2,
- 0x001036c2, 0x001036c2, 0x05f9f37e, 0x0509fcb3,
- 0x60080810, 0x05f1feec, 0x90040542, 0x60080810,
- 0x05f1feee, 0x0501f00e, 0x0509fcac, 0x60080810,
- 0x05f1fee5, 0x90040541, 0x60080810, 0x05f1fee7,
- 0x60300848, 0x05f1fee0, 0x82040540, 0x00000080,
- 0x60300848, 0x05f1fee1, 0x0501f001, 0x59c80040,
- 0x4c000000, 0x59a8003d, 0x4c000000, 0x59c400a3,
- 0x4c000000, 0x59c40008, 0x4c000000, 0x0501f929,
- 0x0500003a, 0x05e5fef9, 0x8d0c050e, 0x05000023,
- 0x59c40006, 0x84000500, 0x48038806, 0x0529f96e,
- 0x497b8880, 0x59c400a3, 0x82000500, 0xfcf8ffff,
- 0x480388a3, 0x6012d800, 0x64078805, 0x05e9f90f,
- 0x05f1fe1c, 0x497b5068, 0x64075075, 0x59a800a7,
- 0x84000540, 0x480350a7, 0x4803c857, 0x4a01d809,
- 0x001036fb, 0x64535078, 0x1c01f000, 0x42000000,
- 0x0010dd09, 0x50000800, 0x84040d08, 0x44040000,
- 0x59a800a7, 0x84000500, 0x480350a7, 0x4803c857,
- 0x8d0c050e, 0x05fa033f, 0x0515f9a8, 0x05020003,
- 0x645b4407, 0x05f9f332, 0x916c0583, 0x05fa0339,
- 0x59c408a4, 0x90040d0f, 0x90040580, 0x05fa0335,
- 0x0509fc17, 0x05fa033b, 0x59c80040, 0x4c000000,
- 0x59a8003d, 0x4c000000, 0x59c400a3, 0x4c000000,
- 0x59c40008, 0x4c000000, 0x59c40080, 0x4c000000,
- 0x59a00210, 0x59a0bc10, 0x905cb9c0, 0x805cbd40,
- 0x41784800, 0x41785000, 0x41785800, 0x41789000,
- 0x41789800, 0x05fdfe31, 0x64034408, 0x0525fdec,
- 0x598e600b, 0x0529f8e7, 0x0525fde9, 0x417a3000,
- 0x0529fb28, 0x59926005, 0x813261c0, 0x05000007,
- 0x0529f819, 0x0525fdb2, 0x0525fdb7, 0x60027820,
- 0x60ba8000, 0x0525fc6b, 0x811a3000, 0x91180485,
- 0x05fc17f4, 0x05e9fd5e, 0x4178c000, 0x497b4002,
- 0x0501f936, 0x59a00408, 0x82000580, 0x0000dddd,
- 0x05000072, 0x0501f976, 0x59a00408, 0x82000580,
- 0x0000dddd, 0x0500006d, 0x59a0020d, 0x59a00c0d,
- 0x80040d40, 0x05000002, 0x0501f9b8, 0x0501f9b7,
- 0x05fdfe52, 0x8060c1c0, 0x05020014, 0x0501fa49,
- 0x59a00408, 0x82000580, 0x0000dddd, 0x0500005f,
- 0x05fdfe9b, 0x0502000a, 0x05f1fe1d, 0x05020006,
- 0x645f4407, 0x05f9fae2, 0x4203e000, 0x50000000,
- 0x0501f000, 0x60a85955, 0x0501f059, 0x59c80001,
- 0x800001c0, 0x05fc07ee, 0x59c80801, 0x800409c0,
- 0x05000006, 0x0501fa21, 0x40240000, 0x80280540,
- 0x802c0540, 0x0502004e, 0x59a00002, 0x82000580,
- 0xfeedbeef, 0x05000004, 0x42008800, 0x10000000,
- 0x0501f003, 0x42008800, 0x10000004, 0x0501f9cf,
- 0x4a034002, 0xfeedbeef, 0x0501fa22, 0x59a00408,
- 0x82000580, 0x0000dddd, 0x05000038, 0x0501fa4e,
- 0x59a00408, 0x82000580, 0x0000dddd, 0x05000033,
- 0x05fdfe8a, 0x59c40005, 0x8c000534, 0x05000003,
- 0x60ec5977, 0x0501f032, 0x05fdfe69, 0x05020006,
- 0x61305999, 0x485f4210, 0x905cb9c0, 0x485f4410,
- 0x0501f02b, 0x59a0040d, 0x800001c0, 0x0500000e,
- 0x59a26000, 0x5930000f, 0x800001c0, 0x05fe07b8,
- 0x59a26001, 0x5930080f, 0x800409c0, 0x05fe07b4,
- 0x804891c0, 0x05fe07b2, 0x804c99c0, 0x05fe07b0,
- 0x0501f85f, 0x805cb840, 0x05000005, 0x40240000,
- 0x80280540, 0x802c0540, 0x05020015, 0x42000000,
- 0x00030d40, 0x80000040, 0x0502000e, 0x59c00007,
- 0x82000500, 0x000501c0, 0x05020008, 0x05f1fdc8,
- 0x05020006, 0x645f4407, 0x05f9fa8d, 0x4203e000,
- 0x50000000, 0x0501f000, 0x617459bb, 0x0501f004,
- 0x59c00807, 0x90040d0c, 0x05fc07ef, 0x05fdfe45,
- 0x59a0040d, 0x800001c0, 0x05000002, 0x0501f840,
- 0x05fdfe53, 0x40240000, 0x80280540, 0x802c0540,
- 0x05020003, 0x805cb9c0, 0x05fe0778, 0x0509fb7b,
- 0x0529f8d2, 0x05fdfd98, 0x4201d000, 0x000186a0,
- 0x0521f867, 0x5c000800, 0x48078880, 0x5c000800,
- 0x48078808, 0x5c000800, 0x480788a3, 0x5c000800,
- 0x4807503d, 0x5c000800, 0x48079040, 0x05e9fb22,
- 0x59a00407, 0x90000503, 0x90000582, 0x0500001c,
- 0x60080810, 0x05f1fdd8, 0x82040500, 0xfffffffc,
- 0x60080810, 0x05f1fdd9, 0x60300848, 0x05f1fdd2,
- 0x82040500, 0xffffff7f, 0x60300848, 0x05f1fdd3,
- 0x0515f8d6, 0x05020003, 0x0515fc70, 0x0501f00c,
- 0x4a0388a7, 0x0000f7f7, 0x42006000, 0xbeffffff,
- 0x42006800, 0x80018000, 0x050dfa69, 0x42006000,
- 0xfffeffff, 0x41786800, 0x050dfa65, 0x402c0000,
- 0x80280540, 0x80240540, 0x05f80202, 0x48274407,
- 0x482b4208, 0x482f4408, 0x05f9f252, 0x59a26000,
- 0x813261c0, 0x0500000a, 0x59325809, 0x812e59c0,
- 0x05000007, 0x0005ffdc, 0x05e9f999, 0x59a26001,
- 0x59325809, 0x0005ffdc, 0x05e9f995, 0x1c01f000,
- 0x61bc0801, 0x05f1fae9, 0x4a03503d, 0x000000ef,
- 0x59c400a3, 0x8400055a, 0x8400053a, 0x480388a3,
- 0x05f1fb52, 0x05020006, 0x60040000, 0x05f1fd32,
- 0x60040000, 0x05f1fd00, 0x0501f013, 0x05f1fb51,
- 0x05020006, 0x60000000, 0x05f1fd2b, 0x60000000,
- 0x05f1fcf9, 0x0501f00c, 0x05f1fb50, 0x05020006,
- 0x60080000, 0x05f1fd24, 0x60080000, 0x05f1fcf2,
- 0x0501f005, 0x600c0000, 0x05f1fd1f, 0x600c0000,
- 0x05f1fced, 0x6051d000, 0x051dffdb, 0x59c40008,
+ 0x05ea0b40, 0x59a00208, 0x599c0818, 0x8c040510,
+ 0x05000002, 0x8400054a, 0x48035006, 0x59a8103f,
+ 0x4c000000, 0x8c000510, 0x0502000e, 0x800811c0,
+ 0x0500001b, 0x497b503f, 0x497b523e, 0x42017800,
+ 0x00115aa4, 0x40bec000, 0x59a80a9f, 0x90050420,
+ 0x59a8003d, 0x8006cc00, 0x4967503d, 0x0501f010,
+ 0x800811c0, 0x0502000e, 0x59a80a9f, 0x4807523e,
+ 0x4a03503f, 0x00115aa4, 0x60c01000, 0x0525ff4c,
+ 0x82057c00, 0x00115aa4, 0x40bec000, 0x60810000,
+ 0x59aacc3e, 0x9166cc20, 0x4967503d, 0x5c000000,
+ 0x59a00408, 0x8c00051a, 0x05000009, 0x600018ec,
+ 0x60140800, 0x580c1006, 0x4a001805, 0x70000005,
+ 0x900c1c20, 0x80040840, 0x05fe07fb, 0x48035007,
+ 0x05f9f5ac, 0x8d0c050e, 0x05000003, 0x64074407,
+ 0x05f9f5eb, 0x0515fe9f, 0x05020003, 0x645b4407,
+ 0x05f9f5e7, 0x916c0583, 0x05000003, 0x641f4407,
+ 0x05f9f5e3, 0x59a00c07, 0x82040500, 0xffffff00,
+ 0x05fa05e4, 0x82041580, 0x000000ff, 0x05020007,
+ 0x59a80040, 0x82000500, 0x000000ff, 0x82001540,
+ 0x0000ff00, 0x0501f00f, 0x82040400, 0x001028fb,
+ 0x50000000, 0x80000110, 0x82000580, 0x00000080,
+ 0x05f805d4, 0x59a80040, 0x82000500, 0x000000ff,
+ 0x80041580, 0x05f805cf, 0x840409c0, 0x80041540,
+ 0x4c080000, 0x0531fbfb, 0x5c001000, 0x05020003,
+ 0x640f4407, 0x05f9f5c2, 0x48ee602d, 0x480a621e,
+ 0x4a02641e, 0x0000bc09, 0x64066407, 0x0509fc1a,
+ 0x05020004, 0x0009f810, 0x640b4407, 0x05f9f5b8,
+ 0x497a5a08, 0x4a02601d, 0x001124b6, 0x497a5809,
+ 0x4a025c08, 0x00008000, 0x4a01d809, 0x00103579,
+ 0x492e6009, 0x60ca7000, 0x0009f039, 0x8d0c050e,
+ 0x05000003, 0x64074407, 0x05f9f5a9, 0x0515fe5d,
+ 0x05020003, 0x645b4407, 0x05f9f5a5, 0x916c0583,
+ 0x05000003, 0x641f4407, 0x05f9f5a1, 0x59a00c07,
+ 0x82040500, 0xffffff00, 0x05fa05a2, 0x82041580,
+ 0x000000ff, 0x05020007, 0x59a80040, 0x82000500,
+ 0x000000ff, 0x82001540, 0x0000ff00, 0x0501f00f,
+ 0x82040400, 0x001028fb, 0x50000000, 0x80000110,
+ 0x82000580, 0x00000080, 0x05f80592, 0x59a80040,
+ 0x82000500, 0x000000ff, 0x80041580, 0x05f8058d,
+ 0x840409c0, 0x80041540, 0x4c080000, 0x0531fbb9,
+ 0x5c001000, 0x05020003, 0x640f4407, 0x05f9f580,
+ 0x48ee602d, 0x480a621e, 0x4a02641e, 0x0000bc05,
+ 0x64066407, 0x0509fbd8, 0x05020004, 0x0009f810,
+ 0x640b4407, 0x05f9f576, 0x497a5a08, 0x4a02601d,
+ 0x001124b6, 0x497a5809, 0x4a025c08, 0x00008000,
+ 0x4a01d809, 0x00103579, 0x492e6009, 0x60ca7000,
+ 0x0009f039, 0x592c0009, 0x82000580, 0x01000000,
+ 0x05fa0524, 0x64134407, 0x05f9f565, 0x497b4407,
+ 0x497b4208, 0x8d0c0520, 0x05000008, 0x59a8009b,
+ 0x59a8089c, 0x80040480, 0x59a8089d, 0x48074407,
+ 0x80041480, 0x480b4208, 0x0509fce5, 0x48034408,
+ 0x59a8043e, 0x4803420a, 0x495f440a, 0x59a8004b,
+ 0x4803420c, 0x4a03440c, 0x000000fe, 0x05f9f50d,
+ 0x8d0c050e, 0x05000003, 0x64074407, 0x05f9f54c,
+ 0x59a00407, 0x8c000500, 0x0502000d, 0x59a8009e,
+ 0x81640480, 0x05001008, 0x59a8000b, 0x81500580,
+ 0x05000007, 0x59a8009c, 0x59a8109b, 0x80080580,
+ 0x05000003, 0x64634407, 0x05f9f53d, 0x850e1d58,
+ 0x4803c856, 0x850e1d46, 0x050df911, 0x05f9f4f5,
+ 0x4803c856, 0x8d0c050e, 0x05fa053e, 0x59a00407,
+ 0x8c00051e, 0x05000007, 0x4803c856, 0x59a0020c,
+ 0x82000480, 0x00000800, 0x0500100f, 0x05f9f531,
+ 0x4803c856, 0x59a0020c, 0x599c0a01, 0x80040480,
+ 0x05021002, 0x05f9f52b, 0x59a8003d, 0x81640580,
+ 0x05000005, 0x64634407, 0x05f9f521, 0x64174407,
+ 0x05f9f51f, 0x59a8024c, 0x8c00050a, 0x05fc07fc,
+ 0x59a00407, 0x8c00051e, 0x05000033, 0x0531fb4d,
+ 0x05020003, 0x640f4407, 0x05f9f515, 0x0509fb72,
+ 0x05020004, 0x0009f810, 0x640b4407, 0x05f9f510,
+ 0x497a5a08, 0x59a00407, 0x4802620c, 0x59a0020a,
+ 0x4802640c, 0x59a0040a, 0x4802620d, 0x59a0020e,
+ 0x4802620e, 0x59a0040e, 0x4802640e, 0x59a0020f,
+ 0x4802620f, 0x59a0040f, 0x4802640f, 0x59a00211,
+ 0x48026210, 0x59a00411, 0x48026410, 0x59a0020c,
+ 0x4802640d, 0x0501f9f9, 0x05fc07e7, 0x48ee602d,
+ 0x58ee580d, 0x59300210, 0x59301c10, 0x900c19c0,
+ 0x800c1d40, 0x5930020e, 0x5930140e, 0x900811c0,
+ 0x80081540, 0x592c0a09, 0x912c040a, 0x0509fb6c,
+ 0x4a01d809, 0x00103782, 0x64074000, 0x49334001,
+ 0x1c01f000, 0x0509fecd, 0x05fa04f2, 0x0529fbd2,
+ 0x598e600b, 0x0529fecd, 0x0529fbcf, 0x417a3000,
+ 0x052df90e, 0x59926005, 0x813261c0, 0x05000007,
+ 0x0529fdff, 0x0529fb98, 0x0529fb9d, 0x60027820,
+ 0x60ba8000, 0x0529fa52, 0x811a3000, 0x91180485,
+ 0x05fc17f4, 0x05e9ff22, 0x0501f88f, 0x497b50c3,
+ 0x64034408, 0x4201d000, 0x003d0900, 0x0521fe83,
+ 0x59c40880, 0x4c040000, 0x59c408a3, 0x4c040000,
+ 0x497b4002, 0x0501f892, 0x0501f8ac, 0x4a03a005,
+ 0x10000000, 0x4a038805, 0x000000f0, 0x0501f8c6,
+ 0x0501f916, 0x0500006c, 0x59dc0806, 0x82040500,
+ 0x43200f80, 0x05000007, 0x82040500, 0x80000000,
+ 0x05000004, 0x4a034408, 0x0000dddd, 0x0501f062,
+ 0x59d00806, 0x82040500, 0x43dc0700, 0x05000007,
+ 0x82040500, 0x80000000, 0x05000004, 0x4a034408,
+ 0x0000dddd, 0x0501f058, 0x59c80001, 0x800001c0,
+ 0x05fc07e8, 0x59c80018, 0x82000500, 0xf0000000,
+ 0x59c00808, 0x82040d00, 0x0fffffff, 0x80040540,
+ 0x48038008, 0x05edface, 0x59c00006, 0x4a038006,
+ 0x10000000, 0x59c00009, 0x82000d00, 0x00e00000,
+ 0x05020020, 0x6403900d, 0x59c80020, 0x82000500,
+ 0xff000000, 0x82000580, 0x32000000, 0x05020019,
+ 0x6407900d, 0x59c80020, 0x82000500, 0xff000000,
+ 0x82000580, 0xe1000000, 0x05020012, 0x6403900d,
+ 0x59c80020, 0x82000500, 0x00ffffff, 0x6403900d,
+ 0x59c80821, 0x82040d00, 0x00ffffff, 0x80040580,
+ 0x05020008, 0x59a80040, 0x80040580, 0x05020005,
+ 0x59c40005, 0x82000500, 0x000000f0, 0x05000005,
+ 0x4803c856, 0x0501f8da, 0x640750c3, 0x0501f002,
+ 0x0501f8e5, 0x61900000, 0x80000040, 0x0502001a,
+ 0x05f1ff7f, 0x0502000c, 0x59c40005, 0x82000500,
+ 0x000000f0, 0x0502000b, 0x0501f8c0, 0x0500000c,
+ 0x59c00007, 0x82000500, 0x000501c0, 0x0502000b,
+ 0x497b4408, 0x4a034408, 0x0000aaaa, 0x0501f00e,
+ 0x4a034408, 0x0000bbbb, 0x0501f00b, 0x4a034408,
+ 0x0000cccc, 0x0501f008, 0x4a034408, 0x0000dddd,
+ 0x0501f005, 0x59c00807, 0x90040d0c, 0x05fc07e3,
+ 0x0501f002, 0x640750c3, 0x0501f8c8, 0x0509fe4e,
+ 0x0529fec0, 0x0501f813, 0x4201d000, 0x000186a0,
+ 0x0521fe02, 0x5c000800, 0x480788a3, 0x5c000800,
+ 0x48078880, 0x59a800c3, 0x800001c0, 0x05f80401,
+ 0x05f9f450, 0x599c0201, 0x480350c4, 0x41780800,
+ 0x60401076, 0x0525fda2, 0x480b50c5, 0x1c01f000,
+ 0x0529fb1a, 0x59b800ea, 0x90000507, 0x90000583,
+ 0x05020002, 0x640770e8, 0x1c01f000, 0x600380ee,
+ 0x4a038006, 0x30000000, 0x59c00007, 0x8c00050a,
+ 0x05fe07fe, 0x59c00006, 0x59a0020a, 0x59a00c0a,
+ 0x900409c0, 0x80040d40, 0x48078001, 0x59a0020f,
+ 0x59a00c0f, 0x900409c0, 0x80040d40, 0x48078000,
+ 0x59a0020c, 0x48038002, 0x48038003, 0x48038005,
+ 0x497b9009, 0x59e00003, 0x82000540, 0x00008060,
+ 0x4803c003, 0x1c01f000, 0x41780800, 0x8007a0ca,
+ 0x83d3a400, 0x00007600, 0x61000800, 0x05f1f998,
+ 0x6407a00a, 0x4a03a005, 0x20000000, 0x59d00006,
+ 0x4a03a005, 0x30000000, 0x59d00006, 0x8c00050a,
+ 0x05fe07fe, 0x59d00005, 0x59a00211, 0x59a00c11,
+ 0x900409c0, 0x80040d40, 0x4807a001, 0x59a0020e,
+ 0x59a00c0e, 0x900409c0, 0x80040d40, 0x4807a000,
+ 0x59a0020c, 0x4803a003, 0x4803a002, 0x4803a008,
+ 0x1c01f000, 0x59a00002, 0x4803c857, 0x800001c0,
+ 0x0502004d, 0x59a800cf, 0x8c000500, 0x05020003,
+ 0x59a800c5, 0x48038880, 0x59c400a3, 0x82000540,
+ 0x00002008, 0x8400053a, 0x480388a3, 0x59c40008,
0x82000500, 0xffffffe1, 0x82000540, 0x00000280,
- 0x48038808, 0x4a0388a7, 0x0000f8f7, 0x4a038805,
- 0x04000001, 0x42006000, 0xbe20bfff, 0x42006800,
- 0x80018000, 0x050dfa1e, 0x42006000, 0xfffeffff,
- 0x41786800, 0x050dfa1a, 0x6020b027, 0x6051d000,
- 0x4c580000, 0x051dffc4, 0x05f1fd31, 0x5c00b000,
- 0x05000004, 0x8058b040, 0x05fe07f9, 0x0501f029,
- 0x59c40005, 0x8c000534, 0x05020005, 0x59c400a4,
- 0x9000050f, 0x90000588, 0x05020022, 0x42006000,
- 0x00020000, 0x050dfa0b, 0x6191d000, 0x051dffb2,
- 0x42006000, 0xfeffffff, 0x42006800, 0x02000000,
- 0x050df9ff, 0x42006000, 0xfdffffff, 0x41786800,
- 0x050df9fb, 0x59c40001, 0x82000500, 0x00018000,
- 0x82000580, 0x00018000, 0x59c400a3, 0x05020004,
- 0x82000540, 0x00001000, 0x0501f003, 0x82000500,
- 0xffffefff, 0x480388a3, 0x4a038805, 0x04000001,
- 0x59c400a4, 0x9000050f, 0x90000580, 0x05000002,
- 0x90000541, 0x1c01f000, 0x4803c856, 0x600380ee,
- 0x05edf801, 0x59c00006, 0x59a0040d, 0x800001c0,
- 0x05000037, 0x59a03c0d, 0x59a0020a, 0x59a01c0a,
- 0x900c19c0, 0x800c1d40, 0x59a0020f, 0x59a0240f,
- 0x901021c0, 0x80102540, 0x59a0020c, 0x82000500,
- 0x0000fffc, 0x59a0140c, 0x900811c0, 0x80081540,
- 0x480b8003, 0x052dfb7a, 0x05e40d50, 0x49334000,
- 0x05e9f8f6, 0x64625a08, 0x4a025809, 0x00abcdef,
- 0x492e6009, 0x492e600d, 0x481e600f, 0x6412600e,
- 0x912c0415, 0x4802600c, 0x60301000, 0x901c0d81,
- 0x05000008, 0x801c3840, 0x0501f963, 0x59a00408,
- 0x82000580, 0x0000dddd, 0x05000011, 0x0501f004,
- 0x41783800, 0x0501f95c, 0x0501f00d, 0x901c0c85,
- 0x05001004, 0x40043800, 0x60f01000, 0x0501f005,
- 0x80001580, 0x9008140c, 0x801c3840, 0x05fe07fe,
- 0x912c0409, 0x0501f950, 0x05fe07f5, 0x497b9009,
- 0x59e00003, 0x82000540, 0x00008060, 0x4803c003,
- 0x4a038009, 0x00e00000, 0x1c01f000, 0x4803c856,
- 0x41780800, 0x8007a0ca, 0x83d3a400, 0x00007600,
- 0x61000800, 0x05edff39, 0x6407a00a, 0x4a03a005,
+ 0x48038808, 0x59c80040, 0x84000534, 0x48039040,
+ 0x0501f8f6, 0x05020012, 0x59a80040, 0x800000d0,
+ 0x90000551, 0x48039120, 0x59a80040, 0x82000500,
+ 0x00ffffff, 0x82000540, 0x32000000, 0x48039121,
+ 0x4a039123, 0xe1290008, 0x59a80040, 0x82000500,
+ 0x00ffffff, 0x48039122, 0x0501f015, 0x59a80040,
+ 0x82000500, 0x000000ff, 0x900009c0, 0x840001c0,
+ 0x80040540, 0x90000540, 0x48039120, 0x59a80040,
+ 0x82000500, 0x000000ff, 0x82000540, 0x01000000,
+ 0x48039121, 0x4a039123, 0x08210008, 0x59a80040,
+ 0x82000500, 0x000000ff, 0x48039122, 0x497b9124,
+ 0x59a80cc6, 0x80040800, 0x480754c6, 0x900409c0,
+ 0x82040540, 0x0000aaaa, 0x48039125, 0x497b9126,
+ 0x497b9127, 0x59c80101, 0x0501f8c4, 0x05020004,
+ 0x4a039100, 0x0000e980, 0x0501f003, 0x4a039100,
+ 0x0000e9a0, 0x1c01f000, 0x90000541, 0x0502500b,
+ 0x4203e000, 0x80000000, 0x40e81000, 0x41780800,
+ 0x61900000, 0x0525fd06, 0x5994002f, 0x80080400,
+ 0x4803282f, 0x80000580, 0x1c01f000, 0x4d900000,
+ 0x4dd00000, 0x4da40000, 0x4d140000, 0x4cd80000,
+ 0x417a3000, 0x0529ffc5, 0x0529fcb9, 0x5c01b000,
+ 0x5c022800, 0x5c034800, 0x5c03a000, 0x5c032000,
+ 0x1c01f000, 0x59c80007, 0x8c000500, 0x05000002,
+ 0x64c3900d, 0x1c01f000, 0x4a038805, 0x00020000,
+ 0x60f00800, 0x05f1f90a, 0x4a038891, 0x0000ffff,
+ 0x59c80035, 0x48039035, 0x6503900d, 0x600380ee,
+ 0x05edf9af, 0x4a038006, 0x20000000, 0x608380ee,
+ 0x05edf9ab, 0x4a038006, 0x20000000, 0x4a03a005,
0x20000000, 0x59d00006, 0x4a03a005, 0x30000000,
- 0x59d00006, 0x8c00050a, 0x05fe07fe, 0x59d00005,
- 0x59a0020d, 0x800001c0, 0x05000037, 0x59a03a0d,
- 0x59a00211, 0x59a01c11, 0x900c19c0, 0x800c1d40,
- 0x59a0020e, 0x59a0240e, 0x901021c0, 0x80102540,
- 0x59a0120c, 0x82081500, 0x0000fffc, 0x59a0040c,
- 0x900001c0, 0x80081540, 0x480ba003, 0x052dfb28,
- 0x05e40cfe, 0x49334001, 0x05e9f8a4, 0x64625a08,
- 0x4a025809, 0x00abcdef, 0x492e6009, 0x492e600d,
- 0x481e600f, 0x6412600e, 0x912c0415, 0x4802600c,
- 0x60301000, 0x901c0d81, 0x05000008, 0x801c3840,
- 0x0501f911, 0x59a00408, 0x82000580, 0x0000dddd,
- 0x05000011, 0x0501f004, 0x41783800, 0x0501f90a,
- 0x0501f00d, 0x901c0c85, 0x05001004, 0x40043800,
- 0x60f01000, 0x0501f005, 0x80001580, 0x9008140c,
- 0x801c3840, 0x05fe07fe, 0x912c0409, 0x0501f8fe,
- 0x05fe07f5, 0x1c01f000, 0x4803c856, 0x59a0020d,
- 0x800001c0, 0x05000020, 0x904c0582, 0x0500003a,
- 0x59a26001, 0x5930380f, 0x801c39c0, 0x05000036,
- 0x801c3840, 0x481e600f, 0x5932580d, 0x5930080c,
- 0x50042000, 0x58041801, 0x58041002, 0x82081500,
- 0xfffffffc, 0x5930000e, 0x80000000, 0x90000d85,
- 0x05020008, 0x497a600e, 0x592e5801, 0x812e59c0,
- 0x05000018, 0x492e600d, 0x912c0c09, 0x0501f004,
- 0x4802600e, 0x5930080c, 0x90040c03, 0x4806600c,
- 0x0501f010, 0x59a0120c, 0x82081500, 0x0000fffc,
+ 0x59a00207, 0xb0000585, 0x05020004, 0x59a0000d,
+ 0x800001c0, 0x05000009, 0x4a03b805, 0x30000001,
+ 0x59dc0006, 0x4a03b805, 0x20000000, 0x59dc0806,
+ 0x8c04050a, 0x05fe07fe, 0x59d00806, 0x8c04050a,
+ 0x05fe07fe, 0x1c01f000, 0x0505f84f, 0x05f80357,
+ 0x58ee580d, 0x4d300000, 0x59a26001, 0x59a00000,
+ 0x4000b000, 0x80000000, 0x48034000, 0x592c0001,
+ 0x80000540, 0x0500001a, 0x40025800, 0x8058b040,
+ 0x05fe07fb, 0x58ec1007, 0x58ec1808, 0x592c0a09,
+ 0x4d2c0000, 0x58ec000d, 0x40025800, 0x592c0208,
+ 0x5c025800, 0x82000580, 0x00000103, 0x05000006,
+ 0x912c040a, 0x0509f9c6, 0x4a01d809, 0x00103782,
+ 0x0501f005, 0x912c040a, 0x0509f9c3, 0x4a01d809,
+ 0x00103782, 0x5c026000, 0x1c01f000, 0x58ec000d,
+ 0x40025800, 0x592c0208, 0x82000580, 0x00000103,
+ 0x05020004, 0x0009f810, 0x5c026000, 0x05f9f2f1,
+ 0x58ec000d, 0x40025800, 0x592c0408, 0x8400055e,
+ 0x48025c08, 0x61f6880f, 0x42003000, 0x00fffffd,
+ 0x050dff77, 0x59a26001, 0x05000005, 0x0009f810,
+ 0x497b4407, 0x5c026000, 0x05f9f325, 0x053dfeb7,
+ 0x05fc07fb, 0x4a01d809, 0x001037c4, 0x05fdf7e2,
+ 0x592c0009, 0x82000580, 0x01000000, 0x05000013,
+ 0x4d300000, 0x59a26001, 0x5930020d, 0x59301c0c,
+ 0x900001c0, 0x800c1d40, 0x5930040f, 0x5930120f,
+ 0x900001c0, 0x80081540, 0x592c0a09, 0x912c040a,
+ 0x0509f991, 0x4a01d809, 0x00103782, 0x64074000,
+ 0x5c026000, 0x1c01f000, 0x4d300000, 0x59a26001,
+ 0x4a034408, 0x0000cccc, 0x4933c857, 0x0531f906,
+ 0x5c026000, 0x05f9f30f, 0x4933c857, 0x4c300000,
+ 0x5930040d, 0x90000cb8, 0x05001003, 0x64e25a09,
+ 0x0501f003, 0x48025a09, 0x0501f009, 0x800409c0,
+ 0x05000007, 0x4c040000, 0x0509f953, 0x5c000800,
+ 0x05000004, 0x40040000, 0x05fdf7f3, 0x90000541,
+ 0x5c006000, 0x1c01f000, 0x59a00207, 0xb0000584,
+ 0x1c01f000, 0x490fc857, 0x8d0c050e, 0x05000007,
+ 0x05f1fbfe, 0x05020005, 0x600c0000, 0x05f1fdc6,
+ 0x600c0000, 0x05f1fd94, 0x59a00407, 0x90000507,
+ 0x0c01f001, 0x0010380e, 0x00103815, 0x0010383c,
+ 0x0010380d, 0x0010380d, 0x0010380d, 0x0010380d,
+ 0x0010380d, 0x05f9f2db, 0x0509fd5c, 0x60080810,
+ 0x05f1fe21, 0x90040542, 0x60080810, 0x05f1fe23,
+ 0x0501f00d, 0x60080810, 0x05f1fe1b, 0x90040541,
+ 0x60080810, 0x05f1fe1d, 0x60300848, 0x05f1fe16,
+ 0x82040540, 0x00000080, 0x60300848, 0x05f1fe17,
+ 0x0501f001, 0x0509fd49, 0x59c80040, 0x4c000000,
+ 0x59a80040, 0x4c000000, 0x59c400a3, 0x4c000000,
+ 0x59c40008, 0x4c000000, 0x0501f948, 0x05000049,
+ 0x0515fbac, 0x42006000, 0xfeffffff, 0x42006800,
+ 0x02000000, 0x050dfc1d, 0x42006000, 0xfdffffff,
+ 0x41786800, 0x050dfc19, 0x05f1fdf5, 0x59c408a4,
+ 0x90040d0f, 0x90040d80, 0x0500003a, 0x05e5fdda,
+ 0x8d0c050e, 0x05000023, 0x59c40006, 0x84000500,
+ 0x48038806, 0x0529fcd2, 0x497b8880, 0x59c400a3,
+ 0x82000500, 0xfcf8ffff, 0x480388a3, 0x6012d800,
+ 0x64078805, 0x05e5ffe4, 0x05f1fd42, 0x497b506b,
+ 0x64075078, 0x59a800aa, 0x84000540, 0x480350aa,
+ 0x4803c857, 0x4a01d809, 0x00103855, 0x6453507b,
+ 0x1c01f000, 0x42000000, 0x00111c8f, 0x50000800,
+ 0x84040d08, 0x44040000, 0x59a800aa, 0x84000500,
+ 0x480350aa, 0x4803c857, 0x8d0c050e, 0x05fa028d,
+ 0x0515fb38, 0x05020003, 0x645b4407, 0x05f9f280,
+ 0x916c0583, 0x05fa0287, 0x59c408a4, 0x90040d0f,
+ 0x90040580, 0x05fa0283, 0x0509fc60, 0x05fa0289,
+ 0x59c80040, 0x4c000000, 0x59a80040, 0x4c000000,
+ 0x59c400a3, 0x4c000000, 0x59c40008, 0x4c000000,
+ 0x59c40080, 0x4c000000, 0x59a00210, 0x59a0bc10,
+ 0x905cb9c0, 0x805cbd40, 0x41784800, 0x41785000,
+ 0x41785800, 0x41789000, 0x41789800, 0x05fdfe22,
+ 0x64034408, 0x0529f950, 0x598e600b, 0x0529fc4b,
+ 0x0529f94d, 0x417a3000, 0x0529fe8c, 0x59926005,
+ 0x813261c0, 0x05000007, 0x0529fb7d, 0x0529f916,
+ 0x0529f91b, 0x60027820, 0x60ba8000, 0x0525ffd0,
+ 0x811a3000, 0x91180485, 0x05fc17f4, 0x05e9fca0,
+ 0x4178c000, 0x497b4002, 0x0501f94d, 0x59a00408,
+ 0x82000580, 0x0000dddd, 0x05000082, 0x0501f98d,
+ 0x59a00408, 0x82000580, 0x0000dddd, 0x0500007d,
+ 0x59a0020d, 0x59a00c0d, 0x80040d40, 0x05000002,
+ 0x0501f9cf, 0x0501f9ce, 0x05fdfe43, 0x8060c1c0,
+ 0x0502001c, 0x0501fa62, 0x59a00408, 0x82000580,
+ 0x0000dddd, 0x0500006f, 0x05fdfe8c, 0x05020012,
+ 0x05f1fd43, 0x0502000e, 0x59c40004, 0x48034409,
+ 0x59c400a4, 0x4803420a, 0x59c40005, 0x4803440a,
+ 0x4a034209, 0x00000555, 0x645f4407, 0x05f9fa28,
+ 0x4203e000, 0x50000000, 0x0501f000, 0x60a85955,
+ 0x0501f061, 0x59c80001, 0x800001c0, 0x05fc07e6,
+ 0x59c80801, 0x800409c0, 0x05000006, 0x0501fa32,
+ 0x40240000, 0x80280540, 0x802c0540, 0x05020056,
+ 0x59a00002, 0x82000580, 0xfeedbeef, 0x05000004,
+ 0x42008800, 0x10000000, 0x0501f003, 0x42008800,
+ 0x10000004, 0x0501f9df, 0x4a034002, 0xfeedbeef,
+ 0x0501fa33, 0x59a00408, 0x82000580, 0x0000dddd,
+ 0x05000040, 0x0501fa5f, 0x59a00408, 0x82000580,
+ 0x0000dddd, 0x0500003b, 0x05fdfe73, 0x59c40005,
+ 0x8c000534, 0x05000003, 0x60ec5977, 0x0501f03a,
+ 0x05fdfe52, 0x05020006, 0x61305999, 0x485f4210,
+ 0x905cb9c0, 0x485f4410, 0x0501f033, 0x59a0040d,
+ 0x800001c0, 0x0500000e, 0x59a26000, 0x5930000f,
+ 0x800001c0, 0x05fe07b0, 0x59a26001, 0x5930080f,
+ 0x800409c0, 0x05fe07ac, 0x804891c0, 0x05fe07aa,
+ 0x804c99c0, 0x05fe07a8, 0x0501f867, 0x805cb840,
+ 0x05000005, 0x40240000, 0x80280540, 0x802c0540,
+ 0x0502001d, 0x42000000, 0x00030d40, 0x80000040,
+ 0x05020016, 0x59c00007, 0x82000500, 0x000501c0,
+ 0x05020010, 0x05f1fce6, 0x0502000e, 0x59c40004,
+ 0x48034409, 0x59c400a4, 0x4803420a, 0x59c40005,
+ 0x4803440a, 0x4a034209, 0x00000666, 0x645f4407,
+ 0x05f9f9cb, 0x4203e000, 0x50000000, 0x0501f000,
+ 0x617459bb, 0x0501f004, 0x59c00807, 0x90040d0c,
+ 0x05fc07e7, 0x05fdfe26, 0x59a0040d, 0x800001c0,
+ 0x05000002, 0x0501f840, 0x05fdfe34, 0x40240000,
+ 0x80280540, 0x802c0540, 0x05020003, 0x805cb9c0,
+ 0x05fe0768, 0x0509fbb4, 0x0529fc26, 0x05fdfd79,
+ 0x4201d000, 0x000186a0, 0x0521fb68, 0x5c000800,
+ 0x48078880, 0x5c000800, 0x48078808, 0x5c000800,
+ 0x480788a3, 0x5c000800, 0x48075040, 0x5c000800,
+ 0x48079040, 0x05e9fa1a, 0x59a00407, 0x90000503,
+ 0x90000582, 0x0500001c, 0x60080810, 0x05f1fcee,
+ 0x82040500, 0xfffffffc, 0x60080810, 0x05f1fcef,
+ 0x60300848, 0x05f1fce8, 0x82040500, 0xffffff7f,
+ 0x60300848, 0x05f1fce9, 0x0515fa56, 0x05020003,
+ 0x0515fdf6, 0x0501f00c, 0x4a0388a7, 0x0000f7f7,
+ 0x42006000, 0xbeffffff, 0x42006800, 0x80018000,
+ 0x050dfaf6, 0x42006000, 0xfffeffff, 0x41786800,
+ 0x050dfaf2, 0x402c0000, 0x80280540, 0x80240540,
+ 0x05f80140, 0x48274407, 0x482b4208, 0x482f4408,
+ 0x05f9f190, 0x59a26000, 0x813261c0, 0x0500000a,
+ 0x59325809, 0x812e59c0, 0x05000007, 0x0009f810,
+ 0x05e9f866, 0x59a26001, 0x59325809, 0x0009f810,
+ 0x05e9f862, 0x1c01f000, 0x61bc0801, 0x05f1f9ff,
+ 0x4a035040, 0x000000ef, 0x59c400a3, 0x8400055a,
+ 0x8400053a, 0x480388a3, 0x05f1fa68, 0x05020006,
+ 0x60040000, 0x05f1fc48, 0x60040000, 0x05f1fc16,
+ 0x0501f013, 0x05f1fa67, 0x05020006, 0x60000000,
+ 0x05f1fc41, 0x60000000, 0x05f1fc0f, 0x0501f00c,
+ 0x05f1fa66, 0x05020006, 0x60080000, 0x05f1fc3a,
+ 0x60080000, 0x05f1fc08, 0x0501f005, 0x600c0000,
+ 0x05f1fc35, 0x600c0000, 0x05f1fc03, 0x6051d000,
+ 0x0521fadc, 0x59c40008, 0x82000500, 0xffffffe1,
+ 0x82000540, 0x00000280, 0x48038808, 0x4a0388a7,
+ 0x0000f8f7, 0x4a038805, 0x04000001, 0x42006000,
+ 0xbe20bfff, 0x42006800, 0x80018000, 0x050dfaab,
+ 0x42006000, 0xfffeffff, 0x41786800, 0x050dfaa7,
+ 0x6020b027, 0x6051d000, 0x4c580000, 0x0521fac5,
+ 0x05f1fc47, 0x5c00b000, 0x05000006, 0x8058b040,
+ 0x05fe07f9, 0x4a034209, 0x00000111, 0x0501f02e,
+ 0x59c40005, 0x8c000534, 0x05020008, 0x4a034209,
+ 0x00000222, 0x59c400a4, 0x9000050f, 0x90000588,
+ 0x05020025, 0x497b4209, 0x42006000, 0x00020000,
+ 0x050dfa93, 0x6191d000, 0x0521faae, 0x42006000,
+ 0xfeffffff, 0x42006800, 0x02000000, 0x050dfa87,
+ 0x42006000, 0xfdffffff, 0x41786800, 0x050dfa83,
+ 0x59c40001, 0x82000500, 0x00018000, 0x82000580,
+ 0x00018000, 0x59c400a3, 0x05020004, 0x82000540,
+ 0x00001000, 0x0501f003, 0x82000500, 0xffffefff,
+ 0x480388a3, 0x4a038805, 0x04000001, 0x59c400a4,
+ 0x9000050f, 0x90000580, 0x05000004, 0x4a034209,
+ 0x00000333, 0x90000541, 0x1c01f000, 0x4803c856,
+ 0x600380ee, 0x05e9ff2e, 0x59c00006, 0x59a0040d,
+ 0x800001c0, 0x05000037, 0x59a03c0d, 0x59a0020a,
+ 0x59a01c0a, 0x900c19c0, 0x800c1d40, 0x59a0020f,
+ 0x59a0240f, 0x901021c0, 0x80102540, 0x59a0020c,
+ 0x82000500, 0x0000fffc, 0x59a0140c, 0x900811c0,
+ 0x80081540, 0x480b8003, 0x052dff1e, 0x05e40c1a,
+ 0x49334000, 0x05e5ffbc, 0x64625a08, 0x4a025809,
+ 0x00abcdef, 0x492e6009, 0x492e600d, 0x481e600f,
+ 0x6412600e, 0x912c0415, 0x4802600c, 0x60301000,
+ 0x901c0d81, 0x05000008, 0x801c3840, 0x0501f965,
+ 0x59a00408, 0x82000580, 0x0000dddd, 0x05000011,
+ 0x0501f004, 0x41783800, 0x0501f95e, 0x0501f00d,
+ 0x901c0c85, 0x05001004, 0x40043800, 0x60f01000,
+ 0x0501f005, 0x80001580, 0x9008140c, 0x801c3840,
+ 0x05fe07fe, 0x912c0409, 0x0501f952, 0x05fe07f5,
+ 0x497b9009, 0x59e00003, 0x82000540, 0x00008060,
+ 0x4803c003, 0x4a038009, 0x00e00000, 0x1c01f000,
+ 0x4803c856, 0x41780800, 0x8007a0ca, 0x83d3a400,
+ 0x00007600, 0x61000800, 0x05edfe39, 0x6407a00a,
+ 0x4a03a005, 0x20000000, 0x59d00006, 0x4a03a005,
+ 0x30000000, 0x59d00006, 0x8c00050a, 0x05fe07fe,
+ 0x59d00005, 0x59a0020d, 0x800001c0, 0x05000037,
+ 0x59a03a0d, 0x59a00211, 0x59a01c11, 0x900c19c0,
+ 0x800c1d40, 0x59a0020e, 0x59a0240e, 0x901021c0,
+ 0x80102540, 0x59a0120c, 0x82081500, 0x0000fffc,
0x59a0040c, 0x900001c0, 0x80081540, 0x480ba003,
- 0x59a0020e, 0x59a0240e, 0x901021c0, 0x80102540,
- 0x59a00211, 0x59a01c11, 0x900c19c0, 0x800c1d40,
- 0x6061d075, 0x051dfefa, 0x6423a00a, 0x480ba002,
- 0x59a800bf, 0x4803a008, 0x4813a000, 0x480fa001,
- 0x4a03a005, 0x10000000, 0x05e45c9c, 0x804c9800,
- 0x90000541, 0x1c01f000, 0x4847c857, 0x59a0040d,
- 0x800001c0, 0x05000020, 0x90480582, 0x0500003e,
- 0x59a26000, 0x5930380f, 0x801c39c0, 0x0500003a,
- 0x801c3840, 0x481e600f, 0x5932580d, 0x5930080c,
- 0x50042000, 0x58041801, 0x58041002, 0x82081500,
- 0xfffffffc, 0x5930000e, 0x80000000, 0x90000d85,
- 0x05020008, 0x497a600e, 0x592e5801, 0x812e59c0,
- 0x0500001b, 0x492e600d, 0x912c0c09, 0x0501f004,
- 0x4802600e, 0x5930080c, 0x90040c03, 0x4806600c,
- 0x0501f013, 0x82440580, 0x10000000, 0x0502001e,
- 0x59a0020f, 0x59a0240f, 0x901021c0, 0x80102540,
- 0x59a0020a, 0x59a01c0a, 0x900c19c0, 0x800c1d40,
- 0x59a0020c, 0x82000500, 0x0000fffc, 0x59a0140c,
- 0x900811c0, 0x80081540, 0x480b8003, 0x48138000,
- 0x480f8001, 0x480b8002, 0x59c80018, 0x82000500,
- 0xf0000000, 0x59c02008, 0x82102500, 0x0fffffff,
- 0x80100540, 0x48038008, 0x48478006, 0x80489000,
- 0x9060c541, 0x1c01f000, 0x59c00009, 0x4803c857,
- 0x82000d00, 0x00e00000, 0x0500000d, 0x485f4210,
- 0x905cb9c0, 0x485f4410, 0x8c00052e, 0x05000002,
- 0x80285000, 0x8c00052c, 0x05000002, 0x80244800,
- 0x8c00052a, 0x05000002, 0x802c5800, 0x1c01f000,
- 0x59d00806, 0x82040500, 0x43dc0700, 0x05000007,
+ 0x052dfecc, 0x05e40bc8, 0x49334001, 0x05e5ff6a,
+ 0x64625a08, 0x4a025809, 0x00abcdef, 0x492e6009,
+ 0x492e600d, 0x481e600f, 0x6412600e, 0x912c0415,
+ 0x4802600c, 0x60301000, 0x901c0d81, 0x05000008,
+ 0x801c3840, 0x0501f913, 0x59a00408, 0x82000580,
+ 0x0000dddd, 0x05000011, 0x0501f004, 0x41783800,
+ 0x0501f90c, 0x0501f00d, 0x901c0c85, 0x05001004,
+ 0x40043800, 0x60f01000, 0x0501f005, 0x80001580,
+ 0x9008140c, 0x801c3840, 0x05fe07fe, 0x912c0409,
+ 0x0501f900, 0x05fe07f5, 0x1c01f000, 0x4803c856,
+ 0x59a0020d, 0x800001c0, 0x05000020, 0x904c0582,
+ 0x0500003b, 0x59a26001, 0x5930380f, 0x801c39c0,
+ 0x05000037, 0x801c3840, 0x481e600f, 0x5932580d,
+ 0x5930080c, 0x50042000, 0x58041801, 0x58041002,
+ 0x82081500, 0xfffffffc, 0x5930000e, 0x80000000,
+ 0x90000d85, 0x05020008, 0x497a600e, 0x592e5801,
+ 0x812e59c0, 0x05000018, 0x492e600d, 0x912c0c09,
+ 0x0501f004, 0x4802600e, 0x5930080c, 0x90040c03,
+ 0x4806600c, 0x0501f010, 0x59a0120c, 0x82081500,
+ 0x0000fffc, 0x59a0040c, 0x900001c0, 0x80081540,
+ 0x480ba003, 0x59a0020e, 0x59a0240e, 0x901021c0,
+ 0x80102540, 0x59a00211, 0x59a01c11, 0x900c19c0,
+ 0x800c1d40, 0x6061d075, 0x0521f9f4, 0x6423a00a,
+ 0x480ba002, 0x59a800c4, 0x4803a008, 0x4813a000,
+ 0x480fa001, 0x59d00805, 0x4a03a005, 0x10000000,
+ 0x05e45b65, 0x804c9800, 0x90000541, 0x1c01f000,
+ 0x4847c857, 0x59a0040d, 0x800001c0, 0x05000020,
+ 0x90480582, 0x0500003f, 0x59a26000, 0x5930380f,
+ 0x801c39c0, 0x0500003b, 0x801c3840, 0x481e600f,
+ 0x5932580d, 0x5930080c, 0x50042000, 0x58041801,
+ 0x58041002, 0x82081500, 0xfffffffc, 0x5930000e,
+ 0x80000000, 0x90000d85, 0x05020008, 0x497a600e,
+ 0x592e5801, 0x812e59c0, 0x0500001b, 0x492e600d,
+ 0x912c0c09, 0x0501f004, 0x4802600e, 0x5930080c,
+ 0x90040c03, 0x4806600c, 0x0501f013, 0x82440580,
+ 0x10000000, 0x0502001f, 0x59a0020f, 0x59a0240f,
+ 0x901021c0, 0x80102540, 0x59a0020a, 0x59a01c0a,
+ 0x900c19c0, 0x800c1d40, 0x59a0020c, 0x82000500,
+ 0x0000fffc, 0x59a0140c, 0x900811c0, 0x80081540,
+ 0x480b8003, 0x48138000, 0x480f8001, 0x480b8002,
+ 0x59c80018, 0x82000500, 0xf0000000, 0x59c02008,
+ 0x82102500, 0x0fffffff, 0x80100540, 0x48038008,
+ 0x59c00806, 0x48478006, 0x80489000, 0x9060c541,
+ 0x1c01f000, 0x59c00009, 0x4803c857, 0x82000d00,
+ 0x00e00000, 0x0500000d, 0x485f4210, 0x905cb9c0,
+ 0x485f4410, 0x8c00052e, 0x05000002, 0x80285000,
+ 0x8c00052c, 0x05000002, 0x80244800, 0x8c00052a,
+ 0x05000002, 0x802c5800, 0x1c01f000, 0x59d00806,
+ 0x82040500, 0x43dc0700, 0x05000007, 0x82040500,
+ 0x80000000, 0x05000004, 0x4a034408, 0x0000dddd,
+ 0x0501f027, 0x59a0020d, 0x800001c0, 0x05000024,
+ 0x59d00806, 0x4807c857, 0x8c04053e, 0x05000020,
+ 0x8c040504, 0x0500001e, 0x4a03a005, 0x20000000,
+ 0x82040d00, 0x43dc0700, 0x05000004, 0x4a034408,
+ 0x0000dddd, 0x0501f016, 0x904c0483, 0x05e61aee,
+ 0x404c0000, 0x0c01f001, 0x00103b2d, 0x00103b2e,
+ 0x00103b34, 0x05e5fae8, 0x80000040, 0x40009800,
+ 0x05fdff43, 0x0500000a, 0x05fdff41, 0x0501f008,
+ 0x80000040, 0x40009800, 0x59d00806, 0x4807c857,
+ 0x8c04053e, 0x05fe07e5, 0x05fdff39, 0x1c01f000,
+ 0x59c00807, 0x82040500, 0x00f507c0, 0x05000007,
0x82040500, 0x80000000, 0x05000004, 0x4a034408,
- 0x0000dddd, 0x0501f027, 0x59a0020d, 0x800001c0,
- 0x05000024, 0x59d00806, 0x4807c857, 0x8c04053e,
- 0x05000020, 0x8c040504, 0x0500001e, 0x4a03a005,
- 0x20000000, 0x82040d00, 0x43dc0700, 0x05000004,
- 0x4a034408, 0x0000dddd, 0x0501f016, 0x904c0483,
- 0x05e61c26, 0x404c0000, 0x0c01f001, 0x001039ba,
- 0x001039bb, 0x001039c1, 0x05e5fc20, 0x80000040,
- 0x40009800, 0x05fdff45, 0x0500000a, 0x05fdff43,
- 0x0501f008, 0x80000040, 0x40009800, 0x59d00806,
- 0x4807c857, 0x8c04053e, 0x05fe07e5, 0x05fdff3b,
- 0x1c01f000, 0x59c00807, 0x82040500, 0x00f507c0,
- 0x05000007, 0x82040500, 0x80000000, 0x05000004,
- 0x4a034408, 0x0000dddd, 0x0501f02a, 0x59a0040d,
- 0x800001c0, 0x05000027, 0x59c00807, 0x4807c857,
- 0x8c04053e, 0x05000023, 0x59c00807, 0x4a038006,
- 0x20000000, 0x82040d00, 0x00f507c0, 0x05000004,
- 0x4a034408, 0x0000dddd, 0x0501f01a, 0x90480483,
- 0x05e61bf6, 0x40480000, 0x0c01f001, 0x001039ea,
- 0x001039eb, 0x001039f3, 0x05e5fbf0, 0x80000040,
- 0x40009000, 0x42008800, 0x10000004, 0x05fdff53,
- 0x0500000c, 0x05fdff51, 0x0501f00a, 0x80000040,
- 0x40009000, 0x59c00807, 0x4807c857, 0x8c04053e,
- 0x05fe07e2, 0x42008800, 0x10000004, 0x05fdff47,
- 0x1c01f000, 0x492fc857, 0x4000a800, 0x4a03b805,
- 0x20000000, 0x59dc0006, 0x4a03b805, 0x30000000,
- 0x4813b800, 0x480fb801, 0x480bb802, 0x4857b803,
- 0x4a03b805, 0x30000002, 0x59dc0006, 0x4a03b805,
- 0x70000001, 0x59dc0006, 0x4a03b805, 0x10000000,
- 0x59dc0006, 0x8c00053e, 0x05fc07fe, 0x4a03b805,
- 0x20000000, 0x59dc0006, 0x82000500, 0x43200f80,
- 0x05000005, 0x4a034408, 0x0000dddd, 0x80000580,
- 0x0501f00b, 0x59dc2000, 0x59dc1801, 0x801c39c0,
- 0x05000007, 0x4d2c0000, 0x05e5ff60, 0x5c000800,
- 0x05e40bb6, 0x642a5a08, 0x492c0801, 0x1c01f000,
- 0x49cbc857, 0x59c80003, 0x82000500, 0xffffe0ff,
- 0x48039003, 0x61f00800, 0x05edfdc8, 0x4a03902c,
- 0x00200000, 0x61d0b003, 0x59c8002c, 0x8c00052c,
- 0x05000006, 0x8058b040, 0x05fe07fc, 0x600c0080,
- 0x41781000, 0x0501f148, 0x640b50c8, 0x42006000,
- 0x00103b96, 0x50301000, 0x480bc857, 0x41784800,
- 0x4a03902d, 0x00008000, 0x61d0b003, 0x59c8002c,
- 0x8c000534, 0x05000006, 0x8058b040, 0x05fe07fc,
- 0x600c0080, 0x41781000, 0x0501f137, 0x0501f8ab,
- 0x80244800, 0x82081400, 0x02020202, 0x82240580,
- 0x000003b1, 0x05fe07fa, 0x0501f93f, 0x41784800,
- 0x50301000, 0x0501f8cc, 0x80244800, 0x82081400,
- 0x02020202, 0x82240580, 0x000003b1, 0x05fe07fa,
- 0x80306000, 0x82300580, 0x00103b98, 0x05fe07de,
- 0x59a808c7, 0x800409c0, 0x05000005, 0x60100080,
- 0x60081000, 0x59a818c6, 0x0501f11b, 0x42006000,
- 0x00103b96, 0x644350c8, 0x50301000, 0x480bc857,
- 0x41784800, 0x4a03902d, 0x00000800, 0x0501f887,
- 0x80244800, 0x82081400, 0x02020202, 0x90240598,
- 0x05fe07fb, 0x0501f91c, 0x41784800, 0x50301000,
- 0x0501f8a9, 0x80244800, 0x82081400, 0x02020202,
- 0x90240598, 0x05fe07fb, 0x80306000, 0x82300580,
- 0x00103b98, 0x05fe07e9, 0x59a808c7, 0x800409c0,
- 0x05000005, 0x60100080, 0x60401000, 0x59a818c6,
- 0x0501f0f9, 0x42006000, 0x00103b96, 0x642350c8,
- 0x50301000, 0x480bc857, 0x41784800, 0x4a03902d,
- 0x00000400, 0x0501f865, 0x80244800, 0x82081400,
- 0x03030303, 0x82240580, 0x00000088, 0x05fe07fa,
- 0x0501f8f9, 0x41784800, 0x50301000, 0x0501f886,
- 0x80244800, 0x82081400, 0x03030303, 0x82240580,
- 0x00000088, 0x05fe07fa, 0x80306000, 0x82300580,
- 0x00103b98, 0x05fe07e7, 0x59a808c7, 0x800409c0,
- 0x05000005, 0x60100080, 0x60201000, 0x59a818c6,
- 0x0501f0d5, 0x42006000, 0x00103b96, 0x648350c8,
+ 0x0000dddd, 0x0501f02a, 0x59a0040d, 0x800001c0,
+ 0x05000027, 0x59c00807, 0x4807c857, 0x8c04053e,
+ 0x05000023, 0x59c00807, 0x4a038006, 0x20000000,
+ 0x82040d00, 0x00f507c0, 0x05000004, 0x4a034408,
+ 0x0000dddd, 0x0501f01a, 0x90480483, 0x05e61abe,
+ 0x40480000, 0x0c01f001, 0x00103b5d, 0x00103b5e,
+ 0x00103b66, 0x05e5fab8, 0x80000040, 0x40009000,
+ 0x42008800, 0x10000004, 0x05fdff52, 0x0500000c,
+ 0x05fdff50, 0x0501f00a, 0x80000040, 0x40009000,
+ 0x59c00807, 0x4807c857, 0x8c04053e, 0x05fe07e2,
+ 0x42008800, 0x10000004, 0x05fdff46, 0x1c01f000,
+ 0x492fc857, 0x4000a800, 0x4a03b805, 0x20000000,
+ 0x59dc0006, 0x4a03b805, 0x30000000, 0x4813b800,
+ 0x480fb801, 0x480bb802, 0x4857b803, 0x4a03b805,
+ 0x30000002, 0x59dc0006, 0x4a03b805, 0x70000001,
+ 0x59dc0006, 0x4a03b805, 0x10000000, 0x59dc0006,
+ 0x8c00053e, 0x05fc07fe, 0x4a03b805, 0x20000000,
+ 0x59dc0006, 0x82000500, 0x43200f80, 0x05000005,
+ 0x4a034408, 0x0000dddd, 0x80000580, 0x0501f00b,
+ 0x59dc2000, 0x59dc1801, 0x801c39c0, 0x05000007,
+ 0x4d2c0000, 0x05e5fe24, 0x5c000800, 0x05e40a7e,
+ 0x642a5a08, 0x492c0801, 0x1c01f000, 0x49cbc857,
+ 0x59c80003, 0x82000500, 0xffffe0ff, 0x48039003,
+ 0x61f00800, 0x05edfcc6, 0x4a03902c, 0x00200000,
+ 0x61d0b003, 0x59c8002c, 0x8c00052c, 0x05000006,
+ 0x8058b040, 0x05fe07fc, 0x600c0080, 0x41781000,
+ 0x0501f148, 0x640b50cd, 0x42006000, 0x00103d09,
0x50301000, 0x480bc857, 0x41784800, 0x4a03902d,
- 0x00002000, 0x61d0b003, 0x59c8002c, 0x8c000530,
+ 0x00008000, 0x61d0b003, 0x59c8002c, 0x8c000534,
0x05000006, 0x8058b040, 0x05fe07fc, 0x600c0080,
- 0x41781000, 0x0501f0c4, 0x59c8002c, 0x82000500,
- 0xffe0ffff, 0x82080d00, 0x001f0000, 0x80040540,
- 0x4803902c, 0x0501f831, 0x80244800, 0x82081400,
- 0x02020202, 0x82240580, 0x00000110, 0x05fe07fa,
- 0x0501f8c5, 0x41784800, 0x50301000, 0x0501f852,
- 0x59c80034, 0x82080d00, 0x001f0000, 0x82000500,
- 0x001f0000, 0x80040580, 0x05000006, 0x59a800c7,
- 0x80000000, 0x480350c7, 0x40240000, 0x480350c6,
- 0x80244800, 0x82081400, 0x02020202, 0x82240580,
- 0x00000110, 0x05fe07ee, 0x80306000, 0x82300580,
- 0x00103b98, 0x05fe07cb, 0x59a808c7, 0x800409c0,
- 0x05000004, 0x60100080, 0x60801000, 0x59a818c6,
- 0x59c80803, 0x82040d40, 0x00001f00, 0x48079003,
- 0x59c8002c, 0x8400052a, 0x4803902c, 0x61f00800,
- 0x05edfd02, 0x05f5f703, 0x59c8002c, 0x82000500,
- 0xffff0000, 0x82080d00, 0x0000ffff, 0x80040540,
- 0x4803902c, 0x480b9028, 0x480b9029, 0x59a800c8,
- 0x90004584, 0x05000007, 0x90000590, 0x05020003,
- 0x80080920, 0x4807903a, 0x480b902a, 0x480b902b,
- 0x59c8002d, 0x82000500, 0xfffffc00, 0x80240540,
- 0x4803902d, 0x61d0b003, 0x59c8002c, 0x82000500,
- 0x18000000, 0x05000006, 0x8058b040, 0x05fe07fb,
- 0x600c0080, 0x41781000, 0x0501f06b, 0x6407902e,
- 0x61d0b003, 0x59c8002e, 0x8c000500, 0x05000005,
- 0x8058b040, 0x05fe07fc, 0x600c0080, 0x0501f062,
- 0x1c01f000, 0x41783800, 0x59c8002d, 0x82000500,
- 0xfffffc00, 0x80240d40, 0x4807902d, 0x61d0b003,
- 0x59c8002c, 0x82000500, 0x18000000, 0x05000006,
- 0x8058b040, 0x05fe07fb, 0x600c0080, 0x41781000,
- 0x0501f051, 0x59c81830, 0x59c80030, 0x800c0d80,
- 0x05fe07fd, 0x80080d80, 0x05000005, 0x4803c857,
- 0x480bc857, 0x4827c857, 0x801c3800, 0x59c82031,
- 0x59c80031, 0x80100d80, 0x05fe07fd, 0x80080d80,
- 0x05000005, 0x4803c857, 0x480bc857, 0x4827c857,
- 0x801c3800, 0x59a800c8, 0x90004584, 0x05000027,
- 0x61fc41ff, 0x90000590, 0x05020003, 0x42004000,
- 0x7f7f7f7f, 0x59c82832, 0x59c80032, 0x80140d80,
- 0x05fe07fd, 0x80080d80, 0x05000005, 0x4803c857,
- 0x480bc857, 0x4827c857, 0x801c3800, 0x59c83033,
- 0x59c80033, 0x80180d80, 0x05fe07fd, 0x80080d80,
+ 0x41781000, 0x0501f137, 0x0501f8ab, 0x80244800,
+ 0x82081400, 0x02020202, 0x82240580, 0x000003b1,
+ 0x05fe07fa, 0x0501f93f, 0x41784800, 0x50301000,
+ 0x0501f8cc, 0x80244800, 0x82081400, 0x02020202,
+ 0x82240580, 0x000003b1, 0x05fe07fa, 0x80306000,
+ 0x82300580, 0x00103d0b, 0x05fe07de, 0x59a808cc,
+ 0x800409c0, 0x05000005, 0x60100080, 0x60081000,
+ 0x59a818cb, 0x0501f11b, 0x42006000, 0x00103d09,
+ 0x644350cd, 0x50301000, 0x480bc857, 0x41784800,
+ 0x4a03902d, 0x00000800, 0x0501f887, 0x80244800,
+ 0x82081400, 0x02020202, 0x90240598, 0x05fe07fb,
+ 0x0501f91c, 0x41784800, 0x50301000, 0x0501f8a9,
+ 0x80244800, 0x82081400, 0x02020202, 0x90240598,
+ 0x05fe07fb, 0x80306000, 0x82300580, 0x00103d0b,
+ 0x05fe07e9, 0x59a808cc, 0x800409c0, 0x05000005,
+ 0x60100080, 0x60401000, 0x59a818cb, 0x0501f0f9,
+ 0x42006000, 0x00103d09, 0x642350cd, 0x50301000,
+ 0x480bc857, 0x41784800, 0x4a03902d, 0x00000400,
+ 0x0501f865, 0x80244800, 0x82081400, 0x03030303,
+ 0x82240580, 0x00000088, 0x05fe07fa, 0x0501f8f9,
+ 0x41784800, 0x50301000, 0x0501f886, 0x80244800,
+ 0x82081400, 0x03030303, 0x82240580, 0x00000088,
+ 0x05fe07fa, 0x80306000, 0x82300580, 0x00103d0b,
+ 0x05fe07e7, 0x59a808cc, 0x800409c0, 0x05000005,
+ 0x60100080, 0x60201000, 0x59a818cb, 0x0501f0d5,
+ 0x42006000, 0x00103d09, 0x648350cd, 0x50301000,
+ 0x480bc857, 0x41784800, 0x4a03902d, 0x00002000,
+ 0x61d0b003, 0x59c8002c, 0x8c000530, 0x05000006,
+ 0x8058b040, 0x05fe07fc, 0x600c0080, 0x41781000,
+ 0x0501f0c4, 0x59c8002c, 0x82000500, 0xffe0ffff,
+ 0x82080d00, 0x001f0000, 0x80040540, 0x4803902c,
+ 0x0501f831, 0x80244800, 0x82081400, 0x02020202,
+ 0x82240580, 0x00000110, 0x05fe07fa, 0x0501f8c5,
+ 0x41784800, 0x50301000, 0x0501f852, 0x59c80034,
+ 0x82080d00, 0x001f0000, 0x82000500, 0x001f0000,
+ 0x80040580, 0x05000006, 0x59a800cc, 0x80000000,
+ 0x480350cc, 0x40240000, 0x480350cb, 0x80244800,
+ 0x82081400, 0x02020202, 0x82240580, 0x00000110,
+ 0x05fe07ee, 0x80306000, 0x82300580, 0x00103d0b,
+ 0x05fe07cb, 0x59a808cc, 0x800409c0, 0x05000004,
+ 0x60100080, 0x60801000, 0x59a818cb, 0x59c80803,
+ 0x82040d40, 0x00001f00, 0x48079003, 0x59c8002c,
+ 0x8400052a, 0x4803902c, 0x61f00800, 0x05edfc00,
+ 0x05f5f638, 0x59c8002c, 0x82000500, 0xffff0000,
+ 0x82080d00, 0x0000ffff, 0x80040540, 0x4803902c,
+ 0x480b9028, 0x480b9029, 0x59a800cd, 0x90004584,
+ 0x05000007, 0x90000590, 0x05020003, 0x80080920,
+ 0x4807903a, 0x480b902a, 0x480b902b, 0x59c8002d,
+ 0x82000500, 0xfffffc00, 0x80240540, 0x4803902d,
+ 0x61d0b003, 0x59c8002c, 0x82000500, 0x18000000,
+ 0x05000006, 0x8058b040, 0x05fe07fb, 0x600c0080,
+ 0x41781000, 0x0501f06b, 0x6407902e, 0x61d0b003,
+ 0x59c8002e, 0x8c000500, 0x05000005, 0x8058b040,
+ 0x05fe07fc, 0x600c0080, 0x0501f062, 0x1c01f000,
+ 0x41783800, 0x59c8002d, 0x82000500, 0xfffffc00,
+ 0x80240d40, 0x4807902d, 0x61d0b003, 0x59c8002c,
+ 0x82000500, 0x18000000, 0x05000006, 0x8058b040,
+ 0x05fe07fb, 0x600c0080, 0x41781000, 0x0501f051,
+ 0x59c81830, 0x59c80030, 0x800c0d80, 0x05fe07fd,
+ 0x80080d80, 0x05000005, 0x4803c857, 0x480bc857,
+ 0x4827c857, 0x801c3800, 0x59c82031, 0x59c80031,
+ 0x80100d80, 0x05fe07fd, 0x80080d80, 0x05000005,
+ 0x4803c857, 0x480bc857, 0x4827c857, 0x801c3800,
+ 0x59a800cd, 0x90004584, 0x05000027, 0x61fc41ff,
+ 0x90000590, 0x05020003, 0x42004000, 0x7f7f7f7f,
+ 0x59c82832, 0x59c80032, 0x80140d80, 0x05fe07fd,
+ 0x80080d80, 0x05000005, 0x4803c857, 0x480bc857,
+ 0x4827c857, 0x801c3800, 0x59c83033, 0x59c80033,
+ 0x80180d80, 0x05fe07fd, 0x80080d80, 0x05000005,
+ 0x4803c857, 0x480bc857, 0x4827c857, 0x801c3800,
+ 0x59c80034, 0x59c80834, 0x80040d80, 0x05fe07fd,
+ 0x80080d80, 0x40200000, 0x80040d00, 0x05000012,
+ 0x4803c857, 0x480bc857, 0x4827c857, 0x801c3800,
+ 0x0501f00d, 0x59c80034, 0x59c80834, 0x80040d80,
+ 0x05fe07fd, 0x80080d80, 0x82040d00, 0x000000ff,
0x05000005, 0x4803c857, 0x480bc857, 0x4827c857,
- 0x801c3800, 0x59c80034, 0x59c80834, 0x80040d80,
- 0x05fe07fd, 0x80080d80, 0x40200000, 0x80040d00,
- 0x05000012, 0x4803c857, 0x480bc857, 0x4827c857,
- 0x801c3800, 0x0501f00d, 0x59c80034, 0x59c80834,
- 0x80040d80, 0x05fe07fd, 0x80080d80, 0x82040d00,
- 0x000000ff, 0x05000005, 0x4803c857, 0x480bc857,
- 0x4827c857, 0x801c3800, 0x801c39c0, 0x05000005,
- 0x59a800c7, 0x801c0400, 0x480350c7, 0x482750c6,
- 0x1c01f000, 0x48034207, 0x48074407, 0x480b4208,
- 0x480f4408, 0x48134209, 0x48174409, 0x59c80003,
- 0x82000540, 0x00001f00, 0x48039003, 0x59c8002c,
- 0x8400052a, 0x4803902c, 0x61f00800, 0x05edfc67,
- 0x05f5f66b, 0x42000000, 0x00600000, 0x80000040,
- 0x05fe07ff, 0x1c01f000, 0x11121111, 0x44454442,
- 0x0505fc07, 0x05020003, 0x640b4407, 0x05f5f6a0,
- 0x42005000, 0x0010e511, 0x50285000, 0x482b4000,
- 0x4200a000, 0x0010e512, 0x59a00408, 0x59a01208,
- 0x900811c0, 0x80081540, 0x59a0040a, 0x59a01a0a,
- 0x900c19c0, 0x800c1d40, 0x42024800, 0x0010e512,
- 0x912cac08, 0x6018b000, 0x9050040d, 0x48034001,
- 0x0549fcf7, 0x60180800, 0x800400c4, 0x80080c00,
- 0x48074002, 0x900c0c40, 0x48074003, 0x60180800,
- 0x912c0408, 0x0505fc0f, 0x4a01d809, 0x00103bbd,
- 0x1c01f000, 0x0501fa9e, 0x05f40674, 0x59a0a001,
- 0x59a01000, 0x80081040, 0x480b4000, 0x05000005,
- 0x59a01002, 0x59a01803, 0x58ee580d, 0x05fdf7e5,
- 0x42000800, 0x0010e511, 0x50040800, 0x48074407,
- 0x05f5f62c, 0x0505fbd2, 0x05020003, 0x640b4407,
- 0x05f5f66b, 0x59a00c0b, 0x42000000, 0x0010e511,
- 0x50000000, 0x80040480, 0x05f6166a, 0x8204a400,
- 0x0010d17b, 0x5050a000, 0x912cac08, 0x6018b000,
- 0x0549fccb, 0x59a00408, 0x59a01208, 0x900811c0,
+ 0x801c3800, 0x801c39c0, 0x05000005, 0x59a800cc,
+ 0x801c0400, 0x480350cc, 0x482750cb, 0x1c01f000,
+ 0x48034207, 0x48074407, 0x480b4208, 0x480f4408,
+ 0x48134209, 0x48174409, 0x59c80003, 0x82000540,
+ 0x00001f00, 0x48039003, 0x59c8002c, 0x8400052a,
+ 0x4803902c, 0x61f00800, 0x05edfb65, 0x05f5f5a0,
+ 0x42000000, 0x00600000, 0x80000040, 0x05fe07ff,
+ 0x1c01f000, 0x11121111, 0x44454442, 0x0505fc36,
+ 0x05020003, 0x640b4407, 0x05f5f5d5, 0x42005000,
+ 0x001124b5, 0x50285000, 0x482b4000, 0x4200a000,
+ 0x001124b6, 0x59a00408, 0x59a01208, 0x900811c0,
0x80081540, 0x59a0040a, 0x59a01a0a, 0x900c19c0,
- 0x800c1d40, 0x60180800, 0x912c0408, 0x0505f3e1,
- 0x59a00c0b, 0x800409c0, 0x05f40656, 0x900404a1,
- 0x05f61654, 0x90040491, 0x05001002, 0x60400800,
+ 0x800c1d40, 0x42024800, 0x001124b6, 0x912cac08,
+ 0x6018b000, 0x9050040d, 0x48034001, 0x054dfaff,
+ 0x60180800, 0x800400c4, 0x80080c00, 0x48074002,
+ 0x900c0c40, 0x48074003, 0x60180800, 0x912c0408,
+ 0x0505fc3e, 0x4a01d809, 0x00103d30, 0x1c01f000,
+ 0x0501faa1, 0x05f405a9, 0x59a0a001, 0x59a01000,
+ 0x80081040, 0x480b4000, 0x05000005, 0x59a01002,
+ 0x59a01803, 0x58ee580d, 0x05fdf7e5, 0x42000800,
+ 0x001124b5, 0x50040800, 0x48074407, 0x05f5f561,
+ 0x0505fc01, 0x05020003, 0x640b4407, 0x05f5f5a0,
+ 0x59a00c0b, 0x42000000, 0x001124b5, 0x50000000,
+ 0x80040480, 0x05f6159f, 0x8204a400, 0x0010d8f9,
+ 0x5050a000, 0x912cac08, 0x6018b000, 0x054dfad3,
+ 0x59a00408, 0x59a01208, 0x900811c0, 0x80081540,
+ 0x59a0040a, 0x59a01a0a, 0x900c19c0, 0x800c1d40,
+ 0x60180800, 0x912c0408, 0x0505f410, 0x59a00c0b,
+ 0x800409c0, 0x05f4058b, 0x900404a1, 0x05f61589,
+ 0x90040491, 0x05001002, 0x60400800, 0x59a00209,
+ 0x59a01408, 0x900811c0, 0x80081540, 0x59a00208,
+ 0x59a01c07, 0x900c19c0, 0x800c1d40, 0x0505fbd6,
+ 0x05000005, 0x0505fbf4, 0x4a01d809, 0x00103d73,
+ 0x1c01f000, 0x640b4407, 0x05f5f571, 0x0501fa5e,
+ 0x05f40566, 0x59a00c0b, 0x90040491, 0x05001002,
+ 0x60400800, 0x59a0040c, 0x59a0120c, 0x900811c0,
+ 0x80081540, 0x59a0020a, 0x59a01c09, 0x900c19c0,
+ 0x800c1d40, 0x58ec0003, 0x0505fbe8, 0x4a01d809,
+ 0x00103d86, 0x1c01f000, 0x0501fa4b, 0x05f40553,
+ 0x59a00c0b, 0x90040491, 0x05f41516, 0x90040c90,
0x59a00209, 0x59a01408, 0x900811c0, 0x80081540,
0x59a00208, 0x59a01c07, 0x900c19c0, 0x800c1d40,
- 0x0505fba7, 0x05000005, 0x0505fbc5, 0x4a01d809,
- 0x00103c00, 0x1c01f000, 0x640b4407, 0x05f5f63c,
- 0x0501fa5b, 0x05f40631, 0x59a00c0b, 0x90040491,
- 0x05001002, 0x60400800, 0x59a0040c, 0x59a0120c,
+ 0xb0081400, 0x58ec0003, 0x0505fbcb, 0x4a01d809,
+ 0x00103d9a, 0x1c01f000, 0x0501fa37, 0x05f4053f,
+ 0x59a0040b, 0x90000c90, 0x59a0040c, 0x59a0120c,
0x900811c0, 0x80081540, 0x59a0020a, 0x59a01c09,
- 0x900c19c0, 0x800c1d40, 0x58ec0003, 0x0505fbb9,
- 0x4a01d809, 0x00103c13, 0x1c01f000, 0x0501fa48,
- 0x05f4061e, 0x59a00c0b, 0x90040491, 0x05f415e1,
- 0x90040c90, 0x59a00209, 0x59a01408, 0x900811c0,
- 0x80081540, 0x59a00208, 0x59a01c07, 0x900c19c0,
- 0x800c1d40, 0xb0081400, 0x58ec0003, 0x0505fb9c,
- 0x4a01d809, 0x00103c27, 0x1c01f000, 0x0501fa34,
- 0x05f4060a, 0x59a0040b, 0x90000c90, 0x59a0040c,
- 0x59a0120c, 0x900811c0, 0x80081540, 0x59a0020a,
- 0x59a01c09, 0x900c19c0, 0x800c1d40, 0xb0081400,
- 0x58ec0003, 0x0505fb93, 0x4a01d809, 0x001029f5,
- 0x1c01f000, 0x48efc857, 0x59a00208, 0x59a01408,
- 0x900001c0, 0x80081540, 0x59a0020a, 0x59a01c0a,
- 0x900001c0, 0x800c1d40, 0x59a00407, 0x48034000,
- 0x480b4001, 0x480f4002, 0x0505fb59, 0x05020003,
- 0x640b4407, 0x05f5f5f2, 0x60400800, 0x0505fb74,
- 0x4a01d809, 0x00103c4f, 0x1c01f000, 0x0501fa0c,
- 0x05f405e2, 0x58ee580d, 0x48efc857, 0x49a3c857,
- 0x492fc857, 0x592c0a08, 0x80040910, 0x05020003,
- 0x64674407, 0x05f5f5e2, 0x4805d80c, 0x0501f005,
- 0x0501f9ff, 0x05f405d5, 0x48efc857, 0x49a3c857,
- 0x48efc857, 0x49a3c857, 0x58ec000c, 0x80000040,
- 0x0500000d, 0x4801d80c, 0x0505fb39, 0x05020003,
- 0x640b4407, 0x05f5f5d2, 0x60400800, 0x58ec1007,
- 0x58ec1808, 0x0505fb52, 0x4a01d809, 0x00103c5c,
- 0x1c01f000, 0x58ee580d, 0x48efc857, 0x49a3c857,
- 0x492fc857, 0x492f3000, 0x592c0408, 0x8400055e,
- 0x48025c08, 0x4a01d809, 0x00103c7c, 0x1c01f000,
- 0x4d2c0000, 0x58ee580d, 0x48efc857, 0x49a3c857,
- 0x492fc857, 0x592c0408, 0x8400051e, 0x48025c08,
- 0x59a00000, 0x59a01001, 0x59a01802, 0x80081400,
- 0x900c1c40, 0x912c0408, 0x60400800, 0x5c025800,
- 0x0505f33c, 0x8d0c050e, 0x05000003, 0x64074407,
- 0x05f5f5ab, 0x916c0583, 0x05000003, 0x641f4407,
- 0x05f5f5a7, 0x59a0320c, 0x82183500, 0x000000ff,
- 0x59a28c07, 0x0505fbec, 0x05f605a6, 0x050dfdde,
- 0x05f605a4, 0x83440580, 0x000007fd, 0x05000005,
- 0x050dfd85, 0x05000003, 0x64274407, 0x05f5f598,
- 0x0505fafb, 0x05020003, 0x640b4407, 0x05f5f594,
- 0x801831c0, 0x05000007, 0x412c0800, 0x0505faf4,
- 0x05020003, 0x640b4407, 0x05f5f58d, 0x40065800,
- 0x4a025c08, 0x00008000, 0x497a5a08, 0x0539f8cf,
- 0x05020003, 0x640f4407, 0x05f5f585, 0x4a01d809,
- 0x00103cba, 0x1c01f000, 0x592c0009, 0x82000580,
- 0x01000000, 0x05020003, 0x64134407, 0x05f5f57c,
- 0x592c040a, 0x82002d00, 0x0000ff00, 0x82000500,
- 0x000000ff, 0x80000904, 0x80040800, 0x90040486,
- 0x05001002, 0x60140800, 0x4c500000, 0x4c540000,
- 0x4c580000, 0x912ca40a, 0x4050a800, 0x4004b000,
- 0x0549fc12, 0x59a00408, 0x59a01208, 0x900811c0,
- 0x80081540, 0x59a0040a, 0x59a01a0a, 0x900c19c0,
- 0x800c1d40, 0x912c040a, 0x4c140000, 0x0505faed,
- 0x5c002800, 0x801429c0, 0x05000003, 0x4a01d809,
- 0x00103ce5, 0x5c00b000, 0x5c00a800, 0x5c00a000,
- 0x1c01f000, 0x0501f976, 0x05f4054c, 0x58ee580d,
- 0x812e59c0, 0x05e408f1, 0x592c000a, 0x82000500,
- 0xff000000, 0x80000904, 0x800409c0, 0x05f40509,
- 0x4807c857, 0x9004048e, 0x05001002, 0x60340800,
- 0x592e5801, 0x812e59c0, 0x05e408e4, 0x4c500000,
- 0x4c540000, 0x4c580000, 0x912ca409, 0x4050a800,
- 0x4004b000, 0x0549fbe5, 0x5c00b000, 0x5c00a800,
- 0x5c00a000, 0x58ec1007, 0x58ec1808, 0x912c0409,
- 0x0505f2c4, 0x0505fa9a, 0x05020003, 0x640b4407,
- 0x05f5f533, 0x59a00c07, 0x82040500, 0x0000ff00,
- 0x840001c0, 0x9000148e, 0x05f61532, 0x0c01f001,
- 0x00103d1e, 0x00103d24, 0x00103d2a, 0x00103d2b,
- 0x00103d2f, 0x00103d49, 0x00103d4d, 0x00103d36,
- 0x00103d3b, 0x00103d41, 0x00103d2a, 0x00103d2a,
- 0x00103d2a, 0x00103d2a, 0x60340800, 0x42003800,
- 0x00103d76, 0x4a034000, 0x0010dd46, 0x0501f02d,
- 0x60340800, 0x42003800, 0x00103d76, 0x4a034000,
- 0x0010dd53, 0x0501f027, 0x05f5f516, 0x0505fc9e,
- 0x05f60514, 0x497b501c, 0x05f5f4ca, 0x0505fc9a,
- 0x05f60510, 0x59a8101b, 0x800811c0, 0x05f404c5,
- 0x480b501c, 0x05f5f4c3, 0x0505fc93, 0x05f60509,
- 0x497b500f, 0x497b5010, 0x05f5f4be, 0x0505fc8e,
- 0x05f60504, 0x6403500f, 0x4a035010, 0x000927c0,
- 0x05f5f4b8, 0x59a00c07, 0x82040d00, 0x000000ff,
- 0x05f404fc, 0x48074000, 0x42003800, 0x00103d57,
- 0x0501f008, 0x60200800, 0x42003800, 0x00103d7f,
- 0x0501f004, 0x60100800, 0x42003800, 0x00103db0,
- 0x0501f902, 0x912c0409, 0x4c1c0000, 0x0505fa6c,
- 0x5c003800, 0x481dd809, 0x1c01f000, 0x0501f904,
- 0x05f404da, 0x58ee580d, 0x59a0b000, 0x912ca409,
- 0x50500800, 0x82040580, 0x00110307, 0x0502000f,
- 0x82041500, 0x000000ff, 0x90080488, 0x0502100b,
- 0x4200a800, 0x0010dc14, 0x80081840, 0x8050a000,
- 0x50500000, 0x4400a800, 0x8054a800, 0x800c1840,
- 0x05fe07fb, 0x0501f005, 0x48074407, 0x900409c0,
- 0x48074208, 0x05f5f4cf, 0x8050a000, 0x8058b482,
- 0x05fe07e8, 0x05f5f483, 0x0501f8e5, 0x05f404bb,
- 0x58ee580d, 0x64075047, 0x6034b000, 0x59a0a800,
- 0x912ca409, 0x0549fb65, 0x05f5f47a, 0x0501f8dc,
- 0x05f404b2, 0x58ee580d, 0x912ca409, 0x50500000,
- 0x82001500, 0x000c0016, 0x05f604ba, 0x90500c03,
- 0x50040000, 0x90001501, 0x05f604b6, 0x50500000,
- 0x90001528, 0x05000015, 0x900815a8, 0x05f604b1,
- 0x80500800, 0x50040000, 0x90001513, 0x90081593,
- 0x05f604ac, 0x80040800, 0x50040000, 0x82001500,
- 0x00050000, 0x82081580, 0x00050000, 0x05f604a5,
- 0x916c0580, 0x0500000e, 0x599c0019, 0x8c00050e,
- 0x0502000b, 0x05f5f49f, 0x80500800, 0x50040000,
- 0x90001513, 0x05f6049b, 0x80040800, 0x50040000,
- 0x82001500, 0x00050000, 0x05f60496, 0x6020b000,
- 0x4200a800, 0x0010dd3e, 0x0549faf9, 0x05f5f449,
- 0x0501f8ab, 0x05f40481, 0x58ee580d, 0x6010b000,
- 0x4200a800, 0x0010e50c, 0x912ca409, 0x0549faf0,
- 0x850e1d50, 0x05f5f43f, 0x0505f9e5, 0x05020003,
- 0x640b4407, 0x05f5f47e, 0x912cac09, 0x59a00c07,
- 0x82040500, 0x0000ff00, 0x840001c0, 0x9000148e,
- 0x05f6147c, 0x0c01f001, 0x00103dd4, 0x00103dd7,
- 0x00103dda, 0x00103ddb, 0x00103dee, 0x00103e10,
- 0x00103dda, 0x00103e16, 0x00103df5, 0x00103e06,
- 0x00103dda, 0x00103dda, 0x00103dda, 0x00103dda,
- 0x4200a000, 0x0010dd46, 0x0501f06e, 0x4200a000,
- 0x0010dd53, 0x0501f06b, 0x05f5f466, 0x0505fbee,
- 0x05f60464, 0x59a8041d, 0x48034407, 0x59a8021d,
- 0x48034208, 0x59a8041e, 0x48034408, 0x59a8021e,
- 0x4803420a, 0x59a8041b, 0x4803440a, 0x59a8021b,
- 0x4803420b, 0x59a8041c, 0x4803440b, 0x59a8021c,
- 0x4803420c, 0x05f5f40b, 0x0505fbdb, 0x05f60451,
- 0x0501f862, 0x60600800, 0x42000000, 0x0010dc23,
- 0x0505f1d4, 0x0505fbd4, 0x05000002, 0x05f5f449,
- 0x59a80411, 0x48034407, 0x59a80211, 0x48034208,
- 0x59a80412, 0x48034408, 0x59a80212, 0x4803420a,
- 0x6403440a, 0x6403420b, 0x6427440b, 0x4a03420c,
- 0x000027c0, 0x05f5f3f3, 0x0505fbc3, 0x05000002,
- 0x05f40438, 0x0501f849, 0x61ec0801, 0x800400c4,
- 0x48034407, 0x42000000, 0x00107dd1, 0x0505f1b9,
- 0x6020b000, 0x40580800, 0x4200a000, 0x0010dd3e,
- 0x0549fa93, 0x0501f032, 0x59a00a0b, 0x6473420b,
- 0x9004049c, 0x05f41427, 0x603cb000, 0x4178a000,
- 0x0549fa93, 0x912cac09, 0x6010b000, 0xb1a8a40d,
- 0x0549fa87, 0x916c0580, 0x05000004, 0x6010b000,
- 0x91a8a400, 0x0549fa82, 0x912cac15, 0x600cb000,
- 0xb1a8a411, 0x0549fa7e, 0x492f4000, 0x0505f974,
- 0x05020003, 0x640b4407, 0x05f5f40d, 0x912cac09,
- 0x603cb000, 0x4178a000, 0x0549fa7d, 0x912cac09,
- 0x6004b000, 0xb1a8a414, 0x0549fa71, 0x912cac0a,
- 0x6010b000, 0xb1a8a415, 0x0549fa6d, 0x0501f817,
- 0x492f4001, 0x59a25800, 0x912c0409, 0x603c0800,
- 0x0505f988, 0x4a01d809, 0x00103e4a, 0x1c01f000,
- 0x6034b000, 0x40580800, 0x0549fa9c, 0x0501f80b,
- 0x912c0409, 0x0505f17f, 0x0501f811, 0x05f403e7,
- 0x59a25801, 0x58ec1007, 0x58ec1808, 0x912c0409,
- 0x60340800, 0x0505f177, 0x59a00208, 0x59a01408,
- 0x900001c0, 0x80081540, 0x59a0020a, 0x59a01c0a,
- 0x900001c0, 0x800c1d40, 0x1c01f000, 0x4031d800,
- 0x58ef400b, 0x58ec0002, 0x82000580, 0x00000200,
- 0x1c01f000, 0x59a00407, 0x80000d40, 0x05020003,
- 0x48072832, 0x05f5f393, 0x8d0c050e, 0x05020007,
- 0x4c000000, 0x0511fa45, 0x5c000000, 0x05000003,
- 0x645b4407, 0x05f5f3ce, 0x82000c80, 0x00001000,
- 0x05f613d0, 0x90000c82, 0x05f413ce, 0x800008c6,
- 0x80040c00, 0x80040c00, 0x48072832, 0x59a800af,
- 0x84000500, 0x59a00a08, 0x8c040500, 0x05000002,
- 0x84000540, 0x480350af, 0x05f5f37a, 0x8d0c050e,
- 0x05020003, 0x0511fa2d, 0x0502000c, 0x59a800af,
- 0x8c000500, 0x05020005, 0x4a03c014, 0x00400040,
- 0x4a03c013, 0x00400040, 0x59a800af, 0x8400054a,
- 0x480350af, 0x05e1ff4d, 0x1c01f000, 0x916c0580,
- 0x05020003, 0x641f4407, 0x05f5f3a9, 0x59a01407,
- 0x800811c0, 0x0502002a, 0x497b4208, 0x05f1f8e9,
- 0x05000011, 0x05f1f8ce, 0x64074208, 0x0502000e,
- 0x4c080000, 0x05f1f8d5, 0x5c001000, 0x05020006,
- 0x640b4208, 0x05edfcd3, 0x05020007, 0x64134208,
- 0x0501f005, 0x640f4208, 0x05edfcbc, 0x05020002,
- 0x64174208, 0x59c40801, 0x82040d00, 0x00018000,
- 0x90040580, 0x05020003, 0x64034407, 0x0501f069,
- 0x82040580, 0x00008000, 0x05020003, 0x64074407,
- 0x0501f064, 0x82040580, 0x00010000, 0x05020003,
- 0x640f4407, 0x0501f05f, 0x82040580, 0x00018000,
- 0x05e20f1e, 0x64134407, 0x0501f05a, 0x59a800d1,
- 0x8c000502, 0x05000004, 0x60080000, 0x40000800,
- 0x0501f012, 0x59a00208, 0x4c000000, 0x0505fa23,
- 0x5c000000, 0x05000005, 0x4c000000, 0x0505fa36,
- 0x5c000000, 0x05020007, 0x90000d84, 0x05000003,
- 0x90000d82, 0x05020003, 0x600c0000, 0x600c1000,
- 0x48034002, 0x59a80869, 0x48035069, 0x599c7819,
- 0x823c7d00, 0xffff1fff, 0x800000da, 0x803c7d40,
- 0x483f3819, 0x497b4208, 0x05f1f8a2, 0x05000013,
- 0x05f1f887, 0x64074208, 0x05020010, 0x4c040000,
- 0x4c080000, 0x05f1f88d, 0x5c001000, 0x5c000800,
- 0x05020006, 0x640b4208, 0x05edfc8a, 0x05020007,
- 0x64134208, 0x0501f005, 0x640f4208, 0x05edfc73,
- 0x05020002, 0x64174208, 0x05edfc88, 0x0500000b,
- 0x05edfc6e, 0x05000009, 0x05edfc72, 0x05000007,
- 0x05edfc76, 0x05000005, 0x05edfc7a, 0x05000003,
- 0x48075069, 0x05f5f343, 0x90080583, 0x05020005,
- 0x59a00002, 0x48035076, 0x640b5069, 0x0501f005,
- 0x4a035076, 0xaabbccdd, 0x90080582, 0x05020011,
- 0x59c40006, 0x84000500, 0x48038806, 0x0525f94a,
- 0x497b8880, 0x42000000, 0x0010e4bc, 0x0549f8cd,
- 0x4803c856, 0x850e1d48, 0x4a038808, 0x00000200,
- 0x6012d800, 0x64078805, 0x64075075, 0x05e5f8e7,
- 0x05f5f2e0, 0x8d0c050e, 0x05000003, 0x64074407,
- 0x05f5f31f, 0x916c0583, 0x05000003, 0x641f4407,
- 0x05f5f31b, 0x59a28c07, 0x59a0320c, 0x82183500,
- 0x000000ff, 0x0505f960, 0x05f6031a, 0x050dfb52,
- 0x05f60318, 0x83440580, 0x000007fd, 0x05000005,
- 0x050dfaf9, 0x05000003, 0x60240800, 0x05f5f30c,
- 0x0505f86f, 0x05020003, 0x640b4407, 0x05f5f308,
- 0x497a5a08, 0x4a025c08, 0x00008000, 0x0535fe5e,
- 0x05020003, 0x640f4407, 0x05f5f301, 0x4a01d809,
- 0x00103f3e, 0x1c01f000, 0x592c0009, 0x82000d00,
- 0x0000ffff, 0x82000500, 0xffff0000, 0x82000580,
- 0x01000000, 0x05020003, 0x64134407, 0x05f5f2f4,
- 0x80040904, 0x4c500000, 0x4c540000, 0x4c580000,
- 0x912ca409, 0x4050a800, 0x4004b000, 0x0549f993,
- 0x5c00b000, 0x5c00a800, 0x5c00a000, 0x59a00208,
- 0x59a01408, 0x900001c0, 0x80081540, 0x59a0020a,
- 0x59a01c0a, 0x900001c0, 0x800c1d40, 0x912c0409,
- 0x0505f06c, 0x60000020, 0x50000000, 0x82000480,
- 0x25320001, 0x0502000a, 0x599c1019, 0x8c08053c,
- 0x05020005, 0x4a03c014, 0x00400040, 0x4a03c013,
- 0x00400000, 0x6041d04e, 0x051df89b, 0x496fc857,
- 0x916c0580, 0x05000003, 0x646b4407, 0x05f5f2cc,
- 0x0511f93e, 0x050a0996, 0x60800800, 0x59a00408,
- 0x59a01208, 0x900811c0, 0x80081540, 0x59a0040a,
- 0x59a01a0a, 0x900c19c0, 0x800c1d40, 0x419c0000,
- 0x49a3c857, 0x0505f842, 0x4a01d809, 0x00103f81,
- 0x1c01f000, 0x4833c857, 0x05fdfed9, 0x05f402af,
- 0x59a00407, 0x8c000500, 0x05000061, 0x59a0020e,
- 0x80000104, 0x05f402b7, 0x90000c95, 0x05f612b5,
- 0x40000800, 0x59a0040c, 0x59a0120c, 0x900811c0,
- 0x80081540, 0x59a0040d, 0x59a01a0d, 0x900c19c0,
- 0x800c1d40, 0x42000000, 0x0010dd2a, 0x49a3c857,
- 0x0505f827, 0x4a01d809, 0x00103f9c, 0x1c01f000,
- 0x05fdfebf, 0x05f40295, 0x42000800, 0x0010dd2a,
- 0x58040200, 0x800001c0, 0x05f4029e, 0x599c0017,
- 0x8c000508, 0x05000042, 0x58040204, 0x8c000500,
- 0x0500003f, 0x599c0202, 0x800001c0, 0x05f40295,
- 0x599c141e, 0x80000000, 0x80080480, 0x05f61291,
- 0x42001000, 0x00110228, 0x4a001008, 0x00000112,
- 0x6428120b, 0x4978140b, 0x49781011, 0x4a00140e,
- 0x00000101, 0x58040005, 0x48001015, 0x4a00120a,
- 0x0000ffff, 0x4a00100d, 0x00111ad0, 0x58040006,
- 0x48001016, 0x58040007, 0x48001017, 0x4a001013,
- 0xdeadbeff, 0x4a001001, 0x00110240, 0x42001000,
- 0x00110240, 0x48081000, 0x48081001, 0x64281208,
- 0x58040005, 0x48001009, 0x4800100c, 0x4800100f,
- 0x48001012, 0x48001015, 0x58040006, 0x4800100a,
- 0x4800100d, 0x48001010, 0x48001013, 0x48001016,
- 0x58040007, 0x4800100b, 0x4800100e, 0x48001011,
- 0x48001014, 0x48001017, 0x42001000, 0x00111ad0,
- 0x4a001009, 0x00110228, 0x4a001013, 0xdeadbeff,
- 0x64841008, 0x64101203, 0x64181407, 0x599c0200,
- 0x800001c0, 0x05f40257, 0x59a800d1, 0x8c000502,
- 0x05000011, 0x599c0017, 0x84000508, 0x48033817,
- 0x599c0019, 0x82000500, 0xffff1fff, 0x82000540,
- 0x00004000, 0x48033819, 0x599c0018, 0x84000510,
- 0x84000516, 0x82000500, 0xffffffcf, 0x90000560,
- 0x0501f004, 0x8c000504, 0x05000004, 0x599c0018,
- 0x84000514, 0x48033818, 0x0539fd97, 0x850e1d20,
- 0x599c0017, 0x8c000508, 0x05000003, 0x850e1d60,
- 0x0501f006, 0x8c00050a, 0x05f60236, 0x59a80806,
- 0x8c040516, 0x05f60233, 0x42024800, 0x0010e512,
- 0x64124a00, 0x42000800, 0x0010e511, 0x64040800,
- 0x42000800, 0x0010e510, 0x46000800, 0x0000ffff,
- 0x59240c00, 0x84040d46, 0x599c1017, 0x8c08050a,
- 0x05020002, 0x84040d48, 0x8c080508, 0x05020002,
- 0x84040d4a, 0x84040d4c, 0x48064c00, 0x59240a00,
- 0x84040d40, 0x48064a00, 0x0505faed, 0x05000017,
- 0x59c40801, 0x82040d40, 0x00004000, 0x48078801,
- 0x64c378e4, 0x640752cd, 0x640752cc, 0x640b50ce,
- 0x4a02480b, 0x0f000001, 0x4c000000, 0x4c500000,
- 0x60000001, 0x4200a000, 0x001105f2, 0x4600a000,
- 0xffffffff, 0x8050a000, 0x80000040, 0x05fe07fc,
- 0x5c00a000, 0x5c000000, 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, 0x05f611e2, 0x82041400,
- 0x00102853, 0x50081000, 0x82081500, 0x000000ff,
- 0x48064a08, 0x480a4805, 0x480a4c08, 0x8c000500,
- 0x05020004, 0x480b503d, 0x600c0800, 0x0521fcd6,
- 0x0501ffeb, 0x05000004, 0x59240400, 0x84000544,
- 0x48024c00, 0x599c0019, 0x8c000506, 0x05000003,
- 0x4a03b805, 0x90000000, 0x8c00050e, 0x05020005,
- 0x4c000000, 0x0505fad0, 0x5c000000, 0x05f601c5,
- 0x90000530, 0x05000003, 0x80000108, 0x0501f002,
- 0x60080000, 0x48039040, 0x60080800, 0x82000400,
- 0x001042be, 0x50001000, 0x0521fcbb, 0x599c0201,
- 0x82000c80, 0x00000100, 0x05f411b6, 0x82000c80,
- 0x00000841, 0x05f611b3, 0x90000507, 0x05f601b1,
- 0x599c0401, 0x80000540, 0x05f401ae, 0x59a808d1,
- 0x8c040502, 0x05000005, 0x90000c90, 0x05001003,
- 0x60400000, 0x48033c01, 0x850e1d52, 0x82000580,
- 0x0000ffff, 0x05000002, 0x850e1d12, 0x599c0409,
- 0x599c0c07, 0x80040c80, 0x05f6119e, 0x80000040,
- 0x05f4019c, 0x599c0209, 0x599c0a07, 0x80040c80,
- 0x05f61198, 0x80000040, 0x05f40196, 0xb1a81411,
- 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, 0x59e00002,
- 0x84000568, 0x4803c002, 0x05e5f8a7, 0x42000000,
- 0x0010dd60, 0x452c0000, 0x64073002, 0x412de000,
- 0x492fc840, 0x644fc842, 0x05011000, 0x599c0018,
- 0x8c00052e, 0x05000012, 0x850e1d16, 0x59a810d2,
- 0x90081493, 0x0500100c, 0x0500000b, 0x480b50d2,
- 0x480b50d3, 0x59a810d4, 0x9008148a, 0x05001004,
- 0x05000003, 0x480b50d4, 0x0501f005, 0x60041000,
- 0x05fdf7fd, 0x60041000, 0x05fdf7f5, 0x600000b8,
- 0x599c1407, 0x48080100, 0x480a5a0c, 0x48025a00,
- 0x492e5801, 0x599c000b, 0x48025808, 0x599c000c,
- 0x48025809, 0x64065c10, 0x599c0409, 0x48025c0a,
- 0x05e5f87d, 0x42000000, 0x0010de60, 0x452c0000,
- 0x64073008, 0x492fc840, 0x642bc842, 0x05011000,
- 0x412ee800, 0x492e5800, 0x492de012, 0x4a025803,
- 0xffff0000, 0x60040000, 0x8d0c0516, 0x05020006,
- 0x599c0211, 0x82001480, 0x00000100, 0x05f61139,
- 0x599c1018, 0x48025a09, 0x600000bc, 0x599c1207,
- 0x48080000, 0x480a5c09, 0x48025c08, 0x599c000d,
- 0x48025806, 0x599c000e, 0x48025807, 0x599c0209,
- 0x48025a08, 0x599c0818, 0x8c040532, 0x05000009,
- 0x6405e20a, 0x599c021a, 0x4801e411, 0x42000000,
- 0x00102ecb, 0x50000000, 0x4801e210, 0x0501f009,
- 0x599c0a1a, 0x90040486, 0x05001002, 0x60040800,
- 0x82040c00, 0x00102ec8, 0x50040000, 0x4801e210,
- 0x599c0818, 0x599c141a, 0x8c040526, 0x05000002,
- 0x8408157e, 0x8c040524, 0x05000002, 0x8408157c,
- 0x8c040528, 0x05000003, 0x82081540, 0x20000000,
- 0x4809e00b, 0x480a5801, 0x480bb01f, 0x480bb11f,
- 0x599c0211, 0x82000400, 0x0010df60, 0x44080000,
- 0x42000000, 0x0010e389, 0x50000000, 0x48080006,
- 0x42000000, 0x0010e388, 0x50000000, 0x48080006,
- 0x0511fb2e, 0x050dfca4, 0x599c0201, 0x48035004,
- 0x05e9fe84, 0x599c020a, 0x800001c0, 0x05000003,
- 0x48035063, 0x0501f003, 0x4a035063, 0x000000c8,
- 0x8d0c0520, 0x05000006, 0x599c0413, 0x90000c82,
- 0x05f410ec, 0x051dfd7e, 0x417a5000, 0x599c0003,
- 0x599c0804, 0x9c0001c0, 0x9c0409c0, 0x48024801,
- 0x48064802, 0x48035002, 0x48075003, 0x599c1017,
- 0x8c08051c, 0x05000006, 0x599c0005, 0x599c0806,
- 0x9c0001c0, 0x9c0409c0, 0x0501f003, 0x82000500,
- 0xf0ffffff, 0x48024803, 0x48064804, 0x48035000,
- 0x48075001, 0x42001000, 0x0010dd46, 0x48001000,
- 0x48041001, 0x42001000, 0x0010dd53, 0x48001000,
- 0x48041001, 0x59a00207, 0xb0000588, 0x050200b0,
- 0x0501fe27, 0x05020003, 0x640b4407, 0x05f5f0c0,
- 0x60400800, 0x59a00208, 0x59a01408, 0x900001c0,
+ 0x900c19c0, 0x800c1d40, 0xb0081400, 0x58ec0003,
+ 0x0505fbc2, 0x4a01d809, 0x00102a9d, 0x1c01f000,
+ 0x48efc857, 0x59a00208, 0x59a01408, 0x900001c0,
0x80081540, 0x59a0020a, 0x59a01c0a, 0x900001c0,
- 0x800c1d40, 0x82081400, 0x00000080, 0xb0083400,
- 0x481b4002, 0x900c3440, 0x481b4003, 0x912c0408,
- 0x0501fe33, 0x4a01d809, 0x00104190, 0x1c01f000,
- 0x05fdfccb, 0x05f400a1, 0x58ee580d, 0x592c1008,
- 0x480bc857, 0x80080120, 0x42024800, 0x0010e512,
- 0x48024c06, 0x82081500, 0x0000ffff, 0x599c0818,
- 0x90040d30, 0x90040580, 0x05020004, 0xb00804be,
- 0x05f610a0, 0x0501f001, 0x0545ff73, 0x05000014,
- 0x82080480, 0x00000100, 0x05f6109a, 0x42000000,
- 0x0010e511, 0x44080000, 0x800811c0, 0x05f40095,
- 0x40080800, 0x42024800, 0x0010e512, 0x912e5c09,
- 0x592c0400, 0x8c000506, 0x05020012, 0x59240200,
- 0x84000500, 0x48024a00, 0x0501f00e, 0x82080480,
- 0x000000ff, 0x05f61087, 0x80080800, 0x42000000,
- 0x0010e511, 0x44040000, 0x800811c0, 0x05000068,
- 0x42024800, 0x0010e51f, 0x80040840, 0x912e5c09,
- 0x600c4000, 0x592c0400, 0x8c000506, 0x05000012,
- 0x59a810d1, 0x90081506, 0x05f60076, 0x8c00050a,
- 0x05020003, 0x8d0c0520, 0x05f40072, 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, 0x91264c0d, 0x80040840, 0x05000019,
- 0x80204040, 0x05fe07d4, 0x48074000, 0x49274001,
- 0x603c0800, 0x59a01002, 0x59a01803, 0x9008343c,
- 0x481b4002, 0x900c3440, 0x481b4003, 0x58ee580d,
- 0x912c0408, 0x0501fdc2, 0x4a01d809, 0x00104201,
- 0x1c01f000, 0x05fdfc5a, 0x05f40030, 0x58ee580d,
- 0x912e5c08, 0x59a00800, 0x59a24801, 0x05fdf7bd,
- 0x0545ff0d, 0x05000010, 0x42006800, 0x0010e512,
- 0x4200b000, 0x0010e511, 0x5058b000, 0x58340400,
- 0x8c000506, 0x05000005, 0x58340200, 0x8400055e,
- 0x48006a00, 0x0501f004, 0x90346c0d, 0x8058b040,
- 0x05fe07f7, 0x42006800, 0x0010e512, 0x4200b000,
- 0x0010e511, 0x5058b000, 0x8058b040, 0x05000008,
- 0x42024800, 0x0010e51f, 0x58340206, 0x48024a06,
- 0x91264c0d, 0x8058b040, 0x05fe07fc, 0x599c1019,
- 0x82081500, 0x0000e000, 0x497b4208, 0x05edfd55,
- 0x05000012, 0x05edfd3a, 0x64074208, 0x0502000f,
- 0x4c080000, 0x05edfd41, 0x5c001000, 0x05020007,
- 0x640b4208, 0x82080580, 0x00008000, 0x05020007,
- 0x64134208, 0x0501f005, 0x640f4208, 0x90080580,
- 0x05020002, 0x64174208, 0x90080580, 0x05020007,
- 0x64035069, 0x60040000, 0x05edfb03, 0x60040000,
- 0x05edfad1, 0x0501f02b, 0x82080580, 0x00002000,
- 0x05020008, 0x64075069, 0x60000000, 0x05edfafa,
- 0x60000000, 0x05edfac8, 0x05edfebf, 0x0501f021,
- 0x82080580, 0x00004000, 0x05020004, 0x640b5069,
- 0x64075075, 0x05fdf7f9, 0x82080580, 0x00006000,
- 0x0502000f, 0x59a80892, 0x82040d80, 0x01391077,
- 0x05020004, 0x59e00813, 0x8c040500, 0x05f207e1,
- 0x640f5069, 0x60080000, 0x05edfae3, 0x60080000,
- 0x05edfab1, 0x05fdf7e9, 0x0501f00a, 0x82080580,
- 0x00008000, 0x05f207d7, 0x05edfeb2, 0x64135069,
- 0x600c0000, 0x05edfad8, 0x600c0000, 0x05edfaa6,
- 0x599c1019, 0x82081500, 0x0000e000, 0x4c080000,
- 0x0501fea2, 0x5c001000, 0x05020004, 0x82080580,
- 0x00004000, 0x0500000b, 0x0501fe70, 0x05000003,
- 0x0501fe85, 0x05020009, 0x82080580, 0x00008000,
- 0x05000004, 0x82080580, 0x00004000, 0x05020003,
- 0x600010c0, 0x0501f004, 0x599c0019, 0x8c000518,
- 0x05000005, 0x8008111a, 0x480b5076, 0x640b5069,
- 0x64075075, 0x599c0019, 0x8c000520, 0x05000001,
- 0x4a035041, 0x0000aaaa, 0x599c1018, 0x90081530,
- 0x90080d80, 0x05000005, 0x90080d90, 0x05000008,
- 0x90080da0, 0x05020002, 0x48075041, 0x0501fdb7,
- 0x05000007, 0x4803c856, 0x850e1d46, 0x05edf88f,
- 0x59a8004d, 0x80040540, 0x4803504d, 0x49f3c857,
- 0x42001000, 0x00106004, 0x0519fc0f, 0x42001000,
- 0x00105ff7, 0x0519fd4d, 0x4a038805, 0xffffffff,
- 0x0501fe5b, 0x05000008, 0x599c1019, 0x8c08053c,
- 0x05020005, 0x4a03c014, 0x00400040, 0x4a03c013,
- 0x00400000, 0x59a0001e, 0x84000540, 0x4803401e,
- 0x49f3c857, 0x59a802dd, 0x48034209, 0x59a804dd,
- 0x48034409, 0x05f1f73b, 0x00000018, 0x0000000c,
- 0x00000018, 0x00000020, 0x916c0580, 0x05020003,
- 0x601c0800, 0x05f1f776, 0x60800800, 0x59a00408,
- 0x59a01208, 0x900811c0, 0x80081540, 0x59a0040a,
- 0x59a01a0a, 0x900c19c0, 0x800c1d40, 0x419c0000,
- 0x0501f4f8, 0x8d0c050e, 0x05000003, 0x64074407,
- 0x05f1f767, 0x050dfdd9, 0x05020003, 0x645b4407,
- 0x05f1f763, 0x59a800b2, 0x8c000500, 0x0500000e,
- 0x64034407, 0x60800800, 0x59a00408, 0x59a01208,
- 0x900811c0, 0x80081540, 0x59a0040a, 0x59a01a0a,
- 0x900c19c0, 0x800c1d40, 0x42000000, 0x00110258,
- 0x0501f4e0, 0x64074407, 0x6080b000, 0x4200a800,
- 0x00110258, 0x4200a000, 0xffffffff, 0x4450a800,
- 0x8054a800, 0x8058b040, 0x05fe07fd, 0x4d440000,
- 0x4d340000, 0x42028800, 0xffffffff, 0x42002000,
- 0xffffffff, 0x60043000, 0x60043800, 0x42001800,
- 0x00110258, 0x59a8103d, 0x82081500, 0x000000ff,
- 0x40180000, 0x0c01f001, 0x00104306, 0x00104309,
- 0x0010430d, 0x00104311, 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, 0x0001fb00, 0x5c003800, 0x5c003000,
- 0x5c001800, 0x5c001000, 0x05fe07f4, 0x0509ff06,
- 0x05fe07f2, 0x80183000, 0x801c3800, 0x59341202,
- 0x40180000, 0x0c01f7d1, 0x82100580, 0xffffffff,
- 0x05000002, 0x44101800, 0x42001800, 0x00110258,
- 0x500c0000, 0x82000500, 0xffffff00, 0x801c0540,
- 0x44001800, 0x5c026800, 0x5c028800, 0x60800800,
+ 0x800c1d40, 0x59a00407, 0x48034000, 0x480b4001,
+ 0x480f4002, 0x0505fb88, 0x05020003, 0x640b4407,
+ 0x05f5f527, 0x60400800, 0x0505fba3, 0x4a01d809,
+ 0x00103dc2, 0x1c01f000, 0x0501fa0f, 0x05f40517,
+ 0x58ee580d, 0x48efc857, 0x49a3c857, 0x492fc857,
+ 0x592c0a08, 0x80040910, 0x05020003, 0x64674407,
+ 0x05f5f517, 0x4805d80c, 0x0501f005, 0x0501fa02,
+ 0x05f4050a, 0x48efc857, 0x49a3c857, 0x48efc857,
+ 0x49a3c857, 0x58ec000c, 0x80000040, 0x0500000d,
+ 0x4801d80c, 0x0505fb68, 0x05020003, 0x640b4407,
+ 0x05f5f507, 0x60400800, 0x58ec1007, 0x58ec1808,
+ 0x0505fb81, 0x4a01d809, 0x00103dcf, 0x1c01f000,
+ 0x58ee580d, 0x48efc857, 0x49a3c857, 0x492fc857,
+ 0x492f3000, 0x592c0408, 0x8400055e, 0x48025c08,
+ 0x4a01d809, 0x00103def, 0x1c01f000, 0x4d2c0000,
+ 0x58ee580d, 0x48efc857, 0x49a3c857, 0x492fc857,
+ 0x592c0408, 0x8400051e, 0x48025c08, 0x59a00000,
+ 0x59a01001, 0x59a01802, 0x80081400, 0x900c1c40,
+ 0x912c0408, 0x60400800, 0x5c025800, 0x0505f36b,
+ 0x8d0c050e, 0x05000003, 0x64074407, 0x05f5f4e0,
+ 0x916c0583, 0x05000003, 0x641f4407, 0x05f5f4dc,
+ 0x59a0320c, 0x82183500, 0x000000ff, 0x59a28c07,
+ 0x0505fc16, 0x05f604db, 0x050dff34, 0x05f604d9,
+ 0x83440580, 0x000007fd, 0x05000005, 0x050dfedb,
+ 0x05000003, 0x64274407, 0x05f5f4cd, 0x0505fb2a,
+ 0x05020003, 0x640b4407, 0x05f5f4c9, 0x801831c0,
+ 0x05000007, 0x412c0800, 0x0505fb23, 0x05020003,
+ 0x640b4407, 0x05f5f4c2, 0x40065800, 0x4a025c08,
+ 0x00008000, 0x497a5a08, 0x0539fcf5, 0x05020003,
+ 0x640f4407, 0x05f5f4ba, 0x4a01d809, 0x00103e2d,
+ 0x1c01f000, 0x592c0009, 0x82000580, 0x01000000,
+ 0x05020003, 0x64134407, 0x05f5f4b1, 0x592c040a,
+ 0x82002d00, 0x0000ff00, 0x82000500, 0x000000ff,
+ 0x80000904, 0x80040800, 0x90040486, 0x05001002,
+ 0x60140800, 0x4c500000, 0x4c540000, 0x4c580000,
+ 0x912ca40a, 0x4050a800, 0x4004b000, 0x054dfa1a,
0x59a00408, 0x59a01208, 0x900811c0, 0x80081540,
0x59a0040a, 0x59a01a0a, 0x900c19c0, 0x800c1d40,
- 0x42000000, 0x00110258, 0x0501f47e, 0x59a28c07,
- 0x0501fd39, 0x05f206f3, 0x59a0020c, 0x8c000500,
- 0x0500000c, 0x59a01209, 0x59a00409, 0x82000500,
- 0x000000ff, 0x900001c0, 0x80081540, 0x41784000,
- 0x0509fdb5, 0x05000005, 0x48034407, 0x05f1f6e5,
- 0x0509ff1d, 0x05f206e3, 0x0501fc41, 0x05020003,
- 0x640b4407, 0x05f1f6da, 0x59a0020c, 0x8c000500,
- 0x05000003, 0x0509fecc, 0x050204f6, 0x59a0020c,
- 0x8c000502, 0x05000015, 0x83440480, 0x000007f0,
- 0x05021012, 0x0509fecd, 0x05020010, 0x497a5a08,
- 0x4a025c08, 0x00008000, 0x59a24805, 0x0535f9f8,
- 0x05020003, 0x640f4407, 0x05f1f6c5, 0x4a01d809,
- 0x0010437a, 0x1c01f000, 0x59a28c07, 0x59a2440b,
- 0x0509fefd, 0x05f206c3, 0x4c580000, 0x4c500000,
+ 0x912c040a, 0x4c140000, 0x0505fb1c, 0x5c002800,
+ 0x801429c0, 0x05000003, 0x4a01d809, 0x00103e58,
+ 0x5c00b000, 0x5c00a800, 0x5c00a000, 0x1c01f000,
+ 0x0501f979, 0x05f40481, 0x58ee580d, 0x812e59c0,
+ 0x05e00fb9, 0x592c000a, 0x82000500, 0xff000000,
+ 0x80000904, 0x800409c0, 0x05f4043e, 0x4807c857,
+ 0x9004048e, 0x05001002, 0x60340800, 0x592e5801,
+ 0x812e59c0, 0x05e00fac, 0x4c500000, 0x4c540000,
+ 0x4c580000, 0x912ca409, 0x4050a800, 0x4004b000,
+ 0x054df9ed, 0x5c00b000, 0x5c00a800, 0x5c00a000,
+ 0x58ec1007, 0x58ec1808, 0x912c0409, 0x0505f2f3,
+ 0x0505fac9, 0x05020003, 0x640b4407, 0x05f5f468,
+ 0x59a00c07, 0x82040500, 0x0000ff00, 0x840001c0,
+ 0x9000148e, 0x05f61467, 0x0c01f001, 0x00103e91,
+ 0x00103e97, 0x00103e9d, 0x00103e9e, 0x00103ea2,
+ 0x00103ebc, 0x00103ec0, 0x00103ea9, 0x00103eae,
+ 0x00103eb4, 0x00103e9d, 0x00103e9d, 0x00103e9d,
+ 0x00103e9d, 0x60340800, 0x42003800, 0x00103ee9,
+ 0x4a034000, 0x00111ce0, 0x0501f02d, 0x60340800,
+ 0x42003800, 0x00103ee9, 0x4a034000, 0x00111ced,
+ 0x0501f027, 0x05f5f44b, 0x0505fcd1, 0x05f60449,
+ 0x497b501e, 0x05f5f3ff, 0x0505fccd, 0x05f60445,
+ 0x59a8101d, 0x800811c0, 0x05f403fa, 0x480b501e,
+ 0x05f5f3f8, 0x0505fcc6, 0x05f6043e, 0x497b5011,
+ 0x497b5012, 0x05f5f3f3, 0x0505fcc1, 0x05f60439,
+ 0x64035011, 0x4a035012, 0x000927c0, 0x05f5f3ed,
+ 0x59a00c07, 0x82040d00, 0x000000ff, 0x05f40431,
+ 0x48074000, 0x42003800, 0x00103eca, 0x0501f008,
+ 0x60200800, 0x42003800, 0x00103ef2, 0x0501f004,
+ 0x60100800, 0x42003800, 0x00103f23, 0x0501f905,
+ 0x912c0409, 0x4c1c0000, 0x0505fa9b, 0x5c003800,
+ 0x481dd809, 0x1c01f000, 0x0501f907, 0x05f4040f,
+ 0x58ee580d, 0x59a0b000, 0x912ca409, 0x50500800,
+ 0x82040580, 0x00110307, 0x0502000f, 0x82041500,
+ 0x000000ff, 0x90080488, 0x0502100b, 0x4200a800,
+ 0x00111b96, 0x80081840, 0x8050a000, 0x50500000,
+ 0x4400a800, 0x8054a800, 0x800c1840, 0x05fe07fb,
+ 0x0501f005, 0x48074407, 0x900409c0, 0x48074208,
+ 0x05f5f404, 0x8050a000, 0x8058b482, 0x05fe07e8,
+ 0x05f5f3b8, 0x0501f8e8, 0x05f403f0, 0x58ee580d,
+ 0x6407504a, 0x6034b000, 0x59a0a800, 0x912ca409,
+ 0x054df96d, 0x05f5f3af, 0x0501f8df, 0x05f403e7,
+ 0x58ee580d, 0x912ca409, 0x50500000, 0x82001500,
+ 0x000c0016, 0x05f603ef, 0x90500c03, 0x50040000,
+ 0x90001501, 0x05f603eb, 0x50500000, 0x90001528,
+ 0x05000015, 0x900815a8, 0x05f603e6, 0x80500800,
+ 0x50040000, 0x90001513, 0x90081593, 0x05f603e1,
+ 0x80040800, 0x50040000, 0x82001500, 0x00050000,
+ 0x82081580, 0x00050000, 0x05f603da, 0x916c0580,
+ 0x0500000e, 0x599c0019, 0x8c00050e, 0x0502000b,
+ 0x05f5f3d4, 0x80500800, 0x50040000, 0x90001513,
+ 0x05f603d0, 0x80040800, 0x50040000, 0x82001500,
+ 0x00050000, 0x05f603cb, 0x6020b000, 0x4200a800,
+ 0x00111cc4, 0x054df901, 0x05f5f37e, 0x0501f8ae,
+ 0x05f403b6, 0x58ee580d, 0x6010b000, 0x4200a800,
+ 0x001124b0, 0x912ca409, 0x054df8f8, 0x850e1d50,
+ 0x05f5f374, 0x0505fa14, 0x05020003, 0x640b4407,
+ 0x05f5f3b3, 0x912cac09, 0x59a00c07, 0x82040500,
+ 0x0000ff00, 0x840001c0, 0x9000148e, 0x05f613b1,
+ 0x0c01f001, 0x00103f47, 0x00103f4a, 0x00103f4d,
+ 0x00103f4e, 0x00103f61, 0x00103f83, 0x00103f4d,
+ 0x00103f89, 0x00103f68, 0x00103f79, 0x00103f4d,
+ 0x00103f4d, 0x00103f4d, 0x00103f4d, 0x4200a000,
+ 0x00111ce0, 0x0501f071, 0x4200a000, 0x00111ced,
+ 0x0501f06e, 0x05f5f39b, 0x0505fc21, 0x05f60399,
+ 0x59a8041f, 0x48034407, 0x59a8021f, 0x48034208,
+ 0x59a80420, 0x48034408, 0x59a80220, 0x4803420a,
+ 0x59a8041d, 0x4803440a, 0x59a8021d, 0x4803420b,
+ 0x59a8041e, 0x4803440b, 0x59a8021e, 0x4803420c,
+ 0x05f5f340, 0x0505fc0e, 0x05f60386, 0x0501f865,
+ 0x60600800, 0x42000000, 0x00111ba5, 0x0505f203,
+ 0x0505fc07, 0x05000002, 0x05f5f37e, 0x59a80413,
+ 0x48034407, 0x59a80213, 0x48034208, 0x59a80414,
+ 0x48034408, 0x59a80214, 0x4803420a, 0x6403440a,
+ 0x6403420b, 0x6427440b, 0x4a03420c, 0x000027c0,
+ 0x05f5f328, 0x0505fbf6, 0x05000002, 0x05f4036d,
+ 0x0501f84c, 0x61ec0801, 0x800400c4, 0x48034407,
+ 0x42000000, 0x00108288, 0x0505f1e8, 0x6020b000,
+ 0x40580800, 0x4200a000, 0x00111cc4, 0x054df89b,
+ 0x0501f035, 0x59a00a0b, 0x6473420b, 0x9004049c,
+ 0x05f4135c, 0x603cb000, 0x4178a000, 0x054df89b,
+ 0x912cac09, 0x6010b000, 0xb1a8a410, 0x054df88f,
+ 0x916c0580, 0x05000007, 0x6008b000, 0x91a8a402,
+ 0x054df88a, 0x6008b000, 0x91a8a400, 0x054df887,
+ 0x912cac15, 0x600cb000, 0xb1a8a414, 0x054df883,
+ 0x492f4000, 0x0505f9a0, 0x05020003, 0x640b4407,
+ 0x05f5f33f, 0x912cac09, 0x603cb000, 0x4178a000,
+ 0x054df882, 0x912cac09, 0x6004b000, 0xb1a8a417,
+ 0x054df876, 0x912cac0a, 0x6010b000, 0xb1a8a418,
+ 0x054df872, 0x0501f817, 0x492f4001, 0x59a25800,
+ 0x912c0409, 0x603c0800, 0x0505f9b4, 0x4a01d809,
+ 0x00103fc0, 0x1c01f000, 0x6034b000, 0x40580800,
+ 0x054df8a1, 0x0501f80b, 0x912c0409, 0x0505f1ab,
+ 0x0501f811, 0x05f40319, 0x59a25801, 0x58ec1007,
+ 0x58ec1808, 0x912c0409, 0x60340800, 0x0505f1a3,
+ 0x59a00208, 0x59a01408, 0x900001c0, 0x80081540,
+ 0x59a0020a, 0x59a01c0a, 0x900001c0, 0x800c1d40,
+ 0x1c01f000, 0x4031d800, 0x58ef400b, 0x58ec0002,
+ 0x82000580, 0x00000200, 0x1c01f000, 0x59a00407,
+ 0x80000d40, 0x05020003, 0x48072833, 0x05f5f2c5,
+ 0x8d0c050e, 0x05020007, 0x4c000000, 0x0511fbb9,
+ 0x5c000000, 0x05000003, 0x645b4407, 0x05f5f300,
+ 0x82000c80, 0x00001000, 0x05f61302, 0x90000c82,
+ 0x05f41300, 0x800008c6, 0x80040c00, 0x80040c00,
+ 0x48072833, 0x59a800b4, 0x84000500, 0x59a00a08,
+ 0x8c040500, 0x05000002, 0x84000540, 0x480350b4,
+ 0x05f5f2ac, 0x8d0c050e, 0x05020003, 0x0511fba1,
+ 0x0502000c, 0x59a800b4, 0x8c000500, 0x05020005,
+ 0x4a03c014, 0x00400040, 0x4a03c013, 0x00400040,
+ 0x59a800b4, 0x8400054a, 0x480350b4, 0x05e1fe12,
+ 0x1c01f000, 0x916c0580, 0x05020003, 0x641f4407,
+ 0x05f5f2db, 0x59a01407, 0x800811c0, 0x0502002a,
+ 0x497b4208, 0x05edfff3, 0x05000011, 0x05edffd8,
+ 0x64074208, 0x0502000e, 0x4c080000, 0x05edffdf,
+ 0x5c001000, 0x05020006, 0x640b4208, 0x05edfbdd,
+ 0x05020007, 0x64134208, 0x0501f005, 0x640f4208,
+ 0x05edfbc6, 0x05020002, 0x64174208, 0x59c40801,
+ 0x82040d00, 0x00018000, 0x90040580, 0x05020003,
+ 0x64034407, 0x0501f069, 0x82040580, 0x00008000,
+ 0x05020003, 0x64074407, 0x0501f064, 0x82040580,
+ 0x00010000, 0x05020003, 0x640f4407, 0x0501f05f,
+ 0x82040580, 0x00018000, 0x05e20de3, 0x64134407,
+ 0x0501f05a, 0x59a800d6, 0x8c000502, 0x05000004,
+ 0x60080000, 0x40000800, 0x0501f012, 0x59a00208,
+ 0x4c000000, 0x0505fa53, 0x5c000000, 0x05000005,
+ 0x4c000000, 0x0505fa66, 0x5c000000, 0x05020007,
+ 0x90000d84, 0x05000003, 0x90000d82, 0x05020003,
+ 0x600c0000, 0x600c1000, 0x48034002, 0x59a8086c,
+ 0x4803506c, 0x599c7819, 0x823c7d00, 0xffff1fff,
+ 0x800000da, 0x803c7d40, 0x483f3819, 0x497b4208,
+ 0x05edffac, 0x05000013, 0x05edff91, 0x64074208,
+ 0x05020010, 0x4c040000, 0x4c080000, 0x05edff97,
+ 0x5c001000, 0x5c000800, 0x05020006, 0x640b4208,
+ 0x05edfb94, 0x05020007, 0x64134208, 0x0501f005,
+ 0x640f4208, 0x05edfb7d, 0x05020002, 0x64174208,
+ 0x05edfb92, 0x0500000b, 0x05edfb78, 0x05000009,
+ 0x05edfb7c, 0x05000007, 0x05edfb80, 0x05000005,
+ 0x05edfb84, 0x05000003, 0x4807506c, 0x05f5f275,
+ 0x90080583, 0x05020005, 0x59a00002, 0x48035079,
+ 0x640b506c, 0x0501f005, 0x4a035079, 0xaabbccdd,
+ 0x90080582, 0x05020011, 0x59c40006, 0x84000500,
+ 0x48038806, 0x0525fc92, 0x497b8880, 0x42000000,
+ 0x00112460, 0x0549fed2, 0x4803c856, 0x850e1d48,
+ 0x4a038808, 0x00000200, 0x6012d800, 0x64078805,
+ 0x64075078, 0x05e1ffa0, 0x05f5f212, 0x8d0c050e,
+ 0x05000003, 0x64074407, 0x05f5f251, 0x916c0583,
+ 0x05000003, 0x641f4407, 0x05f5f24d, 0x59a28c07,
+ 0x59a0320c, 0x82183500, 0x000000ff, 0x0505f987,
+ 0x05f6024c, 0x050dfca5, 0x05f6024a, 0x83440580,
+ 0x000007fd, 0x05000005, 0x050dfc4c, 0x05000003,
+ 0x60240800, 0x05f5f23e, 0x0505f89b, 0x05020003,
+ 0x640b4407, 0x05f5f23a, 0x497a5a08, 0x4a025c08,
+ 0x00008000, 0x0539fa81, 0x05020003, 0x640f4407,
+ 0x05f5f233, 0x4a01d809, 0x001040b4, 0x1c01f000,
+ 0x592c0009, 0x82000d00, 0x0000ffff, 0x82000500,
+ 0xffff0000, 0x82000580, 0x01000000, 0x05020003,
+ 0x64134407, 0x05f5f226, 0x80040904, 0x4c500000,
+ 0x4c540000, 0x4c580000, 0x912ca409, 0x4050a800,
+ 0x4004b000, 0x0549ff98, 0x5c00b000, 0x5c00a800,
+ 0x5c00a000, 0x59a00208, 0x59a01408, 0x900001c0,
+ 0x80081540, 0x59a0020a, 0x59a01c0a, 0x900001c0,
+ 0x800c1d40, 0x912c0409, 0x0505f098, 0x60000020,
+ 0x50000000, 0x82000480, 0x25320001, 0x0502000a,
+ 0x599c1019, 0x8c08053c, 0x05020005, 0x4a03c014,
+ 0x00400040, 0x4a03c013, 0x00400000, 0x6041d04e,
+ 0x051dfb90, 0x496fc857, 0x916c0580, 0x05000003,
+ 0x646b4407, 0x05f5f1fe, 0x0511fab2, 0x050a0a17,
+ 0x60800800, 0x59a00408, 0x59a01208, 0x900811c0,
+ 0x80081540, 0x59a0040a, 0x59a01a0a, 0x900c19c0,
+ 0x800c1d40, 0x419c0000, 0x49a3c857, 0x0505f86e,
+ 0x4a01d809, 0x001040f7, 0x1c01f000, 0x4833c857,
+ 0x05fdfed9, 0x05f401e1, 0x59a00407, 0x8c000500,
+ 0x05000061, 0x59a0020e, 0x80000104, 0x05f401e9,
+ 0x90000c95, 0x05f611e7, 0x40000800, 0x59a0040c,
+ 0x59a0120c, 0x900811c0, 0x80081540, 0x59a0040d,
+ 0x59a01a0d, 0x900c19c0, 0x800c1d40, 0x42000000,
+ 0x00111cb0, 0x49a3c857, 0x0505f853, 0x4a01d809,
+ 0x00104112, 0x1c01f000, 0x05fdfebf, 0x05f401c7,
+ 0x42000800, 0x00111cb0, 0x58040200, 0x800001c0,
+ 0x05f401d0, 0x599c0017, 0x8c000508, 0x05000042,
+ 0x58040204, 0x8c000500, 0x0500003f, 0x599c0202,
+ 0x800001c0, 0x05f401c7, 0x599c141e, 0x80000000,
+ 0x80080480, 0x05f611c3, 0x42001000, 0x001141cc,
+ 0x4a001008, 0x00000112, 0x6428120b, 0x4978140b,
+ 0x49781011, 0x4a00140e, 0x00000101, 0x58040005,
+ 0x48001015, 0x4a00120a, 0x0000ffff, 0x4a00100d,
+ 0x00115a74, 0x58040006, 0x48001016, 0x58040007,
+ 0x48001017, 0x4a001013, 0xdeadbeff, 0x4a001001,
+ 0x001141e4, 0x42001000, 0x001141e4, 0x48081000,
+ 0x48081001, 0x64281208, 0x58040005, 0x48001009,
+ 0x4800100c, 0x4800100f, 0x48001012, 0x48001015,
+ 0x58040006, 0x4800100a, 0x4800100d, 0x48001010,
+ 0x48001013, 0x48001016, 0x58040007, 0x4800100b,
+ 0x4800100e, 0x48001011, 0x48001014, 0x48001017,
+ 0x42001000, 0x00115a74, 0x4a001009, 0x001141cc,
+ 0x4a001013, 0xdeadbeff, 0x64841008, 0x64101203,
+ 0x64181407, 0x599c0200, 0x800001c0, 0x05f40189,
+ 0x59a800d6, 0x8c000502, 0x05000011, 0x599c0017,
+ 0x84000508, 0x48033817, 0x599c0019, 0x82000500,
+ 0xffff1fff, 0x82000540, 0x00004000, 0x48033819,
+ 0x599c0018, 0x84000510, 0x84000516, 0x82000500,
+ 0xffffffcf, 0x90000560, 0x0501f004, 0x8c000504,
+ 0x05000004, 0x599c0018, 0x84000514, 0x48033818,
+ 0x053df9c8, 0x850e1d20, 0x599c0017, 0x8c000508,
+ 0x05000003, 0x850e1d60, 0x0501f006, 0x8c00050a,
+ 0x05f60168, 0x59a80806, 0x8c040516, 0x05f60165,
+ 0x42024800, 0x001124b6, 0x64124a00, 0x42000800,
+ 0x001124b5, 0x64040800, 0x42000800, 0x001124b4,
+ 0x46000800, 0x0000ffff, 0x59240c00, 0x84040d46,
+ 0x599c1017, 0x8c08050a, 0x05020002, 0x84040d48,
+ 0x8c080508, 0x05020002, 0x84040d4a, 0x84040d4c,
+ 0x48064c00, 0x59240a00, 0x84040d40, 0x48064a00,
+ 0x0505fb1d, 0x05000017, 0x59c40801, 0x82040d40,
+ 0x00004000, 0x48078801, 0x64c378e4, 0x640752d2,
+ 0x640752d1, 0x640b50d3, 0x4a02480b, 0x0f000001,
+ 0x4c000000, 0x4c500000, 0x60000001, 0x4200a000,
+ 0x00114596, 0x4600a000, 0xffffffff, 0x8050a000,
+ 0x80000040, 0x05fe07fc, 0x5c00a000, 0x5c000000,
+ 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,
+ 0x05f61114, 0x82041400, 0x001028fb, 0x50081000,
+ 0x82081500, 0x000000ff, 0x48064a08, 0x480a4805,
+ 0x480a4c08, 0x8c000500, 0x05020004, 0x480b5040,
+ 0x600c0800, 0x0525f81e, 0x0505f812, 0x05000004,
+ 0x59240400, 0x84000544, 0x48024c00, 0x599c0019,
+ 0x8c000506, 0x05000003, 0x4a03b805, 0x90000000,
+ 0x8c00050e, 0x05020005, 0x4c000000, 0x0505fb4e,
+ 0x5c000000, 0x05f600f7, 0x90000530, 0x05000003,
+ 0x80000108, 0x0501f002, 0x60080000, 0x48039040,
+ 0x60080800, 0x82000400, 0x0010443d, 0x50001000,
+ 0x0525f803, 0x599c0201, 0x82000c80, 0x00000100,
+ 0x05f410e8, 0x82000c80, 0x00000841, 0x05f610e5,
+ 0x90000507, 0x05f600e3, 0x599c0401, 0x80000540,
+ 0x05f400e0, 0x59a808d6, 0x8c040502, 0x05000005,
+ 0x90000c90, 0x05001003, 0x60400000, 0x48033c01,
+ 0x850e1d52, 0x82000580, 0x0000ffff, 0x05000002,
+ 0x850e1d12, 0x599c0409, 0x599c0c07, 0x80040c80,
+ 0x05f610d0, 0x80000040, 0x05f400ce, 0x599c0209,
+ 0x599c0a07, 0x80040c80, 0x05f610ca, 0x80000040,
+ 0x05f400c8, 0xb1a81414, 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, 0x59e00002, 0x84000568, 0x4803c002,
+ 0x05e1ff68, 0x42000000, 0x00111cfa, 0x452c0000,
+ 0x64073002, 0x412de000, 0x492fc840, 0x644fc842,
+ 0x05011000, 0x599c0018, 0x8c00052e, 0x05000012,
+ 0x850e1d16, 0x59a810d7, 0x90081493, 0x0500100c,
+ 0x0500000b, 0x480b50d7, 0x480b50d8, 0x59a810d9,
+ 0x9008148a, 0x05001004, 0x05000003, 0x480b50d9,
+ 0x0501f005, 0x60041000, 0x05fdf7fd, 0x60041000,
+ 0x05fdf7f5, 0x600000b8, 0x599c1407, 0x48080100,
+ 0x480a5a0c, 0x48025a00, 0x492e5801, 0x599c100b,
+ 0x480a5808, 0x599c180c, 0x480e5809, 0x64065c10,
+ 0x599c0c09, 0x48065c0a, 0x05e1ff3e, 0x42000000,
+ 0x00111dfa, 0x452c0000, 0x64073008, 0x492fc840,
+ 0x642bc842, 0x05011000, 0x412ee800, 0x492e5800,
+ 0x492de012, 0x4a025803, 0xffff0000, 0x60040000,
+ 0x8d0c0516, 0x05020006, 0x599c0211, 0x82001480,
+ 0x00000100, 0x05f6106b, 0x599c1018, 0x48025a09,
+ 0x600000bc, 0x599c1207, 0x48080000, 0x480a5c09,
+ 0x48025c08, 0x599c100d, 0x480a5806, 0x599c180e,
+ 0x480e5807, 0x599c0a09, 0x48065a08, 0x599c0818,
+ 0x8c040532, 0x05000009, 0x6405e20a, 0x599c021a,
+ 0x4801e411, 0x42000000, 0x00102f76, 0x50000000,
+ 0x4801e210, 0x0501f009, 0x599c0a1a, 0x90040486,
+ 0x05001002, 0x60040800, 0x82040c00, 0x00102f73,
+ 0x50040000, 0x4801e210, 0x599c0818, 0x599c141a,
+ 0x8c040526, 0x05000002, 0x8408157e, 0x8c040524,
+ 0x05000002, 0x8408157c, 0x8c040528, 0x05000003,
+ 0x82081540, 0x20000000, 0x4809e00b, 0x480a5801,
+ 0x480bb01f, 0x480bb11f, 0x599c0211, 0x82000400,
+ 0x00111efa, 0x44080000, 0x42000000, 0x00112324,
+ 0x50000000, 0x48080006, 0x42000000, 0x00112323,
+ 0x50000000, 0x48080006, 0x0511fca8, 0x050dfe12,
+ 0x599c0201, 0x48035004, 0x05e9fd7f, 0x599c020a,
+ 0x800001c0, 0x05000003, 0x48035066, 0x0501f003,
+ 0x4a035066, 0x000000c8, 0x8d0c0520, 0x05000006,
+ 0x599c0413, 0x90000c82, 0x05f4101e, 0x0521f8bf,
+ 0x417a5000, 0x599c0003, 0x599c0804, 0x9c0001c0,
+ 0x9c0409c0, 0x48024801, 0x48064802, 0x48035002,
+ 0x48075003, 0x599c1017, 0x8c08051c, 0x05000006,
+ 0x599c0005, 0x599c0806, 0x9c0001c0, 0x9c0409c0,
+ 0x0501f003, 0x82000500, 0xf0ffffff, 0x48024803,
+ 0x48064804, 0x48035000, 0x48075001, 0x42001000,
+ 0x00111ce0, 0x48001000, 0x48041001, 0x42001000,
+ 0x00111ced, 0x48001000, 0x48041001, 0x59a00207,
+ 0xb0000588, 0x050200b0, 0x0501fe53, 0x05020003,
+ 0x640b4407, 0x05f1f7f2, 0x60400800, 0x59a00208,
+ 0x59a01408, 0x900001c0, 0x80081540, 0x59a0020a,
+ 0x59a01c0a, 0x900001c0, 0x800c1d40, 0x82081400,
+ 0x00000080, 0xb0083400, 0x481b4002, 0x900c3440,
+ 0x481b4003, 0x912c0408, 0x0501fe5f, 0x4a01d809,
+ 0x00104306, 0x1c01f000, 0x05fdfccb, 0x05f007d3,
+ 0x58ee580d, 0x592c1008, 0x480bc857, 0x80080120,
+ 0x42024800, 0x001124b6, 0x48024c06, 0x82081500,
+ 0x0000ffff, 0x599c0818, 0x90040d30, 0x90040580,
+ 0x05020004, 0xb00804be, 0x05f217d2, 0x0501f001,
+ 0x0549fd78, 0x05000014, 0x82080480, 0x00000100,
+ 0x05f217cc, 0x42000000, 0x001124b5, 0x44080000,
+ 0x800811c0, 0x05f007c7, 0x40080800, 0x42024800,
+ 0x001124b6, 0x912e5c09, 0x592c0400, 0x8c000506,
+ 0x05020012, 0x59240200, 0x84000500, 0x48024a00,
+ 0x0501f00e, 0x82080480, 0x000000ff, 0x05f217b9,
+ 0x80080800, 0x42000000, 0x001124b5, 0x44040000,
+ 0x800811c0, 0x05000068, 0x42024800, 0x001124c3,
+ 0x80040840, 0x912e5c09, 0x600c4000, 0x592c0400,
+ 0x8c000506, 0x05000012, 0x59a810d6, 0x90081506,
+ 0x05f207a8, 0x8c00050a, 0x05020003, 0x8d0c0520,
+ 0x05f007a4, 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, 0x91264c0d,
+ 0x80040840, 0x05000019, 0x80204040, 0x05fe07d4,
+ 0x48074000, 0x49274001, 0x603c0800, 0x59a01002,
+ 0x59a01803, 0x9008343c, 0x481b4002, 0x900c3440,
+ 0x481b4003, 0x58ee580d, 0x912c0408, 0x0501fdee,
+ 0x4a01d809, 0x00104377, 0x1c01f000, 0x05fdfc5a,
+ 0x05f00762, 0x58ee580d, 0x912e5c08, 0x59a00800,
+ 0x59a24801, 0x05fdf7bd, 0x0549fd12, 0x05000010,
+ 0x42006800, 0x001124b6, 0x4200b000, 0x001124b5,
+ 0x5058b000, 0x58340400, 0x8c000506, 0x05000005,
+ 0x58340200, 0x8400055e, 0x48006a00, 0x0501f004,
+ 0x90346c0d, 0x8058b040, 0x05fe07f7, 0x42006800,
+ 0x001124b6, 0x4200b000, 0x001124b5, 0x5058b000,
+ 0x8058b040, 0x05000008, 0x42024800, 0x001124c3,
+ 0x58340206, 0x48024a06, 0x91264c0d, 0x8058b040,
+ 0x05fe07fc, 0x599c1019, 0x82081500, 0x0000e000,
+ 0x497b4208, 0x05edfc5f, 0x05000012, 0x05edfc44,
+ 0x64074208, 0x0502000f, 0x4c080000, 0x05edfc4b,
+ 0x5c001000, 0x05020007, 0x640b4208, 0x82080580,
+ 0x00008000, 0x05020007, 0x64134208, 0x0501f005,
+ 0x640f4208, 0x90080580, 0x05020002, 0x64174208,
+ 0x90080580, 0x05020007, 0x6403506c, 0x60040000,
+ 0x05edfa0d, 0x60040000, 0x05edf9db, 0x0501f02b,
+ 0x82080580, 0x00002000, 0x05020008, 0x6407506c,
+ 0x60000000, 0x05edfa04, 0x60000000, 0x05edf9d2,
+ 0x05edfdc9, 0x0501f021, 0x82080580, 0x00004000,
+ 0x05020004, 0x640b506c, 0x64075078, 0x05fdf7f9,
+ 0x82080580, 0x00006000, 0x0502000f, 0x59a80895,
+ 0x82040d80, 0x01391077, 0x05020004, 0x59e00813,
+ 0x8c040500, 0x05f20713, 0x640f506c, 0x60080000,
+ 0x05edf9ed, 0x60080000, 0x05edf9bb, 0x05fdf7e9,
+ 0x0501f00a, 0x82080580, 0x00008000, 0x05f20709,
+ 0x05edfdbc, 0x6413506c, 0x600c0000, 0x05edf9e2,
+ 0x600c0000, 0x05edf9b0, 0x599c1019, 0x82081500,
+ 0x0000e000, 0x4c080000, 0x0501fed2, 0x5c001000,
+ 0x05020004, 0x82080580, 0x00004000, 0x0500000b,
+ 0x0501fea0, 0x05000003, 0x0501feb5, 0x05020009,
+ 0x82080580, 0x00008000, 0x05000004, 0x82080580,
+ 0x00004000, 0x05020003, 0x600010c0, 0x0501f004,
+ 0x599c0019, 0x8c000518, 0x05000005, 0x8008111a,
+ 0x480b5079, 0x640b506c, 0x64075078, 0x599c0019,
+ 0x8c000520, 0x05000001, 0x4a035044, 0x0000aaaa,
+ 0x599c1018, 0x90081530, 0x90080d80, 0x05000005,
+ 0x90080d90, 0x05000008, 0x90080da0, 0x05020002,
+ 0x48075044, 0x0501fdde, 0x05000007, 0x4803c856,
+ 0x850e1d46, 0x05e9ff99, 0x59a80050, 0x80040540,
+ 0x48035050, 0x49f3c857, 0x42001000, 0x001062e8,
+ 0x0519feb3, 0x42001000, 0x001062db, 0x051df83b,
+ 0x4a038805, 0xffffffff, 0x0501fe8b, 0x05000008,
+ 0x599c1019, 0x8c08053c, 0x05020005, 0x4a03c014,
+ 0x00400040, 0x4a03c013, 0x00400000, 0x59a0001e,
+ 0x84000540, 0x4803401e, 0x8d0c0538, 0x05020008,
+ 0x42000800, 0x0010e380, 0x82041400, 0x00003800,
+ 0x05e1fdad, 0x480b500d, 0x481b500e, 0x49f3c857,
+ 0x59a802e2, 0x48034209, 0x59a804e2, 0x48034409,
+ 0x05f1f664, 0x00000018, 0x0000000c, 0x00000018,
+ 0x00000020, 0x916c0580, 0x05020003, 0x601c0800,
+ 0x05f1f69f, 0x60800800, 0x59a00408, 0x59a01208,
+ 0x900811c0, 0x80081540, 0x59a0040a, 0x59a01a0a,
+ 0x900c19c0, 0x800c1d40, 0x419c0000, 0x0501f51b,
+ 0x8d0c050e, 0x05000003, 0x64074407, 0x05f1f690,
+ 0x050dff44, 0x05020003, 0x645b4407, 0x05f1f68c,
+ 0x59a800b7, 0x8c000500, 0x0500000e, 0x64034407,
+ 0x60800800, 0x59a00408, 0x59a01208, 0x900811c0,
+ 0x80081540, 0x59a0040a, 0x59a01a0a, 0x900c19c0,
+ 0x800c1d40, 0x42000000, 0x001141fc, 0x0501f503,
+ 0x64074407, 0x6080b000, 0x4200a800, 0x001141fc,
+ 0x4200a000, 0xffffffff, 0x4450a800, 0x8054a800,
+ 0x8058b040, 0x05fe07fd, 0x4d440000, 0x4d340000,
+ 0x42028800, 0xffffffff, 0x42002000, 0xffffffff,
+ 0x60043000, 0x60043800, 0x42001800, 0x001141fc,
+ 0x59a81040, 0x82081500, 0x000000ff, 0x40180000,
+ 0x0c01f001, 0x00104485, 0x00104488, 0x0010448c,
+ 0x00104490, 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, 0x05021014,
+ 0x4c100000, 0x4c080000, 0x4c0c0000, 0x4c180000,
+ 0x4c1c0000, 0x0001fb08, 0x5c003800, 0x5c003000,
+ 0x5c001800, 0x5c001000, 0x5c002000, 0x05fe07f2,
+ 0x050df84e, 0x05fe07f0, 0x80183000, 0x801c3800,
+ 0x59341202, 0x40180000, 0x0c01f7cf, 0x82100580,
+ 0xffffffff, 0x05000002, 0x44101800, 0x42001800,
+ 0x001141fc, 0x500c0000, 0x82000500, 0xffffff00,
+ 0x801c0540, 0x44001800, 0x5c026800, 0x5c028800,
+ 0x60800800, 0x59a00408, 0x59a01208, 0x900811c0,
+ 0x80081540, 0x59a0040a, 0x59a01a0a, 0x900c19c0,
+ 0x800c1d40, 0x42000000, 0x001141fc, 0x0501f49f,
+ 0x59a28c07, 0x0501fd55, 0x05f2061a, 0x59a0020c,
+ 0x8c000500, 0x0500000c, 0x59a01209, 0x59a00409,
+ 0x82000500, 0x000000ff, 0x900001c0, 0x80081540,
+ 0x41784000, 0x0509fea6, 0x05000005, 0x48034407,
+ 0x05f1f60c, 0x050df865, 0x05f2060a, 0x0501fc62,
+ 0x05020003, 0x640b4407, 0x05f1f601, 0x59a0020c,
+ 0x8c000500, 0x05000003, 0x050df814, 0x05020512,
+ 0x59a0020c, 0x8c000502, 0x05000018, 0x83440480,
+ 0x000007f0, 0x05001004, 0x83440480, 0x00000800,
+ 0x05001012, 0x050df812, 0x05020010, 0x497a5a08,
+ 0x4a025c08, 0x00008000, 0x59a24805, 0x0535fe0d,
+ 0x05020003, 0x640f4407, 0x05f1f5e9, 0x4a01d809,
+ 0x001044fe, 0x1c01f000, 0x59a28c07, 0x59a2440b,
+ 0x050df842, 0x05f205e7, 0x4c580000, 0x4c500000,
0x4c540000, 0x6028b000, 0x4134a000, 0x912e5c05,
- 0x412ca800, 0x0545fd22, 0x912cac06, 0x4054a000,
- 0x6010b000, 0x0545fd59, 0x5c00a800, 0x5c00a000,
+ 0x412ca800, 0x0549fb19, 0x912cac06, 0x4054a000,
+ 0x6010b000, 0x0549fb50, 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, 0x0501f421,
- 0x496fc857, 0x496f4407, 0x497b4208, 0x05edfbd5,
- 0x05000015, 0x05edfbba, 0x64074208, 0x05020012,
- 0x4c080000, 0x05edfbc1, 0x5c001000, 0x05020008,
- 0x640b4208, 0x916c0580, 0x0500000b, 0x05e9ffbd,
+ 0x900c19c0, 0x800c1d40, 0x412c0000, 0x0501f43f,
+ 0x496fc857, 0x496f4407, 0x497b4208, 0x05edfad1,
+ 0x05000015, 0x05edfab6, 0x64074208, 0x05020012,
+ 0x4c080000, 0x05edfabd, 0x5c001000, 0x05020008,
+ 0x640b4208, 0x916c0580, 0x0500000b, 0x05e9feb9,
0x05020009, 0x64134208, 0x0501f007, 0x640f4208,
- 0x916c0580, 0x05000004, 0x05e9ffa4, 0x05020002,
- 0x64174208, 0x05f1f637, 0x59a28c07, 0x0501fcc2,
- 0x05f2067c, 0x0509feb4, 0x05f2067a, 0x916c0583,
- 0x05000003, 0x641f4407, 0x05f1f671, 0x91340c06,
+ 0x916c0580, 0x05000004, 0x05e9fea0, 0x05020002,
+ 0x64174208, 0x05f1f55b, 0x59a28c07, 0x0501fcdb,
+ 0x05f205a0, 0x0509fff9, 0x05f2059e, 0x916c0583,
+ 0x05000003, 0x641f4407, 0x05f1f595, 0x91340c06,
0x59a0020c, 0x8c000500, 0x05000002, 0x91340c08,
0x58040001, 0x4803440a, 0x900001c0, 0x4803420a,
0x50040000, 0x48034408, 0x900001c0, 0x48034208,
- 0x59340200, 0x48034407, 0x05f1f61e, 0x8d0c050e,
- 0x05000003, 0x64074407, 0x05f1f65d, 0x59a0220c,
+ 0x59340200, 0x48034407, 0x05f1f542, 0x8d0c050e,
+ 0x05000003, 0x64074407, 0x05f1f581, 0x59a0220c,
0x8c100500, 0x05020021, 0x8c100506, 0x05020004,
- 0x59a03209, 0x90180483, 0x05f2165a, 0x59a28c07,
- 0x0001fb00, 0x05f20657, 0x0509fe3b, 0x05000003,
- 0x64274407, 0x05f1f64e, 0x0501fbb1, 0x05020003,
- 0x640b4407, 0x05f1f64a, 0x59a0220c, 0x8c100506,
+ 0x59a03209, 0x90180483, 0x05f2157e, 0x59a28c07,
+ 0x0001fb08, 0x05f2057b, 0x0509ff80, 0x05000003,
+ 0x64274407, 0x05f1f572, 0x0501fbcf, 0x05020003,
+ 0x640b4407, 0x05f1f56e, 0x59a0220c, 0x8c100506,
0x05000004, 0x59343002, 0x82183500, 0x00ffffff,
- 0x497a5a08, 0x4a025c08, 0x00008000, 0x0535f938,
- 0x05020003, 0x640f4407, 0x05f1f63d, 0x4a01d809,
- 0x0010443c, 0x1c01f000, 0x59a28c07, 0x0001fb00,
- 0x05f2063c, 0x0509fe20, 0x05000003, 0x64274407,
- 0x05f1f633, 0x0501fb96, 0x05020003, 0x640b4407,
- 0x05f1f62f, 0x497a5a08, 0x4a025c08, 0x00008000,
- 0x0501fb8f, 0x05020003, 0x640b4407, 0x05f1f628,
- 0x592e5800, 0x0535f931, 0x05020003, 0x640f4407,
- 0x05f1f623, 0x4a01d809, 0x0010441c, 0x1c01f000,
+ 0x497a5a08, 0x4a025c08, 0x00008000, 0x0535fd4d,
+ 0x05020003, 0x640f4407, 0x05f1f561, 0x4a01d809,
+ 0x001045c0, 0x1c01f000, 0x59a28c07, 0x0001fb08,
+ 0x05f20560, 0x0509ff65, 0x05000003, 0x64274407,
+ 0x05f1f557, 0x0501fbb4, 0x05020003, 0x640b4407,
+ 0x05f1f553, 0x497a5a08, 0x4a025c08, 0x00008000,
+ 0x0501fbad, 0x05020003, 0x640b4407, 0x05f1f54c,
+ 0x592e5800, 0x0535fd46, 0x05020003, 0x640f4407,
+ 0x05f1f547, 0x4a01d809, 0x001045a0, 0x1c01f000,
0x592c2809, 0x82140d80, 0x01000000, 0x05020003,
- 0x64134407, 0x05f1f61a, 0x60200800, 0x59a00208,
+ 0x64134407, 0x05f1f53e, 0x60200800, 0x59a00208,
0x59a01408, 0x900001c0, 0x80081540, 0x59a0020a,
0x59a01c0a, 0x900001c0, 0x800c1d40, 0x912c0409,
- 0x0501fb9c, 0x8c140500, 0x05000003, 0x4a01d809,
- 0x00104432, 0x1c01f000, 0x05fdfa29, 0x05f005ff,
- 0x58ee580e, 0x812e59c0, 0x05e009a4, 0x60200800,
- 0x912c0409, 0x58ec1007, 0x58ec1808, 0x0501f38d,
+ 0x0501fbba, 0x8c140500, 0x05000003, 0x4a01d809,
+ 0x001045b6, 0x1c01f000, 0x05fdfa1b, 0x05f00523,
+ 0x58ee580e, 0x812e59c0, 0x05e0085b, 0x60200800,
+ 0x912c0409, 0x58ec1007, 0x58ec1808, 0x0501f3ab,
0x592c0009, 0x82000580, 0x01000000, 0x05020003,
- 0x64134407, 0x05f1f5fa, 0x59a00208, 0x59a01408,
+ 0x64134407, 0x05f1f51e, 0x59a00208, 0x59a01408,
0x900001c0, 0x80081540, 0x59a0020a, 0x59a01c0a,
0x900001c0, 0x800c1d40, 0x60180800, 0x912c040a,
- 0x0501f37c, 0x59a00a0b, 0x800409c0, 0x05f005f1,
+ 0x0501f39a, 0x59a00a0b, 0x800409c0, 0x05f00515,
0x82040480, 0x00000081, 0x05001002, 0x60000801,
0x59c40085, 0x59881004, 0x80081400, 0x480b1004,
- 0x497b8885, 0x59c400b1, 0x59a810a9, 0x80080400,
- 0x48031022, 0x59c400b2, 0x59a810aa, 0x80080400,
+ 0x497b8885, 0x59c400b1, 0x59a810ae, 0x80080400,
+ 0x48031022, 0x59c400b2, 0x59a810af, 0x80080400,
0x48031021, 0x59c400a2, 0x82000500, 0x0000ffff,
- 0x48031023, 0x598810bc, 0x598800bd, 0x80081400,
- 0x598800be, 0x80081400, 0x598800bf, 0x80081400,
- 0x59880122, 0x80081400, 0x598800c0, 0x80081400,
- 0x5988013c, 0x80081400, 0x5988013a, 0x80081400,
- 0x59880139, 0x80081400, 0x480b1024, 0x59a00208,
+ 0x59881023, 0x80080400, 0x05021002, 0x81780040,
+ 0x48031023, 0x598810bf, 0x598800c0, 0x80081400,
+ 0x598800c1, 0x80081400, 0x598800c2, 0x80081400,
+ 0x59880125, 0x80081400, 0x598800c3, 0x80081400,
+ 0x59880145, 0x80081400, 0x5988014b, 0x80081400,
+ 0x59880157, 0x80081400, 0x5988014e, 0x80081400,
+ 0x5988013f, 0x80081400, 0x5988013d, 0x80081400,
+ 0x5988013c, 0x80081400, 0x480b1024, 0x59a00208,
0x59a01408, 0x900001c0, 0x80081540, 0x59a0020a,
0x59a01c0a, 0x900001c0, 0x800c1d40, 0x91880400,
- 0x0501fb48, 0x4a01d809, 0x00104484, 0x1c01f000,
- 0x05fdf9d7, 0x05f005ad, 0x59a0020c, 0x8c000500,
+ 0x0501fb5a, 0x4a01d809, 0x00104614, 0x1c01f000,
+ 0x05fdf9bd, 0x05f004c5, 0x59a0020c, 0x8c000500,
0x05000006, 0x91880400, 0x4803c840, 0x641bc842,
0x05011000, 0x497b8885, 0x4a034208, 0x00000080,
- 0x05f1f568, 0x8d0c050e, 0x05000003, 0x64074407,
- 0x05f1f5a7, 0x0501fbf0, 0x05f205aa, 0x0501fb08,
- 0x05020003, 0x640b4407, 0x05f1f5a1, 0x497a5a08,
+ 0x05f1f480, 0x8d0c050e, 0x05000003, 0x64074407,
+ 0x05f1f4bf, 0x0501fbfd, 0x05f204c2, 0x0501fb1a,
+ 0x05020003, 0x640b4407, 0x05f1f4b9, 0x497a5a08,
0x4a025c08, 0x00008000, 0x59a00407, 0x800001c0,
- 0x05f005a0, 0x82001580, 0x000000ff, 0x05000003,
- 0x90001484, 0x05f2159b, 0x40001000, 0x59a24805,
- 0x05edfe03, 0x05020003, 0x640f4407, 0x05f1f590,
- 0x4a01d809, 0x001044af, 0x1c01f000, 0x592c0009,
- 0x82000580, 0x01000000, 0x05f20546, 0x64134407,
- 0x05f1f587, 0x59a01407, 0x8c080508, 0x05020005,
- 0x8d0c050e, 0x05000003, 0x64074407, 0x05f1f580,
- 0x59a01c08, 0x820c0480, 0x00001000, 0x05f21581,
+ 0x05f004b8, 0x82001580, 0x000000ff, 0x05000003,
+ 0x90001484, 0x05f214b3, 0x40001000, 0x59a24805,
+ 0x05edfd06, 0x05020003, 0x640f4407, 0x05f1f4a8,
+ 0x4a01d809, 0x0010463f, 0x1c01f000, 0x592c0009,
+ 0x82000580, 0x01000000, 0x05f2045e, 0x64134407,
+ 0x05f1f49f, 0x59a01407, 0x8c080508, 0x05020005,
+ 0x8d0c050e, 0x05000003, 0x64074407, 0x05f1f498,
+ 0x59a01c08, 0x820c0480, 0x00001000, 0x05f21499,
0x497b2804, 0x497b2805, 0x497b2826, 0x497b2827,
- 0x497b2829, 0x497b282a, 0x497b282c, 0x497b282d,
+ 0x497b282a, 0x497b282b, 0x497b282d, 0x497b282e,
0x4803c856, 0x850e1d06, 0x8c080500, 0x05000004,
0x4803c856, 0x910e1d51, 0x0501f004, 0x8c080506,
0x05000002, 0x850e1d42, 0x850e1d0a, 0x6006d800,
0x82081500, 0x000000e0, 0x8008010a, 0x0c02002d,
- 0x050dfbd6, 0x05020008, 0x64075042, 0x4a035041,
- 0x0000aaaa, 0x050dfb54, 0x0501f01b, 0x64035042,
- 0x05fdf7fb, 0x050dfbd9, 0x05fc07f8, 0x0505fc24,
- 0x0521fb71, 0x050dfbc9, 0x05020003, 0x60000000,
- 0x050dfb9f, 0x59a00a08, 0x480788a7, 0x59c400a3,
+ 0x050dfd30, 0x05020008, 0x64075045, 0x4a035044,
+ 0x0000aaaa, 0x050dfca8, 0x0501f01b, 0x64035045,
+ 0x05fdf7fb, 0x050dfd33, 0x05fc07f8, 0x0505fc8b,
+ 0x0521fe9f, 0x050dfd23, 0x05020003, 0x60000000,
+ 0x050dfcf3, 0x59a00a08, 0x480788a7, 0x59c400a3,
0x82000500, 0xfeffffff, 0x82000540, 0x80018000,
0x40000800, 0x84040d20, 0x480388a3, 0x480788a3,
- 0x497b5064, 0x60b40800, 0x42001000, 0x00105184,
- 0x0519f991, 0x59a00408, 0x800000c2, 0x800008c4,
- 0x8005d400, 0x61fc01ff, 0x050dfbb0, 0x05000003,
- 0x59a00208, 0x80000110, 0x0501fb98, 0x05f1f4f5,
- 0x001044d8, 0x001044da, 0x001044e1, 0x00102a40,
- 0x001044df, 0x00102a40, 0x00102a40, 0x00102a40,
- 0x916c0583, 0x05000003, 0x641f4407, 0x05f1f52c,
- 0x0501fb75, 0x05f2052f, 0x59a00408, 0x59a00a08,
+ 0x497b5067, 0x60b40800, 0x42001000, 0x0010537b,
+ 0x0519fc1b, 0x59a00408, 0x800000c2, 0x800008c4,
+ 0x8005d400, 0x61fc01ff, 0x050dfd0a, 0x05000003,
+ 0x59a00208, 0x80000110, 0x0501fba5, 0x05f1f40d,
+ 0x00104668, 0x0010466a, 0x00104671, 0x00102ae8,
+ 0x0010466f, 0x00102ae8, 0x00102ae8, 0x00102ae8,
+ 0x916c0583, 0x05000003, 0x641f4407, 0x05f1f444,
+ 0x0501fb82, 0x05f20447, 0x59a00408, 0x59a00a08,
0x900409c0, 0x80040d40, 0x4805d807, 0x59a0040a,
0x59a00a0a, 0x900409c0, 0x80040d40, 0x4805d808,
- 0x6401d801, 0x0501fa82, 0x05020003, 0x640b4407,
- 0x05f1f51b, 0x417a8800, 0x497b4001, 0x912c0409,
- 0x48034002, 0x59a00407, 0x8c000504, 0x05020088,
+ 0x6401d801, 0x0501fa94, 0x05020003, 0x640b4407,
+ 0x05f1f433, 0x417a8800, 0x497b4001, 0x912c0409,
+ 0x48034002, 0x59a00407, 0x8c000504, 0x05020091,
0x4c5c0000, 0x4c600000, 0x4c640000, 0x4178b800,
- 0x59a0c407, 0x59a0c802, 0x59a2440b, 0x0509fd4a,
- 0x05020027, 0x0509fcf4, 0x05000003, 0x0509fb8f,
+ 0x59a0c407, 0x59a0c802, 0x59a2440b, 0x0509fe83,
+ 0x05020027, 0x0509fe2d, 0x05000003, 0x0509fc71,
0x05020023, 0x8c60053e, 0x05020020, 0x8c600500,
0x05000008, 0x59340009, 0x4400c800, 0x8064c800,
0x59340008, 0x4400c800, 0x8064c800, 0x0501f007,
0x59340007, 0x4400c800, 0x8064c800, 0x59340006,
0x4400c800, 0x8064c800, 0x83440580, 0x000007fe,
0x0500000b, 0x83440580, 0x000007fc, 0x05000008,
- 0x0509fce5, 0x05000003, 0x85468d5e, 0x0501f004,
- 0x0509fa7b, 0x05020002, 0x85468d5e, 0x4544c800,
+ 0x0509fe1e, 0x05000003, 0x85468d5e, 0x0501f004,
+ 0x0509fb55, 0x05020002, 0x85468d5e, 0x4544c800,
0x85468d1e, 0x8064c800, 0x905cbc0c, 0x81468800,
- 0x83440480, 0x000007f0, 0x0500100c, 0x8c600506,
- 0x05000025, 0x83440580, 0x000007f0, 0x05020003,
- 0x61fa880f, 0x0501f005, 0x83440580, 0x000007ff,
- 0x0502001d, 0x61f2880f, 0x905c05bc, 0x05fe07c8,
+ 0x83440480, 0x000007f0, 0x05001015, 0x83440480,
+ 0x00000800, 0x05001005, 0x59a800ad, 0x81440480,
+ 0x0500100f, 0x0501f029, 0x8c600506, 0x05000009,
+ 0x83440580, 0x000007f0, 0x05020003, 0x61fa880f,
+ 0x0501f007, 0x83440580, 0x000007ff, 0x05000003,
+ 0x60028810, 0x0501f002, 0x61f2880f, 0x905c05bc,
+ 0x05fe07bf, 0x59a00001, 0x805c0400, 0x48034001,
+ 0x8c60053e, 0x05020007, 0x59a00a0b, 0x800409c0,
+ 0x05000006, 0x80040480, 0x05021004, 0x8460c57e,
+ 0x4178b800, 0x05fdf7b2, 0x49474000, 0x485dd805,
+ 0x59a00002, 0x4801d803, 0x40ec1000, 0x0001f829,
+ 0x4a01d809, 0x00104744, 0x5c00c800, 0x5c00c000,
+ 0x5c00b800, 0x1c01f000, 0x8c60053e, 0x05020019,
+ 0x805cb9c0, 0x05000021, 0x59a00001, 0x805c0400,
+ 0x48034001, 0x59a00a0b, 0x800409c0, 0x05000005,
+ 0x80040480, 0x05021003, 0x4178b800, 0x0501f00d,
+ 0x59a00801, 0x48074407, 0x485dd805, 0x59a00002,
+ 0x4801d803, 0x4a01d809, 0x00102a9d, 0x40ec1000,
+ 0x5c00c800, 0x5c00c000, 0x5c00b800, 0x0001f029,
+ 0x59a00001, 0x805c0c00, 0x59a0020b, 0x80040480,
+ 0x48034208, 0x642b4407, 0x5c00c800, 0x5c00c000,
+ 0x5c00b800, 0x05f1f3a6, 0x59a00801, 0x48074407,
+ 0x5c00c800, 0x5c00c000, 0x5c00b800, 0x05f1f35d,
+ 0x05fdf88d, 0x05f00395, 0x59a28800, 0x05fdf771,
+ 0x4c5c0000, 0x4c600000, 0x4c640000, 0x4178b800,
+ 0x59a0c407, 0x59a0c802, 0x59a2440b, 0x0509fdf3,
+ 0x05020029, 0x0509fd9d, 0x05000003, 0x0509fbe1,
+ 0x05020025, 0x8c60053e, 0x05020022, 0x83440580,
+ 0x000007fe, 0x0500000f, 0x83440580, 0x000007fc,
+ 0x0500000c, 0x0509fd9d, 0x05000005, 0x59340403,
+ 0x8400055e, 0x48026c03, 0x0501f006, 0x0509fad2,
+ 0x05020004, 0x59340403, 0x8400055e, 0x48026c03,
+ 0x4134a000, 0x4064a800, 0x6018b000, 0x0549f8b7,
+ 0x59340007, 0x4400a800, 0x59340006, 0x4800a801,
+ 0x59340009, 0x4800a802, 0x59340008, 0x4800a803,
+ 0x59340403, 0x8400051e, 0x48026c03, 0x9064cc0a,
+ 0x905cbc28, 0x81468800, 0x83440480, 0x000007f0,
+ 0x05001015, 0x83440480, 0x00000800, 0x05001005,
+ 0x59a800ad, 0x81440480, 0x0500100f, 0x0501f02a,
+ 0x8c600506, 0x05000009, 0x83440580, 0x000007f0,
+ 0x05020003, 0x61fa880f, 0x0501f007, 0x83440580,
+ 0x000007ff, 0x05000003, 0x60028810, 0x0501f002,
+ 0x61f2880f, 0x905c05a8, 0x05000002, 0x05fdf7bb,
0x59a00001, 0x805c0400, 0x48034001, 0x8c60053e,
0x05020007, 0x59a00a0b, 0x800409c0, 0x05000006,
0x80040480, 0x05021004, 0x8460c57e, 0x4178b800,
- 0x05fdf7bb, 0x49474000, 0x485dd805, 0x59a00002,
- 0x4801d803, 0x40ec1000, 0x0001f821, 0x4a01d809,
- 0x001045ab, 0x5c00c800, 0x5c00c000, 0x5c00b800,
+ 0x05fdf7ae, 0x49474000, 0x485dd805, 0x59a00002,
+ 0x4801d803, 0x40ec1000, 0x0001f829, 0x4a01d809,
+ 0x001047d7, 0x5c00c800, 0x5c00c000, 0x5c00b800,
0x1c01f000, 0x8c60053e, 0x05020019, 0x805cb9c0,
0x05000021, 0x59a00001, 0x805c0400, 0x48034001,
0x59a00a0b, 0x800409c0, 0x05000005, 0x80040480,
0x05021003, 0x4178b800, 0x0501f00d, 0x59a00801,
0x48074407, 0x485dd805, 0x59a00002, 0x4801d803,
- 0x4a01d809, 0x001029f5, 0x40ec1000, 0x5c00c800,
- 0x5c00c000, 0x5c00b800, 0x0001f021, 0x59a00001,
+ 0x4a01d809, 0x00102a9d, 0x40ec1000, 0x5c00c800,
+ 0x5c00c000, 0x5c00b800, 0x0001f029, 0x59a00001,
0x805c0c00, 0x59a0020b, 0x80040480, 0x48034208,
0x642b4407, 0x5c00c800, 0x5c00c000, 0x5c00b800,
- 0x05f1f497, 0x59a00801, 0x48074407, 0x5c00c800,
- 0x5c00c000, 0x5c00b800, 0x05f1f44e, 0x05fdf8b0,
- 0x05f00486, 0x59a28800, 0x05fdf77a, 0x4c5c0000,
- 0x4c600000, 0x4c640000, 0x4178b800, 0x59a0c407,
- 0x59a0c802, 0x59a2440b, 0x0509fcc3, 0x05020029,
- 0x0509fc6d, 0x05000003, 0x0509fb08, 0x05020025,
- 0x8c60053e, 0x05020022, 0x83440580, 0x000007fe,
- 0x0500000f, 0x83440580, 0x000007fc, 0x0500000c,
- 0x0509fc6d, 0x05000005, 0x59340403, 0x8400055e,
- 0x48026c03, 0x0501f006, 0x0509fa01, 0x05020004,
- 0x59340403, 0x8400055e, 0x48026c03, 0x4134a000,
- 0x4064a800, 0x6018b000, 0x0545fad5, 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,
- 0x0001f821, 0x4a01d809, 0x00104635, 0x5c00c800,
- 0x5c00c000, 0x5c00b800, 0x1c01f000, 0x8c60053e,
- 0x05020019, 0x805cb9c0, 0x05000021, 0x59a00001,
- 0x805c0400, 0x48034001, 0x59a00a0b, 0x800409c0,
- 0x05000005, 0x80040480, 0x05021003, 0x4178b800,
- 0x0501f00d, 0x59a00801, 0x48074407, 0x485dd805,
- 0x59a00002, 0x4801d803, 0x4a01d809, 0x001029f5,
+ 0x05f1f313, 0x59a00801, 0x48074407, 0x5c00c800,
+ 0x5c00c000, 0x5c00b800, 0x05f1f2ca, 0x05f9fffa,
+ 0x05f00302, 0x59a28800, 0x05fdf76e, 0x61f82800,
+ 0x59a00c07, 0x59a01208, 0x59a01c08, 0x59a0220a,
+ 0x82040500, 0x0000ff00, 0x840001c0, 0x900034a0,
+ 0x05f01304, 0x80140480, 0x05f01302, 0x82040500,
+ 0x000000ff, 0x900034a0, 0x05f012fe, 0x80140480,
+ 0x05f012fc, 0x82080500, 0x0000ff00, 0x840001c0,
+ 0x900034a0, 0x05f012f7, 0x80140480, 0x05f012f5,
+ 0x82080500, 0x000000ff, 0x900034a0, 0x05f012f1,
+ 0x80140480, 0x05f012ef, 0x820c0500, 0x0000ff00,
+ 0x840001c0, 0x900034a0, 0x05f012ea, 0x80140480,
+ 0x05f012e8, 0x820c0500, 0x000000ff, 0x900034a0,
+ 0x05f012e4, 0x80140480, 0x05f012e2, 0x82100500,
+ 0x0000ff00, 0x840001c0, 0x900034a0, 0x05f012dd,
+ 0x80140480, 0x05f012db, 0x82100500, 0x000000ff,
+ 0x900034a0, 0x05f012d7, 0x80140480, 0x05f012d5,
+ 0x900401c0, 0x80080d40, 0x900c01c0, 0x80101d40,
+ 0xb1a83422, 0x44043000, 0x80183000, 0x440c3000,
+ 0x05f1f284, 0x916c0583, 0x05000003, 0x641f4407,
+ 0x05f1f2c3, 0x0501fa01, 0x05f202c6, 0x49234003,
+ 0x59a00408, 0x59a00a08, 0x900409c0, 0x80040d40,
+ 0x4805d807, 0x59a0040a, 0x59a00a0a, 0x900409c0,
+ 0x80040d40, 0x4805d808, 0x6401d801, 0x0501f912,
+ 0x05020003, 0x640b4407, 0x05f1f2b1, 0x417a8800,
+ 0x497b4001, 0x912c0408, 0x48034002, 0x4c5c0000,
+ 0x4c600000, 0x4c640000, 0x4178b800, 0x4178c800,
+ 0x59a0c002, 0x0509fd05, 0x0502000a, 0x0509fcaf,
+ 0x05020008, 0x8c64053e, 0x05020005, 0x59340002,
+ 0x4800c000, 0x4944c001, 0x9060c402, 0x905cbc08,
+ 0x81468800, 0x59a800ad, 0x81440480, 0x0502101f,
+ 0xb05c0480, 0x05021002, 0x05fdf7ef, 0x59a00001,
+ 0x805c0400, 0x48034001, 0x8c64053e, 0x05000003,
+ 0x4178b800, 0x05fdf7e8, 0x59a00a0b, 0x800409c0,
+ 0x05000006, 0x80040480, 0x05021004, 0x4178b800,
+ 0x8464cd7e, 0x05fdf7e0, 0x49474000, 0x485dd805,
+ 0x59a00002, 0x4801d803, 0x40ec1000, 0x0001f829,
+ 0x4a01d809, 0x00104896, 0x5c00c800, 0x5c00c000,
+ 0x5c00b800, 0x1c01f000, 0x8c64053e, 0x0502001a,
+ 0x805cb9c0, 0x05000022, 0x59a00001, 0x805c0400,
+ 0x48034001, 0x59a00a0b, 0x800409c0, 0x05000005,
+ 0x80040480, 0x05021003, 0x4178b800, 0x0501f00e,
+ 0x59a00801, 0x80040906, 0x48074407, 0x485dd805,
+ 0x59a00002, 0x4801d803, 0x4a01d809, 0x00102a9d,
0x40ec1000, 0x5c00c800, 0x5c00c000, 0x5c00b800,
- 0x0001f021, 0x59a00001, 0x805c0c00, 0x59a0020b,
+ 0x0001f029, 0x59a00001, 0x805c0c00, 0x59a0020b,
0x80040480, 0x48034208, 0x642b4407, 0x5c00c800,
- 0x5c00c000, 0x5c00b800, 0x05f1f40d, 0x59a00801,
- 0x48074407, 0x5c00c800, 0x5c00c000, 0x5c00b800,
- 0x05f1f3c4, 0x05fdf826, 0x05f003fc, 0x59a28800,
- 0x05fdf777, 0x61f82800, 0x59a00c07, 0x59a01208,
- 0x59a01c08, 0x59a0220a, 0x82040500, 0x0000ff00,
- 0x840001c0, 0x900034a0, 0x05f013fe, 0x80140480,
- 0x05f013fc, 0x82040500, 0x000000ff, 0x900034a0,
- 0x05f013f8, 0x80140480, 0x05f013f6, 0x82080500,
- 0x0000ff00, 0x840001c0, 0x900034a0, 0x05f013f1,
- 0x80140480, 0x05f013ef, 0x82080500, 0x000000ff,
- 0x900034a0, 0x05f013eb, 0x80140480, 0x05f013e9,
- 0x820c0500, 0x0000ff00, 0x840001c0, 0x900034a0,
- 0x05f013e4, 0x80140480, 0x05f013e2, 0x820c0500,
- 0x000000ff, 0x900034a0, 0x05f013de, 0x80140480,
- 0x05f013dc, 0x82100500, 0x0000ff00, 0x840001c0,
- 0x900034a0, 0x05f013d7, 0x80140480, 0x05f013d5,
- 0x82100500, 0x000000ff, 0x900034a0, 0x05f013d1,
- 0x80140480, 0x05f013cf, 0x900401c0, 0x80080d40,
- 0x900c01c0, 0x80101d40, 0xb1a8341f, 0x44043000,
- 0x80183000, 0x440c3000, 0x05f1f37e, 0x916c0583,
- 0x05000003, 0x641f4407, 0x05f1f3bd, 0x0501fa06,
- 0x05f203c0, 0x49234003, 0x59a00408, 0x59a00a08,
- 0x900409c0, 0x80040d40, 0x4805d807, 0x59a0040a,
- 0x59a00a0a, 0x900409c0, 0x80040d40, 0x4805d808,
- 0x6401d801, 0x0501f912, 0x05020003, 0x640b4407,
- 0x05f1f3ab, 0x417a8800, 0x497b4001, 0x912c0408,
- 0x48034002, 0x4c5c0000, 0x4c600000, 0x4c640000,
- 0x4178b800, 0x4178c800, 0x59a0c002, 0x0509fbde,
- 0x0502000a, 0x0509fb88, 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, 0x0001f821, 0x4a01d809, 0x001046f4,
- 0x5c00c800, 0x5c00c000, 0x5c00b800, 0x1c01f000,
- 0x8c64053e, 0x0502001a, 0x805cb9c0, 0x05000022,
- 0x59a00001, 0x805c0400, 0x48034001, 0x59a00a0b,
- 0x800409c0, 0x05000005, 0x80040480, 0x05021003,
- 0x4178b800, 0x0501f00e, 0x59a00801, 0x80040906,
- 0x48074407, 0x485dd805, 0x59a00002, 0x4801d803,
- 0x4a01d809, 0x001029f5, 0x40ec1000, 0x5c00c800,
- 0x5c00c000, 0x5c00b800, 0x0001f021, 0x59a00001,
- 0x805c0c00, 0x59a0020b, 0x80040480, 0x48034208,
- 0x642b4407, 0x5c00c800, 0x5c00c000, 0x5c00b800,
- 0x05f1f34f, 0x59a00801, 0x80040906, 0x48074407,
- 0x5c00c800, 0x5c00c000, 0x5c00b800, 0x05f1f305,
- 0x05f9ff67, 0x05f0033d, 0x59a28800, 0x59a24003,
- 0x59a24805, 0x05fdf79c, 0x8d0c050e, 0x05000003,
- 0x64074407, 0x05f1f33e, 0x59a80249, 0x8c00050a,
- 0x05020005, 0x8c000506, 0x05020003, 0x645b4407,
- 0x05f1f337, 0x0501f980, 0x05f2033a, 0x0501f898,
- 0x05020003, 0x640b4407, 0x05f1f331, 0x59a00c07,
- 0x80040902, 0x59a00408, 0x59a01208, 0x900811c0,
- 0x80081540, 0x59a0040a, 0x59a01a0a, 0x900c19c0,
- 0x800c1d40, 0x912c0409, 0x0501f8a9, 0x4a01d809,
- 0x0010471a, 0x1c01f000, 0x05f9ff41, 0x05f00317,
- 0x58ee580d, 0x592c000d, 0x59a8383d, 0x0515f9af,
- 0x05040df4, 0x05f2031f, 0x49474001, 0x481a6802,
- 0x592c000e, 0x82001d80, 0x70000000, 0x05020005,
- 0x0501f877, 0x0502000c, 0x640b4407, 0x05f1f310,
- 0x82001d80, 0x72000000, 0x05f20312, 0x0501f870,
- 0x0502086f, 0x0502086e, 0x05020003, 0x640b4407,
- 0x05f1f307, 0x58ee580d, 0x4a025c08, 0x00008000,
- 0x497a5a08, 0x592c320c, 0x80183102, 0x592c1801,
- 0x4a001809, 0x01000000, 0x0531fe1a, 0x05020003,
- 0x640f4407, 0x05f1f2fa, 0x4a01d809, 0x00104745,
- 0x1c01f000, 0x592c4000, 0x592c0009, 0x82000580,
- 0x01000000, 0x05020003, 0x64134407, 0x05f1f2f0,
- 0x4c580000, 0x4c500000, 0x4c540000, 0x912c3c09,
- 0x401ca000, 0x401ca800, 0x5820280e, 0x6008b000,
- 0x82143580, 0x70000000, 0x05000002, 0x603cb000,
- 0x0545f98a, 0x5c00a800, 0x5c00a000, 0x5c00b000,
- 0x401c0000, 0x5820100a, 0x5820180b, 0x58202209,
- 0x80102102, 0x82143580, 0x70000000, 0x05020005,
- 0x90103482, 0x05f012db, 0x60080800, 0x0501f061,
- 0x82143580, 0x72000000, 0x05f202d6, 0x901034aa,
- 0x05f012d4, 0x603c0800, 0x0501f85a, 0x4a01d809,
- 0x00104772, 0x1c01f000, 0x05f9fee9, 0x05f002bf,
- 0x58ee580e, 0x592e5800, 0x912c0c09, 0x4c580000,
- 0x4c500000, 0x4c540000, 0x4004a000, 0x4004a800,
- 0x603cb000, 0x0545f965, 0x5c00a800, 0x5c00a000,
- 0x5c00b000, 0x40ec1000, 0x64001001, 0x64f01005,
- 0x48041003, 0x0001f821, 0x4a01d809, 0x00104789,
- 0x1c01f000, 0x05f9fed2, 0x05f002a8, 0x58ee580e,
+ 0x5c00c000, 0x5c00b800, 0x05f1f255, 0x59a00801,
+ 0x80040906, 0x48074407, 0x5c00c800, 0x5c00c000,
+ 0x5c00b800, 0x05f1f20b, 0x05f9ff3b, 0x05f00243,
+ 0x59a28800, 0x59a24003, 0x59a24805, 0x05fdf79c,
+ 0x8d0c050e, 0x05000003, 0x64074407, 0x05f1f244,
+ 0x59a8024c, 0x8c00050a, 0x05020005, 0x8c000506,
+ 0x05020003, 0x645b4407, 0x05f1f23d, 0x0501f97b,
+ 0x05f20240, 0x0501f898, 0x05020003, 0x640b4407,
+ 0x05f1f237, 0x59a00c07, 0x80040902, 0x59a00408,
+ 0x59a01208, 0x900811c0, 0x80081540, 0x59a0040a,
+ 0x59a01a0a, 0x900c19c0, 0x800c1d40, 0x912c0409,
+ 0x0501f8a9, 0x4a01d809, 0x001048bc, 0x1c01f000,
+ 0x05f9ff15, 0x05f0021d, 0x58ee580d, 0x592c000d,
+ 0x59a83840, 0x0515fbb9, 0x05040e6d, 0x05f20225,
+ 0x49474001, 0x481a6802, 0x592c000e, 0x82001d80,
+ 0x70000000, 0x05020005, 0x0501f877, 0x0502000c,
+ 0x640b4407, 0x05f1f216, 0x82001d80, 0x72000000,
+ 0x05f20218, 0x0501f870, 0x0502086f, 0x0502086e,
+ 0x05020003, 0x640b4407, 0x05f1f20d, 0x58ee580d,
+ 0x4a025c08, 0x00008000, 0x497a5a08, 0x592c320c,
+ 0x80183102, 0x592c1801, 0x4a001809, 0x01000000,
+ 0x0535fa11, 0x05020003, 0x640f4407, 0x05f1f200,
+ 0x4a01d809, 0x001048e7, 0x1c01f000, 0x592c4000,
+ 0x592c0009, 0x82000580, 0x01000000, 0x05020003,
+ 0x64134407, 0x05f1f1f6, 0x4c580000, 0x4c500000,
+ 0x4c540000, 0x912c3c09, 0x401ca000, 0x401ca800,
+ 0x5820280e, 0x6008b000, 0x82143580, 0x70000000,
+ 0x05000002, 0x603cb000, 0x0545ff63, 0x5c00a800,
+ 0x5c00a000, 0x5c00b000, 0x401c0000, 0x5820100a,
+ 0x5820180b, 0x58202209, 0x80102102, 0x82143580,
+ 0x70000000, 0x05020005, 0x90103482, 0x05f011e1,
+ 0x60080800, 0x0501f061, 0x82143580, 0x72000000,
+ 0x05f201dc, 0x901034aa, 0x05f011da, 0x603c0800,
+ 0x0501f85a, 0x4a01d809, 0x00104914, 0x1c01f000,
+ 0x05f9febd, 0x05f001c5, 0x58ee580e, 0x592e5800,
0x912c0c09, 0x4c580000, 0x4c500000, 0x4c540000,
- 0x4004a000, 0x4004a800, 0x6030b000, 0x0545f94f,
+ 0x4004a000, 0x4004a800, 0x603cb000, 0x0545ff3e,
0x5c00a800, 0x5c00a000, 0x5c00b000, 0x40ec1000,
- 0x64001001, 0x64c01005, 0x48041003, 0x0001f821,
- 0x4a01d809, 0x001029f5, 0x1c01f000, 0x05e1f9e3,
- 0x0500000e, 0x497a5800, 0x58ec000d, 0x80000540,
- 0x05020004, 0x492dd80d, 0x492dd80e, 0x0501f006,
- 0x58ec000e, 0x48025800, 0x90000401, 0x452c0000,
- 0x492dd80e, 0x912c0408, 0x492fc857, 0x4803c857,
- 0x1c01f000, 0x4d2c0000, 0x58ec400d, 0x802041c0,
- 0x05000007, 0x4823c857, 0x40225800, 0x592c4001,
- 0x497a5801, 0x05e1f9d9, 0x05fdf7f9, 0x4979d80d,
- 0x4979d80e, 0x5c025800, 0x1c01f000, 0x60043000,
- 0x0501f009, 0x60043000, 0x0501f008, 0x60003000,
- 0x0501f006, 0x60003000, 0x800408c4, 0x0501f00b,
- 0x60003000, 0x800408c4, 0x800409c0, 0x05dc0e0f,
- 0x4803c857, 0x4807c857, 0x480bc857, 0x480fc857,
- 0x481bc857, 0x48efc857, 0x4819d801, 0x4801d803,
- 0x4809d807, 0x480dd808, 0x4805d805, 0x40ec1000,
- 0x0001f821, 0x4a01d809, 0x001029f5, 0x1c01f000,
- 0x80002d80, 0x480bc857, 0x480fc857, 0x4813c857,
- 0x4817c857, 0x0001fab3, 0x0542004b, 0x4d2c0000,
- 0x4da00000, 0x42034000, 0x0010dceb, 0x59a00018,
- 0x800001c0, 0x05020014, 0x05006013, 0x480bc020,
- 0x480fc021, 0x4813c022, 0x4817c023, 0x900811c0,
- 0x90081552, 0x480bc011, 0x59e00017, 0x8c00050a,
- 0x60000800, 0x00020892, 0x8d0c0530, 0x05e60ece,
- 0x000209bc, 0x6403c017, 0x4203e000, 0x30000001,
- 0x0501f049, 0x4c040000, 0x4c1c0000, 0x80000800,
- 0x48074018, 0x59a0381b, 0x481fc857, 0x801c39c0,
- 0x05020023, 0x9000048c, 0x0502100e, 0x59a00019,
- 0x80000000, 0x48034019, 0x59a0021a, 0x90000402,
- 0x90000c97, 0x4803421a, 0x05001003, 0x497b421a,
- 0x41780000, 0x59a03817, 0x801c3c00, 0x0501f02c,
- 0x4803c856, 0x05e1f96d, 0x05000007, 0x492f401b,
- 0x492f401c, 0x412c3800, 0x497b421d, 0x497a5817,
- 0x0501f023, 0x5988001e, 0x80000000, 0x4803101e,
- 0x59a00018, 0x80000040, 0x48034018, 0x59a0021a,
- 0x59a03817, 0x801c3c00, 0x0501f019, 0x59a0021d,
- 0x90000402, 0x90000c96, 0x05021004, 0x4803421d,
- 0x801c3c00, 0x0501f012, 0x05e1f954, 0x0502000b,
- 0x5988001e, 0x80000000, 0x4803101e, 0x59a00018,
- 0x80000040, 0x48034018, 0x4803c857, 0x59a0021d,
- 0x801c3c00, 0x0501f006, 0x492f401b, 0x492c3817,
- 0x412c3800, 0x497b421d, 0x497a5817, 0x48083c00,
- 0x480c3a00, 0x48103c01, 0x48143a01, 0x5c003800,
- 0x5c000800, 0x5c034000, 0x5c025800, 0x1c01f000,
- 0x480fc857, 0x4813c857, 0x481bc857, 0x42000000,
- 0x0010e40c, 0x0541ff8f, 0x801800d0, 0x81202d40,
- 0x60501100, 0x05fdf78c, 0x4c000000, 0x599c0017,
- 0x8c000512, 0x5c000000, 0x1c01f000, 0x4c000000,
- 0x599c0018, 0x8c00050e, 0x5c000000, 0x1c01f000,
- 0x8d0c050e, 0x05000003, 0x64074407, 0x05f1f1dc,
- 0x916c0583, 0x05000003, 0x641f4407, 0x05f1f1d8,
- 0x59a24805, 0x59240400, 0x8c000508, 0x05020003,
- 0x64234407, 0x05f1f1d2, 0x59340405, 0x8c000508,
- 0x05020003, 0x8c00050a, 0x05fe02f9, 0x497a5a08,
- 0x497a5809, 0x4a025c08, 0x00008000, 0x0531fd79,
- 0x05020003, 0x640f4407, 0x05f1f1c5, 0x4a01d809,
- 0x0010487a, 0x1c01f000, 0x592c0009, 0x82000580,
- 0x01000000, 0x05020003, 0x64134407, 0x05f1f1bc,
- 0x59a28c07, 0x59a2440b, 0x0509f9f7, 0x05f201bd,
- 0x05fdf2e3, 0x4c040000, 0x59a2440b, 0x42000000,
- 0x0010e511, 0x50000000, 0x81200480, 0x0502100d,
- 0x83200c00, 0x0010d17b, 0x50064800, 0x812649c0,
- 0x05000008, 0x59240200, 0x8c000500, 0x05000005,
- 0x49274005, 0x80000580, 0x5c000800, 0x1c01f000,
- 0x90000541, 0x05fdf7fd, 0x61be880f, 0x0001fb00,
- 0x05140e31, 0x81468840, 0x05fe17fd, 0x1c01f000,
- 0x4803c856, 0x4c0c0000, 0x4d340000, 0x4d440000,
- 0x61fa880f, 0x60024000, 0x0509f9d3, 0x0502000a,
- 0x5934180a, 0x900c1d01, 0x900c1d81, 0x60002000,
- 0x0501fa6c, 0x05000002, 0x60042000, 0x606c1100,
- 0x05fdff2c, 0x5c028800, 0x5c026800, 0x5c001800,
- 0x1c01f000, 0x48efc857, 0x05011000, 0x48efc840,
- 0x6443c842, 0x40000000, 0x05fd17ff, 0x42000000,
- 0x0010dd60, 0x50000000, 0x80000540, 0x05000003,
- 0x5800000b, 0x4801d806, 0x4a01d80f, 0xbeefbeef,
- 0x1c01f000, 0x497b4000, 0x497b4001, 0x497b4002,
- 0x497b4003, 0x497b4004, 0x497b4005, 0x1c01f000,
- 0x42002000, 0x00111b00, 0x41580000, 0x41781000,
+ 0x64001001, 0x64f01005, 0x48041003, 0x0001f829,
+ 0x4a01d809, 0x0010492b, 0x1c01f000, 0x05f9fea6,
+ 0x05f001ae, 0x58ee580e, 0x912c0c09, 0x4c580000,
+ 0x4c500000, 0x4c540000, 0x4004a000, 0x4004a800,
+ 0x6030b000, 0x0545ff28, 0x5c00a800, 0x5c00a000,
+ 0x5c00b000, 0x40ec1000, 0x64001001, 0x64c01005,
+ 0x48041003, 0x0001f829, 0x4a01d809, 0x00102a9d,
+ 0x1c01f000, 0x05e1f878, 0x0500000e, 0x497a5800,
+ 0x58ec000d, 0x80000540, 0x05020004, 0x492dd80d,
+ 0x492dd80e, 0x0501f006, 0x58ec000e, 0x48025800,
+ 0x90000401, 0x452c0000, 0x492dd80e, 0x912c0408,
+ 0x492fc857, 0x4803c857, 0x1c01f000, 0x4d2c0000,
+ 0x58ec400d, 0x802041c0, 0x05000007, 0x4823c857,
+ 0x40225800, 0x592c4001, 0x497a5801, 0x05e1f86e,
+ 0x05fdf7f9, 0x4979d80d, 0x4979d80e, 0x5c025800,
+ 0x1c01f000, 0x60043000, 0x0501f009, 0x60043000,
+ 0x0501f008, 0x60003000, 0x0501f006, 0x60003000,
+ 0x800408c4, 0x0501f006, 0x60003000, 0x800408c4,
+ 0x800409c0, 0x05dc0ca8, 0x4803c857, 0x4819d801,
+ 0x4801d803, 0x4809d807, 0x480dd808, 0x4805d805,
+ 0x40ec1000, 0x0001f829, 0x4a01d809, 0x00102a9d,
+ 0x1c01f000, 0x80002d80, 0x480bc857, 0x480fc857,
+ 0x4813c857, 0x4817c857, 0x0001fabb, 0x054205f8,
+ 0x4d2c0000, 0x4da00000, 0x42034000, 0x00111c71,
+ 0x59a00018, 0x800001c0, 0x05020014, 0x05006013,
+ 0x480bc020, 0x480fc021, 0x4813c022, 0x4817c023,
+ 0x900811c0, 0x90081552, 0x480bc011, 0x59e00017,
+ 0x8c00050a, 0x60000800, 0x0002089a, 0x8d0c0530,
+ 0x05e60da2, 0x000209c4, 0x6403c017, 0x4203e000,
+ 0x30000001, 0x0501f049, 0x4c040000, 0x4c1c0000,
+ 0x80000800, 0x48074018, 0x59a0381b, 0x481fc857,
+ 0x801c39c0, 0x05020023, 0x9000048c, 0x0502100e,
+ 0x59a00019, 0x80000000, 0x48034019, 0x59a0021a,
+ 0x90000402, 0x90000c97, 0x4803421a, 0x05001003,
+ 0x497b421a, 0x41780000, 0x59a03817, 0x801c3c00,
+ 0x0501f02c, 0x4803c856, 0x05e1f807, 0x05000007,
+ 0x492f401b, 0x492f401c, 0x412c3800, 0x497b421d,
+ 0x497a5817, 0x0501f023, 0x5988001e, 0x80000000,
+ 0x4803101e, 0x59a00018, 0x80000040, 0x48034018,
+ 0x59a0021a, 0x59a03817, 0x801c3c00, 0x0501f019,
+ 0x59a0021d, 0x90000402, 0x90000c96, 0x05021004,
+ 0x4803421d, 0x801c3c00, 0x0501f012, 0x05ddffee,
+ 0x0502000b, 0x5988001e, 0x80000000, 0x4803101e,
+ 0x59a00018, 0x80000040, 0x48034018, 0x4803c857,
+ 0x59a0021d, 0x801c3c00, 0x0501f006, 0x492f401b,
+ 0x492c3817, 0x412c3800, 0x497b421d, 0x497a5817,
+ 0x48083c00, 0x480c3a00, 0x48103c01, 0x48143a01,
+ 0x5c003800, 0x5c000800, 0x5c034000, 0x5c025800,
+ 0x1c01f000, 0x480fc857, 0x4813c857, 0x481bc857,
+ 0x42000000, 0x001123ad, 0x0545fd6d, 0x801800d0,
+ 0x81202d40, 0x60501100, 0x05fdf78c, 0x4c000000,
+ 0x599c0017, 0x8c000512, 0x5c000000, 0x1c01f000,
+ 0x4c000000, 0x599c0018, 0x8c00050e, 0x5c000000,
+ 0x1c01f000, 0x8d0c050e, 0x05000003, 0x64074407,
+ 0x05f1f0e7, 0x916c0583, 0x05000003, 0x641f4407,
+ 0x05f1f0e3, 0x59a24805, 0x59240400, 0x8c000508,
+ 0x05020003, 0x64234407, 0x05f1f0dd, 0x59340405,
+ 0x8c000508, 0x05020003, 0x8c00050a, 0x05fe02dd,
+ 0x497a5a08, 0x497a5809, 0x4a025c08, 0x00008000,
+ 0x0535f975, 0x05020003, 0x640f4407, 0x05f1f0d0,
+ 0x4a01d809, 0x00104a17, 0x1c01f000, 0x592c0009,
+ 0x82000580, 0x01000000, 0x05020003, 0x64134407,
+ 0x05f1f0c7, 0x59a28c07, 0x59a2440b, 0x0509fb23,
+ 0x05f200c8, 0x05fdf2c7, 0x4c040000, 0x59a2440b,
+ 0x42000000, 0x001124b5, 0x50000000, 0x81200480,
+ 0x0502100d, 0x83200c00, 0x0010d8f9, 0x50064800,
+ 0x812649c0, 0x05000008, 0x59240200, 0x8c000500,
+ 0x05000005, 0x49274005, 0x80000580, 0x5c000800,
+ 0x1c01f000, 0x90000541, 0x05fdf7fd, 0x59a800ad,
+ 0x80000040, 0x40028800, 0x0001fb08, 0x051808ac,
+ 0x83440580, 0x00000800, 0x05020002, 0x61c2880f,
+ 0x81468840, 0x05fe17f9, 0x1c01f000, 0x4803c856,
+ 0x4c0c0000, 0x4d340000, 0x4d440000, 0x61fa880f,
+ 0x60024000, 0x0509faf9, 0x0502000a, 0x5934180a,
+ 0x900c1d01, 0x900c1d81, 0x60002000, 0x0501fa6f,
+ 0x05000002, 0x60042000, 0x606c1100, 0x05fdff26,
+ 0x5c028800, 0x5c026800, 0x5c001800, 0x1c01f000,
+ 0x48efc857, 0x05011000, 0x48efc840, 0x6443c842,
+ 0x40000000, 0x05fd17ff, 0x42000000, 0x00111cfa,
+ 0x50000000, 0x80000540, 0x05000003, 0x5800000b,
+ 0x4801d806, 0x4a01d80f, 0xbeefbeef, 0x1c01f000,
+ 0x497b4000, 0x497b4001, 0x497b4002, 0x497b4003,
+ 0x497b4004, 0x497b4005, 0x1c01f000, 0x0501fb27,
+ 0x05000004, 0x916404a0, 0x0502101d, 0x0501f01b,
+ 0x42002000, 0x00115aa4, 0x41580000, 0x41781000,
0x58100c07, 0x800409c0, 0x0500000c, 0x90041d83,
0x0500000a, 0x90041c86, 0x05001007, 0x90041d8a,
0x05000005, 0x90041c8f, 0x05001004, 0x90041c92,
0x05021002, 0x80081000, 0x90102430, 0x80100c80,
- 0x05fc17f0, 0x40080000, 0x59a8129c, 0x80080480,
- 0x05021002, 0x41780000, 0x81640480, 0x05021002,
- 0x41780000, 0x1c01f000, 0x05e9fe96, 0x05020015,
- 0x59a86892, 0x82346d80, 0x3261103c, 0x05020011,
- 0x0545f80f, 0x0500000d, 0x605c70f4, 0x50386800,
- 0x82347500, 0x03f00000, 0x82387580, 0x00400000,
- 0x05020007, 0x82347500, 0x000f0000, 0x82387580,
- 0x00010000, 0x05000002, 0x90000541, 0x64030000,
- 0x1c01f000, 0x05e9fe7f, 0x05020004, 0x59a86892,
- 0x82347580, 0x01651077, 0x1c01f000, 0x05e9fe79,
- 0x0502000d, 0x59a86892, 0x82347580, 0x01751077,
- 0x05000009, 0x82347580, 0x01661077, 0x05000006,
- 0x82347580, 0x01681077, 0x05000003, 0x82347580,
- 0x01761077, 0x1c01f000, 0x05e9fe6a, 0x05020007,
- 0x59a86892, 0x82347580, 0x01681077, 0x05000003,
- 0x82347580, 0x01761077, 0x1c01f000, 0x05e9fe61,
- 0x05020004, 0x59a86892, 0x82347580, 0x01751077,
- 0x1c01f000, 0x05fdfffa, 0x05000003, 0x80000580,
- 0x0501f00d, 0x59a00c07, 0x82040580, 0x000000a0,
- 0x05000009, 0x82040580, 0x000000e0, 0x05000006,
- 0x82040580, 0x000000d0, 0x05000003, 0x82040580,
- 0x00000098, 0x1c01f000, 0x59a0020c, 0x8c00051a,
- 0x1c01f000, 0x4803c856, 0x05fdffdc, 0x05000005,
- 0x0501f88d, 0x05000003, 0x65034407, 0x05f1f0fc,
- 0x59a0020b, 0x4803c857, 0x800001c0, 0x05f000fd,
- 0xb0000485, 0x05f210fb, 0x59a0220c, 0x8c100500,
- 0x0502001d, 0x4803c856, 0x05fdfe55, 0x05020004,
- 0x640b4407, 0x4803c856, 0x05f1f0ed, 0x05edf80f,
- 0x59a00c0b, 0x59a01a0b, 0x59a0220c, 0x59a02c07,
- 0x912e5c05, 0x412cc800, 0x4807c857, 0x480fc857,
- 0x4813c857, 0x4817c857, 0x4867c857, 0x0501f916,
- 0x64030000, 0x0500001f, 0x59a00a0b, 0x59a01008,
- 0x900811c0, 0x59a0180a, 0x900c19c0, 0x412c0000,
- 0x05fdf65f, 0x4807c856, 0x59a00c0b, 0x59a01a0b,
- 0x900c0581, 0x05f200d7, 0x4c040000, 0x4c0c0000,
- 0x4c100000, 0x05e9fff1, 0x5c002000, 0x5c001800,
- 0x5c000800, 0x59a02c07, 0x91a0cc07, 0x4807c857,
- 0x4813c857, 0x4817c857, 0x0501f8fb, 0x64030000,
- 0x05000004, 0x59a00a07, 0x48074407, 0x05f1f07d,
- 0x64134407, 0x05f1f0be, 0x59a0220c, 0x4813c857,
- 0x05fdff96, 0x05000005, 0x0501f847, 0x05000003,
- 0x65034407, 0x05f1f0b6, 0x59a00c0b, 0x4807c857,
- 0x8c100500, 0x05020017, 0x05fdfe15, 0x05020003,
- 0x640b4407, 0x05f1f0ae, 0x59a00a0b, 0xb0040485,
- 0x05f210b0, 0x59a01008, 0x900811c0, 0x59a0180a,
- 0x900c19c0, 0x912c0405, 0x05fdfe2b, 0x4a01d809,
- 0x0010499a, 0x1c01f000, 0x05f9fcc1, 0x05f00097,
- 0x58ee580d, 0x912c1405, 0x59a01a0b, 0x0501f003,
- 0x91a0140b, 0x60041800, 0x4c080000, 0x4c0c0000,
- 0x05e9ffba, 0x5c001800, 0x5c001000, 0x59a00c0b,
- 0x59a0220c, 0x59a02c07, 0x4807c857, 0x480bc857,
- 0x50080000, 0x82000500, 0x000000ff, 0x4803c857,
- 0x480fc857, 0x4813c857, 0x4817c857, 0x0501f84f,
- 0x64030000, 0x05f20043, 0x64134407, 0x05f1f084,
- 0x05fdff5e, 0x05000003, 0x0501f80f, 0x0502000d,
- 0x4803c856, 0x61c0083f, 0x61c4103f, 0x64000800,
- 0x46001000, 0x000001a7, 0x64040800, 0x64041000,
- 0x64080800, 0x50080000, 0x8400054e, 0x44001000,
- 0x1c01f000, 0x59a80092, 0x82000580, 0x338e103c,
- 0x1c01f000, 0x4803c856, 0x4c5c0000, 0x64103000,
- 0x4200b800, 0x000f4240, 0x05e9fbd9, 0x805cb840,
- 0x05000005, 0x501c6800, 0x90346d02, 0x05fe07fb,
- 0x90346d41, 0x485fc857, 0x5c00b800, 0x1c01f000,
- 0x4803c856, 0x4c5c0000, 0x64103000, 0x4200b800,
- 0x000f4240, 0x05e9fbca, 0x805cb840, 0x05000006,
- 0x501c6800, 0x82346d00, 0x00000082, 0x05fe07fa,
- 0x90346d41, 0x485fc857, 0x5c00b800, 0x1c01f000,
- 0x4803c856, 0x4c5c0000, 0x4c600000, 0x6000b8f8,
- 0x4200c000, 0x000f4240, 0x6404b800, 0x40000000,
- 0x8060c040, 0x05000004, 0x505c0000, 0x8c000500,
- 0x05fc07fa, 0x5c00c000, 0x5c00b800, 0x1c01f000,
- 0x4803c856, 0x4c5c0000, 0x6000b8f8, 0x4578b800,
- 0x5c00b800, 0x1c01f000, 0x4803c856, 0x05fdffe9,
- 0x0500006a, 0x4c5c0000, 0x61c0303f, 0x61c4383f,
- 0x64103000, 0x4200b800, 0x000f4240, 0x805cb840,
- 0x60080000, 0x0500004f, 0x501c0000, 0x8c00050c,
- 0x05fe07fb, 0x640c3000, 0x4817c857, 0x05fdffb6,
- 0x05000002, 0x60802801, 0x44143800, 0x64103000,
- 0x46003800, 0x00000090, 0x05fdffc2, 0x05000054,
- 0x8c10051c, 0x05000008, 0x640c3000, 0x4807c857,
- 0x44043800, 0x64103000, 0x64403800, 0x05fdffb9,
- 0x0500004b, 0x800c19c0, 0x05000033, 0x640c3000,
- 0x5008b800, 0x445c3800, 0x485fc857, 0x480fc857,
- 0x800c1840, 0x05000028, 0x64103000, 0x64403800,
- 0x05fdffac, 0x0500003e, 0x640c3000, 0x805cb910,
- 0x445c3800, 0x485fc857, 0x480fc857, 0x800c1840,
- 0x0500001d, 0x64103000, 0x64403800, 0x05fdffa1,
- 0x05000033, 0x640c3000, 0x805cb910, 0x445c3800,
- 0x485fc857, 0x480fc857, 0x800c1840, 0x05000012,
- 0x64103000, 0x64403800, 0x05fdff96, 0x05000028,
+ 0x05fc17f0, 0x80800482, 0x05021002, 0x41780000,
+ 0x81640480, 0x05021002, 0x41780000, 0x1c01f000,
+ 0x05e9fd70, 0x05020015, 0x59a86895, 0x82346d80,
+ 0x3261103c, 0x05020011, 0x0545fde4, 0x0500000d,
+ 0x605c70f4, 0x50386800, 0x82347500, 0x03f00000,
+ 0x82387580, 0x00400000, 0x05020007, 0x82347500,
+ 0x000f0000, 0x82387580, 0x00010000, 0x05000002,
+ 0x90000541, 0x64030000, 0x1c01f000, 0x05e9fd59,
+ 0x05020004, 0x59a86895, 0x82347580, 0x01651077,
+ 0x1c01f000, 0x05e9fd53, 0x0502000d, 0x59a86895,
+ 0x82347580, 0x01751077, 0x05000009, 0x82347580,
+ 0x01661077, 0x05000006, 0x82347580, 0x01681077,
+ 0x05000003, 0x82347580, 0x01761077, 0x1c01f000,
+ 0x05e9fd44, 0x05020007, 0x59a86895, 0x82347580,
+ 0x01681077, 0x05000003, 0x82347580, 0x01761077,
+ 0x1c01f000, 0x05e9fd3b, 0x05020004, 0x59a86895,
+ 0x82347580, 0x01751077, 0x1c01f000, 0x05fdfffa,
+ 0x05000003, 0x80000580, 0x0501f00d, 0x59a00c07,
+ 0x82040580, 0x000000a0, 0x05000009, 0x82040580,
+ 0x000000e0, 0x05000006, 0x82040580, 0x000000d0,
+ 0x05000003, 0x82040580, 0x00000098, 0x1c01f000,
+ 0x59a0020c, 0x8c00051a, 0x1c01f000, 0x4803c856,
+ 0x05fdffdc, 0x05000005, 0x0501f88d, 0x05000003,
+ 0x65034407, 0x05edf7fe, 0x59a0020b, 0x4803c857,
+ 0x800001c0, 0x05ec07ff, 0xb0000485, 0x05ee17fd,
+ 0x59a0220c, 0x8c100500, 0x0502001d, 0x4803c856,
+ 0x05fdfe51, 0x05020004, 0x640b4407, 0x4803c856,
+ 0x05edf7ef, 0x05e9fee9, 0x59a00c0b, 0x59a01a0b,
+ 0x59a0220c, 0x59a02c07, 0x912e5c05, 0x412cc800,
+ 0x4807c857, 0x480fc857, 0x4813c857, 0x4817c857,
+ 0x4867c857, 0x0501f916, 0x64030000, 0x0500001f,
+ 0x59a00a0b, 0x59a01008, 0x900811c0, 0x59a0180a,
+ 0x900c19c0, 0x412c0000, 0x05fdf65b, 0x4807c856,
+ 0x59a00c0b, 0x59a01a0b, 0x900c0581, 0x05ee07d9,
+ 0x4c040000, 0x4c0c0000, 0x4c100000, 0x05e9fecb,
+ 0x5c002000, 0x5c001800, 0x5c000800, 0x59a02c07,
+ 0x91a0cc07, 0x4807c857, 0x4813c857, 0x4817c857,
+ 0x0501f8fb, 0x64030000, 0x05000004, 0x59a00a07,
+ 0x48074407, 0x05edf77f, 0x64134407, 0x05edf7c0,
+ 0x59a0220c, 0x4813c857, 0x05fdff96, 0x05000005,
+ 0x0501f847, 0x05000003, 0x65034407, 0x05edf7b8,
+ 0x59a00c0b, 0x4807c857, 0x8c100500, 0x05020017,
+ 0x05fdfe11, 0x05020003, 0x640b4407, 0x05edf7b0,
+ 0x59a00a0b, 0xb0040485, 0x05ee17b2, 0x59a01008,
+ 0x900811c0, 0x59a0180a, 0x900c19c0, 0x912c0405,
+ 0x05fdfe27, 0x4a01d809, 0x00104b40, 0x1c01f000,
+ 0x05f9fc91, 0x05ec0799, 0x58ee580d, 0x912c1405,
+ 0x59a01a0b, 0x0501f003, 0x91a0140b, 0x60041800,
+ 0x4c080000, 0x4c0c0000, 0x05e9fe94, 0x5c001800,
+ 0x5c001000, 0x59a00c0b, 0x59a0220c, 0x59a02c07,
+ 0x4807c857, 0x480bc857, 0x50080000, 0x82000500,
+ 0x000000ff, 0x4803c857, 0x480fc857, 0x4813c857,
+ 0x4817c857, 0x0501f84f, 0x64030000, 0x05ee0745,
+ 0x64134407, 0x05edf786, 0x05fdff5e, 0x05000003,
+ 0x0501f80f, 0x0502000d, 0x4803c856, 0x61c0083f,
+ 0x61c4103f, 0x64000800, 0x46001000, 0x000001a7,
+ 0x64040800, 0x64041000, 0x64080800, 0x50080000,
+ 0x8400054e, 0x44001000, 0x1c01f000, 0x59a80095,
+ 0x82000580, 0x338e103c, 0x1c01f000, 0x4803c856,
+ 0x4c5c0000, 0x64103000, 0x4200b800, 0x000f4240,
+ 0x05e9fab3, 0x805cb840, 0x05000005, 0x501c6800,
+ 0x90346d02, 0x05fe07fb, 0x90346d41, 0x485fc857,
+ 0x5c00b800, 0x1c01f000, 0x4803c856, 0x4c5c0000,
+ 0x64103000, 0x4200b800, 0x000f4240, 0x05e9faa4,
+ 0x805cb840, 0x05000006, 0x501c6800, 0x82346d00,
+ 0x00000082, 0x05fe07fa, 0x90346d41, 0x485fc857,
+ 0x5c00b800, 0x1c01f000, 0x4803c856, 0x4c5c0000,
+ 0x4c600000, 0x6000b8f8, 0x4200c000, 0x000f4240,
+ 0x6404b800, 0x40000000, 0x8060c040, 0x05000004,
+ 0x505c0000, 0x8c000500, 0x05fc07fa, 0x5c00c000,
+ 0x5c00b800, 0x1c01f000, 0x4803c856, 0x4c5c0000,
+ 0x6000b8f8, 0x4578b800, 0x5c00b800, 0x1c01f000,
+ 0x4803c856, 0x05fdffe9, 0x0500006a, 0x4c5c0000,
+ 0x61c0303f, 0x61c4383f, 0x64103000, 0x4200b800,
+ 0x000f4240, 0x805cb840, 0x60080000, 0x0500004f,
+ 0x501c0000, 0x8c00050c, 0x05fe07fb, 0x640c3000,
+ 0x4817c857, 0x05fdffb6, 0x05000002, 0x60802801,
+ 0x44143800, 0x64103000, 0x46003800, 0x00000090,
+ 0x05fdffc2, 0x05000054, 0x8c10051c, 0x05000008,
+ 0x640c3000, 0x4807c857, 0x44043800, 0x64103000,
+ 0x64403800, 0x05fdffb9, 0x0500004b, 0x800c19c0,
+ 0x05000033, 0x640c3000, 0x5008b800, 0x445c3800,
+ 0x485fc857, 0x480fc857, 0x800c1840, 0x05000028,
+ 0x64103000, 0x64403800, 0x05fdffac, 0x0500003e,
0x640c3000, 0x805cb910, 0x445c3800, 0x485fc857,
- 0x480fc857, 0x800c1840, 0x05000007, 0x64103000,
- 0x64403800, 0x05fdff8b, 0x0500001d, 0x80081000,
- 0x05fdf7d3, 0x64103000, 0x65403800, 0x05fdff85,
- 0x05000017, 0x90000541, 0x4803c856, 0x0501f011,
- 0x4803c857, 0x64103000, 0x65403800, 0x05fdff7d,
+ 0x480fc857, 0x800c1840, 0x0500001d, 0x64103000,
+ 0x64403800, 0x05fdffa1, 0x05000033, 0x640c3000,
+ 0x805cb910, 0x445c3800, 0x485fc857, 0x480fc857,
+ 0x800c1840, 0x05000012, 0x64103000, 0x64403800,
+ 0x05fdff96, 0x05000028, 0x640c3000, 0x805cb910,
+ 0x445c3800, 0x485fc857, 0x480fc857, 0x800c1840,
+ 0x05000007, 0x64103000, 0x64403800, 0x05fdff8b,
+ 0x0500001d, 0x80081000, 0x05fdf7d3, 0x64103000,
+ 0x65403800, 0x05fdff85, 0x05000017, 0x90000541,
+ 0x4803c856, 0x0501f011, 0x4803c857, 0x64103000,
+ 0x65403800, 0x05fdff7d, 0x64103000, 0x4200b800,
+ 0x000f4240, 0x805cb840, 0x05000005, 0x501c0000,
+ 0x8c00050c, 0x05fe07fc, 0x05fdf7a9, 0x4803c857,
+ 0x05ddfa05, 0x4803c856, 0x5c00b800, 0x05fdff8f,
+ 0x1c01f000, 0x600c0000, 0x05fdf7fb, 0x4803c856,
+ 0x05fdff7a, 0x60040000, 0x0500009c, 0x4c5c0000,
+ 0x4c600000, 0x400c6000, 0x61c0303f, 0x61c4383f,
0x64103000, 0x4200b800, 0x000f4240, 0x805cb840,
- 0x05000005, 0x501c0000, 0x8c00050c, 0x05fe07fc,
- 0x05fdf7a9, 0x4803c857, 0x05ddfb70, 0x4803c856,
- 0x5c00b800, 0x05fdff8f, 0x1c01f000, 0x600c0000,
- 0x05fdf7fb, 0x4803c856, 0x05fdff7a, 0x60040000,
- 0x0500009c, 0x4c5c0000, 0x4c600000, 0x400c6000,
- 0x61c0303f, 0x61c4383f, 0x64103000, 0x4200b800,
- 0x000f4240, 0x805cb840, 0x60080000, 0x0500008e,
- 0x501c0000, 0x4803c857, 0x8c00050c, 0x05fe07fa,
- 0x8c10051c, 0x05000017, 0x640c3000, 0x50180000,
- 0x4803c857, 0x501c0000, 0x4803c857, 0x4817c857,
- 0x05fdff3d, 0x05000002, 0x60802801, 0x44143800,
- 0x64103000, 0x46003800, 0x00000090, 0x05fdff49,
- 0x0500007d, 0x640c3000, 0x4807c857, 0x44043800,
- 0x64103000, 0x64403800, 0x05fdff42, 0x05000076,
- 0x640c3000, 0x80142800, 0x05fdff2b, 0x05000002,
- 0x60842801, 0x44143800, 0x64103000, 0x46003800,
- 0x00000090, 0x05fdff37, 0x0500006b, 0x800c19c0,
- 0x05dc0b32, 0x4178b800, 0x900c1581, 0x05000040,
- 0x64103000, 0x64803800, 0x05fdff1f, 0x05000062,
- 0x640c3000, 0x501c0800, 0x4807c857, 0x9c0409c0,
- 0x8004bd57, 0x485fc857, 0x480fc857, 0x805cb910,
- 0x800c1840, 0x900c1581, 0x05000031, 0x64103000,
- 0x64803800, 0x05fdff10, 0x05000053, 0x640c3000,
- 0x501c0800, 0x4807c857, 0x9c0409c0, 0x8004bd57,
- 0x485fc857, 0x480fc857, 0x805cb910, 0x800c1840,
- 0x900c1581, 0x05000022, 0x64103000, 0x64803800,
- 0x05fdff01, 0x05000044, 0x640c3000, 0x501c0800,
+ 0x60080000, 0x0500008e, 0x501c0000, 0x4803c857,
+ 0x8c00050c, 0x05fe07fa, 0x8c10051c, 0x05000017,
+ 0x640c3000, 0x50180000, 0x4803c857, 0x501c0000,
+ 0x4803c857, 0x4817c857, 0x05fdff3d, 0x05000002,
+ 0x60802801, 0x44143800, 0x64103000, 0x46003800,
+ 0x00000090, 0x05fdff49, 0x0500007d, 0x640c3000,
+ 0x4807c857, 0x44043800, 0x64103000, 0x64403800,
+ 0x05fdff42, 0x05000076, 0x640c3000, 0x80142800,
+ 0x05fdff2b, 0x05000002, 0x60842801, 0x44143800,
+ 0x64103000, 0x46003800, 0x00000090, 0x05fdff37,
+ 0x0500006b, 0x800c19c0, 0x05dc09c7, 0x4178b800,
+ 0x900c1581, 0x05000040, 0x64103000, 0x64803800,
+ 0x05fdff1f, 0x05000062, 0x640c3000, 0x501c0800,
0x4807c857, 0x9c0409c0, 0x8004bd57, 0x485fc857,
0x480fc857, 0x805cb910, 0x800c1840, 0x900c1581,
- 0x05000013, 0x64103000, 0x64803800, 0x05fdfef2,
- 0x05000035, 0x640c3000, 0x501c0800, 0x4807c857,
+ 0x05000031, 0x64103000, 0x64803800, 0x05fdff10,
+ 0x05000053, 0x640c3000, 0x501c0800, 0x4807c857,
0x9c0409c0, 0x8004bd57, 0x485fc857, 0x480fc857,
- 0x445cc800, 0x8064c800, 0x4178b800, 0x800c1840,
- 0x900c1581, 0x05000002, 0x05fdf7c2, 0x64103000,
- 0x65a03800, 0x05fdfee0, 0x05000023, 0x640c3000,
- 0x501c0800, 0x4807c857, 0x82040d00, 0x000000ff,
- 0x9c0409c0, 0x8004bd57, 0x4807c857, 0x485fc857,
- 0x4863c857, 0x4867c857, 0x480fc857, 0x40301000,
- 0x41780800, 0x60100000, 0x0519fc90, 0x4807c857,
- 0x800409c0, 0x05000006, 0x60100000, 0x80000c81,
- 0x805cb910, 0x80040840, 0x05fe07fe, 0x445cc800,
- 0x485fc857, 0x4863c857, 0x4867c857, 0x90000541,
- 0x4803c856, 0x5c00c000, 0x5c00b800, 0x05fdfeed,
- 0x1c01f000, 0x600c0000, 0x05fdf7fb, 0x4c000000,
- 0x599c0018, 0x8c000514, 0x5c000000, 0x1c01f000,
- 0x05fdfffb, 0x05000003, 0x59a80249, 0x8c000518,
- 0x1c01f000, 0x599c0018, 0x8c000516, 0x05020003,
- 0x90000541, 0x1c01f000, 0x80000580, 0x05fdf7fe,
- 0x59a0020c, 0x8c000518, 0x1c01f000, 0x60003020,
- 0x80183040, 0x05000010, 0x0541fdd5, 0x05fc07fd,
- 0x05ddffa1, 0x605430f4, 0x50183800, 0x821c0500,
- 0x00007000, 0x05000006, 0x480350d8, 0x821c0500,
- 0xffff8fff, 0x44003000, 0x80000580, 0x64030000,
- 0x1c01f000, 0x4803c856, 0x4a034408, 0x0000cccc,
- 0x90000541, 0x05fdf7fa, 0x0541fdc1, 0x05fc07ff,
- 0x600008f4, 0x58040015, 0x82000500, 0xffff8fff,
- 0x59a810d8, 0x80080540, 0x48000815, 0x64030000,
- 0x1c01f000, 0x59a80005, 0x8c000514, 0x05000005,
- 0x42000000, 0x0010dd3e, 0x50000000, 0x90000528,
- 0x1c01f000, 0x59a80092, 0x82000580, 0x041e1014,
+ 0x805cb910, 0x800c1840, 0x900c1581, 0x05000022,
+ 0x64103000, 0x64803800, 0x05fdff01, 0x05000044,
+ 0x640c3000, 0x501c0800, 0x4807c857, 0x9c0409c0,
+ 0x8004bd57, 0x485fc857, 0x480fc857, 0x805cb910,
+ 0x800c1840, 0x900c1581, 0x05000013, 0x64103000,
+ 0x64803800, 0x05fdfef2, 0x05000035, 0x640c3000,
+ 0x501c0800, 0x4807c857, 0x9c0409c0, 0x8004bd57,
+ 0x485fc857, 0x480fc857, 0x445cc800, 0x8064c800,
+ 0x4178b800, 0x800c1840, 0x900c1581, 0x05000002,
+ 0x05fdf7c2, 0x64103000, 0x65a03800, 0x05fdfee0,
+ 0x05000023, 0x640c3000, 0x501c0800, 0x4807c857,
+ 0x82040d00, 0x000000ff, 0x9c0409c0, 0x8004bd57,
+ 0x4807c857, 0x485fc857, 0x4863c857, 0x4867c857,
+ 0x480fc857, 0x40301000, 0x41780800, 0x60100000,
+ 0x0519ffa3, 0x4807c857, 0x800409c0, 0x05000006,
+ 0x60100000, 0x80000c81, 0x805cb910, 0x80040840,
+ 0x05fe07fe, 0x445cc800, 0x485fc857, 0x4863c857,
+ 0x4867c857, 0x90000541, 0x4803c856, 0x5c00c000,
+ 0x5c00b800, 0x05fdfeed, 0x1c01f000, 0x600c0000,
+ 0x05fdf7fb, 0x4c000000, 0x599c0018, 0x8c000514,
+ 0x5c000000, 0x1c01f000, 0x05fdfffb, 0x05000003,
+ 0x59a8024c, 0x8c000518, 0x1c01f000, 0x599c0018,
+ 0x8c000516, 0x05020003, 0x90000541, 0x1c01f000,
+ 0x80000580, 0x05fdf7fe, 0x60003020, 0x80183040,
+ 0x05000010, 0x0545fbad, 0x05fc07fd, 0x05ddfe60,
+ 0x605430f4, 0x50183800, 0x821c0500, 0x00007000,
+ 0x05000006, 0x480350dd, 0x821c0500, 0xffff8fff,
+ 0x44003000, 0x80000580, 0x64030000, 0x1c01f000,
+ 0x4803c856, 0x4a034408, 0x0000cccc, 0x90000541,
+ 0x05fdf7fa, 0x0545fb99, 0x05fc07ff, 0x600008f4,
+ 0x58040015, 0x82000500, 0xffff8fff, 0x59a810dd,
+ 0x80080540, 0x48000815, 0x64030000, 0x1c01f000,
+ 0x59a00c07, 0x90040588, 0x05000004, 0x90040589,
+ 0x05000016, 0x05edf5f7, 0x59000200, 0x80000540,
+ 0x05000043, 0x59001001, 0x59001802, 0x59002803,
+ 0x900811c0, 0x900c19c0, 0x901429c0, 0x61702000,
+ 0x8d0c0538, 0x05000002, 0x8410255e, 0x59000800,
+ 0x480b4008, 0x48134209, 0x480f400a, 0x4817400b,
+ 0x4807400c, 0x05edf59b, 0x916c0580, 0x0502002e,
+ 0x8d0c0538, 0x05020030, 0x59000200, 0x80001d40,
+ 0x0500002b, 0x59a0100b, 0x800811c0, 0x05ec05d9,
+ 0x900811c0, 0x41780800, 0x61700000, 0x4c0c0000,
+ 0x0519ff33, 0x5c001800, 0x800409c0, 0x05ee05d1,
+ 0x400c0000, 0x80080480, 0x05001002, 0x400c1000,
+ 0x480a0400, 0x82080400, 0x00000800, 0x480350ad,
+ 0x82080400, 0x000007f0, 0x480350ac, 0x82080c00,
+ 0x0010e380, 0x42001000, 0x00111b80, 0x05ddfcba,
+ 0x480b500d, 0x481b500e, 0x59a0280b, 0x59a01008,
+ 0x59a0180a, 0x900801c0, 0x48020001, 0x900c01c0,
+ 0x48020002, 0x901401c0, 0x48020003, 0x850e1d78,
+ 0x05fdf7c7, 0x60c00800, 0x0501f004, 0x60c40800,
+ 0x0501f002, 0x60c80800, 0x4807c857, 0x48074407,
+ 0x05edf5a7, 0x59a80005, 0x8c000514, 0x05000005,
+ 0x42000000, 0x00111cc4, 0x50000000, 0x90000528,
+ 0x1c01f000, 0x59a80095, 0x82000580, 0x041e1014,
0x1c01f000, 0x4807c857, 0x480bc857, 0x480fc857,
- 0x4c040000, 0x4c080000, 0x4c0c0000, 0x05f1ff11,
+ 0x4c040000, 0x4c080000, 0x4c0c0000, 0x05f1fdcf,
0x5c001800, 0x5c001000, 0x5c000800, 0x05000003,
- 0x80141d43, 0x05f1fed5, 0x1c01f000, 0x4807c857,
+ 0x80141d43, 0x05f1fd91, 0x1c01f000, 0x4807c857,
0x480bc857, 0x480fc857, 0x4c040000, 0x4c080000,
- 0x4c0c0000, 0x05f1ff03, 0x5c001800, 0x5c001000,
+ 0x4c0c0000, 0x05f1fdc1, 0x5c001800, 0x5c001000,
0x5c000800, 0x05000004, 0x800c1880, 0x80141d03,
- 0x05f1fec6, 0x1c01f000, 0x641f4407, 0x05edf6c8,
- 0x64eb4407, 0x05edf6c6, 0x051dfcdf, 0x497b8880,
+ 0x05f1fd82, 0x1c01f000, 0x641f4407, 0x05edf57c,
+ 0x64eb4407, 0x05edf57a, 0x051dffa9, 0x497b8880,
0x59c400a3, 0x82000500, 0xfcf8ffff, 0x480388a3,
- 0x05e9fecb, 0x05020003, 0x600dd000, 0x0515fc86,
- 0x4d3c0000, 0x60067800, 0x0535faa5, 0x5c027800,
- 0x05e9fec3, 0x0502000b, 0x59c408a3, 0x84040d72,
- 0x480788a3, 0x6009d000, 0x0515fc7b, 0x05e9fec0,
- 0x05de0a4e, 0x59c408a3, 0x84040d32, 0x480788a3,
- 0x05e9feb3, 0x05020012, 0x42000000, 0x00200000,
- 0x05e9fa27, 0x600dd000, 0x0515fc6f, 0x05e9feb4,
- 0x0500000b, 0x59c408a3, 0x84040d72, 0x480788a3,
- 0x6009d000, 0x0515fc68, 0x05e9fead, 0x05de0a3b,
- 0x59c408a3, 0x84040d32, 0x480788a3, 0x1c01f000,
- 0x59c400a4, 0x4c580000, 0x4c500000, 0x4c540000,
- 0x9000050f, 0x90000487, 0x05001008, 0x90006c87,
- 0x05de1a2e, 0x0c01f807, 0x5c00a800, 0x5c00a000,
- 0x5c00b000, 0x1c01f000, 0x0501f8e9, 0x05fdf7fb,
- 0x00104bbb, 0x00104bc1, 0x00104be5, 0x00104bff,
- 0x00104ca1, 0x00104bba, 0x1c01f000, 0x59c40806,
- 0x8c040500, 0x05020003, 0x84040d40, 0x48078806,
- 0x1c01f000, 0x59c40005, 0x8c000534, 0x050206b2,
- 0x4a038805, 0xffffffff, 0x42006000, 0x00020000,
- 0x0501fe94, 0x59a80043, 0x82000500, 0xfffffffa,
- 0x84000542, 0x48035043, 0x497b5249, 0x42000800,
- 0x00110258, 0x45780800, 0x497b50b2, 0x42000000,
- 0x0010e510, 0x46000000, 0x0000ffff, 0x42006000,
- 0xffefffff, 0x42006800, 0x40000000, 0x0501fe7c,
+ 0x05e9fd5b, 0x05020003, 0x600dd000, 0x0515fefd,
+ 0x4d3c0000, 0x60067800, 0x0535fe58, 0x5c027800,
+ 0x05e9fd53, 0x05020009, 0x59c408a3, 0x84040d72,
+ 0x480788a3, 0x6009d000, 0x0515fef2, 0x59c408a3,
+ 0x84040d32, 0x480788a3, 0x05e9fd45, 0x05020010,
+ 0x42000000, 0x00200000, 0x05e9f8b5, 0x600dd000,
+ 0x0515fee8, 0x05e9fd46, 0x05000009, 0x59c408a3,
+ 0x84040d72, 0x480788a3, 0x6009d000, 0x0515fee1,
+ 0x59c408a3, 0x84040d32, 0x480788a3, 0x05e9fd30,
+ 0x05fc07f7, 0x1c01f000, 0x59a80006, 0x8c000510,
+ 0x1c01f000, 0x59c400a4, 0x4c580000, 0x4c500000,
+ 0x4c540000, 0x9000050f, 0x90000487, 0x05001008,
+ 0x90006c87, 0x05de1874, 0x0c01f807, 0x5c00a800,
+ 0x5c00a000, 0x5c00b000, 0x1c01f000, 0x0501f8e9,
+ 0x05fdf7fb, 0x00104db0, 0x00104db6, 0x00104dda,
+ 0x00104df4, 0x00104e96, 0x00104daf, 0x1c01f000,
+ 0x59c40806, 0x8c040500, 0x05020003, 0x84040d40,
+ 0x48078806, 0x1c01f000, 0x59c40005, 0x8c000534,
+ 0x050206b4, 0x4a038805, 0xffffffff, 0x42006000,
+ 0x00020000, 0x0501fe96, 0x59a80046, 0x82000500,
+ 0xfffffffa, 0x84000542, 0x48035046, 0x497b524c,
+ 0x42000800, 0x001141fc, 0x45780800, 0x497b50b7,
+ 0x42000000, 0x001124b4, 0x46000000, 0x0000ffff,
+ 0x42006000, 0xffefffff, 0x42006800, 0x40000000,
+ 0x0501fe7e, 0x59c40006, 0x82000500, 0xffffff0f,
+ 0x48038806, 0x60400800, 0x42001000, 0x001053a5,
+ 0x0515fce2, 0x0501f001, 0x42006000, 0xffffffff,
+ 0x42006800, 0x00800000, 0x0501fe70, 0x6120b001,
+ 0x59c400a4, 0x9000050f, 0x9000058a, 0x0500000d,
+ 0x8058b040, 0x05fe07fb, 0x497b5041, 0x42006000,
+ 0xbf7fffff, 0x42006800, 0x00018000, 0x0501fe63,
+ 0x42006000, 0xfffeffff, 0x41786800, 0x0501f65f,
+ 0x497b5041, 0x640350b6, 0x80000580, 0x0501f667,
+ 0x4a038805, 0xffffffff, 0x59a800b6, 0x90000c84,
+ 0x05de181d, 0x0c01f001, 0x00104dfd, 0x00104e23,
+ 0x00104e8f, 0x4803c856, 0x59c400a3, 0x8400051e,
+ 0x480388a3, 0x640750b6, 0x59c40008, 0x82000540,
+ 0x00000280, 0x48038808, 0x0501fe32, 0x42007800,
+ 0x00112005, 0x4a007806, 0x11010000, 0x4200a000,
+ 0x001124b7, 0x4200a800, 0x0011200c, 0x6008b000,
+ 0x0545fa12, 0x59c40802, 0x84040d0c, 0x48078802,
+ 0x600c0800, 0x497b50c1, 0x0501fd11, 0x640750c1,
+ 0x497b50bb, 0x0501fe47, 0x42006000, 0xffffffff,
+ 0x42006800, 0x00080000, 0x0501fe30, 0x42006000,
+ 0xfff7ffff, 0x41786800, 0x0501f62c, 0x59a800bb,
+ 0x497b50bb, 0x80002540, 0x0500005e, 0x59c40004,
+ 0x90000503, 0x05020065, 0x59a80846, 0x8c040502,
+ 0x05000049, 0x9010058c, 0x0502004c, 0x90100418,
+ 0x8000b104, 0x41cc1000, 0x42001800, 0x00112005,
+ 0x50080800, 0x500c0000, 0x80040580, 0x05020019,
+ 0x80081000, 0x800c1800, 0x8058b040, 0x05fe07f9,
+ 0x0501fe24, 0x59c80015, 0x84000508, 0x48039015,
+ 0x42006000, 0xffffffff, 0x42006800, 0x00500000,
+ 0x0501fe0a, 0x640b50b6, 0x640b5041, 0x05e5fd22,
+ 0x6140080f, 0x42001000, 0x00105303, 0x0515fe01,
+ 0x59a80046, 0x84000506, 0x48035046, 0x0501f5e9,
+ 0x59cc0806, 0x82040d80, 0x11010000, 0x05020027,
+ 0x59cc0800, 0x82040500, 0x00ffffff, 0x05000018,
+ 0x82000580, 0x000000ef, 0x05020015, 0x59cc0801,
+ 0x82040500, 0x00ffffff, 0x82000580, 0x000000ef,
+ 0x0502000f, 0x91cca407, 0x4200a800, 0x001124b7,
+ 0x6008b000, 0x50500800, 0x50540000, 0x80040480,
+ 0x05001007, 0x05020011, 0x8050a000, 0x8054a800,
+ 0x8058b040, 0x05fe07f8, 0x0501f00c, 0x59a80046,
+ 0x84000502, 0x48035046, 0x59c80015, 0x84000508,
+ 0x48039015, 0x41cca000, 0x4200a800, 0x00112005,
+ 0x6024b000, 0x0545f9a9, 0x0501fde6, 0x42006000,
+ 0xffffffff, 0x42006800, 0x00080000, 0x0501fdcf,
+ 0x42006000, 0xfff7ffff, 0x41786800, 0x0501fdcb,
+ 0x42006000, 0xffffffff, 0x60006880, 0x0501fdc7,
+ 0x59c40004, 0x90000503, 0x05020004, 0x497b50bb,
+ 0x600c0800, 0x0501f49a, 0x1c01f000, 0x1c01f000,
+ 0x59a80041, 0x90006d8f, 0x05000003, 0x9000059b,
+ 0x05020c65, 0x1c01f000, 0x59a80046, 0x84000506,
+ 0x48035046, 0x497b50c1, 0x59a80041, 0x90000c9e,
+ 0x05da1f79, 0x0c01f001, 0x00104ecd, 0x00104edd,
+ 0x00104eff, 0x00104f1a, 0x00104f38, 0x00104f3b,
+ 0x00104f3e, 0x00104f41, 0x00104f44, 0x00104f58,
+ 0x00104f5b, 0x00104faf, 0x00104fb2, 0x00104fbf,
+ 0x00104fc2, 0x00104fd4, 0x00104fd9, 0x00105029,
+ 0x00105050, 0x001050c8, 0x001050ef, 0x0010513e,
+ 0x00105184, 0x001051d3, 0x001051f1, 0x00105233,
+ 0x00105251, 0x00105261, 0x00105262, 0x4803c856,
+ 0x601ed800, 0x0509fcdb, 0x05000006, 0x42006000,
+ 0xffffffd7, 0x41786800, 0x0501fd8c, 0x0501f009,
0x59c40006, 0x82000500, 0xffffff0f, 0x48038806,
- 0x60400800, 0x42001000, 0x001051ae, 0x0515fabd,
- 0x0501f001, 0x42006000, 0xffffffff, 0x42006800,
- 0x00800000, 0x0501fe6e, 0x6120b001, 0x59c400a4,
- 0x9000050f, 0x9000058a, 0x0500000d, 0x8058b040,
- 0x05fe07fb, 0x497b503e, 0x42006000, 0xbf7fffff,
- 0x42006800, 0x00018000, 0x0501fe61, 0x42006000,
- 0xfffeffff, 0x41786800, 0x0501f65d, 0x497b503e,
- 0x640350b1, 0x80000580, 0x0501f665, 0x4a038805,
- 0xffffffff, 0x59a800b1, 0x90000c84, 0x05de19d7,
- 0x0c01f001, 0x00104c08, 0x00104c2e, 0x00104c9a,
- 0x4803c856, 0x59c400a3, 0x8400051e, 0x480388a3,
- 0x640750b1, 0x59c40008, 0x82000540, 0x00000280,
- 0x48038808, 0x0501fe30, 0x42007800, 0x0010e06b,
- 0x4a007806, 0x11010000, 0x4200a000, 0x0010e513,
- 0x4200a800, 0x0010e072, 0x6008b000, 0x0541fc8c,
- 0x59c40802, 0x84040d0c, 0x48078802, 0x600c0800,
- 0x497b50bc, 0x0501fd0f, 0x640750bc, 0x497b50b6,
- 0x0501fe45, 0x42006000, 0xffffffff, 0x42006800,
- 0x00080000, 0x0501fe2e, 0x42006000, 0xfff7ffff,
- 0x41786800, 0x0501f62a, 0x59a800b6, 0x497b50b6,
- 0x80002540, 0x0500005e, 0x59c40004, 0x90000503,
- 0x05020065, 0x59a80843, 0x8c040502, 0x05000049,
- 0x9010058c, 0x0502004c, 0x90100418, 0x8000b104,
- 0x41cc1000, 0x42001800, 0x0010e06b, 0x50080800,
- 0x500c0000, 0x80040580, 0x05020019, 0x80081000,
- 0x800c1800, 0x8058b040, 0x05fe07f9, 0x0501fe22,
- 0x59c80015, 0x84000508, 0x48039015, 0x42006000,
- 0xffffffff, 0x42006800, 0x00500000, 0x0501fe08,
- 0x640b50b1, 0x640b503e, 0x05e5fe97, 0x6140080f,
- 0x42001000, 0x0010510c, 0x0515fb92, 0x59a80043,
- 0x84000506, 0x48035043, 0x0501f5e7, 0x59cc0806,
- 0x82040d80, 0x11010000, 0x05020027, 0x59cc0800,
- 0x82040500, 0x00ffffff, 0x05000018, 0x82000580,
- 0x000000ef, 0x05020015, 0x59cc0801, 0x82040500,
- 0x00ffffff, 0x82000580, 0x000000ef, 0x0502000f,
- 0x91cca407, 0x4200a800, 0x0010e513, 0x6008b000,
- 0x50500800, 0x50540000, 0x80040480, 0x05001007,
- 0x05020011, 0x8050a000, 0x8054a800, 0x8058b040,
- 0x05fe07f8, 0x0501f00c, 0x59a80043, 0x84000502,
- 0x48035043, 0x59c80015, 0x84000508, 0x48039015,
- 0x41cca000, 0x4200a800, 0x0010e06b, 0x6024b000,
- 0x0541fc23, 0x0501fde4, 0x42006000, 0xffffffff,
- 0x42006800, 0x00080000, 0x0501fdcd, 0x42006000,
- 0xfff7ffff, 0x41786800, 0x0501fdc9, 0x42006000,
- 0xffffffff, 0x60006880, 0x0501fdc5, 0x59c40004,
- 0x90000503, 0x05020004, 0x497b50b6, 0x600c0800,
- 0x0501f498, 0x1c01f000, 0x1c01f000, 0x59a8003e,
- 0x90006d8f, 0x05000003, 0x9000059b, 0x05020c63,
- 0x1c01f000, 0x59a80043, 0x84000506, 0x48035043,
- 0x497b50bc, 0x59a8003e, 0x90000c9e, 0x05de1933,
- 0x0c01f001, 0x00104cd8, 0x00104ce8, 0x00104d0a,
- 0x00104d24, 0x00104d42, 0x00104d45, 0x00104d48,
- 0x00104d4b, 0x00104d4e, 0x00104d62, 0x00104d65,
- 0x00104db9, 0x00104dbc, 0x00104dc9, 0x00104dcc,
- 0x00104dde, 0x00104de3, 0x00104e32, 0x00104e59,
- 0x00104ed1, 0x00104ef8, 0x00104f47, 0x00104f8d,
- 0x00104fdc, 0x00104ffa, 0x0010503c, 0x0010505a,
- 0x0010506a, 0x0010506b, 0x4803c856, 0x601ed800,
- 0x0509fbe6, 0x05000006, 0x42006000, 0xffffffd7,
- 0x41786800, 0x0501fd8a, 0x0501f009, 0x59c40006,
- 0x82000500, 0xffffff0f, 0x48038806, 0x4a038805,
- 0x000000f0, 0x0509ff22, 0x0509fb52, 0x1c01f000,
- 0x4803c856, 0x42006000, 0xbf7fffff, 0x42006800,
- 0x00400000, 0x0501fd7a, 0x05e5fe0b, 0x6407503e,
- 0x42001000, 0x001051ae, 0x0515f9e3, 0x0501fcd4,
- 0x6140080f, 0x42001000, 0x0010510c, 0x0515f301,
- 0x59a800b6, 0x90000594, 0x0502001e, 0x4803c857,
- 0x42006000, 0xffbfffff, 0x41786800, 0x0501fd68,
- 0x59c40004, 0x90000503, 0x05020016, 0x42001000,
- 0x0010510c, 0x0515f9c0, 0x59cc1006, 0x82081580,
- 0x11020000, 0x05020010, 0x59cc1007, 0x8c08053e,
- 0x0500000a, 0x59a80043, 0x8c000504, 0x05020007,
- 0x42000000, 0x0010e39d, 0x0541fada, 0x59a80043,
- 0x84000544, 0x48035043, 0x6443503e, 0x0501f0dc,
- 0x1c01f000, 0x0501f3f9, 0x4803c856, 0x640f503e,
- 0x42006000, 0xbf3fffff, 0x42006800, 0x00100000,
- 0x0501fd47, 0x42001000, 0x001051ae, 0x0515f9b2,
- 0x0501fca3, 0x42001000, 0x0010510c, 0x0515f99e,
- 0x59a80449, 0x90000528, 0x05000004, 0x42000800,
- 0xffffd815, 0x05edf9ad, 0x42007800, 0x0010e071,
- 0x46007800, 0x11020000, 0x60140800, 0x0501f40d,
- 0x59a800b6, 0x80000540, 0x0500001a, 0x4803c857,
- 0x42001000, 0x0010510c, 0x0515f98b, 0x59a800b6,
- 0x90000594, 0x05020014, 0x59cc1006, 0x82081580,
- 0x11020000, 0x05020010, 0x59cc1007, 0x8c08053e,
- 0x0500000a, 0x59a80043, 0x8c000504, 0x05020007,
- 0x42000000, 0x0010e39d, 0x0541faa2, 0x59a80043,
- 0x84000544, 0x48035043, 0x6413503e, 0x0501f003,
- 0x1c01f000, 0x0501f3c1, 0x4803c856, 0x6417503e,
- 0x0501f117, 0x4c5c0000, 0x6004b800, 0x0501f0ed,
- 0x4803c856, 0x641f503e, 0x0501f1b0, 0x4c5c0000,
- 0x6004b800, 0x0501f186, 0x4803c856, 0x6427503e,
- 0x91cca406, 0x4200a800, 0x0010e071, 0x6014b000,
- 0x0541fb53, 0x42007800, 0x0010e071, 0x46007800,
- 0x11050100, 0x8d0c0506, 0x05000243, 0x60140800,
- 0x0501fbd4, 0x4d3c0000, 0x60067800, 0x0535f8c8,
- 0x5c027800, 0x1c01f000, 0x4c5c0000, 0x6004b800,
- 0x0501f1e5, 0x4803c856, 0x642f503e, 0x42001000,
- 0x0010e072, 0x4008a800, 0x6080b000, 0x4600a800,
- 0xffffffff, 0x8054a800, 0x8058b040, 0x05fe07fc,
- 0x42007800, 0x0010e071, 0x46007800, 0x11060000,
- 0x8d0c0506, 0x05000005, 0x50080000, 0x46001000,
- 0x00ffffff, 0x0501f03e, 0x42024800, 0x0010e512,
- 0x0541fb7c, 0x40083000, 0x41782800, 0x41781800,
- 0x41782000, 0x59240200, 0x8c000500, 0x05000012,
- 0x8c000502, 0x05000010, 0x801429c0, 0x05020002,
- 0x800c1800, 0x80142800, 0x59244408, 0x82204500,
- 0x000000ff, 0x400c0000, 0x50182000, 0x0c01f810,
- 0x80102540, 0x44103000, 0x800c19c0, 0x05020002,
- 0x80183000, 0x91264c0d, 0x8058b040, 0x05fe07ea,
- 0x50080000, 0x82000500, 0x00ffffff, 0x801428f0,
- 0x80140540, 0x44001000, 0x0501f019, 0x00104da3,
- 0x00104da8, 0x00104dad, 0x00104db2, 0x802000f0,
- 0x82102500, 0x00ffffff, 0x800c1800, 0x1c01f000,
- 0x802000e0, 0x82102500, 0xff00ffff, 0x800c1800,
- 0x1c01f000, 0x802000d0, 0x82102500, 0xffff00ff,
- 0x800c1800, 0x1c01f000, 0x40200000, 0x82102500,
- 0xffffff00, 0x41781800, 0x1c01f000, 0x60840800,
- 0x0501f378, 0x4c5c0000, 0x6004b800, 0x0501f223,
- 0x4803c856, 0x6437503e, 0x91cca406, 0x4200a800,
- 0x0010e071, 0x6084b000, 0x0541fae5, 0x42007800,
- 0x0010e071, 0x46007800, 0x11070000, 0x60840800,
- 0x0501f368, 0x4c5c0000, 0x6004b800, 0x0501f273,
- 0x4803c856, 0x90040d41, 0x0501fc95, 0x643f503e,
- 0x497b50b6, 0x42006000, 0xffffffff, 0x42006800,
- 0x00300000, 0x0501fc82, 0x42006000, 0xffdfffff,
- 0x41786800, 0x0501fc7e, 0x6140080f, 0x42001000,
- 0x0010510c, 0x0515f0ac, 0x4803c856, 0x59a800b6,
- 0x80000540, 0x05020321, 0x1c01f000, 0x4803c856,
- 0x6447503e, 0x91cca406, 0x4200a800, 0x0010e071,
- 0x6014b000, 0x0541fabe, 0x4200a800, 0x0010e071,
- 0x4600a800, 0x11020000, 0x8d0c0506, 0x05020041,
- 0x59a80c49, 0x82040580, 0x0000ffff, 0x0500003d,
- 0x90040d30, 0x05000005, 0x42000800, 0xffffd815,
- 0x05edf8d2, 0x0501f037, 0x59cc0007, 0x8c00053c,
- 0x05000034, 0x42024800, 0x0010e512, 0x0541faf9,
- 0x59240200, 0xb0000d23, 0xb0040da3, 0x05020021,
- 0x59240a08, 0x42001000, 0x0010e072, 0x0501fab6,
- 0x05000009, 0x59240c08, 0x05e5fcf7, 0x59240200,
- 0x84000502, 0x84000518, 0x84000544, 0x48024a00,
- 0x0501f014, 0x59240200, 0x82000540, 0x00001006,
- 0x84000506, 0x48024a00, 0x48064a08, 0x82042c00,
- 0x00102853, 0x50142800, 0x82142d00, 0x000000ff,
- 0x48164c08, 0x59240005, 0x82000500, 0x00ffff00,
- 0x80140d40, 0x48064805, 0x40140800, 0x05e5fccf,
- 0x91264c0d, 0x8058b040, 0x05fe07da, 0x42024800,
- 0x0010e512, 0x59242a00, 0x8c140502, 0x05000005,
- 0x8c140500, 0x05000003, 0x59242c08, 0x4817503d,
- 0x60140800, 0x0501f2ff, 0x4c5c0000, 0x4178b800,
- 0x59a800b6, 0x80000540, 0x05000021, 0x4803c857,
- 0x42001000, 0x0010510c, 0x0515f87b, 0x59a800b6,
- 0x90000594, 0x05020019, 0x59cc1006, 0x82081580,
- 0x11030000, 0x05020015, 0x59cc1007, 0x8c08053e,
- 0x0500000a, 0x59a80043, 0x8c000504, 0x05020007,
- 0x42000000, 0x0010e39d, 0x0541f992, 0x59a80043,
- 0x84000544, 0x48035043, 0x805cb9c0, 0x05000004,
- 0x641b503e, 0x05fdfef7, 0x0501f005, 0x644b503e,
- 0x0501f805, 0x0501f002, 0x0501faac, 0x5c00b800,
- 0x1c01f000, 0x4803c856, 0x644f503e, 0x91cca407,
- 0x4200a800, 0x0010e072, 0x6010b000, 0x0541fa48,
- 0x4200a800, 0x0010e071, 0x4600a800, 0x11030000,
- 0x8d0c0506, 0x0502006a, 0x42024800, 0x0010e512,
- 0x0541fa90, 0x4c600000, 0x4178c000, 0x59a80249,
- 0x82000500, 0xfffffffc, 0x48035249, 0x59240200,
- 0x40000800, 0x82040d00, 0xfffffb17, 0x48064a00,
- 0x8c000500, 0x05000048, 0x8c000518, 0x05020046,
- 0x8c000502, 0x05020004, 0x59240400, 0x8c000502,
- 0x05000041, 0x59240a08, 0x42001000, 0x0010e072,
- 0x0501fa3d, 0x0500002b, 0x59240005, 0x82000500,
- 0x00ffff00, 0x48024805, 0x59240200, 0x8c000502,
- 0x05000019, 0x59240207, 0x82000500, 0x0000ffff,
- 0x05000015, 0x8060c000, 0x59240c08, 0x05e5fc72,
- 0x4c640000, 0x4c580000, 0x4d2c0000, 0x5924c809,
- 0x6040b000, 0x50640000, 0x800001c0, 0x05000004,
- 0x4578c800, 0x40025800, 0x05ddfaf8, 0x8064c800,
- 0x8058b040, 0x05fe07f8, 0x5c025800, 0x5c00b000,
- 0x5c00c800, 0x59240200, 0x84000502, 0x84000544,
- 0x48024a00, 0x59240400, 0x8c000504, 0x05000016,
- 0x59240200, 0x84000546, 0x48024a00, 0x0501f012,
- 0x59240200, 0x90000546, 0x84000506, 0x48024a00,
- 0x82042c00, 0x00102853, 0x50142800, 0x82142d00,
- 0x000000ff, 0x48164c08, 0x59240005, 0x82000500,
- 0x00ffff00, 0x80140d40, 0x48064805, 0x40140800,
- 0x05e5fc36, 0x59240200, 0x84000518, 0x48024a00,
- 0x91264c0d, 0x8058b040, 0x05fe07ad, 0x8060c1c0,
- 0x05020b0b, 0x5c00c000, 0x42024800, 0x0010e512,
- 0x59242a00, 0x8c140502, 0x05000005, 0x8c140500,
- 0x05000003, 0x59242c08, 0x4817503d, 0x60140800,
- 0x0501f260, 0x4c5c0000, 0x4178b800, 0x59a800b6,
+ 0x4a038805, 0x000000f0, 0x050df81d, 0x0509fc41,
+ 0x1c01f000, 0x4803c856, 0x42006000, 0xbf7fffff,
+ 0x42006800, 0x00400000, 0x0501fd7c, 0x05e5fc96,
+ 0x64075041, 0x42001000, 0x001053a5, 0x0515fc08,
+ 0x0501fcd6, 0x6140080f, 0x42001000, 0x00105303,
+ 0x0515f570, 0x59a800bb, 0x90000594, 0x0502001e,
+ 0x4803c857, 0x42006000, 0xffbfffff, 0x41786800,
+ 0x0501fd6a, 0x59c40004, 0x90000503, 0x05020016,
+ 0x42001000, 0x00105303, 0x0515fbe5, 0x59cc1006,
+ 0x82081580, 0x11020000, 0x05020010, 0x59cc1007,
+ 0x8c08053e, 0x0500000a, 0x59a80046, 0x8c000504,
+ 0x05020007, 0x42000000, 0x0011233e, 0x0545f860,
+ 0x59a80046, 0x84000544, 0x48035046, 0x64435041,
+ 0x0501f0dd, 0x1c01f000, 0x0501f3fb, 0x4803c856,
+ 0x640f5041, 0x42006000, 0xbf3fffff, 0x42006800,
+ 0x00100000, 0x0501fd49, 0x42001000, 0x001053a5,
+ 0x0515fbd7, 0x0501fca5, 0x42001000, 0x00105303,
+ 0x0515fbc3, 0x59a8044c, 0x90000528, 0x05000004,
+ 0x42000800, 0xffffd815, 0x05edf85f, 0x05e9fbc0,
+ 0x42007800, 0x0011200b, 0x46007800, 0x11020000,
+ 0x60140800, 0x0501f40e, 0x59a800bb, 0x80000540,
+ 0x0500001a, 0x4803c857, 0x42001000, 0x00105303,
+ 0x0515fbaf, 0x59a800bb, 0x90000594, 0x05020014,
+ 0x59cc1006, 0x82081580, 0x11020000, 0x05020010,
+ 0x59cc1007, 0x8c08053e, 0x0500000a, 0x59a80046,
+ 0x8c000504, 0x05020007, 0x42000000, 0x0011233e,
+ 0x0545f827, 0x59a80046, 0x84000544, 0x48035046,
+ 0x64135041, 0x0501f003, 0x1c01f000, 0x0501f3c2,
+ 0x4803c856, 0x64175041, 0x0501f118, 0x4c5c0000,
+ 0x6004b800, 0x0501f0ee, 0x4803c856, 0x641f5041,
+ 0x0501f1b1, 0x4c5c0000, 0x6004b800, 0x0501f187,
+ 0x4803c856, 0x64275041, 0x91cca406, 0x4200a800,
+ 0x0011200b, 0x6014b000, 0x0545f8d8, 0x42007800,
+ 0x0011200b, 0x46007800, 0x11050100, 0x8d0c0506,
+ 0x05000244, 0x60140800, 0x0501fbd5, 0x4d3c0000,
+ 0x60067800, 0x0535fc79, 0x5c027800, 0x1c01f000,
+ 0x4c5c0000, 0x6004b800, 0x0501f1e6, 0x4803c856,
+ 0x642f5041, 0x42001000, 0x0011200c, 0x4008a800,
+ 0x6080b000, 0x4600a800, 0xffffffff, 0x8054a800,
+ 0x8058b040, 0x05fe07fc, 0x42007800, 0x0011200b,
+ 0x46007800, 0x11060000, 0x8d0c0506, 0x05000005,
+ 0x50080000, 0x46001000, 0x00ffffff, 0x0501f03e,
+ 0x42024800, 0x001124b6, 0x0545f901, 0x40083000,
+ 0x41782800, 0x41781800, 0x41782000, 0x59240200,
+ 0x8c000500, 0x05000012, 0x8c000502, 0x05000010,
+ 0x801429c0, 0x05020002, 0x800c1800, 0x80142800,
+ 0x59244408, 0x82204500, 0x000000ff, 0x400c0000,
+ 0x50182000, 0x0c01f810, 0x80102540, 0x44103000,
+ 0x800c19c0, 0x05020002, 0x80183000, 0x91264c0d,
+ 0x8058b040, 0x05fe07ea, 0x50080000, 0x82000500,
+ 0x00ffffff, 0x801428f0, 0x80140540, 0x44001000,
+ 0x0501f019, 0x00104f99, 0x00104f9e, 0x00104fa3,
+ 0x00104fa8, 0x802000f0, 0x82102500, 0x00ffffff,
+ 0x800c1800, 0x1c01f000, 0x802000e0, 0x82102500,
+ 0xff00ffff, 0x800c1800, 0x1c01f000, 0x802000d0,
+ 0x82102500, 0xffff00ff, 0x800c1800, 0x1c01f000,
+ 0x40200000, 0x82102500, 0xffffff00, 0x41781800,
+ 0x1c01f000, 0x60840800, 0x0501f379, 0x4c5c0000,
+ 0x6004b800, 0x0501f224, 0x4803c856, 0x64375041,
+ 0x91cca406, 0x4200a800, 0x0011200b, 0x6084b000,
+ 0x0545f86a, 0x42007800, 0x0011200b, 0x46007800,
+ 0x11070000, 0x60840800, 0x0501f369, 0x4c5c0000,
+ 0x6004b800, 0x0501f274, 0x4803c856, 0x90040d41,
+ 0x0501fc96, 0x643f5041, 0x497b50bb, 0x42006000,
+ 0xffffffff, 0x42006800, 0x00300000, 0x0501fc83,
+ 0x42006000, 0xffdfffff, 0x41786800, 0x0501fc7f,
+ 0x6140080f, 0x42001000, 0x00105303, 0x0515f2d0,
+ 0x4803c856, 0x59a800bb, 0x80000540, 0x05020322,
+ 0x1c01f000, 0x4803c856, 0x64475041, 0x91cca406,
+ 0x4200a800, 0x0011200b, 0x6014b000, 0x0545f843,
+ 0x4200a800, 0x0011200b, 0x4600a800, 0x11020000,
+ 0x8d0c0506, 0x05020041, 0x59a80c4c, 0x82040580,
+ 0x0000ffff, 0x0500003d, 0x90040d30, 0x05000005,
+ 0x42000800, 0xffffd815, 0x05e9ff83, 0x0501f037,
+ 0x59cc0007, 0x8c00053c, 0x05000034, 0x42024800,
+ 0x001124b6, 0x0545f87e, 0x59240200, 0xb0000d23,
+ 0xb0040da3, 0x05020021, 0x59240a08, 0x42001000,
+ 0x0011200c, 0x0501fab7, 0x05000009, 0x59240c08,
+ 0x05e5fb81, 0x59240200, 0x84000502, 0x84000518,
+ 0x84000544, 0x48024a00, 0x0501f014, 0x59240200,
+ 0x82000540, 0x00001006, 0x84000506, 0x48024a00,
+ 0x48064a08, 0x82042c00, 0x001028fb, 0x50142800,
+ 0x82142d00, 0x000000ff, 0x48164c08, 0x59240005,
+ 0x82000500, 0x00ffff00, 0x80140d40, 0x48064805,
+ 0x40140800, 0x05e5fb59, 0x91264c0d, 0x8058b040,
+ 0x05fe07da, 0x42024800, 0x001124b6, 0x59242a00,
+ 0x8c140502, 0x05000005, 0x8c140500, 0x05000003,
+ 0x59242c08, 0x48175040, 0x05e9faad, 0x60140800,
+ 0x0501f2ff, 0x4c5c0000, 0x4178b800, 0x59a800bb,
0x80000540, 0x05000021, 0x4803c857, 0x42001000,
- 0x0010510c, 0x0511ffdc, 0x59a800b6, 0x90000594,
- 0x05020019, 0x59cc1006, 0x82081580, 0x11040000,
+ 0x00105303, 0x0515fa9e, 0x59a800bb, 0x90000594,
+ 0x05020019, 0x59cc1006, 0x82081580, 0x11030000,
0x05020015, 0x59cc1007, 0x8c08053e, 0x0500000a,
- 0x59a80043, 0x8c000504, 0x05020007, 0x42000000,
- 0x0010e39d, 0x0541f8f3, 0x59a80043, 0x84000544,
- 0x48035043, 0x805cb9c0, 0x05000004, 0x6423503e,
- 0x05fdfe5e, 0x0501f005, 0x6453503e, 0x0501f805,
- 0x0501f002, 0x0501fa0d, 0x5c00b800, 0x1c01f000,
- 0x4803c856, 0x6457503e, 0x91cca407, 0x4200a800,
- 0x0010e072, 0x6010b000, 0x0541f9a9, 0x4200a800,
- 0x0010e071, 0x4600a800, 0x11040000, 0x8d0c0506,
- 0x05020041, 0x42024800, 0x0010e512, 0x0541f9f1,
- 0x59240400, 0x8c000500, 0x0500002f, 0x59240200,
- 0x8c000500, 0x0500002c, 0x8c000502, 0x0502002a,
- 0x59240c00, 0x80040910, 0x82040d00, 0x000000ff,
- 0x42001000, 0x0010e072, 0x0501f9a7, 0x05000010,
+ 0x59a80046, 0x8c000504, 0x05020007, 0x42000000,
+ 0x0011233e, 0x0541ff16, 0x59a80046, 0x84000544,
+ 0x48035046, 0x805cb9c0, 0x05000004, 0x641b5041,
+ 0x05fdfef6, 0x0501f005, 0x644b5041, 0x0501f805,
+ 0x0501f002, 0x0501faac, 0x5c00b800, 0x1c01f000,
+ 0x4803c856, 0x644f5041, 0x91cca407, 0x4200a800,
+ 0x0011200c, 0x6010b000, 0x0541ffcc, 0x4200a800,
+ 0x0011200b, 0x4600a800, 0x11030000, 0x8d0c0506,
+ 0x0502006a, 0x42024800, 0x001124b6, 0x0545f814,
+ 0x4c600000, 0x4178c000, 0x59a8024c, 0x82000500,
+ 0xfffffffc, 0x4803524c, 0x59240200, 0x40000800,
+ 0x82040d00, 0xfffffb17, 0x48064a00, 0x8c000500,
+ 0x05000048, 0x8c000518, 0x05020046, 0x8c000502,
+ 0x05020004, 0x59240400, 0x8c000502, 0x05000041,
+ 0x59240a08, 0x42001000, 0x0011200c, 0x0501fa3d,
+ 0x0500002b, 0x59240005, 0x82000500, 0x00ffff00,
+ 0x48024805, 0x59240200, 0x8c000502, 0x05000019,
+ 0x59240207, 0x82000500, 0x0000ffff, 0x05000015,
+ 0x8060c000, 0x59240c08, 0x05e5fafb, 0x4c640000,
+ 0x4c580000, 0x4d2c0000, 0x5924c809, 0x6040b000,
+ 0x50640000, 0x800001c0, 0x05000004, 0x4578c800,
+ 0x40025800, 0x05ddf938, 0x8064c800, 0x8058b040,
+ 0x05fe07f8, 0x5c025800, 0x5c00b000, 0x5c00c800,
+ 0x59240200, 0x84000502, 0x84000544, 0x48024a00,
+ 0x59240400, 0x8c000504, 0x05000016, 0x59240200,
+ 0x84000546, 0x48024a00, 0x0501f012, 0x59240200,
+ 0x90000546, 0x84000506, 0x48024a00, 0x82042c00,
+ 0x001028fb, 0x50142800, 0x82142d00, 0x000000ff,
+ 0x48164c08, 0x59240005, 0x82000500, 0x00ffff00,
+ 0x80140d40, 0x48064805, 0x40140800, 0x05e5fabf,
+ 0x59240200, 0x84000518, 0x48024a00, 0x91264c0d,
+ 0x8058b040, 0x05fe07ad, 0x8060c1c0, 0x05020b0b,
+ 0x5c00c000, 0x42024800, 0x001124b6, 0x59242a00,
+ 0x8c140502, 0x05000005, 0x8c140500, 0x05000003,
+ 0x59242c08, 0x48175040, 0x60140800, 0x0501f260,
+ 0x4c5c0000, 0x4178b800, 0x59a800bb, 0x80000540,
+ 0x05000021, 0x4803c857, 0x42001000, 0x00105303,
+ 0x0515f9ff, 0x59a800bb, 0x90000594, 0x05020019,
+ 0x59cc1006, 0x82081580, 0x11040000, 0x05020015,
+ 0x59cc1007, 0x8c08053e, 0x0500000a, 0x59a80046,
+ 0x8c000504, 0x05020007, 0x42000000, 0x0011233e,
+ 0x0541fe77, 0x59a80046, 0x84000544, 0x48035046,
+ 0x805cb9c0, 0x05000004, 0x64235041, 0x05fdfe5d,
+ 0x0501f005, 0x64535041, 0x0501f805, 0x0501f002,
+ 0x0501fa0d, 0x5c00b800, 0x1c01f000, 0x4803c856,
+ 0x64575041, 0x91cca407, 0x4200a800, 0x0011200c,
+ 0x6010b000, 0x0541ff2d, 0x4200a800, 0x0011200b,
+ 0x4600a800, 0x11040000, 0x8d0c0506, 0x05020041,
+ 0x42024800, 0x001124b6, 0x0541ff75, 0x59240400,
+ 0x8c000500, 0x0500002f, 0x59240200, 0x8c000500,
+ 0x0500002c, 0x8c000502, 0x0502002a, 0x59240c00,
+ 0x80040910, 0x82040d00, 0x000000ff, 0x42001000,
+ 0x0011200c, 0x0501f9a7, 0x05000010, 0x59240005,
+ 0x82000500, 0x00ffff00, 0x48024805, 0x59240200,
+ 0x84000502, 0x48024a00, 0x59242400, 0x8c100504,
+ 0x05000018, 0x84000546, 0x84000544, 0x48024a00,
+ 0x8060c000, 0x0501f013, 0x59240200, 0x90000546,
+ 0x84000506, 0x48024a00, 0x48064a08, 0x82042c00,
+ 0x001028fb, 0x50142800, 0x82142d00, 0x000000ff,
+ 0x48164c08, 0x59240005, 0x82000500, 0x00ffff00,
+ 0x80140d40, 0x48064805, 0x40140800, 0x05e5fa43,
+ 0x91264c0d, 0x8058b040, 0x05fe07cd, 0x42024800,
+ 0x001124b6, 0x59242a00, 0x8c140502, 0x05000005,
+ 0x8c140500, 0x05000003, 0x59242c08, 0x48175040,
+ 0x60140800, 0x0501f1ea, 0x4c5c0000, 0x4178b800,
+ 0x59a800bb, 0x80000540, 0x05000040, 0x4803c857,
+ 0x42001000, 0x00105303, 0x0515f989, 0x59a800bb,
+ 0x90000594, 0x05020038, 0x59cc1006, 0x82080500,
+ 0x11050000, 0x82000580, 0x11050000, 0x05020032,
+ 0x8c080510, 0x05000013, 0x0501fb08, 0x59cc1007,
+ 0x8c08053e, 0x0500000a, 0x59a80046, 0x8c000504,
+ 0x05020007, 0x42000000, 0x0011233e, 0x0541fdfc,
+ 0x59a80046, 0x84000544, 0x48035046, 0x805cb9c0,
+ 0x05000014, 0x642b5041, 0x05fdfdf9, 0x0501f01f,
+ 0x59cc1007, 0x8c08053e, 0x0500000a, 0x59a80046,
+ 0x8c000504, 0x05020007, 0x42000000, 0x0011233e,
+ 0x0541fdeb, 0x59a80046, 0x84000544, 0x48035046,
+ 0x90000541, 0x0501fae9, 0x497b50b7, 0x0501f002,
+ 0x640750b7, 0x59cc1007, 0x8c08053c, 0x05000002,
+ 0x6423524c, 0x805cb9c0, 0x05020004, 0x645b5041,
+ 0x0501f808, 0x0501f005, 0x643b5041, 0x05fdfe43,
+ 0x0501f002, 0x0501f978, 0x5c00b800, 0x1c01f000,
+ 0x4803c856, 0x91cca406, 0x4200a800, 0x0011200b,
+ 0x6014b000, 0x0541fe99, 0x645f5041, 0x59a800b7,
+ 0x8c000500, 0x05000006, 0x42001000, 0x0011200b,
+ 0x46001000, 0x11050100, 0x0501f002, 0x646f5041,
+ 0x8d0c0506, 0x05020037, 0x42024800, 0x001124b6,
+ 0x0541fedb, 0x59240200, 0x8c000500, 0x05000025,
+ 0x8c000502, 0x05020023, 0x8c000506, 0x05020021,
+ 0x4c580000, 0x0501f8c2, 0x5c00b000, 0x0502000b,
0x59240005, 0x82000500, 0x00ffff00, 0x48024805,
- 0x59240200, 0x84000502, 0x48024a00, 0x59242400,
- 0x8c100504, 0x05000018, 0x84000546, 0x84000544,
- 0x48024a00, 0x8060c000, 0x0501f013, 0x59240200,
- 0x90000546, 0x84000506, 0x48024a00, 0x48064a08,
- 0x82042c00, 0x00102853, 0x50142800, 0x82142d00,
- 0x000000ff, 0x48164c08, 0x59240005, 0x82000500,
- 0x00ffff00, 0x80140d40, 0x48064805, 0x40140800,
- 0x05e5fbba, 0x91264c0d, 0x8058b040, 0x05fe07cd,
- 0x42024800, 0x0010e512, 0x59242a00, 0x8c140502,
- 0x05000005, 0x8c140500, 0x05000003, 0x59242c08,
- 0x4817503d, 0x60140800, 0x0501f1ea, 0x4c5c0000,
- 0x4178b800, 0x59a800b6, 0x80000540, 0x05000040,
- 0x4803c857, 0x42001000, 0x0010510c, 0x0511ff66,
- 0x59a800b6, 0x90000594, 0x05020038, 0x59cc1006,
- 0x82080500, 0x11050000, 0x82000580, 0x11050000,
- 0x05020032, 0x8c080510, 0x05000013, 0x0501fb08,
- 0x59cc1007, 0x8c08053e, 0x0500000a, 0x59a80043,
- 0x8c000504, 0x05020007, 0x42000000, 0x0010e39d,
- 0x0541f878, 0x59a80043, 0x84000544, 0x48035043,
- 0x805cb9c0, 0x05000014, 0x642b503e, 0x05fdfdfa,
- 0x0501f01f, 0x59cc1007, 0x8c08053e, 0x0500000a,
- 0x59a80043, 0x8c000504, 0x05020007, 0x42000000,
- 0x0010e39d, 0x0541f867, 0x59a80043, 0x84000544,
- 0x48035043, 0x90000541, 0x0501fae9, 0x497b50b2,
- 0x0501f002, 0x640750b2, 0x59cc1007, 0x8c08053c,
- 0x05000002, 0x64235249, 0x805cb9c0, 0x05020004,
- 0x645b503e, 0x0501f808, 0x0501f005, 0x643b503e,
- 0x05fdfe44, 0x0501f002, 0x0501f978, 0x5c00b800,
- 0x1c01f000, 0x4803c856, 0x91cca406, 0x4200a800,
- 0x0010e071, 0x6014b000, 0x0541f915, 0x645f503e,
- 0x59a800b2, 0x8c000500, 0x05000006, 0x42001000,
- 0x0010e071, 0x46001000, 0x11050100, 0x0501f002,
- 0x646f503e, 0x8d0c0506, 0x05020037, 0x42024800,
- 0x0010e512, 0x0541f957, 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, 0x00102853, 0x50142800, 0x82142d00,
- 0x000000ff, 0x48164c08, 0x59240005, 0x82000500,
- 0x00ffff00, 0x80140d40, 0x48064805, 0x40140800,
- 0x05e5fb2a, 0x91264c0d, 0x8058b040, 0x05fe07d7,
- 0x42024800, 0x0010e512, 0x59242a00, 0x8c140502,
- 0x05000005, 0x8c140500, 0x05000003, 0x59242c08,
- 0x4817503d, 0x60140800, 0x0501f95a, 0x4d3c0000,
- 0x60067800, 0x0531fe4e, 0x5c027800, 0x1c01f000,
- 0x4c5c0000, 0x4178b800, 0x59a800b6, 0x80000540,
- 0x05000018, 0x4803c857, 0x42001000, 0x0010510c,
- 0x0511fed1, 0x59a800b6, 0x82000580, 0x00000084,
- 0x0502000f, 0x59cc1006, 0x82081580, 0x11060000,
- 0x0502000b, 0x80000580, 0x0501fa75, 0x805cb9c0,
- 0x05000004, 0x6433503e, 0x05fdfdca, 0x0501f005,
- 0x6463503e, 0x0501f805, 0x0501f002, 0x0501f90b,
- 0x5c00b800, 0x1c01f000, 0x4803c856, 0x6467503e,
- 0x91cca406, 0x4200a800, 0x0010e071, 0x6084b000,
- 0x0541f8a7, 0x42003800, 0x0010e072, 0x42024800,
- 0x0010e512, 0x4200b000, 0x0010e511, 0x5058b000,
- 0x59240200, 0x8c000500, 0x05000019, 0x8c000502,
- 0x05000017, 0x401c2800, 0x50141000, 0x80080130,
- 0x80000000, 0x40001800, 0x82081500, 0x00ffffff,
- 0x800000f0, 0x80080540, 0x44002800, 0x59244408,
- 0x82204500, 0x000000ff, 0x400c1000, 0x80081104,
- 0x82083400, 0x0010e072, 0x50181000, 0x900c0503,
- 0x0c01f808, 0x80081540, 0x44083000, 0x91264c0d,
- 0x8058b040, 0x05fe07e3, 0x60840800, 0x0501f109,
- 0x0010502c, 0x00105030, 0x00105034, 0x00105038,
- 0x802000f0, 0x82081500, 0x00ffffff, 0x1c01f000,
- 0x802000e0, 0x82081500, 0xff00ffff, 0x1c01f000,
- 0x802000d0, 0x82081500, 0xffff00ff, 0x1c01f000,
- 0x40200000, 0x82081500, 0xffffff00, 0x1c01f000,
- 0x4c5c0000, 0x4178b800, 0x59a800b6, 0x80000540,
- 0x05000018, 0x4803c857, 0x42001000, 0x0010510c,
- 0x0511fe71, 0x59a800b6, 0x82000580, 0x00000084,
- 0x0502000f, 0x59cc1006, 0x82081580, 0x11070000,
- 0x0502000b, 0x640750b2, 0x0501f897, 0x805cb9c0,
- 0x05000004, 0x643b503e, 0x05fdfd7a, 0x0501f005,
- 0x646b503e, 0x0501f805, 0x0501f002, 0x0501f8ab,
- 0x5c00b800, 0x1c01f000, 0x90000541, 0x0501fa08,
- 0x646f503e, 0x91cca406, 0x4200a800, 0x0010e071,
- 0x59a820b6, 0x40100000, 0x8000b104, 0x40580800,
- 0x5450a800, 0x8050a000, 0x8054a800, 0x8058b040,
- 0x05fe07fc, 0x0501f0c7, 0x1c01f000, 0x1c01f000,
- 0x4803c856, 0x60103000, 0x42004000, 0x0010e072,
- 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,
+ 0x59240200, 0x84000502, 0x84000546, 0x84000544,
+ 0x48024a00, 0x0501f013, 0x59240200, 0x90000546,
+ 0x84000506, 0x48024a00, 0x48064a08, 0x82042c00,
+ 0x001028fb, 0x50142800, 0x82142d00, 0x000000ff,
+ 0x48164c08, 0x59240005, 0x82000500, 0x00ffff00,
+ 0x80140d40, 0x48064805, 0x40140800, 0x05e5f9b3,
+ 0x91264c0d, 0x8058b040, 0x05fe07d7, 0x42024800,
+ 0x001124b6, 0x59242a00, 0x8c140502, 0x05000005,
+ 0x8c140500, 0x05000003, 0x59242c08, 0x48175040,
+ 0x60140800, 0x0501f95a, 0x4d3c0000, 0x60067800,
+ 0x0535f9fe, 0x5c027800, 0x1c01f000, 0x4c5c0000,
+ 0x4178b800, 0x59a800bb, 0x80000540, 0x05000018,
+ 0x4803c857, 0x42001000, 0x00105303, 0x0515f8f4,
+ 0x59a800bb, 0x82000580, 0x00000084, 0x0502000f,
+ 0x59cc1006, 0x82081580, 0x11060000, 0x0502000b,
+ 0x80000580, 0x0501fa75, 0x805cb9c0, 0x05000004,
+ 0x64335041, 0x05fdfdc9, 0x0501f005, 0x64635041,
+ 0x0501f805, 0x0501f002, 0x0501f90b, 0x5c00b800,
+ 0x1c01f000, 0x4803c856, 0x64675041, 0x91cca406,
+ 0x4200a800, 0x0011200b, 0x6084b000, 0x0541fe2b,
+ 0x42003800, 0x0011200c, 0x42024800, 0x001124b6,
+ 0x4200b000, 0x001124b5, 0x5058b000, 0x59240200,
+ 0x8c000500, 0x05000019, 0x8c000502, 0x05000017,
+ 0x401c2800, 0x50141000, 0x80080130, 0x80000000,
+ 0x40001800, 0x82081500, 0x00ffffff, 0x800000f0,
+ 0x80080540, 0x44002800, 0x59244408, 0x82204500,
+ 0x000000ff, 0x400c1000, 0x80081104, 0x82083400,
+ 0x0011200c, 0x50181000, 0x900c0503, 0x0c01f808,
+ 0x80081540, 0x44083000, 0x91264c0d, 0x8058b040,
+ 0x05fe07e3, 0x60840800, 0x0501f109, 0x00105223,
+ 0x00105227, 0x0010522b, 0x0010522f, 0x802000f0,
+ 0x82081500, 0x00ffffff, 0x1c01f000, 0x802000e0,
+ 0x82081500, 0xff00ffff, 0x1c01f000, 0x802000d0,
+ 0x82081500, 0xffff00ff, 0x1c01f000, 0x40200000,
+ 0x82081500, 0xffffff00, 0x1c01f000, 0x4c5c0000,
+ 0x4178b800, 0x59a800bb, 0x80000540, 0x05000018,
+ 0x4803c857, 0x42001000, 0x00105303, 0x0515f894,
+ 0x59a800bb, 0x82000580, 0x00000084, 0x0502000f,
+ 0x59cc1006, 0x82081580, 0x11070000, 0x0502000b,
+ 0x640750b7, 0x0501f897, 0x805cb9c0, 0x05000004,
+ 0x643b5041, 0x05fdfd79, 0x0501f005, 0x646b5041,
+ 0x0501f805, 0x0501f002, 0x0501f8ab, 0x5c00b800,
+ 0x1c01f000, 0x90000541, 0x0501fa08, 0x646f5041,
+ 0x91cca406, 0x4200a800, 0x0011200b, 0x59a820bb,
+ 0x40100000, 0x8000b104, 0x40580800, 0x5450a800,
+ 0x8050a000, 0x8054a800, 0x8058b040, 0x05fe07fc,
+ 0x0501f0c7, 0x1c01f000, 0x1c01f000, 0x4803c856,
+ 0x60103000, 0x42004000, 0x0011200c, 0x599c2817,
+ 0x8c140514, 0x0502001c, 0x600c1000, 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, 0x59a80043, 0x84000540, 0x48035043,
- 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, 0x59a80043, 0x84000540,
- 0x48035043, 0x80000580, 0x1c01f000, 0x4807c856,
- 0x605c1100, 0x59a81864, 0x053dff04, 0x05f9fef9,
- 0x1c01f000, 0x4807c856, 0x6080b000, 0x91cca407,
- 0x4200a800, 0x00110258, 0x053df7f8, 0x4807c856,
- 0x0519ff69, 0x61dc0801, 0x0501f8d4, 0x497b2804,
- 0x497b2805, 0x497b2826, 0x497b2827, 0x6006d800,
- 0x42006000, 0xbe7fffff, 0x42006800, 0x00018000,
- 0x0501f95f, 0x42006000, 0xfffeffff, 0x41786800,
- 0x0501f95b, 0x497b5064, 0x60b40800, 0x42001000,
- 0x00105184, 0x0511f588, 0x4807c856, 0x05fdffe8,
- 0x497b503e, 0x497b50b6, 0x1c01f000, 0x4807c856,
- 0x42006000, 0xffffffff, 0x60a06800, 0x0501f14c,
- 0x4807c856, 0x05fdffd2, 0x0519fc05, 0x4df00000,
- 0x0519fe92, 0x5c03e000, 0x05180bf2, 0x59c400a4,
- 0x9000050f, 0x90000582, 0x0502000a, 0x42006000,
- 0xffffffff, 0x42006800, 0x00200000, 0x0501f93c,
- 0x42006000, 0xffdfffff, 0x41786800, 0x0501f938,
- 0x497b503e, 0x61dc0801, 0x0501f8a0, 0x59c400a3,
- 0x82000500, 0xbf20bfff, 0x82000540, 0x0001c000,
- 0x480388a3, 0x84000520, 0x480388a3, 0x497b5064,
- 0x60b40800, 0x42001000, 0x00105184, 0x0511f55a,
- 0x497b50b6, 0x59b400f5, 0x8c000500, 0x05020003,
- 0x90000541, 0x480368f5, 0x800400c4, 0x82000400,
- 0x00002000, 0x4803910a, 0x59b400f6, 0x90000518,
- 0x05fe07fe, 0x4a0368f0, 0x0010e06a, 0x42000000,
- 0x0010e071, 0x4c040000, 0x40043800, 0x50000800,
- 0x82040d80, 0x11010000, 0x0500000c, 0x50000800,
- 0x4807c857, 0x8d0c052a, 0x05000008, 0x4c000000,
- 0x821c3d40, 0x0000dc00, 0x42000000, 0x0010e06b,
- 0x05d9fda3, 0x5c000000, 0x5c000800, 0x480368f1,
- 0x82040400, 0x0000dc00, 0x480368f3, 0x59c408a4,
- 0x90040d0f, 0x90040588, 0x05020013, 0x4c5c0000,
- 0x4c600000, 0x59c4b805, 0x8c5c053a, 0x05020004,
- 0x42000000, 0x0010e39a, 0x053dfe7a, 0x4a038805,
- 0x20000000, 0x05e5fd27, 0x4000c000, 0x05e5fc6e,
- 0x6006d800, 0x497b503e, 0x5c00c000, 0x5c00b800,
- 0x1c01f000, 0x9004058c, 0x05000015, 0x59c8010b,
- 0x8c000502, 0x05fc07e6, 0x90040d8b, 0x05020005,
- 0x59a8083e, 0x82040d40, 0x00002000, 0x0501f004,
- 0x59a808b1, 0x82040d40, 0x00001000, 0x48075064,
- 0x59a808bc, 0x800409c0, 0x05020005, 0x6140080f,
- 0x42001000, 0x0010510c, 0x0511fe66, 0x1c01f000,
- 0x4807c856, 0x05fdff5a, 0x0519fb8d, 0x4df00000,
- 0x0519fe1a, 0x5c03e000, 0x05180b7a, 0x59c400a4,
- 0x9000050f, 0x90000582, 0x0502000a, 0x42006000,
- 0xffffffff, 0x42006800, 0x00200000, 0x0501f8c4,
- 0x42006000, 0xffdfffff, 0x41786800, 0x0501f8c0,
- 0x0505ff1c, 0x05000010, 0x0505ff26, 0x0502000e,
- 0x4a035041, 0x0000aaaa, 0x4c040000, 0x05e5f98f,
- 0x59a8004d, 0x82000500, 0xffff0000, 0x80040540,
- 0x4803504d, 0x5c000800, 0x64035042, 0x0505fe8a,
- 0x0501f005, 0x641750b4, 0x60000001, 0x05e5f8d9,
- 0x05fdff3f, 0x1c01f000, 0x0501f809, 0x42006000,
- 0xbf7f7fff, 0x41786800, 0x0501f0a5, 0x42006000,
- 0xbf7f7fff, 0x41786800, 0x0501f0a1, 0x0505ff09,
- 0x05020009, 0x59c40006, 0x82000540, 0x000000f0,
- 0x48038806, 0x42006000, 0xbfffffff, 0x41786800,
- 0x0501f897, 0x1c01f000, 0x800408d0, 0x59a80043,
- 0x8c000506, 0x05000006, 0x59a8003d, 0x82000500,
- 0x000000ff, 0x80040540, 0x0501f003, 0x82040540,
- 0x000000f7, 0x480388a7, 0x1c01f000, 0x4807c856,
- 0x42000000, 0x0010e432, 0x053dfe0a, 0x60143000,
- 0x4d3c0000, 0x4c180000, 0x60343000, 0x600a7800,
- 0x0501f04f, 0x4807c856, 0x42000000, 0x0010e45c,
- 0x053dfe00, 0x60003000, 0x4d3c0000, 0x4c180000,
- 0x603c3000, 0x61fc19ff, 0x601c2000, 0x05f9fe65,
- 0x5c003000, 0x59240200, 0x84000556, 0x48024a00,
- 0x4d400000, 0x60aa8000, 0x59240400, 0x8c00050a,
- 0x05380dbd, 0x600a7800, 0x05e9fc77, 0x5c028000,
- 0x5c027800, 0x0005f7dc, 0x4807c856, 0x053dff38,
- 0x0500000b, 0x4d400000, 0x4d200000, 0x05e9fc20,
- 0x60068000, 0x60001802, 0x600c2800, 0x60040000,
- 0x0505fc54, 0x5c024000, 0x5c028000, 0x42000000,
- 0x0010e45a, 0x053dfddb, 0x600c3000, 0x4d3c0000,
- 0x4c180000, 0x60383000, 0x600a7804, 0x0501f020,
- 0x4807c856, 0x053dff22, 0x0500000b, 0x4d400000,
- 0x4d200000, 0x05e9fc0a, 0x60068000, 0x60001802,
- 0x60402800, 0x60040000, 0x0505fc3e, 0x5c024000,
- 0x5c028000, 0x42000000, 0x0010e459, 0x053dfdc5,
- 0x60103000, 0x4d3c0000, 0x4c180000, 0x60403000,
- 0x600a7804, 0x0501f00a, 0x4807c856, 0x42000000,
- 0x0010e39c, 0x053dfdbb, 0x60043000, 0x4d3c0000,
- 0x4c180000, 0x60303000, 0x600a7800, 0x61fc19ff,
- 0x601c2000, 0x4d200000, 0x417a4000, 0x05f9fe1d,
- 0x5c024000, 0x5c003000, 0x4d400000, 0x053dfb65,
- 0x60aa8000, 0x05e9f8a1, 0x4c580000, 0x053dfec5,
- 0x42000800, 0x0010e512, 0x58040005, 0x82000500,
- 0x000000ff, 0x48000805, 0x90040c0d, 0x8058b040,
- 0x05fe07fa, 0x5c00b000, 0x5c028000, 0x5c027800,
- 0x1c01f000, 0x4807c856, 0x05011000, 0x4a03c840,
- 0x0010e06a, 0x6503c842, 0x40000000, 0x05fd17ff,
- 0x42007800, 0x0010e06a, 0x64447800, 0x803c7800,
- 0x4a007800, 0x220000ef, 0x4a007801, 0x000000ef,
- 0x4a007802, 0x01380000, 0x64007803, 0x4a007804,
- 0xffffffff, 0x64007805, 0x1c01f000, 0x59c400a3,
- 0x80300500, 0x80340540, 0x480388a3, 0x1c01f000,
- 0x4833c857, 0x59c400a3, 0x80300540, 0x480388a3,
- 0x80300580, 0x480388a3, 0x1c01f000, 0x4803c856,
- 0x05000003, 0x640750bd, 0x0501f002, 0x497b50bd,
- 0x1c01f000, 0x59c80002, 0x80000540, 0x05000009,
- 0x80000040, 0x05000007, 0x4a039005, 0x00000140,
- 0x60300000, 0x80000040, 0x05fe07ff, 0x05fdf7f6,
- 0x1c01f000, 0x4c5c0000, 0x4c600000, 0x59c4b805,
- 0x485fc856, 0x8c5c053a, 0x05020004, 0x42000000,
- 0x0010e39a, 0x053dfd5f, 0x4a038805, 0x20000000,
- 0x05e5fc0c, 0x4000c000, 0x05e5fb53, 0x4a038805,
- 0x04000000, 0x5c00c000, 0x5c00b800, 0x1c01f000,
- 0x497a6a00, 0x0501faf4, 0x4a026c00, 0x00000707,
- 0x497a6801, 0x497a6808, 0x497a6809, 0x497a6806,
- 0x497a6807, 0x497a6c0b, 0x497a680c, 0x59240400,
- 0x8c00050a, 0x05000005, 0x5934080f, 0x59340010,
- 0x80040540, 0x05da0b41, 0x4a026a04, 0x00000100,
- 0x497a6a03, 0x59340402, 0x82000500, 0x000000ff,
- 0x48026c02, 0x497a6c04, 0x497a6a05, 0x497a6c05,
- 0x497a6811, 0x4d2c0000, 0x5934000d, 0x49466c03,
- 0x80025d40, 0x05000003, 0x05d9fef1, 0x497a680d,
- 0x5c025800, 0x599c0401, 0x48026a0b, 0x599c0208,
- 0x48026c12, 0x4a02680a, 0x00008000, 0x0505f1fb,
- 0x60140000, 0x80000d80, 0x0501f024, 0x0501ff90,
- 0x05020013, 0x59a80249, 0x8c00050a, 0x0502000d,
- 0x59340212, 0x82000500, 0x0000ff00, 0x4803c857,
- 0x05000008, 0x59340a00, 0x8c04051e, 0x000002be,
- 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,
- 0x0501ff45, 0x05fe07ea, 0x59340200, 0x8c00050e,
- 0x05fc07e7, 0x0001f2be, 0x4d480000, 0x4d4c0000,
- 0x592e900c, 0x592e980d, 0x0501fc9f, 0x5c029800,
- 0x5c029000, 0x05fc07c7, 0x0001f2c1, 0x492fc857,
- 0x592e8c0a, 0x83440d80, 0x000007fc, 0x05000004,
- 0x83440480, 0x000007f0, 0x05021018, 0x592e440b,
- 0x050df861, 0x05000f80, 0x05020014, 0x0509ff48,
- 0x05020012, 0x0501ff34, 0x05020012, 0x0521f904,
- 0x05000019, 0x83200400, 0x0010d17b, 0x50024800,
- 0x4926601d, 0x59340002, 0x4802600b, 0x4936600a,
- 0x492e6009, 0x642a6407, 0x61027000, 0x0009f800,
- 0x80000580, 0x0501f00b, 0x60a00000, 0x0501f008,
- 0x0501ff37, 0x05fc07fd, 0x910c0d03, 0x05000003,
- 0x60100000, 0x0501f002, 0x60a40000, 0x80000540,
- 0x1c01f000, 0x60b00000, 0x05fdf7fd, 0x492fc857,
- 0x592e440b, 0x4923c857, 0x050df83b, 0x592c420b,
- 0x0500000a, 0x60380000, 0x59240a00, 0x8c040500,
- 0x05000198, 0x90200d0f, 0x90040d88, 0x05020195,
- 0x90200d30, 0x05000193, 0x592e8c0a, 0x4947c857,
- 0x83440c80, 0x00000800, 0x60280000, 0x0502118d,
- 0x4823c857, 0x9020050f, 0x0c01f001, 0x00105346,
- 0x001053d9, 0x00105428, 0x00105430, 0x00105438,
- 0x00105343, 0x00105343, 0x00105343, 0x00105442,
- 0x0010549f, 0x001054bb, 0x00105343, 0x00105343,
- 0x00105343, 0x00105343, 0x00105343, 0x4803c857,
- 0x60300000, 0x0501f177, 0x592c100c, 0x82081500,
- 0x00ffffff, 0x0501fdc4, 0x0500002d, 0x4803c857,
- 0x90004d9d, 0x05020016, 0x0509fcb5, 0x59340405,
- 0x4c000000, 0x0501fed4, 0x5c000000, 0x05000004,
- 0x8c20050a, 0x05000022, 0x80000580, 0x44002800,
- 0x59340008, 0x48002802, 0x59340009, 0x48002801,
- 0x59340006, 0x48002804, 0x59340007, 0x48002803,
- 0x6014b000, 0x052dffb9, 0x0501f17d, 0x4803c857,
- 0x90004d9a, 0x05020003, 0x40101000, 0x0501f15a,
- 0x4803c857, 0x90004d9b, 0x05020003, 0x40181000,
- 0x0501f155, 0x4803c857, 0x90004d9f, 0x05000156,
- 0x90004d9c, 0x05000154, 0x90004d99, 0x60280000,
- 0x05000148, 0x60280000, 0x05020159, 0x59a800d1,
- 0x8c000502, 0x05000016, 0x0501feab, 0x05000014,
- 0x59340212, 0x82000500, 0x0000ff00, 0x60401000,
- 0x0502000b, 0x60201000, 0x59a80249, 0x8c000506,
- 0x05020008, 0x59340002, 0x82000500, 0x00ff0000,
- 0x82000580, 0x00ff0000, 0x05000005, 0x0505f924,
- 0x60700000, 0x40181000, 0x05020133, 0x0521f874,
- 0x0500013b, 0x82200500, 0x00000100, 0x0501fe3e,
- 0x4926601d, 0x4936600a, 0x052dfcf9, 0x492e6009,
- 0x64066407, 0x8c20050a, 0x05000004, 0x592c0408,
- 0x8400055c, 0x48025c08, 0x4c200000, 0x4d3c0000,
- 0x60027830, 0x05e5ff8b, 0x5c027800, 0x5c004000,
- 0x592c100c, 0x82081500, 0x00ffffff, 0x59240005,
- 0x80081d80, 0x0502001c, 0x4a026c00, 0x00000404,
- 0x497a6a05, 0x497a6c05, 0x8c20050a, 0x05020006,
- 0x4a026c00, 0x00000606, 0x4a026a05, 0x00002000,
- 0x648a6c05, 0x59240001, 0x59240802, 0x48026806,
- 0x48066807, 0x59240003, 0x59240804, 0x48026808,
- 0x48066809, 0x59a80004, 0x48026a04, 0x0505f90f,
- 0x0005ffdc, 0x592c0408, 0x8400051c, 0x48025c08,
- 0x0501f11b, 0x8c200512, 0x0500000b, 0x599c0018,
+ 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,
+ 0x59a80046, 0x84000540, 0x48035046, 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, 0x59a80046, 0x84000540, 0x48035046,
+ 0x80000580, 0x1c01f000, 0x4807c856, 0x605c1100,
+ 0x59a81867, 0x0541fc88, 0x05f9fe9f, 0x1c01f000,
+ 0x4807c856, 0x6080b000, 0x91cca407, 0x4200a800,
+ 0x001141fc, 0x0541f57c, 0x4807c856, 0x051dfa30,
+ 0x61dc0801, 0x0501f8d4, 0x497b2804, 0x497b2805,
+ 0x497b2826, 0x497b2827, 0x6006d800, 0x42006000,
+ 0xbe7fffff, 0x42006800, 0x00018000, 0x0501f95f,
+ 0x42006000, 0xfffeffff, 0x41786800, 0x0501f95b,
+ 0x497b5067, 0x60b40800, 0x42001000, 0x0010537b,
+ 0x0511f7ab, 0x4807c856, 0x05fdffe8, 0x497b5041,
+ 0x497b50bb, 0x1c01f000, 0x4807c856, 0x42006000,
+ 0xffffffff, 0x60a06800, 0x0501f14c, 0x4807c856,
+ 0x05fdffd2, 0x0519fecc, 0x4df00000, 0x051df959,
+ 0x5c03e000, 0x05180eb9, 0x59c400a4, 0x9000050f,
+ 0x90000582, 0x0502000a, 0x42006000, 0xffffffff,
+ 0x42006800, 0x00200000, 0x0501f93c, 0x42006000,
+ 0xffdfffff, 0x41786800, 0x0501f938, 0x497b5041,
+ 0x61dc0801, 0x0501f8a0, 0x59c400a3, 0x82000500,
+ 0xbf20bfff, 0x82000540, 0x0001c000, 0x480388a3,
+ 0x84000520, 0x480388a3, 0x497b5067, 0x60b40800,
+ 0x42001000, 0x0010537b, 0x0511f77d, 0x497b50bb,
+ 0x59b400f5, 0x8c000500, 0x05020003, 0x90000541,
+ 0x480368f5, 0x800400c4, 0x82000400, 0x00002000,
+ 0x4803910a, 0x59b400f6, 0x90000518, 0x05fe07fe,
+ 0x4a0368f0, 0x00112004, 0x42000000, 0x0011200b,
+ 0x4c040000, 0x40043800, 0x50000800, 0x82040d80,
+ 0x11010000, 0x0500000c, 0x50000800, 0x4807c857,
+ 0x8d0c052a, 0x05000008, 0x4c000000, 0x821c3d40,
+ 0x0000dc00, 0x42000000, 0x00112005, 0x05d9fbdb,
+ 0x5c000000, 0x5c000800, 0x480368f1, 0x82040400,
+ 0x0000dc00, 0x480368f3, 0x59c408a4, 0x90040d0f,
+ 0x90040588, 0x05020013, 0x4c5c0000, 0x4c600000,
+ 0x59c4b805, 0x8c5c053a, 0x05020004, 0x42000000,
+ 0x0011233b, 0x0541fbfe, 0x4a038805, 0x20000000,
+ 0x05e5fbb0, 0x4000c000, 0x05e5faf7, 0x6006d800,
+ 0x497b5041, 0x5c00c000, 0x5c00b800, 0x1c01f000,
+ 0x9004058c, 0x05000015, 0x59c8010b, 0x8c000502,
+ 0x05fc07e6, 0x90040d8b, 0x05020005, 0x59a80841,
+ 0x82040d40, 0x00002000, 0x0501f004, 0x59a808b6,
+ 0x82040d40, 0x00001000, 0x48075067, 0x59a808c1,
+ 0x800409c0, 0x05020005, 0x6140080f, 0x42001000,
+ 0x00105303, 0x0515f8d3, 0x1c01f000, 0x4807c856,
+ 0x05fdff5a, 0x0519fe54, 0x4df00000, 0x051df8e1,
+ 0x5c03e000, 0x05180e41, 0x59c400a4, 0x9000050f,
+ 0x90000582, 0x0502000a, 0x42006000, 0xffffffff,
+ 0x42006800, 0x00200000, 0x0501f8c4, 0x42006000,
+ 0xffdfffff, 0x41786800, 0x0501f8c0, 0x0509f80f,
+ 0x05000010, 0x0509f819, 0x0502000e, 0x4a035044,
+ 0x0000aaaa, 0x4c040000, 0x05e5f818, 0x59a80050,
+ 0x82000500, 0xffff0000, 0x80040540, 0x48035050,
+ 0x5c000800, 0x64035045, 0x0505ff77, 0x0501f005,
+ 0x641750b9, 0x60000001, 0x05e1ff62, 0x05fdff3f,
+ 0x1c01f000, 0x0501f809, 0x42006000, 0xbf7f7fff,
+ 0x41786800, 0x0501f0a5, 0x42006000, 0xbf7f7fff,
+ 0x41786800, 0x0501f0a1, 0x0505fffc, 0x05020009,
+ 0x59c40006, 0x82000540, 0x000000f0, 0x48038806,
+ 0x42006000, 0xbfffffff, 0x41786800, 0x0501f897,
+ 0x1c01f000, 0x800408d0, 0x59a80046, 0x8c000506,
+ 0x05000006, 0x59a80040, 0x82000500, 0x000000ff,
+ 0x80040540, 0x0501f003, 0x82040540, 0x000000f7,
+ 0x480388a7, 0x1c01f000, 0x4807c856, 0x42000000,
+ 0x001123d3, 0x0541fb8e, 0x60143000, 0x4d3c0000,
+ 0x4c180000, 0x60343000, 0x600a7800, 0x0501f04f,
+ 0x4807c856, 0x42000000, 0x00112400, 0x0541fb84,
+ 0x60003000, 0x4d3c0000, 0x4c180000, 0x603c3000,
+ 0x61fc19ff, 0x601c2000, 0x05f9fe0b, 0x5c003000,
+ 0x59240200, 0x84000556, 0x48024a00, 0x4d400000,
+ 0x60aa8000, 0x59240400, 0x8c00050a, 0x053c0b0d,
+ 0x600a7800, 0x05e9fb26, 0x5c028000, 0x5c027800,
+ 0x0009f010, 0x4807c856, 0x0541fcbc, 0x0500000b,
+ 0x4d400000, 0x4d200000, 0x05e9fac5, 0x60068000,
+ 0x60001802, 0x600c2800, 0x60040000, 0x0505fd41,
+ 0x5c024000, 0x5c028000, 0x42000000, 0x001123fe,
+ 0x0541fb5f, 0x600c3000, 0x4d3c0000, 0x4c180000,
+ 0x60383000, 0x600a7804, 0x0501f020, 0x4807c856,
+ 0x0541fca6, 0x0500000b, 0x4d400000, 0x4d200000,
+ 0x05e9faaf, 0x60068000, 0x60001802, 0x60402800,
+ 0x60040000, 0x0505fd2b, 0x5c024000, 0x5c028000,
+ 0x42000000, 0x001123fd, 0x0541fb49, 0x60103000,
+ 0x4d3c0000, 0x4c180000, 0x60403000, 0x600a7804,
+ 0x0501f00a, 0x4807c856, 0x42000000, 0x0011233d,
+ 0x0541fb3f, 0x60043000, 0x4d3c0000, 0x4c180000,
+ 0x60303000, 0x600a7800, 0x61fc19ff, 0x601c2000,
+ 0x4d200000, 0x417a4000, 0x05f9fdc3, 0x5c024000,
+ 0x5c003000, 0x4d400000, 0x0541f8cb, 0x60aa8000,
+ 0x05e5ff3d, 0x4c580000, 0x0541fc49, 0x42000800,
+ 0x001124b6, 0x58040005, 0x82000500, 0x000000ff,
+ 0x48000805, 0x90040c0d, 0x8058b040, 0x05fe07fa,
+ 0x5c00b000, 0x5c028000, 0x5c027800, 0x1c01f000,
+ 0x4807c856, 0x05011000, 0x4a03c840, 0x00112004,
+ 0x6503c842, 0x40000000, 0x05fd17ff, 0x42007800,
+ 0x00112004, 0x64447800, 0x803c7800, 0x4a007800,
+ 0x220000ef, 0x4a007801, 0x000000ef, 0x4a007802,
+ 0x01380000, 0x64007803, 0x4a007804, 0xffffffff,
+ 0x64007805, 0x1c01f000, 0x59c400a3, 0x80300500,
+ 0x80340540, 0x480388a3, 0x1c01f000, 0x4833c857,
+ 0x59c400a3, 0x80300540, 0x480388a3, 0x80300580,
+ 0x480388a3, 0x1c01f000, 0x4803c856, 0x05000003,
+ 0x640750c2, 0x0501f002, 0x497b50c2, 0x1c01f000,
+ 0x59c80002, 0x80000540, 0x05000009, 0x80000040,
+ 0x05000007, 0x4a039005, 0x00000140, 0x60300000,
+ 0x80000040, 0x05fe07ff, 0x05fdf7f6, 0x1c01f000,
+ 0x4c5c0000, 0x4c600000, 0x59c4b805, 0x485fc856,
+ 0x8c5c053a, 0x05020004, 0x42000000, 0x0011233b,
+ 0x0541fae3, 0x4a038805, 0x20000000, 0x05e5fa95,
+ 0x4000c000, 0x05e5f9dc, 0x4a038805, 0x04000000,
+ 0x5c00c000, 0x5c00b800, 0x1c01f000, 0x497a6a00,
+ 0x0501fb37, 0x4a026c00, 0x00000707, 0x497a6801,
+ 0x497a6808, 0x497a6809, 0x497a6806, 0x497a6807,
+ 0x497a6c0b, 0x497a680c, 0x59240400, 0x8c00050a,
+ 0x05000005, 0x5934080f, 0x59340010, 0x80040540,
+ 0x05da0985, 0x4a026a04, 0x00000100, 0x497a6a03,
+ 0x59340402, 0x82000500, 0x000000ff, 0x48026c02,
+ 0x497a6c04, 0x497a6a05, 0x497a6c05, 0x497a6811,
+ 0x4d2c0000, 0x5934000d, 0x49466c03, 0x80025d40,
+ 0x05000003, 0x05d9fd31, 0x497a680d, 0x5c025800,
+ 0x599c0401, 0x48026a0b, 0x599c0208, 0x48026c12,
+ 0x4a02680a, 0x00008000, 0x0505f2d9, 0x60140000,
+ 0x80000d80, 0x0501f024, 0x0505f862, 0x05020013,
+ 0x59a8024c, 0x8c00050a, 0x0502000d, 0x59340212,
+ 0x82000500, 0x0000ff00, 0x4803c857, 0x05000008,
+ 0x59340a00, 0x8c04051e, 0x000002c6, 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, 0x0505f817,
+ 0x05fe07ea, 0x59340200, 0x8c00050e, 0x05fc07e7,
+ 0x0001f2c6, 0x4d480000, 0x4d4c0000, 0x592e900c,
+ 0x592e980d, 0x0501fd12, 0x5c029800, 0x5c029000,
+ 0x05fc07c7, 0x0001f2c9, 0x492fc857, 0x592e8c0a,
+ 0x83440d80, 0x000007fc, 0x0500000c, 0x83440480,
+ 0x000007f0, 0x05001009, 0x83440480, 0x00000800,
+ 0x0500101d, 0x8d0c0538, 0x0500001b, 0x59a800ad,
+ 0x81440480, 0x05021018, 0x592e440b, 0x050df9ca,
+ 0x0504084a, 0x05020014, 0x050df8b1, 0x05020012,
+ 0x0501fffe, 0x05020012, 0x0521fc1a, 0x05000019,
+ 0x83200400, 0x0010d8f9, 0x50024800, 0x4926601d,
+ 0x59340002, 0x4802600b, 0x4936600a, 0x492e6009,
+ 0x642a6407, 0x61027000, 0x0009f839, 0x80000580,
+ 0x0501f00b, 0x60a00000, 0x0501f008, 0x0505f801,
+ 0x05fc07fd, 0x910c0d03, 0x05000003, 0x60100000,
+ 0x0501f002, 0x60a40000, 0x80000540, 0x1c01f000,
+ 0x60b00000, 0x05fdf7fd, 0x492fc857, 0x592e440b,
+ 0x4923c857, 0x050df9a4, 0x592c420b, 0x0500000a,
+ 0x60380000, 0x59240a00, 0x8c040500, 0x050001a8,
+ 0x90200d0f, 0x90040d88, 0x050201a5, 0x90200d30,
+ 0x050001a3, 0x592e8c0a, 0x4947c857, 0x59a800ad,
+ 0x81440480, 0x60280000, 0x0502119d, 0x4823c857,
+ 0x9020050f, 0x0c01f001, 0x00105545, 0x001055e1,
+ 0x00105635, 0x0010563d, 0x00105645, 0x00105542,
+ 0x00105542, 0x00105542, 0x0010564f, 0x001056ae,
+ 0x001056ca, 0x00105542, 0x00105542, 0x00105542,
+ 0x00105542, 0x00105542, 0x4803c857, 0x60300000,
+ 0x0501f187, 0x592c100c, 0x82081500, 0x00ffffff,
+ 0x0501fe37, 0x0500002f, 0x4803c857, 0x90004d9d,
+ 0x05020016, 0x0509fdc9, 0x59340405, 0x4c000000,
+ 0x0501ff9e, 0x5c000000, 0x05000004, 0x8c20050a,
+ 0x05000024, 0x80000580, 0x44002800, 0x59340008,
+ 0x48002802, 0x59340009, 0x48002801, 0x59340006,
+ 0x48002804, 0x59340007, 0x48002803, 0x6014b000,
+ 0x0531fb60, 0x0501f191, 0x4803c857, 0x90004d9a,
+ 0x05020003, 0x40101000, 0x0501f16e, 0x4803c857,
+ 0x90004d9b, 0x05020003, 0x40181000, 0x0501f169,
+ 0x4803c857, 0x90004da0, 0x0500016a, 0x90004d9f,
+ 0x05000168, 0x90004d9c, 0x05000166, 0x90004d99,
+ 0x60280000, 0x05000156, 0x60280000, 0x0502016b,
+ 0x59a800d6, 0x8c000502, 0x05000016, 0x0501ff73,
+ 0x05000014, 0x59340212, 0x82000500, 0x0000ff00,
+ 0x60401000, 0x0502000b, 0x60201000, 0x59a8024c,
+ 0x8c000506, 0x05020008, 0x59340002, 0x82000500,
+ 0x00ff0000, 0x82000580, 0x00ff0000, 0x05000005,
+ 0x0505f9f8, 0x60700000, 0x40181000, 0x05020141,
+ 0x0521fb88, 0x0500014d, 0x82200500, 0x00000100,
+ 0x0501ff02, 0x4926601d, 0x4936600a, 0x0531f890,
+ 0x492e6009, 0x64066407, 0x8c20050a, 0x05000004,
+ 0x592c0408, 0x8400055c, 0x48025c08, 0x4c200000,
+ 0x4d3c0000, 0x60027830, 0x05e5fe21, 0x5c027800,
+ 0x5c004000, 0x592c100c, 0x82081500, 0x00ffffff,
+ 0x59240005, 0x80081d80, 0x0502001c, 0x4a026c00,
+ 0x00000404, 0x497a6a05, 0x497a6c05, 0x8c20050a,
+ 0x05020006, 0x4a026c00, 0x00000606, 0x4a026a05,
+ 0x00002000, 0x648a6c05, 0x59240001, 0x59240802,
+ 0x48026806, 0x48066807, 0x59240003, 0x59240804,
+ 0x48026808, 0x48066809, 0x59a80004, 0x48026a04,
+ 0x0505f9e3, 0x0009f810, 0x592c0408, 0x8400051c,
+ 0x48025c08, 0x0501f12d, 0x8c20050a, 0x05020006,
+ 0x8c200514, 0x05000004, 0x48226216, 0x592c0a0d,
+ 0x4806601e, 0x8c200512, 0x0500000b, 0x599c0018,
0x8c000518, 0x05000008, 0x592c000d, 0x82000500,
0x00000380, 0x5934080a, 0x80040d40, 0x84040d54,
- 0x4806680a, 0x417a7800, 0x0501f911, 0x600c0800,
- 0x0501f919, 0x600a7000, 0x0009f800, 0x80000580,
- 0x0501f10a, 0x0501fea0, 0x050200f5, 0x0501fe50,
- 0x05000009, 0x0501fe48, 0x050200f5, 0x4c600000,
- 0x4178c000, 0x60027830, 0x417a6000, 0x05e5ffc1,
+ 0x4806680a, 0x417a7800, 0x0501f91c, 0x600c0800,
+ 0x0501f924, 0x600a7000, 0x0009f839, 0x80000580,
+ 0x0501f115, 0x0501ff61, 0x05020100, 0x0501ff11,
+ 0x05000009, 0x0501ff09, 0x05020100, 0x4c600000,
+ 0x4178c000, 0x60027830, 0x417a6000, 0x05e5fe50,
0x5c00c000, 0x592c100c, 0x82081500, 0x00ffffff,
0x59240005, 0x80084d80, 0x05020007, 0x4a026c00,
0x00000606, 0x4a026a05, 0x00002000, 0x648a6c05,
- 0x0501f0ef, 0x59a800d1, 0x8c000502, 0x05000016,
- 0x0501fe31, 0x05000014, 0x59340212, 0x82000500,
+ 0x0501f0fa, 0x59a800d6, 0x8c000502, 0x05000016,
+ 0x0501fef2, 0x05000014, 0x59340212, 0x82000500,
0x0000ff00, 0x60401000, 0x0502000b, 0x60201000,
- 0x59a80249, 0x8c000506, 0x05020008, 0x59340002,
+ 0x59a8024c, 0x8c000506, 0x05020008, 0x59340002,
0x82000500, 0x00ff0000, 0x82000580, 0x00ff0000,
- 0x05000005, 0x0505f8aa, 0x60700000, 0x40181000,
- 0x050200b9, 0x051dfffa, 0x050000c1, 0x5934080a,
+ 0x05000005, 0x0505f977, 0x60700000, 0x40181000,
+ 0x050200c0, 0x0521fb07, 0x050000cc, 0x5934080a,
0x8c200512, 0x0500000c, 0x599c0018, 0x8c000518,
0x05000009, 0x592c000d, 0x82000500, 0x00000380,
0x82041500, 0xfffffc7f, 0x80080d40, 0x84040d54,
0x0501f002, 0x84040d14, 0x4806680a, 0x4926601d,
- 0x4936600a, 0x052dfc72, 0x492e6009, 0x64066407,
- 0x417a7800, 0x0501f8c2, 0x60140800, 0x0501f8ca,
- 0x600e7000, 0x0009f800, 0x80000580, 0x0501f0bb,
- 0x0501fe51, 0x050200a6, 0x0501fe10, 0x050200a8,
- 0x052dfe17, 0x0500009e, 0x80000580, 0x0501f0b3,
- 0x0501fe49, 0x0502009e, 0x0501fe08, 0x050200a0,
- 0x052df937, 0x05000096, 0x80000580, 0x0501f0ab,
- 0x0501fe41, 0x05020096, 0x83444d80, 0x000007fe,
- 0x60280000, 0x0502007f, 0x052dfe19, 0x0500008c,
- 0x80000580, 0x0501f0a1, 0xb0200530, 0x05020004,
- 0x8c20050e, 0x60300000, 0x05020076, 0x8c20050a,
- 0x0500000f, 0x4d3c0000, 0x600278a0, 0x8c20050e,
- 0x05020003, 0x853e7d56, 0x853e7d1c, 0x82200500,
- 0x000004a0, 0x42026000, 0x00111a70, 0x492e6009,
- 0x0501fda3, 0x5c027800, 0x0501f089, 0x8c200508,
- 0x0502001a, 0x592c100c, 0x82081500, 0x00ffffff,
- 0x0501fcb1, 0x05000027, 0x4803c857, 0x90004d9a,
- 0x05020003, 0x40101000, 0x0501f05f, 0x4803c857,
- 0x90004d9b, 0x05020003, 0x40181000, 0x0501f05a,
- 0x4803c857, 0x90004d9f, 0x0500005b, 0x90004d9c,
- 0x05000059, 0x90004d99, 0x60280000, 0x0500004d,
- 0x60280000, 0x0501f05e, 0x0501fe07, 0x0502005c,
- 0x4d3c0000, 0x600278a0, 0x8c20050e, 0x05020003,
- 0x853e7d56, 0x853e7d1c, 0x82200500, 0x00000090,
- 0x42026000, 0x00111a70, 0x492e6009, 0x0501fd60,
- 0x5c027800, 0x60280000, 0x0502003a, 0x0501f05c,
- 0x592c100c, 0x82081500, 0x00ffffff, 0x59240005,
- 0x80084d80, 0x05020003, 0x84204548, 0x05fdf7e9,
- 0x916c0583, 0x601c0800, 0x05020005, 0x052dfd6c,
- 0x05000009, 0x80000580, 0x0501f050, 0x42026000,
- 0x00111a70, 0x492e6009, 0x0501fdc8, 0x05000045,
- 0x0501f047, 0x42026000, 0x00111a70, 0x492e6009,
- 0x0501fdc2, 0x0500002e, 0x0501f041, 0x0501fdda,
- 0x0502002f, 0x916c0583, 0x05020036, 0x8c200508,
- 0x05000008, 0x4c600000, 0x4178c000, 0x60027830,
- 0x417a6000, 0x05e5fefb, 0x5c00c000, 0x0501f034,
- 0x0501fd7f, 0x05000009, 0x0501fd77, 0x05020024,
+ 0x4936600a, 0x0531f802, 0x8c200514, 0x05000004,
+ 0x48226216, 0x592c0a0d, 0x4806601e, 0x492e6009,
+ 0x64066407, 0x417a7800, 0x0501f8c8, 0x60140800,
+ 0x0501f8d0, 0x600e7000, 0x0009f839, 0x80000580,
+ 0x0501f0c1, 0x0501ff0d, 0x050200ac, 0x0501fecc,
+ 0x050200ae, 0x0531f9a9, 0x050000a4, 0x80000580,
+ 0x0501f0b9, 0x0501ff05, 0x050200a4, 0x0501fec4,
+ 0x050200a6, 0x052dfcc3, 0x0500009c, 0x80000580,
+ 0x0501f0b1, 0x0501fefd, 0x0502009c, 0x83444d80,
+ 0x000007fe, 0x60280000, 0x05020081, 0x0531f9ab,
+ 0x05000092, 0x80000580, 0x0501f0a7, 0xb0200530,
+ 0x05020004, 0x8c20050e, 0x60300000, 0x05020078,
+ 0x8c20050a, 0x0500000f, 0x4d3c0000, 0x600278a0,
+ 0x8c20050e, 0x05020003, 0x853e7d56, 0x853e7d1c,
+ 0x82200500, 0x000004a0, 0x42026000, 0x00115a14,
+ 0x492e6009, 0x0501fe5b, 0x5c027800, 0x0501f08f,
+ 0x8c200508, 0x0502001c, 0x592c100c, 0x82081500,
+ 0x00ffffff, 0x0501fd16, 0x05000029, 0x4803c857,
+ 0x90004d9a, 0x05020003, 0x40101000, 0x0501f061,
+ 0x4803c857, 0x90004d9b, 0x05020003, 0x40181000,
+ 0x0501f05c, 0x4803c857, 0x90004da0, 0x05000061,
+ 0x90004d9f, 0x0500005f, 0x90004d9c, 0x0500005d,
+ 0x90004d99, 0x60280000, 0x0500004d, 0x60280000,
+ 0x0501f062, 0x0501fec1, 0x05020060, 0x4d3c0000,
+ 0x600278a0, 0x8c20050e, 0x05020003, 0x853e7d56,
+ 0x853e7d1c, 0x82200500, 0x00000090, 0x42026000,
+ 0x00115a14, 0x492e6009, 0x0501fe16, 0x5c027800,
+ 0x60280000, 0x0502003a, 0x0501f060, 0x592c100c,
+ 0x82081500, 0x00ffffff, 0x59240005, 0x80084d80,
+ 0x05020003, 0x84204548, 0x05fdf7e9, 0x916c0583,
+ 0x601c0800, 0x05020005, 0x0531f8fc, 0x05000009,
+ 0x80000580, 0x0501f054, 0x42026000, 0x00115a14,
+ 0x492e6009, 0x0501fe82, 0x05000049, 0x0501f04b,
+ 0x42026000, 0x00115a14, 0x492e6009, 0x0501fe7c,
+ 0x05000032, 0x0501f045, 0x0501fe94, 0x05020033,
+ 0x916c0583, 0x0502003a, 0x8c200508, 0x05000008,
0x4c600000, 0x4178c000, 0x60027830, 0x417a6000,
- 0x05e5fef0, 0x5c00c000, 0x480bc856, 0x052dfbea,
- 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, 0x5932680a, 0x5c000000, 0x4c000000,
- 0x4803c857, 0x4937c857, 0x83340580, 0x00110210,
- 0x0500001f, 0x90040586, 0x05020003, 0x6018000c,
- 0x0501f014, 0x90040584, 0x05020003, 0x60100008,
- 0x0501f010, 0x90040587, 0x601c000e, 0x0500000d,
- 0x90040583, 0x600c000e, 0x0500000a, 0x90040585,
- 0x60140008, 0x05000007, 0x90040589, 0x60240008,
- 0x05000004, 0x9004058b, 0x602c000e, 0x05da08cf,
- 0x4803c857, 0x48026c00, 0x90040d86, 0x05020004,
- 0x59341404, 0x800811c0, 0x05d808c8, 0x1c01f000,
- 0x5c000000, 0x4c000000, 0x4803c857, 0x4947c857,
- 0x481bc857, 0x83440480, 0x00000800, 0x0502105f,
- 0x83200400, 0x0010d17b, 0x50024800, 0x59240009,
- 0x83441480, 0x000007f0, 0x05001003, 0x80081400,
- 0x0501f003, 0x83441400, 0x0010d400, 0x50080000,
+ 0x05e5fd83, 0x5c00c000, 0x0501f038, 0x0501fe39,
+ 0x05000009, 0x0501fe31, 0x05020028, 0x4c600000,
+ 0x4178c000, 0x60027830, 0x417a6000, 0x05e5fd78,
+ 0x5c00c000, 0x480bc856, 0x052dff73, 0x05000017,
+ 0x80000580, 0x0501f02c, 0x05fdf7e4, 0x480bc857,
+ 0x60640800, 0x40001000, 0x6008b000, 0x0501f00c,
+ 0x480bc857, 0x40000800, 0x6008b000, 0x0501f008,
+ 0x480fc857, 0x40000800, 0x600cb000, 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,
+ 0x5932680a, 0x5c000000, 0x4c000000, 0x4803c857,
+ 0x4937c857, 0x83340580, 0x001141b4, 0x0500001f,
+ 0x90040586, 0x05020003, 0x6018000c, 0x0501f014,
+ 0x90040584, 0x05020003, 0x60100008, 0x0501f010,
+ 0x90040587, 0x601c000e, 0x0500000d, 0x90040583,
+ 0x600c000e, 0x0500000a, 0x90040585, 0x60140008,
+ 0x05000007, 0x90040589, 0x60240008, 0x05000004,
+ 0x9004058b, 0x602c000e, 0x05d60ef7, 0x4803c857,
+ 0x48026c00, 0x90040d86, 0x05020004, 0x59341404,
+ 0x800811c0, 0x05d40ef0, 0x1c01f000, 0x5c000000,
+ 0x4c000000, 0x4803c857, 0x4947c857, 0x481bc857,
+ 0x42001800, 0x80000000, 0x0501f007, 0x5c000000,
+ 0x4c000000, 0x4803c857, 0x4947c857, 0x481bc857,
+ 0x41781800, 0x59a800ad, 0x81440480, 0x0502107d,
+ 0x83200400, 0x0010d8f9, 0x50024800, 0x59240009,
+ 0x83441480, 0x000007f0, 0x0500100f, 0x83440c80,
+ 0x00000800, 0x0500100a, 0x83441400, 0x0010db80,
+ 0x4c080000, 0x4c0c0000, 0x0001fb08, 0x5c001800,
+ 0x5c001000, 0x0502000d, 0x0501f008, 0x80081400,
+ 0x0501f003, 0x83441400, 0x0010db80, 0x50080000,
0x80026d40, 0x05000005, 0x59340013, 0x80000130,
- 0x81200580, 0x0500001e, 0x4c180000, 0x4d2c0000,
- 0x05d9fc41, 0x412e6800, 0x5c025800, 0x5c003000,
- 0x05000046, 0x59242005, 0x812000f0, 0x80102540,
+ 0x81200580, 0x05000030, 0x4c180000, 0x4d2c0000,
+ 0x800c19c0, 0x05000003, 0x05d9fa5f, 0x0501f002,
+ 0x05d9fa4c, 0x412e6800, 0x5c025800, 0x5c003000,
+ 0x05000054, 0x59242005, 0x812000f0, 0x80102540,
0x48126813, 0x5924200b, 0x82100500, 0x00001fff,
0x800000c2, 0x82102500, 0xffffe000, 0x80100540,
0x48026814, 0x59242207, 0x80102000, 0x48124a07,
- 0x45341000, 0x497a680d, 0x497a6810, 0x497a680f,
- 0x4c180000, 0x05fdfd3f, 0x5c003000, 0x59340a12,
- 0x4c040000, 0x0505fb61, 0x5c000800, 0x05000009,
- 0x82180500, 0x00ffff00, 0x05000008, 0x59a8103d,
- 0x82081500, 0x00ffff00, 0x80080580, 0x05000003,
- 0x80000580, 0x0501f004, 0x82180500, 0x000000ff,
- 0x800000d0, 0x80040d80, 0x05000003, 0x4803c857,
- 0x48026a12, 0x59340813, 0x59242005, 0x801021c0,
- 0x05000008, 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,
- 0x0010d17b, 0x50024800, 0x59240009, 0x83441480,
- 0x000007f0, 0x05001003, 0x80081400, 0x0501f003,
- 0x83441400, 0x0010d400, 0x50080000, 0x80026d40,
- 0x05000009, 0x0501fc84, 0x05020008, 0x8d0c0502,
- 0x05000004, 0x59340200, 0x8c00050e, 0x05000003,
- 0x90000541, 0x1c01f000, 0x80000580, 0x05fdf7fe,
- 0x5c000000, 0x4c000000, 0x4803c857, 0x4947c857,
- 0x4d2c0000, 0x4d300000, 0x83440580, 0x0000ffff,
- 0x0500001c, 0x83440480, 0x00000800, 0x0502101d,
- 0x83441400, 0x0010d400, 0x50080000, 0x80026d40,
- 0x05000014, 0x45781000, 0x5934000d, 0x80025d40,
- 0x05da0bdb, 0x59366011, 0x813261c0, 0x0500000a,
- 0x4c640000, 0x5930c800, 0x59325809, 0x0529ff02,
- 0x05da0bd3, 0x0005ffdc, 0x90666540, 0x05fe07fa,
- 0x5c00c800, 0x0501fee1, 0x41365800, 0x05d9fbc4,
- 0x80000580, 0x5c026000, 0x5c025800, 0x1c01f000,
- 0x90000541, 0x05fdf7fc, 0x4c580000, 0x59cc0001,
- 0x4937c857, 0x82000500, 0x00ffffff, 0x48026802,
- 0x497a6c01, 0x497a6a01, 0x59340200, 0x82000500,
- 0xffffdffd, 0x48026a00, 0x4004b000, 0x0505facb,
- 0x05020012, 0x59340403, 0x82000580, 0x000007fe,
- 0x05000005, 0x59a80249, 0x8c00050a, 0x0502000b,
- 0x0501f008, 0x59cc0408, 0x8c000518, 0x05000007,
- 0x59cc0009, 0x4803505a, 0x59cc000a, 0x4803505b,
- 0x8058b1c0, 0x05020001, 0x59cc0a09, 0x90040d10,
- 0x59cc0408, 0x90000520, 0x05000005, 0x84040d40,
- 0x59a81249, 0x8408155a, 0x480b5249, 0x5934000a,
- 0x82000500, 0xffffffee, 0x80040540, 0x4802680a,
- 0x91cca40b, 0x9134ac06, 0x6008b000, 0x053dfaa0,
- 0x91cca40d, 0x9134ac08, 0x6008b000, 0x053dfa9c,
- 0x59a820d0, 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,
- 0x0010e060, 0x58080201, 0x80041480, 0x05001002,
- 0x40000800, 0x48066a04, 0x59340403, 0x82000580,
- 0x000007fe, 0x05020003, 0x59cc0a08, 0x48066a04,
- 0x0501fe86, 0x5c00b000, 0x1c01f000, 0x4937c857,
- 0x59cc0207, 0x4803c857, 0x48026a05, 0x59cc020a,
- 0x4803c857, 0x48026c05, 0x59cc2006, 0x59341200,
- 0x599c0818, 0x5934180a, 0x4807c857, 0x480bc857,
- 0x480fc857, 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,
- 0x8c000500, 0x05000005, 0x053dfab1, 0x05000003,
- 0x840c1d4a, 0x0501f002, 0x840c1d0a, 0x480e680a,
- 0x59a80249, 0x8c000508, 0x05000007, 0x84000556,
- 0x4803c857, 0x48035249, 0x42001000, 0x0010582b,
- 0x0511f825, 0x1c01f000, 0x592c0015, 0x4803c857,
- 0x48026805, 0x80000120, 0x42002000, 0x02000000,
- 0x05fdf7bb, 0x4803c856, 0x4c5c0000, 0x4d2c0000,
- 0x4c580000, 0x5934000d, 0x80025d40, 0x05000023,
- 0x592c0006, 0x90000488, 0x0500100a, 0x412cb800,
- 0x592c0001, 0x80025d40, 0x05fe07fa, 0x05d9fadb,
- 0x0500002e, 0x492fc857, 0x492cb801, 0x0501f01b,
- 0x912c0c07, 0x6020b000, 0x50040000, 0x82000580,
- 0xffffffff, 0x05020006, 0x80041000, 0x50080000,
- 0x82000580, 0xffffffff, 0x05000005, 0x90040c02,
- 0x8058b040, 0x05fe07f5, 0x05d5ff20, 0x45480800,
- 0x454c1000, 0x592c1806, 0x800c1800, 0x480e5806,
- 0x480fc857, 0x0501f010, 0x05d9fac0, 0x05000013,
- 0x492fc857, 0x492e680d, 0x497a5805, 0x64065806,
- 0x494a5807, 0x494e5808, 0x912c0c09, 0x6038b000,
- 0x46000800, 0xffffffff, 0x80040800, 0x8058b040,
- 0x05fe07fc, 0x90000541, 0x5c00b000, 0x5c025800,
- 0x5c00b800, 0x1c01f000, 0x80000580, 0x05fdf7fb,
- 0x4803c856, 0x4d3c0000, 0x4d2c0000, 0x5934000d,
- 0x80025d40, 0x0500001c, 0x592c0005, 0x80000540,
- 0x0502001c, 0x412e7800, 0x0501f8a7, 0x05020019,
- 0x46000800, 0xffffffff, 0x46001000, 0xffffffff,
- 0x4813c857, 0x480fc857, 0x580c0006, 0x90000c82,
- 0x05021012, 0x480fc857, 0x400c0000, 0x812c0580,
- 0x05020004, 0x580c0001, 0x4802680d, 0x0501f003,
- 0x580c0001, 0x48002001, 0x400e5800, 0x05d9fa9b,
- 0x90000541, 0x5c025800, 0x5c027800, 0x1c01f000,
- 0x80000580, 0x05fdf7fc, 0x80000040, 0x48001806,
- 0x4803c857, 0x05fdf7f7, 0x64225a0a, 0x0001f382,
- 0x64a65a0a, 0x0001f382, 0x64aa5a0a, 0x0001f382,
- 0x64a25a0a, 0x0001f382, 0x643a5a0a, 0x0001f382,
- 0x4943c857, 0x4d440000, 0x4d340000, 0x4d2c0000,
- 0x4c580000, 0x61c0b00f, 0x417a8800, 0x0001fb00,
- 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, 0x0500002c, 0x592c0208, 0x82000500,
- 0x000000ff, 0x90000592, 0x05000024, 0xb00005a0,
- 0x05000022, 0x90000588, 0x05000020, 0x8d3c0500,
- 0x05000003, 0x0501f846, 0x0502001c, 0x592cc000,
- 0x497a5800, 0x805cb9c0, 0x05020009, 0x59340010,
- 0x812c0580, 0x05020004, 0x497a680f, 0x497a6810,
- 0x0501f008, 0x4862680f, 0x0501f006, 0x4860b800,
- 0x59340010, 0x812c0580, 0x05020002, 0x485e6810,
- 0x0005f9f3, 0x0509fcb7, 0x4a025a08, 0x00000103,
- 0x49425a0a, 0x497a580d, 0x0529fece, 0x0001fb82,
- 0x40625800, 0x05fdf7d7, 0x412cb800, 0x592e5800,
- 0x05fdf7d4, 0x5c00b800, 0x5c00c000, 0x5c025800,
- 0x1c01f000, 0x4803c856, 0x41781800, 0x5934000f,
- 0x80025d40, 0x05000018, 0x592c0009, 0x80200580,
- 0x592c0000, 0x05000003, 0x412c1800, 0x05fdf7f9,
- 0x592c0a08, 0x82040d00, 0x000000ff, 0x90040d92,
- 0x05fc07fa, 0xb0040da0, 0x05fc07f8, 0x90040d88,
- 0x05fc07f6, 0x497a5800, 0x800c19c0, 0x05000007,
- 0x48001800, 0x80000540, 0x05020003, 0x480e6810,
- 0x90000541, 0x1c01f000, 0x4802680f, 0x80000540,
- 0x05fe07fd, 0x497a6810, 0x05fdf7fa, 0x592c000c,
- 0x81480580, 0x05020003, 0x592c000d, 0x814c0580,
- 0x1c01f000, 0x4803c856, 0x4c580000, 0x413c1800,
- 0x400c2000, 0x593c0005, 0x80000540, 0x05020014,
- 0x6020b000, 0x900c0c07, 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, 0x05d9f9d7,
- 0x0500000c, 0x492e680d, 0x64065805, 0x497a5806,
- 0x912c0c07, 0x6040b000, 0x46000800, 0xffffffff,
+ 0x41340000, 0x83440d00, 0xfffffff0, 0x82040d80,
+ 0x000007f0, 0x05000009, 0x83440c80, 0x00000800,
+ 0x05001006, 0x4a026815, 0x00020000, 0x497a6816,
+ 0x82000540, 0x20000000, 0x44001000, 0x497a680d,
+ 0x497a6810, 0x497a680f, 0x4c180000, 0x05fdfcfc,
+ 0x5c003000, 0x59340a12, 0x4c040000, 0x0505fc11,
+ 0x5c000800, 0x05000009, 0x82180500, 0x00ffff00,
+ 0x05000008, 0x59a81040, 0x82081500, 0x00ffff00,
+ 0x80080580, 0x05000003, 0x80000580, 0x0501f004,
+ 0x82180500, 0x000000ff, 0x800000d0, 0x80040d80,
+ 0x05000003, 0x4803c857, 0x48026a12, 0x59340813,
+ 0x59242005, 0x801021c0, 0x05000008, 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, 0x0502000e,
+ 0x599c0018, 0x8c000510, 0x0500000c, 0x59a80006,
+ 0x8c00050a, 0x05000008, 0x59340c03, 0x82040480,
+ 0x000007f0, 0x05001005, 0x82040480, 0x00000800,
+ 0x05021002, 0x84081548, 0x480a6a00, 0x1c01f000,
+ 0x4947c857, 0x59a800ad, 0x81440480, 0x0502101e,
+ 0x83200400, 0x0010d8f9, 0x50024800, 0x59240009,
+ 0x83441480, 0x000007f0, 0x05001009, 0x83440c80,
+ 0x00000800, 0x05001004, 0x0001fb08, 0x05020011,
+ 0x0501f008, 0x80081400, 0x0501f003, 0x83441400,
+ 0x0010db80, 0x50080000, 0x80026d40, 0x05000009,
+ 0x0501fd0a, 0x05020008, 0x8d0c0502, 0x05000004,
+ 0x59340200, 0x8c00050e, 0x05000003, 0x90000541,
+ 0x1c01f000, 0x80000580, 0x05fdf7fe, 0x5c000000,
+ 0x4c000000, 0x4803c857, 0x4947c857, 0x4d2c0000,
+ 0x4d300000, 0x83440580, 0x0000ffff, 0x0500001e,
+ 0x59a800ad, 0x81440480, 0x0502101f, 0x83441400,
+ 0x0010db80, 0x50080000, 0x82000500, 0x00ffffff,
+ 0x80026d40, 0x05000014, 0x45781000, 0x5934000d,
+ 0x80025d40, 0x05da09cd, 0x59366011, 0x813261c0,
+ 0x0500000a, 0x4c640000, 0x5930c800, 0x59325809,
+ 0x052dfa46, 0x05da09c5, 0x0009f810, 0x90666540,
+ 0x05fe07fa, 0x5c00c800, 0x0501ff71, 0x41365800,
+ 0x05d9f9b6, 0x80000580, 0x5c026000, 0x5c025800,
+ 0x1c01f000, 0x90000541, 0x05fdf7fc, 0x4d2c0000,
+ 0x4d340000, 0x4947c857, 0x05d9f98a, 0x0500001a,
+ 0x412e6800, 0x497a6816, 0x0531ff4c, 0x83440400,
+ 0x0010db80, 0x50000000, 0x82000d00, 0xe0000000,
+ 0x82040d80, 0x20000000, 0x05000007, 0x8c000538,
+ 0x0502000a, 0x59e00004, 0x8c00050e, 0x05da0c22,
+ 0x05fdf7f3, 0x82000500, 0x00ffffff, 0x40006800,
+ 0x80000580, 0x4803c857, 0x5c026800, 0x5c025800,
+ 0x1c01f000, 0x4803c857, 0x90000541, 0x05fdf7fb,
+ 0x4c580000, 0x59cc0001, 0x4937c857, 0x82000500,
+ 0x00ffffff, 0x48026802, 0x497a6c01, 0x497a6a01,
+ 0x59340200, 0x82000500, 0xffffdffd, 0x48026a00,
+ 0x4004b000, 0x0505fb4f, 0x05020012, 0x59340403,
+ 0x82000580, 0x000007fe, 0x05000005, 0x59a8024c,
+ 0x8c00050a, 0x0502000b, 0x0501f008, 0x59cc0408,
+ 0x8c000518, 0x05000007, 0x59cc0009, 0x4803505d,
+ 0x59cc000a, 0x4803505e, 0x8058b1c0, 0x05020001,
+ 0x59cc0a09, 0x90040d10, 0x59cc0408, 0x90000520,
+ 0x05000005, 0x84040d40, 0x59a8124c, 0x8408155a,
+ 0x480b524c, 0x5934000a, 0x82000500, 0xffffffee,
+ 0x80040540, 0x4802680a, 0x91cca40b, 0x9134ac06,
+ 0x6008b000, 0x053dffb5, 0x91cca40d, 0x9134ac08,
+ 0x6008b000, 0x053dffb1, 0x59a820d5, 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, 0x00111ffa, 0x58080201,
+ 0x80041480, 0x05001002, 0x40000800, 0x48066a04,
+ 0x59340403, 0x82000580, 0x000007fe, 0x05020003,
+ 0x59cc0a08, 0x48066a04, 0x0501fef5, 0x5c00b000,
+ 0x1c01f000, 0x4937c857, 0x59cc0207, 0x4803c857,
+ 0x48026a05, 0x59cc020a, 0x4803c857, 0x48026c05,
+ 0x59cc2006, 0x59341200, 0x599c0818, 0x5934180a,
+ 0x4807c857, 0x480bc857, 0x480fc857, 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, 0x8c000500, 0x05000005,
+ 0x053dffc6, 0x05000003, 0x840c1d4a, 0x0501f002,
+ 0x840c1d0a, 0x480e680a, 0x59a8024c, 0x8c000508,
+ 0x05000007, 0x84000556, 0x4803c857, 0x4803524c,
+ 0x42001000, 0x00105a99, 0x0511f9d9, 0x1c01f000,
+ 0x592c0015, 0x4803c857, 0x48026805, 0x80000120,
+ 0x42002000, 0x02000000, 0x05fdf7bb, 0x4803c856,
+ 0x4c5c0000, 0x4d2c0000, 0x4c580000, 0x5934000d,
+ 0x80025d40, 0x05000023, 0x592c0006, 0x90000488,
+ 0x0500100a, 0x412cb800, 0x592c0001, 0x80025d40,
+ 0x05fe07fa, 0x05d9f8ac, 0x0500002e, 0x492fc857,
+ 0x492cb801, 0x0501f01b, 0x912c0c07, 0x6020b000,
+ 0x50040000, 0x82000580, 0xffffffff, 0x05020006,
+ 0x80041000, 0x50080000, 0x82000580, 0xffffffff,
+ 0x05000005, 0x90040c02, 0x8058b040, 0x05fe07f5,
+ 0x05d5fcf5, 0x45480800, 0x454c1000, 0x592c1806,
+ 0x800c1800, 0x480e5806, 0x480fc857, 0x0501f010,
+ 0x05d9f891, 0x05000013, 0x492fc857, 0x492e680d,
+ 0x497a5805, 0x64065806, 0x494a5807, 0x494e5808,
+ 0x912c0c09, 0x6038b000, 0x46000800, 0xffffffff,
0x80040800, 0x8058b040, 0x05fe07fc, 0x90000541,
- 0x5c025800, 0x5c00b000, 0x1c01f000, 0x4d2c0000,
- 0x592e5801, 0x05d9f9de, 0x5c025800, 0x497a5801,
- 0x05fdf7ee, 0x4d2c0000, 0x5936580d, 0x812e59c0,
- 0x05000005, 0x4937c857, 0x497a680d, 0x05d9f9d4,
- 0x90000541, 0x5c025800, 0x1c01f000, 0x59340405,
- 0x4937c857, 0x4803c857, 0x8c000508, 0x1c01f000,
- 0x4803c856, 0x0505f8dd, 0x05000043, 0x59a80843,
- 0x8c040504, 0x0502001b, 0x59a80a49, 0x8c040506,
- 0x05000018, 0x053df91b, 0x42024800, 0x0010e512,
- 0x61fa880f, 0x59240809, 0x83440480, 0x000007f0,
- 0x80040400, 0x50026800, 0x813669c0, 0x0500000a,
- 0x59240200, 0x90000503, 0x90000583, 0x05020006,
- 0x0501fa49, 0x05020004, 0x59340200, 0x8400055a,
- 0x48026a00, 0x91264c0d, 0x8058b040, 0x05fe07ee,
- 0x59a80006, 0x8c00051c, 0x05020003, 0x8d0c0520,
- 0x05000013, 0x61c0b00f, 0x417a8800, 0x0001fb00,
- 0x0502000c, 0x0501fa38, 0x0502000a, 0x59a8003d,
- 0x59340802, 0x80040580, 0x82000500, 0x00ffff00,
- 0x05020004, 0x59340200, 0x8400055a, 0x48026a00,
- 0x81468800, 0x8058b040, 0x05fe07f1, 0x0501f8d1,
- 0x05000003, 0x59a8085b, 0x0501f007, 0x6140080f,
- 0x59a80006, 0x8c00051c, 0x05020003, 0x8d0c0520,
- 0x05000004, 0x42001000, 0x0010582b, 0x050dffd5,
- 0x1c01f000, 0x053df8df, 0x42024800, 0x0010e512,
- 0x61fa880f, 0x59240809, 0x83440480, 0x000007f0,
- 0x80040400, 0x50026800, 0x813669c0, 0x05000008,
- 0x59240200, 0x90000503, 0x90000583, 0x05020004,
- 0x59340200, 0x8400051a, 0x48026a00, 0x91264c0d,
- 0x8058b040, 0x05fe07f0, 0x05fdf7c6, 0x4d300000,
- 0x4d340000, 0x4d440000, 0x4d3c0000, 0x4c580000,
- 0x4d200000, 0x4d240000, 0x42001000, 0x0010582b,
- 0x050dfe81, 0x59a80a49, 0x4807c857, 0x8c040508,
- 0x0502002e, 0x8c04050a, 0x05020003, 0x8c040506,
- 0x05000042, 0x053df8b7, 0x42024800, 0x0010e512,
- 0x41781000, 0x61fa880f, 0x59240809, 0x83440480,
- 0x000007f0, 0x80040400, 0x50026800, 0x813669c0,
- 0x0500000b, 0x59240200, 0x90000503, 0x90000583,
- 0x05020007, 0x59340200, 0x8c00051a, 0x05000004,
- 0x8400051a, 0x48026a00, 0x80081000, 0x91264c0d,
- 0x8058b040, 0x05fe07ed, 0x59a80a49, 0x8c04050a,
- 0x05020026, 0x800811c0, 0x0500004b, 0x59a80a49,
- 0x8c04050a, 0x05020021, 0x8d0c0520, 0x05000005,
- 0x6140080f, 0x42001000, 0x0010582b, 0x050dff85,
- 0x05e5fc61, 0x0501f040, 0x59a80249, 0x4803c857,
- 0x8c000516, 0x0502003c, 0x59aa68c2, 0x813669c0,
- 0x05000039, 0x59340400, 0x82000580, 0x00000404,
- 0x05020035, 0x051dfb92, 0x05d40d68, 0x4933c857,
- 0x64066407, 0x4936600a, 0x4926601d, 0x417a7800,
- 0x05fdfc6b, 0x60140800, 0x05fdfc73, 0x600e7000,
- 0x0009f800, 0x0501f028, 0x61c0b00f, 0x80028d80,
- 0x0001fb00, 0x05020021, 0x59340200, 0x8c00051a,
- 0x0500001e, 0x59368c03, 0x417a7800, 0x60a68000,
- 0x0501f9e9, 0x59240400, 0x8c00050a, 0x05020003,
- 0x41783000, 0x0535ff19, 0x59340200, 0x84000558,
- 0x8400051a, 0x48026a00, 0x4937c857, 0x4a026c00,
- 0x00000707, 0x05fdff2c, 0x60a68000, 0x0515fc7c,
- 0x4df00000, 0x417a6000, 0x0515f9ab, 0x0515fab0,
- 0x0515faf9, 0x417a7800, 0x0515f87e, 0x0535fdd2,
- 0x5c03e000, 0x05140c63, 0x81468800, 0x8058b040,
- 0x05fe07dc, 0x5c024800, 0x5c024000, 0x5c00b000,
- 0x5c027800, 0x5c028800, 0x5c026800, 0x5c026000,
- 0x1c01f000, 0x4933c857, 0x5930380a, 0x581c0200,
- 0x8400051a, 0x48003a00, 0x1c01f000, 0x4933c857,
- 0x5930000a, 0x50000000, 0x8c000508, 0x1c01f000,
- 0x5930000a, 0x50000000, 0x4933c857, 0x4803c857,
- 0x8c00050e, 0x1c01f000, 0x5930000a, 0x50000000,
- 0x8c00050a, 0x1c01f000, 0x4933c856, 0x0501f96e,
- 0x05000005, 0x59340400, 0x82000d00, 0x000000ff,
- 0x90041585, 0x1c01f000, 0x4803c856, 0x59a80a49,
- 0x8c040506, 0x0500000a, 0x5930081d, 0x58040200,
- 0x8c000500, 0x05000006, 0x58040009, 0x9000040e,
- 0x50000800, 0x58040200, 0x8c00051a, 0x1c01f000,
- 0x4d340000, 0x4c580000, 0x59a80a49, 0x8c040506,
- 0x05000014, 0x053df817, 0x42000800, 0x0010e512,
- 0x58041009, 0x9008040e, 0x50026800, 0x813669c0,
- 0x05000008, 0x58040200, 0x90000503, 0x90000583,
- 0x05020004, 0x59340200, 0x8c00051a, 0x05020005,
- 0x90040c0d, 0x8058b040, 0x05fe07f2, 0x80000580,
- 0x5c00b000, 0x5c026800, 0x1c01f000, 0x4937c857,
- 0x493fc857, 0x59341200, 0x813e79c0, 0x05000003,
- 0x8408155e, 0x0501f002, 0x8408151e, 0x480a6a00,
- 0x1c01f000, 0x4937c857, 0x05e5fb06, 0x05000005,
- 0x59a8085a, 0x42001000, 0x00105905, 0x050dfee5,
- 0x1c01f000, 0x4937c857, 0x42001000, 0x00105905,
- 0x050dfdad, 0x59a81249, 0x84081512, 0x480b5249,
- 0x1c01f000, 0x4c380000, 0x4c340000, 0x4c240000,
- 0x4c600000, 0x4008c000, 0x83440480, 0x00000800,
- 0x05021065, 0x80002d80, 0x41442000, 0x83447400,
- 0x0010d400, 0x61c0b00f, 0x83444c80, 0x000007f0,
- 0x05021005, 0x82600480, 0x00fffffc, 0x05001005,
- 0x0501f059, 0x6040b000, 0x59240009, 0x80247400,
- 0x50380000, 0x80000540, 0x05020030, 0x41440000,
- 0x80100580, 0x05020060, 0x40102800, 0x82104c80,
- 0x000007f0, 0x05001027, 0x59a80249, 0x8c00050a,
+ 0x5c00b000, 0x5c025800, 0x5c00b800, 0x1c01f000,
+ 0x80000580, 0x05fdf7fb, 0x4803c856, 0x4d3c0000,
+ 0x4d2c0000, 0x5934000d, 0x80025d40, 0x0500001c,
+ 0x592c0005, 0x80000540, 0x0502001c, 0x412e7800,
+ 0x0501f8ab, 0x05020019, 0x46000800, 0xffffffff,
+ 0x46001000, 0xffffffff, 0x4813c857, 0x480fc857,
+ 0x580c0006, 0x90000c82, 0x05021012, 0x480fc857,
+ 0x400c0000, 0x812c0580, 0x05020004, 0x580c0001,
+ 0x4802680d, 0x0501f003, 0x580c0001, 0x48002001,
+ 0x400e5800, 0x05d9f86c, 0x90000541, 0x5c025800,
+ 0x5c027800, 0x1c01f000, 0x80000580, 0x05fdf7fc,
+ 0x80000040, 0x48001806, 0x4803c857, 0x05fdf7f7,
+ 0x64225a0a, 0x0001f3a8, 0x64a65a0a, 0x0001f3a8,
+ 0x64aa5a0a, 0x0001f3a8, 0x64a25a0a, 0x0001f3a8,
+ 0x643a5a0a, 0x0001f3a8, 0x4943c857, 0x4d440000,
+ 0x4d340000, 0x4d2c0000, 0x4c580000, 0x59a8b0ac,
+ 0x8d3c0502, 0x05000002, 0x59a8b0ad, 0x417a8800,
+ 0x0001fb08, 0x05020007, 0x8d3c0506, 0x05000004,
+ 0x59340200, 0x8c00050e, 0x05020002, 0x0501f812,
+ 0x81468800, 0x83440580, 0x000007f0, 0x05020004,
+ 0x8d3c0502, 0x05020002, 0x60028810, 0x8058b040,
+ 0x05fe07f0, 0x59a800ad, 0x81440480, 0x05021001,
+ 0x5c00b000, 0x5c025800, 0x5c026800, 0x5c028800,
+ 0x1c01f000, 0x4d2c0000, 0x4c600000, 0x4c5c0000,
+ 0x4178b800, 0x5936580f, 0x812e59c0, 0x0500002c,
+ 0x592c0208, 0x82000500, 0x000000ff, 0x90000592,
+ 0x05000024, 0xb00005a0, 0x05000022, 0x90000588,
+ 0x05000020, 0x8d3c0500, 0x05000003, 0x0501f846,
+ 0x0502001c, 0x592cc000, 0x497a5800, 0x805cb9c0,
+ 0x05020009, 0x59340010, 0x812c0580, 0x05020004,
+ 0x497a680f, 0x497a6810, 0x0501f008, 0x4862680f,
+ 0x0501f006, 0x4860b800, 0x59340010, 0x812c0580,
+ 0x05020002, 0x485e6810, 0x0005fa1a, 0x0509fdd5,
+ 0x4a025a08, 0x00000103, 0x49425a0a, 0x497a580d,
+ 0x052df9fd, 0x0001fba8, 0x40625800, 0x05fdf7d7,
+ 0x412cb800, 0x592e5800, 0x05fdf7d4, 0x5c00b800,
+ 0x5c00c000, 0x5c025800, 0x1c01f000, 0x4803c856,
+ 0x41781800, 0x5934000f, 0x80025d40, 0x05000018,
+ 0x592c0009, 0x80200580, 0x592c0000, 0x05000003,
+ 0x412c1800, 0x05fdf7f9, 0x592c0a08, 0x82040d00,
+ 0x000000ff, 0x90040d92, 0x05fc07fa, 0xb0040da0,
+ 0x05fc07f8, 0x90040d88, 0x05fc07f6, 0x497a5800,
+ 0x800c19c0, 0x05000007, 0x48001800, 0x80000540,
+ 0x05020003, 0x480e6810, 0x90000541, 0x1c01f000,
+ 0x4802680f, 0x80000540, 0x05fe07fd, 0x497a6810,
+ 0x05fdf7fa, 0x592c000c, 0x81480580, 0x05020003,
+ 0x592c000d, 0x814c0580, 0x1c01f000, 0x4803c856,
+ 0x4c580000, 0x413c1800, 0x400c2000, 0x593c0005,
+ 0x80000540, 0x05020014, 0x6020b000, 0x900c0c07,
+ 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, 0x05d5ffa4, 0x0500000c, 0x492e680d,
+ 0x64065805, 0x497a5806, 0x912c0c07, 0x6040b000,
+ 0x46000800, 0xffffffff, 0x80040800, 0x8058b040,
+ 0x05fe07fc, 0x90000541, 0x5c025800, 0x5c00b000,
+ 0x1c01f000, 0x4d2c0000, 0x592e5801, 0x05d5ffab,
+ 0x5c025800, 0x497a5801, 0x05fdf7ee, 0x4d2c0000,
+ 0x5936580d, 0x812e59c0, 0x05000005, 0x4937c857,
+ 0x497a680d, 0x05d5ffa1, 0x90000541, 0x5c025800,
+ 0x1c01f000, 0x59340405, 0x4937c857, 0x4803c857,
+ 0x8c000508, 0x1c01f000, 0x4803c856, 0x0505f95d,
+ 0x05000047, 0x59a80846, 0x8c040504, 0x0502001b,
+ 0x59a80a4c, 0x8c040506, 0x05000018, 0x053dfe2c,
+ 0x42024800, 0x001124b6, 0x61fa880f, 0x59240809,
+ 0x83440480, 0x000007f0, 0x80040400, 0x50026800,
+ 0x813669c0, 0x0500000a, 0x59240200, 0x90000503,
+ 0x90000583, 0x05020006, 0x0501faa8, 0x05020004,
+ 0x59340200, 0x8400055a, 0x48026a00, 0x91264c0d,
+ 0x8058b040, 0x05fe07ee, 0x59a80006, 0x8c00051c,
+ 0x05020003, 0x8d0c0520, 0x05000017, 0x59a8b0ac,
+ 0x417a8800, 0x0001fb08, 0x0502000c, 0x0501fa97,
+ 0x0502000a, 0x59a80040, 0x59340802, 0x80040580,
+ 0x82000500, 0x00ffff00, 0x05020004, 0x59340200,
+ 0x8400055a, 0x48026a00, 0x81468800, 0x83440580,
+ 0x000007f0, 0x05020002, 0x60028810, 0x8058b040,
+ 0x05fe07ed, 0x0501f8d5, 0x05000003, 0x59a8085e,
+ 0x0501f007, 0x6140080f, 0x59a80006, 0x8c00051c,
+ 0x05020003, 0x8d0c0520, 0x05000004, 0x42001000,
+ 0x00105a99, 0x0511f9cb, 0x1c01f000, 0x053dfdec,
+ 0x42024800, 0x001124b6, 0x61fa880f, 0x59240809,
+ 0x83440480, 0x000007f0, 0x80040400, 0x50026800,
+ 0x813669c0, 0x05000008, 0x59240200, 0x90000503,
+ 0x90000583, 0x05020004, 0x59340200, 0x8400051a,
+ 0x48026a00, 0x91264c0d, 0x8058b040, 0x05fe07f0,
+ 0x05fdf7c2, 0x4d300000, 0x4d340000, 0x4d440000,
+ 0x4d3c0000, 0x4c580000, 0x4d200000, 0x4d240000,
+ 0x42001000, 0x00105a99, 0x0511f82d, 0x59a80a4c,
+ 0x4807c857, 0x8c040508, 0x0502002e, 0x8c04050a,
+ 0x05020003, 0x8c040506, 0x05000042, 0x053dfdc4,
+ 0x42024800, 0x001124b6, 0x41781000, 0x61fa880f,
+ 0x59240809, 0x83440480, 0x000007f0, 0x80040400,
+ 0x50026800, 0x813669c0, 0x0500000b, 0x59240200,
+ 0x90000503, 0x90000583, 0x05020007, 0x59340200,
+ 0x8c00051a, 0x05000004, 0x8400051a, 0x48026a00,
+ 0x80081000, 0x91264c0d, 0x8058b040, 0x05fe07ed,
+ 0x59a80a4c, 0x8c04050a, 0x05020026, 0x800811c0,
+ 0x0500004f, 0x59a80a4c, 0x8c04050a, 0x05020021,
+ 0x8d0c0520, 0x05000005, 0x6140080f, 0x42001000,
+ 0x00105a99, 0x0511f97b, 0x05e5fa8b, 0x0501f044,
+ 0x59a8024c, 0x4803c857, 0x8c000516, 0x05020040,
+ 0x59aa68c7, 0x813669c0, 0x0500003d, 0x59340400,
+ 0x82000580, 0x00000404, 0x05020039, 0x051dfe39,
+ 0x05d40b35, 0x4933c857, 0x64066407, 0x4936600a,
+ 0x4926601d, 0x417a7800, 0x05fdfc10, 0x60140800,
+ 0x05fdfc18, 0x600e7000, 0x0009f839, 0x0501f02c,
+ 0x59a8b0ac, 0x80028d80, 0x0001fb08, 0x05020021,
+ 0x59340200, 0x8c00051a, 0x0500001e, 0x59368c03,
+ 0x417a7800, 0x60a68000, 0x0501fa44, 0x59240400,
+ 0x8c00050a, 0x05020003, 0x41783000, 0x0539fbf2,
+ 0x59340200, 0x84000558, 0x8400051a, 0x48026a00,
+ 0x4937c857, 0x4a026c00, 0x00000707, 0x05fdff28,
+ 0x60a68000, 0x0515fecc, 0x4df00000, 0x417a6000,
+ 0x0515fbf6, 0x0515fd01, 0x0515fd4a, 0x417a7800,
+ 0x0515fac9, 0x0539fa7b, 0x5c03e000, 0x05140eb3,
+ 0x81468800, 0x83440580, 0x000007f0, 0x05020002,
+ 0x60028810, 0x8058b040, 0x05fe07d8, 0x5c024800,
+ 0x5c024000, 0x5c00b000, 0x5c027800, 0x5c028800,
+ 0x5c026800, 0x5c026000, 0x1c01f000, 0x4933c857,
+ 0x5930380a, 0x581c0200, 0x8400051a, 0x48003a00,
+ 0x1c01f000, 0x4933c857, 0x5930000a, 0x50000000,
+ 0x8c000508, 0x1c01f000, 0x5930000a, 0x50000000,
+ 0x4933c857, 0x4803c857, 0x8c00050e, 0x1c01f000,
+ 0x5930000a, 0x50000000, 0x8c00050a, 0x1c01f000,
+ 0x4933c856, 0x0501f9c5, 0x05000005, 0x59340400,
+ 0x82000d00, 0x000000ff, 0x90041585, 0x1c01f000,
+ 0x4803c856, 0x59a80a4c, 0x8c040506, 0x0500000a,
+ 0x5930081d, 0x58040200, 0x8c000500, 0x05000006,
+ 0x58040009, 0x9000040e, 0x50000800, 0x58040200,
+ 0x8c00051a, 0x1c01f000, 0x4d340000, 0x4c580000,
+ 0x59a80a4c, 0x8c040506, 0x05000014, 0x053dfd20,
+ 0x42000800, 0x001124b6, 0x58041009, 0x9008040e,
+ 0x50026800, 0x813669c0, 0x05000008, 0x58040200,
+ 0x90000503, 0x90000583, 0x05020004, 0x59340200,
+ 0x8c00051a, 0x05020005, 0x90040c0d, 0x8058b040,
+ 0x05fe07f2, 0x80000580, 0x5c00b000, 0x5c026800,
+ 0x1c01f000, 0x4937c857, 0x493fc857, 0x59341200,
+ 0x813e79c0, 0x05000003, 0x8408155e, 0x0501f002,
+ 0x8408151e, 0x480a6a00, 0x1c01f000, 0x4937c857,
+ 0x05e5f92c, 0x05000005, 0x59a8085d, 0x42001000,
+ 0x00105b77, 0x0511f8d7, 0x1c01f000, 0x4937c857,
+ 0x42001000, 0x00105b77, 0x050dff55, 0x59a8124c,
+ 0x84081512, 0x480b524c, 0x1c01f000, 0x4c380000,
+ 0x4c340000, 0x4c240000, 0x4c600000, 0x4008c000,
+ 0x59a800ad, 0x81440480, 0x050210a9, 0x80002d80,
+ 0x41442000, 0x83447400, 0x0010db80, 0x59a8b0ac,
+ 0x83444c80, 0x000007f0, 0x05001004, 0x83441c80,
+ 0x00000800, 0x05001005, 0x82600480, 0x00fffffc,
+ 0x05001005, 0x0501f09a, 0x6040b000, 0x59240009,
+ 0x80247400, 0x50380000, 0x80000540, 0x05020033,
+ 0x41440000, 0x80100580, 0x050200a4, 0x40102800,
+ 0x82104c80, 0x000007f0, 0x0500102a, 0x82104c80,
+ 0x00000800, 0x05021027, 0x59a8024c, 0x8c00050a,
0x0500000d, 0x82104d80, 0x000007fe, 0x05020005,
- 0x82604d80, 0x00fffffe, 0x05020043, 0x0501f01d,
+ 0x82604d80, 0x00fffffe, 0x05020081, 0x0501f01d,
0x59240200, 0x82000500, 0x00000220, 0x05020005,
- 0x0501f04a, 0x59240200, 0x8c00050a, 0x05000047,
+ 0x0501f08b, 0x59240200, 0x8c00050a, 0x05000088,
0x82104d80, 0x000007fc, 0x05020005, 0x82604d80,
- 0x00fffffc, 0x05020034, 0x0501f00e, 0x82104d80,
+ 0x00fffffc, 0x05020072, 0x0501f00e, 0x82104d80,
0x000007fd, 0x05020005, 0x82604d80, 0x00fffffd,
- 0x0502002d, 0x0501f007, 0x82104d80, 0x000007ff,
- 0x05020029, 0x82604d80, 0x00ffffff, 0x05020026,
- 0x84142d5e, 0x0501f034, 0x40006800, 0x58343002,
- 0x82183500, 0x00ffffff, 0x40180000, 0x80600580,
- 0x05020022, 0x58340813, 0x80040130, 0x81200580,
- 0x0502001e, 0x82040500, 0x00ffffff, 0x59240805,
+ 0x0502006b, 0x0501f007, 0x82104d80, 0x000007ff,
+ 0x05020067, 0x82604d80, 0x00ffffff, 0x05020064,
+ 0x84142d5e, 0x0501f075, 0x82000d00, 0xe0000000,
+ 0x05000025, 0x8d0c0538, 0x05020003, 0x60800000,
+ 0x0501f0b2, 0x82000500, 0x00ffffff, 0x8c04053c,
+ 0x05000013, 0x40003000, 0x80600580, 0x05000021,
+ 0x40100000, 0x81440580, 0x05020064, 0x4c200000,
+ 0x4c180000, 0x4c100000, 0x4d440000, 0x40128800,
+ 0x05fdfc37, 0x5c028800, 0x5c002000, 0x5c003000,
+ 0x5c004000, 0x05020077, 0x0501f04e, 0x82041d80,
+ 0x20000000, 0x05000008, 0x82041d80, 0xa0000000,
+ 0x05000005, 0x82041d80, 0x80000000, 0x05d60a22,
+ 0x84040d7a, 0x40006800, 0x58343002, 0x82183500,
+ 0x00ffffff, 0x40180000, 0x80600580, 0x05020039,
+ 0x800409c0, 0x05000014, 0x82041d80, 0x20000000,
+ 0x05000011, 0x82041d80, 0xa0000000, 0x05020005,
+ 0x50380000, 0x82000540, 0xa0000000, 0x44007000,
+ 0x4c200000, 0x4c100000, 0x4d440000, 0x40128800,
+ 0x05fdfc0f, 0x5c028800, 0x5c002000, 0x5c004000,
+ 0x05020050, 0x58340813, 0x80040130, 0x81200580,
+ 0x05020020, 0x82040500, 0x00ffffff, 0x59240805,
0x80040580, 0x05000004, 0x812000f0, 0x80040d40,
0x48046813, 0x40100000, 0x81440580, 0x05020009,
- 0x40366800, 0x8c200508, 0x05000052, 0x05fdff53,
- 0x05020050, 0x4947c857, 0x60740000, 0x0501f04e,
- 0x4947c857, 0x480bc857, 0x4823c857, 0x60680000,
- 0x0501f049, 0x4947c857, 0x4863c857, 0x4813c857,
- 0x60640000, 0x0501f044, 0x40100000, 0x81440580,
- 0x05020009, 0x58343002, 0x4947c857, 0x481bc857,
- 0x606c0000, 0x0501f03c, 0x4947c857, 0x607c0000,
- 0x0501f039, 0x80102000, 0x80387000, 0x83444c80,
- 0x000007f0, 0x05001007, 0x82104d80, 0x00000800,
- 0x0502000a, 0x59247009, 0x61c0200f, 0x0501f007,
- 0x82104d80, 0x000007f0, 0x05020004, 0x41782000,
- 0x42007000, 0x0010d400, 0x8058b040, 0x05fe0789,
- 0x801429c0, 0x05020005, 0x05d5fc3c, 0x4947c857,
- 0x60280000, 0x0501f020, 0x4d2c0000, 0x4c180000,
- 0x40603000, 0x05fdfb6f, 0x4947c857, 0x4937c857,
- 0x5c003000, 0x5c025800, 0x05fe07f5, 0x497a6a12,
- 0x59a80249, 0x8c00050a, 0x0502000d, 0x82600500,
- 0x00ffff00, 0x05000006, 0x59a8483d, 0x82244d00,
- 0x00ffff00, 0x80240580, 0x05020005, 0x82600500,
- 0x000000ff, 0x800000d0, 0x48026a12, 0x48626802,
- 0x59244805, 0x812000f0, 0x80244d40, 0x48266813,
- 0x80000580, 0x80000540, 0x5c00c000, 0x5c004800,
- 0x5c006800, 0x5c007000, 0x1c01f000, 0x5934000f,
- 0x8d0c0512, 0x05020005, 0x5934140b, 0x80081040,
- 0x05001002, 0x480a6c0b, 0x80000540, 0x00020b0d,
- 0x1c01f000, 0x59340a00, 0x84040d08, 0x80000540,
- 0x05000005, 0x5934000a, 0x8400054c, 0x4802680a,
- 0x0501f004, 0x599c0018, 0x8c000510, 0x05000002,
- 0x84040d48, 0x48066a00, 0x1c01f000, 0x4803c857,
- 0x4947c857, 0x4c300000, 0x90006530, 0x05000005,
- 0x4c000000, 0x0529ff89, 0x5c000000, 0x0502000e,
- 0x8c00050e, 0x05000009, 0x0501f88f, 0x0502000a,
- 0x4937c857, 0x592c020b, 0x8c00051c, 0x05020003,
- 0x41240800, 0x0501f89f, 0x80000580, 0x5c006000,
- 0x1c01f000, 0x90000541, 0x05fdf7fd, 0x4803c857,
- 0x4c580000, 0x4d440000, 0x40001000, 0x80000d80,
- 0x61c0b00f, 0x4c040000, 0x40068800, 0x4c080000,
- 0x40080000, 0x05fdffe0, 0x5c001000, 0x5c000800,
- 0x80040800, 0x8058b040, 0x05fe07f7, 0x8c080514,
- 0x05000005, 0x84081514, 0x6004b000, 0x61f0080f,
- 0x05fdf7f1, 0x4d300000, 0x4d400000, 0x4d240000,
- 0x0501fb9a, 0x61fe89ff, 0x42026000, 0x00111a70,
- 0x4a02600a, 0x00110210, 0x417a4800, 0x4926601d,
- 0x60a68000, 0x0515fafa, 0x4df00000, 0x0515f930,
- 0x0535fc55, 0x5c03e000, 0x05140ae6, 0x5c024800,
- 0x5c028000, 0x5c026000, 0x5c028800, 0x5c00b000,
- 0x1c01f000, 0x4c5c0000, 0x59340400, 0x8200bd80,
+ 0x40366800, 0x8c200508, 0x05000063, 0x05fdff11,
+ 0x05020061, 0x4947c857, 0x60740000, 0x0501f05f,
+ 0x4947c857, 0x4863c857, 0x4823c857, 0x58341813,
+ 0x800c1930, 0x60680000, 0x0501f058, 0x4947c857,
+ 0x4863c857, 0x4813c857, 0x60640000, 0x0501f053,
+ 0x40100000, 0x81440580, 0x0502000c, 0x58343002,
+ 0x58341813, 0x800c1930, 0x4947c857, 0x481bc857,
+ 0x480fc857, 0x606c0000, 0x0501f048, 0x4947c857,
+ 0x607c0000, 0x0501f045, 0x80102000, 0x80387000,
+ 0x82104d80, 0x000007f0, 0x0500000a, 0x59a800ad,
+ 0x80100580, 0x0500000f, 0x82104d80, 0x00000800,
+ 0x0502000f, 0x59247009, 0x61c0200f, 0x0501f00c,
+ 0x59a800ad, 0x82000580, 0x00000800, 0x05000005,
+ 0x60002010, 0x42007000, 0x0010e380, 0x0501f004,
+ 0x41782000, 0x42007000, 0x0010db80, 0x8058b040,
+ 0x05fe073d, 0x801429c0, 0x05020005, 0x05d5f9b6,
+ 0x4947c857, 0x60280000, 0x0501f024, 0x4d2c0000,
+ 0x4c180000, 0x40603000, 0x8c20053e, 0x05000003,
+ 0x05fdfabf, 0x0501f002, 0x05fdfac5, 0x4947c857,
+ 0x4937c857, 0x5c003000, 0x5c025800, 0x05fe07f1,
+ 0x497a6a12, 0x59a8024c, 0x8c00050a, 0x0502000d,
+ 0x82600500, 0x00ffff00, 0x05000006, 0x59a84840,
+ 0x82244d00, 0x00ffff00, 0x80240580, 0x05020005,
+ 0x82600500, 0x000000ff, 0x800000d0, 0x48026a12,
+ 0x48626802, 0x59244805, 0x812000f0, 0x80244d40,
+ 0x48266813, 0x80000580, 0x80000540, 0x5c00c000,
+ 0x5c004800, 0x5c006800, 0x5c007000, 0x1c01f000,
+ 0x5934000f, 0x8d0c0512, 0x05020005, 0x5934140b,
+ 0x80081040, 0x05001002, 0x480a6c0b, 0x80000540,
+ 0x00020b33, 0x1c01f000, 0x59340a00, 0x84040d08,
+ 0x80000540, 0x05000005, 0x5934000a, 0x8400054c,
+ 0x4802680a, 0x0501f004, 0x599c0018, 0x8c000510,
+ 0x05000002, 0x84040d48, 0x48066a00, 0x1c01f000,
+ 0x4803c857, 0x4947c857, 0x4c300000, 0x90006530,
+ 0x05000005, 0x4c000000, 0x052dfa60, 0x5c000000,
+ 0x0502000e, 0x8c00050e, 0x05000009, 0x0501f893,
+ 0x0502000a, 0x4937c857, 0x592c020b, 0x8c00051c,
+ 0x05020003, 0x41240800, 0x0501f8a9, 0x80000580,
+ 0x5c006000, 0x1c01f000, 0x90000541, 0x05fdf7fd,
+ 0x4803c857, 0x4c580000, 0x4d440000, 0x40001000,
+ 0x80000d80, 0x59a8b0ac, 0x4c040000, 0x40068800,
+ 0x4c080000, 0x40080000, 0x05fdffe0, 0x5c001000,
+ 0x5c000800, 0x80040800, 0x82040580, 0x000007f0,
+ 0x05020002, 0x60000810, 0x8058b040, 0x05fe07f3,
+ 0x8c080514, 0x05000005, 0x84081514, 0x6004b000,
+ 0x61f0080f, 0x05fdf7ed, 0x4d300000, 0x4d400000,
+ 0x4d240000, 0x0501fba6, 0x61fe89ff, 0x42026000,
+ 0x00115a14, 0x4a02600a, 0x001141b4, 0x417a4800,
+ 0x4926601d, 0x60a68000, 0x0515fcef, 0x4df00000,
+ 0x0515fb26, 0x0539f8a3, 0x5c03e000, 0x05140cdb,
+ 0x5c024800, 0x5c028000, 0x5c026000, 0x5c028800,
+ 0x5c00b000, 0x1c01f000, 0x4c5c0000, 0x59340400,
+ 0x8200bd80, 0x00000606, 0x5c00b800, 0x1c01f000,
+ 0x4c5c0000, 0x59340400, 0x8200bd80, 0x00000404,
+ 0x5c00b800, 0x1c01f000, 0x4c5c0000, 0x59340400,
+ 0x8200bd80, 0x00000404, 0x05000003, 0x8200bd80,
0x00000606, 0x5c00b800, 0x1c01f000, 0x4c5c0000,
- 0x59340400, 0x8200bd80, 0x00000404, 0x5c00b800,
- 0x1c01f000, 0x4c5c0000, 0x59340400, 0x8200bd80,
- 0x00000404, 0x05000003, 0x8200bd80, 0x00000606,
- 0x5c00b800, 0x1c01f000, 0x4c5c0000, 0x4c600000,
- 0x59340400, 0x8200bd00, 0x0000ff00, 0x825cc580,
- 0x00000400, 0x05000003, 0x825cc580, 0x00000600,
- 0x5c00c000, 0x5c00b800, 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,
- 0x592c020b, 0x8c00050c, 0x0500000d, 0x592e8c0a,
- 0x82000500, 0x00000080, 0x84000548, 0x4d3c0000,
- 0x60027820, 0x05fdff76, 0x5c027800, 0x90000541,
- 0x5c001000, 0x5c000800, 0x1c01f000, 0x80000580,
- 0x05fdf7fc, 0x59340013, 0x80024130, 0x83224c00,
- 0x0010d17b, 0x51264800, 0x812649c0, 0x05d40b63,
- 0x1c01f000, 0x83440c80, 0x00000800, 0x05021013,
- 0x83200400, 0x0010d17b, 0x50024800, 0x59240009,
- 0x83440c80, 0x000007f0, 0x05001003, 0x80040c00,
- 0x0501f003, 0x83440c00, 0x0010d400, 0x50040000,
- 0x80026d40, 0x05000005, 0x59340013, 0x80000130,
- 0x81200580, 0x1c01f000, 0x90000541, 0x05fdf7fe,
- 0x4937c857, 0x4c580000, 0x4d440000, 0x59368c03,
- 0x83440580, 0x0000ffff, 0x05000010, 0x83441480,
- 0x000007f0, 0x05021003, 0x05fdfb12, 0x0501f00b,
- 0x58040009, 0x80080c00, 0x50040000, 0x81340580,
- 0x05d60b3a, 0x4d2c0000, 0x45780800, 0x41365800,
- 0x05d5feee, 0x5c025800, 0x80000580, 0x5c028800,
- 0x5c00b000, 0x1c01f000, 0x592c040f, 0x82000500,
- 0x0000e000, 0x82000580, 0x00006000, 0x0500001e,
- 0x916c0583, 0x05000011, 0x916c0582, 0x05020100,
- 0x59a80249, 0x90000d38, 0x05020005, 0x59a80841,
- 0x800409c0, 0x05000009, 0x0501f0f9, 0x90000d03,
- 0x90040d83, 0x050200f6, 0x90000d28, 0x05020003,
- 0x8c00050c, 0x050000f2, 0x592e440b, 0x83224500,
- 0x000000ff, 0x0509f894, 0x050200cf, 0x592c100e,
- 0x82081500, 0x00ffffff, 0x59240005, 0x80080580,
- 0x050000d3, 0x592c0c0f, 0x82040d00, 0x0000e000,
- 0x82040480, 0x00008000, 0x050210cf, 0x592e8c0a,
- 0x83440480, 0x00000800, 0x05001015, 0x83440580,
- 0x0000ffff, 0x050200ba, 0x800409c0, 0x050200f0,
- 0x592c240d, 0x82100500, 0xffffff00, 0x050200be,
- 0x480bc857, 0x4813c857, 0x592c0011, 0x82000480,
- 0x00000841, 0x050210be, 0x614e7000, 0x0501fac3,
- 0x42026800, 0x00110210, 0x0501f093, 0x800409c0,
- 0x050200df, 0x41784000, 0x05fdfe1f, 0x050200cc,
- 0x592c240f, 0x8c100514, 0x0500000d, 0x592c240d,
- 0x82100500, 0xffffff00, 0x050200a7, 0x901005a0,
- 0x050200a9, 0x05fdff32, 0x050200b4, 0x05fdfb97,
- 0x60180800, 0x05fdf9f5, 0x0501f0bb, 0x59342204,
- 0x592c0011, 0x80100480, 0x050010a1, 0x614e7000,
- 0x592c240d, 0x82100500, 0xffffff00, 0x05020096,
- 0x4813c857, 0x592c040b, 0x82000500, 0x0000f000,
- 0x82000580, 0x00003000, 0x05020006, 0x59340200,
- 0x8c000508, 0x05020003, 0x90100583, 0x05020084,
- 0x592c0010, 0x800001c0, 0x05000065, 0x90100584,
- 0x05000083, 0xb0100591, 0x05000081, 0x90100583,
- 0x0500000f, 0x901005a0, 0x05000039, 0x901005a4,
- 0x05000033, 0x901005a1, 0x05000033, 0xb0100590,
- 0x0500002b, 0xb0100592, 0x05000027, 0x90100585,
- 0x05020055, 0x60067000, 0x0501f018, 0x600a7000,
- 0x59a800d1, 0x8c000502, 0x05000014, 0x05fdfef6,
- 0x05000012, 0x59340212, 0x82000500, 0x0000ff00,
- 0x60401000, 0x0502000b, 0x59a80249, 0x8c000506,
- 0x0502005b, 0x60201000, 0x59340002, 0x82000500,
- 0x00ff0000, 0x82000580, 0x00ff0000, 0x05000003,
- 0x0501f96f, 0x05020052, 0x051df8c1, 0x05000066,
- 0x64426407, 0x4926601d, 0x4936600a, 0x600c0800,
- 0x91380582, 0x05000002, 0x602c0800, 0x05fdf9a2,
- 0x0501f036, 0x60027000, 0x0501f002, 0x60127000,
- 0x05fdfeea, 0x0502005d, 0x0501f02b, 0x60ce7000,
- 0x0501f004, 0x60167000, 0x0501f002, 0x600e7000,
- 0x05fdfed9, 0x05020055, 0x59a800d1, 0x8c000502,
- 0x05000014, 0x05fdfec8, 0x05000012, 0x59340212,
- 0x82000500, 0x0000ff00, 0x60401000, 0x0502000b,
- 0x59a80249, 0x8c000506, 0x0502002d, 0x60201000,
- 0x59340002, 0x82000500, 0x00ff0000, 0x82000580,
- 0x00ff0000, 0x05000003, 0x0501f941, 0x05020024,
- 0x051df893, 0x05000038, 0x64426407, 0x4926601d,
- 0x4936600a, 0x60140800, 0x91380583, 0x05000002,
- 0x60240800, 0x05fdf974, 0x0501f008, 0x90102591,
- 0x05020029, 0x051df886, 0x0500002b, 0x64426407,
- 0x4926601d, 0x4936600a, 0x0529ffe8, 0x492e6009,
- 0x4932580c, 0x83340580, 0x00110210, 0x05000007,
- 0x592c0c0f, 0x8c040518, 0x05000004, 0x59340200,
- 0x84000514, 0x48026a00, 0x0009f800, 0x80000580,
- 0x1c01f000, 0x90000541, 0x05fdf7fe, 0x60281000,
- 0x0501f012, 0x60381000, 0x0501f010, 0x603c1000,
- 0x0501f00e, 0x60401000, 0x0501f00c, 0x60581000,
- 0x0501f00a, 0x605c1000, 0x0501f008, 0x60601000,
- 0x0501f006, 0x60781000, 0x0501f004, 0x60901000,
- 0x0501f002, 0x60801000, 0x60640800, 0x60c68000,
- 0x05fdf7e9, 0x600c0800, 0x0501f002, 0x60280800,
- 0x41781000, 0x05fdf7fa, 0x60240800, 0x59341400,
- 0x05fdf7f7, 0x60228000, 0x0501f004, 0x601c0800,
- 0x416c1000, 0x05fdf7f2, 0x41780800, 0x41781000,
- 0x05fdf7d9, 0x60028000, 0x05fdf7fc, 0x90004d9d,
- 0x05d40a1e, 0x90004d9a, 0x05020004, 0x40101000,
- 0x40000800, 0x05fdf7e6, 0x90004d9b, 0x05020003,
- 0x40181000, 0x05fdf7fb, 0x90004d9c, 0x05fc07f9,
- 0x90004d99, 0x05fc07ca, 0x05fdf7e1, 0x592e600c,
- 0x0529fd96, 0x05fc07cc, 0x59300c07, 0x90040591,
- 0x05fe07e1, 0x592c0c0f, 0x82041500, 0x0000e000,
- 0x82080580, 0x00006000, 0x05000021, 0x83440580,
- 0x0000ffff, 0x05020007, 0x5932680a, 0x83340580,
- 0x00110210, 0x05fe07d4, 0x61000810, 0x0501f00f,
- 0x592c100e, 0x82081500, 0x00ffffff, 0x41784000,
- 0x05fdfd29, 0x05fe07d6, 0x5930000a, 0x82000d80,
- 0x00110210, 0x05000003, 0x81340580, 0x05fe07c6,
- 0x4936600a, 0x59340a04, 0x592c0011, 0x80040480,
- 0x05fc17b3, 0x59300a03, 0x90040587, 0x05fe07be,
- 0x492e6009, 0x61527000, 0x05fdf78f, 0x0539f92f,
- 0x05fc07c1, 0x05fdf7b8, 0x492fc857, 0x592e600c,
- 0x83300580, 0xffffffff, 0x05020041, 0x592c020b,
- 0x8c000500, 0x0502006c, 0x8d0c050e, 0x05020059,
- 0x592e8c0a, 0x83440480, 0x00000800, 0x05021036,
- 0x592c380e, 0x821c3d00, 0x00ffffff, 0x05e5fa1d,
- 0x05020039, 0x49265805, 0x41784000, 0x592c100d,
- 0x82081500, 0x00ffffff, 0x05fdfcfb, 0x0502004b,
- 0x592e6017, 0x4933c857, 0x83300580, 0xffffffff,
- 0x05000018, 0x0529fd49, 0x0500002d, 0x591c1407,
- 0x800811c0, 0x05000013, 0x592c0411, 0x591c0a02,
- 0x80040580, 0x0502000f, 0x591c000a, 0x800001c0,
- 0x05020007, 0x591c082a, 0x59340002, 0x80040580,
- 0x82000500, 0x00ffffff, 0x0501f002, 0x81340580,
- 0x05020004, 0x90080587, 0x0502002c, 0x64923c03,
- 0x59240005, 0x592c080d, 0x82041500, 0x00ffffff,
- 0x80081580, 0x0500000c, 0x80040932, 0xb0040582,
- 0x0502000b, 0x49365806, 0x0501f8d5, 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, 0x05d4097b,
- 0x90004d9a, 0x05020003, 0x40101000, 0x05fdf7eb,
- 0x90004d9b, 0x05020003, 0x40181000, 0x05fdf7e7,
- 0x90004d9c, 0x05fc07e5, 0x90004d99, 0x05fc07e3,
- 0x05fdf7e7, 0x0539f98e, 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, 0x599c0017,
- 0x8c00050a, 0x05000003, 0x80000580, 0x1c01f000,
- 0x59a80249, 0x90000528, 0x05000007, 0x61f6880f,
- 0x417a4000, 0x05fdfdd0, 0x05020003, 0x5934000a,
- 0x8c000504, 0x1c01f000, 0x1c01f000, 0x4d440000,
- 0x4d340000, 0x80000580, 0x40001800, 0x40028800,
- 0x90080588, 0x05020002, 0x60041800, 0x0001fb00,
- 0x0502000a, 0x05fdfd6c, 0x05020008, 0x800c19c0,
- 0x05000004, 0x59340405, 0x8c000508, 0x05000003,
- 0x80081040, 0x05000009, 0x81468800, 0x83440480,
- 0x00000800, 0x05fc17f2, 0x80000580, 0x5c026800,
- 0x5c028800, 0x1c01f000, 0x90000541, 0x5c026800,
- 0x5c028800, 0x1c01f000, 0x60200800, 0x58d400e4,
- 0x8c00051c, 0x0502002f, 0x59a80249, 0x8c000508,
- 0x0502002c, 0x5934100a, 0x82081500, 0x0002e000,
- 0x41781800, 0x90080580, 0x0500000a, 0x800c1800,
- 0x82080580, 0x00002000, 0x05000006, 0x800c1800,
- 0x82080580, 0x00006000, 0x05000002, 0x800c1800,
- 0x42007000, 0x0010e060, 0x58380401, 0x8c000504,
- 0x05000006, 0x900c2c84, 0x05021016, 0x820c0400,
- 0x00105d02, 0x0501f012, 0x41782000, 0x59342a04,
- 0x82140480, 0x00000800, 0x05021006, 0x80102000,
- 0x82140480, 0x00000400, 0x05021002, 0x80102000,
- 0x800c00c2, 0x800c0400, 0x80100400, 0x90002c89,
- 0x05021004, 0x82000400, 0x00105d06, 0x50000800,
- 0x48066c04, 0x1c01f000, 0x00000002, 0x00000004,
- 0x00000008, 0x00000008, 0x00002802, 0x00001402,
- 0x00000a02, 0x00001402, 0x00000a02, 0x00000502,
- 0x00000a02, 0x00000502, 0x00000504, 0x59a8089e,
- 0x800409c0, 0x05020004, 0x492f509d, 0x492f509e,
- 0x0519f5b4, 0x492c0800, 0x492f509e, 0x1c01f000,
- 0x5934000f, 0x41784000, 0x80001540, 0x05000010,
- 0x58080208, 0x82000500, 0x000000ff, 0x90000592,
- 0x05000005, 0xb00005a0, 0x05000003, 0x90000588,
- 0x05020004, 0x58080210, 0x80040580, 0x05000005,
- 0x58080000, 0x40084000, 0x05fdf7f0, 0x90000541,
- 0x1c01f000, 0x4c5c0000, 0x4c600000, 0x592e8c0a,
- 0x592e440b, 0x83224500, 0x000000ff, 0x592cbc0c,
- 0x592cc40b, 0x4947c857, 0x4923c857, 0x485fc857,
- 0x4863c857, 0x8260c500, 0x0000f000, 0x82600580,
- 0x00003000, 0x05020007, 0x59340200, 0x8c000508,
- 0x05020004, 0x599c0018, 0x8c000510, 0x0500001a,
- 0x8c5c050a, 0x0500002b, 0x485fc856, 0x812241c0,
- 0x05020013, 0x83440580, 0x000007fe, 0x0502000e,
- 0x42003000, 0x00fffffe, 0x05f9ffc6, 0x05020017,
- 0x4937c857, 0x052dfa32, 0x05000012, 0x80000580,
- 0x5c00c000, 0x5c00b800, 0x1c01f000, 0x90000541,
- 0x05fdf7fc, 0x60281000, 0x0501f007, 0x60381000,
- 0x0501f005, 0x603c1000, 0x0501f003, 0x60601000,
- 0x0501f001, 0x60640800, 0x60c68000, 0x05fdf7f4,
- 0x600c0800, 0x0501f002, 0x60280800, 0x41781000,
- 0x05fdf7fa, 0x60228000, 0x0501f001, 0x41780800,
- 0x41781000, 0x05fdf7ea, 0x60028000, 0x05fdf7fc,
- 0x485fc856, 0x812241c0, 0x05fe07e9, 0x83440580,
- 0x000007fe, 0x05fe07e4, 0x42003000, 0x00fffffe,
- 0x05f9ff9c, 0x05fe07ed, 0x4937c857, 0x592e600e,
- 0x0529fbe6, 0x05fc07e2, 0x59300c07, 0x90040591,
- 0x05fe07e9, 0x5930000a, 0x800001c0, 0x05000003,
- 0x81340580, 0x05fe07e4, 0x4936600a, 0x59300a03,
- 0x90040587, 0x05fe07e0, 0x592c0a0d, 0x4807c857,
- 0x4806621b, 0x497a641b, 0x492e6009, 0x64126407,
- 0x8c5c050e, 0x05020013, 0x4c5c0000, 0x4c600000,
- 0x4c640000, 0x592cba0b, 0x485f54cd, 0x485f52cc,
- 0x592cc80f, 0x4200c000, 0x001106f2, 0x0539f916,
- 0x5c00c800, 0x5c00c000, 0x5c00b800, 0x616a7000,
- 0x64066203, 0x493a6403, 0x0511facf, 0x05fdf7b0,
- 0x616e7000, 0x592c0010, 0x4802641c, 0x592c0011,
- 0x4802621c, 0x05fdf7f7, 0x42000000, 0x00110210,
- 0x4a000400, 0x00000707, 0x4a000204, 0x00000840,
- 0x4a000403, 0x0000ffff, 0x49780200, 0x1c01f000,
- 0x4d340000, 0x4d440000, 0x4c580000, 0x61c0b00f,
- 0x4803c856, 0x417a8800, 0x0001fb00, 0x05020006,
- 0x59340200, 0x8c00051a, 0x05000003, 0x8400051a,
- 0x48026a00, 0x81468800, 0x8058b040, 0x05fe07f7,
- 0x5c00b000, 0x5c028800, 0x5c026800, 0x1c01f000,
- 0x592c2a08, 0x82142d00, 0x000000ff, 0x90140592,
- 0x05000006, 0xb01405b2, 0x05000004, 0xb01405ba,
- 0x05000002, 0x90000541, 0x1c01f000, 0x64033003,
+ 0x4c600000, 0x59340400, 0x8200bd00, 0x0000ff00,
+ 0x825cc580, 0x00000400, 0x05000003, 0x825cc580,
+ 0x00000600, 0x5c00c000, 0x5c00b800, 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, 0x592c020b, 0x8c00050c, 0x0500000d,
+ 0x592e8c0a, 0x82000500, 0x00000080, 0x84000548,
+ 0x4d3c0000, 0x60027820, 0x05fdff72, 0x5c027800,
+ 0x90000541, 0x5c001000, 0x5c000800, 0x1c01f000,
+ 0x80000580, 0x05fdf7fc, 0x59340013, 0x80024130,
+ 0x83224c00, 0x0010d8f9, 0x51264800, 0x812649c0,
+ 0x05d408d5, 0x1c01f000, 0x59a800ad, 0x81440480,
+ 0x05021019, 0x83200400, 0x0010d8f9, 0x50024800,
+ 0x59240009, 0x83440c80, 0x000007f0, 0x05001009,
+ 0x83441480, 0x00000800, 0x05001004, 0x0001fb08,
+ 0x0502000d, 0x0501f008, 0x80040c00, 0x0501f003,
+ 0x83440c00, 0x0010db80, 0x50040000, 0x80026d40,
+ 0x05000005, 0x59340013, 0x80000130, 0x81200580,
+ 0x1c01f000, 0x90000541, 0x05fdf7fe, 0x4937c857,
+ 0x4c580000, 0x4d440000, 0x59368c03, 0x83440580,
+ 0x0000ffff, 0x05000013, 0x83441480, 0x000007f0,
+ 0x05001004, 0x83440480, 0x00000800, 0x05001003,
+ 0x05fdfa83, 0x0501f00b, 0x58040009, 0x80080c00,
+ 0x50040000, 0x81340580, 0x05d608a3, 0x4d2c0000,
+ 0x45780800, 0x41365800, 0x05d5fc53, 0x5c025800,
+ 0x80000580, 0x5c028800, 0x5c00b000, 0x1c01f000,
+ 0x592c040f, 0x82000500, 0x0000e000, 0x82000580,
+ 0x00006000, 0x0500001e, 0x916c0583, 0x05000011,
+ 0x916c0582, 0x050200ff, 0x59a8024c, 0x90000d38,
+ 0x05020005, 0x59a80844, 0x800409c0, 0x05000009,
+ 0x0501f0f8, 0x90000d03, 0x90040d83, 0x050200f5,
+ 0x90000d28, 0x05020003, 0x8c00050c, 0x050000f1,
+ 0x592e440b, 0x83224500, 0x000000ff, 0x0509f92a,
+ 0x050200ce, 0x592c100e, 0x82081500, 0x00ffffff,
+ 0x59240005, 0x80080580, 0x050000d2, 0x592c0c0f,
+ 0x82040d00, 0x0000e000, 0x82040480, 0x00008000,
+ 0x050210ce, 0x592e8c0a, 0x59a800ad, 0x81440480,
+ 0x05001014, 0x83440580, 0x0000ffff, 0x050200b9,
+ 0x800409c0, 0x050200f1, 0x592c240d, 0x82100500,
+ 0xffffff00, 0x050200bd, 0x480bc857, 0x4813c857,
+ 0x61000810, 0x0501faf8, 0x050200be, 0x614e7000,
+ 0x0501fac7, 0x42026800, 0x001141b4, 0x0501f093,
+ 0x800409c0, 0x050200e1, 0x42004000, 0x80000000,
+ 0x05fdfdbf, 0x050200cb, 0x592c240f, 0x8c100514,
+ 0x0500000d, 0x592c240d, 0x82100500, 0xffffff00,
+ 0x050200a6, 0x901005a0, 0x050200a8, 0x05fdff29,
+ 0x050200b3, 0x05fdfb2b, 0x60180800, 0x05fdf936,
+ 0x0501f0ba, 0x59340a04, 0x0501fadb, 0x050200a1,
+ 0x614e7000, 0x592c240d, 0x82100500, 0xffffff00,
+ 0x05020096, 0x4813c857, 0x592c040b, 0x82000500,
+ 0x0000f000, 0x82000580, 0x00003000, 0x05020006,
+ 0x59340200, 0x8c000508, 0x05020003, 0x90100583,
+ 0x05020084, 0x592c0010, 0x800001c0, 0x05000065,
+ 0x90100584, 0x05000083, 0xb0100591, 0x05000081,
+ 0x90100583, 0x0500000f, 0x901005a0, 0x05000039,
+ 0x901005a4, 0x05000033, 0x901005a1, 0x05000033,
+ 0xb0100590, 0x0500002b, 0xb0100592, 0x05000027,
+ 0x90100585, 0x05020055, 0x60067000, 0x0501f018,
+ 0x600a7000, 0x59a800d6, 0x8c000502, 0x05000014,
+ 0x05fdfeee, 0x05000012, 0x59340212, 0x82000500,
+ 0x0000ff00, 0x60401000, 0x0502000b, 0x59a8024c,
+ 0x8c000506, 0x0502005b, 0x60201000, 0x59340002,
+ 0x82000500, 0x00ff0000, 0x82000580, 0x00ff0000,
+ 0x05000003, 0x0501f973, 0x05020052, 0x051dfb05,
+ 0x05000066, 0x64426407, 0x4926601d, 0x4936600a,
+ 0x600c0800, 0x91380582, 0x05000002, 0x602c0800,
+ 0x05fdf8e4, 0x0501f036, 0x60027000, 0x0501f002,
+ 0x60127000, 0x05fdfee2, 0x0502005d, 0x0501f02b,
+ 0x60ce7000, 0x0501f004, 0x60167000, 0x0501f002,
+ 0x600e7000, 0x05fdfed1, 0x05020055, 0x59a800d6,
+ 0x8c000502, 0x05000014, 0x05fdfec0, 0x05000012,
+ 0x59340212, 0x82000500, 0x0000ff00, 0x60401000,
+ 0x0502000b, 0x59a8024c, 0x8c000506, 0x0502002d,
+ 0x60201000, 0x59340002, 0x82000500, 0x00ff0000,
+ 0x82000580, 0x00ff0000, 0x05000003, 0x0501f945,
+ 0x05020024, 0x051dfad7, 0x05000038, 0x64426407,
+ 0x4926601d, 0x4936600a, 0x60140800, 0x91380583,
+ 0x05000002, 0x60240800, 0x05fdf8b6, 0x0501f008,
+ 0x90102591, 0x05020029, 0x051dfaca, 0x0500002b,
+ 0x64426407, 0x4926601d, 0x4936600a, 0x052dfabd,
+ 0x492e6009, 0x4932580c, 0x83340580, 0x001141b4,
+ 0x05000007, 0x592c0c0f, 0x8c040518, 0x05000004,
+ 0x59340200, 0x84000514, 0x48026a00, 0x0009f839,
+ 0x80000580, 0x1c01f000, 0x90000541, 0x05fdf7fe,
+ 0x60281000, 0x0501f012, 0x60381000, 0x0501f010,
+ 0x603c1000, 0x0501f00e, 0x60401000, 0x0501f00c,
+ 0x60581000, 0x0501f00a, 0x605c1000, 0x0501f008,
+ 0x60601000, 0x0501f006, 0x60781000, 0x0501f004,
+ 0x40001000, 0x0501f002, 0x60801000, 0x60640800,
+ 0x60c68000, 0x05fdf7e9, 0x600c0800, 0x0501f002,
+ 0x60280800, 0x41781000, 0x05fdf7fa, 0x60240800,
+ 0x59341400, 0x05fdf7f7, 0x60228000, 0x0501f004,
+ 0x601c0800, 0x416c1000, 0x05fdf7f2, 0x41780800,
+ 0x41781000, 0x05fdf7d9, 0x60028000, 0x05fdf7fc,
+ 0x90004d9d, 0x05d00f88, 0x90004d9a, 0x05020004,
+ 0x40101000, 0x40000800, 0x05fdf7e6, 0x90004d9b,
+ 0x05020003, 0x40181000, 0x05fdf7fb, 0x90004d9c,
+ 0x05fc07f9, 0x90004d99, 0x05fc07ca, 0x90004da0,
+ 0x05fc07f5, 0x05fdf7df, 0x592e600c, 0x052df85f,
+ 0x05fc07ca, 0x59300c07, 0x90040591, 0x05fe07df,
+ 0x592c0c0f, 0x82041500, 0x0000e000, 0x82080580,
+ 0x00006000, 0x05000021, 0x83440580, 0x0000ffff,
+ 0x05020007, 0x5932680a, 0x83340580, 0x001141b4,
+ 0x05fe07d2, 0x61000810, 0x0501f010, 0x592c100e,
+ 0x82081500, 0x00ffffff, 0x42004000, 0x80000000,
+ 0x05fdfcc7, 0x05fe07d3, 0x5930000a, 0x82000d80,
+ 0x001141b4, 0x05000003, 0x81340580, 0x05fe07c3,
+ 0x4936600a, 0x59340a04, 0x0501f9eb, 0x05fe07b1,
+ 0x59300a03, 0x90040587, 0x05fe07bc, 0x492e6009,
+ 0x61527000, 0x05fdf78d, 0x0539fdbf, 0x05fc07bf,
+ 0x05fdf7b6, 0x492fc857, 0x592e600c, 0x83300580,
+ 0xffffffff, 0x05020041, 0x592c020b, 0x8c000500,
+ 0x0502006e, 0x8d0c050e, 0x05020059, 0x592e8c0a,
+ 0x59a800ad, 0x81440480, 0x05021036, 0x592c380e,
+ 0x821c3d00, 0x00ffffff, 0x05e1ffe6, 0x05020039,
+ 0x49265805, 0x41784000, 0x592c100d, 0x82081500,
+ 0x00ffffff, 0x05fdfc9a, 0x0502004b, 0x592e6017,
+ 0x4933c857, 0x83300580, 0xffffffff, 0x05000018,
+ 0x052df812, 0x0500002d, 0x591c1407, 0x800811c0,
+ 0x05000013, 0x592c0411, 0x591c0a02, 0x80040580,
+ 0x0502000f, 0x591c000a, 0x800001c0, 0x05020007,
+ 0x591c082a, 0x59340002, 0x80040580, 0x82000500,
+ 0x00ffffff, 0x0501f002, 0x81340580, 0x05020004,
+ 0x90080587, 0x0502002c, 0x64923c03, 0x59240005,
+ 0x592c080d, 0x82041500, 0x00ffffff, 0x80081580,
+ 0x0500000c, 0x80040932, 0xb0040582, 0x0502000b,
+ 0x49365806, 0x0501f8d7, 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, 0x05d00ee3, 0x90004d9a,
+ 0x05020003, 0x40101000, 0x05fdf7eb, 0x90004d9b,
+ 0x05020003, 0x40181000, 0x05fdf7e7, 0x90004d9c,
+ 0x05fc07e5, 0x90004d99, 0x05fc07e3, 0x90004da0,
+ 0x05fc07e1, 0x05fdf7e5, 0x0539fe20, 0x60028000,
+ 0x05fdf7e6, 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,
+ 0x599c0017, 0x8c00050a, 0x05000003, 0x80000580,
+ 0x1c01f000, 0x59a8024c, 0x90000528, 0x05000007,
+ 0x61f6880f, 0x417a4000, 0x05fdfdc4, 0x05020003,
+ 0x5934000a, 0x8c000504, 0x1c01f000, 0x1c01f000,
+ 0x4d440000, 0x4d340000, 0x80000580, 0x40001800,
+ 0x40028800, 0x90080588, 0x05020002, 0x60041800,
+ 0x0001fb08, 0x0502000a, 0x05fdfd60, 0x05020008,
+ 0x800c19c0, 0x05000004, 0x59340405, 0x8c000508,
+ 0x05000003, 0x80081040, 0x05000009, 0x81468800,
+ 0x59a800ad, 0x81440480, 0x05fc17f2, 0x80000580,
+ 0x5c026800, 0x5c028800, 0x1c01f000, 0x90000541,
+ 0x5c026800, 0x5c028800, 0x1c01f000, 0x60200800,
+ 0x58d400e4, 0x8c00051c, 0x0502002f, 0x59a8024c,
+ 0x8c000508, 0x0502002c, 0x5934100a, 0x82081500,
+ 0x0002e000, 0x41781800, 0x90080580, 0x0500000a,
+ 0x800c1800, 0x82080580, 0x00002000, 0x05000006,
+ 0x800c1800, 0x82080580, 0x00006000, 0x05000002,
+ 0x800c1800, 0x42007000, 0x00111ffa, 0x58380401,
+ 0x8c000504, 0x05000006, 0x900c2c84, 0x05021016,
+ 0x820c0400, 0x00105fd7, 0x0501f012, 0x41782000,
+ 0x59342a04, 0x82140480, 0x00000800, 0x05021006,
+ 0x80102000, 0x82140480, 0x00000400, 0x05021002,
+ 0x80102000, 0x800c00c2, 0x800c0400, 0x80100400,
+ 0x90002c89, 0x05021004, 0x82000400, 0x00105fdb,
+ 0x50000800, 0x48066c04, 0x1c01f000, 0x00000002,
+ 0x00000004, 0x00000008, 0x00000008, 0x00002802,
+ 0x00001402, 0x00000a02, 0x00001402, 0x00000a02,
+ 0x00000502, 0x00000a02, 0x00000502, 0x00000504,
+ 0x59a808a1, 0x800409c0, 0x05020004, 0x492f50a0,
+ 0x492f50a1, 0x0519f7d3, 0x492c0800, 0x492f50a1,
+ 0x1c01f000, 0x5934000f, 0x41784000, 0x80001540,
+ 0x05000010, 0x58080208, 0x82000500, 0x000000ff,
+ 0x90000592, 0x05000005, 0xb00005a0, 0x05000003,
+ 0x90000588, 0x05020004, 0x58080210, 0x80040580,
+ 0x05000005, 0x58080000, 0x40084000, 0x05fdf7f0,
+ 0x90000541, 0x1c01f000, 0x4c5c0000, 0x4c600000,
+ 0x592e8c0a, 0x592e440b, 0x83224500, 0x000000ff,
+ 0x592cbc0c, 0x592cc40b, 0x4947c857, 0x4923c857,
+ 0x485fc857, 0x4863c857, 0x8260c500, 0x0000f000,
+ 0x82600580, 0x00003000, 0x05020007, 0x59340200,
+ 0x8c000508, 0x05020004, 0x599c0018, 0x8c000510,
+ 0x0500001a, 0x8c5c050a, 0x0500002b, 0x485fc856,
+ 0x812241c0, 0x05020013, 0x83440580, 0x000007fe,
+ 0x0502000e, 0x42003000, 0x00fffffe, 0x05f9ff0c,
+ 0x05020017, 0x4937c857, 0x052dfd0e, 0x05000012,
+ 0x80000580, 0x5c00c000, 0x5c00b800, 0x1c01f000,
+ 0x90000541, 0x05fdf7fc, 0x60281000, 0x0501f007,
+ 0x60381000, 0x0501f005, 0x603c1000, 0x0501f003,
+ 0x60601000, 0x0501f001, 0x60640800, 0x60c68000,
+ 0x05fdf7f4, 0x600c0800, 0x0501f002, 0x60280800,
+ 0x41781000, 0x05fdf7fa, 0x60228000, 0x0501f001,
+ 0x41780800, 0x41781000, 0x05fdf7ea, 0x60028000,
+ 0x05fdf7fc, 0x485fc856, 0x812241c0, 0x05fe07e9,
+ 0x83440580, 0x000007fe, 0x05fe07e4, 0x42003000,
+ 0x00fffffe, 0x05f9fee2, 0x05fe07ed, 0x4937c857,
+ 0x592e600e, 0x0529fead, 0x05fc07e2, 0x59300c07,
+ 0x90040591, 0x05fe07e9, 0x5930000a, 0x800001c0,
+ 0x05000003, 0x81340580, 0x05fe07e4, 0x4936600a,
+ 0x59300a03, 0x90040587, 0x05fe07e0, 0x592c0a0d,
+ 0x4807c857, 0x4806621b, 0x497a641b, 0x492e6009,
+ 0x64126407, 0x8c5c050e, 0x05020013, 0x4c5c0000,
+ 0x4c600000, 0x4c640000, 0x592cba0b, 0x485f54d2,
+ 0x485f52d1, 0x592cc80f, 0x4200c000, 0x00114696,
+ 0x0539fda8, 0x5c00c800, 0x5c00c000, 0x5c00b800,
+ 0x616a7000, 0x64066203, 0x493a6403, 0x0511fcb3,
+ 0x05fdf7b0, 0x616e7000, 0x592c0010, 0x4802641c,
+ 0x592c0011, 0x4802621c, 0x05fdf7f7, 0x42000000,
+ 0x001141b4, 0x4a000400, 0x00000707, 0x4a000204,
+ 0x00000840, 0x4a000403, 0x0000ffff, 0x49780200,
+ 0x1c01f000, 0x4d340000, 0x4d440000, 0x4c580000,
+ 0x59a8b0ac, 0x4803c856, 0x417a8800, 0x0001fb08,
+ 0x05020006, 0x59340200, 0x8c00051a, 0x05000003,
+ 0x8400051a, 0x48026a00, 0x8058b040, 0x05000007,
+ 0x81468800, 0x83440580, 0x000007f0, 0x05fe07f4,
+ 0x60028810, 0x05fdf7f2, 0x5c00b000, 0x5c028800,
+ 0x5c026800, 0x1c01f000, 0x592c2a08, 0x82142d00,
+ 0x000000ff, 0x90140592, 0x05000006, 0xb01405b2,
+ 0x05000004, 0xb01405ba, 0x05000002, 0x90000541,
+ 0x1c01f000, 0x592c0011, 0x800001c0, 0x05000005,
+ 0x80040480, 0x05001003, 0x80000580, 0x1c01f000,
+ 0x60900000, 0x80000540, 0x1c01f000, 0x64033003,
0x4a03b104, 0x80000000, 0x59d80105, 0x4a03b104,
0x60000001, 0x1c01f000, 0x599c0018, 0x4803c856,
0x497b3006, 0x497b3007, 0x9000050f, 0x48033004,
@@ -6057,36 +6242,36 @@ static const uint32_t isp_2500_risc_code[] = {
0x640f3003, 0x05fdf7f8, 0x8d0c0520, 0x05020003,
0x64133003, 0x05fdf7f4, 0x64173003, 0x05fdf7f2,
0x592c0208, 0x492fc857, 0x80000540, 0x05000007,
- 0x42034000, 0x0010dceb, 0x59a1d806, 0x80edd9c0,
- 0x05d00fba, 0x0501f005, 0x052df885, 0x05d20fb7,
+ 0x42034000, 0x00111c71, 0x59a1d806, 0x80edd9c0,
+ 0x05d00d11, 0x0501f005, 0x052dfb47, 0x05d20d0e,
0x5931d82d, 0x58ef400b, 0x58ec0009, 0x800001c0,
- 0x05d00fb2, 0x0801f800, 0x1c01f000, 0x5c000000,
+ 0x05d00d09, 0x0801f800, 0x1c01f000, 0x5c000000,
0x4c000000, 0x4803c857, 0x492fc857, 0x4943c857,
- 0x4807c857, 0x4c040000, 0x0005f9f3, 0x5c000800,
- 0x4c040000, 0x0505fdd3, 0x5c000800, 0x4a025a08,
+ 0x4807c857, 0x4c040000, 0x0005fa1a, 0x5c000800,
+ 0x4c040000, 0x0505fe77, 0x5c000800, 0x4a025a08,
0x00000103, 0x49425a0a, 0x48065a0c, 0x4a025c0a,
0x0000ffff, 0x813261c0, 0x05000003, 0x59300402,
0x48025c0a, 0x592c020c, 0x8c000512, 0x05020006,
0x912c040d, 0x05011000, 0x4803c840, 0x642fc842,
- 0x05011000, 0x1c01f000, 0x59765800, 0x0001fdfd,
- 0x592c1005, 0x800811c0, 0x000205e2, 0x1c01f000,
+ 0x05011000, 0x1c01f000, 0x59765800, 0x0001fe23,
+ 0x592c1005, 0x800811c0, 0x00020608, 0x1c01f000,
0x4c540000, 0x4c580000, 0x4c5c0000, 0x4d2c0000,
- 0x4c600000, 0x400cc000, 0x4000b800, 0x0539fa9d,
- 0x4178a800, 0x05d5fb18, 0x050000c8, 0x05011000,
+ 0x4c600000, 0x400cc000, 0x4000b800, 0x0539ff34,
+ 0x4178a800, 0x05d5f87c, 0x050000c8, 0x05011000,
0x485fc857, 0x912c0408, 0x4803c840, 0x6443c842,
0x40000000, 0x05fd17ff, 0x412c7000, 0x4a025808,
- 0x00000132, 0x497a5809, 0x42000000, 0x0010de60,
+ 0x00000132, 0x497a5809, 0x42000000, 0x00111dfa,
0x50000000, 0x48025802, 0x805cb9c0, 0x05020060,
- 0x912e5c0b, 0x417a4000, 0x42024800, 0x0010e512,
+ 0x912e5c0b, 0x417a4000, 0x42024800, 0x001124b6,
0x41786800, 0x59240a00, 0x9004050f, 0x0c01f001,
- 0x00105e8d, 0x00105e8d, 0x00105e8d, 0x00105e8d,
- 0x00105e8d, 0x00105e8d, 0x00105e8d, 0x00105e84,
- 0x00105e8d, 0x00105e8d, 0x00105e8d, 0x00105e8d,
- 0x00105e8d, 0x00105e8d, 0x00105e8d, 0x00105e8d,
+ 0x00106171, 0x00106171, 0x00106171, 0x00106171,
+ 0x00106171, 0x00106171, 0x00106171, 0x00106168,
+ 0x00106171, 0x00106171, 0x00106171, 0x00106171,
+ 0x00106171, 0x00106171, 0x00106171, 0x00106171,
0x8054a800, 0x812241c0, 0x05020007, 0x59240805,
0x805c00f0, 0x80040d40, 0x48065800, 0x812e5800,
- 0x0501f030, 0x90340503, 0x0c01f001, 0x00105e93,
- 0x00105e9b, 0x00105ea4, 0x00105ead, 0x91200581,
+ 0x0501f030, 0x90340503, 0x0c01f001, 0x00106177,
+ 0x0010617f, 0x00106188, 0x00106191, 0x91200581,
0x05020003, 0x60042000, 0x0501f020, 0x912004a0,
0x0500101d, 0x80346800, 0x0501f01b, 0x912005a1,
0x05020004, 0x812e5800, 0x60042000, 0x0501f017,
@@ -6098,371 +6283,374 @@ static const uint32_t isp_2500_risc_code[] = {
0x80346800, 0x801020c2, 0x90040507, 0x90000587,
0x05020004, 0x592c0000, 0x80100540, 0x48025800,
0x91264c0d, 0x81224000, 0x8058b040, 0x05fe07b2,
- 0x8054a9c0, 0x403a5800, 0x0500005f, 0x0539fa31,
- 0x0539fa51, 0x05020002, 0x8058b040, 0x805800d0,
+ 0x8054a9c0, 0x403a5800, 0x0500005f, 0x0539fec8,
+ 0x0539fee8, 0x05020002, 0x8058b040, 0x805800d0,
0x80540540, 0x48025a0a, 0x0501f050, 0x4943c857,
0x4923c857, 0x91400581, 0x05020004, 0x48165a0c,
0x90140583, 0x0500004d, 0x83400d00, 0x000000ff,
0x90040584, 0x05000049, 0x90040586, 0x05000047,
0x83400d00, 0x0000ff00, 0x05000003, 0x81400110,
0x48025810, 0x814000d0, 0x81200540, 0x48025c0a,
- 0x0539fa35, 0x05020002, 0x8058b040, 0x805800d0,
+ 0x0539fecc, 0x05020002, 0x8058b040, 0x805800d0,
0x90000541, 0x48025a0a, 0x59240805, 0x805c00f0,
0x80040d40, 0x4806580b, 0x5924000b, 0x4802580f,
0x592c020c, 0x80600540, 0x48025a0c, 0x91400d81,
0x0500002a, 0x4d340000, 0x4d440000, 0x61fa880f,
- 0x05fdfb85, 0x05d20ee5, 0x592c020c, 0x8400055a,
+ 0x05fdfb6a, 0x05d20c3c, 0x592c020c, 0x8400055a,
0x48025a0c, 0x59340006, 0x9c0001c0, 0x48025812,
0x59340007, 0x9c0001c0, 0x48025813, 0x59340008,
0x9c0001c0, 0x48025814, 0x59340009, 0x9c0001c0,
- 0x48025815, 0x0501f9a9, 0x05020006, 0x59a80249,
+ 0x48025815, 0x0501f9af, 0x05020006, 0x59a8024c,
0x8c000508, 0x05020005, 0x6000080c, 0x0501f007,
0x60000804, 0x0501f005, 0x592c020c, 0x84000558,
0x48025a0c, 0x60000808, 0x592c020c, 0x82000500,
0x0000f1ff, 0x80040540, 0x4803c857, 0x48025a0c,
- 0x5c028800, 0x5c026800, 0x0539fa16, 0x0502000d,
- 0x0001fb82, 0x0501f005, 0x59cc0007, 0x48025810,
- 0x05fdf7bd, 0x05d5fa71, 0x5c00c000, 0x5c025800,
+ 0x5c028800, 0x5c026800, 0x0539fead, 0x0502000d,
+ 0x0001fba8, 0x0501f005, 0x59cc0007, 0x48025810,
+ 0x05fdf7bd, 0x05d1ffc4, 0x5c00c000, 0x5c025800,
0x5c00b800, 0x5c00b000, 0x5c00a800, 0x1c01f000,
- 0x0535fdb1, 0x05fdf7f9, 0x59a8003f, 0x90000c8a,
- 0x05d21eae, 0x0c01f808, 0x4a038805, 0x000000f0,
- 0x59c400a3, 0x82000500, 0x02870000, 0x05d20ea7,
- 0x1c01f000, 0x00105fb3, 0x00105f40, 0x00105f58,
- 0x00105f82, 0x00105fa6, 0x001005da, 0x001005da,
- 0x00105f58, 0x001005da, 0x00105f3f, 0x1c01f000,
- 0x600c2000, 0x0501fbad, 0x4a038808, 0x00000204,
- 0x0501fba1, 0x59c40805, 0x8c04050e, 0x05020010,
+ 0x0539fa2a, 0x05fdf7f9, 0x59a80042, 0x90000c8a,
+ 0x05d21c05, 0x0c01f808, 0x4a038805, 0x000000f0,
+ 0x59c400a3, 0x82000500, 0x02870000, 0x05d20bfe,
+ 0x1c01f000, 0x00106297, 0x00106224, 0x0010623c,
+ 0x00106266, 0x0010628a, 0x00100615, 0x00100615,
+ 0x0010623c, 0x00100615, 0x00106223, 0x1c01f000,
+ 0x600c2000, 0x0501fbb9, 0x4a038808, 0x00000204,
+ 0x0501fbac, 0x59c40805, 0x8c04050e, 0x05020010,
0x8c04050a, 0x05020009, 0x8c04050c, 0x05020005,
- 0x8c040508, 0x0500000a, 0x640f503f, 0x0501f007,
- 0x6403503f, 0x0501f005, 0x42000000, 0x0010e3a4,
- 0x0539f888, 0x640b503f, 0x0501f898, 0x1c01f000,
- 0x497b50a8, 0x60002000, 0x0501fb94, 0x4a038808,
+ 0x8c040508, 0x0500000a, 0x640f5042, 0x0501f007,
+ 0x64035042, 0x0501f005, 0x42000000, 0x00112345,
+ 0x0539fd1f, 0x640b5042, 0x0501f898, 0x1c01f000,
+ 0x497b50ab, 0x60002000, 0x0501fba0, 0x4a038808,
0x00000202, 0x59c40805, 0x8c040508, 0x05020020,
0x8c04050c, 0x0502001c, 0x8c04050e, 0x05020018,
- 0x82040500, 0x000000f0, 0x0502001b, 0x0501fb7e,
+ 0x82040500, 0x000000f0, 0x0502001b, 0x0501fb89,
0x4a038808, 0x00000280, 0x59c40002, 0x8400050c,
- 0x48038802, 0x0501f959, 0x4d3c0000, 0x60067800,
- 0x0529feb7, 0x5c027800, 0x59c410a3, 0x84081518,
- 0x05ddff2b, 0x4a038808, 0x00000280, 0x60082000,
- 0x0501fb76, 0x6427503f, 0x0501f007, 0x6407503f,
- 0x0501f004, 0x6403503f, 0x0501f002, 0x640f503f,
- 0x0501f86e, 0x1c01f000, 0x60042000, 0x0501fb6b,
- 0x59c410a3, 0x84081518, 0x05ddff19, 0x4a038808,
+ 0x48038802, 0x0501f95f, 0x4d3c0000, 0x60067800,
+ 0x052df97a, 0x5c027800, 0x59c410a3, 0x84081518,
+ 0x05ddfcc7, 0x4a038808, 0x00000280, 0x60082000,
+ 0x0501fb82, 0x64275042, 0x0501f007, 0x64075042,
+ 0x0501f004, 0x64035042, 0x0501f002, 0x640f5042,
+ 0x0501f86e, 0x1c01f000, 0x60042000, 0x0501fb77,
+ 0x59c410a3, 0x84081518, 0x05ddfcb5, 0x4a038808,
0x00000280, 0x59c40805, 0x8c04050a, 0x05020018,
0x8c04050c, 0x05020014, 0x8c04050e, 0x05020010,
0x82040500, 0x000000f0, 0x05020013, 0x59c40002,
- 0x8400050c, 0x48038802, 0x0501f930, 0x4d3c0000,
- 0x60067800, 0x0529fe8e, 0x5c027800, 0x60082000,
- 0x0501fb52, 0x6427503f, 0x0501f007, 0x6407503f,
- 0x0501f004, 0x6403503f, 0x0501f002, 0x640b503f,
- 0x0501f84a, 0x1c01f000, 0x0501fc43, 0x4a038808,
+ 0x8400050c, 0x48038802, 0x0501f936, 0x4d3c0000,
+ 0x60067800, 0x052df951, 0x5c027800, 0x60082000,
+ 0x0501fb5e, 0x64275042, 0x0501f007, 0x64075042,
+ 0x0501f004, 0x64035042, 0x0501f002, 0x640b5042,
+ 0x0501f84a, 0x1c01f000, 0x0501fc4f, 0x4a038808,
0x00000208, 0x59c40805, 0x8c04050c, 0x05020005,
- 0x8c04050e, 0x05000005, 0x6407503f, 0x0501f002,
- 0x6403503f, 0x0501f83d, 0x1c01f000, 0x60102000,
- 0x0501fb3a, 0x0501f873, 0x59c40805, 0x8c04050c,
+ 0x8c04050e, 0x05000005, 0x64075042, 0x0501f002,
+ 0x64035042, 0x0501f83d, 0x1c01f000, 0x60102000,
+ 0x0501fb46, 0x0501f873, 0x59c40805, 0x8c04050c,
0x05020009, 0x8c04050a, 0x05020005, 0x8c04050e,
- 0x05000005, 0x6407503f, 0x0501f002, 0x640b503f,
- 0x0501f82e, 0x1c01f000, 0x0501f8ec, 0x05d20e17,
- 0x0501fc6b, 0x601c2000, 0x0501fb28, 0x8d0c050c,
- 0x05000010, 0x850e1d0c, 0x64438805, 0x05ddfde0,
+ 0x05000005, 0x64075042, 0x0501f002, 0x640b5042,
+ 0x0501f82e, 0x1c01f000, 0x0501f8f2, 0x05d20b6e,
+ 0x0501fc77, 0x601c2000, 0x0501fb34, 0x8d0c050c,
+ 0x05000010, 0x850e1d0c, 0x64438805, 0x05ddfb7c,
0x59c40005, 0x8c000508, 0x05000006, 0x4a038808,
- 0x00000208, 0x64075042, 0x6006d800, 0x0501f01a,
+ 0x00000208, 0x64075045, 0x6006d800, 0x0501f01a,
0x59c40006, 0x84000548, 0x48038806, 0x0501f016,
- 0x59a8003f, 0x90000581, 0x05020012, 0x42000000,
- 0x0010e3a4, 0x0535ffff, 0x4ce80000, 0x61a1d007,
- 0x050df825, 0x59c40005, 0x90000530, 0x05000008,
- 0x8c00050a, 0x05000004, 0x60002000, 0x0501fb07,
- 0x0501f003, 0x60042000, 0x0501fb04, 0x5c01d000,
- 0x6413503f, 0x1c01f000, 0x4c040000, 0x4c080000,
- 0x61900800, 0x42001000, 0x00105ff7, 0x0509fffc,
+ 0x59a80042, 0x90000581, 0x05020012, 0x42000000,
+ 0x00112345, 0x0539fc96, 0x4ce80000, 0x61a1d007,
+ 0x050df9ac, 0x59c40005, 0x90000530, 0x05000008,
+ 0x8c00050a, 0x05000004, 0x60002000, 0x0501fb13,
+ 0x0501f003, 0x60042000, 0x0501fb10, 0x5c01d000,
+ 0x64135042, 0x1c01f000, 0x4c040000, 0x4c080000,
+ 0x61900800, 0x42001000, 0x001062db, 0x050df97c,
0x5c001000, 0x5c000800, 0x1c01f000, 0x4803c856,
- 0x4c040000, 0x0511fd1a, 0x4df00000, 0x0511ffa7,
- 0x5c03e000, 0x05100d07, 0x42000000, 0x0010e3a3,
- 0x0535ffdc, 0x05fdffc1, 0x5c000800, 0x1c01f000,
- 0x4803c856, 0x4c040000, 0x4c080000, 0x0511fd0c,
- 0x4df00000, 0x0511ff99, 0x5c03e000, 0x05100cf9,
- 0x59c40006, 0x84000500, 0x48038806, 0x0515f846,
- 0x497b8880, 0x42000000, 0x0010e3a2, 0x0535ffc9,
- 0x05ddfcf8, 0x641350b4, 0x6012d800, 0x64078805,
- 0x42001000, 0x00105ff7, 0x0509ffdc, 0x05d1ffe3,
- 0x0501f89e, 0x05000005, 0x42006000, 0xfeffffff,
- 0x41786800, 0x05f9fa36, 0x05d1fbd8, 0x60000001,
- 0x05ddfa60, 0x5c001000, 0x5c000800, 0x1c01f000,
+ 0x4c040000, 0x0511fef4, 0x4df00000, 0x0515f981,
+ 0x5c03e000, 0x05100ee1, 0x42000000, 0x00112344,
+ 0x0539fc73, 0x05fdffc1, 0x5c000800, 0x1c01f000,
+ 0x4803c856, 0x4c040000, 0x4c080000, 0x0511fee6,
+ 0x4df00000, 0x0515f973, 0x5c03e000, 0x05100ed3,
+ 0x59c40006, 0x84000500, 0x48038806, 0x0515fa20,
+ 0x497b8880, 0x42000000, 0x00112343, 0x0539fc60,
+ 0x05ddfa94, 0x641350b9, 0x6012d800, 0x64078805,
+ 0x42001000, 0x001062db, 0x050df95c, 0x05d1fd2e,
+ 0x0501f8a4, 0x05000005, 0x42006000, 0xfeffffff,
+ 0x41786800, 0x05f9f949, 0x05d1f92b, 0x60000001,
+ 0x05d9fffc, 0x5c001000, 0x5c000800, 0x1c01f000,
0x59c40008, 0x82000580, 0x00000210, 0x05000005,
- 0x4a038808, 0x00000210, 0x6021d027, 0x0509ffd6,
- 0x1c01f000, 0x4c040000, 0x59a80842, 0x90040580,
+ 0x4a038808, 0x00000210, 0x6021d027, 0x050df95d,
+ 0x1c01f000, 0x4c040000, 0x59a80845, 0x90040580,
0x05000008, 0x90040581, 0x05000008, 0x90040582,
0x05000008, 0x90040583, 0x05000008, 0x0501f043,
- 0x6403503f, 0x0501f006, 0x6413503f, 0x0501f004,
- 0x6407503f, 0x0501f002, 0x641f503f, 0x497b8880,
- 0x64078893, 0x41780000, 0x05ddfac9, 0x0515f80e,
+ 0x64035042, 0x0501f006, 0x64135042, 0x0501f004,
+ 0x64075042, 0x0501f002, 0x641f5042, 0x497b8880,
+ 0x64078893, 0x41780000, 0x05ddf865, 0x0515f9e8,
0x916c0d84, 0x05000008, 0x59c40006, 0x82000500,
0xffffff0f, 0x82000540, 0x04000001, 0x48038806,
0x0501f007, 0x59c40006, 0x82000500, 0xffffff0f,
- 0x82000540, 0x04000000, 0x48038806, 0x0501f863,
+ 0x82000540, 0x04000000, 0x48038806, 0x0501f869,
0x05020005, 0x59c40806, 0x82040d00, 0xfbffff0f,
0x48078806, 0x59c40005, 0x8c000534, 0x05020026,
0x42006000, 0xfc18ffff, 0x42006800, 0x01000000,
- 0x05f9f9f3, 0x05ddfd46, 0x59c408a4, 0x90040d0f,
- 0x90040d8c, 0x05020885, 0x0501f850, 0x05000005,
- 0x42006000, 0xfeffffff, 0x41786800, 0x05f9f9e8,
- 0x916c0d84, 0x0500000c, 0x05fdff7c, 0x5994102e,
- 0x41780800, 0x60280000, 0x050dff18, 0x40080000,
- 0x59a80863, 0x80040c00, 0x42001000, 0x00106004,
- 0x0509ff6c, 0x64135042, 0x05fdfeac, 0x0501f83b,
+ 0x05f9f906, 0x05ddfae2, 0x59c408a4, 0x90040d0f,
+ 0x90040d8c, 0x0502088b, 0x0501f856, 0x05000005,
+ 0x42006000, 0xfeffffff, 0x41786800, 0x05f9f8fb,
+ 0x916c0d84, 0x0500000c, 0x05fdff7c, 0x5994102f,
+ 0x41780800, 0x60280000, 0x0511f8ed, 0x40080000,
+ 0x59a80866, 0x80040c00, 0x42001000, 0x001062e8,
+ 0x050df8ec, 0x64135045, 0x05fdfeac, 0x0501f841,
0x05020005, 0x59c408a4, 0x90040d0f, 0x9004058c,
- 0x05d20d56, 0x5c000800, 0x1c01f000, 0x4803c856,
- 0x4c000000, 0x0509ff84, 0x4a03503d, 0x00ffffff,
- 0x497b5041, 0x59a8004d, 0x82000500, 0xffff0000,
- 0x4803504d, 0x497b8880, 0x497b8893, 0x41780000,
- 0x05ddfa7b, 0x59c40001, 0x82000500, 0xfffffcff,
+ 0x05d20aad, 0x5c000800, 0x1c01f000, 0x4803c856,
+ 0x4c000000, 0x050df90b, 0x4a035040, 0x00ffffff,
+ 0x497b5044, 0x59a80050, 0x82000500, 0xffff0000,
+ 0x48035050, 0x497b8880, 0x497b8893, 0x41780000,
+ 0x05ddf817, 0x59c40001, 0x82000500, 0xfffffcff,
0x48038801, 0x42006000, 0xfc18ffff, 0x41786800,
- 0x05f9f9bb, 0x59c410a3, 0x84081518, 0x05ddfe00,
+ 0x05f9f8ce, 0x59c410a3, 0x84081518, 0x05ddfb9c,
0x4a038808, 0x00000200, 0x5c000000, 0x800001c0,
- 0x05fa0847, 0x4a038805, 0x040000f0, 0x59c40006,
+ 0x05f60f5a, 0x4a038805, 0x040000f0, 0x59c40006,
0x82000500, 0xffffffcf, 0x82000540, 0x440000c1,
- 0x48038806, 0x1c01f000, 0x4c5c0000, 0x59a8b841,
- 0x825cbd80, 0x0000aaaa, 0x5c00b800, 0x1c01f000,
- 0x4c5c0000, 0x599cb818, 0x905cbd30, 0x905cbd80,
+ 0x4c000000, 0x0501f80d, 0x5c000000, 0x05020003,
+ 0x82000500, 0xffffff0f, 0x48038806, 0x1c01f000,
+ 0x4c5c0000, 0x59a8b844, 0x825cbd80, 0x0000aaaa,
0x5c00b800, 0x1c01f000, 0x4c5c0000, 0x599cb818,
- 0x905cbd30, 0x905cbd90, 0x5c00b800, 0x1c01f000,
- 0x4c5c0000, 0x599cb818, 0x905cbd30, 0x905cbda0,
- 0x5c00b800, 0x1c01f000, 0x490fc857, 0x910c0d13,
- 0x0500001d, 0x599c1017, 0x4d3c0000, 0x910c0511,
- 0x05000005, 0x417a7800, 0x8d0c0520, 0x05020007,
- 0x0501f00f, 0x60227800, 0x8d0c0520, 0x0500000c,
- 0x600c3000, 0x0501f002, 0x60103000, 0x603a8000,
- 0x4d200000, 0x61fe4001, 0x0531fecf, 0x5c024000,
- 0x599c1017, 0x8c08050a, 0x05020005, 0x60128000,
- 0x05e1f9f2, 0x4803c856, 0x850e1d08, 0x5c027800,
- 0x0501f009, 0x8d0c0520, 0x05000007, 0x603e8000,
- 0x60043000, 0x4d200000, 0x61fe4001, 0x0531febe,
- 0x5c024000, 0x1c01f000, 0x4803c856, 0x4c580000,
- 0x42000000, 0x0010e4bd, 0x0535feea, 0x42000800,
- 0x00110516, 0x59c40003, 0x44000800, 0x59c40004,
- 0x48000801, 0x59c4000b, 0x48000802, 0x59c4008e,
- 0x48000803, 0x59c4008f, 0x48000804, 0x59c40090,
- 0x48000805, 0x59c40091, 0x48000806, 0x59c40092,
- 0x48000807, 0x59c40093, 0x48000808, 0x59c40099,
- 0x48000809, 0x59c4009e, 0x4800080a, 0x59c400aa,
- 0x4800080b, 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,
- 0x59a800a9, 0x59c410b1, 0x80080400, 0x480350a9,
- 0x59a800aa, 0x59c410b2, 0x80080400, 0x480350aa,
- 0x59c41001, 0x4c080000, 0x8408150c, 0x480b8801,
- 0x4a0370e4, 0x00000300, 0x4a0370e5, 0xb0000000,
- 0x60000810, 0x80040840, 0x05d00c9c, 0x59b800e5,
- 0x8c000538, 0x05fe07fc, 0x4a0370e4, 0x00000200,
- 0x42006000, 0xffffffff, 0x42006800, 0x80000000,
- 0x05f9f90f, 0x64078807, 0x497b8807, 0x0501faac,
- 0x4a038808, 0x00000210, 0x42006000, 0xfcf8ffff,
- 0x42006800, 0x01000000, 0x05f9f905, 0x5c001000,
- 0x480b8801, 0x42000800, 0x00110516, 0x50040000,
- 0x48038803, 0x58040001, 0x48038804, 0x58040002,
- 0x4803880b, 0x58040003, 0x4803888e, 0x58040004,
- 0x4803888f, 0x58040005, 0x48038890, 0x58040006,
- 0x48038891, 0x58040007, 0x48038892, 0x58040008,
- 0x48038893, 0x58040009, 0x48038899, 0x5804000a,
- 0x4803889e, 0x5804000b, 0x480388aa, 0x90040c0f,
- 0x41c41800, 0x60c0b000, 0x50040000, 0x48001850,
+ 0x905cbd30, 0x905cbd80, 0x5c00b800, 0x1c01f000,
+ 0x4c5c0000, 0x599cb818, 0x905cbd30, 0x905cbd90,
+ 0x5c00b800, 0x1c01f000, 0x4c5c0000, 0x599cb818,
+ 0x905cbd30, 0x905cbda0, 0x5c00b800, 0x1c01f000,
+ 0x490fc857, 0x910c0d13, 0x0500001d, 0x599c1017,
+ 0x4d3c0000, 0x910c0511, 0x05000005, 0x417a7800,
+ 0x8d0c0520, 0x05020007, 0x0501f00f, 0x60227800,
+ 0x8d0c0520, 0x0500000c, 0x600c3000, 0x0501f002,
+ 0x60103000, 0x603a8000, 0x4d200000, 0x61fe4001,
+ 0x0535fb2c, 0x5c024000, 0x599c1017, 0x8c08050a,
+ 0x05020005, 0x60128000, 0x05ddff9b, 0x4803c856,
+ 0x850e1d08, 0x5c027800, 0x0501f009, 0x8d0c0520,
+ 0x05000007, 0x603e8000, 0x60043000, 0x4d200000,
+ 0x61fe4001, 0x0535fb1b, 0x5c024000, 0x1c01f000,
+ 0x4803c856, 0x4c580000, 0x42000000, 0x00112461,
+ 0x0539fb7b, 0x42000800, 0x001144ba, 0x59c40003,
+ 0x44000800, 0x59c40004, 0x48000801, 0x59c4000b,
+ 0x48000802, 0x59c4008e, 0x48000803, 0x59c4008f,
+ 0x48000804, 0x59c40090, 0x48000805, 0x59c40091,
+ 0x48000806, 0x59c40092, 0x48000807, 0x59c40093,
+ 0x48000808, 0x59c40099, 0x48000809, 0x59c4009e,
+ 0x4800080a, 0x59c400aa, 0x4800080b, 0x90040c0f,
+ 0x41c41800, 0x60c0b000, 0x580c0050, 0x44000800,
0x80040800, 0x800c1800, 0x8058b040, 0x05fe07fb,
- 0x41c41800, 0x6080b000, 0x50040000, 0x48001810,
+ 0x41c41800, 0x6080b000, 0x580c0010, 0x44000800,
0x80040800, 0x800c1800, 0x8058b040, 0x05fe07fb,
- 0x497b8830, 0x6100b000, 0x50040000, 0x48038831,
+ 0x497b8830, 0x6100b000, 0x59c40031, 0x44000800,
0x80040800, 0x8058b040, 0x05fe07fc, 0x497b88ac,
- 0x6040b000, 0x50040000, 0x480388ad, 0x80040800,
- 0x8058b040, 0x05fe07fc, 0x497b8880, 0x41780000,
- 0x05ddf97f, 0x59c408a4, 0x90040d0f, 0x9004058c,
- 0x05d20c46, 0x4a038805, 0x04000000, 0x5c00b000,
- 0x1c01f000, 0x4803c856, 0x4c580000, 0x4ce80000,
- 0x42000000, 0x0010e3a5, 0x0535fe3e, 0x59c41008,
- 0x4c080000, 0x82081500, 0xffffff7f, 0x480b8808,
- 0x59c40004, 0x82000500, 0x00003e02, 0x05000003,
- 0x6051d000, 0x0509fe5c, 0x59c40006, 0x82000500,
- 0xffffff0f, 0x48038806, 0x0501fa42, 0x64438805,
- 0x4a038808, 0x00000204, 0x6194b000, 0x59c40005,
- 0x8c000508, 0x05020013, 0x61a1d007, 0x0509fe4e,
- 0x8058b040, 0x05fe07fa, 0x601c2000, 0x0501f933,
- 0x0501fa2d, 0x0511fe98, 0x4803c856, 0x59c410a3,
- 0x84081518, 0x05ddfcde, 0x4a038808, 0x00000208,
- 0x64075042, 0x6006d800, 0x90000541, 0x0501f032,
- 0x60042000, 0x0501f925, 0x05d5facd, 0x42000000,
- 0x0010e499, 0x0535fe0f, 0x05d5fed7, 0x497b8880,
- 0x59a8004d, 0x82000500, 0x0000ffff, 0x4c000000,
- 0x05ddf93b, 0x5c000000, 0x48038880, 0x59c410a3,
- 0x84081518, 0x05ddfcc6, 0x4a038808, 0x00000200,
+ 0x6040b000, 0x59c400ad, 0x44000800, 0x80040800,
+ 0x8058b040, 0x05fe07fc, 0x59a800ae, 0x59c410b1,
+ 0x80080400, 0x480350ae, 0x59a800af, 0x59c410b2,
+ 0x80080400, 0x480350af, 0x59c41001, 0x4c080000,
+ 0x8408150c, 0x480b8801, 0x4a0370e4, 0x00000300,
+ 0x4a0370e5, 0xb0000000, 0x60000810, 0x80040840,
+ 0x05d009ed, 0x59b800e5, 0x8c000538, 0x05fe07fc,
+ 0x4a0370e4, 0x00000200, 0x42006000, 0xffffffff,
+ 0x42006800, 0x80000000, 0x05f9f81c, 0x64078807,
+ 0x497b8807, 0x0501fab2, 0x4a038808, 0x00000210,
+ 0x42006000, 0xfcf8ffff, 0x42006800, 0x01000000,
+ 0x05f9f812, 0x5c001000, 0x480b8801, 0x42000800,
+ 0x001144ba, 0x50040000, 0x48038803, 0x58040001,
+ 0x48038804, 0x58040002, 0x4803880b, 0x58040003,
+ 0x4803888e, 0x58040004, 0x4803888f, 0x58040005,
+ 0x48038890, 0x58040006, 0x48038891, 0x58040007,
+ 0x48038892, 0x58040008, 0x48038893, 0x58040009,
+ 0x48038899, 0x5804000a, 0x4803889e, 0x5804000b,
+ 0x480388aa, 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, 0x05d9ff15, 0x59c408a4,
+ 0x90040d0f, 0x9004058c, 0x05d20997, 0x4a038805,
+ 0x04000000, 0x5c00b000, 0x1c01f000, 0x4803c856,
+ 0x4c580000, 0x4ce80000, 0x42000000, 0x00112346,
+ 0x0539facf, 0x59c41008, 0x4c080000, 0x82081500,
+ 0xffffff7f, 0x480b8808, 0x59c40004, 0x82000500,
+ 0x00003e02, 0x05000003, 0x6051d000, 0x0509ffdd,
+ 0x59c40006, 0x82000500, 0xffffff0f, 0x48038806,
+ 0x0501fa48, 0x64438805, 0x4a038808, 0x00000204,
+ 0x6194b000, 0x59c40005, 0x8c000508, 0x05020013,
+ 0x61a1d007, 0x0509ffcf, 0x8058b040, 0x05fe07fa,
+ 0x601c2000, 0x0501f939, 0x0501fa33, 0x0515f86c,
+ 0x4803c856, 0x59c410a3, 0x84081518, 0x05ddfa74,
+ 0x4a038808, 0x00000208, 0x64075045, 0x6006d800,
+ 0x90000541, 0x0501f034, 0x60042000, 0x0501f92b,
+ 0x05d5f87f, 0x42000000, 0x0011243d, 0x0539faa0,
+ 0x61f819ff, 0x60082000, 0x05d5fc8b, 0x497b8880,
+ 0x59a80050, 0x82000500, 0x0000ffff, 0x4c000000,
+ 0x05d9fecf, 0x5c000000, 0x48038880, 0x59c410a3,
+ 0x84081518, 0x05ddfa5a, 0x4a038808, 0x00000200,
0x64238805, 0x6194b000, 0x4a038805, 0x000000f0,
- 0x05ddfbcb, 0x61c00801, 0x59c40005, 0x80040d00,
- 0x05000006, 0x61a1d007, 0x0509fe1f, 0x8058b040,
- 0x05fe07f6, 0x05fdf7d1, 0x59c410a3, 0x84081558,
- 0x05ddfcb3, 0x60082000, 0x0501f900, 0x59c40006,
- 0x82000540, 0x000000f0, 0x48038806, 0x59a80040,
+ 0x05ddf95f, 0x61c00801, 0x59c40005, 0x80040d00,
+ 0x05000006, 0x61a1d007, 0x0509ff9e, 0x8058b040,
+ 0x05fe07f6, 0x05fdf7cf, 0x59c410a3, 0x84081558,
+ 0x05ddfa47, 0x60082000, 0x0501f904, 0x59c40006,
+ 0x82000540, 0x000000f0, 0x48038806, 0x59a80043,
0x80000540, 0x05020002, 0x80000000, 0x48038893,
- 0x80000580, 0x4df00000, 0x05ddfbd5, 0x5c03e000,
+ 0x80000580, 0x4df00000, 0x05ddf969, 0x5c03e000,
0x5c001000, 0x480b8808, 0x5c01d000, 0x5c00b000,
0x1c01f000, 0x4803c856, 0x4c580000, 0x4ce80000,
0x59c41008, 0x4c080000, 0x82081500, 0xffffff7f,
0x480b8808, 0x59c40004, 0x82000500, 0x00003e02,
- 0x05000003, 0x6051d000, 0x0509fdf7, 0x05d5fa88,
- 0x42000000, 0x0010e49a, 0x0535fdca, 0x05d5fe92,
- 0x60002000, 0x0501f8d9, 0x4a038808, 0x00000202,
- 0x80000580, 0x48038880, 0x48038893, 0x05ddf8f4,
- 0x6010b007, 0x4a038805, 0x000000f0, 0x05ddfb8c,
- 0x61c00801, 0x59c40005, 0x80040d00, 0x05000016,
- 0x82000500, 0x000000d0, 0x05020015, 0x619dd000,
- 0x0509fddd, 0x8058b040, 0x05fe07f3, 0x601c2000,
- 0x0501f8c2, 0x0511fe28, 0x0501f9bb, 0x4a038808,
- 0x00000208, 0x64075042, 0x6006d800, 0x59c40006,
- 0x8400050a, 0x48038806, 0x64838805, 0x90000541,
- 0x0501f01b, 0x60082000, 0x0501f8b4, 0x497b8880,
- 0x59a80040, 0x80000540, 0x05020002, 0x80000000,
- 0x48038893, 0x59a8004d, 0x82000500, 0x0000ffff,
- 0x4c000000, 0x05ddf8ca, 0x5c000000, 0x48038880,
- 0x59c410a3, 0x84081518, 0x05ddfc55, 0x4a038808,
- 0x00000200, 0x6095d000, 0x0509fdb7, 0x59c410a3,
- 0x84081558, 0x05ddfc4e, 0x80000580, 0x4df00000,
- 0x05ddfb7b, 0x5c03e000, 0x5c001000, 0x480b8808,
- 0x5c01d000, 0x5c00b000, 0x1c01f000, 0x4803c856,
- 0x60042000, 0x0501f891, 0x59c40004, 0x82000500,
- 0x00003e02, 0x05000008, 0x0511fdf3, 0x0501f986,
- 0x4a038808, 0x00000208, 0x64075042, 0x6006d800,
- 0x0501f046, 0x05d5fa2e, 0x42000000, 0x0010e49b,
- 0x0535fd70, 0x05d5fe38, 0x59c40006, 0x84000508,
- 0x48038806, 0x64438805, 0x850e1d4c, 0x61900800,
- 0x42001000, 0x00105ff7, 0x0509fd79, 0x59c410a3,
- 0x84081518, 0x05ddfc26, 0x4a038808, 0x00000200,
- 0x497b8880, 0x4a038805, 0x000000f0, 0x05ddfb2c,
- 0x61c00801, 0x59c40005, 0x80040d00, 0x0500000b,
- 0x82000500, 0x000000e0, 0x0502000d, 0x61a1d007,
- 0x0509fd7d, 0x0509fbe2, 0x59940004, 0x80000540,
- 0x05fe07f1, 0x0501f021, 0x59c410a3, 0x84081558,
- 0x05ddfc0f, 0x60082000, 0x0501f85c, 0x4c080000,
- 0x42001000, 0x00105ff7, 0x0509fd60, 0x5c001000,
- 0x497b8880, 0x59a80040, 0x80000540, 0x05020002,
- 0x80000000, 0x48038893, 0x59a8004d, 0x82000500,
- 0x0000ffff, 0x4c000000, 0x05ddf86d, 0x5c000000,
- 0x48038880, 0x850e1d0c, 0x59c40006, 0x84000548,
- 0x48038806, 0x05ddfb26, 0x59c40008, 0x82000540,
- 0x00000280, 0x48038808, 0x1c01f000, 0x4803c856,
- 0x4d400000, 0x4d3c0000, 0x0511fda3, 0x0535fe39,
- 0x0502002b, 0x599c1017, 0x8d0c0500, 0x05020009,
- 0x8c08051a, 0x05000026, 0x850e1d42, 0x60128000,
- 0x60227800, 0x8d0c0520, 0x05020006, 0x0501f01d,
- 0x60128000, 0x417a7800, 0x8d0c0520, 0x05000019,
- 0x0535fe30, 0x42024800, 0x0010e512, 0x59240200,
- 0x8c000500, 0x05000006, 0x4c580000, 0x60040800,
- 0x60001002, 0x050dfc77, 0x5c00b000, 0x91264c0d,
- 0x8058b040, 0x05fe07f6, 0x61fe41ff, 0x4d400000,
- 0x603a8000, 0x600c3000, 0x61fe89ff, 0x0531fccf,
- 0x5c028000, 0x599c0817, 0x8c04050a, 0x05020004,
- 0x4943c857, 0x493fc857, 0x05ddfff4, 0x497b8880,
- 0x6006d800, 0x05fdfd50, 0x5c027800, 0x5c028000,
- 0x1c01f000, 0x05d5f9b2, 0x42000000, 0x0010e49c,
- 0x0535fcf4, 0x05d5fdbc, 0x60040000, 0x05ddf824,
- 0x64078880, 0x05ddf2e2, 0x42000800, 0x0010dce7,
+ 0x05000003, 0x6051d000, 0x0509ff76, 0x05d5f838,
+ 0x42000000, 0x0011243e, 0x0539fa59, 0x61f819ff,
+ 0x60042000, 0x05d5fc44, 0x60002000, 0x0501f8db,
+ 0x4a038808, 0x00000202, 0x80000580, 0x48038880,
+ 0x48038893, 0x05d9fe86, 0x6010b007, 0x4a038805,
+ 0x000000f0, 0x05ddf91e, 0x61c00801, 0x59c40005,
+ 0x80040d00, 0x05000016, 0x82000500, 0x000000d0,
+ 0x05020015, 0x619dd000, 0x0509ff5a, 0x8058b040,
+ 0x05fe07f3, 0x601c2000, 0x0501f8c4, 0x0511fff8,
+ 0x0501f9bd, 0x4a038808, 0x00000208, 0x64075045,
+ 0x6006d800, 0x59c40006, 0x8400050a, 0x48038806,
+ 0x64838805, 0x90000541, 0x0501f01b, 0x60082000,
+ 0x0501f8b6, 0x497b8880, 0x59a80043, 0x80000540,
+ 0x05020002, 0x80000000, 0x48038893, 0x59a80050,
+ 0x82000500, 0x0000ffff, 0x4c000000, 0x05d9fe5c,
+ 0x5c000000, 0x48038880, 0x59c410a3, 0x84081518,
+ 0x05ddf9e7, 0x4a038808, 0x00000200, 0x6095d000,
+ 0x0509ff34, 0x59c410a3, 0x84081558, 0x05ddf9e0,
+ 0x80000580, 0x4df00000, 0x05ddf90d, 0x5c03e000,
+ 0x5c001000, 0x480b8808, 0x5c01d000, 0x5c00b000,
+ 0x1c01f000, 0x4803c856, 0x60042000, 0x0501f893,
+ 0x59c40004, 0x82000500, 0x00003e02, 0x05000008,
+ 0x0511ffc3, 0x0501f988, 0x4a038808, 0x00000208,
+ 0x64075045, 0x6006d800, 0x0501f047, 0x05d1ffdc,
+ 0x42000000, 0x0011243f, 0x0539f9fd, 0x61fc19ff,
+ 0x05d5fbe9, 0x59c40006, 0x84000508, 0x48038806,
+ 0x64438805, 0x850e1d4c, 0x61900800, 0x42001000,
+ 0x001062db, 0x0509feee, 0x59c410a3, 0x84081518,
+ 0x05ddf9b7, 0x4a038808, 0x00000200, 0x497b8880,
+ 0x4a038805, 0x000000f0, 0x05ddf8bd, 0x61c00801,
+ 0x59c40005, 0x80040d00, 0x0500000b, 0x82000500,
+ 0x000000e0, 0x0502000d, 0x61a1d007, 0x0509fef9,
+ 0x0509fd0d, 0x59940004, 0x80000540, 0x05fe07f1,
+ 0x0501f021, 0x59c410a3, 0x84081558, 0x05ddf9a0,
+ 0x60082000, 0x0501f85d, 0x4c080000, 0x42001000,
+ 0x001062db, 0x0509fed5, 0x5c001000, 0x497b8880,
+ 0x59a80043, 0x80000540, 0x05020002, 0x80000000,
+ 0x48038893, 0x59a80050, 0x82000500, 0x0000ffff,
+ 0x4c000000, 0x05d9fdfe, 0x5c000000, 0x48038880,
+ 0x850e1d0c, 0x59c40006, 0x84000548, 0x48038806,
+ 0x05ddf8b7, 0x59c40008, 0x82000540, 0x00000280,
+ 0x48038808, 0x1c01f000, 0x4803c856, 0x4d400000,
+ 0x4d3c0000, 0x0511ff72, 0x0539fac5, 0x0502002b,
+ 0x599c1017, 0x8d0c0500, 0x05020009, 0x8c08051a,
+ 0x05000026, 0x850e1d42, 0x60128000, 0x60227800,
+ 0x8d0c0520, 0x05020006, 0x0501f01d, 0x60128000,
+ 0x417a7800, 0x8d0c0520, 0x05000019, 0x0539fabc,
+ 0x42024800, 0x001124b6, 0x59240200, 0x8c000500,
+ 0x05000006, 0x4c580000, 0x60040800, 0x60001002,
+ 0x050dfe3c, 0x5c00b000, 0x91264c0d, 0x8058b040,
+ 0x05fe07f6, 0x61fe41ff, 0x4d400000, 0x603a8000,
+ 0x600c3000, 0x61fe89ff, 0x0535f927, 0x5c028000,
+ 0x599c0817, 0x8c04050a, 0x05020004, 0x4943c857,
+ 0x493fc857, 0x05ddfd98, 0x497b8880, 0x6006d800,
+ 0x05fdfd45, 0x5c027800, 0x5c028000, 0x1c01f000,
+ 0x05d1ff5f, 0x42000000, 0x00112440, 0x0539f980,
+ 0x61fc19ff, 0x05d5fb6c, 0x60040000, 0x05d9fdb4,
+ 0x64078880, 0x05ddf072, 0x42000800, 0x00111c6d,
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, 0x00106314, 0x0010632e, 0x00106348,
- 0x00106362, 0x0010637c, 0x00106392, 0x001063a1,
- 0x001063b4, 0x001063c7, 0x001063da, 0x001063dc,
- 0x40100000, 0x0c01f001, 0x0010631e, 0x00106320,
- 0x00106322, 0x00106323, 0x00106325, 0x00106327,
- 0x0010632a, 0x0010632c, 0x64080801, 0x1c01f000,
+ 0x0501f0fb, 0x00106604, 0x0010661e, 0x00106638,
+ 0x00106652, 0x0010666c, 0x00106682, 0x00106691,
+ 0x001066a4, 0x001066b7, 0x001066ca, 0x001066cc,
+ 0x40100000, 0x0c01f001, 0x0010660e, 0x00106610,
+ 0x00106612, 0x00106613, 0x00106615, 0x00106617,
+ 0x0010661a, 0x0010661c, 0x64080801, 0x1c01f000,
0x640c0801, 0x0501f0bc, 0x1c01f000, 0x641c0801,
0x1c01f000, 0x64100801, 0x0501f0ba, 0x64140801,
0x0501f8be, 0x0501f0ba, 0x64140801, 0x0501f0bb,
0x4813c857, 0x1c01f000, 0x40100000, 0x0c01f001,
- 0x00106338, 0x0010633a, 0x0010633c, 0x0010633d,
- 0x0010633f, 0x00106341, 0x00106344, 0x00106346,
+ 0x00106628, 0x0010662a, 0x0010662c, 0x0010662d,
+ 0x0010662f, 0x00106631, 0x00106634, 0x00106636,
0x64080801, 0x1c01f000, 0x640c0801, 0x1c01f000,
0x1c01f000, 0x641c0801, 0x1c01f000, 0x64100801,
0x0501f0a0, 0x64140801, 0x0501f8a4, 0x0501f0a0,
0x64140801, 0x1c01f000, 0x64140801, 0x0501f099,
- 0x40100000, 0x0c01f001, 0x00106352, 0x00106353,
- 0x00106355, 0x00106357, 0x00106359, 0x0010635b,
- 0x0010635e, 0x00106360, 0x1c01f000, 0x640c0801,
+ 0x40100000, 0x0c01f001, 0x00106642, 0x00106643,
+ 0x00106645, 0x00106647, 0x00106649, 0x0010664b,
+ 0x0010664e, 0x00106650, 0x1c01f000, 0x640c0801,
0x1c01f000, 0x64000801, 0x1c01f000, 0x641c0801,
0x1c01f000, 0x64100801, 0x0501f086, 0x64140801,
0x0501f88a, 0x0501f086, 0x64140801, 0x1c01f000,
0x64140801, 0x0501f07f, 0x40100000, 0x0c01f001,
- 0x0010636c, 0x0010636e, 0x0010636f, 0x00106371,
- 0x00106373, 0x00106375, 0x00106378, 0x0010637a,
+ 0x0010665c, 0x0010665e, 0x0010665f, 0x00106661,
+ 0x00106663, 0x00106665, 0x00106668, 0x0010666a,
0x64080801, 0x1c01f000, 0x1c01f000, 0x64000801,
0x1c01f000, 0x641c0801, 0x1c01f000, 0x64100801,
0x0501f06c, 0x64140801, 0x0501f870, 0x0501f06c,
0x64140801, 0x1c01f000, 0x64140801, 0x0501f065,
- 0x40100000, 0x0c01f001, 0x00106386, 0x00106388,
- 0x00106388, 0x00106389, 0x00106388, 0x0010638b,
- 0x0010638e, 0x00106390, 0x64080801, 0x1c01f000,
+ 0x40100000, 0x0c01f001, 0x00106676, 0x00106678,
+ 0x00106678, 0x00106679, 0x00106678, 0x0010667b,
+ 0x0010667e, 0x00106680, 0x64080801, 0x1c01f000,
0x1c01f000, 0x641c0801, 0x1c01f000, 0x64140801,
0x0501f85a, 0x0501f056, 0x64140801, 0x1c01f000,
0x64140801, 0x0501f04f, 0x40100000, 0x0c01f001,
- 0x001063a0, 0x001063a0, 0x001063a0, 0x0010639c,
- 0x0010639e, 0x001063a0, 0x001063a0, 0x001063a0,
+ 0x00106690, 0x00106690, 0x00106690, 0x0010668c,
+ 0x0010668e, 0x00106690, 0x00106690, 0x00106690,
0x641c0801, 0x1c01f000, 0x64100801, 0x1c01f000,
- 0x1c01f000, 0x40100000, 0x0c01f001, 0x001063ab,
- 0x001063ad, 0x001063ad, 0x001063ae, 0x001063b0,
- 0x001063b2, 0x001063b2, 0x001063b2, 0x64080801,
+ 0x1c01f000, 0x40100000, 0x0c01f001, 0x0010669b,
+ 0x0010669d, 0x0010669d, 0x0010669e, 0x001066a0,
+ 0x001066a2, 0x001066a2, 0x001066a2, 0x64080801,
0x1c01f000, 0x1c01f000, 0x641c0801, 0x1c01f000,
0x64100801, 0x0501f02f, 0x64200801, 0x1c01f000,
- 0x40100000, 0x0c01f001, 0x001063be, 0x001063c0,
- 0x001063c2, 0x001063c2, 0x001063c3, 0x001063c5,
- 0x001063c5, 0x001063c5, 0x64080801, 0x1c01f000,
+ 0x40100000, 0x0c01f001, 0x001066ae, 0x001066b0,
+ 0x001066b2, 0x001066b2, 0x001066b3, 0x001066b5,
+ 0x001066b5, 0x001066b5, 0x64080801, 0x1c01f000,
0x640c0801, 0x1c01f000, 0x1c01f000, 0x64100801,
0x0501f01c, 0x64200801, 0x1c01f000, 0x40100000,
- 0x0c01f001, 0x001063d1, 0x001063d1, 0x001063d3,
- 0x001063d4, 0x001063d6, 0x001063d3, 0x001063d8,
- 0x001063d3, 0x64140801, 0x0501f00b, 0x1c01f000,
+ 0x0c01f001, 0x001066c1, 0x001066c1, 0x001066c3,
+ 0x001066c4, 0x001066c6, 0x001066c3, 0x001066c8,
+ 0x001066c3, 0x64140801, 0x0501f00b, 0x1c01f000,
0x641c0801, 0x1c01f000, 0x64100801, 0x1c01f000,
0x64200801, 0x1c01f000, 0x64240801, 0x1c01f000,
- 0x1c01f000, 0x42000000, 0x0010e38f, 0x0535f3fd,
- 0x42000000, 0x0010e38c, 0x0535f3fa, 0x42000000,
- 0x0010e38e, 0x0535f3f7, 0x42000000, 0x0010e38d,
- 0x0535f3f4, 0x42000800, 0x0010dce7, 0x58040001,
+ 0x1c01f000, 0x42000000, 0x00112330, 0x0539f088,
+ 0x42000000, 0x0011232d, 0x0539f085, 0x42000000,
+ 0x0011232f, 0x0539f082, 0x42000000, 0x0011232e,
+ 0x0539f07f, 0x42000800, 0x00111c6d, 0x58040001,
0x48000800, 0x64140801, 0x64200802, 0x1c01f000,
- 0x42000800, 0x0010dce7, 0x58040001, 0x48000800,
+ 0x42000800, 0x00111c6d, 0x58040001, 0x48000800,
0x64040801, 0x64280802, 0x1c01f000, 0x42000800,
- 0x0010dce7, 0x58040001, 0x48000800, 0x64180801,
- 0x64240802, 0x1c01f000, 0x42000800, 0x0010dce7,
+ 0x00111c6d, 0x58040001, 0x48000800, 0x64180801,
+ 0x64240802, 0x1c01f000, 0x42000800, 0x00111c6d,
0x64280801, 0x64280800, 0x1c01f000, 0x496fc857,
- 0x4813c857, 0x40100000, 0x0c01f001, 0x0010641d,
- 0x0010641d, 0x0010641d, 0x0010641d, 0x0010640f,
- 0x00106417, 0x0010641b, 0x0010641d, 0x59a80249,
+ 0x4813c857, 0x40100000, 0x0c01f001, 0x0010670d,
+ 0x0010670d, 0x0010670d, 0x0010670d, 0x001066ff,
+ 0x00106707, 0x0010670b, 0x0010670d, 0x59a8024c,
0x8c000506, 0x05000003, 0x8c000502, 0x0500000a,
0x0501f80a, 0x05fe07cb, 0x0501f007, 0x0501f807,
0x05000005, 0x05fdffca, 0x05fdf7cc, 0x0501f803,
0x05fe07ca, 0x1c01f000, 0x496fc857, 0x416c0000,
- 0x90000c88, 0x05d219b9, 0x0c01f001, 0x0010642b,
- 0x0010642d, 0x0010642d, 0x0010642d, 0x0010642b,
- 0x0010642b, 0x0010642b, 0x0010642d, 0x80000580,
+ 0x90000c88, 0x05ce1f04, 0x0c01f001, 0x0010671b,
+ 0x0010671d, 0x0010671d, 0x0010671d, 0x0010671b,
+ 0x0010671b, 0x0010671b, 0x0010671d, 0x80000580,
0x1c01f000, 0x90000541, 0x1c01f000, 0x59a80005,
0x8c000506, 0x05020002, 0x1c01f000, 0x41781800,
- 0x42000800, 0x0010dce7, 0x58040001, 0x40002000,
- 0x0c01f001, 0x0010644d, 0x00106446, 0x00106445,
- 0x00106444, 0x0010644e, 0x00106448, 0x00106447,
- 0x00106452, 0x00106448, 0x00106445, 0x0010644d,
+ 0x42000800, 0x00111c6d, 0x58040001, 0x40002000,
+ 0x0c01f001, 0x0010673d, 0x00106736, 0x00106735,
+ 0x00106734, 0x0010673e, 0x00106738, 0x00106737,
+ 0x00106742, 0x00106738, 0x00106735, 0x0010673d,
0x800c1800, 0x800c1800, 0x800c1800, 0x800c1800,
- 0x800c1800, 0x60dc1100, 0x05f1fb92, 0x481350a8,
- 0x1c01f000, 0x1c01f000, 0x59a800a8, 0x90000584,
- 0x05fe07f7, 0x05fdf7fc, 0x59a800a8, 0x90000587,
- 0x05fe07f2, 0x05fdf7f8, 0x64075042, 0x4a035041,
- 0x0000aaaa, 0x05fdf3d8, 0x6002e000, 0x850e1d56,
+ 0x800c1800, 0x60dc1100, 0x05f1fa3f, 0x481350ab,
+ 0x1c01f000, 0x1c01f000, 0x59a800ab, 0x90000584,
+ 0x05fe07f7, 0x05fdf7fc, 0x59a800ab, 0x90000587,
+ 0x05fe07f2, 0x05fdf7f8, 0x64075045, 0x4a035044,
+ 0x0000aaaa, 0x05fdf3cc, 0x6002e000, 0x850e1d56,
0x497b3000, 0x4a03b004, 0x60000001, 0x59d80005,
0x4a03b004, 0x90000001, 0x59d80005, 0x4a03a804,
0x60000001, 0x59d40005, 0x4a03a804, 0x90000001,
- 0x0501ff88, 0x0501f774, 0x58f25801, 0x4a03b004,
+ 0x0505f820, 0x0505f00c, 0x58f25801, 0x4a03b004,
0x10000000, 0x592c4200, 0x58201000, 0x592c220c,
- 0x592cba0a, 0x0001f7ca, 0x6413c825, 0x6413c827,
+ 0x592cba0a, 0x0001f7f1, 0x6413c825, 0x6413c827,
0x599c0409, 0x80000d40, 0x0500001f, 0x599c0407,
0x80000540, 0x05000007, 0x800000cc, 0x599c100b,
0x80080400, 0x4803b000, 0x497bb002, 0x59d80001,
@@ -6480,332 +6668,351 @@ static const uint32_t isp_2500_risc_code[] = {
0x4803a803, 0x6423a809, 0x4a03a804, 0x10000001,
0x59e00803, 0x82040d00, 0xfffffbff, 0x82040d40,
0x00008000, 0x4807c003, 0x800409c0, 0x05000004,
- 0x6006e000, 0x0004bb27, 0x0004f33b, 0x1c01f000,
- 0x05d1f91e, 0x1c01f000, 0x0501f866, 0x5c03e000,
- 0x0005f0d6, 0x592c1c08, 0x820c1500, 0x000000ff,
- 0x800c1910, 0x820c0c00, 0x0010de60, 0x50040800,
- 0x480a5c08, 0x800409c0, 0x000600ca, 0x492fc857,
- 0x480fc857, 0x800c19c0, 0x05d0090c, 0x42000800,
- 0x0010de60, 0x50040800, 0x48065802, 0x0501f866,
- 0x0005f0d3, 0x59980000, 0x80000540, 0x000400bb,
- 0x0505f00a, 0x00106524, 0x00106524, 0x00106524,
- 0x00106524, 0x00106532, 0x00106524, 0x00106524,
- 0x00106524, 0x00106524, 0x00106524, 0x00020a36,
- 0x00106524, 0x00106524, 0x00106532, 0x00106532,
- 0x00106524, 0x00106524, 0x00106524, 0x00106524,
- 0x00106524, 0x00106524, 0x00106524, 0x00106524,
- 0x00106524, 0x00106524, 0x00106524, 0x00106524,
- 0x00106524, 0x00106524, 0x00106524, 0x00106524,
- 0x00106524, 0x00106524, 0x00106524, 0x00106524,
- 0x00106524, 0x00106524, 0x00106524, 0x00106524,
- 0x00106524, 0x00106524, 0x00106524, 0x00106524,
- 0x00106524, 0x00106524, 0x00106524, 0x00106524,
- 0x00106524, 0x00106524, 0x00106524, 0x00106524,
- 0x00106524, 0x00106524, 0x00106524, 0x00106524,
- 0x00106524, 0x00106524, 0x00106524, 0x00106524,
- 0x00106524, 0x00106524, 0x00106524, 0x00106524,
- 0x00106524, 0x00106524, 0x00106524, 0x00106524,
- 0x00106524, 0x00106524, 0x00106524, 0x00106524,
- 0x00106524, 0x00106524, 0x00106524, 0x00020a36,
- 0x492fc857, 0x497a5805, 0x42000000, 0x0010e44f,
- 0x0535fab4, 0x60000008, 0x0501f015, 0x492fc857,
- 0x497a5805, 0x42000000, 0x0010e44e, 0x0535faad,
+ 0x6006e000, 0x0004bb5d, 0x0004f371, 0x1c01f000,
+ 0x05cdfe69, 0x1c01f000, 0x0501f866, 0x5c03e000,
+ 0x0005f0fd, 0x592c1c08, 0x820c1500, 0x000000ff,
+ 0x800c1910, 0x820c0c00, 0x00111dfa, 0x50040800,
+ 0x480a5c08, 0x800409c0, 0x000600f1, 0x492fc857,
+ 0x480fc857, 0x800c19c0, 0x05cc0e57, 0x42000800,
+ 0x00111dfa, 0x50040800, 0x48065802, 0x0501f866,
+ 0x0005f0fa, 0x59980000, 0x80000540, 0x000400e2,
+ 0x0505f0a2, 0x00106814, 0x00106814, 0x00106814,
+ 0x00106814, 0x00106822, 0x00106814, 0x00106814,
+ 0x00106814, 0x00106814, 0x00106814, 0x00020a6c,
+ 0x00106814, 0x00106814, 0x00106822, 0x00106822,
+ 0x00106814, 0x00106814, 0x00106814, 0x00106814,
+ 0x00106814, 0x00106814, 0x00106814, 0x00106814,
+ 0x00106814, 0x00106814, 0x00106814, 0x00106814,
+ 0x00106814, 0x00106814, 0x00106814, 0x00106814,
+ 0x00106814, 0x00106814, 0x00106814, 0x00106814,
+ 0x00106814, 0x00106814, 0x00106814, 0x00106814,
+ 0x00106814, 0x00106814, 0x00106814, 0x00106814,
+ 0x00106814, 0x00106814, 0x00106814, 0x00106814,
+ 0x00106814, 0x00106814, 0x00106814, 0x00106814,
+ 0x00106814, 0x00106814, 0x00106814, 0x00106814,
+ 0x00106814, 0x00106814, 0x00106814, 0x00106814,
+ 0x00106814, 0x00106814, 0x00106814, 0x00106814,
+ 0x00106814, 0x00106814, 0x00106814, 0x00106814,
+ 0x00106814, 0x00106814, 0x00106814, 0x00106814,
+ 0x00106814, 0x00106814, 0x00106814, 0x00020a6c,
+ 0x492fc857, 0x497a5805, 0x42000000, 0x001123f3,
+ 0x0535ff3f, 0x60000008, 0x0501f015, 0x492fc857,
+ 0x497a5805, 0x42000000, 0x001123f2, 0x0535ff38,
0x60000020, 0x0501f00e, 0x492fc857, 0x497a5805,
- 0x42000000, 0x0010e44d, 0x0535faa6, 0x60000040,
- 0x0501f007, 0x492fc857, 0x42000000, 0x0010e450,
- 0x0535faa0, 0x60000010, 0x0501f001, 0x4803c857,
+ 0x42000000, 0x001123f1, 0x0535ff31, 0x60000040,
+ 0x0501f007, 0x492fc857, 0x42000000, 0x001123f4,
+ 0x0535ff2b, 0x60000010, 0x0501f001, 0x4803c857,
0x592c0c08, 0x82040d00, 0xffff80ff, 0x80040540,
0x59980801, 0x800409c0, 0x05000002, 0x8400051e,
- 0x48025c08, 0x0005f9f3, 0x0501febe, 0x0001fb82,
+ 0x48025c08, 0x0005fa1a, 0x0501ff56, 0x0001fba8,
0x91700583, 0x6006e000, 0x05000002, 0x1c01f000,
- 0x58f25802, 0x812e59c0, 0x05fe07e0, 0x05d1f887,
+ 0x58f25802, 0x812e59c0, 0x05fe07e0, 0x05cdfdd2,
0x60081000, 0x60000801, 0x60401800, 0x0501f004,
0x600c1000, 0x41780800, 0x60181800, 0x492fc857,
0x480bc857, 0x592c0208, 0x82000500, 0x000000ff,
- 0xb00005aa, 0x05000004, 0x480e5a0a, 0x0001fb82,
+ 0xb00005aa, 0x05000004, 0x480e5a0a, 0x0001fba8,
0x0501f00a, 0x4d400000, 0x4c300000, 0x497a5c0c,
- 0x497a5c0d, 0x400a8000, 0x05fdf8c1, 0x0001fb82,
+ 0x497a5c0d, 0x400a8000, 0x05fdf8b5, 0x0001fba8,
0x5c006000, 0x5c028000, 0x6006e000, 0x4a006002,
- 0x00000100, 0x5832580a, 0x4978600a, 0x05d1fc1f,
+ 0x00000100, 0x5832580a, 0x4978600a, 0x05d1f966,
0x5c025800, 0x1c01f000, 0x492fc857, 0x80140110,
- 0x05fc07b3, 0x80000040, 0x05000026, 0x4a01e007,
- 0x001065a0, 0x0005f0df, 0x492fc857, 0x0535fb6d,
- 0x00060220, 0x492fc856, 0x83440400, 0x0010d400,
- 0x50000000, 0x80026d40, 0x0500000b, 0x592e4414,
- 0x81224110, 0x59340013, 0x80000130, 0x81200580,
- 0x05020005, 0x4937c857, 0x59340200, 0x8c00050e,
- 0x00060220, 0x60a28000, 0x41780800, 0x417a6000,
- 0x05fdf897, 0x0525f88f, 0x0001f382, 0x82000500,
- 0x0f000000, 0x8000012a, 0x592c0c0e, 0x82040d00,
- 0x0000ff87, 0x80040540, 0x48025c0e, 0x0005f233,
- 0x492fc857, 0x592c040c, 0x80000540, 0x05fe0796,
- 0x8d0c050e, 0x05020008, 0x592c020b, 0x80000540,
- 0x05fc0791, 0x497a5a0a, 0x05f5fd45, 0x05020003,
- 0x1c01f000, 0x60a00000, 0x48025a0a, 0x0001f382,
- 0x592e8a0a, 0x592c040a, 0x4947c857, 0x4803c857,
- 0x82000500, 0x000000ff, 0x6004b800, 0x90000d81,
- 0x0500000e, 0x417a8800, 0x61c0b80f, 0x90000d82,
- 0x0500000a, 0x80000540, 0x00020382, 0x592e8a0a,
- 0x0001fb00, 0x00020382, 0x592e900c, 0x592e980d,
- 0x05f9f914, 0x0001f382, 0x850e1d00, 0x0001fb00,
- 0x05f809f9, 0x81468800, 0x805cb840, 0x05fe07fc,
- 0x0001f382, 0x592c0a0c, 0x4807c857, 0x592e4414,
- 0x81224110, 0x9004058e, 0x0500006e, 0x900405aa,
- 0x05000022, 0x9004058f, 0x05000624, 0x900405ae,
- 0x05000622, 0xb0040589, 0x05000620, 0x4c040000,
- 0x0501fd7d, 0x5c000800, 0x05020620, 0xb0040586,
- 0x0500007f, 0xb0040585, 0x0500002c, 0x900405a9,
- 0x0502061a, 0x592e8a0a, 0x42026800, 0x00110210,
- 0x83440580, 0x0000ffff, 0x05000006, 0x05f9fc8e,
- 0x0502060e, 0x59340200, 0x84000518, 0x48026a00,
- 0x592e600d, 0x4933c857, 0x83300580, 0xffffffff,
- 0x05020070, 0x0501f605, 0x83200580, 0x000000ff,
- 0x05000008, 0x83200400, 0x0010d17b, 0x50024800,
- 0x59240a00, 0x84040d16, 0x48064a00, 0x0501f5fb,
- 0x42024800, 0x0010e512, 0x0535faf2, 0x59240200,
- 0x8c000500, 0x05000004, 0x59240200, 0x84000516,
- 0x48024a00, 0x91264c0d, 0x8058b040, 0x05fe07f8,
- 0x850e1d04, 0x0501f5ed, 0x592c140b, 0x480bc857,
- 0x0525fb49, 0x411e6000, 0x05020003, 0x4803c856,
- 0x0501f5ea, 0x59300c07, 0x90040584, 0x05000003,
- 0x4803c856, 0x0501f5e5, 0x592c020b, 0x8c000506,
- 0x05000009, 0x050dfef6, 0x4df00000, 0x050dfdf7,
- 0x050dfbc0, 0x5c03e000, 0x050c0ee2, 0x0515fdad,
- 0x0501f5d6, 0x592e380d, 0x591c1416, 0x8c080516,
- 0x050005d6, 0x59300009, 0x800001c0, 0x05ce0faf,
- 0x84081554, 0x480a3c16, 0x64ea6403, 0x592c040f,
- 0x80000540, 0x05000006, 0x64ee6403, 0x592c0415,
- 0x4802641c, 0x592c0215, 0x4802621c, 0x64066203,
- 0x42000800, 0x80000040, 0x0501fdcb, 0x05000003,
- 0x492e6009, 0x0005f6ab, 0x0005feab, 0x0501f5bb,
- 0x83200d80, 0x000000ff, 0x05000010, 0x42000000,
- 0x0010e511, 0x50000000, 0x81200480, 0x050211c1,
- 0x83200400, 0x0010d17b, 0x50024800, 0x59240200,
- 0x8c000500, 0x050001bb, 0x59240206, 0x84000510,
- 0x48024a06, 0x0501f5a9, 0x42024800, 0x0010e512,
- 0x0535faa0, 0x59240200, 0x8c000500, 0x05000004,
- 0x59240206, 0x84000510, 0x48024a06, 0x91264c0d,
- 0x8058b040, 0x05fe07f8, 0x0501f59c, 0x592c120b,
- 0x8c080500, 0x05020599, 0x592e8a0a, 0x592e600d,
- 0x0525fafe, 0x05020003, 0x4803c856, 0x0501f597,
+ 0x05fc07b3, 0x80000040, 0x05000023, 0x4a01e007,
+ 0x0010688d, 0x0005f106, 0x492fc857, 0x0535fff8,
+ 0x00060249, 0x492fc856, 0x0001fb08, 0x0502000b,
+ 0x592e4414, 0x81224110, 0x59340013, 0x80000130,
+ 0x81200580, 0x05020005, 0x4937c857, 0x59340200,
+ 0x8c00050e, 0x00060249, 0x60a28000, 0x41780800,
+ 0x417a6000, 0x05fdf88e, 0x0525fb3b, 0x0001f3a8,
+ 0x82000500, 0x0f000000, 0x8000012a, 0x592c0c0e,
+ 0x82040d00, 0x0000ff87, 0x80040540, 0x48025c0e,
+ 0x0005f25f, 0x492fc857, 0x592c040c, 0x80000540,
+ 0x05fe0799, 0x8d0c050e, 0x05020008, 0x592c020b,
+ 0x80000540, 0x05fc0794, 0x497a5a0a, 0x05f5fc4f,
+ 0x05020003, 0x1c01f000, 0x60a00000, 0x48025a0a,
+ 0x0001f3a8, 0x592e8a0a, 0x592c040a, 0x4947c857,
+ 0x4803c857, 0x82000500, 0x000000ff, 0x6004b800,
+ 0x90000d81, 0x0500000e, 0x417a8800, 0x59a8b8ac,
+ 0x90000d82, 0x0500000a, 0x80000540, 0x000203a8,
+ 0x592e8a0a, 0x0001fb08, 0x000203a8, 0x592e900c,
+ 0x592e980d, 0x05f9f88d, 0x0001f3a8, 0x850e1d00,
+ 0x0001fb08, 0x05f80976, 0x81468800, 0x83440580,
+ 0x000007f0, 0x05020002, 0x60028810, 0x805cb840,
+ 0x05fe07f8, 0x0001f3a8, 0x592c0a0c, 0x4807c857,
+ 0x592e4414, 0x81224110, 0x9004058e, 0x05000074,
+ 0x900405aa, 0x05000028, 0x9004058f, 0x050006bb,
+ 0x900405ae, 0x050006b9, 0xb0040589, 0x050006b7,
+ 0x4c040000, 0x0501fdf4, 0x5c000800, 0x05000007,
+ 0x812649c0, 0x050006b5, 0x592c020a, 0x82000580,
+ 0x000007fe, 0x050206b1, 0xb0040586, 0x0500007f,
+ 0xb0040585, 0x0500002c, 0x900405a9, 0x050206ab,
+ 0x592e8a0a, 0x42026800, 0x001141b4, 0x83440580,
+ 0x0000ffff, 0x05000006, 0x05f9fc60, 0x0502069f,
+ 0x59340200, 0x84000518, 0x48026a00, 0x592e600d,
+ 0x4933c857, 0x83300580, 0xffffffff, 0x05020070,
+ 0x0501f696, 0x83200580, 0x000000ff, 0x05000008,
+ 0x83200400, 0x0010d8f9, 0x50024800, 0x59240a00,
+ 0x84040d16, 0x48064a00, 0x0501f68c, 0x42024800,
+ 0x001124b6, 0x0535ff76, 0x59240200, 0x8c000500,
+ 0x05000004, 0x59240200, 0x84000516, 0x48024a00,
+ 0x91264c0d, 0x8058b040, 0x05fe07f8, 0x850e1d04,
+ 0x0501f67e, 0x592c140b, 0x480bc857, 0x0525fdee,
+ 0x411e6000, 0x05020003, 0x4803c856, 0x0501f67b,
0x59300c07, 0x90040584, 0x05000003, 0x4803c856,
- 0x0501f592, 0x59300a03, 0x90040587, 0x05000003,
- 0x4803c856, 0x0501f58d, 0x59300c03, 0x90040581,
- 0x0500001b, 0x90040582, 0x0500000e, 0x90040588,
- 0x05000010, 0x9004058a, 0x05000005, 0x9004058c,
- 0x05020021, 0x60240800, 0x0501f01e, 0x5932680a,
- 0x05f9fbba, 0x0502001c, 0x60140800, 0x0501f019,
- 0x417a7800, 0x05ddfca7, 0x64066407, 0x0501f006,
- 0x592c120b, 0x8c08050e, 0x05000003, 0x0535facb,
- 0x05020018, 0x600c0800, 0x0501f00e, 0x83340580,
- 0x00110210, 0x05020007, 0x5930000a, 0x82000580,
- 0x00110210, 0x05020569, 0x64066407, 0x0501f006,
- 0x417a7800, 0x05ddfc93, 0x64066407, 0x602c0800,
- 0x05f5fe51, 0x64066203, 0x0501fd67, 0x05000003,
- 0x492e6009, 0x050df1d0, 0x050df9cf, 0x0501f557,
- 0x64266403, 0x592c0215, 0x4802621c, 0x592c0415,
- 0x4802641c, 0x05fdf7f4, 0x59300416, 0x8c000518,
- 0x053203ff, 0x0501f097, 0x40000800, 0x58040000,
- 0x80000540, 0x05fe07fd, 0x492c0800, 0x1c01f000,
- 0x492fc857, 0x59300c07, 0x90040586, 0x0502008a,
- 0x59340400, 0x82000580, 0x00000606, 0x05020004,
- 0x59340200, 0x8c00051a, 0x000402b8, 0x59340200,
- 0x8c00050e, 0x05000080, 0x59300203, 0x60067800,
- 0x90000587, 0x000602b8, 0x640a6203, 0x0005f2b8,
- 0x600a8000, 0x64526006, 0x4d2c0000, 0x052dfe56,
+ 0x0501f676, 0x592c020b, 0x8c000506, 0x05000009,
+ 0x0511f8bd, 0x4df00000, 0x050dffbd, 0x050dfd82,
+ 0x5c03e000, 0x051008a9, 0x0515ffcb, 0x0501f667,
+ 0x592e380d, 0x591c1416, 0x8c080516, 0x05000667,
+ 0x59300009, 0x800001c0, 0x05ce0cf3, 0x84081554,
+ 0x480a3c16, 0x64ea6403, 0x592c040f, 0x80000540,
+ 0x05000006, 0x64ee6403, 0x592c0415, 0x4802641c,
+ 0x592c0215, 0x4802621c, 0x64066203, 0x42000800,
+ 0x80000040, 0x0501fe5c, 0x05000003, 0x492e6009,
+ 0x0005f6e2, 0x0005fee2, 0x0501f64c, 0x83200d80,
+ 0x000000ff, 0x05000010, 0x42000000, 0x001124b5,
+ 0x50000000, 0x81200480, 0x050211dd, 0x83200400,
+ 0x0010d8f9, 0x50024800, 0x59240200, 0x8c000500,
+ 0x050001d7, 0x59240206, 0x84000510, 0x48024a06,
+ 0x0501f63a, 0x42024800, 0x001124b6, 0x0535ff24,
+ 0x59240200, 0x8c000500, 0x05000004, 0x59240206,
+ 0x84000510, 0x48024a06, 0x91264c0d, 0x8058b040,
+ 0x05fe07f8, 0x0501f62d, 0x592c120b, 0x8c080500,
+ 0x0502062a, 0x592e8a0a, 0x592e600d, 0x0525fda3,
+ 0x05020003, 0x4803c856, 0x0501f628, 0x59300c07,
+ 0x90040584, 0x05000003, 0x4803c856, 0x0501f623,
+ 0x59300a03, 0x90040587, 0x05000003, 0x4803c856,
+ 0x0501f61e, 0x83440580, 0x000007fe, 0x05020007,
+ 0x59240200, 0x82000500, 0x00000180, 0x05000003,
+ 0x0009f810, 0x0501f611, 0x59300c03, 0x90040581,
+ 0x05000021, 0x90040582, 0x05000014, 0x90040588,
+ 0x05000016, 0x9004058a, 0x05000005, 0x9004058c,
+ 0x05020027, 0x60240800, 0x0501f024, 0x592c0a0b,
+ 0x8c040510, 0x05000004, 0x48066216, 0x592c0816,
+ 0x4806601e, 0x5932680a, 0x05f9fb7d, 0x0502001c,
+ 0x60140800, 0x0501f019, 0x417a7800, 0x05ddfa38,
+ 0x64066407, 0x0501f006, 0x592c120b, 0x8c08050e,
+ 0x05000003, 0x0535ff40, 0x05020018, 0x600c0800,
+ 0x0501f00e, 0x83340580, 0x001141b4, 0x05020007,
+ 0x5930000a, 0x82000580, 0x001141b4, 0x050205eb,
+ 0x64066407, 0x0501f006, 0x417a7800, 0x05ddfa24,
+ 0x64066407, 0x602c0800, 0x05f5fd5e, 0x64066203,
+ 0x0501fde9, 0x05000003, 0x492e6009, 0x050df383,
+ 0x050dfb82, 0x0501f5d9, 0x64266403, 0x592c0215,
+ 0x4802621c, 0x592c0415, 0x4802641c, 0x05fdf7f4,
+ 0x59300416, 0x8c000518, 0x05360043, 0x0501f09c,
+ 0x40000800, 0x58040000, 0x80000540, 0x05fe07fd,
+ 0x492c0800, 0x1c01f000, 0x492fc857, 0x59300c07,
+ 0x90040586, 0x0502008f, 0x59340400, 0x82000580,
+ 0x00000606, 0x05020004, 0x59340200, 0x8c00051a,
+ 0x000402ed, 0x59340200, 0x8c00050e, 0x05000085,
+ 0x59300203, 0x60067800, 0x90000587, 0x000602ed,
+ 0x640a6203, 0x0005f2ed, 0x0501feda, 0x05020068,
+ 0x600a8000, 0x64526006, 0x4d2c0000, 0x0531fa4b,
0x5c025800, 0x59300c07, 0x4807c857, 0x90040587,
- 0x0502005f, 0x492fc857, 0x64065a0a, 0x0001f382,
- 0x83300580, 0xffffffff, 0x05020059, 0x592c240e,
+ 0x05020062, 0x492fc857, 0x64065a0a, 0x0001f3a8,
+ 0x83300580, 0xffffffff, 0x0502005c, 0x592c240e,
0x492fc857, 0x4813c857, 0x8c10051c, 0x05020017,
- 0x8c10051a, 0x05000003, 0x8c10050a, 0x05000065,
+ 0x8c10051a, 0x05000003, 0x8c10050a, 0x05000068,
0x59340a00, 0x8c04050e, 0x05000003, 0x8c10051e,
- 0x05000060, 0x0005ffbf, 0x05000068, 0x592c240e,
+ 0x05000063, 0x0005fff6, 0x05000098, 0x592c240e,
0x59243a00, 0x592c0210, 0x48026202, 0x4936600a,
0x4926601d, 0x4932580d, 0x4a026007, 0x00068000,
- 0x641e6203, 0x0005f2b3, 0x592c0a10, 0x4c040000,
- 0x05f9fe24, 0x5c000800, 0x05020073, 0x58080000,
+ 0x641e6203, 0x0005f2e8, 0x592c0a10, 0x4c040000,
+ 0x05f9fdf1, 0x5c000800, 0x05020076, 0x58080000,
0x49781000, 0x802041c0, 0x05000006, 0x48004000,
0x80000540, 0x05020007, 0x48226810, 0x0501f005,
0x4802680f, 0x80000540, 0x05020002, 0x497a6810,
- 0x4d2c0000, 0x400a5800, 0x640a5a0a, 0x0001fb82,
- 0x5c025800, 0x05fdf7c8, 0x8c10051c, 0x000602a4,
- 0x0501f020, 0x4c100000, 0x05f9fb6b, 0x5c002000,
- 0x0004027a, 0x42000000, 0x0010e511, 0x50000000,
- 0x81200480, 0x0502102c, 0x8c10051c, 0x05000015,
+ 0x4d2c0000, 0x400a5800, 0x640a5a0a, 0x0001fba8,
+ 0x5c025800, 0x05fdf7c8, 0x8c10051c, 0x000602da,
+ 0x0501f020, 0x4c100000, 0x05f9fb2c, 0x5c002000,
+ 0x000402b0, 0x42000000, 0x001124b5, 0x50000000,
+ 0x81200480, 0x0502102f, 0x8c10051c, 0x05000015,
0x592c020a, 0x82000580, 0x0000ffff, 0x05020011,
0x592e600d, 0x83300580, 0xffffffff, 0x05fc07b2,
- 0x0525ff87, 0x0502000e, 0x592c2210, 0x59300202,
- 0x80100580, 0x0502000a, 0x59300009, 0x800001c0,
- 0x05020004, 0x59300203, 0x90000587, 0x05fc079d,
- 0x492fc857, 0x64a65a0a, 0x0001f382, 0x492fc857,
- 0x64225a0a, 0x0001f382, 0x4803c857, 0x8c000514,
- 0x05000007, 0x42000000, 0x0010e439, 0x0535f8a5,
- 0x492fc857, 0x492e6009, 0x1c01f000, 0x492fc857,
- 0x65165a0a, 0x0001f382, 0x492fc857, 0x64aa5a0a,
- 0x0001f382, 0x492fc857, 0x64a25a0a, 0x0001f382,
- 0x492fc857, 0x641a5a0a, 0x0001f382, 0x492fc857,
- 0x643a5a0a, 0x0001f382, 0x90040587, 0x05fe07e4,
- 0x640a5a0a, 0x0001f382, 0x05f9fe7a, 0x05020006,
- 0x42000000, 0x0010e445, 0x0535f88a, 0x0529fb00,
- 0x05fe0793, 0x592c040a, 0x800000c2, 0x800008c4,
- 0x80040400, 0x48025807, 0x59340010, 0x492e6810,
- 0x492fc857, 0x80000d40, 0x05000003, 0x492c0800,
- 0x1c01f000, 0x59340203, 0x492e680f, 0x492fc857,
- 0x4803c857, 0x80000540, 0x05020002, 0x64066a03,
- 0x1c01f000, 0x59a8003b, 0x81640480, 0x05fe1766,
- 0x42026000, 0x00111b00, 0x59300407, 0x90000586,
- 0x05020007, 0x5930000a, 0x81340580, 0x05020004,
- 0x59300202, 0x80040580, 0x05fc0752, 0x91326430,
- 0x41580000, 0x81300480, 0x05fc17f4, 0x05fdf756,
- 0x492fc857, 0x592e4414, 0x81224110, 0x0501fbda,
- 0x05020052, 0x0501fac2, 0x05020050, 0x592c0208,
- 0x80000112, 0x05fe05a6, 0x592e8a0a, 0x05f9faf2,
- 0x0502004a, 0x05f9fa9c, 0x0502004a, 0x592e780e,
- 0x493fc857, 0x8d3c053e, 0x05020005, 0x8d0c050e,
- 0x05020042, 0x05f9f83a, 0x05fc05a7, 0x913c1d1f,
- 0x05fc05a5, 0x592c020b, 0x82000c80, 0x00001000,
- 0x05fe15a1, 0x800000c2, 0x800008c4, 0x8005d400,
- 0x592e900c, 0x592e980d, 0x5934080d, 0x800409c0,
- 0x05000004, 0x58041805, 0x800c19c0, 0x0502002b,
- 0x913c1d1f, 0x81780040, 0x80000000, 0x800c1902,
- 0x05fe17fe, 0x05fe0590, 0x0c01f001, 0x001067b0,
- 0x001067b2, 0x001067bb, 0x001067bd, 0x001067bf,
- 0x0521fd28, 0x0501f019, 0x05f5fff3, 0x0500001d,
- 0x80e9d1c0, 0x05060f18, 0x60168000, 0x417a9000,
- 0x417a9800, 0x0521fd2b, 0x0501f010, 0x61367000,
- 0x0501f004, 0x613a7000, 0x0501f002, 0x614a7000,
- 0x5934080d, 0x800409c0, 0x05000006, 0x4d3c0000,
- 0x40067800, 0x05f5ffc4, 0x5c027800, 0x05000007,
- 0x05f5fed1, 0x05220d49, 0x05000006, 0x8d3c053e,
- 0x0502000a, 0x1c01f000, 0x64c25a0a, 0x0501f009,
- 0x64b25a0a, 0x0501f007, 0x64a25a0a, 0x0501f005,
- 0x64a65a0a, 0x0501f003, 0x497a580d, 0x64025a0a,
- 0x4a025a08, 0x00000103, 0x0001f382, 0x492fc857,
- 0x80140110, 0x80000040, 0x05000002, 0x05fdf54c,
- 0x0501fa6a, 0x0502001e, 0x592c020b, 0x82000500,
- 0x00003fff, 0x48025a0b, 0x8c000506, 0x05000003,
- 0xb0000530, 0x05020003, 0x8d0c050e, 0x05020014,
- 0x4a025a0a, 0x0000dead, 0x592c040c, 0x82000500,
- 0x0000f0ff, 0x48025c0c, 0x05f5fb29, 0x05020002,
- 0x1c01f000, 0x49425a0a, 0x8058b1c0, 0x05000007,
- 0x0525fb22, 0x0501f80a, 0x44042800, 0x90580582,
- 0x05020002, 0x48082801, 0x0001f382, 0x60c68000,
- 0x60040800, 0x6004b000, 0x05fdf7f3, 0x592c040c,
- 0x80000118, 0x912c2c0d, 0x80142c00, 0x1c01f000,
- 0x492fc857, 0x641a5a0c, 0x0001f382, 0x492fc857,
- 0x64065a0c, 0x0001f382, 0x492fc857, 0x592e7c0a,
- 0x833c0500, 0xfffffffe, 0x05020044, 0x592c400b,
- 0x42026000, 0x00111b00, 0x41581800, 0x400c0000,
- 0x81300480, 0x05021028, 0x59300203, 0x90000580,
- 0x0500000c, 0x59300009, 0x80000d40, 0x05000009,
- 0x58043003, 0x58183211, 0x592c020c, 0x80180580,
- 0x05020004, 0x58040009, 0x80200580, 0x05000003,
- 0x91326430, 0x05fdf7ee, 0x58040208, 0x82000500,
- 0x000000ff, 0xb0000d93, 0x0500000d, 0xb0000d88,
- 0x0500000b, 0x90000d98, 0x05000009, 0x90000da9,
- 0x05000007, 0x90000d94, 0x05000005, 0xb00005a8,
- 0x05000003, 0x90000582, 0x05fe07ee, 0x4d2c0000,
- 0x051dffd9, 0x5c025800, 0x05000018, 0x64025a0a,
- 0x0001f382, 0x592e8a0a, 0x83440480, 0x000007f0,
- 0x05021012, 0x83440400, 0x0010d400, 0x50000000,
- 0x80026d40, 0x0500000d, 0x4d2c0000, 0x05f5ff16,
- 0x05000009, 0x60168000, 0x592c0a0c, 0x417a6000,
- 0x05f9fddb, 0x0521fdd8, 0x0001fb82, 0x5c025800,
- 0x05fdf7eb, 0x5c025800, 0x64c65a0a, 0x0001f382,
- 0x492fc857, 0x592c020a, 0x90000586, 0x05000003,
- 0x0501f9ee, 0x05020019, 0x4d2c0000, 0x05d1f923,
- 0x05000011, 0x492fc857, 0x412f4000, 0x05d1f91f,
- 0x0500000b, 0x492fc857, 0x412dd800, 0x05f1f84e,
- 0x05f1f85d, 0x49a1d80b, 0x5c025800, 0x492dd80a,
- 0x48ef4006, 0x05e1f8ea, 0x05e1f101, 0x41a25800,
- 0x05d1f922, 0x5c025800, 0x4a025a0a, 0x00004005,
- 0x640a5c0a, 0x0001f382, 0x4a025a0a, 0x00004001,
- 0x0001f382, 0x4807c857, 0x485fc857, 0x6004b800,
- 0x5c000800, 0x4c5c0000, 0x0501f005, 0x4807c857,
- 0x485fc857, 0x5c000800, 0x4d780000, 0x4803c857,
- 0x492fc857, 0x8c00050e, 0x05ce0d4d, 0x4203e000,
- 0x50000000, 0x600cb900, 0x05cdf554, 0x492fc857,
- 0x4c5c0000, 0x4c600000, 0x4c640000, 0x4d040000,
- 0x4d2c0000, 0x4d200000, 0x4d240000, 0x4c540000,
- 0x4c500000, 0x4c580000, 0x417a4000, 0x59a800d1,
- 0x90000506, 0x05020141, 0x0501f9a2, 0x05020143,
- 0x916c0580, 0x0500013d, 0x592cca0b, 0x592cc40b,
- 0x8060c1c0, 0x0500013d, 0x42000000, 0x0010e511,
- 0x50000000, 0x4c000000, 0x0535f86f, 0x5c000000,
- 0x05000002, 0x80000000, 0x80600480, 0x05021133,
+ 0x0529fa25, 0x05020011, 0x592c2210, 0x59300202,
+ 0x80100580, 0x0502000d, 0x59300009, 0x800001c0,
+ 0x05020004, 0x59300203, 0x90000587, 0x05fc079b,
+ 0x492fc857, 0x64a65a0a, 0x0001f3a8, 0x42000000,
+ 0x001123eb, 0x0535fd1e, 0x492fc857, 0x64225a0a,
+ 0x0001f3a8, 0x4803c857, 0x8c000514, 0x05000007,
+ 0x42000000, 0x001123da, 0x0535fd15, 0x492fc857,
+ 0x492e6009, 0x1c01f000, 0x492fc857, 0x65165a0a,
+ 0x0001f3a8, 0x492fc857, 0x64aa5a0a, 0x0001f3a8,
+ 0x492fc857, 0x64a25a0a, 0x0001f3a8, 0x492fc857,
+ 0x641a5a0a, 0x0001f3a8, 0x492fc857, 0x643a5a0a,
+ 0x0001f3a8, 0x90040587, 0x05fe07e4, 0x640a5a0a,
+ 0x0001f3a8, 0x05f9fe49, 0x05020006, 0x42000000,
+ 0x001123e7, 0x0535fcfa, 0x0529fea8, 0x05fe0790,
+ 0x592c040a, 0x800000c2, 0x800008c4, 0x80040400,
+ 0x48025807, 0x59340010, 0x492e6810, 0x492fc857,
+ 0x80000d40, 0x05000003, 0x492c0800, 0x1c01f000,
+ 0x59340203, 0x492e680f, 0x492fc857, 0x4803c857,
+ 0x80000540, 0x05020002, 0x64066a03, 0x1c01f000,
+ 0x59a8003d, 0x81640480, 0x05fe1763, 0x40be6000,
+ 0x59300407, 0x90000586, 0x05020007, 0x5930000a,
+ 0x81340580, 0x05020004, 0x59300202, 0x80040580,
+ 0x05fc074e, 0x91326430, 0x41580000, 0x81300480,
+ 0x05fc17f4, 0x05fdf754, 0x05f1fb10, 0x05fe07d2,
+ 0x59a8029f, 0x80000104, 0x81640480, 0x05fc17ce,
+ 0x0515fe8c, 0x05fdf762, 0x492fc857, 0x592e4414,
+ 0x81224110, 0x0501fc30, 0x05020052, 0x0501fb18,
+ 0x05020050, 0x592c0208, 0x80000112, 0x05fe0584,
+ 0x592e8a0a, 0x05f9faa9, 0x0502004a, 0x05f9fa53,
+ 0x0502004a, 0x592e780e, 0x493fc857, 0x8d3c053e,
+ 0x05020005, 0x8d0c050e, 0x05020042, 0x05f5ff92,
+ 0x05fc0585, 0x913c1d1f, 0x05fc0583, 0x592c020b,
+ 0x82000c80, 0x00001000, 0x05fe157f, 0x800000c2,
+ 0x800008c4, 0x8005d400, 0x592e900c, 0x592e980d,
+ 0x5934080d, 0x800409c0, 0x05000004, 0x58041805,
+ 0x800c19c0, 0x0502002b, 0x913c1d1f, 0x81780040,
+ 0x80000000, 0x800c1902, 0x05fe17fe, 0x05fe056e,
+ 0x0c01f001, 0x00106ac2, 0x00106ac4, 0x00106acd,
+ 0x00106acf, 0x00106ad1, 0x0521ffaf, 0x0501f019,
+ 0x05f5ff4b, 0x0500001d, 0x80e9d1c0, 0x050a0820,
+ 0x60168000, 0x417a9000, 0x417a9800, 0x0521ffb2,
+ 0x0501f010, 0x61367000, 0x0501f004, 0x613a7000,
+ 0x0501f002, 0x614a7000, 0x5934080d, 0x800409c0,
+ 0x05000006, 0x4d3c0000, 0x40067800, 0x05f5ff1c,
+ 0x5c027800, 0x05000007, 0x05f5fe25, 0x05220fd0,
+ 0x05000006, 0x8d3c053e, 0x0502000a, 0x1c01f000,
+ 0x64c25a0a, 0x0501f009, 0x64b25a0a, 0x0501f007,
+ 0x64a25a0a, 0x0501f005, 0x64a65a0a, 0x0501f003,
+ 0x497a580d, 0x64025a0a, 0x4a025a08, 0x00000103,
+ 0x0001f3a8, 0x492fc857, 0x80140110, 0x80000040,
+ 0x05000002, 0x05fdf52a, 0x0501fac0, 0x0502001f,
+ 0x592c020b, 0x82000500, 0x00003fff, 0x48025a0b,
+ 0x8c000506, 0x05000003, 0xb0000530, 0x05020003,
+ 0x8d0c050e, 0x05020015, 0x4a025a0a, 0x0000dead,
+ 0x592c040c, 0x82000500, 0x0000f0ff, 0x48025c0c,
+ 0x05f5fa16, 0x05020002, 0x1c01f000, 0x49425a0a,
+ 0x8058b1c0, 0x05000008, 0x0525fdb6, 0x0501f80b,
+ 0x44042800, 0x8058b040, 0x05000003, 0x48082801,
+ 0x480c2802, 0x0001f3a8, 0x60c68000, 0x60040800,
+ 0x6004b000, 0x05fdf7f2, 0x592c040c, 0x80000118,
+ 0x912c2c0d, 0x80142c00, 0x1c01f000, 0x492fc857,
+ 0x641a5a0c, 0x0001f3a8, 0x492fc857, 0x64065a0c,
+ 0x0001f3a8, 0x492fc857, 0x592e7c0a, 0x833c0500,
+ 0xfffffffe, 0x05020046, 0x592c400b, 0x40be6000,
+ 0x41581800, 0x400c0000, 0x81300480, 0x0502102a,
+ 0x59300203, 0x90000580, 0x0500000c, 0x59300009,
+ 0x80000d40, 0x05000009, 0x58043003, 0x58183211,
+ 0x592c020c, 0x80180580, 0x05020004, 0x58040009,
+ 0x80200580, 0x05000003, 0x91326430, 0x05fdf7ee,
+ 0x58040208, 0x82000500, 0x000000ff, 0xb0000d93,
+ 0x0500000d, 0xb0000d88, 0x0500000b, 0x90000d98,
+ 0x05000009, 0x90000da9, 0x05000007, 0x90000d94,
+ 0x05000005, 0xb00005a8, 0x05000003, 0x90000582,
+ 0x05fe07ee, 0x050dfe84, 0x4d2c0000, 0x0521fa38,
+ 0x5c025800, 0x0500001a, 0x050dfe70, 0x64025a0a,
+ 0x0001f3a8, 0x592e8a0a, 0x83440c80, 0x000007f0,
+ 0x05001004, 0x83440c80, 0x00000800, 0x05001010,
+ 0x0001fb08, 0x0502000e, 0x4d2c0000, 0x592c400b,
+ 0x05f5fe6b, 0x05000009, 0x60168000, 0x592c0a0c,
+ 0x417a6000, 0x05f9fdaa, 0x0525f85c, 0x0001fba8,
+ 0x5c025800, 0x05fdf7ea, 0x5c025800, 0x050dfe57,
+ 0x64c65a0a, 0x0001f3a8, 0x492fc857, 0x592c020a,
+ 0x90000586, 0x05000003, 0x0501fa40, 0x05020019,
+ 0x4d2c0000, 0x05cdfe44, 0x05000011, 0x492fc857,
+ 0x412f4000, 0x05cdfe40, 0x0500000b, 0x492fc857,
+ 0x412dd800, 0x05edfedb, 0x05edfeea, 0x49a1d80b,
+ 0x5c025800, 0x492dd80a, 0x48ef4006, 0x05ddfe7c,
+ 0x05ddf693, 0x41a25800, 0x05cdfe43, 0x5c025800,
+ 0x4a025a0a, 0x00004005, 0x640a5c0a, 0x0001f3a8,
+ 0x4a025a0a, 0x00004001, 0x0001f3a8, 0x4807c857,
+ 0x485fc857, 0x6004b800, 0x5c000800, 0x4c5c0000,
+ 0x0501f005, 0x4807c857, 0x485fc857, 0x5c000800,
+ 0x4d780000, 0x4803c857, 0x492fc857, 0x8c00050e,
+ 0x05ce0a72, 0x4203e000, 0x50000000, 0x600cb900,
+ 0x05cdf279, 0x492fc857, 0x4c5c0000, 0x4c600000,
+ 0x4c640000, 0x4d040000, 0x4d2c0000, 0x4d200000,
+ 0x4d240000, 0x4c540000, 0x4c500000, 0x4c580000,
+ 0x80ddb9c0, 0x0500000d, 0x48dfc857, 0x58dc7802,
+ 0x58dcb803, 0x58dcc004, 0x58dcc805, 0x4867c857,
+ 0x58de0806, 0x4907c857, 0x58de4007, 0x58de4808,
+ 0x4c3c0000, 0x0501f121, 0x417a4000, 0x59a800d6,
+ 0x90000506, 0x05020159, 0x0501f9e6, 0x0502015b,
+ 0x916c0580, 0x05000155, 0x592cca0b, 0x592cc40b,
+ 0x8060c1c0, 0x05000155, 0x42000000, 0x001124b5,
+ 0x50000000, 0x4c000000, 0x0535fcc6, 0x5c000000,
+ 0x05000002, 0x80000000, 0x80600480, 0x0502114b,
0x912c7c0c, 0x592c040a, 0x4803c857, 0x8c000500,
- 0x05000004, 0x0535f864, 0x0500012c, 0x0501f002,
+ 0x05000004, 0x0535fcbb, 0x05000144, 0x0501f002,
0x60064000, 0x60060800, 0x4200b800, 0xffffffff,
0x83200580, 0x000000e1, 0x05020003, 0x4200b800,
0x3fffffff, 0x503c0000, 0x805cbd00, 0x05020003,
- 0x91224420, 0x0501f00f, 0x805cb902, 0x05021009,
- 0x83200400, 0x0010d17b, 0x50024800, 0x90640580,
- 0x05000010, 0x8c640506, 0x05020095, 0x0501f113,
- 0x81060800, 0x81224000, 0x910404a1, 0x05fc17f3,
- 0x803c7800, 0x83200480, 0x00000100, 0x05fc17e2,
- 0x61fa4001, 0x8060c1c0, 0x05020108, 0x0501f0df,
- 0x59240a00, 0x0535f84d, 0x05000004, 0x8c040500,
- 0x05020102, 0x0501f004, 0x90040d03, 0x90040d83,
- 0x050000fe, 0x59240c00, 0x8c04050a, 0x05020004,
- 0x8d0c0520, 0x050000f9, 0x0501f003, 0x8c040508,
- 0x050000f6, 0x4c3c0000, 0x4d3c0000, 0x4d300000,
- 0x600a78a0, 0x417a6000, 0x05ddfd77, 0x5c026000,
- 0x5c027800, 0x59240206, 0x82000500, 0xfffffcff,
- 0x48024a06, 0x60040800, 0x05ddff3f, 0x05020004,
- 0x4a024a00, 0x00008005, 0x0501f002, 0x64164a00,
- 0x5c007800, 0x05f9ffb1, 0x0502005a, 0x59a80249,
- 0x82000500, 0x00000082, 0x82000d80, 0x00000082,
- 0x05000050, 0x8c00050e, 0x05020052, 0x916c0583,
- 0x05020050, 0x05ddff08, 0x050000cb, 0x0501f04d,
- 0x05f1fa07, 0x05000047, 0x592c1214, 0x480bc857,
- 0x8c080500, 0x05000043, 0x41780800, 0x8c080504,
- 0x05000004, 0x592c0815, 0x82040d00, 0xff000000,
- 0x592c0414, 0x4803c857, 0x8c080502, 0x05020003,
- 0x82000500, 0x00001fff, 0x80040540, 0x4803c857,
- 0x4802480b, 0x82001500, 0x00001fff, 0x05ddfe0a,
- 0x60203000, 0x050000b0, 0x592c0414, 0x82000d00,
- 0x00001fff, 0x0501fba1, 0x0500002a, 0x8c00050a,
- 0x60243000, 0x050200a8, 0x412cb800, 0x05d1f853,
- 0x601c3000, 0x050000a4, 0x905ca408, 0x912cac08,
- 0x6040b000, 0x0531ff72, 0x592c0408, 0x84000554,
- 0x48025c08, 0x81040040, 0x82000c00, 0x0010d15b,
- 0x50040800, 0x405c0000, 0x803c0480, 0x05001096,
- 0x812c7c00, 0x503c0000, 0x80040580, 0x44007800,
- 0x80600040, 0x48025c0b, 0x4d2c0000, 0x05d1f83b,
- 0x412c0800, 0x5c025800, 0x601c3000, 0x0500008a,
- 0x4806480c, 0x5924000b, 0x48000802, 0x412c0800,
- 0x05ddfe41, 0x601c3000, 0x05000083, 0x0501f06f,
- 0x4c3c0000, 0x05ddfcb9, 0x5c007800, 0x05000085,
- 0x81060800, 0x81224000, 0x8060c040, 0x05fe0767,
- 0x05f9ff52, 0x05020059, 0x0501f064, 0x59240a00,
- 0x8c040500, 0x0500007d, 0x05f1f9b1, 0x05000014,
- 0x592c1214, 0x8c080500, 0x05000011, 0x592c1414,
- 0x82081500, 0x00001fff, 0x5924000b, 0x82000500,
- 0x00001fff, 0x80080580, 0x60203000, 0x05020066,
- 0x8c04051e, 0x05000006, 0x4c040000, 0x05ddfe67,
- 0x5c000800, 0x82040d00, 0xffff7f1f, 0x4c3c0000,
- 0x4c040000, 0x82040d00, 0xffffdffc, 0x84040d44,
- 0x48064a00, 0x0531ff98, 0x05000012, 0x59240200,
- 0x8c00051e, 0x0500000f, 0x8400051e, 0x48024a00,
- 0x600c0800, 0x05ddfeb0, 0x05000007, 0x4813c857,
- 0x4817c857, 0x58100200, 0x8400055e, 0x48002200,
- 0x0501f004, 0x59a80249, 0x8400050e, 0x48035249,
- 0x5c000800, 0x5c007800, 0x8c640502, 0x05020016,
- 0x4c3c0000, 0x59240c08, 0x05d9f96b, 0x4c5c0000,
- 0x4d3c0000, 0x600a78a0, 0x4d300000, 0x417a6000,
- 0x05ddfcc9, 0x5c026000, 0x5c027800, 0x497a480b,
- 0x5c00b800, 0x5c007800, 0x81060800, 0x81224000,
- 0x8060c040, 0x05fe071d, 0x90640589, 0x0500000f,
- 0x0501f01a, 0x916c0584, 0x05fc07ea, 0x90040d03,
- 0x90040d83, 0x05fe07e7, 0x4c3c0000, 0x0501f839,
+ 0x91224420, 0x0501f010, 0x805cb902, 0x05021009,
+ 0x83200400, 0x0010d8f9, 0x50024800, 0x90640580,
+ 0x05000011, 0x8c640506, 0x05020096, 0x0501f12b,
+ 0x910404a1, 0x05021004, 0x81060800, 0x81224000,
+ 0x05fdf7f2, 0x803c7800, 0x83200480, 0x00000100,
+ 0x05fc17e1, 0x61fa4001, 0x8060c1c0, 0x0502011f,
+ 0x0501f0f6, 0x59240a00, 0x0535fca3, 0x05000004,
+ 0x8c040500, 0x05020119, 0x0501f004, 0x90040d03,
+ 0x90040d83, 0x05000115, 0x59240c00, 0x8c04050a,
+ 0x05020004, 0x8d0c0520, 0x05000110, 0x0501f003,
+ 0x8c040508, 0x0500010d, 0x4c3c0000, 0x4d3c0000,
+ 0x4d300000, 0x600a78a0, 0x417a6000, 0x05ddfaf8,
+ 0x5c026000, 0x5c027800, 0x59240206, 0x82000500,
+ 0xfffffcff, 0x48024a06, 0x60040800, 0x05ddfcc2,
+ 0x05020004, 0x4a024a00, 0x00008005, 0x0501f002,
+ 0x64164a00, 0x5c007800, 0x05f9ff76, 0x0502005a,
+ 0x59a8024c, 0x82000500, 0x00000082, 0x82000d80,
+ 0x00000082, 0x05000050, 0x8c00050e, 0x05020052,
+ 0x916c0583, 0x05020050, 0x05ddfc8b, 0x050000e2,
+ 0x0501f04d, 0x05f1f888, 0x05000047, 0x592c1214,
+ 0x480bc857, 0x8c080500, 0x05000043, 0x41780800,
+ 0x8c080504, 0x05000004, 0x592c0815, 0x82040d00,
+ 0xff000000, 0x592c0414, 0x4803c857, 0x8c080502,
+ 0x05020003, 0x82000500, 0x00001fff, 0x80040540,
+ 0x4803c857, 0x4802480b, 0x82001500, 0x00001fff,
+ 0x05ddfb8c, 0x60203000, 0x050000c7, 0x592c0414,
+ 0x82000d00, 0x00001fff, 0x0501fc04, 0x0500002a,
+ 0x8c00050a, 0x60243000, 0x050200bf, 0x412cb800,
+ 0x05cdfd65, 0x601c3000, 0x050000bb, 0x905ca408,
+ 0x912cac08, 0x6040b000, 0x0535fbc8, 0x592c0408,
+ 0x84000554, 0x48025c08, 0x81040040, 0x82000c00,
+ 0x0010d8d9, 0x50040800, 0x405c0000, 0x803c0480,
+ 0x050010ad, 0x812c7c00, 0x503c0000, 0x80040580,
+ 0x44007800, 0x80600040, 0x48025c0b, 0x4d2c0000,
+ 0x05cdfd4d, 0x412c0800, 0x5c025800, 0x601c3000,
+ 0x050000a1, 0x4806480c, 0x5924000b, 0x48000802,
+ 0x412c0800, 0x05ddfbc3, 0x601c3000, 0x0500009a,
+ 0x0501f086, 0x4c3c0000, 0x05ddfa30, 0x5c007800,
+ 0x0500009c, 0x81060800, 0x81224000, 0x8060c040,
+ 0x05fe0766, 0x05f9ff17, 0x05020070, 0x0501f07b,
+ 0x59240a00, 0x8c040500, 0x05000094, 0x05f1f832,
+ 0x05000014, 0x592c1214, 0x8c080500, 0x05000011,
+ 0x592c1414, 0x82081500, 0x00001fff, 0x5924000b,
+ 0x82000500, 0x00001fff, 0x80080580, 0x60203000,
+ 0x0502007d, 0x8c04051e, 0x05000006, 0x4c040000,
+ 0x05ddfbe9, 0x5c000800, 0x82040d00, 0xffff7f1f,
+ 0x4c3c0000, 0x4c040000, 0x82040d00, 0xffffdffc,
+ 0x84040d44, 0x48064a00, 0x0535fbee, 0x05000018,
+ 0x59240200, 0x8c00051e, 0x05000015, 0x8400051e,
+ 0x48024a00, 0x600c0800, 0x05ddfc33, 0x05000007,
+ 0x4813c857, 0x4817c857, 0x58100200, 0x8400055e,
+ 0x48002200, 0x0501f00a, 0x59a8024c, 0x8400050e,
+ 0x4803524c, 0x60040800, 0x05ddfc27, 0x05000004,
+ 0x58100200, 0x8400055e, 0x48002200, 0x5c000800,
+ 0x5c007800, 0x8c640502, 0x05020016, 0x4c3c0000,
+ 0x59240c08, 0x05d5fec0, 0x4c5c0000, 0x4d3c0000,
+ 0x600a78a0, 0x4d300000, 0x417a6000, 0x05ddfa44,
+ 0x5c026000, 0x5c027800, 0x497a480b, 0x5c00b800,
0x5c007800, 0x81060800, 0x81224000, 0x8060c040,
- 0x05fe070e, 0x0501f00d, 0x916c0584, 0x0500000b,
- 0x05f9fef6, 0x05020007, 0x4a035041, 0x0000aaaa,
- 0x64075042, 0x6006d800, 0x05f9fe73, 0x0501f003,
- 0x6006d800, 0x05f1ff2a, 0x5c00b000, 0x5c00a000,
+ 0x05fe0716, 0x90640589, 0x05000020, 0x0501f02b,
+ 0x916c0584, 0x05fc07ea, 0x90040d03, 0x90040d83,
+ 0x05fe07e7, 0x4c3c0000, 0x0501f84a, 0x05020011,
+ 0x5c007800, 0x492db801, 0x483db802, 0x485db803,
+ 0x4861b804, 0x4865b805, 0x4905b806, 0x4921b807,
+ 0x4925b808, 0x5c00b000, 0x5c00a000, 0x5c00a800,
+ 0x5c024800, 0x5c024000, 0x5c025800, 0x0501f021,
+ 0x5c007800, 0x81060800, 0x81224000, 0x8060c040,
+ 0x05fe06f6, 0x0501f00d, 0x916c0584, 0x0500000b,
+ 0x05f9fea4, 0x05020007, 0x4a035044, 0x0000aaaa,
+ 0x64075045, 0x6006d800, 0x05f9fe1b, 0x0501f003,
+ 0x6006d800, 0x05f1fde5, 0x5c00b000, 0x5c00a000,
0x5c00a800, 0x5c024800, 0x5c024000, 0x5c025800,
0x497a5a0a, 0x64025c0a, 0x592c0408, 0x8c000514,
- 0x05000003, 0x05cdffc5, 0x0501f002, 0x0001fb82,
+ 0x05000003, 0x05cdfcc0, 0x0501f002, 0x0001fba8,
0x5c020800, 0x5c00c800, 0x5c00c000, 0x5c00b800,
0x1c01f000, 0x59240200, 0x82000500, 0xfffffffc,
0x48024a00, 0x0501f006, 0x60143000, 0x0501f004,
@@ -6814,43 +7021,54 @@ static const uint32_t isp_2500_risc_code[] = {
0x5c024000, 0x5c025800, 0x481a5c0a, 0x05fdf7e3,
0x4923c857, 0x4d440000, 0x4d300000, 0x4d340000,
0x4c580000, 0x4d400000, 0x4d3c0000, 0x4c5c0000,
- 0x60a68000, 0x600a7820, 0x61c0b00f, 0x417a8800,
- 0x83440400, 0x0010d400, 0x50000000, 0x80026d40,
- 0x05000005, 0x59340013, 0x80000130, 0x81200580,
- 0x0500081c, 0x81468800, 0x8058b040, 0x05fe07f5,
- 0x61fe89ff, 0x42026800, 0x00110210, 0x0501f815,
- 0x9064058b, 0x0502000b, 0x61c2880f, 0x6040b000,
- 0x5924b809, 0x505c0000, 0x80026d40, 0x0502080d,
- 0x805cb800, 0x81468800, 0x8058b040, 0x05fe07fa,
- 0x5c00b800, 0x5c027800, 0x5c028000, 0x5c00b000,
- 0x5c026800, 0x5c026000, 0x5c028800, 0x1c01f000,
- 0x4937c857, 0x4947c857, 0x050dfaf9, 0x4df00000,
- 0x417a6000, 0x050df828, 0x050df92d, 0x050df976,
- 0x0509fefc, 0x052dfc50, 0x83440580, 0x0000ffff,
- 0x05000015, 0x59340c00, 0x82040580, 0x00000707,
- 0x05000011, 0x82000580, 0x0000070b, 0x0500000e,
- 0x4d300000, 0x4d380000, 0x0515f9dd, 0x05cc0bab,
- 0x64066407, 0x4936600a, 0x4926601d, 0x602c0800,
- 0x05f5fab9, 0x60067000, 0x0009f800, 0x5c027000,
- 0x5c026000, 0x5c03e000, 0x050c0aca, 0x1c01f000,
+ 0x60a68000, 0x600a7820, 0x80ddb9c0, 0x0500000e,
+ 0x58de8809, 0x58dcb00a, 0x58dcb80b, 0x485fc857,
+ 0x4d2c0000, 0x40de5800, 0x05cdfc93, 0x4179b800,
+ 0x5c025800, 0x83440480, 0x000007fc, 0x05001004,
+ 0x0501f01b, 0x59a8b0ac, 0x417a8800, 0x0001fb08,
+ 0x05020006, 0x59340013, 0x80000130, 0x81200580,
+ 0x05000831, 0x05000024, 0x81468800, 0x83440580,
+ 0x000007f0, 0x05020002, 0x60028810, 0x8058b040,
+ 0x05fe07f3, 0x61fe89ff, 0x42026800, 0x001141b4,
+ 0x0501f825, 0x05000018, 0x9064058b, 0x0502000d,
+ 0x61c2880f, 0x6040b000, 0x5924b809, 0x505c0000,
+ 0x80026d40, 0x05000003, 0x0501f81b, 0x0500000e,
+ 0x805cb800, 0x81468800, 0x8058b040, 0x05fe07f8,
+ 0x90000541, 0x5c00b800, 0x5c027800, 0x5c028000,
+ 0x5c00b000, 0x5c026800, 0x5c026000, 0x5c028800,
+ 0x1c01f000, 0x4d2c0000, 0x05cdfc4f, 0x05cc08aa,
+ 0x412db800, 0x5c025800, 0x4a01b800, 0xaaaabbbb,
+ 0x4945b809, 0x4859b80a, 0x485db80b, 0x80000580,
+ 0x05fdf7ed, 0x4937c857, 0x4947c857, 0x050dfc5a,
+ 0x4df00000, 0x417a6000, 0x050df984, 0x050dfa8f,
+ 0x050dfad8, 0x050df858, 0x0531f80a, 0x83440580,
+ 0x0000ffff, 0x05000019, 0x59340c00, 0x82040580,
+ 0x00000707, 0x05000015, 0x82000580, 0x0000070b,
+ 0x05000012, 0x4d300000, 0x4d380000, 0x0515fb95,
+ 0x05cc0889, 0x64066407, 0x4936600a, 0x4926601d,
+ 0x602c0800, 0x05f5f96f, 0x60067000, 0x83440580,
+ 0x000007fe, 0x05020002, 0x497a6806, 0x0009f839,
+ 0x5c027000, 0x5c026000, 0x5c03e000, 0x050c0c27,
+ 0x90000541, 0x1c01f000, 0x5c027000, 0x5c026000,
+ 0x5c03e000, 0x050c0c21, 0x80000580, 0x1c01f000,
0x599c0018, 0x8c00052a, 0x05000004, 0x592c0003,
0x58000211, 0x80000540, 0x1c01f000, 0x599c0018,
0x8c00052a, 0x05000004, 0x592c0003, 0x5800040c,
0x81200580, 0x1c01f000, 0x599c0018, 0x8c000530,
0x05000004, 0x592c0003, 0x58000211, 0x80000540,
- 0x1c01f000, 0x4c640000, 0x4c600000, 0x59a800d1,
+ 0x1c01f000, 0x4c640000, 0x4c600000, 0x59a800d6,
0x90000506, 0x050200f4, 0x05fdffe6, 0x050200f2,
0x916c0580, 0x050000f0, 0x497a5c0a, 0x592c220b,
0x8210c500, 0x000000ff, 0x80100110, 0x8200cd00,
0x000000ff, 0x050000e2, 0x90640483, 0x050210e0,
0x4d200000, 0x4d240000, 0x4d2c0000, 0x4d040000,
0x417a0800, 0x592c140b, 0x820a4500, 0x000000ff,
- 0x4923c857, 0x0531fe87, 0x40580000, 0x81200480,
- 0x050210d7, 0x83200400, 0x0010d17b, 0x50024800,
- 0x90600583, 0x05020012, 0x59a80249, 0x8c000514,
+ 0x4923c857, 0x0535fa9a, 0x40580000, 0x81200480,
+ 0x050210d7, 0x83200400, 0x0010d8f9, 0x50024800,
+ 0x90600583, 0x05020012, 0x59a8024c, 0x8c000514,
0x0500000c, 0x59240200, 0x82001d00, 0x00002001,
0x820c1d80, 0x00002001, 0x05020006, 0x8c000510,
- 0x05020004, 0x41781800, 0x05ddfb8c, 0x0501f0a4,
+ 0x05020004, 0x41781800, 0x05ddf8c0, 0x0501f0a4,
0x4803c857, 0x60183000, 0x0501f0ca, 0x90600582,
0x05000004, 0x59240200, 0x8c000500, 0x050200b6,
0x592c020c, 0x8c00050a, 0x05020004, 0x8d0c0520,
@@ -6862,22 +7080,22 @@ static const uint32_t isp_2500_risc_code[] = {
0x592c0010, 0x9c0001c0, 0x48024804, 0x810609c0,
0x05000002, 0x912e5c85, 0x592c0a0b, 0x8c040500,
0x0500007b, 0x4d3c0000, 0x4d300000, 0x600a78a0,
- 0x417a6000, 0x05ddfbb4, 0x5c026000, 0x5c027800,
+ 0x417a6000, 0x05ddf8f2, 0x5c026000, 0x5c027800,
0x59240206, 0x82000500, 0xfffffcff, 0x48024a06,
- 0x60040800, 0x05ddfd7c, 0x05020004, 0x4a024a00,
- 0x00008005, 0x0501f002, 0x64164a00, 0x05f9fdef,
- 0x05020067, 0x05f1f852, 0x05000057, 0x592c120a,
+ 0x60040800, 0x05ddfabc, 0x05020004, 0x4a024a00,
+ 0x00008005, 0x0501f002, 0x64164a00, 0x05f9fd71,
+ 0x05020067, 0x05edfe90, 0x05000057, 0x592c120a,
0x8c080500, 0x05000054, 0x41780000, 0x8c080504,
0x05000005, 0x592c0017, 0x82000500, 0x0000ff00,
0x800000e0, 0x592c0a16, 0x8c080502, 0x05020003,
0x82040d00, 0x00001fff, 0x80040540, 0x4802480b,
- 0x82001500, 0x00001fff, 0x05ddfc57, 0x60203000,
+ 0x82001500, 0x00001fff, 0x05ddf996, 0x60203000,
0x05000074, 0x592c0a16, 0x82040d00, 0x00001fff,
- 0x0501f9ee, 0x0500003c, 0x8c00050a, 0x60243000,
- 0x0502006c, 0x412cb800, 0x05cdfea0, 0x601c3000,
+ 0x0501fa0e, 0x0500003c, 0x8c00050a, 0x60243000,
+ 0x0502006c, 0x412cb800, 0x05cdfb6f, 0x601c3000,
0x05000068, 0x492fc857, 0x4c540000, 0x4c500000,
0x4c580000, 0x905ca408, 0x912cac08, 0x6040b000,
- 0x0531fdbb, 0x5c00b000, 0x5c00a000, 0x5c00a800,
+ 0x0535f9ce, 0x5c00b000, 0x5c00a000, 0x5c00a800,
0x4a025c08, 0x00000400, 0x592c0a0b, 0x82040d00,
0x000000ff, 0x80640040, 0x800000d0, 0x80040540,
0x48025a0b, 0x4803c857, 0x592c140b, 0x80081110,
@@ -6885,119 +7103,127 @@ static const uint32_t isp_2500_risc_code[] = {
0x8d0c0520, 0x05000044, 0x0501f003, 0x8c000508,
0x05000041, 0x48025a0c, 0x592c0012, 0x4802580d,
0x592c0013, 0x4802580e, 0x592c0014, 0x4802580f,
- 0x592c0015, 0x48025810, 0x412e0800, 0x05cdfe73,
+ 0x592c0015, 0x48025810, 0x412e0800, 0x05cdfb42,
0x601c3000, 0x0500003b, 0x492e480c, 0x5924000b,
- 0x48025802, 0x41040800, 0x05ddfc7b, 0x05000034,
- 0x0501f016, 0x600c0800, 0x05ddfd1b, 0x0502000a,
- 0x59a80249, 0x4803c857, 0x8c00050e, 0x05020008,
- 0x916c0583, 0x05020006, 0x05ddfcef, 0x05000028,
- 0x0501f003, 0x05ddfae9, 0x05000025, 0x8064c840,
+ 0x48025802, 0x41040800, 0x05ddf9ba, 0x05000034,
+ 0x0501f016, 0x600c0800, 0x05ddfa5b, 0x0502000a,
+ 0x59a8024c, 0x4803c857, 0x8c00050e, 0x05020008,
+ 0x916c0583, 0x05020006, 0x05ddfa2f, 0x05000028,
+ 0x0501f003, 0x05ddf81d, 0x05000025, 0x8064c840,
0x05000006, 0x592c140b, 0x80081110, 0x81060800,
0x912e5c05, 0x05fdf73d, 0x5c020800, 0x5c025800,
0x5c024800, 0x5c024000, 0x592c0408, 0x8c000514,
- 0x05000003, 0x05cdfe5d, 0x0501f020, 0x05f9fd77,
+ 0x05000003, 0x05cdfb2c, 0x0501f020, 0x05f9fcf9,
0x0500001d, 0x592c0a0b, 0x8c040500, 0x0500001a,
- 0x916c0584, 0x05000018, 0x6006d800, 0x05f1fdac,
+ 0x916c0584, 0x05000018, 0x6006d800, 0x05f1fc3b,
0x0501f015, 0x60043000, 0x0501f00e, 0x60083000,
0x0501f010, 0x600c3000, 0x0501f00a, 0x60103000,
0x0501f008, 0x60143000, 0x0501f00a, 0x60183000,
0x59240200, 0x82000500, 0xfffffffc, 0x48024a00,
0x5c020800, 0x5c025800, 0x5c024800, 0x5c024000,
- 0x481a5c0a, 0x0001fb82, 0x5c00c000, 0x5c00c800,
- 0x1c01f000, 0x4c580000, 0x0531fd9a, 0x40580000,
- 0x81200480, 0x05021009, 0x83200400, 0x0010d17b,
+ 0x481a5c0a, 0x0001fba8, 0x5c00c000, 0x5c00c800,
+ 0x1c01f000, 0x4c580000, 0x0535f9ad, 0x40580000,
+ 0x81200480, 0x05021009, 0x83200400, 0x0010d8f9,
0x50024800, 0x59240200, 0x90000503, 0x90000583,
- 0x5c00b000, 0x1c01f000, 0x4923c857, 0x4927c857,
- 0x90000541, 0x05fdf7fb, 0x80140110, 0x80000040,
- 0x05fe01bf, 0x599c0019, 0x8c000510, 0x0502000b,
- 0x05f5ff3a, 0x05020002, 0x1c01f000, 0x49425a0a,
- 0x48065811, 0x480a5812, 0x4943c857, 0x4807c857,
- 0x480bc857, 0x0001f382, 0x592c040f, 0x82000500,
- 0x0000e000, 0x82000580, 0x00006000, 0x05fc07f1,
- 0x59a80249, 0x8c000508, 0x05fc07ee, 0x592c040d,
- 0x82000500, 0x000000ff, 0x90000583, 0x05fe07e9,
- 0x592c120f, 0x592c080e, 0x82040500, 0xff000000,
- 0x80040d80, 0x80000110, 0x80081540, 0x05000004,
- 0x4806580e, 0x0501f889, 0x05fdf7de, 0x60701000,
- 0x60640800, 0x60c68000, 0x05fdf7dd, 0x80140110,
- 0x80000040, 0x05fe0192, 0x05f9f860, 0x05020002,
- 0x1c01f000, 0x49425a0a, 0x48065815, 0x480a5816,
- 0x0001f382, 0x80140110, 0x05fc0189, 0x80000040,
+ 0x5c00b000, 0x1c01f000, 0x4923c857, 0x417a4800,
+ 0x90000541, 0x05fdf7fb, 0x492fc857, 0x80140110,
+ 0x80000040, 0x05fe0146, 0x599c0019, 0x8c000510,
+ 0x0502000d, 0x05f5fea3, 0x05020002, 0x1c01f000,
+ 0x49425a0a, 0x48065811, 0x480a5812, 0x480e5813,
+ 0x4943c857, 0x4807c857, 0x480bc857, 0x480fc857,
+ 0x0001f3a8, 0x592c040f, 0x82000500, 0x0000e000,
+ 0x82000580, 0x00006000, 0x05fc07ef, 0x59a8024c,
+ 0x8c000508, 0x05fc07ec, 0x592c040d, 0x82000500,
+ 0x000000ff, 0x90000583, 0x05fe07e7, 0x592c120f,
+ 0x592c080e, 0x82040500, 0xff000000, 0x80040d80,
+ 0x80000110, 0x80081540, 0x05000004, 0x4806580e,
+ 0x0501f8a6, 0x05fdf7dc, 0x60701000, 0x60640800,
+ 0x60c68000, 0x05fdf7db, 0x80140110, 0x80000040,
+ 0x05fe0117, 0x05f5ffc8, 0x05020002, 0x1c01f000,
+ 0x49425a0a, 0x48065815, 0x480a5816, 0x480e5813,
+ 0x0001f3a8, 0x80140110, 0x05fc010d, 0x80000040,
0x0502000a, 0x6006e000, 0x592c020e, 0x8c000504,
- 0x00040218, 0x592c020b, 0x82000c80, 0x00001001,
- 0x05fe118d, 0x0501f004, 0x4a01e007, 0x00020a18,
- 0x0005f0df, 0x592c1017, 0x82080500, 0xffff0003,
- 0x05fe0185, 0x600ae000, 0x42000000, 0x001102f1,
+ 0x00040241, 0x592c020b, 0x82000c80, 0x00001001,
+ 0x05fe1111, 0x0501f004, 0x4a01e007, 0x00020a41,
+ 0x0005f106, 0x592c1017, 0x82080500, 0xffff0003,
+ 0x05fe0109, 0x600ae000, 0x42000000, 0x00114295,
0x50007000, 0x592c0015, 0x592c0816, 0x592c1804,
0x480c7006, 0x48007007, 0x48047008, 0x492c700b,
0x4978700e, 0x4978700c, 0x0501f001, 0x4978700d,
0x82080480, 0x00000180, 0x05001006, 0x4800700f,
0x4a007005, 0x00000180, 0x65807004, 0x0501f005,
0x4978700f, 0x48087005, 0x80081104, 0x48087004,
- 0x5838000a, 0x48007003, 0x40381000, 0x0001f021,
- 0x4df00000, 0x4203e000, 0x50000000, 0x0001f817,
- 0x05000003, 0x58f00004, 0x0801f800, 0x5c03e000,
- 0x1c01f000, 0x05cdfd94, 0x05cc09fc, 0x4a02580a,
- 0x00110290, 0x42000800, 0x001102f1, 0x452c0800,
+ 0x5838000a, 0x48007003, 0x40381000, 0x0001f029,
+ 0x4df00000, 0x4203e000, 0x50000000, 0x0001f81f,
+ 0x05000005, 0x58f00004, 0x0801f800, 0x5c03e000,
+ 0x1c01f000, 0x59980000, 0x80006d40, 0x05fc07fc,
+ 0x58347a08, 0x823c7d00, 0x000000ff, 0x903c6db3,
+ 0x05000007, 0x903c6d94, 0x05000005, 0xb03c6d92,
+ 0x05000003, 0x903c6da9, 0x05fe07f1, 0x58f06805,
+ 0x4c340000, 0x58f06806, 0x4c340000, 0x58f06804,
+ 0x4c340000, 0x0501f90d, 0x5c006800, 0x4835e004,
+ 0x5c006800, 0x4835e006, 0x5c006800, 0x4835e005,
+ 0x05fdf7e3, 0x05cdfa43, 0x05c80eaf, 0x4a02580a,
+ 0x00114234, 0x42000800, 0x00114295, 0x452c0800,
0x497a580b, 0x497a580c, 0x497a580d, 0x497a580e,
- 0x497a580f, 0x4a025809, 0x00020b4f, 0x497a5810,
+ 0x497a580f, 0x4a025809, 0x00020b85, 0x497a5810,
0x4a025802, 0x00000100, 0x64065801, 0x1c01f000,
- 0x42000800, 0x001102f2, 0x64040801, 0x4a000802,
+ 0x42000800, 0x00114296, 0x64040801, 0x4a000802,
0x00000100, 0x64400804, 0x65000805, 0x4a000809,
- 0x00020914, 0x1c01f000, 0x0501f808, 0x05fc0410,
- 0x64065a0c, 0x0531f0dc, 0x0501f804, 0x05fc0409,
- 0x641a5a0c, 0x0531f0d8, 0x59a80005, 0x8c00051a,
+ 0x0002093b, 0x1c01f000, 0x0501f808, 0x05fc039b,
+ 0x64065a0c, 0x0531f4b1, 0x0501f804, 0x05fc0394,
+ 0x641a5a0c, 0x0531f4ad, 0x59a80005, 0x8c00051a,
0x1c01f000, 0x59a80005, 0x8c00051c, 0x1c01f000,
0x592c0208, 0x82000500, 0x000000ff, 0xb00005b5,
0x592c040c, 0x0502000a, 0x84000542, 0x48025c0c,
- 0x592c0005, 0x4d2c0000, 0x80025d40, 0x05ce0d7f,
+ 0x592c0005, 0x4d2c0000, 0x80025d40, 0x05ce0a2e,
0x5c025800, 0x497a5805, 0x1c01f000, 0x84000502,
- 0x48025c0c, 0x1c01f000, 0x59a8003d, 0x80080580,
+ 0x48025c0c, 0x1c01f000, 0x59a80040, 0x80080580,
0x05020002, 0x1c01f000, 0x480bc857, 0x42024800,
- 0x0010e512, 0x480a4805, 0x480b503d, 0x497b8830,
+ 0x001124b6, 0x480a4805, 0x480b5040, 0x497b8830,
0x82080d40, 0x01000000, 0x48078832, 0x59c40002,
- 0x8400054c, 0x48038802, 0x600c0800, 0x050df116,
- 0x492fc857, 0x80140110, 0x90000581, 0x05fe00fc,
+ 0x8400054c, 0x48038802, 0x600c0800, 0x050df24c,
+ 0x492fc857, 0x80140110, 0x90000581, 0x05fe0064,
0x592c040c, 0x4803c857, 0x82000500, 0x000000f0,
- 0x80000108, 0x0c01f001, 0x00106cc1, 0x00106c46,
- 0x00106c72, 0x00106cc1, 0x00106c72, 0x00106cc1,
- 0x00106cc1, 0x00106cc1, 0x00106cae, 0x00106cc1,
- 0x00106cc1, 0x00106cc1, 0x00106cc1, 0x00106cc1,
- 0x00106cc1, 0x00106cc1, 0x05edfed2, 0x0500006f,
+ 0x80000108, 0x0c01f001, 0x00107049, 0x00106fce,
+ 0x00106ffa, 0x00107049, 0x00106ffa, 0x00107049,
+ 0x00107049, 0x00107049, 0x00107036, 0x00107049,
+ 0x00107049, 0x00107049, 0x00107049, 0x00107049,
+ 0x00107049, 0x00107049, 0x05edfcf0, 0x0500006f,
0x592c0817, 0x4807c857, 0x82040580, 0x00000200,
- 0x0502007b, 0x4d2c0000, 0x05cdfd23, 0x412c1000,
+ 0x0502007b, 0x4d2c0000, 0x05cdf9d2, 0x412c1000,
0x5c025800, 0x05000063, 0x480a5801, 0x492c100a,
- 0x64001001, 0x4a001009, 0x00106c5f, 0x4a001003,
- 0x00110672, 0x48041005, 0x592c0015, 0x48001007,
- 0x592c0016, 0x48001008, 0x0001f021, 0x5832580a,
- 0x812e59c0, 0x05cc0979, 0x49786001, 0x58300002,
- 0x82000580, 0x00000100, 0x05020007, 0x59a80ccd,
- 0x48065811, 0x59a808cf, 0x48065810, 0x64025a0a,
- 0x0001f382, 0x4803c857, 0x4a006002, 0x00000100,
- 0x600a8000, 0x0501f04c, 0x05edfea6, 0x05000043,
- 0x05edfea9, 0x05020043, 0x592c020b, 0x4803c857,
+ 0x64001001, 0x4a001009, 0x00106fe7, 0x4a001003,
+ 0x00114616, 0x48041005, 0x592c0015, 0x48001007,
+ 0x592c0016, 0x48001008, 0x0001f029, 0x5832580a,
+ 0x812e59c0, 0x05c80e2c, 0x49786001, 0x58300002,
+ 0x82000580, 0x00000100, 0x05020007, 0x59a80cd2,
+ 0x48065811, 0x59a808d4, 0x48065810, 0x64025a0a,
+ 0x0001f3a8, 0x4803c857, 0x4a006002, 0x00000100,
+ 0x600a8000, 0x0501f04c, 0x05edfcc4, 0x05000043,
+ 0x05edfcc7, 0x05020043, 0x592c020b, 0x4803c857,
0x82000480, 0x00001000, 0x05021045, 0x592c000f,
0x4803c857, 0x800001c0, 0x05000045, 0x90000484,
0x05021043, 0x592c0814, 0x4807c857, 0x82040580,
0x00000200, 0x05020040, 0x592c040c, 0x8c00050a,
0x05000006, 0x592c0017, 0x4803c857, 0x82000580,
- 0x00000200, 0x0502003a, 0x4d2c0000, 0x05cdfce2,
+ 0x00000200, 0x0502003a, 0x4d2c0000, 0x05cdf991,
0x412c1000, 0x5c025800, 0x05000022, 0x480a5801,
0x4978100b, 0x492c100a, 0x64041001, 0x4a001009,
- 0x00106ca6, 0x4a001003, 0x001105f2, 0x592c040c,
- 0x8c00050a, 0x05020003, 0x4a001003, 0x001106f2,
+ 0x0010702e, 0x4a001003, 0x00114596, 0x592c040c,
+ 0x8c00050a, 0x05020003, 0x4a001003, 0x00114696,
0x48041005, 0x592c0012, 0x48001007, 0x592c0013,
- 0x48001008, 0x0001f021, 0x5832580a, 0x812e59c0,
- 0x05cc0932, 0x49786001, 0x58300002, 0x82000580,
- 0x00000100, 0x05fe07c0, 0x05edfe6a, 0x05000007,
- 0x497a5a0a, 0x05f9f87c, 0x05020009, 0x1c01f000,
+ 0x48001008, 0x0001f029, 0x5832580a, 0x812e59c0,
+ 0x05c80de5, 0x49786001, 0x58300002, 0x82000580,
+ 0x00000100, 0x05fe07c0, 0x05edfc88, 0x05000007,
+ 0x497a5a0a, 0x05f5ffc9, 0x05020009, 0x1c01f000,
0x640a5810, 0x0501f004, 0x64c65810, 0x0501f002,
0x64ca5810, 0x60c68000, 0x0501f003, 0x48065810,
- 0x480a5811, 0x49425a0a, 0x0001f382, 0x64325811,
+ 0x480a5811, 0x49425a0a, 0x0001f3a8, 0x64325811,
0x0501f008, 0x644a5811, 0x0501f006, 0x64725811,
0x0501f004, 0x64c25811, 0x0501f002, 0x64f25811,
0x64665810, 0x05fdf7f0, 0x4807c857, 0x4c580000,
- 0x0531fc28, 0x42006000, 0x0010e512, 0x58301200,
+ 0x0535f81b, 0x42006000, 0x001124b6, 0x58301200,
0x8c08051e, 0x0500000b, 0x5830000b, 0x82000500,
0x00001fff, 0x80040580, 0x05020006, 0x82080500,
0x000000e0, 0x82000580, 0x000000e0, 0x0501f005,
@@ -7007,432 +7233,458 @@ static const uint32_t isp_2500_risc_code[] = {
0x82140500, 0x000000ff, 0xb0006cbb, 0x05021033,
0x4c5c0000, 0x4c600000, 0x4c640000, 0x4d040000,
0x4971e410, 0x4cf00000, 0x4d700000, 0x42007800,
- 0x0010dd60, 0x503de000, 0x58f0700b, 0x58f06c10,
- 0x483a5804, 0x90347583, 0x05020005, 0x58f0b802,
+ 0x00111cfa, 0x503de000, 0x58f0700b, 0x58f06c10,
+ 0x483a5804, 0x90347581, 0x05000005, 0x58f0b802,
0x58f0c003, 0x58f0cc00, 0x58f20807, 0x58f07012,
0x483a5802, 0x48f25803, 0x59980801, 0x4c040000,
- 0x497b3001, 0x6006e000, 0x1201f800, 0x0002083d,
- 0x91700583, 0x00040a3f, 0x5c000800, 0x48073001,
- 0x5c02e000, 0x5c01e000, 0x42000800, 0x0010dd60,
- 0x50040800, 0x58046c10, 0x90340583, 0x05020005,
+ 0x497b3001, 0x6006e000, 0x1201f800, 0x00020864,
+ 0x91700583, 0x00040a75, 0x5c000800, 0x48073001,
+ 0x5c02e000, 0x5c01e000, 0x42000800, 0x00111cfa,
+ 0x50040800, 0x58046c10, 0x90340581, 0x05000005,
0x49040807, 0x48640c00, 0x48600803, 0x485c0802,
0x5c020800, 0x5c00c800, 0x5c00c000, 0x5c00b800,
- 0x5c03e000, 0x1c01f000, 0x05fdf806, 0x05fdf7fd,
- 0x59c80007, 0x8c000502, 0x05000055, 0x8d0c051c,
- 0x050600b2, 0x835c2c80, 0x000000ff, 0x050410af,
- 0x59c82817, 0x481750d0, 0x497b9005, 0x82140500,
- 0x00e00000, 0x05020046, 0x82140500, 0x000003ff,
- 0x8c140516, 0x05000005, 0x90001c08, 0x42002000,
- 0x001102fe, 0x0501f003, 0x90001c06, 0x41cc2000,
- 0x600030c1, 0xb00c0480, 0x05001004, 0x61001000,
- 0xb00c1c80, 0x0501f003, 0x400c1000, 0x41781800,
- 0x54182000, 0x80102000, 0x80183000, 0x80081040,
- 0x05fe07fc, 0x800c19c0, 0x05000005, 0x59c80005,
- 0x80000000, 0x48039005, 0x05fdf7ee, 0x8c140516,
- 0x05000003, 0x42039800, 0x00110300, 0x82140500,
- 0x000003ff, 0x800018c4, 0x8c140514, 0x05000004,
- 0x59cc0002, 0x90000503, 0x800c1c80, 0x480f50b6,
- 0x59c40002, 0x8c00050c, 0x05020003, 0x0531fbdb,
- 0x05020011, 0x82140500, 0x01f60000, 0x0502000e,
- 0x0505f88e, 0x05020007, 0x4a039005, 0x00000140,
- 0x82140500, 0x0e000000, 0x80000132, 0x0c01f012,
- 0x800001c0, 0x0502000a, 0x4a039005, 0x00000140,
- 0x0501f00b, 0x4817c857, 0x82140500, 0x00f60000,
- 0x05020003, 0x0501ff76, 0x05fe07ee, 0x0505f89d,
- 0x4a039005, 0x00000140, 0x0501f056, 0x4803c856,
- 0x1c01f000, 0x00106d86, 0x00107139, 0x00106d81,
- 0x00106d81, 0x00106d81, 0x00106d81, 0x00106d81,
- 0x00106d81, 0x4803c857, 0x42000000, 0x0010e44b,
- 0x0531fa58, 0x1c01f000, 0x8d0c052a, 0x05000004,
- 0x4c140000, 0x05cdf954, 0x5c002800, 0x59cc0003,
- 0x82000500, 0x00ff0000, 0x0502003a, 0x59cc0400,
- 0x82000d00, 0x0000ff00, 0x82041500, 0x0000f000,
- 0x840409c0, 0x82080580, 0x0000c000, 0x05020003,
- 0x0501fd11, 0x0501f032, 0x82080580, 0x00002000,
- 0x05020024, 0x916c0581, 0x05020020, 0x05f9fb0f,
- 0x05020014, 0x4c040000, 0x59a8083f, 0x4807c857,
- 0x90040589, 0x05000007, 0x90040583, 0x0502000b,
- 0x05f9f9da, 0x59a8083f, 0x90040589, 0x05020007,
- 0x81780000, 0x05c9fbee, 0x916c0582, 0x05020003,
- 0x5c000800, 0x0501f00d, 0x5c000800, 0x0501f018,
- 0x59cc0006, 0x82000500, 0xff000000, 0x82000580,
- 0x11000000, 0x05ce08e8, 0x05020011, 0x05edfde9,
- 0x0505f8af, 0x0501f00e, 0x0501f81d, 0x0501f00c,
- 0x82080580, 0x00003000, 0x05020003, 0x0501fa88,
- 0x0501f007, 0x82080580, 0x00008000, 0x050003e6,
- 0x42000000, 0x0010e44a, 0x0531f212, 0x1c01f000,
- 0x4817c857, 0x42000000, 0x0010e44a, 0x0531fa0d,
- 0x916c0583, 0x05020009, 0x4c080000, 0x4c0c0000,
- 0x61201100, 0x40141800, 0x80142120, 0x05edfa05,
- 0x5c001800, 0x5c001000, 0x1c01f000, 0x59cc0002,
- 0x82000500, 0xff000000, 0x82001580, 0x01000000,
- 0x05000008, 0x82001580, 0x23000000, 0x05000005,
- 0x05cdf8bd, 0x0505f85a, 0x050006c0, 0x0501f209,
- 0x59a800b6, 0x90000484, 0x05001206, 0x900405a3,
- 0x05020046, 0x59cc0004, 0x4803c857, 0x59cc0006,
- 0x82000500, 0xff000000, 0x59cc0801, 0x82040d00,
- 0x00ffffff, 0x80040540, 0x4803c857, 0x0501fca4,
- 0x05cc08a9, 0x050001f7, 0x59300c07, 0x90040590,
- 0x0500000a, 0x90040591, 0x05000008, 0x90040581,
- 0x05000006, 0x90040584, 0x05000004, 0x90040588,
- 0x05ce089d, 0x050201eb, 0x59300004, 0x82000500,
- 0x80010000, 0x05000004, 0x050dfaaf, 0x05ce0896,
- 0x050201e4, 0x59cc0a04, 0x48066202, 0x59cc0006,
- 0x82000500, 0xffff0000, 0x82000d80, 0x02000000,
- 0x05020007, 0x60567000, 0x0501fceb, 0x0501fd1d,
- 0x05cc0889, 0x050001d7, 0x0009f000, 0x82000d80,
- 0x02140000, 0x05fc07f8, 0x82000d80, 0x02100000,
- 0x05fc07f5, 0x82000d80, 0x02100000, 0x05fc07f2,
- 0x82000d80, 0x01000000, 0x05ce087b, 0x050201c9,
- 0x59cc0006, 0x82000500, 0x0000ffff, 0x05ce0876,
- 0x050201c4, 0x59a800b6, 0x90000488, 0x050011c1,
- 0x605a7000, 0x05fdf7e5, 0x900405a2, 0x05ce086e,
- 0x050201bc, 0x59cc0004, 0x4803c857, 0x59cc0006,
- 0x4803c857, 0x59cc0001, 0x4803c857, 0x59a800b6,
- 0x800001c0, 0x05cc0864, 0x050001b2, 0x59a80249,
- 0x8c000508, 0x05000003, 0x8c000502, 0x050001ad,
- 0x59a80805, 0x8c040514, 0x05000043, 0x0501f9d0,
- 0x05020041, 0x59a80249, 0x8c000518, 0x0500000e,
+ 0x5c03e000, 0x1c01f000, 0x05f9ff6e, 0x05fdf7fd,
+ 0x59a80006, 0x8c000508, 0x05000006, 0x592c6c0e,
+ 0x5930002f, 0x80340580, 0x82000500, 0x00000800,
+ 0x1c01f000, 0x59c80007, 0x8c000502, 0x0500005f,
+ 0x8d0c051c, 0x0506013b, 0x835c2c80, 0x000000ff,
+ 0x05041138, 0x59c82817, 0x481750d5, 0x497b9005,
+ 0x82140500, 0x00e00000, 0x0502004f, 0x82140500,
+ 0x000003ff, 0x8c140516, 0x05000005, 0x90001c08,
+ 0x42002000, 0x001142a2, 0x0501f003, 0x90001c06,
+ 0x41cc2000, 0x600030c1, 0xb00c0480, 0x05001004,
+ 0x61001000, 0xb00c1c80, 0x0501f003, 0x400c1000,
+ 0x41781800, 0x54182000, 0x80102000, 0x80183000,
+ 0x80081040, 0x05fe07fc, 0x800c19c0, 0x05000005,
+ 0x59c80005, 0x80000000, 0x48039005, 0x05fdf7ee,
+ 0x8c140516, 0x05000003, 0x42039800, 0x001142a4,
+ 0x82140500, 0x000003ff, 0x800018c4, 0x8c140514,
+ 0x05000004, 0x59cc0002, 0x90000503, 0x800c1c80,
+ 0x480f50bb, 0x59c40002, 0x8c00050c, 0x05020003,
+ 0x0531ffc5, 0x0502001a, 0x82140500, 0x01f60000,
+ 0x05020017, 0x0505f917, 0x05020007, 0x4a039005,
+ 0x00000140, 0x82140500, 0x0e000000, 0x80000132,
+ 0x0c01f01c, 0x800001c0, 0x05000005, 0x0505f92f,
+ 0x4a039005, 0x00000140, 0x1c01f000, 0x42000000,
+ 0x00112452, 0x0531fe56, 0x60040000, 0x0501f864,
+ 0x4a039005, 0x00000140, 0x0501f00c, 0x4817c857,
+ 0x82140500, 0x00f60000, 0x05020003, 0x0501ffcc,
+ 0x05fe07e5, 0x0505f91d, 0x4a039005, 0x00000140,
+ 0x41780000, 0x0501f056, 0x4803c856, 0x1c01f000,
+ 0x00107121, 0x00107518, 0x0010711c, 0x0010711c,
+ 0x0010711c, 0x0010711c, 0x0010711c, 0x0010711c,
+ 0x4803c857, 0x42000000, 0x001123ef, 0x0531fe38,
+ 0x1c01f000, 0x8d0c052a, 0x05000004, 0x4c140000,
+ 0x05c9fde8, 0x5c002800, 0x59cc0003, 0x82000500,
+ 0x00ff0000, 0x0502003a, 0x59cc0400, 0x82000d00,
+ 0x0000ff00, 0x82041500, 0x0000f000, 0x840409c0,
+ 0x82080580, 0x0000c000, 0x05020003, 0x0501fd67,
+ 0x0501f032, 0x82080580, 0x00002000, 0x05020024,
+ 0x916c0581, 0x05020020, 0x05f9fa5e, 0x05020014,
+ 0x4c040000, 0x59a80842, 0x4807c857, 0x90040589,
+ 0x05000007, 0x90040583, 0x0502000b, 0x05f9f923,
+ 0x59a80842, 0x90040589, 0x05020007, 0x81780000,
+ 0x05c9f886, 0x916c0582, 0x05020003, 0x5c000800,
+ 0x0501f00d, 0x5c000800, 0x0501f018, 0x59cc0006,
+ 0x82000500, 0xff000000, 0x82000580, 0x11000000,
+ 0x05ca0d7c, 0x05020011, 0x05edfc43, 0x0505f92e,
+ 0x0501f00e, 0x0501f81f, 0x0501f00c, 0x82080580,
+ 0x00003000, 0x05020003, 0x0501fa96, 0x0501f007,
+ 0x82080580, 0x00008000, 0x0500042a, 0x42000000,
+ 0x001123ee, 0x0531f5f2, 0x1c01f000, 0x4817c857,
+ 0x800001c0, 0x05020004, 0x42000000, 0x001123ee,
+ 0x0531fdeb, 0x916c0583, 0x05020009, 0x4c080000,
+ 0x4c0c0000, 0x61201100, 0x40141800, 0x80142120,
+ 0x05edf805, 0x5c001800, 0x5c001000, 0x1c01f000,
+ 0x59cc0002, 0x82000500, 0xff000000, 0x82001580,
+ 0x01000000, 0x05000008, 0x82001580, 0x23000000,
+ 0x05000005, 0x05c9fd4f, 0x0505f8d7, 0x05000713,
+ 0x0501f210, 0x59a800bb, 0x90000484, 0x0500120d,
+ 0x900405a3, 0x05020046, 0x59cc0004, 0x4803c857,
+ 0x59cc0006, 0x82000500, 0xff000000, 0x59cc0801,
+ 0x82040d00, 0x00ffffff, 0x80040540, 0x4803c857,
+ 0x0501fcf5, 0x05c80d3b, 0x050001fe, 0x59300c07,
+ 0x90040590, 0x0500000a, 0x90040591, 0x05000008,
+ 0x90040581, 0x05000006, 0x90040584, 0x05000004,
+ 0x90040588, 0x05ca0d2f, 0x050201f2, 0x59300004,
+ 0x82000500, 0x80010000, 0x05000004, 0x050dfbd0,
+ 0x05ca0d28, 0x050201eb, 0x59cc0a04, 0x48066202,
0x59cc0006, 0x82000500, 0xffff0000, 0x82000d80,
- 0x7f000000, 0x05020008, 0x05edfccb, 0x05020036,
- 0x59cc0c07, 0x82040d00, 0x000000ff, 0x90040581,
- 0x05020031, 0x0501f9d8, 0x0500002f, 0x61327000,
- 0x59cc3800, 0x821c3d00, 0x00ffffff, 0x4c1c0000,
- 0x05d9ffc8, 0x5c003800, 0x05000003, 0x05cdf83e,
- 0x0501f18c, 0x59cc0001, 0x82000500, 0x00ffffff,
- 0x0501ff20, 0x05000006, 0x61fe89ff, 0x42026800,
- 0x00110210, 0x05f5ff3d, 0x481a6802, 0x599c0019,
- 0x8c000510, 0x05000168, 0x59a80249, 0x8c000508,
- 0x05000165, 0x59cc1006, 0x82081500, 0xffff0000,
- 0x82081580, 0x03000000, 0x0502015f, 0x91641490,
- 0x05001181, 0x8400054c, 0x48035249, 0x59cc1000,
- 0x82081500, 0x00ffffff, 0x05fdfd98, 0x59cc0007,
- 0x82000500, 0x0000ffff, 0x48038893, 0x48035040,
- 0x0501f151, 0x59cc0006, 0x82000500, 0xffff0000,
- 0x82000d80, 0x03000000, 0x05020032, 0x59a80249,
- 0x8c000508, 0x05000020, 0x8400054c, 0x48035249,
- 0x59cc0800, 0x82040d00, 0x00ffffff, 0x42024800,
- 0x0010e512, 0x4807c857, 0x48064805, 0x4807503d,
- 0x497b8830, 0x84040d70, 0x48078832, 0x59c40802,
- 0x84040d4c, 0x48078802, 0x59cc0007, 0x82000500,
- 0x0000ffff, 0x48038893, 0x48035040, 0x600c0800,
- 0x59a8103d, 0x0509fe98, 0x59cc0006, 0x82000500,
- 0x0000ffff, 0x05ca0ff4, 0x05020142, 0x605e7000,
- 0x0501f0f3, 0x4c000000, 0x82140500, 0x0000f000,
- 0x82000580, 0x00003000, 0x5c000000, 0x05fe07f3,
- 0x05f9f9f6, 0x05fe07f1, 0x8c000502, 0x05fe07ef,
- 0x60583002, 0x0501fdec, 0x4803c857, 0x0501f131,
- 0x82000d80, 0x04000000, 0x05020013, 0x59cc0006,
- 0x82000500, 0x0000ffff, 0x05ca0fdb, 0x05020129,
- 0x05f9f9e6, 0x05000002, 0x0501f0d8, 0x497b50c2,
- 0x42001000, 0x0010582b, 0x0501ffe7, 0x05f5fee5,
- 0x59a80249, 0x84000548, 0x48035249, 0x60c27000,
- 0x0501f0cf, 0x82000d80, 0x05000000, 0x05020008,
- 0x59cc0006, 0x82000500, 0x0000ffff, 0x05ca0fc6,
- 0x05020114, 0x60627000, 0x0501f0c5, 0x82000d80,
- 0x20100000, 0x05020003, 0x60667000, 0x0501f0c0,
- 0x82000d80, 0x21100000, 0x05020003, 0x606a7000,
- 0x0501f0bb, 0x82000d80, 0x52000000, 0x05020008,
- 0x59cc0006, 0x82000500, 0x0000ffff, 0x05ca0fb2,
- 0x05020100, 0x606e7000, 0x0501f0b1, 0x82000d80,
- 0x50000000, 0x05020008, 0x59cc0006, 0x82000500,
- 0x0000ffff, 0x05ca0fa8, 0x050200f6, 0x60727000,
- 0x0501f0a7, 0x82000d80, 0x13000000, 0x05020003,
- 0x60d27000, 0x0501f0a2, 0x82000d80, 0x12000000,
+ 0x02000000, 0x05020007, 0x60567000, 0x0501fd3f,
+ 0x0501fd70, 0x05c80d1b, 0x050001de, 0x0009f039,
+ 0x82000d80, 0x02140000, 0x05fc07f8, 0x82000d80,
+ 0x02100000, 0x05fc07f5, 0x82000d80, 0x02100000,
+ 0x05fc07f2, 0x82000d80, 0x01000000, 0x05ca0d0d,
+ 0x050201d0, 0x59cc0006, 0x82000500, 0x0000ffff,
+ 0x05ca0d08, 0x050201cb, 0x59a800bb, 0x90000488,
+ 0x050011c8, 0x605a7000, 0x05fdf7e5, 0x900405a2,
+ 0x05ca0d00, 0x050201c3, 0x59cc0004, 0x4803c857,
+ 0x59cc0006, 0x4803c857, 0x59cc0001, 0x4803c857,
+ 0x59a800bb, 0x800001c0, 0x05c80cf6, 0x050001b9,
+ 0x0531feb4, 0x05000003, 0x0531feb7, 0x050001b5,
+ 0x59a8024c, 0x8c000508, 0x05000003, 0x8c000502,
+ 0x050001b0, 0x59a80805, 0x8c040514, 0x05000043,
+ 0x0501f9d8, 0x05020041, 0x59a8024c, 0x8c000518,
+ 0x0500000e, 0x59cc0006, 0x82000500, 0xffff0000,
+ 0x82000d80, 0x7f000000, 0x05020008, 0x05edfad0,
+ 0x05020036, 0x59cc0c07, 0x82040d00, 0x000000ff,
+ 0x90040581, 0x05020031, 0x0501f9e0, 0x0500002f,
+ 0x61327000, 0x59cc3800, 0x821c3d00, 0x00ffffff,
+ 0x4c1c0000, 0x05d9fcc3, 0x5c003800, 0x05000003,
+ 0x05c9fccc, 0x0501f18f, 0x59cc0001, 0x82000500,
+ 0x00ffffff, 0x0501ff6f, 0x05000006, 0x61fe89ff,
+ 0x42026800, 0x001141b4, 0x05f5fe71, 0x481a6802,
+ 0x599c0019, 0x8c000510, 0x0500016b, 0x59a8024c,
+ 0x8c000508, 0x05000168, 0x59cc1006, 0x82081500,
+ 0xffff0000, 0x82081580, 0x03000000, 0x05020162,
+ 0x91641490, 0x05001184, 0x8400054c, 0x4803524c,
+ 0x59cc1000, 0x82081500, 0x00ffffff, 0x05fdfd7f,
+ 0x59cc0007, 0x82000500, 0x0000ffff, 0x48038893,
+ 0x48035043, 0x0501f154, 0x59cc0006, 0x82000500,
+ 0xffff0000, 0x82000d80, 0x03000000, 0x05020032,
+ 0x59a8024c, 0x8c000508, 0x05000020, 0x8400054c,
+ 0x4803524c, 0x59cc0800, 0x82040d00, 0x00ffffff,
+ 0x42024800, 0x001124b6, 0x4807c857, 0x48064805,
+ 0x48075040, 0x497b8830, 0x84040d70, 0x48078832,
+ 0x59c40802, 0x84040d4c, 0x48078802, 0x59cc0007,
+ 0x82000500, 0x0000ffff, 0x48038893, 0x48035043,
+ 0x600c0800, 0x59a81040, 0x0509ffb5, 0x59cc0006,
+ 0x82000500, 0x0000ffff, 0x05ca0c82, 0x05020145,
+ 0x605e7000, 0x0501f0f3, 0x4c000000, 0x82140500,
+ 0x0000f000, 0x82000580, 0x00003000, 0x5c000000,
+ 0x05fe07f3, 0x05f9f93f, 0x05fe07f1, 0x8c000502,
+ 0x05fe07ef, 0x60583002, 0x0501fe3b, 0x4803c857,
+ 0x0501f134, 0x82000d80, 0x04000000, 0x05020013,
+ 0x59cc0006, 0x82000500, 0x0000ffff, 0x05ca0c69,
+ 0x0502012c, 0x05f9f92f, 0x05000002, 0x0501f0d8,
+ 0x497b50c7, 0x42001000, 0x00105a99, 0x0505f860,
+ 0x05f5fe19, 0x59a8024c, 0x84000548, 0x4803524c,
+ 0x60c27000, 0x0501f0cf, 0x82000d80, 0x05000000,
+ 0x05020008, 0x59cc0006, 0x82000500, 0x0000ffff,
+ 0x05ca0c54, 0x05020117, 0x60627000, 0x0501f0c5,
+ 0x82000d80, 0x20100000, 0x05020003, 0x60667000,
+ 0x0501f0c0, 0x82000d80, 0x21100000, 0x05020003,
+ 0x606a7000, 0x0501f0bb, 0x82000d80, 0x52000000,
0x05020008, 0x59cc0006, 0x82000500, 0x0000ffff,
- 0x05ca0f99, 0x050200e7, 0x60927000, 0x0501f098,
- 0x82000d00, 0xff000000, 0x82040d80, 0x24000000,
- 0x05020003, 0x60b67000, 0x0501f091, 0x82000d00,
- 0xff000000, 0x82040d80, 0x53000000, 0x05020003,
- 0x60aa7000, 0x0501f08a, 0x82000d80, 0x0f000000,
- 0x05020003, 0x60827000, 0x0501f085, 0x82000d80,
- 0x61040000, 0x0502004a, 0x4c5c0000, 0x4c600000,
- 0x4c640000, 0x4c580000, 0x91ccc406, 0x8060b800,
- 0x50600000, 0x82000500, 0x0000ffff, 0x82001480,
- 0x00000401, 0x05021037, 0x90001503, 0x05020035,
- 0x59a810b6, 0x80081480, 0x05001032, 0x90000484,
- 0x8000b104, 0x8058b1c0, 0x0500002e, 0x59cc3800,
- 0x821c3d00, 0x00ffffff, 0x4d200000, 0x05d9feed,
- 0x05000003, 0x5c024000, 0x0501f026, 0x505cc800,
- 0x8264c500, 0x03000000, 0x8060c130, 0x42000000,
- 0x0010e410, 0x90602580, 0x05020004, 0x42000000,
- 0x0010e40d, 0x0501f00a, 0x90602581, 0x05020004,
- 0x42000000, 0x0010e40e, 0x0501f005, 0x90602582,
- 0x05020003, 0x42000000, 0x0010e40f, 0x0531f889,
- 0x60541100, 0x82642500, 0x0000ffff, 0x80641920,
- 0x41202800, 0x05edf884, 0x805cb800, 0x8058b040,
- 0x05fe07e3, 0x5c024000, 0x5c00b000, 0x5c00c800,
- 0x5c00c000, 0x5c00b800, 0x608e7000, 0x0501f040,
- 0x5c00b000, 0x5c00c800, 0x5c00c000, 0x5c00b800,
- 0x42000000, 0x0010e448, 0x0531f072, 0x82000d80,
- 0x60000000, 0x05020003, 0x60fe7000, 0x0501f034,
- 0x82000d80, 0x78000000, 0x05020003, 0x61167000,
- 0x0501f02f, 0x82000d80, 0x10000000, 0x05020003,
- 0x613a7000, 0x0501f02a, 0x82000d80, 0x63000000,
- 0x05020003, 0x612a7000, 0x0501f025, 0x82000d00,
- 0xff000000, 0x82040d80, 0x56000000, 0x05020003,
- 0x613e7000, 0x0501f01e, 0x82000d00, 0xff000000,
- 0x82040d80, 0x57000000, 0x05020003, 0x61427000,
- 0x0501f017, 0x82000d80, 0x7d000000, 0x05020003,
- 0x615a7000, 0x0501f012, 0x59a80a49, 0x8c040518,
- 0x0500000e, 0x82000d80, 0x7f000000, 0x0502000b,
- 0x4803c857, 0x61667000, 0x59cc0c07, 0x82040d00,
- 0x000000ff, 0x90040581, 0x05000005, 0x4803c857,
- 0x61767000, 0x0501f002, 0x60767000, 0x59cc3800,
- 0x821c3d00, 0x00ffffff, 0x821c0580, 0x00fffffe,
- 0x59cc0001, 0x05020004, 0x40003000, 0x61fa880f,
- 0x0501f009, 0x59cc3800, 0x821c3d00, 0x00ffffff,
- 0x4c1c0000, 0x0501f91e, 0x5c003800, 0x05ca0eee,
- 0x05020041, 0x05d9fe73, 0x0502003a, 0x83440480,
- 0x000007f0, 0x05001001, 0x05edfb8f, 0x0500000f,
- 0x4c180000, 0x05f5fabc, 0x5c003000, 0x0500000e,
- 0x4c180000, 0x0501f856, 0x5c003000, 0x05020007,
- 0x05f5fde6, 0x42026800, 0x00110210, 0x481a6802,
- 0x61fe89ff, 0x0501f004, 0x05f1fd4f, 0x05ca0ed6,
+ 0x05ca0c40, 0x05020103, 0x606e7000, 0x0501f0b1,
+ 0x82000d80, 0x50000000, 0x05020008, 0x59cc0006,
+ 0x82000500, 0x0000ffff, 0x05ca0c36, 0x050200f9,
+ 0x60727000, 0x0501f0a7, 0x82000d80, 0x13000000,
+ 0x05020003, 0x60d27000, 0x0501f0a2, 0x82000d80,
+ 0x12000000, 0x05020008, 0x59cc0006, 0x82000500,
+ 0x0000ffff, 0x05ca0c27, 0x050200ea, 0x60927000,
+ 0x0501f098, 0x82000d00, 0xff000000, 0x82040d80,
+ 0x24000000, 0x05020003, 0x60b67000, 0x0501f091,
+ 0x82000d00, 0xff000000, 0x82040d80, 0x53000000,
+ 0x05020003, 0x60aa7000, 0x0501f08a, 0x82000d80,
+ 0x0f000000, 0x05020003, 0x60827000, 0x0501f085,
+ 0x82000d80, 0x61040000, 0x0502004a, 0x4c5c0000,
+ 0x4c600000, 0x4c640000, 0x4c580000, 0x91ccc406,
+ 0x8060b800, 0x50600000, 0x82000500, 0x0000ffff,
+ 0x82001480, 0x00000401, 0x05021037, 0x90001503,
+ 0x05020035, 0x59a810bb, 0x80081480, 0x05001032,
+ 0x90000484, 0x8000b104, 0x8058b1c0, 0x0500002e,
+ 0x59cc3800, 0x821c3d00, 0x00ffffff, 0x4d200000,
+ 0x05d9fbe8, 0x05000003, 0x5c024000, 0x0501f026,
+ 0x505cc800, 0x8264c500, 0x03000000, 0x8060c130,
+ 0x42000000, 0x001123b1, 0x90602580, 0x05020004,
+ 0x42000000, 0x001123ae, 0x0501f00a, 0x90602581,
+ 0x05020004, 0x42000000, 0x001123af, 0x0501f005,
+ 0x90602582, 0x05020003, 0x42000000, 0x001123b0,
+ 0x0531fc63, 0x60541100, 0x82642500, 0x0000ffff,
+ 0x80641920, 0x41202800, 0x05e9fe80, 0x805cb800,
+ 0x8058b040, 0x05fe07e3, 0x5c024000, 0x5c00b000,
+ 0x5c00c800, 0x5c00c000, 0x5c00b800, 0x608e7000,
+ 0x0501f040, 0x5c00b000, 0x5c00c800, 0x5c00c000,
+ 0x5c00b800, 0x42000000, 0x001123ec, 0x0531f44c,
+ 0x82000d80, 0x60000000, 0x05020003, 0x60fe7000,
+ 0x0501f034, 0x82000d80, 0x78000000, 0x05020003,
+ 0x61167000, 0x0501f02f, 0x82000d80, 0x10000000,
+ 0x05020003, 0x613a7000, 0x0501f02a, 0x82000d80,
+ 0x63000000, 0x05020003, 0x612a7000, 0x0501f025,
+ 0x82000d00, 0xff000000, 0x82040d80, 0x56000000,
+ 0x05020003, 0x613e7000, 0x0501f01e, 0x82000d00,
+ 0xff000000, 0x82040d80, 0x57000000, 0x05020003,
+ 0x61427000, 0x0501f017, 0x82000d80, 0x7d000000,
+ 0x05020003, 0x615a7000, 0x0501f012, 0x59a80a4c,
+ 0x8c040518, 0x0500000e, 0x82000d80, 0x7f000000,
+ 0x0502000b, 0x4803c857, 0x61667000, 0x59cc0c07,
+ 0x82040d00, 0x000000ff, 0x90040581, 0x05000005,
+ 0x4803c857, 0x61767000, 0x0501f002, 0x60767000,
+ 0x59cc3800, 0x821c3d00, 0x00ffffff, 0x821c0580,
+ 0x00fffffe, 0x59cc0001, 0x05020004, 0x40003000,
+ 0x61fa880f, 0x0501f009, 0x59cc3800, 0x821c3d00,
+ 0x00ffffff, 0x4c1c0000, 0x0501f929, 0x5c003800,
+ 0x05ca0b7c, 0x05020044, 0x05d9fb6e, 0x0502003d,
+ 0x83440480, 0x000007f0, 0x05001004, 0x83440480,
+ 0x00000800, 0x05001011, 0x05edf9df, 0x0500000f,
+ 0x4c180000, 0x05f5f9e1, 0x5c003000, 0x0500000e,
+ 0x4c180000, 0x0501f85b, 0x5c003000, 0x05020007,
+ 0x05f5fd17, 0x42026800, 0x001141b4, 0x481a6802,
+ 0x61fe89ff, 0x0501f004, 0x05f1fbc6, 0x05ca0b61,
0x05020024, 0x59340200, 0x8c000514, 0x0500000a,
0x913805b0, 0x05000008, 0x913805bf, 0x05000006,
0x913805b4, 0x05000004, 0x913805a4, 0x05000002,
- 0x61327000, 0x0511fc2a, 0x05000023, 0x4926601d,
- 0x4936600a, 0x64126407, 0x83340580, 0x00110210,
+ 0x61327000, 0x0511fdc0, 0x05000023, 0x4926601d,
+ 0x4936600a, 0x64126407, 0x83340580, 0x001141b4,
0x05020005, 0x59cc0001, 0x82000500, 0x00ffffff,
0x4802602a, 0x59cc0c04, 0x48066202, 0xb138058c,
- 0x05020002, 0x64466407, 0x0501fb17, 0x0501fb7a,
- 0x05020003, 0x0005ffdc, 0x0501f002, 0x0009f000,
- 0x598800bc, 0x4803c857, 0x80000000, 0x480310bc,
- 0x1c01f000, 0x05d9fe33, 0x05fe07fa, 0x42000000,
- 0x0010e3bd, 0x052dffe3, 0x42026800, 0x00110210,
- 0x0501f002, 0x0501fe3d, 0x61241100, 0x59cc1806,
- 0x800c1930, 0x05e9ffdb, 0x0511fc09, 0x05c80e9e,
- 0x05fc07ec, 0x4926601d, 0x4936600a, 0x83340580,
- 0x00110210, 0x05020005, 0x59cc0001, 0x82000500,
- 0x00ffffff, 0x4802602a, 0x64126407, 0x59cc0c04,
- 0x48066202, 0x64266403, 0x6426641c, 0x4a02621c,
- 0x00002900, 0x64066203, 0x0509f05b, 0x59a80249,
- 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, 0x0010dd3e,
- 0x500c1800, 0x800c0500, 0x4803c857, 0x1c01f000,
- 0x40100800, 0x41781800, 0x900404a0, 0x05001004,
- 0x800c1800, 0x40000800, 0x05fdf7fc, 0x9004050f,
- 0x82000400, 0x0010d15b, 0x50000000, 0x8c040508,
- 0x05000002, 0x900001c0, 0x1c01f000, 0x4803c856,
- 0x0501fd66, 0x0502000c, 0x05d9fbb6, 0x0502000a,
- 0x59cc0002, 0x82000500, 0xff000000, 0x82000d80,
- 0x08000000, 0x05000007, 0x42000000, 0x0010e44b,
- 0x052df784, 0x42000000, 0x0010e448, 0x052df781,
- 0x4803c856, 0x59cc0400, 0x82000d00, 0x0000ff00,
- 0x840409c0, 0x900405b3, 0x05020029, 0x0501fa38,
- 0x05000067, 0x59cc0a04, 0x48066202, 0x59a800b6,
- 0x90000484, 0x05001062, 0x59cc0006, 0x4803c857,
- 0x82000500, 0xffff0000, 0x82000d80, 0x02000000,
- 0x0502000b, 0x59cc0006, 0x82000500, 0x0000ffff,
- 0x05020057, 0x0501fabf, 0x05020003, 0x0005ffdc,
- 0x0501f053, 0x60567000, 0x0009f000, 0x82000d80,
- 0x01000000, 0x0502004e, 0x59cc0006, 0x82000500,
- 0x0000ffff, 0x0502004a, 0x59a800b6, 0x90000488,
- 0x05001047, 0x0501faaf, 0x05020003, 0x0005ffdc,
- 0x0501f043, 0x605a7000, 0x0009f000, 0x900405b2,
- 0x0502003f, 0x59cc0006, 0x82000500, 0xffff0000,
- 0x82000d80, 0x14000000, 0x05020039, 0x59a800b6,
- 0x90000490, 0x05001036, 0x60e27000, 0x59cc0001,
- 0x59cc3800, 0x821c3d00, 0x00ffffff, 0x4c1c0000,
- 0x0501f832, 0x5c003800, 0x0502002d, 0x05d9fd89,
- 0x0502002b, 0x83440480, 0x000007f0, 0x05001001,
- 0x05edfaa5, 0x0500000f, 0x4c180000, 0x05f5f9d2,
- 0x5c003000, 0x0500000d, 0x4c180000, 0x05fdff6c,
- 0x5c003000, 0x05020007, 0x05f5fcfc, 0x42026800,
- 0x00110210, 0x481a6802, 0x61fe89ff, 0x0501f003,
- 0x05f1fc60, 0x05020016, 0x0511fb4d, 0x05000d83,
+ 0x05020002, 0x64466407, 0x0501fb64, 0x0501fbc6,
+ 0x05020003, 0x0009f810, 0x0501f002, 0x0009f039,
+ 0x598800bf, 0x4803c857, 0x80000000, 0x480310bf,
+ 0x1c01f000, 0x05d9fb2b, 0x05fe07fa, 0x42000000,
+ 0x0011235e, 0x0531fbba, 0x42026800, 0x001141b4,
+ 0x0501f002, 0x0501feb3, 0x61241100, 0x59cc1806,
+ 0x800c1930, 0x60082800, 0x83340580, 0x001141b4,
+ 0x05000002, 0x60042800, 0x05e9fdd0, 0x0511fd75,
+ 0x05c80b24, 0x05fc07e7, 0x4926601d, 0x4936600a,
+ 0x83340580, 0x001141b4, 0x05020005, 0x59cc0001,
+ 0x82000500, 0x00ffffff, 0x4802602a, 0x64126407,
+ 0x59cc0c04, 0x48066202, 0x64266403, 0x6426641c,
+ 0x4a02621c, 0x00002900, 0x64066203, 0x0509f16b,
+ 0x59a8024c, 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,
+ 0x00111cc4, 0x500c1800, 0x800c0500, 0x4803c857,
+ 0x1c01f000, 0x40100800, 0x41781800, 0x900404a0,
+ 0x05001004, 0x800c1800, 0x40000800, 0x05fdf7fc,
+ 0x9004050f, 0x82000400, 0x0010d8d9, 0x50000000,
+ 0x8c040508, 0x05000002, 0x900001c0, 0x1c01f000,
+ 0x4803c856, 0x0501fdd7, 0x0502000c, 0x05d9f8a5,
+ 0x0502000a, 0x59cc0002, 0x82000500, 0xff000000,
+ 0x82000d80, 0x08000000, 0x05000007, 0x42000000,
+ 0x001123ef, 0x0531f356, 0x42000000, 0x001123ec,
+ 0x0531f353, 0x4803c856, 0x59cc0400, 0x82000d00,
+ 0x0000ff00, 0x840409c0, 0x900405b3, 0x05020029,
+ 0x0501fa7d, 0x0500006a, 0x59cc0a04, 0x48066202,
+ 0x59a800bb, 0x90000484, 0x05001065, 0x59cc0006,
+ 0x4803c857, 0x82000500, 0xffff0000, 0x82000d80,
+ 0x02000000, 0x0502000b, 0x59cc0006, 0x82000500,
+ 0x0000ffff, 0x0502005a, 0x0501fb06, 0x05020003,
+ 0x0009f810, 0x0501f056, 0x60567000, 0x0009f039,
+ 0x82000d80, 0x01000000, 0x05020051, 0x59cc0006,
+ 0x82000500, 0x0000ffff, 0x0502004d, 0x59a800bb,
+ 0x90000488, 0x0500104a, 0x0501faf6, 0x05020003,
+ 0x0009f810, 0x0501f046, 0x605a7000, 0x0009f039,
+ 0x900405b2, 0x05020042, 0x59cc0006, 0x82000500,
+ 0xffff0000, 0x82000d80, 0x14000000, 0x0502003c,
+ 0x59a800bb, 0x90000490, 0x05001039, 0x60e27000,
+ 0x59cc0001, 0x59cc3800, 0x821c3d00, 0x00ffffff,
+ 0x4c1c0000, 0x0501f835, 0x5c003800, 0x05020030,
+ 0x05d9fa7c, 0x0502002e, 0x83440480, 0x000007f0,
+ 0x05001004, 0x83440480, 0x00000800, 0x05001011,
+ 0x05edf8ed, 0x0500000f, 0x4c180000, 0x05f5f8ef,
+ 0x5c003000, 0x0500000d, 0x4c180000, 0x05fdff69,
+ 0x5c003000, 0x05020007, 0x05f5fc25, 0x42026800,
+ 0x001141b4, 0x481a6802, 0x61fe89ff, 0x0501f003,
+ 0x05f1facf, 0x05020016, 0x0511fcb6, 0x05000df1,
0x05000013, 0x4926601d, 0x4936600a, 0x83340580,
- 0x00110210, 0x05020005, 0x59cc0001, 0x82000500,
- 0x00ffffff, 0x4802602a, 0x051dffcd, 0x64126407,
- 0x59cc0c04, 0x48066202, 0x0501fa9f, 0x05020003,
- 0x0005ffdc, 0x0501f002, 0x0009f000, 0x42000000,
- 0x0010e448, 0x052df70f, 0x4803c857, 0x4c580000,
+ 0x001141b4, 0x05020005, 0x59cc0001, 0x82000500,
+ 0x00ffffff, 0x4802602a, 0x0521f9b9, 0x64126407,
+ 0x59cc0c04, 0x48066202, 0x0501fae3, 0x05020003,
+ 0x0009f810, 0x0501f002, 0x0009f039, 0x42000000,
+ 0x001123ec, 0x0531f2de, 0x4803c857, 0x4c580000,
0x4c5c0000, 0x4c600000, 0x4c640000, 0x82003500,
0x00ffffff, 0x821c3d00, 0x00ffffff, 0x82181500,
0x00ff0000, 0x82081580, 0x00ff0000, 0x05020013,
0x82181480, 0x00fffffc, 0x05001010, 0x82181580,
- 0x00fffffd, 0x05020003, 0x61f6880f, 0x0501f050,
+ 0x00fffffd, 0x05020003, 0x61f6880f, 0x0501f083,
0x82181580, 0x00fffffe, 0x05020003, 0x61fa880f,
- 0x0501f04b, 0x82181580, 0x00fffffc, 0x05020003,
- 0x61f2880f, 0x0501f046, 0x41781000, 0x6000b800,
- 0x61c0b00f, 0x41acc000, 0x50600000, 0x8000cd40,
- 0x05020005, 0x800811c0, 0x05020032, 0x845c155e,
- 0x0501f030, 0x58640212, 0x82000500, 0x0000ff00,
- 0x05000011, 0x59a8403d, 0x82204500, 0x00ffff00,
+ 0x0501f07e, 0x82181580, 0x00fffffc, 0x05020003,
+ 0x61f2880f, 0x0501f079, 0x41781000, 0x6000b800,
+ 0x4200c000, 0x0010db80, 0x59a8b0ac, 0x50600000,
+ 0x8000cd40, 0x05020005, 0x800811c0, 0x0502005a,
+ 0x845c155e, 0x0501f058, 0x82000d00, 0xe0000000,
+ 0x0500001d, 0x8d0c0538, 0x05000065, 0x8200cd00,
+ 0x00ffffff, 0x82044580, 0xa0000000, 0x05000016,
+ 0x82044580, 0x80000000, 0x05020002, 0x0501f012,
+ 0x8c04053c, 0x0500000d, 0x40640000, 0x80180580,
+ 0x05020045, 0x4c080000, 0x4c180000, 0x405e8800,
+ 0x05f1fb5f, 0x4034c800, 0x5c003000, 0x5c001000,
+ 0x05000005, 0x0501f04e, 0x82040580, 0x20000000,
+ 0x05ca0951, 0x58640212, 0x82000500, 0x0000ff00,
+ 0x05000011, 0x59a84040, 0x82204500, 0x00ffff00,
0x82180500, 0x00ffff00, 0x05000002, 0x80200580,
- 0x58640002, 0x05020023, 0x82000500, 0x000000ff,
- 0x82184500, 0x000000ff, 0x80204580, 0x0502001d,
+ 0x58640002, 0x0502002c, 0x82000500, 0x000000ff,
+ 0x82184500, 0x000000ff, 0x80204580, 0x05020026,
0x0501f006, 0x58640002, 0x82000500, 0x00ffffff,
- 0x80184580, 0x05020017, 0x4d200000, 0x4c080000,
- 0x4c180000, 0x05d9fd13, 0x5c003000, 0x5c001000,
- 0x58640813, 0x80040130, 0x81200580, 0x0502000c,
- 0x82040500, 0x00ffffff, 0x59240805, 0x80040580,
- 0x05000004, 0x812000f0, 0x80040d40, 0x4804c813,
- 0x5c024000, 0x405e8800, 0x0501f00d, 0x5c024000,
- 0x805cb800, 0x8060c000, 0x8058b040, 0x05fe07c7,
- 0x800811c0, 0x05020005, 0x481bc857, 0x481fc857,
- 0x90000541, 0x0501f003, 0x840a8d1e, 0x80000580,
- 0x5c00c800, 0x5c00c000, 0x5c00b800, 0x5c00b000,
- 0x1c01f000, 0x59a80249, 0x8c00050e, 0x05000003,
- 0x8c000502, 0x05000009, 0x59cc0003, 0x82000500,
- 0x00ff0000, 0x05020005, 0x59cc0c00, 0x80040910,
- 0x9004050f, 0x0c01f004, 0x42000000, 0x0010e44a,
- 0x052df694, 0x00107159, 0x00107159, 0x00107159,
- 0x0010747f, 0x00107159, 0x0010715d, 0x00107184,
- 0x0010718a, 0x00107159, 0x00107159, 0x00107159,
- 0x00107159, 0x00107159, 0x00107159, 0x00107159,
- 0x00107159, 0x4803c856, 0x42000000, 0x0010e44a,
- 0x052df680, 0x0501f93e, 0x05000021, 0x59a800b6,
- 0x9000048c, 0x0500101e, 0x59300407, 0x90000583,
- 0x0502001b, 0x59cc0001, 0x5932680a, 0x813669c0,
- 0x05000017, 0x59340802, 0x80040580, 0x82000500,
- 0x00ffffff, 0x05020012, 0x0501fc6d, 0x05020010,
- 0x59cc0a04, 0x59300202, 0x82001580, 0x0000ffff,
- 0x05000003, 0x80040580, 0x05020009, 0x48066202,
- 0x59300416, 0x8c00051a, 0x05020005, 0x611a7000,
- 0x0501f975, 0x05000002, 0x0009f000, 0x59cc0004,
- 0x4803c857, 0x42000000, 0x0010e449, 0x052df659,
- 0x59cc0004, 0x4803c857, 0x42000000, 0x0010e449,
- 0x052dfe54, 0x1c01f000, 0x0501f911, 0x0500001d,
- 0x59a800b6, 0x9000048c, 0x0500101a, 0x59300407,
- 0x90000583, 0x05020017, 0x59cc0001, 0x82000500,
- 0x00ffffff, 0x5932680a, 0x813669c0, 0x05000011,
- 0x59340802, 0x82040d00, 0x00ffffff, 0x80040580,
- 0x0502000c, 0x0501fc3e, 0x0502000a, 0x59cc0a04,
- 0x48066202, 0x59300416, 0x8c00051a, 0x05020005,
- 0x61167000, 0x0501f94c, 0x05000002, 0x0009f000,
- 0x59cc0004, 0x4803c857, 0x42000000, 0x0010e449,
- 0x052df630, 0x59cc0004, 0x4803c857, 0x59cc0000,
- 0x82000500, 0xff000000, 0x59cc1001, 0x82081500,
- 0x00ffffff, 0x80080540, 0x4803c857, 0x4817c857,
- 0x0501fbfa, 0x05ca0ce8, 0x05020011, 0x05d9fa49,
- 0x05ca0ce5, 0x0502000e, 0x59cc0002, 0x82000500,
- 0xff000000, 0x90000580, 0x05000004, 0x0501fc7c,
- 0x050002e2, 0x0501f006, 0x9004050f, 0x90000c86,
- 0x05ca1cd9, 0x05021002, 0x0c01f005, 0x4803c856,
- 0x42000000, 0x0010e44a, 0x052df60e, 0x001071d5,
- 0x001071d9, 0x001071d5, 0x001071d5, 0x00107248,
- 0x0010725e, 0x4803c856, 0x42000000, 0x0010e44a,
- 0x052df604, 0x59a800b6, 0x800001c0, 0x05ca0cc6,
- 0x05fe07f9, 0x59cc0802, 0x4807c857, 0x8c04052e,
- 0x05020024, 0x42026000, 0x00111a70, 0x497a6416,
- 0x59cc0001, 0x59cc3800, 0x05fdfee8, 0x05020015,
- 0x0001fb00, 0x05020013, 0x59cc3800, 0x821c3d00,
- 0x00ffffff, 0x05d9fc3b, 0x05fe07e7, 0x4926601d,
- 0x051dfe9f, 0x64166407, 0x64226203, 0x4936600a,
- 0x60227001, 0x0501f8fc, 0x05c80cab, 0x05fc07de,
- 0x42000000, 0x0010e3b9, 0x052dfde2, 0x0009f000,
- 0x4803c857, 0x61fe89ff, 0x417a6800, 0x59cc0001,
- 0x82000500, 0x00ffffff, 0x4802602a, 0x05fdf7e7,
- 0x59cc0001, 0x4803c857, 0x59cc3800, 0x821c3d00,
- 0x00ffffff, 0x4c1c0000, 0x05fdfec4, 0x5c003800,
- 0x05ca0c95, 0x05fe07c8, 0x05d9fc1a, 0x05ca0c92,
- 0x05fe07c5, 0x05f1fb03, 0x05ca0c8f, 0x05fe07c2,
- 0x59cc0005, 0x8c000500, 0x05020010, 0x59340200,
- 0x8c00050e, 0x05ca0c88, 0x05fe07bb, 0x59a828d0,
- 0x82140d00, 0x0000f000, 0x82040580, 0x00003000,
- 0x05c80c81, 0x05fc07b4, 0x82040580, 0x00002000,
- 0x05c80c7d, 0x05fc07b0, 0x05f5f80b, 0x05020014,
- 0x0501f873, 0x05c80c78, 0x05fc07ab, 0x42026000,
- 0x00111a70, 0x4926601d, 0x4936600a, 0x497a6416,
- 0x051dfe5f, 0x640a6407, 0x64226203, 0x60227001,
- 0x0501f8bd, 0x05c80c6c, 0x05fc079f, 0x42000000,
- 0x0010e3b9, 0x052dfda3, 0x0009f000, 0x0511f9c8,
- 0x05000bfe, 0x05fc0798, 0x4926601d, 0x4936600a,
- 0x051dfe4f, 0x64126407, 0x59cc0c04, 0x48066202,
- 0x60067000, 0x0501f8ac, 0x000407dc, 0x0009f000,
- 0x59cc0802, 0x8c04052e, 0x05020004, 0x0501f84e,
- 0x0500000c, 0x0501f007, 0x0501f84d, 0x0500000b,
- 0x0501fb6b, 0x05020009, 0x59cc0a04, 0x48066202,
- 0x60267001, 0x0501f89c, 0x05000004, 0x0009f000,
- 0x0501f81f, 0x05fc07fb, 0x4933c857, 0x42000000,
- 0x0010e448, 0x052df57f, 0x59cc0004, 0x4803c857,
- 0x59a800b6, 0x90000484, 0x05001011, 0x59cc0802,
- 0x8c04052e, 0x05020004, 0x0501f833, 0x0500000c,
- 0x0501f007, 0x0501f832, 0x05000009, 0x0501fb50,
- 0x05020007, 0x59cc0a04, 0x48066202, 0x602a7001,
- 0x0501f881, 0x05000002, 0x0009f000, 0x4933c857,
- 0x42000000, 0x0010e448, 0x052df566, 0x4933c857,
- 0x59300407, 0x90000585, 0x05020005, 0x59300216,
- 0x59cc0a07, 0x80040580, 0x05000019, 0x59cc1407,
- 0x41526000, 0x59a80898, 0x59a80099, 0x80040480,
- 0x05000013, 0x81300800, 0x41540000, 0x80040480,
- 0x0502100f, 0x59300202, 0x80080580, 0x05020007,
- 0x5930002a, 0x59cc1001, 0x82081500, 0x00ffffff,
- 0x80080580, 0x05000006, 0x91326430, 0x41540000,
- 0x81300480, 0x05fc17f4, 0x05c9fb44, 0x4933c857,
- 0x1c01f000, 0x59cc0a04, 0x0501f002, 0x59cc0c04,
- 0x59a804dd, 0x59a8109a, 0x80080400, 0x80040480,
- 0x05021007, 0x800400ca, 0x800408c8, 0x80040c00,
- 0x82066400, 0x00111b00, 0x1c01f000, 0x80000580,
- 0x05fdf7fe, 0x4803c856, 0x90040507, 0x0c01f001,
- 0x001072b4, 0x001072c9, 0x001072de, 0x001072ed,
- 0x001072ed, 0x001072ed, 0x001072ed, 0x001072ed,
- 0x59cc0802, 0x8c04052e, 0x05000010, 0x05fdffe4,
- 0x05000007, 0x59cc0802, 0x90040d30, 0x90040d90,
- 0x05000006, 0x61827000, 0x0009f000, 0x42000000,
- 0x0010e448, 0x052df51b, 0x59300416, 0x8400055c,
- 0x48026416, 0x051df50f, 0x05fdffd3, 0x05fc07f8,
- 0x05fdf7f1, 0x59cc0802, 0x8c04052e, 0x05000010,
- 0x05fdffcf, 0x05000007, 0x59cc0802, 0x90040d30,
- 0x90040d90, 0x05000006, 0x61867000, 0x0009f000,
- 0x42000000, 0x0010e448, 0x052df506, 0x59300416,
- 0x8400055c, 0x48026416, 0x051df4fa, 0x05fdffbe,
- 0x05fc07f8, 0x05fdf7f1, 0x82140500, 0x0000f000,
- 0x82000580, 0x00002000, 0x0502000b, 0x59cc0802,
- 0x8c04052e, 0x05000008, 0x05fdffb5, 0x05000006,
- 0x59300416, 0x8c000510, 0x05000003, 0x618a7000,
- 0x0009f000, 0x42000000, 0x0010e448, 0x052dfced,
- 0x1c01f000, 0x59a828d0, 0x8c14051a, 0x0500000c,
- 0x4803c856, 0x4d300000, 0x5930100a, 0x4c080000,
- 0x0511f90b, 0x5c001000, 0x05000003, 0x59cc2a04,
- 0x0501f910, 0x5c026000, 0x1c01f000, 0x90000541,
- 0x1c01f000, 0x4803c856, 0x4c0c0000, 0x4d340000,
- 0x59cc0006, 0x82000500, 0xffff0000, 0x82000580,
- 0x01000000, 0x05000028, 0x5932680a, 0x59a81a49,
- 0x05f5fda2, 0x05020024, 0x813669c0, 0x0500001b,
- 0x83340580, 0x00110210, 0x05000018, 0x59340403,
- 0x82000580, 0x000007fe, 0x05020014, 0x59cc0408,
- 0x8c000518, 0x05000018, 0x5930001d, 0x82000580,
- 0x0010e512, 0x05020014, 0x59a804cc, 0x8c00050a,
+ 0x80184580, 0x05020020, 0x50600000, 0x82004500,
+ 0xe0000000, 0x82204580, 0x80000000, 0x05020004,
+ 0x82000540, 0xa0000000, 0x4400c000, 0x4d200000,
+ 0x4c080000, 0x4c180000, 0x05d9f9da, 0x5c003000,
+ 0x5c001000, 0x58640813, 0x80040130, 0x81200580,
+ 0x0502000c, 0x82040500, 0x00ffffff, 0x59240805,
+ 0x80040580, 0x05000004, 0x812000f0, 0x80040d40,
+ 0x4804c813, 0x5c024000, 0x405e8800, 0x0501f017,
+ 0x5c024000, 0x805cb800, 0x8060c000, 0x825c4580,
+ 0x000007f0, 0x05020008, 0x59a800ad, 0x82000580,
+ 0x00000800, 0x05000006, 0x6000b810, 0x4200c000,
+ 0x0010e380, 0x8058b040, 0x05fe0795, 0x800811c0,
+ 0x05020005, 0x481bc857, 0x481fc857, 0x90000541,
+ 0x0501f003, 0x840a8d1e, 0x80000580, 0x5c00c800,
+ 0x5c00c000, 0x5c00b800, 0x5c00b000, 0x1c01f000,
+ 0x59a8024c, 0x8c00050e, 0x05000003, 0x8c000502,
+ 0x05000009, 0x59cc0003, 0x82000500, 0x00ff0000,
+ 0x05020005, 0x59cc0c00, 0x80040910, 0x9004050f,
+ 0x0c01f004, 0x42000000, 0x001123ee, 0x0531f230,
+ 0x00107538, 0x00107538, 0x00107538, 0x0010786f,
+ 0x00107538, 0x0010753c, 0x00107563, 0x00107569,
+ 0x00107538, 0x00107538, 0x00107538, 0x00107538,
+ 0x00107538, 0x00107538, 0x00107538, 0x00107538,
+ 0x4803c856, 0x42000000, 0x001123ee, 0x0531f21c,
+ 0x0501f94d, 0x05000021, 0x59a800bb, 0x9000048c,
+ 0x0500101e, 0x59300407, 0x90000583, 0x0502001b,
+ 0x59cc0001, 0x5932680a, 0x813669c0, 0x05000017,
+ 0x59340802, 0x80040580, 0x82000500, 0x00ffffff,
+ 0x05020012, 0x0501fca8, 0x05020010, 0x59cc0a04,
+ 0x59300202, 0x82001580, 0x0000ffff, 0x05000003,
+ 0x80040580, 0x05020009, 0x48066202, 0x59300416,
+ 0x8c00051a, 0x05020005, 0x611a7000, 0x0501f987,
+ 0x05000002, 0x0009f039, 0x59cc0004, 0x4803c857,
+ 0x42000000, 0x001123ed, 0x0531f1f5, 0x59cc0004,
+ 0x4803c857, 0x42000000, 0x001123ed, 0x0531f9f0,
+ 0x1c01f000, 0x0501f920, 0x0500001d, 0x59a800bb,
+ 0x9000048c, 0x0500101a, 0x59300407, 0x90000583,
+ 0x05020017, 0x59cc0001, 0x82000500, 0x00ffffff,
+ 0x5932680a, 0x813669c0, 0x05000011, 0x59340802,
+ 0x82040d00, 0x00ffffff, 0x80040580, 0x0502000c,
+ 0x0501fc79, 0x0502000a, 0x59cc0a04, 0x48066202,
+ 0x59300416, 0x8c00051a, 0x05020005, 0x61167000,
+ 0x0501f95e, 0x05000002, 0x0009f039, 0x59cc0004,
+ 0x4803c857, 0x42000000, 0x001123ed, 0x0531f1cc,
+ 0x59cc0004, 0x4803c857, 0x59cc0000, 0x82000500,
+ 0xff000000, 0x59cc1001, 0x82081500, 0x00ffffff,
+ 0x80080540, 0x4803c857, 0x4817c857, 0x0501fc35,
+ 0x05ca0938, 0x05020011, 0x05d5ff02, 0x05ca0935,
+ 0x0502000e, 0x59cc0002, 0x82000500, 0xff000000,
+ 0x90000580, 0x05000004, 0x0501fcb7, 0x050002f3,
+ 0x0501f006, 0x9004050f, 0x90000c86, 0x05ca1929,
+ 0x05021002, 0x0c01f005, 0x4803c856, 0x42000000,
+ 0x001123ee, 0x0531f1aa, 0x001075b4, 0x001075b8,
+ 0x001075b4, 0x001075b4, 0x00107636, 0x0010764c,
+ 0x4803c856, 0x42000000, 0x001123ee, 0x0531f1a0,
+ 0x59a800bb, 0x800001c0, 0x05ca0916, 0x05fe07f9,
+ 0x59cc0802, 0x4807c857, 0x8c04052e, 0x05020024,
+ 0x42026000, 0x00115a14, 0x497a6416, 0x59cc0001,
+ 0x59cc3800, 0x05fdfeb5, 0x05020015, 0x0001fb08,
+ 0x05020013, 0x59cc3800, 0x821c3d00, 0x00ffffff,
+ 0x05d9f8f8, 0x05fe07e7, 0x4926601d, 0x0521f858,
+ 0x64166407, 0x64226203, 0x4936600a, 0x60227001,
+ 0x0501f90e, 0x05c808fb, 0x05fc07de, 0x42000000,
+ 0x0011235a, 0x0531f97e, 0x0009f039, 0x4803c857,
+ 0x61fe89ff, 0x417a6800, 0x59cc0001, 0x82000500,
+ 0x00ffffff, 0x4802602a, 0x05fdf7e7, 0x59cc0001,
+ 0x4803c857, 0x59cc3800, 0x821c3d00, 0x00ffffff,
+ 0x4c1c0000, 0x05fdfe91, 0x5c003800, 0x05ca08e5,
+ 0x05fe07c8, 0x05d9f8d7, 0x05ca08e2, 0x05fe07c5,
+ 0x05e9ff4d, 0x05000007, 0x0001fb08, 0x05000008,
+ 0x05f5fa8b, 0x42026800, 0x001141b4, 0x0501f004,
+ 0x05f1f937, 0x05ca08d7, 0x05fe07ba, 0x59cc0005,
+ 0x8c000500, 0x05020010, 0x59340200, 0x8c00050e,
+ 0x05ca08d0, 0x05fe07b3, 0x59a828d5, 0x82140d00,
+ 0x0000f000, 0x82040580, 0x00003000, 0x05c808c9,
+ 0x05fc07ac, 0x82040580, 0x00002000, 0x05c808c5,
+ 0x05fc07a8, 0x05f1feed, 0x05020014, 0x0501f87a,
+ 0x05c808c0, 0x05fc07a3, 0x42026000, 0x00115a14,
+ 0x4926601d, 0x4936600a, 0x497a6416, 0x0521f810,
+ 0x640a6407, 0x64226203, 0x60227001, 0x0501f8c7,
+ 0x05c808b4, 0x05fc0797, 0x42000000, 0x0011235a,
+ 0x0531f937, 0x0009f039, 0x0511faf6, 0x05000c31,
+ 0x05fc0790, 0x4926601d, 0x4936600a, 0x0521f800,
+ 0x64126407, 0x59cc0c04, 0x48066202, 0x60067000,
+ 0x0501f8b6, 0x00080010, 0x83340580, 0x001141b4,
+ 0x000a0039, 0x59cc0001, 0x82000500, 0x00ffffff,
+ 0x4802602a, 0x0009f039, 0x59cc0802, 0x8c04052e,
+ 0x05020004, 0x0501f84e, 0x0500000c, 0x0501f007,
+ 0x0501f84d, 0x0500000b, 0x0501fb97, 0x05020009,
+ 0x59cc0a04, 0x48066202, 0x60267001, 0x0501f89f,
+ 0x05000004, 0x0009f039, 0x0501f81f, 0x05fc07fb,
+ 0x4933c857, 0x42000000, 0x001123ec, 0x0531f10c,
+ 0x59cc0004, 0x4803c857, 0x59a800bb, 0x90000484,
+ 0x05001011, 0x59cc0802, 0x8c04052e, 0x05020004,
+ 0x0501f833, 0x0500000c, 0x0501f007, 0x0501f832,
+ 0x05000009, 0x0501fb7c, 0x05020007, 0x59cc0a04,
+ 0x48066202, 0x602a7001, 0x0501f884, 0x05000002,
+ 0x0009f039, 0x4933c857, 0x42000000, 0x001123ec,
+ 0x0531f0f3, 0x4933c857, 0x59300407, 0x90000585,
+ 0x05020005, 0x59300216, 0x59cc0a07, 0x80040580,
+ 0x05000019, 0x59cc1407, 0x41526000, 0x59a8089b,
+ 0x59a8009c, 0x80040480, 0x05000013, 0x81300800,
+ 0x41540000, 0x80040480, 0x0502100f, 0x59300202,
+ 0x80080580, 0x05020007, 0x5930002a, 0x59cc1001,
+ 0x82081500, 0x00ffffff, 0x80080580, 0x05000006,
+ 0x91326430, 0x41540000, 0x81300480, 0x05fc17f4,
+ 0x05c5ff91, 0x4933c857, 0x1c01f000, 0x59cc0a04,
+ 0x0501f002, 0x59cc0c04, 0x0531fa24, 0x59a8003d,
+ 0x05000002, 0x59a804e2, 0x59a8109d, 0x80080400,
+ 0x80040480, 0x05021007, 0x800400ca, 0x800408c8,
+ 0x80040c00, 0x82066400, 0x00115aa4, 0x1c01f000,
+ 0x80000580, 0x05fdf7fe, 0x4803c856, 0x90040507,
+ 0x0c01f001, 0x001076a5, 0x001076ba, 0x001076cf,
+ 0x001076de, 0x001076de, 0x001076de, 0x001076de,
+ 0x001076de, 0x59cc0802, 0x8c04052e, 0x05000010,
+ 0x05fdffe1, 0x05000007, 0x59cc0802, 0x90040d30,
+ 0x90040d90, 0x05000006, 0x61827000, 0x0009f039,
+ 0x42000000, 0x001123ec, 0x0531f0a5, 0x59300416,
+ 0x8400055c, 0x48026416, 0x051df6b6, 0x05fdffd0,
+ 0x05fc07f8, 0x05fdf7f1, 0x59cc0802, 0x8c04052e,
+ 0x05000010, 0x05fdffcc, 0x05000007, 0x59cc0802,
+ 0x90040d30, 0x90040d90, 0x05000006, 0x61867000,
+ 0x0009f039, 0x42000000, 0x001123ec, 0x0531f090,
+ 0x59300416, 0x8400055c, 0x48026416, 0x051df6a1,
+ 0x05fdffbb, 0x05fc07f8, 0x05fdf7f1, 0x82140500,
+ 0x0000f000, 0x82000580, 0x00002000, 0x0502000b,
+ 0x59cc0802, 0x8c04052e, 0x05000008, 0x05fdffb2,
+ 0x05000006, 0x59300416, 0x8c000510, 0x05000003,
+ 0x618a7000, 0x0009f039, 0x42000000, 0x001123ec,
+ 0x0531f877, 0x1c01f000, 0x59a828d5, 0x8c14051a,
+ 0x0500000c, 0x4803c856, 0x4d300000, 0x5930100a,
+ 0x4c080000, 0x0511fa2f, 0x5c001000, 0x05000003,
+ 0x59cc2a04, 0x0501f90f, 0x5c026000, 0x1c01f000,
+ 0x90000541, 0x1c01f000, 0x4803c856, 0x4c0c0000,
+ 0x4d340000, 0x59cc0006, 0x82000500, 0xffff0000,
+ 0x82000580, 0x01000000, 0x05000027, 0x5932680a,
+ 0x59a81a4c, 0x05f5fc9b, 0x05020023, 0x813669c0,
+ 0x0500001a, 0x83340580, 0x001141b4, 0x05000017,
+ 0x59340403, 0x82000580, 0x000007fe, 0x05020013,
+ 0x59cc0408, 0x8c000518, 0x05000017, 0x59300403,
+ 0x90000582, 0x05020014, 0x59a804d1, 0x8c00050a,
0x05020011, 0x59cc0207, 0x80000540, 0x05020002,
- 0x60040000, 0x48038893, 0x48035040, 0x84000560,
+ 0x60040000, 0x48038893, 0x48035043, 0x84000560,
0x480388b3, 0x0501f008, 0x59300403, 0x90000582,
0x05000003, 0x91380597, 0x05020003, 0x8c0c0508,
0x05fe07f1, 0x5c026800, 0x5c001800, 0x1c01f000,
- 0x59a828d0, 0x8c14051a, 0x05000018, 0x4803c856,
- 0x4d300000, 0x4c5c0000, 0x4130b800, 0x0511f8c8,
+ 0x59a828d5, 0x8c14051a, 0x05000018, 0x4803c856,
+ 0x4d300000, 0x4c5c0000, 0x4130b800, 0x0511f9ed,
0x0500000f, 0x485e602a, 0x585c0407, 0x90000581,
- 0x05020008, 0x4d300000, 0x405e6000, 0x051dfc86,
+ 0x05020008, 0x4d300000, 0x405e6000, 0x051dfe2e,
0x5c026000, 0x05000003, 0x4a026416, 0x00000080,
0x585c100a, 0x59cc2a04, 0x0501f8c2, 0x5c00b800,
0x5c026000, 0x1c01f000, 0x90000541, 0x1c01f000,
- 0x59a828d0, 0x8c14051a, 0x05000011, 0x4803c856,
+ 0x59a828d5, 0x8c14051a, 0x05000011, 0x4803c856,
0x4d300000, 0x4c5c0000, 0x4130b800, 0x4a026416,
- 0x00000100, 0x0511f8aa, 0x05000006, 0x485e602a,
+ 0x00000100, 0x0511f9cf, 0x05000006, 0x485e602a,
0x585c2c02, 0x585c100a, 0x405c2000, 0x0501f8b1,
0x5c00b800, 0x5c026000, 0x1c01f000, 0x90000541,
- 0x1c01f000, 0x59a828d0, 0x8c14051a, 0x05000017,
+ 0x1c01f000, 0x59a828d5, 0x8c14051a, 0x05000017,
0x4803c856, 0x4d300000, 0x4c5c0000, 0x4130b800,
- 0x4a026416, 0x00000100, 0x0511f895, 0x05000acb,
- 0x0500000b, 0x493a6403, 0x485e602a, 0x051dfc56,
+ 0x4a026416, 0x00000100, 0x0511f9ba, 0x05000af5,
+ 0x0500000b, 0x493a6403, 0x485e602a, 0x051dfdfe,
0x05000003, 0x4a026416, 0x00000080, 0x585c2c02,
0x585c100a, 0x405c2000, 0x0501f896, 0x5c00b800,
0x5c026000, 0x1c01f000, 0x90000541, 0x1c01f000,
0x4803c856, 0x4c600000, 0x4c640000, 0x4c5c0000,
- 0x4d200000, 0x4d240000, 0x4200c000, 0x00110202,
+ 0x4d200000, 0x4d240000, 0x4200c000, 0x001141a6,
0x5930c80a, 0x8064c9c0, 0x05020015, 0x58603800,
- 0x821c3d00, 0x00ffffff, 0x4c1c0000, 0x05d9fa99,
+ 0x821c3d00, 0x00ffffff, 0x4c1c0000, 0x05d5ff45,
0x5c003800, 0x05020064, 0x4d340000, 0x58600001,
- 0x82000500, 0x00ffffff, 0x0501f9f2, 0x05ca0a43,
- 0x4936600a, 0x59341200, 0x5c026800, 0x0501fa25,
+ 0x82000500, 0x00ffffff, 0x0501f9f2, 0x05c60e8e,
+ 0x4936600a, 0x59341200, 0x5c026800, 0x0501fa4f,
0x4a026416, 0x00000100, 0x65126403, 0x58601006,
0x82081500, 0x0000f000, 0x82080480, 0x00002000,
0x05001058, 0x42002000, 0xc0000000, 0x5930100a,
@@ -7442,7 +7694,7 @@ static const uint32_t isp_2500_risc_code[] = {
0x0500000d, 0x82140580, 0x00002000, 0x05000047,
0x8064c9c0, 0x05000004, 0x58600402, 0x8c000526,
0x05000040, 0x42002000, 0xc1000000, 0x41783000,
- 0x0501f002, 0x60043000, 0x4130b800, 0x0511f840,
+ 0x0501f002, 0x60043000, 0x4130b800, 0x0511f965,
0x05000031, 0x58601804, 0x8064c9c0, 0x05020006,
0x65126403, 0x585c0402, 0x820c1d00, 0xffff0000,
0x800c1d40, 0x58600000, 0x58600801, 0x58601003,
@@ -7453,7 +7705,7 @@ static const uint32_t isp_2500_risc_code[] = {
0x80040540, 0x90000561, 0x48026018, 0x585c0416,
0x58600802, 0x585c1407, 0x8c00051c, 0x05020023,
0x48026416, 0x4806601b, 0x480a6407, 0x643e6203,
- 0x640e6006, 0x4c100000, 0x050dfd7d, 0x0505fc73,
+ 0x640e6006, 0x4c100000, 0x050dfe77, 0x0505fd3c,
0x5c002000, 0x82100580, 0xc2000000, 0x05000015,
0x90000541, 0x405e6000, 0x5c024800, 0x5c024000,
0x5c00b800, 0x5c00c800, 0x5c00c000, 0x1c01f000,
@@ -7464,7 +7716,7 @@ static const uint32_t isp_2500_risc_code[] = {
0x4803c856, 0x41782000, 0x0501f805, 0x1c01f000,
0x4803c856, 0x0501f802, 0x1c01f000, 0x4813c857,
0x59300416, 0x84000550, 0x48026416, 0x4816621d,
- 0x480a600a, 0x82080580, 0x00110210, 0x05020002,
+ 0x480a600a, 0x82080580, 0x001141b4, 0x05020002,
0x41781000, 0x493a6403, 0x643e6203, 0x59cc0000,
0x82000500, 0x00ffffff, 0x48026019, 0x82000500,
0x000000ff, 0x800000e0, 0x59cc0801, 0x82040d00,
@@ -7472,8 +7724,8 @@ static const uint32_t isp_2500_risc_code[] = {
0x800811c0, 0x0500000a, 0x58080a12, 0x0501f002,
0x800408d0, 0x80040540, 0x90000561, 0x4803c857,
0x4807c857, 0x48026018, 0x0501f00e, 0x4c000000,
- 0x4c040000, 0x05f5fc75, 0x5c000800, 0x5c000000,
- 0x05000007, 0x59a81a49, 0x8c0c0506, 0x05fc07f1,
+ 0x4c040000, 0x05f5fb6f, 0x5c000800, 0x5c000000,
+ 0x05000007, 0x59a81a4c, 0x8c0c0506, 0x05fc07f1,
0x90000561, 0x48026018, 0x0501f002, 0x64866018,
0x59cc0404, 0x4802641d, 0x59cc0002, 0x4802601b,
0x59cc0403, 0x4802641c, 0x59cc0203, 0x4802621c,
@@ -7483,39 +7735,39 @@ static const uint32_t isp_2500_risc_code[] = {
0x8c000504, 0x0502001c, 0x42002800, 0xc1000000,
0x801021c0, 0x05000002, 0x64082008, 0x40142000,
0x41783000, 0x0501f003, 0x40142000, 0x60043000,
- 0x050dfd07, 0x0505fbfd, 0x90000541, 0x1c01f000,
+ 0x050dfe01, 0x0505fcc6, 0x90000541, 0x1c01f000,
0x42002000, 0xc2000000, 0x42003000, 0x02120000,
0x0501f005, 0x42002000, 0xc2000000, 0x42003000,
- 0x01050000, 0x050dfcfa, 0x0505fbf0, 0x80000580,
+ 0x01050000, 0x050dfdf4, 0x0505fcb9, 0x80000580,
0x05fdf7f3, 0x59cc1002, 0x82081500, 0x00003000,
0x82080580, 0x00001000, 0x05fc07e8, 0x82080580,
0x00002000, 0x05fc07eb, 0x05fdf7dc, 0x59cc0802,
- 0x8c04052e, 0x0502001d, 0x05fdfe17, 0x0500001b,
+ 0x8c04052e, 0x0502001d, 0x05fdfe15, 0x0500001b,
0x59300407, 0x90000586, 0x05020018, 0x59cc0001,
0x82000500, 0x00ffffff, 0x5932680a, 0x813669c0,
0x05000012, 0x59340802, 0x82040d00, 0x00ffffff,
- 0x80040580, 0x0502000d, 0x0501f949, 0x0502000b,
- 0x59a800b6, 0x800001c0, 0x05020008, 0x61467000,
+ 0x80040580, 0x0502000d, 0x0501f973, 0x0502000b,
+ 0x59a800bb, 0x800001c0, 0x05020008, 0x61467000,
0x59300416, 0x8c00051a, 0x05020004, 0x05fdfeb5,
- 0x05000002, 0x0009f000, 0x59cc0004, 0x4803c857,
- 0x42000000, 0x0010e449, 0x052df33a, 0x4803c856,
+ 0x05000002, 0x0009f039, 0x59cc0004, 0x4803c857,
+ 0x42000000, 0x001123ed, 0x052df6c5, 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,
- 0x05000024, 0x050dff46, 0x05000025, 0x58640001,
+ 0x05000024, 0x0511f86b, 0x05000025, 0x58640001,
0x58643800, 0x821c3d00, 0x00ffffff, 0x4c1c0000,
- 0x05fdfc0a, 0x5c003800, 0x0502001c, 0x05d9f961,
- 0x0502001a, 0x05f1f84b, 0x05020018, 0x4936600a,
- 0x051dfbc3, 0x05c9fcb5, 0x05000014, 0x4926601d,
+ 0x05fdfbc6, 0x5c003800, 0x0502001c, 0x05d5fe0d,
+ 0x0502001a, 0x05edfe76, 0x05020018, 0x4936600a,
+ 0x051dfd6b, 0x05c9f8fc, 0x05000014, 0x4926601d,
0x492e6019, 0x497a5800, 0x497a5a08, 0x485e5c08,
- 0x912cac09, 0x601cb000, 0x4064a000, 0x052dfbd0,
- 0x42000000, 0x0010e3b7, 0x052dfb02, 0x4862641c,
- 0x64fa6403, 0x64066407, 0x64066203, 0x0505fb92,
- 0x5c00b000, 0x1c01f000, 0x0005ffdc, 0x42000000,
- 0x0010e448, 0x052dfaf7, 0x05fdf7fa, 0x4803c856,
+ 0x912cac09, 0x601cb000, 0x4064a000, 0x052dff5b,
+ 0x42000000, 0x00112358, 0x052dfe8d, 0x4862641c,
+ 0x64fa6403, 0x64066407, 0x64066203, 0x0505fc5b,
+ 0x5c00b000, 0x1c01f000, 0x0009f810, 0x42000000,
+ 0x001123ec, 0x052dfe82, 0x05fdf7fa, 0x4803c856,
0x59cc0000, 0x82000d00, 0x00ffffff, 0x82040580,
0x00fffff0, 0x05000075, 0x59cc0400, 0x82000d00,
0x0000ff00, 0x82040500, 0x0000f000, 0x840409c0,
@@ -7525,35 +7777,35 @@ static const uint32_t isp_2500_risc_code[] = {
0x82000500, 0xffff0000, 0x82000d80, 0x04000000,
0x0500005e, 0x82000d80, 0x60000000, 0x0500005b,
0x82000d80, 0x54000000, 0x05000058, 0x82000d80,
- 0x03000000, 0x0502001e, 0x59a80a49, 0x8c040508,
+ 0x03000000, 0x0502001e, 0x59a80a4c, 0x8c040508,
0x05020052, 0x8c040502, 0x05020060, 0x82000d80,
0x03000000, 0x05020008, 0x82140d00, 0x0000f000,
- 0x82040d80, 0x00003000, 0x05020003, 0x05f5fb93,
- 0x05000046, 0x05f1fbbb, 0x05000046, 0x59a80046,
- 0x800000d0, 0x59a8083d, 0x82040d00, 0x000000ff,
+ 0x82040d80, 0x00003000, 0x05020003, 0x05f5fa8d,
+ 0x05000046, 0x05f1fa3d, 0x05000046, 0x59a80049,
+ 0x800000d0, 0x59a80840, 0x82040d00, 0x000000ff,
0x80040540, 0x59cc0800, 0x82040d00, 0x00ffffff,
0x80040580, 0x05020037, 0x0501f038, 0x59c40802,
0x8c04050c, 0x0502001e, 0x82000d80, 0x52000000,
0x05fc07ed, 0x82000d80, 0x05000000, 0x05fc07ea,
0x82000d80, 0x50000000, 0x05fc07e7, 0x0501f029,
- 0x900405a3, 0x05020027, 0x05fdfd61, 0x05000025,
+ 0x900405a3, 0x05020027, 0x05fdfd5f, 0x05000025,
0x59300c03, 0x90040582, 0x05000024, 0xb0040591,
- 0x05000022, 0x0501f00a, 0x05fdfd59, 0x0500001d,
+ 0x05000022, 0x0501f00a, 0x05fdfd57, 0x0500001d,
0x59300403, 0x90000582, 0x0502001a, 0x59300203,
- 0x9000058e, 0x05020017, 0x0501f018, 0x59a80249,
- 0x8c000514, 0x05fc07f5, 0x4c580000, 0x052dfba5,
+ 0x9000058e, 0x05020017, 0x0501f018, 0x59a8024c,
+ 0x8c000514, 0x05fc07f5, 0x4c580000, 0x052dff30,
0xb0582481, 0x5c00b000, 0x0500100e, 0x59cc0800,
- 0x82040d00, 0x00ffffff, 0x42001000, 0x0010e852,
+ 0x82040d00, 0x00ffffff, 0x42001000, 0x001127f6,
0x58080005, 0x80040580, 0x05000008, 0x801021c0,
0x05000004, 0x80102040, 0x9008140d, 0x05fdf7f9,
0x80000580, 0x0501f002, 0x90000541, 0x1c01f000,
0x59cc0006, 0x82000500, 0xffff0000, 0x82000d80,
0x03000000, 0x05000004, 0x82000d80, 0x52000000,
- 0x05fe07f4, 0x59a80249, 0x90000509, 0x90000588,
- 0x05fc07f2, 0x05fdf7ef, 0x59a828d0, 0x82140500,
+ 0x05fe07f4, 0x59a8024c, 0x90000509, 0x90000588,
+ 0x05fc07f2, 0x05fdf7ef, 0x59a828d5, 0x82140500,
0x0000f000, 0x82000580, 0x00003000, 0x05fe07eb,
- 0x05f5fb36, 0x05fe07e9, 0x59a80046, 0x800000d0,
- 0x59a8083d, 0x82040d00, 0x000000ff, 0x80040540,
+ 0x05f5fa30, 0x05fe07e9, 0x59a80049, 0x800000d0,
+ 0x59a80840, 0x82040d00, 0x000000ff, 0x80040540,
0x59cc0800, 0x82040d00, 0x00ffffff, 0x80040580,
0x05fc07de, 0x60043002, 0x05fdff23, 0x05fdf7d9,
0x4803c857, 0x4c580000, 0x40003000, 0x61c0200f,
@@ -7561,253 +7813,305 @@ static const uint32_t isp_2500_risc_code[] = {
0x05000013, 0x59340002, 0x82000500, 0x00ffffff,
0x80180580, 0x0502000e, 0x59341013, 0x80080130,
0x81200580, 0x0502000a, 0x82080500, 0x00ffffff,
- 0x59240805, 0x80040580, 0x05000011, 0x812000f0,
- 0x80040d40, 0x48066813, 0x0501f00d, 0x80102000,
+ 0x59240805, 0x80040580, 0x0500003b, 0x812000f0,
+ 0x80040d40, 0x48066813, 0x0501f037, 0x80102000,
0x80387000, 0x8058b040, 0x05fe07e8, 0x82100480,
- 0x00000800, 0x60002000, 0x61c0b00f, 0x41ac7000,
- 0x05fe17e2, 0x90000541, 0x0501f002, 0x40128800,
- 0x5c00b000, 0x1c01f000, 0x59a80249, 0x8c00050e,
- 0x05000004, 0x8c000502, 0x05000003, 0x80000580,
- 0x1c01f000, 0x90000541, 0x05fdf7fe, 0x59300c07,
- 0x90040582, 0x05000002, 0x90040585, 0x1c01f000,
- 0x60080800, 0x8c080508, 0x05000007, 0x8c08050c,
- 0x05000004, 0x8c080504, 0x05020004, 0x90040d44,
- 0x48066008, 0x1c01f000, 0x42001800, 0x00110202,
- 0x580c1202, 0x82081500, 0x00003000, 0x82080580,
- 0x00001000, 0x05fc07f7, 0x82080580, 0x00002000,
- 0x05fc07f5, 0x05fdf7f2, 0x59c80000, 0x84000558,
- 0x84000512, 0x48039000, 0x1c01f000, 0x59cc0800,
- 0x59340013, 0x82000500, 0x00ffffff, 0x80040580,
- 0x82000500, 0x00ffffff, 0x0502000b, 0x59a808d0,
- 0x8c040516, 0x05000008, 0x42000800, 0x001102fe,
- 0x50040800, 0x59340014, 0x80040580, 0x82000500,
- 0x00001fff, 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,
- 0x0010e4ae, 0x052df9d3, 0x05fdfe99, 0x4803c856,
- 0x90000541, 0x05fdf7e8, 0x41780000, 0x05fdf7e6,
- 0x05f5fa9e, 0x0500000e, 0x59c400a4, 0x4803c857,
- 0x9000050f, 0x9000058a, 0x05020009, 0x497b50b6,
- 0x59c400a3, 0x82000540, 0x00080000, 0x480388a3,
- 0x82000500, 0xfff7ffff, 0x480388a3, 0x4c140000,
- 0x05e9faf6, 0x05020016, 0x916c0583, 0x05000014,
- 0x42000000, 0x0010e4c0, 0x052df9b9, 0x59c40006,
- 0x84000500, 0x48038806, 0x0509fa2b, 0x497b8880,
- 0x59c400a3, 0x82000500, 0xfcf8ffff, 0x480388a3,
- 0x6012d800, 0x64078805, 0x05c9f9cc, 0x05d1fed9,
- 0x497b5068, 0x64075075, 0x05d5fb17, 0x5c002800,
- 0x4817c856, 0x052df0e9, 0x42000000, 0x0010e3b8,
- 0x052df9a0, 0x80000580, 0x1c01f000, 0x82140500,
- 0x0000f000, 0x82006d80, 0x00003000, 0x05000003,
- 0x82006d80, 0x00005000, 0x1c01f000, 0x4a032824,
- 0x000003e8, 0x4a032802, 0x00111b00, 0x64032800,
- 0x4a032808, 0x001089a9, 0x60140000, 0x91947c09,
- 0x49787801, 0x4a007804, 0x00108954, 0x903c7c05,
- 0x80000040, 0x05fe07fb, 0x4a032823, 0xffff0000,
- 0x497b2832, 0x4a032833, 0x00103e7f, 0x0501fb54,
- 0x6191d000, 0x0501f9c2, 0x4201d000, 0x000186a0,
- 0x0501f1cf, 0x00000000, 0x00000005, 0x0000000a,
- 0x0000000f, 0x00000014, 0x00000002, 0x00000008,
- 0x00000020, 0x00000080, 0x00000200, 0x4d300000,
- 0x4d2c0000, 0x4d340000, 0x4d400000, 0x4cfc0000,
- 0x4d380000, 0x4d3c0000, 0x4d440000, 0x4d4c0000,
- 0x4d480000, 0x4c5c0000, 0x4c600000, 0x4c640000,
- 0x4d040000, 0x0005fc98, 0x5c020800, 0x5c00c800,
- 0x5c00c000, 0x5c00b800, 0x5c029000, 0x5c029800,
- 0x5c028800, 0x5c027800, 0x5c027000, 0x5c01f800,
- 0x5c028000, 0x5c026800, 0x5c025800, 0x5c026000,
- 0x1c01f000, 0x59940004, 0x80000540, 0x05020006,
- 0x480b2805, 0x0501f81c, 0x48032804, 0x642b2803,
- 0x80000580, 0x1c01f000, 0x59940029, 0x80000540,
- 0x0502000b, 0x5994002f, 0x80040400, 0x05c41f43,
- 0x5994082e, 0x80040400, 0x05c41f40, 0x48032829,
- 0x480b282a, 0x64072828, 0x80000580, 0x1c01f000,
- 0x5994002c, 0x80000540, 0x05020006, 0x480b282d,
- 0x0501f805, 0x4803282c, 0x642b282b, 0x80000580,
- 0x1c01f000, 0x4c0c0000, 0x5994182f, 0x5994002e,
- 0x800c0400, 0x05c41f2d, 0x05000004, 0x4c040000,
- 0x05c9f967, 0x5c000800, 0x80040400, 0x5c001800,
- 0x1c01f000, 0x4c000000, 0x59940005, 0x80080580,
- 0x05020003, 0x497b2804, 0x497b2805, 0x5c000000,
- 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, 0x0001fb00,
- 0x0502005e, 0x59341a03, 0x800c1840, 0x05001015,
- 0x59940031, 0x800c0480, 0x05000003, 0x48026a03,
- 0x05021010, 0x5934000f, 0x497a6a03, 0x80000540,
- 0x05000052, 0x5934000b, 0x80001120, 0x82000500,
- 0x0000ffff, 0x80080480, 0x05001003, 0x64066a03,
- 0x0501f004, 0x4c3c0000, 0x0001fb0d, 0x5c007800,
- 0x4d2c0000, 0x41781800, 0x5934000f, 0x80025d40,
- 0x05000041, 0x592c0007, 0x80000d40, 0x05000006,
- 0x59940031, 0x80040480, 0x48025807, 0x05001007,
- 0x05000006, 0x412c1800, 0x592c0000, 0x80025d40,
- 0x05000035, 0x05fdf7f4, 0x592c2000, 0x497a5800,
- 0x800c19c0, 0x05020009, 0x59340010, 0x812c0580,
- 0x05020004, 0x497a680f, 0x497a6810, 0x0501f008,
- 0x4812680f, 0x0501f006, 0x48101800, 0x59340010,
- 0x812c0580, 0x05020002, 0x480e6810, 0x592c0208,
- 0x82000500, 0x000000ff, 0x90000592, 0x05000005,
- 0xb00005a0, 0x05000003, 0x90000588, 0x05020003,
- 0x642e5a0a, 0x0501f011, 0x4c0c0000, 0x4c100000,
- 0x0005f9f3, 0x5c002000, 0x5c001800, 0x4c0c0000,
- 0x4c100000, 0x05f9fce3, 0x5c002000, 0x5c001800,
- 0x4a025a08, 0x00000103, 0x641a5a0a, 0x497a580d,
- 0x4a025c0a, 0x0000ffff, 0x4c0c0000, 0x4c100000,
- 0x0001fb82, 0x5c002000, 0x5c001800, 0x40100000,
- 0x05fdf7cb, 0x5c025800, 0x81468800, 0x83440480,
- 0x00000800, 0x05021007, 0x803c7840, 0x05fe079c,
- 0x49472801, 0x5c028800, 0x5c03e000, 0x1c01f000,
- 0x640b2800, 0x497b2801, 0x05fdf7fb, 0x60407800,
+ 0x00000800, 0x60002000, 0x61c0b00f, 0x42007000,
+ 0x0010db80, 0x05fe17e1, 0x8d0c0538, 0x05000028,
+ 0x60002010, 0x5900b400, 0x82100400, 0x0010db80,
+ 0x50000000, 0x80000540, 0x0500001e, 0x82000d00,
+ 0xe0000000, 0x82026d00, 0x00ffffff, 0x82041d80,
+ 0x20000000, 0x05000012, 0x82041d80, 0x80000000,
+ 0x0500000f, 0x82041d80, 0xa0000000, 0x0500000c,
+ 0x8c04053c, 0x05c40c60, 0x41340000, 0x80180580,
+ 0x0502000c, 0x4c100000, 0x40128800, 0x05edfe60,
+ 0x5c002000, 0x0502000a, 0x40366800, 0x59340002,
+ 0x82000500, 0x00ffffff, 0x80180580, 0x05000006,
+ 0x80102000, 0x8058b040, 0x05fe07dc, 0x90000541,
+ 0x0501f002, 0x40128800, 0x5c00b000, 0x1c01f000,
+ 0x59a8024c, 0x8c00050e, 0x05000004, 0x8c000502,
+ 0x05000003, 0x80000580, 0x1c01f000, 0x90000541,
+ 0x05fdf7fe, 0x59300c07, 0x90040582, 0x05000002,
+ 0x90040585, 0x1c01f000, 0x60080800, 0x8c080508,
+ 0x05000007, 0x8c08050c, 0x05000004, 0x8c080504,
+ 0x05020004, 0x90040d44, 0x48066008, 0x1c01f000,
+ 0x42001800, 0x001141a6, 0x580c1202, 0x82081500,
+ 0x00003000, 0x82080580, 0x00001000, 0x05fc07f7,
+ 0x82080580, 0x00002000, 0x05fc07f5, 0x05fdf7f2,
+ 0x59c80000, 0x84000558, 0x84000512, 0x48039000,
+ 0x1c01f000, 0x59cc0800, 0x59340013, 0x82000500,
+ 0x00ffffff, 0x80040580, 0x82000500, 0x00ffffff,
+ 0x0502000b, 0x59a808d5, 0x8c040516, 0x05000008,
+ 0x42000800, 0x001142a2, 0x50040800, 0x59340014,
+ 0x80040580, 0x82000500, 0x00001fff, 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, 0x00112452, 0x052dfd34,
+ 0x05fdfe6f, 0x4803c856, 0x90000541, 0x05fdf7e8,
+ 0x41780000, 0x05fdf7e6, 0x05f5f96e, 0x0500000e,
+ 0x59c400a4, 0x4803c857, 0x9000050f, 0x9000058a,
+ 0x05020009, 0x497b50bb, 0x59c400a3, 0x82000540,
+ 0x00080000, 0x480388a3, 0x82000500, 0xfff7ffff,
+ 0x480388a3, 0x4c140000, 0x05e9f882, 0x05020016,
+ 0x916c0583, 0x05000014, 0x42000000, 0x00112464,
+ 0x052dfd1a, 0x59c40006, 0x84000500, 0x48038806,
+ 0x0509facf, 0x497b8880, 0x59c400a3, 0x82000500,
+ 0xfcf8ffff, 0x480388a3, 0x6012d800, 0x64078805,
+ 0x05c5fde1, 0x05d1fb3f, 0x497b506b, 0x64075078,
+ 0x05d1ff7d, 0x5c002800, 0x4817c856, 0x052df444,
+ 0x42000000, 0x00112359, 0x052dfd01, 0x80000580,
+ 0x1c01f000, 0x82140500, 0x0000f000, 0x82006d80,
+ 0x00003000, 0x05000003, 0x82006d80, 0x00005000,
+ 0x1c01f000, 0x4a032824, 0x000003e8, 0x4a032802,
+ 0x00115aa4, 0x64032800, 0x4a032808, 0x00108e67,
+ 0x60140000, 0x91947c09, 0x49787801, 0x4a007804,
+ 0x00108e12, 0x903c7c05, 0x80000040, 0x05fe07fb,
+ 0x4a032823, 0xffff0000, 0x497b2833, 0x4a032834,
+ 0x00103ff5, 0x0501fbfa, 0x6191d000, 0x0501fa13,
+ 0x4201d000, 0x000186a0, 0x0501f220, 0x00000000,
+ 0x00000005, 0x0000000a, 0x0000000f, 0x00000014,
+ 0x00000002, 0x00000008, 0x00000020, 0x00000080,
+ 0x00000200, 0x4d300000, 0x4d2c0000, 0x4d340000,
+ 0x4d400000, 0x4cfc0000, 0x4d380000, 0x4d3c0000,
+ 0x4d440000, 0x4d4c0000, 0x4d480000, 0x4c5c0000,
+ 0x4c600000, 0x4c640000, 0x4d040000, 0x0005fcce,
+ 0x5c020800, 0x5c00c800, 0x5c00c000, 0x5c00b800,
+ 0x5c029000, 0x5c029800, 0x5c028800, 0x5c027800,
+ 0x5c027000, 0x5c01f800, 0x5c028000, 0x5c026800,
+ 0x5c025800, 0x5c026000, 0x1c01f000, 0x59940004,
+ 0x80000540, 0x05020006, 0x480b2805, 0x0501f81c,
+ 0x48032804, 0x642b2803, 0x80000580, 0x1c01f000,
+ 0x5994002a, 0x80000540, 0x0502000b, 0x59940030,
+ 0x80040400, 0x05c41b64, 0x5994082f, 0x80040400,
+ 0x05c41b61, 0x4803282a, 0x480b282b, 0x64072829,
+ 0x80000580, 0x1c01f000, 0x5994002d, 0x80000540,
+ 0x05020006, 0x480b282e, 0x0501f805, 0x4803282d,
+ 0x642b282c, 0x80000580, 0x1c01f000, 0x4c0c0000,
+ 0x59941830, 0x5994002f, 0x800c0400, 0x05c41b4e,
+ 0x05000004, 0x4c040000, 0x05c5fd7c, 0x5c000800,
+ 0x80040400, 0x5c001800, 0x1c01f000, 0x4c000000,
+ 0x59940005, 0x80080580, 0x05020003, 0x497b2804,
+ 0x497b2805, 0x5c000000, 0x1c01f000, 0x4c000000,
+ 0x5994002b, 0x80080580, 0x05020003, 0x497b282a,
+ 0x497b282b, 0x5c000000, 0x1c01f000, 0x4c000000,
+ 0x5994002e, 0x80080580, 0x05020003, 0x497b282d,
+ 0x497b282e, 0x5c000000, 0x1c01f000, 0x4937c857,
+ 0x48ebc857, 0x59340203, 0x80e80480, 0x05001002,
+ 0x48ea6a03, 0x1c01f000, 0x4c600000, 0x4c5c0000,
+ 0x4178b800, 0x4178c000, 0x4d440000, 0x60407800,
+ 0x59968801, 0x8d0c0538, 0x05000014, 0x83440480,
+ 0x00000800, 0x05001011, 0x82600400, 0x00111ccc,
+ 0x45780000, 0x83441c00, 0x0010db80, 0x500e6800,
+ 0x83340500, 0xe0000000, 0x82000580, 0x20000000,
+ 0x05020092, 0x400cb800, 0x83366d00, 0x00ffffff,
+ 0x05020004, 0x05c5fb0c, 0x0001fb08, 0x0502008b,
+ 0x59341a03, 0x800c1840, 0x05001015, 0x59940032,
+ 0x800c0480, 0x05000003, 0x48026a03, 0x05021010,
+ 0x5934000f, 0x497a6a03, 0x80000540, 0x0500007f,
+ 0x5934000b, 0x80001120, 0x82000500, 0x0000ffff,
+ 0x80080480, 0x05001003, 0x64066a03, 0x0501f004,
+ 0x4c3c0000, 0x0001fb33, 0x5c007800, 0x4d2c0000,
+ 0x41781800, 0x5934000f, 0x80025d40, 0x05000041,
+ 0x592c0007, 0x80000d40, 0x05000006, 0x59940032,
+ 0x80040480, 0x48025807, 0x05001007, 0x05000006,
+ 0x412c1800, 0x592c0000, 0x80025d40, 0x05000035,
+ 0x05fdf7f4, 0x592c2000, 0x497a5800, 0x800c19c0,
+ 0x05020009, 0x59340010, 0x812c0580, 0x05020004,
+ 0x497a680f, 0x497a6810, 0x0501f008, 0x4812680f,
+ 0x0501f006, 0x48101800, 0x59340010, 0x812c0580,
+ 0x05020002, 0x480e6810, 0x592c0208, 0x82000500,
+ 0x000000ff, 0x90000592, 0x05000005, 0xb00005a0,
+ 0x05000003, 0x90000588, 0x05020003, 0x642e5a0a,
+ 0x0501f011, 0x4c0c0000, 0x4c100000, 0x0005fa1a,
+ 0x5c002000, 0x5c001800, 0x4c0c0000, 0x4c100000,
+ 0x05f9fc38, 0x5c002000, 0x5c001800, 0x4a025a08,
+ 0x00000103, 0x641a5a0a, 0x497a580d, 0x4a025c0a,
+ 0x0000ffff, 0x4c0c0000, 0x4c100000, 0x0001fba8,
+ 0x5c002000, 0x5c001800, 0x40100000, 0x05fdf7cb,
+ 0x5c025800, 0x805cb9c0, 0x0500002c, 0x59341c15,
+ 0x800c1840, 0x05001029, 0x59940032, 0x800c0480,
+ 0x05000003, 0x48026c15, 0x05021024, 0x495fc857,
+ 0x835c0480, 0x000003e8, 0x0502101f, 0x5934040b,
+ 0x4803c857, 0x80000540, 0x0502001b, 0x5934000f,
+ 0x4803c857, 0x80000540, 0x05020017, 0x5934000c,
+ 0x4803c857, 0x80000540, 0x05020013, 0x59340215,
+ 0x4803c857, 0x80000540, 0x0502000f, 0x59341c00,
+ 0x480fc857, 0x820c0580, 0x00000707, 0x05000003,
+ 0x05f1f962, 0x05020008, 0x4937c857, 0x497a6c15,
+ 0x82600400, 0x00111ccc, 0x45340000, 0x8060c000,
+ 0x0501f002, 0x640a6c15, 0x81468800, 0x59a800ad,
+ 0x81440480, 0x0502100b, 0x803c7840, 0x05fe075a,
+ 0x49472801, 0x8060c1c0, 0x0502090c, 0x5c00b800,
+ 0x5c00c000, 0x5c028800, 0x5c03e000, 0x1c01f000,
+ 0x640b2800, 0x497b2801, 0x05fdf7f7, 0x60407800,
0x59966002, 0x59300205, 0x80000d40, 0x05000014,
- 0x59940031, 0x80040480, 0x48026205, 0x4df00000,
- 0x4c040000, 0x051df951, 0x5c000800, 0x05000009,
+ 0x59940032, 0x80040480, 0x48026205, 0x4df00000,
+ 0x4c040000, 0x051dfa85, 0x5c000800, 0x05000009,
0x59300205, 0x9000048b, 0x05021006, 0x9004048b,
- 0x05001004, 0x4c3c0000, 0x051df87e, 0x5c007800,
+ 0x05001004, 0x4c3c0000, 0x051df9b2, 0x5c007800,
0x5c03e000, 0x05001027, 0x05000026, 0x59300006,
0x80000d40, 0x05000010, 0x4203e000, 0xb0800000,
0x4203f800, 0x0c000000, 0x40000000, 0x40000000,
- 0x40000000, 0x0503b008, 0x59940031, 0x80040480,
+ 0x40000000, 0x0503b008, 0x59940032, 0x80040480,
0x48026006, 0x4203f800, 0x08000000, 0x05001019,
0x05000018, 0x91326430, 0x49332802, 0x41540000,
0x81300480, 0x05021005, 0x803c7840, 0x05fe07d2,
- 0x5c03e000, 0x1c01f000, 0x59940030, 0x48032831,
- 0x4a032802, 0x00111b00, 0x497b2830, 0x80000540,
+ 0x5c03e000, 0x1c01f000, 0x59940031, 0x48032832,
+ 0x4a032802, 0x00115aa4, 0x497b2831, 0x80000540,
0x0500000c, 0x64072800, 0x5c03e000, 0x1c01f000,
- 0x4c3c0000, 0x0519ff4d, 0x5c007800, 0x05fdf7d8,
- 0x4c3c0000, 0x0519fa13, 0x5c007800, 0x05fdf7e6,
- 0x64032800, 0x5c03e000, 0x1c01f000, 0x59a808b5,
+ 0x4c3c0000, 0x051df882, 0x5c007800, 0x05fdf7d8,
+ 0x4c3c0000, 0x0519fb29, 0x5c007800, 0x05fdf7e6,
+ 0x64032800, 0x5c03e000, 0x1c01f000, 0x59a808ba,
0x8c040530, 0x05020025, 0x8c040532, 0x0500000f,
- 0x59a8009b, 0x81640480, 0x05001016, 0x59a8000b,
- 0x81500580, 0x05000005, 0x59a80099, 0x59a81098,
+ 0x59a8009e, 0x81640480, 0x05001016, 0x59a8000b,
+ 0x81500580, 0x05000005, 0x59a8009c, 0x59a8109b,
0x80080580, 0x0502000f, 0x900411c0, 0x82081500,
0x00007000, 0x0501f00f, 0x9004051f, 0x05000013,
- 0x80040840, 0x9004051f, 0x05000003, 0x480750b5,
+ 0x80040840, 0x9004051f, 0x05000003, 0x480750ba,
0x0501f00e, 0x900401c0, 0x9000051f, 0x80040d40,
0x900401c0, 0x80040580, 0x82001500, 0x00007000,
- 0x82040500, 0xffff8fff, 0x80080540, 0x480350b5,
- 0x80081114, 0x05c9f855, 0x1c01f000, 0x4a032807,
+ 0x82040500, 0xffff8fff, 0x80080540, 0x480350ba,
+ 0x80081114, 0x05c5fc20, 0x1c01f000, 0x4a032807,
0x000007d0, 0x642b2806, 0x4a01a8e5, 0x00000c00,
- 0x1c01f000, 0x60100800, 0x91180485, 0x05c61e1f,
- 0x91947c09, 0x83180400, 0x00107661, 0x50000000,
+ 0x1c01f000, 0x60100800, 0x91180485, 0x05c619f6,
+ 0x91947c09, 0x83180400, 0x00107a7b, 0x50000000,
0x803c7c00, 0x4a007801, 0x000001f4, 0x48047802,
- 0x64287800, 0x83180400, 0x00107666, 0x50000000,
+ 0x64287800, 0x83180400, 0x00107a80, 0x50000000,
0x82000540, 0x00000155, 0x4801a8e5, 0x1c01f000,
- 0x91180485, 0x05c61e0d, 0x91947c09, 0x83180400,
- 0x00107661, 0x50000000, 0x803c7c00, 0x583c0002,
+ 0x91180485, 0x05c619e4, 0x91947c09, 0x83180400,
+ 0x00107a7b, 0x50000000, 0x803c7c00, 0x583c0002,
0x80000040, 0x48007802, 0x05000004, 0x4a007801,
0x000001f4, 0x64287800, 0x1c01f000, 0x91180485,
- 0x05c61dfe, 0x91947c09, 0x83180400, 0x00107661,
+ 0x05c619d5, 0x91947c09, 0x83180400, 0x00107a7b,
0x50000000, 0x803c7c00, 0x49787801, 0x83180400,
- 0x00107666, 0x50000000, 0x4801a8e5, 0x1c01f000,
- 0x4807c857, 0x480bc857, 0x480b2805, 0x05fdfebe,
+ 0x00107a80, 0x50000000, 0x4801a8e5, 0x1c01f000,
+ 0x4807c857, 0x480bc857, 0x480b2805, 0x05fdfe74,
0x48032804, 0x642b2803, 0x1c01f000, 0x4807c857,
- 0x480bc857, 0x480b2827, 0x05fdfeb7, 0x48032826,
+ 0x480bc857, 0x480b2827, 0x05fdfe6d, 0x48032826,
0x642b2825, 0x1c01f000, 0x4c000000, 0x59940027,
0x80080580, 0x05020003, 0x48032826, 0x48032827,
0x5c000000, 0x1c01f000, 0x4807c857, 0x480bc857,
- 0x480b282d, 0x05fdfea8, 0x4803282c, 0x642b282b,
- 0x1c01f000, 0x80e9d1c0, 0x05000006, 0x0501f828,
- 0x00044e27, 0x05fe57ff, 0x4203e000, 0x80000000,
- 0x1c01f000, 0x42001000, 0x00106004, 0x05fdfea6,
- 0x42001000, 0x00105ff7, 0x05fdffe4, 0x42001000,
- 0x0010510c, 0x05fdfea0, 0x42001000, 0x00105184,
- 0x05fdfe9d, 0x42001000, 0x001050eb, 0x05fdfe9a,
- 0x42001000, 0x001051ae, 0x05fdf6a7, 0x4203e000,
- 0x70000000, 0x4203e000, 0xb0300000, 0x40ebf800,
- 0x60f00000, 0x05004004, 0x80000040, 0x05fe07fe,
- 0x0501f006, 0x4203e000, 0x70000000, 0x42000000,
- 0x0010e46f, 0x0529ffaf, 0x1c01f000, 0x4203e000,
- 0x80000000, 0x4203e000, 0xb0400000, 0x40ebf800,
- 0x60f00000, 0x05005004, 0x80000040, 0x05fe07fe,
- 0x0501f006, 0x4203e000, 0x80000000, 0x42000000,
- 0x0010e470, 0x0529ff9f, 0x1c01f000, 0x4c5c0000,
- 0x4c640000, 0x59a8b81a, 0x585c0002, 0x82000580,
- 0x00000100, 0x60100000, 0x05020067, 0x642f5427,
- 0x642f542f, 0x642f5437, 0x60080800, 0x4200c800,
- 0x0010dc28, 0x60041800, 0x60002080, 0x60602801,
- 0x05e9fa21, 0x0500005c, 0x59a80028, 0xb000053f,
+ 0x480b282b, 0x05fdfe5e, 0x4803282a, 0x642b2828,
+ 0x1c01f000, 0x4807c857, 0x480bc857, 0x480b282e,
+ 0x05fdfe57, 0x4803282d, 0x642b282c, 0x1c01f000,
+ 0x80e9d1c0, 0x05000006, 0x0501f828, 0x00044e5d,
+ 0x05fe57ff, 0x4203e000, 0x80000000, 0x1c01f000,
+ 0x42001000, 0x001062e8, 0x05fdfe55, 0x42001000,
+ 0x001062db, 0x05fdffdd, 0x42001000, 0x00105303,
+ 0x05fdfe4f, 0x42001000, 0x0010537b, 0x05fdfe4c,
+ 0x42001000, 0x001052e2, 0x05fdfe49, 0x42001000,
+ 0x001053a5, 0x05fdf656, 0x4203e000, 0x70000000,
+ 0x4203e000, 0xb0300000, 0x40ebf800, 0x60f00000,
+ 0x05004004, 0x80000040, 0x05fe07fe, 0x0501f006,
+ 0x4203e000, 0x70000000, 0x42000000, 0x00112413,
+ 0x052dfabf, 0x1c01f000, 0x4203e000, 0x80000000,
+ 0x4203e000, 0xb0400000, 0x40ebf800, 0x60f00000,
+ 0x05005004, 0x80000040, 0x05fe07fe, 0x0501f006,
+ 0x4203e000, 0x80000000, 0x42000000, 0x00112414,
+ 0x052dfaaf, 0x1c01f000, 0x4c580000, 0x4d440000,
+ 0x4d340000, 0x4d300000, 0x4863c856, 0x42026000,
+ 0x00115aa4, 0x0521fcc5, 0x0502101b, 0x5932680a,
+ 0x813669c0, 0x05000013, 0x59368c03, 0x83440480,
+ 0x00000800, 0x0500100f, 0x6000b000, 0x82580c00,
+ 0x00111ccc, 0x50040000, 0x80000540, 0x05000005,
+ 0x81340580, 0x05020003, 0x45780800, 0x640a6c15,
+ 0x8058b000, 0x40600000, 0x80580580, 0x05fe07f4,
+ 0x91326430, 0x41580000, 0x81300480, 0x05fc17e8,
+ 0x0501f002, 0x41526000, 0x59a8089b, 0x59a8009c,
+ 0x80040480, 0x0500001b, 0x81300800, 0x41540000,
+ 0x80040480, 0x05021017, 0x5932680a, 0x813669c0,
+ 0x05fc07f6, 0x59368c03, 0x83440480, 0x00000800,
+ 0x05fc17f2, 0x6000b000, 0x82580c00, 0x00111ccc,
+ 0x50040000, 0x80000540, 0x05000005, 0x81340580,
+ 0x05020003, 0x45780800, 0x640a6c15, 0x8058b000,
+ 0x40600000, 0x80580580, 0x05fe07f4, 0x05fdf7e3,
+ 0x6000b000, 0x82580c00, 0x00111ccc, 0x50040000,
+ 0x80026d40, 0x05000005, 0x59368c03, 0x4937c857,
+ 0x4947c857, 0x0521fa69, 0x8058b000, 0x40600000,
+ 0x80580580, 0x05fe07f4, 0x5c026000, 0x5c026800,
+ 0x5c028800, 0x5c00b000, 0x1c01f000, 0x4c5c0000,
+ 0x4c640000, 0x59a8b81c, 0x585c0002, 0x82000580,
+ 0x00000100, 0x60100000, 0x05020067, 0x642f5429,
+ 0x642f5431, 0x642f5439, 0x60080800, 0x4200c800,
+ 0x00111baa, 0x60041800, 0x60002080, 0x60602801,
+ 0x05e5ff07, 0x0500005c, 0x59a8002a, 0xb000053f,
0x800001c0, 0x0500000b, 0x90002d1e, 0x05000004,
- 0x59a80827, 0x84040d64, 0x48075027, 0xb0002d21,
- 0x05000004, 0x59a8002f, 0x84000564, 0x4803502f,
- 0x60040800, 0x4200c800, 0x0010dc28, 0x60041800,
- 0x60002080, 0x60602801, 0x05e9fa0b, 0x05000046,
- 0x59a80029, 0x80000000, 0x48035029, 0x60000800,
- 0x4200c800, 0x0010dc30, 0x60041800, 0x60002080,
- 0x60602801, 0x05e9fa00, 0x0500003b, 0x59a80031,
- 0x80000000, 0x48035031, 0x60080800, 0x4200c800,
- 0x0010dc38, 0x60041800, 0x60002080, 0x61602801,
- 0x05e9f9f5, 0x05000030, 0x59a80038, 0xb0000521,
- 0x800001c0, 0x05000004, 0x59a80037, 0x84000564,
- 0x48035037, 0x60000800, 0x4200c800, 0x0010dc38,
- 0x60041800, 0x60002080, 0x61602801, 0x05e9f9e6,
- 0x05000021, 0x59a80039, 0x80000000, 0x48035039,
- 0x600cc800, 0x42000800, 0x0010dc23, 0x42001000,
- 0xffffffff, 0x601c2000, 0x05c5ff8c, 0x59a8201f,
+ 0x59a80829, 0x84040d64, 0x48075029, 0xb0002d21,
+ 0x05000004, 0x59a80031, 0x84000564, 0x48035031,
+ 0x60040800, 0x4200c800, 0x00111baa, 0x60041800,
+ 0x60002080, 0x60602801, 0x05e5fef1, 0x05000046,
+ 0x59a8002b, 0x80000000, 0x4803502b, 0x60000800,
+ 0x4200c800, 0x00111bb2, 0x60041800, 0x60002080,
+ 0x60602801, 0x05e5fee6, 0x0500003b, 0x59a80033,
+ 0x80000000, 0x48035033, 0x60080800, 0x4200c800,
+ 0x00111bba, 0x60041800, 0x60002080, 0x61602801,
+ 0x05e5fedb, 0x05000030, 0x59a8003a, 0xb0000521,
+ 0x800001c0, 0x05000004, 0x59a80039, 0x84000564,
+ 0x48035039, 0x60000800, 0x4200c800, 0x00111bba,
+ 0x60041800, 0x60002080, 0x61602801, 0x05e5fecc,
+ 0x05000021, 0x59a8003b, 0x80000000, 0x4803503b,
+ 0x600cc800, 0x42000800, 0x00111ba5, 0x42001000,
+ 0xffffffff, 0x601c2000, 0x05c5fafb, 0x59a82021,
0x80100400, 0x81780480, 0x44000800, 0x80040800,
0x8064c840, 0x05fe07f6, 0x6400b801, 0x6460b804,
- 0x6580b805, 0x4a00b803, 0x0010dc23, 0x59a8001d,
- 0x4800b807, 0x59a8001e, 0x4800b808, 0x405c1000,
- 0x0001f821, 0x90000541, 0x5c00c800, 0x5c00b800,
+ 0x6580b805, 0x4a00b803, 0x00111ba5, 0x59a8001f,
+ 0x4800b807, 0x59a80020, 0x4800b808, 0x405c1000,
+ 0x0001f829, 0x90000541, 0x5c00c800, 0x5c00b800,
0x1c01f000, 0x4803c857, 0x05fdf7fc, 0x4803c857,
- 0x61c01100, 0x40001800, 0x05e5ff2b, 0x1c01f000,
+ 0x61c01100, 0x40001800, 0x05e5fc08, 0x1c01f000,
0x4833c857, 0x58300002, 0x82000580, 0x00000100,
0x05020002, 0x1c01f000, 0x4a006002, 0x00000100,
0x60140000, 0x05fdfff2, 0x05fdf7fb, 0x4833c857,
0x4c580000, 0x58300002, 0x82000580, 0x00000100,
0x05020007, 0x0501fb33, 0x5830020b, 0x4803c857,
- 0x9000349c, 0x05c61d11, 0x0c01f005, 0x4a006002,
- 0x00000100, 0x60140000, 0x0501f0d9, 0x001078eb,
- 0x001078f6, 0x001078fb, 0x001078fd, 0x001078fe,
- 0x0010790b, 0x0010790c, 0x00107924, 0x00107925,
- 0x00107929, 0x00107934, 0x00107945, 0x00107963,
- 0x00107964, 0x00107965, 0x00107966, 0x0010796b,
- 0x0010796f, 0x0010797d, 0x0010797e, 0x0010797f,
- 0x00107993, 0x00107998, 0x0010799c, 0x001079a3,
- 0x00107952, 0x0010795e, 0x001079a3, 0x6404620b,
+ 0x9000349c, 0x05c6188c, 0x0c01f005, 0x4a006002,
+ 0x00000100, 0x60140000, 0x0501f0d9, 0x00107dab,
+ 0x00107db6, 0x00107dbb, 0x00107dbd, 0x00107dbe,
+ 0x00107dcb, 0x00107dcc, 0x00107de4, 0x00107de5,
+ 0x00107de9, 0x00107df4, 0x00107e05, 0x00107e23,
+ 0x00107e24, 0x00107e25, 0x00107e26, 0x00107e2b,
+ 0x00107e2f, 0x00107e3d, 0x00107e3e, 0x00107e3f,
+ 0x00107e53, 0x00107e58, 0x00107e5c, 0x00107e63,
+ 0x00107e12, 0x00107e1e, 0x00107e63, 0x6404620b,
0x64006001, 0x64c46004, 0x4a006005, 0x000000c4,
- 0x4a006003, 0x00107ddd, 0x59a80011, 0xb0000430,
+ 0x4a006003, 0x00108294, 0x59a80013, 0xb0000430,
0x0501f8b5, 0x0501f0ae, 0x6458620b, 0x40301000,
0x60040000, 0x0501fae2, 0x0501f0a9, 0x0501f996,
0x0501f0a7, 0x0501f0a8, 0x643c620b, 0x64006001,
0x4a006004, 0x000000a8, 0x4a006005, 0x000002a0,
- 0x4a006003, 0x00107e0e, 0x59a80011, 0x82000400,
+ 0x4a006003, 0x001082c5, 0x59a80013, 0x82000400,
0x00000134, 0x0501f8a0, 0x0501f099, 0x0501f09a,
0x0501fb41, 0x05020096, 0x5830040b, 0x8c000512,
0x05020008, 0x8c000510, 0x0502000b, 0x84000552,
0x4800640b, 0x6044b000, 0x0501fafa, 0x0501f08c,
- 0x84000512, 0x84000550, 0x4800640b, 0x6088b000,
+ 0x84000512, 0x84000550, 0x4800640b, 0x606cb000,
0x05fdf7fa, 0x84000510, 0x4800640b, 0x6454620b,
0x40301000, 0x60180000, 0x0501fab9, 0x0501f080,
- 0x0501f081, 0x59a8600e, 0x6424620b, 0x0501f9d4,
+ 0x0501f081, 0x59a86010, 0x6424620b, 0x0501f9d4,
0x0501f07b, 0x6428620b, 0x64006001, 0x64506004,
- 0x65406005, 0x4a006003, 0x00107eb8, 0x59a80011,
+ 0x65406005, 0x4a006003, 0x0010836f, 0x59a80013,
0x82000400, 0x0000042c, 0x0501f877, 0x0501f070,
0x642c620b, 0x64006001, 0x64086004, 0x64206005,
0x42001000, 0x7ff38009, 0x50081000, 0x4808600c,
- 0x9030140c, 0x48086003, 0x4a00600d, 0x000090d5,
- 0x59a80011, 0x82000400, 0x0000047c, 0x0501f866,
+ 0x9030140c, 0x48086003, 0x4a00600d, 0x001090d5,
+ 0x59a80013, 0x82000400, 0x0000047c, 0x0501f866,
0x0501f05f, 0x6464620b, 0x64006001, 0x64046004,
- 0x64106005, 0x59a81092, 0x4808600c, 0x9030140c,
- 0x48086003, 0x59a80011, 0x82000400, 0x00000430,
+ 0x64106005, 0x59a81095, 0x4808600c, 0x9030140c,
+ 0x48086003, 0x59a80013, 0x82000400, 0x00000430,
0x0501f859, 0x0501f052, 0x6468620b, 0x64006001,
0x64046004, 0x64106005, 0x4808600c, 0x9030140c,
- 0x48086003, 0x59a80011, 0x82000400, 0x00000470,
+ 0x48086003, 0x59a80013, 0x82000400, 0x00000470,
0x0501f84d, 0x0501f046, 0x6410620b, 0x40301000,
0x60080000, 0x0501fa7a, 0x0501f041, 0x0501f042,
0x0501f041, 0x0501f040, 0x6440620b, 0x40301000,
0x60100000, 0x0501fa72, 0x0501f039, 0x40301000,
0x60440000, 0x0501fa25, 0x0501f035, 0x5830040b,
0x8c000518, 0x05000005, 0x40301000, 0x60000000,
- 0x0501fa3e, 0x0501f02e, 0x6403500f, 0x4a035010,
+ 0x0501fa3e, 0x0501f02e, 0x64035011, 0x4a035012,
0x000927c0, 0x40301000, 0x606c0000, 0x0501fa37,
0x0501f027, 0x0501f028, 0x0501f027, 0x5830040b,
0x8c00051e, 0x05000008, 0x8c000514, 0x05020003,
@@ -7820,64 +8124,64 @@ static const uint32_t isp_2500_risc_code[] = {
0x5830040b, 0x8c000518, 0x05fc075d, 0x40301000,
0x60000000, 0x0501fa11, 0x0501f001, 0x5c00b000,
0x1c01f000, 0x82000400, 0x00000100, 0x05fdff08,
- 0x05fdf7fb, 0x48006007, 0x59a80012, 0x90000440,
- 0x48006008, 0x40301000, 0x0001f021, 0x4803c856,
- 0x05e9f819, 0x050200bd, 0x42001000, 0x7ff38000,
+ 0x05fdf7fb, 0x48006007, 0x59a80014, 0x90000440,
+ 0x48006008, 0x40301000, 0x0001f029, 0x4803c856,
+ 0x05e5fcff, 0x050200bd, 0x42001000, 0x7ff38000,
0x50081000, 0x82081580, 0x4f434453, 0x601c0000,
0x050200b7, 0x42000800, 0x7ff38000, 0x42001000,
- 0xffffffff, 0x60402000, 0x05c5fe64, 0x60200000,
+ 0xffffffff, 0x60402000, 0x05c5f9d3, 0x60200000,
0x050200af, 0x42001000, 0x7ff38006, 0x50081000,
0x480bc857, 0x8c080500, 0x050000a0, 0x59e00802,
0x8c04051e, 0x0502009d, 0x42001000, 0x7ff38002,
- 0x50081000, 0x480b501d, 0x42001000, 0x7ff38003,
- 0x50081000, 0x480b501e, 0x42001000, 0x7ff38007,
- 0x50081000, 0x6040084e, 0x0501fd9c, 0x4807501c,
- 0x4807501b, 0x42001000, 0x7ff3800a, 0x50081000,
+ 0x50081000, 0x480b501f, 0x42001000, 0x7ff38003,
+ 0x50081000, 0x480b5020, 0x42001000, 0x7ff38007,
+ 0x50081000, 0x6040084e, 0x0501fd95, 0x4807501e,
+ 0x4807501d, 0x42001000, 0x7ff3800a, 0x50081000,
0x800800e0, 0x42001000, 0x7ff38009, 0x50081000,
- 0x82081500, 0x0000ffff, 0x80080540, 0x4803501f,
+ 0x82081500, 0x0000ffff, 0x80080540, 0x48035021,
0x42001000, 0x7ff38012, 0x50081000, 0x800811c0,
0x05000004, 0x82080580, 0xffffffff, 0x05020002,
- 0x61b81000, 0x480b5025, 0x42001000, 0x7ff3801a,
+ 0x61b81000, 0x480b5027, 0x42001000, 0x7ff3801a,
0x50081000, 0x800811c0, 0x05000004, 0x82080580,
- 0xffffffff, 0x05020002, 0x612c1000, 0x480b502d,
+ 0xffffffff, 0x05020002, 0x612c1000, 0x480b502f,
0x42001000, 0x7ff38022, 0x50081000, 0x800811c0,
0x05000004, 0x82080580, 0xffffffff, 0x05020002,
- 0x612c1000, 0x480b5035, 0x42001000, 0x7ff38013,
+ 0x612c1000, 0x480b5037, 0x42001000, 0x7ff38013,
0x50081000, 0x800811c0, 0x05000004, 0x82080580,
- 0xffffffff, 0x05020002, 0x61a41000, 0x480b5026,
+ 0xffffffff, 0x05020002, 0x61a41000, 0x480b5028,
0x42001000, 0x7ff3801b, 0x50081000, 0x800811c0,
0x05000004, 0x82080580, 0xffffffff, 0x05020002,
- 0x61181000, 0x480b502e, 0x42001000, 0x7ff38023,
+ 0x61181000, 0x480b5030, 0x42001000, 0x7ff38023,
0x50081000, 0x800811c0, 0x05000004, 0x82080580,
- 0xffffffff, 0x05020002, 0x61181000, 0x480b5036,
- 0x05e5ff98, 0x60240800, 0x42001000, 0x0010dc28,
+ 0xffffffff, 0x05020002, 0x61181000, 0x480b5038,
+ 0x05e5fc7e, 0x60240800, 0x42001000, 0x00111baa,
0x64801000, 0x60041800, 0x60002080, 0x60602801,
- 0x05e5ffda, 0x05000046, 0x64075023, 0x64075024,
- 0x64175227, 0x640f5427, 0x60340800, 0x42001000,
- 0x0010dc25, 0x60041800, 0x60002080, 0x60602801,
- 0x05e5ffce, 0x0500003a, 0x60640800, 0x42001000,
- 0x0010dc25, 0x60041800, 0x60002080, 0x60602801,
- 0x05e5ffc6, 0x05000032, 0x6407502b, 0x641f502c,
- 0x6417522f, 0x640f542f, 0x602c0800, 0x42001000,
- 0x0010dc2d, 0x60041800, 0x60002080, 0x60602801,
- 0x05e5ffba, 0x05000026, 0x60800800, 0x42001000,
- 0x0010dc2d, 0x60041800, 0x60002080, 0x60602801,
- 0x05e5ffb2, 0x0500001e, 0x64075033, 0x641f5034,
- 0x64175237, 0x640f5437, 0x60140800, 0x42001000,
- 0x0010dc35, 0x60041800, 0x60002080, 0x61602801,
- 0x05e5ffa6, 0x05000012, 0x60800800, 0x42001000,
- 0x0010dc35, 0x60041800, 0x60002080, 0x61602801,
- 0x05e5ff9e, 0x0500000a, 0x42001000, 0x7ff38006,
+ 0x05e5fcc0, 0x05000046, 0x64075025, 0x64075026,
+ 0x64175229, 0x640f5429, 0x60340800, 0x42001000,
+ 0x00111ba7, 0x60041800, 0x60002080, 0x60602801,
+ 0x05e5fcb4, 0x0500003a, 0x60640800, 0x42001000,
+ 0x00111ba7, 0x60041800, 0x60002080, 0x60602801,
+ 0x05e5fcac, 0x05000032, 0x6407502d, 0x641f502e,
+ 0x64175231, 0x640f5431, 0x602c0800, 0x42001000,
+ 0x00111baf, 0x60041800, 0x60002080, 0x60602801,
+ 0x05e5fca0, 0x05000026, 0x60800800, 0x42001000,
+ 0x00111baf, 0x60041800, 0x60002080, 0x60602801,
+ 0x05e5fc98, 0x0500001e, 0x64075035, 0x641f5036,
+ 0x64175239, 0x640f5439, 0x60140800, 0x42001000,
+ 0x00111bb7, 0x60041800, 0x60002080, 0x61602801,
+ 0x05e5fc8c, 0x05000012, 0x60800800, 0x42001000,
+ 0x00111bb7, 0x60041800, 0x60002080, 0x61602801,
+ 0x05e5fc84, 0x0500000a, 0x42001000, 0x7ff38006,
0x50081000, 0x90081503, 0x60240000, 0x05000004,
0x8c080502, 0x05020806, 0x1c01f000, 0x4803c857,
- 0x05fdfe3f, 0x497b501c, 0x05fdf7fc, 0x4803c856,
- 0x4c5c0000, 0x59a8b80e, 0x497b500f, 0x497b5010,
+ 0x05fdfe3f, 0x497b501e, 0x05fdf7fc, 0x4803c856,
+ 0x4c5c0000, 0x59a8b810, 0x497b5011, 0x497b5012,
0x6400ba0b, 0x4978b80b, 0x42001000, 0x7ff38004,
- 0x50081000, 0x480b5011, 0x42001000, 0x7ff38005,
- 0x50081000, 0x480b5012, 0x6400b801, 0x6430b804,
- 0x64c0b805, 0x4a00b803, 0x00107dd1, 0x59a80011,
- 0xb0000400, 0x4800b807, 0x59a80012, 0x90000440,
- 0x4800b808, 0x405c1000, 0x0001f821, 0x5c00b800,
+ 0x50081000, 0x480b5013, 0x42001000, 0x7ff38005,
+ 0x50081000, 0x480b5014, 0x6400b801, 0x6430b804,
+ 0x64c0b805, 0x4a00b803, 0x00108288, 0x59a80013,
+ 0xb0000400, 0x4800b807, 0x59a80014, 0x90000440,
+ 0x4800b808, 0x405c1000, 0x0001f829, 0x5c00b800,
0x1c01f000, 0x4803c856, 0x4c5c0000, 0x4c600000,
0x4c640000, 0x4c580000, 0x4200b800, 0x7ff48000,
0x4178c000, 0x0501f8b7, 0x8258b580, 0x00000082,
@@ -7886,23 +8190,23 @@ static const uint32_t isp_2500_risc_code[] = {
0x905804a8, 0x05000004, 0x05001003, 0x60a0b000,
0x0501f003, 0x80000580, 0x6420ca0b, 0x4c000000,
0x8060c000, 0x4c640000, 0x9064cc0e, 0x0501f8c1,
- 0x5c00c800, 0x42000000, 0x00107eb6, 0x50000000,
- 0x4800c80c, 0x42000000, 0x00107eb7, 0x50000000,
+ 0x5c00c800, 0x42000000, 0x0010836d, 0x50000000,
+ 0x4800c80c, 0x42000000, 0x0010836e, 0x50000000,
0x4800c80d, 0x9058b40b, 0x8258b500, 0xfffffffc,
0x6400c801, 0x4858c805, 0x80580104, 0x4800c804,
- 0x9064040c, 0x4800c803, 0x59a80011, 0x82000400,
- 0x000003d4, 0x4800c807, 0x59a80012, 0x90000440,
+ 0x9064040c, 0x4800c803, 0x59a80013, 0x82000400,
+ 0x000003d4, 0x4800c807, 0x59a80014, 0x90000440,
0x4800c808, 0x40641000, 0x4c5c0000, 0x4c600000,
- 0x0001f821, 0x5c00c000, 0x5c00b800, 0x5c000000,
+ 0x0001f829, 0x5c00c000, 0x5c00b800, 0x5c000000,
0x800001c0, 0x05000020, 0x9000ccb4, 0x05001002,
- 0x60c00000, 0x4000b000, 0x59a8c80d, 0x4c640000,
+ 0x60c00000, 0x4000b000, 0x59a8c80f, 0x4c640000,
0x9064cc0c, 0x0501f897, 0x5c00c800, 0x6420ca0b,
0x4858c805, 0x80580104, 0x4800c804, 0x9058b403,
0x8258b500, 0xfffffffc, 0x6400c801, 0x4858c805,
0x80580104, 0x4800c804, 0x9064040c, 0x4800c803,
- 0x59a80011, 0x82000400, 0x00000404, 0x4800c807,
- 0x59a80012, 0x90000440, 0x4800c808, 0x40641000,
- 0x0001f821, 0x90000541, 0x5c00b000, 0x5c00c800,
+ 0x59a80013, 0x82000400, 0x00000404, 0x4800c807,
+ 0x59a80014, 0x90000440, 0x4800c808, 0x40641000,
+ 0x0001f829, 0x90000541, 0x5c00b000, 0x5c00c800,
0x5c00c000, 0x5c00b800, 0x1c01f000, 0x4803c857,
0x05fdfdb7, 0x80000580, 0x05fdf7f8, 0x4803c856,
0x4c5c0000, 0x4c600000, 0x4c640000, 0x4c580000,
@@ -7921,9 +8225,9 @@ static const uint32_t isp_2500_risc_code[] = {
0x4c640000, 0x9064cc0c, 0x0501f83e, 0x5c00c800,
0x9058b403, 0x8258b500, 0xfffffffc, 0x6400c801,
0x4858c805, 0x80580104, 0x4800c804, 0x9064040c,
- 0x4800c803, 0x59a80011, 0x82000400, 0x0000041c,
- 0x4800c807, 0x59a80012, 0x90000440, 0x4800c808,
- 0x40641000, 0x0001f821, 0x90000541, 0x5c00b000,
+ 0x4800c803, 0x59a80013, 0x82000400, 0x0000041c,
+ 0x4800c807, 0x59a80014, 0x90000440, 0x4800c808,
+ 0x40641000, 0x0001f829, 0x90000541, 0x5c00b000,
0x5c00c800, 0x5c00c000, 0x5c00b800, 0x1c01f000,
0x4803c857, 0x05fdfd62, 0x80000580, 0x05fdf7f8,
0x485fc857, 0x4863c857, 0x505cb000, 0x40600000,
@@ -7946,1180 +8250,1184 @@ static const uint32_t isp_2500_risc_code[] = {
0x4c600000, 0x5808b802, 0x825cc580, 0x00000100,
0x05020015, 0x4800120b, 0x5808040b, 0x8400055c,
0x4800140b, 0x64041001, 0x64081004, 0x64201005,
- 0x9008040c, 0x48001003, 0x59a80011, 0x90000410,
- 0x48001007, 0x59a80012, 0x90000440, 0x48001008,
- 0x0001f821, 0x90000541, 0x5c00c000, 0x5c00b800,
+ 0x9008040c, 0x48001003, 0x59a80013, 0x90000410,
+ 0x48001007, 0x59a80014, 0x90000440, 0x48001008,
+ 0x0001f829, 0x90000541, 0x5c00c000, 0x5c00b800,
0x1c01f000, 0x60280000, 0x4803c857, 0x05fdfd00,
0x80000580, 0x05fdf7f9, 0x4803c857, 0x4c5c0000,
0x4c600000, 0x5808b802, 0x825cc580, 0x00000100,
0x0502001e, 0x4800120b, 0x800001c0, 0x05000003,
0x42000000, 0xffffffff, 0x4800100c, 0x800001c0,
0x05000004, 0x5808040b, 0x8400055a, 0x4800140b,
- 0x64001001, 0x64081004, 0x64201005, 0x59a80013,
- 0x4800100d, 0x9008040c, 0x48001003, 0x59a80011,
- 0x90000410, 0x48001007, 0x59a80012, 0x90000440,
- 0x48001008, 0x0001f821, 0x90000541, 0x5c00c000,
+ 0x64001001, 0x64081004, 0x64201005, 0x59a80015,
+ 0x4800100d, 0x9008040c, 0x48001003, 0x59a80013,
+ 0x90000410, 0x48001007, 0x59a80014, 0x90000440,
+ 0x48001008, 0x0001f829, 0x90000541, 0x5c00c000,
0x5c00b800, 0x1c01f000, 0x60280000, 0x4803c857,
0x05fdfcd7, 0x80000580, 0x05fdf7f9, 0x4803c857,
0x4c5c0000, 0x4c600000, 0x5808b802, 0x825cc580,
0x00000100, 0x05020012, 0x64001001, 0x64041004,
0x64101005, 0x4800100c, 0x9008040c, 0x48001003,
- 0x59a80011, 0xb000042c, 0x48001007, 0x59a80012,
- 0x90000440, 0x48001008, 0x0001f821, 0x90000541,
+ 0x59a80013, 0xb000042c, 0x48001007, 0x59a80014,
+ 0x90000440, 0x48001008, 0x0001f829, 0x90000541,
0x5c00c000, 0x5c00b800, 0x1c01f000, 0x60280000,
0x4803c857, 0x05fdfcba, 0x80000580, 0x05fdf7f9,
0x4833c857, 0x5830040b, 0x84000518, 0x8c00051c,
0x0500000e, 0x82000500, 0xffff3fff, 0x5830080c,
0x82040d80, 0xffffffff, 0x05020002, 0x8400055e,
0x5830080d, 0x8c040520, 0x05000004, 0x84000558,
- 0x84040d20, 0x48075013, 0x8c00051a, 0x05000003,
+ 0x84040d20, 0x48075015, 0x8c00051a, 0x05000003,
0x8400051a, 0x8400055e, 0x4800640b, 0x1c01f000,
0x4833c857, 0x4c5c0000, 0x4c580000, 0x4d2c0000,
- 0x05c5fd6e, 0x05000032, 0x492c600a, 0x645a5800,
+ 0x05c5f8e5, 0x05000032, 0x492c600a, 0x645a5800,
0x4178b800, 0x912cac02, 0x0501f84c, 0x4404a800,
0x8054a800, 0x8058b000, 0x805cb800, 0x80580580,
0x0500000a, 0x912c0418, 0x80540580, 0x05fe07f7,
- 0x4d2c0000, 0x05c5fd5d, 0x05000025, 0x5c000000,
+ 0x4d2c0000, 0x05c5f8d4, 0x05000025, 0x5c000000,
0x492c0001, 0x05fdf7ee, 0x485e5800, 0x5830000a,
0x58000000, 0x64006001, 0x48006004, 0x800000c4,
0x48006005, 0x5830000a, 0x90000402, 0x48006003,
- 0x59a80011, 0x82000400, 0x00000484, 0x90580d91,
- 0x0500000e, 0xb0000404, 0x90580da2, 0x05000003,
- 0x82000400, 0x00000088, 0x59e00802, 0x8c04051e,
- 0x05000006, 0x90580da2, 0x05020003, 0xb0000404,
- 0x0501f002, 0xb000041c, 0x05fdfd63, 0x5c025800,
+ 0x59a80013, 0x82000400, 0x00000484, 0x90580d91,
+ 0x0500000e, 0xb0000404, 0x90580d9b, 0x05000002,
+ 0xb0000410, 0x59e00802, 0x8c04051e, 0x05000007,
+ 0x90580d9b, 0x05020003, 0x90000428, 0x0501f003,
+ 0x82000400, 0x00000080, 0x05fdfd63, 0x5c025800,
0x5c00b000, 0x5c00b800, 0x1c01f000, 0x5c025800,
0x05fdf7de, 0x4833c857, 0x4d2c0000, 0x4c3c0000,
- 0x4c300000, 0x5832580a, 0x812e59c0, 0x05c40987,
- 0x592c7801, 0x483c600a, 0x05c5fd3c, 0x803c79c0,
+ 0x4c300000, 0x5832580a, 0x812e59c0, 0x05c00d02,
+ 0x592c7801, 0x483c600a, 0x05c5f8b3, 0x803c79c0,
0x0500000a, 0x903c0402, 0x48006003, 0x583c0000,
0x48006004, 0x800000c4, 0x48006005, 0x40301000,
- 0x0001f821, 0x90000541, 0x5c006000, 0x5c007800,
+ 0x0001f829, 0x90000541, 0x5c006000, 0x5c007800,
0x5c025800, 0x1c01f000, 0x485bc857, 0x4c5c0000,
- 0x40580000, 0x0c01f001, 0x00107ca3, 0x00107cb7,
- 0x00107cbb, 0x00107cbd, 0x00107cbf, 0x00107cc1,
- 0x00107cc3, 0x00107cc5, 0x00107cc9, 0x00107ccc,
- 0x00107ccf, 0x00107cd7, 0x00107ce6, 0x00107cf1,
- 0x00107cfc, 0x00107d01, 0x00107d0c, 0x00107ca3,
- 0x00107ca6, 0x00107d0f, 0x00107d5c, 0x00107d66,
- 0x00107d68, 0x00107d6e, 0x00107d72, 0x00107d76,
- 0x00107d7b, 0x00107d7d, 0x00107d7f, 0x00107d81,
- 0x00107d83, 0x00107d85, 0x00107d87, 0x00107d8f,
- 0x00107cad, 0x00107cb0, 0x00107d3b, 0x00107d50,
- 0x00107d52, 0x00107d54, 0x00107d56, 0x00107d58,
- 0x00107d5a, 0x00107d60, 0x00107d5e, 0x00107d64,
- 0x00107d62, 0x00107d42, 0x00107d6c, 0x00107d6e,
- 0x00107d72, 0x00107da4, 0x00107da7, 0x00107da9,
- 0x00107dab, 0x00107dad, 0x00107daf, 0x42000800,
- 0x44504f4c, 0x0501f10f, 0x60100800, 0x59e00002,
- 0x8c00051e, 0x0500010b, 0x82040d40, 0x00000100,
- 0x0501f108, 0x42000800, 0x44504f4c, 0x0501f103,
- 0x60180800, 0x59e00002, 0x8c00051e, 0x050000ff,
- 0x82040d40, 0x00000100, 0x0501f0fc, 0x600c0802,
- 0x0501f055, 0x50040800, 0x0501f053, 0x59a80814,
- 0x0501f051, 0x59a80815, 0x0501f04f, 0x59a80816,
- 0x0501f04d, 0x59a80817, 0x0501f04b, 0x59a80818,
- 0x0501f049, 0x59a80819, 0x0501f047, 0x302e3730,
- 0x30302e33, 0x42000800, 0x00107cc7, 0x05fdf7ee,
- 0x42000800, 0x00107cc8, 0x05fdf7eb, 0x42000000,
- 0x7ff0000d, 0x50000000, 0x80000130, 0x0501f8e4,
- 0x9c0001c0, 0x40000800, 0x0501f037, 0x42000000,
- 0x7ff0000d, 0x50000000, 0x80000120, 0x0501f8dc,
- 0x82000500, 0x00ffffff, 0x82000540, 0x2e000000,
- 0x9c0001c0, 0x05fdf7f4, 0x32333532, 0x31303030,
- 0x32333532, 0x32303030, 0x60000020, 0x50000000,
- 0x82000480, 0x25320001, 0x05020004, 0x42000800,
- 0x00107ce2, 0x05fdf7cc, 0x42000800, 0x00107ce4,
- 0x05fdf7c9, 0x60000020, 0x50000000, 0x82000480,
- 0x25320001, 0x05020004, 0x42000800, 0x00107ce3,
- 0x05fdf7c1, 0x42000800, 0x00107ce5, 0x05fdf7be,
- 0x60c80800, 0x61900000, 0x800000e0, 0x80040d40,
- 0x0501f00d, 0x59a8005a, 0x800001c0, 0x05020002,
- 0x6140000f, 0x59a8085b, 0x800409c0, 0x05020002,
- 0x6140080f, 0x800408e0, 0x80040d40, 0x0501f002,
- 0x41780800, 0x60440000, 0x0501f0a7, 0x60080800,
- 0x916c0583, 0x0502000e, 0x59a80249, 0x8c000502,
- 0x05000004, 0x82040d40, 0x00000300, 0x0501f008,
- 0x8c000508, 0x05000004, 0x82040d40, 0x00000200,
- 0x0501f003, 0x82040d40, 0x00000100, 0x82040d40,
- 0x00080000, 0x59c40001, 0x82000500, 0x00018000,
- 0x9000bd80, 0x05020004, 0x82040d40, 0x01000000,
- 0x0501f08c, 0x8200bd80, 0x00008000, 0x05020004,
- 0x82040d40, 0x02000000, 0x0501f086, 0x8200bd80,
- 0x00010000, 0x05020004, 0x82040d40, 0x04000000,
- 0x0501f080, 0x8200bd80, 0x00018000, 0x0502007d,
- 0x82040d40, 0x08000000, 0x0501f07a, 0x60100800,
- 0x59e00002, 0x8c00051e, 0x05000003, 0x82040d40,
- 0x00010000, 0x0501f071, 0x41780800, 0x916c0583,
- 0x0502006e, 0x59a80249, 0x8c000502, 0x05000003,
- 0x90040d43, 0x0501f069, 0x8c000508, 0x05000003,
- 0x90040d42, 0x0501f065, 0x90040d41, 0x0501f063,
- 0x59a80814, 0x0501f061, 0x59a80815, 0x0501f05f,
- 0x59a80816, 0x0501f05d, 0x59a80817, 0x0501f05b,
- 0x59a80818, 0x0501f059, 0x59a80819, 0x0501f057,
- 0x59a8083d, 0x0501f057, 0x59a80800, 0x0501f053,
- 0x59a80801, 0x0501f051, 0x59a80802, 0x0501f04f,
- 0x59a80803, 0x0501f04d, 0x59880823, 0x0501f04d,
- 0x59880129, 0x5988092a, 0x80040c00, 0x0501f049,
- 0x599c0a09, 0x0501f045, 0x59c408b1, 0x59a800a9,
- 0x80040c00, 0x0501f043, 0x59c408b2, 0x59a800aa,
- 0x80040c00, 0x0501f03f, 0x60040800, 0x916c0583,
- 0x0502003c, 0x84040d42, 0x0501f03a, 0x59880800,
- 0x0501f038, 0x59880805, 0x0501f036, 0x59880801,
- 0x0501f034, 0x59880802, 0x0501f032, 0x59880803,
- 0x0501f030, 0x598808c5, 0x0501f02e, 0x59880081,
- 0x59880882, 0x80040c00, 0x59880083, 0x80040c00,
- 0x59880084, 0x80040c00, 0x0501f026, 0x59880826,
- 0x82040d00, 0x000000ff, 0x59880027, 0x82000500,
- 0x000000ff, 0x800000d0, 0x80040d40, 0x4c040000,
- 0x59880019, 0x5988081a, 0x80040400, 0x82000500,
- 0x000000ff, 0x800000e0, 0x5c000800, 0x80040d40,
- 0x59880025, 0x800000f0, 0x80040d40, 0x0501f011,
- 0x0529fb5b, 0x610008f4, 0x0501f00b, 0x610408f4,
- 0x0501f009, 0x610808f4, 0x0501f007, 0x611008f4,
- 0x0501f005, 0x611408f4, 0x0501f003, 0x611808f4,
- 0x64030000, 0x50040800, 0x60e40000, 0x0501f002,
- 0x60880000, 0x5c00b800, 0x1c01f000, 0x4803c857,
- 0x4c5c0000, 0x4c600000, 0x82000500, 0x000000ff,
- 0x4000b800, 0x4178c000, 0x905c048a, 0x0500100c,
- 0x4000b800, 0x8260c400, 0x00000100, 0x82600500,
- 0x0000ff00, 0x82000580, 0x00000a00, 0x05020003,
- 0x8260c400, 0x0000f600, 0x05fdf7f4, 0x805c0418,
- 0x82000400, 0x30303030, 0x5c00c000, 0x5c00b800,
- 0x1c01f000, 0x00000030, 0x00000000, 0x00000000,
- 0x000000f4, 0x00000394, 0x00000000, 0x00000000,
- 0x00000444, 0x3c000000, 0x00000505, 0x00000707,
- 0x00000000, 0x44435442, 0x000d0101, 0x00006283,
- 0x52504010, 0x414e444f, 0x6283454d, 0x10100100,
- 0x4c524553, 0x004d554e, 0x02006283, 0x43500220,
- 0x00444949, 0x62830000, 0x02200300, 0x44494350,
- 0x00004449, 0x04006283, 0x43500220, 0x56535349,
- 0x62834449, 0x02200500, 0x53494350, 0x44494453,
- 0x06006283, 0x57463c10, 0x4e4e4142, 0x62835245,
- 0x04200700, 0x4f504346, 0x00535452, 0x08006283,
- 0x554e0420, 0x4e55464d, 0x62830043, 0x02200b00,
- 0x50514d56, 0x54524f50, 0x0c006283, 0x4d560220,
- 0x46505051, 0x62832020, 0x04201300, 0x45494350,
- 0x52424e42, 0xe0006283, 0x57460420, 0x52545441,
- 0x00004249, 0x00000000, 0x44504f4c, 0x00090103,
- 0x12004683, 0x45441810, 0x56524456, 0x46835256,
- 0x08101300, 0x46564544, 0x00525657, 0x14004683,
- 0x45440810, 0x4f494256, 0x46835256, 0x08101500,
- 0x48564544, 0x00525657, 0x16004684, 0x43530220,
- 0x4f544953, 0x46840056, 0x02201700, 0x4f545452,
- 0x00000056, 0x18004684, 0x41520220, 0x00564f54,
- 0x46840000, 0x02201900, 0x4f544445, 0x00000056,
- 0x1a004684, 0x52430420, 0x00564f54, 0x00000000,
- 0x00000000, 0x44504f4c, 0x00150204, 0x00004883,
- 0x4f500120, 0x59545452, 0x48834550, 0x01200100,
- 0x54524f50, 0x54415453, 0x03004883, 0x55530120,
- 0x54525050, 0x48835053, 0x01200400, 0x5250474e,
- 0x44505354, 0x05004883, 0x504e0420, 0x4954524f,
- 0x48830044, 0x04200d00, 0x52445852, 0x0053504f,
- 0x11004883, 0x58540420, 0x4f525245, 0x48845352,
- 0x04201300, 0x52465852, 0x53454d41, 0x15004884,
- 0x58540420, 0x4d415246, 0x48835345, 0x04201700,
- 0x4b4e494c, 0x54415453, 0x21004884, 0x494c0420,
- 0x52454b4e, 0x48840052, 0x04202200, 0x45435243,
- 0x00005252, 0x2d004884, 0x4f4c0420, 0x454e5953,
- 0x48845252, 0x04202e00, 0x49534f4c, 0x52524547,
- 0x2f004884, 0x52500420, 0x52454d49, 0x48840052,
- 0x04206f00, 0x4f474f4c, 0x00564352, 0x80004884,
- 0x53520420, 0x43524e43, 0x48840056, 0x01208900,
- 0x52534f4e, 0x54435643, 0x8a004884, 0x4c4f0120,
- 0x554f4353, 0x4884544e, 0x01208b00, 0x4f43524c,
- 0x00544e55, 0x8e004884, 0x494c0120, 0x56435250,
- 0x00005443, 0x00000000, 0x44504f4c, 0x000f0206,
- 0x00004c83, 0x55460220, 0x5954434e, 0x4c834550,
- 0x02200100, 0x434e5546, 0x00004449, 0x02004c83,
- 0x55461810, 0x4556434e, 0x4c835352, 0x08200800,
- 0x4e4e5757, 0x00454d41, 0x09004c83, 0x57570820,
- 0x4d414e50, 0x4c830045, 0x04200b00, 0x54524f50,
- 0x54415453, 0x0d004c84, 0x43460420, 0x51585245,
- 0x4c845a53, 0x04201000, 0x52454346, 0x4d524658,
- 0x12004c84, 0x43460420, 0x46585445, 0x4c834d52,
- 0x04201600, 0x52524550, 0x00504143, 0x17004c83,
- 0x45500420, 0x4e555252, 0x4c834543, 0x04201800,
- 0x524f4350, 0x4b414d55, 0x19004c83, 0x45500420,
- 0x45435252, 0x4c835252, 0x04201a00, 0x524f4350,
- 0x4b53414d, 0x1b004c83, 0x45500420, 0x52415252,
- 0x00005243, 0x00000000, 0x44435442, 0x00000001,
- 0x25321077, 0x338e103c, 0x474f4c51, 0x43204349,
- 0x4f50524f, 0x49544152, 0x20204e4f, 0x50534920,
- 0x78783532, 0x72694620, 0x7261776d, 0x20202065,
- 0x73726556, 0x206e6f69, 0x2e372020, 0x302e3330,
- 0x00202030, 0x00000002, 0x00000001, 0x01000100,
- 0x05e5fa53, 0x05020005, 0x4803c856, 0x05d1fa9f,
- 0x05d1fadd, 0x05d1fabe, 0x1c01f000, 0x59a8083b,
- 0x59a8029c, 0x80040480, 0x599c0a02, 0x800409c0,
- 0x05020002, 0x80040800, 0x80041480, 0x05001002,
- 0x40000800, 0x4807509a, 0x59a8103b, 0x40040000,
- 0x800acc80, 0x4967503b, 0x4967509b, 0x59aaa80b,
- 0x41640800, 0x60c01000, 0x0501f88c, 0x8206a400,
- 0x00111b00, 0x49535097, 0x4152b000, 0x0529fa48,
- 0x0500001f, 0x496752dd, 0x599c041e, 0x4803c857,
- 0x59a8089a, 0x4807c857, 0x80041480, 0x05021009,
- 0x497b509a, 0x49575097, 0x4152a800, 0x81640c00,
- 0x4807c857, 0x480754dd, 0x80040800, 0x0501f00d,
- 0x480bc857, 0x480b509a, 0x81640c00, 0x4807c857,
- 0x480754dd, 0x80040800, 0x60c01000, 0x0501f86f,
- 0x4807c857, 0x8206a400, 0x00111b00, 0x49535097,
- 0x4953c857, 0x4a0370e4, 0x30000000, 0x42006000,
- 0x00110278, 0x4a006008, 0x0000012c, 0x4a006009,
- 0xda10da10, 0x6454600c, 0x4a00600d, 0x00110278,
- 0x4a00600e, 0x001012a7, 0x599c0014, 0x48006015,
- 0x599c0015, 0x48006016, 0x42006000, 0x00111a10,
- 0x64206203, 0x64186407, 0x4a006002, 0xffff0000,
- 0x4a006009, 0x00110278, 0x4a006016, 0x00110278,
- 0x599c0014, 0x48006017, 0x599c0015, 0x48006018,
- 0x599c0413, 0x48006019, 0x4950601a, 0x4954601b,
- 0x59a8009a, 0x4800601c, 0x4a00601d, 0x0010dc97,
- 0x59a802dd, 0x48006020, 0x59a804dd, 0x48006021,
- 0x42000000, 0x00111ad0, 0x48006022, 0x42000000,
- 0x00110228, 0x48006023, 0x4a00601e, 0x0010dc98,
- 0x4a00601f, 0x0010dc99, 0x42000000, 0xb0000000,
- 0x42000800, 0x00111a10, 0x0001f93a, 0x1c01f000,
+ 0x40580000, 0x0c01f001, 0x00108165, 0x00108179,
+ 0x0010817d, 0x0010817f, 0x00108181, 0x00108183,
+ 0x00108185, 0x00108187, 0x0010818b, 0x0010818e,
+ 0x00108191, 0x00108199, 0x001081a8, 0x001081b3,
+ 0x001081be, 0x001081c3, 0x001081ce, 0x00108165,
+ 0x00108168, 0x001081d1, 0x00108219, 0x0010821b,
+ 0x00108221, 0x00108225, 0x00108229, 0x001081ec,
+ 0x0010820f, 0x0010816f, 0x00108172, 0x001081ee,
+ 0x00108203, 0x00108205, 0x00108207, 0x00108209,
+ 0x0010820b, 0x0010820d, 0x00108213, 0x00108211,
+ 0x00108217, 0x00108215, 0x001081f5, 0x0010821f,
+ 0x00108221, 0x00108225, 0x00108259, 0x0010825c,
+ 0x0010825e, 0x00108260, 0x00108262, 0x00108264,
+ 0x0010822e, 0x00108230, 0x00108232, 0x00108234,
+ 0x00108236, 0x00108238, 0x0010823a, 0x0010823c,
+ 0x00108244, 0x42000800, 0x44504f4c, 0x0501f104,
+ 0x60100800, 0x59e00002, 0x8c00051e, 0x05000100,
+ 0x82040d40, 0x00000100, 0x0501f0fd, 0x42000800,
+ 0x44504f4c, 0x0501f0f8, 0x60180800, 0x59e00002,
+ 0x8c00051e, 0x050000f4, 0x82040d40, 0x00000100,
+ 0x0501f0f1, 0x600c0802, 0x0501f055, 0x50040800,
+ 0x0501f053, 0x59a80816, 0x0501f051, 0x59a80817,
+ 0x0501f04f, 0x59a80818, 0x0501f04d, 0x59a80819,
+ 0x0501f04b, 0x59a8081a, 0x0501f049, 0x59a8081b,
+ 0x0501f047, 0x302e3830, 0x30302e33, 0x42000800,
+ 0x00108189, 0x05fdf7ee, 0x42000800, 0x0010818a,
+ 0x05fdf7eb, 0x42000000, 0x7ff0000d, 0x50000000,
+ 0x80000130, 0x0501f8d9, 0x9c0001c0, 0x40000800,
+ 0x0501f037, 0x42000000, 0x7ff0000d, 0x50000000,
+ 0x80000120, 0x0501f8d1, 0x82000500, 0x00ffffff,
+ 0x82000540, 0x2e000000, 0x9c0001c0, 0x05fdf7f4,
+ 0x32333532, 0x31303030, 0x32333532, 0x32303030,
+ 0x60000020, 0x50000000, 0x82000480, 0x25320001,
+ 0x05020004, 0x42000800, 0x001081a4, 0x05fdf7cc,
+ 0x42000800, 0x001081a6, 0x05fdf7c9, 0x60000020,
+ 0x50000000, 0x82000480, 0x25320001, 0x05020004,
+ 0x42000800, 0x001081a5, 0x05fdf7c1, 0x42000800,
+ 0x001081a7, 0x05fdf7be, 0x60c80800, 0x61900000,
+ 0x800000e0, 0x80040d40, 0x0501f00d, 0x59a8005d,
+ 0x800001c0, 0x05020002, 0x6140000f, 0x59a8085e,
+ 0x800409c0, 0x05020002, 0x6140080f, 0x800408e0,
+ 0x80040d40, 0x0501f002, 0x41780800, 0x60440000,
+ 0x0501f09c, 0x60080800, 0x59c40001, 0x82000500,
+ 0x00018000, 0x9000bd80, 0x05020004, 0x82040d40,
+ 0x000a0000, 0x0501f092, 0x8200bd80, 0x00008000,
+ 0x05020004, 0x82040d40, 0x00140000, 0x0501f08c,
+ 0x8200bd80, 0x00010000, 0x05020004, 0x82040d40,
+ 0x00280000, 0x0501f086, 0x8200bd80, 0x00018000,
+ 0x05020083, 0x82040d40, 0x00500000, 0x0501f080,
+ 0x61400800, 0x0501f07e, 0x60100800, 0x59e00002,
+ 0x8c00051e, 0x05000003, 0x82040d40, 0x00010000,
+ 0x0501f075, 0x41780800, 0x916c0583, 0x05020072,
+ 0x59a8024c, 0x8c000502, 0x05000003, 0x90040d43,
+ 0x0501f06d, 0x8c000508, 0x05000003, 0x90040d42,
+ 0x0501f069, 0x90040d41, 0x0501f067, 0x59a80816,
+ 0x0501f065, 0x59a80817, 0x0501f063, 0x59a80818,
+ 0x0501f061, 0x59a80819, 0x0501f05f, 0x59a8081a,
+ 0x0501f05d, 0x59a8081b, 0x0501f05b, 0x59a80840,
+ 0x0501f05b, 0x59a80800, 0x0501f057, 0x59a80801,
+ 0x0501f055, 0x59a80802, 0x0501f053, 0x59a80803,
+ 0x0501f051, 0x59880823, 0x0501f051, 0x5988012c,
+ 0x5988092d, 0x80040c00, 0x0501f04d, 0x599c0a09,
+ 0x0501f049, 0x59c408b1, 0x59a800ae, 0x80040c00,
+ 0x0501f047, 0x59c408b2, 0x59a800af, 0x80040c00,
+ 0x0501f043, 0x60040800, 0x916c0583, 0x05020040,
+ 0x84040d42, 0x0501f03e, 0x59880800, 0x0501f03a,
+ 0x59880805, 0x0501f038, 0x59880801, 0x0501f036,
+ 0x59880802, 0x0501f034, 0x59880803, 0x0501f032,
+ 0x59880927, 0x0501f030, 0x598808c8, 0x0501f02e,
+ 0x59880081, 0x59880882, 0x80040c00, 0x59880083,
+ 0x80040c00, 0x59880084, 0x80040c00, 0x0501f026,
+ 0x59880826, 0x82040d00, 0x000000ff, 0x59880027,
+ 0x82000500, 0x000000ff, 0x800000d0, 0x80040d40,
+ 0x4c040000, 0x59880019, 0x5988081a, 0x80040400,
+ 0x82000500, 0x000000ff, 0x800000e0, 0x5c000800,
+ 0x80040d40, 0x59880025, 0x800000f0, 0x80040d40,
+ 0x0501f011, 0x0529fe21, 0x610008f4, 0x0501f00d,
+ 0x610408f4, 0x0501f00b, 0x610808f4, 0x0501f009,
+ 0x611008f4, 0x0501f007, 0x611408f4, 0x0501f005,
+ 0x611808f4, 0x50040800, 0x64030000, 0x0501f002,
+ 0x50040800, 0x60ec0000, 0x0501f002, 0x606c0000,
+ 0x5c00b800, 0x1c01f000, 0x4803c857, 0x4c5c0000,
+ 0x4c600000, 0x82000500, 0x000000ff, 0x4000b800,
+ 0x4178c000, 0x905c048a, 0x0500100c, 0x4000b800,
+ 0x8260c400, 0x00000100, 0x82600500, 0x0000ff00,
+ 0x82000580, 0x00000a00, 0x05020003, 0x8260c400,
+ 0x0000f600, 0x05fdf7f4, 0x805c0418, 0x82000400,
+ 0x30303030, 0x5c00c000, 0x5c00b800, 0x1c01f000,
+ 0x00000030, 0x00000000, 0x00000000, 0x000000f4,
+ 0x00000394, 0x00000000, 0x00000000, 0x00000444,
+ 0x3c000000, 0x00000505, 0x00000707, 0x00000000,
+ 0x44435442, 0x000d0101, 0x00006283, 0x52504010,
+ 0x414e444f, 0x6283454d, 0x10100100, 0x4c524553,
+ 0x004d554e, 0x02006283, 0x43500220, 0x00444949,
+ 0x62830000, 0x02200300, 0x44494350, 0x00004449,
+ 0x04006283, 0x43500220, 0x56535349, 0x62834449,
+ 0x02200500, 0x53494350, 0x44494453, 0x06006283,
+ 0x57463c10, 0x4e4e4142, 0x62835245, 0x04200700,
+ 0x454d554e, 0x54524f50, 0x08006283, 0x554e0420,
+ 0x4e55464d, 0x62830043, 0x02200b00, 0x50514d56,
+ 0x54524f50, 0x0c006283, 0x4d560220, 0x46505051,
+ 0x62832020, 0x04201300, 0x45494350, 0x52424e42,
+ 0xe0006283, 0x57460420, 0x52545441, 0x00004249,
+ 0x00000000, 0x44504f4c, 0x00090103, 0x12004683,
+ 0x45441810, 0x56524456, 0x46835256, 0x08101300,
+ 0x46564544, 0x00525657, 0x14004683, 0x45440810,
+ 0x4f494256, 0x46835256, 0x08101500, 0x48564544,
+ 0x00525657, 0x16004684, 0x43530220, 0x4f544953,
+ 0x46840056, 0x02201700, 0x4f545452, 0x00000056,
+ 0x18004684, 0x41520220, 0x00564f54, 0x46840000,
+ 0x02201900, 0x4f544445, 0x00000056, 0x1a004684,
+ 0x52430420, 0x00564f54, 0x00000000, 0x00000000,
+ 0x44504f4c, 0x00090204, 0x00004883, 0x4f500220,
+ 0x59545452, 0x48834550, 0x02200200, 0x54524f50,
+ 0x44455053, 0x06004883, 0x58520420, 0x504f5244,
+ 0x48830053, 0x04200e00, 0x52455854, 0x53524f52,
+ 0x10004884, 0x58520420, 0x4d415246, 0x48845345,
+ 0x04201200, 0x52465854, 0x53454d41, 0x16004883,
+ 0x494c0420, 0x54534b4e, 0x48835441, 0x04201a00,
+ 0x50505553, 0x50535452, 0x1b004883, 0x504e0420,
+ 0x4954524f, 0x00000044, 0x00000000, 0x44504f4c,
+ 0x001b0206, 0x00004c83, 0x55460220, 0x5954434e,
+ 0x4c834550, 0x02200100, 0x434e5546, 0x00004449,
+ 0x02004c83, 0x55461810, 0x4556434e, 0x4c835352,
+ 0x08200800, 0x4e4e5757, 0x00454d41, 0x09004c83,
+ 0x57570820, 0x4d414e50, 0x4c830045, 0x04200b00,
+ 0x54524f50, 0x54415453, 0x0d004c84, 0x43460420,
+ 0x51585245, 0x4c845a53, 0x04201000, 0x52454346,
+ 0x4d524658, 0x12004c84, 0x43460420, 0x46585445,
+ 0x4c834d52, 0x04201600, 0x52524550, 0x00504143,
+ 0x17004c83, 0x45500420, 0x4e555252, 0x4c834543,
+ 0x04201800, 0x524f4350, 0x4b414d55, 0x19004c83,
+ 0x45500420, 0x45435252, 0x4c835252, 0x04201a00,
+ 0x524f4350, 0x4b53414d, 0x1b004c83, 0x45500420,
+ 0x52415252, 0x4c845243, 0x04202500, 0x4b4e494c,
+ 0x00525245, 0x26004c84, 0x52430420, 0x52524543,
+ 0x4c840000, 0x04203100, 0x59534f4c, 0x5252454e,
+ 0x32004c84, 0x4f4c0420, 0x45474953, 0x4c845252,
+ 0x04203300, 0x4d495250, 0x00525245, 0x34004c84,
+ 0x49440420, 0x52455053, 0x48840052, 0x04206f00,
+ 0x4f474f4c, 0x00564352, 0x80004c84, 0x53520420,
+ 0x43524e43, 0x4c840056, 0x01208900, 0x52534f4e,
+ 0x54435643, 0x8a004c84, 0x4c4f0120, 0x554f4353,
+ 0x4c84544e, 0x01208b00, 0x4f43524c, 0x00544e55,
+ 0x8e004c84, 0x494c0120, 0x56435250, 0x00005443,
+ 0x00000000, 0x44435442, 0x00000001, 0x25321077,
+ 0x338e103c, 0x474f4c51, 0x43204349, 0x4f50524f,
+ 0x49544152, 0x20204e4f, 0x50534920, 0x78783532,
+ 0x72694620, 0x7261776d, 0x20202065, 0x73726556,
+ 0x206e6f69, 0x2e382020, 0x302e3330, 0x00202030,
+ 0x00000002, 0x00000001, 0x01000100, 0x05e1ff42,
+ 0x05020005, 0x4803c856, 0x05cdfe68, 0x05cdfea6,
+ 0x05cdfe87, 0x1c01f000, 0x59a8043e, 0x599c0a02,
+ 0x800409c0, 0x05020002, 0x80040800, 0x80041480,
+ 0x05001002, 0x40000800, 0x4807509d, 0x59a8103d,
+ 0x40040000, 0x800acc80, 0x4967503d, 0x4967509e,
+ 0x59a8143e, 0x80081480, 0x480b543e, 0x59aaa80b,
+ 0x41640800, 0x60c01000, 0x0501f88d, 0x8006a42f,
+ 0x4953509a, 0x4152b000, 0x0529fd0c, 0x0500001e,
+ 0x496752e2, 0x599c041e, 0x4803c857, 0x59a8089d,
+ 0x4807c857, 0x80041480, 0x05021009, 0x497b509d,
+ 0x4957509a, 0x4152a800, 0x81640c00, 0x4807c857,
+ 0x480754e2, 0x80040800, 0x0501f00c, 0x480bc857,
+ 0x480b509d, 0x81640c00, 0x4807c857, 0x480754e2,
+ 0x80040800, 0x60c01000, 0x0501f871, 0x4807c857,
+ 0x8006a42f, 0x4953509a, 0x4953c857, 0x4a0370e4,
+ 0x30000000, 0x42006000, 0x0011421c, 0x4a006008,
+ 0x0000012c, 0x4a006009, 0xda10da10, 0x6454600c,
+ 0x4a00600d, 0x0011421c, 0x4a00600e, 0x00100046,
+ 0x599c0014, 0x48006015, 0x599c0015, 0x48006016,
+ 0x42006000, 0x001159b4, 0x64206203, 0x64186407,
+ 0x4a006002, 0xffff0000, 0x4a006009, 0x0011421c,
+ 0x4a006016, 0x0011421c, 0x599c0014, 0x48006017,
+ 0x599c0015, 0x48006018, 0x599c0413, 0x48006019,
+ 0x4950601a, 0x4954601b, 0x59a8009d, 0x4800601c,
+ 0x59a802e2, 0x48006020, 0x59a804e2, 0x48006021,
+ 0x42000000, 0x00115a74, 0x48006022, 0x42000000,
+ 0x001141cc, 0x48006023, 0x4a00601e, 0x00111c1b,
+ 0x4a00601f, 0x00111c1c, 0x42000000, 0xb0000000,
+ 0x42000800, 0x001159b4, 0x0001f942, 0x1c01f000,
0x4807c856, 0x59240206, 0x800409c0, 0x05000003,
0x80080540, 0x0501f002, 0x80080500, 0x48024a06,
- 0x1c01f000, 0x492e6017, 0x4d2c0000, 0x05c5fa33,
+ 0x1c01f000, 0x492e6017, 0x4d2c0000, 0x05c1fdb6,
0x0500000c, 0x4c500000, 0x4c540000, 0x4c580000,
- 0x412ca800, 0x5930a017, 0x6060b000, 0x0529f950,
+ 0x412ca800, 0x5930a017, 0x6060b000, 0x0529fc17,
0x492e6017, 0x5c00b000, 0x5c00a800, 0x5c00a000,
0x5c025800, 0x59300202, 0x48025a10, 0x4932580d,
- 0x1c01f000, 0x4803c856, 0x4c000000, 0x05f9f96b,
- 0x0502000b, 0x05e9fdaf, 0x05c20e74, 0x5c000000,
- 0x48026802, 0x0509fc9a, 0x05000006, 0x4936600a,
- 0x64066407, 0x60067000, 0x0009f000, 0x5c000000,
- 0x1c01f000, 0x05c1fe69, 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, 0x4c0c0000, 0x4c580000,
- 0x6080b000, 0x80000540, 0x05000019, 0x80041c80,
- 0x05021017, 0x800810c2, 0x80040982, 0x05001006,
- 0x80041c80, 0x05021005, 0x8058b040, 0x05fe07fa,
- 0x0501f006, 0x80041c80, 0x400c0800, 0x80081000,
- 0x8058b040, 0x05fe07f4, 0x4c000000, 0x41f00000,
- 0x82000500, 0xf7ffffff, 0x4003e000, 0x5c000000,
- 0x5c00b000, 0x5c001800, 0x1c01f000, 0x4c000000,
- 0x41f00000, 0x82000540, 0x08000000, 0x05fdf7f7,
- 0x42007000, 0x0010e060, 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, 0x0010e32d,
- 0x42001800, 0x0011178d, 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, 0x4a001009, 0x00020f77,
- 0x480c100b, 0x4810100d, 0x4814100e, 0x4978120f,
- 0x4804140f, 0x49781010, 0x820c1c00, 0x00000080,
- 0x480c100c, 0x90081412, 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,
- 0x0010d17b, 0x6000b001, 0x90d4ac00, 0x4178a000,
- 0x0529f893, 0x4a01a81d, 0x001012a3, 0x4a01a81b,
- 0x001012ac, 0x4a01a81c, 0x001012bc, 0x4a01a81e,
- 0x0010e2ff, 0x64031800, 0x600c0800, 0x42001800,
- 0x0010e302, 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, 0x4a03781b,
- 0x001012ac, 0x4a03781c, 0x001012bc, 0x4a03781d,
- 0x0010e063, 0x4a03781e, 0x0010e06a, 0x42000800,
- 0x0010e302, 0x417a3000, 0x42001000, 0x0011178d,
- 0x8119b0c8, 0x82d9b400, 0x0000bf32, 0x83180400,
- 0x00108a67, 0x50000000, 0x4801b002, 0x4809b000,
- 0x4809b001, 0x82081400, 0x00000080, 0x90040c05,
- 0x811a3000, 0x91180485, 0x05fc17f2, 0x5c023000,
- 0x5c01b000, 0x1c01f000, 0x4933c857, 0x42000800,
- 0x8000004e, 0x59300416, 0x8c000510, 0x05000002,
- 0x84040d52, 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,
- 0x0501fc8f, 0x4df00000, 0x4d300000, 0x4d340000,
- 0x4d2c0000, 0x4d180000, 0x4c5c0000, 0x4c600000,
+ 0x1c01f000, 0x4803c856, 0x4c000000, 0x05f9f863,
+ 0x05020010, 0x05e9fb16, 0x05c209fb, 0x5c000000,
+ 0x48026802, 0x0509fcfb, 0x0500000b, 0x42000000,
+ 0x0011247c, 0x0529fb36, 0x4936600a, 0x64066407,
+ 0x602c0800, 0x05e9fadb, 0x60067000, 0x0009f039,
+ 0x5c000000, 0x1c01f000, 0x05c1f9eb, 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, 0x4c0c0000,
+ 0x4c580000, 0x6080b000, 0x80000540, 0x05000019,
+ 0x80041c80, 0x05021017, 0x800810c2, 0x80040982,
+ 0x05001006, 0x80041c80, 0x05021005, 0x8058b040,
+ 0x05fe07fa, 0x0501f006, 0x80041c80, 0x400c0800,
+ 0x80081000, 0x8058b040, 0x05fe07f4, 0x4c000000,
+ 0x41f00000, 0x82000500, 0xf7ffffff, 0x4003e000,
+ 0x5c000000, 0x5c00b000, 0x5c001800, 0x1c01f000,
+ 0x4c000000, 0x41f00000, 0x82000540, 0x08000000,
+ 0x05fdf7f7, 0x42007000, 0x00111ffa, 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,
+ 0x001122c8, 0x42001800, 0x00115731, 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, 0x4a001009,
+ 0x00020fae, 0x480c100b, 0x4810100d, 0x4814100e,
+ 0x4978120f, 0x4804140f, 0x49781010, 0x820c1c00,
+ 0x00000080, 0x480c100c, 0x90081412, 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, 0x0010d8f9, 0x6000b001, 0x90d4ac00,
+ 0x4178a000, 0x0529fb55, 0x4a01a81d, 0x00100042,
+ 0x4a01a81b, 0x0010004b, 0x4a01a81c, 0x0010005b,
+ 0x4a01a81e, 0x00112299, 0x64031800, 0x600c0800,
+ 0x42001800, 0x0011229c, 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,
+ 0x4a03781b, 0x0010004b, 0x4a03781c, 0x0010005b,
+ 0x4a03781d, 0x00111ffd, 0x4a03781e, 0x00112004,
+ 0x42000800, 0x0011229c, 0x417a3000, 0x42001000,
+ 0x00115731, 0x8119b0c8, 0x82d9b400, 0x0000bf32,
+ 0x83180400, 0x00108f25, 0x50000000, 0x4801b002,
+ 0x4809b000, 0x4809b001, 0x82081400, 0x00000080,
+ 0x90040c05, 0x811a3000, 0x91180485, 0x05fc17f2,
+ 0x5c023000, 0x5c01b000, 0x1c01f000, 0x4933c857,
+ 0x42000800, 0x8000004e, 0x59300416, 0x8c000510,
+ 0x05000002, 0x84040d52, 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, 0x0501fc94, 0x4df00000, 0x4d300000,
+ 0x4d340000, 0x4d2c0000, 0x4d180000, 0x4c5c0000,
+ 0x4c600000, 0x4d900000, 0x4dd00000, 0x4da40000,
+ 0x4d140000, 0x4cd80000, 0x58d6602f, 0x813261c0,
+ 0x05000024, 0x41302800, 0x4178c000, 0x59300000,
+ 0x4c000000, 0x5932680a, 0x5930b801, 0x4c0c0000,
+ 0x4c140000, 0x0509f9a1, 0x5c002800, 0x5c001800,
+ 0x05000008, 0x0501f8d1, 0x4c0c0000, 0x4c140000,
+ 0x0501fb03, 0x5c002800, 0x5c001800, 0x0501f005,
+ 0x41301800, 0x8060c1c0, 0x05020002, 0x400cc000,
+ 0x805cb9c0, 0x05000003, 0x405e6000, 0x05fdf7eb,
+ 0x5c026000, 0x813261c0, 0x05000006, 0x8060c1c0,
+ 0x05000002, 0x40602800, 0x4178c000, 0x05fdf7e0,
+ 0x417a3000, 0x0505f9a1, 0x59926005, 0x813261c0,
+ 0x0500000a, 0x5932680a, 0x4c140000, 0x0509f97f,
+ 0x5c002800, 0x05000005, 0x0501fe8d, 0x0501fc26,
+ 0x0501fc2b, 0x0501fae2, 0x811a3000, 0x91180485,
+ 0x05fc17f1, 0x5c01b000, 0x5c022800, 0x5c034800,
+ 0x5c03a000, 0x5c032000, 0x5c00c000, 0x5c00b800,
+ 0x5c023000, 0x5c025800, 0x5c026800, 0x5c026000,
+ 0x5c03e000, 0x05000c35, 0x1c01f000, 0x4933c857,
+ 0x0501fc41, 0x4df00000, 0x4d340000, 0x4d180000,
0x4d900000, 0x4dd00000, 0x4da40000, 0x4d140000,
- 0x4cd80000, 0x58d6602f, 0x813261c0, 0x05000024,
- 0x41302800, 0x4178c000, 0x59300000, 0x4c000000,
- 0x5932680a, 0x5930b801, 0x4c0c0000, 0x4c140000,
- 0x0509f96a, 0x5c002800, 0x5c001800, 0x05000008,
- 0x0501f8d1, 0x4c0c0000, 0x4c140000, 0x0501fafd,
- 0x5c002800, 0x5c001800, 0x0501f005, 0x41301800,
- 0x8060c1c0, 0x05020002, 0x400cc000, 0x805cb9c0,
- 0x05000003, 0x405e6000, 0x05fdf7eb, 0x5c026000,
- 0x813261c0, 0x05000006, 0x8060c1c0, 0x05000002,
- 0x40602800, 0x4178c000, 0x05fdf7e0, 0x417a3000,
- 0x0505f99c, 0x59926005, 0x813261c0, 0x0500000a,
- 0x5932680a, 0x4c140000, 0x0509f948, 0x5c002800,
- 0x05000005, 0x0501fe88, 0x0501fc21, 0x0501fc26,
- 0x0501fadc, 0x811a3000, 0x91180485, 0x05fc17f1,
- 0x5c01b000, 0x5c022800, 0x5c034800, 0x5c03a000,
- 0x5c032000, 0x5c00c000, 0x5c00b800, 0x5c023000,
- 0x5c025800, 0x5c026800, 0x5c026000, 0x5c03e000,
- 0x05000c30, 0x1c01f000, 0x4933c857, 0x0501fc3c,
- 0x4df00000, 0x4d340000, 0x4d180000, 0x4d900000,
- 0x4dd00000, 0x4da40000, 0x4d140000, 0x4cd80000,
- 0x5932680a, 0x58d4202f, 0x40102800, 0x801021c0,
- 0x05000016, 0x41300000, 0x80100580, 0x05000011,
- 0x5810000a, 0x81340580, 0x0502000b, 0x40101800,
- 0x58102001, 0x41300000, 0x801021c0, 0x0500000b,
- 0x80100d80, 0x05000007, 0x40101800, 0x58102001,
- 0x05fdf7fa, 0x40102800, 0x58102000, 0x05fdf7ec,
- 0x0501f879, 0x0501f00d, 0x417a3000, 0x0505f959,
- 0x59900005, 0x81300580, 0x05000005, 0x811a3000,
- 0x91180485, 0x05021010, 0x05fdf7f9, 0x0501fe46,
- 0x0501fbdf, 0x0501fbe4, 0x5c01b000, 0x5c022800,
+ 0x4cd80000, 0x5932680a, 0x58d4202f, 0x40102800,
+ 0x801021c0, 0x05000016, 0x41300000, 0x80100580,
+ 0x05000011, 0x5810000a, 0x81340580, 0x0502000b,
+ 0x40101800, 0x58102001, 0x41300000, 0x801021c0,
+ 0x0500000b, 0x80100d80, 0x05000007, 0x40101800,
+ 0x58102001, 0x05fdf7fa, 0x40102800, 0x58102000,
+ 0x05fdf7ec, 0x0501f879, 0x0501f00d, 0x417a3000,
+ 0x0505f95e, 0x59900005, 0x81300580, 0x05000005,
+ 0x811a3000, 0x91180485, 0x05021010, 0x05fdf7f9,
+ 0x0501fe4b, 0x0501fbe4, 0x0501fbe9, 0x5c01b000,
+ 0x5c022800, 0x5c034800, 0x5c03a000, 0x5c032000,
+ 0x5c023000, 0x5c026800, 0x5c03e000, 0x05000bfb,
+ 0x80000580, 0x1c01f000, 0x5c01b000, 0x5c022800,
0x5c034800, 0x5c03a000, 0x5c032000, 0x5c023000,
- 0x5c026800, 0x5c03e000, 0x05000bf6, 0x80000580,
- 0x1c01f000, 0x5c01b000, 0x5c022800, 0x5c034800,
- 0x5c03a000, 0x5c032000, 0x5c023000, 0x5c026800,
- 0x5c03e000, 0x05000beb, 0x90000541, 0x1c01f000,
- 0x0501fbf7, 0x4df00000, 0x4d300000, 0x4d340000,
- 0x4d180000, 0x4d2c0000, 0x4c5c0000, 0x4d900000,
- 0x4dd00000, 0x4da40000, 0x4d140000, 0x4cd80000,
- 0x58d6602f, 0x813261c0, 0x05000021, 0x41302800,
- 0x5930b800, 0x5932680a, 0x59340403, 0x81440580,
- 0x05000006, 0x805cb9c0, 0x05000019, 0x41302800,
- 0x405e6000, 0x05fdf7f7, 0x5930001d, 0x81240580,
- 0x05fe07f9, 0x5930b801, 0x4c0c0000, 0x4c140000,
- 0x0509f8ca, 0x5c002800, 0x5c001800, 0x05000008,
- 0x0501f831, 0x4c0c0000, 0x4c140000, 0x0501fa5d,
- 0x5c002800, 0x5c001800, 0x0501f002, 0x41301800,
- 0x405e6000, 0x813261c0, 0x05fe07ec, 0x417a3000,
- 0x0505f908, 0x59926005, 0x813261c0, 0x05000005,
- 0x5932680a, 0x59340403, 0x81440580, 0x05000005,
- 0x811a3000, 0x91180485, 0x05fc17f6, 0x0501f00d,
- 0x5930001d, 0x81240580, 0x05fe07fa, 0x4c140000,
- 0x0509f8aa, 0x5c002800, 0x05fc07f6, 0x0501fdea,
- 0x0501fb83, 0x0501fb88, 0x0501fa3e, 0x05fdf7f1,
- 0x5c01b000, 0x5c022800, 0x5c034800, 0x5c03a000,
- 0x5c032000, 0x5c00b800, 0x5c025800, 0x5c023000,
- 0x5c026800, 0x5c026000, 0x5c03e000, 0x05000b95,
- 0x1c01f000, 0x0501fb78, 0x58d4002f, 0x81300580,
- 0x0502001c, 0x59300801, 0x800409c0, 0x0500000e,
- 0x59300000, 0x800001c0, 0x05020005, 0x4805a82f,
- 0x4805a82e, 0x497a6001, 0x1c01f000, 0x59300000,
- 0x48000800, 0x4805a82f, 0x497a6000, 0x497a6001,
- 0x1c01f000, 0x59300800, 0x800409c0, 0x05020005,
- 0x4979a82f, 0x4979a82e, 0x497a680c, 0x1c01f000,
- 0x4805a82f, 0x497a6000, 0x497a680c, 0x1c01f000,
- 0x58d4002e, 0x81300580, 0x0502000c, 0x59300001,
- 0x800001c0, 0x05020005, 0x4815a82e, 0x49782800,
- 0x497a680c, 0x1c01f000, 0x4801a82e, 0x48002800,
- 0x497a6001, 0x1c01f000, 0x59300000, 0x800001c0,
- 0x05020008, 0x59300001, 0x48001801, 0x800001c0,
- 0x05020002, 0x480e680c, 0x497a6001, 0x1c01f000,
- 0x59300801, 0x800409c0, 0x05020006, 0x59300800,
- 0x48042800, 0x497a6000, 0x497a680c, 0x1c01f000,
- 0x59300000, 0x48000800, 0x48042800, 0x497a6000,
- 0x497a6001, 0x1c01f000, 0x0501fb5d, 0x4df00000,
- 0x0501f828, 0x050208ec, 0x05020960, 0x05020005,
- 0x5c03e000, 0x05000b47, 0x80000580, 0x1c01f000,
- 0x5c03e000, 0x05000b43, 0x90000541, 0x1c01f000,
- 0x4d2c0000, 0x4d340000, 0x4d300000, 0x4c5c0000,
- 0x4178b800, 0x598e6007, 0x813261c0, 0x0500000e,
- 0x0509f83a, 0x05000009, 0x59300000, 0x4c000000,
- 0x0501fa46, 0x405c3000, 0x0501f851, 0x0501f9cd,
- 0x5c026000, 0x05fdf7f5, 0x4130b800, 0x59326000,
- 0x05fdf7f2, 0x0509f8d3, 0x0509f8ee, 0x5c00b800,
- 0x5c026000, 0x5c026800, 0x5c025800, 0x1c01f000,
- 0x4933c857, 0x4c5c0000, 0x813261c0, 0x05c00bf7,
- 0x41300000, 0x598cb807, 0x41783000, 0x805cb9c0,
- 0x05000011, 0x805c0d80, 0x05000004, 0x405c3000,
- 0x5818b800, 0x05fdf7fa, 0x0501f835, 0x598c000b,
- 0x81300580, 0x0504084b, 0x59300403, 0xb0000582,
- 0x05020002, 0x497a6008, 0x80000580, 0x5c00b800,
- 0x1c01f000, 0x90000541, 0x5c00b800, 0x1c01f000,
- 0x0501fb17, 0x4df00000, 0x4d2c0000, 0x4d340000,
- 0x4d300000, 0x4c5c0000, 0x4178b800, 0x598e6007,
- 0x813261c0, 0x05000015, 0x5932680a, 0x59340403,
- 0x81440580, 0x0502000e, 0x5930001d, 0x81240580,
- 0x0502000b, 0x0505fff9, 0x05000009, 0x59300000,
- 0x4c000000, 0x0501fa05, 0x405c3000, 0x0501f810,
- 0x0501f98c, 0x5c026000, 0x05fdf7ee, 0x4130b800,
- 0x59326000, 0x05fdf7eb, 0x0509f846, 0x0509f8ad,
+ 0x5c026800, 0x5c03e000, 0x05000bf0, 0x90000541,
+ 0x1c01f000, 0x0501fbfc, 0x4df00000, 0x4d300000,
+ 0x4d340000, 0x4d180000, 0x4d2c0000, 0x4c5c0000,
+ 0x4d900000, 0x4dd00000, 0x4da40000, 0x4d140000,
+ 0x4cd80000, 0x58d6602f, 0x813261c0, 0x05000021,
+ 0x41302800, 0x5930b800, 0x5932680a, 0x59340403,
+ 0x81440580, 0x05000006, 0x805cb9c0, 0x05000019,
+ 0x41302800, 0x405e6000, 0x05fdf7f7, 0x5930001d,
+ 0x81240580, 0x05fe07f9, 0x5930b801, 0x4c0c0000,
+ 0x4c140000, 0x0509f901, 0x5c002800, 0x5c001800,
+ 0x05000008, 0x0501f831, 0x4c0c0000, 0x4c140000,
+ 0x0501fa63, 0x5c002800, 0x5c001800, 0x0501f002,
+ 0x41301800, 0x405e6000, 0x813261c0, 0x05fe07ec,
+ 0x417a3000, 0x0505f90d, 0x59926005, 0x813261c0,
+ 0x05000005, 0x5932680a, 0x59340403, 0x81440580,
+ 0x05000005, 0x811a3000, 0x91180485, 0x05fc17f6,
+ 0x0501f00d, 0x5930001d, 0x81240580, 0x05fe07fa,
+ 0x4c140000, 0x0509f8e1, 0x5c002800, 0x05fc07f6,
+ 0x0501fdef, 0x0501fb88, 0x0501fb8d, 0x0501fa44,
+ 0x05fdf7f1, 0x5c01b000, 0x5c022800, 0x5c034800,
+ 0x5c03a000, 0x5c032000, 0x5c00b800, 0x5c025800,
+ 0x5c023000, 0x5c026800, 0x5c026000, 0x5c03e000,
+ 0x05000b9a, 0x1c01f000, 0x0501fb7d, 0x58d4002f,
+ 0x81300580, 0x0502001c, 0x59300801, 0x800409c0,
+ 0x0500000e, 0x59300000, 0x800001c0, 0x05020005,
+ 0x4805a82f, 0x4805a82e, 0x497a6001, 0x1c01f000,
+ 0x59300000, 0x48000800, 0x4805a82f, 0x497a6000,
+ 0x497a6001, 0x1c01f000, 0x59300800, 0x800409c0,
+ 0x05020005, 0x4979a82f, 0x4979a82e, 0x497a680c,
+ 0x1c01f000, 0x4805a82f, 0x497a6000, 0x497a680c,
+ 0x1c01f000, 0x58d4002e, 0x81300580, 0x0502000c,
+ 0x59300001, 0x800001c0, 0x05020005, 0x4815a82e,
+ 0x49782800, 0x497a680c, 0x1c01f000, 0x4801a82e,
+ 0x48002800, 0x497a6001, 0x1c01f000, 0x59300000,
+ 0x800001c0, 0x05020008, 0x59300001, 0x48001801,
+ 0x800001c0, 0x05020002, 0x480e680c, 0x497a6001,
+ 0x1c01f000, 0x59300801, 0x800409c0, 0x05020006,
+ 0x59300800, 0x48042800, 0x497a6000, 0x497a680c,
+ 0x1c01f000, 0x59300000, 0x48000800, 0x48042800,
+ 0x497a6000, 0x497a6001, 0x1c01f000, 0x0501fb62,
+ 0x4df00000, 0x0501f828, 0x050208ec, 0x05020966,
+ 0x05020005, 0x5c03e000, 0x05000b4c, 0x80000580,
+ 0x1c01f000, 0x5c03e000, 0x05000b48, 0x90000541,
+ 0x1c01f000, 0x4d2c0000, 0x4d340000, 0x4d300000,
+ 0x4c5c0000, 0x4178b800, 0x598e6007, 0x813261c0,
+ 0x0500000e, 0x0509f871, 0x05000009, 0x59300000,
+ 0x4c000000, 0x0501fa4a, 0x405c3000, 0x0501f851,
+ 0x0501f9d3, 0x5c026000, 0x05fdf7f5, 0x4130b800,
+ 0x59326000, 0x05fdf7f2, 0x0509f90a, 0x0509f929,
0x5c00b800, 0x5c026000, 0x5c026800, 0x5c025800,
- 0x5c03e000, 0x05000ae3, 0x1c01f000, 0x59300800,
- 0x497a6000, 0x0501fac4, 0x801831c0, 0x05020009,
- 0x598c0006, 0x81300580, 0x05020004, 0x48031806,
- 0x48031807, 0x0501f008, 0x48071807, 0x0501f006,
- 0x48043000, 0x598c0006, 0x81300580, 0x05020002,
- 0x481b1806, 0x0501f2c8, 0x4d300000, 0x598e6005,
- 0x813261c0, 0x05000008, 0x59300000, 0x4c000000,
- 0x0501f9da, 0x0005ffdc, 0x0501fabf, 0x5c026000,
- 0x05fdf7f8, 0x497b1805, 0x497b1804, 0x5c026000,
- 0x1c01f000, 0x0501face, 0x4df00000, 0x4d300000,
- 0x4c5c0000, 0x4c600000, 0x4130c000, 0x4178b800,
- 0x598e6005, 0x813261c0, 0x05000036, 0x5930080a,
- 0x800409c0, 0x0502000d, 0x4d340000, 0x0001fb00,
- 0x41340800, 0x5c026800, 0x0502002b, 0x58040802,
- 0x59300019, 0x80040580, 0x82000500, 0x00ffffff,
- 0x05000005, 0x0501f024, 0x58040403, 0x81440580,
- 0x05020021, 0x5930501a, 0x59340013, 0x82000500,
- 0x00ffffff, 0x80280580, 0x0502001b, 0x5930002a,
- 0x80600580, 0x05000018, 0x0501f9ac, 0x59302000,
- 0x497a6000, 0x805cb9c0, 0x05020009, 0x598c0004,
- 0x81300580, 0x05020004, 0x497b1805, 0x497b1804,
- 0x0501f008, 0x48131805, 0x0501f006, 0x4810b800,
- 0x598c0004, 0x81300580, 0x05020002, 0x485f1804,
- 0x4c100000, 0x0005ffdc, 0x0501fa7f, 0x5c026000,
- 0x05fdf7cd, 0x4130b800, 0x59326000, 0x05fdf7ca,
- 0x5c00c000, 0x5c00b800, 0x5c026000, 0x5c03e000,
- 0x05000a7c, 0x1c01f000, 0x4d2c0000, 0x4d300000,
- 0x4d340000, 0x4c5c0000, 0x4178b800, 0x598e6009,
- 0x813261c0, 0x0500000e, 0x0505ff74, 0x05000009,
- 0x0501f982, 0x59300000, 0x4c000000, 0x405c3000,
- 0x0501f855, 0x0501f907, 0x5c026000, 0x05fdf7f5,
- 0x4130b800, 0x59326000, 0x05fdf7f2, 0x05e9fc6d,
- 0x5c00b800, 0x5c026800, 0x5c026000, 0x5c025800,
0x1c01f000, 0x4933c857, 0x4c5c0000, 0x813261c0,
- 0x05c00b32, 0x41300000, 0x598cb809, 0x41783000,
- 0x805cb9c0, 0x0500000e, 0x805c0d80, 0x05000004,
- 0x405c3000, 0x5818b800, 0x05fdf7fa, 0x0501f83a,
- 0x598c000b, 0x81300580, 0x05000f86, 0x497a6008,
- 0x80000580, 0x5c00b800, 0x1c01f000, 0x90000541,
- 0x5c00b800, 0x1c01f000, 0x0501fa55, 0x4df00000,
- 0x4d340000, 0x4d300000, 0x4d2c0000, 0x4c5c0000,
- 0x83440480, 0x000007f0, 0x05021020, 0x0001fb00,
- 0x05c20b12, 0x4178b800, 0x598e6009, 0x813261c0,
- 0x05000014, 0x5930000a, 0x81340580, 0x0502000e,
- 0x5930001d, 0x81240580, 0x0502000b, 0x0505ff33,
- 0x05000009, 0x0501f941, 0x59300000, 0x4c000000,
- 0x405c3000, 0x0501f814, 0x0501f8c6, 0x5c026000,
- 0x05fdf7ef, 0x4130b800, 0x59326000, 0x05fdf7ec,
- 0x8d3c0506, 0x05000004, 0x59340200, 0x8c00050e,
- 0x05020002, 0x05e9fc46, 0x5c00b800, 0x5c025800,
- 0x5c026000, 0x5c026800, 0x5c03e000, 0x05000a19,
- 0x1c01f000, 0x59300800, 0x497a6000, 0x0501f9fa,
- 0x801831c0, 0x05020009, 0x598c0008, 0x81300580,
- 0x05020004, 0x48031808, 0x48031809, 0x0501f008,
- 0x48071809, 0x0501f006, 0x48043000, 0x598c0008,
- 0x81300580, 0x05020002, 0x481b1808, 0x0501f1fe,
- 0x0501fa13, 0x4df00000, 0x4d300000, 0x4c5c0000,
- 0x4178b800, 0x598e6003, 0x813261c0, 0x0500000e,
- 0x0505fefe, 0x05000009, 0x0501f90c, 0x59300000,
- 0x4c000000, 0x405c3000, 0x0501f86c, 0x0501f891,
- 0x5c026000, 0x05fdf7f5, 0x4130b800, 0x59326000,
- 0x05fdf7f2, 0x5c00b800, 0x5c026000, 0x5c03e000,
- 0x050009ec, 0x1c01f000, 0x4933c857, 0x4c5c0000,
- 0x4c600000, 0x813261c0, 0x05c00abc, 0x41300000,
- 0x598cb803, 0x405cc000, 0x805cb9c0, 0x05000024,
- 0x805c0d80, 0x05000004, 0x405cc000, 0x5860b800,
- 0x05fdf7fa, 0x598c000b, 0x81300580, 0x05000f11,
- 0x0501f9bd, 0x598c0003, 0x805c0580, 0x05020009,
- 0x585c0000, 0x48031803, 0x4978b800, 0x598c0002,
- 0x805c0580, 0x0502000d, 0x497b1802, 0x0501f00b,
- 0x598c0002, 0x805c0580, 0x05020005, 0x48631802,
- 0x4978b800, 0x4978c000, 0x0501f004, 0x585c0000,
- 0x4800c000, 0x4978b800, 0x0501f9bb, 0x80000580,
- 0x5c00c000, 0x5c00b800, 0x1c01f000, 0x90000541,
- 0x5c00c000, 0x5c00b800, 0x1c01f000, 0x4933c857,
- 0x0501f9c7, 0x4df00000, 0x4d2c0000, 0x4d340000,
- 0x4d300000, 0x4c5c0000, 0x4178b800, 0x598e6003,
- 0x813261c0, 0x0500001e, 0x5932680a, 0x59340403,
- 0x81440580, 0x05020017, 0x812649c0, 0x05000004,
- 0x5930001d, 0x81240580, 0x05020012, 0x0505fea7,
- 0x05000010, 0x0515f968, 0x05000006, 0x0515ffea,
- 0x05020004, 0x59300403, 0xb0000583, 0x05140feb,
- 0x0501f8ae, 0x59300000, 0x4c000000, 0x405c3000,
- 0x0501f80e, 0x0501f833, 0x5c026000, 0x05fdf7e5,
- 0x4130b800, 0x59326000, 0x05fdf7e2, 0x5c00b800,
- 0x5c026000, 0x5c026800, 0x5c025800, 0x5c03e000,
- 0x0500098c, 0x1c01f000, 0x59300800, 0x497a6000,
- 0x0501f96d, 0x801831c0, 0x05020009, 0x598c0002,
- 0x81300580, 0x05020004, 0x48031802, 0x48031803,
- 0x0501f008, 0x48071803, 0x0501f006, 0x48043000,
- 0x598c0002, 0x81300580, 0x05020002, 0x481b1802,
- 0x0501f171, 0x4943c857, 0x0501f985, 0x4df00000,
- 0x05fdfe34, 0x05fdfef9, 0x5c03e000, 0x05000971,
- 0x1c01f000, 0x4947c857, 0x0501f97d, 0x4df00000,
- 0x4d3c0000, 0x853e7d00, 0x05fdfe62, 0x05fdff23,
- 0x5c027800, 0x5c03e000, 0x05000966, 0x1c01f000,
- 0x5c000000, 0x4c000000, 0x4803c857, 0x4d340000,
- 0x4d2c0000, 0x5932680a, 0x59325809, 0x59300407,
- 0x90000c92, 0x05c21a31, 0x4933c857, 0x4943c857,
- 0x493fc857, 0x4803c857, 0x0c01f804, 0x5c025800,
- 0x5c026800, 0x1c01f000, 0x001083c4, 0x001083c5,
- 0x001083cb, 0x001083ed, 0x001083c5, 0x001083d3,
- 0x00108401, 0x001083c4, 0x001083c4, 0x001083c4,
- 0x00108408, 0x001083c4, 0x001083c4, 0x001083c4,
- 0x001083c4, 0x001083c4, 0x0010840e, 0x0010840e,
- 0x05c1fa16, 0x0525fa91, 0x0515f9f5, 0x05cc0fac,
- 0x0515fcbd, 0x0509fefa, 0x0509f006, 0x0515f8fe,
- 0x05000006, 0x49425a0a, 0x0001fb82, 0x59300229,
- 0x90000583, 0x051409d7, 0x0505f7fe, 0x83300580,
- 0x00111a40, 0x05020015, 0x0515f8f3, 0x05000010,
- 0x59a8009d, 0x812c0580, 0x05c20a00, 0x592c0000,
- 0x4803509d, 0x800001c0, 0x05020002, 0x4803509e,
- 0x592c1208, 0xb0080595, 0x05020003, 0x05c1fdaf,
- 0x0501f003, 0x49425a0a, 0x0001fb82, 0x64026203,
- 0x497a6009, 0x1c01f000, 0x0515f8df, 0x050407e5,
- 0x05c1f9ee, 0x59300008, 0x8c000500, 0x05c60c5a,
- 0x0515f8d9, 0x0500000f, 0x592c0208, 0x82000500,
- 0x000000ff, 0x90000594, 0x051609b2, 0x0519faba,
- 0x05f5f810, 0x4a025a08, 0x00000103, 0x49425a0a,
- 0x497a580d, 0x0515fa27, 0x0521ff33, 0x0001fb82,
- 0x0505f7d0, 0x59300008, 0x8c000500, 0x05c60c46,
- 0x0515f8c5, 0x05220b81, 0x0519faab, 0x0505f7c9,
- 0x0515f8c1, 0x05000004, 0x49425a0a, 0x497a5c0d,
- 0x0001fb82, 0x0505f7c3, 0x05c9fafb, 0x0515f8ba,
- 0x05000003, 0x49425a0a, 0x0001fb82, 0x59325819,
- 0x05c1fd87, 0x0505f7bb, 0x598c000b, 0x81300580,
- 0x05000003, 0x497a6008, 0x1c01f000, 0x59c40004,
- 0x9000050c, 0x05000005, 0x64338804, 0x4a01a8e5,
- 0x00000800, 0x0501f008, 0x0501fb80, 0x59300403,
- 0xb0000d80, 0x05000003, 0xb0000582, 0x05020002,
- 0x497a6008, 0x0501fe13, 0x80000580, 0x1c01f000,
- 0x59300804, 0x8c040520, 0x05020003, 0x90000541,
- 0x1c01f000, 0x4933c857, 0x59300804, 0x84040d20,
- 0x48066004, 0x640a6203, 0x80000580, 0x1c01f000,
- 0x4933c857, 0x4d380000, 0x59300804, 0x84040d20,
- 0x48066004, 0x61267000, 0x59300203, 0x90000583,
- 0x05000002, 0x604e7000, 0x0009f800, 0x80000580,
- 0x5c027000, 0x1c01f000, 0x59300019, 0x81480580,
- 0x05020003, 0x5930001a, 0x814c0580, 0x1c01f000,
- 0x4d2c0000, 0x4d300000, 0x0501f8c5, 0x4df00000,
- 0x05f9fb8b, 0x59900002, 0x90000503, 0x0c01f001,
- 0x00108464, 0x00108459, 0x00108458, 0x00108458,
- 0x05c1f982, 0x59926005, 0x0501f889, 0x813261c0,
- 0x05000008, 0x59300004, 0x8c000516, 0x05000004,
- 0x59325809, 0x497a580c, 0x497a580d, 0x0501f886,
- 0x5c03e000, 0x0500089f, 0x5c026000, 0x5c025800,
- 0x1c01f000, 0x5c000000, 0x4c000000, 0x4803c857,
- 0x4d300000, 0x4a01a8e5, 0x00000800, 0x0501f8a4,
- 0x4df00000, 0x598c0000, 0x90000507, 0x4803c857,
- 0x0c01f001, 0x0010849b, 0x0010847e, 0x00108485,
- 0x00108488, 0x00108494, 0x0010849b, 0x00108498,
- 0x0010847d, 0x05c1f95d, 0x598c000b, 0x80026540,
- 0x05000003, 0x0501f81e, 0x05c20958, 0x0501fdb9,
- 0x0501f017, 0x0501f829, 0x0501fdb6, 0x0501f014,
- 0x598c000b, 0x80026540, 0x05000011, 0x0501f83a,
- 0x05000006, 0x0501f847, 0x05000004, 0x0501f810,
- 0x05000002, 0x0501f81d, 0x0501fdaa, 0x0501f008,
- 0x0501f840, 0x05c20945, 0x0501fda6, 0x0501f004,
- 0x0501f82d, 0x05c20941, 0x0501fda2, 0x5c03e000,
- 0x05000868, 0x5c026000, 0x1c01f000, 0x598c0007,
- 0x81300580, 0x0502000c, 0x0501f85b, 0x0501f846,
- 0x59300000, 0x800001c0, 0x05000004, 0x48031807,
- 0x497a6000, 0x0501f003, 0x497b1807, 0x497b1806,
- 0x80000580, 0x1c01f000, 0x4d2c0000, 0x59300407,
- 0x90000583, 0x05020012, 0x598c0009, 0x81300580,
- 0x0502000f, 0x0501f848, 0x59325809, 0x497a580c,
- 0x497a580d, 0x0501f830, 0x59300000, 0x800001c0,
- 0x05000004, 0x48031809, 0x497a6000, 0x0501f003,
- 0x497b1808, 0x497b1809, 0x80000580, 0x5c025800,
- 0x1c01f000, 0x598c0005, 0x81300580, 0x0502000c,
- 0x0501f835, 0x0501f820, 0x59300000, 0x800001c0,
- 0x05000004, 0x48031805, 0x497a6000, 0x0501f003,
- 0x497b1805, 0x497b1804, 0x80000580, 0x1c01f000,
- 0x598c0003, 0x81300580, 0x0502000c, 0x0501f826,
- 0x0501f811, 0x59300000, 0x800001c0, 0x05000004,
- 0x48031803, 0x497a6000, 0x0501f003, 0x497b1803,
- 0x497b1802, 0x80000580, 0x1c01f000, 0x64032002,
- 0x497b2005, 0x497b2006, 0x497b2007, 0x4979b003,
- 0x1c01f000, 0x4c040000, 0x59300004, 0x8c000516,
- 0x05020003, 0x82000500, 0xffd7ffff, 0x82000500,
- 0x7ffef7ff, 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, 0x60042800,
- 0x58d400ea, 0x90000507, 0x90000581, 0x0502000d,
- 0x4803c856, 0x60000800, 0x0501f830, 0x60000820,
+ 0x05bc0f79, 0x41300000, 0x598cb807, 0x41783000,
+ 0x805cb9c0, 0x05000011, 0x805c0d80, 0x05000004,
+ 0x405c3000, 0x5818b800, 0x05fdf7fa, 0x0501f835,
+ 0x598c000b, 0x81300580, 0x05040850, 0x59300403,
+ 0xb0000582, 0x05020002, 0x497a6008, 0x80000580,
+ 0x5c00b800, 0x1c01f000, 0x90000541, 0x5c00b800,
+ 0x1c01f000, 0x0501fb1c, 0x4df00000, 0x4d2c0000,
+ 0x4d340000, 0x4d300000, 0x4c5c0000, 0x4178b800,
+ 0x598e6007, 0x813261c0, 0x05000015, 0x5932680a,
+ 0x59340403, 0x81440580, 0x0502000e, 0x5930001d,
+ 0x81240580, 0x0502000b, 0x0509f830, 0x05000009,
+ 0x59300000, 0x4c000000, 0x0501fa09, 0x405c3000,
+ 0x0501f810, 0x0501f992, 0x5c026000, 0x05fdf7ee,
+ 0x4130b800, 0x59326000, 0x05fdf7eb, 0x0509f87d,
+ 0x0509f8e8, 0x5c00b800, 0x5c026000, 0x5c026800,
+ 0x5c025800, 0x5c03e000, 0x05000ae8, 0x1c01f000,
+ 0x59300800, 0x497a6000, 0x0501fac9, 0x801831c0,
+ 0x05020009, 0x598c0006, 0x81300580, 0x05020004,
+ 0x48031806, 0x48031807, 0x0501f008, 0x48071807,
+ 0x0501f006, 0x48043000, 0x598c0006, 0x81300580,
+ 0x05020002, 0x481b1806, 0x0501f2cd, 0x4d300000,
+ 0x598e6005, 0x813261c0, 0x05000008, 0x59300000,
+ 0x4c000000, 0x0501f9de, 0x0009f810, 0x0501fac4,
+ 0x5c026000, 0x05fdf7f8, 0x497b1805, 0x497b1804,
+ 0x5c026000, 0x1c01f000, 0x0501fad3, 0x4df00000,
+ 0x4d300000, 0x4c5c0000, 0x4c600000, 0x4130c000,
+ 0x4178b800, 0x598e6005, 0x813261c0, 0x05000036,
+ 0x5930080a, 0x800409c0, 0x0502000d, 0x4d340000,
+ 0x0001fb08, 0x41340800, 0x5c026800, 0x0502002b,
+ 0x58040802, 0x59300019, 0x80040580, 0x82000500,
+ 0x00ffffff, 0x05000005, 0x0501f024, 0x58040403,
+ 0x81440580, 0x05020021, 0x5930501a, 0x59340013,
+ 0x82000500, 0x00ffffff, 0x80280580, 0x0502001b,
+ 0x5930002a, 0x80600580, 0x05000018, 0x0501f9b0,
+ 0x59302000, 0x497a6000, 0x805cb9c0, 0x05020009,
+ 0x598c0004, 0x81300580, 0x05020004, 0x497b1805,
+ 0x497b1804, 0x0501f008, 0x48131805, 0x0501f006,
+ 0x4810b800, 0x598c0004, 0x81300580, 0x05020002,
+ 0x485f1804, 0x4c100000, 0x0009f810, 0x0501fa84,
+ 0x5c026000, 0x05fdf7cd, 0x4130b800, 0x59326000,
+ 0x05fdf7ca, 0x5c00c000, 0x5c00b800, 0x5c026000,
+ 0x5c03e000, 0x05000a81, 0x1c01f000, 0x4d2c0000,
+ 0x4d300000, 0x4d340000, 0x4c5c0000, 0x4178b800,
+ 0x598e6009, 0x813261c0, 0x0500000e, 0x0505ffab,
+ 0x05000009, 0x0501f986, 0x59300000, 0x4c000000,
+ 0x405c3000, 0x0501f85b, 0x0501f90d, 0x5c026000,
+ 0x05fdf7f5, 0x4130b800, 0x59326000, 0x05fdf7f2,
+ 0x05e9fa1a, 0x5c00b800, 0x5c026800, 0x5c026000,
+ 0x5c025800, 0x1c01f000, 0x4933c857, 0x4c5c0000,
+ 0x813261c0, 0x05bc0eb4, 0x41300000, 0x598cb809,
+ 0x41783000, 0x805cb9c0, 0x0500000e, 0x805c0d80,
+ 0x05000004, 0x405c3000, 0x5818b800, 0x05fdf7fa,
+ 0x0501f840, 0x598c000b, 0x81300580, 0x05000f8b,
+ 0x497a6008, 0x80000580, 0x5c00b800, 0x1c01f000,
+ 0x90000541, 0x5c00b800, 0x1c01f000, 0x0501fa5a,
+ 0x4df00000, 0x4d340000, 0x4d300000, 0x4d2c0000,
+ 0x4c5c0000, 0x83440480, 0x000007f0, 0x05001004,
+ 0x83440480, 0x00000800, 0x05001023, 0x83440580,
+ 0x0000ffff, 0x05000020, 0x0001fb08, 0x05be0e8e,
+ 0x4178b800, 0x598e6009, 0x813261c0, 0x05000014,
+ 0x5930000a, 0x81340580, 0x0502000e, 0x5930001d,
+ 0x81240580, 0x0502000b, 0x0505ff64, 0x05000009,
+ 0x0501f93f, 0x59300000, 0x4c000000, 0x405c3000,
+ 0x0501f814, 0x0501f8c6, 0x5c026000, 0x05fdf7ef,
+ 0x4130b800, 0x59326000, 0x05fdf7ec, 0x8d3c0506,
+ 0x05000004, 0x59340200, 0x8c00050e, 0x05020002,
+ 0x05e9f9f1, 0x5c00b800, 0x5c025800, 0x5c026000,
+ 0x5c026800, 0x5c03e000, 0x05000a18, 0x1c01f000,
+ 0x59300800, 0x497a6000, 0x0501f9f9, 0x801831c0,
+ 0x05020009, 0x598c0008, 0x81300580, 0x05020004,
+ 0x48031808, 0x48031809, 0x0501f008, 0x48071809,
+ 0x0501f006, 0x48043000, 0x598c0008, 0x81300580,
+ 0x05020002, 0x481b1808, 0x0501f1fd, 0x0501fa12,
+ 0x4df00000, 0x4d300000, 0x4c5c0000, 0x4178b800,
+ 0x598e6003, 0x813261c0, 0x0500000e, 0x0505ff2f,
+ 0x05000009, 0x0501f90a, 0x59300000, 0x4c000000,
+ 0x405c3000, 0x0501f86c, 0x0501f891, 0x5c026000,
+ 0x05fdf7f5, 0x4130b800, 0x59326000, 0x05fdf7f2,
+ 0x5c00b800, 0x5c026000, 0x5c03e000, 0x050009eb,
+ 0x1c01f000, 0x4933c857, 0x4c5c0000, 0x4c600000,
+ 0x813261c0, 0x05bc0e38, 0x41300000, 0x598cb803,
+ 0x405cc000, 0x805cb9c0, 0x05000024, 0x805c0d80,
+ 0x05000004, 0x405cc000, 0x5860b800, 0x05fdf7fa,
+ 0x598c000b, 0x81300580, 0x05000f10, 0x0501f9bc,
+ 0x598c0003, 0x805c0580, 0x05020009, 0x585c0000,
+ 0x48031803, 0x4978b800, 0x598c0002, 0x805c0580,
+ 0x0502000d, 0x497b1802, 0x0501f00b, 0x598c0002,
+ 0x805c0580, 0x05020005, 0x48631802, 0x4978b800,
+ 0x4978c000, 0x0501f004, 0x585c0000, 0x4800c000,
+ 0x4978b800, 0x0501f9ba, 0x80000580, 0x5c00c000,
+ 0x5c00b800, 0x1c01f000, 0x90000541, 0x5c00c000,
+ 0x5c00b800, 0x1c01f000, 0x4933c857, 0x0501f9c6,
+ 0x4df00000, 0x4d2c0000, 0x4d340000, 0x4d300000,
+ 0x4c5c0000, 0x4178b800, 0x598e6003, 0x813261c0,
+ 0x0500001e, 0x5932680a, 0x59340403, 0x81440580,
+ 0x05020017, 0x812649c0, 0x05000004, 0x5930001d,
+ 0x81240580, 0x05020012, 0x0505fed8, 0x05000010,
+ 0x0515fa32, 0x05000006, 0x0519f8d1, 0x05020004,
+ 0x59300403, 0xb0000583, 0x051808d2, 0x0501f8ac,
+ 0x59300000, 0x4c000000, 0x405c3000, 0x0501f80e,
+ 0x0501f833, 0x5c026000, 0x05fdf7e5, 0x4130b800,
+ 0x59326000, 0x05fdf7e2, 0x5c00b800, 0x5c026000,
+ 0x5c026800, 0x5c025800, 0x5c03e000, 0x0500098b,
+ 0x1c01f000, 0x59300800, 0x497a6000, 0x0501f96c,
+ 0x801831c0, 0x05020009, 0x598c0002, 0x81300580,
+ 0x05020004, 0x48031802, 0x48031803, 0x0501f008,
+ 0x48071803, 0x0501f006, 0x48043000, 0x598c0002,
+ 0x81300580, 0x05020002, 0x481b1802, 0x0501f170,
+ 0x4943c857, 0x0501f984, 0x4df00000, 0x05fdfe2e,
+ 0x05fdfef3, 0x5c03e000, 0x05000970, 0x1c01f000,
+ 0x4947c857, 0x0501f97c, 0x4df00000, 0x4d3c0000,
+ 0x853e7d00, 0x05fdfe5c, 0x05fdff1d, 0x5c027800,
+ 0x5c03e000, 0x05000965, 0x1c01f000, 0x5c000000,
+ 0x4c000000, 0x4803c857, 0x4d340000, 0x4d2c0000,
+ 0x5932680a, 0x59325809, 0x59300407, 0x90000c92,
+ 0x05be1dad, 0x4933c857, 0x4943c857, 0x493fc857,
+ 0x4803c857, 0x0c01f804, 0x5c025800, 0x5c026800,
+ 0x1c01f000, 0x00108883, 0x00108884, 0x0010888a,
+ 0x001088ac, 0x00108884, 0x00108892, 0x001088c0,
+ 0x00108883, 0x00108883, 0x00108883, 0x001088c7,
+ 0x00108883, 0x00108883, 0x00108883, 0x00108883,
+ 0x00108883, 0x001088cd, 0x001088cd, 0x05bdfd92,
+ 0x0525fd39, 0x0515facf, 0x05cc0b84, 0x0515fd96,
+ 0x0509ff75, 0x0509f05c, 0x0515f9c8, 0x05000006,
+ 0x49425a0a, 0x0001fba8, 0x59300229, 0x90000583,
+ 0x05140ab1, 0x0509f054, 0x83300580, 0x001159e4,
+ 0x05020015, 0x0515f9bd, 0x05000010, 0x59a800a0,
+ 0x812c0580, 0x05be0d7c, 0x592c0000, 0x480350a0,
+ 0x800001c0, 0x05020002, 0x480350a1, 0x592c1208,
+ 0xb0080595, 0x05020003, 0x05c1f927, 0x0501f003,
+ 0x49425a0a, 0x0001fba8, 0x64026203, 0x497a6009,
+ 0x1c01f000, 0x0515f9a9, 0x0508003b, 0x05bdfd6a,
+ 0x59300008, 0x8c000500, 0x05c60839, 0x0515f9a3,
+ 0x0500000f, 0x592c0208, 0x82000500, 0x000000ff,
+ 0x90000594, 0x05160a8c, 0x0519fba1, 0x05f1fed9,
+ 0x4a025a08, 0x00000103, 0x49425a0a, 0x497a580d,
+ 0x0515fb01, 0x0525f9be, 0x0001fba8, 0x0509f026,
+ 0x59300008, 0x8c000500, 0x05c60825, 0x0515f98f,
+ 0x05220e07, 0x0519fb92, 0x0509f01f, 0x0515f98b,
+ 0x05000004, 0x49425a0a, 0x497a5c0d, 0x0001fba8,
+ 0x0509f019, 0x05c5fead, 0x0515f984, 0x05080016,
+ 0x49425a0a, 0x0001fba8, 0x0509f013, 0x598c000b,
+ 0x81300580, 0x05000003, 0x497a6008, 0x1c01f000,
+ 0x59c40004, 0x9000050c, 0x05000005, 0x64338804,
+ 0x4a01a8e5, 0x00000800, 0x0501f008, 0x0501fb81,
+ 0x59300403, 0xb0000d80, 0x05000003, 0xb0000582,
+ 0x05020002, 0x497a6008, 0x0501fe14, 0x80000580,
+ 0x1c01f000, 0x59300804, 0x4807c857, 0x8c040520,
+ 0x05020003, 0x90000541, 0x1c01f000, 0x4933c857,
+ 0x59300804, 0x84040d20, 0x48066004, 0x640a6203,
+ 0x80000580, 0x1c01f000, 0x4933c857, 0x4d380000,
+ 0x59300804, 0x84040d20, 0x48066004, 0x61267000,
+ 0x59300203, 0x90000583, 0x05000002, 0x604e7000,
+ 0x0009f839, 0x80000580, 0x5c027000, 0x1c01f000,
+ 0x59300019, 0x81480580, 0x05020003, 0x5930001a,
+ 0x814c0580, 0x1c01f000, 0x4d2c0000, 0x4d300000,
+ 0x0501f8c5, 0x4df00000, 0x05f9fb31, 0x59900002,
+ 0x90000503, 0x0c01f001, 0x00108922, 0x00108917,
+ 0x00108916, 0x00108916, 0x05bdfcff, 0x59926005,
+ 0x0501f889, 0x813261c0, 0x05000008, 0x59300004,
+ 0x8c000516, 0x05000004, 0x59325809, 0x497a580c,
+ 0x497a580d, 0x0501f886, 0x5c03e000, 0x0500089f,
+ 0x5c026000, 0x5c025800, 0x1c01f000, 0x5c000000,
+ 0x4c000000, 0x4803c857, 0x4d300000, 0x4a01a8e5,
+ 0x00000800, 0x0501f8a4, 0x4df00000, 0x598c0000,
+ 0x90000507, 0x4803c857, 0x0c01f001, 0x00108959,
+ 0x0010893c, 0x00108943, 0x00108946, 0x00108952,
+ 0x00108959, 0x00108956, 0x0010893b, 0x05bdfcda,
+ 0x598c000b, 0x80026540, 0x05000003, 0x0501f81e,
+ 0x05be0cd5, 0x0501fdb9, 0x0501f017, 0x0501f829,
+ 0x0501fdb6, 0x0501f014, 0x598c000b, 0x80026540,
+ 0x05000011, 0x0501f83a, 0x05000006, 0x0501f847,
+ 0x05000004, 0x0501f810, 0x05000002, 0x0501f81d,
+ 0x0501fdaa, 0x0501f008, 0x0501f840, 0x05be0cc2,
+ 0x0501fda6, 0x0501f004, 0x0501f82d, 0x05be0cbe,
+ 0x0501fda2, 0x5c03e000, 0x05000868, 0x5c026000,
+ 0x1c01f000, 0x598c0007, 0x81300580, 0x0502000c,
+ 0x0501f85b, 0x0501f846, 0x59300000, 0x800001c0,
+ 0x05000004, 0x48031807, 0x497a6000, 0x0501f003,
+ 0x497b1807, 0x497b1806, 0x80000580, 0x1c01f000,
+ 0x4d2c0000, 0x59300407, 0x90000583, 0x05020012,
+ 0x598c0009, 0x81300580, 0x0502000f, 0x0501f848,
+ 0x59325809, 0x497a580c, 0x497a580d, 0x0501f830,
+ 0x59300000, 0x800001c0, 0x05000004, 0x48031809,
+ 0x497a6000, 0x0501f003, 0x497b1808, 0x497b1809,
+ 0x80000580, 0x5c025800, 0x1c01f000, 0x598c0005,
+ 0x81300580, 0x0502000c, 0x0501f835, 0x0501f820,
+ 0x59300000, 0x800001c0, 0x05000004, 0x48031805,
+ 0x497a6000, 0x0501f003, 0x497b1805, 0x497b1804,
+ 0x80000580, 0x1c01f000, 0x598c0003, 0x81300580,
+ 0x0502000c, 0x0501f826, 0x0501f811, 0x59300000,
+ 0x800001c0, 0x05000004, 0x48031803, 0x497a6000,
+ 0x0501f003, 0x497b1803, 0x497b1802, 0x80000580,
+ 0x1c01f000, 0x64032002, 0x497b2005, 0x497b2006,
+ 0x497b2007, 0x4979b003, 0x1c01f000, 0x4c040000,
+ 0x59300004, 0x8c000516, 0x05020003, 0x82000500,
+ 0xffd7ffff, 0x82000500, 0x7ffef7ff, 0x48026004,
+ 0x58d400e4, 0x8c000514, 0x05000007, 0x58d40011,
+ 0x81300580, 0x05020004, 0x4979a811, 0x4a01a8e4,
+ 0x00000800, 0x5c000800, 0x1c01f000, 0x4803c856,
+ 0x598c000a, 0x80000540, 0x05000003, 0x80000040,
+ 0x4803180a, 0x1c01f000, 0x59bc00ea, 0x90000507,
+ 0x90000583, 0x05020003, 0x4803c856, 0x640778e8,
+ 0x58d400ea, 0x90000507, 0x90000583, 0x05020005,
+ 0x4803c856, 0x6405a8e8, 0x4a0370e4, 0x00000800,
+ 0x1c01f000, 0x60042800, 0x58d400ea, 0x90000507,
+ 0x90000581, 0x0502000f, 0x4803c856, 0x60000800,
+ 0x0501f830, 0x4a0370e4, 0x00000c00, 0x60000820,
0x58d400ea, 0x90000507, 0x90000583, 0x05000004,
- 0x80040840, 0x05fe07fb, 0x05c1f8b8, 0x41782800,
- 0x59bc00ea, 0x90000507, 0x90000581, 0x0502000f,
- 0x4803c856, 0x60000800, 0x0501f80e, 0x4a0370e4,
- 0x00000c00, 0x42000800, 0x00010000, 0x59bc00ea,
- 0x90000507, 0x90000583, 0x05000005, 0x80040840,
- 0x05fe07fb, 0x05c1f8a5, 0x801429c0, 0x1c01f000,
- 0x59bc00ea, 0x90000507, 0x90000581, 0x05c2089f,
- 0x59bc00ea, 0x8c000516, 0x05fe07fe, 0x480778e1,
- 0x1c01f000, 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, 0x0010e060,
- 0x58380401, 0x8c000506, 0x05020003, 0x4a01a8e4,
- 0x00008000, 0x1c01f000, 0x82000d00, 0x02000018,
- 0x05c2086f, 0x05c1f875, 0x001086c7, 0x001086dc,
- 0x0010856d, 0x001086c6, 0x0010856c, 0x00108660,
- 0x05c1f86e, 0x4d2c0000, 0x4d300000, 0x58d400ea,
- 0x8c000510, 0x05fc07fe, 0x58d660e0, 0x813261c0,
- 0x05c00866, 0x59300004, 0x8c000520, 0x05000010,
- 0x82000500, 0xfffefeff, 0x48026004, 0x59325809,
- 0x59301407, 0x90080583, 0x05000006, 0x90080586,
- 0x05c2085a, 0x592c0a0a, 0x0005fe45, 0x0501f006,
- 0x0001fb82, 0x0005ffdc, 0x0501f003, 0x84000510,
- 0x48026004, 0x5c026000, 0x5c025800, 0x1c01f000,
- 0x82000d00, 0x82000018, 0x05c20845, 0x05c1f84b,
- 0x001085a0, 0x001085a0, 0x001085a0, 0x001085a1,
- 0x001085c1, 0x00108642, 0x001085a0, 0x00108695,
- 0x001085a0, 0x001086c6, 0x001085e0, 0x00020eff,
- 0x00108623, 0x001085a0, 0x001085a0, 0x001085a0,
- 0x05c1f83a, 0x4d300000, 0x4d900000, 0x4dd00000,
- 0x4da40000, 0x4d140000, 0x4cd80000, 0x0501fcad,
- 0x59bc00ea, 0x8c000510, 0x05fc07fe, 0x59be60e0,
- 0x59300004, 0x8c000520, 0x05000010, 0x82000500,
- 0xfffefeff, 0x48026004, 0x05fdff61, 0x05c5fc2f,
- 0x05c5fc8e, 0x05c5fc4d, 0x5c01b000, 0x5c022800,
- 0x5c034800, 0x5c03a000, 0x5c032000, 0x5c026000,
- 0x642378e4, 0x05fdf747, 0x84000510, 0x48026004,
- 0x05fdf7f6, 0x4d300000, 0x4d900000, 0x4dd00000,
- 0x4da40000, 0x4d140000, 0x4cd80000, 0x0501fc8d,
- 0x59bc00ea, 0x8c000510, 0x05fc07fe, 0x59be60e0,
- 0x59300004, 0x8c000520, 0x0500000f, 0x82000500,
- 0xfffefeff, 0x48026004, 0x640e6203, 0x05fdff40,
- 0x05c5fbbf, 0x5c01b000, 0x5c022800, 0x5c034800,
- 0x5c03a000, 0x5c032000, 0x5c026000, 0x642378e4,
- 0x05fdf728, 0x84000510, 0x48026004, 0x05fdf7f6,
- 0x4d300000, 0x4d2c0000, 0x4d900000, 0x4dd00000,
- 0x4da40000, 0x4d140000, 0x4cd80000, 0x0501fc6d,
- 0x59bc00ea, 0x8c000510, 0x05fc07fe, 0x59be60e0,
- 0x59300004, 0x8c000520, 0x0500001a, 0x82000500,
- 0xfffefeff, 0x48026004, 0x640e6203, 0x59325809,
- 0x812e59c0, 0x05bc0fe5, 0x42000000, 0x0010e477,
- 0x0525f9e4, 0x592c020c, 0x84000552, 0x48025a0c,
- 0x05c5ff35, 0x05fdff16, 0x05c5fb95, 0x5c01b000,
+ 0x80040840, 0x05fe07fb, 0x05bdfc33, 0x41782800,
+ 0x59bc00ea, 0x90000507, 0x90000581, 0x0502000d,
+ 0x4803c856, 0x60000800, 0x0501f80c, 0x42000800,
+ 0x00010000, 0x59bc00ea, 0x90000507, 0x90000583,
+ 0x05000005, 0x80040840, 0x05fe07fb, 0x05bdfc22,
+ 0x801429c0, 0x1c01f000, 0x59bc00ea, 0x90000507,
+ 0x90000581, 0x05be0c1c, 0x59bc00ea, 0x8c000516,
+ 0x05fe07fe, 0x480778e1, 0x1c01f000, 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, 0x00111ffa, 0x58380401, 0x8c000506,
+ 0x05020003, 0x4a01a8e4, 0x00008000, 0x1c01f000,
+ 0x82000d00, 0x02000018, 0x05be0bec, 0x05bdfbf2,
+ 0x00108b85, 0x00108b9a, 0x00108a2b, 0x00108b84,
+ 0x00108a2a, 0x00108b1e, 0x05bdfbeb, 0x4d2c0000,
+ 0x4d300000, 0x58d400ea, 0x8c000510, 0x05fc07fe,
+ 0x58d660e0, 0x813261c0, 0x05bc0be3, 0x59300004,
+ 0x8c000520, 0x05000010, 0x82000500, 0xfffefeff,
+ 0x48026004, 0x59325809, 0x59301407, 0x90080583,
+ 0x05000006, 0x90080586, 0x05be0bd7, 0x592c0a0a,
+ 0x0005fe7b, 0x0501f006, 0x0001fba8, 0x0009f810,
+ 0x0501f003, 0x84000510, 0x48026004, 0x5c026000,
+ 0x5c025800, 0x1c01f000, 0x82000d00, 0x82000018,
+ 0x05be0bc2, 0x05bdfbc8, 0x00108a5e, 0x00108a5e,
+ 0x00108a5e, 0x00108a5f, 0x00108a7f, 0x00108b00,
+ 0x00108a5e, 0x00108b53, 0x00108a5e, 0x00108b84,
+ 0x00108a9e, 0x00020f36, 0x00108ae1, 0x00108a5e,
+ 0x00108a5e, 0x00108a5e, 0x05bdfbb7, 0x4d300000,
+ 0x4d900000, 0x4dd00000, 0x4da40000, 0x4d140000,
+ 0x4cd80000, 0x0501fcad, 0x59bc00ea, 0x8c000510,
+ 0x05fc07fe, 0x59be60e0, 0x59300004, 0x8c000520,
+ 0x05000010, 0x82000500, 0xfffefeff, 0x48026004,
+ 0x05fdff61, 0x05c5f80d, 0x05c5f86c, 0x05c5f82b,
+ 0x5c01b000, 0x5c022800, 0x5c034800, 0x5c03a000,
+ 0x5c032000, 0x5c026000, 0x642378e4, 0x05fdf747,
+ 0x84000510, 0x48026004, 0x05fdf7f6, 0x4d300000,
+ 0x4d900000, 0x4dd00000, 0x4da40000, 0x4d140000,
+ 0x4cd80000, 0x0501fc8d, 0x59bc00ea, 0x8c000510,
+ 0x05fc07fe, 0x59be60e0, 0x59300004, 0x8c000520,
+ 0x0500000f, 0x82000500, 0xfffefeff, 0x48026004,
+ 0x640e6203, 0x05fdff40, 0x05c1ffa0, 0x5c01b000,
0x5c022800, 0x5c034800, 0x5c03a000, 0x5c032000,
- 0x5c025800, 0x5c026000, 0x642378e4, 0x05fdf6fd,
- 0x84000510, 0x48026004, 0x05fdf7f5, 0x42007000,
- 0x000211a7, 0x58380000, 0x90000580, 0x0500000d,
- 0x58d80805, 0x8c040500, 0x0500000a, 0x83180400,
- 0x00020f72, 0x50006000, 0x58380001, 0x80300580,
- 0x05000005, 0x4803c856, 0x05c1fcbf, 0x4979b005,
- 0x1c01f000, 0x58300010, 0x4803c857, 0x6404620f,
- 0x49786010, 0x49787002, 0x1c01f000, 0x4d2c0000,
- 0x4d300000, 0x59bc00ea, 0x8c000510, 0x05fc07fe,
- 0x59be60e0, 0x813261c0, 0x05bc0fb0, 0x59300004,
- 0x8c000520, 0x05000012, 0x82000500, 0xfffefeff,
- 0x48026004, 0x59301407, 0x90080583, 0x05be0fa7,
- 0x05fdfb82, 0x05be0fa5, 0x59325809, 0x60040800,
- 0x600a8000, 0x05e9fff2, 0x0001fb82, 0x0005ffdc,
- 0x5c026000, 0x5c025800, 0x1c01f000, 0x84000510,
- 0x48026004, 0x05fdf7fb, 0x4d300000, 0x4d900000,
- 0x4dd00000, 0x4da40000, 0x4d140000, 0x4cd80000,
- 0x0501fc0c, 0x59bc00ea, 0x8c000510, 0x05fc07fe,
- 0x59be60e0, 0x59300004, 0x8c000520, 0x0500000e,
- 0x82000500, 0xfffefeff, 0x48026004, 0x05fdfec0,
- 0x05c5fb82, 0x5c01b000, 0x5c022800, 0x5c034800,
- 0x5c03a000, 0x5c032000, 0x5c026000, 0x642378e4,
- 0x05fdf6a8, 0x84000510, 0x48026004, 0x05fdf7f6,
- 0x4d300000, 0x4d2c0000, 0x4d340000, 0x4da40000,
- 0x4cd00000, 0x4d240000, 0x58d400ea, 0x8c000510,
- 0x05fc07fe, 0x58d660e0, 0x813261c0, 0x05bc0f6f,
- 0x59300004, 0x8c000520, 0x0500001e, 0x82000500,
- 0xfffefeff, 0x48026004, 0x5932680a, 0x42034800,
- 0x0010e063, 0x5932481d, 0x05011000, 0x4a03c840,
- 0x0010e06a, 0x644bc842, 0x05011000, 0x4a03c840,
- 0x0010e07c, 0x4a03c842, 0x000000ff, 0x05011000,
- 0x4a03c840, 0x0010e17b, 0x4a03c842, 0x000000ff,
- 0x0501fbe8, 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, 0x0501fbb5,
- 0x59bc00ea, 0x8c000510, 0x05fc07fe, 0x59be60e0,
- 0x813261c0, 0x05bc0f35, 0x59300004, 0x8c000520,
- 0x05000011, 0x82000500, 0xfffefeff, 0x48026004,
- 0x5932481d, 0x0505fa76, 0x5c01b000, 0x5c022800,
- 0x5c034800, 0x5c03a000, 0x5c032000, 0x5c024800,
- 0x5c01a000, 0x5c026800, 0x5c025800, 0x5c026000,
- 0x1c01f000, 0x84000510, 0x48026004, 0x5c01b000,
+ 0x5c026000, 0x642378e4, 0x05fdf728, 0x84000510,
+ 0x48026004, 0x05fdf7f6, 0x4d300000, 0x4d2c0000,
+ 0x4d900000, 0x4dd00000, 0x4da40000, 0x4d140000,
+ 0x4cd80000, 0x0501fc6d, 0x59bc00ea, 0x8c000510,
+ 0x05fc07fe, 0x59be60e0, 0x59300004, 0x8c000520,
+ 0x0500001a, 0x82000500, 0xfffefeff, 0x48026004,
+ 0x640e6203, 0x59325809, 0x812e59c0, 0x05bc0b62,
+ 0x42000000, 0x0011241b, 0x0525fca1, 0x592c020c,
+ 0x84000552, 0x48025a0c, 0x05c5fae9, 0x05fdff16,
+ 0x05c1ff76, 0x5c01b000, 0x5c022800, 0x5c034800,
+ 0x5c03a000, 0x5c032000, 0x5c025800, 0x5c026000,
+ 0x642378e4, 0x05fdf6fd, 0x84000510, 0x48026004,
+ 0x05fdf7f5, 0x42007000, 0x000211e8, 0x58380000,
+ 0x90000580, 0x0500000d, 0x58d80805, 0x8c040500,
+ 0x0500000a, 0x83180400, 0x00020fa9, 0x50006000,
+ 0x58380001, 0x80300580, 0x05000005, 0x4803c856,
+ 0x05c1f863, 0x4979b005, 0x1c01f000, 0x58300010,
+ 0x4803c857, 0x6404620f, 0x49786010, 0x49787002,
+ 0x1c01f000, 0x4d2c0000, 0x4d300000, 0x59bc00ea,
+ 0x8c000510, 0x05fc07fe, 0x59be60e0, 0x813261c0,
+ 0x05bc0b2d, 0x59300004, 0x8c000520, 0x05000012,
+ 0x82000500, 0xfffefeff, 0x48026004, 0x59301407,
+ 0x90080583, 0x05be0b24, 0x05fdfb7d, 0x05be0b22,
+ 0x59325809, 0x60040800, 0x600a8000, 0x05e9fe18,
+ 0x0001fba8, 0x0009f810, 0x5c026000, 0x5c025800,
+ 0x1c01f000, 0x84000510, 0x48026004, 0x05fdf7fb,
+ 0x4d300000, 0x4d900000, 0x4dd00000, 0x4da40000,
+ 0x4d140000, 0x4cd80000, 0x0501fc0c, 0x59bc00ea,
+ 0x8c000510, 0x05fc07fe, 0x59be60e0, 0x59300004,
+ 0x8c000520, 0x0500000e, 0x82000500, 0xfffefeff,
+ 0x48026004, 0x05fdfec0, 0x05c1ff63, 0x5c01b000,
0x5c022800, 0x5c034800, 0x5c03a000, 0x5c032000,
- 0x5c024800, 0x5c01a000, 0x5c026800, 0x5c025800,
- 0x5c026000, 0x1c01f000, 0x05bdff14, 0x4d300000,
- 0x4d380000, 0x42000000, 0x0010e4b5, 0x0525f911,
- 0x05fdfe47, 0x598e600b, 0x59c40004, 0x8c000506,
- 0x05000003, 0x0501f8d1, 0x64238804, 0x813261c0,
- 0x05000004, 0x0501fb7a, 0x60527000, 0x0009f800,
- 0x6409a8e4, 0x5c027000, 0x5c026000, 0x05fdf629,
- 0x4d180000, 0x4d300000, 0x4d380000, 0x4d900000,
- 0x4dd00000, 0x4da40000, 0x4d140000, 0x4cd80000,
- 0x05fdfe2f, 0x417a3000, 0x59c40804, 0x83180400,
- 0x00108a14, 0x50000000, 0x80040500, 0x05000017,
- 0x42000000, 0x0010e4b6, 0x0525f8ee, 0x0501fb65,
- 0x59926005, 0x0501f858, 0x83180400, 0x00108a14,
- 0x50000000, 0x48038804, 0x813261c0, 0x05000007,
- 0x59300004, 0x8c00050c, 0x05020002, 0x640e6203,
- 0x612a7000, 0x0009f800, 0x59c40004, 0x82000500,
- 0x00f80000, 0x05000004, 0x811a3000, 0x91180485,
- 0x05fc17e2, 0x6421a8e4, 0x5c01b000, 0x5c022800,
- 0x5c034800, 0x5c03a000, 0x5c032000, 0x5c027000,
- 0x5c026000, 0x5c023000, 0x05fdf5f6, 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, 0x491bc857, 0x59b400f6, 0x90000538,
- 0x05fe07fe, 0x59c80840, 0x90040550, 0x48039040,
- 0x59c41008, 0x4c040000, 0x4c080000, 0x82081500,
- 0xffffff7f, 0x480b8808, 0x0501fa9a, 0x05020006,
- 0x0501fa9e, 0x05000020, 0x48038804, 0x05c5fab6,
- 0x0501f03d, 0x64238803, 0x59c40003, 0x90000503,
- 0x05fc07fe, 0x8c000502, 0x05020006, 0x0501fa93,
- 0x05000015, 0x48038804, 0x05c5faab, 0x0501f032,
- 0x0501fa9a, 0x05020007, 0x59c80040, 0x8400056a,
- 0x48039040, 0x59c80040, 0x8c00052a, 0x05fe07fe,
- 0x59c40005, 0x82000500, 0xc0000000, 0x05000006,
- 0x59c400a3, 0x84000540, 0x480388a3, 0x4a038805,
- 0xc0000000, 0x05c5fa69, 0x4a03a005, 0x30000000,
- 0x59d00006, 0x4a03a005, 0x30000000, 0x6401b006,
- 0x59d00005, 0x8c000504, 0x05fe07fe, 0x05fdfe88,
- 0x6403a014, 0x600008ec, 0x83180540, 0x60000000,
- 0x480008a1, 0x811800dc, 0x59c80840, 0x80040540,
- 0x48039040, 0x82000540, 0x00003000, 0x48039040,
- 0x59c80040, 0x82000500, 0x00003000, 0x05fe07fd,
- 0x05c5fa6e, 0x83180400, 0x00108a14, 0x50000000,
- 0x48038804, 0x80000580, 0x4df00000, 0x05f9f840,
- 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,
+ 0x5c026000, 0x642378e4, 0x05fdf6a8, 0x84000510,
+ 0x48026004, 0x05fdf7f6, 0x4d300000, 0x4d2c0000,
+ 0x4d340000, 0x4da40000, 0x4cd00000, 0x4d240000,
+ 0x58d400ea, 0x8c000510, 0x05fc07fe, 0x58d660e0,
+ 0x813261c0, 0x05bc0aec, 0x59300004, 0x8c000520,
+ 0x0500001e, 0x82000500, 0xfffefeff, 0x48026004,
+ 0x5932680a, 0x42034800, 0x00111ffd, 0x5932481d,
+ 0x05011000, 0x4a03c840, 0x00112004, 0x644bc842,
+ 0x05011000, 0x4a03c840, 0x00112016, 0x4a03c842,
+ 0x000000ff, 0x05011000, 0x4a03c840, 0x00112115,
+ 0x4a03c842, 0x000000ff, 0x0501fbe8, 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, 0x0501fbb5, 0x59bc00ea, 0x8c000510,
+ 0x05fc07fe, 0x59be60e0, 0x813261c0, 0x05bc0ab2,
+ 0x59300004, 0x8c000520, 0x05000011, 0x82000500,
+ 0xfffefeff, 0x48026004, 0x5932481d, 0x0505faa2,
+ 0x5c01b000, 0x5c022800, 0x5c034800, 0x5c03a000,
+ 0x5c032000, 0x5c024800, 0x5c01a000, 0x5c026800,
+ 0x5c025800, 0x5c026000, 0x1c01f000, 0x84000510,
+ 0x48026004, 0x5c01b000, 0x5c022800, 0x5c034800,
+ 0x5c03a000, 0x5c032000, 0x5c024800, 0x5c01a000,
+ 0x5c026800, 0x5c025800, 0x5c026000, 0x1c01f000,
+ 0x05bdfa91, 0x4d300000, 0x4d380000, 0x42000000,
+ 0x00112459, 0x0525fbce, 0x05fdfe47, 0x598e600b,
+ 0x59c40004, 0x8c000506, 0x05000003, 0x0501f8d1,
+ 0x64238804, 0x813261c0, 0x05000004, 0x0501fb7a,
+ 0x60527000, 0x0009f839, 0x6409a8e4, 0x5c027000,
+ 0x5c026000, 0x05fdf629, 0x4d180000, 0x4d300000,
+ 0x4d380000, 0x4d900000, 0x4dd00000, 0x4da40000,
+ 0x4d140000, 0x4cd80000, 0x05fdfe2f, 0x417a3000,
+ 0x59c40804, 0x83180400, 0x00108ed2, 0x50000000,
+ 0x80040500, 0x05000017, 0x42000000, 0x0011245a,
+ 0x0525fbab, 0x0501fb65, 0x59926005, 0x0501f858,
+ 0x83180400, 0x00108ed2, 0x50000000, 0x48038804,
+ 0x813261c0, 0x05000007, 0x59300004, 0x8c00050c,
+ 0x05020002, 0x640e6203, 0x612a7000, 0x0009f839,
+ 0x59c40004, 0x82000500, 0x00f80000, 0x05000004,
+ 0x811a3000, 0x91180485, 0x05fc17e2, 0x6421a8e4,
+ 0x5c01b000, 0x5c022800, 0x5c034800, 0x5c03a000,
+ 0x5c032000, 0x5c027000, 0x5c026000, 0x5c023000,
+ 0x05fdf5f6, 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, 0x491bc857,
+ 0x59b400f6, 0x90000538, 0x05fe07fe, 0x59c80840,
+ 0x90040550, 0x48039040, 0x59c41008, 0x4c040000,
+ 0x4c080000, 0x82081500, 0xffffff7f, 0x480b8808,
+ 0x0501fa9a, 0x05020006, 0x0501fa9e, 0x05000020,
+ 0x48038804, 0x05c1fe94, 0x0501f03d, 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,
+ 0x05020006, 0x0501fa93, 0x05000015, 0x48038804,
+ 0x05c1fe89, 0x0501f032, 0x0501fa9a, 0x05020007,
+ 0x59c80040, 0x8400056a, 0x48039040, 0x59c80040,
+ 0x8c00052a, 0x05fe07fe, 0x59c40005, 0x82000500,
+ 0xc0000000, 0x05000006, 0x59c400a3, 0x84000540,
+ 0x480388a3, 0x4a038805, 0xc0000000, 0x05c1fe47,
+ 0x4a03a005, 0x30000000, 0x59d00006, 0x4a03a005,
+ 0x30000000, 0x6401b006, 0x59d00005, 0x8c000504,
+ 0x05fe07fe, 0x05fdfe88, 0x6403a014, 0x600008ec,
+ 0x83180540, 0x60000000, 0x480008a1, 0x811800dc,
+ 0x59c80840, 0x80040540, 0x48039040, 0x82000540,
+ 0x00003000, 0x48039040, 0x59c80040, 0x82000500,
+ 0x00003000, 0x05fe07fd, 0x05c1fe4c, 0x83180400,
+ 0x00108ed2, 0x50000000, 0x48038804, 0x80000580,
+ 0x4df00000, 0x05f5ffe6, 0x5c03e000, 0x5c001000,
0x5c000800, 0x480b8808, 0x48079040, 0x1c01f000,
- 0x5c000000, 0x4c000000, 0x4803c857, 0x491bc857,
- 0x4933c857, 0x4d900000, 0x4dd00000, 0x4da40000,
- 0x4d140000, 0x4cd80000, 0x05fdfd29, 0x4df00000,
- 0x0501fa68, 0x59900005, 0x800001c0, 0x05000012,
- 0x81300580, 0x05020010, 0x59300004, 0x84000520,
- 0x48026004, 0x05fdff54, 0x0502000a, 0x5c03e000,
- 0x05fc0d0c, 0x80000580, 0x5c01b000, 0x5c022800,
- 0x5c034800, 0x5c03a000, 0x5c032000, 0x1c01f000,
- 0x05fdfc4c, 0x61267000, 0x59300004, 0x84000520,
- 0x48026004, 0x8c00050c, 0x000a0800, 0x5c03e000,
- 0x05fc0cfc, 0x90000541, 0x5c01b000, 0x5c022800,
- 0x5c034800, 0x5c03a000, 0x5c032000, 0x1c01f000,
- 0x4933c857, 0x05fdfd02, 0x4df00000, 0x598c000b,
- 0x80026540, 0x0500000f, 0x59300004, 0x84000520,
- 0x48026004, 0x05fdff89, 0x05000011, 0x05fdfc4e,
- 0x604e7000, 0x59300004, 0x8c00050c, 0x000a0800,
- 0x5c03e000, 0x05fc0ce3, 0x90000541, 0x1c01f000,
- 0x916c1581, 0x05fc07fb, 0x916c1584, 0x05fc07f9,
- 0x42001000, 0x0010510c, 0x05f5fe8b, 0x5c03e000,
- 0x05fc0cd8, 0x80000580, 0x1c01f000, 0x4d300000,
- 0x4d180000, 0x4d3c0000, 0x05fdfce1, 0x4df00000,
- 0x643da8e4, 0x643f78e4, 0x0501fa06, 0x417a3000,
- 0x811808c8, 0x82040c00, 0x0000b037, 0x58066005,
- 0x813261c0, 0x0500000b, 0x417a7800, 0x05e9f879,
- 0x05000007, 0x59300c07, 0x90040583, 0x05000003,
- 0x90040586, 0x05020002, 0x600a7800, 0x050dffce,
- 0x811a3000, 0x91180485, 0x05fc17ee, 0x61000800,
- 0x05c5ffaa, 0x642b78e4, 0x6429a8e4, 0x5c03e000,
- 0x05fc0cb4, 0x5c027800, 0x5c023000, 0x5c026000,
- 0x1c01f000, 0x4803c856, 0x4d300000, 0x05fdfcbc,
- 0x4df00000, 0x59c80840, 0x84040d74, 0x90040550,
- 0x48039040, 0x59c41008, 0x4c040000, 0x4c080000,
- 0x82081500, 0xffffff7f, 0x480b8808, 0x600c1000,
- 0x0501f9d1, 0x598e600b, 0x813261c0, 0x05fe0fa9,
- 0x050009d4, 0x4a01a8e5, 0x00000800, 0x0501f809,
- 0x5c001000, 0x5c000800, 0x480b8808, 0x48079040,
- 0x5c03e000, 0x05fc0c93, 0x5c026000, 0x1c01f000,
- 0x4d380000, 0x4d180000, 0x4d300000, 0x4d900000,
+ 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, 0x5c000000, 0x4c000000,
+ 0x4803c857, 0x491bc857, 0x4933c857, 0x4d900000,
0x4dd00000, 0x4da40000, 0x4d140000, 0x4cd80000,
- 0x417a3000, 0x05f5ff5e, 0x811a3000, 0x91180585,
- 0x05fe07fd, 0x0501f9ab, 0x0502000a, 0x5c01b000,
- 0x5c022800, 0x5c034800, 0x5c03a000, 0x5c032000,
- 0x5c026000, 0x5c023000, 0x5c027000, 0x1c01f000,
- 0x0501f9c8, 0x59926005, 0x4933c857, 0x05fdfeba,
- 0x813261c0, 0x05fc07f2, 0x612a7000, 0x640e6203,
- 0x0009f800, 0x05fdf7ee, 0x4d300000, 0x4d180000,
- 0x4d900000, 0x05fdfc7a, 0x60001000, 0x598c0800,
- 0x90040585, 0x05000998, 0x417a3000, 0x811b20c8,
- 0x83932400, 0x0000b037, 0x59900002, 0x90000581,
- 0x0502000a, 0x60100800, 0x59926005, 0x59300013,
- 0x82000500, 0xfff00000, 0x80000540, 0x05000002,
- 0x60380800, 0x05f5ff0d, 0x811a3000, 0x91180485,
- 0x05fc17ef, 0x59c81040, 0x84081534, 0x480b9040,
- 0x05fdfc50, 0x5c032000, 0x5c023000, 0x5c026000,
- 0x1c01f000, 0x4933c857, 0x4d900000, 0x4dd00000,
- 0x4da40000, 0x4d140000, 0x4cd80000, 0x4d380000,
- 0x05fdfc53, 0x4df00000, 0x59300004, 0x8c00053e,
- 0x05020005, 0x8c000520, 0x0500001d, 0x05fdfb71,
- 0x0501f01b, 0x598c000b, 0x81300580, 0x0500000e,
- 0x0511f864, 0x05020020, 0x0501f928, 0x0500001e,
- 0x48038804, 0x0501f983, 0x05c5f93f, 0x05fdfb79,
- 0x61267000, 0x59300004, 0x8c00050c, 0x0502000b,
- 0x0501f00b, 0x59c40004, 0x8c000504, 0x05000012,
- 0x64138804, 0x05fdfb8c, 0x604e7000, 0x59300004,
- 0x8c00050c, 0x05000002, 0x0009f800, 0x5c03e000,
- 0x05fc0c20, 0x5c027000, 0x5c01b000, 0x5c022800,
- 0x5c034800, 0x5c03a000, 0x5c032000, 0x80000580,
- 0x1c01f000, 0x5c03e000, 0x05fc0c16, 0x5c027000,
+ 0x05fdfd29, 0x4df00000, 0x0501fa68, 0x59900005,
+ 0x800001c0, 0x05000012, 0x81300580, 0x05020010,
+ 0x59300004, 0x84000520, 0x48026004, 0x05fdff54,
+ 0x0502000a, 0x5c03e000, 0x05fc0d0c, 0x80000580,
+ 0x5c01b000, 0x5c022800, 0x5c034800, 0x5c03a000,
+ 0x5c032000, 0x1c01f000, 0x05fdfc4c, 0x61267000,
+ 0x59300004, 0x84000520, 0x48026004, 0x8c00050c,
+ 0x000a0839, 0x5c03e000, 0x05fc0cfc, 0x90000541,
0x5c01b000, 0x5c022800, 0x5c034800, 0x5c03a000,
- 0x5c032000, 0x90000541, 0x1c01f000, 0x59300407,
- 0x90000583, 0x05020007, 0x0511fbcf, 0x05000005,
- 0x59301009, 0x5808040c, 0x84000550, 0x4800140c,
- 0x1c01f000, 0x4a01a8e5, 0x00000800, 0x05fdfc10,
- 0x59c400af, 0x800001c0, 0x05020003, 0x05fdfbfd,
- 0x05c9f10a, 0x598c000d, 0x90001482, 0x05021006,
- 0x80000000, 0x4803180d, 0x80000580, 0x05f5fea4,
- 0x0500000e, 0x05fdfeff, 0x0502000c, 0x05fdffe4,
- 0x42000000, 0x0010e46d, 0x0521fec6, 0x05fdfdf8,
- 0x05000006, 0x0501f936, 0x4d380000, 0x60527000,
- 0x0009f800, 0x5c027000, 0x05fdfbe6, 0x05c9f0f3,
+ 0x5c032000, 0x1c01f000, 0x4933c857, 0x05fdfd02,
+ 0x4df00000, 0x598c000b, 0x80026540, 0x0500000f,
+ 0x59300004, 0x84000520, 0x48026004, 0x05fdff89,
+ 0x05000011, 0x05fdfc4e, 0x604e7000, 0x59300004,
+ 0x8c00050c, 0x000a0839, 0x5c03e000, 0x05fc0ce3,
+ 0x90000541, 0x1c01f000, 0x916c1581, 0x05fc07fb,
+ 0x916c1584, 0x05fc07f9, 0x42001000, 0x00105303,
+ 0x05f5fde7, 0x5c03e000, 0x05fc0cd8, 0x80000580,
+ 0x1c01f000, 0x4d300000, 0x4d180000, 0x4d3c0000,
+ 0x05fdfce1, 0x4df00000, 0x643da8e4, 0x643f78e4,
+ 0x0501fa06, 0x417a3000, 0x811808c8, 0x82040c00,
+ 0x0000b037, 0x58066005, 0x813261c0, 0x0500000b,
+ 0x417a7800, 0x05e5fe2d, 0x05000007, 0x59300c07,
+ 0x90040583, 0x05000003, 0x90040586, 0x05020002,
+ 0x600a7800, 0x0511f882, 0x811a3000, 0x91180485,
+ 0x05fc17ee, 0x61000800, 0x05c5fb5d, 0x642b78e4,
+ 0x6429a8e4, 0x5c03e000, 0x05fc0cb4, 0x5c027800,
+ 0x5c023000, 0x5c026000, 0x1c01f000, 0x4803c856,
+ 0x4d300000, 0x05fdfcbc, 0x4df00000, 0x59c80840,
+ 0x84040d74, 0x90040550, 0x48039040, 0x59c41008,
+ 0x4c040000, 0x4c080000, 0x82081500, 0xffffff7f,
+ 0x480b8808, 0x600c1000, 0x0501f9d1, 0x598e600b,
+ 0x813261c0, 0x05fe0fa9, 0x050009d4, 0x4a01a8e5,
+ 0x00000800, 0x0501f809, 0x5c001000, 0x5c000800,
+ 0x480b8808, 0x48079040, 0x5c03e000, 0x05fc0c93,
+ 0x5c026000, 0x1c01f000, 0x4d380000, 0x4d180000,
+ 0x4d300000, 0x4d900000, 0x4dd00000, 0x4da40000,
+ 0x4d140000, 0x4cd80000, 0x417a3000, 0x05f5ff04,
+ 0x811a3000, 0x91180585, 0x05fe07fd, 0x0501f9ab,
+ 0x0502000a, 0x5c01b000, 0x5c022800, 0x5c034800,
+ 0x5c03a000, 0x5c032000, 0x5c026000, 0x5c023000,
+ 0x5c027000, 0x1c01f000, 0x0501f9c8, 0x59926005,
+ 0x4933c857, 0x05fdfeba, 0x813261c0, 0x05fc07f2,
+ 0x612a7000, 0x640e6203, 0x0009f839, 0x05fdf7ee,
+ 0x4d300000, 0x4d180000, 0x4d900000, 0x05fdfc7a,
+ 0x60001000, 0x598c0800, 0x90040585, 0x05000998,
+ 0x417a3000, 0x811b20c8, 0x83932400, 0x0000b037,
+ 0x59900002, 0x90000581, 0x0502000a, 0x60100800,
+ 0x59926005, 0x59300013, 0x82000500, 0xfff00000,
+ 0x80000540, 0x05000002, 0x60380800, 0x05f5feb3,
+ 0x811a3000, 0x91180485, 0x05fc17ef, 0x59c81040,
+ 0x84081534, 0x480b9040, 0x05fdfc50, 0x5c032000,
+ 0x5c023000, 0x5c026000, 0x1c01f000, 0x4933c857,
0x4d900000, 0x4dd00000, 0x4da40000, 0x4d140000,
- 0x4cd80000, 0x4d300000, 0x05f5feb5, 0x05fdfbec,
- 0x59c400af, 0x800001c0, 0x05000022, 0x0501f929,
- 0x59926005, 0x4933c857, 0x59300004, 0x8c000516,
- 0x05000009, 0x05fdfeaf, 0x0502001a, 0x05fdfb19,
- 0x05fdfbd0, 0x42000800, 0x80000804, 0x0005fe9d,
- 0x0501f014, 0x60c018ea, 0x0501f8e9, 0x05020003,
- 0x05f5fe7d, 0x0501f00f, 0x05fdfea2, 0x0502000d,
- 0x05fdffb7, 0x42000000, 0x0010e46e, 0x0521fe99,
- 0x59300004, 0x8c00050c, 0x05020002, 0x640e6203,
- 0x4d380000, 0x612a7000, 0x0009f800, 0x5c027000,
- 0x05fdfbb8, 0x5c026000, 0x5c01b000, 0x5c022800,
- 0x5c034800, 0x5c03a000, 0x5c032000, 0x05c9f0bf,
- 0x4c600000, 0x4d900000, 0x4dd00000, 0x4da40000,
- 0x4d140000, 0x4cd80000, 0x4d300000, 0x4d2c0000,
- 0x05fdfbb7, 0x0501f8f7, 0x59926005, 0x813261c0,
- 0x05000040, 0x05e9ff4d, 0x05020005, 0x4178c000,
- 0x0505fa10, 0x05000002, 0x6004c000, 0x05e9ff47,
- 0x05020005, 0x8060c1c0, 0x05000003, 0x0505fa30,
- 0x0501f034, 0x05f5fe5f, 0x05020032, 0x4933c857,
- 0x0501f892, 0x05020015, 0x05f5fe69, 0x813261c0,
- 0x0500002c, 0x59325809, 0x812e59c0, 0x05bc0c63,
- 0x05e9ff36, 0x0502001c, 0x59c40093, 0x4803c857,
- 0x800001c0, 0x05020009, 0x592c020c, 0x84000550,
- 0x48025a0c, 0x05edf818, 0x0502001e, 0x592c020c,
- 0x84000510, 0x48025a0c, 0x05f5fe33, 0x0501f019,
- 0x42000000, 0x0010e46e, 0x0521fe52, 0x05fdfdbe,
- 0x592c020c, 0x84000550, 0x48025a0c, 0x4d380000,
- 0x612a7000, 0x640e6203, 0x0009f800, 0x5c027000,
- 0x0501f00c, 0x59901007, 0x800811c0, 0x05fe07f1,
- 0x59c408af, 0x82040480, 0x000003e8, 0x05fe17ed,
- 0x80081000, 0x480b2007, 0x05f5fe1b, 0x05e1ff4c,
- 0x5c025800, 0x5c026000, 0x5c01b000, 0x5c022800,
- 0x5c034800, 0x5c03a000, 0x5c032000, 0x5c00c000,
- 0x05fdf35c, 0x4d300000, 0x4d2c0000, 0x05fdfb68,
- 0x598e600b, 0x4933c857, 0x813261c0, 0x0500003e,
- 0x59c41004, 0x480bc857, 0x8c080500, 0x05000007,
- 0x05e9fefa, 0x05020012, 0x05e9ffe3, 0x05020036,
- 0x05f5fdfb, 0x0501f034, 0x82080500, 0x000001fe,
- 0x05fe07fc, 0x59c8010b, 0x4803c857, 0x8c000500,
- 0x05fc07f8, 0x42000000, 0x0010e4b7, 0x0521fe19,
- 0x05fdfe4c, 0x05000877, 0x0501f027, 0x598c000d,
- 0x80000540, 0x0502000e, 0x59c408af, 0x82040480,
- 0x000003e8, 0x0502100a, 0x598c080d, 0x80040800,
- 0x4807180d, 0x05f5fde2, 0x42000000, 0x0010e3a7,
- 0x0521fe08, 0x05e1ff16, 0x0501f017, 0x42000000,
- 0x0010e46d, 0x0521fe03, 0x05fdfdc8, 0x813261c0,
- 0x05020003, 0x0501f85f, 0x0501f00f, 0x59300407,
- 0x90000583, 0x05020007, 0x59325809, 0x812e59c0,
- 0x05000004, 0x592c020c, 0x84000550, 0x48025a0c,
- 0x0501f867, 0x4d380000, 0x60527000, 0x0009f800,
- 0x5c027000, 0x5c025800, 0x5c026000, 0x05fdf315,
- 0x59c40804, 0x83180400, 0x00108a0a, 0x50000000,
+ 0x4cd80000, 0x4d380000, 0x05fdfc53, 0x4df00000,
+ 0x59300004, 0x8c00053e, 0x05020005, 0x8c000520,
+ 0x0500001d, 0x05fdfb71, 0x0501f01b, 0x598c000b,
+ 0x81300580, 0x0500000e, 0x0511f920, 0x05020020,
+ 0x0501f928, 0x0500001e, 0x48038804, 0x0501f983,
+ 0x05c1fd1d, 0x05fdfb79, 0x61267000, 0x59300004,
+ 0x8c00050c, 0x0502000b, 0x0501f00b, 0x59c40004,
+ 0x8c000504, 0x05000012, 0x64138804, 0x05fdfb8c,
+ 0x604e7000, 0x59300004, 0x8c00050c, 0x05000002,
+ 0x0009f839, 0x5c03e000, 0x05fc0c20, 0x5c027000,
+ 0x5c01b000, 0x5c022800, 0x5c034800, 0x5c03a000,
+ 0x5c032000, 0x80000580, 0x1c01f000, 0x5c03e000,
+ 0x05fc0c16, 0x5c027000, 0x5c01b000, 0x5c022800,
+ 0x5c034800, 0x5c03a000, 0x5c032000, 0x90000541,
+ 0x1c01f000, 0x59300407, 0x90000583, 0x05020007,
+ 0x0511fc9a, 0x05000005, 0x59301009, 0x5808040c,
+ 0x84000550, 0x4800140c, 0x1c01f000, 0x4a01a8e5,
+ 0x00000800, 0x05fdfc10, 0x59c400af, 0x800001c0,
+ 0x05020003, 0x05fdfbfd, 0x05c5f4cc, 0x598c000d,
+ 0x90001482, 0x05021006, 0x80000000, 0x4803180d,
+ 0x80000580, 0x05f5fe4a, 0x0500000e, 0x05fdfeff,
+ 0x0502000c, 0x05fdffe4, 0x42000000, 0x00112411,
+ 0x0525f983, 0x05fdfdf8, 0x05000006, 0x0501f936,
+ 0x4d380000, 0x60527000, 0x0009f839, 0x5c027000,
+ 0x05fdfbe6, 0x05c5f4b5, 0x4d900000, 0x4dd00000,
+ 0x4da40000, 0x4d140000, 0x4cd80000, 0x4d300000,
+ 0x05f5fe5b, 0x05fdfbec, 0x59c400af, 0x800001c0,
+ 0x05000022, 0x0501f929, 0x59926005, 0x4933c857,
+ 0x59300004, 0x8c000516, 0x05000009, 0x05fdfeaf,
+ 0x0502001a, 0x05fdfb19, 0x05fdfbd0, 0x42000800,
+ 0x80000804, 0x0005fed4, 0x0501f014, 0x60c018ea,
+ 0x0501f8e9, 0x05020003, 0x05f5fe23, 0x0501f00f,
+ 0x05fdfea2, 0x0502000d, 0x05fdffb7, 0x42000000,
+ 0x00112412, 0x0525f956, 0x59300004, 0x8c00050c,
+ 0x05020002, 0x640e6203, 0x4d380000, 0x612a7000,
+ 0x0009f839, 0x5c027000, 0x05fdfbb8, 0x5c026000,
+ 0x5c01b000, 0x5c022800, 0x5c034800, 0x5c03a000,
+ 0x5c032000, 0x05c5f481, 0x4c600000, 0x4d900000,
+ 0x4dd00000, 0x4da40000, 0x4d140000, 0x4cd80000,
+ 0x4d300000, 0x4d2c0000, 0x05fdfbb7, 0x0501f8f7,
+ 0x59926005, 0x813261c0, 0x05000040, 0x05e9fd79,
+ 0x05020005, 0x4178c000, 0x0505fa46, 0x05000002,
+ 0x6004c000, 0x05e9fd73, 0x05020005, 0x8060c1c0,
+ 0x05000003, 0x0505fa66, 0x0501f034, 0x05f5fe05,
+ 0x05020032, 0x4933c857, 0x0501f892, 0x05020015,
+ 0x05f5fe0f, 0x813261c0, 0x0500002c, 0x59325809,
+ 0x812e59c0, 0x05b80fe0, 0x05e9fd62, 0x0502001c,
+ 0x59c40093, 0x4803c857, 0x800001c0, 0x05020009,
+ 0x592c020c, 0x84000550, 0x48025a0c, 0x05e9fe44,
+ 0x0502001e, 0x592c020c, 0x84000510, 0x48025a0c,
+ 0x05f5fdd9, 0x0501f019, 0x42000000, 0x00112412,
+ 0x0525f90f, 0x05fdfdbe, 0x592c020c, 0x84000550,
+ 0x48025a0c, 0x4d380000, 0x612a7000, 0x640e6203,
+ 0x0009f839, 0x5c027000, 0x0501f00c, 0x59901007,
+ 0x800811c0, 0x05fe07f1, 0x59c408af, 0x82040480,
+ 0x000003e8, 0x05fe17ed, 0x80081000, 0x480b2007,
+ 0x05f5fdc1, 0x05e1fc85, 0x5c025800, 0x5c026000,
+ 0x5c01b000, 0x5c022800, 0x5c034800, 0x5c03a000,
+ 0x5c032000, 0x5c00c000, 0x05fdf35c, 0x4d300000,
+ 0x4d2c0000, 0x05fdfb68, 0x598e600b, 0x4933c857,
+ 0x813261c0, 0x0500003e, 0x59c41004, 0x480bc857,
+ 0x8c080500, 0x05000007, 0x05e9fd26, 0x05020012,
+ 0x05e9fe0f, 0x05020036, 0x05f5fda1, 0x0501f034,
+ 0x82080500, 0x000001fe, 0x05fe07fc, 0x59c8010b,
+ 0x4803c857, 0x8c000500, 0x05fc07f8, 0x42000000,
+ 0x0011245b, 0x0525f8d6, 0x05fdfe4c, 0x05000877,
+ 0x0501f027, 0x598c000d, 0x80000540, 0x0502000e,
+ 0x59c408af, 0x82040480, 0x000003e8, 0x0502100a,
+ 0x598c080d, 0x80040800, 0x4807180d, 0x05f5fd88,
+ 0x42000000, 0x00112348, 0x0525f8c5, 0x05e1fc4f,
+ 0x0501f017, 0x42000000, 0x00112411, 0x0525f8c0,
+ 0x05fdfdc8, 0x813261c0, 0x05020003, 0x0501f85f,
+ 0x0501f00f, 0x59300407, 0x90000583, 0x05020007,
+ 0x59325809, 0x812e59c0, 0x05000004, 0x592c020c,
+ 0x84000550, 0x48025a0c, 0x0501f867, 0x4d380000,
+ 0x60527000, 0x0009f839, 0x5c027000, 0x5c025800,
+ 0x5c026000, 0x05fdf315, 0x59c40804, 0x83180400,
+ 0x00108ec8, 0x50000000, 0x80040500, 0x1c01f000,
+ 0x59c40804, 0x83180400, 0x00108ecd, 0x50000000,
0x80040500, 0x1c01f000, 0x59c40804, 0x83180400,
- 0x00108a0f, 0x50000000, 0x80040500, 0x1c01f000,
- 0x59c40804, 0x83180400, 0x00108a19, 0x50000000,
- 0x80040500, 0x1c01f000, 0x59c80840, 0x82040d00,
- 0x000e0000, 0x83180400, 0x00108a1e, 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, 0x480bc857, 0x05fdfadd, 0x4df00000,
- 0x480b1800, 0x5c03e000, 0x05fc0aca, 0x1c01f000,
- 0x4803c856, 0x05fdfad6, 0x4df00000, 0x497b180b,
- 0x497b1801, 0x497b180c, 0x497b180d, 0x497b180e,
- 0x598c0000, 0x90000583, 0x05000006, 0x916c0582,
- 0x05020003, 0x64171800, 0x0501f002, 0x64031800,
- 0x5c03e000, 0x05fc0ab7, 0x1c01f000, 0x59300004,
- 0x8c00050c, 0x05020002, 0x64066203, 0x1c01f000,
- 0x91180485, 0x05be1b85, 0x491bc857, 0x811b20c8,
- 0x83932400, 0x0000b037, 0x8119b0c8, 0x82d9b400,
- 0x0000bf32, 0x811ba0ca, 0x83d3a400, 0x00007600,
- 0x83180400, 0x00108a67, 0x50034800, 0x811a28c2,
- 0x83162c00, 0x00006100, 0x1c01f000, 0x0010e27c,
- 0x0010e295, 0x0010e2ae, 0x0010e2c7, 0x0010e2e0,
- 0x4933c857, 0x59300407, 0x90000c92, 0x05021015,
- 0x05011000, 0x0c01f001, 0x00108a84, 0x00108b2a,
- 0x00108e69, 0x00108ecb, 0x00108b2a, 0x00108e69,
- 0x00108ecb, 0x00108a84, 0x00108b2a, 0x00108a84,
- 0x00108a84, 0x00108a84, 0x00108a84, 0x00108a84,
- 0x00108a84, 0x00108a84, 0x00108a88, 0x00108a88,
- 0x4803c857, 0x05fdfa8e, 0x05fdf9e3, 0x05fdf27d,
- 0x42001000, 0x0010e387, 0x50081000, 0x4930100c,
- 0x58080002, 0x82000580, 0x00000100, 0x0502003d,
- 0x59325809, 0x812e59c0, 0x05bc0b48, 0x492fc856,
- 0x5932680a, 0x83340580, 0x00110210, 0x05000025,
- 0x592c040f, 0x82000500, 0x0000e000, 0x05000003,
- 0x0501fbc6, 0x0501f002, 0x0501fbb6, 0x592c040d,
- 0x82000500, 0x000000ff, 0x90000583, 0x0500082a,
- 0x592c0011, 0x90000503, 0x05000006, 0x90000583,
- 0x80000000, 0x58d00802, 0x80040540, 0x4801a002,
- 0x42001000, 0x0010e387, 0x50081000, 0x4930100b,
- 0x492c100a, 0x90d00406, 0x48001003, 0x592c0004,
- 0x48001006, 0x592c0011, 0x48001005, 0x592c0012,
- 0x48001007, 0x592c0013, 0x48001008, 0x0001f021,
- 0x592c080e, 0x48066802, 0x82040500, 0x00ffff00,
- 0x05000007, 0x497a6a12, 0x59a8103d, 0x82081500,
- 0x00ffff00, 0x80080580, 0x05fe07d2, 0x82040d00,
- 0x000000ff, 0x800408d0, 0x48066a12, 0x05fdf7cd,
- 0x1c01f000, 0x59a80249, 0x8c000508, 0x0500000c,
- 0x59a8004d, 0x82000500, 0x0000ffff, 0x59c40880,
- 0x80040d80, 0x05000006, 0x497b8880, 0x4c000000,
- 0x05c9f837, 0x5c000000, 0x48038880, 0x1c01f000,
- 0x4d2c0000, 0x4d300000, 0x4c580000, 0x4c540000,
- 0x4c500000, 0x5832580a, 0x812e59c0, 0x05bc0af7,
- 0x58300002, 0x82000580, 0x00000100, 0x05020021,
- 0x5830000b, 0x5832600c, 0x81300d80, 0x05020011,
- 0x0501f82d, 0x05020015, 0x592c0811, 0x90040c03,
- 0x80040904, 0x4004b000, 0x4200a000, 0x0010e06a,
- 0x0501fefa, 0x05000002, 0x9050a402, 0x4050a800,
- 0x0521fdea, 0x600011b8, 0x0501fe7f, 0x0501f007,
- 0x4803c857, 0x4933c857, 0x813261c0, 0x05000003,
- 0x0501f819, 0x05fc0f87, 0x5c00a000, 0x5c00a800,
- 0x5c00b000, 0x5c026000, 0x5c025800, 0x1c01f000,
- 0x5830000b, 0x5832600c, 0x4a006002, 0x00000100,
- 0x4803c857, 0x4933c857, 0x81300d80, 0x05fe07ed,
- 0x0501f809, 0x05fe07f1, 0x4803c857, 0x05f9fea3,
- 0x05be0ac6, 0x640a5a0a, 0x0001fb82, 0x0505f8b9,
- 0x05fdf7ea, 0x05fdf9fa, 0x4df00000, 0x598c000b,
- 0x81300580, 0x05020008, 0x598c0003, 0x81300580,
- 0x05020005, 0x5c03e000, 0x05fc09e2, 0x80000580,
- 0x1c01f000, 0x4803c857, 0x5c03e000, 0x05fc09dd,
- 0x90000541, 0x1c01f000, 0x59300403, 0xb0000ca0,
- 0x05be1aae, 0x83340d80, 0x00110210, 0x0502000a,
- 0x5930082a, 0x48066802, 0x82041500, 0x00ffff00,
- 0x05020004, 0x800408d0, 0x48066a12, 0x0501f002,
- 0x497a6a12, 0x4803c857, 0x0c01f001, 0x00108c83,
- 0x00108c9c, 0x00108cab, 0x00108dd2, 0x00108d99,
- 0x00108d9d, 0x00108da9, 0x00108dbf, 0x00108daf,
- 0x00108dbf, 0x00108df7, 0x00108dbf, 0x00108e36,
- 0x00108dbf, 0x00108e41, 0x00108dbf, 0x00108daf,
- 0x00108dbf, 0x00108e45, 0x00108b9b, 0x00108b9b,
- 0x00108b9b, 0x00108b9b, 0x00108b9b, 0x00108b9b,
- 0x00108b9b, 0x00108b9b, 0x00108b9b, 0x00108b9b,
- 0x00108b9b, 0x00108ee4, 0x00108ef9, 0x00108f01,
- 0x00108b9b, 0x00108f18, 0x00108da9, 0x00108b9b,
- 0x00108da9, 0x00108dbf, 0x00108b9b, 0x00108cab,
- 0x00108dd2, 0x00108b9b, 0x00108f60, 0x00108dbf,
- 0x00108b9b, 0x00108f6e, 0x00108dbf, 0x00108b9b,
- 0x00108daf, 0x00108c76, 0x00108b9c, 0x00108b9b,
- 0x00108f8a, 0x00108fc0, 0x00109046, 0x00108b9b,
- 0x00109054, 0x00108da7, 0x00109049, 0x00108b9b,
- 0x00108f22, 0x00109089, 0x00108b9b, 0x00108b9b,
- 0x00108b9b, 0x00108b9b, 0x00108baf, 0x00108c10,
- 0x00108c1a, 0x00108b9b, 0x00108b9b, 0x00108b9b,
- 0x00108c4c, 0x00108c54, 0x00108b9b, 0x00108b9b,
- 0x00108bc0, 0x00108bea, 0x001090be, 0x001090f3,
- 0x00109114, 0x00108b9b, 0x00108b9b, 0x00108b9b,
- 0x001090e9, 0x0010906b, 0x00108f8a, 0x001092f9,
- 0x00108b9b, 0x0010933a, 0x001092ef, 0x00109347,
- 0x00108b9b, 0x00109362, 0x001092f5, 0x05bdfa3f,
- 0x0501fab8, 0x59325809, 0x592c000d, 0x4801a006,
- 0x592c000e, 0x4801a007, 0x592c000f, 0x4801a008,
- 0x592c0010, 0x4801a009, 0x592c0011, 0x4801a00a,
- 0x4979a00b, 0x592c080d, 0x82040d00, 0x00000fff,
- 0x80040904, 0x600011b8, 0x0501f5cb, 0x4a026202,
- 0x0000ffff, 0x0501faa3, 0x4d2c0000, 0x4a01a006,
- 0x05000000, 0x59325809, 0x592c000d, 0x4801a007,
- 0x592c000e, 0x4801a008, 0x592c000f, 0x4801a009,
- 0x5c025800, 0x60100800, 0x600011b8, 0x0501f5ba,
- 0x4c580000, 0x4c500000, 0x4c540000, 0x4d2c0000,
- 0x0501fa90, 0x5930040d, 0x90000503, 0x05000006,
- 0x90000583, 0x80000000, 0x58d00802, 0x80040540,
- 0x4801a002, 0x59325809, 0x4200a800, 0x0010e06a,
- 0x592cb209, 0x9058b403, 0x8058b104, 0x912ca40a,
- 0x0521fcd3, 0x40580000, 0x8054ac00, 0x592c0001,
- 0x80000540, 0x05000003, 0x40025800, 0x05fdf7f5,
- 0x4200a000, 0x0010e06a, 0x4050a800, 0x5930b40d,
- 0x9058b403, 0x8058b104, 0x40580800, 0x0521fcff,
- 0x600011b8, 0x5c025800, 0x5c00a800, 0x5c00a000,
- 0x5c00b000, 0x0501f590, 0x4c580000, 0x4c500000,
- 0x4c540000, 0x4d2c0000, 0x42034800, 0x0010e063,
- 0x0501fa72, 0x59325809, 0x592c0805, 0x4807c857,
- 0x40041000, 0x80040904, 0x90081503, 0x05000007,
- 0x80040800, 0x90081583, 0x80081000, 0x58d00002,
- 0x80080540, 0x4801a002, 0x4a025809, 0x02000000,
- 0x90d0ac06, 0x592cb011, 0x912ca409, 0x0521fca4,
- 0x40580000, 0x8054ac00, 0x592e5801, 0x41780000,
- 0x812e5d40, 0x05fe07f8, 0x600011b8, 0x5c025800,
- 0x5c00a800, 0x5c00a000, 0x5c00b000, 0x0501f56a,
- 0x0501fa44, 0x4a01a006, 0x78000000, 0x5930001e,
- 0x840001c0, 0x4801a407, 0x4979a207, 0x60080800,
- 0x600011b8, 0x0501f560, 0x4c580000, 0x4c540000,
- 0x4c500000, 0x0501fa45, 0x4a01a006, 0x02000000,
- 0x5932481d, 0x59240001, 0x4801a008, 0x59240002,
- 0x4801a009, 0x59240003, 0x4801a00a, 0x59240004,
- 0x4801a00b, 0x5930001e, 0x82000d80, 0x0000e000,
- 0x0500000e, 0x82000d80, 0x0000df00, 0x05000004,
- 0x6441a407, 0x60180800, 0x0501f015, 0x42001800,
- 0x0010dd46, 0x05bdfceb, 0x600001be, 0x4200a000,
- 0x0010dd46, 0x0501f007, 0x42001800, 0x0010dd53,
- 0x05bdfce4, 0x600001c0, 0x4200a000, 0x0010dd53,
- 0x90000550, 0x4801a407, 0x64d1a207, 0x6034b000,
- 0x90d0ac0c, 0x0521fc62, 0x604c0800, 0x600011b8,
- 0x5c00a000, 0x5c00a800, 0x5c00b000, 0x0501f52e,
- 0x0501fa08, 0x4a01a006, 0x63000028, 0x5930001e,
- 0x4801a007, 0x60080800, 0x600011b8, 0x0501f526,
- 0x0501fa0e, 0x41780000, 0x41780800, 0x42002000,
- 0x00080000, 0x0c01f80e, 0x80000000, 0x80040800,
- 0x60301000, 0x82080540, 0x02000000, 0x4801a006,
- 0x800408e0, 0x5930001e, 0x80040540, 0x4801a007,
- 0x80080904, 0x600011b8, 0x0501f513, 0x00108c6c,
- 0x00108c6e, 0x00108c70, 0x00108c72, 0x00108c74,
- 0x4811a008, 0x1c01f000, 0x4811a009, 0x1c01f000,
- 0x4811a00a, 0x1c01f000, 0x4811a00b, 0x1c01f000,
- 0x4811a00c, 0x1c01f000, 0x4a02600a, 0x00110210,
- 0x59a8003d, 0x82000500, 0x000000ff, 0x800000d0,
- 0x42026800, 0x00110210, 0x48026a12, 0x0501fa3c,
- 0x41780800, 0x600010b8, 0x0501f4f7, 0x0501f9d1,
- 0x4a01a006, 0x52000000, 0x4979a007, 0x5932481d,
- 0x59240400, 0x90000503, 0x05000005, 0x59240400,
- 0x80000110, 0x05c5fe55, 0x4805a007, 0x59240001,
- 0x4801a008, 0x59240002, 0x4801a009, 0x59240003,
- 0x4801a00a, 0x59240004, 0x4801a00b, 0x59240005,
- 0x4801a00c, 0x601c0800, 0x600011b8, 0x0501f4de,
- 0x4a026202, 0x0000ffff, 0x0501f9b6, 0x4a01a006,
- 0x05000000, 0x5932481d, 0x59240005, 0x4801a007,
- 0x59240001, 0x59240802, 0x4801a008, 0x4805a009,
- 0x60100800, 0x600011b8, 0x0501f4cf, 0x4a026202,
- 0x0000ffff, 0x0501f9a7, 0x4d3c0000, 0x417a7800,
- 0x05e5fc43, 0x5c027800, 0x4a01a006, 0x03000000,
- 0x59340403, 0x82000580, 0x000007fe, 0x0502008e,
- 0x4a01a006, 0x04000000, 0x59a80249, 0x8c000506,
- 0x05000004, 0x5930081d, 0x58040408, 0x4801a001,
- 0x5934000a, 0x84000500, 0x4802680a, 0x59a80249,
- 0x8c000508, 0x05000010, 0x59a8004d, 0x4801a007,
- 0x59a8004e, 0x82000500, 0x07deffff, 0x599c0818,
- 0x8c040516, 0x05000002, 0x8400056a, 0x4801a008,
- 0x4a01a009, 0x00002710, 0x59a80050, 0x4801a00a,
- 0x0501f046, 0x59a8004d, 0x59a81249, 0x8c080506,
- 0x05000003, 0x82000500, 0xffff0000, 0x4801a007,
- 0x05e9fbd2, 0x0502000e, 0x59300c03, 0xb0041591,
- 0x0500000b, 0x59a80ccc, 0x8c04050a, 0x05020008,
- 0x497b8880, 0x82000500, 0x0000ffff, 0x4c000000,
- 0x05c5fe27, 0x5c000000, 0x48038880, 0x59a8004e,
- 0x05e9fbc2, 0x05020006, 0x82000500, 0xb7ffffff,
- 0x82000540, 0x80000000, 0x0501f003, 0x82000500,
- 0x3fffffff, 0x599c0818, 0x8c040516, 0x05000002,
- 0x8400056a, 0x05ddfe1a, 0x05000008, 0x59a80ccc,
- 0x8c040506, 0x05020005, 0x59a80a49, 0x8c080506,
- 0x05020002, 0x8400057c, 0x8d0c0510, 0x05000014,
- 0x59300c03, 0xb0041591, 0x05000011, 0x900415b1,
- 0x0500000f, 0x4c580000, 0x4c500000, 0x4c540000,
- 0x6010b000, 0x4200a000, 0x0010e50c, 0x90d0ac1f,
- 0x4c000000, 0x0521fb96, 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,
- 0x59a80249, 0x8c000508, 0x0502000b, 0x59a80051,
- 0x84000576, 0x4801a013, 0x59a80052, 0x4801a014,
- 0x59a80053, 0x4801a015, 0x59a80054, 0x4801a016,
- 0x0501f005, 0x4979a013, 0x4979a014, 0x4979a015,
- 0x4979a016, 0x59a80055, 0x84000576, 0x4801a017,
- 0x59a80056, 0x4801a018, 0x4979a019, 0x4979a01a,
- 0x0501f052, 0x05fdfd88, 0x59a8004d, 0x4801a007,
- 0x4c640000, 0x4d2c0000, 0x59a8c84e, 0x050dff7e,
- 0x0500000d, 0x0511fe00, 0x0502000b, 0x592c020b,
- 0x8c00050e, 0x05000008, 0x8264cd00, 0x0000ffff,
- 0x592c000d, 0x82000500, 0xffff0000, 0x8064cd40,
- 0x0501f005, 0x59a80a49, 0x90040d30, 0x05000002,
- 0x8464cd36, 0x4865a008, 0x5c025800, 0x5c00c800,
- 0x59a8004f, 0x4801a009, 0x59a80050, 0x4801a00a,
- 0x59240001, 0x59240802, 0x4801a00b, 0x4805a00c,
- 0x59240003, 0x59240804, 0x4801a00d, 0x4805a00e,
- 0x4979a00f, 0x4979a010, 0x4979a011, 0x4979a012,
- 0x59340200, 0x8c000508, 0x05000005, 0x59a80051,
- 0x8400057e, 0x48035051, 0x0501f00b, 0x599c0018,
+ 0x00108ed7, 0x50000000, 0x80040500, 0x1c01f000,
+ 0x59c80840, 0x82040d00, 0x000e0000, 0x83180400,
+ 0x00108edc, 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, 0x480bc857,
+ 0x05fdfadd, 0x4df00000, 0x480b1800, 0x5c03e000,
+ 0x05fc0aca, 0x1c01f000, 0x4803c856, 0x05fdfad6,
+ 0x4df00000, 0x497b180b, 0x497b1801, 0x497b180c,
+ 0x497b180d, 0x497b180e, 0x598c0000, 0x90000583,
+ 0x05000006, 0x916c0582, 0x05020003, 0x64171800,
+ 0x0501f002, 0x64031800, 0x5c03e000, 0x05fc0ab7,
+ 0x1c01f000, 0x59300004, 0x8c00050c, 0x05020002,
+ 0x64066203, 0x1c01f000, 0x91180485, 0x05ba1f02,
+ 0x491bc857, 0x811b20c8, 0x83932400, 0x0000b037,
+ 0x8119b0c8, 0x82d9b400, 0x0000bf32, 0x811ba0ca,
+ 0x83d3a400, 0x00007600, 0x83180400, 0x00108f25,
+ 0x50034800, 0x811a28c2, 0x83162c00, 0x00006100,
+ 0x1c01f000, 0x00112216, 0x0011222f, 0x00112248,
+ 0x00112261, 0x0011227a, 0x4933c857, 0x59300407,
+ 0x90000c92, 0x05021015, 0x05011000, 0x0c01f001,
+ 0x00108f42, 0x00108fe8, 0x00109341, 0x001093af,
+ 0x00108fe8, 0x00109341, 0x001093af, 0x00108f42,
+ 0x00108fe8, 0x00108f42, 0x00108f42, 0x00108f42,
+ 0x00108f42, 0x00108f42, 0x00108f42, 0x00108f42,
+ 0x00108f46, 0x00108f46, 0x4803c857, 0x05fdfa8e,
+ 0x05fdf9e3, 0x05fdf27d, 0x42001000, 0x00112322,
+ 0x50081000, 0x4930100c, 0x58080002, 0x82000580,
+ 0x00000100, 0x0502003d, 0x59325809, 0x812e59c0,
+ 0x05b80ec5, 0x492fc856, 0x5932680a, 0x83340580,
+ 0x001141b4, 0x05000025, 0x592c040f, 0x82000500,
+ 0x0000e000, 0x05000003, 0x0501fbe0, 0x0501f002,
+ 0x0501fbd0, 0x592c040d, 0x82000500, 0x000000ff,
+ 0x90000583, 0x0500082a, 0x592c0011, 0x90000503,
+ 0x05000006, 0x90000583, 0x80000000, 0x58d00802,
+ 0x80040540, 0x4801a002, 0x42001000, 0x00112322,
+ 0x50081000, 0x4930100b, 0x492c100a, 0x90d00406,
+ 0x48001003, 0x592c0004, 0x48001006, 0x592c0011,
+ 0x48001005, 0x592c0012, 0x48001007, 0x592c0013,
+ 0x48001008, 0x0001f029, 0x592c080e, 0x48066802,
+ 0x82040500, 0x00ffff00, 0x05000007, 0x497a6a12,
+ 0x59a81040, 0x82081500, 0x00ffff00, 0x80080580,
+ 0x05fe07d2, 0x82040d00, 0x000000ff, 0x800408d0,
+ 0x48066a12, 0x05fdf7cd, 0x1c01f000, 0x59a8024c,
+ 0x8c000508, 0x0500000c, 0x59a80050, 0x82000500,
+ 0x0000ffff, 0x59c40880, 0x80040d80, 0x05000006,
+ 0x497b8880, 0x4c000000, 0x05c5fbf9, 0x5c000000,
+ 0x48038880, 0x1c01f000, 0x4d2c0000, 0x4d300000,
+ 0x4c580000, 0x4c540000, 0x4c500000, 0x5832580a,
+ 0x812e59c0, 0x05b80e74, 0x58300002, 0x82000580,
+ 0x00000100, 0x05020021, 0x5830000b, 0x5832600c,
+ 0x81300d80, 0x05020011, 0x0501f82d, 0x05020015,
+ 0x592c0811, 0x90040c03, 0x80040904, 0x4004b000,
+ 0x4200a000, 0x00112004, 0x0501ff2c, 0x05000002,
+ 0x9050a402, 0x4050a800, 0x0525f8a7, 0x600011b8,
+ 0x0501feb1, 0x0501f007, 0x4803c857, 0x4933c857,
+ 0x813261c0, 0x05000003, 0x0501f819, 0x05fc0f87,
+ 0x5c00a000, 0x5c00a800, 0x5c00b000, 0x5c026000,
+ 0x5c025800, 0x1c01f000, 0x5830000b, 0x5832600c,
+ 0x4a006002, 0x00000100, 0x4803c857, 0x4933c857,
+ 0x81300d80, 0x05fe07ed, 0x0501f809, 0x05fe07f1,
+ 0x4803c857, 0x05f9fe9e, 0x05ba0e43, 0x640a5a0a,
+ 0x0001fba8, 0x0505f910, 0x05fdf7ea, 0x05fdf9fa,
+ 0x4df00000, 0x598c000b, 0x81300580, 0x05020008,
+ 0x598c0003, 0x81300580, 0x05020005, 0x5c03e000,
+ 0x05fc09e2, 0x80000580, 0x1c01f000, 0x4803c857,
+ 0x5c03e000, 0x05fc09dd, 0x90000541, 0x1c01f000,
+ 0x59300403, 0xb0000ca0, 0x05ba1e2b, 0x83340d80,
+ 0x001141b4, 0x0502000a, 0x5930082a, 0x48066802,
+ 0x82041500, 0x00ffff00, 0x05020004, 0x800408d0,
+ 0x48066a12, 0x0501f002, 0x497a6a12, 0x4803c857,
+ 0x0c01f001, 0x00109148, 0x00109161, 0x00109170,
+ 0x0010929a, 0x00109261, 0x00109265, 0x00109271,
+ 0x00109287, 0x00109277, 0x00109287, 0x001092c7,
+ 0x00109287, 0x0010930e, 0x00109287, 0x00109319,
+ 0x00109287, 0x00109277, 0x00109287, 0x0010931d,
+ 0x00109060, 0x00109060, 0x00109060, 0x00109060,
+ 0x00109060, 0x00109060, 0x00109060, 0x00109060,
+ 0x00109060, 0x00109060, 0x00109060, 0x001093c8,
+ 0x001093dd, 0x001093e5, 0x00109060, 0x001093fc,
+ 0x00109271, 0x00109060, 0x00109271, 0x00109287,
+ 0x00109060, 0x00109170, 0x0010929a, 0x00109060,
+ 0x00109444, 0x00109287, 0x00109060, 0x00109452,
+ 0x00109287, 0x00109060, 0x00109277, 0x0010913b,
+ 0x00109061, 0x00109060, 0x0010946e, 0x001094a4,
+ 0x00109530, 0x00109060, 0x0010953e, 0x0010926f,
+ 0x00109533, 0x00109060, 0x00109406, 0x00109573,
+ 0x00109060, 0x00109060, 0x00109060, 0x00109060,
+ 0x00109074, 0x001090d5, 0x001090df, 0x00109060,
+ 0x00109060, 0x00109060, 0x00109111, 0x00109119,
+ 0x00109060, 0x00109060, 0x00109085, 0x001090af,
+ 0x001095a8, 0x001095dd, 0x001095fe, 0x00109060,
+ 0x00109060, 0x00109060, 0x001095d3, 0x00109555,
+ 0x0010946e, 0x001097ed, 0x00109060, 0x0010982e,
+ 0x001097e3, 0x0010983b, 0x00109060, 0x00109856,
+ 0x001097e9, 0x00109060, 0x00109060, 0x00109060,
+ 0x00109060, 0x00109060, 0x00109060, 0x00109060,
+ 0x05b9fdb5, 0x0501facb, 0x59325809, 0x592c000d,
+ 0x4801a006, 0x592c000e, 0x4801a007, 0x592c000f,
+ 0x4801a008, 0x592c0010, 0x4801a009, 0x592c0011,
+ 0x4801a00a, 0x4979a00b, 0x592c080d, 0x82040d00,
+ 0x00000fff, 0x80040904, 0x600011b8, 0x0501f5f6,
+ 0x4a026202, 0x0000ffff, 0x0501fab6, 0x4d2c0000,
+ 0x4a01a006, 0x05000000, 0x59325809, 0x592c000d,
+ 0x4801a007, 0x592c000e, 0x4801a008, 0x592c000f,
+ 0x4801a009, 0x5c025800, 0x60100800, 0x600011b8,
+ 0x0501f5e5, 0x4c580000, 0x4c500000, 0x4c540000,
+ 0x4d2c0000, 0x0501faa3, 0x5930040d, 0x90000503,
+ 0x05000006, 0x90000583, 0x80000000, 0x58d00802,
+ 0x80040540, 0x4801a002, 0x59325809, 0x4200a800,
+ 0x00112004, 0x592cb209, 0x9058b403, 0x8058b104,
+ 0x912ca40a, 0x0521ff89, 0x40580000, 0x8054ac00,
+ 0x592c0001, 0x80000540, 0x05000003, 0x40025800,
+ 0x05fdf7f5, 0x4200a000, 0x00112004, 0x4050a800,
+ 0x5930b40d, 0x9058b403, 0x8058b104, 0x40580800,
+ 0x0521ffb5, 0x600011b8, 0x5c025800, 0x5c00a800,
+ 0x5c00a000, 0x5c00b000, 0x0501f5bb, 0x4c580000,
+ 0x4c500000, 0x4c540000, 0x4d2c0000, 0x42034800,
+ 0x00111ffd, 0x0501fa85, 0x59325809, 0x592c0805,
+ 0x4807c857, 0x40041000, 0x80040904, 0x90081503,
+ 0x05000007, 0x80040800, 0x90081583, 0x80081000,
+ 0x58d00002, 0x80080540, 0x4801a002, 0x4a025809,
+ 0x02000000, 0x90d0ac06, 0x592cb011, 0x912ca409,
+ 0x0521ff5a, 0x40580000, 0x8054ac00, 0x592e5801,
+ 0x41780000, 0x812e5d40, 0x05fe07f8, 0x600011b8,
+ 0x5c025800, 0x5c00a800, 0x5c00a000, 0x5c00b000,
+ 0x0501f595, 0x0501fa57, 0x4a01a006, 0x78000000,
+ 0x5930001e, 0x840001c0, 0x4801a407, 0x4979a207,
+ 0x60080800, 0x600011b8, 0x0501f58b, 0x4c580000,
+ 0x4c540000, 0x4c500000, 0x0501fa58, 0x4a01a006,
+ 0x02000000, 0x5932481d, 0x59240001, 0x4801a008,
+ 0x59240002, 0x4801a009, 0x59240003, 0x4801a00a,
+ 0x59240004, 0x4801a00b, 0x5930001e, 0x82000d80,
+ 0x0000e000, 0x0500000e, 0x82000d80, 0x0000df00,
+ 0x05000004, 0x6441a407, 0x60180800, 0x0501f015,
+ 0x42001800, 0x00111ce0, 0x05bdf85d, 0x600001be,
+ 0x4200a000, 0x00111ce0, 0x0501f007, 0x42001800,
+ 0x00111ced, 0x05bdf856, 0x600001c0, 0x4200a000,
+ 0x00111ced, 0x90000550, 0x4801a407, 0x64d1a207,
+ 0x6034b000, 0x90d0ac0c, 0x0521ff18, 0x604c0800,
+ 0x600011b8, 0x5c00a000, 0x5c00a800, 0x5c00b000,
+ 0x0501f559, 0x0501fa1b, 0x4a01a006, 0x63000028,
+ 0x5930001e, 0x4801a007, 0x60080800, 0x600011b8,
+ 0x0501f551, 0x0501fa21, 0x41780000, 0x41780800,
+ 0x42002000, 0x00080000, 0x0c01f80e, 0x80000000,
+ 0x80040800, 0x60301000, 0x82080540, 0x02000000,
+ 0x4801a006, 0x800408e0, 0x5930001e, 0x80040540,
+ 0x4801a007, 0x80080904, 0x600011b8, 0x0501f53e,
+ 0x00109131, 0x00109133, 0x00109135, 0x00109137,
+ 0x00109139, 0x4811a008, 0x1c01f000, 0x4811a009,
+ 0x1c01f000, 0x4811a00a, 0x1c01f000, 0x4811a00b,
+ 0x1c01f000, 0x4811a00c, 0x1c01f000, 0x4a02600a,
+ 0x001141b4, 0x59a80040, 0x82000500, 0x000000ff,
+ 0x800000d0, 0x42026800, 0x001141b4, 0x48026a12,
+ 0x0501fa5b, 0x41780800, 0x600010b8, 0x0501f522,
+ 0x0501f9e4, 0x4a01a006, 0x52000000, 0x4979a007,
+ 0x5932481d, 0x59240400, 0x90000503, 0x05000005,
+ 0x59240400, 0x80000110, 0x05c5fa10, 0x4805a007,
+ 0x59240001, 0x4801a008, 0x59240002, 0x4801a009,
+ 0x59240003, 0x4801a00a, 0x59240004, 0x4801a00b,
+ 0x59240005, 0x4801a00c, 0x601c0800, 0x600011b8,
+ 0x0501f509, 0x4a026202, 0x0000ffff, 0x0501f9c9,
+ 0x4a01a006, 0x05000000, 0x5932481d, 0x59240005,
+ 0x4801a007, 0x59240001, 0x59240802, 0x4801a008,
+ 0x4805a009, 0x60100800, 0x600011b8, 0x0501f4fa,
+ 0x4a026202, 0x0000ffff, 0x0501f9ba, 0x4d3c0000,
+ 0x417a7800, 0x05e5f9f0, 0x5c027800, 0x4a01a006,
+ 0x03000000, 0x59340403, 0x82000580, 0x000007fe,
+ 0x0502008e, 0x4a01a006, 0x04000000, 0x59a8024c,
+ 0x8c000506, 0x05000004, 0x5930081d, 0x58040408,
+ 0x4801a001, 0x5934000a, 0x84000500, 0x4802680a,
+ 0x59a8024c, 0x8c000508, 0x05000010, 0x59a80050,
+ 0x4801a007, 0x59a80051, 0x82000500, 0x07deffff,
+ 0x599c0818, 0x8c040516, 0x05000002, 0x8400056a,
+ 0x4801a008, 0x4a01a009, 0x00002710, 0x59a80053,
+ 0x4801a00a, 0x0501f046, 0x59a80050, 0x59a8124c,
+ 0x8c080506, 0x05000003, 0x82000500, 0xffff0000,
+ 0x4801a007, 0x05e9f9f7, 0x0502000e, 0x59300c03,
+ 0xb0041591, 0x0500000b, 0x59a80cd1, 0x8c04050a,
+ 0x05020008, 0x497b8880, 0x82000500, 0x0000ffff,
+ 0x4c000000, 0x05c5f9e2, 0x5c000000, 0x48038880,
+ 0x59a80051, 0x05e9f9e7, 0x05020006, 0x82000500,
+ 0xb7ffffff, 0x82000540, 0x80000000, 0x0501f003,
+ 0x82000500, 0x3fffffff, 0x599c0818, 0x8c040516,
+ 0x05000002, 0x8400056a, 0x05ddfafb, 0x05000008,
+ 0x59a80cd1, 0x8c040506, 0x05020005, 0x59a80a4c,
+ 0x8c080506, 0x05020002, 0x8400057c, 0x8d0c0510,
+ 0x05000014, 0x59300c03, 0xb0041591, 0x05000011,
+ 0x900415b1, 0x0500000f, 0x4c580000, 0x4c500000,
+ 0x4c540000, 0x6010b000, 0x4200a000, 0x001124b0,
+ 0x90d0ac1f, 0x4c000000, 0x0521fe4c, 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,
- 0x05000005, 0x59340c03, 0x82040480, 0x000007f0,
- 0x0500100a, 0x59a80051, 0x4801a013, 0x59a80052,
- 0x4801a014, 0x59a80053, 0x4801a015, 0x59a80054,
+ 0x05000004, 0x59a8024c, 0x8c000508, 0x0502000b,
+ 0x59a80054, 0x84000576, 0x4801a013, 0x59a80055,
+ 0x4801a014, 0x59a80056, 0x4801a015, 0x59a80057,
0x4801a016, 0x0501f005, 0x4979a013, 0x4979a014,
- 0x4979a015, 0x4979a016, 0x59a80055, 0x4801a017,
- 0x59a80056, 0x4801a018, 0x59a80057, 0x4801a019,
- 0x59a80058, 0x4801a01a, 0x60740800, 0x600011b8,
- 0x0501f3e1, 0x0501f8bb, 0x4a01a006, 0x50000000,
- 0x05fdf7a9, 0x0501f8b7, 0x4a01a006, 0x21100014,
+ 0x4979a015, 0x4979a016, 0x59a80058, 0x84000576,
+ 0x4801a017, 0x59a80059, 0x4801a018, 0x4979a019,
+ 0x4979a01a, 0x0501f055, 0x05fdfd81, 0x59a80050,
+ 0x4801a007, 0x4c640000, 0x4d2c0000, 0x59a8c851,
+ 0x0511f842, 0x0500000d, 0x0511fee1, 0x0502000b,
+ 0x592c020b, 0x8c00050e, 0x05000008, 0x8264cd00,
+ 0x0000ffff, 0x592c000d, 0x82000500, 0xffff0000,
+ 0x8064cd40, 0x0501f005, 0x59a80a4c, 0x90040d30,
+ 0x05000002, 0x8464cd36, 0x4865a008, 0x5c025800,
+ 0x5c00c800, 0x59a80052, 0x4801a009, 0x59a80053,
+ 0x4801a00a, 0x59240001, 0x59240802, 0x4801a00b,
+ 0x4805a00c, 0x59240003, 0x59240804, 0x4801a00d,
+ 0x4805a00e, 0x4979a00f, 0x4979a010, 0x4979a011,
+ 0x4979a012, 0x59340200, 0x8c000508, 0x05000005,
+ 0x59a80054, 0x8400057e, 0x48035054, 0x0501f00e,
+ 0x599c0018, 0x8c000510, 0x05000014, 0x59a80006,
+ 0x8c00050a, 0x05000008, 0x59340c03, 0x82040480,
+ 0x000007f0, 0x0500100d, 0x82040480, 0x00000800,
+ 0x0502100a, 0x59a80054, 0x4801a013, 0x59a80055,
+ 0x4801a014, 0x59a80056, 0x4801a015, 0x59a80057,
+ 0x4801a016, 0x0501f005, 0x4979a013, 0x4979a014,
+ 0x4979a015, 0x4979a016, 0x59a80058, 0x4801a017,
+ 0x59a80059, 0x4801a018, 0x59a8005a, 0x4801a019,
+ 0x59a8005b, 0x4801a01a, 0x60740800, 0x600011b8,
+ 0x0501f409, 0x0501f8cb, 0x4a01a006, 0x50000000,
+ 0x05fdf7a6, 0x0501f8c7, 0x4a01a006, 0x21100014,
0x4979a007, 0x4979a008, 0x4979a009, 0x4979a00a,
- 0x60140800, 0x600011b8, 0x0501f3d3, 0x0501f8b4,
- 0x0501f002, 0x0501f8b9, 0x4a01a006, 0x02000000,
- 0x60040800, 0x600011b8, 0x0501f3cb, 0x0501f8b3,
+ 0x60140800, 0x600011b8, 0x0501f3fb, 0x0501f8c4,
+ 0x0501f002, 0x0501f8c9, 0x4a01a006, 0x02000000,
+ 0x60040800, 0x600011b8, 0x0501f3f3, 0x0501f8c3,
0x4a01a006, 0x02000000, 0x59300403, 0x900005b1,
- 0x05000002, 0x05fdf790, 0x0501fc38, 0x05000004,
- 0x4a01a001, 0x00fffffe, 0x05fdf709, 0x81a40800,
- 0x4a000801, 0x00fffffe, 0x05fdf705, 0x0501f8a3,
+ 0x05000002, 0x05fdf78d, 0x0501fc60, 0x05000004,
+ 0x4a01a001, 0x00fffffe, 0x05fdf706, 0x81a40800,
+ 0x4a000801, 0x00fffffe, 0x05fdf702, 0x0501f8b3,
0x4a01a006, 0x01000000, 0x5930041c, 0x80000540,
0x05000003, 0x4801a407, 0x0501f002, 0x640da407,
0x5930021c, 0x80000540, 0x05000003, 0x4801a207,
0x0501f003, 0x4a01a207, 0x00002a00, 0x60080800,
- 0x600011b8, 0x0501f3a8, 0x4a026202, 0x0000ffff,
- 0x0501f880, 0x4a01a406, 0x00002010, 0x6451a206,
+ 0x600011b8, 0x0501f3d0, 0x4a026202, 0x0000ffff,
+ 0x0501f890, 0x4a01a406, 0x00002010, 0x6451a206,
0x4a01a407, 0x00000800, 0x4a01a207, 0x00002000,
0x60000008, 0x59a80807, 0x8c04050c, 0x05000002,
- 0x80000580, 0x5932481d, 0x59240c00, 0x8c040508,
+ 0x80000580, 0x59300a16, 0x8c040514, 0x05000006,
+ 0x5930081e, 0x90040d30, 0x05000003, 0x80040540,
+ 0x0501f009, 0x5932481d, 0x59240c00, 0x8c040508,
0x05000004, 0x90000560, 0x8c04050a, 0x05020002,
0x90000550, 0x90000542, 0x5934080a, 0x8c040514,
0x05000005, 0x82040d00, 0x00000380, 0x80040540,
0x0501f006, 0x599c0818, 0x8c040518, 0x05000003,
- 0x82000540, 0x00000380, 0x0501f03c, 0x0501f86b,
+ 0x82000540, 0x00000380, 0x0501f044, 0x0501f873,
0x4a01a406, 0x00000210, 0x6451a206, 0x4a01a407,
0x00000800, 0x5934000a, 0x8c000516, 0x05000013,
0x59340c05, 0x90040530, 0x05000013, 0x59340a05,
@@ -9129,76 +9437,81 @@ static const uint32_t isp_2500_risc_code[] = {
0x00000400, 0x0501f006, 0x4a01a207, 0x00000700,
0x0501f003, 0x4a01a207, 0x00000800, 0x60000008,
0x59a80807, 0x8c04050c, 0x05000002, 0x80000580,
+ 0x59300a16, 0x8c040510, 0x05000006, 0x5930081e,
+ 0x90040d30, 0x05000003, 0x80040540, 0x0501f009,
0x5932481d, 0x59240c00, 0x8c040508, 0x05000004,
0x90000560, 0x8c04050a, 0x05020002, 0x90000550,
0x90000542, 0x59340a00, 0x8c04050e, 0x0500000b,
0x84000550, 0x599c1017, 0x8c08050a, 0x05020004,
0x8c04050a, 0x05000002, 0x8400054e, 0x8c04051c,
0x05000002, 0x84000552, 0x4801a20a, 0x60140800,
- 0x600011b8, 0x0501f344, 0x0501f82c, 0x4a01a006,
+ 0x600011b8, 0x0501f35c, 0x0501f82c, 0x4a01a006,
0x02100014, 0x4a01a007, 0x00000100, 0x4979a008,
0x4979a009, 0x4979a00a, 0x60140800, 0x600011b8,
- 0x0501f339, 0x0501f821, 0x4a01a006, 0x02000000,
- 0x05fdf642, 0x4933c857, 0x0501f81c, 0x4a01a006,
+ 0x0501f351, 0x0501f821, 0x4a01a006, 0x02000000,
+ 0x05fdf62f, 0x4933c857, 0x0501f81c, 0x4a01a006,
0x01000000, 0x642da407, 0x60080800, 0x600011b8,
- 0x0501f32d, 0x42005000, 0x32000000, 0x42006000,
- 0x08290000, 0x41786800, 0x41787800, 0x0501f2e9,
+ 0x0501f345, 0x42005000, 0x32000000, 0x42006000,
+ 0x08290000, 0x41786800, 0x41787800, 0x0501f2fb,
0x42005000, 0x22000000, 0x42006000, 0x01290000,
- 0x41786800, 0x41787800, 0x0501f2e2, 0x42005000,
+ 0x41786800, 0x41787800, 0x0501f2f4, 0x42005000,
0x33000000, 0x42006000, 0x08980000, 0x41786800,
- 0x41787800, 0x0501f2db, 0x42005000, 0x23000000,
+ 0x41787800, 0x0501f2ed, 0x42005000, 0x23000000,
0x42006000, 0x01980000, 0x41786800, 0x41787800,
- 0x0501f2d4, 0x59300403, 0x82000c80, 0x00000085,
- 0x05b81f6e, 0x82000c80, 0x00000093, 0x05ba1f6b,
- 0x82000480, 0x00000085, 0x0c01f001, 0x00108e82,
- 0x00108e81, 0x00108e81, 0x00108e81, 0x00108e81,
- 0x00108e81, 0x00108e82, 0x00108e81, 0x00108e81,
- 0x00108e81, 0x00108e81, 0x00108e81, 0x00108e81,
- 0x00108e89, 0x05b9ff59, 0x4933c857, 0x42034800,
- 0x0010e063, 0x0501f836, 0x41780800, 0x600010b8,
- 0x0501f2f1, 0x4d2c0000, 0x59325809, 0x4933c857,
- 0x492fc857, 0x812e59c0, 0x05b80f4c, 0x59340a12,
- 0x82040d00, 0x0000ff00, 0x592c000e, 0x82000500,
+ 0x0501f2e6, 0x59300403, 0x82000c80, 0x00000085,
+ 0x05b81ad1, 0x82000c80, 0x00000093, 0x05ba1ace,
+ 0x82000480, 0x00000085, 0x0c01f001, 0x0010935a,
+ 0x00109359, 0x00109359, 0x00109359, 0x00109359,
+ 0x00109359, 0x0010935a, 0x00109359, 0x00109359,
+ 0x00109359, 0x00109359, 0x00109359, 0x00109359,
+ 0x00109361, 0x05b9fabc, 0x4933c857, 0x42034800,
+ 0x00111ffd, 0x0501f842, 0x41780800, 0x600010b8,
+ 0x0501f309, 0x4d2c0000, 0x59325809, 0x4933c857,
+ 0x492fc857, 0x812e59c0, 0x05b80aaf, 0x41780800,
+ 0x05e9f830, 0x0500000d, 0x592c180d, 0x820c0500,
+ 0x00ffff00, 0x05000006, 0x59a81040, 0x82081500,
+ 0x00ffff00, 0x80080580, 0x05020004, 0x820c0d00,
+ 0x000000ff, 0x800408d0, 0x592c000e, 0x82000500,
0x000000ff, 0x900001c0, 0x80040540, 0x592c0c0b,
0x82040d00, 0x0000f000, 0x82040d80, 0x00003000,
0x05020003, 0x90000570, 0x0501f002, 0x90000551,
- 0x44034800, 0x81a5a000, 0x0501fb4c, 0x05020b51,
+ 0x44034800, 0x81a5a000, 0x0501fb58, 0x05020b5d,
0x60241000, 0x600c0800, 0x592c000d, 0x82000500,
0xff000000, 0x82001d80, 0x84000000, 0x05000006,
- 0x82001d80, 0x85000000, 0x05ba0f2c, 0x601c1000,
+ 0x82001d80, 0x85000000, 0x05ba0a83, 0x601c1000,
0x60040800, 0x912c1c0d, 0x500c0000, 0x4401a000,
0x800c1800, 0x80d1a000, 0x80081040, 0x05fe07fb,
- 0x600011b8, 0x5c025800, 0x0501f2bf, 0x42005000,
+ 0x600011b8, 0x5c025800, 0x0501f2cb, 0x42005000,
0x81000000, 0x42006000, 0x00090000, 0x41786800,
0x41787800, 0x59301407, 0x90081585, 0x05020003,
0x42006000, 0x00890000, 0x59301416, 0x8c08051a,
- 0x05000002, 0x60047800, 0x0501f272, 0x59300403,
- 0xb0000c93, 0x05ba1f0d, 0xb000048b, 0x05b81f0b,
+ 0x05000002, 0x60047800, 0x0501f278, 0x59300403,
+ 0xb0000c93, 0x05ba1a64, 0xb000048b, 0x05b81a62,
0x5932680a, 0x59368c03, 0x4803c857, 0x0c01f001,
- 0x00108f39, 0x00108f41, 0x00108f49, 0x00108f51,
- 0x00108edc, 0x00108edc, 0x00108edc, 0x00108f31,
- 0x05b9fefe, 0x42005000, 0x06000000, 0x42006000,
- 0x08290000, 0x41786800, 0x41787800, 0x0501f259,
- 0x4933c857, 0x05fdff6f, 0x4a01a006, 0x12000000,
+ 0x0010941d, 0x00109425, 0x0010942d, 0x00109435,
+ 0x001093c0, 0x001093c0, 0x001093c0, 0x00109415,
+ 0x05b9fa55, 0x42005000, 0x06000000, 0x42006000,
+ 0x08290000, 0x41786800, 0x41787800, 0x0501f25f,
+ 0x4933c857, 0x05fdff63, 0x4a01a006, 0x12000000,
0x59300407, 0x90000584, 0x05020003, 0x59340002,
0x0501f003, 0x5932481d, 0x59240005, 0x82000500,
0x00ffffff, 0x4801a007, 0x5930041b, 0x4801a408,
0x5930021b, 0x4801a208, 0x600c0800, 0x600011b8,
- 0x0501f281, 0x05fdff5b, 0x4a01a006, 0x0f000000,
+ 0x0501f28d, 0x05fdff4f, 0x4a01a006, 0x0f000000,
0x5930001e, 0x4801a007, 0x60080800, 0x600011b8,
- 0x0501f279, 0x05fdff61, 0x4a01a006, 0x02000000,
+ 0x0501f285, 0x05fdff55, 0x4a01a006, 0x02000000,
0x59c40085, 0x59880804, 0x80040c00, 0x48071004,
0x497b8885, 0x59880000, 0x4801a007, 0x59880001,
0x4801a008, 0x59880002, 0x4801a009, 0x59880003,
0x4801a00a, 0x59880004, 0x4801a00b, 0x59880005,
- 0x4801a00c, 0x601c0800, 0x600011b8, 0x0501f262,
- 0x4a026202, 0x0000ffff, 0x05fdff3a, 0x4a01a006,
+ 0x4801a00c, 0x601c0800, 0x600011b8, 0x0501f26e,
+ 0x4a026202, 0x0000ffff, 0x05fdff2e, 0x4a01a006,
0x62000000, 0x5930001e, 0x4801a007, 0x60080800,
- 0x600011b8, 0x0501f258, 0x05fdff32, 0x59300809,
+ 0x600011b8, 0x0501f264, 0x05fdff26, 0x59300809,
0x4c500000, 0x4c540000, 0x4c580000, 0x9004a40e,
- 0x5930b01e, 0x90d0ac06, 0x0521f97d, 0x5930081e,
+ 0x5930b01e, 0x90d0ac06, 0x0521fc14, 0x5930081e,
0x600011b8, 0x5c00b000, 0x5c00a800, 0x5c00a000,
- 0x0501f249, 0x05fdffac, 0x59300019, 0x4801a006,
+ 0x0501f255, 0x05fdffac, 0x59300019, 0x4801a006,
0x5930001a, 0x4801a007, 0x4a01a008, 0x00001000,
0x0501f020, 0x05fdffa4, 0x59300019, 0x4801a006,
0x5930001a, 0x4801a007, 0x4a01a008, 0x00004000,
@@ -9209,157 +9522,160 @@ static const uint32_t isp_2500_risc_code[] = {
0x0501f008, 0x05fdff8c, 0x59300019, 0x4801a006,
0x5930001a, 0x4801a007, 0x4a01a008, 0x00000200,
0x4979a009, 0x4979a00a, 0x4979a00b, 0x4979a00c,
- 0x4979a00d, 0x60200800, 0x600011b8, 0x0501f21a,
- 0x05fdff02, 0x4a01a006, 0x02000014, 0x4979a407,
- 0x4979a207, 0x59a8005f, 0x4801a008, 0x59a80060,
+ 0x4979a00d, 0x60200800, 0x600011b8, 0x0501f226,
+ 0x05fdfef6, 0x4a01a006, 0x02000014, 0x4979a407,
+ 0x4979a207, 0x59a80062, 0x4801a008, 0x59a80063,
0x4801a009, 0x4a01a00a, 0x00047878, 0x60140800,
- 0x600011b8, 0x0501f20c, 0x05fdfef4, 0x4a01a006,
+ 0x600011b8, 0x0501f218, 0x05fdfee8, 0x4a01a006,
0x02140018, 0x4a01a407, 0x00000800, 0x5930001e,
0x82000d00, 0xff000000, 0x900409c0, 0x4805a207,
0x82000500, 0x00ffffff, 0x4801a00a, 0x4979a408,
0x4979a208, 0x4979a409, 0x4979a209, 0x59a80006,
0x8c000500, 0x05000005, 0x4a01a006, 0x02100014,
0x60140800, 0x0501f003, 0x4979a00b, 0x60180800,
- 0x600011b8, 0x0501f1f0, 0x4933c857, 0x4937c857,
- 0x4d1c0000, 0x60d40800, 0x0511f988, 0x05020025,
+ 0x600011b8, 0x0501f1fc, 0x4933c857, 0x4937c857,
+ 0x4d1c0000, 0x60d40800, 0x0511fa3c, 0x05020025,
0x59300017, 0x591c0817, 0x80040580, 0x05020021,
- 0x05fdfec0, 0x4a01a006, 0x13000000, 0x5932382a,
+ 0x05fdfeb4, 0x4a01a006, 0x13000000, 0x5932382a,
0x59300403, 0xb0000597, 0x05000004, 0x591c0416,
- 0x8c000502, 0x05b80e3d, 0x591c001b, 0x4801a005,
+ 0x8c000502, 0x05b80994, 0x591c001b, 0x4801a005,
0x591c0407, 0x90000583, 0x05000007, 0x5930080a,
0x58040002, 0x82000500, 0x00ffffff, 0x4801a007,
0x0501f004, 0x5932481d, 0x59240005, 0x4801a007,
0x5930041b, 0x4801a408, 0x5930021b, 0x4801a208,
- 0x600c0800, 0x600011b8, 0x5c023800, 0x0501f1c6,
- 0x4803c856, 0x05f9fd5e, 0x598c000b, 0x81300580,
- 0x05ba0e22, 0x05f9fcb0, 0x59300403, 0xb0000597,
- 0x05040b07, 0x0005ffdc, 0x5c023800, 0x05f9f545,
+ 0x600c0800, 0x600011b8, 0x5c023800, 0x0501f1d2,
+ 0x4803c856, 0x05f9fd38, 0x598c000b, 0x81300580,
+ 0x05ba0979, 0x05f9fc8a, 0x59300403, 0xb0000597,
+ 0x05040b5d, 0x0009f810, 0x5c023800, 0x05f9f51f,
0x4803c856, 0x4d2c0000, 0x4d1c0000, 0x5932382a,
- 0x811e39c0, 0x05b80e15, 0x831c0580, 0xffffffff,
- 0x05000044, 0x591c0c07, 0x90040586, 0x0500000a,
- 0x90040583, 0x05000044, 0x64de6403, 0x640e641c,
+ 0x811e39c0, 0x05b8096c, 0x831c0580, 0xffffffff,
+ 0x0500004a, 0x591c0c07, 0x90040586, 0x0500000a,
+ 0x90040583, 0x0500004a, 0x64de6403, 0x640e641c,
0x4a02621c, 0x00001700, 0x5c023800, 0x5c025800,
- 0x0501f072, 0x0501f856, 0x42001000, 0x40000000,
- 0x591c0203, 0x591c0804, 0x8c04053e, 0x05020024,
- 0x90000c91, 0x0c001002, 0x05b9fdfc, 0x00108ff0,
- 0x00108fff, 0x00108ff1, 0x00108fff, 0x00108ff9,
- 0x00108ff0, 0x00108fff, 0x00108fff, 0x00108fff,
- 0x00108ff0, 0x00108ff0, 0x00108ff0, 0x00108ff0,
- 0x00108ff0, 0x00108fff, 0x00108ff0, 0x00108fff,
- 0x05b9fdea, 0x591c0416, 0x4803c857, 0x8c000518,
- 0x05000003, 0x8c000512, 0x05000007, 0x80001580,
- 0x0501f007, 0x80001580, 0x591c0014, 0x4803c857,
- 0x0501f00e, 0x42001000, 0x20000000, 0x591c0013,
- 0x4803c857, 0x8c00053c, 0x05000003, 0x80000580,
- 0x0501f006, 0x591c0014, 0x4803c857, 0x800001c0,
- 0x05020002, 0x591c0017, 0x4801a00a, 0x0501f01a,
- 0x0501f81f, 0x42001000, 0x40000000, 0x41780000,
- 0x05fdf7fa, 0x0501f81a, 0x591e5809, 0x812e59c0,
- 0x05b80dc6, 0x592c1013, 0x591c0013, 0x80080480,
- 0x4801a00a, 0x591c0203, 0x591c0804, 0x8c04053e,
- 0x05020005, 0x90000d82, 0x05000006, 0x90000d84,
- 0x05000004, 0x42001000, 0x40000000, 0x0501f002,
- 0x80001580, 0x4809a00b, 0x60180800, 0x600011b8,
- 0x5c023800, 0x5c025800, 0x0501f14f, 0x4803c856,
- 0x05fdfe36, 0x4a01a006, 0x02000000, 0x59300c1b,
- 0x4805a407, 0x59300a1b, 0x4805a207, 0x5932481d,
- 0x59241005, 0x5930080a, 0x58041802, 0x820c1d00,
- 0x00ffffff, 0x5930082a, 0x82040580, 0xffffffff,
- 0x05000007, 0x58040407, 0x90000583, 0x05020004,
- 0x4809a008, 0x480da009, 0x0501f003, 0x480da008,
- 0x4809a009, 0x1c01f000, 0x4803c856, 0x05fdfe1b,
- 0x0501f003, 0x4803c856, 0x05fdfe11, 0x4a01a006,
- 0x01000000, 0x5930041c, 0x4801a407, 0x5930021c,
- 0x4801a207, 0x60080800, 0x600011b8, 0x0501f126,
- 0x4803c856, 0x4d1c0000, 0x05fdfdf7, 0x4a01a006,
- 0x14000000, 0x5932382a, 0x591c001b, 0x4801a005,
- 0x5930041b, 0x4801a407, 0x5930021b, 0x4801a207,
- 0x59300017, 0x4801a008, 0x59300218, 0x82000500,
- 0x000000ff, 0x840001c0, 0x4801a409, 0x60100800,
- 0x600011b8, 0x5c023800, 0x0501f10f, 0x4803c856,
- 0x05fdfdf6, 0x4a01a006, 0x02000001, 0x42001000,
- 0xe8000000, 0x59c40801, 0x82040d00, 0x00018000,
- 0x90040580, 0x60000100, 0x0500000e, 0x82040580,
- 0x00008000, 0x60000080, 0x0500000a, 0x82040580,
- 0x00010000, 0x60000040, 0x05000006, 0x82040580,
- 0x00018000, 0x60000010, 0x05000002, 0x60080000,
- 0x80080540, 0x4801a007, 0x60080800, 0x600011b8,
- 0x0501f0f1, 0x4803c856, 0x0501f809, 0x5930041c,
- 0x900001c0, 0x4801a005, 0x0501f950, 0x41780800,
- 0x600010b8, 0x0501f8e8, 0x05f1f721, 0x4803c856,
- 0x59300819, 0x90041c09, 0x64874800, 0x58040408,
- 0x82000500, 0x0000f000, 0x82000580, 0x00003000,
- 0x05000002, 0x65074800, 0x81a5a000, 0x0501f94f,
- 0x05000004, 0x4c0c0000, 0x0501f952, 0x5c001800,
- 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, 0x05fdfda4, 0x5930001e,
- 0x800001c0, 0x05000006, 0x4a01a006, 0x01000000,
- 0x640da407, 0x60080800, 0x0501f021, 0x4a01a006,
- 0x02000000, 0x41780800, 0x916c0584, 0x05020003,
- 0x84040d42, 0x0501f00c, 0x05e5ffe0, 0x05020003,
- 0x84040d4a, 0x0501f002, 0x84040d48, 0x59a80249,
- 0x8c000506, 0x05020003, 0x8c00050a, 0x05000002,
- 0x84040d46, 0x4805a207, 0x59c40085, 0x48031004,
- 0x4c580000, 0x4c500000, 0x4c540000, 0x6018b000,
- 0x9188a400, 0x90d0ac08, 0x051dffc5, 0x5c00a800,
- 0x5c00a000, 0x5c00b000, 0x60200800, 0x600011b8,
- 0x0501f091, 0x05fdfd6b, 0x4a01a006, 0x56000000,
- 0x59340006, 0x4801a007, 0x59340007, 0x4801a008,
- 0x600c0800, 0x600011b8, 0x0501f087, 0x4803c856,
- 0x05fdfd6e, 0x5930081e, 0x800409c0, 0x0500000b,
- 0x82040580, 0x0000ffff, 0x05000003, 0x90040487,
- 0x05021006, 0x4a01a006, 0x01000000, 0x640da407,
- 0x60080800, 0x0501f011, 0x4a01a006, 0x0200001c,
- 0x6405a007, 0x42001000, 0x0010dd4b, 0x50080000,
- 0x9c0001c0, 0x4801a009, 0x5932481d, 0x59240005,
- 0x4801a00a, 0x59240001, 0x59240802, 0x4801a00b,
- 0x4805a00c, 0x601c0800, 0x600011b8, 0x0501f066,
- 0x4d2c0000, 0x05fdfd3f, 0x59325809, 0x812e59c0,
- 0x05020003, 0x4979a001, 0x0501f005, 0x592c000c,
- 0x82000500, 0x00ffffff, 0x4801a001, 0x4a01a006,
- 0x51000000, 0x5c025800, 0x05fdf3a1, 0x4803c856,
- 0x59325809, 0x5932680a, 0x59300407, 0x4803c857,
- 0x90000d8a, 0x05000002, 0x05b9fcb0, 0x42005000,
- 0x02000000, 0x42006000, 0x20290000, 0x41786800,
- 0x41787800, 0x0501f805, 0x91180d78, 0x60801193,
- 0x0501f882, 0x1c01f000, 0x6081a000, 0x59300416,
- 0x8c000510, 0x05020008, 0x6001a000, 0x0501f006,
- 0x60c1a000, 0x59300416, 0x8c000510, 0x05020002,
- 0x6045a000, 0x59340a12, 0x82040d00, 0x0000ff00,
- 0x5932481d, 0x59240408, 0x900001c0, 0x80040540,
- 0x80d00540, 0x44034800, 0x81a5a000, 0x0501f8a3,
- 0x050208a8, 0x59340002, 0x82000500, 0x00ffffff,
- 0x59300c03, 0x90040db1, 0x05020002, 0x41780000,
- 0x80280540, 0x4801a000, 0x59240005, 0x4801a001,
- 0x4831a002, 0x90340540, 0x4801a003, 0x59300402,
- 0x4801a404, 0x59300a02, 0x4805a204, 0x8c30052e,
- 0x05000009, 0x4805a404, 0x59301416, 0x480bc857,
- 0x8c08051c, 0x05000003, 0x59300216, 0x4803c857,
- 0x4801a204, 0x483da005, 0x1c01f000, 0x643e6407,
+ 0x0501f078, 0x0501f85c, 0x42001000, 0x40000000,
+ 0x591c0203, 0x591c0804, 0x8c04053e, 0x05020027,
+ 0x90000c91, 0x0c001002, 0x05b9f953, 0x001094d4,
+ 0x001094e6, 0x001094d5, 0x001094e6, 0x001094dd,
+ 0x001094d4, 0x001094e6, 0x001094e6, 0x001094e6,
+ 0x001094d4, 0x001094d4, 0x001094d4, 0x001094d4,
+ 0x001094d4, 0x001094e6, 0x001094d4, 0x001094e6,
+ 0x05b9f941, 0x591c0416, 0x4803c857, 0x8c000518,
+ 0x05000003, 0x8c000512, 0x0500000a, 0x80001580,
+ 0x0501f00a, 0x80001580, 0x0521fbf8, 0x41780000,
+ 0x05020014, 0x591c0014, 0x4803c857, 0x0501f011,
+ 0x42001000, 0x20000000, 0x0521fbf0, 0x41780000,
+ 0x0502000c, 0x591c0013, 0x4803c857, 0x8c00053c,
+ 0x05000003, 0x80000580, 0x0501f006, 0x591c0014,
+ 0x4803c857, 0x800001c0, 0x05020002, 0x591c0017,
+ 0x4801a00a, 0x0501f01a, 0x0501f81f, 0x42001000,
+ 0x40000000, 0x41780000, 0x05fdf7fa, 0x0501f81a,
+ 0x591e5809, 0x812e59c0, 0x05b80917, 0x592c1013,
+ 0x591c0013, 0x80080480, 0x4801a00a, 0x591c0203,
+ 0x591c0804, 0x8c04053e, 0x05020005, 0x90000d82,
+ 0x05000006, 0x90000d84, 0x05000004, 0x42001000,
+ 0x40000000, 0x0501f002, 0x80001580, 0x4809a00b,
+ 0x60180800, 0x600011b8, 0x5c023800, 0x5c025800,
+ 0x0501f155, 0x4803c856, 0x05fdfe24, 0x4a01a006,
+ 0x02000000, 0x59300c1b, 0x4805a407, 0x59300a1b,
+ 0x4805a207, 0x5932481d, 0x59241005, 0x5930080a,
+ 0x58041802, 0x820c1d00, 0x00ffffff, 0x5930082a,
+ 0x82040580, 0xffffffff, 0x05000007, 0x58040407,
+ 0x90000583, 0x05020004, 0x4809a008, 0x480da009,
+ 0x0501f003, 0x480da008, 0x4809a009, 0x1c01f000,
+ 0x4803c856, 0x05fdfe09, 0x0501f003, 0x4803c856,
+ 0x05fdfdff, 0x4a01a006, 0x01000000, 0x5930041c,
+ 0x4801a407, 0x5930021c, 0x4801a207, 0x60080800,
+ 0x600011b8, 0x0501f12c, 0x4803c856, 0x4d1c0000,
+ 0x05fdfde5, 0x4a01a006, 0x14000000, 0x5932382a,
+ 0x591c001b, 0x4801a005, 0x5930041b, 0x4801a407,
+ 0x5930021b, 0x4801a207, 0x59300017, 0x4801a008,
+ 0x59300218, 0x82000500, 0x000000ff, 0x840001c0,
+ 0x4801a409, 0x60100800, 0x600011b8, 0x5c023800,
+ 0x0501f115, 0x4803c856, 0x05fdfde4, 0x4a01a006,
+ 0x02000001, 0x42001000, 0xe8000000, 0x59c40801,
+ 0x82040d00, 0x00018000, 0x90040580, 0x60000100,
+ 0x0500000e, 0x82040580, 0x00008000, 0x60000080,
+ 0x0500000a, 0x82040580, 0x00010000, 0x60000040,
+ 0x05000006, 0x82040580, 0x00018000, 0x60000010,
+ 0x05000002, 0x60080000, 0x80080540, 0x4801a007,
+ 0x60080800, 0x600011b8, 0x0501f0f7, 0x4803c856,
+ 0x0501f809, 0x5930041c, 0x900001c0, 0x4801a005,
+ 0x0501f956, 0x41780800, 0x600010b8, 0x0501f8ee,
+ 0x05f1f69b, 0x4803c856, 0x59300819, 0x90041c09,
+ 0x64874800, 0x58040408, 0x82000500, 0x0000f000,
+ 0x82000580, 0x00003000, 0x05000002, 0x65074800,
+ 0x81a5a000, 0x0501f955, 0x05000004, 0x4c0c0000,
+ 0x0501f958, 0x5c001800, 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,
+ 0x05fdfd92, 0x5930001e, 0x800001c0, 0x05000006,
+ 0x4a01a006, 0x01000000, 0x640da407, 0x60080800,
+ 0x0501f021, 0x4a01a006, 0x02000000, 0x41780800,
+ 0x916c0584, 0x05020003, 0x84040d42, 0x0501f00c,
+ 0x05e5fde0, 0x05020003, 0x84040d4a, 0x0501f002,
+ 0x84040d48, 0x59a8024c, 0x8c000506, 0x05020003,
+ 0x8c00050a, 0x05000002, 0x84040d46, 0x4805a207,
+ 0x59c40085, 0x48031004, 0x4c580000, 0x4c500000,
+ 0x4c540000, 0x6018b000, 0x9188a400, 0x90d0ac08,
+ 0x0521fa56, 0x5c00a800, 0x5c00a000, 0x5c00b000,
+ 0x60200800, 0x600011b8, 0x0501f097, 0x05fdfd59,
+ 0x4a01a006, 0x56000000, 0x59340006, 0x4801a007,
+ 0x59340007, 0x4801a008, 0x600c0800, 0x600011b8,
+ 0x0501f08d, 0x4803c856, 0x05fdfd5c, 0x5930081e,
+ 0x800409c0, 0x0500000b, 0x82040580, 0x0000ffff,
+ 0x05000003, 0x90040487, 0x05021006, 0x4a01a006,
+ 0x01000000, 0x640da407, 0x60080800, 0x0501f011,
+ 0x4a01a006, 0x0200001c, 0x6405a007, 0x42001000,
+ 0x00111ce5, 0x50080000, 0x9c0001c0, 0x4801a009,
+ 0x5932481d, 0x59240005, 0x4801a00a, 0x59240001,
+ 0x59240802, 0x4801a00b, 0x4805a00c, 0x601c0800,
+ 0x600011b8, 0x0501f06c, 0x4d2c0000, 0x05fdfd2d,
+ 0x59325809, 0x812e59c0, 0x05020003, 0x4979a001,
+ 0x0501f005, 0x592c000c, 0x82000500, 0x00ffffff,
+ 0x4801a001, 0x4a01a006, 0x51000000, 0x5c025800,
+ 0x05fdf37c, 0x4803c856, 0x59325809, 0x5932680a,
+ 0x59300407, 0x4803c857, 0x90000d8a, 0x05000002,
+ 0x05b9f801, 0x42005000, 0x02000000, 0x42006000,
+ 0x20290000, 0x41786800, 0x41787800, 0x0501f805,
+ 0x91180d78, 0x60801193, 0x0501f888, 0x1c01f000,
+ 0x6081a000, 0x59300416, 0x8c000510, 0x05020008,
+ 0x6001a000, 0x0501f006, 0x60c1a000, 0x59300416,
+ 0x8c000510, 0x05020002, 0x6045a000, 0x59340a12,
+ 0x82040d00, 0x0000ff00, 0x5932481d, 0x59240408,
+ 0x900001c0, 0x80040540, 0x80d00540, 0x44034800,
+ 0x81a5a000, 0x0501f8a9, 0x050208ae, 0x59340002,
+ 0x82000500, 0x00ffffff, 0x59300c03, 0x90040db1,
+ 0x05020002, 0x41780000, 0x80280540, 0x4801a000,
+ 0x59240005, 0x4801a001, 0x4831a002, 0x90340540,
+ 0x4801a003, 0x59300402, 0x4801a404, 0x59300a02,
+ 0x4805a204, 0x8c30052e, 0x05000009, 0x4805a404,
+ 0x59301416, 0x480bc857, 0x8c08051c, 0x05000003,
+ 0x59300216, 0x4803c857, 0x4801a204, 0x483da005,
+ 0x1c01f000, 0x82100580, 0xc2000000, 0x05020004,
+ 0x42000000, 0x00112358, 0x0521f8fd, 0x643e6407,
0x59300819, 0x5930001a, 0x80102540, 0x48126019,
0x4806601a, 0x5930081b, 0x82040d00, 0x00fffff0,
0x82040d80, 0x00c00000, 0x4806601b, 0x481a601e,
0x1c01f000, 0x4807c857, 0x4c040000, 0x0501f857,
0x5c000800, 0x40040000, 0x80081540, 0x800000c4,
- 0x82000540, 0x00002000, 0x42000800, 0x0010e06a,
- 0x59a824cc, 0x8c100502, 0x05000008, 0x90040c02,
+ 0x82000540, 0x00002000, 0x42000800, 0x00112004,
+ 0x59a824d1, 0x8c100502, 0x05000008, 0x90040c02,
0x82000540, 0x00004000, 0x82081500, 0xffffc3ff,
0x82081540, 0x00002400, 0x4803910a, 0x59b400f6,
- 0x90000518, 0x05fe07fe, 0x42001800, 0x0010e064,
- 0x8c100502, 0x05000003, 0x42001800, 0x0010e066,
+ 0x90000518, 0x05fe07fe, 0x42001800, 0x00111ffe,
+ 0x8c100502, 0x05000003, 0x42001800, 0x00112000,
0x580c0004, 0x4803c857, 0x580c0006, 0x4803c857,
0x580c1800, 0x480fc857, 0x8d0c052a, 0x0500000c,
0x820c1d00, 0xf8000000, 0x05000009, 0x4c040000,
- 0x4c080000, 0x40083800, 0x42000000, 0x0010e064,
- 0x05b9fd4b, 0x5c001000, 0x5c000800, 0x4a0368f0,
- 0x0010e063, 0x480768f1, 0x480b68f3, 0x59b400f6,
+ 0x4c080000, 0x40083800, 0x42000000, 0x00111ffe,
+ 0x05b9f88a, 0x5c001000, 0x5c000800, 0x4a0368f0,
+ 0x00111ffd, 0x480768f1, 0x480b68f3, 0x59b400f6,
0x90000538, 0x05fe07fe, 0x4203e000, 0xb0800000,
- 0x600bf800, 0x05f1f5fe, 0x4807c857, 0x0501f837,
+ 0x600bf800, 0x05f1f572, 0x4807c857, 0x0501f837,
0x05000006, 0x82040d00, 0xffffff07, 0xb0040d48,
0x82081540, 0x00001000, 0x59300004, 0x8c000512,
0x05000002, 0x8408154c, 0x480a2800, 0x4c040000,
@@ -9368,30 +9684,30 @@ static const uint32_t isp_2500_risc_code[] = {
0x90000538, 0x05fe07fe, 0x4203e000, 0xb0800000,
0x600bf800, 0x1c01f000, 0x61a07007, 0x4203e000,
0xb0800000, 0x600ff800, 0x40000000, 0x40000000,
- 0x40000000, 0x0501b004, 0x80387040, 0x05b80bff,
+ 0x40000000, 0x0501b004, 0x80387040, 0x05b40f4a,
0x05fdf7f9, 0x1c01f000, 0x82000500, 0xffff0000,
0x82000580, 0x01050000, 0x0502000b, 0x599c0818,
0x8c040510, 0x05000008, 0x59a80806, 0x8c04050a,
0x05000005, 0x613c1100, 0x41781800, 0x41782000,
- 0x05d9fdf0, 0x1c01f000, 0x05ddf92a, 0x05000004,
- 0x59a804cc, 0x4803c857, 0x8c000502, 0x1c01f000,
+ 0x05d9fa9d, 0x1c01f000, 0x05d9fde0, 0x05000004,
+ 0x59a804d1, 0x4803c857, 0x8c000502, 0x1c01f000,
0x48d3c857, 0x5924100b, 0x82080500, 0x00001fff,
0x800000c2, 0x82080d00, 0x0000e000, 0x80040540,
0x82000540, 0x50000000, 0x4801a000, 0x82080500,
0xff000000, 0x4801a001, 0x90d1a402, 0x48d3c857,
0x1c01f000, 0x1c01f000, 0x4d340000, 0x59300407,
0x90006c92, 0x05021015, 0x5932680a, 0x0c01f001,
- 0x0010925b, 0x00109227, 0x0010921f, 0x00109232,
- 0x0010923e, 0x00109240, 0x0010924a, 0x0010925b,
- 0x0010925b, 0x0010925b, 0x0010925b, 0x0010925b,
- 0x0010925b, 0x0010925b, 0x0010925b, 0x00109256,
- 0x0010925b, 0x0010924e, 0x05b9fbbc, 0x8d3c0500,
+ 0x0010974b, 0x00109717, 0x0010970f, 0x00109722,
+ 0x0010972e, 0x00109730, 0x0010973a, 0x0010974b,
+ 0x0010974b, 0x0010974b, 0x0010974b, 0x0010974b,
+ 0x0010974b, 0x0010974b, 0x0010974b, 0x00109746,
+ 0x0010974b, 0x0010973e, 0x05b5ff07, 0x8d3c0500,
0x0500003d, 0x59300229, 0x90000583, 0x05020031,
- 0x05f9fa22, 0x0502002f, 0x0501f037, 0x8d3c051a,
+ 0x05f9f9f0, 0x0502002f, 0x0501f037, 0x8d3c051a,
0x0502002c, 0x8d3c0500, 0x0502002a, 0x8d3c0518,
- 0x05020032, 0x8d3c0506, 0x0500002f, 0x050dfd9a,
+ 0x05020032, 0x8d3c0506, 0x0500002f, 0x050dfe42,
0x05000024, 0x0501f02c, 0x8d3c0500, 0x05000003,
- 0x05f9fa12, 0x0502001f, 0x8d3c0518, 0x05020027,
+ 0x05f9f9e0, 0x0502001f, 0x8d3c0518, 0x05020027,
0x8d3c0506, 0x05000024, 0x59340200, 0x8c00050e,
0x05020018, 0x0501f020, 0x8d3c051a, 0x05020015,
0x8d3c0500, 0x05020013, 0x8d3c0518, 0x05000003,
@@ -9402,34 +9718,35 @@ static const uint32_t isp_2500_risc_code[] = {
0x80000580, 0x0501f009, 0x833c0500, 0x00001800,
0x05fc07fc, 0x8d3c0516, 0x05fe07fa, 0x8d3c0500,
0x05fe07f8, 0x90000541, 0x5c026800, 0x1c01f000,
- 0x59a8009d, 0x800001c0, 0x05000049, 0x4d2c0000,
+ 0x59a800a0, 0x800001c0, 0x05000049, 0x4d2c0000,
0x4d300000, 0x4c5c0000, 0x4c600000, 0x4c640000,
0x40025800, 0x4000c000, 0x4000c800, 0x42026000,
- 0x00111a40, 0x592c040a, 0x81440580, 0x05020031,
+ 0x001159e4, 0x592c040a, 0x81440580, 0x05020031,
0x83240580, 0xffffffff, 0x05000004, 0x592c0005,
0x81240580, 0x0502002b, 0x592c0208, 0xb0000595,
0x05000005, 0x8d3c0518, 0x05000026, 0x8d3c0516,
0x05020024, 0x40640000, 0x812c0580, 0x05020014,
0x59300203, 0x90000580, 0x0500000d, 0x59300009,
- 0x800001c0, 0x0500000a, 0x05f9fa8d, 0x4df00000,
- 0x05f9f98e, 0x05f5ff57, 0x05020002, 0x64026203,
- 0x5c03e000, 0x05f80a77, 0x497a6009, 0x592cc800,
+ 0x800001c0, 0x0500000a, 0x05f9fa5b, 0x4df00000,
+ 0x05f9f95b, 0x05f5ff20, 0x05020002, 0x64026203,
+ 0x5c03e000, 0x05f80a45, 0x497a6009, 0x592cc800,
0x4064c000, 0x4064b800, 0x0501f003, 0x592cb800,
0x485cc000, 0x497a5800, 0x592c0208, 0x82000580,
- 0x00000155, 0x05000003, 0x05b9fef8, 0x0501f003,
- 0x49425a0a, 0x0001fb82, 0x405e5800, 0x0501f003,
+ 0x00000155, 0x05000003, 0x05b9fa3f, 0x0501f003,
+ 0x49425a0a, 0x0001fba8, 0x405e5800, 0x0501f003,
0x412cc000, 0x592e5800, 0x812e59c0, 0x05fe07ca,
- 0x4867509d, 0x4863509e, 0x5c00c800, 0x5c00c000,
+ 0x486750a0, 0x486350a1, 0x5c00c800, 0x5c00c000,
0x5c00b800, 0x5c026000, 0x5c025800, 0x1c01f000,
0x4943c857, 0x4d440000, 0x4d340000, 0x4c580000,
- 0x4d240000, 0x42024800, 0xffffffff, 0x61c0b00f,
- 0x417a8800, 0x0001fb00, 0x05020002, 0x05fdffa9,
- 0x81468800, 0x8058b040, 0x05fe07fb, 0x83440480,
- 0x00000800, 0x05021006, 0x8d3c0502, 0x05000004,
- 0x61c2880f, 0x6040b000, 0x05fdf7f3, 0x5c024800,
+ 0x4d240000, 0x42024800, 0xffffffff, 0x59a8b0ac,
+ 0x417a8800, 0x0001fb08, 0x05020002, 0x05fdffa9,
+ 0x81468800, 0x83440580, 0x000007f0, 0x05020002,
+ 0x60028810, 0x8058b040, 0x05fe07f7, 0x59a800ad,
+ 0x81440480, 0x05021006, 0x8d3c0502, 0x05000004,
+ 0x61c2880f, 0x6040b000, 0x05fdf7ef, 0x5c024800,
0x5c00b000, 0x5c026800, 0x5c028800, 0x1c01f000,
- 0x4d300000, 0x59a8109d, 0x800811c0, 0x05000022,
- 0x42026000, 0x00111a40, 0x59300203, 0x90000580,
+ 0x4d300000, 0x59a810a0, 0x800811c0, 0x05000022,
+ 0x42026000, 0x001159e4, 0x59300203, 0x90000580,
0x0502001d, 0x58080806, 0x58080005, 0x4802601d,
0x4806600a, 0x480a6009, 0x64166407, 0x64066203,
0x4a026403, 0x00000092, 0x41780800, 0x58080208,
@@ -9437,927 +9754,947 @@ static const uint32_t isp_2500_risc_code[] = {
0x42000800, 0x80000040, 0x497a6416, 0x5808040b,
0x82000500, 0x0000f000, 0x82000580, 0x00003000,
0x05020004, 0x4a026416, 0x00000100, 0x84040d52,
- 0x0005feaf, 0x5c026000, 0x1c01f000, 0x4803c856,
- 0x05fdfb72, 0x0501f87a, 0x90d00482, 0x4a000000,
- 0x50001ffc, 0x4803c856, 0x05fdfb6c, 0x0501f874,
- 0x05fdf553, 0x4803c856, 0x4c580000, 0x4c500000,
- 0x4c540000, 0x4d2c0000, 0x05fdfb56, 0x59325809,
+ 0x0005fee6, 0x5c026000, 0x1c01f000, 0x4803c856,
+ 0x05fdfb56, 0x0501f87a, 0x90d00482, 0x4a000000,
+ 0x50001ffc, 0x4803c856, 0x05fdfb50, 0x0501f874,
+ 0x05fdf549, 0x4803c856, 0x4c580000, 0x4c500000,
+ 0x4c540000, 0x4d2c0000, 0x05fdfb3a, 0x59325809,
0x4a01a006, 0x7f000000, 0x0501f869, 0x4a01a407,
0x00000101, 0x5930021b, 0x4801a207, 0x59a80002,
0x4801a008, 0x59a80003, 0x4801a009, 0x4a01a20a,
0x00000228, 0x4cd00000, 0x90d1a40b, 0x4a01a400,
0x00000101, 0x6411a200, 0x812e59c0, 0x05020003,
- 0x59a800ce, 0x0501f002, 0x592c000f, 0x4801a001,
+ 0x59a800d3, 0x0501f002, 0x592c000f, 0x4801a001,
0x90d1a402, 0x4a01a400, 0x00000102, 0x6411a200,
- 0x4979a401, 0x812e59c0, 0x05020003, 0x59a802cc,
+ 0x4979a401, 0x812e59c0, 0x05020003, 0x59a802d1,
0x0501f002, 0x592c020b, 0x4801a201, 0x90d1a402,
0x4a01a400, 0x00000103, 0x4a01a200, 0x00000200,
- 0x6000b001, 0x4200a000, 0x001105f2, 0x90d0ac01,
+ 0x6000b001, 0x4200a000, 0x00114596, 0x90d0ac01,
0x50500000, 0x4400a800, 0x8050a000, 0x8054a800,
0x8058b040, 0x05fe07fb, 0x5c01a000, 0x60280801,
0x600011b8, 0x5c025800, 0x5c00a800, 0x5c00a000,
- 0x5c00b000, 0x05fdf640, 0x4803c856, 0x4c580000,
- 0x4c500000, 0x4c540000, 0x4d2c0000, 0x05fdfb23,
+ 0x5c00b000, 0x05fdf63c, 0x4803c856, 0x4c580000,
+ 0x4c500000, 0x4c540000, 0x4d2c0000, 0x05fdfb07,
0x90d00482, 0x4a000000, 0x50001ffc, 0x59325809,
0x4a01a006, 0x02000000, 0x05fdf7bc, 0x4803c856,
- 0x4c580000, 0x4c500000, 0x4d2c0000, 0x05fdfb09,
+ 0x4c580000, 0x4c500000, 0x4d2c0000, 0x05fdfaed,
0x90d00482, 0x4a000000, 0x50001ffc, 0x59325809,
0x4a01a006, 0x7f000000, 0x0501f819, 0x4a01a407,
0x00000102, 0x5930021b, 0x4801a207, 0x59a80002,
0x4801a008, 0x59a80003, 0x4801a009, 0x6451a20a,
0x60140800, 0x600011b8, 0x5c025800, 0x5c00a000,
- 0x5c00b000, 0x05fdf618, 0x4803c856, 0x4c580000,
- 0x4c500000, 0x4d2c0000, 0x05fdfafc, 0x59325809,
+ 0x5c00b000, 0x05fdf614, 0x4803c856, 0x4c580000,
+ 0x4c500000, 0x4d2c0000, 0x05fdfae0, 0x59325809,
0x4a01a006, 0x02000000, 0x05fdf7e8, 0x58d00001,
0x82000500, 0xff000000, 0x800001c0, 0x05020004,
0x82000540, 0x00fffff0, 0x4801a001, 0x1c01f000,
0x4d900000, 0x4dd00000, 0x4da40000, 0x4d140000,
0x4cd80000, 0x4d180000, 0x4803c856, 0x417a3000,
- 0x05f9fed8, 0x59900805, 0x800409c0, 0x05000012,
- 0x91947c09, 0x83180400, 0x00107661, 0x50000000,
+ 0x05f9fea2, 0x59900805, 0x800409c0, 0x05000012,
+ 0x91947c09, 0x83180400, 0x00107a7b, 0x50000000,
0x803c7c00, 0x583c0003, 0x811808ca, 0x82040c00,
0x00006139, 0x50040800, 0x80040580, 0x05000006,
- 0x42000000, 0x0010e4b8, 0x051dfc4e, 0x90000541,
+ 0x42000000, 0x0011245c, 0x051dfed5, 0x90000541,
0x0501f004, 0x811a3000, 0x91180585, 0x05fe07e9,
0x5c023000, 0x5c01b000, 0x5c022800, 0x5c034800,
0x5c03a000, 0x5c032000, 0x1c01f000, 0x4d900000,
0x4dd00000, 0x4da40000, 0x4d140000, 0x4cd80000,
0x4d180000, 0x4803c856, 0x598c080b, 0x800409c0,
- 0x05000002, 0x05f1fc0e, 0x417a3000, 0x05f9fead,
+ 0x05000002, 0x05f1fb7e, 0x417a3000, 0x05f9fe77,
0x59900805, 0x800409c0, 0x0500000f, 0x91947c09,
- 0x83180400, 0x00107661, 0x50000000, 0x803c7c00,
+ 0x83180400, 0x00107a7b, 0x50000000, 0x803c7c00,
0x811808ca, 0x82040c00, 0x00006139, 0x50040800,
0x48047803, 0x4a007801, 0x000001f4, 0x64287800,
0x64107802, 0x811a3000, 0x91180585, 0x05fe07ec,
0x5c023000, 0x5c01b000, 0x5c022800, 0x5c034800,
0x5c03a000, 0x5c032000, 0x1c01f000, 0x41781000,
- 0x42026000, 0x00111b00, 0x59a8183b, 0x480a6402,
+ 0x42026000, 0x00115aa4, 0x59a8183d, 0x480a6402,
0x4a026202, 0x0000ffff, 0x80081000, 0x800c1840,
0x05000003, 0x91326430, 0x05fdf7f9, 0x1c01f000,
- 0x5c036000, 0x4db00000, 0x49b3c857, 0x4933c857,
- 0x813261c0, 0x0500002d, 0x59300203, 0x90000580,
- 0x0500002a, 0x59300407, 0x4803c857, 0x90000d84,
- 0x0500000c, 0x90000d81, 0x0500000a, 0x90000d83,
- 0x05000004, 0x90000d86, 0x05020016, 0x0519ff00,
- 0x5930001e, 0x800001c0, 0x05120a1c, 0x0501f011,
- 0x5930000a, 0x82000580, 0x00110210, 0x0500000d,
- 0x5930082a, 0x4807c857, 0x4d300000, 0x40066000,
- 0x0511fab7, 0x5c026000, 0x05020006, 0x5804001e,
- 0x4803c857, 0x81300580, 0x05020002, 0x4978081e,
- 0x641e6407, 0x497a6009, 0x4a026004, 0x00004000,
- 0x59a8005c, 0xb0000c91, 0x05001002, 0x80000102,
- 0x48026006, 0x497a6205, 0x1c01f000, 0x91640490,
- 0x05021007, 0x42000000, 0x0010e442, 0x051dfbd5,
- 0x4967c857, 0x80026580, 0x1c01f000, 0x8166c9c0,
- 0x05000018, 0x41626000, 0x41580000, 0x59300a03,
- 0x90040d80, 0x05000007, 0x91326430, 0x81300c80,
- 0x05fc17fb, 0x42026000, 0x00111b00, 0x05fdf7f8,
+ 0x83300480, 0x00115aa4, 0x0500100e, 0x05d9fccf,
+ 0x05b40d4d, 0x457a6000, 0x4a026202, 0x0000ffff,
+ 0x05011000, 0x91300403, 0x4803c840, 0x64b3c842,
+ 0x59a8023e, 0x80000000, 0x4803523e, 0x1c01f000,
+ 0x4933c857, 0x83300580, 0x001159b4, 0x0500000b,
+ 0x83300580, 0x001159e4, 0x05000008, 0x83300580,
+ 0x00115a14, 0x05000005, 0x83300580, 0x00115a74,
+ 0x05000002, 0x05b5fd34, 0x42000000, 0x001123ea,
+ 0x051df676, 0x5c036000, 0x4db00000, 0x49b3c857,
+ 0x4933c857, 0x813261c0, 0x0500002d, 0x59300203,
+ 0x90000580, 0x0500002a, 0x59300407, 0x4803c857,
+ 0x90000d84, 0x0500000c, 0x90000d81, 0x0500000a,
+ 0x90000d83, 0x05000004, 0x90000d86, 0x05020016,
+ 0x051df935, 0x5930001e, 0x800001c0, 0x05120aae,
+ 0x0501f011, 0x5930000a, 0x82000580, 0x001141b4,
+ 0x0500000d, 0x5930082a, 0x4807c857, 0x4d300000,
+ 0x40066000, 0x0511fb48, 0x5c026000, 0x05020006,
+ 0x5804001e, 0x4803c857, 0x81300580, 0x05020002,
+ 0x4978081e, 0x641e6407, 0x497a6009, 0x4a026004,
+ 0x00004000, 0x59a8005f, 0xb0000c91, 0x05001002,
+ 0x80000102, 0x48026006, 0x497a6205, 0x1c01f000,
+ 0x91640490, 0x05021007, 0x42000000, 0x001123e4,
+ 0x051dfe3b, 0x4967c857, 0x80026580, 0x1c01f000,
+ 0x8166c9c0, 0x05000016, 0x41626000, 0x41580000,
+ 0x59300a03, 0x90040d80, 0x05000006, 0x91326430,
+ 0x81300c80, 0x05fc17fb, 0x40be6000, 0x05fdf7f9,
0x4933c857, 0x8166c840, 0x91300c30, 0x80040480,
0x05021005, 0x4006c000, 0x64226203, 0x813261c0,
- 0x1c01f000, 0x4202c000, 0x00111b00, 0x05fdf7fb,
- 0x42000000, 0x0010e442, 0x051dfbb6, 0x4933c856,
- 0x417a6000, 0x05fdf7f6, 0x4933c857, 0x91380593,
- 0x05020008, 0x59300004, 0x8c00053e, 0x05000004,
- 0x05f9f8e3, 0x05f9f838, 0x05f9f8d2, 0x1c01f000,
- 0x4933c857, 0x598800bc, 0x80000000, 0x480310bc,
- 0x1c01f000, 0x4933c857, 0x59300203, 0x90003491,
- 0x05ba199e, 0x4d2c0000, 0x0c01f803, 0x5c025800,
- 0x1c01f000, 0x00109452, 0x00109966, 0x00109af1,
- 0x00109452, 0x00109b40, 0x001095ab, 0x00109452,
- 0x00109452, 0x001098f9, 0x00109452, 0x00109452,
- 0x00109452, 0x00109452, 0x00109452, 0x0010ae4b,
- 0x00109452, 0x00109452, 0x05b9f988, 0x4933c857,
- 0x59300203, 0x90003491, 0x05ba1984, 0x0c01f001,
- 0x00109469, 0x0010a653, 0x00109469, 0x00109469,
- 0x00109469, 0x00109469, 0x00109469, 0x00109469,
- 0x0010a5f3, 0x0010a672, 0x0010a6f3, 0x0010a672,
- 0x0010a6f3, 0x00109469, 0x0010ae71, 0x00109469,
- 0x00109469, 0x05b9f971, 0x05b9f970, 0x4933c857,
- 0x4d300000, 0x4d1c0000, 0x59300203, 0x9000058f,
- 0x05ba096a, 0x91380593, 0x05020025, 0x59300c03,
- 0xb0040586, 0x05000015, 0xb0040584, 0x0502000a,
- 0x4d300000, 0x5932602a, 0x050dfce8, 0x5c026000,
- 0x0500001c, 0x591c0416, 0x8400054a, 0x48023c16,
- 0x0501f010, 0x59300019, 0x82000500, 0xff000000,
- 0x82000580, 0xc2000000, 0x05020012, 0x5930001e,
- 0x05fdfd56, 0x0501f00f, 0x59300416, 0x84000504,
- 0x48026416, 0x5930141d, 0x050dfccb, 0x05000009,
- 0x411e6000, 0x5930001c, 0x80000540, 0x05000005,
- 0x497a601c, 0x0801f800, 0x0501f002, 0x05f5ffd2,
- 0x5c023800, 0x5c026000, 0x0005f7dc, 0x4933c857,
- 0x4d2c0000, 0x59325809, 0x59300203, 0x90003491,
- 0x05ba193a, 0x0c01f803, 0x5c025800, 0x1c01f000,
- 0x001094b5, 0x001094b5, 0x001094b5, 0x001094ca,
- 0x00109518, 0x001094b5, 0x001094b5, 0x001094b5,
- 0x001094b6, 0x001094b5, 0x001094b5, 0x001094b5,
- 0x001094b5, 0x001094b5, 0x001094b5, 0x001094b5,
- 0x00109502, 0x05b9f925, 0x4933c857, 0xb1380580,
- 0x05ba0922, 0x4a026008, 0x00082000, 0x640e6203,
- 0x493a6403, 0x64065c0c, 0x592c0011, 0x48026013,
- 0x497a6015, 0x592c020c, 0x800000c2, 0x800010c4,
- 0x80081400, 0x480a6006, 0x0001f98d, 0x42000800,
- 0x80000060, 0x0005f69d, 0x4933c857, 0xb1380490,
- 0x05ba190e, 0xb1380489, 0x05b8190c, 0x0c01f001,
- 0x001094d8, 0x001094e5, 0x001094d7, 0x001094d7,
- 0x001094d7, 0x001094d7, 0x001094eb, 0x05b9f903,
- 0x050dfbc6, 0x05000003, 0x64426203, 0x0501f002,
- 0x64126203, 0x640a5c0c, 0x592c020b, 0x48025c0d,
- 0x592c020d, 0x48025a0b, 0x592c0010, 0x48025811,
- 0x1c01f000, 0x05f5ff67, 0x0509ffe3, 0x05000003,
- 0x641a5a0a, 0x0001fb82, 0x0005f7dc, 0x05f5ff61,
- 0x4d3c0000, 0x417a7800, 0x05c5fe3e, 0x5c027800,
- 0x60503000, 0x41782800, 0x60082000, 0x4d400000,
- 0x4d440000, 0x59368c03, 0x60a68000, 0x0511f91c,
- 0x5c028800, 0x5c028000, 0x42000000, 0x0010e454,
- 0x051dfae0, 0x0509ffcc, 0x000407dc, 0x64a65a0a,
- 0x0001fb82, 0x0005f7dc, 0x4933c857, 0xb13805a1,
- 0x05000006, 0xb13805a0, 0x05020007, 0x59cc0002,
- 0x8c000526, 0x05000005, 0xb1380589, 0x05000004,
- 0x05b9f8ce, 0x05fdff27, 0x1c01f000, 0x59a8005e,
- 0x48026205, 0x64126203, 0x5930001c, 0x80000540,
- 0x05000003, 0x497a601c, 0x0801f800, 0x1c01f000,
- 0x4933c857, 0xb1380588, 0x05000003, 0xb1380593,
- 0x05ba08be, 0x592c020a, 0x90000587, 0x05000008,
- 0x59300013, 0x80000540, 0x05000005, 0x592c0810,
- 0x80040480, 0x48025810, 0x64565a0a, 0x592c020a,
- 0x80000540, 0x05020002, 0x64025a0a, 0x0001fb82,
- 0x0005f7dc, 0x4933c857, 0x4d2c0000, 0x4c500000,
- 0x4c540000, 0x4c580000, 0x4c5c0000, 0x4c600000,
- 0x4c640000, 0x4c100000, 0x05b9fc4c, 0x05b808a3,
- 0x497a5a0a, 0x59a800d0, 0x82000500, 0x0000f000,
- 0x48025c0b, 0x59a808b6, 0x90040c18, 0x48065a0b,
- 0x412cb800, 0x4d2c0000, 0x41cca000, 0x6004c000,
- 0x60b0c800, 0x900404ad, 0x05021004, 0x912cac0d,
- 0x0509fa72, 0x0501f023, 0x40043000, 0x60b00800,
- 0x912cac0d, 0x0509fa6d, 0x901834ac, 0x4c180000,
- 0x05b9fc32, 0x5c003000, 0x05000012, 0x8060c000,
- 0x4a025808, 0x00000110, 0x492cb801, 0x90180cbd,
- 0x05021005, 0x40180800, 0x912cac09, 0x0509fa5f,
- 0x0501f010, 0x9064cc3c, 0x901834bc, 0x60f00800,
- 0x412cb800, 0x912cac09, 0x0509fa58, 0x05fdf7ec,
- 0x5c025800, 0x592c020a, 0x8400055e, 0x48025a0a,
- 0x592c040b, 0x80640540, 0x48025c0b, 0x0501f002,
- 0x5c025800, 0x5c002000, 0x813669c0, 0x05000003,
- 0x59343403, 0x0501f002, 0x61fc31ff, 0x4932580c,
- 0x481a5c0a, 0xb0100594, 0x0502001a, 0x4a02580c,
- 0xffffffff, 0x491e5817, 0x41781000, 0x831c0580,
- 0xffffffff, 0x0500000e, 0x591c0009, 0x80000d40,
- 0x0500000b, 0x58040208, 0x82000500, 0x000000ff,
- 0x90000592, 0x05000005, 0xb00005a0, 0x05000003,
- 0x90000588, 0x05020002, 0x58041009, 0x480a5809,
- 0x592c040b, 0x81200540, 0x48025c0b, 0x0501f002,
- 0x49225c09, 0x846001c0, 0x80100540, 0x48025808,
- 0x051dfb9c, 0x05020014, 0x592c0001, 0x497a5801,
- 0x4c000000, 0x42000000, 0x0010de60, 0x50000000,
- 0x48025802, 0x0001fb82, 0x5c025800, 0x812e59c0,
- 0x05fe07f4, 0x5c00c800, 0x5c00c000, 0x5c00b800,
- 0x5c00b000, 0x5c00a800, 0x5c00a000, 0x5c025800,
- 0x1c01f000, 0x0519ff30, 0x05fdf7f7, 0x4933c857,
- 0x91380d95, 0x05020008, 0x050dfaf0, 0x05000005,
- 0x5930082a, 0x58040416, 0x8400051a, 0x48000c16,
- 0x0005f7dc, 0x91380d96, 0x05ba0824, 0x0005f7dc,
- 0x4933c857, 0x4d2c0000, 0x4c500000, 0x4c540000,
- 0x4c580000, 0x59325809, 0x91cca406, 0x59cc1806,
- 0x820c0580, 0x01000000, 0x05020003, 0x6008b000,
- 0x0501f00a, 0x6020b000, 0x912cac09, 0x051dfae0,
- 0x8c0c0500, 0x05000007, 0x6020b000, 0x592e5801,
- 0x812e59c0, 0x05b8080d, 0x912cac09, 0x051dfad8,
- 0x0501f812, 0x5c00b000, 0x5c00a800, 0x5c00a000,
- 0x5c025800, 0x1c01f000, 0x4933c857, 0x4c500000,
- 0x4c540000, 0x4c580000, 0x91cca406, 0x5930a809,
- 0x9054ac09, 0x601cb000, 0x051dfac9, 0x5c00b000,
- 0x5c00a800, 0x5c00a000, 0x4933c857, 0x0509fee6,
- 0x000407dc, 0x4d2c0000, 0x050dfd67, 0x05020008,
- 0x41780800, 0x4d400000, 0x60028000, 0x050dfb94,
- 0x5c028000, 0x5c025800, 0x0005f7dc, 0x5931d82d,
- 0x58ef400b, 0x58ee580d, 0x4a025a08, 0x00000103,
- 0x58ec0009, 0x0801f800, 0x5c025800, 0x0005f7dc,
- 0x4933c857, 0x59cc1806, 0x820c0580, 0x02000000,
- 0x0502001f, 0x4a026802, 0x00fffffd, 0x5934000a,
- 0x84000504, 0x4802680a, 0x60000000, 0x4c0c0000,
- 0x0501f824, 0x5c001800, 0x000407dc, 0x59300c29,
- 0x900405a1, 0x05020006, 0x05c9f80d, 0x61fc19ff,
- 0x60102000, 0x60483000, 0x05d9fa3a, 0x59300809,
- 0x800409c0, 0x000407dc, 0x4a000a08, 0x00000103,
- 0x480c0809, 0x5931d82d, 0x58ef400b, 0x58ee580d,
- 0x58ec0009, 0x0801f800, 0x0005f7dc, 0x42000000,
- 0x0010e45d, 0x051df9bf, 0x60180000, 0x4c0c0000,
- 0x0501f808, 0x5c001800, 0x05fc07ed, 0x4c0c0000,
- 0x0501f823, 0x5c001800, 0x05fe07e9, 0x1c01f000,
- 0x4933c857, 0x4d400000, 0x4d240000, 0x4d200000,
- 0x5932481d, 0x40028000, 0x59300429, 0xb0000d91,
- 0x05000003, 0x90000da1, 0x05020010, 0x05c5ffe4,
- 0x60001802, 0x051dfae0, 0x05020004, 0x59300429,
- 0x900005a1, 0x05c40d3a, 0x59300429, 0xb0000591,
- 0x05020002, 0x41781800, 0x60040000, 0x05e5f811,
- 0x80000580, 0x0501f002, 0x90000541, 0x5c024000,
- 0x5c024800, 0x5c028000, 0x1c01f000, 0x4933c857,
- 0x4d2c0000, 0x59325809, 0x812e59c0, 0x0502000b,
- 0x497a6006, 0x497a6205, 0x050dfa50, 0x05000002,
- 0x497a6417, 0x4d380000, 0x608a7000, 0x0501fb0f,
- 0x5c027000, 0x80000580, 0x5c025800, 0x1c01f000,
- 0x4933c857, 0x4d2c0000, 0x4c500000, 0x4c540000,
- 0x4c580000, 0x59325809, 0x592e5801, 0x912cac09,
- 0x91cca406, 0x59a808d0, 0x82040d00, 0x000003ff,
- 0x9004148f, 0x05001011, 0x603cb000, 0x051dfa40,
- 0x592e5801, 0x912cac09, 0x90080c8f, 0x05001008,
- 0x603cb000, 0x051dfa3a, 0x592e5801, 0x912cac09,
- 0x9004148f, 0x05001005, 0x603c1000, 0x4008b000,
- 0x051dfa33, 0x0501f003, 0x4004b000, 0x051dfa30,
- 0x5931d82d, 0x58ef400b, 0x58ee580d, 0x4a025a08,
- 0x00000103, 0x592e5801, 0x58ec0009, 0x0801f800,
- 0x0005ffdc, 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, 0x05b40f3f,
- 0x9008ac09, 0x051dfa0a, 0x82000d00, 0xff000000,
- 0x800409c0, 0x05000014, 0x8200b500, 0x000000ff,
- 0x05000011, 0x8058b104, 0x90580c8e, 0x05001002,
- 0x6034b000, 0x58081001, 0x800811c0, 0x05b40f2f,
- 0x9008ac09, 0x051df9fa, 0x0501f007, 0x59301009,
- 0x800811c0, 0x05b40f29, 0x48001009, 0x59cc0007,
- 0x4800100a, 0x05fdff2d, 0x5c00b000, 0x5c00a800,
- 0x5c00a000, 0x5c025800, 0x1c01f000, 0x4933c857,
+ 0x1c01f000, 0x40bec000, 0x05fdf7fc, 0x42000000,
+ 0x001123e4, 0x051dfe1e, 0x4933c856, 0x417a6000,
+ 0x05fdf7f7, 0x59a80006, 0x8c000510, 0x05fc07d9,
+ 0x59a86a3e, 0x803469c0, 0x05000015, 0x59aa603f,
+ 0x59300a03, 0x90040d80, 0x0502000b, 0x64226203,
+ 0x80346840, 0x4837523e, 0x91300c30, 0x800404af,
+ 0x05001003, 0x83780d40, 0x00115aa4, 0x4807503f,
+ 0x1c01f000, 0x91326430, 0x81300caf, 0x05fc17f1,
+ 0x42026000, 0x00115aa4, 0x05fdf7ee, 0x42000000,
+ 0x001123e3, 0x051dfe01, 0x80026580, 0x1c01f000,
+ 0x4933c857, 0x91380593, 0x05020008, 0x59300004,
+ 0x8c00053e, 0x05000004, 0x05f9f86f, 0x05f5ffc4,
+ 0x05f9f85e, 0x1c01f000, 0x4933c857, 0x598800bf,
+ 0x80000000, 0x480310bf, 0x1c01f000, 0x4933c857,
+ 0x59300203, 0x90003491, 0x05b61ca7, 0x4d2c0000,
+ 0x0c01f803, 0x5c025800, 0x1c01f000, 0x00109984,
+ 0x00109ea0, 0x0010a02b, 0x00109984, 0x0010a07a,
+ 0x00109ae1, 0x00109984, 0x00109984, 0x00109e33,
+ 0x00109984, 0x00109984, 0x00109984, 0x00109984,
+ 0x00109984, 0x0010b3e4, 0x00109984, 0x00109984,
+ 0x05b5fc91, 0x4933c857, 0x59300203, 0x90003491,
+ 0x05b61c8d, 0x0c01f001, 0x0010999b, 0x0010abc5,
+ 0x0010999b, 0x0010999b, 0x0010999b, 0x0010999b,
+ 0x0010999b, 0x0010999b, 0x0010ab65, 0x0010abe4,
+ 0x0010ac65, 0x0010abe4, 0x0010ac65, 0x0010999b,
+ 0x0010b40a, 0x0010999b, 0x0010999b, 0x05b5fc7a,
+ 0x05b5fc79, 0x4933c857, 0x4d300000, 0x4d1c0000,
+ 0x59300203, 0x9000058f, 0x05b60c73, 0x91380593,
+ 0x05020025, 0x59300c03, 0xb0040586, 0x05000015,
+ 0xb0040584, 0x0502000a, 0x4d300000, 0x5932602a,
+ 0x050dfd52, 0x5c026000, 0x0500001c, 0x591c0416,
+ 0x8400054a, 0x48023c16, 0x0501f010, 0x59300019,
+ 0x82000500, 0xff000000, 0x82000580, 0xc2000000,
+ 0x05020012, 0x5930001e, 0x05fdfd14, 0x0501f00f,
+ 0x59300416, 0x84000504, 0x48026416, 0x5930141d,
+ 0x050dfd35, 0x05000009, 0x411e6000, 0x5930001c,
+ 0x80000540, 0x05000005, 0x497a601c, 0x0801f800,
+ 0x0501f002, 0x05f5ff5e, 0x5c023800, 0x5c026000,
+ 0x0009f010, 0x4933c857, 0x4d2c0000, 0x59325809,
+ 0x59300203, 0x90003491, 0x05b61c43, 0x0c01f803,
+ 0x5c025800, 0x1c01f000, 0x001099e7, 0x001099e7,
+ 0x001099e7, 0x001099fc, 0x00109a4a, 0x001099e7,
+ 0x001099e7, 0x001099e7, 0x001099e8, 0x001099e7,
+ 0x001099e7, 0x001099e7, 0x001099e7, 0x001099e7,
+ 0x001099e7, 0x001099e7, 0x00109a34, 0x05b5fc2e,
+ 0x4933c857, 0xb1380580, 0x05b60c2b, 0x4a026008,
+ 0x00082000, 0x640e6203, 0x493a6403, 0x64065c0c,
+ 0x592c0011, 0x48026013, 0x497a6015, 0x592c020c,
+ 0x800000c2, 0x800010c4, 0x80081400, 0x480a6006,
+ 0x0001f995, 0x42000800, 0x80000060, 0x0005f6d4,
+ 0x4933c857, 0xb1380490, 0x05b61c17, 0xb1380489,
+ 0x05b41c15, 0x0c01f001, 0x00109a0a, 0x00109a17,
+ 0x00109a09, 0x00109a09, 0x00109a09, 0x00109a09,
+ 0x00109a1d, 0x05b5fc0c, 0x050dfc2c, 0x05000003,
+ 0x64426203, 0x0501f002, 0x64126203, 0x640a5c0c,
+ 0x592c020b, 0x48025c0d, 0x592c020d, 0x48025a0b,
+ 0x592c0010, 0x48025811, 0x1c01f000, 0x05f5fef3,
+ 0x050df83a, 0x05000003, 0x641a5a0a, 0x0001fba8,
+ 0x0009f010, 0x05f5feed, 0x4d3c0000, 0x417a7800,
+ 0x05c5f9a3, 0x5c027800, 0x60503000, 0x41782800,
+ 0x60082000, 0x4d400000, 0x4d440000, 0x59368c03,
+ 0x60a68000, 0x0511f991, 0x5c028800, 0x5c028000,
+ 0x42000000, 0x001123f8, 0x051dfd29, 0x050df823,
+ 0x00080010, 0x64a65a0a, 0x0001fba8, 0x0009f010,
+ 0x4933c857, 0xb13805a1, 0x05000006, 0xb13805a0,
+ 0x05020007, 0x59cc0002, 0x8c000526, 0x05000005,
+ 0xb1380589, 0x05000004, 0x05b5fbd7, 0x05fdff27,
+ 0x1c01f000, 0x59a80061, 0x48026205, 0x64126203,
+ 0x5930001c, 0x80000540, 0x05000003, 0x497a601c,
+ 0x0801f800, 0x1c01f000, 0x4933c857, 0xb1380588,
+ 0x05000003, 0xb1380593, 0x05b60bc7, 0x592c020a,
+ 0x90000587, 0x05000008, 0x59300013, 0x80000540,
+ 0x05000005, 0x592c0810, 0x80040480, 0x48025810,
+ 0x64565a0a, 0x592c020a, 0x80000540, 0x05020002,
+ 0x64025a0a, 0x0001fba8, 0x0009f010, 0x4933c857,
0x4d2c0000, 0x4c500000, 0x4c540000, 0x4c580000,
- 0x6008b000, 0x59cc0806, 0x82040580, 0x01000000,
- 0x05000004, 0x8204b500, 0x0000ffff, 0x8058b104,
- 0x91cca406, 0x59300009, 0x9000ac09, 0x051df9dc,
- 0x05fdff16, 0x5c00b000, 0x5c00a800, 0x5c00a000,
- 0x5c025800, 0x1c01f000, 0x4933c857, 0x4937c857,
- 0x4d1c0000, 0x05edfedd, 0x05020020, 0x59cc0001,
- 0x82000500, 0x00ffffff, 0x59341002, 0x82081500,
- 0x00ffffff, 0x80080580, 0x05020018, 0x497a6205,
- 0x60d40800, 0x050dfa35, 0x0502000f, 0x591c001e,
- 0x800001c0, 0x0500000c, 0x497a381e, 0x591c0416,
- 0x8c000502, 0x05b40ef1, 0x84000502, 0x48023c16,
- 0x591c1407, 0x90080583, 0x05000005, 0x90080586,
- 0x05000005, 0x05fdfcdf, 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, 0x05020064, 0x050df990, 0x05000006,
- 0x591c0403, 0xb0000590, 0x05020003, 0x05fdfcbd,
- 0x0501f09d, 0x591c0203, 0x4803c857, 0x9000058d,
- 0x05000040, 0x812e59c0, 0x0500009a, 0x591c0202,
- 0x4803c857, 0x82000580, 0x0000ffff, 0x05020081,
- 0x050df97e, 0x05000004, 0x591c0203, 0x90000d8e,
- 0x0502007c, 0x592c020e, 0x4803c857, 0x90000503,
- 0x90000582, 0x05020007, 0x592c0813, 0x591c0013,
- 0x4803c857, 0x4807c857, 0x80040580, 0x05020071,
- 0x591c0416, 0x4803c857, 0x8c000500, 0x0502006d,
- 0x42000000, 0x0010e435, 0x051df8a6, 0x41780800,
- 0x591c1006, 0x60280000, 0x05f5f854, 0x592c040a,
- 0x4803c857, 0x800001c0, 0x0500000a, 0x80080c80,
- 0x05001003, 0x05b60e99, 0x80001040, 0x480a5c0a,
- 0x800811c0, 0x05020003, 0x0509fa7b, 0x0501f06a,
- 0x0509fe60, 0x591c0819, 0x591c001a, 0x4806580c,
- 0x4802580d, 0x592e4414, 0x81224110, 0x59300008,
- 0x8c000500, 0x05be08f8, 0x497a3809, 0x0001fab8,
- 0x0502004c, 0x411e6000, 0x05fdfc7a, 0x0501f05a,
- 0x05fdfcab, 0x05000015, 0x591c0006, 0x48026006,
- 0x4926601d, 0x4936600a, 0x050df931, 0x640e6407,
- 0x492e6009, 0x591c0819, 0x591c101a, 0x48066019,
- 0x480a601a, 0x4d380000, 0x591e7403, 0x4d300000,
- 0x411e6000, 0x05fdfc67, 0x5c026000, 0x0009f800,
- 0x5c027000, 0x0501f044, 0x59a8005e, 0x48023a05,
- 0x0501f041, 0x59cc0407, 0x9000058b, 0x05020026,
- 0x59340a00, 0x84040d0e, 0x48066a00, 0x592c0a08,
- 0x82040d00, 0x000000ff, 0x90040d94, 0x05000002,
- 0x640e6229, 0x59300008, 0x8c000500, 0x05be08ca,
- 0x4d400000, 0x497a5c0d, 0x600e8000, 0x592c0a0c,
- 0x05e1fea7, 0x051df96c, 0x05020006, 0x0001fb82,
- 0x59300a29, 0x90040d83, 0x05080e1e, 0x497a6009,
- 0x5c028000, 0x4a026403, 0x00000085, 0x64266203,
- 0x640a6407, 0x42000800, 0x80004040, 0x050dff08,
- 0x0005feab, 0x4203e000, 0xb0800000, 0x6023f800,
- 0x0501f019, 0x59cc0207, 0x82000580, 0x00002a00,
- 0x05020004, 0x59a8005e, 0x48023a05, 0x0501f012,
- 0x812e59c0, 0x05b40e39, 0x0005f9f3, 0x497a6027,
- 0x05e9fc64, 0x4a025a08, 0x00000103, 0x591c0008,
- 0x8c000500, 0x05be08a0, 0x591c0402, 0x48025c0a,
- 0x640e5a0a, 0x497a5c0d, 0x0001fb82, 0x05fdfc21,
- 0x05e1fa17, 0x5c026000, 0x0005ffdc, 0x0501f002,
- 0x5c026000, 0x5c025800, 0x1c01f000, 0x0501f813,
- 0x05fdf7fd, 0x4933c857, 0x91380595, 0x05020004,
- 0x59a8005e, 0x48023a05, 0x0501f009, 0x91380596,
- 0x05020009, 0x4d300000, 0x411e6000, 0x0519fb04,
- 0x0005fe4e, 0x0005ffdc, 0x5c026000, 0x497a381e,
- 0x0005ffdc, 0x1c01f000, 0x4c5c0000, 0x591c0416,
- 0x84000540, 0x48023c16, 0x59ccb80b, 0x4933c857,
- 0x491fc857, 0x492fc857, 0x4803c857, 0x485fc857,
- 0x050df8ca, 0x05020007, 0x8c5c053c, 0x05000005,
- 0x59a8005e, 0x48023a05, 0x497a381e, 0x0501f068,
- 0x4d300000, 0x411e6000, 0x0509f82e, 0x5c026000,
- 0x591c0407, 0x90000580, 0x05000061, 0x591c0403,
- 0xb0000590, 0x0502000a, 0x4d300000, 0x411e6000,
- 0x64066203, 0x42000800, 0x80000043, 0x0005feab,
- 0x5c026000, 0x497a381e, 0x0501f055, 0x591c0203,
- 0x9000058d, 0x0500001c, 0x812e59c0, 0x05b40de7,
- 0x592c020e, 0x4803c857, 0x8c000500, 0x0502001b,
- 0x8c000502, 0x05000014, 0x591c0416, 0x8c00051c,
- 0x05020007, 0x591c0013, 0x4803c857, 0x800001c0,
- 0x0500000d, 0x591c0014, 0x48023818, 0x4a023814,
- 0x0fffffff, 0x592c020c, 0x8400051e, 0x48025a0c,
- 0x42000000, 0x0010e437, 0x0519ffd2, 0x64063a16,
- 0x0501f01a, 0x42000000, 0x0010e438, 0x0519ffcd,
- 0x641e3a16, 0x0501f015, 0x59300017, 0x591c0817,
- 0x80040580, 0x0502002e, 0x8c5c053a, 0x05fe07f6,
- 0x59cc000a, 0x592c1813, 0x4803c857, 0x480fc857,
- 0x800c0580, 0x05fc07f0, 0x59cc000a, 0x4803c857,
- 0x48023818, 0x48023817, 0x42000000, 0x0010e436,
- 0x0519ffb8, 0x64163a16, 0x050df878, 0x0500001a,
- 0x591c0416, 0x8c00051a, 0x05000017, 0x4803c857,
- 0x8c00051e, 0x05000016, 0x4130b800, 0x05fdfbd4,
- 0x0500000f, 0x4926601d, 0x64066203, 0x647a6403,
- 0x585c041b, 0x4802641b, 0x585c021b, 0x4802621b,
- 0x591e680a, 0x4936600a, 0x050df855, 0x64066407,
- 0x42000800, 0x80000040, 0x0005feab, 0x405e6000,
- 0x0501f003, 0x5c00b800, 0x0509f70e, 0x5c00b800,
- 0x0005f7dc, 0x4933c857, 0x4d1c0000, 0x05edfd6b,
- 0x0502003f, 0x59cc0001, 0x59341002, 0x80080580,
- 0x82000500, 0x00ffffff, 0x05020037, 0x5930141b,
- 0x050df909, 0x05b40d89, 0x591c1407, 0x90080587,
- 0x05000031, 0x90080582, 0x0500002f, 0x90080580,
- 0x0500002d, 0x591c0202, 0x82000d80, 0x0000ffff,
- 0x05000004, 0x59301a1b, 0x800c0580, 0x05020026,
- 0x91380595, 0x05000022, 0x4d300000, 0x4d2c0000,
- 0x411e6000, 0x59325809, 0x0509fc63, 0x05b40d73,
- 0x592c0208, 0x82000500, 0x000000ff, 0x90000594,
- 0x05000002, 0x640e6229, 0x497a5c0d, 0x600e8000,
- 0x592c0a0c, 0x05e1fdba, 0x051df87f, 0x05020006,
- 0x0001fb82, 0x59300a29, 0x90040d83, 0x05080d31,
- 0x497a6009, 0x5c025800, 0x4a026403, 0x00000085,
- 0x64266203, 0x640a6407, 0x42000800, 0x80004040,
- 0x0005feab, 0x5c026000, 0x0501f003, 0x59a8005e,
- 0x48023a05, 0x497a381e, 0x0005ffdc, 0x5c023800,
- 0x1c01f000, 0x4933c857, 0x4c580000, 0x4d2c0000,
- 0x59325809, 0x59342200, 0x82102500, 0xffffdffd,
- 0x48126a00, 0x91383595, 0x05000009, 0x0509fc36,
- 0x05000047, 0x050dfab8, 0x05020003, 0x6008b000,
- 0x050dfa9f, 0x0501fa2a, 0x0501f059, 0x91cc1408,
- 0x6008b000, 0x91341c06, 0x0501ffa9, 0x0502000f,
- 0x91cc140a, 0x6008b000, 0x91341c08, 0x0501ffa4,
- 0x0502000a, 0x05c5face, 0x59342200, 0x59cc1007,
- 0x800811c0, 0x05000003, 0x480a6801, 0x84102542,
- 0x48126a00, 0x0501f048, 0x4d3c0000, 0x417a7800,
- 0x05c5fa7c, 0x5c027800, 0x42000000, 0x0010e454,
- 0x0519ff28, 0x59340200, 0x84000558, 0x48026a00,
- 0x4d300000, 0x05fdfb4a, 0x05b40d20, 0x4926601d,
- 0x4936600a, 0x497a6009, 0x64066407, 0x64066403,
- 0x600c3000, 0x0519fcc2, 0x05c5fd55, 0x59240400,
- 0x8c00050a, 0x0502000b, 0x41782800, 0x60043000,
- 0x4d400000, 0x60a68000, 0x0515fed5, 0x5c028000,
- 0x64126407, 0x641e6203, 0x6406642c, 0x0501f005,
- 0x64066203, 0x602c0800, 0x05ddfc1b, 0x05f1ff9e,
- 0x5c026000, 0x0509fbf4, 0x0500001d, 0x050dfa76,
- 0x0502001d, 0x0501f9ea, 0x0501f019, 0x42000000,
- 0x0010e457, 0x0519feff, 0x4d3c0000, 0x417a7800,
- 0x05c5fa4c, 0x42000000, 0x0010e454, 0x0519fef9,
+ 0x4c5c0000, 0x4c600000, 0x4c640000, 0x4c100000,
+ 0x05b5ff51, 0x05b40bac, 0x497a5a0a, 0x59a800d5,
+ 0x82000500, 0x0000f000, 0x48025c0b, 0x59a808bb,
+ 0x90040c18, 0x48065a0b, 0x412cb800, 0x4d2c0000,
+ 0x41cca000, 0x6004c000, 0x60b0c800, 0x900404ad,
+ 0x05021004, 0x912cac0d, 0x0509fab2, 0x0501f023,
+ 0x40043000, 0x60b00800, 0x912cac0d, 0x0509faad,
+ 0x901834ac, 0x4c180000, 0x05b5ff37, 0x5c003000,
+ 0x05000012, 0x8060c000, 0x4a025808, 0x00000110,
+ 0x492cb801, 0x90180cbd, 0x05021005, 0x40180800,
+ 0x912cac09, 0x0509fa9f, 0x0501f010, 0x9064cc3c,
+ 0x901834bc, 0x60f00800, 0x412cb800, 0x912cac09,
+ 0x0509fa98, 0x05fdf7ec, 0x5c025800, 0x592c020a,
+ 0x8400055e, 0x48025a0a, 0x592c040b, 0x80640540,
+ 0x48025c0b, 0x0501f002, 0x5c025800, 0x5c002000,
+ 0x813669c0, 0x05000003, 0x59343403, 0x0501f002,
+ 0x61fc31ff, 0x4932580c, 0x481a5c0a, 0xb0100594,
+ 0x0502001a, 0x4a02580c, 0xffffffff, 0x491e5817,
+ 0x41781000, 0x831c0580, 0xffffffff, 0x0500000e,
+ 0x591c0009, 0x80000d40, 0x0500000b, 0x58040208,
+ 0x82000500, 0x000000ff, 0x90000592, 0x05000005,
+ 0xb00005a0, 0x05000003, 0x90000588, 0x05020002,
+ 0x58041009, 0x480a5809, 0x592c040b, 0x81200540,
+ 0x48025c0b, 0x0501f002, 0x49225c09, 0x846001c0,
+ 0x80100540, 0x48025808, 0x051dfde5, 0x05020015,
+ 0x592c0001, 0x497a5801, 0x4c000000, 0x42000000,
+ 0x00111dfa, 0x50000000, 0x48025802, 0x0001fba8,
+ 0x5c025800, 0x812e59c0, 0x05fe07f4, 0x80000580,
+ 0x5c00c800, 0x5c00c000, 0x5c00b800, 0x5c00b000,
+ 0x5c00a800, 0x5c00a000, 0x5c025800, 0x1c01f000,
+ 0x051df95a, 0x05fc07f7, 0x05b5fef4, 0x81780000,
+ 0x05fdf7f4, 0x4933c857, 0x91380d95, 0x05020008,
+ 0x050dfb52, 0x05000005, 0x5930082a, 0x58040416,
+ 0x8400051a, 0x48000c16, 0x0009f010, 0x91380d96,
+ 0x05b60b29, 0x0009f010, 0x4933c857, 0x4d2c0000,
+ 0x4c500000, 0x4c540000, 0x4c580000, 0x59325809,
+ 0x91cca406, 0x59cc1806, 0x820c0580, 0x01000000,
+ 0x05020003, 0x6008b000, 0x0501f00a, 0x6020b000,
+ 0x912cac09, 0x051dfd25, 0x8c0c0500, 0x05000007,
+ 0x6020b000, 0x592e5801, 0x812e59c0, 0x05b40b12,
+ 0x912cac09, 0x051dfd1d, 0x0501f812, 0x5c00b000,
+ 0x5c00a800, 0x5c00a000, 0x5c025800, 0x1c01f000,
+ 0x4933c857, 0x4c500000, 0x4c540000, 0x4c580000,
+ 0x91cca406, 0x5930a809, 0x9054ac09, 0x601cb000,
+ 0x051dfd0e, 0x5c00b000, 0x5c00a800, 0x5c00a000,
+ 0x4933c857, 0x0509ff39, 0x00080010, 0x4d2c0000,
+ 0x050dfdd7, 0x05020008, 0x41780800, 0x4d400000,
+ 0x60028000, 0x050dfbfd, 0x5c028000, 0x5c025800,
+ 0x0009f010, 0x5931d82d, 0x58ef400b, 0x58ee580d,
+ 0x4a025a08, 0x00000103, 0x58ec0009, 0x0801f800,
+ 0x5c025800, 0x0009f010, 0x4933c857, 0x59cc1806,
+ 0x820c0580, 0x02000000, 0x0502001f, 0x4a026802,
+ 0x00fffffd, 0x5934000a, 0x84000504, 0x4802680a,
+ 0x60000000, 0x4c0c0000, 0x0501f824, 0x5c001800,
+ 0x00080010, 0x59300c29, 0x900405a1, 0x05020006,
+ 0x05c5fb73, 0x61fc19ff, 0x60102000, 0x60483000,
+ 0x05d5fea1, 0x59300809, 0x800409c0, 0x00080010,
+ 0x4a000a08, 0x00000103, 0x480c0809, 0x5931d82d,
+ 0x58ef400b, 0x58ee580d, 0x58ec0009, 0x0801f800,
+ 0x0009f010, 0x42000000, 0x00112401, 0x051dfc04,
+ 0x60180000, 0x4c0c0000, 0x0501f808, 0x5c001800,
+ 0x05fc07ed, 0x4c0c0000, 0x0501f823, 0x5c001800,
+ 0x05fe07e9, 0x1c01f000, 0x4933c857, 0x4d400000,
+ 0x4d240000, 0x4d200000, 0x5932481d, 0x40028000,
+ 0x59300429, 0xb0000d91, 0x05000003, 0x90000da1,
+ 0x05020010, 0x05c5fb4a, 0x60001802, 0x051dfd25,
+ 0x05020004, 0x59300429, 0x900005a1, 0x05c4089b,
+ 0x59300429, 0xb0000591, 0x05020002, 0x41781800,
+ 0x60040000, 0x05e1fdbf, 0x80000580, 0x0501f002,
+ 0x90000541, 0x5c024000, 0x5c024800, 0x5c028000,
+ 0x1c01f000, 0x4933c857, 0x4d2c0000, 0x59325809,
+ 0x812e59c0, 0x0502000b, 0x497a6006, 0x497a6205,
+ 0x050dfab2, 0x05000002, 0x497a6417, 0x4d380000,
+ 0x608a7000, 0x0501fb13, 0x5c027000, 0x80000580,
+ 0x5c025800, 0x1c01f000, 0x4933c857, 0x4d2c0000,
+ 0x4c500000, 0x4c540000, 0x4c580000, 0x59325809,
+ 0x592e5801, 0x912cac09, 0x91cca406, 0x59a808d5,
+ 0x82040d00, 0x000003ff, 0x9004148f, 0x05001011,
+ 0x603cb000, 0x051dfc85, 0x592e5801, 0x912cac09,
+ 0x90080c8f, 0x05001008, 0x603cb000, 0x051dfc7f,
+ 0x592e5801, 0x912cac09, 0x9004148f, 0x05001005,
+ 0x603c1000, 0x4008b000, 0x051dfc78, 0x0501f003,
+ 0x4004b000, 0x051dfc75, 0x5931d82d, 0x58ef400b,
+ 0x58ee580d, 0x4a025a08, 0x00000103, 0x592e5801,
+ 0x58ec0009, 0x0801f800, 0x0009f810, 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, 0x05b40a44, 0x9008ac09, 0x051dfc4f,
+ 0x82000d00, 0xff000000, 0x800409c0, 0x05000014,
+ 0x8200b500, 0x000000ff, 0x05000011, 0x8058b104,
+ 0x90580c8e, 0x05001002, 0x6034b000, 0x58081001,
+ 0x800811c0, 0x05b40a34, 0x9008ac09, 0x051dfc3f,
+ 0x0501f007, 0x59301009, 0x800811c0, 0x05b40a2e,
+ 0x48001009, 0x59cc0007, 0x4800100a, 0x05fdff2d,
+ 0x5c00b000, 0x5c00a800, 0x5c00a000, 0x5c025800,
+ 0x1c01f000, 0x4933c857, 0x4d2c0000, 0x4c500000,
+ 0x4c540000, 0x4c580000, 0x6008b000, 0x59cc0806,
+ 0x82040580, 0x01000000, 0x05000004, 0x8204b500,
+ 0x0000ffff, 0x8058b104, 0x91cca406, 0x59300009,
+ 0x9000ac09, 0x051dfc21, 0x05fdff16, 0x5c00b000,
+ 0x5c00a800, 0x5c00a000, 0x5c025800, 0x1c01f000,
+ 0x4933c857, 0x4937c857, 0x4d1c0000, 0x05edfdc1,
+ 0x05020020, 0x59cc0001, 0x82000500, 0x00ffffff,
+ 0x59341002, 0x82081500, 0x00ffffff, 0x80080580,
+ 0x05020018, 0x497a6205, 0x60d40800, 0x050dfa97,
+ 0x0502000f, 0x591c001e, 0x800001c0, 0x0500000c,
+ 0x497a381e, 0x591c0416, 0x8c000502, 0x05b409f6,
+ 0x84000502, 0x48023c16, 0x591c1407, 0x90080583,
+ 0x05000005, 0x90080586, 0x05000005, 0x05fdfcbe,
+ 0x0501f004, 0x0501f805, 0x0501f002, 0x0501f8c8,
+ 0x5c023800, 0x1c01f000, 0x4d2c0000, 0x591e5809,
+ 0x4933c857, 0x491fc857, 0x493bc857, 0x492fc857,
+ 0x91380595, 0x050000bc, 0x91380596, 0x050200b8,
+ 0x4d300000, 0x411e6000, 0x59cc0207, 0x4803c857,
+ 0x82000d00, 0x0000ff00, 0x82040580, 0x00001700,
+ 0x05000004, 0x82040580, 0x00000300, 0x05020068,
+ 0x050df9f2, 0x05000006, 0x591c0403, 0xb0000590,
+ 0x05020003, 0x05fdfc9c, 0x0501f0a1, 0x591c0203,
+ 0x4803c857, 0x9000058d, 0x05000044, 0x812e59c0,
+ 0x0500009e, 0x591c0202, 0x4803c857, 0x82000580,
+ 0x0000ffff, 0x05020085, 0x050df9e0, 0x05000004,
+ 0x591c0203, 0x90000d8e, 0x05020080, 0x592c020e,
+ 0x4803c857, 0x90000503, 0x90000582, 0x0502000b,
+ 0x592c0813, 0x591c0013, 0x4d300000, 0x411e6000,
+ 0x050dfffc, 0x5c026000, 0x4803c857, 0x4807c857,
+ 0x80040580, 0x05020071, 0x591c0416, 0x4803c857,
+ 0x8c000500, 0x0502006d, 0x42000000, 0x001123d6,
+ 0x051dfae7, 0x41780800, 0x591c1006, 0x60280000,
+ 0x05f1ffd3, 0x592c040a, 0x4803c857, 0x800001c0,
+ 0x0500000a, 0x80080c80, 0x05001003, 0x05b6099a,
+ 0x80001040, 0x480a5c0a, 0x800811c0, 0x05020003,
+ 0x0509fabb, 0x0501f06a, 0x0509febf, 0x591c0819,
+ 0x591c001a, 0x4806580c, 0x4802580d, 0x592e4414,
+ 0x81224110, 0x59300008, 0x8c000500, 0x05ba0c5c,
+ 0x497a3809, 0x0001fac0, 0x0502004c, 0x411e6000,
+ 0x05fdfc55, 0x0501f05a, 0x05fdfc86, 0x05000015,
+ 0x591c0006, 0x48026006, 0x4926601d, 0x4936600a,
+ 0x050df98f, 0x640e6407, 0x492e6009, 0x591c0819,
+ 0x591c101a, 0x48066019, 0x480a601a, 0x4d380000,
+ 0x591e7403, 0x4d300000, 0x411e6000, 0x05fdfc42,
+ 0x5c026000, 0x0009f839, 0x5c027000, 0x0501f044,
+ 0x59a80061, 0x48023a05, 0x0501f041, 0x59cc0407,
+ 0x9000058b, 0x05020026, 0x59340a00, 0x84040d0e,
+ 0x48066a00, 0x592c0a08, 0x82040d00, 0x000000ff,
+ 0x90040d94, 0x05000002, 0x640e6229, 0x59300008,
+ 0x8c000500, 0x05ba0c2e, 0x4d400000, 0x497a5c0d,
+ 0x600e8000, 0x592c0a0c, 0x05e1fc51, 0x051dfbad,
+ 0x05020006, 0x0001fba8, 0x59300a29, 0x90040d83,
+ 0x05080e7d, 0x497a6009, 0x5c028000, 0x4a026403,
+ 0x00000085, 0x64266203, 0x640a6407, 0x42000800,
+ 0x80004040, 0x050dff74, 0x0005fee2, 0x4203e000,
+ 0xb0800000, 0x6023f800, 0x0501f019, 0x59cc0207,
+ 0x82000580, 0x00002a00, 0x05020004, 0x59a80061,
+ 0x48023a05, 0x0501f012, 0x812e59c0, 0x05b4093a,
+ 0x0005fa1a, 0x497a6027, 0x05e9fab2, 0x4a025a08,
+ 0x00000103, 0x591c0008, 0x8c000500, 0x05ba0c04,
+ 0x591c0402, 0x48025c0a, 0x640e5a0a, 0x497a5c0d,
+ 0x0001fba8, 0x05fdfbfc, 0x05ddffa2, 0x5c026000,
+ 0x0009f810, 0x0501f002, 0x5c026000, 0x5c025800,
+ 0x1c01f000, 0x0501f813, 0x05fdf7fd, 0x4933c857,
+ 0x91380595, 0x05020004, 0x59a80061, 0x48023a05,
+ 0x0501f009, 0x91380596, 0x05020009, 0x4d300000,
+ 0x411e6000, 0x0519fd14, 0x0005fe84, 0x0009f810,
+ 0x5c026000, 0x497a381e, 0x0009f810, 0x1c01f000,
+ 0x4c5c0000, 0x591c0416, 0x84000540, 0x48023c16,
+ 0x59ccb80b, 0x4933c857, 0x491fc857, 0x492fc857,
+ 0x4803c857, 0x485fc857, 0x050df928, 0x05020007,
+ 0x8c5c053c, 0x05000005, 0x59a80061, 0x48023a05,
+ 0x497a381e, 0x0501f068, 0x4d300000, 0x411e6000,
+ 0x0509f866, 0x5c026000, 0x591c0407, 0x90000580,
+ 0x05000061, 0x591c0403, 0xb0000590, 0x0502000a,
+ 0x4d300000, 0x411e6000, 0x64066203, 0x42000800,
+ 0x80000043, 0x0005fee2, 0x5c026000, 0x497a381e,
+ 0x0501f055, 0x591c0203, 0x9000058d, 0x0500001c,
+ 0x812e59c0, 0x05b408e8, 0x592c020e, 0x4803c857,
+ 0x8c000500, 0x0502001b, 0x8c000502, 0x05000014,
+ 0x591c0416, 0x8c00051c, 0x05020007, 0x591c0013,
+ 0x4803c857, 0x800001c0, 0x0500000d, 0x591c0014,
+ 0x48023818, 0x4a023814, 0x0fffffff, 0x592c020c,
+ 0x8400051e, 0x48025a0c, 0x42000000, 0x001123d8,
+ 0x051dfa13, 0x64063a16, 0x0501f01a, 0x42000000,
+ 0x001123d9, 0x051dfa0e, 0x641e3a16, 0x0501f015,
+ 0x59300017, 0x591c0817, 0x80040580, 0x0502002e,
+ 0x8c5c053a, 0x05fe07f6, 0x59cc000a, 0x592c1813,
+ 0x4803c857, 0x480fc857, 0x800c0580, 0x05fc07f0,
+ 0x59cc000a, 0x4803c857, 0x48023818, 0x48023817,
+ 0x42000000, 0x001123d7, 0x051df9f9, 0x64163a16,
+ 0x050df8d6, 0x0500001a, 0x591c0416, 0x8c00051a,
+ 0x05000017, 0x4803c857, 0x8c00051e, 0x05000016,
+ 0x4130b800, 0x05fdfbaf, 0x0500000f, 0x4926601d,
+ 0x64066203, 0x647a6403, 0x585c041b, 0x4802641b,
+ 0x585c021b, 0x4802621b, 0x591e680a, 0x4936600a,
+ 0x050df8b3, 0x64066407, 0x42000800, 0x80000040,
+ 0x0005fee2, 0x405e6000, 0x0501f003, 0x5c00b800,
+ 0x0509f76d, 0x5c00b800, 0x0009f010, 0x4933c857,
+ 0x4d1c0000, 0x05edfc4b, 0x0502003f, 0x59cc0001,
+ 0x59341002, 0x80080580, 0x82000500, 0x00ffffff,
+ 0x05020037, 0x5930141b, 0x050df96b, 0x05b4088a,
+ 0x591c1407, 0x90080587, 0x05000031, 0x90080582,
+ 0x0500002f, 0x90080580, 0x0500002d, 0x591c0202,
+ 0x82000d80, 0x0000ffff, 0x05000004, 0x59301a1b,
+ 0x800c0580, 0x05020026, 0x91380595, 0x05000022,
+ 0x4d300000, 0x4d2c0000, 0x411e6000, 0x59325809,
+ 0x0509fcb2, 0x05b40874, 0x592c0208, 0x82000500,
+ 0x000000ff, 0x90000594, 0x05000002, 0x640e6229,
+ 0x497a5c0d, 0x600e8000, 0x592c0a0c, 0x05e1fb64,
+ 0x051dfac0, 0x05020006, 0x0001fba8, 0x59300a29,
+ 0x90040d83, 0x05080d90, 0x497a6009, 0x5c025800,
+ 0x4a026403, 0x00000085, 0x64266203, 0x640a6407,
+ 0x42000800, 0x80004040, 0x0005fee2, 0x5c026000,
+ 0x0501f003, 0x59a80061, 0x48023a05, 0x497a381e,
+ 0x0009f810, 0x5c023800, 0x1c01f000, 0x4933c857,
+ 0x4c580000, 0x4d2c0000, 0x59325809, 0x59342200,
+ 0x82102500, 0xffffdffd, 0x48126a00, 0x91383595,
+ 0x05000009, 0x0509fc85, 0x05000047, 0x050dfb24,
+ 0x05020003, 0x6008b000, 0x050dfb0b, 0x0501fa2a,
+ 0x0501f059, 0x91cc1408, 0x6008b000, 0x91341c06,
+ 0x0501ffb4, 0x0502000f, 0x91cc140a, 0x6008b000,
+ 0x91341c08, 0x0501ffaf, 0x0502000a, 0x05c1fe2b,
+ 0x59342200, 0x59cc1007, 0x800811c0, 0x05000003,
+ 0x480a6801, 0x84102542, 0x48126a00, 0x0501f048,
+ 0x4d3c0000, 0x417a7800, 0x05c1fdd9, 0x5c027800,
+ 0x42000000, 0x001123f8, 0x051df969, 0x59340200,
+ 0x84000558, 0x48026a00, 0x4d300000, 0x05fdfb25,
+ 0x05b40821, 0x4926601d, 0x4936600a, 0x497a6009,
+ 0x64066407, 0x64066403, 0x600c3000, 0x0519fee5,
+ 0x05c5f8b7, 0x59240400, 0x8c00050a, 0x0502000b,
+ 0x41782800, 0x60043000, 0x4d400000, 0x60a68000,
+ 0x0519f8e2, 0x5c028000, 0x64126407, 0x641e6203,
+ 0x6406642c, 0x0501f005, 0x64066203, 0x602c0800,
+ 0x05ddf8f4, 0x05f1ff1d, 0x5c026000, 0x0509fc43,
+ 0x0500001d, 0x050dfae2, 0x0502001d, 0x0501f9ea,
+ 0x0501f019, 0x42000000, 0x001123fb, 0x051df940,
+ 0x4d3c0000, 0x417a7800, 0x05c1fda9, 0x42000000,
+ 0x001123f8, 0x051df93a, 0x59340200, 0x84000558,
+ 0x48026a00, 0x600c3000, 0x41782800, 0x60142000,
+ 0x4d400000, 0x4d440000, 0x59368c03, 0x60a68000,
+ 0x050dfd92, 0x5c028800, 0x5c028000, 0x5c027800,
+ 0x05c1fdde, 0x0009f810, 0x0501f002, 0x05fdfce9,
+ 0x5c025800, 0x5c00b000, 0x1c01f000, 0x4933c857,
+ 0x41380000, 0xb13834a0, 0x05b21fdf, 0x0c01f001,
+ 0x00109e9c, 0x00109e99, 0x00109e9c, 0x00109e9c,
+ 0x00109e9c, 0x00109e9c, 0x00109e98, 0x00109e98,
+ 0x00109e98, 0x00109e98, 0x00109e98, 0x00109e98,
+ 0x00109e98, 0x00109e98, 0x00109e98, 0x00109e98,
+ 0x00109e98, 0x00109e98, 0x00109e98, 0x00109e98,
+ 0x00109e98, 0x00109e98, 0x00109e98, 0x00109e98,
+ 0x00109e98, 0x00109e98, 0x00109e98, 0x00109e98,
+ 0x00109e98, 0x00109e98, 0x00109e98, 0x00109e9c,
+ 0x00109e98, 0x00109e9c, 0x00109e9c, 0x00109e98,
+ 0x00109e98, 0x00109e98, 0x00109e98, 0x00109e98,
+ 0x00109e9c, 0x00109e98, 0x00109e98, 0x00109e98,
+ 0x00109e98, 0x00109e98, 0x00109e98, 0x00109e98,
+ 0x00109e98, 0x00109e98, 0x00109e9c, 0x00109e9c,
+ 0x00109e98, 0x00109e98, 0x00109e98, 0x00109e98,
+ 0x00109e98, 0x00109e98, 0x00109e98, 0x00109e98,
+ 0x00109e98, 0x00109e9c, 0x00109e98, 0x00109e98,
+ 0x00109e98, 0x00109e98, 0x00109e98, 0x00109e9c,
+ 0x00109e9c, 0x00109e98, 0x00109e98, 0x00109e98,
+ 0x00109e98, 0x00109e9c, 0x00109e98, 0x00109e98,
+ 0x00109e98, 0x00109e9c, 0x00109e98, 0x00109e98,
+ 0x00109e98, 0x00109e9c, 0x00109e98, 0x00109e98,
+ 0x00109e98, 0x00109e9c, 0x00109e98, 0x00109e9c,
+ 0x00109e9c, 0x00109e98, 0x00109e98, 0x00109e98,
+ 0x00109e98, 0x00109e98, 0x00109e98, 0x00109e98,
+ 0x05b1ff7d, 0x64066203, 0x493a6403, 0x05f1f68f,
+ 0x4933c857, 0x64066203, 0x493a6403, 0x05f1f68b,
+ 0x59300403, 0xb00034a0, 0x05b21f73, 0x91383593,
+ 0x05000087, 0x913835a7, 0x05020042, 0x4933c857,
+ 0x05f5fa7f, 0x0519ff14, 0x0509fcaa, 0x0500000c,
+ 0x0509fcb7, 0x05000039, 0x59300403, 0x90000da2,
+ 0x05020033, 0x60140004, 0x05fdfcac, 0x05000030,
+ 0x05fdfcc9, 0x05000030, 0x0501f030, 0x600c0004,
+ 0x05fdfca6, 0x0500002a, 0x05c1fd50, 0x601c0800,
+ 0x05ddf844, 0x0501f940, 0x4d440000, 0x59368c03,
+ 0x83440580, 0x000007fe, 0x05020007, 0x59a8124c,
+ 0x84081540, 0x05e1fcd3, 0x05020002, 0x8408154a,
+ 0x480b524c, 0x60a68000, 0x05f5f834, 0x4d3c0000,
+ 0x417a7800, 0x05c1fcf6, 0x5c027800, 0x916c0583,
+ 0x0500000b, 0x5932680a, 0x59340008, 0x800001c0,
+ 0x05020007, 0x59368c03, 0x4933c857, 0x4937c857,
+ 0x4947c857, 0x05ddf916, 0x0501f008, 0x42000000,
+ 0x001123f8, 0x051df87a, 0x60543000, 0x41782800,
+ 0x600c2000, 0x050dfcd9, 0x5c028800, 0x0509ff3a,
+ 0x0009f010, 0x1c01f000, 0x0501f917, 0x05fdf7fc,
+ 0x91380594, 0x0500000c, 0x4933c857, 0xb13805a1,
+ 0x05000003, 0xb13805a0, 0x05fe07f7, 0x05f5fe88,
+ 0x05fe0276, 0x59300203, 0x9000058e, 0x050804f1,
+ 0x05b1ff21, 0x4933c857, 0x05f5fa31, 0x050dff59,
+ 0x05020005, 0x59300009, 0x800001c0, 0x05020026,
+ 0x05f1f62e, 0x0519fec0, 0x60082800, 0x59300403,
+ 0xb0000591, 0x050c07e9, 0x4d3c0000, 0x417a7800,
+ 0x05c1fcbf, 0x5c027800, 0x60583000, 0x41782800,
+ 0x4d400000, 0x4d440000, 0x59368c03, 0x60242000,
+ 0x60a68000, 0x050dfcad, 0x5c028800, 0x5c028000,
+ 0x42000000, 0x001123f8, 0x051df845, 0x0509fc41,
+ 0x0502000b, 0x05c1fcf5, 0x0501f8e7, 0x59340c03,
+ 0x82040580, 0x000007fe, 0x05fe07c9, 0x59a80a4c,
+ 0x84040d40, 0x4807524c, 0x05fdf7c5, 0x0509fc44,
+ 0x05020003, 0x0501f8dc, 0x05fdf7c1, 0x59300403,
+ 0x90000db2, 0x05020003, 0x05c5fbbd, 0x05fdf7bc,
+ 0x90000da2, 0x050008d4, 0x05fdf7b9, 0x4933c857,
+ 0x4803c857, 0x0c01f001, 0x00109f8f, 0x00109f8f,
+ 0x00109f8f, 0x00109f8f, 0x00109f8f, 0x00109f8f,
+ 0x00109f8e, 0x00109f8e, 0x00109f8e, 0x00109f8e,
+ 0x00109f8e, 0x00109f8e, 0x00109f8e, 0x00109f8e,
+ 0x00109f8e, 0x00109f8e, 0x00109f8e, 0x00109f8e,
+ 0x00109f8e, 0x00109f8e, 0x00109f8e, 0x00109f8e,
+ 0x00109f8e, 0x00109f8e, 0x00109f8e, 0x00109f8e,
+ 0x00109f8e, 0x00109f8e, 0x00109f8e, 0x00109f8e,
+ 0x00109f94, 0x00109ff5, 0x00109f8e, 0x00109ff5,
+ 0x00109ff5, 0x00109f8e, 0x00109f8e, 0x00109f8e,
+ 0x00109f8e, 0x00109f8e, 0x00109ff5, 0x00109ff5,
+ 0x00109f8e, 0x00109f8e, 0x00109f8e, 0x00109f8e,
+ 0x00109f8e, 0x00109f8e, 0x00109f8e, 0x00109f8e,
+ 0x00109fa2, 0x00109ff5, 0x00109f8e, 0x00109f9d,
+ 0x00109f8e, 0x00109f8e, 0x00109f8e, 0x00109f9d,
+ 0x00109f8e, 0x00109f8e, 0x00109f8e, 0x00109ff5,
+ 0x00109fa0, 0x00109f8e, 0x00109f8e, 0x00109f8e,
+ 0x00109f8e, 0x00109ff5, 0x00109ff5, 0x00109f8e,
+ 0x00109f8e, 0x00109f8e, 0x00109f8e, 0x00109ff5,
+ 0x00109f8e, 0x00109f8e, 0x00109f8e, 0x00109ff5,
+ 0x00109f8e, 0x00109f8e, 0x00109f8e, 0x00109ff5,
+ 0x00109f8e, 0x00109f8e, 0x00109f8e, 0x00109ff5,
+ 0x00109f8e, 0x00109ff5, 0x00109faa, 0x00109f8e,
+ 0x00109f8e, 0x00109f8e, 0x00109f8e, 0x00109f8e,
+ 0x00109fb0, 0x00109f8e, 0x05b1fe87, 0x640a6203,
+ 0x0509fea6, 0x05000002, 0x643a6203, 0x0509f434,
+ 0x64166203, 0x59a80061, 0x48026205, 0x0509fe9f,
+ 0x05000002, 0x643a6203, 0x59a8005f, 0x48026006,
+ 0x1c01f000, 0x5930082a, 0x49780a05, 0x0501f056,
+ 0x0509fe7d, 0x0009f010, 0x05c5fb41, 0x05f5fa2e,
+ 0x05000003, 0x05f5f982, 0x0009f010, 0x05f5f980,
+ 0x0009f810, 0x05f5f219, 0x4933c857, 0x640a6203,
+ 0x0509fe8a, 0x05000002, 0x643a6203, 0x1c01f000,
+ 0x4933c857, 0x4d300000, 0x4d2c0000, 0x59325809,
+ 0x812e59c0, 0x0500002e, 0x0509fa9c, 0x05b00e5e,
+ 0x59a80cd2, 0x48065811, 0x59a808d4, 0x48065810,
+ 0x64025a0a, 0x592c1001, 0x800811c0, 0x05b00e56,
+ 0x4930100b, 0x492c100a, 0x64001001, 0x4a001009,
+ 0x00109fd0, 0x4a001003, 0x00114616, 0x4a001005,
+ 0x00000200, 0x592c0015, 0x48001007, 0x592c0016,
+ 0x48001008, 0x5c025800, 0x5c026000, 0x0001f029,
+ 0x4d300000, 0x4d2c0000, 0x5832600b, 0x813261c0,
+ 0x05b00e41, 0x5832580a, 0x812e59c0, 0x05b00e3e,
+ 0x49786001, 0x58300002, 0x82000580, 0x00000100,
+ 0x05020014, 0x59a80cd2, 0x48065811, 0x59a808d4,
+ 0x48065810, 0x64025a0a, 0x0001fba8, 0x59a81cd1,
+ 0x840c1d46, 0x480f54d1, 0x0509fe50, 0x05000005,
+ 0x05fdf8fd, 0x59a8005f, 0x48026006, 0x0501f002,
+ 0x0009f810, 0x5c025800, 0x5c026000, 0x1c01f000,
+ 0x4803c857, 0x4a006002, 0x00000100, 0x600a8000,
+ 0x05fdf7ee, 0x4933c857, 0x640a6203, 0x0509fe3f,
+ 0x05000002, 0x643a6203, 0x59a8005f, 0x48026006,
+ 0x1c01f000, 0x4933c857, 0x0509fa54, 0x0500002b,
+ 0x4d2c0000, 0x050df8f2, 0x05020007, 0x4d400000,
+ 0x60c68000, 0x60100800, 0x0509ff18, 0x5c028000,
+ 0x0501f021, 0x050df8f4, 0x05020005, 0x64c65a0a,
+ 0x64125810, 0x0001fba8, 0x0501f01b, 0x59300c07,
+ 0x90040590, 0x05000003, 0x90040591, 0x05020007,
+ 0x64c65a0a, 0x64125811, 0x4a025812, 0x000000ff,
+ 0x0001fba8, 0x0501f010, 0x592c0408, 0x8c00051e,
+ 0x0500000d, 0x4a025a08, 0x00000103, 0x4a025809,
+ 0x01000000, 0x4da00000, 0x4cec0000, 0x5931d82d,
+ 0x58ef400b, 0x58ec0009, 0x0801f800, 0x5c01d800,
+ 0x5c034000, 0x5c025800, 0x1c01f000, 0x4933c857,
+ 0x83340580, 0x001141b4, 0x05020007, 0x91380d95,
+ 0x05000003, 0x91380d96, 0x05fe0134, 0x0519fd8c,
+ 0x0009f010, 0x59340400, 0x82000500, 0x000000ff,
+ 0x9000348c, 0x05b21ddc, 0x59303403, 0xb0180d8d,
+ 0x05080647, 0x90180db3, 0x0508060d, 0x90180da8,
+ 0x0508035a, 0x90180da9, 0x05080365, 0xb0180d97,
+ 0x050c0487, 0x90180d9f, 0x05fc02c6, 0xb0180d95,
+ 0x05fc02a6, 0x90180d80, 0x05fc0579, 0x90180da2,
+ 0x05fc02e2, 0x90180db5, 0x05fc03ba, 0x90180db9,
+ 0x05fc052f, 0x90180dbd, 0x05fc033c, 0xb0180d84,
+ 0x05fc0368, 0xb0180d89, 0x05fc039b, 0xb0180d98,
+ 0x050c050d, 0xb0180d83, 0x05080752, 0xb0180d91,
+ 0x050807ac, 0x90180d84, 0x05020002, 0x60040000,
+ 0x91380d95, 0x05000004, 0x91380d96, 0x05fe0103,
+ 0x0501f1ec, 0x4c000000, 0x0519fd59, 0x5c000000,
+ 0x4d2c0000, 0x4d3c0000, 0x0c01f804, 0x5c027800,
+ 0x5c025800, 0x1c01f000, 0x0010a081, 0x0010a085,
+ 0x0010a081, 0x0010a0d6, 0x0010a081, 0x0010a1d9,
+ 0x0010a263, 0x0010a081, 0x0010a081, 0x0010a227,
+ 0x0010a081, 0x0010a232, 0x4933c857, 0x497a6008,
+ 0x59300809, 0x58040000, 0x4a000a08, 0x00000103,
+ 0x0009f010, 0x4933c857, 0x40000000, 0x40000000,
+ 0x1c01f000, 0x4933c857, 0x05ddfa99, 0x59a800bb,
+ 0xb00005b4, 0x0502003d, 0x0515fcdd, 0x0502000e,
+ 0x0501f83d, 0x0509f9c5, 0x05000009, 0x050df864,
+ 0x05020007, 0x41780800, 0x4d400000, 0x60028000,
+ 0x0509fe8a, 0x5c028000, 0x0501f002, 0x05c1fb73,
+ 0x0009f010, 0x0509f9b9, 0x05000005, 0x050df858,
+ 0x05020003, 0x05fdff60, 0x0009f010, 0x417a7800,
+ 0x05c1fb23, 0x42000000, 0x001123f8, 0x0519feb4,
0x59340200, 0x84000558, 0x48026a00, 0x600c3000,
- 0x41782800, 0x60142000, 0x4d400000, 0x4d440000,
- 0x59368c03, 0x60a68000, 0x050dfd25, 0x5c028800,
- 0x5c028000, 0x5c027800, 0x05c5fa81, 0x0005ffdc,
- 0x0501f002, 0x05fdfced, 0x5c025800, 0x5c00b000,
- 0x1c01f000, 0x4933c857, 0x41380000, 0xb13834a0,
- 0x05b61cde, 0x0c01f001, 0x00109962, 0x0010995f,
- 0x00109962, 0x00109962, 0x00109962, 0x00109962,
- 0x0010995e, 0x0010995e, 0x0010995e, 0x0010995e,
- 0x0010995e, 0x0010995e, 0x0010995e, 0x0010995e,
- 0x0010995e, 0x0010995e, 0x0010995e, 0x0010995e,
- 0x0010995e, 0x0010995e, 0x0010995e, 0x0010995e,
- 0x0010995e, 0x0010995e, 0x0010995e, 0x0010995e,
- 0x0010995e, 0x0010995e, 0x0010995e, 0x0010995e,
- 0x0010995e, 0x00109962, 0x0010995e, 0x00109962,
- 0x00109962, 0x0010995e, 0x0010995e, 0x0010995e,
- 0x0010995e, 0x0010995e, 0x00109962, 0x0010995e,
- 0x0010995e, 0x0010995e, 0x0010995e, 0x0010995e,
- 0x0010995e, 0x0010995e, 0x0010995e, 0x0010995e,
- 0x00109962, 0x00109962, 0x0010995e, 0x0010995e,
- 0x0010995e, 0x0010995e, 0x0010995e, 0x0010995e,
- 0x0010995e, 0x0010995e, 0x0010995e, 0x00109962,
- 0x0010995e, 0x0010995e, 0x0010995e, 0x0010995e,
- 0x0010995e, 0x00109962, 0x00109962, 0x0010995e,
- 0x0010995e, 0x0010995e, 0x0010995e, 0x00109962,
- 0x0010995e, 0x0010995e, 0x0010995e, 0x00109962,
- 0x0010995e, 0x0010995e, 0x0010995e, 0x00109962,
- 0x0010995e, 0x0010995e, 0x0010995e, 0x00109962,
- 0x0010995e, 0x00109962, 0x00109962, 0x0010995e,
- 0x0010995e, 0x0010995e, 0x0010995e, 0x0010995e,
- 0x0010995e, 0x0010995e, 0x05b5fc7c, 0x64066203,
- 0x493a6403, 0x05f1f710, 0x4933c857, 0x64066203,
- 0x493a6403, 0x05f1f70c, 0x59300403, 0xb00034a0,
- 0x05b61c72, 0x91383593, 0x05000087, 0x913835a7,
- 0x05020042, 0x4933c857, 0x05f5fafb, 0x0519fce7,
- 0x0509fc4b, 0x0500000c, 0x0509fc58, 0x05000039,
- 0x59300403, 0x90000da2, 0x05020033, 0x60140004,
- 0x05fdfcb0, 0x05000030, 0x05fdfccd, 0x05000030,
- 0x0501f030, 0x600c0004, 0x05fdfcaa, 0x0500002a,
- 0x05c5f9f3, 0x601c0800, 0x05ddfb6b, 0x0501f940,
- 0x4d440000, 0x59368c03, 0x83440580, 0x000007fe,
- 0x05020007, 0x59a81249, 0x84081540, 0x05e1ff23,
- 0x05020002, 0x8408154a, 0x480b5249, 0x60a68000,
- 0x05f5f8b5, 0x4d3c0000, 0x417a7800, 0x05c5f999,
- 0x5c027800, 0x916c0583, 0x0500000b, 0x5932680a,
- 0x59340008, 0x800001c0, 0x05020007, 0x59368c03,
- 0x4933c857, 0x4937c857, 0x4947c857, 0x05ddfc0d,
- 0x0501f008, 0x42000000, 0x0010e454, 0x0519fe39,
- 0x60543000, 0x41782800, 0x600c2000, 0x050dfc6c,
- 0x5c028800, 0x0509fedc, 0x0005f7dc, 0x1c01f000,
- 0x0501f917, 0x05fdf7fc, 0x91380594, 0x0500000c,
- 0x4933c857, 0xb13805a1, 0x05000003, 0xb13805a0,
- 0x05fe07f7, 0x05f5ff04, 0x05fe027e, 0x59300203,
- 0x9000058e, 0x05080492, 0x05b5fc20, 0x4933c857,
- 0x05f5faad, 0x050dfee2, 0x05020005, 0x59300009,
- 0x800001c0, 0x05020026, 0x05f1f6af, 0x0519fc93,
- 0x60082800, 0x59300403, 0xb0000591, 0x050c0772,
- 0x4d3c0000, 0x417a7800, 0x05c5f962, 0x5c027800,
- 0x60583000, 0x41782800, 0x4d400000, 0x4d440000,
- 0x59368c03, 0x60242000, 0x60a68000, 0x050dfc40,
- 0x5c028800, 0x5c028000, 0x42000000, 0x0010e454,
- 0x0519fe04, 0x0509fbe2, 0x0502000b, 0x05c5f998,
- 0x0501f8e7, 0x59340c03, 0x82040580, 0x000007fe,
- 0x05fe07c9, 0x59a80a49, 0x84040d40, 0x48075249,
- 0x05fdf7c5, 0x0509fbe5, 0x05020003, 0x0501f8dc,
- 0x05fdf7c1, 0x59300403, 0x90000db2, 0x05020003,
- 0x05c9f84f, 0x05fdf7bc, 0x90000da2, 0x050008d4,
- 0x05fdf7b9, 0x4933c857, 0x4803c857, 0x0c01f001,
- 0x00109a55, 0x00109a55, 0x00109a55, 0x00109a55,
- 0x00109a55, 0x00109a55, 0x00109a54, 0x00109a54,
- 0x00109a54, 0x00109a54, 0x00109a54, 0x00109a54,
- 0x00109a54, 0x00109a54, 0x00109a54, 0x00109a54,
- 0x00109a54, 0x00109a54, 0x00109a54, 0x00109a54,
- 0x00109a54, 0x00109a54, 0x00109a54, 0x00109a54,
- 0x00109a54, 0x00109a54, 0x00109a54, 0x00109a54,
- 0x00109a54, 0x00109a54, 0x00109a5a, 0x00109abb,
- 0x00109a54, 0x00109abb, 0x00109abb, 0x00109a54,
- 0x00109a54, 0x00109a54, 0x00109a54, 0x00109a54,
- 0x00109abb, 0x00109abb, 0x00109a54, 0x00109a54,
- 0x00109a54, 0x00109a54, 0x00109a54, 0x00109a54,
- 0x00109a54, 0x00109a54, 0x00109a68, 0x00109abb,
- 0x00109a54, 0x00109a63, 0x00109a54, 0x00109a54,
- 0x00109a54, 0x00109a63, 0x00109a54, 0x00109a54,
- 0x00109a54, 0x00109abb, 0x00109a66, 0x00109a54,
- 0x00109a54, 0x00109a54, 0x00109a54, 0x00109abb,
- 0x00109abb, 0x00109a54, 0x00109a54, 0x00109a54,
- 0x00109a54, 0x00109abb, 0x00109a54, 0x00109a54,
- 0x00109a54, 0x00109abb, 0x00109a54, 0x00109a54,
- 0x00109a54, 0x00109abb, 0x00109a54, 0x00109a54,
- 0x00109a54, 0x00109abb, 0x00109a54, 0x00109abb,
- 0x00109a70, 0x00109a54, 0x00109a54, 0x00109a54,
- 0x00109a54, 0x00109a54, 0x00109a76, 0x00109a54,
- 0x05b5fb86, 0x640a6203, 0x0509fe48, 0x05000002,
- 0x643a6203, 0x0509f3d5, 0x64166203, 0x59a8005e,
- 0x48026205, 0x0509fe41, 0x05000002, 0x643a6203,
- 0x59a8005c, 0x48026006, 0x1c01f000, 0x5930082a,
- 0x49780a05, 0x0501f056, 0x0509fe1f, 0x0005f7dc,
- 0x05c5ffd3, 0x05f5faaa, 0x05000003, 0x05f5f9fe,
- 0x0005f7dc, 0x05f5f9fc, 0x0005ffdc, 0x05f5f295,
- 0x4933c857, 0x640a6203, 0x0509fe2c, 0x05000002,
- 0x643a6203, 0x1c01f000, 0x4933c857, 0x4d300000,
- 0x4d2c0000, 0x59325809, 0x812e59c0, 0x0500002e,
- 0x0509fa4d, 0x05b40b5d, 0x59a80ccd, 0x48065811,
- 0x59a808cf, 0x48065810, 0x64025a0a, 0x592c1001,
- 0x800811c0, 0x05b40b55, 0x4930100b, 0x492c100a,
- 0x64001001, 0x4a001009, 0x00109a96, 0x4a001003,
- 0x00110672, 0x4a001005, 0x00000200, 0x592c0015,
- 0x48001007, 0x592c0016, 0x48001008, 0x5c025800,
- 0x5c026000, 0x0001f021, 0x4d300000, 0x4d2c0000,
- 0x5832600b, 0x813261c0, 0x05b40b40, 0x5832580a,
- 0x812e59c0, 0x05b40b3d, 0x49786001, 0x58300002,
- 0x82000580, 0x00000100, 0x05020014, 0x59a80ccd,
- 0x48065811, 0x59a808cf, 0x48065810, 0x64025a0a,
- 0x0001fb82, 0x59a81ccc, 0x840c1d46, 0x480f54cc,
- 0x0509fdf2, 0x05000005, 0x05fdf922, 0x59a8005c,
- 0x48026006, 0x0501f002, 0x0005ffdc, 0x5c025800,
- 0x5c026000, 0x1c01f000, 0x4803c857, 0x4a006002,
- 0x00000100, 0x600a8000, 0x05fdf7ee, 0x4933c857,
- 0x640a6203, 0x0509fde1, 0x05000002, 0x643a6203,
- 0x59a8005c, 0x48026006, 0x1c01f000, 0x4933c857,
- 0x0509fa05, 0x0500002b, 0x4d2c0000, 0x050df886,
- 0x05020007, 0x4d400000, 0x60c68000, 0x60100800,
- 0x0509feb3, 0x5c028000, 0x0501f021, 0x050df888,
- 0x05020005, 0x64c65a0a, 0x64125810, 0x0001fb82,
- 0x0501f01b, 0x59300c07, 0x90040590, 0x05000003,
- 0x90040591, 0x05020007, 0x64c65a0a, 0x64125811,
- 0x4a025812, 0x000000ff, 0x0001fb82, 0x0501f010,
- 0x592c0408, 0x8c00051e, 0x0500000d, 0x4a025a08,
- 0x00000103, 0x4a025809, 0x01000000, 0x4da00000,
- 0x4cec0000, 0x5931d82d, 0x58ef400b, 0x58ec0009,
- 0x0801f800, 0x5c01d800, 0x5c034000, 0x5c025800,
- 0x1c01f000, 0x4933c857, 0x83340580, 0x00110210,
- 0x05020007, 0x91380d95, 0x05000003, 0x91380d96,
- 0x05fe013c, 0x0519fb5f, 0x0005f7dc, 0x59340400,
- 0x82000500, 0x000000ff, 0x9000348c, 0x05b61adb,
- 0x59303403, 0xb0180d8d, 0x050805e9, 0x90180db3,
- 0x050805af, 0x90180da8, 0x050802fb, 0x90180da9,
- 0x05080306, 0xb0180d97, 0x050c0410, 0x90180d9f,
- 0x05fc02ca, 0xb0180d95, 0x05fc02aa, 0x90180d80,
- 0x05fc0579, 0x90180da2, 0x05fc02e6, 0x90180db5,
- 0x05fc03be, 0x90180db9, 0x05fc052f, 0x90180dbd,
- 0x05fc0340, 0xb0180d84, 0x05fc036c, 0xb0180d89,
- 0x05fc039f, 0xb0180d98, 0x050c0496, 0xb0180d83,
- 0x050806ed, 0xb0180d91, 0x05080747, 0x90180d84,
- 0x05020002, 0x60040000, 0x91380d95, 0x05000004,
- 0x91380d96, 0x05fe010b, 0x0501f1ec, 0x4c000000,
- 0x0519fb2c, 0x5c000000, 0x4d2c0000, 0x4d3c0000,
- 0x0c01f804, 0x5c027800, 0x5c025800, 0x1c01f000,
- 0x00109b47, 0x00109b4b, 0x00109b47, 0x00109b9c,
- 0x00109b47, 0x00109c9f, 0x00109d29, 0x00109b47,
- 0x00109b47, 0x00109ced, 0x00109b47, 0x00109cf8,
- 0x4933c857, 0x497a6008, 0x59300809, 0x58040000,
- 0x4a000a08, 0x00000103, 0x0005f7dc, 0x4933c857,
- 0x40000000, 0x40000000, 0x1c01f000, 0x4933c857,
- 0x05ddfd61, 0x59a800b6, 0xb00005b4, 0x0502003d,
- 0x0515fb00, 0x0502000e, 0x0501f83d, 0x0509f976,
- 0x05000009, 0x0509fff8, 0x05020007, 0x41780800,
- 0x4d400000, 0x60028000, 0x0509fe25, 0x5c028000,
- 0x0501f002, 0x05c5f816, 0x0005f7dc, 0x0509f96a,
- 0x05000005, 0x0509ffec, 0x05020003, 0x05fdff60,
- 0x0005f7dc, 0x417a7800, 0x05c1ffc6, 0x42000000,
- 0x0010e454, 0x0519fc73, 0x59340200, 0x84000558,
- 0x48026a00, 0x600c3000, 0x0519fa15, 0x4d300000,
- 0x05fdf893, 0x05b40a69, 0x4926601d, 0x4936600a,
- 0x497a6009, 0x64066407, 0x64066403, 0x59240400,
- 0x8c00050a, 0x0502000b, 0x64126407, 0x641e6203,
- 0x6406642c, 0x60043000, 0x4d400000, 0x60a68000,
- 0x41782800, 0x0515fc1e, 0x5c028000, 0x0501f005,
- 0x602c0800, 0x05ddf968, 0x64066203, 0x05f1fcea,
- 0x5c026000, 0x05fdff3a, 0x05c1ffe9, 0x0005f7dc,
- 0x05fdff37, 0x60040000, 0x0501f0d5, 0x4933c857,
- 0x59340200, 0x8c000500, 0x05000009, 0x4d3c0000,
- 0x417a7800, 0x05ddf94e, 0x5c027800, 0x8d0c0520,
- 0x05000003, 0x60180800, 0x05ddf953, 0x1c01f000,
- 0x4933c857, 0x59a808b6, 0xb00405b4, 0x0500000e,
- 0x4807c857, 0x82040580, 0x00000100, 0x050200ac,
- 0x59cc0408, 0x4803c857, 0x8c000500, 0x050000a8,
- 0x59341403, 0x82080580, 0x000007fe, 0x05000006,
- 0x0501f0a3, 0x59341403, 0x82080580, 0x000007fe,
- 0x0502001b, 0x59a80249, 0x8c000506, 0x0500000e,
- 0x59cc0000, 0x82000500, 0x000000ff, 0x59240c08,
- 0x80040580, 0x05000008, 0x05c1ffb9, 0x0005ffdc,
- 0x42000000, 0x0010e440, 0x0519fc1e, 0x6006d800,
- 0x05d9f52b, 0x0519fd54, 0x050e05eb, 0x59a80249,
- 0x8c000506, 0x05020004, 0x83240580, 0x0010e512,
- 0x050e04ea, 0x0501fa74, 0x0501f03b, 0x41780800,
- 0x05ddfa0a, 0x59341403, 0x82080580, 0x000007fc,
- 0x05020019, 0x4a026802, 0x00fffffc, 0x0509f8f6,
- 0x0500000c, 0x0509ff78, 0x0502000a, 0x0501f8a3,
- 0x41780800, 0x4d400000, 0x60028000, 0x0509fda4,
- 0x5c028000, 0x60100800, 0x05ddf90f, 0x0005f7dc,
- 0x60100800, 0x05ddf90c, 0x05c1ff91, 0x59300c29,
- 0x900405a1, 0x050c069d, 0xb0040591, 0x000607dc,
- 0x050df69a, 0x59a800d1, 0x8c000502, 0x0500000d,
- 0x05e1fcc2, 0x60401000, 0x05020008, 0x59340002,
- 0x82000500, 0x00ff0000, 0x82000580, 0x00ff0000,
- 0x05000004, 0x60201000, 0x05e1f8b9, 0x05020058,
- 0x0509f8d1, 0x05000059, 0x0509ff53, 0x05020005,
- 0x592c0408, 0x8c00051c, 0x05fe07d5, 0x0501f87b,
- 0x60140800, 0x05ddf8ec, 0x64066203, 0x640e6403,
- 0x05f1f46d, 0x59cc0408, 0x8c000518, 0x05000017,
- 0x0509fc51, 0x05e1fca5, 0x05000008, 0x59cc0408,
- 0x8c000516, 0x05000005, 0x59300429, 0x900005a1,
- 0x05fe07c3, 0x1c01f000, 0x59a80249, 0x8400054a,
- 0x48035249, 0x48035449, 0x59a8003d, 0x497b8830,
- 0x84000570, 0x48038832, 0x59300429, 0x900005a1,
- 0x05fe07b7, 0x1c01f000, 0x59a80249, 0xb0000510,
- 0xb0000590, 0x05000009, 0x61bc1001, 0x42024800,
- 0x0010e512, 0x480a4805, 0x480b503d, 0x497b8830,
- 0x84081570, 0x480b8832, 0x0509fc4c, 0x59a80249,
- 0x84000548, 0x48035249, 0x48035449, 0x0515fb47,
- 0x05fe07a3, 0x599c0019, 0x8c000510, 0x0502002f,
- 0x59a80249, 0x8400054c, 0x48035249, 0x601c0800,
- 0x05ddf8b5, 0x417a7800, 0x05ddf8a9, 0x61bc3801,
- 0x61a00001, 0x05e9fc91, 0x05dc08d6, 0x05b6099b,
- 0x4936600a, 0x05ddfc72, 0x05020002, 0x497a6416,
- 0x599c0208, 0x48026c12, 0x59340200, 0x8400051a,
- 0x48026a00, 0x600c0800, 0x05ddf8a3, 0x64066407,
- 0x64066203, 0x640a6403, 0x05f1f423, 0x05fdfe74,
- 0x60040000, 0x0501f012, 0x599c0017, 0x8c00050a,
- 0x05fc07ac, 0x60100800, 0x05ddf897, 0x493750c2,
- 0x59a80249, 0x8c000508, 0x05000008, 0x599c0018,
- 0x8c00051c, 0x05000005, 0x61a00807, 0x42001000,
- 0x0010582b, 0x05edfb87, 0x0005f7dc, 0x4933c857,
- 0x80003540, 0x05000003, 0x601c0800, 0x05ddf886,
- 0x801831c0, 0x0502000f, 0x59302009, 0x801021c0,
- 0x05000004, 0x58100408, 0x8c00051e, 0x05020009,
- 0x59341c03, 0x60102000, 0x60483000, 0x4d200000,
- 0x59364013, 0x81224130, 0x05d5fbd2, 0x5c024000,
- 0x05c1fefb, 0x0005f7dc, 0x4c5c0000, 0x4d2c0000,
- 0x59325809, 0x05e5fb86, 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,
- 0x59a800b6, 0x90000594, 0x0502003a, 0x59a800d1,
- 0x8c000502, 0x05000011, 0x05e1fc08, 0x60401000,
+ 0x0519fc38, 0x4d300000, 0x05fdf86e, 0x05b00d6a,
+ 0x4926601d, 0x4936600a, 0x497a6009, 0x64066407,
+ 0x64066403, 0x59240400, 0x8c00050a, 0x0502000b,
+ 0x64126407, 0x641e6203, 0x6406642c, 0x60043000,
+ 0x4d400000, 0x60a68000, 0x41782800, 0x0515fe2b,
+ 0x5c028000, 0x0501f005, 0x602c0800, 0x05d9fe41,
+ 0x64066203, 0x05f1fc69, 0x5c026000, 0x05fdff3a,
+ 0x05c1fb46, 0x0009f010, 0x05fdff37, 0x60040000,
+ 0x0501f0d5, 0x4933c857, 0x59340200, 0x8c000500,
+ 0x05000009, 0x4d3c0000, 0x417a7800, 0x05d9fe27,
+ 0x5c027800, 0x8d0c0520, 0x05000003, 0x60180800,
+ 0x05d9fe2c, 0x1c01f000, 0x4933c857, 0x59a808bb,
+ 0xb00405b4, 0x0500000e, 0x4807c857, 0x82040580,
+ 0x00000100, 0x050200ac, 0x59cc0408, 0x4803c857,
+ 0x8c000500, 0x050000a8, 0x59341403, 0x82080580,
+ 0x000007fe, 0x05000006, 0x0501f0a3, 0x59341403,
+ 0x82080580, 0x000007fe, 0x0502001b, 0x59a8024c,
+ 0x8c000506, 0x0500000e, 0x59cc0000, 0x82000500,
+ 0x000000ff, 0x59240c08, 0x80040580, 0x05000008,
+ 0x05c1fb16, 0x0009f810, 0x42000000, 0x001123e1,
+ 0x0519fe5f, 0x6006d800, 0x05d9f1e8, 0x0519ff95,
+ 0x050e075f, 0x59a8024c, 0x8c000506, 0x05020004,
+ 0x83240580, 0x001124b6, 0x050e0561, 0x0501fa7d,
+ 0x0501f03b, 0x41780800, 0x05d9ff36, 0x59341403,
+ 0x82080580, 0x000007fc, 0x05020019, 0x4a026802,
+ 0x00fffffc, 0x0509f945, 0x0500000c, 0x0509ffe4,
+ 0x0502000a, 0x0501f8a3, 0x41780800, 0x4d400000,
+ 0x60028000, 0x0509fe09, 0x5c028000, 0x60100800,
+ 0x05d9fde8, 0x0009f010, 0x60100800, 0x05d9fde5,
+ 0x05c1faee, 0x59300c29, 0x900405a1, 0x05100019,
+ 0xb0040591, 0x000a0010, 0x0511f016, 0x59a800d6,
+ 0x8c000502, 0x0500000d, 0x05e1fa72, 0x60401000,
0x05020008, 0x59340002, 0x82000500, 0x00ff0000,
- 0x82000580, 0x00ff0000, 0x05000008, 0x60201000,
- 0x05ddffff, 0x05000005, 0x59a800d1, 0x8400054c,
- 0x480350d1, 0x0501f027, 0x916c0583, 0x0502000c,
- 0x59300009, 0x80000540, 0x05020009, 0x59341c03,
- 0x60182000, 0x604c3000, 0x4d200000, 0x59364013,
- 0x81224130, 0x05d5fb87, 0x5c024000, 0x05ddf988,
- 0x05fdfecb, 0x0501fab8, 0x05020016, 0x59340404,
- 0x80000540, 0x05000013, 0x60180800, 0x05ddf822,
- 0x0505fffd, 0x0500000d, 0x0509fe7f, 0x05020007,
- 0x41780800, 0x4d400000, 0x60028000, 0x0509fcac,
- 0x5c028000, 0x0005f7dc, 0x4a025a08, 0x00000103,
- 0x4a025809, 0x02000000, 0x05c1fe99, 0x0005f7dc,
- 0x05ddff94, 0x0505ffec, 0x05000005, 0x0509fe6e,
- 0x05020003, 0x05fdfde2, 0x0005f7dc, 0x05fdfde0,
- 0x0519f974, 0x80000580, 0x59a800d1, 0x8c00050c,
- 0x05000004, 0x8400050c, 0x480350d1, 0x90000541,
- 0x05fdf777, 0x4933c857, 0x59a800b6, 0x90000594,
- 0x05020006, 0x602c0800, 0x05d9fffb, 0x64066203,
- 0x64066403, 0x05f1f37c, 0x60040000, 0x05fdf76c,
- 0x4933c857, 0x40003000, 0x59a800b6, 0x90000584,
- 0x05020018, 0x9018358b, 0x05020015, 0x5930081d,
- 0x58040200, 0x8c000500, 0x050c0432, 0x58040200,
- 0x8c000508, 0x0500000c, 0x84000508, 0x48000a00,
- 0x600c0800, 0x05d9ffe4, 0x5930080a, 0x49780806,
- 0x4a026202, 0x0000ffff, 0x64066203, 0x65466403,
- 0x05f1f361, 0x601c0800, 0x05d9ffdb, 0x0005f7dc,
- 0x60040000, 0x05fdf74e, 0x4803c857, 0x4d2c0000,
- 0x4d3c0000, 0x0c01f804, 0x5c027800, 0x5c025800,
- 0x1c01f000, 0x00109b47, 0x00109d4c, 0x00109b47,
- 0x00109d8f, 0x00109b47, 0x00109df5, 0x00109d29,
- 0x00109b47, 0x00109b47, 0x00109e0b, 0x00109b47,
- 0x00109e16, 0x4933c857, 0x4d1c0000, 0x59301403,
- 0x90080583, 0x0500001d, 0x9008159e, 0x05020019,
- 0x91381595, 0x05020016, 0x4d300000, 0x5930141b,
- 0x0509fc25, 0x05b408a5, 0x591c1416, 0x8c08051e,
- 0x0500000b, 0x05f9feca, 0x05000009, 0x05ddfd36,
- 0x4926601d, 0x59340200, 0x8c000508, 0x05000003,
- 0x4a026416, 0x00000100, 0x0509fa0e, 0x82081500,
- 0xffff1fff, 0x480a3c16, 0x5c026000, 0x0005ffdc,
- 0x5c023800, 0x1c01f000, 0x05fdff55, 0x05fdf7fd,
- 0x4933c857, 0x42000000, 0x0010e458, 0x0519fa8d,
- 0x0519f908, 0x05ddfb5c, 0x0505ff77, 0x05000007,
- 0x0509fdf9, 0x05020005, 0x6008b000, 0x0509fde0,
- 0x05fdfd6b, 0x0005f7dc, 0x0501f8d3, 0x05020020,
- 0x417a7800, 0x05d9ff86, 0x417a7800, 0x05c1fdcd,
- 0x42000000, 0x0010e454, 0x0519fa7a, 0x59340200,
- 0x84000558, 0x48026a00, 0x640a6403, 0x600c3000,
- 0x0519f81b, 0x59240400, 0x8c00050a, 0x0502000b,
- 0x4d400000, 0x41782800, 0x60143000, 0x60a68000,
- 0x0515fa2f, 0x5c028000, 0x641e6203, 0x64126407,
- 0x6406642c, 0x1c01f000, 0x600c0800, 0x05d9ff76,
- 0x64066203, 0x05f1faf8, 0x05fdf7fb, 0x59cc0407,
- 0x90000589, 0x05020009, 0x59340412, 0x82000500,
- 0x000000ff, 0x0500000b, 0x80000040, 0x48026c12,
- 0x642a6006, 0x05fdf7f0, 0x59cc0207, 0x82000500,
- 0x0000ff00, 0x82000580, 0x00001900, 0x05fc07d3,
- 0x05fdfd37, 0x80000580, 0x05fdf6d5, 0x4933c857,
- 0x0505ff39, 0x0500000b, 0x0509fdbb, 0x05020009,
- 0x4c580000, 0x6008b000, 0x0509fda1, 0x5c00b000,
- 0x05fdfd2b, 0x601c0800, 0x05d9ff53, 0x0005f7dc,
- 0x59340403, 0x82000580, 0x000007fc, 0x05020007,
- 0x60100000, 0x05fdf887, 0x05020031, 0x601c0800,
- 0x05d9ff49, 0x0005f7dc, 0x05fdfd1d, 0x59cc3407,
- 0x82183500, 0x000000ff, 0x90180585, 0x0500001e,
- 0x9018058b, 0x05000015, 0x59cc0207, 0x82000500,
- 0x0000ff00, 0x05020003, 0x90180589, 0x05000016,
- 0x82000580, 0x00001900, 0x0502000c, 0x90180589,
- 0x05000011, 0x59340403, 0x82000580, 0x000007fe,
- 0x05000023, 0x60100800, 0x05d9ff2f, 0x05c1fdb4,
- 0x0519f898, 0x0005f7dc, 0x59340403, 0x82000580,
- 0x000007fe, 0x0500001a, 0x0519f892, 0x60040000,
- 0x05fdf69b, 0x0505ff00, 0x59325809, 0x05000008,
- 0x592c0208, 0x82000580, 0x00000139, 0x05fc07f7,
- 0x592c0408, 0x8c00051e, 0x05fe07f4, 0x59340412,
- 0x800001c0, 0x05000006, 0x80000040, 0x48026c12,
- 0x642a6006, 0x645a6403, 0x1c01f000, 0x59340403,
- 0x82000580, 0x000007fe, 0x0502000b, 0x59a80249,
- 0x84000540, 0x48035249, 0x8c000506, 0x05000004,
- 0x4a035045, 0x0000ffff, 0x050dfcbb, 0x05d9fc0b,
- 0x05fdf7de, 0x0519f86f, 0x417a7800, 0x05c1fd41,
- 0x60143000, 0x0515ff96, 0x42000000, 0x0010e454,
- 0x0519f9ec, 0x59300429, 0x900005a1, 0x050c048f,
- 0x05fdf7d3, 0x4933c857, 0x0501f844, 0x05020006,
- 0x60140800, 0x05d9fef4, 0x64066203, 0x640e6403,
- 0x05f1f275, 0x60100800, 0x05d9feef, 0x0509fd4e,
- 0x05020007, 0x4c580000, 0x6008b000, 0x0509fd34,
- 0x5c00b000, 0x05fdfcbe, 0x0005f7dc, 0x05fdfcbc,
- 0x0519f850, 0x80000580, 0x05fdf659, 0x4933c857,
- 0x0501f82e, 0x05020006, 0x60240800, 0x05d9fede,
- 0x64066203, 0x64166403, 0x05f1f25f, 0x0519f845,
- 0x60040000, 0x05fdf64e, 0x4933c857, 0x5930081d,
- 0x58040200, 0x8c000500, 0x050c031a, 0x0501f81f,
- 0x05020006, 0x602c0800, 0x05d9fecf, 0x64066203,
- 0x64066403, 0x05f1f250, 0x5930080a, 0x58040403,
- 0x82000580, 0x000007fe, 0x05020004, 0x600c2800,
- 0x050dfb11, 0x0005f7dc, 0x0519f82e, 0x60040000,
- 0x05fdf637, 0x4933c857, 0x59cc0407, 0x90000583,
- 0x05020009, 0x59cc0207, 0x82000500, 0x0000ff00,
- 0x82000d80, 0x00002a00, 0x05000003, 0x82000d80,
- 0x00001e00, 0x1c01f000, 0x4933c857, 0x90000541,
- 0x1c01f000, 0x4933c857, 0x4d400000, 0x4c580000,
- 0x60028000, 0x05c1ffd6, 0x59a80249, 0x90000543,
- 0x48035249, 0x05d5fcce, 0x0500000c, 0x59a81ccc,
- 0x8c0c0506, 0x0502000f, 0x840c1d44, 0x480f54cc,
- 0x59cc0408, 0x8c00051c, 0x05000004, 0x59a81249,
- 0x84081558, 0x480b5249, 0x0501f8c5, 0x05000005,
- 0x4d300000, 0x4d340000, 0x4d440000, 0x0501f037,
- 0x59cc0408, 0x8c00051c, 0x05000006, 0x59cc0800,
- 0x82040d00, 0x00ffffff, 0x800409c0, 0x05000037,
- 0x0501f8ec, 0x05000035, 0x4d300000, 0x4d340000,
- 0x4d440000, 0x83240580, 0x0010e512, 0x0502002a,
- 0x59cc0408, 0x8c00051e, 0x0502000c, 0x42000800,
- 0x0010e512, 0x58040406, 0x8c000500, 0x05020007,
- 0x59cc0408, 0x8c000518, 0x05000004, 0x59a80249,
- 0x84000552, 0x48035249, 0x59240400, 0x8c00050a,
- 0x05020005, 0x60aa8000, 0x61fe89ff, 0x60083000,
- 0x0515ff18, 0x60aa8000, 0x4d3c0000, 0x05d5fc99,
- 0x05000008, 0x600a7800, 0x5924100b, 0x82081500,
- 0x00001fff, 0x41780800, 0x05c5f8bc, 0x0501f003,
- 0x60027804, 0x05c1fc49, 0x5c027800, 0x42000000,
- 0x0010e454, 0x0519f94f, 0x05d5fc8a, 0x05020002,
- 0x05c1fe35, 0x05c5f846, 0x600a8000, 0x5c028800,
- 0x5c026800, 0x5c026000, 0x050dfbb3, 0x41780800,
- 0x59a804cc, 0x8c00050a, 0x05000002, 0x60040800,
- 0x05d9ff3a, 0x59cc0800, 0x82040d00, 0x00ffffff,
- 0x59240200, 0xb0000566, 0x48024a00, 0x59cc0408,
- 0x8c00051c, 0x05000003, 0x800409c0, 0x05000019,
- 0x48064805, 0x812000f0, 0x80040540, 0x48026813,
- 0x812241c0, 0x0502000f, 0x59cc0408, 0x8c000518,
- 0x05020007, 0x599c0019, 0x8c000510, 0x05000009,
- 0x59a80249, 0x84000548, 0x48035249, 0x4c040000,
- 0x60001802, 0x60040000, 0x05ddff96, 0x5c000800,
- 0x4927c857, 0x83240580, 0x0010e512, 0x05020026,
- 0x59a81249, 0x59cc0408, 0x8c00051a, 0x05020005,
- 0x84081514, 0x4a0370e5, 0x00000800, 0x0501f004,
- 0x84081554, 0x4a0370e5, 0x00000c00, 0x480b5249,
- 0x4807503d, 0x80040110, 0x48035046, 0x48038881,
- 0x59a80a49, 0x84040d50, 0x59cc0013, 0x8c00053e,
- 0x05000003, 0x8c000536, 0x05000004, 0x59cc0017,
- 0x8c000536, 0x05020002, 0x84040d10, 0x48075249,
- 0x48075449, 0x5924100b, 0x82081500, 0x00001fff,
- 0x8c040518, 0x05000004, 0x59a804cc, 0x8c00050a,
- 0x05000026, 0x59cc0408, 0x8c000518, 0x05000023,
- 0x59a80249, 0x8c000506, 0x05000012, 0x916c0583,
- 0x05000004, 0x83240580, 0x0010e512, 0x0500001b,
- 0x59240400, 0x8c00050c, 0x05020007, 0x4c040000,
- 0x60001802, 0x60040000, 0x05ddff5a, 0x5c000800,
- 0x0501f012, 0x64866429, 0x0509fc0b, 0x0501f00f,
- 0x0519fa2a, 0x0502000d, 0x4c080000, 0x4c040000,
- 0x050dfa18, 0x5c000800, 0x5c001000, 0x05020007,
- 0x59a80249, 0x8c000514, 0x05000004, 0x4c040000,
- 0x05c5f8aa, 0x5c000800, 0xb0040510, 0xb0000590,
- 0x05000008, 0x05e1f9a1, 0x05000006, 0x59cc0009,
- 0x4803505a, 0x59cc000a, 0x4803505b, 0x0509f946,
- 0x5c00b000, 0x5c028000, 0x1c01f000, 0x4933c857,
- 0x59a81449, 0x82080580, 0x0000ffff, 0x0500000f,
- 0x4c080000, 0x05e1f991, 0x5c001000, 0x05020012,
- 0x59cc0408, 0x8c000518, 0x05000009, 0x8c08050a,
- 0x05000011, 0x8c00051c, 0x05020008, 0x8c080518,
- 0x0502000d, 0x80000580, 0x1c01f000, 0x8c080508,
- 0x05fe07fd, 0x0501f008, 0x8c080518, 0x05fe07fa,
- 0x0501f005, 0x90080530, 0x05020003, 0x8c080506,
- 0x05fe07f5, 0x4a035449, 0x0000ffff, 0x42000000,
- 0x0010e39c, 0x0519f8a3, 0x60303000, 0x61fc19ff,
- 0x601c2000, 0x4d200000, 0x417a4000, 0x05d5f909,
- 0x5c024000, 0x4d400000, 0x4d3c0000, 0x60043000,
- 0x0515fe50, 0x60aa8000, 0x60027804, 0x05c1fb8b,
- 0x5c028000, 0x5c027800, 0x90000541, 0x1c01f000,
- 0x4933c857, 0x4c580000, 0x59cc0408, 0x8c000518,
- 0x05020006, 0x59a80449, 0x82000580, 0x0000ffff,
- 0x05000027, 0x0501f011, 0x59a80046, 0x4803c857,
- 0x800001c0, 0x05000022, 0x59cc1000, 0x59340013,
- 0x82000500, 0x00ffffff, 0x0500001d, 0x82081500,
- 0x00ffffff, 0x80080580, 0x05000004, 0x42000000,
- 0x0010e432, 0x0501f014, 0x59341806, 0x480fc857,
- 0x800c19c0, 0x05000012, 0x91cc140b, 0x6008b000,
- 0x91341c06, 0x0501f8da, 0x05000004, 0x42000000,
- 0x0010e433, 0x0501f008, 0x91cc140d, 0x6008b000,
- 0x91341c08, 0x0501f8d2, 0x05000005, 0x42000000,
- 0x0010e434, 0x0519f863, 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, 0x4933c857, 0x4943c857,
- 0x493fc857, 0x4c5c0000, 0x4d300000, 0x4d340000,
- 0x4d2c0000, 0x4d380000, 0x4130b800, 0x42026000,
- 0x00111b00, 0x59a8003b, 0x81640480, 0x0502108b,
- 0x8d3c0512, 0x05000004, 0x405c0000, 0x81300580,
- 0x05000081, 0x05f9fa5d, 0x0500007f, 0x59300407,
- 0x90000c92, 0x05021015, 0x5932680a, 0x0c01f001,
- 0x0010a029, 0x00109fc3, 0x00109fcc, 0x00109fd6,
- 0x00109fc3, 0x00109fcc, 0x00109ffc, 0x0010a00a,
- 0x00109fc2, 0x00109fc2, 0x0010a010, 0x00109fc2,
- 0x00109fc2, 0x00109fc2, 0x00109fc2, 0x0010a019,
- 0x0010a01c, 0x0010a01a, 0x05b1fe18, 0x59300403,
- 0xb0000583, 0x05080b8d, 0x0515fe90, 0x0505fdf4,
- 0x05c00bab, 0x0505fe01, 0x05fc0af9, 0x0501f05a,
- 0x59325809, 0x0505fcfc, 0x05000057, 0x49425a0a,
- 0x497a5c0d, 0x0001fb82, 0x59300a29, 0x90040d83,
- 0x05040dd4, 0x0501f050, 0x813669c0, 0x05b00e03,
- 0x050df985, 0x59300008, 0x8c000500, 0x05000003,
- 0x05b9f86d, 0x0501f004, 0x59300203, 0x90000584,
- 0x05b80869, 0x59325809, 0x0505fce7, 0x05000042,
- 0x592c0208, 0x82000500, 0x000000ff, 0x90000594,
- 0x05060dc0, 0x0509fec8, 0x0005f9f3, 0x05e5fc1d,
- 0x4a025a08, 0x00000103, 0x59300402, 0x48025c0a,
- 0x592c040c, 0x8c000512, 0x05000005, 0x4d2c0000,
- 0x592e580d, 0x05b5f9a6, 0x5c025800, 0x49425a0a,
- 0x497a580d, 0x0509fb64, 0x0001fb82, 0x0501f02a,
- 0x59300203, 0x90000584, 0x05b8084b, 0x59325809,
- 0x0505fcc9, 0x05000024, 0x49425a0a, 0x813669c0,
- 0x05160b2d, 0x0509feac, 0x0005f9f3, 0x0509fb56,
- 0x0001fb82, 0x0501f01c, 0x59300203, 0x90000591,
- 0x0502001d, 0x59300429, 0x48026203, 0x0501f01a,
- 0x59300203, 0x90000584, 0x05b80837, 0x59325809,
- 0x0505fcb5, 0x05000010, 0x49425a0a, 0x0001fb82,
- 0x0501f00d, 0x0501f00c, 0x59325819, 0x05b5f980,
- 0x59300203, 0x90000584, 0x05b8082b, 0x05b9feea,
- 0x59325809, 0x0505fca8, 0x05000003, 0x49425a0a,
- 0x0001fb82, 0x05f9fbab, 0x8d3c051c, 0x05000002,
+ 0x82000580, 0x00ff0000, 0x05000004, 0x60201000,
+ 0x05ddfe54, 0x05020058, 0x0509f920, 0x05000059,
+ 0x0509ffbf, 0x05020005, 0x592c0408, 0x8c00051c,
+ 0x05fe07d5, 0x0501f87b, 0x60140800, 0x05d9fdc5,
+ 0x64066203, 0x640e6403, 0x05f1f3ec, 0x59cc0408,
+ 0x8c000518, 0x05000017, 0x0509fcaf, 0x05e1fa55,
+ 0x05000008, 0x59cc0408, 0x8c000516, 0x05000005,
+ 0x59300429, 0x900005a1, 0x05fe07c3, 0x1c01f000,
+ 0x59a8024c, 0x8400054a, 0x4803524c, 0x4803544c,
+ 0x59a80040, 0x497b8830, 0x84000570, 0x48038832,
+ 0x59300429, 0x900005a1, 0x05fe07b7, 0x1c01f000,
+ 0x59a8024c, 0xb0000510, 0xb0000590, 0x05000009,
+ 0x61bc1001, 0x42024800, 0x001124b6, 0x480a4805,
+ 0x480b5040, 0x497b8830, 0x84081570, 0x480b8832,
+ 0x0509fcaa, 0x59a8024c, 0x84000548, 0x4803524c,
+ 0x4803544c, 0x0515fd52, 0x05fe07a3, 0x599c0019,
+ 0x8c000510, 0x0502002f, 0x59a8024c, 0x8400054c,
+ 0x4803524c, 0x601c0800, 0x05d9fd8e, 0x417a7800,
+ 0x05d9fd82, 0x61bc3801, 0x61a00001, 0x05e9fb03,
+ 0x05d80db7, 0x05b20c9c, 0x4936600a, 0x05ddf9aa,
+ 0x05020002, 0x497a6416, 0x599c0208, 0x48026c12,
+ 0x59340200, 0x8400051a, 0x48026a00, 0x600c0800,
+ 0x05d9fd7c, 0x64066407, 0x64066203, 0x640a6403,
+ 0x05f1f3a2, 0x05fdfe74, 0x60040000, 0x0501f012,
+ 0x599c0017, 0x8c00050a, 0x05fc07ac, 0x60100800,
+ 0x05d9fd70, 0x493750c7, 0x59a8024c, 0x8c000508,
+ 0x05000008, 0x599c0018, 0x8c00051c, 0x05000005,
+ 0x61a00807, 0x42001000, 0x00105a99, 0x05edfab1,
+ 0x0009f010, 0x4933c857, 0x80003540, 0x05000003,
+ 0x601c0800, 0x05d9fd5f, 0x801831c0, 0x0502000f,
+ 0x59302009, 0x801021c0, 0x05000004, 0x58100408,
+ 0x8c00051e, 0x05020009, 0x59341c03, 0x60102000,
+ 0x60483000, 0x4d200000, 0x59364013, 0x81224130,
+ 0x05d5f835, 0x5c024000, 0x05c1fa58, 0x0009f010,
+ 0x4c5c0000, 0x4d2c0000, 0x59325809, 0x05e5f95f,
+ 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, 0x59a800bb, 0x90000594,
+ 0x0502003a, 0x59a800d6, 0x8c000502, 0x05000011,
+ 0x05e1f9b8, 0x60401000, 0x05020008, 0x59340002,
+ 0x82000500, 0x00ff0000, 0x82000580, 0x00ff0000,
+ 0x05000008, 0x60201000, 0x05ddfd9a, 0x05000005,
+ 0x59a800d6, 0x8400054c, 0x480350d6, 0x0501f027,
+ 0x916c0583, 0x0502000c, 0x59300009, 0x80000540,
+ 0x05020009, 0x59341c03, 0x60182000, 0x604c3000,
+ 0x4d200000, 0x59364013, 0x81224130, 0x05d1ffea,
+ 0x5c024000, 0x05d9feb4, 0x05fdfecb, 0x0501fac5,
+ 0x05020016, 0x59340404, 0x80000540, 0x05000013,
+ 0x60180800, 0x05d9fcfb, 0x0509f84c, 0x0500000d,
+ 0x0509feeb, 0x05020007, 0x41780800, 0x4d400000,
+ 0x60028000, 0x0509fd11, 0x5c028000, 0x0009f010,
+ 0x4a025a08, 0x00000103, 0x4a025809, 0x02000000,
+ 0x05c1f9f6, 0x0009f010, 0x05ddfd2f, 0x0509f83b,
+ 0x05000005, 0x0509feda, 0x05020003, 0x05fdfde2,
+ 0x0009f010, 0x05fdfde0, 0x0519fba1, 0x80000580,
+ 0x59a800d6, 0x8c00050c, 0x05000004, 0x8400050c,
+ 0x480350d6, 0x90000541, 0x05fdf777, 0x4933c857,
+ 0x59a800bb, 0x90000594, 0x05020006, 0x602c0800,
+ 0x05d9fcd4, 0x64066203, 0x64066403, 0x05f1f2fb,
+ 0x60040000, 0x05fdf76c, 0x4933c857, 0x40003000,
+ 0x59a800bb, 0x90000584, 0x05020018, 0x9018358b,
+ 0x05020015, 0x5930081d, 0x58040200, 0x8c000500,
+ 0x050c04a9, 0x58040200, 0x8c000508, 0x0500000c,
+ 0x84000508, 0x48000a00, 0x600c0800, 0x05d9fcbd,
+ 0x5930080a, 0x49780806, 0x4a026202, 0x0000ffff,
+ 0x64066203, 0x65466403, 0x05f1f2e0, 0x601c0800,
+ 0x05d9fcb4, 0x0009f010, 0x60040000, 0x05fdf74e,
+ 0x4803c857, 0x4d2c0000, 0x4d3c0000, 0x0c01f804,
+ 0x5c027800, 0x5c025800, 0x1c01f000, 0x0010a081,
+ 0x0010a286, 0x0010a081, 0x0010a2c9, 0x0010a081,
+ 0x0010a338, 0x0010a263, 0x0010a081, 0x0010a081,
+ 0x0010a34e, 0x0010a081, 0x0010a359, 0x4933c857,
+ 0x4d1c0000, 0x59301403, 0x90080583, 0x0500001d,
+ 0x9008159e, 0x05020019, 0x91381595, 0x05020016,
+ 0x4d300000, 0x5930141b, 0x0509fc87, 0x05b00ba6,
+ 0x591c1416, 0x8c08051e, 0x0500000b, 0x05f9fea5,
+ 0x05000009, 0x05ddfac5, 0x4926601d, 0x59340200,
+ 0x8c000508, 0x05000003, 0x4a026416, 0x00000100,
+ 0x0509fa6d, 0x82081500, 0xffff1fff, 0x480a3c16,
+ 0x5c026000, 0x0009f810, 0x5c023800, 0x1c01f000,
+ 0x05fdff55, 0x05fdf7fd, 0x4933c857, 0x42000000,
+ 0x001123fc, 0x0519fcce, 0x0519fb35, 0x05ddf894,
+ 0x0505ffc6, 0x05000007, 0x0509fe65, 0x05020005,
+ 0x6008b000, 0x0509fe4c, 0x05fdfd6b, 0x0009f010,
+ 0x0501f8dc, 0x05020020, 0x417a7800, 0x05d9fc5f,
+ 0x417a7800, 0x05c1f92a, 0x42000000, 0x001123f8,
+ 0x0519fcbb, 0x59340200, 0x84000558, 0x48026a00,
+ 0x640a6403, 0x600c3000, 0x0519fa3e, 0x59240400,
+ 0x8c00050a, 0x0502000b, 0x4d400000, 0x41782800,
+ 0x60143000, 0x60a68000, 0x0515fc3c, 0x5c028000,
+ 0x641e6203, 0x64126407, 0x6406642c, 0x1c01f000,
+ 0x600c0800, 0x05d9fc4f, 0x64066203, 0x05f1fa77,
+ 0x05fdf7fb, 0x59cc0407, 0x90000589, 0x05020009,
+ 0x59340412, 0x82000500, 0x000000ff, 0x0500000b,
+ 0x80000040, 0x48026c12, 0x642a6006, 0x05fdf7f0,
+ 0x59cc0207, 0x82000500, 0x0000ff00, 0x82000580,
+ 0x00001900, 0x05fc07d3, 0x05fdfd37, 0x80000580,
+ 0x05fdf6d5, 0x4933c857, 0x0505ff88, 0x0500000b,
+ 0x0509fe27, 0x05020009, 0x4c580000, 0x6008b000,
+ 0x0509fe0d, 0x5c00b000, 0x05fdfd2b, 0x601c0800,
+ 0x05d9fc2c, 0x0009f010, 0x59340403, 0x82000580,
+ 0x000007fc, 0x05020007, 0x60100000, 0x05fdf883,
+ 0x0502003a, 0x601c0800, 0x05d9fc22, 0x0009f010,
+ 0x05fdfd1d, 0x59340403, 0x82000580, 0x000007fe,
+ 0x0500001b, 0x59cc3407, 0x82183500, 0x000000ff,
+ 0x90180585, 0x05000023, 0x9018058b, 0x05000011,
+ 0x59cc0207, 0x82000500, 0x0000ff00, 0x05020003,
+ 0x90180d89, 0x0500001b, 0x82000580, 0x00001900,
+ 0x05020008, 0x90180589, 0x05000016, 0x60100800,
+ 0x05d9fc08, 0x05c1f911, 0x0519fac5, 0x0009f010,
+ 0x0519fac3, 0x60040000, 0x05fdf69f, 0x59cc3407,
+ 0x82183500, 0x000000ff, 0x9018058b, 0x0500001f,
+ 0x9018058e, 0x0500001d, 0x59cc0207, 0x82000500,
+ 0x0000ff00, 0x82000580, 0x00001900, 0x05000017,
+ 0x0505ff46, 0x59325809, 0x05000008, 0x592c0208,
+ 0x82000580, 0x00000139, 0x05fc07ea, 0x592c0408,
+ 0x8c00051e, 0x05fe07e7, 0x59340412, 0x800001c0,
+ 0x05000006, 0x80000040, 0x48026c12, 0x642a6006,
+ 0x645a6403, 0x1c01f000, 0x59340403, 0x82000580,
+ 0x000007fe, 0x0502000b, 0x59a8024c, 0x84000540,
+ 0x4803524c, 0x8c000506, 0x05000004, 0x4a035048,
+ 0x0000ffff, 0x050dfe2e, 0x05d9f8bf, 0x05fdf7d1,
+ 0x0519fa93, 0x417a7800, 0x05c1f895, 0x60143000,
+ 0x0519f9b0, 0x42000000, 0x001123f8, 0x0519fc24,
+ 0x59300429, 0x900005a1, 0x050c0602, 0x05fdf7c6,
+ 0x4933c857, 0x0501f844, 0x05020006, 0x60140800,
+ 0x05d9fbc4, 0x64066203, 0x640e6403, 0x05f1f1eb,
+ 0x60100800, 0x05d9fbbf, 0x0509fdb1, 0x05020007,
+ 0x4c580000, 0x6008b000, 0x0509fd97, 0x5c00b000,
+ 0x05fdfcb5, 0x0009f010, 0x05fdfcb3, 0x0519fa74,
+ 0x80000580, 0x05fdf650, 0x4933c857, 0x0501f82e,
+ 0x05020006, 0x60240800, 0x05d9fbae, 0x64066203,
+ 0x64166403, 0x05f1f1d5, 0x0519fa69, 0x60040000,
+ 0x05fdf645, 0x4933c857, 0x5930081d, 0x58040200,
+ 0x8c000500, 0x050c0388, 0x0501f81f, 0x05020006,
+ 0x602c0800, 0x05d9fb9f, 0x64066203, 0x64066403,
+ 0x05f1f1c6, 0x5930080a, 0x58040403, 0x82000580,
+ 0x000007fe, 0x05020004, 0x600c2800, 0x050dfb7f,
+ 0x0009f010, 0x0519fa52, 0x60040000, 0x05fdf62e,
+ 0x4933c857, 0x59cc0407, 0x90000583, 0x05020009,
+ 0x59cc0207, 0x82000500, 0x0000ff00, 0x82000d80,
+ 0x00002a00, 0x05000003, 0x82000d80, 0x00001e00,
+ 0x1c01f000, 0x4933c857, 0x90000541, 0x1c01f000,
+ 0x4933c857, 0x4d400000, 0x4c580000, 0x60028000,
+ 0x05c1fb2f, 0x59a8024c, 0x90000543, 0x4803524c,
+ 0x05d5f931, 0x0500000c, 0x59a81cd1, 0x8c0c0506,
+ 0x0502000f, 0x840c1d44, 0x480f54d1, 0x59cc0408,
+ 0x8c00051c, 0x05000004, 0x59a8124c, 0x84081558,
+ 0x480b524c, 0x0501f8c5, 0x05000005, 0x4d300000,
+ 0x4d340000, 0x4d440000, 0x0501f037, 0x59cc0408,
+ 0x8c00051c, 0x05000006, 0x59cc0800, 0x82040d00,
+ 0x00ffffff, 0x800409c0, 0x05000037, 0x0501f8ec,
+ 0x05000035, 0x4d300000, 0x4d340000, 0x4d440000,
+ 0x83240580, 0x001124b6, 0x0502002a, 0x59cc0408,
+ 0x8c00051e, 0x0502000c, 0x42000800, 0x001124b6,
+ 0x58040406, 0x8c000500, 0x05020007, 0x59cc0408,
+ 0x8c000518, 0x05000004, 0x59a8024c, 0x84000552,
+ 0x4803524c, 0x59240400, 0x8c00050a, 0x05020005,
+ 0x60aa8000, 0x61fe89ff, 0x60083000, 0x0519f932,
+ 0x60aa8000, 0x4d3c0000, 0x05d5f8fc, 0x05000008,
+ 0x600a7800, 0x5924100b, 0x82081500, 0x00001fff,
+ 0x41780800, 0x05c1fc20, 0x0501f003, 0x60027804,
+ 0x05bdff99, 0x5c027800, 0x42000000, 0x001123f8,
+ 0x0519fb87, 0x05d5f8ed, 0x05020002, 0x05c1f98a,
+ 0x05c1fbaa, 0x600a8000, 0x5c028800, 0x5c026800,
+ 0x5c026000, 0x050dfd23, 0x41780800, 0x59a804d1,
+ 0x8c00050a, 0x05000002, 0x60040800, 0x05d9fc5d,
+ 0x59cc0800, 0x82040d00, 0x00ffffff, 0x59240200,
+ 0xb0000566, 0x48024a00, 0x59cc0408, 0x8c00051c,
+ 0x05000003, 0x800409c0, 0x05000019, 0x48064805,
+ 0x812000f0, 0x80040540, 0x48026813, 0x812241c0,
+ 0x0502000f, 0x59cc0408, 0x8c000518, 0x05020007,
+ 0x599c0019, 0x8c000510, 0x05000009, 0x59a8024c,
+ 0x84000548, 0x4803524c, 0x4c040000, 0x60001802,
+ 0x60040000, 0x05ddfd37, 0x5c000800, 0x4927c857,
+ 0x83240580, 0x001124b6, 0x05020026, 0x59a8124c,
+ 0x59cc0408, 0x8c00051a, 0x05020005, 0x84081514,
+ 0x4a0370e5, 0x00000800, 0x0501f004, 0x84081554,
+ 0x4a0370e5, 0x00000c00, 0x480b524c, 0x48075040,
+ 0x80040110, 0x48035049, 0x48038881, 0x59a80a4c,
+ 0x84040d50, 0x59cc0013, 0x8c00053e, 0x05000003,
+ 0x8c000536, 0x05000004, 0x59cc0017, 0x8c000536,
+ 0x05020002, 0x84040d10, 0x4807524c, 0x4807544c,
+ 0x5924100b, 0x82081500, 0x00001fff, 0x8c040518,
+ 0x05000004, 0x59a804d1, 0x8c00050a, 0x05000026,
+ 0x59cc0408, 0x8c000518, 0x05000023, 0x59a8024c,
+ 0x8c000506, 0x05000012, 0x916c0583, 0x05000004,
+ 0x83240580, 0x001124b6, 0x0500001b, 0x59240400,
+ 0x8c00050c, 0x05020007, 0x4c040000, 0x60001802,
+ 0x60040000, 0x05ddfcfb, 0x5c000800, 0x0501f012,
+ 0x64866429, 0x0509fc6e, 0x0501f00f, 0x0519fc62,
+ 0x0502000d, 0x4c080000, 0x4c040000, 0x050dfa86,
+ 0x5c000800, 0x5c001000, 0x05020007, 0x59a8024c,
+ 0x8c000514, 0x05000004, 0x4c040000, 0x05c1fc0e,
+ 0x5c000800, 0xb0040510, 0xb0000590, 0x05000008,
+ 0x05ddff48, 0x05000006, 0x59cc0009, 0x4803505d,
+ 0x59cc000a, 0x4803505e, 0x0509f99b, 0x5c00b000,
+ 0x5c028000, 0x1c01f000, 0x4933c857, 0x59a8144c,
+ 0x82080580, 0x0000ffff, 0x0500000f, 0x4c080000,
+ 0x05ddff38, 0x5c001000, 0x05020012, 0x59cc0408,
+ 0x8c000518, 0x05000009, 0x8c08050a, 0x05000011,
+ 0x8c00051c, 0x05020008, 0x8c080518, 0x0502000d,
+ 0x80000580, 0x1c01f000, 0x8c080508, 0x05fe07fd,
+ 0x0501f008, 0x8c080518, 0x05fe07fa, 0x0501f005,
+ 0x90080530, 0x05020003, 0x8c080506, 0x05fe07f5,
+ 0x4a03544c, 0x0000ffff, 0x42000000, 0x0011233d,
+ 0x0519fadb, 0x60303000, 0x61fc19ff, 0x601c2000,
+ 0x4d200000, 0x417a4000, 0x05d1fd63, 0x5c024000,
+ 0x4d400000, 0x4d3c0000, 0x60043000, 0x0519f86a,
+ 0x60aa8000, 0x60027804, 0x05bdfedb, 0x5c028000,
+ 0x5c027800, 0x90000541, 0x1c01f000, 0x4933c857,
+ 0x4c580000, 0x59cc0408, 0x8c000518, 0x05020006,
+ 0x59a8044c, 0x82000580, 0x0000ffff, 0x0500002b,
+ 0x0501f015, 0x59a80049, 0x4803c857, 0x800001c0,
+ 0x05000026, 0x59341806, 0x480fc857, 0x800c19c0,
+ 0x05000022, 0x59cc1000, 0x59340013, 0x82000500,
+ 0x00ffffff, 0x0500001d, 0x82081500, 0x00ffffff,
+ 0x80080580, 0x05000004, 0x42000000, 0x001123d3,
+ 0x0501f014, 0x59341806, 0x480fc857, 0x800c19c0,
+ 0x05000012, 0x91cc140b, 0x6008b000, 0x91341c06,
+ 0x0501f8d8, 0x05000004, 0x42000000, 0x001123d4,
+ 0x0501f008, 0x91cc140d, 0x6008b000, 0x91341c08,
+ 0x0501f8d0, 0x05000005, 0x42000000, 0x001123d5,
+ 0x0519fa97, 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, 0x4933c857, 0x4943c857, 0x493fc857,
+ 0x4c5c0000, 0x4d300000, 0x4d340000, 0x4d2c0000,
+ 0x4d380000, 0x4130b800, 0x42026000, 0x00115aa4,
+ 0x050dfc8e, 0x05021089, 0x8d3c0512, 0x05000004,
+ 0x405c0000, 0x81300580, 0x0500007f, 0x05f9fa07,
+ 0x0500007d, 0x59300407, 0x90000c92, 0x05021015,
+ 0x5932680a, 0x0c01f001, 0x0010a56d, 0x0010a509,
+ 0x0010a512, 0x0010a51c, 0x0010a509, 0x0010a512,
+ 0x0010a542, 0x0010a550, 0x0010a508, 0x0010a508,
+ 0x0010a556, 0x0010a508, 0x0010a508, 0x0010a508,
+ 0x0010a508, 0x0010a55f, 0x0010a560, 0x0010a560,
+ 0x05b1f90d, 0x59300403, 0xb0000583, 0x05080bed,
+ 0x0519f8b1, 0x0505fe47, 0x05bc0efc, 0x0505fe54,
+ 0x05fc0aed, 0x0501f058, 0x59325809, 0x0505fd3f,
+ 0x05000055, 0x49425a0a, 0x497a5c0d, 0x0001fba8,
+ 0x59300a29, 0x90040d83, 0x05040e27, 0x0501f04e,
+ 0x813669c0, 0x05b008f8, 0x050df9f0, 0x59300008,
+ 0x8c000500, 0x05000003, 0x05b5fbc5, 0x0501f004,
+ 0x59300203, 0x90000584, 0x05b40bc1, 0x59325809,
+ 0x0505fd2a, 0x05000040, 0x592c0208, 0x82000500,
+ 0x000000ff, 0x90000594, 0x05060e13, 0x0509ff28,
+ 0x0005fa1a, 0x05e5fa5f, 0x4a025a08, 0x00000103,
+ 0x59300402, 0x48025c0a, 0x592c040c, 0x8c000512,
+ 0x05000005, 0x4d2c0000, 0x592e580d, 0x05b1fc97,
+ 0x5c025800, 0x49425a0a, 0x497a580d, 0x0509fbc4,
+ 0x0001fba8, 0x0501f028, 0x59300203, 0x90000584,
+ 0x05b40ba3, 0x59325809, 0x0505fd0c, 0x05000022,
+ 0x49425a0a, 0x813669c0, 0x05160d31, 0x0509ff0c,
+ 0x0005fa1a, 0x0509fbb6, 0x0001fba8, 0x0501f01a,
+ 0x59300203, 0x90000591, 0x0502001b, 0x59300429,
+ 0x48026203, 0x0501f018, 0x59300203, 0x90000584,
+ 0x05b40b8f, 0x59325809, 0x0505fcf8, 0x0500000e,
+ 0x49425a0a, 0x0001fba8, 0x0501f00b, 0x0501f00a,
+ 0x59300203, 0x90000584, 0x05b40b85, 0x05b9fa17,
+ 0x59325809, 0x0505fced, 0x05000003, 0x49425a0a,
+ 0x0001fba8, 0x05f9fb7c, 0x8d3c051c, 0x05000002,
0x497a600a, 0x91326430, 0x41580000, 0x81300480,
- 0x05fc1778, 0x0501f002, 0x41526000, 0x8d3c0518,
- 0x05000011, 0x59a80898, 0x59a80099, 0x80040480,
- 0x0500000d, 0x81300800, 0x41540000, 0x80040480,
- 0x05021009, 0x5930000a, 0x800001c0, 0x05fe076e,
- 0x59300203, 0x90000588, 0x05fe076b, 0x0515fd6d,
- 0x05fdf769, 0x5c027000, 0x5c025800, 0x5c026800,
- 0x5c026000, 0x5c00b800, 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, 0x05b21d77,
- 0xb138048b, 0x05b01d75, 0x0c01f001, 0x0010a070,
- 0x0010a070, 0x0010a070, 0x0010a070, 0x0010a06f,
- 0x0010a06f, 0x0010a06f, 0x0010a070, 0x05b1fd6b,
- 0x493bc857, 0x64366203, 0x493a6403, 0x42000800,
- 0x80000000, 0x0005f6ab, 0x91380593, 0x0502000b,
- 0x59300403, 0xb0000590, 0x05b20d60, 0x0509f823,
- 0x05000005, 0x643a6203, 0x59a8005e, 0x48026205,
- 0x1c01f000, 0x0005f7dc, 0x4933c857, 0x913805a7,
- 0x05020027, 0x4933c857, 0x05f1fbe3, 0x4d3c0000,
- 0x417a7800, 0x05c1faa3, 0x5c027800, 0x42000000,
- 0x0010e454, 0x0515ff4f, 0x4d2c0000, 0x59325809,
- 0x0505fc39, 0x492fc857, 0x0500000d, 0x0509fe1e,
- 0x05e5fb74, 0x4a025a08, 0x00000103, 0x59300c02,
- 0x48065c0a, 0x64a65a0a, 0x497a580d, 0x592c0c0c,
- 0x84040d50, 0x48065c0c, 0x0001fb82, 0x5c025800,
- 0x60543000, 0x41782800, 0x600c2000, 0x4d400000,
- 0x4d440000, 0x59368c03, 0x60a68000, 0x0509fd6c,
- 0x5c028800, 0x5c028000, 0x0005f7dc, 0x91380594,
- 0x05020009, 0x59300403, 0xb0000c93, 0x05b21d2b,
- 0xb0000480, 0x05b01d29, 0x4933c857, 0x4803c857,
- 0x0c01f013, 0xb13805a1, 0x05000003, 0xb13805a0,
- 0x05020007, 0x05f5f800, 0x05fa037a, 0x59300203,
- 0x9000058e, 0x050405c3, 0x1c01f000, 0xb1380593,
- 0x05000006, 0xb1380588, 0x05b20d18, 0x59300403,
- 0xb0000590, 0x05b20d15, 0x1c01f000, 0x0010a0db,
- 0x0010a0da, 0x0010a0da, 0x0010a0da, 0x0010a0da,
- 0x0010a0da, 0x0010a0da, 0x0010a0da, 0x0010a0da,
- 0x0010a0da, 0x0010a0da, 0x0010a0ed, 0x0010a0ed,
- 0x0010a0ed, 0x0010a0ed, 0x0010a0da, 0x0010a0ed,
- 0x0010a0da, 0x0010a0ed, 0x05b1fd00, 0x4933c857,
- 0x05f1fb8d, 0x0505fbec, 0x000407dc, 0x4d2c0000,
- 0x59325809, 0x0509fdd0, 0x05e5fb26, 0x4a025a08,
+ 0x05fc177a, 0x0501f002, 0x41526000, 0x8d3c0518,
+ 0x05000012, 0x59a8089b, 0x59a8009c, 0x80040480,
+ 0x0500000e, 0x81300800, 0x41540000, 0x80040480,
+ 0x0502100a, 0x5930000a, 0x800001c0, 0x05fe0770,
+ 0x59300203, 0x90000588, 0x05fe076d, 0x0515ff86,
+ 0x497a6009, 0x05fdf76a, 0x5c027000, 0x5c025800,
+ 0x5c026800, 0x5c026000, 0x5c00b800, 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,
+ 0x05b2186d, 0xb138048b, 0x05b0186b, 0x0c01f001,
+ 0x0010a5b5, 0x0010a5b5, 0x0010a5b5, 0x0010a5b5,
+ 0x0010a5b4, 0x0010a5b4, 0x0010a5b4, 0x0010a5b5,
+ 0x05b1f861, 0x493bc857, 0x64366203, 0x493a6403,
+ 0x42000800, 0x80000000, 0x0005f6e2, 0x91380593,
+ 0x0502000b, 0x59300403, 0xb0000590, 0x05b20856,
+ 0x0509f876, 0x05000005, 0x643a6203, 0x59a80061,
+ 0x48026205, 0x1c01f000, 0x0009f010, 0x4933c857,
+ 0x913805a7, 0x05020027, 0x4933c857, 0x05f1fb5c,
+ 0x4d3c0000, 0x417a7800, 0x05bdfdf5, 0x5c027800,
+ 0x42000000, 0x001123f8, 0x0519f985, 0x4d2c0000,
+ 0x59325809, 0x0505fc7d, 0x492fc857, 0x0500000d,
+ 0x0509fe7f, 0x05e5f9b7, 0x4a025a08, 0x00000103,
+ 0x59300c02, 0x48065c0a, 0x64a65a0a, 0x497a580d,
+ 0x592c0c0c, 0x84040d50, 0x48065c0c, 0x0001fba8,
+ 0x5c025800, 0x60543000, 0x41782800, 0x600c2000,
+ 0x4d400000, 0x4d440000, 0x59368c03, 0x60a68000,
+ 0x0509fdce, 0x5c028800, 0x5c028000, 0x0009f010,
+ 0x91380594, 0x05020009, 0x59300403, 0xb0000c93,
+ 0x05b21821, 0xb0000480, 0x05b0181f, 0x4933c857,
+ 0x4803c857, 0x0c01f012, 0xb13805a1, 0x05000003,
+ 0xb13805a0, 0x05020007, 0x05f1ff79, 0x05fa0367,
+ 0x59300203, 0x9000058e, 0x05040617, 0x1c01f000,
+ 0xb1380586, 0x05000004, 0xb1380585, 0x05000002,
+ 0x1c01f000, 0x493bc857, 0x05f9f35c, 0x0010a61f,
+ 0x0010a61e, 0x0010a61e, 0x0010a61e, 0x0010a61e,
+ 0x0010a61e, 0x0010a61e, 0x0010a61e, 0x0010a61e,
+ 0x0010a61e, 0x0010a61e, 0x0010a631, 0x0010a631,
+ 0x0010a631, 0x0010a631, 0x0010a61e, 0x0010a631,
+ 0x0010a61e, 0x0010a631, 0x05adfff7, 0x4933c857,
+ 0x05f1fb07, 0x0505fc31, 0x00080010, 0x4d2c0000,
+ 0x59325809, 0x0509fe32, 0x05e5f96a, 0x4a025a08,
0x00000103, 0x59300402, 0x48025c0a, 0x641a5a0a,
- 0x497a580d, 0x0001fb82, 0x5c025800, 0x0505fcbd,
- 0x0005f7dc, 0x4933c857, 0x05f1fb7b, 0x0005f7dc,
- 0x05b1fcea, 0x59300008, 0x8c000536, 0x05020004,
- 0x5930001e, 0x800001c0, 0x050a0d0c, 0x497a6205,
- 0x59300004, 0x8c00053e, 0x0502003b, 0x0509fdca,
+ 0x497a580d, 0x0001fba8, 0x5c025800, 0x0505fd12,
+ 0x0009f010, 0x4933c857, 0x05f1faf5, 0x0009f010,
+ 0x05adffe1, 0x59300008, 0x8c000536, 0x05020004,
+ 0x5930001e, 0x800001c0, 0x050a0d6f, 0x497a6205,
+ 0x59300004, 0x8c00053e, 0x0502003b, 0x0509fe37,
0x050200f0, 0x59325809, 0x592c0c0c, 0x59cc2808,
0x82141d00, 0x00000c00, 0x05000002, 0x59cc1809,
0x84040d58, 0x48065c0c, 0x82143500, 0x00008fff,
0x05020034, 0x59300008, 0x8c000536, 0x0500000f,
0x60303000, 0x60443800, 0x901409c0, 0x4806580d,
- 0x4c5c0000, 0x592cb805, 0x0009f8b5, 0x4d2c0000,
- 0x405e5800, 0x05b5f87d, 0x5c025800, 0x497a5805,
+ 0x4c5c0000, 0x592cb805, 0x0009f8ee, 0x4d2c0000,
+ 0x405e5800, 0x05b1fb70, 0x5c025800, 0x497a5805,
0x5c00b800, 0x0501f013, 0x59340200, 0x8c00050e,
- 0x050200c6, 0x0009f8a5, 0x05020006, 0x64025a0a,
- 0x59300013, 0x0509fd99, 0x80000d40, 0x05020a55,
+ 0x050200c6, 0x0009f8de, 0x05020006, 0x64025a0a,
+ 0x59300013, 0x0509fdfb, 0x80000d40, 0x05020a55,
0x4a025a08, 0x00000103, 0x4806580b, 0x480e580e,
0x901409c0, 0x4806580d, 0x59300c02, 0x48065c0a,
- 0x0509fa31, 0x0509fa34, 0x0001fb82, 0x0509fd82,
- 0x05ddf897, 0x59cc0008, 0x8c000518, 0x05060594,
- 0x0005f7dc, 0x05f1ff84, 0x05fc07c5, 0x4d3c0000,
- 0x600a7800, 0x0501fedc, 0x5c027800, 0x05fdf7c0,
+ 0x0509fa93, 0x0509fa96, 0x0001fba8, 0x0509fde4,
+ 0x05d9fe18, 0x59cc0008, 0x8c000518, 0x050605e9,
+ 0x0009f010, 0x05f1fefe, 0x05fc07c5, 0x4d3c0000,
+ 0x600a7800, 0x0501ff0a, 0x5c027800, 0x05fdf7c0,
0x4817c857, 0x480fc857, 0x82180500, 0x000000ff,
0x0500000d, 0x592c0208, 0x82000500, 0x000000ff,
0xb0000588, 0x05000003, 0x900005a2, 0x05020006,
- 0x592c040b, 0x800001c0, 0x05000003, 0x0509fbc6,
- 0x0509f3fd, 0x82180d00, 0x00000c00, 0x05000007,
+ 0x592c040b, 0x800001c0, 0x05000003, 0x0509fc29,
+ 0x0509f460, 0x82180d00, 0x00000c00, 0x05000007,
0x59300008, 0x8c000536, 0x05020004, 0x59340200,
0x8c00050e, 0x0502007c, 0x64025a0a, 0x41782000,
0x8c180510, 0x05000009, 0x59cc200b, 0x801021c0,
@@ -10370,58 +10707,58 @@ static const uint32_t isp_2500_risc_code[] = {
0x05000028, 0x90183403, 0x80183104, 0x901c3c03,
0x801c3904, 0x9018340c, 0x901c3c11, 0x4c5c0000,
0x901401c0, 0x4802580d, 0x480e580e, 0x592cb805,
- 0x4c040000, 0x0009f8b5, 0x5c000800, 0x4c500000,
- 0x4c540000, 0x91cca40c, 0x912cac11, 0x0501fe3a,
+ 0x4c040000, 0x0009f8ee, 0x5c000800, 0x4c500000,
+ 0x4c540000, 0x91cca40c, 0x912cac11, 0x0501fe68,
0x5c00a800, 0x5c00a000, 0x4d2c0000, 0x405e5800,
- 0x05b5f806, 0x5c025800, 0x497a5805, 0x5c00b800,
+ 0x05b1faf9, 0x5c025800, 0x497a5805, 0x5c00b800,
0x05fdf79c, 0x59300008, 0x8c000536, 0x05fc078a,
0x480e580e, 0x60303000, 0x60443800, 0x05fdf777,
0x59300008, 0x8c000536, 0x05000020, 0x05fdf7d7,
- 0x4c040000, 0x4c0c0000, 0x4c140000, 0x0009f8a5,
- 0x05020006, 0x64025a0a, 0x59300013, 0x0509fd17,
+ 0x4c040000, 0x4c0c0000, 0x4c140000, 0x0009f8de,
+ 0x05020006, 0x64025a0a, 0x59300013, 0x0509fd79,
0x80000d40, 0x050209d3, 0x5c002800, 0x5c001800,
0x4a025a08, 0x00000103, 0x4806580b, 0x480e580e,
0x901409c0, 0x4806580d, 0x5c000800, 0x4c500000,
- 0x4c540000, 0x91cca40c, 0x912cac11, 0x0501fe0e,
+ 0x4c540000, 0x91cca40c, 0x912cac11, 0x0501fe3c,
0x5c00a800, 0x5c00a000, 0x59300008, 0x84000534,
0x48026008, 0x05fdf771, 0x4c040000, 0x4c0c0000,
- 0x4c140000, 0x0009f8a5, 0x05020006, 0x64025a0a,
- 0x59300013, 0x0509fcf9, 0x80000d40, 0x050209b5,
+ 0x4c140000, 0x0009f8de, 0x05020006, 0x64025a0a,
+ 0x59300013, 0x0509fd5b, 0x80000d40, 0x050209b5,
0x4806580b, 0x5c002800, 0x5c001800, 0x59301402,
0x480a5c0a, 0x480e580e, 0x901401c0, 0x4802580d,
- 0x0509f991, 0x5c000800, 0x0501fda5, 0x0501fdd6,
+ 0x0509f9f3, 0x5c000800, 0x0501fdd3, 0x0501fe04,
0x05fdf75f, 0x592c020e, 0x8c000502, 0x05fc0783,
0x592c020c, 0x8c00050e, 0x05fe0780, 0x59300013,
0x800c0d80, 0x05fc077d, 0x4803c857, 0x480fc857,
- 0x8c180514, 0x05040526, 0x80000540, 0x05fc0777,
- 0x4807c856, 0x0505f522, 0x592c020e, 0x8c000502,
+ 0x8c180514, 0x0504057b, 0x80000540, 0x05fc0777,
+ 0x4807c856, 0x0505f577, 0x592c020e, 0x8c000502,
0x05fc0739, 0x59300013, 0x800001c0, 0x05fc0738,
- 0x592c020c, 0x8c00050e, 0x05fe0735, 0x0505f518,
+ 0x592c020c, 0x8c00050e, 0x05fe0735, 0x0505f56d,
0x1c01f000, 0x59cc2006, 0x59cc2807, 0x0501f054,
0x0501f053, 0x1c01f000, 0x4933c857, 0x59300004,
0x8c00053e, 0x05020045, 0x59300008, 0x8c000536,
- 0x05020004, 0x5930001e, 0x800001c0, 0x050a0c07,
+ 0x05020004, 0x5930001e, 0x800001c0, 0x050a0c6a,
0x497a6205, 0x59325809, 0x592c0c0c, 0x41782800,
0x41781800, 0x84040d58, 0x48065c0c, 0x41783000,
0x59300008, 0x8c000536, 0x0500000f, 0x901401c0,
0x4802580d, 0x60303000, 0x60443800, 0x4c5c0000,
- 0x592cb805, 0x0009f8b5, 0x4d2c0000, 0x405e5800,
- 0x05b1ff82, 0x5c025800, 0x497a5805, 0x5c00b800,
+ 0x592cb805, 0x0009f8ee, 0x4d2c0000, 0x405e5800,
+ 0x05b1fa75, 0x5c025800, 0x497a5805, 0x5c00b800,
0x0501f015, 0x59340200, 0x8c00050e, 0x05020018,
- 0x0009f8a5, 0x05020007, 0x64025a0a, 0x59300013,
- 0x0509fc9e, 0x80000d40, 0x4807c857, 0x05020959,
+ 0x0009f8de, 0x05020007, 0x64025a0a, 0x59300013,
+ 0x0509fd00, 0x80000d40, 0x4807c857, 0x05020959,
0x4a025a08, 0x00000103, 0x4806580b, 0x480e580e,
0x901409c0, 0x4806580d, 0x4933c857, 0x59300c02,
- 0x48065c0a, 0x0509f934, 0x0509f937, 0x0001fb82,
- 0x0509fc85, 0x05d9ff9a, 0x0005f7dc, 0x592c020e,
+ 0x48065c0a, 0x0509f996, 0x0509f999, 0x0001fba8,
+ 0x0509fce7, 0x05d9fd1b, 0x0009f010, 0x592c020e,
0x8c000502, 0x05fc07e7, 0x59300013, 0x4803c857,
0x800001c0, 0x05fc07e5, 0x592c020c, 0x8c00050e,
- 0x05fe07e2, 0x0505f4ca, 0x05f1fe7f, 0x05fc07bb,
+ 0x05fe07e2, 0x0505f51f, 0x05f1fdf9, 0x05fc07bb,
0x4933c857, 0x1c01f000, 0x4933c857, 0x59300008,
- 0x8c000536, 0x05b00b99, 0x0501f209, 0x4c5c0000,
+ 0x8c000536, 0x05ac0e90, 0x0501f209, 0x4c5c0000,
0x4c600000, 0x4010b800, 0x4014c000, 0x59325809,
0x59300008, 0x8c000536, 0x0502000b, 0x5930001e,
- 0x800001c0, 0x4c140000, 0x050a0bb4, 0x5c002800,
+ 0x800001c0, 0x4c140000, 0x050a0c17, 0x5c002800,
0x592c020e, 0x8c000502, 0x05020033, 0x8c000500,
0x05000038, 0x640a6203, 0x650e6403, 0x405c0000,
0x592c0813, 0x80040c80, 0x40600000, 0x80040480,
@@ -10430,99 +10767,99 @@ static const uint32_t isp_2500_risc_code[] = {
0x05000007, 0x59300a23, 0x90040503, 0x4c140000,
0x0c01f826, 0x5c002800, 0x05000018, 0x485e6015,
0x48626013, 0x497a6205, 0x5c00c000, 0x5c00b800,
- 0x4c140000, 0x0505fe2d, 0x5c002800, 0x05000007,
- 0x4816602a, 0x4a02601c, 0x0010a278, 0x1c01f000,
- 0x5930282a, 0x497a602a, 0x05b5feaf, 0x0502000c,
- 0x59300804, 0x0005f69d, 0x4c140000, 0x05f1fe3a,
+ 0x4c140000, 0x0505fe81, 0x5c002800, 0x05000007,
+ 0x4816602a, 0x4a02601c, 0x0010a7bc, 0x1c01f000,
+ 0x5930282a, 0x497a602a, 0x05b5fa0a, 0x0502000c,
+ 0x59300804, 0x0005f6d4, 0x4c140000, 0x05f1fdb4,
0x5c002800, 0x05fc07e1, 0x5c00c000, 0x5c00b800,
- 0x05f9f1b0, 0x5c00c000, 0x5c00b800, 0x4933c857,
+ 0x05f9f19e, 0x5c00c000, 0x5c00b800, 0x4933c857,
0x1c01f000, 0x4807c857, 0x4004c000, 0x05fdf7d2,
- 0x4803c857, 0x05fdf7f5, 0x0010a292, 0x0010a297,
- 0x0010a29c, 0x0010a29c, 0x59300224, 0x480350d7,
- 0x90000408, 0x480350d6, 0x0501f00a, 0x59300224,
- 0x480350d6, 0x90000408, 0x480350d7, 0x0501f005,
- 0x59300224, 0x90000408, 0x480350d6, 0x480350d7,
- 0x405c1000, 0x41780800, 0x59a800d6, 0x05edfceb,
+ 0x4803c857, 0x05fdf7f5, 0x0010a7d6, 0x0010a7db,
+ 0x0010a7e0, 0x0010a7e0, 0x59300224, 0x480350dc,
+ 0x90000408, 0x480350db, 0x0501f00a, 0x59300224,
+ 0x480350db, 0x90000408, 0x480350dc, 0x0501f005,
+ 0x59300224, 0x90000408, 0x480350db, 0x480350dc,
+ 0x405c1000, 0x41780800, 0x59a800db, 0x05edfc60,
0x800409c0, 0x05020052, 0x40085000, 0x592c1001,
0x800811c0, 0x0500004e, 0x58080208, 0x82000500,
0x000000ff, 0xb000058a, 0x05020049, 0x48281005,
- 0x59a800d6, 0x40601000, 0x41780800, 0x4c280000,
- 0x05edfcda, 0x5c005000, 0x800409c0, 0x05020038,
- 0x40041800, 0x59a800d7, 0x59300804, 0x8c040530,
+ 0x59a800db, 0x40601000, 0x41780800, 0x4c280000,
+ 0x05edfc4f, 0x5c005000, 0x800409c0, 0x05020038,
+ 0x40041800, 0x59a800dc, 0x59300804, 0x8c040530,
0x05000005, 0x59300827, 0x800800c6, 0x48000806,
0x59300224, 0x800c1c00, 0x80081040, 0x05fe07fe,
- 0x480e602c, 0x592c4801, 0x802449c0, 0x05b00b13,
+ 0x480e602c, 0x592c4801, 0x802449c0, 0x05ac0e0a,
0x58240a09, 0x592c1815, 0x59303023, 0x8c180506,
0x05000003, 0x40280000, 0x80040c00, 0x800400e0,
0x80040540, 0x48026021, 0x8c18050a, 0x05020003,
0x40280000, 0x800c1c00, 0x480e601f, 0x59300804,
0x8c040530, 0x0500000e, 0x4c280000, 0x592c1001,
- 0x59306827, 0x592c5a0e, 0x0005f9a1, 0x5c005000,
- 0x802851c0, 0x05ba0b9e, 0x05020015, 0x59300827,
+ 0x59306827, 0x592c5a0e, 0x0005f9c8, 0x5c005000,
+ 0x802851c0, 0x05b60ecb, 0x05020015, 0x59300827,
0x58040006, 0x49780806, 0x48000810, 0x59300224,
0x59303023, 0x8c18050e, 0x05000002, 0x80000580,
0x48026424, 0x90000541, 0x1c01f000, 0x592c1813,
0x805c0418, 0x800c0580, 0x05fc07c6, 0x4933c857,
0x485fc857, 0x4863c857, 0x480fc857, 0x80000580,
0x1c01f000, 0xb1380498, 0x05021063, 0xb1380480,
- 0x05001002, 0x0c01f002, 0x1c01f000, 0x0010a317,
- 0x0010a317, 0x0010a317, 0x0010a317, 0x0010a317,
- 0x0010a317, 0x0010a317, 0x0010a317, 0x0010a317,
- 0x0010a317, 0x0010a318, 0x0010a317, 0x0010a317,
- 0x0010a317, 0x0010a317, 0x0010a322, 0x0010a317,
- 0x0010a317, 0x0010a317, 0x0010a317, 0x0010a34d,
- 0x0010a317, 0x0010a317, 0x0010a317, 0x05b1fac3,
- 0x4933c857, 0x05f1fc30, 0x640a6203, 0x59a8005e,
+ 0x05001002, 0x0c01f002, 0x1c01f000, 0x0010a85b,
+ 0x0010a85b, 0x0010a85b, 0x0010a85b, 0x0010a85b,
+ 0x0010a85b, 0x0010a85b, 0x0010a85b, 0x0010a85b,
+ 0x0010a85b, 0x0010a85c, 0x0010a85b, 0x0010a85b,
+ 0x0010a85b, 0x0010a85b, 0x0010a866, 0x0010a85b,
+ 0x0010a85b, 0x0010a85b, 0x0010a85b, 0x0010a891,
+ 0x0010a85b, 0x0010a85b, 0x0010a85b, 0x05adfdba,
+ 0x4933c857, 0x05f1fbaa, 0x640a6203, 0x59a80061,
0x48026205, 0x59300013, 0x59300817, 0x80040c80,
- 0x48066017, 0x05f1f12b, 0x4933c857, 0x05f1f929,
- 0x4d3c0000, 0x417a7800, 0x05c1f806, 0x5c027800,
- 0x42000000, 0x0010e454, 0x0515fcb2, 0x0505f99e,
- 0x05000010, 0x4d2c0000, 0x59325809, 0x0509fb82,
- 0x05e5f8d8, 0x4a025a08, 0x00000103, 0x59300402,
+ 0x48066017, 0x05f1f0a5, 0x4933c857, 0x05f1f8a3,
+ 0x4d3c0000, 0x417a7800, 0x05bdfb59, 0x5c027800,
+ 0x42000000, 0x001123f8, 0x0515fee9, 0x0505f9e3,
+ 0x05000010, 0x4d2c0000, 0x59325809, 0x0509fbe4,
+ 0x05e1ff1c, 0x4a025a08, 0x00000103, 0x59300402,
0x48025c0a, 0x64a65a0a, 0x497a580d, 0x592c0c0c,
- 0x84040d50, 0x48065c0c, 0x0001fb82, 0x5c025800,
+ 0x84040d50, 0x48065c0c, 0x0001fba8, 0x5c025800,
0x60503000, 0x41782800, 0x4d400000, 0x4d440000,
- 0x59368c03, 0x60082000, 0x60a68000, 0x0509fad0,
+ 0x59368c03, 0x60082000, 0x60a68000, 0x0509fb33,
0x5c028800, 0x5c028000, 0x59300008, 0x8c000536,
- 0x05000004, 0x59300004, 0x8c000516, 0x05f80085,
- 0x0005f7dc, 0x4933c857, 0x59cc0a04, 0x48066202,
+ 0x05000004, 0x59300004, 0x8c000516, 0x05f80056,
+ 0x0009f010, 0x4933c857, 0x59cc0a04, 0x48066202,
0x59300809, 0x4978080d, 0x4978080e, 0x5804140c,
0x84081558, 0x48080c0c, 0x59300008, 0x8c000536,
0x05000004, 0x5804040c, 0x84000542, 0x48000c0c,
- 0x1c01f000, 0xb13805a1, 0x05020014, 0x05f1f9b4,
- 0x0501fdd0, 0x0502000c, 0x05f1fe9a, 0x05fc07ff,
+ 0x1c01f000, 0xb13805a1, 0x05020014, 0x05f1f92e,
+ 0x0501fe06, 0x0502000c, 0x05f1fe14, 0x05fc07ff,
0x811800ca, 0x81c80c00, 0x58040138, 0x59cc0a03,
- 0x80000040, 0x80040580, 0x05020007, 0x05f1fe8b,
+ 0x80000040, 0x80040580, 0x05020007, 0x05f1fe05,
0x05000005, 0x59300c16, 0x84040d44, 0x48066416,
- 0x497a6205, 0x05f1f193, 0xb13805a0, 0x05fe07fe,
+ 0x497a6205, 0x05f1f10d, 0xb13805a0, 0x05fe07fe,
0x59cc0002, 0x8c000526, 0x05fe07e9, 0x05fdf7fa,
0x4807c857, 0x8c04053e, 0x05020024, 0x497a5a0a,
- 0x5930002b, 0x80000540, 0x05000019, 0x0509ff19,
+ 0x5930002b, 0x80000540, 0x05000019, 0x050df88b,
0x05000021, 0x497a5a0a, 0x4c040000, 0x4c080000,
0x4c0c0000, 0x4c100000, 0x4c140000, 0x40002800,
0x58141003, 0x40040000, 0x80081480, 0x48082803,
- 0x40140000, 0x05b5fb83, 0x5c002800, 0x5c002000,
+ 0x40140000, 0x05b1fedd, 0x5c002800, 0x5c002000,
0x5c001800, 0x5c001000, 0x5c000800, 0x592c020a,
0x80000540, 0x05020008, 0x0501f005, 0x592c040c,
0x8c00051c, 0x05000002, 0x592c0806, 0x4807c857,
0x64565a0a, 0x1c01f000, 0x5930002b, 0x80000540,
0x05000007, 0x64465a0a, 0x5930002b, 0x4c040000,
- 0x05b5fb6c, 0x5c000800, 0x05fdf7f7, 0x4807c856,
+ 0x05b1fec6, 0x5c000800, 0x05fdf7f7, 0x4807c856,
0x641e5a0a, 0x1c01f000, 0xb1380498, 0x05001006,
- 0xb13805a1, 0x05000003, 0xb13805a0, 0x05b20a2b,
+ 0xb13805a1, 0x05000003, 0xb13805a0, 0x05ae0d22,
0x1c01f000, 0xb1380480, 0x05001004, 0x4d2c0000,
- 0x0c01f803, 0x5c025800, 0x1c01f000, 0x0010a3cf,
- 0x0010a3cf, 0x0010a3cf, 0x0010a3cf, 0x0010a3cf,
- 0x0010a3d1, 0x0010a3d0, 0x0010a3cf, 0x0010a44b,
- 0x0010a3cf, 0x0010a3cf, 0x0010a3cf, 0x0010a3cf,
- 0x0010a3cf, 0x0010a3cf, 0x0010a3cf, 0x0010a3cf,
- 0x0010a3cf, 0x0010a3cf, 0x0010a52b, 0x0010a55c,
- 0x0010a53b, 0x0010a3d0, 0x0010a565, 0x05b1fa0b,
- 0x1c01f000, 0x5930001e, 0x800001c0, 0x050a0a2f,
+ 0x0c01f803, 0x5c025800, 0x1c01f000, 0x0010a913,
+ 0x0010a913, 0x0010a913, 0x0010a913, 0x0010a913,
+ 0x0010a915, 0x0010a914, 0x0010a913, 0x0010a98f,
+ 0x0010a913, 0x0010a913, 0x0010a913, 0x0010a913,
+ 0x0010a913, 0x0010a913, 0x0010a913, 0x0010a913,
+ 0x0010a913, 0x0010a913, 0x0010aa80, 0x0010aab1,
+ 0x0010aa90, 0x0010a914, 0x0010aaba, 0x05adfd02,
+ 0x1c01f000, 0x5930001e, 0x800001c0, 0x050a0a92,
0x59300008, 0x8c00050e, 0x05000074, 0x8c000500,
0x05000066, 0x8c00051c, 0x05000008, 0x84000500,
0x48026008, 0x59325809, 0x592c3c0c, 0x841c3d58,
- 0x481e5c0c, 0x0009f03f, 0x59325809, 0x592c3c0c,
+ 0x481e5c0c, 0x0009f078, 0x59325809, 0x592c3c0c,
0x841c3d58, 0x59300008, 0x8c00051c, 0x05fe07f4,
0x481e5c0c, 0x60140000, 0x40000000, 0x80000040,
0x05fe07fe, 0x59300008, 0x8c00051c, 0x05fe07ec,
@@ -10530,751 +10867,772 @@ static const uint32_t isp_2500_risc_code[] = {
0x82000500, 0x000000ff, 0xb0000588, 0x05000003,
0x900005a2, 0x0502000a, 0x497a580f, 0x82040500,
0x000000ff, 0x05000006, 0x592c040b, 0x800001c0,
- 0x05000003, 0x0509f910, 0x05b5f402, 0x900421c0,
+ 0x05000003, 0x0509f973, 0x05b1f75c, 0x900421c0,
0x4812580d, 0x41782000, 0x82040500, 0x00000c00,
0x05000002, 0x59cc2009, 0x82043500, 0x00000fff,
0x0502001e, 0x481e5c0c, 0x64025a0a, 0x801831c0,
- 0x05b403f4, 0x41782000, 0x8c180510, 0x05000002,
+ 0x05b0074e, 0x41782000, 0x8c180510, 0x05000002,
0x59cc200b, 0x48125810, 0x41780000, 0x8c180512,
0x05000002, 0x59cc000a, 0x4802580f, 0x80100c00,
- 0x05b019be, 0x05b403e7, 0x9004149d, 0x05021009,
+ 0x05ac1cb5, 0x05b00741, 0x9004149d, 0x05021009,
0x4c500000, 0x4c540000, 0x91cca40c, 0x912cac11,
- 0x0501fb9d, 0x5c00a800, 0x5c00a000, 0x05b5f3dd,
- 0x0501fb4b, 0x05b5f3db, 0x412c7800, 0x05b1fd57,
- 0x05b009ae, 0x492c780d, 0x841c3d52, 0x481c7c0c,
+ 0x0501fbcb, 0x5c00a800, 0x5c00a000, 0x05b1f737,
+ 0x0501fb79, 0x05b1f735, 0x412c7800, 0x05b1f84a,
+ 0x05ac0ca5, 0x492c780d, 0x841c3d52, 0x481c7c0c,
0x4a025a08, 0x00000103, 0x4812580e, 0x900401c0,
0x4802580d, 0x583c0408, 0x583c1009, 0x583c220c,
0x48025c08, 0x480a5809, 0x48125a0c, 0x583c0002,
0x48025802, 0x05fdf7d0, 0x8c000524, 0x05fc079c,
0x59325809, 0x4c000000, 0x592c040c, 0x8c00051c,
0x5c000000, 0x05020003, 0x4a026013, 0xffffffff,
- 0x84000524, 0x05fdf792, 0x1c01f000, 0x59a8005e,
+ 0x84000524, 0x05fdf792, 0x1c01f000, 0x59a80061,
0x48026205, 0x59325809, 0x640a6203, 0x592c240c,
0x59300808, 0x4933c857, 0x4807c857, 0x592c0208,
0x82000500, 0x000000ff, 0xb0001db5, 0x05020006,
0x592c1a0e, 0x8c0c0506, 0x05000003, 0x64025a0a,
0x0501f00a, 0xb0000588, 0x05000003, 0x900005a2,
- 0x05020003, 0x8c100500, 0x050a00e7, 0x64025a0a,
- 0x8c04051e, 0x05000044, 0x41780800, 0x497a580d,
+ 0x05020003, 0x8c100500, 0x050a014a, 0x64025a0a,
+ 0x8c04051e, 0x05000055, 0x41780800, 0x497a580d,
0x592c1c0d, 0x59300008, 0x8c00052c, 0x05000003,
0x4a026013, 0x7fffffff, 0x8c000536, 0x05000012,
0x41782800, 0x60303000, 0x60443800, 0x4c0c0000,
- 0x4c100000, 0x4c5c0000, 0x592cb805, 0x0009f8b5,
- 0x4d2c0000, 0x405e5800, 0x05b1fd18, 0x5c025800,
+ 0x4c100000, 0x4c5c0000, 0x592cb805, 0x0009f8ee,
+ 0x4d2c0000, 0x405e5800, 0x05b1f80b, 0x5c025800,
0x497a5805, 0x5c00b800, 0x5c002000, 0x5c001800,
- 0x0501f017, 0x59300013, 0x59341200, 0x497a6205,
- 0x8c08050e, 0x0502006e, 0x4807c857, 0x40041000,
- 0x0509fa32, 0x480a580e, 0x80000d40, 0x05fe0eed,
- 0x59300402, 0x48025c0a, 0x4806580b, 0x4a025a08,
- 0x00000103, 0x4c040000, 0x592c0a0c, 0x8c040512,
- 0x05000002, 0x64325a0a, 0x5c000800, 0x4c040000,
- 0x4c0c0000, 0x4c100000, 0x0505fec3, 0x0509fa16,
- 0x5c002000, 0x5c001800, 0x5c000800, 0x8c100512,
- 0x05020017, 0x4c0c0000, 0x0505febf, 0x0001fb82,
- 0x05d9fd23, 0x5c001800, 0x8c0c0518, 0x000407dc,
- 0x0505f21f, 0x4813c857, 0x8c100518, 0x05000046,
- 0x41780800, 0x592c1c0d, 0x820c0580, 0x00001000,
- 0x05fc07b9, 0x8c100512, 0x05fc07b7, 0x592c780d,
- 0x583c080e, 0x583c1c0d, 0x05fdf7b3, 0x4807c857,
- 0x592c780d, 0x59300402, 0x592c1408, 0x8c08051e,
- 0x0502000e, 0x592c120a, 0x48007c0a, 0x4804780b,
- 0x48087a0a, 0x84102512, 0x48107c0c, 0x4c0c0000,
- 0x4c3c0000, 0x05b1fcd6, 0x5c007800, 0x403e5800,
- 0x0501fadd, 0x05fdf7db, 0x48025c0a, 0x4806580b,
- 0x583c0810, 0x583c000f, 0x80040c00, 0x9004149d,
- 0x05001005, 0x583c1001, 0x480a5801, 0x49787801,
- 0x60700800, 0x90040c14, 0x4c0c0000, 0x4c500000,
- 0x4c540000, 0x903ca40c, 0x912cac0c, 0x4c100000,
- 0x4c3c0000, 0x0501fae4, 0x5c007800, 0x5c002000,
- 0x5c00a800, 0x5c00a000, 0x84102512, 0x48125c0c,
- 0x403e5800, 0x05b1fcb6, 0x0505fe77, 0x42034000,
- 0x0010dceb, 0x59a1d806, 0x80edd9c0, 0x05b008ef,
- 0x48efc857, 0x58ec0009, 0x4803c857, 0x0801f800,
- 0x05fdf7b4, 0x4933c857, 0x1c01f000, 0x59301416,
- 0x480bc857, 0x8c08051c, 0x0502000e, 0x80000540,
- 0x4803c857, 0x05fc078d, 0x80042c80, 0x05fe178b,
- 0x8c080514, 0x05020005, 0x592c0813, 0x4807c857,
- 0x80040480, 0x48026018, 0x8408155c, 0x480a6416,
- 0x59301008, 0x8408151e, 0x480a6008, 0x4c100000,
- 0x4c3c0000, 0x4d400000, 0x592e820a, 0x64065a0a,
- 0x0505fe51, 0x49425a0a, 0x5c028000, 0x5c007800,
- 0x5c002000, 0x497a580d, 0x8c100512, 0x05000005,
- 0x4d2c0000, 0x403e5800, 0x05b1fc85, 0x5c025800,
- 0x82102500, 0xffffedff, 0x48125c0c, 0x59301006,
- 0x800811c0, 0x050401e6, 0x59a8005e, 0x80080480,
- 0x050611e3, 0x0509f990, 0x05e1fee6, 0x4a025a08,
- 0x00000103, 0x641a5a0a, 0x497a5c0d, 0x492fc857,
- 0x0001fb82, 0x05d9fc9e, 0x0005f7dc, 0x59325809,
- 0x592c040c, 0x8c000518, 0x05000003, 0x412df800,
- 0x05b5f2ec, 0x592c0208, 0x82000500, 0x000000ff,
- 0xb0001db5, 0x05020005, 0x592c1a0e, 0x8c0c0506,
- 0x05000002, 0x05fdf712, 0x1c01f000, 0x4933c857,
- 0x59325809, 0x497a580d, 0x64025a0a, 0x4a025a08,
- 0x00000103, 0x59300813, 0x4807c857, 0x800409c0,
- 0x0502000a, 0x4806580b, 0x59300c02, 0x48065c0a,
- 0x0505fe15, 0x0509f968, 0x0505fe17, 0x0001fb82,
- 0x05d9fc7b, 0x0005f7dc, 0x59340200, 0x8c00050e,
- 0x05020007, 0x59300013, 0x0509f968, 0x80000d40,
- 0x05fdfe24, 0x4806580b, 0x05fdf7f0, 0x592c020c,
- 0x8c00050e, 0x05fe07f8, 0x4933c857, 0x0505f1a8,
- 0x4933c857, 0x59325809, 0x812e59c0, 0x05b0087b,
- 0x592c020e, 0x8c000502, 0x05b00878, 0x640a6006,
- 0x1c01f000, 0x5930001e, 0x800001c0, 0x050a089b,
- 0x59300008, 0x4933c857, 0x4803c857, 0x8c00050e,
- 0x05000034, 0x8c000500, 0x05000026, 0x8c00051c,
- 0x05000009, 0x84000500, 0x48026008, 0x59325809,
- 0x592c3c0c, 0x481fc857, 0x841c3d58, 0x481e5c0c,
- 0x0009f03f, 0x59325809, 0x592c3c0c, 0x841c3d58,
- 0x59300008, 0x8c00051c, 0x05fe07f3, 0x481e5c0c,
- 0x60140000, 0x40000000, 0x80000040, 0x05fe07fe,
- 0x59300008, 0x8c00051c, 0x05fe07eb, 0x592c0208,
- 0x82000500, 0x000000ff, 0xb0000588, 0x05000003,
- 0x900005a2, 0x05020003, 0x497a580f, 0x0501f002,
- 0x497a580d, 0x481e5c0c, 0x64025a0a, 0x05b5f271,
- 0x8c000524, 0x05fc07dc, 0x59325809, 0x4c000000,
- 0x592c040c, 0x8c00051c, 0x5c000000, 0x05020003,
- 0x4a026013, 0xffffffff, 0x84000524, 0x05fdf7d2,
- 0x1c01f000, 0x4933c857, 0x41780800, 0xb1380498,
- 0x05021009, 0xb1380480, 0x05001007, 0x4d2c0000,
- 0x59325809, 0x812e59c0, 0x0c020805, 0x5c025800,
- 0x0005f7dc, 0x493bc857, 0x1c01f000, 0x0010a5c7,
- 0x0010a5c7, 0x0010a5c7, 0x0010a5c7, 0x0010a5c7,
- 0x0010a5c8, 0x0010a5c7, 0x0010a5c7, 0x0010a5c7,
- 0x0010a5c7, 0x0010a5c7, 0x0010a5c7, 0x0010a5c7,
- 0x0010a5c7, 0x0010a5c7, 0x0010a5c7, 0x0010a5c7,
- 0x0010a5c7, 0x0010a5c7, 0x0010a5c7, 0x0010a5cb,
- 0x0010a5c7, 0x0010a5c7, 0x0010a5c7, 0x05b1f813,
- 0x59cc0808, 0x497a580b, 0x4807c857, 0x59300402,
- 0x48025c0a, 0x4a025a08, 0x00000103, 0x900401c0,
- 0x4802580d, 0x64025a0a, 0x800409c0, 0x00000382,
- 0x59cc0009, 0x4802580e, 0x82042500, 0x00000100,
- 0x05000002, 0x59cc200b, 0x48125810, 0x82040500,
- 0x00000200, 0x05000002, 0x59cc000a, 0x4802580f,
- 0x80100c00, 0x05ac1ff9, 0x00000382, 0x9004149d,
- 0x05001005, 0x592c0408, 0x8c00051e, 0x0500000a,
- 0x60700800, 0x4c500000, 0x4c540000, 0x91cca40c,
- 0x912cac11, 0x0501f9d4, 0x5c00a800, 0x5c00a000,
- 0x0001f382, 0x0501f982, 0x0501f1b3, 0x83380480,
- 0x00000093, 0x05ae1fe5, 0x83380480, 0x00000085,
- 0x05ac1fe2, 0x0c01f001, 0x0010a608, 0x0010a607,
- 0x0010a607, 0x0010a60d, 0x0010a607, 0x0010a607,
- 0x0010a607, 0x0010a607, 0x0010a607, 0x0010a607,
- 0x0010a607, 0x0010a607, 0x0010a607, 0x05adffd3,
- 0x64066203, 0x493a6403, 0x42000800, 0x80000040,
- 0x0005f6ab, 0x83300580, 0x00111a70, 0x05ae0fcb,
- 0x4933c857, 0x59cc1404, 0x0505fb47, 0x0500002c,
- 0x591c0203, 0x90000580, 0x05000029, 0x591c000a,
- 0x81340580, 0x05020026, 0x59cc1204, 0x82080580,
- 0x0000ffff, 0x05000007, 0x591c0202, 0x82000d80,
- 0x0000ffff, 0x05000003, 0x80080580, 0x0502001c,
- 0x4d300000, 0x4d1c0000, 0x411e6000, 0x0501f9e5,
- 0x5c023800, 0x5c026000, 0x05000013, 0x59cc0005,
- 0x8c000500, 0x05020003, 0x0501f99a, 0x0501f002,
- 0x640a3a03, 0x4a026403, 0x00000086, 0x59cc0005,
- 0x8c000500, 0x0500000c, 0x591c0416, 0x8400055a,
- 0x48023c16, 0x59300416, 0x8400055a, 0x48026416,
- 0x0501f005, 0x0501f9c2, 0x05fc07ed, 0x4a026403,
- 0x00000087, 0x4d2c0000, 0x0511ff81, 0x05d9fecc,
- 0x5c025800, 0x59340200, 0x8c00050e, 0x0500000b,
- 0x59cc1404, 0x0505fb10, 0x05000008, 0x591c0416,
- 0x8c00051a, 0x05000005, 0x4d300000, 0x411e6000,
- 0x0505f8c5, 0x5c026000, 0x1c01f000, 0x91380593,
- 0x0502000a, 0x59300403, 0x4803c857, 0x82000d80,
- 0x00000086, 0x05000015, 0x82000d80, 0x00000087,
- 0x05ae0f7e, 0x0501f011, 0x913805a7, 0x05000003,
- 0x91380594, 0x05ae0f79, 0x493bc857, 0x05edfe06,
- 0x0501fe65, 0x05f4056b, 0x4d2c0000, 0x59325809,
- 0x0001fb82, 0x59300a29, 0x90040d83, 0x05000f3d,
- 0x5c025800, 0x05f5f563, 0x4933c857, 0x0505fa2f,
- 0x05f60560, 0x0005f7dc, 0x91380593, 0x05020006,
- 0x59300403, 0x4803c857, 0x82000480, 0x00000085,
- 0x0c01f04c, 0x913805a7, 0x05020040, 0x4933c857,
- 0x05edfded, 0x59300416, 0x8c00051a, 0x05020002,
- 0x0005f7dc, 0x4d3c0000, 0x417a7800, 0x05bdfca9,
- 0x5c027800, 0x60543000, 0x41782800, 0x600c2000,
- 0x60a68000, 0x4d400000, 0x4d440000, 0x59368c03,
- 0x0505ff87, 0x5c028800, 0x5c028000, 0x42000000,
- 0x0010e454, 0x0515f94b, 0x0501fe37, 0x000407dc,
- 0x4d2c0000, 0x59325809, 0x592c0208, 0x82000500,
- 0x000000ff, 0x90000594, 0x05020f0e, 0x0509f816,
- 0x05e1fd6c, 0x4a025a08, 0x00000103, 0x59300402,
- 0x48025c0a, 0x497a580d, 0x49425a0a, 0x0001fb82,
- 0x5c025800, 0x0005f7dc, 0xb13805a1, 0x05000009,
- 0xb13805a0, 0x05000007, 0x83380580, 0x00000089,
- 0x05000004, 0x83380580, 0x0000008a, 0x05f60585,
- 0x05f1fa09, 0x05f60583, 0x59300a03, 0x9004058e,
- 0x050007bd, 0x9004058a, 0x0500003c, 0x9004058c,
- 0x0500003a, 0x05adff21, 0x91380594, 0x05fe07eb,
- 0x4933c857, 0x05edfdac, 0x59300416, 0x8c00051a,
- 0x05020002, 0x0005f7dc, 0x601a8000, 0x05fdf7cf,
- 0x0010a6d2, 0x0010a6d1, 0x0010a6d1, 0x0010a6d1,
- 0x0010a6d1, 0x0010a6d1, 0x0010a6e2, 0x0010a6d1,
- 0x0010a6d1, 0x0010a6d1, 0x0010a6d1, 0x0010a6d1,
- 0x0010a6d1, 0x05adff09, 0x4933c857, 0x0505f9cb,
- 0x0500000a, 0x643a6203, 0x59a8005e, 0x48026205,
- 0x59300416, 0x8c00051a, 0x05020003, 0x59a8005c,
- 0x48026006, 0x1c01f000, 0x59a8005c, 0x48026006,
- 0x642a6203, 0x1c01f000, 0x4933c857, 0x0505f9bb,
- 0x0500000a, 0x643a6203, 0x59a8005e, 0x48026205,
- 0x59300416, 0x8c00051a, 0x05020003, 0x59a8005c,
- 0x48026006, 0x1c01f000, 0x59a8005c, 0x48026006,
- 0x64326203, 0x1c01f000, 0x5932680a, 0x83380580,
- 0x00000089, 0x05000007, 0x83380580, 0x0000008a,
- 0x0500002c, 0x4933c857, 0x493bc857, 0x05f5f539,
- 0x4933c857, 0x59325809, 0x59300416, 0x8c00051a,
- 0x0500000b, 0x59300229, 0x90000583, 0x05ae0ed7,
- 0x640e6407, 0x59300429, 0x48026203, 0x59340200,
- 0x8c00050e, 0x0506000c, 0x1c01f000, 0x59300a29,
- 0x90040583, 0x05020007, 0x0501fdbb, 0x0500000d,
- 0x0001fb82, 0x05d9fab6, 0x497a6009, 0x0501f009,
- 0x59300229, 0x90000581, 0x05020006, 0x59300c18,
- 0x900405b9, 0x05000019, 0x900405b5, 0x05000017,
- 0x59cc0c07, 0x4806641b, 0x59cc0a07, 0x4806621b,
- 0x59300203, 0x48026429, 0x64466203, 0x05f5f4ad,
- 0x4933c857, 0x59300416, 0x8c00051a, 0x000607dc,
- 0x59300229, 0x90000581, 0x0502003f, 0x59300c18,
- 0x900405b5, 0x05000005, 0x9004059e, 0x05000003,
- 0x900405b9, 0x05020038, 0x4933c857, 0x4c5c0000,
- 0x4c600000, 0x4d1c0000, 0x4130b800, 0x4004c000,
- 0x0505f9de, 0x0502002b, 0x906005b5, 0x05020004,
- 0x591c0c16, 0x8c040502, 0x05000026, 0x05f5fcc4,
- 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,
- 0x0505f92f, 0x42000800, 0x80000040, 0x0005feab,
- 0x405e6000, 0x5c023800, 0x5c00c000, 0x5c00b800,
- 0x0005f7dc, 0x0501fd60, 0x05000008, 0x4d2c0000,
- 0x59325809, 0x0001fb82, 0x59300229, 0x90000583,
- 0x05d80a57, 0x5c025800, 0x0005f7dc, 0x4803c856,
- 0x4c5c0000, 0x4c600000, 0x4c640000, 0x4c500000,
- 0x4c540000, 0x412cb800, 0x4d2c0000, 0x6004c000,
- 0x82040480, 0x00000101, 0x05001002, 0x60000802,
- 0x4004c800, 0x60700800, 0x91cca40c, 0x912cac11,
- 0x0501f83d, 0x9064cc9c, 0x592e5801, 0x812e59c0,
- 0x05b20a13, 0x05b1f9f9, 0x05000011, 0x8060c000,
- 0x4a025808, 0x00000110, 0x492cb801, 0x90640cbd,
- 0x05021005, 0x40640800, 0x912cac09, 0x0501f82e,
- 0x0501f007, 0x9064ccbc, 0x60f00800, 0x412cb800,
- 0x912cac09, 0x0501f828, 0x05fdf7ef, 0x5c025800,
- 0x8460c1c0, 0x9060c543, 0x48625a08, 0x5c00a800,
- 0x5c00a000, 0x5c00c800, 0x5c00c000, 0x5c00b800,
- 0x1c01f000, 0x492fc857, 0x812e59c0, 0x05000012,
- 0x592c2802, 0x4d2c0000, 0x4c3c0000, 0x592c7801,
- 0x803c79c0, 0x05000009, 0x497a5801, 0x4c140000,
- 0x4c3c0000, 0x0001fb82, 0x5c025800, 0x5c002800,
- 0x48165802, 0x05fdf7f6, 0x5c007800, 0x0001fb82,
- 0x5c025800, 0x1c01f000, 0x4803c856, 0x4c580000,
- 0x90040403, 0x8000b104, 0x0515f8e9, 0x5c00b000,
- 0x1c01f000, 0x4803c856, 0x4c580000, 0x90040c03,
- 0x8004b104, 0x0515f8e2, 0x5c00b000, 0x1c01f000,
- 0x591c0c07, 0x90040583, 0x05000005, 0x90040582,
- 0x05000003, 0x9004058a, 0x05020022, 0x4d300000,
- 0x4d2c0000, 0x411e6000, 0x59325809, 0x0501fcf6,
- 0x05000019, 0x59300c07, 0x9004058a, 0x0500001a,
- 0x90040583, 0x05020007, 0x592c0a08, 0x82040d00,
- 0x000000ff, 0x90040d94, 0x05000002, 0x640e6229,
- 0x0501f814, 0x4d400000, 0x604e8000, 0x592c0a0c,
- 0x84040d54, 0x05d9fe46, 0x5c028000, 0x0505fb76,
- 0x0505fec9, 0x0001fb82, 0x59300229, 0x90000583,
- 0x05000dbc, 0x05f5fbe3, 0x5c025800, 0x5c026000,
- 0x1c01f000, 0x644e5a0a, 0x642a6229, 0x05fdf7f4,
- 0x592c040c, 0x8c000512, 0x05000008, 0x84000512,
- 0x48025c0c, 0x4d2c0000, 0x592e580d, 0x05b1f9a0,
- 0x5c025800, 0x497a580d, 0x1c01f000, 0x59cc0005,
- 0x8c000500, 0x0502000a, 0x591c0407, 0x90000582,
- 0x05020007, 0x591c0c03, 0x82040580, 0x00000085,
- 0x05000003, 0x82040580, 0x0000008b, 0x1c01f000,
- 0x4933c857, 0x4d3c0000, 0x600a7800, 0x59300407,
- 0x90000c92, 0x05ae1dc9, 0x0c01f808, 0x5c027800,
- 0x1c01f000, 0x4933c857, 0x59300407, 0x90000c92,
- 0x05ae1dc2, 0x0c01f001, 0x0010a830, 0x0010a82d,
- 0x0010a82d, 0x0010a863, 0x0010a82c, 0x0010a82d,
- 0x0010a842, 0x0010a82d, 0x0010a82c, 0x0010a82c,
- 0x0010b73f, 0x0010a82d, 0x0010a82d, 0x0010a82c,
- 0x0010a82c, 0x0010a82c, 0x0010a94b, 0x0010a82d,
- 0x05adfdae, 0x4803c856, 0x80000580, 0x1c01f000,
- 0x4803c856, 0x8d3c0502, 0x0502000f, 0x0501fc96,
- 0x0500000b, 0x59325809, 0x0505fe7b, 0x41780800,
- 0x4d400000, 0x60168000, 0x05d9fdf1, 0x5c028000,
- 0x0505fb21, 0x0501fdec, 0x0001fb82, 0x05f5fb91,
- 0x90000541, 0x1c01f000, 0x4933c857, 0x0501fc86,
- 0x05000008, 0x59300809, 0x5804020c, 0x8c000512,
- 0x05000004, 0x4d400000, 0x60328000, 0x0501f00f,
- 0x05d9f86c, 0x0500000b, 0x59300416, 0x84000556,
- 0x48026416, 0x0501f812, 0x4df00000, 0x59300416,
- 0x84000516, 0x48026416, 0x5c03e000, 0x1c01f000,
- 0x4d400000, 0x60428000, 0x050dfcc7, 0x641a6407,
- 0x641e6203, 0x9140058c, 0x05020003, 0x641a6203,
- 0x497a6006, 0x5c028000, 0x1c01f000, 0x4933c857,
- 0x05edfcaf, 0x4df00000, 0x0501f8d5, 0x90000c91,
- 0x05ae1d72, 0x0c01f001, 0x0010a87c, 0x0010a906,
- 0x0010a891, 0x0010a914, 0x0010a903, 0x0010a87b,
- 0x0010a87c, 0x0010a87c, 0x0010a87f, 0x0010a87c,
- 0x0010a87c, 0x0010a87c, 0x0010a87c, 0x0010a891,
- 0x0010a87f, 0x0010a87c, 0x0010a87f, 0x05adfd5f,
- 0x5c03e000, 0x05ec0c87, 0x05fdf7af, 0x5c03e000,
- 0x05ec0c84, 0x59300407, 0x90000583, 0x05fe07ad,
- 0x59300203, 0x9000058d, 0x05fc07aa, 0x59300008,
- 0x8c000500, 0x05b20fc0, 0x8d3c0502, 0x05fe07a5,
- 0x4d340000, 0x5932680a, 0x05d9f939, 0x5c026800,
- 0x05fdf7a0, 0x0509f8cc, 0x59300008, 0x8c000500,
- 0x05b20fb5, 0x0505fe06, 0x59300004, 0x8400055c,
- 0x48026004, 0x4203e000, 0xb0800000, 0x6023f800,
- 0x05edfc68, 0x59300407, 0x90000586, 0x0500005e,
- 0x8d3c0502, 0x05020060, 0x497a6229, 0x59300203,
- 0x9000058d, 0x05000002, 0x640e6229, 0x0501fc22,
- 0x05020004, 0x8d3c0500, 0x05000049, 0x0501f041,
- 0x4d2c0000, 0x4d400000, 0x59325809, 0x0501fd7a,
- 0x592c040c, 0x8c000512, 0x05000008, 0x4d2c0000,
- 0x84000512, 0x48025c0c, 0x592c080d, 0x40065800,
- 0x05b1f8e3, 0x5c025800, 0x4d400000, 0x60168000,
- 0x592c0a0c, 0x82040500, 0x00000084, 0x0500000c,
- 0x600a8000, 0x592c0208, 0x82000500, 0x000000ff,
- 0xb80004b5, 0x05020009, 0x8c040504, 0x05000007,
- 0x83428540, 0x00000200, 0x0501f004, 0x8c040512,
- 0x05000002, 0x60328000, 0x592c0208, 0x82000500,
- 0x000000ff, 0xb00005b5, 0x05020005, 0x592c020e,
- 0x8c000506, 0x05000002, 0x853e7d40, 0x05d9fd54,
- 0x0505fdd9, 0x5c028000, 0x0505fa83, 0x8d3c0500,
- 0x05020003, 0x0515f814, 0x05020003, 0x0001fb82,
- 0x497a6009, 0x5c028000, 0x5c025800, 0x8d3c0500,
- 0x0500000a, 0x59300a29, 0x90040d83, 0x05020005,
- 0x4d340000, 0x5932680a, 0x05d9f8dd, 0x5c026800,
- 0x05f5fae4, 0x0501f010, 0x0515f803, 0x05020004,
- 0x59300a29, 0x90040d83, 0x05000cb6, 0x640a6407,
- 0x42000800, 0x80004040, 0x0505fda5, 0x4a026003,
- 0x00850009, 0x0005feab, 0x4203e000, 0xb0800000,
- 0x6023f800, 0x5c03e000, 0x05ee0c15, 0x90000541,
- 0x1c01f000, 0x0505fdb0, 0x05fdf7fb, 0x05edfc01,
- 0x05b1ff45, 0x05fdf78c, 0x598c000b, 0x81300580,
- 0x05020003, 0x05edff07, 0x05020022, 0x05edf8ab,
- 0x05020005, 0x59300c03, 0xb0040580, 0x05fc0770,
- 0x05fdf781, 0x05edfb1b, 0x0500001a, 0x05adfcc7,
- 0x0501f81c, 0x05020003, 0x05edfeca, 0x05020015,
- 0x05e9ffbe, 0x0500000f, 0x05edfb12, 0x05000011,
- 0x59300407, 0x90000583, 0x05ae0cbc, 0x59300004,
- 0x9000051f, 0x90000585, 0x05ae0cb8, 0x58d400ec,
- 0x82000500, 0x00000f00, 0x05fe076b, 0x05adfcb3,
- 0x59300c03, 0xb0040580, 0x05fc0755, 0x05fdf766,
- 0x59300203, 0x90000c91, 0x05ae1cac, 0x0c01f73b,
- 0x417a3000, 0x60df2160, 0x59900005, 0x81300580,
- 0x05000006, 0x91932410, 0x811a3000, 0x91180485,
- 0x05fc17fa, 0x90000541, 0x1c01f000, 0x59300004,
- 0x8c00053e, 0x0500000c, 0x8c00050c, 0x0502000a,
- 0x8c000516, 0x05020004, 0x90000d1f, 0x90040585,
- 0x05020003, 0x600c0000, 0x0501f004, 0x60040000,
- 0x0501f002, 0x59300203, 0x1c01f000, 0x4933c857,
- 0x05edfbc7, 0x4df00000, 0x59300203, 0x90000c91,
- 0x05ae1c8a, 0x0c01f001, 0x0010a964, 0x0010a975,
- 0x0010a967, 0x0010a963, 0x0010a963, 0x0010a963,
- 0x0010a963, 0x0010a963, 0x0010a963, 0x0010a963,
- 0x0010a963, 0x0010a963, 0x0010a963, 0x0010a963,
- 0x0010a967, 0x0010a963, 0x0010a963, 0x05adfc77,
- 0x5c03e000, 0x05ec0b9f, 0x05fdf6c7, 0x5c03e000,
- 0x05ec0b9c, 0x4d2c0000, 0x05b5fd9f, 0x59325809,
- 0x0501fb5d, 0x05ac0c6d, 0x64165a0a, 0x0001fb82,
- 0x05d9fb00, 0x05f5fa5f, 0x5c025800, 0x90000541,
- 0x1c01f000, 0x598c000b, 0x81300580, 0x05020014,
- 0x59300004, 0x8c000520, 0x05000004, 0x84000520,
- 0x48026004, 0x0501f014, 0x42001000, 0x0010e387,
- 0x50081000, 0x58080002, 0x82000580, 0x00000100,
- 0x05000005, 0x05b5fd84, 0x05edf830, 0x05ae0c53,
- 0x05fdf7df, 0x05edfe87, 0x0502000a, 0x59300004,
- 0x8c000520, 0x05000004, 0x84000520, 0x48026004,
- 0x05fdf7d7, 0x05edf825, 0x05fc07d5, 0x05adfc47,
- 0x59300203, 0x90000c91, 0x05ae1c44, 0x0c01f7bb,
- 0x4d340000, 0x4d240000, 0x5932481d, 0x5932680a,
- 0x59300407, 0x4933c857, 0x4803c857, 0x90000c92,
- 0x05ae1c3a, 0x0c01f804, 0x5c024800, 0x5c026800,
- 0x1c01f000, 0x0010a9ba, 0x0010aab5, 0x0010ac24,
- 0x0010a9c1, 0x0010ac09, 0x0010ac20, 0x0010c515,
- 0x0010aa99, 0x0010ac05, 0x0010a9b7, 0x0010ac80,
- 0x0010a9b7, 0x0010a9b7, 0x0010a9b7, 0x0010a9b7,
- 0x00020fdc, 0x0010b4cc, 0x0010b4cc, 0x05adfc23,
- 0x0501fc12, 0x05f8010a, 0x1c01f000, 0x05edfb58,
- 0x05edfaad, 0x05edfb47, 0x0005f7dc, 0x64066006,
- 0x1c01f000, 0x42000000, 0x0010e463, 0x0511fe19,
- 0x4d2c0000, 0x4d400000, 0x417a5800, 0x0501fb02,
- 0x05000007, 0x0505ff94, 0x59325809, 0x592c020c,
- 0x8400054c, 0x48025a0c, 0x601a8000, 0x05edfb44,
- 0x05fdff6b, 0x4803c857, 0x90000c91, 0x05ae1c07,
- 0x0c01f805, 0x05edfb2f, 0x5c028000, 0x5c025800,
- 0x1c01f000, 0x0010aa98, 0x0010a9eb, 0x0010a9f7,
- 0x0010aa3a, 0x0010aa68, 0x0010a9ea, 0x0010a9ba,
- 0x0010a9ba, 0x0010a9ba, 0x0010a9ea, 0x0010a9ea,
- 0x0010a9ea, 0x0010a9ea, 0x0010a9f7, 0x0010a9eb,
- 0x0010a9ea, 0x0010aa3a, 0x05adfbf0, 0x598c000b,
- 0x4803c857, 0x81300580, 0x05020003, 0x05edfe21,
- 0x0502005a, 0x05e9ffc5, 0x0500005d, 0x4803c856,
- 0x05edfa38, 0x05000055, 0x05adfbe4, 0x497a6229,
- 0x812e59c0, 0x05ac0be1, 0x592c0a08, 0x4807c857,
- 0x82040d00, 0x000000ff, 0x90040594, 0x05000018,
- 0xb00405b5, 0x05020014, 0x59300008, 0x8c000500,
- 0x05020064, 0x592c0a0e, 0x8c040506, 0x0500000e,
- 0x592c0c0c, 0x4c040000, 0x592c0a0c, 0x05d9fc20,
+ 0x0501f019, 0x59300013, 0x0509fa9a, 0x59341200,
+ 0x497a6205, 0x8c08050e, 0x0502007e, 0x4807c857,
+ 0x4806580e, 0x80000d40, 0x05fe0eee, 0x592c020a,
+ 0x90000595, 0x0500001e, 0x59300402, 0x48025c0a,
+ 0x4806580b, 0x4a025a08, 0x00000103, 0x4c040000,
+ 0x592c0a0c, 0x8c040512, 0x05000002, 0x64325a0a,
+ 0x5c000800, 0x4c040000, 0x4c0c0000, 0x4c100000,
+ 0x0505ff23, 0x0509fa76, 0x5c002000, 0x5c001800,
+ 0x5c000800, 0x8c100512, 0x05020026, 0x4c0c0000,
+ 0x0505ff1f, 0x0001fba8, 0x05d9faa2, 0x5c001800,
+ 0x8c0c0518, 0x00080010, 0x0505f272, 0x0501f907,
+ 0x05fe07e2, 0x8c100512, 0x05020006, 0x59300221,
+ 0x48025a0d, 0x84102556, 0x48125c0c, 0x05fdf7db,
+ 0x592c000d, 0x80006d40, 0x05fc07d8, 0x59300221,
+ 0x48006a0d, 0x05fdf7f8, 0x4813c857, 0x8c100518,
+ 0x05000046, 0x41780800, 0x592c1c0d, 0x820c0580,
+ 0x00001000, 0x05fc07a8, 0x8c100512, 0x05fc07a6,
+ 0x592c780d, 0x583c080e, 0x583c1c0d, 0x05fdf7a2,
+ 0x4807c857, 0x592c780d, 0x59300402, 0x592c1408,
+ 0x8c08051e, 0x0502000e, 0x592c120a, 0x48007c0a,
+ 0x4804780b, 0x48087a0a, 0x84102512, 0x48107c0c,
+ 0x4c0c0000, 0x4c3c0000, 0x05adffb8, 0x5c007800,
+ 0x403e5800, 0x0501fafa, 0x05fdf7cc, 0x48025c0a,
+ 0x4806580b, 0x583c0810, 0x583c000f, 0x80040c00,
+ 0x9004149d, 0x05001005, 0x583c1001, 0x480a5801,
+ 0x49787801, 0x60700800, 0x90040c14, 0x4c0c0000,
+ 0x4c500000, 0x4c540000, 0x903ca40c, 0x912cac0c,
+ 0x4c100000, 0x4c3c0000, 0x0501fb01, 0x5c007800,
+ 0x5c002000, 0x5c00a800, 0x5c00a000, 0x84102512,
+ 0x48125c0c, 0x403e5800, 0x05adff98, 0x0505fec8,
+ 0x42034000, 0x00111c71, 0x59a1d806, 0x80edd9c0,
+ 0x05ac0bd5, 0x48efc857, 0x58ec0009, 0x4803c857,
+ 0x0801f800, 0x05fdf7a5, 0x4933c857, 0x1c01f000,
+ 0x59301416, 0x480bc857, 0x8c08051c, 0x0502000e,
+ 0x80000540, 0x4803c857, 0x05fc077d, 0x80042c80,
+ 0x05fe177b, 0x8c080514, 0x05020005, 0x592c0813,
+ 0x4807c857, 0x80040480, 0x48026018, 0x8408155c,
+ 0x480a6416, 0x59301008, 0x8408151e, 0x480a6008,
+ 0x4c100000, 0x4c3c0000, 0x4d400000, 0x592e820a,
+ 0x64065a0a, 0x0505fea2, 0x49425a0a, 0x5c028000,
+ 0x5c007800, 0x5c002000, 0x497a580d, 0x8c100512,
+ 0x05000005, 0x4d2c0000, 0x403e5800, 0x05adff67,
+ 0x5c025800, 0x82102500, 0xffffedff, 0x48125c0c,
+ 0x59301006, 0x800811c0, 0x0504022a, 0x59a80061,
+ 0x80080480, 0x05061227, 0x0509f9e1, 0x05e1fd19,
+ 0x4a025a08, 0x00000103, 0x641a5a0a, 0x497a5c0d,
+ 0x492fc857, 0x0001fba8, 0x05d9fa0e, 0x0009f010,
+ 0x59325809, 0x592c040c, 0x8c000518, 0x05000003,
+ 0x412df800, 0x05b1f635, 0x592c0208, 0x82000500,
+ 0x000000ff, 0xb0001db5, 0x05020005, 0x592c1a0e,
+ 0x8c0c0506, 0x05000002, 0x05fdf701, 0x1c01f000,
+ 0x4933c857, 0x59325809, 0x497a580d, 0x64025a0a,
+ 0x4a025a08, 0x00000103, 0x59300813, 0x4807c857,
+ 0x800409c0, 0x0502000a, 0x4806580b, 0x59300c02,
+ 0x48065c0a, 0x0505fe66, 0x0509f9b9, 0x0505fe68,
+ 0x0001fba8, 0x05d9f9eb, 0x0009f010, 0x59340200,
+ 0x8c00050e, 0x05020007, 0x59300013, 0x0509f9b9,
+ 0x80000d40, 0x05fdfe13, 0x4806580b, 0x05fdf7f0,
+ 0x592c020c, 0x8c00050e, 0x05fe07f8, 0x4933c857,
+ 0x0505f1ec, 0x4933c857, 0x59325809, 0x812e59c0,
+ 0x05ac0b61, 0x592c020e, 0x8c000502, 0x05ac0b5e,
+ 0x640a6006, 0x1c01f000, 0x5930001e, 0x800001c0,
+ 0x050a08ed, 0x59300008, 0x4933c857, 0x4803c857,
+ 0x8c00050e, 0x05000034, 0x8c000500, 0x05000026,
+ 0x8c00051c, 0x05000009, 0x84000500, 0x48026008,
+ 0x59325809, 0x592c3c0c, 0x481fc857, 0x841c3d58,
+ 0x481e5c0c, 0x0009f078, 0x59325809, 0x592c3c0c,
+ 0x841c3d58, 0x59300008, 0x8c00051c, 0x05fe07f3,
+ 0x481e5c0c, 0x60140000, 0x40000000, 0x80000040,
+ 0x05fe07fe, 0x59300008, 0x8c00051c, 0x05fe07eb,
+ 0x592c0208, 0x82000500, 0x000000ff, 0xb0000588,
+ 0x05000003, 0x900005a2, 0x05020003, 0x497a580f,
+ 0x0501f002, 0x497a580d, 0x481e5c0c, 0x64025a0a,
+ 0x05b1f5ba, 0x8c000524, 0x05fc07dc, 0x59325809,
+ 0x4c000000, 0x592c040c, 0x8c00051c, 0x5c000000,
+ 0x05020003, 0x4a026013, 0xffffffff, 0x84000524,
+ 0x05fdf7d2, 0x1c01f000, 0x59a80007, 0x8c00050a,
+ 0x05000019, 0x59300008, 0x82000500, 0x04800800,
+ 0x82000580, 0x00000800, 0x05020013, 0x59300014,
+ 0x80000540, 0x05000010, 0x59300009, 0x80006d40,
+ 0x0500000d, 0x58340001, 0x80006d40, 0x0500000a,
+ 0x58340208, 0x82000500, 0x000000ff, 0xb000058a,
+ 0x05020005, 0x58340409, 0x90000503, 0x90000580,
+ 0x1c01f000, 0x90000541, 0x05fdf7fe, 0x4933c857,
+ 0x41780800, 0xb1380498, 0x05021009, 0xb1380480,
+ 0x05001007, 0x4d2c0000, 0x59325809, 0x812e59c0,
+ 0x0c020805, 0x5c025800, 0x0009f010, 0x493bc857,
+ 0x1c01f000, 0x0010ab39, 0x0010ab39, 0x0010ab39,
+ 0x0010ab39, 0x0010ab39, 0x0010ab3a, 0x0010ab39,
+ 0x0010ab39, 0x0010ab39, 0x0010ab39, 0x0010ab39,
+ 0x0010ab39, 0x0010ab39, 0x0010ab39, 0x0010ab39,
+ 0x0010ab39, 0x0010ab39, 0x0010ab39, 0x0010ab39,
+ 0x0010ab39, 0x0010ab3d, 0x0010ab39, 0x0010ab39,
+ 0x0010ab39, 0x05adfadc, 0x59cc0808, 0x497a580b,
+ 0x4807c857, 0x59300402, 0x48025c0a, 0x4a025a08,
+ 0x00000103, 0x900401c0, 0x4802580d, 0x64025a0a,
+ 0x800409c0, 0x000003a8, 0x59cc0009, 0x4802580e,
+ 0x82042500, 0x00000100, 0x05000002, 0x59cc200b,
+ 0x48125810, 0x82040500, 0x00000200, 0x05000002,
+ 0x59cc000a, 0x4802580f, 0x80100c00, 0x05ac1ac2,
+ 0x000003a8, 0x9004149d, 0x05001005, 0x592c0408,
+ 0x8c00051e, 0x0500000a, 0x60700800, 0x4c500000,
+ 0x4c540000, 0x91cca40c, 0x912cac11, 0x0501f9d4,
+ 0x5c00a800, 0x5c00a000, 0x0001f3a8, 0x0501f982,
+ 0x0501f1b3, 0x83380480, 0x00000093, 0x05ae1aae,
+ 0x83380480, 0x00000085, 0x05ac1aab, 0x0c01f001,
+ 0x0010ab7a, 0x0010ab79, 0x0010ab79, 0x0010ab7f,
+ 0x0010ab79, 0x0010ab79, 0x0010ab79, 0x0010ab79,
+ 0x0010ab79, 0x0010ab79, 0x0010ab79, 0x0010ab79,
+ 0x0010ab79, 0x05adfa9c, 0x64066203, 0x493a6403,
+ 0x42000800, 0x80000040, 0x0005f6e2, 0x83300580,
+ 0x00115a14, 0x05ae0a94, 0x4933c857, 0x59cc1404,
+ 0x0505fb71, 0x0500002c, 0x591c0203, 0x90000580,
+ 0x05000029, 0x591c000a, 0x81340580, 0x05020026,
+ 0x59cc1204, 0x82080580, 0x0000ffff, 0x05000007,
+ 0x591c0202, 0x82000d80, 0x0000ffff, 0x05000003,
+ 0x80080580, 0x0502001c, 0x4d300000, 0x4d1c0000,
+ 0x411e6000, 0x0501f9e5, 0x5c023800, 0x5c026000,
+ 0x05000013, 0x59cc0005, 0x8c000500, 0x05020003,
+ 0x0501f99a, 0x0501f002, 0x640a3a03, 0x4a026403,
+ 0x00000086, 0x59cc0005, 0x8c000500, 0x0500000c,
+ 0x591c0416, 0x8400055a, 0x48023c16, 0x59300416,
+ 0x8400055a, 0x48026416, 0x0501f005, 0x0501f9c2,
+ 0x05fc07ed, 0x4a026403, 0x00000087, 0x4d2c0000,
+ 0x0515f96e, 0x05d9fc2f, 0x5c025800, 0x59340200,
+ 0x8c00050e, 0x0500000b, 0x59cc1404, 0x0505fb3a,
+ 0x05000008, 0x591c0416, 0x8c00051a, 0x05000005,
+ 0x4d300000, 0x411e6000, 0x0505f8ec, 0x5c026000,
+ 0x1c01f000, 0x91380593, 0x0502000a, 0x59300403,
+ 0x4803c857, 0x82000d80, 0x00000086, 0x05000015,
+ 0x82000d80, 0x00000087, 0x05ae0a47, 0x0501f011,
+ 0x913805a7, 0x05000003, 0x91380594, 0x05ae0a42,
+ 0x493bc857, 0x05edfd52, 0x0501fe7c, 0x05f4050e,
+ 0x4d2c0000, 0x59325809, 0x0001fba8, 0x59300a29,
+ 0x90040d83, 0x05000f64, 0x5c025800, 0x05f5f506,
+ 0x4933c857, 0x0505fa55, 0x05f60503, 0x0009f010,
+ 0x91380593, 0x05020006, 0x59300403, 0x4803c857,
+ 0x82000480, 0x00000085, 0x0c01f04c, 0x913805a7,
+ 0x05020040, 0x4933c857, 0x05edfd39, 0x59300416,
+ 0x8c00051a, 0x05020002, 0x0009f010, 0x4d3c0000,
+ 0x417a7800, 0x05b9ffce, 0x5c027800, 0x60543000,
+ 0x41782800, 0x600c2000, 0x60a68000, 0x4d400000,
+ 0x4d440000, 0x59368c03, 0x0505ffbc, 0x5c028800,
+ 0x5c028000, 0x42000000, 0x001123f8, 0x0515fb54,
+ 0x0501fe4e, 0x00080010, 0x4d2c0000, 0x59325809,
+ 0x592c0208, 0x82000500, 0x000000ff, 0x90000594,
+ 0x05020f35, 0x0509f84a, 0x05e1fb82, 0x4a025a08,
+ 0x00000103, 0x59300402, 0x48025c0a, 0x497a580d,
+ 0x49425a0a, 0x0001fba8, 0x5c025800, 0x0009f010,
+ 0xb13805a1, 0x05000009, 0xb13805a0, 0x05000007,
+ 0x83380580, 0x00000089, 0x05000004, 0x83380580,
+ 0x0000008a, 0x05f60545, 0x05f1f955, 0x05f60543,
+ 0x59300a03, 0x9004058e, 0x050007e4, 0x9004058a,
+ 0x0500003c, 0x9004058c, 0x0500003a, 0x05adf9ea,
+ 0x91380594, 0x05fe07eb, 0x4933c857, 0x05edfcf8,
+ 0x59300416, 0x8c00051a, 0x05020002, 0x0009f010,
+ 0x601a8000, 0x05fdf7cf, 0x0010ac44, 0x0010ac43,
+ 0x0010ac43, 0x0010ac43, 0x0010ac43, 0x0010ac43,
+ 0x0010ac54, 0x0010ac43, 0x0010ac43, 0x0010ac43,
+ 0x0010ac43, 0x0010ac43, 0x0010ac43, 0x05adf9d2,
+ 0x4933c857, 0x0505f9f1, 0x0500000a, 0x643a6203,
+ 0x59a80061, 0x48026205, 0x59300416, 0x8c00051a,
+ 0x05020003, 0x59a8005f, 0x48026006, 0x1c01f000,
+ 0x59a8005f, 0x48026006, 0x642a6203, 0x1c01f000,
+ 0x4933c857, 0x0505f9e1, 0x0500000a, 0x643a6203,
+ 0x59a80061, 0x48026205, 0x59300416, 0x8c00051a,
+ 0x05020003, 0x59a8005f, 0x48026006, 0x1c01f000,
+ 0x59a8005f, 0x48026006, 0x64326203, 0x1c01f000,
+ 0x5932680a, 0x83380580, 0x00000089, 0x05000007,
+ 0x83380580, 0x0000008a, 0x0500002c, 0x4933c857,
+ 0x493bc857, 0x05f5f4f9, 0x4933c857, 0x59325809,
+ 0x59300416, 0x8c00051a, 0x0500000b, 0x59300229,
+ 0x90000583, 0x05ae09a0, 0x640e6407, 0x59300429,
+ 0x48026203, 0x59340200, 0x8c00050e, 0x05060033,
+ 0x1c01f000, 0x59300a29, 0x90040583, 0x05020007,
+ 0x0501fdd2, 0x0500000d, 0x0001fba8, 0x05d9f809,
+ 0x497a6009, 0x0501f009, 0x59300229, 0x90000581,
+ 0x05020006, 0x59300c18, 0x900405b9, 0x05000019,
+ 0x900405b5, 0x05000017, 0x59cc0c07, 0x4806641b,
+ 0x59cc0a07, 0x4806621b, 0x59300203, 0x48026429,
+ 0x64466203, 0x05f5f450, 0x4933c857, 0x59300416,
+ 0x8c00051a, 0x000a0010, 0x59300229, 0x90000581,
+ 0x0502003f, 0x59300c18, 0x900405b5, 0x05000005,
+ 0x9004059e, 0x05000003, 0x900405b9, 0x05020038,
+ 0x4933c857, 0x4c5c0000, 0x4c600000, 0x4d1c0000,
+ 0x4130b800, 0x4004c000, 0x0505fa04, 0x0502002b,
+ 0x906005b5, 0x05020004, 0x591c0c16, 0x8c040502,
+ 0x05000026, 0x05f5fc67, 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, 0x0505f955, 0x42000800,
+ 0x80000040, 0x0005fee2, 0x405e6000, 0x5c023800,
+ 0x5c00c000, 0x5c00b800, 0x0009f010, 0x0501fd77,
+ 0x05000008, 0x4d2c0000, 0x59325809, 0x0001fba8,
+ 0x59300229, 0x90000583, 0x05d40faa, 0x5c025800,
+ 0x0009f010, 0x4803c856, 0x4c5c0000, 0x4c600000,
+ 0x4c640000, 0x4c500000, 0x4c540000, 0x412cb800,
+ 0x4d2c0000, 0x6004c000, 0x82040480, 0x00000101,
+ 0x05001002, 0x60000802, 0x4004c800, 0x60700800,
+ 0x91cca40c, 0x912cac11, 0x0501f83d, 0x9064cc9c,
+ 0x592e5801, 0x812e59c0, 0x05ae0cd8, 0x05adfcbe,
+ 0x05000011, 0x8060c000, 0x4a025808, 0x00000110,
+ 0x492cb801, 0x90640cbd, 0x05021005, 0x40640800,
+ 0x912cac09, 0x0501f82e, 0x0501f007, 0x9064ccbc,
+ 0x60f00800, 0x412cb800, 0x912cac09, 0x0501f828,
+ 0x05fdf7ef, 0x5c025800, 0x8460c1c0, 0x9060c543,
+ 0x48625a08, 0x5c00a800, 0x5c00a000, 0x5c00c800,
+ 0x5c00c000, 0x5c00b800, 0x1c01f000, 0x492fc857,
+ 0x812e59c0, 0x05000012, 0x592c2802, 0x4d2c0000,
+ 0x4c3c0000, 0x592c7801, 0x803c79c0, 0x05000009,
+ 0x497a5801, 0x4c140000, 0x4c3c0000, 0x0001fba8,
+ 0x5c025800, 0x5c002800, 0x48165802, 0x05fdf7f6,
+ 0x5c007800, 0x0001fba8, 0x5c025800, 0x1c01f000,
+ 0x4803c856, 0x4c580000, 0x90040403, 0x8000b104,
+ 0x0515faf2, 0x5c00b000, 0x1c01f000, 0x4803c856,
+ 0x4c580000, 0x90040c03, 0x8004b104, 0x0009f9cf,
+ 0x5c00b000, 0x1c01f000, 0x591c0c07, 0x90040583,
+ 0x05000005, 0x90040582, 0x05000003, 0x9004058a,
+ 0x05020022, 0x4d300000, 0x4d2c0000, 0x411e6000,
+ 0x59325809, 0x0501fd0d, 0x05000019, 0x59300c07,
+ 0x9004058a, 0x0500001a, 0x90040583, 0x05020007,
+ 0x592c0a08, 0x82040d00, 0x000000ff, 0x90040d94,
+ 0x05000002, 0x640e6229, 0x0501f814, 0x4d400000,
+ 0x604e8000, 0x592c0a0c, 0x84040d54, 0x05d9fbb8,
+ 0x5c028000, 0x0505fbaa, 0x0505fefd, 0x0001fba8,
+ 0x59300229, 0x90000583, 0x05000de3, 0x05f5fb86,
+ 0x5c025800, 0x5c026000, 0x1c01f000, 0x644e5a0a,
+ 0x642a6229, 0x05fdf7f4, 0x592c040c, 0x8c000512,
+ 0x05000008, 0x84000512, 0x48025c0c, 0x4d2c0000,
+ 0x592e580d, 0x05adfc65, 0x5c025800, 0x497a580d,
+ 0x1c01f000, 0x59cc0005, 0x8c000500, 0x0502000a,
+ 0x591c0407, 0x90000582, 0x05020007, 0x591c0c03,
+ 0x82040580, 0x00000085, 0x05000003, 0x82040580,
+ 0x0000008b, 0x1c01f000, 0x4933c857, 0x4d3c0000,
+ 0x600a7800, 0x59300407, 0x90000c92, 0x05ae1892,
+ 0x0c01f808, 0x5c027800, 0x1c01f000, 0x4933c857,
+ 0x59300407, 0x90000c92, 0x05ae188b, 0x0c01f001,
+ 0x0010ada2, 0x0010ad9f, 0x0010ad9f, 0x0010add5,
+ 0x0010ad9f, 0x0010ad9f, 0x0010adb4, 0x0010ad9f,
+ 0x0010ad9e, 0x0010ad9e, 0x0010bcf0, 0x0010ad9f,
+ 0x0010ad9f, 0x0010ad9e, 0x0010ad9e, 0x0010ad9e,
+ 0x0010aec5, 0x0010ad9f, 0x05adf877, 0x4803c856,
+ 0x80000580, 0x1c01f000, 0x4803c856, 0x8d3c0502,
+ 0x0502000f, 0x0501fcad, 0x0500000b, 0x59325809,
+ 0x0505feaf, 0x41780800, 0x4d400000, 0x60168000,
+ 0x05d9fb63, 0x5c028000, 0x0505fb55, 0x0501fe13,
+ 0x0001fba8, 0x05f5fb34, 0x90000541, 0x1c01f000,
+ 0x4933c857, 0x0501fc9d, 0x05000008, 0x59300809,
+ 0x5804020c, 0x8c000512, 0x05000004, 0x4d400000,
+ 0x60328000, 0x0501f00f, 0x05d5fd6c, 0x0500000b,
+ 0x59300416, 0x84000556, 0x48026416, 0x0501f812,
+ 0x4df00000, 0x59300416, 0x84000516, 0x48026416,
+ 0x5c03e000, 0x1c01f000, 0x4d400000, 0x60428000,
+ 0x050dfe52, 0x641a6407, 0x641e6203, 0x9140058c,
+ 0x05020003, 0x641a6203, 0x497a6006, 0x5c028000,
+ 0x1c01f000, 0x4933c857, 0x05edfbfb, 0x4df00000,
+ 0x0501f8dd, 0x90000c91, 0x05ae183b, 0x0c01f001,
+ 0x0010adee, 0x0010ae78, 0x0010ae03, 0x0010ae86,
+ 0x0010ae75, 0x0010aded, 0x0010adee, 0x0010adee,
+ 0x0010adf1, 0x0010adee, 0x0010adee, 0x0010adee,
+ 0x0010adee, 0x0010ae03, 0x0010adf1, 0x0010adee,
+ 0x0010adf1, 0x05adf828, 0x5c03e000, 0x05ec0bd3,
+ 0x05fdf7af, 0x5c03e000, 0x05ec0bd0, 0x59300407,
+ 0x90000583, 0x05fe07ad, 0x59300203, 0x9000058d,
+ 0x05fc07aa, 0x59300008, 0x8c000500, 0x05b20aec,
+ 0x8d3c0502, 0x05fe07a5, 0x4d340000, 0x5932680a,
+ 0x05d5fe8c, 0x5c026800, 0x05fdf7a0, 0x0509f90b,
+ 0x59300008, 0x8c000500, 0x05b20ae1, 0x0505fe3a,
+ 0x59300004, 0x8400055c, 0x48026004, 0x4203e000,
+ 0xb0800000, 0x6023f800, 0x05edfbb4, 0x8d3c0502,
+ 0x05020063, 0x59300407, 0x90000586, 0x0500005c,
+ 0x497a6229, 0x59300203, 0x9000058d, 0x05000002,
+ 0x640e6229, 0x0501fc39, 0x05020004, 0x8d3c0500,
+ 0x05000049, 0x0501f041, 0x4d2c0000, 0x4d400000,
+ 0x59325809, 0x0501fda1, 0x592c040c, 0x8c000512,
+ 0x05000008, 0x4d2c0000, 0x84000512, 0x48025c0c,
+ 0x592c080d, 0x40065800, 0x05adfba8, 0x5c025800,
+ 0x4d400000, 0x60168000, 0x592c0a0c, 0x82040500,
+ 0x00000084, 0x0500000c, 0x600a8000, 0x592c0208,
+ 0x82000500, 0x000000ff, 0xb80004b5, 0x05020009,
+ 0x8c040504, 0x05000007, 0x83428540, 0x00000200,
+ 0x0501f004, 0x8c040512, 0x05000002, 0x60328000,
+ 0x592c0208, 0x82000500, 0x000000ff, 0xb00005b5,
+ 0x05020005, 0x592c020e, 0x8c000506, 0x05000002,
+ 0x853e7d40, 0x05d9fac6, 0x0505fe0d, 0x5c028000,
+ 0x0505fab7, 0x8d3c0500, 0x05020003, 0x0515fa1d,
+ 0x05020003, 0x0001fba8, 0x497a6009, 0x5c028000,
+ 0x5c025800, 0x8d3c0500, 0x0500000a, 0x59300a29,
+ 0x90040d83, 0x05020005, 0x4d340000, 0x5932680a,
+ 0x05d5fe30, 0x5c026800, 0x05f5fa87, 0x0501f010,
+ 0x0515fa0c, 0x05020004, 0x59300a29, 0x90040d83,
+ 0x05000cdd, 0x640a6407, 0x42000800, 0x80004040,
+ 0x0505fdd9, 0x4a026003, 0x00850009, 0x0005fee2,
+ 0x4203e000, 0xb0800000, 0x6023f800, 0x5c03e000,
+ 0x05ee0b61, 0x90000541, 0x1c01f000, 0x640a6203,
+ 0x05fdf7fb, 0x05edfb4d, 0x05b1fa71, 0x05fdf78c,
+ 0x598c000b, 0x81300580, 0x05020003, 0x05edfe53,
+ 0x0502002a, 0x05e9fff2, 0x05020005, 0x59300c03,
+ 0xb0040580, 0x05fc0770, 0x05fdf781, 0x05edfa66,
+ 0x05000022, 0x05a9ff90, 0x0501f824, 0x05020003,
+ 0x05edfe16, 0x0502001d, 0x05e9ff05, 0x05000017,
+ 0x05edfa5d, 0x05000019, 0x59300407, 0x90000583,
+ 0x05aa0f85, 0x59300004, 0x9000051f, 0x90000585,
+ 0x05aa0f81, 0x58d400ec, 0x82000500, 0x00000f00,
+ 0x05fe076b, 0x58d400ec, 0x4803c857, 0x59300000,
+ 0x4803c857, 0x59300003, 0x4803c857, 0x59300004,
+ 0x4803c857, 0x05fdf762, 0x59300c03, 0xb0040580,
+ 0x05fc074d, 0x05fdf75e, 0x59300203, 0x90000c91,
+ 0x05aa1f6d, 0x0c01f733, 0x417a3000, 0x60df2160,
+ 0x59900005, 0x81300580, 0x05000006, 0x91932410,
+ 0x811a3000, 0x91180485, 0x05fc17fa, 0x90000541,
+ 0x1c01f000, 0x59300004, 0x8c00053e, 0x0500000c,
+ 0x8c00050c, 0x0502000a, 0x8c000516, 0x05020004,
+ 0x90000d1f, 0x90040585, 0x05020003, 0x600c0000,
+ 0x0501f004, 0x60040000, 0x0501f002, 0x59300203,
+ 0x1c01f000, 0x4933c857, 0x05edfb0b, 0x4df00000,
+ 0x59300203, 0x90000c91, 0x05aa1f4b, 0x0c01f001,
+ 0x0010aede, 0x0010aeef, 0x0010aee1, 0x0010aedd,
+ 0x0010aedd, 0x0010aedd, 0x0010aedd, 0x0010aedd,
+ 0x0010aedd, 0x0010aedd, 0x0010aedd, 0x0010aedd,
+ 0x0010aedd, 0x0010aedd, 0x0010aee1, 0x0010aedd,
+ 0x0010aedd, 0x05a9ff38, 0x5c03e000, 0x05ec0ae3,
+ 0x05fdf6bf, 0x5c03e000, 0x05ec0ae0, 0x4d2c0000,
+ 0x05b5f896, 0x59325809, 0x0501fb6c, 0x05a80f2e,
+ 0x64165a0a, 0x0001fba8, 0x05d9f85b, 0x05f5f9fa,
+ 0x5c025800, 0x90000541, 0x1c01f000, 0x598c000b,
+ 0x81300580, 0x05020014, 0x59300004, 0x8c000520,
+ 0x05000004, 0x84000520, 0x48026004, 0x0501f014,
+ 0x42001000, 0x00112322, 0x50081000, 0x58080002,
+ 0x82000580, 0x00000100, 0x05000005, 0x05b5f87b,
+ 0x05e9ff6f, 0x05aa0f14, 0x05fdf7df, 0x05edfdcb,
+ 0x0502000a, 0x59300004, 0x8c000520, 0x05000004,
+ 0x84000520, 0x48026004, 0x05fdf7d7, 0x05e9ff64,
+ 0x05fc07d5, 0x05a9ff08, 0x59300203, 0x90000c91,
+ 0x05aa1f05, 0x0c01f7bb, 0x4d340000, 0x4d240000,
+ 0x5932481d, 0x5932680a, 0x59300407, 0x4933c857,
+ 0x4803c857, 0x90000c92, 0x05aa1efb, 0x0c01f804,
+ 0x5c024800, 0x5c026800, 0x1c01f000, 0x0010af34,
+ 0x0010b032, 0x0010b1ad, 0x0010af3b, 0x0010b192,
+ 0x0010b1a9, 0x0010cc12, 0x0010b016, 0x0010b18e,
+ 0x0010af31, 0x0010b209, 0x0010af31, 0x0010af31,
+ 0x0010af31, 0x0010af31, 0x00021010, 0x0010ba73,
+ 0x0010ba73, 0x05a9fee4, 0x0501fc31, 0x05f800ca,
+ 0x1c01f000, 0x05edfa9c, 0x05edf9f1, 0x05edfa8b,
+ 0x0009f010, 0x64066006, 0x1c01f000, 0x42000000,
+ 0x00112407, 0x0515f81a, 0x5930001e, 0x800001c0,
+ 0x05060c69, 0x4d2c0000, 0x4d400000, 0x417a5800,
+ 0x0501fb0e, 0x05000007, 0x0505ffc8, 0x59325809,
+ 0x592c020c, 0x8400054c, 0x48025a0c, 0x601a8000,
+ 0x05edfa85, 0x05fdff68, 0x4803c857, 0x90000c91,
+ 0x05aa1ec5, 0x0c01f805, 0x05edfa70, 0x5c028000,
+ 0x5c025800, 0x1c01f000, 0x0010b015, 0x0010af68,
+ 0x0010af74, 0x0010afb7, 0x0010afe5, 0x0010af67,
+ 0x0010af34, 0x0010af34, 0x0010af34, 0x0010af67,
+ 0x0010af67, 0x0010af67, 0x0010af67, 0x0010af74,
+ 0x0010af68, 0x0010af67, 0x0010afb7, 0x05a9feae,
+ 0x598c000b, 0x4803c857, 0x81300580, 0x05020003,
+ 0x05edfd62, 0x0502005a, 0x05e9ff01, 0x0500005d,
+ 0x4803c856, 0x05edf978, 0x05000055, 0x05a9fea2,
+ 0x497a6229, 0x812e59c0, 0x05a80e9f, 0x592c0a08,
+ 0x4807c857, 0x82040d00, 0x000000ff, 0x90040594,
+ 0x05000018, 0xb00405b5, 0x05020014, 0x59300008,
+ 0x8c000500, 0x05020064, 0x592c0a0e, 0x8c040506,
+ 0x0500000e, 0x592c0c0c, 0x4c040000, 0x592c0a0c,
+ 0x05d9f987, 0x5c000800, 0x8c040510, 0x05000003,
+ 0x4a025c0c, 0x00000100, 0x0001fba8, 0x0501fbb2,
+ 0x497a6009, 0x05f5f154, 0x640e6229, 0x0505fcc4,
+ 0x592c0c0c, 0x4c040000, 0x592c0a0c, 0x05d9f978,
0x5c000800, 0x8c040510, 0x05000003, 0x4a025c0c,
- 0x00000100, 0x0001fb82, 0x0501fb96, 0x497a6009,
- 0x05f5f1bc, 0x640e6229, 0x0505fc9b, 0x592c0c0c,
- 0x4c040000, 0x592c0a0c, 0x05d9fc11, 0x5c000800,
- 0x8c040510, 0x05000003, 0x4a025c0c, 0x00000100,
- 0x0505f93d, 0x0511fed0, 0x05020006, 0x0001fb82,
- 0x59300a29, 0x90040d83, 0x05000b82, 0x497a6009,
- 0x4a026403, 0x00000085, 0x64266203, 0x640a6407,
- 0x59300804, 0x82040d00, 0x00000100, 0x0505fc6c,
- 0x82040d40, 0x80004040, 0x48066004, 0x4203e000,
- 0xb0800000, 0x6023f800, 0x05edface, 0x42000800,
- 0x80004040, 0x0005f6ab, 0x05fdfef6, 0x05020003,
- 0x05edfda4, 0x0502000d, 0x05e9fe98, 0x05000006,
- 0x05edf9ec, 0x05000009, 0x59300004, 0x4803c857,
- 0x05fdf7b3, 0x59300c03, 0x4807c857, 0xb0040580,
- 0x05000007, 0x05fdf7ae, 0x59300203, 0x4803c857,
- 0x90000c91, 0x05ae1b8d, 0x0c01f78b, 0x05edfab5,
- 0x812e59c0, 0x05000015, 0x0505fc5f, 0x592c0c0c,
- 0x4c040000, 0x592c0a0c, 0x05d9fbd5, 0x5c000800,
- 0x8c040510, 0x05000003, 0x4a025c0c, 0x00000100,
- 0x0505f901, 0x0001fb82, 0x59300203, 0x9000058d,
- 0x05000006, 0x05edfaa3, 0x4d340000, 0x5932680a,
- 0x05d5ff63, 0x5c026800, 0x05f5f96a, 0x0501f031,
- 0x812e59c0, 0x05ac0b71, 0x0501fee9, 0x05020003,
- 0x05b1fddd, 0x05fdf78a, 0x05edfa96, 0x592c020c,
- 0x8400050c, 0x48025a0c, 0x592c040a, 0x800000c2,
- 0x800008c4, 0x80040c00, 0x48066006, 0x42000000,
- 0x10000000, 0x41300800, 0x05b1fab8, 0x05000013,
- 0x592c020c, 0x8c00051c, 0x05020005, 0x8400055c,
- 0x48025a0c, 0x640a6006, 0x0501f016, 0x59c80001,
- 0x80000540, 0x05020006, 0x42000000, 0x40000000,
- 0x41300800, 0x05b1faa9, 0x0501f004, 0x4d300000,
- 0x05b5fd38, 0x5c026000, 0x59300008, 0x8c000536,
- 0x05020004, 0x59300203, 0x90000584, 0x05020005,
- 0x4d380000, 0x61227000, 0x0009f800, 0x5c027000,
- 0x1c01f000, 0x4d340000, 0x4c5c0000, 0x59300203,
- 0x90000591, 0x05020014, 0x5932680a, 0x4130b800,
- 0x0005ffbf, 0x0500000f, 0x64066203, 0x647a6403,
- 0x585c041b, 0x4802641b, 0x585c021b, 0x4802621b,
- 0x4936600a, 0x585c001d, 0x4802601d, 0x0501fde4,
- 0x64066407, 0x42000800, 0x80000040, 0x0005feab,
- 0x405e6000, 0x0005ffdc, 0x5c00b800, 0x5c026800,
- 0x1c01f000, 0x42000000, 0x0010e45f, 0x0511fd25,
- 0x0511fb9c, 0x59300203, 0x90000c91, 0x05ae1b1f,
- 0x4803c857, 0x0c01f001, 0x0010aacf, 0x0010a9bf,
- 0x0010aad0, 0x0010aacf, 0x0010aad0, 0x0010aad0,
- 0x0010a9bb, 0x0010aacf, 0x0010a9b8, 0x0010aacf,
- 0x0010aacf, 0x0010aacf, 0x0010aacf, 0x0010aacf,
- 0x0010aad0, 0x0010aacf, 0x0010aacf, 0x05adfb0b,
- 0x83340580, 0x00110210, 0x05f400fe, 0x4d2c0000,
- 0x59340400, 0x82000500, 0x000000ff, 0x90000c8c,
- 0x05ae1b02, 0x4c000000, 0x0505fdc5, 0x5c000000,
- 0x0502000a, 0x59300009, 0x800001c0, 0x05020004,
- 0x05f5f8f0, 0x0505fdc5, 0x0501f010, 0x05f5ffe0,
- 0x05f5f8ec, 0x0501f00d, 0x59303403, 0xb0180d91,
- 0x0500000c, 0x90180d84, 0x05020003, 0x60040000,
- 0x0501f004, 0x90180d80, 0x05020002, 0x60040000,
- 0x4803c857, 0x0c01f823, 0x5c025800, 0x1c01f000,
- 0x42000000, 0x0010e45b, 0x0511fce6, 0x05bdfb20,
- 0x59340412, 0x82000500, 0x000000ff, 0x05000016,
- 0x80000040, 0x48026c12, 0x4d300000, 0x05f5f904,
- 0x5c000000, 0x0500000f, 0x641c0407, 0x4a000006,
- 0x00000398, 0x49238830, 0x4a038832, 0xffffffff,
- 0x4926601d, 0x497a6009, 0x4936600a, 0x64066407,
- 0x64066203, 0x65466403, 0x5c025800, 0x05e9f562,
- 0x40026000, 0x5c025800, 0x60042800, 0x0505f626,
- 0x0010ab20, 0x0010abba, 0x0010ab21, 0x0010ab57,
- 0x0010ab21, 0x0010abcf, 0x0010ab21, 0x0010ab28,
- 0x0010ab20, 0x0010abcf, 0x0010ab20, 0x0010ab33,
- 0x05adfaba, 0x59300403, 0x90000d96, 0x05000032,
- 0x90000d84, 0x05000030, 0x90000d82, 0x0500002e,
- 0x0501faa2, 0x0500002c, 0x59300403, 0x90000da2,
- 0x050000a5, 0x90000db9, 0x050000ac, 0x90000db5,
- 0x050000aa, 0x90000d9e, 0x05000024, 0x0501f996,
- 0x05000005, 0x0505f818, 0x05020003, 0x05d5ff19,
- 0x0501f01d, 0x59300403, 0x90000d81, 0x0502000f,
- 0x5930081d, 0x58040200, 0x8c000500, 0x050405f5,
- 0x5930080a, 0x58040403, 0x82000580, 0x000007fe,
- 0x05020004, 0x60042800, 0x0505fdf3, 0x0005f7dc,
- 0x05d5fedd, 0x0500000c, 0x59340403, 0x82000480,
- 0x000007f0, 0x05021009, 0x4d3c0000, 0x417a7800,
- 0x05b9ffdc, 0x5c027800, 0x42000000, 0x0010e454,
- 0x0511fc88, 0x05f5ff6e, 0x05f5f07a, 0x0501f972,
- 0x05000003, 0x0501fff4, 0x05000091, 0x59300c03,
- 0x90040596, 0x05000058, 0x90040582, 0x05020034,
- 0x59a80249, 0x8c000502, 0x0502000f, 0x05d9fd4b,
- 0x0502000d, 0x59a80006, 0x8c000506, 0x0502000a,
- 0x05d9fd58, 0x05020004, 0x60040000, 0x05d9fd1c,
- 0x0501f07f, 0x64075042, 0x6006d800, 0x05d9fcc2,
- 0x0501f07b, 0x59340200, 0x8c000508, 0x05000007,
- 0x84000508, 0x48026a00, 0x59300416, 0x84000510,
- 0x48026416, 0x0501f014, 0x59340412, 0x82000500,
+ 0x00000100, 0x0505f966, 0x0515f8ce, 0x05020006,
+ 0x0001fba8, 0x59300a29, 0x90040d83, 0x05000b9e,
+ 0x497a6009, 0x4a026403, 0x00000085, 0x64266203,
+ 0x640a6407, 0x59300804, 0x82040d00, 0x00000100,
+ 0x0505fc95, 0x82040d40, 0x80004040, 0x48066004,
+ 0x4203e000, 0xb0800000, 0x6023f800, 0x05edfa0f,
+ 0x42000800, 0x80004040, 0x0005f6e2, 0x05fdfef3,
+ 0x05020003, 0x05edfce5, 0x0502000d, 0x05e9fdd4,
+ 0x05000006, 0x05edf92c, 0x05000009, 0x59300004,
+ 0x4803c857, 0x05fdf7b3, 0x59300c03, 0x4807c857,
+ 0xb0040580, 0x05000007, 0x05fdf7ae, 0x59300203,
+ 0x4803c857, 0x90000c91, 0x05aa1e4b, 0x0c01f78b,
+ 0x05edf9f6, 0x812e59c0, 0x05000015, 0x0505fc88,
+ 0x592c0c0c, 0x4c040000, 0x592c0a0c, 0x05d9f93c,
+ 0x5c000800, 0x8c040510, 0x05000003, 0x4a025c0c,
+ 0x00000100, 0x0505f92a, 0x0001fba8, 0x59300203,
+ 0x9000058d, 0x05000006, 0x05edf9e4, 0x4d340000,
+ 0x5932680a, 0x05d5fcab, 0x5c026800, 0x05f5f902,
+ 0x0501f031, 0x812e59c0, 0x05a80e2f, 0x0501ff08,
+ 0x05020003, 0x05b1f8fe, 0x05fdf78a, 0x05edf9d7,
+ 0x592c020c, 0x8400050c, 0x48025a0c, 0x592c040a,
+ 0x800000c2, 0x800008c4, 0x80040c00, 0x48066006,
+ 0x42000000, 0x10000000, 0x41300800, 0x05adfdd7,
+ 0x05000013, 0x592c020c, 0x8c00051c, 0x05020005,
+ 0x8400055c, 0x48025a0c, 0x640a6006, 0x0501f016,
+ 0x59c80001, 0x80000540, 0x05020006, 0x42000000,
+ 0x40000000, 0x41300800, 0x05adfdc8, 0x0501f004,
+ 0x4d300000, 0x05b5f82c, 0x5c026000, 0x59300008,
+ 0x8c000536, 0x05020004, 0x59300203, 0x90000584,
+ 0x05020005, 0x4d380000, 0x61227000, 0x0009f839,
+ 0x5c027000, 0x1c01f000, 0x4d340000, 0x4c5c0000,
+ 0x59300203, 0x90000591, 0x05020014, 0x5932680a,
+ 0x4130b800, 0x0005fff6, 0x0500000f, 0x64066203,
+ 0x647a6403, 0x585c041b, 0x4802641b, 0x585c021b,
+ 0x4802621b, 0x4936600a, 0x585c001d, 0x4802601d,
+ 0x0501fdff, 0x64066407, 0x42000800, 0x80000040,
+ 0x0005fee2, 0x405e6000, 0x0009f810, 0x5c00b800,
+ 0x5c026800, 0x1c01f000, 0x42000000, 0x00112403,
+ 0x0511ff23, 0x0511fd86, 0x59300203, 0x90000c91,
+ 0x05aa1ddd, 0x4803c857, 0x0c01f001, 0x0010b04c,
+ 0x0010af39, 0x0010b04d, 0x0010b04c, 0x0010b04d,
+ 0x0010b04d, 0x0010af35, 0x0010b04c, 0x0010af32,
+ 0x0010b04c, 0x0010b04c, 0x0010b04c, 0x0010b04c,
+ 0x0010b04c, 0x0010b04d, 0x0010b04c, 0x0010b04c,
+ 0x05a9fdc9, 0x83340580, 0x001141b4, 0x05f40096,
+ 0x4d2c0000, 0x59340400, 0x82000500, 0x000000ff,
+ 0x90000c8c, 0x05aa1dc0, 0x4c000000, 0x0505fdf9,
+ 0x5c000000, 0x0502000a, 0x59300009, 0x800001c0,
+ 0x05020004, 0x05f5f888, 0x0505fdf9, 0x0501f010,
+ 0x05f5ff9d, 0x05f5f884, 0x0501f00d, 0x59303403,
+ 0xb0180d91, 0x0500000c, 0x90180d84, 0x05020003,
+ 0x60040000, 0x0501f004, 0x90180d80, 0x05020002,
+ 0x60040000, 0x4803c857, 0x0c01f828, 0x5c025800,
+ 0x1c01f000, 0x42000000, 0x001123ff, 0x0511fee4,
+ 0x05b9fe3f, 0x600c0800, 0x05bdf867, 0x05020003,
+ 0x0509f8e4, 0x0501f017, 0x59340412, 0x82000500,
0x000000ff, 0x05000016, 0x80000040, 0x48026c12,
- 0x5932481d, 0x59300c29, 0x4c040000, 0x497a6205,
- 0x4d300000, 0x05f5f87e, 0x5c000000, 0x5c000800,
- 0x0500000a, 0x49780009, 0x641c0407, 0x4a000006,
- 0x00000398, 0x4926601d, 0x48066429, 0x4936600a,
- 0x64066407, 0x0501f024, 0x40026000, 0x59300403,
- 0x90000d82, 0x05020013, 0x59340403, 0x82000580,
- 0x000007fe, 0x0502000c, 0x59a80249, 0x84000540,
- 0x48035249, 0x05d9fd11, 0x05fc07ca, 0x4a035045,
- 0x0000ffff, 0x0505ff00, 0x05d1fe66, 0x05f5ff20,
- 0x0501f00f, 0x600c0002, 0x05f5fa82, 0x05f40029,
- 0x05f5ff1b, 0x4d3c0000, 0x417a7800, 0x05b9ff81,
- 0x5c027800, 0x42000000, 0x0010e454, 0x0511fc2d,
- 0x59300429, 0x900005a1, 0x050406d0, 0x05b9ffc0,
- 0x05f5f01c, 0x600c0800, 0x05d5f937, 0x64066203,
- 0x640a6403, 0x05e9f4b8, 0x0501f90f, 0x05fe079a,
- 0x05b9ffb7, 0x4d3c0000, 0x417a7800, 0x05b9ff6d,
- 0x5c027800, 0x42000000, 0x0010e454, 0x0511fc19,
- 0x60603000, 0x41782800, 0x60002000, 0x4d400000,
- 0x4d440000, 0x59368c03, 0x60a68000, 0x0505fa48,
- 0x5c028800, 0x5c028000, 0x05f5f002, 0x05d5fe81,
- 0x05fdf7d8, 0x42000000, 0x0010e45e, 0x0511fc09,
- 0x60140002, 0x05f5fa53, 0x05fc07d2, 0x05f5fa70,
- 0x05fe07d0, 0x1c01f000, 0x59300c03, 0x0501fd3b,
- 0x000607dc, 0x916c0583, 0x05000003, 0x640a6006,
- 0x1c01f000, 0x59300403, 0x48026418, 0x64066229,
- 0x4a026403, 0x00000085, 0x64266203, 0x640a6407,
- 0x42000800, 0x80000040, 0x0005f6ab, 0x0511fd40,
- 0x0500000b, 0x4d400000, 0x4d200000, 0x05bdfa28,
- 0x60068000, 0x60001802, 0x60042800, 0x60040000,
- 0x05d9fa5c, 0x5c024000, 0x5c028000, 0x05f5fecc,
- 0x4d3c0000, 0x417a7800, 0x05b9ff32, 0x5c027800,
- 0x42000000, 0x0010e454, 0x0511fbde, 0x497a6009,
- 0x641e6407, 0x4a026006, 0x00000398, 0x497a6205,
- 0x1c01f000, 0x42000000, 0x0010e465, 0x0511fbd5,
- 0x05fdf6ad, 0x59300403, 0x900005b6, 0x05020005,
- 0x64066203, 0x42000800, 0x80000040, 0x0005f6ab,
- 0x42000000, 0x0010e460, 0x0511fbca, 0x0511fa97,
- 0x0502000a, 0x59300009, 0x800001c0, 0x05020004,
- 0x05f1ffb8, 0x0505fc8d, 0x0501f003, 0x05f5fea8,
- 0x05f1ffb4, 0x1c01f000, 0x0511fa36, 0x05f1f7b1,
- 0x42000000, 0x0010e462, 0x0511fbba, 0x1c01f000,
- 0x42000000, 0x0010e461, 0x0511fbb6, 0x59300203,
- 0x90000c91, 0x05ae19b1, 0x4803c857, 0x0c01f001,
- 0x0010ac3d, 0x0010a9bf, 0x0010ac3d, 0x0010ac3d,
- 0x0010ac3d, 0x0010ac3d, 0x0010ac3d, 0x0010ac3d,
- 0x0010ac3d, 0x0010a9bf, 0x0010ac3e, 0x0010a9bf,
- 0x0010ac48, 0x0010ac3d, 0x0010ac3e, 0x0010ac3d,
- 0x0010ac3d, 0x05adf99d, 0x59300403, 0x82000580,
- 0x0000008b, 0x05000007, 0x4a026403, 0x0000008b,
- 0x642e6203, 0x42000800, 0x80004040, 0x0005f6ab,
- 0x59300a29, 0x0501f880, 0x0500000b, 0x4d2c0000,
- 0x59325809, 0x641a5a0a, 0x497a5c0d, 0x0001fb82,
- 0x59300a29, 0x90040d83, 0x05d40d75, 0x5c025800,
- 0x497a6009, 0x4d3c0000, 0x417a7800, 0x05b9fed5,
- 0x5c027800, 0x60443000, 0x0511f929, 0x42000000,
- 0x0010e454, 0x0511fb7f, 0x4c5c0000, 0x4130b800,
- 0x05f1ffa3, 0x05000009, 0x4936600a, 0x4926601d,
- 0x0501fc2b, 0x4d300000, 0x405e6000, 0x05f1ff69,
- 0x5c026000, 0x0501f002, 0x405e6000, 0x5c00b800,
- 0x497a6009, 0x64066407, 0x64066403, 0x59240400,
- 0x8c00050a, 0x0502000b, 0x64126407, 0x641e6203,
- 0x6406642c, 0x60103000, 0x4d400000, 0x60a68000,
- 0x41782800, 0x050dfb26, 0x5c028000, 0x1c01f000,
- 0x602c0800, 0x05d5f870, 0x64066203, 0x05e9f3f2,
- 0x42000000, 0x0010e467, 0x0511fb5a, 0x59300203,
- 0x90000c91, 0x05ae1955, 0x4803c857, 0x0c01f001,
- 0x0010aca9, 0x0010ac99, 0x0010ac9b, 0x0010acaa,
- 0x0010ac9a, 0x0010ac99, 0x0010ac99, 0x0010ac99,
- 0x0010ac99, 0x0010ac99, 0x0010ac99, 0x0010ac99,
- 0x0010ac99, 0x0010ac99, 0x0010ac99, 0x0010ac99,
- 0x0010ac99, 0x05adf941, 0x05b1fbaf, 0x4d2c0000,
- 0x59325809, 0x641a5a0a, 0x0001fb82, 0x5c025800,
- 0x497a6009, 0x642a6229, 0x4a026403, 0x00000085,
- 0x64266203, 0x640a6407, 0x42000800, 0x80004040,
- 0x0005f6ab, 0x1c01f000, 0x05edf869, 0x4df00000,
- 0x05fdfc84, 0x05020003, 0x05edfb32, 0x05020008,
- 0x05e9fc26, 0x05020004, 0x5c03e000, 0x05edf851,
- 0x05fdf7e7, 0x05e9ff77, 0x05ae0924, 0x5c03e000,
- 0x05edf84c, 0x59300203, 0x90000d83, 0x05ac091f,
- 0x90000c91, 0x05ae191d, 0x0c01f7ca, 0x59a8003b,
- 0x59a8089a, 0x80040400, 0x80080480, 0x05021003,
- 0x90000541, 0x1c01f000, 0x480bc857, 0x80000580,
- 0x1c01f000, 0x4c040000, 0x59300809, 0x59a8000c,
- 0x80040480, 0x05001007, 0x59a8000a, 0x80040480,
- 0x05021004, 0x800409c0, 0x5c000800, 0x1c01f000,
- 0x800409c0, 0x05ae0905, 0x4803c856, 0x05fdf7fb,
- 0x4803c856, 0x4d300000, 0x0005ffbf, 0x05000007,
- 0x0501f825, 0x4d380000, 0x612e7000, 0x0009f800,
- 0x5c027000, 0x90000541, 0x5c026000, 0x1c01f000,
- 0x4803c856, 0x4d300000, 0x05f1ff1d, 0x05000016,
- 0x0501f819, 0x4d300000, 0x05edf829, 0x4df00000,
- 0x05e9fd59, 0x4d3c0000, 0x60027840, 0x05e9fea6,
- 0x05e9fc2c, 0x050df980, 0x5c027800, 0x5c03e000,
- 0x05ec0810, 0x5c026000, 0x8d3c053e, 0x05020008,
- 0x4d380000, 0x61327000, 0x0009f800, 0x5c027000,
- 0x90000541, 0x5c026000, 0x1c01f000, 0x0005ffdc,
- 0x05fdf7fc, 0x592c040b, 0x497a580c, 0x497a580d,
- 0x494a6019, 0x494e601a, 0x4936600a, 0x492e6009,
- 0x640e6407, 0x59340802, 0x4806600b, 0x800000c2,
- 0x800008c4, 0x80040400, 0x48026006, 0x05d5fd62,
- 0x4926601d, 0x0501f37e, 0x493bc857, 0x4d300000,
- 0x0005ffbf, 0x0500000a, 0x05fdffeb, 0x4d400000,
- 0x60168000, 0x0501f80a, 0x5c028000, 0x8d3c053e,
- 0x05020005, 0x0009f800, 0x90000541, 0x5c026000,
- 0x1c01f000, 0x0005ffdc, 0x05fdf7fc, 0x4803c856,
- 0x05e9ffef, 0x4df00000, 0x4d3c0000, 0x4d440000,
- 0x59368c03, 0x60067840, 0x05e9fd94, 0x05e9fcd1,
- 0x05e9fbf0, 0x050df944, 0x5c028800, 0x5c027800,
- 0x5c03e000, 0x05e807d3, 0x1c01f000, 0x4803c856,
- 0x4d300000, 0x05f1fece, 0x0500000e, 0x481a601e,
- 0x48ee602d, 0x4936600a, 0x05d5fd37, 0x4926601d,
- 0x0501fb53, 0x64066407, 0x492e6009, 0x4d380000,
- 0x607e7000, 0x0009f800, 0x5c027000, 0x90000541,
- 0x5c026000, 0x1c01f000, 0x4803c856, 0x4d300000,
- 0x05f1febb, 0x0500000d, 0x48ee602d, 0x4936600a,
- 0x05d5fd25, 0x4926601d, 0x0501fb41, 0x64066407,
- 0x492e6009, 0x4d380000, 0x61567000, 0x0009f800,
+ 0x4d300000, 0x05f5f897, 0x5c000000, 0x0500000f,
+ 0x641c0407, 0x4a000006, 0x00000398, 0x49238830,
+ 0x4a038832, 0xffffffff, 0x4926601d, 0x497a6009,
+ 0x4936600a, 0x64066407, 0x64066203, 0x65466403,
+ 0x5c025800, 0x05e9f499, 0x40026000, 0x5c025800,
+ 0x60042800, 0x0505f655, 0x0010b0a2, 0x0010b143,
+ 0x0010b0a3, 0x0010b0dc, 0x0010b0a3, 0x0010b158,
+ 0x0010b0a3, 0x0010b0aa, 0x0010b0a2, 0x0010b158,
+ 0x0010b0a2, 0x0010b0b5, 0x05a9fd73, 0x59300403,
+ 0x90000d96, 0x05000035, 0x90000d84, 0x05000033,
+ 0x90000d82, 0x05000031, 0x0501fab9, 0x0500002f,
+ 0x59300403, 0x90000da2, 0x050000ac, 0x90000db9,
+ 0x050000b3, 0x90000db5, 0x050000b1, 0x90000d9e,
+ 0x05000027, 0x0501f99d, 0x05000005, 0x0505f83c,
+ 0x05020003, 0x05d5fc60, 0x0501f020, 0x59300403,
+ 0x90000d81, 0x0502000f, 0x5930081d, 0x58040200,
+ 0x8c000500, 0x05040624, 0x5930080a, 0x58040403,
+ 0x82000580, 0x000007fe, 0x05020004, 0x60042800,
+ 0x0505fe22, 0x0009f010, 0x05d5fc24, 0x0500000f,
+ 0x59340403, 0x82000c80, 0x000007f0, 0x05001004,
+ 0x82000c80, 0x00000800, 0x05001009, 0x4d3c0000,
+ 0x417a7800, 0x05b9faee, 0x5c027800, 0x42000000,
+ 0x001123f8, 0x0511fe7e, 0x05f5ff23, 0x05f5f00a,
+ 0x0501f976, 0x05000003, 0x0505f815, 0x05000095,
+ 0x59300c03, 0x90040596, 0x05000058, 0x90040582,
+ 0x05020034, 0x59a8024c, 0x8c000502, 0x0502000f,
+ 0x05d9fab0, 0x0502000d, 0x59a80006, 0x8c000506,
+ 0x0502000a, 0x05d9fabd, 0x05020004, 0x60040000,
+ 0x05d9fa7b, 0x0501f083, 0x64075045, 0x6006d800,
+ 0x05d9fa21, 0x0501f07f, 0x59340200, 0x8c000508,
+ 0x05000007, 0x84000508, 0x48026a00, 0x59300416,
+ 0x84000510, 0x48026416, 0x0501f014, 0x59340412,
+ 0x82000500, 0x000000ff, 0x05000016, 0x80000040,
+ 0x48026c12, 0x5932481d, 0x59300c29, 0x4c040000,
+ 0x497a6205, 0x4d300000, 0x05f5f80e, 0x5c000000,
+ 0x5c000800, 0x0500000a, 0x49780009, 0x641c0407,
+ 0x4a000006, 0x00000398, 0x4926601d, 0x48066429,
+ 0x4936600a, 0x64066407, 0x0501f024, 0x40026000,
+ 0x59300403, 0x90000d82, 0x05020013, 0x59340403,
+ 0x82000580, 0x000007fe, 0x0502000c, 0x59a8024c,
+ 0x84000540, 0x4803524c, 0x05d9fa76, 0x05fc07ca,
+ 0x4a035048, 0x0000ffff, 0x0509f831, 0x05d1fad8,
+ 0x05f5fed5, 0x0501f00f, 0x600c0002, 0x05f5fa33,
+ 0x05f007b9, 0x05f5fed0, 0x4d3c0000, 0x417a7800,
+ 0x05b9fa93, 0x5c027800, 0x42000000, 0x001123f8,
+ 0x0511fe23, 0x59300429, 0x900005a1, 0x05080001,
+ 0x05b9fad2, 0x05f1f7ac, 0x600c0800, 0x05d1fdc5,
+ 0x64066203, 0x640a6403, 0x59300418, 0xb0000591,
+ 0x05020002, 0x65466403, 0x05e9f3e8, 0x0501f90f,
+ 0x05fe0796, 0x05b9fac5, 0x4d3c0000, 0x417a7800,
+ 0x05b9fa7b, 0x5c027800, 0x42000000, 0x001123f8,
+ 0x0511fe0b, 0x60603000, 0x41782800, 0x60002000,
+ 0x4d400000, 0x4d440000, 0x59368c03, 0x60a68000,
+ 0x0505fa66, 0x5c028800, 0x5c028000, 0x05f1f78e,
+ 0x05d5fbc1, 0x05fdf7d4, 0x42000000, 0x00112402,
+ 0x0511fdfb, 0x60140002, 0x05f5fa00, 0x05fc07ce,
+ 0x05f5fa1d, 0x05fe07cc, 0x1c01f000, 0x59300c03,
+ 0x0501fd4a, 0x000a0010, 0x916c0583, 0x05000003,
+ 0x640a6006, 0x1c01f000, 0x59300403, 0x48026418,
+ 0x64066229, 0x4a026403, 0x00000085, 0x64266203,
+ 0x640a6407, 0x42000800, 0x80000040, 0x0005f6e2,
+ 0x0511ff32, 0x0500000b, 0x4d400000, 0x4d200000,
+ 0x05b9fd3b, 0x60068000, 0x60001802, 0x60042800,
+ 0x60040000, 0x05d5ffb7, 0x5c024000, 0x5c028000,
+ 0x05f5fe7d, 0x4d3c0000, 0x417a7800, 0x05b9fa40,
+ 0x5c027800, 0x42000000, 0x001123f8, 0x0511fdd0,
+ 0x497a6009, 0x641e6407, 0x4a026006, 0x00000398,
+ 0x497a6205, 0x1c01f000, 0x42000000, 0x00112409,
+ 0x0511fdc7, 0x05fdf6a1, 0x59300403, 0x900005b6,
+ 0x05020005, 0x64066203, 0x42000800, 0x80000040,
+ 0x0005f6e2, 0x42000000, 0x00112404, 0x0511fdbc,
+ 0x0511fc75, 0x0502000a, 0x59300009, 0x800001c0,
+ 0x05020004, 0x05f1ff44, 0x0505fcb5, 0x0501f003,
+ 0x05f5fe59, 0x05f1ff40, 0x1c01f000, 0x0511fc14,
+ 0x05f1f73d, 0x42000000, 0x00112406, 0x0511fdac,
+ 0x1c01f000, 0x42000000, 0x00112405, 0x0511fda8,
+ 0x59300203, 0x90000c91, 0x05aa1c63, 0x4803c857,
+ 0x0c01f001, 0x0010b1c6, 0x0010af39, 0x0010b1c6,
+ 0x0010b1c6, 0x0010b1c6, 0x0010b1c6, 0x0010b1c6,
+ 0x0010b1c6, 0x0010b1c6, 0x0010af39, 0x0010b1c7,
+ 0x0010af39, 0x0010b1d1, 0x0010b1c6, 0x0010b1c7,
+ 0x0010b1c6, 0x0010b1c6, 0x05a9fc4f, 0x59300403,
+ 0x82000580, 0x0000008b, 0x05000007, 0x4a026403,
+ 0x0000008b, 0x642e6203, 0x42000800, 0x80004040,
+ 0x0005f6e2, 0x59300a29, 0x0501f880, 0x0500000b,
+ 0x4d2c0000, 0x59325809, 0x641a5a0a, 0x497a5c0d,
+ 0x0001fba8, 0x59300a29, 0x90040d83, 0x05d40ab1,
+ 0x5c025800, 0x497a6009, 0x4d3c0000, 0x417a7800,
+ 0x05b9f9e3, 0x5c027800, 0x60443000, 0x0511fafd,
+ 0x42000000, 0x001123f8, 0x0511fd71, 0x4c5c0000,
+ 0x4130b800, 0x05f1ff2f, 0x05000009, 0x4936600a,
+ 0x4926601d, 0x0501fc3a, 0x4d300000, 0x405e6000,
+ 0x05f1fef5, 0x5c026000, 0x0501f002, 0x405e6000,
+ 0x5c00b800, 0x497a6009, 0x64066407, 0x64066403,
+ 0x59240400, 0x8c00050a, 0x0502000b, 0x64126407,
+ 0x641e6203, 0x6406642c, 0x60103000, 0x4d400000,
+ 0x60a68000, 0x41782800, 0x050dfce4, 0x5c028000,
+ 0x1c01f000, 0x602c0800, 0x05d1fcfa, 0x64066203,
+ 0x05e9f322, 0x42000000, 0x0011240b, 0x0511fd4c,
+ 0x59300203, 0x90000c91, 0x05aa1c07, 0x4803c857,
+ 0x0c01f001, 0x0010b232, 0x0010b222, 0x0010b224,
+ 0x0010b233, 0x0010b223, 0x0010b222, 0x0010b222,
+ 0x0010b222, 0x0010b222, 0x0010b222, 0x0010b222,
+ 0x0010b222, 0x0010b222, 0x0010b222, 0x0010b222,
+ 0x0010b222, 0x0010b222, 0x05a9fbf3, 0x05adfec4,
+ 0x4d2c0000, 0x59325809, 0x641a5a0a, 0x0001fba8,
+ 0x5c025800, 0x497a6009, 0x642a6229, 0x4a026403,
+ 0x00000085, 0x64266203, 0x640a6407, 0x42000800,
+ 0x80004040, 0x0005f6e2, 0x1c01f000, 0x05e9ff9e,
+ 0x4df00000, 0x05fdfc75, 0x05020003, 0x05edfa67,
+ 0x05020008, 0x05e9fb56, 0x05020004, 0x5c03e000,
+ 0x05e9ff86, 0x05fdf7e7, 0x05e9feab, 0x05aa0bd6,
+ 0x5c03e000, 0x05e9ff81, 0x59300203, 0x90000d83,
+ 0x05a80bd1, 0x90000c91, 0x05aa1bcf, 0x0c01f7ca,
+ 0x59a8003d, 0x59a8089d, 0x80040400, 0x80080480,
+ 0x05021003, 0x90000541, 0x1c01f000, 0x480bc857,
+ 0x80000580, 0x1c01f000, 0x4c040000, 0x59300809,
+ 0x59a8000c, 0x80040480, 0x05021006, 0x4d2c0000,
+ 0x40065800, 0x0501f80d, 0x5c025800, 0x05000007,
+ 0x59a8000a, 0x80040480, 0x05021004, 0x800409c0,
+ 0x5c000800, 0x1c01f000, 0x800409c0, 0x05aa0bb2,
+ 0x4803c856, 0x05fdf7fb, 0x59a8000d, 0x812c0480,
+ 0x05001004, 0x832c0480, 0x00111b80, 0x05001004,
+ 0x492fc857, 0x80000580, 0x1c01f000, 0x812e59c0,
+ 0x1c01f000, 0x4803c856, 0x4d300000, 0x0005fff6,
+ 0x05000007, 0x0501f825, 0x4d380000, 0x612e7000,
+ 0x0009f839, 0x5c027000, 0x90000541, 0x5c026000,
+ 0x1c01f000, 0x4803c856, 0x4d300000, 0x05f1fe99,
+ 0x05000016, 0x0501f819, 0x4d300000, 0x05e9ff4e,
+ 0x4df00000, 0x05e9fc79, 0x4d3c0000, 0x60027840,
+ 0x05e9fdcc, 0x05e9fb4c, 0x050dfafe, 0x5c027800,
+ 0x5c03e000, 0x05e80f35, 0x5c026000, 0x8d3c053e,
+ 0x05020008, 0x4d380000, 0x61327000, 0x0009f839,
0x5c027000, 0x90000541, 0x5c026000, 0x1c01f000,
- 0x4803c856, 0x4d300000, 0x05f1fea9, 0x0500000e,
- 0x481a601e, 0x48ee602d, 0x4936600a, 0x05d5fd12,
- 0x4926601d, 0x0501fb2e, 0x64066407, 0x492e6009,
- 0x4d380000, 0x60f67000, 0x0009f800, 0x5c027000,
+ 0x0009f810, 0x05fdf7fc, 0x592c040b, 0x497a580c,
+ 0x497a580d, 0x494a6019, 0x494e601a, 0x4936600a,
+ 0x492e6009, 0x640e6407, 0x59340802, 0x4806600b,
+ 0x800000c2, 0x800008c4, 0x80040400, 0x48026006,
+ 0x05d5fa92, 0x4926601d, 0x0501f37d, 0x493bc857,
+ 0x4d300000, 0x0005fff6, 0x0500000a, 0x05fdffeb,
+ 0x4d400000, 0x60168000, 0x0501f80a, 0x5c028000,
+ 0x8d3c053e, 0x05020005, 0x0009f839, 0x90000541,
+ 0x5c026000, 0x1c01f000, 0x0009f810, 0x05fdf7fc,
+ 0x4803c856, 0x05e9ff14, 0x4df00000, 0x4d3c0000,
+ 0x4d440000, 0x59368c03, 0x60067840, 0x05e9fcb4,
+ 0x05e9fbf1, 0x05e9fb10, 0x050dfac2, 0x5c028800,
+ 0x5c027800, 0x5c03e000, 0x05e806f8, 0x1c01f000,
+ 0x4803c856, 0x4d300000, 0x05f1fe4a, 0x0500000e,
+ 0x481a601e, 0x48ee602d, 0x4936600a, 0x05d5fa67,
+ 0x4926601d, 0x0501fb52, 0x64066407, 0x492e6009,
+ 0x4d380000, 0x607e7000, 0x0009f839, 0x5c027000,
0x90000541, 0x5c026000, 0x1c01f000, 0x4803c856,
- 0x4d300000, 0x05f1fe96, 0x05000012, 0x4926601d,
- 0x4936600a, 0x0501fb1e, 0x492fc857, 0x4933c857,
- 0x592c0408, 0x8c00051e, 0x05000003, 0x48efc857,
- 0x48ee602d, 0x64066407, 0x492e6009, 0x4d380000,
- 0x60027000, 0x0009f800, 0x5c027000, 0x90000541,
- 0x5c026000, 0x1c01f000, 0x4803c856, 0x4d300000,
- 0x05f1fe7f, 0x0500000e, 0x48ee602d, 0x481a601e,
- 0x4936600a, 0x05d5fce8, 0x4926601d, 0x0501fb04,
- 0x64066407, 0x492e6009, 0x4d380000, 0x61127000,
- 0x0009f800, 0x5c027000, 0x90000541, 0x5c026000,
- 0x1c01f000, 0x4803c856, 0x4d300000, 0x05f1fe6c,
+ 0x4d300000, 0x05f1fe37, 0x0500000d, 0x48ee602d,
+ 0x4936600a, 0x05d5fa55, 0x4926601d, 0x0501fb40,
+ 0x64066407, 0x492e6009, 0x4d380000, 0x61567000,
+ 0x0009f839, 0x5c027000, 0x90000541, 0x5c026000,
+ 0x1c01f000, 0x4803c856, 0x4d300000, 0x05f1fe25,
0x0500000e, 0x481a601e, 0x48ee602d, 0x4936600a,
- 0x05d5fcd5, 0x4926601d, 0x0501faf1, 0x64066407,
- 0x492e6009, 0x4d380000, 0x61267000, 0x0009f800,
+ 0x05d5fa42, 0x4926601d, 0x0501fb2d, 0x64066407,
+ 0x492e6009, 0x4d380000, 0x60f67000, 0x0009f839,
0x5c027000, 0x90000541, 0x5c026000, 0x1c01f000,
- 0x5930000a, 0x80001540, 0x05ac0830, 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, 0x4803c856, 0x4c000000,
- 0x4d2c0000, 0x59300407, 0x90000584, 0x05000019,
- 0x59300009, 0x80025d40, 0x800001c0, 0x05000015,
- 0x0501fd79, 0x05000011, 0x0501fd81, 0x0500000f,
- 0x59300407, 0x90004590, 0x0500000c, 0x90004591,
- 0x0500000a, 0x90004583, 0x0500000a, 0x90004582,
- 0x05000008, 0x9000458a, 0x05000006, 0x592c0408,
- 0x8c00051e, 0x05000003, 0x80000580, 0x0501f002,
- 0x90000541, 0x5c025800, 0x5c000000, 0x1c01f000,
- 0x4803c856, 0x4d300000, 0x05f1fe15, 0x05000010,
- 0x4926601d, 0x4936600a, 0x0501fa9d, 0x48ee602d,
- 0x64066407, 0x492e6009, 0x4d3c0000, 0x417a7800,
- 0x05b9fd34, 0x5c027800, 0x4d380000, 0x60a27000,
- 0x0009f800, 0x5c027000, 0x90000541, 0x5c026000,
- 0x1c01f000, 0x4803c856, 0x91380595, 0x05020009,
- 0x59a800b6, 0xb00005b4, 0x05020006, 0x41780800,
- 0x05d1ffce, 0x64066203, 0x64a66403, 0x05e9f266,
- 0x05f5fcb7, 0x0005f7dc, 0x4803c856, 0x91380596,
- 0x05020004, 0x60100800, 0x05d1fedb, 0x05f1f7cf,
- 0x91380595, 0x0502000d, 0x59a800b6, 0x90000594,
- 0x0502000a, 0x05d5f832, 0x05f9f963, 0x05020007,
- 0x59340404, 0x80000540, 0x05000004, 0x60180800,
- 0x05d1fecd, 0x05f1f7c1, 0x05f5fca1, 0x0005f7dc,
- 0x4803c856, 0x592c020a, 0x90000585, 0x05000002,
- 0x1c01f000, 0x4803c856, 0x592c020c, 0x8400054a,
- 0x48025a0c, 0x1c01f000, 0x59300809, 0x800409c0,
- 0x05000008, 0x58040208, 0x82000580, 0x00000152,
- 0x05020004, 0x59a8085c, 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,
- 0x05d1fe91, 0x59340200, 0x84000508, 0x48026a00,
- 0x59300416, 0x84000510, 0x48026416, 0x64066203,
- 0x05e9f20d, 0x64166203, 0x0501f00a, 0x59340200,
- 0x8c00050e, 0x05020002, 0x497a6205, 0x640a6203,
- 0x90040486, 0x05fc17c1, 0x59a8005c, 0x48026006,
+ 0x4803c856, 0x4d300000, 0x05f1fe12, 0x05000012,
+ 0x4926601d, 0x4936600a, 0x0501fb1d, 0x492fc857,
+ 0x4933c857, 0x592c0408, 0x8c00051e, 0x05000003,
+ 0x48efc857, 0x48ee602d, 0x64066407, 0x492e6009,
+ 0x4d380000, 0x60027000, 0x0009f839, 0x5c027000,
+ 0x90000541, 0x5c026000, 0x1c01f000, 0x4803c856,
+ 0x4d300000, 0x05f1fdfb, 0x0500000e, 0x48ee602d,
+ 0x481a601e, 0x4936600a, 0x05d5fa18, 0x4926601d,
+ 0x0501fb03, 0x64066407, 0x492e6009, 0x4d380000,
+ 0x61127000, 0x0009f839, 0x5c027000, 0x90000541,
+ 0x5c026000, 0x1c01f000, 0x4803c856, 0x4d300000,
+ 0x05f1fde8, 0x0500000e, 0x481a601e, 0x48ee602d,
+ 0x4936600a, 0x05d5fa05, 0x4926601d, 0x0501faf0,
+ 0x64066407, 0x492e6009, 0x4d380000, 0x61267000,
+ 0x0009f839, 0x5c027000, 0x90000541, 0x5c026000,
+ 0x1c01f000, 0x5930000a, 0x80001540, 0x05a80ad2,
+ 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, 0x4803c856,
+ 0x4c000000, 0x4d2c0000, 0x59300407, 0x90000584,
+ 0x05000019, 0x59300009, 0x80025d40, 0x800001c0,
+ 0x05000015, 0x0501fd86, 0x05000011, 0x0501fd8e,
+ 0x0500000f, 0x59300407, 0x90004590, 0x0500000c,
+ 0x90004591, 0x0500000a, 0x90004583, 0x0500000a,
+ 0x90004582, 0x05000008, 0x9000458a, 0x05000006,
+ 0x592c0408, 0x8c00051e, 0x05000003, 0x80000580,
+ 0x0501f002, 0x90000541, 0x5c025800, 0x5c000000,
+ 0x1c01f000, 0x4803c856, 0x4d300000, 0x05f1fd91,
+ 0x05000010, 0x4926601d, 0x4936600a, 0x0501fa9c,
+ 0x48ee602d, 0x64066407, 0x492e6009, 0x4d3c0000,
+ 0x417a7800, 0x05b9f832, 0x5c027800, 0x4d380000,
+ 0x60a27000, 0x0009f839, 0x5c027000, 0x90000541,
+ 0x5c026000, 0x1c01f000, 0x4803c856, 0x91380595,
+ 0x05020009, 0x59a800bb, 0xb00005b4, 0x05020006,
+ 0x41780800, 0x05d1fc9b, 0x64066203, 0x64a66403,
+ 0x05e9f186, 0x05f5fc58, 0x0009f010, 0x4803c856,
+ 0x91380596, 0x05020004, 0x60100800, 0x05d1fb55,
+ 0x05f1f76c, 0x91380595, 0x0502000d, 0x59a800bb,
+ 0x90000594, 0x0502000a, 0x05d1fcff, 0x05f9f911,
+ 0x05020007, 0x59340404, 0x80000540, 0x05000004,
+ 0x60180800, 0x05d1fb47, 0x05f1f75e, 0x05f5fc42,
+ 0x0009f010, 0x4803c856, 0x592c020a, 0x90000585,
+ 0x05000002, 0x1c01f000, 0x4803c856, 0x592c020c,
+ 0x8400054a, 0x48025a0c, 0x1c01f000, 0x59300809,
+ 0x800409c0, 0x05000008, 0x58040208, 0x82000580,
+ 0x00000152, 0x05020004, 0x59a8085f, 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, 0x05d1fb0b, 0x59340200, 0x84000508,
+ 0x48026a00, 0x59300416, 0x84000510, 0x48026416,
+ 0x64066203, 0x05e9f12d, 0x64166203, 0x0501f00a,
+ 0x59340200, 0x8c00050e, 0x05020002, 0x497a6205,
+ 0x640a6203, 0x90040486, 0x05fc17c1, 0x59a8005f,
+ 0x48026006, 0x1c01f000, 0x4803c856, 0xb13805a1,
+ 0x05000003, 0xb13805a0, 0x0502000a, 0x59303403,
+ 0x82180580, 0x00000086, 0x05f004d3, 0x82180580,
+ 0x00000087, 0x05f004d0, 0x497a6205, 0x642a6203,
0x1c01f000, 0x4803c856, 0xb13805a1, 0x05000003,
- 0xb13805a0, 0x0502000a, 0x59303403, 0x82180580,
- 0x00000086, 0x05f00557, 0x82180580, 0x00000087,
- 0x05f00554, 0x497a6205, 0x642a6203, 0x1c01f000,
- 0x4803c856, 0xb13805a1, 0x05000003, 0xb13805a0,
- 0x05020007, 0x59300403, 0xb0000c91, 0x05aa1f53,
- 0xb0000480, 0x05a81f51, 0x0c01f002, 0x1c01f000,
- 0x0010ae9e, 0x0010ae9d, 0x0010ae9d, 0x0010aeaa,
- 0x0010ae9d, 0x0010ae9d, 0x0010ae9d, 0x0010ae9d,
- 0x0010ae9d, 0x0010aeaa, 0x0010ae9d, 0x0010aeab,
- 0x0010aeab, 0x0010aeab, 0x0010aeab, 0x0010ae9d,
- 0x0010aeae, 0x05a9ff3d, 0x59340200, 0x8c00050e,
- 0x05020002, 0x497a6205, 0x59300809, 0x5804020e,
- 0x8c000502, 0x05000003, 0x64126203, 0x1c01f000,
- 0x640a6203, 0x1c01f000, 0x1c01f000, 0x497a6205,
- 0x64366203, 0x1c01f000, 0x0005f7dc, 0x4803c856,
- 0xb13805a1, 0x05000006, 0xb13805a0, 0x05020009,
- 0x59cc0002, 0x8c000526, 0x05000007, 0x59300403,
- 0xb0000d83, 0x05000005, 0xb0000d89, 0x05000003,
- 0x05f1fd78, 0x1c01f000, 0x59a8005e, 0x48026205,
- 0x640a6203, 0x5930001c, 0x80000540, 0x05000003,
- 0x497a601c, 0x0801f800, 0x1c01f000, 0x497a6205,
- 0x497a6009, 0x64066203, 0x65426403, 0x42000800,
- 0x80000043, 0x0005f6ab, 0x4933c857, 0x4d340000,
- 0x5932680a, 0x59340200, 0x8c00050e, 0x05000005,
- 0x59300407, 0x90000c92, 0x05021004, 0x0c01f805,
- 0x5c026800, 0x1c01f000, 0x05fdfae0, 0x05fdf7fd,
- 0x0010a9ba, 0x0010aeee, 0x0010aef2, 0x0010aef5,
- 0x0010c96b, 0x0010c983, 0x0010c987, 0x0010a9ba,
- 0x0010a9ba, 0x0010a9ba, 0x0010a9ba, 0x0010a9ba,
- 0x0010a9ba, 0x0010a9ba, 0x0010a9ba, 0x0010a9ba,
- 0x0010a9ba, 0x0010a9ba, 0x4803c856, 0x40000000,
- 0x40000000, 0x1c01f000, 0x40000000, 0x40000000,
- 0x1c01f000, 0x59300008, 0x8c000536, 0x0502000b,
- 0x5930001e, 0x4803c857, 0x59300416, 0x4933c857,
- 0x4803c857, 0x8c000502, 0x05000005, 0x4803c857,
- 0x84000540, 0x48026416, 0x1c01f000, 0x42000000,
- 0xd0000000, 0x41300800, 0x05adfe2c, 0x0501f80e,
- 0x0502000c, 0x59300c16, 0x59300403, 0xb0000580,
- 0x05000003, 0x84040d40, 0x0501f004, 0x59a8005c,
- 0x9000040a, 0x48026205, 0x84040d42, 0x48066416,
- 0x1c01f000, 0x4933c857, 0x4d340000, 0x5932680a,
- 0x59340a00, 0x8c04050e, 0x05a80ec0, 0x5930001e,
- 0x80000540, 0x05020031, 0x59300403, 0x4803c857,
- 0xb0000580, 0x05000003, 0x8d0c050e, 0x05020029,
- 0x4d1c0000, 0x41323800, 0x05f1fcdd, 0x05000023,
- 0x4932381e, 0x591c0416, 0x84000542, 0x48023c16,
- 0x4936600a, 0x05d5fb44, 0x4926601d, 0x0501f960,
- 0x591c0407, 0x90000583, 0x05000006, 0x591c0202,
- 0x4802641b, 0x591c0402, 0x4802621b, 0x0501f005,
- 0x591c0202, 0x4802621b, 0x591c0402, 0x4802641b,
- 0x591c0017, 0x48026017, 0x491e602a, 0x64066407,
- 0x64d66403, 0x64066203, 0x42000800, 0x80000040,
- 0x0005feab, 0x411e6000, 0x5c023800, 0x80000580,
- 0x5c026800, 0x1c01f000, 0x411e6000, 0x5c023800,
- 0x59a8005e, 0x48026205, 0x90000541, 0x05fdf7f9,
- 0x4933c857, 0x4d2c0000, 0x4932381e, 0x4a026202,
- 0x0000ffff, 0x591e5809, 0x591c0008, 0x8c00051e,
- 0x05000005, 0x8400051e, 0x48023808, 0x497a580d,
- 0x0501f016, 0x592c040c, 0x8c000518, 0x05000013,
- 0x84000518, 0x48025c0c, 0x4d400000, 0x592e820a,
- 0x64065a0a, 0x0501fbf8, 0x49425a0a, 0x5c028000,
- 0x497a580d, 0x592c040c, 0x8c000512, 0x05000007,
- 0x4d2c0000, 0x84000512, 0x48025c0c, 0x592e580d,
- 0x05adfa2b, 0x5c025800, 0x59a8005e, 0x48026205,
- 0x591c0216, 0x48026218, 0x90000d81, 0x05000006,
- 0x640a3a03, 0x90000585, 0x05000007, 0x497a6017,
- 0x0501f01c, 0x591c0008, 0x84000540, 0x48023808,
- 0x64123a03, 0x591c0416, 0x4803c857, 0x8400051c,
- 0x84000554, 0x48023c16, 0x592c0013, 0x40001000,
- 0x591c0818, 0x80040480, 0x05fe17f1, 0x591c0018,
- 0x82000500, 0xfffffffc, 0x48026017, 0x48023818,
+ 0xb13805a0, 0x05020007, 0x59300403, 0xb0000c91,
+ 0x05aa19f5, 0xb0000480, 0x05a819f3, 0x0c01f002,
+ 0x1c01f000, 0x0010b437, 0x0010b436, 0x0010b436,
+ 0x0010b443, 0x0010b436, 0x0010b436, 0x0010b436,
+ 0x0010b436, 0x0010b436, 0x0010b443, 0x0010b436,
+ 0x0010b444, 0x0010b444, 0x0010b444, 0x0010b444,
+ 0x0010b436, 0x0010b447, 0x05a9f9df, 0x59340200,
+ 0x8c00050e, 0x05020002, 0x497a6205, 0x59300809,
+ 0x5804020e, 0x8c000502, 0x05000003, 0x64126203,
+ 0x1c01f000, 0x640a6203, 0x1c01f000, 0x1c01f000,
+ 0x497a6205, 0x64366203, 0x1c01f000, 0x0009f010,
+ 0x4803c856, 0xb13805a1, 0x05000006, 0xb13805a0,
+ 0x05020009, 0x59cc0002, 0x8c000526, 0x05000007,
+ 0x59300403, 0xb0000d83, 0x05000005, 0xb0000d89,
+ 0x05000003, 0x05f1fd11, 0x1c01f000, 0x59a80061,
+ 0x48026205, 0x640a6203, 0x5930001c, 0x80000540,
+ 0x05000003, 0x497a601c, 0x0801f800, 0x1c01f000,
+ 0x497a6205, 0x497a6009, 0x4a026003, 0x00500001,
+ 0x42000800, 0x80000043, 0x0005f6e2, 0x4933c857,
+ 0x4d340000, 0x5932680a, 0x59340200, 0x8c00050e,
+ 0x05000005, 0x59300407, 0x90000c92, 0x05021004,
+ 0x0c01f805, 0x5c026800, 0x1c01f000, 0x05fdfac1,
+ 0x05fdf7fd, 0x0010af34, 0x0010b487, 0x0010b48b,
+ 0x0010b48e, 0x0010d0b5, 0x0010d0cd, 0x0010d0d1,
+ 0x0010af34, 0x0010af34, 0x0010af34, 0x0010af34,
+ 0x0010af34, 0x0010af34, 0x0010af34, 0x0010af34,
+ 0x0010af34, 0x0010af34, 0x0010af34, 0x4803c856,
+ 0x40000000, 0x40000000, 0x1c01f000, 0x40000000,
+ 0x40000000, 0x1c01f000, 0x59300008, 0x8c000536,
+ 0x0502000b, 0x5930001e, 0x4803c857, 0x59300416,
+ 0x4933c857, 0x4803c857, 0x8c000502, 0x05000005,
+ 0x4803c857, 0x84000540, 0x48026416, 0x1c01f000,
+ 0x42000000, 0xd0000000, 0x41300800, 0x05adf92f,
+ 0x0501f80e, 0x0502000c, 0x59300c16, 0x59300403,
+ 0xb0000580, 0x05000003, 0x84040d40, 0x0501f004,
+ 0x59a8005f, 0x9000040a, 0x48026205, 0x84040d42,
+ 0x48066416, 0x1c01f000, 0x4933c857, 0x4d340000,
+ 0x5932680a, 0x59340a00, 0x8c04050e, 0x05a80962,
+ 0x5930001e, 0x80000540, 0x05020031, 0x59300403,
+ 0x4803c857, 0xb0000580, 0x05000003, 0x8d0c050e,
+ 0x05020029, 0x4d1c0000, 0x41323800, 0x05f1fc59,
+ 0x05000023, 0x4932381e, 0x591c0416, 0x84000542,
+ 0x48023c16, 0x4936600a, 0x05d5f874, 0x4926601d,
+ 0x0501f95f, 0x591c0407, 0x90000583, 0x05000006,
+ 0x591c0202, 0x4802641b, 0x591c0402, 0x4802621b,
+ 0x0501f005, 0x591c0202, 0x4802621b, 0x591c0402,
+ 0x4802641b, 0x591c0017, 0x48026017, 0x491e602a,
+ 0x64066407, 0x64d66403, 0x64066203, 0x42000800,
+ 0x80000040, 0x0005fee2, 0x411e6000, 0x5c023800,
+ 0x80000580, 0x5c026800, 0x1c01f000, 0x411e6000,
+ 0x5c023800, 0x59a80061, 0x48026205, 0x90000541,
+ 0x05fdf7f9, 0x4933c857, 0x4d2c0000, 0x4932381e,
+ 0x4a026202, 0x0000ffff, 0x591e5809, 0x591c0008,
+ 0x8c00051e, 0x05000005, 0x8400051e, 0x48023808,
+ 0x497a580d, 0x0501f016, 0x592c040c, 0x8c000518,
+ 0x05000013, 0x84000518, 0x48025c0c, 0x4d400000,
+ 0x592e820a, 0x64065a0a, 0x0501fc05, 0x49425a0a,
+ 0x5c028000, 0x497a580d, 0x592c040c, 0x8c000512,
+ 0x05000007, 0x4d2c0000, 0x84000512, 0x48025c0c,
+ 0x592e580d, 0x05a9fcc9, 0x5c025800, 0x59a80061,
+ 0x48026205, 0x591c0216, 0x48026218, 0x90000d81,
+ 0x05000006, 0x640a3a03, 0x90000585, 0x05000007,
+ 0x497a6017, 0x0501f01b, 0x591c0008, 0x84000540,
+ 0x48023808, 0x64123a03, 0x591c0416, 0x4803c857,
+ 0x8400051c, 0x84000554, 0x48023c16, 0x592c0013,
+ 0x40001000, 0x591c0818, 0x80040480, 0x05fe17f1,
+ 0x82040500, 0xfffffffc, 0x48026017, 0x48023818,
0x591c0a16, 0x4807c857, 0x90040d85, 0x05020005,
0x480bc857, 0x4803c857, 0x4a023814, 0xffffffff,
0x591c0402, 0x4802641b, 0x591c0202, 0x4802621b,
0x591e680a, 0x4936600a, 0x64066407, 0x64e66403,
- 0x64066203, 0x42000800, 0x80000040, 0x0005feab,
+ 0x64066203, 0x42000800, 0x80000040, 0x0005fee2,
0x5c025800, 0x1c01f000, 0x4933c857, 0x59300416,
0x8c000514, 0x05000015, 0x8c00051c, 0x05020012,
0x59300018, 0x80100480, 0x05001006, 0x05000005,
@@ -11287,89 +11645,89 @@ static const uint32_t isp_2500_risc_code[] = {
0x1c01f000, 0x59300c03, 0x4933c857, 0x4807c857,
0x900404b4, 0x05001005, 0x900404bc, 0x05021003,
0x80000580, 0x1c01f000, 0x90000541, 0x05fdf7fe,
- 0x42000000, 0x0010e3b6, 0x0511f806, 0x4d340000,
+ 0x42000000, 0x00112357, 0x0511f9e9, 0x4d340000,
0x4d240000, 0x5932481d, 0x5932680a, 0x59300407,
0x90000c92, 0x05021003, 0x4803c857, 0x0c01f804,
- 0x5c024800, 0x5c026800, 0x1c01f000, 0x0010aff5,
- 0x0010aff7, 0x0010affa, 0x0010b035, 0x0010c948,
- 0x0010c915, 0x0010c94c, 0x0010aff6, 0x0010aff5,
- 0x0010aff6, 0x0010aff6, 0x0010aff6, 0x0010aff6,
- 0x0010aff6, 0x0010aff6, 0x0010aff6, 0x0010aff6,
- 0x0010aff6, 0x05a9fde5, 0x1c01f000, 0x40000000,
+ 0x5c024800, 0x5c026800, 0x1c01f000, 0x0010b58d,
+ 0x0010b58f, 0x0010b592, 0x0010b5cd, 0x0010d092,
+ 0x0010d05f, 0x0010d096, 0x0010b58e, 0x0010b58d,
+ 0x0010b58e, 0x0010b58e, 0x0010b58e, 0x0010b58e,
+ 0x0010b58e, 0x0010b58e, 0x0010b58e, 0x0010b58e,
+ 0x0010b58e, 0x05a9f888, 0x1c01f000, 0x40000000,
0x40000000, 0x1c01f000, 0x59300403, 0x82000d80,
0x00000085, 0x05020007, 0x4a026403, 0x0000008b,
- 0x642e6203, 0x42000800, 0x80004040, 0x0005f6ab,
+ 0x642e6203, 0x42000800, 0x80004040, 0x0005f6e2,
0x82000d80, 0x0000008b, 0x0502002e, 0x4d3c0000,
- 0x417a7800, 0x05b9fb23, 0x5c027800, 0x42000000,
- 0x0010e454, 0x050dffcf, 0x05fdfcbb, 0x0500000e,
+ 0x417a7800, 0x05b5fe22, 0x5c027800, 0x42000000,
+ 0x001123f8, 0x0511f9b2, 0x05fdfcac, 0x0500000e,
0x4d2c0000, 0x59325809, 0x4a025a08, 0x00000103,
0x59300402, 0x48025c0a, 0x641a5a0a, 0x497a580d,
- 0x0001fb82, 0x59300a29, 0x90040d83, 0x05fc0d8d,
- 0x5c025800, 0x60443000, 0x050dfd65, 0x64066403,
- 0x497a6009, 0x05b9fdf6, 0x59240400, 0x8c00050a,
+ 0x0001fba8, 0x59300a29, 0x90040d83, 0x05fc0d8e,
+ 0x5c025800, 0x60443000, 0x050dff2a, 0x64066403,
+ 0x497a6009, 0x05b9f8fa, 0x59240400, 0x8c00050a,
0x0502000b, 0x41782800, 0x60103000, 0x4d400000,
- 0x60a68000, 0x0509ff76, 0x5c028000, 0x64126407,
+ 0x60a68000, 0x050df925, 0x5c028000, 0x64126407,
0x641e6203, 0x6406642c, 0x1c01f000, 0x602c0800,
- 0x05d1fcbd, 0x64066407, 0x64066203, 0x05e9f03e,
+ 0x05d1f938, 0x64066407, 0x64066203, 0x05e5f75f,
0x1c01f000, 0x59300416, 0x8c00051a, 0x05020021,
0x5930080a, 0x58040200, 0x8c00050e, 0x05000006,
0x59300a03, 0x90040590, 0x05000003, 0x90040583,
- 0x05020018, 0x05f9ffcb, 0x59300203, 0x90000d89,
+ 0x05020018, 0x05f9ffa5, 0x59300203, 0x90000d89,
0x0500000b, 0x48026429, 0x4a026403, 0x00000085,
0x59300416, 0x8400055a, 0x8400055e, 0x48026416,
- 0x64266203, 0x640a6407, 0x640e6229, 0x59a8005d,
- 0x48026205, 0x42000800, 0x80004040, 0x0501fe48,
- 0x0005feab, 0x4203e000, 0xb0800000, 0x6023f800,
- 0x1c01f000, 0x41780800, 0x59a8105a, 0x60c80000,
- 0x05e5ff32, 0x800811c0, 0x05020002, 0x60501000,
- 0x480b505c, 0x59a8105b, 0x480b5050, 0x41780800,
- 0x61900000, 0x05e5ff29, 0x800811c0, 0x05020002,
- 0x60501000, 0x480b505d, 0x9008140a, 0x480b505e,
- 0x60040800, 0x05e9fce2, 0x42000000, 0x30000000,
- 0x40080800, 0x0001f93a, 0x600c0800, 0x59a8103d,
- 0x05e9fccd, 0x05d5f088, 0x64a3505c, 0x6453505d,
- 0x4a035050, 0x000007d0, 0x60781000, 0x480b505e,
- 0x60040800, 0x05e9fcd2, 0x42000000, 0x30000000,
- 0x40080800, 0x0001f93a, 0x600c0800, 0x59a8103d,
- 0x05e9f4bd, 0x4933c857, 0x4d2c0000, 0x59300403,
+ 0x64266203, 0x640a6407, 0x640e6229, 0x59a80060,
+ 0x48026205, 0x42000800, 0x80004040, 0x0501fe56,
+ 0x0005fee2, 0x4203e000, 0xb0800000, 0x6023f800,
+ 0x1c01f000, 0x41780800, 0x59a8105d, 0x60c80000,
+ 0x05e5fe53, 0x800811c0, 0x05020002, 0x60501000,
+ 0x480b505f, 0x59a8105e, 0x480b5053, 0x41780800,
+ 0x61900000, 0x05e5fe4a, 0x800811c0, 0x05020002,
+ 0x60501000, 0x480b5060, 0x9008140a, 0x480b5061,
+ 0x60040800, 0x05e9fc08, 0x42000000, 0x30000000,
+ 0x40080800, 0x0001f942, 0x600c0800, 0x59a81040,
+ 0x05e9fbf3, 0x05d1f562, 0x64a3505f, 0x64535060,
+ 0x4a035053, 0x000007d0, 0x60781000, 0x480b5061,
+ 0x60040800, 0x05e9fbf8, 0x42000000, 0x30000000,
+ 0x40080800, 0x0001f942, 0x600c0800, 0x59a81040,
+ 0x05e9f3e3, 0x4933c857, 0x4d2c0000, 0x59300403,
0x900005be, 0x05020004, 0x59325819, 0x812e59c0,
- 0x05ae0906, 0x5c025800, 0x1c01f000, 0x4933c857,
+ 0x05aa0ba5, 0x5c025800, 0x1c01f000, 0x4933c857,
0x813669c0, 0x0500000c, 0x59340200, 0x8c000508,
0x05000009, 0x4a026416, 0x00000100, 0x8c00050c,
0x59300008, 0x05000002, 0x84000544, 0x84000542,
0x48026008, 0x1c01f000, 0x59300416, 0x8c000510,
- 0x1c01f000, 0x4937c857, 0x4d300000, 0x05f1fb60,
+ 0x1c01f000, 0x4937c857, 0x4d300000, 0x05f1fadd,
0x0500000d, 0x4926601d, 0x4936600a, 0x05fdffe8,
- 0x64066407, 0x492e6009, 0x60240800, 0x05d1fc42,
- 0x4d380000, 0x60ce7000, 0x0009f800, 0x5c027000,
+ 0x64066407, 0x492e6009, 0x60240800, 0x05d1f8bd,
+ 0x4d380000, 0x60ce7000, 0x0009f839, 0x5c027000,
0x90000541, 0x5c026000, 0x1c01f000, 0x4933c857,
0x4d2c0000, 0x4c580000, 0x4d3c0000, 0x59325809,
- 0x91380595, 0x0502001d, 0x59a8b0b6, 0x90580c99,
- 0x05001002, 0x6060b000, 0x8058b104, 0x0501fa5b,
- 0x80000580, 0x0501fa6a, 0x912cac0d, 0x91cca406,
- 0x050dffe3, 0x4c600000, 0x6004c000, 0x592c100e,
+ 0x91380595, 0x0502001d, 0x59a8b0bb, 0x90580c99,
+ 0x05001002, 0x6060b000, 0x8058b104, 0x0501fa69,
+ 0x80000580, 0x0501fa78, 0x912cac0d, 0x91cca406,
+ 0x0511f9c6, 0x4c600000, 0x6004c000, 0x592c100e,
0x8c080518, 0x05020006, 0x59240005, 0x592c1011,
0x80080580, 0x05020006, 0x4178c000, 0x5930100a,
- 0x58081403, 0x417a7800, 0x05b9fad2, 0x5c00c000,
- 0x05f1fd0e, 0x0501f005, 0x6008b000, 0x0501fa60,
- 0x05f5f9eb, 0x0005ffdc, 0x5c027800, 0x5c00b000,
+ 0x58081403, 0x417a7800, 0x05b5fdd1, 0x5c00c000,
+ 0x05f1fcac, 0x0501f005, 0x6008b000, 0x0501fa6e,
+ 0x05f5f98d, 0x0009f810, 0x5c027800, 0x5c00b000,
0x5c025800, 0x1c01f000, 0x4933c856, 0x4a02601d,
- 0x0010e512, 0x4936600a, 0x05fdffad, 0x64066407,
- 0x492e6009, 0x4d380000, 0x61367000, 0x0009f800,
+ 0x001124b6, 0x4936600a, 0x05fdffad, 0x64066407,
+ 0x492e6009, 0x4d380000, 0x61367000, 0x0009f839,
0x5c027000, 0x90000541, 0x1c01f000, 0x4803c856,
- 0x4d2c0000, 0x91380595, 0x05020025, 0x59a808b6,
+ 0x4d2c0000, 0x91380595, 0x05020025, 0x59a808bb,
0x59325809, 0x5930040d, 0x80040580, 0x05020020,
0x4c500000, 0x4c540000, 0x4c580000, 0x91cca406,
0x4050a800, 0x5930b40d, 0x9058b403, 0x8058b104,
- 0x050dffe6, 0x91cca406, 0x592cb209, 0x9058b403,
- 0x8058b104, 0x912cac0a, 0x050dffa5, 0x592e5801,
+ 0x0511f9c9, 0x91cca406, 0x592cb209, 0x9058b403,
+ 0x8058b104, 0x912cac0a, 0x0511f988, 0x592e5801,
0x812e59c0, 0x05fe07f9, 0x5931d82d, 0x58ef400b,
0x58ee580d, 0x4a025a08, 0x00000103, 0x58ec0009,
0x0801f800, 0x59300402, 0x5c00b000, 0x5c00a800,
- 0x5c00a000, 0x5c025800, 0x1c01f000, 0x05f5f9b0,
+ 0x5c00a000, 0x5c025800, 0x1c01f000, 0x05f5f952,
0x5c025800, 0x1c01f000, 0x4933c857, 0x90040db5,
- 0x05000005, 0x5930141b, 0x0501f83f, 0x05000025,
- 0x0501f006, 0x4d300000, 0x5932602a, 0x0501f843,
+ 0x05000005, 0x5930141b, 0x0501f843, 0x05000025,
+ 0x0501f006, 0x4d300000, 0x5932602a, 0x0501f847,
0x5c026000, 0x0500001e, 0x591c0c07, 0x90040583,
0x05000003, 0x90040586, 0x0502001b, 0x591c0c02,
0x5930041b, 0x80040580, 0x05000009, 0x5930021b,
@@ -11378,3242 +11736,3378 @@ static const uint32_t isp_2500_risc_code[] = {
0x82040580, 0x0000ffff, 0x05000005, 0x591c0202,
0x59300a1b, 0x80040580, 0x05020007, 0x591c000a,
0x5930080a, 0x80040580, 0x1c01f000, 0x417a3800,
- 0x90000541, 0x1c01f000, 0x4803c856, 0x4203e000,
- 0xb0800000, 0x600009fe, 0x4203f800, 0x30000000,
- 0x40000000, 0x80040840, 0x05a80c90, 0x05ffb7fb,
+ 0x90000541, 0x1c01f000, 0x59a80c9f, 0x8c040502,
+ 0x0502000c, 0x4803c856, 0x4203e000, 0xb0800000,
+ 0x600009fe, 0x4203f800, 0x30000000, 0x40000000,
+ 0x80040840, 0x05a40f30, 0x05ffb7fb, 0x80040d81,
0x1c01f000, 0x4803c856, 0x4203e000, 0xb0800000,
0x4203f800, 0x20000000, 0x1c01f000, 0x59300808,
0x8c04051e, 0x592c0c0c, 0x05020002, 0x8c040518,
- 0x1c01f000, 0x05fdfb66, 0x05000007, 0x800800ca,
- 0x800808c8, 0x80040c00, 0x82063c00, 0x00111b00,
- 0x491fc857, 0x1c01f000, 0x0501fd45, 0x05020007,
+ 0x1c01f000, 0x05fdfb53, 0x05000007, 0x800800ca,
+ 0x800808c8, 0x80040c00, 0x82063c00, 0x00115aa4,
+ 0x491fc857, 0x1c01f000, 0x0501fd4f, 0x05020007,
0x59301402, 0x05fdfff4, 0x05000007, 0x411c0000,
0x81300580, 0x05000003, 0x81780500, 0x0501f002,
0x81300540, 0x1c01f000, 0x4d300000, 0x83440480,
- 0x000007f0, 0x05001003, 0x05d5f907, 0x0501f002,
- 0x0001fb00, 0x05020008, 0x4936600a, 0x05d5f8fa,
- 0x4926601d, 0x05b9f9b3, 0x80000580, 0x5c026000,
- 0x1c01f000, 0x90000541, 0x05fdf7fd, 0x4933c857,
- 0x05fdfb49, 0x05a80c59, 0x4d2c0000, 0x4d340000,
- 0x4d440000, 0x4c580000, 0x59325809, 0x5932680a,
- 0x49425a0a, 0x05d9fe7a, 0x592e8c0a, 0x592c420b,
- 0x9020050f, 0x0c01f806, 0x5c00b000, 0x5c028800,
- 0x5c026800, 0x5c025800, 0x1c01f000, 0x0010b1a5,
- 0x0010b1c6, 0x0010b1cc, 0x0010b1cf, 0x0010b1d7,
- 0x0010b1a3, 0x0010b1a3, 0x0010b1a3, 0x0010b1da,
- 0x0010b1e6, 0x0010b1e6, 0x0010b1a3, 0x0010b1a3,
- 0x0010b1a3, 0x0010b1a3, 0x0010b1a3, 0x4803c857,
- 0x05a9fc36, 0x814281c0, 0x05020011, 0x41785800,
- 0x592c0408, 0x8c00051c, 0x05020002, 0x59345c05,
- 0x442c2800, 0x59340008, 0x48002802, 0x59340009,
- 0x48002801, 0x59340006, 0x48002804, 0x59340007,
- 0x48002803, 0x602cb000, 0x0501f032, 0x592c020b,
- 0x8c00051e, 0x6008b000, 0x0502002e, 0x9004b540,
- 0x0500002c, 0x44042800, 0x5932680a, 0x59340400,
- 0x48002801, 0x59340200, 0x90000501, 0x48002802,
- 0x600cb000, 0x0501f023, 0x814281c0, 0x05fe07f0,
- 0x59345c05, 0x442c2800, 0x6004b000, 0x0501f01d,
- 0x9140b540, 0x0500001b, 0x0501f024, 0x814281c0,
- 0x05020022, 0x59340200, 0x44002800, 0x59340001,
- 0x48002801, 0x6008b000, 0x0501f012, 0x9140b540,
- 0x0502001a, 0x0501f00f, 0x9140b540, 0x0500000d,
- 0x8c20051c, 0x05020015, 0x05d5f880, 0x05000013,
- 0x8c20050e, 0x05000002, 0x497a600a, 0x4178b000,
- 0x497a5a0a, 0x0501f003, 0x9140b540, 0x0502000b,
- 0x592c0408, 0x8400051c, 0x48025c08, 0x592c020b,
- 0x82000500, 0x00003fff, 0x48025a0b, 0x0501f92b,
- 0x497a6009, 0x0001f382, 0x592c020b, 0x8c00051e,
- 0x6008b000, 0x05fe07f3, 0x9004b540, 0x05fc07f1,
- 0x44042800, 0x6004b000, 0x05fdf7ee, 0x4937c857,
- 0x4d300000, 0x05f1fa06, 0x0500000d, 0x4926601d,
- 0x4936600a, 0x05fdfe8e, 0x64066407, 0x492e6009,
- 0x602c0800, 0x05d1fae8, 0x4d380000, 0x610e7000,
- 0x0009f800, 0x5c027000, 0x90000541, 0x5c026000,
- 0x1c01f000, 0x4937c857, 0x4d2c0000, 0x4d200000,
- 0x59340013, 0x80024130, 0x59325809, 0x91380595,
- 0x05020022, 0x59a800b6, 0x90000584, 0x0502001f,
- 0x59240005, 0x592c100d, 0x80080580, 0x05020011,
- 0x4d440000, 0x592e8c0a, 0x592c020b, 0x4803c856,
- 0x82000500, 0x00000080, 0x84000548, 0x4d3c0000,
- 0x60027820, 0x8c00050e, 0x05000002, 0x853e7d5c,
- 0x05d1ffb7, 0x5c027800, 0x5c028800, 0x0501f003,
- 0x4803c856, 0x05d5f831, 0x05fdfa9b, 0x05000011,
- 0x4d400000, 0x60028000, 0x41780800, 0x05fdff4c,
- 0x5c028000, 0x0501f00a, 0x05d5f828, 0x05fe07f7,
- 0x05fdfa91, 0x05000007, 0x4c580000, 0x6008b000,
- 0x0501f8fb, 0x5c00b000, 0x05f5f885, 0x0005ffdc,
- 0x5c024000, 0x5c025800, 0x1c01f000, 0x4937c857,
- 0x4d300000, 0x05f1f9be, 0x0500000f, 0x4926601d,
- 0x4936600a, 0x05fdfe46, 0x64066407, 0x4d3c0000,
- 0x4d380000, 0x417a7800, 0x05d1fa95, 0x492e6009,
- 0x60127000, 0x0009f800, 0x5c027000, 0x5c027800,
- 0x90000541, 0x5c026000, 0x1c01f000, 0x4937c857,
- 0x4d300000, 0x05f1f9aa, 0x0500000d, 0x4926601d,
- 0x4936600a, 0x05fdfe32, 0x600c0800, 0x05d1fa8e,
- 0x64066407, 0x492e6009, 0x4d380000, 0x61467000,
- 0x0009f800, 0x5c027000, 0x90000541, 0x5c026000,
- 0x1c01f000, 0x4933c857, 0x4c580000, 0x4d240000,
- 0x4d200000, 0x4d400000, 0x4d440000, 0x4d3c0000,
- 0x5932481d, 0x59240a00, 0x8c040500, 0x0500008b,
- 0x05b9fba3, 0x59325809, 0x91383595, 0x05020056,
- 0x60100800, 0x05d1fa74, 0x60040800, 0x05d1fb5b,
- 0x812e59c0, 0x05020043, 0x59a800bb, 0x80000040,
- 0x480350bb, 0x050dfea5, 0x05000004, 0x59240200,
- 0x8400051a, 0x48024a00, 0x417a8000, 0x59cc0000,
- 0x82000500, 0x00ffffff, 0x59240805, 0x4803c857,
- 0x4807c857, 0x800409c0, 0x05000016, 0x80041580,
- 0x05000014, 0x4c000000, 0x60aa8000, 0x59240400,
+ 0x000007f0, 0x05001006, 0x83440480, 0x00000800,
+ 0x05021003, 0x05d1fe31, 0x0501f002, 0x0001fb08,
+ 0x05020008, 0x4936600a, 0x05d1fe24, 0x4926601d,
+ 0x05b5fcab, 0x80000580, 0x5c026000, 0x1c01f000,
+ 0x90000541, 0x05fdf7fd, 0x4933c857, 0x05fdfb33,
+ 0x05a40ef5, 0x4d2c0000, 0x4d340000, 0x4d440000,
+ 0x4c580000, 0x59325809, 0x5932680a, 0x49425a0a,
+ 0x05d9fbee, 0x592e8c0a, 0x592c420b, 0x9020050f,
+ 0x0c01f806, 0x5c00b000, 0x5c028800, 0x5c026800,
+ 0x5c025800, 0x1c01f000, 0x0010b744, 0x0010b765,
+ 0x0010b76b, 0x0010b76e, 0x0010b776, 0x0010b742,
+ 0x0010b742, 0x0010b742, 0x0010b779, 0x0010b785,
+ 0x0010b785, 0x0010b742, 0x0010b742, 0x0010b742,
+ 0x0010b742, 0x0010b742, 0x4803c857, 0x05a5fed2,
+ 0x814281c0, 0x05020011, 0x41785800, 0x592c0408,
+ 0x8c00051c, 0x05020002, 0x59345c05, 0x442c2800,
+ 0x59340008, 0x48002802, 0x59340009, 0x48002801,
+ 0x59340006, 0x48002804, 0x59340007, 0x48002803,
+ 0x602cb000, 0x0501f032, 0x592c020b, 0x8c00051e,
+ 0x6008b000, 0x0502002e, 0x9004b540, 0x0500002c,
+ 0x44042800, 0x5932680a, 0x59340400, 0x48002801,
+ 0x59340200, 0x90000501, 0x48002802, 0x600cb000,
+ 0x0501f023, 0x814281c0, 0x05fe07f0, 0x59345c05,
+ 0x442c2800, 0x6004b000, 0x0501f01d, 0x9140b540,
+ 0x0500001b, 0x0501f024, 0x814281c0, 0x05020022,
+ 0x59340200, 0x44002800, 0x59340001, 0x48002801,
+ 0x6008b000, 0x0501f012, 0x9140b540, 0x0502001a,
+ 0x0501f00f, 0x9140b540, 0x0500000d, 0x8c20051c,
+ 0x05020015, 0x05d1fdaa, 0x05000013, 0x8c20050e,
+ 0x05000002, 0x497a600a, 0x4178b000, 0x497a5a0a,
+ 0x0501f003, 0x9140b540, 0x0502000b, 0x592c0408,
+ 0x8400051c, 0x48025c08, 0x592c020b, 0x82000500,
+ 0x00003fff, 0x48025a0b, 0x0501f932, 0x497a6009,
+ 0x0001f3a8, 0x592c020b, 0x8c00051e, 0x6008b000,
+ 0x05fe07f3, 0x9004b540, 0x05fc07f1, 0x44042800,
+ 0x6004b000, 0x05fdf7ee, 0x4937c857, 0x4d300000,
+ 0x05f1f97c, 0x0500000d, 0x4926601d, 0x4936600a,
+ 0x05fdfe87, 0x64066407, 0x492e6009, 0x602c0800,
+ 0x05cdff5c, 0x4d380000, 0x610e7000, 0x0009f839,
+ 0x5c027000, 0x90000541, 0x5c026000, 0x1c01f000,
+ 0x4937c857, 0x4d2c0000, 0x4d200000, 0x59340013,
+ 0x80024130, 0x59325809, 0x91380595, 0x05020022,
+ 0x59a800bb, 0x90000584, 0x0502001f, 0x59240005,
+ 0x592c100d, 0x80080580, 0x05020011, 0x4d440000,
+ 0x592e8c0a, 0x592c020b, 0x4803c856, 0x82000500,
+ 0x00000080, 0x84000548, 0x4d3c0000, 0x60027820,
+ 0x8c00050e, 0x05000002, 0x853e7d5c, 0x05d1fcdd,
+ 0x5c027800, 0x5c028800, 0x0501f003, 0x4803c856,
+ 0x05d1fd5b, 0x05fdfa85, 0x05000011, 0x4d400000,
+ 0x60028000, 0x41780800, 0x05fdff4c, 0x5c028000,
+ 0x0501f00a, 0x05d1fd52, 0x05fe07f7, 0x05fdfa7b,
+ 0x05000007, 0x4c580000, 0x6008b000, 0x0501f902,
+ 0x5c00b000, 0x05f5f820, 0x0009f810, 0x5c024000,
+ 0x5c025800, 0x1c01f000, 0x4937c857, 0x4d300000,
+ 0x05f1f934, 0x0500000f, 0x4926601d, 0x4936600a,
+ 0x05fdfe3f, 0x64066407, 0x4d3c0000, 0x4d380000,
+ 0x417a7800, 0x05cdff09, 0x492e6009, 0x60127000,
+ 0x0009f839, 0x5c027000, 0x5c027800, 0x90000541,
+ 0x5c026000, 0x1c01f000, 0x4937c857, 0x4d300000,
+ 0x05f1f920, 0x0500000d, 0x4926601d, 0x4936600a,
+ 0x05fdfe2b, 0x600c0800, 0x05cdff02, 0x64066407,
+ 0x492e6009, 0x4d380000, 0x61467000, 0x0009f839,
+ 0x5c027000, 0x90000541, 0x5c026000, 0x1c01f000,
+ 0x4933c857, 0x4c580000, 0x4d240000, 0x4d200000,
+ 0x4d400000, 0x4d440000, 0x4d3c0000, 0x5932481d,
+ 0x59240a00, 0x8c040500, 0x05000092, 0x05b5fea0,
+ 0x59325809, 0x91383595, 0x05020051, 0x60100800,
+ 0x05cdfee8, 0x812e59c0, 0x0502003e, 0x59a800c0,
+ 0x80000040, 0x480350c0, 0x0511f883, 0x05000004,
+ 0x59240200, 0x8400051a, 0x48024a00, 0x417a8000,
+ 0x05f5fc6b, 0x05000012, 0x60aa8000, 0x59240400,
0x8c00050a, 0x05020004, 0x60083000, 0x61fe89ff,
- 0x0509fd0e, 0x417a7800, 0x05b9fbcb, 0x05b9fc3c,
+ 0x0509fec1, 0x417a7800, 0x05b5fedd, 0x05b5ff4f,
0x600a8000, 0x59cc0c08, 0x8c04051e, 0x05020004,
- 0x59240a00, 0x84040d56, 0x48064a00, 0x5c000000,
+ 0x59240a00, 0x84040d56, 0x48064a00, 0x60040800,
+ 0x05d1f804, 0x59cc0000, 0x82000500, 0x00ffffff,
0x48024805, 0x40000800, 0x812000f0, 0x80040540,
0x48026813, 0x40040000, 0xb1200c80, 0x05021004,
0x49238830, 0x84000570, 0x48038832, 0x59240200,
0x8400051e, 0x82000540, 0x00000206, 0x48024a00,
0x59240400, 0x8c00050c, 0x05000004, 0x65466429,
- 0x0501f84d, 0x0501f045, 0x60040000, 0x41781800,
- 0x05d5fb94, 0x0501ff8c, 0x0005ffdc, 0x0501f03f,
- 0x592c000c, 0x82000500, 0x00ffffff, 0x05020008,
- 0x05d9fd3f, 0x59cc0000, 0x82000500, 0x00ffffff,
- 0x44002800, 0x6004b000, 0x0501f850, 0x05f1fb17,
- 0x0501f032, 0x812e59c0, 0x0502002d, 0x59340412,
- 0x800001c0, 0x05000027, 0x80000040, 0x48026c12,
- 0x59cc0c07, 0x82043500, 0x000000ff, 0x481bc857,
- 0x90180583, 0x05020017, 0x59cc0207, 0x4803c857,
+ 0x0501f85b, 0x0501f053, 0x60040000, 0x41781800,
+ 0x05d5f8e0, 0x0505f8a7, 0x0009f810, 0x0501f04d,
+ 0x60040800, 0x05cdffe3, 0x592c000c, 0x82000500,
+ 0x00ffffff, 0x05020008, 0x05d9fab8, 0x59cc0000,
+ 0x82000500, 0x00ffffff, 0x44002800, 0x6004b000,
+ 0x0501f85c, 0x05f1fab3, 0x0501f03e, 0x812e59c0,
+ 0x05020039, 0x600c0800, 0x05b9f873, 0x05020003,
+ 0x0505f8f0, 0x0501f037, 0x59340412, 0x800001c0,
+ 0x0500002e, 0x80000040, 0x48026c12, 0x59cc0c07,
+ 0x82043500, 0x000000ff, 0x481bc857, 0x90180585,
+ 0x05000020, 0x90180583, 0x05020016, 0x59cc0207,
0x82000d00, 0x0000ff00, 0x4807c857, 0x82040580,
0x00000d00, 0x0502000f, 0x59240805, 0x82040d00,
0x00ffffff, 0x0500000b, 0x59240a00, 0x84040d48,
- 0x48064a00, 0x602c0800, 0x05d1fa03, 0x64066407,
- 0x64066203, 0x64066403, 0x05e5fd83, 0x0501f00f,
- 0x600c0800, 0x05d1f9fc, 0x4a026202, 0x0000ffff,
- 0x64066203, 0x65466403, 0x05e5fd7b, 0x0501f007,
- 0x600c2800, 0x0501fe40, 0x0501f004, 0x6008b000,
- 0x0501f83b, 0x05f1ffc6, 0x5c027800, 0x5c028800,
- 0x5c028000, 0x5c024000, 0x5c024800, 0x5c00b000,
- 0x1c01f000, 0x4933c857, 0x61f2880f, 0x42003000,
- 0x00fffffc, 0x05d1fa0b, 0x05aa0ad0, 0x4936600a,
- 0x05fdfd83, 0x417a7800, 0x05d1f9d5, 0x600c0800,
- 0x05d1f9dd, 0x497a6c12, 0x59300429, 0x900005a1,
- 0x05020003, 0x599c0208, 0x48026c12, 0x64066203,
- 0x640a6403, 0x05e5f558, 0x492fc857, 0x4c580000,
- 0x4c000000, 0x8058b1c0, 0x0500000a, 0x82580500,
- 0xfffffff0, 0x05aa0ab9, 0x8058b0d0, 0x592c040c,
- 0x82000500, 0xfffff0ff, 0x80580540, 0x48025c0c,
- 0x5c000000, 0x5c00b000, 0x1c01f000, 0x492fc857,
- 0x4c000000, 0x4c040000, 0x800000d8, 0x592c0c0c,
- 0x82040d00, 0xffff0fff, 0x80040540, 0x48025c0c,
- 0x5c000800, 0x5c000000, 0x1c01f000, 0x4933c857,
- 0x4d2c0000, 0x59325809, 0x592c020b, 0x8400055e,
- 0x48025a0b, 0x4c500000, 0x4c540000, 0x4c580000,
- 0x05fdffda, 0x05d9fcc2, 0x64602800, 0x80142800,
- 0x8058b040, 0x91cca407, 0x4014a800, 0x050dfd60,
- 0x5c00b000, 0x5c00a800, 0x5c00a000, 0x5c025800,
- 0x1c01f000, 0x59325809, 0x592c0208, 0x82000580,
- 0x00000152, 0x1c01f000, 0x59325809, 0x592c020b,
- 0x8400055c, 0x48025a0b, 0x1c01f000, 0x59300809,
- 0x58040208, 0x82000500, 0x000000ff, 0xb00005b9,
- 0x1c01f000, 0x5930002b, 0x80000540, 0x05ae0bb1,
- 0x1c01f000, 0x59300008, 0x82000500, 0x04000800,
- 0x82000580, 0x04000800, 0x05020003, 0x59300221,
- 0x48025c13, 0x1c01f000, 0x592c040b, 0x82000500,
- 0x0000f000, 0x82000580, 0x00003000, 0x05020003,
- 0x4a026416, 0x00000100, 0x1c01f000, 0x4d2c0000,
- 0x59325809, 0x59300203, 0x4933c857, 0x492fc857,
- 0x493bc857, 0x4803c857, 0x90003491, 0x05aa1a5f,
- 0x0c01f803, 0x5c025800, 0x1c01f000, 0x0010b390,
- 0x0010b396, 0x0010b3ce, 0x0010b390, 0x0010b390,
- 0x0010b390, 0x0010b390, 0x0010b390, 0x0010b391,
- 0x0010b390, 0x0010b390, 0x0010b390, 0x0010b390,
- 0x0010b390, 0x0010b4a6, 0x0010b390, 0x0010b390,
- 0x05a9fa4a, 0xb13834a0, 0x05aa1a48, 0x493a6403,
- 0x64066203, 0x05e5f4dc, 0x91380593, 0x05020010,
- 0x492fc857, 0x05fdfd05, 0x05000003, 0x643a6203,
- 0x0501f005, 0x592c0010, 0x800001c0, 0x05000005,
- 0x640a6203, 0x59a8005c, 0x48026006, 0x1c01f000,
- 0x64025a0a, 0x0001fb82, 0x0005f7dc, 0x913805a7,
- 0x0500001e, 0x91380594, 0x05000018, 0x05fdfcf3,
- 0x0500000c, 0xb13805a1, 0x05000004, 0xb13805a0,
- 0x05fe07f3, 0x4937c857, 0x05e9fd07, 0x05f20081,
- 0x59300203, 0x9000058e, 0x050000f0, 0x05a9fa23,
- 0x91380595, 0x05000003, 0x91380596, 0x05aa0a1f,
- 0x05e9fcfd, 0x05f20077, 0x59300203, 0x90000582,
- 0x05aa0a1a, 0x0501f00d, 0x4937c857, 0x05e9f8a6,
- 0x64465812, 0x0501f004, 0x4937c857, 0x05e9f8a2,
- 0x64425812, 0x64c65a0a, 0x64125811, 0x0001fb82,
- 0x05d5f8a4, 0x05f1f003, 0x59341400, 0x82081d00,
- 0x000000ff, 0x59300c03, 0x480bc857, 0x4807c857,
- 0xb0040593, 0x05000020, 0x90040582, 0x0500000f,
- 0x90040581, 0x05000010, 0x90040583, 0x05000013,
- 0x90040585, 0x05000014, 0x900405b3, 0x05000012,
- 0x90040580, 0x05000013, 0x90040584, 0x05aa09f7,
- 0x0501f8a6, 0x0501f010, 0x900c0583, 0x05000868,
- 0x0501f00d, 0x900c058b, 0x0502000b, 0x601c0800,
- 0x05d1f901, 0x0501f008, 0x900c0585, 0x0500087b,
- 0x0501f005, 0x900c0589, 0x05000896, 0x0501f002,
- 0x0501f89b, 0x654a6403, 0x59a810b6, 0x592c040f,
- 0x8c000500, 0x05000002, 0x60201000, 0x592c040f,
- 0x8c000516, 0x05000002, 0x90081418, 0x592c0010,
- 0x497a5811, 0x497a5812, 0x80080c80, 0x05000007,
- 0x05001004, 0x641e5a0a, 0x40001000, 0x0501f004,
- 0x64565a0a, 0x0501f002, 0x64025a0a, 0x480a5810,
- 0x4d2c0000, 0x05a9fd64, 0x0500003c, 0x5c001000,
- 0x41cc0800, 0x5808040f, 0x8c000516, 0x05020002,
- 0x91cc0c06, 0x58081810, 0x58082015, 0x58082816,
- 0x58080004, 0x48025806, 0x48065803, 0x480a580a,
- 0x480e5805, 0x48125807, 0x48165808, 0x64025801,
- 0x4a025809, 0x0010150e, 0x900c1c03, 0x800c1904,
- 0x50040000, 0x9c0001c0, 0x44000800, 0x80040800,
- 0x800c1840, 0x05fe07fb, 0x5808040f, 0x8c000500,
- 0x0500000b, 0x41cc0800, 0x8c000516, 0x05000002,
- 0x91cc0c06, 0x64040800, 0x80040800, 0x46000800,
- 0x00000900, 0x84000500, 0x4800140f, 0x42007000,
- 0x000211a7, 0x58380000, 0x90000580, 0x0502000b,
- 0x58380807, 0x58380005, 0x80040540, 0x05020007,
- 0x412c1000, 0x0001f821, 0x59dc0806, 0x8c04053e,
- 0x05fc07fe, 0x0001f066, 0x412c1000, 0x0001f821,
- 0x850e1d5c, 0x05e1f18d, 0x5c025800, 0x64b25a0a,
- 0x497a5810, 0x0001fb82, 0x0005f7dc, 0x91380595,
- 0x05020008, 0x59a800d1, 0x8c000502, 0x05020007,
- 0x41780800, 0x05d1f981, 0x60100800, 0x05d1f096,
- 0x601c0800, 0x05d1f094, 0x05d5fc54, 0x60401000,
- 0x05020008, 0x59340002, 0x82000500, 0x00ff0000,
- 0x82000580, 0x00ff0000, 0x05fc07f2, 0x60201000,
- 0x05d5f84b, 0x05fc07ef, 0x592c040f, 0x84000540,
- 0x48025c0f, 0x05fdf7ef, 0x91380595, 0x0502000b,
- 0x59a800d1, 0x8c000502, 0x0502000a, 0x05d1f9dc,
- 0x4d3c0000, 0x417a7800, 0x05d1f871, 0x5c027800,
- 0x60180800, 0x05d1f078, 0x60100800, 0x05d1f076,
- 0x05d5fc36, 0x60401000, 0x05020008, 0x59340002,
- 0x82000500, 0x00ff0000, 0x82000580, 0x00ff0000,
- 0x05fc07ef, 0x60201000, 0x05d5f82d, 0x05fc07ec,
- 0x592c040f, 0x84000540, 0x48025c0f, 0x05fdf7ef,
- 0x60100800, 0x05d1f064, 0x91380595, 0x05020003,
- 0x0509f9c4, 0x05d00c20, 0x1c01f000, 0x91380595,
- 0x05020015, 0x4c580000, 0x91cc1408, 0x6008b000,
- 0x91341c06, 0x05f5fbb2, 0x0502000e, 0x91cc140a,
- 0x6008b000, 0x91341c08, 0x05f5fbad, 0x05020009,
- 0x59342200, 0x59cc1007, 0x800811c0, 0x05000003,
- 0x480a6801, 0x84102542, 0x8410251a, 0x48126a00,
- 0x5c00b000, 0x1c01f000, 0x4803c856, 0xb13805a1,
- 0x05000019, 0xb13805a0, 0x05000017, 0xb13805a2,
- 0x05020003, 0x644a5812, 0x0501f004, 0xb13805a3,
- 0x0502001b, 0x644e5812, 0x64c65a0a, 0x64125811,
- 0x59cc0001, 0x48025813, 0x59cc0002, 0x48025814,
- 0x59cc0003, 0x48025815, 0x59cc0004, 0x48025816,
- 0x59cc0005, 0x48025817, 0x0001fb82, 0x05d1ffb1,
- 0x0005f7dc, 0x592c0010, 0x800001c0, 0x05000005,
- 0x59a8005c, 0x48026006, 0x640a6203, 0x1c01f000,
- 0x64025a0a, 0x0001fb82, 0x0005ffdc, 0x1c01f000,
- 0x42000000, 0x0010e46c, 0x050dfb0e, 0x05e9f844,
- 0x59300203, 0x4933c857, 0x4803c857, 0x90000c91,
- 0x05aa1906, 0x0c01f802, 0x05e9f02e, 0x0010b4e9,
- 0x0010b4f2, 0x0010b4ea, 0x0010b4e8, 0x0010b4e8,
- 0x0010b4e8, 0x0010b4e8, 0x0010b4e8, 0x0010b4e8,
- 0x0010b4e8, 0x0010b4e8, 0x0010b4e8, 0x0010b4e8,
- 0x0010b4e8, 0x0010b4ea, 0x0010b4e8, 0x0010b4e8,
- 0x05a9f8f2, 0x1c01f000, 0x59300403, 0xb0000592,
- 0x05f804d3, 0x05d1ff83, 0x59325809, 0x641a5a0a,
- 0x0001fb82, 0x05edf6df, 0x59301804, 0x840c0520,
- 0x48026004, 0x598c000b, 0x81300580, 0x0502000f,
- 0x8c0c0520, 0x0502000f, 0x42001000, 0x0010e387,
- 0x50081000, 0x58080002, 0x82000580, 0x00000100,
- 0x0500000b, 0x5808000c, 0x81300580, 0x05aa08d7,
- 0x4978100c, 0x0501f003, 0x8c0c0520, 0x05fe07e3,
- 0x05e5fcae, 0x05fc07e1, 0x05a9f8d0, 0x05e9fb05,
- 0x05fc07fc, 0x59300203, 0x90000c91, 0x05aa18cb,
- 0x0c01f7c7, 0x4933c857, 0x4c500000, 0x4c540000,
- 0x4c580000, 0x592c0c0b, 0x48065817, 0x59cc0809,
- 0x4806580b, 0x59cc0808, 0x4806580f, 0x59a808d0,
- 0x82040500, 0x000003ff, 0x800010c4, 0x8c040514,
- 0x05000004, 0x59cc0002, 0x90000503, 0x80081480,
- 0x480a621c, 0x412c0800, 0x05a9fc4b, 0x05a808b3,
- 0x492c080d, 0x5804040c, 0x84000552, 0x84000540,
- 0x48000c0c, 0x90081403, 0x80081104, 0x91cca406,
- 0x912cac08, 0x60400800, 0x90080490, 0x05021003,
- 0x40080800, 0x80000580, 0x4004b000, 0x4c000000,
- 0x050dfbaa, 0x5c000000, 0x800001c0, 0x0500000a,
- 0x412c1000, 0x4c000000, 0x05a9fc33, 0x05a8089b,
- 0x492c1001, 0x912cac08, 0x5c000000, 0x40001000,
- 0x05fdf7ee, 0x5c00b000, 0x5c00a800, 0x5c00a000,
- 0x1c01f000, 0x4933c857, 0x4d2c0000, 0x4c380000,
- 0x59325809, 0x5930021c, 0x48025a0c, 0x59301013,
- 0x640a6203, 0x592c020e, 0x8c000500, 0x05000004,
- 0x59300017, 0x592c1013, 0x80081480, 0x40080000,
- 0x0501f962, 0x80001540, 0x05020007, 0x64025a0a,
- 0x592c000f, 0x82000500, 0x00000c00, 0x05000009,
- 0x0501f009, 0x8c08053e, 0x05000005, 0x641e5a0a,
- 0x80081080, 0x80081000, 0x0501f002, 0x64565a0a,
- 0x480a580b, 0x42000000, 0x001102f0, 0x50007000,
- 0x5838000b, 0x80000540, 0x05020007, 0x4930700c,
- 0x4930700b, 0x58380002, 0x90000580, 0x05020808,
- 0x0501f004, 0x90001400, 0x45301000, 0x4930700b,
- 0x5c007000, 0x5c025800, 0x1c01f000, 0x4933c857,
- 0x592c000d, 0x40001000, 0x4800700a, 0x90080408,
- 0x48007003, 0x592c0011, 0x592c1012, 0x592c1804,
- 0x480c7006, 0x48007007, 0x48087008, 0x592c0017,
- 0x592c120c, 0x80080c80, 0x05001002, 0x40001000,
- 0x90081403, 0x80081104, 0x90080490, 0x05021003,
- 0x80000580, 0x0501f002, 0x60401000, 0x4800700d,
- 0x48087004, 0x800810c4, 0x48087005, 0x40381000,
- 0x0001f021, 0x4d2c0000, 0x05a9fbd7, 0x05a8083f,
- 0x42000800, 0x001102f0, 0x452c0800, 0x497a580b,
- 0x497a580c, 0x497a580d, 0x4a025809, 0x0010b5a9,
- 0x4a025802, 0x00000100, 0x64025801, 0x5c025800,
- 0x1c01f000, 0x4833c857, 0x4d300000, 0x4d2c0000,
- 0x4c5c0000, 0x4030b800, 0x585c000a, 0x80025d40,
- 0x05020004, 0x585c000c, 0x4c000000, 0x0501f03b,
- 0x585c0002, 0x82000580, 0x00000100, 0x0502001c,
- 0x592c0801, 0x4c040000, 0x05a9fbd8, 0x5c000800,
- 0x800409c0, 0x05000017, 0x4804b80a, 0x585c100d,
- 0x800811c0, 0x05020004, 0x40065800, 0x05a9fbd8,
- 0x0501f010, 0x90080490, 0x05021003, 0x80000580,
- 0x0501f002, 0x60401000, 0x4800b80d, 0x4808b804,
- 0x800810c4, 0x4808b805, 0x90040408, 0x4800b803,
- 0x405c1000, 0x0001f821, 0x0501f022, 0x0501f825,
- 0x585c000c, 0x80026540, 0x59300000, 0x80000d40,
- 0x05020002, 0x4800b80b, 0x4800b80c, 0x497a6000,
- 0x4c000000, 0x4978b80a, 0x59325809, 0x4a025a08,
- 0x00000103, 0x59300402, 0x48025c0a, 0x592c100f,
- 0x4c080000, 0x0001fb82, 0x0501f8cb, 0x05f9ffc1,
- 0x5c001000, 0x8c080518, 0x05000003, 0x05fdf8dc,
- 0x0501f002, 0x0005ffdc, 0x405c7000, 0x5c000000,
- 0x80026540, 0x05000003, 0x59325809, 0x05fdff88,
- 0x5c00b800, 0x5c025800, 0x5c026000, 0x1c01f000,
- 0x483bc857, 0x5838000a, 0x40025800, 0x05a9fba0,
- 0x5838000c, 0x80026540, 0x59300009, 0x80025d40,
- 0x640a5a0a, 0x1c01f000, 0x4803c857, 0x4933c857,
- 0x4d1c0000, 0x497a601e, 0x41323800, 0x40026000,
- 0x4d3c0000, 0x60167800, 0x0501f838, 0x5c027800,
- 0x411e6000, 0x4933c857, 0x59300416, 0x84000502,
- 0x48026416, 0x5c023800, 0x1c01f000, 0x481bc857,
- 0x4933c857, 0x4c5c0000, 0x4c600000, 0x4010b800,
- 0x4014c000, 0x0509ff6a, 0x05b5fffd, 0x59240400,
- 0x8c00050a, 0x05020006, 0x40602800, 0x405c3000,
- 0x0509f986, 0x90000541, 0x0501f002, 0x80000580,
- 0x5c00c000, 0x5c00b800, 0x1c01f000, 0x4803c856,
- 0x4d300000, 0x42026000, 0x00111b00, 0x59a8003b,
- 0x81640580, 0x05000013, 0x59300c07, 0x90040581,
- 0x05000009, 0x90040584, 0x05000004, 0x90040590,
- 0x05f80b17, 0x0501f007, 0x59300203, 0x90000d87,
- 0x05000004, 0x4807c857, 0x05fdf98f, 0x05020807,
- 0x91326430, 0x41580000, 0x81300480, 0x05fc17ec,
- 0x5c026000, 0x1c01f000, 0x4933c857, 0x59300403,
- 0x4803c857, 0x05e5fece, 0x4df00000, 0x59301407,
- 0x59300203, 0x4803c857, 0x90080d82, 0x05000016,
- 0x90080d81, 0x0500000b, 0x90080d84, 0x05000005,
- 0x4933c856, 0x5c03e000, 0x05e40eb2, 0x0501f03e,
- 0x90000d88, 0x0500002e, 0x90000d87, 0x0500002c,
- 0x90000d81, 0x05000013, 0x90000d82, 0x05000028,
- 0x90000d85, 0x05000026, 0x90000d8e, 0x05000024,
- 0x05a5ff7a, 0x90000d89, 0x0500000a, 0x90000d8b,
- 0x05000008, 0x90000d8a, 0x0500001d, 0x90000d8c,
- 0x0500001b, 0x90000d8e, 0x05000019, 0x05a5ff6f,
- 0x598c000b, 0x81300580, 0x05020003, 0x05e9f9a1,
- 0x05020013, 0x59300004, 0x4803c857, 0x8c000520,
- 0x05000004, 0x84000520, 0x48026004, 0x0501f00c,
- 0x05e5fb3e, 0x05a60f61, 0x5c03e000, 0x05e40e89,
- 0x59300407, 0x90000d82, 0x05000013, 0x05d1fdf1,
- 0x05f9ff4a, 0x05f00c42, 0x0501f00f, 0x5c03e000,
- 0x05e40e80, 0x59300407, 0x90000d82, 0x0500000a,
- 0x5930081d, 0x58040200, 0x8c000500, 0x050002a9,
- 0x05d1fde4, 0x05f9ff3d, 0x05f00c35, 0x8d3c0500,
- 0x05000003, 0x0509ffc5, 0x05edf53e, 0x64066229,
- 0x4a026403, 0x00000085, 0x64266203, 0x640a6407,
- 0x42000800, 0x80000040, 0x0005f6ab, 0x60007040,
- 0x4203e000, 0xb0800000, 0x6033f800, 0x40000000,
- 0x40000000, 0x40000000, 0x0501b004, 0x80387040,
- 0x05a40f36, 0x05fdf7f9, 0x1c01f000, 0x83300480,
- 0x00111a40, 0x05001006, 0x41540000, 0x81300480,
- 0x05021003, 0x80000580, 0x1c01f000, 0x81780080,
- 0x1c01f000, 0x59300027, 0x80000540, 0x05000006,
- 0x4d2c0000, 0x40025800, 0x05a9fadc, 0x497a6027,
- 0x5c025800, 0x1c01f000, 0x592c720e, 0x8c380500,
- 0x05020008, 0x59307008, 0x8c380516, 0x05000005,
- 0x59307009, 0x58387013, 0x59300014, 0x80380480,
- 0x1c01f000, 0x59a808b6, 0x59cc2808, 0x4c5c0000,
- 0x4178b800, 0x8c14051e, 0x05000002, 0x805cb800,
- 0x82140500, 0x00000c00, 0x05000004, 0x905c0410,
- 0x80040480, 0x05001018, 0x80001580, 0x8c140512,
- 0x05000005, 0x905c0414, 0x80040480, 0x05001012,
- 0x59cc100a, 0x80000580, 0x8c140510, 0x05000005,
- 0x905c0418, 0x80040480, 0x0500100b, 0x59cc000b,
- 0x80080400, 0x05001008, 0x05000005, 0x905c0418,
- 0x80040480, 0x05001004, 0x80000580, 0x5c00b800,
- 0x1c01f000, 0x42000000, 0x0010e449, 0x050df8f1,
- 0x90000541, 0x05fdf7fa, 0x4933c857, 0x4937c857,
- 0x4923c857, 0x4927c857, 0x492fc857, 0x48efc857,
- 0x4d1c0000, 0x4d300000, 0x41323800, 0x05edfd0c,
- 0x0500001f, 0x48ee602d, 0x4926601d, 0x4936600a,
- 0x05fdf993, 0x591c0407, 0x90000583, 0x05000008,
- 0x591c0202, 0x4803c857, 0x4802641b, 0x591c0402,
- 0x4802621b, 0x4803c857, 0x0501f009, 0x591c0017,
- 0x48026017, 0x591c0202, 0x4803c857, 0x4802621b,
- 0x591c0402, 0x4802641b, 0x4803c857, 0x491e602a,
- 0x64066407, 0x492e6009, 0x4d380000, 0x615e7000,
- 0x0009f800, 0x5c027000, 0x90000541, 0x5c026000,
- 0x5c023800, 0x1c01f000, 0x4933c857, 0x493bc857,
- 0x4937c857, 0x4d2c0000, 0x4c500000, 0x4c540000,
- 0x4c580000, 0x59325809, 0x05f9fda7, 0x05000017,
- 0x91cca406, 0x912cac0a, 0x91380596, 0x05020007,
- 0x59a800b6, 0x90000588, 0x0502000e, 0x492fc857,
- 0x6008b000, 0x0501f008, 0x91380595, 0x05020009,
- 0x492fc857, 0x59a800b6, 0x90000598, 0x05020005,
- 0x6018b000, 0x050df972, 0x05edfeac, 0x0501f003,
- 0x05f1fb8b, 0x0005ffdc, 0x5c00b000, 0x5c00a800,
- 0x5c00a000, 0x5c025800, 0x1c01f000, 0x4933c857,
- 0x05e5fdd3, 0x4df00000, 0x59300203, 0x90000c91,
- 0x05a61e96, 0x0c01f001, 0x0010b758, 0x0010b757,
- 0x0010b75d, 0x0010b775, 0x0010b75c, 0x0010b757,
- 0x0010b757, 0x0010b757, 0x0010b757, 0x0010b757,
- 0x0010b757, 0x0010b757, 0x0010b757, 0x0010b757,
- 0x0010b757, 0x0010b757, 0x0010b75d, 0x05a5fe83,
- 0x5c03e000, 0x05e40dab, 0x80000580, 0x1c01f000,
- 0x05adf8ed, 0x5c03e000, 0x05e40da6, 0x8d3c0502,
- 0x05020011, 0x4d2c0000, 0x59325809, 0x64165a0a,
- 0x0001fb82, 0x5c025800, 0x497a6009, 0x8d3c0500,
- 0x0502000b, 0x642a6229, 0x4a026403, 0x00000085,
- 0x64266203, 0x640a6407, 0x42000800, 0x80004040,
- 0x0005feab, 0x81780080, 0x1c01f000, 0x05edfc5d,
- 0x05fdf7fd, 0x05f9f9bb, 0x05020003, 0x05e9f869,
- 0x05020005, 0x05e5f95d, 0x05fc07e3, 0x05e5fcb1,
- 0x05a60e5e, 0x59300203, 0x90000d83, 0x05a40e5b,
- 0x90000c91, 0x05a61e59, 0x0c01f7c4, 0x4803c856,
- 0x05edfc7f, 0x0500002e, 0x59300402, 0x4802621b,
- 0x59a804cc, 0x84000540, 0x84000502, 0x480354cc,
- 0x812e59c0, 0x05000011, 0x82600580, 0x00003000,
- 0x05020003, 0x4a026416, 0x00000100, 0x592c020b,
- 0x480352cd, 0x480352cc, 0x592c000f, 0x480350ce,
- 0x592c020c, 0x800000c2, 0x800008c4, 0x80040400,
- 0x48026006, 0x0501f00a, 0x640b50ce, 0x59a8005c,
- 0x800000c4, 0x48026006, 0x417a4000, 0x61fa880f,
- 0x42003000, 0x00fffffe, 0x05cdfd6e, 0x4926601d,
- 0x599c0208, 0x48026c12, 0x59340002, 0x4802600b,
- 0x497a641b, 0x4936600a, 0x492e6009, 0x64066407,
- 0x61627000, 0x0009f800, 0x90000541, 0x1c01f000,
- 0x4d2c0000, 0x4c5c0000, 0x4c600000, 0x4c640000,
- 0x4803c856, 0x59325809, 0x91380595, 0x050200b8,
- 0x812e59c0, 0x05000003, 0x05f9fd0b, 0x05a40e1b,
- 0x59a800b6, 0x82000580, 0x00000228, 0x050200ab,
- 0x59cc0c07, 0x82040580, 0x00000101, 0x050200b7,
- 0x59cc0a07, 0x59300402, 0x80040580, 0x050200b5,
- 0x59cc0a0a, 0x82040580, 0x00000228, 0x050200b3,
- 0x91ccbc0b, 0x585c0c00, 0x82040580, 0x00000101,
- 0x050200b0, 0x585c0a00, 0x90040584, 0x050200af,
- 0x91ccc40d, 0x58600c00, 0x82040580, 0x00000102,
- 0x050200ac, 0x58600a00, 0x90040584, 0x050200ab,
- 0x91cccc0f, 0x58640c00, 0x82040580, 0x00000103,
- 0x05000004, 0x82040580, 0x00000203, 0x050200a5,
- 0x58640a00, 0x82040580, 0x00000200, 0x050200a3,
- 0x585c0801, 0x800409c0, 0x050000a2, 0x90040484,
- 0x050210a0, 0x480750cf, 0x58600201, 0x800001c0,
- 0x0500009f, 0x82001480, 0x00000fff, 0x0502109c,
- 0x480354cd, 0x480352cc, 0x4c500000, 0x4c540000,
- 0x4c580000, 0x6000b001, 0x4200a800, 0x00110672,
- 0x91cca410, 0x5450a800, 0x8050a000, 0x8054a800,
- 0x8058b040, 0x05fe07fc, 0x5c00b000, 0x5c00a800,
- 0x5c00a000, 0x40001000, 0x4c040000, 0x05b5ff22,
- 0x5c000800, 0x05020005, 0x59a804cc, 0x8400054c,
- 0x480354cc, 0x4803c857, 0x90040582, 0x05000055,
- 0x90040583, 0x05000002, 0x0501f004, 0x59a800ce,
- 0x90000582, 0x05000052, 0x812e59c0, 0x0500002b,
- 0x592c1001, 0x800811c0, 0x05a40dbc, 0x4930100b,
- 0x492c100a, 0x64001001, 0x4a001009, 0x0010b831,
- 0x4a001003, 0x00110672, 0x4a001005, 0x00000200,
- 0x592c0015, 0x48001007, 0x592c0016, 0x48001008,
- 0x5c00c800, 0x5c00c000, 0x5c00b800, 0x5c025800,
- 0x0001f021, 0x4d2c0000, 0x4c5c0000, 0x4c600000,
- 0x4c640000, 0x5832600b, 0x813261c0, 0x05a40da3,
- 0x5832580a, 0x812e59c0, 0x05a40da0, 0x49786001,
- 0x58300002, 0x82000580, 0x00000100, 0x0502005a,
- 0x59a80ccd, 0x48065811, 0x59a808cf, 0x48065810,
- 0x64ca5a0a, 0x0001fb82, 0x0005ffdc, 0x58600a01,
- 0x59a802cd, 0x80040580, 0x0502004c, 0x59a81ccc,
- 0x820c1d00, 0xffffffbc, 0x840c1d46, 0x480f54cc,
- 0x0501f01e, 0x59cc3407, 0x82183500, 0x000000ff,
- 0x90180585, 0x0502000c, 0x59340412, 0x800001c0,
- 0x05000009, 0x80000040, 0x48026c12, 0x4d2c0000,
- 0x59325809, 0x0005ffdc, 0x05fdff25, 0x5c025800,
- 0x0501f00e, 0x05f1fed4, 0x59a80249, 0x84000518,
- 0x48035249, 0x48035449, 0x0005ffdc, 0x05fdf7e4,
- 0x59a800ce, 0x90000581, 0x05fc07b0, 0x5930041b,
- 0x84000548, 0x4802641b, 0x5c00c800, 0x5c00c000,
- 0x5c00b800, 0x5c025800, 0x1c01f000, 0x4803c856,
- 0x812e59c0, 0x05fc07dc, 0x05f9fc53, 0x05a40d63,
- 0x64c65a0a, 0x64625810, 0x59cc0007, 0x48025811,
- 0x0001fb82, 0x05fdf7e4, 0x4807c857, 0x05fdf7ef,
- 0x4807c857, 0x05fdf7ed, 0x4807c857, 0x05fdf7eb,
- 0x4807c857, 0x05fdf7e9, 0x4807c857, 0x05fdf7e7,
- 0x4807c857, 0x05fdf7e5, 0x4807c857, 0x05fdf7e3,
- 0x4807c857, 0x05fdf7e1, 0x4807c857, 0x05fdf7df,
- 0x4807c857, 0x05a5fd49, 0x05fdf7dc, 0x4803c857,
- 0x05a5fd46, 0x05fdf7d9, 0x4807c857, 0x0501f80f,
- 0x05fdf7d6, 0x4803c857, 0x4a006002, 0x00000100,
- 0x640a5a0a, 0x0001fb82, 0x05fdf7a8, 0x59300403,
- 0xb0000d98, 0x05000004, 0xb0000d9e, 0x05000002,
- 0xb0000d9f, 0x1c01f000, 0x59a804cc, 0x82000500,
- 0xfffffffc, 0x480354cc, 0x05d5f804, 0x05020006,
- 0x05d5f814, 0x05000004, 0x64075042, 0x6006d800,
- 0x05d1ff81, 0x1c01f000, 0x4933c857, 0x4d400000,
- 0x60028000, 0x05b5fd62, 0x05f1fe96, 0x0500001f,
- 0x59cc0408, 0x8c00051e, 0x05020009, 0x42000800,
- 0x0010e512, 0x58040406, 0x8c000500, 0x05020004,
- 0x59240200, 0x84000556, 0x48024a00, 0x60aa8000,
- 0x59240400, 0x8c00050a, 0x05020004, 0x61fe89ff,
- 0x60083000, 0x0505fedd, 0x4d3c0000, 0x600a7800,
- 0x5924100b, 0x82081500, 0x00001fff, 0x41780800,
- 0x05b5fe72, 0x5c027800, 0x42000000, 0x0010e454,
- 0x0509ff08, 0x600a8000, 0x60100800, 0x05cdfc16,
- 0x60040800, 0x05cdfcfd, 0x59cc0800, 0x82040d00,
- 0x00ffffff, 0x5924100c, 0x48041001, 0x59cc0009,
- 0x48024a0a, 0x48001200, 0x59cc000a, 0x48024c0a,
- 0x48001400, 0x59240200, 0xb0000566, 0x48024a00,
- 0x48064805, 0x49238830, 0x84040570, 0x48038832,
- 0x812000f0, 0x80040540, 0x48026813, 0x60040000,
- 0x05d1fd60, 0x5c028000, 0x59301009, 0x800811c0,
- 0x05020009, 0x0501f823, 0x5924100b, 0x82081500,
- 0x00001fff, 0x05b5feb9, 0x0501f81e, 0x0502001c,
- 0x0501f018, 0x4d2c0000, 0x400a5800, 0x592c1208,
- 0x82080500, 0x000000ff, 0x900005b0, 0x05020009,
- 0x592c040b, 0x82000500, 0x000000ff, 0x05020003,
- 0x05a9f88a, 0x0501f00a, 0x05d5ff81, 0x0501f008,
- 0x592c020b, 0x80000110, 0x800001c0, 0x05020003,
- 0x05a9f882, 0x0501f002, 0x05d9f93f, 0x5c025800,
- 0x59300429, 0x900005a1, 0x000607dc, 0x1c01f000,
- 0x4933c857, 0x4d340000, 0x4d240000, 0x4d200000,
- 0x916c0583, 0x05020015, 0x599c0018, 0x8c000516,
- 0x05000003, 0x05c5ff7f, 0x0501f010, 0x60100800,
- 0x05cdfbc9, 0x59300429, 0x900005a1, 0x05000005,
+ 0x48064a00, 0x602c0800, 0x05cdfe76, 0x64066407,
+ 0x64066203, 0x64066403, 0x05e5fc9c, 0x0501f015,
+ 0x600c0800, 0x05cdfe6f, 0x4a026202, 0x0000ffff,
+ 0x64066203, 0x65466403, 0x05e5fc94, 0x0501f00d,
+ 0x64126006, 0x645a6403, 0x65466418, 0x4a026202,
+ 0x0000ffff, 0x0501f007, 0x600c2800, 0x0501fe4b,
+ 0x0501f004, 0x6008b000, 0x0501f83b, 0x05f1ff5a,
+ 0x5c027800, 0x5c028800, 0x5c028000, 0x5c024000,
+ 0x5c024800, 0x5c00b000, 0x1c01f000, 0x4933c857,
+ 0x61f2880f, 0x42003000, 0x00fffffc, 0x05cdfe80,
+ 0x05a60d65, 0x4936600a, 0x05fdfd75, 0x417a7800,
+ 0x05cdfe42, 0x600c0800, 0x05cdfe4a, 0x497a6c12,
+ 0x59300429, 0x900005a1, 0x05020003, 0x599c0208,
+ 0x48026c12, 0x64066203, 0x640a6403, 0x05e5f46b,
+ 0x492fc857, 0x4c580000, 0x4c000000, 0x8058b1c0,
+ 0x0500000a, 0x82580500, 0xfffffff0, 0x05a60d4e,
+ 0x8058b0d0, 0x592c040c, 0x82000500, 0xfffff0ff,
+ 0x80580540, 0x48025c0c, 0x5c000000, 0x5c00b000,
+ 0x1c01f000, 0x492fc857, 0x4c000000, 0x4c040000,
+ 0x800000d8, 0x592c0c0c, 0x82040d00, 0xffff0fff,
+ 0x80040540, 0x48025c0c, 0x5c000800, 0x5c000000,
+ 0x1c01f000, 0x4933c857, 0x4d2c0000, 0x59325809,
+ 0x592c020b, 0x8400055e, 0x48025a0b, 0x4c500000,
+ 0x4c540000, 0x4c580000, 0x05fdffda, 0x05d9fa2f,
+ 0x64602800, 0x80142800, 0x8058b040, 0x91cca407,
+ 0x4014a800, 0x050dff35, 0x5c00b000, 0x5c00a800,
+ 0x5c00a000, 0x5c025800, 0x1c01f000, 0x59325809,
+ 0x592c0208, 0x82000580, 0x00000152, 0x1c01f000,
+ 0x59325809, 0x592c020b, 0x8400055c, 0x48025a0b,
+ 0x1c01f000, 0x59300809, 0x58040208, 0x82000500,
+ 0x000000ff, 0xb00005b9, 0x1c01f000, 0x5930002b,
+ 0x80000540, 0x05aa0ea9, 0x1c01f000, 0x59300008,
+ 0x82000500, 0x04000800, 0x82000580, 0x04000800,
+ 0x05020003, 0x59300221, 0x48025c13, 0x1c01f000,
+ 0x592c040b, 0x82000500, 0x0000f000, 0x82000580,
+ 0x00003000, 0x05020003, 0x4a026416, 0x00000100,
+ 0x1c01f000, 0x4d2c0000, 0x59325809, 0x59300203,
+ 0x4933c857, 0x492fc857, 0x493bc857, 0x4803c857,
+ 0x90003491, 0x05a61cf4, 0x0c01f803, 0x5c025800,
+ 0x1c01f000, 0x0010b936, 0x0010b93c, 0x0010b974,
+ 0x0010b936, 0x0010b936, 0x0010b936, 0x0010b936,
+ 0x0010b936, 0x0010b937, 0x0010b936, 0x0010b936,
+ 0x0010b936, 0x0010b936, 0x0010b936, 0x0010ba4d,
+ 0x0010b936, 0x0010b936, 0x05a5fcdf, 0xb13834a0,
+ 0x05a61cdd, 0x493a6403, 0x64066203, 0x05e5f3ef,
+ 0x91380593, 0x05020010, 0x492fc857, 0x05fdfcf7,
+ 0x05000003, 0x643a6203, 0x0501f005, 0x592c0010,
+ 0x800001c0, 0x05000005, 0x640a6203, 0x59a8005f,
+ 0x48026006, 0x1c01f000, 0x64025a0a, 0x0001fba8,
+ 0x0009f010, 0x913805a7, 0x0500001e, 0x91380594,
+ 0x05000018, 0x05fdfce5, 0x0500000c, 0xb13805a1,
+ 0x05000004, 0xb13805a0, 0x05fe07f3, 0x4937c857,
+ 0x05e9fc1f, 0x05f2000d, 0x59300203, 0x9000058e,
+ 0x050000f1, 0x05a5fcb8, 0x91380595, 0x05000003,
+ 0x91380596, 0x05a60cb4, 0x05e9fc15, 0x05f20003,
+ 0x59300203, 0x90000582, 0x05a60caf, 0x0501f00d,
+ 0x4937c857, 0x05e5ffbe, 0x64465812, 0x0501f004,
+ 0x4937c857, 0x05e5ffba, 0x64425812, 0x64c65a0a,
+ 0x64125811, 0x0001fba8, 0x05d1fdd3, 0x05edf772,
+ 0x59341400, 0x82081d00, 0x000000ff, 0x59300c03,
+ 0x480bc857, 0x4807c857, 0xb0040593, 0x05000020,
+ 0x90040582, 0x0500000f, 0x90040581, 0x05000010,
+ 0x90040583, 0x05000013, 0x90040585, 0x05000014,
+ 0x900405b3, 0x05000012, 0x90040580, 0x05000013,
+ 0x90040584, 0x05a60c8c, 0x0501f8a7, 0x0501f010,
+ 0x900c0583, 0x05000869, 0x0501f00d, 0x900c058b,
+ 0x0502000b, 0x601c0800, 0x05cdfd6e, 0x0501f008,
+ 0x900c0585, 0x0500087c, 0x0501f005, 0x900c0589,
+ 0x05000897, 0x0501f002, 0x0501f89c, 0x654a6403,
+ 0x59a810bb, 0x592c040f, 0x8c000500, 0x05000002,
+ 0x60201000, 0x592c040f, 0x8c000516, 0x05000002,
+ 0x90081418, 0x592c0010, 0x497a5811, 0x497a5812,
+ 0x80080c80, 0x05000008, 0x05001005, 0x641e5a0a,
+ 0x48065811, 0x40001000, 0x0501f004, 0x64565a0a,
+ 0x0501f002, 0x64025a0a, 0x480a5810, 0x4d2c0000,
+ 0x05a9f805, 0x0500003c, 0x5c001000, 0x41cc0800,
+ 0x5808040f, 0x8c000516, 0x05020002, 0x91cc0c06,
+ 0x58081810, 0x58082015, 0x58082816, 0x58080004,
+ 0x48025806, 0x48065803, 0x480a580a, 0x480e5805,
+ 0x48125807, 0x48165808, 0x64025801, 0x4a025809,
+ 0x00101580, 0x900c1c03, 0x800c1904, 0x50040000,
+ 0x9c0001c0, 0x44000800, 0x80040800, 0x800c1840,
+ 0x05fe07fb, 0x5808040f, 0x8c000500, 0x0500000b,
+ 0x41cc0800, 0x8c000516, 0x05000002, 0x91cc0c06,
+ 0x64040800, 0x80040800, 0x46000800, 0x00000900,
+ 0x84000500, 0x4800140f, 0x42007000, 0x000211e8,
+ 0x58380000, 0x90000580, 0x0502000b, 0x58380807,
+ 0x58380005, 0x80040540, 0x05020007, 0x412c1000,
+ 0x0001f829, 0x59dc0806, 0x8c04053e, 0x05fc07fe,
+ 0x0001f06e, 0x412c1000, 0x0001f829, 0x850e1d5c,
+ 0x05e1f000, 0x5c025800, 0x64b25a0a, 0x497a5810,
+ 0x0001fba8, 0x0009f010, 0x91380595, 0x05020008,
+ 0x59a800d6, 0x8c000502, 0x05020007, 0x41780800,
+ 0x05cdfe40, 0x60100800, 0x05cdf502, 0x601c0800,
+ 0x05cdf500, 0x05d5f997, 0x60401000, 0x05020008,
+ 0x59340002, 0x82000500, 0x00ff0000, 0x82000580,
+ 0x00ff0000, 0x05fc07f2, 0x60201000, 0x05d1fd79,
+ 0x05fc07ef, 0x592c040f, 0x84000540, 0x48025c0f,
+ 0x05fdf7ef, 0x91380595, 0x0502000b, 0x59a800d6,
+ 0x8c000502, 0x0502000a, 0x05cdfe9b, 0x4d3c0000,
+ 0x417a7800, 0x05cdfcdd, 0x5c027800, 0x60180800,
+ 0x05cdf4e4, 0x60100800, 0x05cdf4e2, 0x05d5f979,
+ 0x60401000, 0x05020008, 0x59340002, 0x82000500,
+ 0x00ff0000, 0x82000580, 0x00ff0000, 0x05fc07ef,
+ 0x60201000, 0x05d1fd5b, 0x05fc07ec, 0x592c040f,
+ 0x84000540, 0x48025c0f, 0x05fdf7ef, 0x60100800,
+ 0x05cdf4d0, 0x91380595, 0x05020003, 0x0509fb34,
+ 0x05d008eb, 0x1c01f000, 0x91380595, 0x05020015,
+ 0x4c580000, 0x91cc1408, 0x6008b000, 0x91341c06,
+ 0x05f5fb50, 0x0502000e, 0x91cc140a, 0x6008b000,
+ 0x91341c08, 0x05f5fb4b, 0x05020009, 0x59342200,
+ 0x59cc1007, 0x800811c0, 0x05000003, 0x480a6801,
+ 0x84102542, 0x8410251a, 0x48126a00, 0x5c00b000,
+ 0x1c01f000, 0x4803c856, 0xb13805a1, 0x05000019,
+ 0xb13805a0, 0x05000017, 0xb13805a2, 0x05020003,
+ 0x644a5812, 0x0501f004, 0xb13805a3, 0x0502001b,
+ 0x644e5812, 0x64c65a0a, 0x64125811, 0x59cc0001,
+ 0x48025813, 0x59cc0002, 0x48025814, 0x59cc0003,
+ 0x48025815, 0x59cc0004, 0x48025816, 0x59cc0005,
+ 0x48025817, 0x0001fba8, 0x05d1fcdf, 0x0009f010,
+ 0x592c0010, 0x800001c0, 0x05000005, 0x59a8005f,
+ 0x48026006, 0x640a6203, 0x1c01f000, 0x64025a0a,
+ 0x0001fba8, 0x0009f810, 0x1c01f000, 0x42000000,
+ 0x00112410, 0x050dfce2, 0x05e5ff5b, 0x59300203,
+ 0x4933c857, 0x4803c857, 0x90000c91, 0x05a61b9a,
+ 0x0c01f802, 0x05e5f745, 0x0010ba90, 0x0010ba99,
+ 0x0010ba91, 0x0010ba8f, 0x0010ba8f, 0x0010ba8f,
+ 0x0010ba8f, 0x0010ba8f, 0x0010ba8f, 0x0010ba8f,
+ 0x0010ba8f, 0x0010ba8f, 0x0010ba8f, 0x0010ba8f,
+ 0x0010ba91, 0x0010ba8f, 0x0010ba8f, 0x05a5fb86,
+ 0x1c01f000, 0x59300403, 0xb0000592, 0x05f804a6,
+ 0x05d1fcb1, 0x59325809, 0x641a5a0a, 0x0001fba8,
+ 0x05edf64d, 0x59301804, 0x840c0520, 0x48026004,
+ 0x598c000b, 0x81300580, 0x0502000f, 0x8c0c0520,
+ 0x0502000f, 0x42001000, 0x00112322, 0x50081000,
+ 0x58080002, 0x82000580, 0x00000100, 0x0500000b,
+ 0x5808000c, 0x81300580, 0x05a60b6b, 0x4978100c,
+ 0x0501f003, 0x8c0c0520, 0x05fe07e3, 0x05e5fbc0,
+ 0x05fc07e1, 0x05a5fb64, 0x05e9fa1c, 0x05fc07fc,
+ 0x59300203, 0x90000c91, 0x05a61b5f, 0x0c01f7c7,
+ 0x4933c857, 0x4c500000, 0x4c540000, 0x4c580000,
+ 0x592c0c0b, 0x48065817, 0x59cc0809, 0x4806580b,
+ 0x59cc0808, 0x4806580f, 0x59a808d5, 0x82040500,
+ 0x000003ff, 0x800010c4, 0x8c040514, 0x05000004,
+ 0x59cc0002, 0x90000503, 0x80081480, 0x480a621c,
+ 0x412c0800, 0x05a5feec, 0x05a40b47, 0x492c080d,
+ 0x5804040c, 0x84000552, 0x84000540, 0x48000c0c,
+ 0x90081403, 0x80081104, 0x91cca406, 0x912cac08,
+ 0x60400800, 0x90080490, 0x05021003, 0x40080800,
+ 0x80000580, 0x4004b000, 0x4c000000, 0x050dfd7e,
+ 0x5c000000, 0x800001c0, 0x0500000a, 0x412c1000,
+ 0x4c000000, 0x05a5fed4, 0x05a40b2f, 0x492c1001,
+ 0x912cac08, 0x5c000000, 0x40001000, 0x05fdf7ee,
+ 0x5c00b000, 0x5c00a800, 0x5c00a000, 0x1c01f000,
+ 0x4933c857, 0x4d2c0000, 0x4c380000, 0x59325809,
+ 0x5930021c, 0x48025a0c, 0x59301013, 0x640a6203,
+ 0x592c020e, 0x8c000500, 0x05000004, 0x59300017,
+ 0x592c1013, 0x80081480, 0x40080000, 0x0501f961,
+ 0x80001540, 0x05020007, 0x64025a0a, 0x592c000f,
+ 0x82000500, 0x00000c00, 0x05000009, 0x0501f009,
+ 0x8c08053e, 0x05000005, 0x641e5a0a, 0x80081080,
+ 0x80081000, 0x0501f002, 0x64565a0a, 0x480a580b,
+ 0x42000000, 0x00114294, 0x50007000, 0x5838000b,
+ 0x80000540, 0x05020007, 0x4930700c, 0x4930700b,
+ 0x58380002, 0x90000580, 0x05020808, 0x0501f004,
+ 0x90001400, 0x45301000, 0x4930700b, 0x5c007000,
+ 0x5c025800, 0x1c01f000, 0x4933c857, 0x592c000d,
+ 0x40001000, 0x4800700a, 0x90080408, 0x48007003,
+ 0x592c0011, 0x592c1012, 0x592c1804, 0x480c7006,
+ 0x48007007, 0x48087008, 0x592c0017, 0x592c120c,
+ 0x80080c80, 0x05001002, 0x40001000, 0x90081403,
+ 0x80081104, 0x90080490, 0x05021003, 0x80000580,
+ 0x0501f002, 0x60401000, 0x4800700d, 0x48087004,
+ 0x800810c4, 0x48087005, 0x40381000, 0x0001f029,
+ 0x4d2c0000, 0x05a5fe67, 0x05a40ad3, 0x42000800,
+ 0x00114294, 0x452c0800, 0x497a580b, 0x497a580c,
+ 0x497a580d, 0x4a025809, 0x0010bb50, 0x4a025802,
+ 0x00000100, 0x64025801, 0x5c025800, 0x1c01f000,
+ 0x4833c857, 0x4d300000, 0x4d2c0000, 0x4c5c0000,
+ 0x4030b800, 0x585c000a, 0x80025d40, 0x05020004,
+ 0x585c000c, 0x4c000000, 0x0501f03b, 0x585c0002,
+ 0x82000580, 0x00000100, 0x0502001c, 0x592c0801,
+ 0x4c040000, 0x05a5fe68, 0x5c000800, 0x800409c0,
+ 0x05000017, 0x4804b80a, 0x585c100d, 0x800811c0,
+ 0x05020004, 0x40065800, 0x05a5fe68, 0x0501f010,
+ 0x90080490, 0x05021003, 0x80000580, 0x0501f002,
+ 0x60401000, 0x4800b80d, 0x4808b804, 0x800810c4,
+ 0x4808b805, 0x90040408, 0x4800b803, 0x405c1000,
+ 0x0001f829, 0x0501f022, 0x0501f825, 0x585c000c,
+ 0x80026540, 0x59300000, 0x80000d40, 0x05020002,
+ 0x4800b80b, 0x4800b80c, 0x497a6000, 0x4c000000,
+ 0x4978b80a, 0x59325809, 0x4a025a08, 0x00000103,
+ 0x59300402, 0x48025c0a, 0x592c100f, 0x4c080000,
+ 0x0001fba8, 0x0501f8ca, 0x05f9ffb3, 0x5c001000,
+ 0x8c080518, 0x05000003, 0x05fdf8ce, 0x0501f002,
+ 0x0009f810, 0x405c7000, 0x5c000000, 0x80026540,
+ 0x05000003, 0x59325809, 0x05fdff88, 0x5c00b800,
+ 0x5c025800, 0x5c026000, 0x1c01f000, 0x483bc857,
+ 0x5838000a, 0x40025800, 0x05a5fe30, 0x5838000c,
+ 0x80026540, 0x59300009, 0x80025d40, 0x640a5a0a,
+ 0x1c01f000, 0x4803c857, 0x4933c857, 0x4d1c0000,
+ 0x497a601e, 0x41323800, 0x40026000, 0x4d3c0000,
+ 0x60167800, 0x0501f837, 0x5c027800, 0x411e6000,
+ 0x4933c857, 0x59300416, 0x84000502, 0x48026416,
+ 0x5c023800, 0x1c01f000, 0x481bc857, 0x4933c857,
+ 0x4c5c0000, 0x4c600000, 0x4010b800, 0x4014c000,
+ 0x050df920, 0x05b5faf2, 0x59240400, 0x8c00050a,
+ 0x05020006, 0x40602800, 0x405c3000, 0x0509fb26,
+ 0x90000541, 0x0501f002, 0x80000580, 0x5c00c000,
+ 0x5c00b800, 0x1c01f000, 0x4803c856, 0x4d300000,
+ 0x42026000, 0x00115aa4, 0x0501fda4, 0x05021013,
+ 0x59300c07, 0x90040581, 0x05000009, 0x90040584,
+ 0x05000004, 0x90040590, 0x05f80aeb, 0x0501f007,
+ 0x59300203, 0x90000d87, 0x05000004, 0x4807c857,
+ 0x05fdf981, 0x05020807, 0x91326430, 0x41580000,
+ 0x81300480, 0x05fc17ef, 0x5c026000, 0x1c01f000,
+ 0x4933c857, 0x59300403, 0x4803c857, 0x05e5fde6,
+ 0x4df00000, 0x59301407, 0x59300203, 0x4803c857,
+ 0x90080d82, 0x05000016, 0x90080d81, 0x0500000b,
+ 0x90080d84, 0x05000005, 0x4933c856, 0x5c03e000,
+ 0x05e40dca, 0x0501f03e, 0x90000d88, 0x0500002e,
+ 0x90000d87, 0x0500002c, 0x90000d81, 0x05000013,
+ 0x90000d82, 0x05000028, 0x90000d85, 0x05000026,
+ 0x90000d8e, 0x05000024, 0x05a5fa0f, 0x90000d89,
+ 0x0500000a, 0x90000d8b, 0x05000008, 0x90000d8a,
+ 0x0500001d, 0x90000d8c, 0x0500001b, 0x90000d8e,
+ 0x05000019, 0x05a5fa04, 0x598c000b, 0x81300580,
+ 0x05020003, 0x05e9f8b9, 0x05020013, 0x59300004,
+ 0x4803c857, 0x8c000520, 0x05000004, 0x84000520,
+ 0x48026004, 0x0501f00c, 0x05e5fa51, 0x05a609f6,
+ 0x5c03e000, 0x05e40da1, 0x59300407, 0x90000d82,
+ 0x05000013, 0x05d1fb20, 0x05f9ff3d, 0x05f00bd6,
+ 0x0501f00f, 0x5c03e000, 0x05e40d98, 0x59300407,
+ 0x90000d82, 0x0500000a, 0x5930081d, 0x58040200,
+ 0x8c000500, 0x050002b4, 0x05d1fb13, 0x05f9ff30,
+ 0x05f00bc9, 0x8d3c0500, 0x05000003, 0x050df986,
+ 0x05edf4ad, 0x64066229, 0x4a026403, 0x00000085,
+ 0x64266203, 0x640a6407, 0x42000800, 0x80000040,
+ 0x0005f6e2, 0x60007040, 0x4203e000, 0xb0800000,
+ 0x6033f800, 0x40000000, 0x40000000, 0x40000000,
+ 0x0501b004, 0x80387040, 0x05a409cb, 0x05fdf7f9,
+ 0x1c01f000, 0x83300480, 0x001159e4, 0x05001006,
+ 0x41540000, 0x81300480, 0x05021003, 0x80000580,
+ 0x1c01f000, 0x81780080, 0x1c01f000, 0x59300027,
+ 0x80000540, 0x05000006, 0x4d2c0000, 0x40025800,
+ 0x05a5fd6d, 0x497a6027, 0x5c025800, 0x1c01f000,
+ 0x592c720e, 0x8c380500, 0x05020009, 0x59307008,
+ 0x8c380516, 0x05000006, 0x59307009, 0x58387013,
+ 0x59300014, 0x80380480, 0x05001002, 0x1c01f000,
+ 0x59300416, 0x8c000514, 0x05000005, 0x59300018,
+ 0x4803c857, 0x80380480, 0x05fe17f9, 0x59300013,
+ 0x4803c857, 0x05fdf7f6, 0x59a808bb, 0x59cc2808,
+ 0x4c5c0000, 0x4178b800, 0x8c14051e, 0x05000002,
+ 0x805cb800, 0x82140500, 0x00000c00, 0x05000004,
+ 0x905c0410, 0x80040480, 0x05001018, 0x80001580,
+ 0x8c140512, 0x05000005, 0x905c0414, 0x80040480,
+ 0x05001012, 0x59cc100a, 0x80000580, 0x8c140510,
+ 0x05000005, 0x905c0418, 0x80040480, 0x0500100b,
+ 0x59cc000b, 0x80080400, 0x05001008, 0x05000005,
+ 0x905c0418, 0x80040480, 0x05001004, 0x80000580,
+ 0x5c00b800, 0x1c01f000, 0x42000000, 0x001123ed,
+ 0x050dfabb, 0x90000541, 0x05fdf7fa, 0x4933c857,
+ 0x4937c857, 0x4923c857, 0x4927c857, 0x492fc857,
+ 0x48efc857, 0x4d1c0000, 0x4d300000, 0x41323800,
+ 0x05edfc70, 0x0500001f, 0x48ee602d, 0x4926601d,
+ 0x4936600a, 0x05fdf97a, 0x591c0407, 0x90000583,
+ 0x05000008, 0x591c0202, 0x4803c857, 0x4802641b,
+ 0x591c0402, 0x4802621b, 0x4803c857, 0x0501f009,
+ 0x591c0017, 0x48026017, 0x591c0202, 0x4803c857,
+ 0x4802621b, 0x591c0402, 0x4802641b, 0x4803c857,
+ 0x491e602a, 0x64066407, 0x492e6009, 0x4d380000,
+ 0x615e7000, 0x0009f839, 0x5c027000, 0x90000541,
+ 0x5c026000, 0x5c023800, 0x1c01f000, 0x4933c857,
+ 0x493bc857, 0x4937c857, 0x4d2c0000, 0x4c500000,
+ 0x4c540000, 0x4c580000, 0x59325809, 0x05f9fd7f,
+ 0x05000017, 0x91cca406, 0x912cac0a, 0x91380596,
+ 0x05020007, 0x59a800bb, 0x90000588, 0x0502000e,
+ 0x492fc857, 0x6008b000, 0x0501f008, 0x91380595,
+ 0x05020009, 0x492fc857, 0x59a800bb, 0x90000598,
+ 0x05020005, 0x6018b000, 0x050dfb3c, 0x05edfe31,
+ 0x0501f003, 0x05f1fb14, 0x0009f810, 0x5c00b000,
+ 0x5c00a800, 0x5c00a000, 0x5c025800, 0x1c01f000,
+ 0x4933c857, 0x05e5fce0, 0x4df00000, 0x59300203,
+ 0x90000c91, 0x05a61920, 0x0c01f001, 0x0010bd09,
+ 0x0010bd08, 0x0010bd0e, 0x0010bd26, 0x0010bd0d,
+ 0x0010bd08, 0x0010bd08, 0x0010bd08, 0x0010bd08,
+ 0x0010bd08, 0x0010bd08, 0x0010bd08, 0x0010bd08,
+ 0x0010bd08, 0x0010bd08, 0x0010bd08, 0x0010bd0e,
+ 0x05a5f90d, 0x5c03e000, 0x05e40cb8, 0x80000580,
+ 0x1c01f000, 0x05a9fbda, 0x5c03e000, 0x05e40cb3,
+ 0x8d3c0502, 0x05020011, 0x4d2c0000, 0x59325809,
+ 0x64165a0a, 0x0001fba8, 0x5c025800, 0x497a6009,
+ 0x8d3c0500, 0x0502000b, 0x642a6229, 0x4a026403,
+ 0x00000085, 0x64266203, 0x640a6407, 0x42000800,
+ 0x80004040, 0x0005fee2, 0x81780080, 0x1c01f000,
+ 0x05edfbc1, 0x05fdf7fd, 0x05f9f984, 0x05020003,
+ 0x05e5ff76, 0x05020005, 0x05e5f865, 0x05fc07e3,
+ 0x05e5fbbd, 0x05a608e8, 0x59300203, 0x90000d83,
+ 0x05a408e5, 0x90000c91, 0x05a618e3, 0x0c01f7c4,
+ 0x4803c856, 0x05edfbe3, 0x0500002e, 0x59300402,
+ 0x4802621b, 0x59a804d1, 0x84000540, 0x84000502,
+ 0x480354d1, 0x812e59c0, 0x05000011, 0x82600580,
+ 0x00003000, 0x05020003, 0x4a026416, 0x00000100,
+ 0x592c020b, 0x480352d2, 0x480352d1, 0x592c000f,
+ 0x480350d3, 0x592c020c, 0x800000c2, 0x800008c4,
+ 0x80040400, 0x48026006, 0x0501f00a, 0x640b50d3,
+ 0x59a8005f, 0x800000c4, 0x48026006, 0x417a4000,
+ 0x61fa880f, 0x42003000, 0x00fffffe, 0x05cdf9d8,
+ 0x4926601d, 0x599c0208, 0x48026c12, 0x59340002,
+ 0x4802600b, 0x497a641b, 0x4936600a, 0x492e6009,
+ 0x64066407, 0x61627000, 0x0009f839, 0x90000541,
+ 0x1c01f000, 0x4d2c0000, 0x4c5c0000, 0x4c600000,
+ 0x4c640000, 0x4803c856, 0x59325809, 0x91380595,
+ 0x050200b8, 0x812e59c0, 0x05000003, 0x05f9fce3,
+ 0x05a408a5, 0x59a800bb, 0x82000580, 0x00000228,
+ 0x050200ab, 0x59cc0c07, 0x82040580, 0x00000101,
+ 0x050200b7, 0x59cc0a07, 0x59300402, 0x80040580,
+ 0x050200b5, 0x59cc0a0a, 0x82040580, 0x00000228,
+ 0x050200b3, 0x91ccbc0b, 0x585c0c00, 0x82040580,
+ 0x00000101, 0x050200b0, 0x585c0a00, 0x90040584,
+ 0x050200af, 0x91ccc40d, 0x58600c00, 0x82040580,
+ 0x00000102, 0x050200ac, 0x58600a00, 0x90040584,
+ 0x050200ab, 0x91cccc0f, 0x58640c00, 0x82040580,
+ 0x00000103, 0x05000004, 0x82040580, 0x00000203,
+ 0x050200a5, 0x58640a00, 0x82040580, 0x00000200,
+ 0x050200a3, 0x585c0801, 0x800409c0, 0x050000a2,
+ 0x90040484, 0x050210a0, 0x480750d4, 0x58600201,
+ 0x800001c0, 0x0500009f, 0x82001480, 0x00000fff,
+ 0x0502109c, 0x480354d2, 0x480352d1, 0x4c500000,
+ 0x4c540000, 0x4c580000, 0x6000b001, 0x4200a800,
+ 0x00114616, 0x91cca410, 0x5450a800, 0x8050a000,
+ 0x8054a800, 0x8058b040, 0x05fe07fc, 0x5c00b000,
+ 0x5c00a800, 0x5c00a000, 0x40001000, 0x4c040000,
+ 0x05b5fa18, 0x5c000800, 0x05020005, 0x59a804d1,
+ 0x8400054c, 0x480354d1, 0x4803c857, 0x90040582,
+ 0x05000055, 0x90040583, 0x05000002, 0x0501f004,
+ 0x59a800d3, 0x90000582, 0x05000052, 0x812e59c0,
+ 0x0500002b, 0x592c1001, 0x800811c0, 0x05a40846,
+ 0x4930100b, 0x492c100a, 0x64001001, 0x4a001009,
+ 0x0010bde2, 0x4a001003, 0x00114616, 0x4a001005,
+ 0x00000200, 0x592c0015, 0x48001007, 0x592c0016,
+ 0x48001008, 0x5c00c800, 0x5c00c000, 0x5c00b800,
+ 0x5c025800, 0x0001f029, 0x4d2c0000, 0x4c5c0000,
+ 0x4c600000, 0x4c640000, 0x5832600b, 0x813261c0,
+ 0x05a4082d, 0x5832580a, 0x812e59c0, 0x05a4082a,
+ 0x49786001, 0x58300002, 0x82000580, 0x00000100,
+ 0x0502005a, 0x59a80cd2, 0x48065811, 0x59a808d4,
+ 0x48065810, 0x64ca5a0a, 0x0001fba8, 0x0009f810,
+ 0x58600a01, 0x59a802d2, 0x80040580, 0x0502004c,
+ 0x59a81cd1, 0x820c1d00, 0xffffffbc, 0x840c1d46,
+ 0x480f54d1, 0x0501f01e, 0x59cc3407, 0x82183500,
+ 0x000000ff, 0x90180585, 0x0502000c, 0x59340412,
+ 0x800001c0, 0x05000009, 0x80000040, 0x48026c12,
+ 0x4d2c0000, 0x59325809, 0x0009f810, 0x05fdff25,
+ 0x5c025800, 0x0501f00e, 0x05f1fe66, 0x59a8024c,
+ 0x84000518, 0x4803524c, 0x4803544c, 0x0009f810,
+ 0x05fdf7e4, 0x59a800d3, 0x90000581, 0x05fc07b0,
+ 0x5930041b, 0x84000548, 0x4802641b, 0x5c00c800,
+ 0x5c00c000, 0x5c00b800, 0x5c025800, 0x1c01f000,
+ 0x4803c856, 0x812e59c0, 0x05fc07dc, 0x05f9fc2b,
+ 0x05a00fed, 0x64c65a0a, 0x64625810, 0x59cc0007,
+ 0x48025811, 0x0001fba8, 0x05fdf7e4, 0x4807c857,
+ 0x05fdf7ef, 0x4807c857, 0x05fdf7ed, 0x4807c857,
+ 0x05fdf7eb, 0x4807c857, 0x05fdf7e9, 0x4807c857,
+ 0x05fdf7e7, 0x4807c857, 0x05fdf7e5, 0x4807c857,
+ 0x05fdf7e3, 0x4807c857, 0x05fdf7e1, 0x4807c857,
+ 0x05fdf7df, 0x4807c857, 0x05a1ffd3, 0x05fdf7dc,
+ 0x4803c857, 0x05a1ffd0, 0x05fdf7d9, 0x4807c857,
+ 0x0501f80f, 0x05fdf7d6, 0x4803c857, 0x4a006002,
+ 0x00000100, 0x640a5a0a, 0x0001fba8, 0x05fdf7a8,
+ 0x59300403, 0xb0000d98, 0x05000004, 0xb0000d9e,
+ 0x05000002, 0xb0000d9f, 0x1c01f000, 0x59a804d1,
+ 0x82000500, 0xfffffffc, 0x480354d1, 0x05d1fd3d,
+ 0x05020006, 0x05d1fd4d, 0x05000004, 0x64075045,
+ 0x6006d800, 0x05d1fcb4, 0x1c01f000, 0x4933c857,
+ 0x4d400000, 0x60028000, 0x05b5f84d, 0x05f1fe28,
+ 0x0500001f, 0x59cc0408, 0x8c00051e, 0x05020009,
+ 0x42000800, 0x001124b6, 0x58040406, 0x8c000500,
+ 0x05020004, 0x59240200, 0x84000556, 0x48024a00,
+ 0x60aa8000, 0x59240400, 0x8c00050a, 0x05020004,
+ 0x61fe89ff, 0x60083000, 0x0509f873, 0x4d3c0000,
+ 0x600a7800, 0x5924100b, 0x82081500, 0x00001fff,
+ 0x41780800, 0x05b5f968, 0x5c027800, 0x42000000,
+ 0x001123f8, 0x050df8d2, 0x600a8000, 0x60100800,
+ 0x05cdf878, 0x60040800, 0x05cdf9b2, 0x59cc0800,
+ 0x82040d00, 0x00ffffff, 0x5924100c, 0x48041001,
+ 0x59cc0009, 0x48024a0a, 0x48001200, 0x59cc000a,
+ 0x48024c0a, 0x48001400, 0x59240200, 0xb0000566,
+ 0x48024a00, 0x48064805, 0x49238830, 0x84040570,
+ 0x48038832, 0x812000f0, 0x80040540, 0x48026813,
+ 0x60040000, 0x05d1fa93, 0x5c028000, 0x59301009,
+ 0x800811c0, 0x05020009, 0x0501f823, 0x5924100b,
+ 0x82081500, 0x00001fff, 0x05b5f9af, 0x0501f81e,
+ 0x0502001c, 0x0501f018, 0x4d2c0000, 0x400a5800,
+ 0x592c1208, 0x82080500, 0x000000ff, 0x900005b0,
+ 0x05020009, 0x592c040b, 0x82000500, 0x000000ff,
+ 0x05020003, 0x05a5fb10, 0x0501f00a, 0x05d5fce6,
+ 0x0501f008, 0x592c020b, 0x80000110, 0x800001c0,
+ 0x05020003, 0x05a5fb08, 0x0501f002, 0x05d5fef6,
+ 0x5c025800, 0x59300429, 0x900005a1, 0x000a0010,
+ 0x1c01f000, 0x4933c857, 0x4d340000, 0x4d240000,
+ 0x4d200000, 0x916c0583, 0x05020015, 0x599c0018,
+ 0x8c000516, 0x05000003, 0x05c5fb71, 0x0501f010,
+ 0x60100800, 0x05cdf82b, 0x59300429, 0x900005a1,
+ 0x05000005, 0x59240400, 0x8c00050c, 0x05000004,
+ 0x64866429, 0x05fdf9ce, 0x90000541, 0x5c024000,
+ 0x5c024800, 0x5c026800, 0x1c01f000, 0x80000580,
+ 0x05fdf7fb, 0x4d340000, 0x5932680a, 0x05cdfe78,
+ 0x5c026800, 0x0009f010, 0x4803c856, 0x4c5c0000,
+ 0x4d200000, 0x4014b800, 0x05b1ffc5, 0x59a800c0,
+ 0x80000040, 0x480350c0, 0x916c0582, 0x05020004,
+ 0x59240200, 0x8400051a, 0x48024a00, 0x59240200,
+ 0x82000500, 0xfffffeef, 0x84000546, 0x48024a00,
+ 0x497a4805, 0x4d400000, 0x60068000, 0x41781800,
+ 0x405c2800, 0x60040000, 0x05d1fa32, 0x60aa8000,
+ 0x4d3c0000, 0x600a7800, 0x05b5f805, 0x5c027800,
+ 0x5c028000, 0x5c024000, 0x5c00b800, 0x813261c0,
+ 0x05ee01d9, 0x1c01f000, 0x59303009, 0x58181a08,
+ 0x820c1d00, 0x000000ff, 0xb00c0588, 0x05000003,
+ 0xb00c05aa, 0x05020048, 0x59300004, 0x8c000516,
+ 0x05020045, 0x5818040c, 0x8c000500, 0x05000042,
+ 0x42000000, 0x00114294, 0x50006000, 0x41781800,
+ 0x5830200c, 0x41300000, 0x80100580, 0x05000006,
+ 0x40101800, 0x580c2000, 0x801021c0, 0x05fe07fa,
+ 0x0501f035, 0x4933c857, 0x59302000, 0x497a6000,
+ 0x800c19c0, 0x0502001e, 0x4933c856, 0x42007000,
+ 0x000211e8, 0x5830000a, 0x800001c0, 0x05000018,
+ 0x4978600a, 0x58380001, 0x80300580, 0x05020008,
+ 0x4933c856, 0x49787002, 0x4810600c, 0x801021c0,
+ 0x0502001d, 0x4978600b, 0x0501f01b, 0x4933c856,
+ 0x4810600c, 0x801021c0, 0x05020002, 0x4978600b,
+ 0x4c180000, 0x4c300000, 0x05a5fbf5, 0x5c006000,
+ 0x05fdfc08, 0x5c003000, 0x0501f00f, 0x4933c856,
+ 0x800c19c0, 0x05020008, 0x801021c0, 0x05000003,
+ 0x4810600c, 0x0501f008, 0x4978600c, 0x4978600b,
+ 0x0501f005, 0x48101800, 0x801021c0, 0x05020002,
+ 0x480c600b, 0x5818040c, 0x84000500, 0x4800340c,
+ 0x4978320c, 0x1c01f000, 0x42001000, 0x00112325,
+ 0x58080000, 0x4937c857, 0x4803c857, 0x90000580,
+ 0x0500001b, 0x58080005, 0x49341005, 0x80000540,
+ 0x05020003, 0x49341004, 0x1c01f000, 0x4803c857,
+ 0x49340016, 0x1c01f000, 0x42001000, 0x00112325,
+ 0x58080000, 0x4937c857, 0x4947c857, 0x4803c857,
+ 0x90000580, 0x0500001a, 0x58080003, 0x49341003,
+ 0x80000540, 0x05020003, 0x49341002, 0x1c01f000,
+ 0x4803c857, 0x49340016, 0x1c01f000, 0x4937c857,
+ 0x0501f83c, 0x05a00e94, 0x42001000, 0x00112325,
+ 0x64081000, 0x4c080000, 0x0501f8c1, 0x5c001000,
+ 0x05a20e8d, 0x58081001, 0x64001001, 0x4a001009,
+ 0x0010bffb, 0x49341003, 0x0501f010, 0x4937c857,
+ 0x0501f816, 0x05a00e84, 0x42001000, 0x00112325,
+ 0x64041000, 0x58081001, 0x64041001, 0x4a001009,
+ 0x0010bfd3, 0x49341003, 0x4c080000, 0x0501f8ac,
+ 0x5c001000, 0x05a20e78, 0x40100000, 0x800c0540,
+ 0x05a00e75, 0x4934100b, 0x65701005, 0x480c1007,
+ 0x48101008, 0x0001f029, 0x4c5c0000, 0x4c600000,
+ 0x4937c857, 0x8344bc00, 0x0010db80, 0x505c0000,
+ 0x8200c580, 0x40000000, 0x82600500, 0xe0000000,
+ 0x05020007, 0x82600540, 0x60000000, 0x4400b800,
+ 0x5c00c000, 0x5c00b800, 0x1c01f000, 0x8260c580,
+ 0x40000000, 0x4863c857, 0x80000580, 0x05fdf7f9,
+ 0x4c5c0000, 0x4c600000, 0x4937c857, 0x59368c03,
+ 0x8344bc00, 0x0010db80, 0x505c0000, 0x8200c580,
+ 0x20000000, 0x82600500, 0xe0000000, 0x05020007,
+ 0x82600540, 0x80000000, 0x4400b800, 0x5c00c000,
+ 0x5c00b800, 0x1c01f000, 0x8260c580, 0x20000000,
+ 0x4863c857, 0x80000580, 0x05fdf7f9, 0x4d340000,
+ 0x4d440000, 0x4c5c0000, 0x49786009, 0x58300002,
+ 0x82000580, 0x00000100, 0x05020012, 0x5830000b,
+ 0x80026d40, 0x4937c857, 0x0500000a, 0x59368c03,
+ 0x8344bc00, 0x0010db80, 0x83340540, 0x20000000,
+ 0x4400b800, 0x4a026815, 0x00020000, 0x497a6816,
+ 0x5c00b800, 0x5c028800, 0x5c026800, 0x0501f041,
+ 0x5830000b, 0x80026d40, 0x4803c857, 0x05fc07f9,
+ 0x59368c03, 0x8344bc00, 0x0010db80, 0x505c0000,
+ 0x82000500, 0x00ffffff, 0x82000540, 0x40000000,
+ 0x84000578, 0x4400b800, 0x05fdf7ee, 0x4d340000,
+ 0x4d2c0000, 0x4d440000, 0x4c5c0000, 0x49786009,
+ 0x58300002, 0x82000580, 0x00000100, 0x05020025,
+ 0x5830000b, 0x80026d40, 0x4937c857, 0x0500001c,
+ 0x59368c03, 0x8344bc00, 0x0010db80, 0x505c0000,
+ 0x4947c857, 0x4803c857, 0x82000d00, 0xe0000000,
+ 0x82000500, 0x00ffffff, 0x82041580, 0xa0000000,
+ 0x05020008, 0x4a026815, 0x00020000, 0x497a6816,
+ 0x82000540, 0x20000000, 0x4400b800, 0x0501f008,
+ 0x42000800, 0x40000000, 0x59340002, 0x80040540,
+ 0x4400b800, 0x41365800, 0x05a5f9a7, 0x5c00b800,
+ 0x5c028800, 0x5c025800, 0x5c026800, 0x0501f005,
+ 0x5830000b, 0x80026d40, 0x4937c857, 0x05fdf7f8,
+ 0x4d340000, 0x42001000, 0x00112325, 0x58080002,
+ 0x80026d40, 0x05000009, 0x4937c857, 0x59340016,
+ 0x48001002, 0x80000540, 0x05020002, 0x48001003,
+ 0x05fdff57, 0x0501f00c, 0x58080004, 0x80026d40,
+ 0x05000008, 0x59340016, 0x48001004, 0x80000540,
+ 0x05020002, 0x48001005, 0x05fdff3d, 0x0501f002,
+ 0x64001000, 0x5c026800, 0x1c01f000, 0x4937c857,
+ 0x83440c80, 0x00000800, 0x0500100c, 0x61701000,
+ 0x05e1fbdf, 0x59001801, 0x4c000000, 0x40040000,
+ 0x800c1c00, 0x5c000000, 0x59002002, 0x80102440,
+ 0x80000580, 0x1c01f000, 0x4947c857, 0x41781800,
+ 0x41782000, 0x90000541, 0x05fdf7fb, 0x4933c857,
+ 0x4927c857, 0x59a8024c, 0x90000543, 0x4803524c,
+ 0x4c5c0000, 0x4d400000, 0x59ccb800, 0x825cbd00,
+ 0x00ffffff, 0x60028000, 0x05b1fe4d, 0x05f1fc28,
+ 0x485f5040, 0x0500001d, 0x4d3c0000, 0x60aa8000,
+ 0x59240400, 0x8c00050a, 0x05020006, 0x59240200,
+ 0x84000556, 0x48024a00, 0x60083000, 0x0505fe73,
+ 0x600a7800, 0x05b1fe96, 0x42000000, 0x001123f8,
+ 0x0509fedf, 0x59cc0408, 0x8c00051e, 0x05020009,
+ 0x42000800, 0x001124b6, 0x58040406, 0x8c000500,
+ 0x05020004, 0x59a8024c, 0x84000552, 0x4803524c,
+ 0x600a8000, 0x5c027800, 0x41780800, 0x05c9ffb5,
+ 0x59240200, 0x4803c857, 0x4927c857, 0xb0000566,
+ 0x48024a00, 0x485e4805, 0x812000f0, 0x805c0540,
+ 0x48026813, 0x49238830, 0x84000570, 0x48038832,
+ 0x59a8124c, 0x59cc0408, 0x8c00051a, 0x05020005,
+ 0x84081514, 0x4a0370e5, 0x00000800, 0x0501f004,
+ 0x84081554, 0x4a0370e5, 0x00000c00, 0x84081548,
+ 0x480b524c, 0x480b524c, 0x05f9fd4f, 0x59cc0408,
+ 0x8c000518, 0x0500000a, 0x59a8024c, 0x84000508,
+ 0x8400054a, 0x4803524c, 0x49238830, 0x845c0570,
+ 0x48038832, 0x60100800, 0x05c9fe52, 0x59a80a4c,
+ 0x84040d50, 0x59cc0013, 0x8c00053e, 0x05000003,
+ 0x8c000536, 0x05000004, 0x59cc0017, 0x8c000536,
+ 0x05020002, 0x84040d10, 0x4807524c, 0x4807544c,
+ 0x42001800, 0x001142a2, 0x8c040508, 0x05020007,
0x59240400, 0x8c00050c, 0x05000004, 0x64866429,
- 0x05fdf9d9, 0x90000541, 0x5c024000, 0x5c024800,
- 0x5c026800, 0x1c01f000, 0x80000580, 0x05fdf7fb,
- 0x4d340000, 0x5932680a, 0x05d1f95a, 0x5c026800,
- 0x0005f7dc, 0x4803c856, 0x4c5c0000, 0x4d200000,
- 0x4014b800, 0x05b5fcda, 0x59a800bb, 0x80000040,
- 0x480350bb, 0x916c0582, 0x05020004, 0x59240200,
- 0x8400051a, 0x48024a00, 0x59240200, 0x82000500,
- 0xfffffeef, 0x84000546, 0x48024a00, 0x497a4805,
- 0x4d400000, 0x60068000, 0x41781800, 0x405c2800,
- 0x60040000, 0x05d1fcff, 0x60aa8000, 0x4d3c0000,
- 0x600a7800, 0x05b5fd10, 0x5c027800, 0x5c028000,
- 0x5c024000, 0x5c00b800, 0x813261c0, 0x05ee0275,
- 0x1c01f000, 0x59303009, 0x58181a08, 0x820c1d00,
- 0x000000ff, 0xb00c0588, 0x05000003, 0xb00c05aa,
- 0x05020048, 0x59300004, 0x8c000516, 0x05020045,
- 0x5818040c, 0x8c000500, 0x05000042, 0x42000000,
- 0x001102f0, 0x50006000, 0x41781800, 0x5830200c,
- 0x41300000, 0x80100580, 0x05000006, 0x40101800,
- 0x580c2000, 0x801021c0, 0x05fe07fa, 0x0501f035,
- 0x4933c857, 0x59302000, 0x497a6000, 0x800c19c0,
- 0x0502001e, 0x4933c856, 0x42007000, 0x000211a7,
- 0x5830000a, 0x800001c0, 0x05000018, 0x4978600a,
- 0x58380001, 0x80300580, 0x05020008, 0x4933c856,
- 0x49787002, 0x4810600c, 0x801021c0, 0x0502001d,
- 0x4978600b, 0x0501f01b, 0x4933c856, 0x4810600c,
- 0x801021c0, 0x05020002, 0x4978600b, 0x4c180000,
- 0x4c300000, 0x05a9f944, 0x5c006000, 0x05fdfc12,
- 0x5c003000, 0x0501f00f, 0x4933c856, 0x800c19c0,
- 0x05020008, 0x801021c0, 0x05000003, 0x4810600c,
- 0x0501f008, 0x4978600c, 0x4978600b, 0x0501f005,
- 0x48101800, 0x801021c0, 0x05020002, 0x480c600b,
- 0x5818040c, 0x84000500, 0x4800340c, 0x4978320c,
- 0x1c01f000, 0x4933c857, 0x4927c857, 0x59a80249,
- 0x90000543, 0x48035249, 0x4c5c0000, 0x4d400000,
- 0x59ccb800, 0x825cbd00, 0x00ffffff, 0x60028000,
- 0x05b5fc5f, 0x05f1fd93, 0x485f503d, 0x0500001d,
- 0x4d3c0000, 0x60aa8000, 0x59240400, 0x8c00050a,
- 0x05020006, 0x59240200, 0x84000556, 0x48024a00,
- 0x60083000, 0x0505fdda, 0x600a7800, 0x05b5fc9e,
- 0x42000000, 0x0010e454, 0x0509fe12, 0x59cc0408,
- 0x8c00051e, 0x05020009, 0x42000800, 0x0010e512,
- 0x58040406, 0x8c000500, 0x05020004, 0x59a80249,
- 0x84000552, 0x48035249, 0x600a8000, 0x5c027800,
- 0x41780800, 0x05cdfbfd, 0x59240200, 0x4803c857,
- 0x4927c857, 0xb0000566, 0x48024a00, 0x485e4805,
- 0x812000f0, 0x805c0540, 0x48026813, 0x49238830,
- 0x84000570, 0x48038832, 0x59a81249, 0x59cc0408,
- 0x8c00051a, 0x05020005, 0x84081514, 0x4a0370e5,
- 0x00000800, 0x0501f004, 0x84081554, 0x4a0370e5,
- 0x00000c00, 0x480b5249, 0x05f9fe67, 0x59cc0408,
- 0x8c000518, 0x05000009, 0x59a80249, 0x8400054a,
- 0x48035249, 0x49238830, 0x845c0570, 0x48038832,
- 0x60100800, 0x05cdfaf0, 0x59a80a49, 0x84040d50,
- 0x59cc0013, 0x8c00053e, 0x05000003, 0x8c000536,
- 0x05000004, 0x59cc0017, 0x8c000536, 0x05020002,
- 0x84040d10, 0x48075249, 0x48075449, 0x42001800,
- 0x001102fe, 0x59240400, 0x8c00050c, 0x05000004,
- 0x64866429, 0x05fdf8f4, 0x0501f009, 0x405c0800,
- 0x41781000, 0x60001802, 0x60040000, 0x60028000,
- 0x05d1fc38, 0x0501f830, 0x0005ffdc, 0x59a80249,
- 0x4803c857, 0x8c000506, 0x05020006, 0x41781800,
- 0x0509ff06, 0x05000002, 0x60401800, 0x05b5fb93,
- 0x805c0110, 0x48035046, 0x48038881, 0x59a80044,
- 0x80000040, 0x4803c857, 0x05001003, 0x48035044,
- 0x0502001a, 0x59a80249, 0x8c000506, 0x05000004,
- 0x8400050a, 0x48035249, 0x48035449, 0x42001800,
- 0x0010dd46, 0x05a5feeb, 0x42001800, 0x0010dd53,
- 0x05a5fee8, 0x4a035045, 0x0000ffff, 0x05e5fe5b,
- 0x4a01a8e4, 0x00000080, 0x0509ff09, 0x05000004,
- 0x4a038802, 0x0000ffbf, 0x0501f003, 0x4a038802,
- 0x0000ffff, 0x850e1d02, 0x5c028000, 0x5c00b800,
- 0x1c01f000, 0x4d440000, 0x4d340000, 0x61f2880f,
- 0x05d1f82d, 0x05020003, 0x4a026c00, 0x00000707,
- 0x5c026800, 0x5c028800, 0x1c01f000, 0x05f9feef,
- 0x59a80098, 0x40002800, 0x59a81899, 0x800c0480,
- 0x05000006, 0x59a8089a, 0x05001023, 0x80040480,
- 0x0500001a, 0x05001019, 0x59aa6097, 0x41302000,
- 0x59300a03, 0x90040d80, 0x0502000b, 0x64226203,
- 0x800c1800, 0x480f5099, 0x91301430, 0xa0080495,
- 0x0502100c, 0x480b5097, 0x05f9fee3, 0x81300540,
- 0x1c01f000, 0x91326430, 0xa1300c95, 0x05001002,
- 0x41526000, 0x81300584, 0x05000004, 0x05fdf7ed,
- 0x49535097, 0x05fdf7f5, 0x42000000, 0x0010e443,
- 0x0509fd64, 0x480fc857, 0x05f9fed3, 0x80026580,
- 0x05fdf7f0, 0x8c14053e, 0x05fe07dd, 0x80000080,
- 0x80000000, 0x05fdf7da, 0x4933c857, 0x4d340000,
- 0x4d200000, 0x05b5fb92, 0x61f6880f, 0x42003000,
- 0x00fffffd, 0x05cdfa8b, 0x05a60b50, 0x4936600a,
- 0x497a6c12, 0x59300429, 0x900005a1, 0x05020003,
- 0x599c0208, 0x48026c12, 0x5c024000, 0x5c026800,
- 0x640e601e, 0x64066203, 0x648a6403, 0x05e1f5da,
- 0x5930002b, 0x80000540, 0x05000006, 0x82000580,
- 0xffffffff, 0x05000003, 0x82000580, 0xffffffff,
- 0x1c01f000, 0x4927c857, 0x59240200, 0xb0000542,
- 0x48024a00, 0x1c01f000, 0x4933c857, 0x59368c03,
- 0x4c180000, 0x59300203, 0x90003491, 0x05a61b2f,
- 0x0c01f803, 0x5c003000, 0x1c01f000, 0x0010bac0,
- 0x0010c01b, 0x0010c1e5, 0x0010bac0, 0x0010bac0,
- 0x0010bac0, 0x0010bac0, 0x0010bac0, 0x0010bae0,
- 0x0010bac0, 0x0010bac0, 0x0010bac0, 0x0010bac0,
- 0x0010bac0, 0x0010c8ad, 0x0010bac0, 0x0010bac0,
- 0x05a5fb1a, 0x4933c857, 0x61fe89ff, 0x813669c0,
- 0x05000002, 0x59368c03, 0x4c180000, 0x59300203,
- 0x90003491, 0x05a61b11, 0x0c01f803, 0x5c003000,
- 0x1c01f000, 0x0010bade, 0x0010c49f, 0x0010bade,
- 0x0010bade, 0x0010bade, 0x0010bade, 0x0010bade,
- 0x0010bade, 0x0010c3dd, 0x0010c9fc, 0x0010ca31,
- 0x0010c9fc, 0x0010ca31, 0x0010bade, 0x0010c8be,
- 0x0010bade, 0x0010bade, 0x05a5fafc, 0x05a5fafb,
- 0xb13834a0, 0x05a61af9, 0x41380000, 0x493bc857,
- 0x4d1c0000, 0x4d400000, 0x0c01f804, 0x5c028000,
- 0x5c023800, 0x1c01f000, 0x0010bb4a, 0x0010bdc5,
- 0x0010bb4a, 0x0010bb4a, 0x0010bb4a, 0x0010bdcb,
- 0x0010bb4a, 0x0010bb4a, 0x0010bb4a, 0x0010bb4a,
- 0x0010bb4a, 0x0010bb4a, 0x0010bb4a, 0x0010bb4a,
- 0x0010bb4a, 0x0010bb4a, 0x0010bb4a, 0x0010bb4a,
- 0x0010bb4a, 0x0010bb4a, 0x0010bb4a, 0x0010bb4a,
- 0x0010bb4a, 0x0010bc52, 0x0010bc91, 0x0010bca3,
- 0x0010bd04, 0x0010bd48, 0x0010bd7c, 0x0010bd9e,
- 0x0010bb4a, 0x0010bb4a, 0x0010bdd0, 0x0010bb4a,
- 0x0010bb4a, 0x0010bdd9, 0x0010bdde, 0x0010bb4a,
- 0x0010bb4a, 0x0010bb4a, 0x0010bb4a, 0x0010bb4a,
- 0x0010be6d, 0x0010bb4a, 0x0010bb4a, 0x0010bd31,
- 0x0010bb4a, 0x0010bb4a, 0x0010be43, 0x0010bb4a,
- 0x0010bb4a, 0x0010bb4a, 0x0010be78, 0x0010bb4a,
- 0x0010bb4a, 0x0010bb4a, 0x0010bec0, 0x0010bb4a,
- 0x0010bb4a, 0x0010bb4a, 0x0010bb4a, 0x0010bb4a,
- 0x0010bb4a, 0x0010bf15, 0x0010bb4a, 0x0010bb4a,
- 0x0010bb4a, 0x0010bb4a, 0x0010bb4a, 0x0010bc32,
- 0x0010bb4a, 0x0010bb4a, 0x0010bb4a, 0x0010bb4a,
- 0x0010bc3c, 0x0010bb4a, 0x0010bb4a, 0x0010bb4a,
- 0x0010bf3e, 0x0010bf43, 0x0010bf5b, 0x0010bb4a,
- 0x0010bb4a, 0x0010bb4a, 0x0010bb4a, 0x0010bb4a,
- 0x0010bc48, 0x0010bb4a, 0x0010bb4a, 0x0010bb4b,
- 0x0010bb4a, 0x0010bb4a, 0x0010bb4a, 0x0010bbc5,
- 0x0010bb4a, 0x0010bb4a, 0x05a5fa90, 0x4933c857,
- 0x59cc0801, 0x82040580, 0x00fffffe, 0x05020416,
- 0x0505ff3b, 0x05020414, 0x05b5f8b2, 0x05020412,
- 0x59a804cc, 0x8c000504, 0x05000254, 0x4c5c0000,
- 0x59a808b6, 0x82040580, 0x00000228, 0x050200b5,
- 0x59cc0800, 0x82040d00, 0x00ffffff, 0x82040580,
- 0x00fffff0, 0x050200b1, 0x59cc0801, 0x82040d00,
- 0x00ffffff, 0x82040580, 0x00fffffe, 0x050200ad,
- 0x59cc0c07, 0x80040910, 0x90040581, 0x050200ab,
- 0x59cc0a0a, 0x82040580, 0x00000228, 0x050200af,
- 0x4c600000, 0x4c640000, 0x91ccbc0b, 0x585c0c00,
- 0x82040580, 0x00000101, 0x0502003f, 0x585c0a00,
- 0x90040584, 0x0502003e, 0x91ccc40d, 0x58600c00,
- 0x82040580, 0x00000102, 0x0502003b, 0x58600a00,
- 0x90040584, 0x0502003a, 0x91cccc0f, 0x58640c00,
- 0x82040580, 0x00000103, 0x05000004, 0x82040580,
- 0x00000203, 0x05020036, 0x58640a00, 0x82040580,
- 0x00000200, 0x05020034, 0x585c0801, 0x90040484,
- 0x05021033, 0x59cc0a07, 0x4807c857, 0x4806621b,
- 0x58600201, 0x4803c857, 0x800001c0, 0x05000026,
- 0x82000c80, 0x00000fff, 0x05021023, 0x480354cd,
- 0x480352cc, 0x60643000, 0x61fc19ff, 0x60182000,
- 0x4d200000, 0x417a4000, 0x05c5fca6, 0x5c024000,
- 0x585cc801, 0x5860ba01, 0x91ccc410, 0x497a641b,
- 0x0509fb09, 0x59cc0c04, 0x48066202, 0x656a6403,
- 0x64066203, 0x05e1fcc4, 0x59a804cc, 0x84000542,
- 0x480354cc, 0x5c00c800, 0x5c00c000, 0x5c00b800,
- 0x1c01f000, 0x4807c857, 0x05fdf7fb, 0x4807c857,
- 0x05fdf7f9, 0x4807c857, 0x05fdf7f7, 0x4807c857,
- 0x05fdf7f5, 0x4803c857, 0x05fdf7f3, 0x4807c857,
- 0x05fdf7f1, 0x4807c857, 0x05fdf7ef, 0x4807c857,
- 0x05fdf7ed, 0x4933c857, 0x59cc0801, 0x82040580,
- 0x00fffffe, 0x0502039c, 0x0505fec1, 0x0502039a,
- 0x05b5f838, 0x05020398, 0x0501fbcd, 0x050201db,
- 0x4c5c0000, 0x59a808b6, 0x90040594, 0x0502003d,
- 0x59cc0800, 0x82040d00, 0x00ffffff, 0x82040580,
- 0x00fffff0, 0x05020039, 0x59cc0801, 0x82040d00,
- 0x00ffffff, 0x82040580, 0x00fffffe, 0x05020035,
- 0x59cc0c07, 0x80040910, 0x90040581, 0x05020033,
- 0x59cc0a0a, 0x90040594, 0x05020038, 0x59cc0c07,
- 0x82040d00, 0x000000ff, 0x90040582, 0x0502002d,
- 0x59cc0a07, 0x4807c857, 0x4d300000, 0x05d9fead,
- 0x4130b800, 0x5c026000, 0x0500002e, 0x485fc857,
- 0x585c0c07, 0x90040581, 0x0502002d, 0x585c0a03,
- 0x90040582, 0x0502002d, 0x585c0c03, 0xb0040598,
- 0x0502002d, 0x5930000a, 0x585c080a, 0x80040580,
- 0x0502002c, 0x585c041b, 0x8c000508, 0x0500002c,
- 0x59a804cc, 0x84000542, 0x480354cc, 0x59cc0c04,
- 0x4804ba02, 0x6578bc03, 0x6404ba03, 0x0005ffdc,
- 0x405e6000, 0x05e1fc64, 0x5c00b800, 0x1c01f000,
- 0x4807c857, 0x05fdf7fd, 0x4807c857, 0x05fdf7fb,
- 0x4807c857, 0x05fdf7f9, 0x4807c857, 0x0501f002,
- 0x4807c857, 0x641e641c, 0x657e6403, 0x6402621c,
- 0x5c00b800, 0x0501f1ac, 0x4807c857, 0x05fdf7fa,
- 0x4807c857, 0x640e641c, 0x05fdf7f8, 0x4807c857,
- 0x640e641c, 0x05fdf7f5, 0x4807c857, 0x640e641c,
- 0x05fdf7f2, 0x4807c857, 0x640e641c, 0x05fdf7ef,
- 0x4807c857, 0x640e641c, 0x05fdf7ec, 0x4807c857,
- 0x640e641c, 0x05fdf7e9, 0x4933c857, 0x0505fe58,
- 0x05020331, 0x05b1ffcf, 0x0502032f, 0x59cc0407,
- 0x4802601e, 0x65166403, 0x64066203, 0x05e1f436,
- 0x4933c857, 0x0505fe4e, 0x05020327, 0x05b1ffc5,
- 0x05020325, 0x0501fb5a, 0x05020168, 0x59cc0007,
- 0x4802601e, 0x652a6403, 0x64066203, 0x05e1f42a,
- 0x4933c857, 0x0505fe42, 0x0502031b, 0x05b1ffb9,
- 0x05020319, 0x0501fb4e, 0x0502015c, 0x655a6403,
- 0x64066203, 0x05e1f420, 0x4933c857, 0x05b1ffb1,
- 0x05020009, 0x05cdfc75, 0x05020007, 0x5932481d,
- 0x59240200, 0x90000503, 0x90000583, 0x05000006,
- 0x0501f309, 0x64266403, 0x6426641c, 0x6402621c,
- 0x0501f169, 0x05cdfde6, 0x05000025, 0x59340200,
- 0x8c00051a, 0x05000004, 0x5934000a, 0x84000560,
- 0x4802680a, 0x0505f982, 0x05020024, 0x0509fceb,
- 0x05020006, 0x60a68000, 0x4d3c0000, 0x417a7800,
- 0x05b1febc, 0x5c027800, 0x42000000, 0x0010e456,
- 0x0509fb68, 0x41780800, 0x05cdf960, 0x64226403,
- 0x600c3000, 0x59240400, 0x8c00050a, 0x0502014e,
- 0x59cc400b, 0x59cc380c, 0x59cc180d, 0x59cc080e,
- 0x9c2041c0, 0x9c1c39c0, 0x9c0c19c0, 0x9c0409c0,
- 0x641e6203, 0x41782800, 0x0501f13c, 0x0505faef,
- 0x05fe07e1, 0x64266403, 0x643a641c, 0x4a02621c,
- 0x00001900, 0x0501f13c, 0x64266403, 0x640e641c,
- 0x0501f139, 0x4933c857, 0x05b1ff72, 0x050202d2,
- 0x05cdfc36, 0x050202d0, 0x493a6403, 0x0505f8e7,
- 0x05020007, 0x641a6403, 0x59240400, 0x8c00050a,
- 0x0502012d, 0x641e6203, 0x0509f10a, 0x641e6403,
- 0x6426641c, 0x6402621c, 0x0501f127, 0x4933c857,
- 0x05cdfc26, 0x050202c0, 0x5934000a, 0x82000500,
- 0x00010000, 0x82000580, 0x00010000, 0x05060de0,
- 0x05b00f58, 0x050202b8, 0x59cc0001, 0x82000500,
- 0x00ffff00, 0x82000580, 0x00fffc00, 0x05020007,
- 0x59a80006, 0x8c00050e, 0x05000004, 0x59240400,
- 0x8c00050a, 0x05020036, 0x05cdfd8d, 0x05020003,
- 0x60067800, 0x05cdf826, 0x05cdfd7c, 0x05000004,
- 0x82000580, 0x00000703, 0x05020032, 0x59cc0206,
- 0x90003503, 0x05020034, 0x90003494, 0x05001032,
- 0x59a830b6, 0x80183480, 0x0500102f, 0x5934300a,
- 0x84183516, 0x90000594, 0x05020002, 0x84183556,
- 0x481a680a, 0x59cc0406, 0x90000503, 0x05020026,
- 0x0505f962, 0x0502002b, 0x05cdfd4f, 0x05020006,
- 0x4c600000, 0x4178c000, 0x417a7800, 0x05b1fec9,
- 0x5c00c000, 0x916c0583, 0x05020006, 0x60183000,
- 0x0509f89c, 0x42000000, 0x0010e455, 0x0509faf9,
- 0x05cdf967, 0x642a6403, 0x60803000, 0x59cc1a0a,
- 0x41780800, 0x41784000, 0x41783800, 0x59240400,
- 0x8c00050a, 0x050200dc, 0x05fdf796, 0x642e6403,
- 0x642e641c, 0x4a02621c, 0x00002c00, 0x0501f0d6,
- 0x642e6403, 0x6426641c, 0x4a02621c, 0x00001e00,
- 0x0501f0d1, 0x42000000, 0x0010e3ab, 0x0509fae1,
- 0x642e6403, 0x641e641c, 0x6402621c, 0x0501f0ca,
- 0x642e6403, 0x640e641c, 0x6402621c, 0x0501f0c6,
- 0x4933c857, 0x05cdfbc5, 0x0502025f, 0x0505fd84,
- 0x0502025d, 0x05b1fefb, 0x0502025b, 0x59cc0206,
- 0x90003503, 0x0502001b, 0x90003494, 0x05001019,
- 0x59a830b6, 0x80180480, 0x05001016, 0x59cc0406,
- 0x90000503, 0x05020013, 0x59340400, 0x82000580,
- 0x00000707, 0x05000013, 0x417a7800, 0x4c600000,
- 0x4178c000, 0x05b1fe87, 0x5c00c000, 0x60283000,
- 0x0509f85c, 0x42000000, 0x0010e452, 0x0509fab9,
- 0x64326403, 0x41782800, 0x60843000, 0x05fdf7c4,
- 0x64366403, 0x641e641c, 0x6402621c, 0x0501f09e,
+ 0x05f9ffe7, 0x0501f009, 0x405c0800, 0x41781000,
+ 0x60001802, 0x60040000, 0x60028000, 0x05d1f869,
+ 0x0501f830, 0x0009f810, 0x59a8024c, 0x4803c857,
+ 0x8c000506, 0x05020006, 0x41781800, 0x0509ffce,
+ 0x05000002, 0x60401800, 0x05b1fd7c, 0x805c0110,
+ 0x48035049, 0x48038881, 0x59a80047, 0x80000040,
+ 0x4803c857, 0x05001003, 0x48035047, 0x0502001a,
+ 0x59a8024c, 0x8c000506, 0x05000004, 0x8400050a,
+ 0x4803524c, 0x4803544c, 0x42001800, 0x00111ce0,
+ 0x05a5f86f, 0x42001800, 0x00111ced, 0x05a5f86c,
+ 0x4a035048, 0x0000ffff, 0x05e5fc66, 0x4a01a8e4,
+ 0x00000080, 0x0509ffd1, 0x05000004, 0x4a038802,
+ 0x0000ffbf, 0x0501f003, 0x4a038802, 0x0000ffff,
+ 0x850e1d02, 0x5c028000, 0x5c00b800, 0x1c01f000,
+ 0x4d440000, 0x4d340000, 0x61f2880f, 0x05cdfc43,
+ 0x05020003, 0x4a026c00, 0x00000707, 0x5c026800,
+ 0x5c028800, 0x1c01f000, 0x05f9fdd4, 0x59a8009b,
+ 0x40002800, 0x59a8189c, 0x800c0480, 0x05000006,
+ 0x59a8089d, 0x05001026, 0x80040480, 0x0500001d,
+ 0x0500101c, 0x59aa609a, 0x41302000, 0x59300a03,
+ 0x90040d80, 0x0502000e, 0x5930002f, 0x84000516,
+ 0x4802602f, 0x64226203, 0x800c1800, 0x480f509c,
+ 0x91301430, 0xa0080495, 0x0502100c, 0x480b509a,
+ 0x05f9fdc9, 0x81300540, 0x1c01f000, 0x91326430,
+ 0xa1300c95, 0x05001002, 0x41526000, 0x81300584,
+ 0x05000004, 0x05fdf7ea, 0x4953509a, 0x05fdf7f5,
+ 0x42000000, 0x001123e5, 0x0509fe29, 0x480fc857,
+ 0x05f9fdb9, 0x80026580, 0x05fdf7f0, 0x8c14053e,
+ 0x05fe07da, 0x80000080, 0x80000000, 0x05fdf7d7,
+ 0x4933c857, 0x4d340000, 0x4d200000, 0x05b1fd78,
+ 0x61f6880f, 0x42003000, 0x00fffffd, 0x05c9fdf0,
+ 0x05a20cd5, 0x4936600a, 0x497a6c12, 0x59300429,
+ 0x900005a1, 0x05020003, 0x599c0208, 0x48026c12,
+ 0x5c024000, 0x5c026800, 0x640e601e, 0x64066203,
+ 0x648a6403, 0x05e1f3dd, 0x5930002b, 0x80000540,
+ 0x05000006, 0x82000580, 0xffffffff, 0x05000003,
+ 0x82000580, 0xffffffff, 0x1c01f000, 0x4927c857,
+ 0x59240200, 0xb0000542, 0x48024a00, 0x1c01f000,
+ 0x4927c857, 0x4a024a00, 0x00008085, 0x599c0208,
+ 0x48026c12, 0x4d300000, 0x05e9ffb6, 0x5c000000,
+ 0x05000005, 0x641c0407, 0x4a000006, 0x00000398,
+ 0x0501f002, 0x40026000, 0x4936600a, 0x600c0800,
+ 0x05c9fd94, 0x49238830, 0x4a038832, 0xffffffff,
+ 0x4926601d, 0x497a6009, 0x64066407, 0x64066203,
+ 0x640a6403, 0x05e1f3b5, 0x82bc0580, 0x00115aa4,
+ 0x05000008, 0x59a8003d, 0x59a8729f, 0x80380400,
+ 0x59a8723e, 0x8164740e, 0x80380480, 0x0501f003,
+ 0x59a8003d, 0x81640480, 0x1c01f000, 0x4933c857,
+ 0x59368c03, 0x4c180000, 0x59300203, 0x90003491,
+ 0x05a21c8d, 0x0c01f803, 0x5c003000, 0x1c01f000,
+ 0x0010c19d, 0x0010c70d, 0x0010c8e8, 0x0010c19d,
+ 0x0010c19d, 0x0010c19d, 0x0010c19d, 0x0010c19d,
+ 0x0010c1bd, 0x0010c19d, 0x0010c19d, 0x0010c19d,
+ 0x0010c19d, 0x0010c19d, 0x0010cff7, 0x0010c19d,
+ 0x0010c19d, 0x05a1fc78, 0x4933c857, 0x61fe89ff,
+ 0x813669c0, 0x05000002, 0x59368c03, 0x4c180000,
+ 0x59300203, 0x90003491, 0x05a21c6f, 0x0c01f803,
+ 0x5c003000, 0x1c01f000, 0x0010c1bb, 0x0010cb9c,
+ 0x0010c1bb, 0x0010c1bb, 0x0010c1bb, 0x0010c1bb,
+ 0x0010c1bb, 0x0010c1bb, 0x0010cae0, 0x0010d146,
+ 0x0010d17b, 0x0010d146, 0x0010d17b, 0x0010c1bb,
+ 0x0010d008, 0x0010c1bb, 0x0010c1bb, 0x05a1fc5a,
+ 0x05a1fc59, 0xb13834a0, 0x05a21c57, 0x41380000,
+ 0x493bc857, 0x4d1c0000, 0x4d400000, 0x0c01f804,
+ 0x5c028000, 0x5c023800, 0x1c01f000, 0x0010c22b,
+ 0x0010c4b4, 0x0010c22b, 0x0010c22b, 0x0010c22b,
+ 0x0010c4ba, 0x0010c22b, 0x0010c22b, 0x0010c22b,
+ 0x0010c22b, 0x0010c22b, 0x0010c22b, 0x0010c22b,
+ 0x0010c22b, 0x0010c22b, 0x0010c22b, 0x0010c22b,
+ 0x0010c22b, 0x0010c22b, 0x0010c22b, 0x0010c22b,
+ 0x0010c22b, 0x0010c22b, 0x0010c333, 0x0010c372,
+ 0x0010c384, 0x0010c3e5, 0x0010c429, 0x0010c45d,
+ 0x0010c47f, 0x0010c22b, 0x0010c22b, 0x0010c4bf,
+ 0x0010c22b, 0x0010c22b, 0x0010c4c8, 0x0010c4cd,
+ 0x0010c22b, 0x0010c22b, 0x0010c22b, 0x0010c22b,
+ 0x0010c22b, 0x0010c55f, 0x0010c22b, 0x0010c22b,
+ 0x0010c412, 0x0010c22b, 0x0010c22b, 0x0010c52f,
+ 0x0010c22b, 0x0010c22b, 0x0010c22b, 0x0010c56a,
+ 0x0010c22b, 0x0010c22b, 0x0010c22b, 0x0010c5b2,
+ 0x0010c22b, 0x0010c22b, 0x0010c22b, 0x0010c22b,
+ 0x0010c22b, 0x0010c22b, 0x0010c607, 0x0010c22b,
+ 0x0010c22b, 0x0010c22b, 0x0010c22b, 0x0010c22b,
+ 0x0010c313, 0x0010c22b, 0x0010c22b, 0x0010c22b,
+ 0x0010c22b, 0x0010c31d, 0x0010c22b, 0x0010c22b,
+ 0x0010c22b, 0x0010c630, 0x0010c635, 0x0010c64d,
+ 0x0010c22b, 0x0010c22b, 0x0010c22b, 0x0010c22b,
+ 0x0010c22b, 0x0010c329, 0x0010c22b, 0x0010c22b,
+ 0x0010c22c, 0x0010c22b, 0x0010c22b, 0x0010c22b,
+ 0x0010c2a6, 0x0010c22b, 0x0010c22b, 0x0010c22b,
+ 0x0010c22b, 0x0010c22b, 0x0010c22b, 0x05a1fbea,
+ 0x4933c857, 0x59cc0801, 0x82040580, 0x00fffffe,
+ 0x05020427, 0x0505ffa4, 0x05020425, 0x05b1fa69,
+ 0x05020423, 0x59a804d1, 0x8c000504, 0x05000262,
+ 0x4c5c0000, 0x59a808bb, 0x82040580, 0x00000228,
+ 0x050200b5, 0x59cc0800, 0x82040d00, 0x00ffffff,
+ 0x82040580, 0x00fffff0, 0x050200b1, 0x59cc0801,
+ 0x82040d00, 0x00ffffff, 0x82040580, 0x00fffffe,
+ 0x050200ad, 0x59cc0c07, 0x80040910, 0x90040581,
+ 0x050200ab, 0x59cc0a0a, 0x82040580, 0x00000228,
+ 0x050200af, 0x4c600000, 0x4c640000, 0x91ccbc0b,
+ 0x585c0c00, 0x82040580, 0x00000101, 0x0502003f,
+ 0x585c0a00, 0x90040584, 0x0502003e, 0x91ccc40d,
+ 0x58600c00, 0x82040580, 0x00000102, 0x0502003b,
+ 0x58600a00, 0x90040584, 0x0502003a, 0x91cccc0f,
+ 0x58640c00, 0x82040580, 0x00000103, 0x05000004,
+ 0x82040580, 0x00000203, 0x05020036, 0x58640a00,
+ 0x82040580, 0x00000200, 0x05020034, 0x585c0801,
+ 0x90040484, 0x05021033, 0x59cc0a07, 0x4807c857,
+ 0x4806621b, 0x58600201, 0x4803c857, 0x800001c0,
+ 0x05000026, 0x82000c80, 0x00000fff, 0x05021023,
+ 0x480354d2, 0x480352d1, 0x60643000, 0x61fc19ff,
+ 0x60182000, 0x4d200000, 0x417a4000, 0x05c1ff62,
+ 0x5c024000, 0x585cc801, 0x5860ba01, 0x91ccc410,
+ 0x497a641b, 0x0509fb8f, 0x59cc0c04, 0x48066202,
+ 0x656a6403, 0x64066203, 0x05e1fa9c, 0x59a804d1,
+ 0x84000542, 0x480354d1, 0x5c00c800, 0x5c00c000,
+ 0x5c00b800, 0x1c01f000, 0x4807c857, 0x05fdf7fb,
+ 0x4807c857, 0x05fdf7f9, 0x4807c857, 0x05fdf7f7,
+ 0x4807c857, 0x05fdf7f5, 0x4803c857, 0x05fdf7f3,
+ 0x4807c857, 0x05fdf7f1, 0x4807c857, 0x05fdf7ef,
+ 0x4807c857, 0x05fdf7ed, 0x4933c857, 0x59cc0801,
+ 0x82040580, 0x00fffffe, 0x050203ad, 0x0505ff2a,
+ 0x050203ab, 0x05b1f9ef, 0x050203a9, 0x0501fbde,
+ 0x050201e9, 0x4c5c0000, 0x59a808bb, 0x90040594,
+ 0x0502003d, 0x59cc0800, 0x82040d00, 0x00ffffff,
+ 0x82040580, 0x00fffff0, 0x05020039, 0x59cc0801,
+ 0x82040d00, 0x00ffffff, 0x82040580, 0x00fffffe,
+ 0x05020035, 0x59cc0c07, 0x80040910, 0x90040581,
+ 0x05020033, 0x59cc0a0a, 0x90040594, 0x05020038,
+ 0x59cc0c07, 0x82040d00, 0x000000ff, 0x90040582,
+ 0x0502002d, 0x59cc0a07, 0x4807c857, 0x4d300000,
+ 0x05d9fbba, 0x4130b800, 0x5c026000, 0x0500002e,
+ 0x485fc857, 0x585c0c07, 0x90040581, 0x0502002d,
+ 0x585c0a03, 0x90040582, 0x0502002d, 0x585c0c03,
+ 0xb0040598, 0x0502002d, 0x5930000a, 0x585c080a,
+ 0x80040580, 0x0502002c, 0x585c041b, 0x8c000508,
+ 0x0500002c, 0x59a804d1, 0x84000542, 0x480354d1,
+ 0x59cc0c04, 0x4804ba02, 0x6578bc03, 0x6404ba03,
+ 0x0009f810, 0x405e6000, 0x05e1fa3c, 0x5c00b800,
+ 0x1c01f000, 0x4807c857, 0x05fdf7fd, 0x4807c857,
+ 0x05fdf7fb, 0x4807c857, 0x05fdf7f9, 0x4807c857,
+ 0x0501f002, 0x4807c857, 0x641e641c, 0x657e6403,
+ 0x6402621c, 0x5c00b800, 0x0501f1ba, 0x4807c857,
+ 0x05fdf7fa, 0x4807c857, 0x640e641c, 0x05fdf7f8,
+ 0x4807c857, 0x640e641c, 0x05fdf7f5, 0x4807c857,
+ 0x640e641c, 0x05fdf7f2, 0x4807c857, 0x640e641c,
+ 0x05fdf7ef, 0x4807c857, 0x640e641c, 0x05fdf7ec,
+ 0x4807c857, 0x640e641c, 0x05fdf7e9, 0x4933c857,
+ 0x0505fec1, 0x05020342, 0x05b1f986, 0x05020340,
+ 0x59cc0407, 0x4802601e, 0x65166403, 0x64066203,
+ 0x05e1f20e, 0x4933c857, 0x0505feb7, 0x05020338,
+ 0x05b1f97c, 0x05020336, 0x0501fb6b, 0x05020176,
+ 0x59cc0007, 0x4802601e, 0x652a6403, 0x64066203,
+ 0x05e1f202, 0x4933c857, 0x0505feab, 0x0502032c,
+ 0x05b1f970, 0x0502032a, 0x0501fb5f, 0x0502016a,
+ 0x655a6403, 0x64066203, 0x05e1f1f8, 0x4933c857,
+ 0x05b1f968, 0x05020009, 0x05cdf806, 0x05020007,
+ 0x5932481d, 0x59240200, 0x90000503, 0x90000583,
+ 0x05000006, 0x0501f31a, 0x64266403, 0x6426641c,
+ 0x6402621c, 0x0501f177, 0x05cdf9ce, 0x05000025,
+ 0x59340200, 0x8c00051a, 0x05000004, 0x5934000a,
+ 0x84000560, 0x4802680a, 0x0505f9b5, 0x05020024,
+ 0x0509fd85, 0x05020006, 0x60a68000, 0x4d3c0000,
+ 0x417a7800, 0x05b1f872, 0x5c027800, 0x42000000,
+ 0x001123fa, 0x0509fc02, 0x41780800, 0x05c9fce5,
+ 0x64226403, 0x600c3000, 0x59240400, 0x8c00050a,
+ 0x0502015c, 0x59cc400b, 0x59cc380c, 0x59cc180d,
+ 0x59cc080e, 0x9c2041c0, 0x9c1c39c0, 0x9c0c19c0,
+ 0x9c0409c0, 0x641e6203, 0x41782800, 0x0501f14a,
+ 0x0505fb53, 0x05fe07e1, 0x64266403, 0x643a641c,
+ 0x4a02621c, 0x00001900, 0x0501f14a, 0x64266403,
+ 0x640e641c, 0x0501f147, 0x4933c857, 0x05b1f929,
+ 0x050202e3, 0x05c9ffc7, 0x050202e1, 0x493a6403,
+ 0x0505f90d, 0x05020007, 0x641a6403, 0x59240400,
+ 0x8c00050a, 0x0502013b, 0x641e6203, 0x0509f186,
+ 0x641e6403, 0x6426641c, 0x6402621c, 0x0501f135,
+ 0x4933c857, 0x05c9ffb7, 0x050202d1, 0x5934000a,
+ 0x82000500, 0x00010000, 0x82000580, 0x00010000,
+ 0x05060e49, 0x05b0090f, 0x050202c9, 0x59cc0001,
+ 0x82000500, 0x00ffff00, 0x82000580, 0x00fffc00,
+ 0x05020007, 0x59a80006, 0x8c00050e, 0x05000004,
+ 0x59240400, 0x8c00050a, 0x05020036, 0x05cdf975,
+ 0x05020003, 0x60067800, 0x05c9fb58, 0x05cdf964,
+ 0x05000004, 0x82000580, 0x00000703, 0x05020032,
+ 0x59cc0206, 0x90003503, 0x05020034, 0x90003494,
+ 0x05001032, 0x59a830bb, 0x80183480, 0x0500102f,
+ 0x5934300a, 0x84183516, 0x90000594, 0x05020002,
+ 0x84183556, 0x481a680a, 0x59cc0406, 0x90000503,
+ 0x05020026, 0x0505f998, 0x0502002b, 0x05cdf937,
+ 0x05020006, 0x4c600000, 0x4178c000, 0x417a7800,
+ 0x05b1f87f, 0x5c00c000, 0x916c0583, 0x05020006,
+ 0x60183000, 0x0509f918, 0x42000000, 0x001123f9,
+ 0x0509fb93, 0x05c9fcec, 0x642a6403, 0x60803000,
+ 0x59cc1a0a, 0x41780800, 0x41784000, 0x41783800,
+ 0x59240400, 0x8c00050a, 0x050200ea, 0x05fdf796,
+ 0x642e6403, 0x642e641c, 0x4a02621c, 0x00002c00,
+ 0x0501f0e4, 0x642e6403, 0x6426641c, 0x4a02621c,
+ 0x00001e00, 0x0501f0df, 0x42000000, 0x0011234c,
+ 0x0509fb7b, 0x642e6403, 0x641e641c, 0x6402621c,
+ 0x0501f0d8, 0x642e6403, 0x640e641c, 0x6402621c,
+ 0x0501f0d4, 0x4933c857, 0x05c9ff56, 0x05020270,
+ 0x0505fded, 0x0502026e, 0x05b1f8b2, 0x0502026c,
+ 0x59cc0206, 0x90003503, 0x0502001b, 0x90003494,
+ 0x05001019, 0x59a830bb, 0x80180480, 0x05001016,
+ 0x59cc0406, 0x90000503, 0x05020013, 0x59340400,
+ 0x82000580, 0x00000707, 0x05000013, 0x417a7800,
+ 0x4c600000, 0x4178c000, 0x05b1f83d, 0x5c00c000,
+ 0x60283000, 0x0509f8d8, 0x42000000, 0x001123f6,
+ 0x0509fb53, 0x64326403, 0x41782800, 0x60843000,
+ 0x05fdf7c4, 0x64366403, 0x641e641c, 0x6402621c,
+ 0x0501f0ac, 0x64366403, 0x6426641c, 0x4a02621c,
+ 0x00001e00, 0x0501f0a7, 0x4933c857, 0x05c9ff29,
+ 0x05020243, 0x0505fdc0, 0x05020241, 0x05b1f885,
+ 0x0502023f, 0x0501fa74, 0x0502000a, 0x493a6403,
+ 0x0501fa7a, 0x05020003, 0x64ba6403, 0x05fdf75c,
+ 0x64366403, 0x641e641c, 0x6402621c, 0x0501f095,
0x64366403, 0x6426641c, 0x4a02621c, 0x00001e00,
- 0x0501f099, 0x4933c857, 0x05cdfb98, 0x05020232,
- 0x0505fd57, 0x05020230, 0x05b1fece, 0x0502022e,
- 0x0501fa63, 0x0502000a, 0x493a6403, 0x0501fa69,
- 0x05020003, 0x64ba6403, 0x05fdf75c, 0x64366403,
- 0x641e641c, 0x6402621c, 0x0501f087, 0x64366403,
- 0x6426641c, 0x4a02621c, 0x00001e00, 0x0501f082,
- 0x4933c857, 0x05cdfb81, 0x05fe0713, 0x59240200,
- 0x90000503, 0x90000583, 0x05020217, 0x05cdfceb,
- 0x05020027, 0x0505f8ec, 0x0502000b, 0x643a6403,
- 0x59240400, 0x8c00050a, 0x05020073, 0x61483000,
- 0x59cc4008, 0x59cc3809, 0x59cc180a, 0x59cc080b,
- 0x05fdf724, 0x4933c857, 0x600c3000, 0x0509f824,
- 0x4d3c0000, 0x417a7800, 0x05b1fdca, 0x5c027800,
- 0x42000000, 0x0010e454, 0x0509fa76, 0x59340200,
- 0x84000558, 0x48026a00, 0x602c0800, 0x05c9ff82,
- 0x59240400, 0x8c00050a, 0x05020057, 0x601c3000,
- 0x0501f04c, 0x4933c857, 0x643e6403, 0x640e641c,
- 0x4a02621c, 0x00001e00, 0x0501f053, 0x59340400,
- 0x82000580, 0x00000703, 0x05fc07f7, 0x0501f02f,
- 0x4933c857, 0x05cdfb4d, 0x050201e7, 0x5932481d,
- 0x59240200, 0x90000503, 0x90000583, 0x050201e2,
- 0x05cdfcad, 0x05020021, 0x0505f8ca, 0x05040864,
- 0x05020004, 0x64426403, 0x61403000, 0x05fdf6ee,
- 0x4d3c0000, 0x417a7800, 0x05b1fd9e, 0x5c027800,
- 0x600c3000, 0x0505fff2, 0x42000000, 0x0010e454,
- 0x0509fa48, 0x59340200, 0x84000558, 0x48026a00,
- 0x05fdf7d4, 0x64466403, 0x640e641c, 0x4a02621c,
- 0x00001e00, 0x0501f02c, 0x4933c857, 0x05b1fe65,
- 0x05040ceb, 0x050201c4, 0x0501f9f9, 0x05020007,
- 0x644a6403, 0x0501f024, 0x59340400, 0x82000580,
- 0x00000703, 0x05fc07f0, 0x83340580, 0x00110210,
- 0x05000008, 0x4d3c0000, 0x417a7800, 0x60a68000,
- 0x05b1fd7c, 0x5c027800, 0x605c3000, 0x0505ffd0,
- 0x42000000, 0x0010e454, 0x0509fa26, 0x05b5f860,
- 0x59240400, 0x8c00050a, 0x0502000b, 0x60183000,
- 0x60a68000, 0x4933c857, 0x64066403, 0x641e6203,
- 0x41782800, 0x0501f002, 0x611a8000, 0x0505f9dc,
- 0x0505f7e4, 0x4933c857, 0x64066403, 0x602c0800,
- 0x05c9ff25, 0x64066203, 0x05e1f2a7, 0x4933c857,
- 0x60240800, 0x05c9ff20, 0x64166403, 0x05fdf7fa,
- 0x0505fcbb, 0x05020194, 0x05b1fe32, 0x05020192,
- 0x0501f9c7, 0x05fe07d5, 0x64826403, 0x64066203,
- 0x05e1f299, 0x05b1fe2b, 0x0502018b, 0x648e6403,
- 0x64066203, 0x05e1f294, 0x0505fcad, 0x05b00e25,
- 0x05020185, 0x0501f9ba, 0x05fe07c8, 0x59cc0807,
- 0x82040500, 0x00ffff00, 0x0502000a, 0x59340212,
- 0x82000500, 0x0000ff00, 0x05000006, 0x5932481d,
- 0x59240005, 0x82000500, 0x000000ff, 0x0501f003,
- 0x5932481d, 0x59240005, 0x82040d00, 0x00ffffff,
- 0x80040580, 0x05020015, 0x59cc1408, 0x05f9fb62,
- 0x0500002f, 0x591c0202, 0x82001580, 0x0000ffff,
- 0x05000004, 0x59cc1208, 0x80080580, 0x05020028,
- 0x591c000a, 0x81340580, 0x05020025, 0x591c0416,
- 0x8c00051a, 0x05020018, 0x591c0407, 0x90000587,
- 0x0502001f, 0x0501f02f, 0x59cc1208, 0x82080580,
- 0x0000ffff, 0x05000015, 0x05f9fb4b, 0x05000018,
- 0x59cc1408, 0x591c0202, 0x80080580, 0x0502002b,
- 0x831c0580, 0xffffffff, 0x05000026, 0x591c000a,
+ 0x0501f090, 0x4933c857, 0x05c9ff12, 0x05fe0713,
+ 0x59240200, 0x90000503, 0x90000583, 0x05020228,
+ 0x05cdf8d3, 0x05020027, 0x0505f922, 0x0502000b,
+ 0x643a6403, 0x59240400, 0x8c00050a, 0x05020081,
+ 0x61483000, 0x59cc4008, 0x59cc3809, 0x59cc180a,
+ 0x59cc080b, 0x05fdf724, 0x4933c857, 0x600c3000,
+ 0x0509f8a0, 0x4d3c0000, 0x417a7800, 0x05adff80,
+ 0x5c027800, 0x42000000, 0x001123f8, 0x0509fb10,
+ 0x59340200, 0x84000558, 0x48026a00, 0x602c0800,
+ 0x05c9fab4, 0x59240400, 0x8c00050a, 0x05020065,
+ 0x601c3000, 0x0501f05a, 0x4933c857, 0x643e6403,
+ 0x640e641c, 0x4a02621c, 0x00001e00, 0x0501f061,
+ 0x59340400, 0x82000580, 0x00000703, 0x05fc07f7,
+ 0x0501f03d, 0x4933c857, 0x05c9fede, 0x050201f8,
+ 0x5932481d, 0x59240200, 0x90000503, 0x90000583,
+ 0x050201f3, 0x05cdf895, 0x0502002f, 0x0505f900,
+ 0x05040897, 0x05020004, 0x64426403, 0x61403000,
+ 0x05fdf6ee, 0x4d3c0000, 0x417a7800, 0x05adff54,
+ 0x5c027800, 0x600c3000, 0x0509f86e, 0x42000000,
+ 0x001123f8, 0x0509fae2, 0x59340200, 0x84000558,
+ 0x48026a00, 0x05fdf7d4, 0x64466403, 0x640e641c,
+ 0x4a02621c, 0x00001e00, 0x0501f03a, 0x4933c857,
+ 0x05b1f81c, 0x05040d54, 0x050201d5, 0x59cc0006,
+ 0x82000500, 0xff000000, 0x82000d80, 0x18000000,
+ 0x05020006, 0x6426641c, 0x4a02621c, 0x00002c00,
+ 0x64266403, 0x0501f02b, 0x82000d80, 0x81000000,
+ 0x05000003, 0x0501f9fc, 0x05020007, 0x644a6403,
+ 0x0501f024, 0x59340400, 0x82000580, 0x00000703,
+ 0x05fc07e2, 0x83340580, 0x001141b4, 0x05000008,
+ 0x4d3c0000, 0x417a7800, 0x60a68000, 0x05adff24,
+ 0x5c027800, 0x605c3000, 0x0509f83e, 0x42000000,
+ 0x001123f8, 0x0509fab2, 0x05b1fa0d, 0x59240400,
+ 0x8c00050a, 0x0502000b, 0x60183000, 0x60a68000,
+ 0x4933c857, 0x64066403, 0x641e6203, 0x41782800,
+ 0x0501f002, 0x611a8000, 0x0505fa34, 0x0509f052,
+ 0x4933c857, 0x64066403, 0x602c0800, 0x05c9fa49,
+ 0x64066203, 0x05e1f071, 0x4933c857, 0x60240800,
+ 0x05c9fa44, 0x64166403, 0x05fdf7fa, 0x0505fd16,
+ 0x05020197, 0x05adffdb, 0x05020195, 0x0501f9ca,
+ 0x05fe07d5, 0x64826403, 0x64066203, 0x05e1f063,
+ 0x05adffd4, 0x0502018e, 0x648e6403, 0x64066203,
+ 0x05e1f05e, 0x0505fd08, 0x05ac0fce, 0x05020188,
+ 0x0501f9bd, 0x05fe07c8, 0x59cc0807, 0x82040500,
+ 0x00ffff00, 0x0502000a, 0x59340212, 0x82000500,
+ 0x0000ff00, 0x05000006, 0x5932481d, 0x59240005,
+ 0x82000500, 0x000000ff, 0x0501f003, 0x5932481d,
+ 0x59240005, 0x82040d00, 0x00ffffff, 0x80040580,
+ 0x05020015, 0x59cc1408, 0x05f9fa0f, 0x0500002f,
+ 0x591c0202, 0x82001580, 0x0000ffff, 0x05000004,
+ 0x59cc1208, 0x80080580, 0x05020028, 0x591c000a,
0x81340580, 0x05020025, 0x591c0416, 0x8c00051a,
- 0x05000013, 0x82000500, 0xffff1fff, 0x48023c16,
- 0x491e602a, 0x0501f01b, 0x59cc1408, 0x41780000,
- 0x0501fe2a, 0x05fe07ef, 0x0501f016, 0x649a6403,
- 0x4a02621c, 0x00001700, 0x59cc1208, 0x82081580,
- 0x0000ffff, 0x05fe079c, 0x0501f00e, 0xa11c0494,
- 0x05000002, 0x0500100b, 0x591c0407, 0x90000587,
- 0x05fe07f3, 0x591c0403, 0x900005a4, 0x05020005,
- 0x4d300000, 0x411e6000, 0x0005ffdc, 0x5c026000,
- 0x64966403, 0x05fdf78c, 0x59cc1408, 0x41780000,
- 0x0501fe0e, 0x05fe07e6, 0x05fdf7fa, 0x4933c857,
- 0x4d3c0000, 0x60067800, 0x05c9fe9d, 0x5c027800,
- 0x4c580000, 0x6008b000, 0x91a81c02, 0x91cc140b,
- 0x05f1f9fb, 0x5c00b000, 0x05000003, 0x64c66403,
- 0x05fdf779, 0x0005ffdc, 0x6008b000, 0x91a81c00,
- 0x91cc140d, 0x05f1f9f2, 0x0502000c, 0x05d9fc44,
+ 0x05020018, 0x591c0407, 0x90000587, 0x0502001f,
+ 0x0501f02c, 0x59cc1208, 0x82080580, 0x0000ffff,
+ 0x05000015, 0x05f9f9f8, 0x05000018, 0x59cc1408,
+ 0x591c0202, 0x80080580, 0x05020028, 0x831c0580,
+ 0xffffffff, 0x05000023, 0x591c000a, 0x81340580,
+ 0x05020022, 0x591c0416, 0x8c00051a, 0x05000013,
+ 0x82000500, 0xffff1fff, 0x48023c16, 0x491e602a,
+ 0x0501f018, 0x59cc1408, 0x41780000, 0x0501fe38,
+ 0x05fe07ef, 0x0501f013, 0x649a6403, 0x4a02621c,
+ 0x00001700, 0x59cc1208, 0x82081580, 0x0000ffff,
+ 0x05fe079c, 0x0501f00b, 0x591c0407, 0x90000587,
+ 0x05fe07f6, 0x591c0403, 0x900005a4, 0x05020005,
+ 0x4d300000, 0x411e6000, 0x0009f810, 0x5c026000,
+ 0x64966403, 0x05fdf78f, 0x59cc1408, 0x41780000,
+ 0x0501fe1f, 0x05fe07e9, 0x05fdf7fa, 0x4933c857,
+ 0x4d3c0000, 0x60067800, 0x05c9f9c4, 0x5c027800,
+ 0x4c580000, 0x6008b000, 0x91241c01, 0x91cc140b,
+ 0x05f1f854, 0x5c00b000, 0x05000003, 0x64c66403,
+ 0x05fdf77c, 0x0009f810, 0x6008b000, 0x91241c03,
+ 0x91cc140d, 0x05f1f84b, 0x0502000c, 0x05d9f946,
0x0500000a, 0x59300407, 0x90000581, 0x05020007,
0x59300403, 0x90000582, 0x05020004, 0x5930000a,
- 0x81340580, 0x00040fdc, 0x05d1fa4c, 0x05020009,
- 0x05d1fa56, 0x05020005, 0x64075042, 0x6006d800,
- 0x05d1f9c9, 0x0501f003, 0x60040000, 0x05d1fa1c,
- 0x1c01f000, 0x05b1fd97, 0x050200f7, 0x0501f92c,
- 0x05fe073a, 0x493a6403, 0x0501f986, 0x05020003,
- 0x64ae6403, 0x05fdf754, 0x64b26403, 0x05fdf752,
- 0x4933c857, 0x05d9ff39, 0x050200eb, 0x05b1fd89,
- 0x050200e9, 0x05cdfba8, 0x05fe072c, 0x59cc0408,
- 0x4802641b, 0x59cc0208, 0x4802621b, 0x59cc0807,
- 0x59340002, 0x82000500, 0x00ffffff, 0x80040580,
- 0x0500001d, 0x5932481d, 0x59240005, 0x80040580,
- 0x05020029, 0x59cc1408, 0x05f9facb, 0x0500002b,
- 0x831c0580, 0xffffffff, 0x05000005, 0x0505fb01,
- 0x05000026, 0x0505fed1, 0x05000024, 0x491e602a,
- 0x64da6403, 0x59340200, 0x8c00050e, 0x05000009,
- 0x831c0580, 0xffffffff, 0x050000c3, 0x591c0203,
- 0x90001584, 0x05020003, 0x64066006, 0x1c01f000,
- 0x0501f0bd, 0x59cc1208, 0x82080580, 0x0000ffff,
- 0x05000008, 0x05f9fab0, 0x05000010, 0x591c0202,
- 0x59cc0c08, 0x80040580, 0x0502000c, 0x05fdf7e1,
- 0x59cc1408, 0x60040000, 0x0501fd9c, 0x05000007,
- 0x05fdf7dc, 0x4803c856, 0x6426641c, 0x4a02621c,
- 0x00001500, 0x0501f005, 0x4803c856, 0x640e641c,
- 0x4a02621c, 0x00001700, 0x64de6403, 0x0501f0a2,
- 0x4933c857, 0x05d9fef1, 0x050200a3, 0x05b1fd41,
- 0x050200a1, 0x05cdfb60, 0x05fe06e4, 0x05cdf9f1,
- 0x05000045, 0x59cc0407, 0x4802641b, 0x59cc1207,
- 0x480a621b, 0x82080580, 0x0000ffff, 0x05000004,
- 0x05f9fa89, 0x05000036, 0x0501f008, 0x59cc1407,
- 0x60040000, 0x0501fd79, 0x05000031, 0x831c0580,
- 0xffffffff, 0x0500002e, 0x59cc0c07, 0x591c0202,
- 0x80040580, 0x0502002a, 0x0505fe88, 0x05000028,
- 0x591c0416, 0x8c000516, 0x0502002f, 0x4d300000,
- 0x411e6000, 0x05f5f927, 0x5c026000, 0x641e3a03,
- 0x59cc0c09, 0x82040d00, 0x0000ff00, 0x840409c0,
- 0x90040581, 0x05000009, 0x90040585, 0x0500000b,
- 0x90040587, 0x05020011, 0x42000000, 0x0010e43c,
- 0x0509f8e8, 0x0501f008, 0x42000000, 0x0010e43b,
- 0x0509f8e4, 0x0501f007, 0x42000000, 0x0010e43a,
- 0x0509f8e0, 0x591c0009, 0x80000540, 0x05000003,
- 0x59cc2808, 0x0505f2a5, 0x4803c856, 0x6426641c,
- 0x4a02621c, 0x00002a00, 0x0501f005, 0x4803c856,
- 0x640e641c, 0x4a02621c, 0x00000300, 0x64ee6403,
- 0x0501f055, 0x4803c856, 0x642e641c, 0x6402621c,
- 0x05fdf7fb, 0x4803c856, 0x641e641c, 0x6402621c,
- 0x05fdf7f7, 0x59cc0001, 0x82000580, 0x00fffffe,
- 0x0502004d, 0x4c080000, 0x05cdf9b0, 0x05000021,
- 0x05cdf991, 0x0505fbf6, 0x0502001c, 0x5932481d,
- 0x59240200, 0x82000540, 0x000000e0, 0x48024a00,
- 0x59a80249, 0x90000543, 0x48035249, 0x59a80046,
- 0x800000d0, 0x59a8083d, 0x82040d00, 0x000000ff,
- 0x80041540, 0x480b503d, 0x600c0800, 0x05e1fe12,
- 0x497b504b, 0x8d0c0520, 0x05000004, 0x4a032804,
- 0x000007d0, 0x0501f001, 0x0005ffdc, 0x05b1fd8e,
- 0x5c001000, 0x1c01f000, 0x0505fbf3, 0x05fdf7fd,
- 0x5c001000, 0x0005f7dc, 0x0501f82c, 0x05000026,
- 0x653a6403, 0x64066203, 0x05e1f12f, 0x05cdfaee,
- 0x05fe0666, 0x653e6403, 0x497a601e, 0x59cc0a06,
- 0x82040d00, 0x000000ff, 0x800409c0, 0x05fc067e,
- 0x90040581, 0x05020005, 0x59cc0808, 0x59a80005,
- 0x80040580, 0x05fc0678, 0x90040582, 0x05020006,
- 0x91cc140b, 0x6008b000, 0x91341c06, 0x05f1f8f0,
- 0x05fc0671, 0x6406601e, 0x05fdf66f, 0x05cdfad6,
- 0x05fe064e, 0x65426403, 0x59cc0207, 0x4802601e,
- 0x05fdf669, 0x64066203, 0x42000800, 0x80000040,
- 0x0005f6ab, 0x4803c857, 0x42000000, 0x0010e448,
- 0x0509f874, 0x0005f7dc, 0x4d2c0000, 0x4c500000,
- 0x4c580000, 0x4c540000, 0x59a800b6, 0x82000c80,
- 0x00000841, 0x05021021, 0x05a5f9ff, 0x0500001f,
- 0x492e6009, 0x59a800b6, 0x48025805, 0x90000403,
- 0x80000104, 0x91cca406, 0x90000c87, 0x05001010,
- 0x641e5811, 0x601cb000, 0x912c0409, 0x4000a800,
- 0x0509f927, 0x412c7000, 0x800409c0, 0x05020003,
- 0x49787001, 0x0501f00b, 0x05a5f9eb, 0x0500000b,
- 0x492c7001, 0x40040000, 0x05fdf7f0, 0x48025811,
- 0x4000b000, 0x912c0409, 0x4000a800, 0x0509f918,
- 0x90000541, 0x0501f005, 0x497b50b6, 0x59325809,
- 0x05a5fa07, 0x80000580, 0x5c00a800, 0x5c00b000,
- 0x5c00a000, 0x5c025800, 0x1c01f000, 0x4d340000,
- 0x5932680a, 0x59343400, 0x4933c857, 0x4937c857,
- 0x481bc857, 0x05cdfa90, 0x5c026800, 0x1c01f000,
- 0x4933c857, 0x4c600000, 0x4d3c0000, 0x4d440000,
- 0x4d340000, 0x0501f858, 0x05020046, 0x59cc0207,
- 0x82000d00, 0x0000ff00, 0x900411c0, 0x59cc000a,
- 0x82000500, 0x00ffffff, 0x80081540, 0x480a601e,
- 0x8c040518, 0x05000011, 0x60203000, 0x0505fdbf,
- 0x42000000, 0x0010e453, 0x0509f822, 0x59240400,
- 0x8c00050a, 0x05020005, 0x60082800, 0x60903000,
- 0x611a8000, 0x0501ffde, 0x6004c000, 0x417a7800,
- 0x05b1fbe0, 0x0501f02d, 0x8c04051a, 0x05000029,
- 0x59cc000a, 0x59cc3800, 0x821c3d00, 0x00ffffff,
- 0x05d9f902, 0x05cc0aac, 0x05020022, 0x5930001d,
- 0x4c000000, 0x05cdfaa0, 0x4926601d, 0x5930000a,
- 0x4c000000, 0x59240c00, 0x8c04050a, 0x0502000b,
- 0x59340c03, 0x59341802, 0x820c1d00, 0x00ffffff,
- 0x58002403, 0x60102800, 0x60903000, 0x611a8000,
- 0x41301000, 0x0501ffca, 0x4936600a, 0x60243000,
- 0x0505fd98, 0x42000000, 0x0010e453, 0x0505fff5,
- 0x417a7800, 0x4178c000, 0x05b1fbba, 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, 0x59a808b6, 0x80040480,
- 0x0500100a, 0x59cc0006, 0x82000500, 0x00ff0000,
- 0x82000d80, 0x00140000, 0x05000003, 0x82000d80,
- 0x00100000, 0x1c01f000, 0x42000000, 0x0010e448,
- 0x0505ffc4, 0x90000541, 0x05fdf7fb, 0x59300403,
- 0xb00034a0, 0x05a21dbd, 0x91383593, 0x05020006,
- 0x4803c857, 0x4c000000, 0x0505fe36, 0x5c000000,
- 0x0c01f029, 0x4933c857, 0x493bc857, 0x913835a7,
- 0x0500000d, 0x91383594, 0x0500000b, 0xb13805a1,
- 0x05000003, 0xb13805a0, 0x05a20dac, 0x05e5f88a,
- 0x05ea0404, 0x59300203, 0x9000058e, 0x05f40618,
- 0x05a1fda6, 0x493bc857, 0x4937c857, 0x0505fe1f,
- 0x05cdf875, 0x601c0800, 0x05c9fcb3, 0x05e1fc2e,
- 0x4d2c0000, 0x0505fe6d, 0x0502000d, 0x59325809,
- 0x812e59c0, 0x05020003, 0x5c025800, 0x05e1f02e,
- 0x05f5fc85, 0x05a00d95, 0x05f9fb11, 0x05a20d93,
- 0x64c65a0a, 0x64125810, 0x0001fb82, 0x5c025800,
- 0x05e9f384, 0x0010c0ad, 0x0010c0ee, 0x0010c0ad,
- 0x0010c0ad, 0x0010c0ad, 0x0010c0ee, 0x0010c0ff,
- 0x0010c1d1, 0x0010c152, 0x0010c1d1, 0x0010c16b,
- 0x0010c1d1, 0x0010c170, 0x0010c1d1, 0x0010c173,
- 0x0010c1d1, 0x0010c173, 0x0010c1d1, 0x0010c1d1,
- 0x0010c0ad, 0x0010c0ad, 0x0010c0ad, 0x0010c0ad,
- 0x0010c0ad, 0x0010c0ad, 0x0010c0ad, 0x0010c0ad,
- 0x0010c0ad, 0x0010c0ad, 0x0010c0ad, 0x0010c0ee,
- 0x0010c0ad, 0x0010c1d1, 0x0010c0ad, 0x0010c0ad,
- 0x0010c1d1, 0x0010c0ad, 0x0010c1b7, 0x0010c1d1,
- 0x0010c0ad, 0x0010c0ad, 0x0010c0ad, 0x0010c0ad,
- 0x0010c1d1, 0x0010c1d1, 0x0010c0ad, 0x0010c1d1,
- 0x0010c1d1, 0x0010c0ad, 0x0010c0fa, 0x0010c0ad,
- 0x0010c0ad, 0x0010c0ad, 0x0010c0ad, 0x0010c175,
- 0x0010c1d1, 0x0010c0ad, 0x0010c0ad, 0x0010c19d,
- 0x0010c1d1, 0x0010c0ad, 0x0010c0ad, 0x0010c0ad,
- 0x0010c0ad, 0x0010c0ad, 0x0010c0ad, 0x0010c0ad,
- 0x0010c0ad, 0x0010c0ad, 0x0010c0e1, 0x0010c0ad,
- 0x0010c0ad, 0x0010c0ad, 0x0010c0ad, 0x0010c0e1,
- 0x0010c0ad, 0x0010c0ad, 0x0010c0ad, 0x0010c0e1,
- 0x0010c0e1, 0x0010c0e1, 0x0010c0ad, 0x0010c0ad,
- 0x0010c0ad, 0x0010c0ad, 0x0010c0ad, 0x0010c0e1,
- 0x0010c0ad, 0x0010c0ad, 0x0010c0ad, 0x0010c0bc,
- 0x0010c0d7, 0x0010c0ae, 0x0010c0ad, 0x0010c0ad,
- 0x0010c1d1, 0x05a1fd2d, 0x4933c857, 0x05f5ffef,
- 0x05000007, 0x4a02601c, 0x0010c0b7, 0x59a8005e,
- 0x48026205, 0x643a6203, 0x1c01f000, 0x640a6203,
- 0x59a8005c, 0x800000c4, 0x48026006, 0x1c01f000,
- 0x4933c857, 0x05f5ffe1, 0x05000007, 0x4a02601c,
- 0x0010c0c5, 0x59a8005e, 0x48026205, 0x643a6203,
- 0x1c01f000, 0x916c0583, 0x0502000a, 0x5930041b,
- 0x4803c857, 0x9000050f, 0x0500000a, 0x9000050c,
- 0x05000004, 0x4803c857, 0x05f9ffd8, 0x0501f005,
- 0x4803c857, 0x65726403, 0x64066203, 0x05ddf79e,
- 0x4933c857, 0x0005ffdc, 0x1c01f000, 0x4933c857,
- 0x05f5fbf1, 0x050000f8, 0x4d2c0000, 0x59325809,
- 0x64025a0a, 0x0001fb82, 0x5c025800, 0x497a6009,
- 0x0501f0f1, 0x05f5ffbd, 0x05000007, 0x59a8005e,
- 0x48026205, 0x643a6203, 0x59a8005c, 0x48026006,
- 0x1c01f000, 0x4d2c0000, 0x59325809, 0x05a5f8b0,
- 0x5c025800, 0x0005f7dc, 0x59a8005c, 0x48026006,
- 0x05f5ffae, 0x05000007, 0x4a02601c, 0x0010c0f8,
- 0x59a8005e, 0x48026205, 0x643a6203, 0x1c01f000,
- 0x640a6203, 0x1c01f000, 0x4d3c0000, 0x417a7800,
- 0x05c9fbe7, 0x5c027800, 0x0501f0d3, 0x05cdf93b,
- 0x050000d1, 0x59a80249, 0x8c000508, 0x0500000e,
- 0x5932680a, 0x4c580000, 0x6008b000, 0x91a81c02,
- 0x91341406, 0x05edff3e, 0x80000540, 0x5c00b000,
- 0x050200c5, 0x59340200, 0x8400051a, 0x48026a00,
- 0x0501f037, 0x599c0017, 0x8c00050a, 0x05020007,
- 0x4d3c0000, 0x417a7800, 0x05c9fbcd, 0x5c027800,
- 0x601c0800, 0x05c9fbd4, 0x59340212, 0x82000500,
- 0x0000ff00, 0x0502001e, 0x83440d80, 0x000007fe,
- 0x050200b1, 0x05b1fcf6, 0x05c5f9f6, 0x05000009,
- 0x59240200, 0x8c00051e, 0x05000010, 0x59300809,
- 0x4d300000, 0x05b1fe68, 0x5c026000, 0x0501f0a6,
- 0x59a80249, 0x8c000514, 0x050000a3, 0x83240580,
- 0x0010e512, 0x05020005, 0x4d300000, 0x05b1fb6d,
- 0x5c026000, 0x0501f09c, 0x59a82249, 0x8c100514,
- 0x05000099, 0x05b1fcd5, 0x0501f097, 0x599c0017,
- 0x8c00050a, 0x05020094, 0x599c0019, 0x8c00050e,
- 0x05020091, 0x416c0000, 0x90000582, 0x05020004,
- 0x59a80044, 0x80000000, 0x48035044, 0x600c0800,
- 0x05c9fba5, 0x64066407, 0x64066203, 0x640a6403,
- 0x05ddff25, 0x4ce80000, 0x6005d000, 0x05d9fd7e,
- 0x5c01d000, 0x1c01f000, 0x59340200, 0x8400051a,
- 0x48026a00, 0x05cdf8dc, 0x0500007b, 0x60100800,
- 0x05c9fb95, 0x0505fc46, 0x05020077, 0x05f5ff43,
- 0x05000009, 0x59a8005e, 0x48026205, 0x643a6203,
- 0x59a8005c, 0x48026006, 0x4a02601c, 0x0010c165,
- 0x1c01f000, 0x60140800, 0x05c9fb87, 0x64066407,
- 0x64066203, 0x640e6403, 0x05ddf707, 0x05cdf8cf,
- 0x05020065, 0x60180800, 0x0501f86c, 0x0501f062,
- 0x60100800, 0x05c9fb7c, 0x05fdf78f, 0x05c9ff3a,
- 0x0501f05d, 0x4d300000, 0x05f5ff28, 0x0500000c,
- 0x5930082a, 0x40066000, 0x59300416, 0x8c00051e,
- 0x05020003, 0x5c026000, 0x0501f055, 0x5c026000,
- 0x4a02601c, 0x0010c185, 0x0501f051, 0x5c026000,
- 0x0005f7dc, 0x4c340000, 0x41306800, 0x05e9fa7c,
- 0x05000012, 0x64066203, 0x647a6403, 0x58340c1b,
- 0x4806641b, 0x58340a1b, 0x4806621b, 0x5834002a,
- 0x4802602a, 0x5834080a, 0x4806600a, 0x5834081d,
- 0x4806601d, 0x05f5fefa, 0x64126407, 0x42000800,
- 0x80000040, 0x0005feab, 0x40366000, 0x5c006800,
- 0x0005f7dc, 0x5930082a, 0x4807c857, 0x800409c0,
- 0x05000031, 0x5804001e, 0x81300580, 0x0502002e,
- 0x4978081e, 0x58041416, 0x8c080516, 0x0500002a,
- 0x8c080514, 0x05000028, 0x84081516, 0x48080c16,
- 0x58065809, 0x812e59c0, 0x05000023, 0x492fc857,
- 0x4d300000, 0x40066000, 0x641e6203, 0x417a7800,
- 0x0005fe2d, 0x5c026000, 0x0501f01b, 0x05f5fee7,
- 0x000407dc, 0x5930002a, 0x80000540, 0x05000018,
- 0x4c340000, 0x40006800, 0x58340407, 0x5c006800,
- 0x90000583, 0x000607dc, 0x4a02601c, 0x0010c1c5,
- 0x0501f00f, 0x4d300000, 0x4d1c0000, 0x5932382a,
- 0x05e9fa3b, 0x05000004, 0x4a026416, 0x00000100,
- 0x05f5fd84, 0x5c023800, 0x5c026000, 0x0005f7dc,
- 0x05c9fb1d, 0x05f5fecd, 0x000407dc, 0x497a601c,
- 0x59a8005e, 0x48026205, 0x643a6203, 0x59a8005c,
- 0x48026006, 0x1c01f000, 0x4933c857, 0x4807c857,
- 0x05c9fb11, 0x4d3c0000, 0x417a7800, 0x05c9fb04,
- 0x5c027800, 0x5934000a, 0x84000520, 0x4802680a,
- 0x05c9f6c9, 0x59340400, 0x4803c857, 0x80000110,
- 0x9000348c, 0x05a21bf1, 0x91383595, 0x05020002,
- 0x0c01f004, 0x91383596, 0x05a20bec, 0x0c01f00d,
- 0x00109b47, 0x00109b47, 0x00109b47, 0x00109b47,
- 0x0010ce6d, 0x00109b47, 0x0010c22a, 0x0010c208,
- 0x00109b47, 0x00109b47, 0x00109b47, 0x00109b47,
- 0x00109b47, 0x00109b47, 0x00109b47, 0x00109b47,
- 0x0010ce6d, 0x00109b47, 0x0010c22a, 0x0010c23b,
- 0x00109b47, 0x00109b47, 0x00109b47, 0x00109b47,
- 0x4933c857, 0x5932481d, 0x59240400, 0x8c000508,
- 0x05000014, 0x813669c0, 0x05000012, 0x59340212,
- 0x82000500, 0x0000ff00, 0x0500000e, 0x599c0019,
- 0x8c00050e, 0x0502000b, 0x4d3c0000, 0x417a7800,
- 0x05c9facb, 0x5c027800, 0x600c0800, 0x05c9fad2,
- 0x64066407, 0x64066203, 0x640a6403, 0x05ddf652,
- 0x59cc0001, 0x59340802, 0x80040580, 0x82000500,
- 0x00ffffff, 0x000607dc, 0x59345002, 0x05c9f861,
- 0x482a6802, 0x0005f7dc, 0x4933c857, 0x59303403,
- 0x9018359e, 0x0502000d, 0x91383595, 0x000607dc,
- 0x4c340000, 0x5930682a, 0x803469c0, 0x05000005,
- 0x58343416, 0x82183500, 0xffff1fff, 0x48186c16,
- 0x5c006800, 0x0005f7dc, 0x1c01f000, 0x4933c857,
- 0x05edfbfe, 0x000607dc, 0x64066203, 0x64066403,
- 0x05ddf631, 0x493bc857, 0xb1380591, 0x05020007,
- 0x05e1fe75, 0x05ea01ef, 0x59300203, 0x90000582,
- 0x05000062, 0x05a1fb91, 0x913805a7, 0x05000015,
- 0xb1380588, 0x0500000d, 0x91380594, 0x05000011,
- 0xb13805a1, 0x05000003, 0xb13805a0, 0x05a20b87,
- 0x05e1fe65, 0x05ea01df, 0x59300203, 0x9000058e,
- 0x05000675, 0x05a1fb81, 0x05e1fe5f, 0x05ea01d9,
- 0x59300203, 0x90000584, 0x0008014a, 0x05a1fb7b,
- 0x4933c857, 0x59300403, 0xb0000c84, 0x05a21b77,
- 0xb0000480, 0x05a01b75, 0x40027000, 0x4803c857,
- 0x0c01f001, 0x0010c26d, 0x0010c26e, 0x0010c26e,
- 0x0010c284, 0x05a1fb6d, 0x05e1f9fb, 0x59325809,
- 0x812e59c0, 0x05000012, 0x832c0500, 0x00ff0000,
- 0x0500000f, 0x640a6203, 0x5932680a, 0x59340200,
- 0x8c00050e, 0x0502000a, 0x60128000, 0x0501fd0b,
- 0x497a6009, 0x59300006, 0x80000540, 0x05020003,
- 0x59a8005d, 0x48026006, 0x641e6203, 0x1c01f000,
- 0x05e1f9e5, 0x05f5fa44, 0x05e8014a, 0x59325809,
- 0x05a1ff0a, 0x05e9f147, 0x05a1fb50, 0x05f5fe13,
- 0x05000005, 0x59a8005e, 0x48026205, 0x643a6203,
- 0x0501f009, 0x59325809, 0x592c040e, 0x8c000502,
- 0x05000004, 0x641e6203, 0x610e7000, 0x0009f000,
- 0x64126203, 0x1c01f000, 0x0501fff6, 0x00080148,
- 0x1c01f000, 0x05f5fe01, 0x05000007, 0x4a02601c,
- 0x0010c2a5, 0x59a8005e, 0x48026205, 0x643a6203,
- 0x1c01f000, 0x64066203, 0x65066403, 0x42027800,
- 0x80002042, 0x0005f6ab, 0xb1380498, 0x05001008,
- 0xb13805a1, 0x05000004, 0xb13805a0, 0x05000002,
- 0x05a1fb2a, 0x4933c857, 0x1c01f000, 0xb1380591,
- 0x05000004, 0xb1380581, 0x05a20b24, 0x1c01f000,
- 0x0005fe4e, 0x0505f80e, 0x0005f7dc, 0xb1380498,
- 0x05f210a1, 0xb1380492, 0x05a21b1c, 0xb1380489,
- 0x05a01b1a, 0x0c01f001, 0x0010c2cc, 0x0010c2fa,
- 0x0010c2cb, 0x0010c2cb, 0x0010c2cb, 0x0010c2cb,
- 0x0010c2fa, 0x0010c2cb, 0x0010c318, 0x05a1fb0f,
- 0x05f5fdd2, 0x0500000b, 0x59300416, 0x8c000504,
- 0x05020008, 0x4a02601c, 0x0010c2d8, 0x59a8005e,
- 0x48026205, 0x64426203, 0x65266403, 0x1c01f000,
- 0x59325809, 0x592c040e, 0x8c00051e, 0x05000010,
- 0x82000d00, 0x000000c0, 0x82040d80, 0x00000080,
- 0x05000011, 0x59300804, 0x8c040518, 0x0502000e,
- 0x59300416, 0x8c000516, 0x05000003, 0x641e6203,
- 0x0501f011, 0x61067000, 0x0009f178, 0x641e6203,
- 0x497a6006, 0x59300416, 0x8c000516, 0x0502000a,
- 0x0005f64e, 0x59325809, 0x592c0c0e, 0x8c04051a,
- 0x05020003, 0x0005fe4e, 0x0005f7dc, 0x0501ff99,
- 0x05fc07fd, 0x1c01f000, 0x05e1f952, 0x59325809,
- 0x5932680a, 0x59340200, 0x8c00050e, 0x0500000d,
- 0x592c040e, 0x82000500, 0x000000c0, 0x82000580,
- 0x00000080, 0x05000005, 0x592c0013, 0x59301817,
- 0x800c1c80, 0x480e6017, 0x640a6203, 0x0501f00c,
- 0x60128000, 0x0501fc79, 0x05f9fba3, 0x59300006,
- 0x80000540, 0x05020004, 0x59a8005d, 0x800000c2,
- 0x48026006, 0x497a6009, 0x641e6203, 0x1c01f000,
- 0x4933c857, 0x05e1fda0, 0x05a20ac0, 0x59300203,
- 0x90000582, 0x05fc078d, 0x05a1fabc, 0x641e6203,
- 0x497a6006, 0x0005f64e, 0x641e6203, 0x497a6006,
- 0x0005f645, 0x59300416, 0x8c00051c, 0x000a0167,
- 0x59325809, 0x592c2013, 0x40080000, 0x80102480,
- 0x59300017, 0x80102400, 0x48126017, 0x0009f167,
- 0x8c04050e, 0x05020007, 0x641a6203, 0x0501f822,
- 0x5930002b, 0x80000540, 0x05a60c01, 0x0005f645,
- 0x640a6203, 0x1c01f000, 0x60040800, 0x05a5fbfc,
- 0x90040581, 0x0008016c, 0x05fdf7e4, 0x83300580,
- 0x00111ad0, 0x05000004, 0x59300416, 0x8c00051c,
- 0x05000006, 0x59300008, 0x8c000522, 0x05a609ce,
- 0x00080157, 0x1c01f000, 0x59300013, 0x80000540,
- 0x00080157, 0x59325809, 0x592c040b, 0x8c000510,
- 0x05000004, 0x497a6013, 0x05a5f9c3, 0x00080157,
- 0x1c01f000, 0x492fc857, 0x480bc857, 0x8c08053e,
- 0x05000005, 0x80081080, 0x80081000, 0x60240800,
- 0x0501f002, 0x60540800, 0x480a580f, 0x1c01f000,
- 0x1c01f000, 0x91380593, 0x05000003, 0x91380594,
- 0x05a20a76, 0x59300416, 0x8c000516, 0x05a00a73,
- 0x1c01f000, 0x05a1fa71, 0x59300009, 0x80000540,
- 0x05a20a6e, 0x1c01f000, 0x59300416, 0x8c000516,
- 0x05a00a6a, 0x1c01f000, 0x64126203, 0x493a6403,
- 0x42000800, 0x80002001, 0x0005f6ab, 0x640e6203,
- 0x493a6403, 0x05f5fd25, 0x05000007, 0x59300416,
- 0x8c00050a, 0x05020004, 0x4a02601c, 0x0010c381,
- 0x1c01f000, 0x0001f996, 0x59325809, 0x592c040e,
- 0x8c00051e, 0x05000011, 0x82000500, 0x000000c0,
- 0x82000580, 0x00000080, 0x0500000f, 0x59300416,
- 0x8c000512, 0x05020009, 0x8c000510, 0x05020007,
- 0x592c0410, 0x80000540, 0x05020004, 0x82080d40,
- 0x80003065, 0x0005f69d, 0x82080d40, 0x80002065,
- 0x0005f69d, 0x82080d40, 0x80002042, 0x0005f69d,
- 0x4933c857, 0x493bc857, 0xb1380484, 0x05a21a3b,
- 0xb1380481, 0x05a01a39, 0x0c01f001, 0x0010c3a6,
- 0x0010c3b4, 0x0010c3c6, 0x59325809, 0x592c040e,
- 0x8c00051e, 0x05000019, 0x82001d00, 0x000000c0,
- 0x820c1d80, 0x000000c0, 0x05000014, 0x64066203,
- 0x493a6403, 0x42000800, 0x80002042, 0x0005f6ab,
- 0x59325809, 0x592c040e, 0x8c00051e, 0x0500000b,
- 0x82001d00, 0x000000c0, 0x820c1d80, 0x000000c0,
- 0x05000006, 0x64066203, 0x493a6403, 0x42000800,
- 0x80002001, 0x0005f6ab, 0x497a6009, 0x497a6006,
- 0x60128000, 0x0501f3c1, 0x59325809, 0x592c040e,
- 0x8c00051e, 0x05fc07f9, 0x82001d00, 0x000000c0,
- 0x820c1d80, 0x000000c0, 0x05fc07f4, 0x640e6203,
- 0x493a6403, 0x05f5fccd, 0x05000007, 0x59300416,
- 0x8c00050a, 0x05020004, 0x4a02601c, 0x0010c3d9,
- 0x1c01f000, 0x0001f996, 0x82080d40, 0x80002065,
- 0x0005f69d, 0x4933c857, 0x493bc857, 0x83380580,
- 0x00000085, 0x05000005, 0x83380580, 0x00000088,
- 0x05000007, 0x05a1f9f5, 0x64266203, 0x493a6403,
- 0x42000800, 0x80000040, 0x0005f6ab, 0x83300580,
- 0x00111a70, 0x05a209ed, 0x4d1c0000, 0x813669c0,
- 0x05000003, 0x0501fe9a, 0x0502005a, 0x59cc1404,
- 0x41780000, 0x0501f859, 0x05000028, 0x831c0580,
- 0xffffffff, 0x05000025, 0x59cc0204, 0x82001580,
- 0x0000ffff, 0x05000004, 0x591c1402, 0x80080580,
- 0x0502001e, 0x05f5fc9d, 0x05000010, 0x59cc0005,
- 0x8c000500, 0x0500000d, 0x4d300000, 0x411e6000,
- 0x05f1fc04, 0x5c026000, 0x0500002a, 0x591c0416,
- 0x8400055a, 0x48023c16, 0x59300416, 0x8400055a,
- 0x48026416, 0x0501f029, 0x591c0407, 0x9000051f,
- 0x90002586, 0x05000005, 0x90002584, 0x0500002a,
- 0x90002591, 0x05020005, 0x497a3a05, 0x61502000,
- 0x05e9f911, 0x0501f02f, 0x59240400, 0x8c00050a,
- 0x05020004, 0x42023800, 0xffffffff, 0x05fdf7f8,
- 0x813669c0, 0x0502000f, 0x59cc0001, 0x59cc3800,
- 0x821c3d00, 0x00ffffff, 0x4c1c0000, 0x05d5fca3,
- 0x5c003800, 0x0502001f, 0x05b1f9fa, 0x0502001d,
- 0x05c9f8e4, 0x0502001b, 0x4926601d, 0x4936600a,
- 0x4a026403, 0x00000087, 0x59cc1204, 0x82081580,
- 0x0000ffff, 0x05020003, 0x4a026403, 0x00000086,
- 0x4d2c0000, 0x0505f986, 0x05cdf8d1, 0x5c025800,
- 0x0501f00c, 0x591c0403, 0x900005b8, 0x05fc07d8,
- 0x591c0203, 0x90000587, 0x05fe07d8, 0x4d300000,
- 0x411e6000, 0x05e5ff87, 0x5c026000, 0x05fdf7d3,
- 0x5c023800, 0x1c01f000, 0x4933c857, 0x480bc857,
- 0x4c5c0000, 0x4000b800, 0x42002800, 0x00111b00,
- 0x41300000, 0x80140580, 0x0500001c, 0x58140203,
- 0x90000580, 0x05000019, 0x58140202, 0x80080580,
- 0x05020016, 0x58140203, 0x9000058f, 0x05000013,
- 0x58141c07, 0x900c0585, 0x05000010, 0x8c5c0500,
- 0x05000003, 0x900c0587, 0x0500000c, 0x5930200a,
- 0x5814000a, 0x800001c0, 0x0500000d, 0x82001d80,
- 0x00110210, 0x0500000a, 0x801021c0, 0x05000003,
- 0x80100580, 0x05000011, 0x90142c30, 0x41540000,
- 0x80140480, 0x05021020, 0x05fdf7de, 0x5814002a,
- 0x801021c0, 0x05000005, 0x58102002, 0x82102500,
- 0x00ffffff, 0x05fdf7f3, 0x8c5c0500, 0x05fe07f3,
- 0x5930202a, 0x05fdf7ef, 0x40163800, 0x8c5c0500,
- 0x05000007, 0x4c080000, 0x4c140000, 0x0505f8df,
- 0x5c002800, 0x5c001000, 0x05fc07e8, 0x831c0580,
- 0xffffffff, 0x05000006, 0x591c000a, 0x800001c0,
- 0x05020003, 0x5930000a, 0x4802380a, 0x81300540,
- 0x0501f009, 0x8c5c0500, 0x05000007, 0x40080800,
- 0x42023800, 0xffffffff, 0x05cdf87e, 0x05fc07f0,
- 0x80000580, 0x5c00b800, 0x1c01f000, 0x4933c857,
- 0x83300580, 0x00111a40, 0x05020037, 0x64026203,
- 0x91380593, 0x0502002c, 0x59300403, 0x82000580,
- 0x00000092, 0x05a20931, 0x59a8009d, 0x59325809,
- 0x812e59c0, 0x05000005, 0x812c0580, 0x05a2092b,
- 0x592c0000, 0x497a5800, 0x800001c0, 0x05000004,
- 0x4803509d, 0x05e5fe13, 0x0501f003, 0x497b509d,
- 0x497b509e, 0x812e59c0, 0x0500001e, 0x592c0208,
- 0xb0000595, 0x05a004d5, 0x91380593, 0x0502000d,
- 0x592c0817, 0x82040580, 0xffffffff, 0x05000007,
- 0xa0040494, 0x05021005, 0x05000004, 0x64180c07,
- 0x64000c07, 0x49780806, 0x64025a0a, 0x0001f382,
- 0x64c65a0a, 0x64125815, 0x4a025816, 0x000000ff,
- 0x0001f382, 0x913805a7, 0x05000003, 0x91380594,
- 0x05a20906, 0x493bc857, 0x05ddff93, 0x05fdf7cf,
- 0x1c01f000, 0x4933c857, 0x91380593, 0x0502000c,
- 0x59300403, 0x4803c857, 0x82000c80, 0x00000085,
- 0x05a018fa, 0x82000c80, 0x00000093, 0x05a218f7,
- 0x82000480, 0x00000085, 0x0c01f01c, 0x913805a7,
- 0x0500000f, 0x91380594, 0x0500000d, 0x493bc857,
- 0xb13805a1, 0x05000003, 0xb13805a0, 0x05020007,
- 0x05e1fbc9, 0x05e60743, 0x59300203, 0x9000058e,
- 0x050003ca, 0x05a1f8e5, 0x05e5f73e, 0x493bc857,
- 0x05ddff71, 0x59325809, 0x812e59c0, 0x05e406d5,
- 0x64c65a0a, 0x64125815, 0x4a025816, 0x000000ff,
- 0x0001fb82, 0x05e5f6cf, 0x0010c510, 0x0010c514,
- 0x0010c514, 0x0010c510, 0x0010c510, 0x0010c510,
- 0x0010c510, 0x0010c510, 0x0010c510, 0x0010c510,
- 0x0010c510, 0x0010c510, 0x0010c510, 0x0010c511,
- 0x05a1f8ca, 0x59325809, 0x64025a0a, 0x0001fb82,
- 0x0005f7dc, 0x4933c857, 0x42000000, 0x0010e464,
- 0x0505fac4, 0x0501fdae, 0x497a6205, 0x602e8000,
- 0x0501f805, 0x641a6407, 0x641e6203, 0x497a6006,
- 0x1c01f000, 0x4933c857, 0x4943c857, 0x59300407,
- 0x90000587, 0x05020002, 0x1c01f000, 0x05ddffec,
- 0x4df00000, 0x05f1ffa0, 0x0500000c, 0x9140058c,
+ 0x81340580, 0x00080810, 0x05cdfe4a, 0x0502000f,
+ 0x59a80807, 0x8c04050e, 0x05000004, 0x41202000,
+ 0x60401101, 0x05c1fc24, 0x05cdfe4e, 0x05020005,
+ 0x64075045, 0x6006d800, 0x05cdfdbb, 0x0501f003,
+ 0x60040000, 0x05cdfe0e, 0x1c01f000, 0x05adff3d,
+ 0x050200f7, 0x0501f92c, 0x05fe0737, 0x493a6403,
+ 0x0501f986, 0x05020003, 0x64ae6403, 0x05fdf751,
+ 0x64b26403, 0x05fdf74f, 0x4933c857, 0x05d9fc61,
+ 0x050200eb, 0x05adff2f, 0x050200e9, 0x05c9ff7f,
+ 0x05fe0729, 0x59cc0408, 0x4802641b, 0x59cc0208,
+ 0x4802621b, 0x59cc0807, 0x59340002, 0x82000500,
+ 0x00ffffff, 0x80040580, 0x0500001d, 0x5932481d,
+ 0x59240005, 0x80040580, 0x05020029, 0x59cc1408,
+ 0x05f9f975, 0x0500002b, 0x831c0580, 0xffffffff,
+ 0x05000005, 0x0505fb59, 0x05000026, 0x0505ff3c,
+ 0x05000024, 0x491e602a, 0x64da6403, 0x59340200,
+ 0x8c00050e, 0x05000009, 0x831c0580, 0xffffffff,
+ 0x050000c3, 0x591c0203, 0x90001584, 0x05020003,
+ 0x64066006, 0x1c01f000, 0x0501f0bd, 0x59cc1208,
+ 0x82080580, 0x0000ffff, 0x05000008, 0x05f9f95a,
+ 0x05000010, 0x591c0202, 0x59cc0c08, 0x80040580,
+ 0x0502000c, 0x05fdf7e1, 0x59cc1408, 0x60040000,
+ 0x0501fda7, 0x05000007, 0x05fdf7dc, 0x4803c856,
+ 0x6426641c, 0x4a02621c, 0x00001500, 0x0501f005,
+ 0x4803c856, 0x640e641c, 0x4a02621c, 0x00001700,
+ 0x64de6403, 0x0501f0a2, 0x4933c857, 0x05d9fc19,
+ 0x050200a3, 0x05adfee7, 0x050200a1, 0x05c9ff37,
+ 0x05fe06e1, 0x05c9fd71, 0x05000045, 0x59cc0407,
+ 0x4802641b, 0x59cc1207, 0x480a621b, 0x82080580,
+ 0x0000ffff, 0x05000004, 0x05f9f933, 0x05000036,
+ 0x0501f008, 0x59cc1407, 0x60040000, 0x0501fd84,
+ 0x05000031, 0x831c0580, 0xffffffff, 0x0500002e,
+ 0x59cc0c07, 0x591c0202, 0x80040580, 0x0502002a,
+ 0x0505fef3, 0x05000028, 0x591c0416, 0x8c000516,
+ 0x0502002f, 0x4d300000, 0x411e6000, 0x05f1ffa7,
+ 0x5c026000, 0x641e3a03, 0x59cc0c09, 0x82040d00,
+ 0x0000ff00, 0x840409c0, 0x90040581, 0x05000009,
+ 0x90040585, 0x0500000b, 0x90040587, 0x05020011,
+ 0x42000000, 0x001123dd, 0x0509f971, 0x0501f008,
+ 0x42000000, 0x001123dc, 0x0509f96d, 0x0501f007,
+ 0x42000000, 0x001123db, 0x0509f969, 0x591c0009,
+ 0x80000540, 0x05000003, 0x59cc2808, 0x0505f2fd,
+ 0x4803c856, 0x6426641c, 0x4a02621c, 0x00002a00,
+ 0x0501f005, 0x4803c856, 0x640e641c, 0x4a02621c,
+ 0x00000300, 0x64ee6403, 0x0501f055, 0x4803c856,
+ 0x642e641c, 0x6402621c, 0x05fdf7fb, 0x4803c856,
+ 0x641e641c, 0x6402621c, 0x05fdf7f7, 0x59cc0001,
+ 0x82000580, 0x00fffffe, 0x0502004d, 0x4c080000,
+ 0x05c9fd30, 0x05000021, 0x05c9fd11, 0x0505fc4e,
+ 0x0502001c, 0x5932481d, 0x59240200, 0x82000540,
+ 0x000000e2, 0x48024a00, 0x59a8024c, 0x90000543,
+ 0x4803524c, 0x59a80049, 0x800000d0, 0x59a80840,
+ 0x82040d00, 0x000000ff, 0x80041540, 0x480b5040,
+ 0x600c0800, 0x05e1fbde, 0x497b504e, 0x8d0c0520,
+ 0x05000004, 0x4a032804, 0x000007d0, 0x0501f001,
+ 0x0009f810, 0x05adff34, 0x5c001000, 0x1c01f000,
+ 0x0505fc4b, 0x05fdf7fd, 0x5c001000, 0x0009f010,
+ 0x0501f82c, 0x05000026, 0x653a6403, 0x64066203,
+ 0x05ddf6f6, 0x05c9fec5, 0x05fe0663, 0x653e6403,
+ 0x497a601e, 0x59cc0a06, 0x82040d00, 0x000000ff,
+ 0x800409c0, 0x05fc067b, 0x90040581, 0x05020005,
+ 0x59cc0808, 0x59a80005, 0x80040580, 0x05fc0675,
+ 0x90040582, 0x05020006, 0x91cc140b, 0x6008b000,
+ 0x91341c06, 0x05edff43, 0x05fc066e, 0x6406601e,
+ 0x05fdf66c, 0x05c9fead, 0x05fe064b, 0x65426403,
+ 0x59cc0207, 0x4802601e, 0x05fdf666, 0x64066203,
+ 0x42000800, 0x80000040, 0x0005f6e2, 0x4803c857,
+ 0x42000000, 0x001123ec, 0x0509f8fd, 0x0009f010,
+ 0x4d2c0000, 0x4c500000, 0x4c580000, 0x4c540000,
+ 0x59a800bb, 0x82000c80, 0x00000841, 0x05021021,
+ 0x05a1fb44, 0x0500001f, 0x492e6009, 0x59a800bb,
+ 0x48025805, 0x90000403, 0x80000104, 0x91cca406,
+ 0x90000c87, 0x05001010, 0x641e5811, 0x601cb000,
+ 0x912c0409, 0x4000a800, 0x0509f9b0, 0x412c7000,
+ 0x800409c0, 0x05020003, 0x49787001, 0x0501f00b,
+ 0x05a1fb30, 0x0500000b, 0x492c7001, 0x40040000,
+ 0x05fdf7f0, 0x48025811, 0x4000b000, 0x912c0409,
+ 0x4000a800, 0x0509f9a1, 0x90000541, 0x0501f005,
+ 0x497b50bb, 0x59325809, 0x05a1fb4c, 0x80000580,
+ 0x5c00a800, 0x5c00b000, 0x5c00a000, 0x5c025800,
+ 0x1c01f000, 0x4d340000, 0x5932680a, 0x59343400,
+ 0x4933c857, 0x4937c857, 0x481bc857, 0x05c9fe67,
+ 0x5c026800, 0x1c01f000, 0x4933c857, 0x4c600000,
+ 0x4d3c0000, 0x4d440000, 0x4d340000, 0x0501f858,
+ 0x05020046, 0x59cc0207, 0x82000d00, 0x0000ff00,
+ 0x900411c0, 0x59cc000a, 0x82000500, 0x00ffffff,
+ 0x80081540, 0x480a601e, 0x8c040518, 0x05000011,
+ 0x60203000, 0x0505fe2a, 0x42000000, 0x001123f7,
+ 0x0509f8ab, 0x59240400, 0x8c00050a, 0x05020005,
+ 0x60082800, 0x60903000, 0x611a8000, 0x0505f833,
+ 0x6004c000, 0x417a7800, 0x05adfd85, 0x0501f02d,
+ 0x8c04051a, 0x05000029, 0x59cc000a, 0x59cc3800,
+ 0x821c3d00, 0x00ffffff, 0x05d5fdbc, 0x05c80e83,
+ 0x05020022, 0x5930001d, 0x4c000000, 0x05c9fe77,
+ 0x4926601d, 0x5930000a, 0x4c000000, 0x59240c00,
+ 0x8c04050a, 0x0502000b, 0x59340c03, 0x59341802,
+ 0x820c1d00, 0x00ffffff, 0x58002403, 0x60102800,
+ 0x60903000, 0x611a8000, 0x41301000, 0x0505f81f,
+ 0x4936600a, 0x60243000, 0x0505fe03, 0x42000000,
+ 0x001123f7, 0x0509f87e, 0x417a7800, 0x4178c000,
+ 0x05adfd5f, 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,
+ 0x59a808bb, 0x80040480, 0x0500100a, 0x59cc0006,
+ 0x82000500, 0x00ff0000, 0x82000d80, 0x00140000,
+ 0x05000003, 0x82000d80, 0x00100000, 0x1c01f000,
+ 0x42000000, 0x001123ec, 0x0509f84d, 0x90000541,
+ 0x05fdf7fb, 0x59300403, 0xb00034a0, 0x059e1f06,
+ 0x91383593, 0x05020006, 0x4803c857, 0x4c000000,
+ 0x0505feab, 0x5c000000, 0x0c01f029, 0x4933c857,
+ 0x493bc857, 0x913835a7, 0x0500000d, 0x91383594,
+ 0x0500000b, 0xb13805a1, 0x05000003, 0xb13805a0,
+ 0x059e0ef5, 0x05e1fe56, 0x05ea0244, 0x59300203,
+ 0x9000058e, 0x05f404bf, 0x059dfeef, 0x493bc857,
+ 0x4937c857, 0x0505fe94, 0x05c9fbf5, 0x601c0800,
+ 0x05c5ffd4, 0x05e1f9fa, 0x4d2c0000, 0x0505fee2,
+ 0x0502000d, 0x59325809, 0x812e59c0, 0x05020003,
+ 0x5c025800, 0x05ddf5f5, 0x05f5fb1c, 0x059c0ede,
+ 0x05f9f9c5, 0x059e0edc, 0x64c65a0a, 0x64125810,
+ 0x0001fba8, 0x5c025800, 0x05e9f1a7, 0x0010c79f,
+ 0x0010c7e0, 0x0010c79f, 0x0010c79f, 0x0010c79f,
+ 0x0010c7e0, 0x0010c7f1, 0x0010c8d4, 0x0010c855,
+ 0x0010c8d4, 0x0010c86e, 0x0010c8d4, 0x0010c873,
+ 0x0010c8d4, 0x0010c876, 0x0010c8d4, 0x0010c876,
+ 0x0010c8d4, 0x0010c8d4, 0x0010c79f, 0x0010c79f,
+ 0x0010c79f, 0x0010c79f, 0x0010c79f, 0x0010c79f,
+ 0x0010c79f, 0x0010c79f, 0x0010c79f, 0x0010c79f,
+ 0x0010c79f, 0x0010c7e0, 0x0010c79f, 0x0010c8d4,
+ 0x0010c79f, 0x0010c79f, 0x0010c8d4, 0x0010c79f,
+ 0x0010c8ba, 0x0010c8d4, 0x0010c79f, 0x0010c79f,
+ 0x0010c79f, 0x0010c79f, 0x0010c8d4, 0x0010c8d4,
+ 0x0010c79f, 0x0010c8d4, 0x0010c8d4, 0x0010c79f,
+ 0x0010c7ec, 0x0010c79f, 0x0010c79f, 0x0010c79f,
+ 0x0010c79f, 0x0010c878, 0x0010c8d4, 0x0010c79f,
+ 0x0010c79f, 0x0010c8a0, 0x0010c8d4, 0x0010c79f,
+ 0x0010c79f, 0x0010c79f, 0x0010c79f, 0x0010c79f,
+ 0x0010c79f, 0x0010c79f, 0x0010c79f, 0x0010c79f,
+ 0x0010c7d3, 0x0010c79f, 0x0010c79f, 0x0010c79f,
+ 0x0010c79f, 0x0010c7d3, 0x0010c79f, 0x0010c79f,
+ 0x0010c79f, 0x0010c7d3, 0x0010c7d3, 0x0010c7d3,
+ 0x0010c79f, 0x0010c79f, 0x0010c79f, 0x0010c79f,
+ 0x0010c79f, 0x0010c7d3, 0x0010c79f, 0x0010c79f,
+ 0x0010c79f, 0x0010c7ae, 0x0010c7c9, 0x0010c7a0,
+ 0x0010c79f, 0x0010c79f, 0x0010c8d4, 0x059dfe76,
+ 0x4933c857, 0x05f5fe95, 0x05000007, 0x4a02601c,
+ 0x0010c7a9, 0x59a80061, 0x48026205, 0x643a6203,
+ 0x1c01f000, 0x640a6203, 0x59a8005f, 0x800000c4,
+ 0x48026006, 0x1c01f000, 0x4933c857, 0x05f5fe87,
+ 0x05000007, 0x4a02601c, 0x0010c7b7, 0x59a80061,
+ 0x48026205, 0x643a6203, 0x1c01f000, 0x916c0583,
+ 0x0502000a, 0x5930041b, 0x4803c857, 0x9000050f,
+ 0x0500000a, 0x9000050c, 0x05000004, 0x4803c857,
+ 0x05f9fe97, 0x0501f005, 0x4803c857, 0x65726403,
+ 0x64066203, 0x05ddf565, 0x4933c857, 0x0009f810,
+ 0x1c01f000, 0x4933c857, 0x05f5fa88, 0x05000109,
+ 0x4d2c0000, 0x59325809, 0x64025a0a, 0x0001fba8,
+ 0x5c025800, 0x497a6009, 0x0501f102, 0x05f5fe63,
+ 0x05000007, 0x59a80061, 0x48026205, 0x643a6203,
+ 0x59a8005f, 0x48026006, 0x1c01f000, 0x4d2c0000,
+ 0x59325809, 0x05a1f9f5, 0x5c025800, 0x0009f010,
+ 0x59a8005f, 0x48026006, 0x05f5fe54, 0x05000007,
+ 0x4a02601c, 0x0010c7ea, 0x59a80061, 0x48026205,
+ 0x643a6203, 0x1c01f000, 0x640a6203, 0x1c01f000,
+ 0x4d3c0000, 0x417a7800, 0x05c5ff08, 0x5c027800,
+ 0x0501f0e4, 0x05c9fd12, 0x050000e2, 0x59a8024c,
+ 0x8c000508, 0x0500000e, 0x5932680a, 0x4c580000,
+ 0x6008b000, 0x91241c01, 0x91341406, 0x05edfd91,
+ 0x80000540, 0x5c00b000, 0x050200d6, 0x59340200,
+ 0x8400051a, 0x48026a00, 0x0501f048, 0x599c0017,
+ 0x8c00050a, 0x0502000b, 0x4d3c0000, 0x417a7800,
+ 0x05c5feee, 0x5c027800, 0x59340212, 0x82000500,
+ 0x0000ff00, 0x0502001c, 0x601c0800, 0x05c5fef1,
+ 0x83440d80, 0x000007fe, 0x050200c2, 0x05adfea0,
+ 0x05c1fcaa, 0x05000009, 0x59240200, 0x8c00051e,
+ 0x0500000c, 0x59300809, 0x4d300000, 0x05b1f81d,
+ 0x5c026000, 0x0501f0b7, 0x05b1f8bf, 0x05020005,
+ 0x4d300000, 0x05adfd17, 0x5c026000, 0x0501f0b1,
+ 0x59a8224c, 0x8c100514, 0x050000ae, 0x05adfe83,
+ 0x0501f0ac, 0x599c0019, 0x8c00050e, 0x05000004,
+ 0x601c0800, 0x05c5fed3, 0x0501f0a6, 0x050200a5,
+ 0x59340c00, 0x82040d00, 0x000000ff, 0x4937c857,
+ 0x4807c857, 0x90040486, 0x0502100f, 0x4d3c0000,
+ 0x4d400000, 0x60a68000, 0x417a7800, 0x916c0583,
+ 0x05020006, 0x602c3000, 0x0505fca2, 0x42000000,
+ 0x001123f5, 0x0505ff16, 0x05adfb81, 0x5c028000,
+ 0x5c027800, 0x916c0582, 0x05020004, 0x59a80047,
+ 0x80000000, 0x48035047, 0x600c0800, 0x05c5feb5,
+ 0x64066407, 0x64066203, 0x640a6403, 0x05ddfcdb,
+ 0x4ce80000, 0x6005d000, 0x05d9fa95, 0x5c01d000,
+ 0x1c01f000, 0x59340200, 0x8400051a, 0x48026a00,
+ 0x05c9fca2, 0x0500007b, 0x60100800, 0x05c5fea5,
+ 0x0505fca0, 0x05020077, 0x05f5fdd8, 0x05000009,
+ 0x59a80061, 0x48026205, 0x643a6203, 0x59a8005f,
+ 0x48026006, 0x4a02601c, 0x0010c868, 0x1c01f000,
+ 0x60140800, 0x05c5fe97, 0x64066407, 0x64066203,
+ 0x640e6403, 0x05ddf4bd, 0x05c9fc95, 0x05020065,
+ 0x60180800, 0x0501f86c, 0x0501f062, 0x60100800,
+ 0x05c5fe8c, 0x05fdf77e, 0x05c9faa9, 0x0501f05d,
+ 0x4d300000, 0x05f5fdbd, 0x0500000c, 0x5930082a,
+ 0x40066000, 0x59300416, 0x8c00051e, 0x05020003,
+ 0x5c026000, 0x0501f055, 0x5c026000, 0x4a02601c,
+ 0x0010c888, 0x0501f051, 0x5c026000, 0x0009f010,
+ 0x4c340000, 0x41306800, 0x05e9f88e, 0x05000012,
+ 0x64066203, 0x647a6403, 0x58340c1b, 0x4806641b,
+ 0x58340a1b, 0x4806621b, 0x5834002a, 0x4802602a,
+ 0x5834080a, 0x4806600a, 0x5834081d, 0x4806601d,
+ 0x05f5fd8f, 0x64126407, 0x42000800, 0x80000040,
+ 0x0005fee2, 0x40366000, 0x5c006800, 0x0009f010,
+ 0x5930082a, 0x4807c857, 0x800409c0, 0x05000031,
+ 0x5804001e, 0x81300580, 0x0502002e, 0x4978081e,
+ 0x58041416, 0x8c080516, 0x0500002a, 0x8c080514,
+ 0x05000028, 0x84081516, 0x48080c16, 0x58065809,
+ 0x812e59c0, 0x05000023, 0x492fc857, 0x4d300000,
+ 0x40066000, 0x641e6203, 0x417a7800, 0x0005fe63,
+ 0x5c026000, 0x0501f01b, 0x05f5fd7c, 0x00080010,
+ 0x5930002a, 0x80000540, 0x05000018, 0x4c340000,
+ 0x40006800, 0x58340407, 0x5c006800, 0x90000583,
+ 0x000a0010, 0x4a02601c, 0x0010c8c8, 0x0501f00f,
+ 0x4d300000, 0x4d1c0000, 0x5932382a, 0x05e9f84d,
+ 0x05000004, 0x4a026416, 0x00000100, 0x05f5fc1a,
+ 0x5c023800, 0x5c026000, 0x0009f010, 0x05c5fe2d,
+ 0x05f5fd62, 0x00080010, 0x497a601c, 0x59a80061,
+ 0x48026205, 0x643a6203, 0x59a8005f, 0x48026006,
+ 0x1c01f000, 0x4933c857, 0x4807c857, 0x05c5fe21,
+ 0x4d3c0000, 0x417a7800, 0x05c5fe14, 0x5c027800,
+ 0x5934000a, 0x84000520, 0x4802680a, 0x05c9f238,
+ 0x59340400, 0x4803c857, 0x80000110, 0x9000348c,
+ 0x059e1d29, 0x91383595, 0x05020002, 0x0c01f004,
+ 0x91383596, 0x059e0d24, 0x0c01f00d, 0x0010a081,
+ 0x0010a081, 0x0010a081, 0x0010a081, 0x0010d5d4,
+ 0x0010a081, 0x0010c92d, 0x0010c90b, 0x0010a081,
+ 0x0010a081, 0x0010a081, 0x0010a081, 0x0010a081,
+ 0x0010a081, 0x0010a081, 0x0010a081, 0x0010d5d4,
+ 0x0010a081, 0x0010c92d, 0x0010c93e, 0x0010a081,
+ 0x0010a081, 0x0010a081, 0x0010a081, 0x4933c857,
+ 0x5932481d, 0x59240400, 0x8c000508, 0x05000014,
+ 0x813669c0, 0x05000012, 0x59340212, 0x82000500,
+ 0x0000ff00, 0x0500000e, 0x599c0019, 0x8c00050e,
+ 0x0502000b, 0x4d3c0000, 0x417a7800, 0x05c5fddb,
+ 0x5c027800, 0x600c0800, 0x05c5fde2, 0x64066407,
+ 0x64066203, 0x640a6403, 0x05ddf408, 0x59cc0001,
+ 0x59340802, 0x80040580, 0x82000500, 0x00ffffff,
+ 0x000a0010, 0x59345002, 0x05c5fb55, 0x482a6802,
+ 0x0009f010, 0x4933c857, 0x59303403, 0x9018359e,
+ 0x0502000d, 0x91383595, 0x000a0010, 0x4c340000,
+ 0x5930682a, 0x803469c0, 0x05000005, 0x58343416,
+ 0x82183500, 0xffff1fff, 0x48186c16, 0x5c006800,
+ 0x0009f010, 0x1c01f000, 0x4933c857, 0x05edfa3e,
+ 0x000a0010, 0x64066203, 0x64066403, 0x05ddf3e7,
+ 0x493bc857, 0xb1380591, 0x05020007, 0x05e1fc30,
+ 0x05ea001e, 0x59300203, 0x90000582, 0x05000062,
+ 0x059dfcc9, 0x913805a7, 0x05000015, 0xb1380588,
+ 0x0500000d, 0x91380594, 0x05000011, 0xb13805a1,
+ 0x05000003, 0xb13805a0, 0x059e0cbf, 0x05e1fc20,
+ 0x05ea000e, 0x59300203, 0x9000058e, 0x050006bc,
+ 0x059dfcb9, 0x05e1fc1a, 0x05ea0008, 0x59300203,
+ 0x90000584, 0x00080183, 0x059dfcb3, 0x4933c857,
+ 0x59300403, 0xb0000c84, 0x059e1caf, 0xb0000480,
+ 0x059c1cad, 0x40027000, 0x4803c857, 0x0c01f001,
+ 0x0010c970, 0x0010c971, 0x0010c971, 0x0010c987,
+ 0x059dfca5, 0x05ddffb6, 0x59325809, 0x812e59c0,
+ 0x05000012, 0x832c0500, 0x00ff0000, 0x0500000f,
+ 0x640a6203, 0x5932680a, 0x59340200, 0x8c00050e,
+ 0x0502000a, 0x60128000, 0x0501fd4d, 0x497a6009,
+ 0x59300006, 0x80000540, 0x05020003, 0x59a80060,
+ 0x48026006, 0x641e6203, 0x1c01f000, 0x05ddffa0,
+ 0x05f5f8ca, 0x05e4075c, 0x59325809, 0x05a1f83e,
+ 0x05e5f759, 0x059dfc88, 0x05f5fca8, 0x05000005,
+ 0x59a80061, 0x48026205, 0x643a6203, 0x0501f009,
+ 0x59325809, 0x592c040e, 0x8c000502, 0x05000004,
+ 0x641e6203, 0x610e7000, 0x0009f039, 0x64126203,
+ 0x1c01f000, 0x0505f83d, 0x00080181, 0x1c01f000,
+ 0x05f5fc96, 0x05000007, 0x4a02601c, 0x0010c9a8,
+ 0x59a80061, 0x48026205, 0x643a6203, 0x1c01f000,
+ 0x64066203, 0x65066403, 0x42027800, 0x80002042,
+ 0x0005f6e2, 0xb1380498, 0x05001008, 0xb13805a1,
+ 0x05000004, 0xb13805a0, 0x05000002, 0x059dfc62,
+ 0x4933c857, 0x1c01f000, 0xb1380591, 0x05000004,
+ 0xb1380581, 0x059e0c5c, 0x1c01f000, 0x0005fe84,
+ 0x0505f855, 0x0009f010, 0xb1380498, 0x05ee16e2,
+ 0xb1380492, 0x059e1c54, 0xb1380489, 0x059c1c52,
+ 0x0c01f001, 0x0010c9cf, 0x0010c9fd, 0x0010c9ce,
+ 0x0010c9ce, 0x0010c9ce, 0x0010c9ce, 0x0010c9fd,
+ 0x0010c9ce, 0x0010ca1b, 0x059dfc47, 0x05f5fc67,
+ 0x0500000b, 0x59300416, 0x8c000504, 0x05020008,
+ 0x4a02601c, 0x0010c9db, 0x59a80061, 0x48026205,
+ 0x64426203, 0x65266403, 0x1c01f000, 0x59325809,
+ 0x592c040e, 0x8c00051e, 0x05000010, 0x82000d00,
+ 0x000000c0, 0x82040d80, 0x00000080, 0x05000011,
+ 0x59300804, 0x8c040518, 0x0502000e, 0x59300416,
+ 0x8c000516, 0x05000003, 0x641e6203, 0x0501f011,
+ 0x61067000, 0x0009f1b1, 0x641e6203, 0x497a6006,
+ 0x59300416, 0x8c000516, 0x0502000a, 0x0005f684,
+ 0x59325809, 0x592c0c0e, 0x8c04051a, 0x05020003,
+ 0x0005fe84, 0x0009f010, 0x0501ffe0, 0x05fc07fd,
+ 0x1c01f000, 0x05ddff0d, 0x59325809, 0x5932680a,
+ 0x59340200, 0x8c00050e, 0x0500000d, 0x592c040e,
+ 0x82000500, 0x000000c0, 0x82000580, 0x00000080,
+ 0x05000005, 0x592c0013, 0x59301817, 0x800c1c80,
+ 0x480e6017, 0x640a6203, 0x0501f00c, 0x60128000,
+ 0x0501fcbb, 0x05f9fa46, 0x59300006, 0x80000540,
+ 0x05020004, 0x59a80060, 0x800000c2, 0x48026006,
+ 0x497a6009, 0x641e6203, 0x1c01f000, 0x4933c857,
+ 0x05e1fb5b, 0x059e0bf8, 0x59300203, 0x90000582,
+ 0x05fc078d, 0x059dfbf4, 0x641e6203, 0x497a6006,
+ 0x0005f684, 0x641e6203, 0x497a6006, 0x0005f67b,
+ 0x59300416, 0x8c00051c, 0x000a01a0, 0x59325809,
+ 0x592c2013, 0x40080000, 0x80102480, 0x59300017,
+ 0x80102400, 0x48126017, 0x0009f1a0, 0x8c04050e,
+ 0x05020007, 0x641a6203, 0x0501f822, 0x5930002b,
+ 0x80000540, 0x05a20d9c, 0x0005f67b, 0x640a6203,
+ 0x1c01f000, 0x60040800, 0x05a1fd97, 0x90040581,
+ 0x000801a5, 0x05fdf7e4, 0x83300580, 0x00115a74,
+ 0x05000004, 0x59300416, 0x8c00051c, 0x05000006,
+ 0x59300008, 0x8c000522, 0x05a20b67, 0x00080190,
+ 0x1c01f000, 0x59300013, 0x80000540, 0x00080190,
+ 0x59325809, 0x592c040b, 0x8c000510, 0x05000004,
+ 0x497a6013, 0x05a1fb5c, 0x00080190, 0x1c01f000,
+ 0x492fc857, 0x480bc857, 0x8c08053e, 0x05000005,
+ 0x80081080, 0x80081000, 0x60240800, 0x0501f002,
+ 0x60540800, 0x480a580f, 0x1c01f000, 0x1c01f000,
+ 0x91380593, 0x05000003, 0x91380594, 0x059e0bae,
+ 0x59300416, 0x8c000516, 0x059c0bab, 0x1c01f000,
+ 0x059dfba9, 0x59300009, 0x80000540, 0x059e0ba6,
+ 0x1c01f000, 0x59300416, 0x8c000516, 0x059c0ba2,
+ 0x1c01f000, 0x64126203, 0x493a6403, 0x42000800,
+ 0x80002001, 0x0005f6e2, 0x640e6203, 0x493a6403,
+ 0x05f5fbba, 0x05000007, 0x59300416, 0x8c00050a,
+ 0x05020004, 0x4a02601c, 0x0010ca84, 0x1c01f000,
+ 0x0001f99e, 0x59325809, 0x592c040e, 0x8c00051e,
+ 0x05000011, 0x82000500, 0x000000c0, 0x82000580,
+ 0x00000080, 0x0500000f, 0x59300416, 0x8c000512,
+ 0x05020009, 0x8c000510, 0x05020007, 0x592c0410,
+ 0x80000540, 0x05020004, 0x82080d40, 0x80003065,
+ 0x0005f6d4, 0x82080d40, 0x80002065, 0x0005f6d4,
+ 0x82080d40, 0x80002042, 0x0005f6d4, 0x4933c857,
+ 0x493bc857, 0xb1380484, 0x059e1b73, 0xb1380481,
+ 0x059c1b71, 0x0c01f001, 0x0010caa9, 0x0010cab7,
+ 0x0010cac9, 0x59325809, 0x592c040e, 0x8c00051e,
+ 0x05000019, 0x82001d00, 0x000000c0, 0x820c1d80,
+ 0x000000c0, 0x05000014, 0x64066203, 0x493a6403,
+ 0x42000800, 0x80002042, 0x0005f6e2, 0x59325809,
+ 0x592c040e, 0x8c00051e, 0x0500000b, 0x82001d00,
+ 0x000000c0, 0x820c1d80, 0x000000c0, 0x05000006,
+ 0x64066203, 0x493a6403, 0x42000800, 0x80002001,
+ 0x0005f6e2, 0x497a6009, 0x497a6006, 0x60128000,
+ 0x0501f403, 0x59325809, 0x592c040e, 0x8c00051e,
+ 0x05fc07f9, 0x82001d00, 0x000000c0, 0x820c1d80,
+ 0x000000c0, 0x05fc07f4, 0x640e6203, 0x493a6403,
+ 0x05f5fb62, 0x05000007, 0x59300416, 0x8c00050a,
+ 0x05020004, 0x4a02601c, 0x0010cadc, 0x1c01f000,
+ 0x0001f99e, 0x82080d40, 0x80002065, 0x0005f6d4,
+ 0x4933c857, 0x493bc857, 0x83380580, 0x00000085,
+ 0x05000005, 0x83380580, 0x00000088, 0x05000007,
+ 0x059dfb2d, 0x64266203, 0x493a6403, 0x42000800,
+ 0x80000040, 0x0005f6e2, 0x83300580, 0x00115a14,
+ 0x059e0b25, 0x4d1c0000, 0x813669c0, 0x05000003,
+ 0x0501fee1, 0x05020054, 0x59cc1404, 0x41780000,
+ 0x0501f853, 0x0500002c, 0x831c0580, 0xffffffff,
+ 0x05000029, 0x59cc0204, 0x82001580, 0x0000ffff,
+ 0x05000004, 0x591c1402, 0x80080580, 0x05020022,
+ 0x05f5fb32, 0x05000010, 0x59cc0005, 0x8c000500,
+ 0x0500000d, 0x4d300000, 0x411e6000, 0x05f1fa73,
+ 0x5c026000, 0x05000024, 0x591c0416, 0x8400055a,
+ 0x48023c16, 0x59300416, 0x8400055a, 0x48026416,
+ 0x0501f023, 0x591c0407, 0x9000051f, 0x90002586,
+ 0x05000005, 0x90002584, 0x05000024, 0x90002591,
+ 0x05020009, 0x497a3a05, 0x61502000, 0x05e5ff40,
+ 0x05000029, 0x42000000, 0x001123ec, 0x0505fc34,
+ 0x0501f025, 0x59240400, 0x8c00050a, 0x05020004,
+ 0x42023800, 0xffffffff, 0x05fdf7f4, 0x813669c0,
+ 0x05020005, 0x4926601d, 0x42026800, 0x001141b4,
+ 0x4936600a, 0x4a026403, 0x00000087, 0x59cc1204,
+ 0x82081580, 0x0000ffff, 0x05020003, 0x4a026403,
+ 0x00000086, 0x4d2c0000, 0x0505f9e8, 0x05c9fca9,
+ 0x5c025800, 0x0501f00c, 0x591c0403, 0x900005b8,
+ 0x05fc07de, 0x591c0203, 0x90000587, 0x05fe07e2,
+ 0x4d300000, 0x411e6000, 0x05e5fd9f, 0x5c026000,
+ 0x05fdf7dd, 0x5c023800, 0x1c01f000, 0x4933c857,
+ 0x480bc857, 0x4c5c0000, 0x4000b800, 0x42002800,
+ 0x00115aa4, 0x41300000, 0x80140580, 0x0500001c,
+ 0x58140203, 0x90000580, 0x05000019, 0x58140202,
+ 0x80080580, 0x05020016, 0x58140203, 0x9000058f,
+ 0x05000013, 0x58141c07, 0x900c0585, 0x05000010,
+ 0x8c5c0500, 0x05000003, 0x900c0587, 0x0500000c,
+ 0x5930200a, 0x5814000a, 0x800001c0, 0x0500000d,
+ 0x82001d80, 0x001141b4, 0x0500000a, 0x801021c0,
+ 0x05000003, 0x80100580, 0x05000011, 0x90142c30,
+ 0x41540000, 0x80140480, 0x05021020, 0x05fdf7de,
+ 0x5814002a, 0x801021c0, 0x05000005, 0x58102002,
+ 0x82102500, 0x00ffffff, 0x05fdf7f3, 0x8c5c0500,
+ 0x05fe07f3, 0x5930202a, 0x05fdf7ef, 0x40163800,
+ 0x8c5c0500, 0x05000007, 0x4c080000, 0x4c140000,
+ 0x0505f93f, 0x5c002800, 0x5c001000, 0x05fc07e8,
+ 0x831c0580, 0xffffffff, 0x05000006, 0x591c000a,
+ 0x800001c0, 0x05020003, 0x5930000a, 0x4802380a,
+ 0x81300540, 0x0501f009, 0x8c5c0500, 0x05000007,
+ 0x40080800, 0x42023800, 0xffffffff, 0x05c9fc56,
+ 0x05fc07f0, 0x80000580, 0x5c00b800, 0x1c01f000,
+ 0x4933c857, 0x83300580, 0x001159e4, 0x05020037,
+ 0x64026203, 0x91380593, 0x0502002c, 0x59300403,
+ 0x82000580, 0x00000092, 0x059e0a6f, 0x59a800a0,
+ 0x59325809, 0x812e59c0, 0x05000005, 0x812c0580,
+ 0x059e0a69, 0x592c0000, 0x497a5800, 0x800001c0,
+ 0x05000004, 0x480350a0, 0x05e5fc0a, 0x0501f003,
+ 0x497b50a0, 0x497b50a1, 0x812e59c0, 0x0500001e,
+ 0x592c0208, 0xb0000595, 0x059c060f, 0x91380593,
+ 0x0502000d, 0x592c0817, 0x82040580, 0xffffffff,
+ 0x05000007, 0xa0040494, 0x05021005, 0x05000004,
+ 0x64180c07, 0x64000c07, 0x49780806, 0x64025a0a,
+ 0x0001f3a8, 0x64c65a0a, 0x64125815, 0x4a025816,
+ 0x000000ff, 0x0001f3a8, 0x913805a7, 0x05000003,
+ 0x91380594, 0x059e0a44, 0x493bc857, 0x05ddfd54,
+ 0x05fdf7cf, 0x1c01f000, 0x4933c857, 0x91380593,
+ 0x0502000c, 0x59300403, 0x4803c857, 0x82000c80,
+ 0x00000085, 0x059c1a38, 0x82000c80, 0x00000093,
+ 0x059e1a35, 0x82000480, 0x00000085, 0x0c01f01c,
+ 0x913805a7, 0x0500000f, 0x91380594, 0x0500000d,
+ 0x493bc857, 0xb13805a1, 0x05000003, 0xb13805a0,
+ 0x05020007, 0x05e1f98a, 0x05e60578, 0x59300203,
+ 0x9000058e, 0x05000417, 0x059dfa23, 0x05e5f573,
+ 0x493bc857, 0x05ddfd32, 0x59325809, 0x812e59c0,
+ 0x05e404ed, 0x64c65a0a, 0x64125815, 0x4a025816,
+ 0x000000ff, 0x0001fba8, 0x05e5f4e7, 0x0010cc0d,
+ 0x0010cc11, 0x0010cc11, 0x0010cc0d, 0x0010cc0d,
+ 0x0010cc0d, 0x0010cc0d, 0x0010cc0d, 0x0010cc0d,
+ 0x0010cc0d, 0x0010cc0d, 0x0010cc0d, 0x0010cc0d,
+ 0x0010cc0e, 0x059dfa08, 0x59325809, 0x64025a0a,
+ 0x0001fba8, 0x0009f010, 0x4933c857, 0x42000000,
+ 0x00112408, 0x0505fb42, 0x0501fdfb, 0x497a6205,
+ 0x602e8000, 0x0501f805, 0x641a6407, 0x641e6203,
+ 0x497a6006, 0x1c01f000, 0x4933c857, 0x4943c857,
+ 0x59300407, 0x90000587, 0x05020002, 0x1c01f000,
+ 0x05ddfdad, 0x4df00000, 0x59300407, 0x90000586,
+ 0x05020005, 0x59300203, 0x90000588, 0x05020002,
+ 0x497a6009, 0x05f1fe25, 0x0500000c, 0x9140058c,
0x0500000a, 0x59300809, 0x58040000, 0x80001540,
0x05000006, 0x49780800, 0x4d2c0000, 0x400a5800,
- 0x0501fa52, 0x5c025800, 0x05f1fc05, 0x90000c91,
- 0x05a218a2, 0x0c01f001, 0x0010c563, 0x0010c566,
- 0x0010c54b, 0x0010c570, 0x0010c57c, 0x0010c54b,
- 0x0010c54b, 0x0010c54b, 0x0010c54b, 0x0010c54b,
- 0x0010c54b, 0x0010c54b, 0x0010c54b, 0x0010c54b,
- 0x0010c54b, 0x0010c54b, 0x0010c54b, 0x05f9f966,
- 0x4d400000, 0x5930002b, 0x80000540, 0x05000004,
- 0x41400800, 0x05a5f9e6, 0x40068000, 0x4d2c0000,
- 0x59325809, 0x05f1ff74, 0x05000006, 0x592c040b,
- 0x8c000510, 0x05000002, 0x05ddf9f3, 0x0501fa2b,
- 0x4c5c0000, 0x5930b80a, 0x05e5fe72, 0x485e600a,
- 0x5c00b800, 0x5c025800, 0x5c028000, 0x5c03e000,
- 0x05dc07a0, 0x1c01f000, 0x598c000b, 0x81300580,
- 0x05020003, 0x05e1faa7, 0x0502000e, 0x05ddfc4b,
- 0x05fc07df, 0x05ddfebf, 0x0500000a, 0x05a1f86b,
- 0x05f1fbc0, 0x05020003, 0x05e1fa6e, 0x05020005,
- 0x05ddfb62, 0x05fc07d6, 0x05ddfeb6, 0x05a20863,
- 0x59300203, 0x90000c91, 0x05a21860, 0x0c01f7bf,
- 0x05a5facd, 0x05fdf7ce, 0x4933c857, 0x4d240000,
- 0x4c5c0000, 0x4d440000, 0x4d340000, 0x4c580000,
- 0x59cc3800, 0x821c3d00, 0x00ffffff, 0x59cc0007,
- 0x4c000000, 0x59cc0001, 0x82000500, 0x00ffffff,
- 0x82000d80, 0x00fffffe, 0x5c000000, 0x05020005,
- 0x801c0d80, 0x05020054, 0x42000000, 0x00fffffe,
- 0x05d5fb3a, 0x05c80ce4, 0x0502004f, 0x4178b800,
- 0x91cc1408, 0x6008b000, 0x91341c06, 0x05edfaac,
- 0x05000002, 0x6004b800, 0x5930001d, 0x4c000000,
- 0x05c9fcd1, 0x4926601d, 0x5930000a, 0x4c000000,
- 0x59242c00, 0x8c14050a, 0x05020011, 0x81342d80,
- 0x05000002, 0x60102800, 0x58002403, 0x59340c03,
- 0x59341802, 0x820c1d00, 0x00ffffff, 0x60143000,
- 0x59cc4008, 0x59cc3809, 0x9c2041c0, 0x9c1c39c0,
- 0x611a8000, 0x41301000, 0x0501f9f5, 0x8c5c0500,
- 0x0502001f, 0x4936600a, 0x83440d80, 0x000007fe,
- 0x0502000f, 0x60683000, 0x0501ffc5, 0x42000000,
- 0x0010e451, 0x0505fa1b, 0x4d3c0000, 0x4d400000,
- 0x60a68000, 0x05b1f852, 0x602a7800, 0x05b1f89e,
+ 0x0501fa93, 0x5c025800, 0x5930001e, 0x800001c0,
+ 0x05f60f6d, 0x05f1fa78, 0x90000c91, 0x059e19d6,
+ 0x0c01f001, 0x0010cc6a, 0x0010cc6d, 0x0010cc52,
+ 0x0010cc77, 0x0010cc83, 0x0010cc52, 0x0010cc52,
+ 0x0010cc52, 0x0010cc52, 0x0010cc52, 0x0010cc52,
+ 0x0010cc52, 0x0010cc52, 0x0010cc52, 0x0010cc52,
+ 0x0010cc52, 0x0010cc52, 0x05f9f805, 0x4d400000,
+ 0x5930002b, 0x80000540, 0x05000004, 0x41400800,
+ 0x05a1fb7d, 0x40068000, 0x4d2c0000, 0x59325809,
+ 0x05f1fdf6, 0x05000006, 0x592c040b, 0x8c000510,
+ 0x05000002, 0x05d9ffa0, 0x0501fa69, 0x4c5c0000,
+ 0x5930b80a, 0x05e5fc80, 0x485e600a, 0x5c00b800,
+ 0x5c025800, 0x5c028000, 0x5c03e000, 0x05dc0557,
+ 0x1c01f000, 0x598c000b, 0x81300580, 0x05020003,
+ 0x05e1f85e, 0x0502000e, 0x05ddf9fd, 0x05fc07df,
+ 0x05ddfc75, 0x0500000a, 0x059df99f, 0x05f1fa33,
+ 0x05020003, 0x05e1f825, 0x05020005, 0x05ddf914,
+ 0x05fc07d6, 0x05ddfc6c, 0x059e0997, 0x59300203,
+ 0x90000c91, 0x059e1994, 0x0c01f7bf, 0x05a1fc64,
+ 0x05fdf7ce, 0x4933c857, 0x4d240000, 0x4c5c0000,
+ 0x4d440000, 0x4d340000, 0x4c580000, 0x59cc3800,
+ 0x821c3d00, 0x00ffffff, 0x59cc0007, 0x4c000000,
+ 0x59cc0001, 0x82000500, 0x00ffffff, 0x82000d80,
+ 0x00fffffe, 0x5c000000, 0x05020005, 0x801c0d80,
+ 0x05020061, 0x42000000, 0x00fffffe, 0x05d1ffdf,
+ 0x05c808a6, 0x0502005c, 0x4178b800, 0x83440580,
+ 0x000007fe, 0x05000007, 0x91cc1408, 0x6008b000,
+ 0x91341c06, 0x05edf8e7, 0x05000002, 0x6004b800,
+ 0x5930001d, 0x4c000000, 0x05c9f890, 0x4926601d,
+ 0x5930000a, 0x4c000000, 0x59242c00, 0x8c14050a,
+ 0x05020018, 0x81342d80, 0x05000002, 0x60102800,
+ 0x58002403, 0x59340c03, 0x59341802, 0x820c1d00,
+ 0x00ffffff, 0x60143000, 0x59cc4008, 0x59cc3809,
+ 0x9c2041c0, 0x9c1c39c0, 0x611a8000, 0x82100580,
+ 0x000007fe, 0x05020005, 0x59240200, 0x82000500,
+ 0xfffffe7f, 0x48024a00, 0x41301000, 0x0501fa2b,
+ 0x8c5c0500, 0x05020022, 0x4936600a, 0x83440d80,
+ 0x000007fe, 0x05020012, 0x60683000, 0x0505f811,
+ 0x42000000, 0x001123f5, 0x0505fa85, 0x4d3c0000,
+ 0x4d400000, 0x60a68000, 0x59240a00, 0x84040d02,
+ 0x48064a00, 0x05adf9da, 0x602a7800, 0x05adfa30,
0x5c028000, 0x5c027800, 0x0501f00d, 0x602c3000,
- 0x0501ffb7, 0x42000000, 0x0010e451, 0x0505fa0d,
+ 0x0505f800, 0x42000000, 0x001123f5, 0x0505fa74,
0x4d3c0000, 0x4d400000, 0x60a68000, 0x417a7800,
- 0x05adfd58, 0x5c028000, 0x5c027800, 0x5c000000,
+ 0x05a9fedb, 0x5c028000, 0x5c027800, 0x5c000000,
0x4802600a, 0x5c000000, 0x4802601d, 0x59cc0007,
0x83440d80, 0x000007fe, 0x05020005, 0x42000000,
0x00fffffe, 0x4a026c00, 0x00000707, 0x48026802,
0x80000580, 0x5c00b000, 0x5c026800, 0x5c028800,
0x5c00b800, 0x5c024800, 0x1c01f000, 0x4933c857,
- 0x4c040000, 0x59a800b6, 0xb00005b4, 0x05020040,
- 0x59cc0a08, 0x82040480, 0x00000100, 0x05001033,
- 0x59cc0c08, 0x82040500, 0x00008000, 0x05000035,
- 0x59a80041, 0x80000540, 0x05020009, 0x5930100a,
+ 0x4c040000, 0x59a800bb, 0xb00005b4, 0x05020043,
+ 0x59cc0a08, 0x82040480, 0x00000100, 0x05001036,
+ 0x59cc0c08, 0x82040500, 0x00008000, 0x05000038,
+ 0x59a80044, 0x80000540, 0x05020009, 0x5930100a,
0x58080212, 0x82000500, 0x0000ff00, 0x05000004,
- 0x82040500, 0x00000800, 0x0500002a, 0x59cc0c09,
- 0x80040840, 0x05001024, 0x59a80a49, 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,
- 0x05edf9ff, 0x05020005, 0x91cc140a, 0x6008b000,
- 0x91341c08, 0x05edf9fa, 0x5c00b000, 0x1c01f000,
- 0x4933c857, 0x4c580000, 0x91cc140b, 0x6008b000,
- 0x91341c06, 0x05edf9f2, 0x05020008, 0x91cc140d,
- 0x6008b000, 0x91341c08, 0x05edf9ed, 0x05000014,
- 0x4933c856, 0x4933c856, 0x4933c857, 0x59340009,
- 0x4803c857, 0x5934000e, 0x4803c857, 0x59340008,
- 0x4803c857, 0x5934000d, 0x4803c857, 0x59340007,
- 0x4803c857, 0x5934000c, 0x4803c857, 0x59340006,
- 0x4803c857, 0x5934000b, 0x4803c857, 0x5c00b000,
- 0x1c01f000, 0x4933c857, 0x4947c857, 0x4943c857,
- 0x4c600000, 0x05ddfe9e, 0x4df00000, 0x4d2c0000,
- 0x4d300000, 0x4d340000, 0x4c580000, 0x0501f8d3,
- 0x4130c000, 0x42026000, 0x00111b00, 0x59a8003b,
- 0x8060c1c0, 0x05000005, 0x82601580, 0x00111a70,
- 0x05000002, 0x80000040, 0x81640480, 0x05021092,
- 0x40600000, 0x81300580, 0x0500008a, 0x0501fa1a,
- 0x05020088, 0x812649c0, 0x05000004, 0x5930001d,
- 0x81240580, 0x05020083, 0x5932680a, 0x05e5fb73,
- 0x05000080, 0x59300407, 0x90000c92, 0x059e1f43,
- 0x0c01f001, 0x0010c714, 0x0010c6ac, 0x0010c6ba,
- 0x0010c6c4, 0x0010c6ac, 0x0010c6ba, 0x0010c6ec,
- 0x0010c6f9, 0x0010c6ab, 0x0010c6ab, 0x0010c6ff,
- 0x0010c6ab, 0x0010c6ab, 0x0010c6ab, 0x0010c6ab,
- 0x0010c710, 0x0010c70a, 0x0010c708, 0x059dff2f,
- 0x59300403, 0xb0000583, 0x05f40ca4, 0x0501ffa7,
- 0x05f1ff0b, 0x05000005, 0x05f1ff18, 0x0502005d,
- 0x05e9fc0f, 0x0501f05b, 0x05adfcbd, 0x05f1ff13,
- 0x05e80c0b, 0x0501f057, 0x59325809, 0x05f1fe0e,
- 0x05000054, 0x49425a0a, 0x497a5c0d, 0x0001fb82,
- 0x59300229, 0x90000583, 0x05f00ee6, 0x0501f04d,
- 0x05f9fa99, 0x59300008, 0x8c000500, 0x05000003,
- 0x05a5f981, 0x0501f007, 0x59300203, 0x90000584,
- 0x05a4097d, 0x59300203, 0x90000584, 0x05a4097a,
- 0x59325809, 0x05f1fdf8, 0x0500003e, 0x592c0208,
- 0x82000500, 0x000000ff, 0x90000594, 0x05f20ed1,
- 0x05f5ffd9, 0x0005f9f3, 0x05d1fd2e, 0x4a025a08,
- 0x00000103, 0x592c040c, 0x8c000512, 0x05000006,
- 0x4d2c0000, 0x592c000d, 0x40025800, 0x05a1fab8,
- 0x5c025800, 0x49425a0a, 0x497a580d, 0x0501fc4a,
- 0x05f5fc75, 0x05f1ff3b, 0x0001fb82, 0x0501f025,
- 0x59300203, 0x90000584, 0x05a4095b, 0x59325809,
- 0x05f1fdd9, 0x0500001f, 0x49425a0a, 0x0501fc3e,
- 0x05f5ffbd, 0x0005f9f3, 0x05f5fc67, 0x0001fb82,
- 0x0501f018, 0x59300203, 0x90000591, 0x05020019,
- 0x59300429, 0x48026203, 0x0501f016, 0x59300203,
- 0x90000584, 0x05a40948, 0x59325809, 0x05f1fdc6,
- 0x0500000c, 0x49425a0a, 0x0001fb82, 0x0501f009,
- 0x59325819, 0x05a1fa92, 0x05a5ffff, 0x59325809,
- 0x05f1fdbd, 0x05000003, 0x49425a0a, 0x0001fb82,
- 0x05e5fcc0, 0x8d3c051c, 0x05000002, 0x497a600a,
- 0x91326430, 0x41580000, 0x81300480, 0x05fc1771,
- 0x0501f002, 0x41526000, 0x8d3c0518, 0x0500002b,
- 0x59a80898, 0x59a80099, 0x80040480, 0x05000027,
- 0x81300800, 0x41540000, 0x80040480, 0x05021023,
- 0x5930000a, 0x800001c0, 0x05fe0765, 0x0001fb00,
- 0x05fe07ec, 0x59340802, 0x82040d00, 0x00ffffff,
- 0x5930002a, 0x80040580, 0x05fe07e6, 0x59340813,
- 0x59301029, 0x80040582, 0x82000500, 0x00ffffff,
- 0x0500000c, 0x0505f9bf, 0x42000800, 0x0010e512,
- 0x58040005, 0x80080580, 0x82000500, 0x00ffffff,
- 0x05fc07d8, 0x90040c0d, 0x8058b040, 0x05fe07f9,
- 0x59300203, 0x90000588, 0x05020002, 0x0501fe69,
- 0x4936600a, 0x05fdf74e, 0x5c00b000, 0x5c026800,
- 0x5c026000, 0x5c025800, 0x5c03e000, 0x05dc0db9,
- 0x5c00c000, 0x1c01f000, 0x4933c857, 0x813261c0,
- 0x05000025, 0x83300d80, 0x00111a70, 0x05000022,
- 0x8d3c0506, 0x05020020, 0x59300c07, 0x90040581,
- 0x05000008, 0x90040582, 0x0502001b, 0x59300229,
- 0x90000581, 0x05020018, 0x59300c18, 0x0501f002,
- 0x59300c03, 0x900405b9, 0x05000003, 0x900405b5,
- 0x05020011, 0x4d300000, 0x4d1c0000, 0x5932602a,
- 0x4933c857, 0x05f5f9f9, 0x059c0e70, 0x591c001e,
- 0x497a381e, 0x591c0c16, 0x84040d02, 0x48063c16,
- 0x5c023800, 0x5c026000, 0x81300580, 0x059e0e67,
- 0x497a602a, 0x1c01f000, 0x5c000000, 0x4c000000,
- 0x4803c857, 0x4d3c0000, 0x60067800, 0x05c5fd68,
- 0x5c027800, 0x4c580000, 0x6008b000, 0x5930181d,
- 0x900c1c01, 0x91cc140b, 0x05edf8c5, 0x5c00b000,
- 0x80000540, 0x1c01f000, 0x492fc857, 0x4943c857,
- 0x59a8000c, 0x812c0480, 0x05001014, 0x59a8000a,
- 0x812c0480, 0x05021011, 0x4d400000, 0x592c0000,
- 0x80005d40, 0x0500000a, 0x497a5800, 0x49425a0a,
- 0x4c2c0000, 0x0001fb82, 0x5c025800, 0x9140058c,
- 0x05fe07f7, 0x60128000, 0x05fdf7f5, 0x49425a0a,
- 0x5c028000, 0x0001f382, 0x1c01f000, 0x61fc21ff,
- 0x5930100a, 0x800811c0, 0x05000002, 0x58082403,
- 0x41301000, 0x0501f006, 0x41781000, 0x41442000,
- 0x0501f003, 0x41781000, 0x61fc21ff, 0x5c000000,
- 0x4c000000, 0x4803c857, 0x480bc857, 0x4813c857,
- 0x492fc857, 0x4943c857, 0x4d2c0000, 0x4c040000,
- 0x4c080000, 0x4c0c0000, 0x4c100000, 0x4c140000,
- 0x4c180000, 0x4c1c0000, 0x4c200000, 0x05a1f9c7,
- 0x059c0e1e, 0x5c004000, 0x5c003800, 0x5c003000,
- 0x5c002800, 0x5c002000, 0x5c001800, 0x5c001000,
- 0x5c000800, 0x05011000, 0x912c0408, 0x4803c840,
+ 0x82040500, 0x00000800, 0x0500002d, 0x59cc0c09,
+ 0x80040840, 0x05001027, 0x59a80a4c, 0x8c040506,
+ 0x05000004, 0x59cc0c0f, 0x8c04051e, 0x05020015,
+ 0x59cc0a17, 0x800409c0, 0x05020015, 0x59cc0a18,
+ 0x82040480, 0x00000100, 0x05001017, 0x59a80807,
+ 0x8c040508, 0x05020004, 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, 0x05edf82d,
+ 0x05020005, 0x91cc140a, 0x6008b000, 0x91341c08,
+ 0x05edf828, 0x5c00b000, 0x1c01f000, 0x4933c857,
+ 0x4c580000, 0x91cc140b, 0x6008b000, 0x91341c06,
+ 0x05edf820, 0x05020008, 0x91cc140d, 0x6008b000,
+ 0x91341c08, 0x05edf81b, 0x05000014, 0x4933c856,
+ 0x4933c856, 0x4933c857, 0x59340009, 0x4803c857,
+ 0x5934000e, 0x4803c857, 0x59340008, 0x4803c857,
+ 0x5934000d, 0x4803c857, 0x59340007, 0x4803c857,
+ 0x5934000c, 0x4803c857, 0x59340006, 0x4803c857,
+ 0x5934000b, 0x4803c857, 0x5c00b000, 0x1c01f000,
+ 0x4933c857, 0x4947c857, 0x4943c857, 0x4c600000,
+ 0x05ddfc45, 0x4df00000, 0x4d2c0000, 0x4d300000,
+ 0x4d340000, 0x4c580000, 0x0501f901, 0x4130c000,
+ 0x40be6000, 0x59a8003d, 0x8060c1c0, 0x05000004,
+ 0x80bc1498, 0x05001002, 0x80000040, 0x81640480,
+ 0x05021090, 0x40600000, 0x81300580, 0x05000088,
+ 0x0501fa4f, 0x05020086, 0x812649c0, 0x05000004,
+ 0x5930001d, 0x81240580, 0x05020081, 0x5932680a,
+ 0x05e5f94e, 0x0500007e, 0x59300407, 0x90000c92,
+ 0x059e1869, 0x0c01f001, 0x0010ce27, 0x0010cdc1,
+ 0x0010cdcf, 0x0010cdd9, 0x0010cdc1, 0x0010cdcf,
+ 0x0010ce01, 0x0010ce0e, 0x0010cdc0, 0x0010cdc0,
+ 0x0010ce14, 0x0010cdc0, 0x0010cdc0, 0x0010cdc0,
+ 0x0010cdc0, 0x0010ce23, 0x0010ce1d, 0x0010ce1d,
+ 0x059df855, 0x59300403, 0xb0000583, 0x05f40b35,
+ 0x0501fff9, 0x05f1fd8f, 0x05000005, 0x05f1fd9c,
+ 0x0502005b, 0x05e9fa34, 0x0501f059, 0x05a9fe3f,
+ 0x05f1fd97, 0x05e80a30, 0x0501f055, 0x59325809,
+ 0x05f1fc82, 0x05000052, 0x49425a0a, 0x497a5c0d,
+ 0x0001fba8, 0x59300229, 0x90000583, 0x05f00d6a,
+ 0x0501f04b, 0x05f9f935, 0x59300008, 0x8c000500,
+ 0x05000003, 0x05a1fb0a, 0x0501f007, 0x59300203,
+ 0x90000584, 0x05a00b06, 0x59300203, 0x90000584,
+ 0x05a00b03, 0x59325809, 0x05f1fc6c, 0x0500003c,
+ 0x592c0208, 0x82000500, 0x000000ff, 0x90000594,
+ 0x05f20d55, 0x05f5fe6a, 0x0005fa1a, 0x05d1f9a1,
+ 0x4a025a08, 0x00000103, 0x592c040c, 0x8c000512,
+ 0x05000006, 0x4d2c0000, 0x592c000d, 0x40025800,
+ 0x059dfbda, 0x5c025800, 0x49425a0a, 0x497a580d,
+ 0x0501fc7f, 0x05f5fb06, 0x05f1fdbf, 0x0001fba8,
+ 0x0501f023, 0x59300203, 0x90000584, 0x05a00ae4,
+ 0x59325809, 0x05f1fc4d, 0x0500001d, 0x49425a0a,
+ 0x0501fc73, 0x05f5fe4e, 0x0005fa1a, 0x05f5faf8,
+ 0x0001fba8, 0x0501f016, 0x59300203, 0x90000591,
+ 0x05020017, 0x59300429, 0x48026203, 0x0501f014,
+ 0x59300203, 0x90000584, 0x05a00ad1, 0x59325809,
+ 0x05f1fc3a, 0x0500000a, 0x49425a0a, 0x0001fba8,
+ 0x0501f007, 0x05a5f95d, 0x59325809, 0x05f1fc33,
+ 0x05000003, 0x49425a0a, 0x0001fba8, 0x05e5fac2,
+ 0x8d3c051c, 0x05000002, 0x497a600a, 0x91326430,
+ 0x41580000, 0x81300480, 0x05fc1773, 0x0501f002,
+ 0x41526000, 0x8d3c0518, 0x0500002c, 0x59a8089b,
+ 0x59a8009c, 0x80040480, 0x05000028, 0x81300800,
+ 0x41540000, 0x80040480, 0x05021024, 0x5930000a,
+ 0x800001c0, 0x05fe0767, 0x0001fb08, 0x05fe07ec,
+ 0x59340802, 0x82040d00, 0x00ffffff, 0x5930002a,
+ 0x80040580, 0x05fe07e6, 0x59340013, 0x59301029,
+ 0x80080580, 0x82000500, 0x00ffffff, 0x0500000c,
+ 0x0505fa27, 0x42000800, 0x001124b6, 0x58040005,
+ 0x80080580, 0x82000500, 0x00ffffff, 0x05fc07d8,
+ 0x90040c0d, 0x8058b040, 0x05fe07f9, 0x59300203,
+ 0x90000588, 0x05020003, 0x0501feb3, 0x497a6009,
+ 0x4936600a, 0x05fdf74f, 0x82bc0580, 0x00115aa4,
+ 0x0500002f, 0x42026000, 0x00115aa4, 0x59a8029f,
+ 0x8060c1c0, 0x05000007, 0x806014af, 0x05021005,
+ 0x82601580, 0x00115a14, 0x05000002, 0x80000040,
+ 0x59a8123e, 0x80080480, 0x05021021, 0x81300598,
+ 0x0500001c, 0x0501f982, 0x0502001a, 0x812649c0,
+ 0x05000004, 0x5930001d, 0x81240580, 0x05020015,
+ 0x5932680a, 0x05e5f881, 0x05000012, 0x59300407,
+ 0x90000d84, 0x05020003, 0x0501ff43, 0x0501f009,
+ 0x90000d91, 0x0502000b, 0x05a5f8fc, 0x59325809,
+ 0x05f1fbd2, 0x05000003, 0x49425a0a, 0x0001fba8,
+ 0x05e5fa61, 0x8d3c051c, 0x05000002, 0x497a600a,
+ 0x91326430, 0x813004af, 0x05fc17e1, 0x5c00b000,
+ 0x5c026800, 0x5c026000, 0x5c025800, 0x5c03e000,
+ 0x05dc0b32, 0x5c00c000, 0x1c01f000, 0x4933c857,
+ 0x813261c0, 0x05000025, 0x83300d80, 0x00115a14,
+ 0x05000022, 0x8d3c0506, 0x05020020, 0x59300c07,
+ 0x90040581, 0x05000008, 0x90040582, 0x0502001b,
+ 0x59300229, 0x90000581, 0x05020018, 0x59300c18,
+ 0x0501f002, 0x59300c03, 0x900405b9, 0x05000003,
+ 0x900405b5, 0x05020011, 0x4d300000, 0x4d1c0000,
+ 0x5932602a, 0x4933c857, 0x05f5f850, 0x05980f66,
+ 0x591c001e, 0x497a381e, 0x591c0c16, 0x84040d02,
+ 0x48063c16, 0x5c023800, 0x5c026000, 0x81300580,
+ 0x059a0f5d, 0x497a602a, 0x1c01f000, 0x5c000000,
+ 0x4c000000, 0x4803c857, 0x4d3c0000, 0x60067800,
+ 0x05c5f836, 0x5c027800, 0x4c580000, 0x6008b000,
+ 0x5930181d, 0x900c1c01, 0x91cc140b, 0x05e9fec5,
+ 0x5c00b000, 0x80000540, 0x1c01f000, 0x492fc857,
+ 0x4943c857, 0x59a8000c, 0x812c0480, 0x05021003,
+ 0x05f1fb96, 0x05000014, 0x59a8000a, 0x812c0480,
+ 0x05021011, 0x4d400000, 0x592c0000, 0x80005d40,
+ 0x0500000a, 0x497a5800, 0x49425a0a, 0x4c2c0000,
+ 0x0001fba8, 0x5c025800, 0x9140058c, 0x05fe07f7,
+ 0x60128000, 0x05fdf7f5, 0x49425a0a, 0x5c028000,
+ 0x0001f3a8, 0x1c01f000, 0x61fc21ff, 0x5930100a,
+ 0x800811c0, 0x05000002, 0x58082403, 0x41301000,
+ 0x0501f006, 0x41781000, 0x41442000, 0x0501f003,
+ 0x41781000, 0x61fc21ff, 0x5c000000, 0x4c000000,
+ 0x4803c857, 0x480bc857, 0x4813c857, 0x492fc857,
+ 0x4943c857, 0x4d2c0000, 0x4c040000, 0x4c080000,
+ 0x4c0c0000, 0x4c100000, 0x4c140000, 0x4c180000,
+ 0x4c1c0000, 0x4c200000, 0x059dfab7, 0x05980f12,
+ 0x5c004000, 0x5c003800, 0x5c003000, 0x5c002800,
+ 0x5c002000, 0x5c001800, 0x5c001000, 0x5c000800,
+ 0x05011000, 0x912c0408, 0x4803c840, 0x6443c842,
+ 0x40000000, 0x05fd17ff, 0x4a025808, 0x0000010d,
+ 0x800811c0, 0x05000019, 0x914005a9, 0x05020013,
+ 0x90180582, 0x05000009, 0x90180583, 0x05000007,
+ 0x90180588, 0x05000005, 0x90180586, 0x05000006,
+ 0x90180589, 0x05020009, 0x4a02580d, 0xffffffff,
+ 0x0501f007, 0x5808280a, 0x58140002, 0x82000500,
+ 0x00ffffff, 0x48025816, 0x480a580d, 0x58080202,
+ 0x48025c17, 0x0501f005, 0x4a02580d, 0xffffffff,
+ 0x4a025c17, 0x0000ffff, 0xb1400586, 0x05000002,
+ 0x41782800, 0x480e5810, 0x48065811, 0x48225812,
+ 0x481e5813, 0x481a5c0c, 0xb1400586, 0x05020007,
+ 0x901805a0, 0x05020005, 0x59a8024c, 0x8c000508,
+ 0x05000002, 0x84142d46, 0x49425a0c, 0x48125a0a,
+ 0x82100580, 0x0000ffff, 0x05000029, 0x4d440000,
+ 0x4d340000, 0x4c140000, 0x4c180000, 0x40128800,
+ 0x83440480, 0x000007f0, 0x05001006, 0x83440480,
+ 0x00000800, 0x05021003, 0x05c5fdf0, 0x0501f002,
+ 0x0001fb08, 0x059a0ec0, 0x59340002, 0x82000500,
+ 0x00ffffff, 0x48025816, 0x5c003000, 0x5c002800,
+ 0xb1400586, 0x05020010, 0x901805a0, 0x0502000e,
+ 0x84142d48, 0x59344006, 0x59343807, 0x59341808,
+ 0x59340809, 0x9c2041c0, 0x9c1c39c0, 0x9c0c19c0,
+ 0x9c0409c0, 0x480e580e, 0x4806580f, 0x48225812,
+ 0x481e5813, 0x5c026800, 0x5c028800, 0x48165a0b,
+ 0x497a5800, 0x497a5c08, 0x812000d0, 0x48025c14,
+ 0x0501fcc2, 0x5c025800, 0x1c01f000, 0x5c000000,
+ 0x4c000000, 0x4803c857, 0x480bc857, 0x480fc857,
+ 0x4813c857, 0x4817c857, 0x4d2c0000, 0x4c080000,
+ 0x4c0c0000, 0x4c100000, 0x4c140000, 0x059dfa36,
+ 0x05980e91, 0x5c002800, 0x5c002000, 0x5c001800,
+ 0x5c001000, 0x05011000, 0x912c0408, 0x4803c840,
0x6443c842, 0x40000000, 0x05fd17ff, 0x4a025808,
- 0x0000010d, 0x800811c0, 0x05000019, 0x914005a9,
- 0x05020013, 0x90180582, 0x05000009, 0x90180583,
- 0x05000007, 0x90180588, 0x05000005, 0x90180586,
- 0x05000006, 0x90180589, 0x05020009, 0x4a02580d,
- 0xffffffff, 0x0501f007, 0x5808280a, 0x58140002,
- 0x82000500, 0x00ffffff, 0x48025816, 0x480a580d,
- 0x58080202, 0x48025c17, 0x0501f005, 0x4a02580d,
- 0xffffffff, 0x4a025c17, 0x0000ffff, 0xb1400586,
- 0x05000002, 0x41782800, 0x480e5810, 0x48065811,
- 0x48225812, 0x481e5813, 0x481a5c0c, 0xb1400586,
- 0x05020007, 0x901805a0, 0x05020005, 0x59a80249,
- 0x8c000508, 0x05000002, 0x84142d46, 0x49425a0c,
- 0x48125a0a, 0x82100580, 0x0000ffff, 0x05000026,
- 0x4d440000, 0x4d340000, 0x4c140000, 0x4c180000,
- 0x40128800, 0x83440480, 0x000007f0, 0x05001003,
- 0x05c9fa71, 0x0501f002, 0x0001fb00, 0x059e0dcf,
- 0x59340002, 0x82000500, 0x00ffffff, 0x48025816,
- 0x5c003000, 0x5c002800, 0xb1400586, 0x05020010,
- 0x901805a0, 0x0502000e, 0x84142d48, 0x59344006,
- 0x59343807, 0x59341808, 0x59340809, 0x9c2041c0,
- 0x9c1c39c0, 0x9c0c19c0, 0x9c0409c0, 0x480e580e,
- 0x4806580f, 0x48225812, 0x481e5813, 0x5c026800,
- 0x5c028800, 0x48165a0b, 0x497a5800, 0x497a5c08,
- 0x812000d0, 0x48025c14, 0x0501fcaf, 0x5c025800,
- 0x1c01f000, 0x5c000000, 0x4c000000, 0x4803c857,
- 0x480bc857, 0x480fc857, 0x4813c857, 0x4817c857,
- 0x4d2c0000, 0x4c080000, 0x4c0c0000, 0x4c100000,
- 0x4c140000, 0x05a1f949, 0x059c0da0, 0x5c002800,
- 0x5c002000, 0x5c001800, 0x5c001000, 0x05011000,
- 0x912c0408, 0x4803c840, 0x6443c842, 0x40000000,
- 0x05fd17ff, 0x4a025808, 0x0000010d, 0x65265a0c,
- 0x480a5a0e, 0x480e5c0e, 0x48125a0f, 0x48165c0f,
- 0x82080580, 0x00008014, 0x05020054, 0x820c0580,
- 0x0000ffff, 0x05020051, 0x90100586, 0x0502004f,
- 0x4d240000, 0x42024800, 0x0010e512, 0x59240005,
- 0x5c024800, 0x05cdf855, 0x05000009, 0x82000d00,
- 0x00ffff00, 0x05020006, 0x82000c00, 0x00102853,
- 0x50040800, 0x80040910, 0x48065a10, 0x82000d00,
- 0x0000ffff, 0x48065c10, 0x80000120, 0x48025a11,
- 0x59a80249, 0x82001500, 0x00003500, 0x480a5a12,
- 0x8c000502, 0x05000016, 0x8c000506, 0x05000006,
- 0x90000d0a, 0x90040d8a, 0x05020003, 0x64065c11,
- 0x0501f018, 0x8c00050a, 0x05000006, 0x90000d22,
- 0x90040da2, 0x05020003, 0x640e5c11, 0x0501f011,
- 0x8c000508, 0x05000006, 0x90000d12, 0x90040d92,
- 0x05020003, 0x640a5c11, 0x0501f00a, 0x05cdf82b,
- 0x05020003, 0x64125c11, 0x0501f006, 0x8c000506,
- 0x05000003, 0x64165c11, 0x0501f002, 0x64025c11,
- 0x59a8005c, 0x48025c12, 0x59a8005d, 0x48025a13,
- 0x59c40801, 0x82040d00, 0x00018000, 0x90040580,
- 0x05020003, 0x64025c13, 0x0501f00c, 0x82040580,
- 0x00008000, 0x05020003, 0x64065c13, 0x0501f007,
- 0x82040580, 0x00010000, 0x05020003, 0x640e5c13,
- 0x0501f002, 0x64125c13, 0x0501fc37, 0x5c025800,
- 0x1c01f000, 0x5930080a, 0x800409c0, 0x05000004,
- 0x58040403, 0x81440580, 0x1c01f000, 0x90000541,
- 0x05fdf7fe, 0x4933c857, 0xb13805a1, 0x05000003,
- 0xb13805a0, 0x0502000c, 0x5932680a, 0x59340200,
- 0x8c00050e, 0x05020002, 0x497a6205, 0x5930001c,
- 0x80000540, 0x000407dc, 0x497a601c, 0x0801f800,
- 0x1c01f000, 0x1c01f000, 0x4933c857, 0xb13805a1,
- 0x05000003, 0xb13805a0, 0x05e60372, 0x59303403,
- 0x82180580, 0x00000086, 0x05e4030a, 0x82180580,
- 0x00000087, 0x05e40307, 0x497a6205, 0x642a6203,
- 0x1c01f000, 0x4933c857, 0xb13805a1, 0x05000003,
- 0xb13805a0, 0x05020008, 0x59300c03, 0x4807c857,
- 0xb004048a, 0x059e1d05, 0xb0040481, 0x059c1d03,
- 0x0c01f002, 0x1c01f000, 0x0010c8e7, 0x0010c8e4,
- 0x0010c8f4, 0x0010c8e3, 0x0010c8e3, 0x0010c8e3,
- 0x0010c8e3, 0x0010c8e3, 0x0010c8f4, 0x059dfcf7,
- 0x497a6205, 0x64126203, 0x1c01f000, 0x497a6205,
- 0x59325809, 0x832c0500, 0x00ff0000, 0x05000004,
- 0x592c0c0e, 0x8c04051a, 0x05020003, 0x0005fe4e,
- 0x0005f7dc, 0x0501f99f, 0x05fc07fd, 0x1c01f000,
- 0x497a6205, 0x59cc0002, 0x90000530, 0x90000590,
- 0x05f006dc, 0x5930001c, 0x80000540, 0x05000004,
+ 0x0000010d, 0x65265a0c, 0x480a5a0e, 0x480e5c0e,
+ 0x48125a0f, 0x48165c0f, 0x82080580, 0x00008014,
+ 0x05020054, 0x820c0580, 0x0000ffff, 0x05020051,
+ 0x90100586, 0x0502004f, 0x4d240000, 0x42024800,
+ 0x001124b6, 0x59240005, 0x5c024800, 0x05c9fbf5,
+ 0x05000009, 0x82000d00, 0x00ffff00, 0x05020006,
+ 0x82000c00, 0x001028fb, 0x50040800, 0x80040910,
+ 0x48065a10, 0x82000d00, 0x0000ffff, 0x48065c10,
+ 0x80000120, 0x48025a11, 0x59a8024c, 0x82001500,
+ 0x00003500, 0x480a5a12, 0x8c000502, 0x05000016,
+ 0x8c000506, 0x05000006, 0x90000d0a, 0x90040d8a,
+ 0x05020003, 0x64065c11, 0x0501f018, 0x8c00050a,
+ 0x05000006, 0x90000d22, 0x90040da2, 0x05020003,
+ 0x640e5c11, 0x0501f011, 0x8c000508, 0x05000006,
+ 0x90000d12, 0x90040d92, 0x05020003, 0x640a5c11,
+ 0x0501f00a, 0x05c9fbcb, 0x05020003, 0x64125c11,
+ 0x0501f006, 0x8c000506, 0x05000003, 0x64165c11,
+ 0x0501f002, 0x64025c11, 0x59a8005f, 0x48025c12,
+ 0x59a80060, 0x48025a13, 0x59c40801, 0x82040d00,
+ 0x00018000, 0x90040580, 0x05020003, 0x64025c13,
+ 0x0501f00c, 0x82040580, 0x00008000, 0x05020003,
+ 0x64065c13, 0x0501f007, 0x82040580, 0x00010000,
+ 0x05020003, 0x640e5c13, 0x0501f002, 0x64125c13,
+ 0x0501fc4a, 0x5c025800, 0x1c01f000, 0x5930080a,
+ 0x800409c0, 0x05000004, 0x58040403, 0x81440580,
+ 0x1c01f000, 0x90000541, 0x05fdf7fe, 0x4933c857,
+ 0xb13805a1, 0x05000003, 0xb13805a0, 0x0502000c,
+ 0x5932680a, 0x59340200, 0x8c00050e, 0x05020002,
+ 0x497a6205, 0x5930001c, 0x80000540, 0x00080010,
0x497a601c, 0x0801f800, 0x1c01f000, 0x1c01f000,
- 0x4933c857, 0x493bc857, 0xb13805a1, 0x05000006,
- 0xb13805a0, 0x05e6032f, 0x59cc0002, 0x8c000526,
- 0x0500000c, 0x59300403, 0x4803c857, 0xb0000589,
- 0x059e0cce, 0x497a6205, 0x5930001c, 0x80000540,
- 0x05000004, 0x497a601c, 0x0801f800, 0x1c01f000,
- 0x1c01f000, 0x4933c857, 0x59300403, 0x82000d80,
- 0x00000085, 0x05020007, 0x4a026403, 0x0000008b,
- 0x642e6203, 0x42000800, 0x80000040, 0x0005f6ab,
- 0x82000d80, 0x0000008b, 0x05020025, 0x4d3c0000,
- 0x417a7800, 0x05adfa07, 0x5c027800, 0x42000000,
- 0x0010e454, 0x0501feb3, 0x59325809, 0x812e59c0,
- 0x05000006, 0x832c0500, 0x00ff0000, 0x05000003,
- 0x60128000, 0x05fdfe55, 0x60443000, 0x0501fc50,
- 0x05adfce3, 0x59240400, 0x8c00050a, 0x0502000a,
- 0x41782800, 0x60103000, 0x60a68000, 0x05fdfe64,
- 0x6406642c, 0x64126407, 0x64066403, 0x641e6203,
- 0x1c01f000, 0x602c0800, 0x05c5fbab, 0x64066407,
- 0x64066403, 0x64066203, 0x05d9f72b, 0x1c01f000,
- 0x4933c857, 0x40000000, 0x40000000, 0x1c01f000,
- 0x4933c857, 0x59300a03, 0x9004058e, 0x05000003,
- 0x90040590, 0x05020019, 0x0501f975, 0x05edfeb9,
- 0x59300203, 0x90000d89, 0x0500000b, 0x48026429,
- 0x4a026403, 0x00000085, 0x59300416, 0x8400055a,
- 0x8400055e, 0x48026416, 0x64266203, 0x64166407,
- 0x641a6229, 0x5932680a, 0x59340200, 0x8c00050e,
- 0x05020003, 0x59a8005d, 0x48026006, 0x42000800,
- 0x80000040, 0x0005feab, 0x1c01f000, 0x4933c857,
- 0x4c040000, 0x59300403, 0x90000d9e, 0x05020012,
- 0x800000d0, 0x59300a18, 0x82040d00, 0x000000ff,
- 0x80040540, 0x4803c857, 0x48026418, 0x4a026403,
- 0x00000085, 0x64266203, 0x64166407, 0x64126229,
- 0x59a8005d, 0x48026006, 0x42000800, 0x80000040,
- 0x0005feab, 0x5c000800, 0x1c01f000, 0x4933c857,
- 0x40000000, 0x40000000, 0x1c01f000, 0x59300416,
- 0x8c00050c, 0x0502000a, 0x4933c857, 0x4803c857,
- 0x8c000518, 0x05000006, 0x8c000512, 0x05f20586,
- 0x0501f937, 0x0005fe4e, 0x0005ffdc, 0x1c01f000,
- 0x591c0407, 0x4803c857, 0x90000c89, 0x0502100b,
- 0x0c01f001, 0x0010c9a2, 0x0010c9a2, 0x0010c9a2,
- 0x0010c9a4, 0x0010c9a2, 0x0010c9a4, 0x0010c9a4,
- 0x0010c9a2, 0x0010c9a4, 0x80000580, 0x1c01f000,
- 0x90000541, 0x1c01f000, 0x591c0407, 0x9000051f,
- 0x90000586, 0x0500000a, 0x4803c857, 0x64ee6403,
- 0x6426641c, 0x4a02621c, 0x00002a00, 0x64066203,
- 0x42000800, 0x80000040, 0x0005f6ab, 0x4803c856,
- 0x4c040000, 0x4c140000, 0x4d300000, 0x411e6000,
- 0x0501f90f, 0x497a6205, 0x59300416, 0x4803c857,
- 0x82000500, 0xffffadff, 0x48026416, 0x497a6405,
- 0x5c026000, 0x059dffc1, 0x059c0c18, 0x5c002800,
- 0x5c000800, 0x05011000, 0x912c0408, 0x4803c840,
- 0x6443c842, 0x40000000, 0x05fd17ff, 0x4a025808,
- 0x0000010d, 0x497a5800, 0x65165a0c, 0x491e580d,
- 0x59300402, 0x48025c0b, 0x5930041b, 0x48025c0f,
- 0x591c0416, 0x84000556, 0x48023c16, 0x591c180a,
- 0x580c0403, 0x48025a0a, 0x580c0002, 0x82000500,
- 0x00ffffff, 0x48025816, 0x59cc0404, 0x48025c17,
- 0x497a5a0b, 0x4816580e, 0x48065a0f, 0x580c0013,
- 0x82000500, 0xff000000, 0x80000120, 0x48025c14,
- 0x0501faf1, 0x493a6403, 0x4d400000, 0x61168000,
- 0x591c0202, 0x4c000000, 0x4d300000, 0x411e6000,
- 0x05fdfb31, 0x5c026000, 0x5c000000, 0x48023a02,
- 0x5c028000, 0x491e602a, 0x4932381e, 0x641a3c07,
- 0x641e3a03, 0x497a3806, 0x497a3a05, 0x1c01f000,
- 0x4933c857, 0x91380593, 0x0502000a, 0x59300403,
- 0x4803c857, 0x82000d80, 0x00000085, 0x05000026,
- 0x82000d80, 0x0000008b, 0x05000023, 0x059dfbd3,
- 0x913805a7, 0x0502000a, 0x05ddfa5f, 0x4d2c0000,
- 0x4d400000, 0x59325809, 0x60128000, 0x05fdfd77,
- 0x5c028000, 0x5c025800, 0x1c01f000, 0x91380594,
- 0x05fc07f6, 0xb13805a1, 0x05000009, 0xb13805a0,
- 0x05000007, 0x83380580, 0x00000089, 0x05000004,
- 0x83380580, 0x0000008a, 0x05e60216, 0x05ddfe9a,
- 0x05e60214, 0x59300a03, 0x9004058e, 0x05fc069b,
- 0x9004058a, 0x0500000c, 0x9004058c, 0x0500000a,
- 0x059dfbb2, 0x05f1fe75, 0x05000005, 0x643a6203,
- 0x59a8005e, 0x48026205, 0x1c01f000, 0x642a6203,
- 0x1c01f000, 0x83380480, 0x00000093, 0x0502100b,
- 0x83380480, 0x00000085, 0x05001008, 0x83380580,
- 0x00000089, 0x05000008, 0x83380580, 0x0000008a,
- 0x05000031, 0x059dfb9d, 0x493bc857, 0x4933c857,
- 0x05e5f1f4, 0x4933c857, 0x4c340000, 0x05f1fe5b,
- 0x0500000b, 0x59300416, 0x8c00051a, 0x05000008,
- 0x641a6407, 0x59300429, 0x90000d8e, 0x05020002,
- 0x60080000, 0x48026203, 0x0501f01d, 0x59300c16,
- 0x4c040000, 0x41306800, 0x05e5f9b1, 0x5c000800,
- 0x05000015, 0x48066416, 0x64066203, 0x647a6403,
- 0x59cc0c07, 0x4806641b, 0x59cc0a07, 0x4806621b,
+ 0x4933c857, 0xb13805a1, 0x05000003, 0xb13805a0,
+ 0x05e6015a, 0x59303403, 0x82180580, 0x00000086,
+ 0x05e400d5, 0x82180580, 0x00000087, 0x05e400d2,
+ 0x497a6205, 0x642a6203, 0x1c01f000, 0x4933c857,
+ 0xb13805a1, 0x05000003, 0xb13805a0, 0x05020008,
+ 0x59300c03, 0x4807c857, 0xb004048a, 0x059a1df6,
+ 0xb0040481, 0x05981df4, 0x0c01f002, 0x1c01f000,
+ 0x0010d031, 0x0010d02e, 0x0010d03e, 0x0010d02d,
+ 0x0010d02d, 0x0010d02d, 0x0010d02d, 0x0010d02d,
+ 0x0010d03e, 0x0599fde8, 0x497a6205, 0x64126203,
+ 0x1c01f000, 0x497a6205, 0x59325809, 0x832c0500,
+ 0x00ff0000, 0x05000004, 0x592c0c0e, 0x8c04051a,
+ 0x05020003, 0x0005fe84, 0x0009f010, 0x0501f99f,
+ 0x05fc07fd, 0x1c01f000, 0x497a6205, 0x59cc0002,
+ 0x90000530, 0x90000590, 0x05f0052a, 0x5930001c,
+ 0x80000540, 0x05000004, 0x497a601c, 0x0801f800,
+ 0x1c01f000, 0x1c01f000, 0x4933c857, 0x493bc857,
+ 0xb13805a1, 0x05000006, 0xb13805a0, 0x05e60117,
+ 0x59cc0002, 0x8c000526, 0x0500000c, 0x59300403,
+ 0x4803c857, 0xb0000589, 0x059a0dbf, 0x497a6205,
+ 0x5930001c, 0x80000540, 0x05000004, 0x497a601c,
+ 0x0801f800, 0x1c01f000, 0x1c01f000, 0x4933c857,
+ 0x59300403, 0x82000d80, 0x00000085, 0x05020007,
+ 0x4a026403, 0x0000008b, 0x642e6203, 0x42000800,
+ 0x80000040, 0x0005f6e2, 0x82000d80, 0x0000008b,
+ 0x05020025, 0x4d3c0000, 0x417a7800, 0x05a9fb54,
+ 0x5c027800, 0x42000000, 0x001123f8, 0x0501fee4,
+ 0x59325809, 0x812e59c0, 0x05000006, 0x832c0500,
+ 0x00ff0000, 0x05000003, 0x60128000, 0x05fdfe50,
+ 0x60443000, 0x0501fc63, 0x05a9fe35, 0x59240400,
+ 0x8c00050a, 0x0502000a, 0x41782800, 0x60103000,
+ 0x60a68000, 0x05fdfe61, 0x6406642c, 0x64126407,
+ 0x64066403, 0x641e6203, 0x1c01f000, 0x602c0800,
+ 0x05c1fe74, 0x64066407, 0x64066403, 0x64066203,
+ 0x05d9f49a, 0x1c01f000, 0x4933c857, 0x40000000,
+ 0x40000000, 0x1c01f000, 0x4933c857, 0x59300a03,
+ 0x9004058e, 0x05000003, 0x90040590, 0x05020019,
+ 0x0501f975, 0x05edfce1, 0x59300203, 0x90000d89,
+ 0x0500000b, 0x48026429, 0x4a026403, 0x00000085,
+ 0x59300416, 0x8400055a, 0x8400055e, 0x48026416,
+ 0x64266203, 0x64166407, 0x641a6229, 0x5932680a,
+ 0x59340200, 0x8c00050e, 0x05020003, 0x59a80060,
+ 0x48026006, 0x42000800, 0x80000040, 0x0005fee2,
+ 0x1c01f000, 0x4933c857, 0x4c040000, 0x59300403,
+ 0x90000d9e, 0x05020012, 0x800000d0, 0x59300a18,
+ 0x82040d00, 0x000000ff, 0x80040540, 0x4803c857,
+ 0x48026418, 0x4a026403, 0x00000085, 0x64266203,
+ 0x64166407, 0x64126229, 0x59a80060, 0x48026006,
+ 0x42000800, 0x80000040, 0x0005fee2, 0x5c000800,
+ 0x1c01f000, 0x4933c857, 0x40000000, 0x40000000,
+ 0x1c01f000, 0x59300416, 0x8c00050c, 0x0502000a,
+ 0x4933c857, 0x4803c857, 0x8c000518, 0x05000006,
+ 0x8c000512, 0x05f203d5, 0x0501f937, 0x0005fe84,
+ 0x0009f810, 0x1c01f000, 0x591c0407, 0x4803c857,
+ 0x90000c89, 0x0502100b, 0x0c01f001, 0x0010d0ec,
+ 0x0010d0ec, 0x0010d0ec, 0x0010d0ee, 0x0010d0ec,
+ 0x0010d0ee, 0x0010d0ee, 0x0010d0ec, 0x0010d0ee,
+ 0x80000580, 0x1c01f000, 0x90000541, 0x1c01f000,
+ 0x591c0407, 0x9000051f, 0x90000586, 0x0500000a,
+ 0x4803c857, 0x64ee6403, 0x6426641c, 0x4a02621c,
+ 0x00002a00, 0x64066203, 0x42000800, 0x80000040,
+ 0x0005f6e2, 0x4803c856, 0x4c040000, 0x4c140000,
+ 0x4d300000, 0x411e6000, 0x0501f90f, 0x497a6205,
+ 0x59300416, 0x4803c857, 0x82000500, 0xffffadff,
+ 0x48026416, 0x497a6405, 0x5c026000, 0x059df8ae,
+ 0x05980d09, 0x5c002800, 0x5c000800, 0x05011000,
+ 0x912c0408, 0x4803c840, 0x6443c842, 0x40000000,
+ 0x05fd17ff, 0x4a025808, 0x0000010d, 0x497a5800,
+ 0x65165a0c, 0x491e580d, 0x59300402, 0x48025c0b,
+ 0x5930041b, 0x48025c0f, 0x591c0416, 0x84000556,
+ 0x48023c16, 0x591c180a, 0x580c0403, 0x48025a0a,
+ 0x580c0002, 0x82000500, 0x00ffffff, 0x48025816,
+ 0x59cc0404, 0x48025c17, 0x497a5a0b, 0x4816580e,
+ 0x48065a0f, 0x580c0013, 0x82000500, 0xff000000,
+ 0x80000120, 0x48025c14, 0x0501fb04, 0x493a6403,
+ 0x4d400000, 0x61168000, 0x591c0202, 0x4c000000,
+ 0x4d300000, 0x411e6000, 0x05fdfae4, 0x5c026000,
+ 0x5c000000, 0x48023a02, 0x5c028000, 0x491e602a,
+ 0x4932381e, 0x641a3c07, 0x641e3a03, 0x497a3806,
+ 0x497a3a05, 0x1c01f000, 0x4933c857, 0x91380593,
+ 0x0502000a, 0x59300403, 0x4803c857, 0x82000d80,
+ 0x00000085, 0x05000026, 0x82000d80, 0x0000008b,
+ 0x05000023, 0x0599fcc4, 0x913805a7, 0x0502000a,
+ 0x05d9ffd3, 0x4d2c0000, 0x4d400000, 0x59325809,
+ 0x60128000, 0x05fdfd72, 0x5c028000, 0x5c025800,
+ 0x1c01f000, 0x91380594, 0x05fc07f6, 0xb13805a1,
+ 0x05000009, 0xb13805a0, 0x05000007, 0x83380580,
+ 0x00000089, 0x05000004, 0x83380580, 0x0000008a,
+ 0x05e207fe, 0x05ddfc0e, 0x05e207fc, 0x59300a03,
+ 0x9004058e, 0x05fc069b, 0x9004058a, 0x0500000c,
+ 0x9004058c, 0x0500000a, 0x0599fca3, 0x05f1fcc3,
+ 0x05000005, 0x643a6203, 0x59a80061, 0x48026205,
+ 0x1c01f000, 0x642a6203, 0x1c01f000, 0x83380480,
+ 0x00000093, 0x0502100b, 0x83380480, 0x00000085,
+ 0x05001008, 0x83380580, 0x00000089, 0x05000008,
+ 0x83380580, 0x0000008a, 0x05000031, 0x0599fc8e,
+ 0x493bc857, 0x4933c857, 0x05e1f7dc, 0x4933c857,
+ 0x4c340000, 0x05f1fca9, 0x0500000b, 0x59300416,
+ 0x8c00051a, 0x05000008, 0x641a6407, 0x59300429,
+ 0x90000d8e, 0x05020002, 0x60080000, 0x48026203,
+ 0x0501f01d, 0x59300c16, 0x4c040000, 0x41306800,
+ 0x05e1ff7c, 0x5c000800, 0x05000015, 0x48066416,
+ 0x64066203, 0x647a6403, 0x59cc0c07, 0x4806641b,
+ 0x59cc0a07, 0x4806621b, 0x5834080a, 0x4806600a,
+ 0x5834081d, 0x4806601d, 0x05f1fc8c, 0x05000004,
+ 0x59300416, 0x84000550, 0x48026416, 0x64126407,
+ 0x42000800, 0x80000040, 0x0005fee2, 0x40366000,
+ 0x0009f810, 0x5c006800, 0x1c01f000, 0x4933c857,
+ 0x59300416, 0x8c00051a, 0x0502001a, 0x59300418,
+ 0x82000d00, 0x0000ff00, 0x900409c0, 0x9004059e,
+ 0x05020014, 0x4c340000, 0x41306800, 0x05e1ff55,
+ 0x0500000e, 0x493a6403, 0x64066203, 0x64126407,
+ 0x5834041b, 0x4802641b, 0x5834021b, 0x4802621b,
0x5834080a, 0x4806600a, 0x5834081d, 0x4806601d,
- 0x05f1fe3e, 0x05000004, 0x59300416, 0x84000550,
- 0x48026416, 0x64126407, 0x42000800, 0x80000040,
- 0x0005feab, 0x40366000, 0x0005ffdc, 0x5c006800,
- 0x1c01f000, 0x4933c857, 0x59300416, 0x8c00051a,
- 0x0502001a, 0x59300418, 0x82000d00, 0x0000ff00,
- 0x900409c0, 0x9004059e, 0x05020014, 0x4c340000,
- 0x41306800, 0x05e5f98a, 0x0500000e, 0x493a6403,
- 0x64066203, 0x64126407, 0x5834041b, 0x4802641b,
- 0x5834021b, 0x4802621b, 0x5834080a, 0x4806600a,
- 0x5834081d, 0x4806601d, 0x05f1fe09, 0x05d9fdea,
- 0x40366000, 0x5c006800, 0x0005f7dc, 0x5930080a,
- 0x58040200, 0x8c00051a, 0x059e0c13, 0x1c01f000,
- 0x05c5fe2e, 0x05000019, 0x640a6203, 0x59300416,
- 0x84000558, 0x48026416, 0x8c000512, 0x05000004,
- 0x59a8005e, 0x48026205, 0x0501f006, 0x59a8085e,
- 0x59a8005c, 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, 0x0005fe4e, 0x0501f002, 0x4933c857,
- 0x5c025800, 0x492e6009, 0x0005fe4e, 0x0005f7dc,
- 0x492fc857, 0x641a5a0a, 0x0001f382, 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, 0x059dfaf8, 0x4c340000,
- 0x0501f81a, 0x0502000f, 0x90006c11, 0x50340000,
- 0x80000540, 0x05000009, 0x81300580, 0x05000004,
- 0x50340000, 0x90006c00, 0x05fdf7f9, 0x59300000,
- 0x44006800, 0x497a6000, 0x5c006800, 0x1c01f000,
- 0x59300c07, 0x90040585, 0x05fc07fc, 0x90040591,
- 0x05fc07fa, 0x90040586, 0x05fc07f8, 0x90040581,
- 0x05fc07f6, 0x059dfadd, 0x4c5c0000, 0x4c600000,
- 0x5930000a, 0x800001c0, 0x0500000c, 0x5800bc03,
- 0x825cbc00, 0x0010d400, 0x505cb800, 0x805cb9c0,
- 0x05000006, 0x805cc580, 0x05020004, 0x5c00c000,
- 0x5c00b800, 0x1c01f000, 0x4933c857, 0x4803c857,
- 0x485fc857, 0x905cbd41, 0x05fdf7f9, 0x4933c857,
- 0x4c080000, 0x4c0c0000, 0x4c580000, 0x59a81046,
- 0x59cc1807, 0x820c1d00, 0x00ffffff, 0x800c0110,
- 0x80083580, 0x0502000c, 0x91cc1408, 0x6008b000,
- 0x5930000a, 0x90001c06, 0x05e9fd25, 0x05020006,
- 0x91cc140a, 0x6008b000, 0x5930000a, 0x90001c08,
- 0x05e9fd1f, 0x5c00b000, 0x5c001800, 0x5c001000,
- 0x1c01f000, 0x4933c856, 0x493a6403, 0x05c1feaa,
- 0x05adf195, 0x4933c857, 0x492fc857, 0x5930080a,
- 0x58040200, 0x8c00051e, 0x05000004, 0x592c020c,
- 0x84000558, 0x48025a0c, 0x1c01f000, 0x59e0180f,
- 0x599c0413, 0x800c1000, 0x80080580, 0x05020002,
- 0x41781000, 0x59e00010, 0x59e00810, 0x80040d80,
- 0x05fe07fd, 0x80080580, 0x05000018, 0x4c080000,
- 0x80102040, 0x0500000e, 0x599c0413, 0x80081000,
+ 0x05f1fc57, 0x05d9fb59, 0x40366000, 0x5c006800,
+ 0x0009f010, 0x5930080a, 0x58040200, 0x8c00051a,
+ 0x059a0cf8, 0x1c01f000, 0x05c5f956, 0x05000019,
+ 0x640a6203, 0x59300416, 0x84000558, 0x48026416,
+ 0x8c000512, 0x05000004, 0x59a80061, 0x48026205,
+ 0x0501f006, 0x59a80861, 0x59a8005f, 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, 0x0005fe84,
+ 0x0501f002, 0x4933c857, 0x5c025800, 0x492e6009,
+ 0x0005fe84, 0x0009f010, 0x492fc857, 0x641a5a0a,
+ 0x0001f3a8, 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,
+ 0x0599fbe9, 0x4c340000, 0x0501f81a, 0x0502000f,
+ 0x90006c11, 0x50340000, 0x80000540, 0x05000009,
+ 0x81300580, 0x05000004, 0x50340000, 0x90006c00,
+ 0x05fdf7f9, 0x59300000, 0x44006800, 0x497a6000,
+ 0x5c006800, 0x1c01f000, 0x59300c07, 0x90040585,
+ 0x05fc07fc, 0x90040591, 0x05fc07fa, 0x90040586,
+ 0x05fc07f8, 0x90040581, 0x05fc07f6, 0x0599fbce,
+ 0x4c5c0000, 0x4c600000, 0x5930000a, 0x800001c0,
+ 0x0500000c, 0x5800bc03, 0x825cbc00, 0x0010db80,
+ 0x505cb800, 0x805cb9c0, 0x05000006, 0x805cc580,
+ 0x05020004, 0x5c00c000, 0x5c00b800, 0x1c01f000,
+ 0x4933c857, 0x4803c857, 0x485fc857, 0x905cbd41,
+ 0x05fdf7f9, 0x4933c857, 0x4c080000, 0x4c0c0000,
+ 0x4c580000, 0x59a81049, 0x59cc1807, 0x820c1d00,
+ 0x00ffffff, 0x800c0110, 0x80083580, 0x0502000c,
+ 0x91cc1408, 0x6008b000, 0x5930000a, 0x90001c06,
+ 0x05e9fb20, 0x05020006, 0x91cc140a, 0x6008b000,
+ 0x5930000a, 0x90001c08, 0x05e9fb1a, 0x5c00b000,
+ 0x5c001800, 0x5c001000, 0x1c01f000, 0x4933c856,
+ 0x493a6403, 0x05c1f957, 0x05a9f2e3, 0x4933c857,
+ 0x492fc857, 0x5930080a, 0x58040200, 0x8c00051e,
+ 0x05000004, 0x592c020c, 0x84000558, 0x48025a0c,
+ 0x1c01f000, 0x59e0180f, 0x599c0413, 0x800c1000,
0x80080580, 0x05020002, 0x41781000, 0x59e00010,
0x59e00810, 0x80040d80, 0x05fe07fd, 0x80080580,
- 0x05fe07f4, 0x5c001000, 0x0501f008, 0x599c0814,
- 0x599c1015, 0x800c00cc, 0x80040c00, 0x90081440,
- 0x5c001800, 0x90000541, 0x4803c857, 0x1c01f000,
- 0x59300203, 0x4933c857, 0x4937c857, 0x493bc857,
- 0x4803c857, 0x90003491, 0x059e1a74, 0x0c01f001,
- 0x0010cb79, 0x0010cc6e, 0x0010cb79, 0x0010cb79,
- 0x0010cb79, 0x0010cb79, 0x0010cb79, 0x0010cbe2,
- 0x0010cb7a, 0x0010cb79, 0x0010cb79, 0x0010cb79,
- 0x0010cb79, 0x0010cb79, 0x0010cccb, 0x0010cb79,
- 0x0010cb79, 0x059dfa61, 0xb138058c, 0x059e0a5f,
- 0x05c5fd4e, 0x05020020, 0x59a80a49, 0x5932481d,
- 0x59240200, 0x82000500, 0x000000e0, 0x82000580,
- 0x00000080, 0x05000018, 0x8c040512, 0x05000028,
- 0x59cc0806, 0x82040d00, 0xff000000, 0x82040580,
- 0x03000000, 0x0500001c, 0x82040580, 0x50000000,
- 0x05000004, 0x82040580, 0x52000000, 0x000607dc,
- 0x83340580, 0x00110210, 0x05000005, 0x4d3c0000,
- 0x417a7800, 0x05a9ff93, 0x5c027800, 0x64066403,
- 0x0501f010, 0x59cc0806, 0x82040d00, 0xff000000,
- 0x82040580, 0x03000000, 0x05000007, 0x82040580,
- 0x50000000, 0x05000004, 0x82040580, 0x52000000,
- 0x000607dc, 0x64266403, 0x6426641c, 0x6402621c,
- 0x64126407, 0x64066203, 0x05d9f4c3, 0x59240400,
- 0x8c00050a, 0x05020020, 0x0501fd7e, 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,
- 0x05fdfbcf, 0x0501f913, 0x059c0a08, 0x61442000,
- 0x05e5f959, 0x59cc0000, 0x82000500, 0x00ffffff,
- 0x82000580, 0x00ffffff, 0x05000004, 0x641e6203,
- 0x493a6403, 0x1c01f000, 0x59325819, 0x812e59c0,
- 0x059e0dbb, 0x0005f7dc, 0x4d2c0000, 0x4c580000,
- 0x4c500000, 0x4c540000, 0x4dcc0000, 0x41385000,
- 0xb13805a0, 0x0500007f, 0xb13805a1, 0x0500007d,
- 0xb1380594, 0x059e09ed, 0x59325809, 0x592c0c0f,
- 0x82040d00, 0x0000e000, 0x82040580, 0x00002000,
- 0x05020066, 0x59300819, 0x800409c0, 0x05000015,
- 0x58041408, 0x42039800, 0x00111772, 0x9008049c,
- 0x05001002, 0x606c1000, 0x41cca800, 0x9004a409,
- 0x90080490, 0x05021004, 0x4008b000, 0x0501fca4,
- 0x0501f008, 0x80001000, 0x603cb000, 0x0501fca0,
- 0x58040801, 0x800409c0, 0x05fe07f5, 0x059df9cf,
- 0x83340580, 0x00110210, 0x0500004c, 0x59344c00,
+ 0x05000018, 0x4c080000, 0x80102040, 0x0500000e,
+ 0x599c0413, 0x80081000, 0x80080580, 0x05020002,
+ 0x41781000, 0x59e00010, 0x59e00810, 0x80040d80,
+ 0x05fe07fd, 0x80080580, 0x05fe07f4, 0x5c001000,
+ 0x0501f008, 0x599c0814, 0x599c1015, 0x800c00cc,
+ 0x80040c00, 0x90081440, 0x5c001800, 0x90000541,
+ 0x4803c857, 0x1c01f000, 0x59300203, 0x4933c857,
+ 0x4937c857, 0x493bc857, 0x4803c857, 0x90003491,
+ 0x059a1b65, 0x0c01f001, 0x0010d2c3, 0x0010d3cb,
+ 0x0010d2c3, 0x0010d2c3, 0x0010d2c3, 0x0010d2c3,
+ 0x0010d2c3, 0x0010d32d, 0x0010d2c4, 0x0010d2c3,
+ 0x0010d2c3, 0x0010d2c3, 0x0010d2c3, 0x0010d2c3,
+ 0x0010d428, 0x0010d2c3, 0x0010d2c3, 0x0599fb52,
+ 0xb138058c, 0x059a0b50, 0x05c5f876, 0x05020020,
+ 0x59a80a4c, 0x5932481d, 0x59240200, 0x82000500,
+ 0x000000e0, 0x82000580, 0x00000080, 0x05000018,
+ 0x8c040512, 0x05000028, 0x59cc0806, 0x82040d00,
+ 0xff000000, 0x82040580, 0x03000000, 0x0500001c,
+ 0x82040580, 0x50000000, 0x05000004, 0x82040580,
+ 0x52000000, 0x000a0010, 0x83340580, 0x001141b4,
+ 0x05000005, 0x4d3c0000, 0x417a7800, 0x05a9f8e0,
+ 0x5c027800, 0x64066403, 0x0501f010, 0x59cc0806,
+ 0x82040d00, 0xff000000, 0x82040580, 0x03000000,
+ 0x05000007, 0x82040580, 0x50000000, 0x05000004,
+ 0x82040580, 0x52000000, 0x000a0010, 0x64266403,
+ 0x6426641c, 0x6402621c, 0x64126407, 0x64066203,
+ 0x05d9f232, 0x59240400, 0x8c00050a, 0x05020020,
+ 0x0501fdaf, 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, 0x05fdfbcc, 0x0501f92a,
+ 0x05980af9, 0x61442000, 0x05e1ff41, 0x0502000a,
+ 0x59cc0000, 0x82000500, 0x00ffffff, 0x82000580,
+ 0x00ffffff, 0x00080010, 0x641e6203, 0x493a6403,
+ 0x1c01f000, 0x42000000, 0x001123ec, 0x0501fc2c,
+ 0x0009f010, 0x4d2c0000, 0x4c580000, 0x4c500000,
+ 0x4c540000, 0x4dcc0000, 0x41385000, 0xb13805a0,
+ 0x05000091, 0xb13805a1, 0x0500008f, 0xb1380594,
+ 0x059a0add, 0x59325809, 0x592c0c0f, 0x82040d00,
+ 0x0000e000, 0x82040580, 0x00002000, 0x0502007d,
+ 0x83340580, 0x001141b4, 0x0500007a, 0x59344c00,
0x592c0c0d, 0x4807c857, 0x4827c857, 0x82040d00,
0x000000ff, 0x90040583, 0x0500001d, 0x90040585,
- 0x05000021, 0x900405a0, 0x0500002c, 0xb0040592,
- 0x05000036, 0xb0040590, 0x05000036, 0x900405a1,
- 0x05000003, 0x900405a4, 0x05020038, 0x82240500,
+ 0x05000042, 0x900405a0, 0x0500004b, 0xb0040592,
+ 0x05000064, 0xb0040590, 0x05000064, 0x900405a1,
+ 0x05000003, 0x900405a4, 0x05020066, 0x82240500,
0x0000ff00, 0x82000580, 0x00000700, 0x05000005,
- 0x60240800, 0x05c5f8c4, 0x60305000, 0x0501f02f,
+ 0x60240800, 0x05c1fba3, 0x60305000, 0x0501f05d,
0x64c65a0a, 0x64265811, 0x59340400, 0x48025812,
- 0x0001fb82, 0x05e1ff9f, 0x0501f036, 0x41780800,
- 0x05c5f9a2, 0x600c0800, 0x05c5f8b7, 0x60205000,
- 0x0501f022, 0x59cc3800, 0x821c3d00, 0x00ffffff,
- 0x4c1c0000, 0x05adf9eb, 0x5c003800, 0x0502001b,
- 0x59cc0007, 0x05d5f947, 0x05020018, 0x4a026c00,
- 0x00000707, 0x0501f015, 0x82240500, 0x0000ff00,
- 0x82000580, 0x00000700, 0x05fc07e2, 0x82240500,
- 0x000000ff, 0x90000589, 0x05fc07de, 0x05c5f9fc,
- 0x60285000, 0x0501f009, 0x60385000, 0x0501f002,
- 0x60405000, 0x82240500, 0x0000ff00, 0x82000580,
- 0x00000700, 0x05fc07d3, 0x482a6403, 0x64066203,
- 0x592c0011, 0x48026013, 0x497a6015, 0x59a8005d,
- 0x48026006, 0x417a7800, 0x05d9fc0f, 0x59325819,
- 0x812e59c0, 0x05000003, 0x059dfd35, 0x497a6019,
- 0x5c039800, 0x5c00a800, 0x5c00a000, 0x5c00b000,
- 0x5c025800, 0x1c01f000, 0x4d2c0000, 0x59325809,
- 0x91380593, 0x05020038, 0x492fc857, 0x59300c03,
- 0xb0040594, 0x0500002a, 0x90040590, 0x05000025,
- 0x9004058e, 0x05000023, 0x59341400, 0x82081d00,
- 0x0000ff00, 0x82081500, 0x000000ff, 0x90040588,
- 0x0500000d, 0x9004058c, 0x05000014, 0x9004058a,
- 0x059e0956, 0x820c0580, 0x00000700, 0x05000018,
- 0x90080589, 0x05000016, 0x60180800, 0x05c5f862,
- 0x0501f013, 0x592c0c0f, 0x8c040514, 0x05000005,
- 0x90080583, 0x0502000e, 0x05c5fa00, 0x05fdf7f7,
- 0x600c0000, 0x0501f002, 0x60240000, 0x80080580,
- 0x05020007, 0x60100800, 0x05c5f853, 0x0501f004,
- 0x59340200, 0x8400051a, 0x48026a00, 0x05f1fbff,
- 0x05000005, 0x59a8005e, 0x48026006, 0x643a6203,
- 0x0501f025, 0x64025a0a, 0x0001fb82, 0x0005ffdc,
- 0x0501f021, 0xb13805a1, 0x05000003, 0xb13805a0,
- 0x05020008, 0x5c025800, 0x05ddfc0b, 0x05e20785,
- 0x59300203, 0x9000058e, 0x05000019, 0x059df927,
- 0x913805a7, 0x05000009, 0x91380594, 0x059e0923,
- 0x492fc857, 0x05d9ffb0, 0x60c68000, 0x60100800,
- 0x61fc1001, 0x0501f006, 0x492fc857, 0x05d9ffaa,
- 0x60c68000, 0x60100800, 0x60401000, 0x49425a0a,
- 0x48065811, 0x480a5812, 0x0001fb82, 0x05c5ffa9,
- 0x05e1ff08, 0x5c025800, 0x1c01f000, 0x4933c857,
- 0xb13805a1, 0x05000003, 0xb13805a0, 0x05020009,
- 0x4d2c0000, 0x59325809, 0x812e59c0, 0x05000003,
- 0x64025a0a, 0x0001fb82, 0x0005ffdc, 0x5c025800,
- 0x1c01f000, 0x492fc857, 0x42007000, 0x000211a7,
- 0x58380806, 0x492c7006, 0x800409c0, 0x05020003,
- 0x492c7007, 0x0001f030, 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, 0x059dfc85, 0x05000023, 0x492fc857,
- 0x492e6019, 0x59a8b0b6, 0x9058b41b, 0x8258b500,
- 0xfffffffc, 0x8058b104, 0x485a5c08, 0x412c7800,
- 0x41cca000, 0x90580490, 0x05021004, 0x912cac09,
- 0x0501fb9b, 0x0501f010, 0x40580800, 0x603cb000,
- 0x912cac09, 0x0501fb96, 0x9004b48f, 0x059dfc6f,
- 0x05000004, 0x492c7801, 0x412c7800, 0x05fdf7f2,
- 0x59325819, 0x059dfc82, 0x497a6019, 0x80000580,
- 0x0501f005, 0x59340200, 0x84000554, 0x48026a00,
- 0x90000541, 0x5c00a800, 0x5c00a000, 0x5c00b000,
- 0x5c025800, 0x1c01f000, 0x4933c857, 0x492fc857,
- 0x4d2c0000, 0x59300a03, 0x90040587, 0x05020006,
- 0x59325819, 0x812e59c0, 0x059e0c6d, 0x0005ffdc,
- 0x0501f02d, 0x9004058e, 0x05000023, 0x90040581,
- 0x059e08a6, 0x05d9ffde, 0x4df00000, 0x598c000b,
+ 0x0001fba8, 0x05e1fd80, 0x0501f05f, 0x05011000,
+ 0x4a03c840, 0x00115716, 0x646fc842, 0x42039800,
+ 0x00115716, 0x05011000, 0x5930081a, 0x5930120c,
+ 0x59301c0c, 0x5930200d, 0x48079801, 0x480b9a07,
+ 0x480f9a09, 0x48139808, 0x5930000e, 0x5930080f,
+ 0x59301010, 0x59301811, 0x59302012, 0x4803980a,
+ 0x4807980b, 0x480b980c, 0x480f980d, 0x4813980e,
+ 0x59300013, 0x59300814, 0x59301015, 0x59301a16,
+ 0x48039813, 0x48079814, 0x480b9817, 0x480f9a18,
+ 0x41780800, 0x05c1fcb3, 0x600c0800, 0x05c1fb75,
+ 0x60205000, 0x0501f02f, 0x59303819, 0x4c1c0000,
+ 0x05a9fb34, 0x5c003800, 0x0502002a, 0x5930000c,
+ 0x05d1fde4, 0x05020027, 0x4a026c00, 0x00000707,
+ 0x0501f024, 0x82240500, 0x0000ff00, 0x82000580,
+ 0x00000700, 0x05fc07c3, 0x82240500, 0x000000ff,
+ 0x90000589, 0x05fc07bf, 0x05011000, 0x4a03c840,
+ 0x00115716, 0x642fc842, 0x42039800, 0x00115716,
+ 0x05011000, 0x5930081a, 0x5930100c, 0x59301a0d,
+ 0x5930240d, 0x48079801, 0x480b9806, 0x480f9a07,
+ 0x48139a0a, 0x05c1fd00, 0x60285000, 0x0501f009,
+ 0x60385000, 0x0501f002, 0x60405000, 0x82240500,
+ 0x0000ff00, 0x82000580, 0x00000700, 0x05fc07a5,
+ 0x482a6403, 0x64066203, 0x592c0011, 0x48026013,
+ 0x497a6015, 0x59a80060, 0x48026006, 0x417a7800,
+ 0x05d9f966, 0x5c039800, 0x5c00a800, 0x5c00a000,
+ 0x5c00b000, 0x5c025800, 0x1c01f000, 0x4d2c0000,
+ 0x59325809, 0x91380593, 0x05020038, 0x492fc857,
+ 0x59300c03, 0xb0040594, 0x0500002a, 0x90040590,
+ 0x05000025, 0x9004058e, 0x05000023, 0x59341400,
+ 0x82081d00, 0x0000ff00, 0x82081500, 0x000000ff,
+ 0x90040588, 0x0500000d, 0x9004058c, 0x05000014,
+ 0x9004058a, 0x059a0a34, 0x820c0580, 0x00000700,
+ 0x05000018, 0x90080589, 0x05000016, 0x60180800,
+ 0x05c1fb18, 0x0501f013, 0x592c0c0f, 0x8c040514,
+ 0x05000005, 0x90080583, 0x0502000e, 0x05c1fd09,
+ 0x05fdf7f7, 0x600c0000, 0x0501f002, 0x60240000,
+ 0x80080580, 0x05020007, 0x60100800, 0x05c1fb09,
+ 0x0501f004, 0x59340200, 0x8400051a, 0x48026a00,
+ 0x05f1fa3a, 0x05000005, 0x59a80061, 0x48026006,
+ 0x643a6203, 0x0501f025, 0x64025a0a, 0x0001fba8,
+ 0x0009f810, 0x0501f021, 0xb13805a1, 0x05000003,
+ 0xb13805a0, 0x05020008, 0x5c025800, 0x05ddf96c,
+ 0x05e2055a, 0x59300203, 0x9000058e, 0x05000019,
+ 0x0599fa05, 0x913805a7, 0x05000009, 0x91380594,
+ 0x059a0a01, 0x492fc857, 0x05d9fd11, 0x60c68000,
+ 0x60100800, 0x61fc1001, 0x0501f006, 0x492fc857,
+ 0x05d9fd0b, 0x60c68000, 0x60100800, 0x60401000,
+ 0x49425a0a, 0x48065811, 0x480a5812, 0x0001fba8,
+ 0x05c5fb21, 0x05e1fcc0, 0x5c025800, 0x1c01f000,
+ 0x4933c857, 0xb13805a1, 0x05000003, 0xb13805a0,
+ 0x05020009, 0x4d2c0000, 0x59325809, 0x812e59c0,
+ 0x05000003, 0x64025a0a, 0x0001fba8, 0x0009f810,
+ 0x5c025800, 0x1c01f000, 0x492fc857, 0x0501fa52,
+ 0x0502000c, 0x42007000, 0x000211e8, 0x58380806,
+ 0x492c7006, 0x800409c0, 0x05020004, 0x492c7007,
+ 0x0001f838, 0x0501f002, 0x492c0800, 0x80000580,
+ 0x1c01f000, 0x4933c857, 0x4937c857, 0x59cc0000,
+ 0x82000500, 0x00ffffff, 0x48026019, 0x59cc0001,
+ 0x82000500, 0x00ffffff, 0x4802601a, 0x59cc0806,
+ 0x4807c857, 0x82040d00, 0xff000000, 0x82040580,
+ 0x03000000, 0x05000014, 0x82040580, 0x05000000,
+ 0x0500002a, 0x82040580, 0x21000000, 0x05000029,
+ 0x82040580, 0x24000000, 0x05000026, 0x82040580,
+ 0x20000000, 0x05020027, 0x59cc0006, 0x59cc0a07,
+ 0x59cc120a, 0x4802600c, 0x4806620d, 0x480a640d,
+ 0x0501f01c, 0x59cc0207, 0x59cc0a09, 0x59cc1008,
+ 0x4802620c, 0x4806640c, 0x480a600d, 0x59cc000a,
+ 0x59cc080b, 0x59cc100c, 0x4802600e, 0x4806600f,
+ 0x480a6010, 0x59cc000d, 0x59cc080e, 0x59cc1013,
+ 0x48026011, 0x48066012, 0x480a6013, 0x59cc0014,
+ 0x59cc0817, 0x59cc1218, 0x48026014, 0x48066015,
+ 0x480a6216, 0x0501f003, 0x59cc0007, 0x4802600c,
+ 0x59340200, 0x84000554, 0x48026a00, 0x90000541,
+ 0x1c01f000, 0x4933c857, 0x492fc857, 0x4d2c0000,
+ 0x59300a03, 0x90040587, 0x05020003, 0x0009f810,
+ 0x0501f02a, 0x9004058e, 0x05000023, 0x90040581,
+ 0x059a0981, 0x05d9fd3c, 0x4df00000, 0x598c000b,
0x81300580, 0x05020010, 0x59300004, 0x8c000520,
0x05000004, 0x84000520, 0x48026004, 0x0501f011,
- 0x42001000, 0x0010e387, 0x50081000, 0x58080002,
- 0x82000580, 0x00000100, 0x05020009, 0x05ddfac9,
- 0x05020018, 0x59300004, 0x8c000520, 0x05000005,
- 0x84000520, 0x48026004, 0x0501f003, 0x05a5f9ba,
- 0x05d9fc66, 0x5c03e000, 0x05d80fb2, 0x05edff76,
- 0x059c0886, 0x59325809, 0x64165a0a, 0x0001fb82,
- 0x05c5ff18, 0x59325819, 0x812e59c0, 0x059e0c40,
- 0x05e1fe74, 0x80000580, 0x5c025800, 0x1c01f000,
- 0x5c03e000, 0x05d80fa3, 0x59300c07, 0x90040591,
- 0x05fc07c5, 0x05fdf7f9, 0x4c040000, 0x59340200,
- 0x4803c857, 0x8c00051c, 0x05000009, 0x59cc0805,
- 0x591c001b, 0x4803c857, 0x80040580, 0x05000004,
- 0x80000580, 0x4803c856, 0x0501f002, 0x90000541,
- 0x5c000800, 0x1c01f000, 0x4c000000, 0x4c0c0000,
- 0x4c100000, 0x61fc19ff, 0x60102000, 0x0501f010,
+ 0x42001000, 0x00112322, 0x50081000, 0x58080002,
+ 0x82000580, 0x00000100, 0x05020009, 0x05ddf827,
+ 0x05020015, 0x59300004, 0x8c000520, 0x05000005,
+ 0x84000520, 0x48026004, 0x0501f003, 0x05a1facb,
+ 0x05d9f9bf, 0x5c03e000, 0x05d80d10, 0x05edfd9f,
+ 0x05980961, 0x59325809, 0x64165a0a, 0x0001fba8,
+ 0x05c5fa8d, 0x05e1fc2c, 0x80000580, 0x5c025800,
+ 0x1c01f000, 0x5c03e000, 0x05d80d04, 0x59300c07,
+ 0x90040591, 0x05fc07cb, 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,
- 0x58101c03, 0x60102000, 0x0501f009, 0x4c000000,
- 0x4c0c0000, 0x4c100000, 0x5930200a, 0x801021c0,
- 0x059c0852, 0x58101c03, 0x601c2000, 0x480fc857,
- 0x4813c857, 0x481bc857, 0x05adf889, 0x05bdfab9,
- 0x5c002000, 0x5c001800, 0x5c000000, 0x1c01f000,
- 0x8d0c0520, 0x05000009, 0x4d400000, 0x4d200000,
- 0x61fe4001, 0x850e1d44, 0x60aa8000, 0x05fdfa0e,
- 0x5c024000, 0x5c028000, 0x1c01f000, 0x59a80249,
- 0x8c000508, 0x05000005, 0x599c0017, 0x8c00050a,
- 0x05020002, 0x1c01f000, 0x90000541, 0x1c01f000,
- 0x5930042c, 0x84000540, 0x4802642c, 0x1c01f000,
- 0x4c640000, 0x05f1fb95, 0x59300203, 0x90000588,
- 0x05020010, 0x60c8c800, 0x42000000, 0x20000000,
- 0x41300800, 0x059dff7d, 0x0500000a, 0x59300203,
- 0x90000588, 0x05020007, 0x60780000, 0x80000040,
- 0x05fe07ff, 0x8064c840, 0x05fe07f4, 0x059df81b,
- 0x05f1fb8d, 0x5c00c800, 0x1c01f000, 0x059dfbbf,
- 0x059c0816, 0x59340403, 0x49265805, 0x49365806,
- 0x65565a08, 0x48025c0a, 0x4a025c0b, 0x00001000,
- 0x05f1fad2, 0x05000003, 0x4a025c0b, 0x00003000,
- 0x59340802, 0x82040d00, 0x00ffffff, 0x59300403,
- 0x82000580, 0x00000086, 0x42000000, 0x85000000,
- 0x05020003, 0x42000000, 0x84000000, 0x80040540,
- 0x4802580d, 0x59240005, 0x4802580e, 0x42000000,
- 0x00990000, 0x59300c07, 0x90040d85, 0x05000002,
- 0x8400052e, 0x59300c16, 0x8c04051a, 0x05000002,
- 0x84000528, 0x4802580f, 0x497a5810, 0x59cc0004,
- 0x48025811, 0x497a5812, 0x42000800, 0x00030300,
- 0x59300403, 0x82000580, 0x00000086, 0x05020006,
- 0x59cc0004, 0x48025814, 0x4a025815, 0x0000ffff,
- 0x41780800, 0x48065813, 0x1c01f000, 0x492fc857,
- 0x59a8289d, 0x801429c0, 0x05000055, 0x4c5c0000,
- 0x4c600000, 0x4c640000, 0x4d2c0000, 0x4d300000,
- 0x42026000, 0x00111a40, 0x592c0c0a, 0x592c100d,
- 0x82081500, 0x00ffffff, 0x592c180e, 0x592c2011,
- 0x40165800, 0x4014c000, 0x4014c800, 0x592c0208,
- 0x82000580, 0x00000155, 0x05020035, 0x592c040a,
- 0x80040580, 0x05020032, 0x592c000d, 0x82000500,
- 0x00ffffff, 0x80080580, 0x0502002d, 0x592c000e,
- 0x82000500, 0x00ffffff, 0x800c0580, 0x05020028,
- 0x592c0011, 0x80100580, 0x05020025, 0x4c040000,
- 0x4c080000, 0x4c0c0000, 0x4c100000, 0x40640000,
- 0x812c0580, 0x05020014, 0x59300203, 0x90000580,
- 0x0500000d, 0x59300009, 0x800001c0, 0x0500000a,
- 0x05d9fee3, 0x4df00000, 0x05d9fde4, 0x05d9fbad,
- 0x05020002, 0x64026203, 0x5c03e000, 0x05d80ecd,
- 0x497a6009, 0x592cc800, 0x4064c000, 0x4064b800,
- 0x0501f003, 0x592cb800, 0x485cc000, 0x64165a0a,
- 0x0001fb82, 0x405e5800, 0x5c002000, 0x5c001800,
- 0x5c001000, 0x5c000800, 0x0501f003, 0x412cc000,
- 0x592e5800, 0x812e59c0, 0x05fe07c5, 0x4867509d,
- 0x4863509e, 0x05e1fc7b, 0x5c026000, 0x5c025800,
- 0x5c00c800, 0x5c00c000, 0x5c00b800, 0x1c01f000,
- 0x602c0800, 0x0501f004, 0x60100800, 0x0501f002,
- 0x60040800, 0x4d2c0000, 0x59325809, 0x812e59c0,
- 0x0500000f, 0x592c0208, 0x82000500, 0x000000ff,
- 0x9000058e, 0x0502000a, 0x592c0000, 0x48026009,
- 0x497a5800, 0x48065a0c, 0x05cdfd9c, 0x05000003,
- 0x05fdfe71, 0x0501f002, 0x0001fb82, 0x5c025800,
- 0x1c01f000, 0x4d2c0000, 0x4803c856, 0x0501f83b,
- 0x05020038, 0x91380595, 0x05020027, 0x59a800b6,
- 0x90000594, 0x05020022, 0x59cc0c07, 0x82040580,
- 0x00000102, 0x05020029, 0x59cc0a07, 0x5930021b,
- 0x80040580, 0x05020027, 0x59cc0a0a, 0x90040594,
- 0x05020026, 0x916c0583, 0x05020002, 0x05adf86c,
- 0x05edfe45, 0x0500000d, 0x59325809, 0x59a80ccd,
- 0x48065a0b, 0x59a808cf, 0x4806580f, 0x64025a0a,
- 0x59a804cc, 0x90000503, 0x90000583, 0x05000002,
- 0x64ca5a0a, 0x0001fb82, 0x59a804cc, 0x8400050c,
- 0x480354cc, 0x4803c857, 0x0005ffdc, 0x5c025800,
- 0x1c01f000, 0x4803c856, 0x05edfe2f, 0x05fc07f7,
- 0x59325809, 0x64c65a0a, 0x64625810, 0x59cc0007,
- 0x48025811, 0x05fdf7f0, 0x4807c857, 0x05fdf7f4,
- 0x4807c857, 0x05fdf7f2, 0x4807c857, 0x05fdf7f0,
- 0x4803c857, 0x05fdf7ee, 0x59300403, 0xb0000d9a,
- 0x05000004, 0xb0000d9b, 0x05000002, 0xb0000d9c,
- 0x1c01f000, 0x4933c857, 0x4867c857, 0x485fc857,
- 0x4863c857, 0x4c500000, 0x4c540000, 0x4c580000,
- 0x4d3c0000, 0x59327c1b, 0x5924100b, 0x82081500,
- 0x00001fff, 0x405c0000, 0x80080580, 0x0500002b,
- 0x480bc857, 0x4d400000, 0x4d3c0000, 0x4c080000,
- 0x60aa8000, 0x600a7800, 0x41780800, 0x05adf87b,
- 0x5c001000, 0x5c027800, 0x5c028000, 0x59a802cc,
- 0x40000800, 0x82000540, 0x0f000000, 0x4802480b,
- 0x853e7d40, 0x4c580000, 0x0501fa22, 0x42001800,
- 0x0010e51f, 0x8058b040, 0x05000013, 0x580c200b,
- 0x82100500, 0x00001fff, 0x80080580, 0x0502000c,
- 0x580c0200, 0x82000500, 0x00008001, 0x82000580,
- 0x00008001, 0x05000006, 0x82102500, 0xffffe000,
- 0x80100541, 0x4800180b, 0x4803c857, 0x900c1c0d,
- 0x05fdf7ed, 0x5c00b000, 0x6000b001, 0x4060a000,
- 0x4200a800, 0x00110672, 0x50500000, 0x50540800,
- 0x80040580, 0x05000002, 0x853e7d42, 0x5450a800,
- 0x8050a000, 0x8054a800, 0x8058b040, 0x05fe07f7,
- 0x59a800cf, 0x80640580, 0x0500001f, 0x59a814cc,
- 0x480bc857, 0x90081503, 0x90081583, 0x05020009,
- 0x90640582, 0x05000018, 0x90640583, 0x05020011,
- 0x59a800ce, 0x90000582, 0x05000013, 0x0501f00d,
- 0x90640581, 0x05000010, 0x90640582, 0x05020005,
- 0x59a800ce, 0x90000582, 0x0502000b, 0x0501f008,
- 0x59a800ce, 0x90000581, 0x05000007, 0x0501f004,
- 0x4803c856, 0x853e7d46, 0x0501f003, 0x4803c856,
- 0x853e7d44, 0x4867c857, 0x493fc857, 0x486750cf,
- 0x493e641b, 0x5c027800, 0x5c00b000, 0x5c00a800,
- 0x5c00a000, 0x1c01f000, 0x4817c857, 0x4c000000,
- 0x4c040000, 0x8c14052a, 0x05000004, 0x59880123,
- 0x80000000, 0x48031123, 0x8c14052e, 0x05000004,
- 0x59880124, 0x80000000, 0x48031124, 0x8c14052c,
- 0x05000013, 0x40140000, 0x82000500, 0x00070000,
- 0x82000d80, 0x00030000, 0x0500000d, 0x82000d80,
- 0x00040000, 0x0500000a, 0x82000d80, 0x00050000,
- 0x05000007, 0x59880005, 0x80000000, 0x48031005,
- 0x59880125, 0x80000000, 0x48031125, 0x5c000800,
- 0x5c000000, 0x1c01f000, 0x4817c857, 0x4c000000,
- 0x4c040000, 0x8c14052a, 0x05000004, 0x59880126,
- 0x80000000, 0x48031126, 0x8c14052e, 0x05000004,
- 0x59880127, 0x80000000, 0x48031127, 0x8c14052c,
- 0x05000013, 0x40140000, 0x82000500, 0x00070000,
- 0x82000d80, 0x00030000, 0x0500000d, 0x82000d80,
- 0x00040000, 0x0500000a, 0x82000d80, 0x00050000,
+ 0x801021c0, 0x05980930, 0x58101c03, 0x601c2000,
+ 0x480fc857, 0x4813c857, 0x481bc857, 0x05a9f9c8,
+ 0x05b9fcf9, 0x5c002000, 0x5c001800, 0x5c000000,
+ 0x1c01f000, 0x8d0c0520, 0x05000009, 0x4d400000,
+ 0x4d200000, 0x61fe4001, 0x850e1d44, 0x60aa8000,
+ 0x05fdf9f8, 0x5c024000, 0x5c028000, 0x1c01f000,
+ 0x59a8024c, 0x8c000508, 0x05000005, 0x599c0017,
+ 0x8c00050a, 0x05020002, 0x1c01f000, 0x90000541,
+ 0x1c01f000, 0x5930042c, 0x84000540, 0x4802642c,
+ 0x1c01f000, 0x4c640000, 0x05f1f9d0, 0x4df00000,
+ 0x59300203, 0x90000588, 0x05020010, 0x60c8c800,
+ 0x42000000, 0x20000000, 0x41300800, 0x059df8bb,
+ 0x0500000a, 0x59300203, 0x90000588, 0x05020007,
+ 0x60780000, 0x80000040, 0x05fe07ff, 0x8064c840,
+ 0x05fe07f4, 0x0599f8f8, 0x5c03e000, 0x05f009ca,
+ 0x5c00c800, 0x1c01f000, 0x0599fc97, 0x059808f2,
+ 0x61fc01ff, 0x83340d80, 0x001141b4, 0x05000002,
+ 0x59340403, 0x49265805, 0x49365806, 0x65565a08,
+ 0x48025c0a, 0x4a025c0b, 0x00001000, 0x59a808d5,
+ 0x82040d00, 0x0000f000, 0x82040480, 0x00002000,
+ 0x05001003, 0x4a025c0b, 0x00003000, 0x59cc0801,
+ 0x82040d00, 0x00ffffff, 0x59300403, 0x82000580,
+ 0x00000086, 0x42000000, 0x85000000, 0x05020003,
+ 0x42000000, 0x84000000, 0x80040540, 0x4802580d,
+ 0x59240005, 0x4802580e, 0x42000000, 0x00990000,
+ 0x59300c07, 0x90040d85, 0x05000002, 0x8400052e,
+ 0x59300c16, 0x8c04051a, 0x05000002, 0x84000528,
+ 0x4802580f, 0x497a5810, 0x59cc0004, 0x48025811,
+ 0x497a5812, 0x42000800, 0x00030300, 0x59300403,
+ 0x82000580, 0x00000086, 0x05020006, 0x59cc0004,
+ 0x48025814, 0x4a025815, 0x0000ffff, 0x41780800,
+ 0x48065813, 0x1c01f000, 0x492fc857, 0x59a828a0,
+ 0x801429c0, 0x05000055, 0x4c5c0000, 0x4c600000,
+ 0x4c640000, 0x4d2c0000, 0x4d300000, 0x42026000,
+ 0x001159e4, 0x592c0c0a, 0x592c100d, 0x82081500,
+ 0x00ffffff, 0x592c180e, 0x592c2011, 0x40165800,
+ 0x4014c000, 0x4014c800, 0x592c0208, 0x82000580,
+ 0x00000155, 0x05020035, 0x592c040a, 0x80040580,
+ 0x05020032, 0x592c000d, 0x82000500, 0x00ffffff,
+ 0x80080580, 0x0502002d, 0x592c000e, 0x82000500,
+ 0x00ffffff, 0x800c0580, 0x05020028, 0x592c0011,
+ 0x80100580, 0x05020025, 0x4c040000, 0x4c080000,
+ 0x4c0c0000, 0x4c100000, 0x40640000, 0x812c0580,
+ 0x05020014, 0x59300203, 0x90000580, 0x0500000d,
+ 0x59300009, 0x800001c0, 0x0500000a, 0x05d9fc3a,
+ 0x4df00000, 0x05d9fb3a, 0x05d9f8ff, 0x05020002,
+ 0x64026203, 0x5c03e000, 0x05d80c24, 0x497a6009,
+ 0x592cc800, 0x4064c000, 0x4064b800, 0x0501f003,
+ 0x592cb800, 0x485cc000, 0x64165a0a, 0x0001fba8,
+ 0x405e5800, 0x5c002000, 0x5c001800, 0x5c001000,
+ 0x5c000800, 0x0501f003, 0x412cc000, 0x592e5800,
+ 0x812e59c0, 0x05fe07c5, 0x486750a0, 0x486350a1,
+ 0x05e1fa08, 0x5c026000, 0x5c025800, 0x5c00c800,
+ 0x5c00c000, 0x5c00b800, 0x1c01f000, 0x602c0800,
+ 0x0501f004, 0x60100800, 0x0501f002, 0x60040800,
+ 0x4d2c0000, 0x59325809, 0x812e59c0, 0x0500000f,
+ 0x592c0208, 0x82000500, 0x000000ff, 0x9000058e,
+ 0x0502000a, 0x592c0000, 0x48026009, 0x497a5800,
+ 0x48065a0c, 0x05cdf9bd, 0x05000003, 0x05fdfe67,
+ 0x0501f002, 0x0001fba8, 0x5c025800, 0x1c01f000,
+ 0x4d2c0000, 0x4803c856, 0x0501f83b, 0x05020038,
+ 0x91380595, 0x05020027, 0x59a800bb, 0x90000594,
+ 0x05020022, 0x59cc0c07, 0x82040580, 0x00000102,
+ 0x05020029, 0x59cc0a07, 0x5930021b, 0x80040580,
+ 0x05020027, 0x59cc0a0a, 0x90040594, 0x05020026,
+ 0x916c0583, 0x05020002, 0x05a9f9ac, 0x05edfc67,
+ 0x0500000d, 0x59325809, 0x59a80cd2, 0x48065a0b,
+ 0x59a808d4, 0x4806580f, 0x64025a0a, 0x59a804d1,
+ 0x90000503, 0x90000583, 0x05000002, 0x64ca5a0a,
+ 0x0001fba8, 0x59a804d1, 0x8400050c, 0x480354d1,
+ 0x4803c857, 0x0009f810, 0x5c025800, 0x1c01f000,
+ 0x4803c856, 0x05edfc51, 0x05fc07f7, 0x59325809,
+ 0x64c65a0a, 0x64625810, 0x59cc0007, 0x48025811,
+ 0x05fdf7f0, 0x4807c857, 0x05fdf7f4, 0x4807c857,
+ 0x05fdf7f2, 0x4807c857, 0x05fdf7f0, 0x4803c857,
+ 0x05fdf7ee, 0x59300403, 0xb0000d9a, 0x05000004,
+ 0xb0000d9b, 0x05000002, 0xb0000d9c, 0x1c01f000,
+ 0x4933c857, 0x4867c857, 0x485fc857, 0x4863c857,
+ 0x4c500000, 0x4c540000, 0x4c580000, 0x4d3c0000,
+ 0x59327c1b, 0x5924100b, 0x82081500, 0x00001fff,
+ 0x405c0000, 0x80080580, 0x0500002b, 0x480bc857,
+ 0x4d400000, 0x4d3c0000, 0x4c080000, 0x60aa8000,
+ 0x600a7800, 0x41780800, 0x05a9f9bb, 0x5c001000,
+ 0x5c027800, 0x5c028000, 0x59a802d1, 0x40000800,
+ 0x82000540, 0x0f000000, 0x4802480b, 0x853e7d40,
+ 0x4c580000, 0x0501fa36, 0x42001800, 0x001124c3,
+ 0x8058b040, 0x05000013, 0x580c200b, 0x82100500,
+ 0x00001fff, 0x80080580, 0x0502000c, 0x580c0200,
+ 0x82000500, 0x00008001, 0x82000580, 0x00008001,
+ 0x05000006, 0x82102500, 0xffffe000, 0x80100541,
+ 0x4800180b, 0x4803c857, 0x900c1c0d, 0x05fdf7ed,
+ 0x5c00b000, 0x6000b001, 0x4060a000, 0x4200a800,
+ 0x00114616, 0x50500000, 0x50540800, 0x80040580,
+ 0x05000002, 0x853e7d42, 0x5450a800, 0x8050a000,
+ 0x8054a800, 0x8058b040, 0x05fe07f7, 0x59a800d4,
+ 0x80640580, 0x0500001f, 0x59a814d1, 0x480bc857,
+ 0x90081503, 0x90081583, 0x05020009, 0x90640582,
+ 0x05000018, 0x90640583, 0x05020011, 0x59a800d3,
+ 0x90000582, 0x05000013, 0x0501f00d, 0x90640581,
+ 0x05000010, 0x90640582, 0x05020005, 0x59a800d3,
+ 0x90000582, 0x0502000b, 0x0501f008, 0x59a800d3,
+ 0x90000581, 0x05000007, 0x0501f004, 0x4803c856,
+ 0x853e7d46, 0x0501f003, 0x4803c856, 0x853e7d44,
+ 0x4867c857, 0x493fc857, 0x486750d4, 0x493e641b,
+ 0x5c027800, 0x5c00b000, 0x5c00a800, 0x5c00a000,
+ 0x1c01f000, 0x412c7800, 0x60047000, 0x583c7801,
+ 0x803c79c0, 0x05000003, 0x80387000, 0x05fdf7fc,
+ 0x599c0413, 0x80380480, 0x05021003, 0x80000580,
+ 0x1c01f000, 0x81780000, 0x1c01f000, 0x4817c857,
+ 0x4c000000, 0x4c040000, 0x8c14052a, 0x05000004,
+ 0x59880126, 0x80000000, 0x48031126, 0x8c14052e,
+ 0x05000004, 0x59880127, 0x80000000, 0x48031127,
+ 0x82140500, 0x00070000, 0x82000d80, 0x00050000,
+ 0x05020005, 0x42000000, 0x0011235f, 0x0501f8ac,
+ 0x0501f00f, 0x8c14052c, 0x0500000d, 0x82000d80,
+ 0x00030000, 0x0500000a, 0x82000d80, 0x00040000,
0x05000007, 0x59880005, 0x80000000, 0x48031005,
0x59880128, 0x80000000, 0x48031128, 0x5c000800,
- 0x5c000000, 0x1c01f000, 0x4807c857, 0x4c000000,
- 0x8c04052c, 0x05000004, 0x59880111, 0x80000000,
- 0x48031111, 0x8c04052a, 0x05000004, 0x59880112,
- 0x80000000, 0x48031112, 0x8c040528, 0x05000004,
- 0x59880113, 0x80000000, 0x48031113, 0x8c040526,
+ 0x5c000000, 0x1c01f000, 0x4817c857, 0x4c000000,
+ 0x4c040000, 0x8c14052a, 0x05000004, 0x59880129,
+ 0x80000000, 0x48031129, 0x8c14052e, 0x05000004,
+ 0x5988012a, 0x80000000, 0x4803112a, 0x82140500,
+ 0x00070000, 0x82000d80, 0x00050000, 0x05020005,
+ 0x42000000, 0x0011235f, 0x0501f885, 0x0501f00f,
+ 0x8c14052c, 0x0500000d, 0x82000d80, 0x00030000,
+ 0x0500000a, 0x82000d80, 0x00040000, 0x05000007,
+ 0x59880005, 0x80000000, 0x48031005, 0x5988012b,
+ 0x80000000, 0x4803112b, 0x5c000800, 0x5c000000,
+ 0x1c01f000, 0x4807c857, 0x4c000000, 0x8c04052c,
0x05000004, 0x59880114, 0x80000000, 0x48031114,
- 0x8c040524, 0x05000004, 0x59880115, 0x80000000,
- 0x48031115, 0x8c040522, 0x05000004, 0x59880116,
- 0x80000000, 0x48031116, 0x8c040520, 0x05000004,
- 0x59880117, 0x80000000, 0x48031117, 0x5c000000,
- 0x1c01f000, 0x4807c857, 0x4c000000, 0x59880118,
- 0x80000000, 0x48031118, 0x5c000000, 0x1c01f000,
- 0x4807c857, 0x4c000000, 0x8c04051c, 0x05000004,
- 0x59880119, 0x80000000, 0x48031119, 0x8c04051a,
- 0x05000004, 0x5988011a, 0x80000000, 0x4803111a,
- 0x5c000000, 0x1c01f000, 0x4807c857, 0x4c000000,
- 0x8c040518, 0x05000004, 0x5988011b, 0x80000000,
- 0x4803111b, 0x8c040516, 0x05000004, 0x5988011c,
- 0x80000000, 0x4803111c, 0x8c040514, 0x05000004,
+ 0x8c04052a, 0x05000004, 0x59880115, 0x80000000,
+ 0x48031115, 0x8c040528, 0x05000004, 0x59880116,
+ 0x80000000, 0x48031116, 0x8c040526, 0x05000004,
+ 0x59880117, 0x80000000, 0x48031117, 0x8c040524,
+ 0x05000004, 0x59880118, 0x80000000, 0x48031118,
+ 0x8c040522, 0x05000004, 0x59880119, 0x80000000,
+ 0x48031119, 0x8c040520, 0x05000004, 0x5988011a,
+ 0x80000000, 0x4803111a, 0x5c000000, 0x1c01f000,
+ 0x4807c857, 0x4c000000, 0x5988011b, 0x80000000,
+ 0x4803111b, 0x5c000000, 0x1c01f000, 0x4807c857,
+ 0x4c000000, 0x8c04051c, 0x05000004, 0x5988011c,
+ 0x80000000, 0x4803111c, 0x8c04051a, 0x05000004,
0x5988011d, 0x80000000, 0x4803111d, 0x5c000000,
- 0x1c01f000, 0x4807c857, 0x4c000000, 0x8c040510,
+ 0x1c01f000, 0x4807c857, 0x4c000000, 0x8c040518,
0x05000004, 0x5988011e, 0x80000000, 0x4803111e,
- 0x8c04050c, 0x05000004, 0x5988011f, 0x80000000,
- 0x4803111f, 0x5c000000, 0x1c01f000, 0x4807c857,
- 0x4c000000, 0x8c040508, 0x05000004, 0x59880120,
- 0x80000000, 0x48031120, 0x8c040504, 0x05000004,
- 0x59880121, 0x80000000, 0x48031121, 0x5c000000,
- 0x1c01f000, 0x4807c856, 0x4c000000, 0x598800ea,
- 0x80000000, 0x480310ea, 0x5c000000, 0x1c01f000,
- 0x5c036000, 0x4db00000, 0x49b3c857, 0x4c040000,
- 0x50000800, 0x80040800, 0x05001002, 0x44040000,
- 0x5c000800, 0x1c01f000, 0x480fc857, 0x4c000000,
- 0x900c0580, 0x05020004, 0x42000000, 0x0010e411,
- 0x0501f012, 0x820c0580, 0x00001001, 0x05020004,
- 0x42000000, 0x0010e412, 0x0501f00c, 0x820c0580,
- 0x00001002, 0x05020004, 0x42000000, 0x0010e413,
- 0x0501f006, 0x820c0c80, 0x0000201c, 0x059a1ddf,
- 0x900c051f, 0x0c01f804, 0x05fdffde, 0x5c000000,
- 0x1c01f000, 0x0010d01d, 0x0010d020, 0x0010d023,
- 0x0010d026, 0x0010d029, 0x0010d02c, 0x0010d02f,
- 0x0010d032, 0x0010d035, 0x0010d038, 0x0010d03b,
- 0x0010d03e, 0x0010d041, 0x0010d044, 0x0010d047,
- 0x0010d04a, 0x0010d04d, 0x0010d050, 0x0010d053,
- 0x0010d056, 0x0010d059, 0x0010d05c, 0x0010d05f,
- 0x0010d062, 0x0010d065, 0x0010d068, 0x0010d06b,
- 0x0010d06e, 0x42000000, 0x0010e414, 0x1c01f000,
- 0x42000000, 0x0010e415, 0x1c01f000, 0x42000000,
- 0x0010e416, 0x1c01f000, 0x42000000, 0x0010e417,
- 0x1c01f000, 0x42000000, 0x0010e418, 0x1c01f000,
- 0x42000000, 0x0010e419, 0x1c01f000, 0x42000000,
- 0x0010e41a, 0x1c01f000, 0x42000000, 0x0010e41b,
- 0x1c01f000, 0x42000000, 0x0010e41c, 0x1c01f000,
- 0x42000000, 0x0010e41d, 0x1c01f000, 0x42000000,
- 0x0010e41e, 0x1c01f000, 0x42000000, 0x0010e41f,
- 0x1c01f000, 0x42000000, 0x0010e420, 0x1c01f000,
- 0x42000000, 0x0010e421, 0x1c01f000, 0x42000000,
- 0x0010e422, 0x1c01f000, 0x42000000, 0x0010e423,
- 0x1c01f000, 0x42000000, 0x0010e424, 0x1c01f000,
- 0x42000000, 0x0010e425, 0x1c01f000, 0x42000000,
- 0x0010e426, 0x1c01f000, 0x42000000, 0x0010e427,
- 0x1c01f000, 0x42000000, 0x0010e428, 0x1c01f000,
- 0x42000000, 0x0010e429, 0x1c01f000, 0x42000000,
- 0x0010e42a, 0x1c01f000, 0x42000000, 0x0010e42b,
- 0x1c01f000, 0x42000000, 0x0010e42c, 0x1c01f000,
- 0x42000000, 0x0010e42d, 0x1c01f000, 0x42000000,
- 0x0010e42e, 0x1c01f000, 0x42000000, 0x0010e42f,
- 0x1c01f000, 0x480fc857, 0x4c000000, 0x900c0581,
- 0x05020004, 0x42000000, 0x0010e394, 0x0501f00f,
- 0x900c0582, 0x05020004, 0x42000000, 0x0010e395,
- 0x0501f00a, 0x900c0583, 0x05020004, 0x42000000,
- 0x0010e396, 0x0501f005, 0x900c0584, 0x05020004,
- 0x42000000, 0x0010e397, 0x05fdff56, 0x5c000000,
- 0x1c01f000, 0x4c000000, 0x59a80249, 0x4803c857,
- 0x59240a00, 0x8c04050a, 0x05000010, 0x8c000506,
- 0x05000004, 0x42000000, 0x0010e39f, 0x0501f011,
- 0x8c00050a, 0x05000004, 0x42000000, 0x0010e39e,
- 0x0501f00c, 0x8c000508, 0x05000004, 0x42000000,
- 0x0010e3a1, 0x0501f007, 0x05c9f810, 0x05000006,
- 0x8c000506, 0x05020004, 0x42000000, 0x0010e3a0,
- 0x05fdff38, 0x5c000000, 0x1c01f000, 0x8058b1c0,
- 0x05980d32, 0x5450a800, 0x8050a000, 0x8054a800,
- 0x8058b040, 0x05fe07fc, 0x1c01f000, 0x8058b1c0,
- 0x05980d2a, 0x4450a800, 0x8054a800, 0x8058b040,
- 0x05fe07fd, 0x1c01f000, 0x4813c857, 0x4817c857,
- 0x40140000, 0x80100480, 0x059a1d20, 0x497bc841,
- 0x41787000, 0x42006800, 0x00140000, 0x59a800ca,
- 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, 0x05980cf7,
- 0x50500000, 0x9c0001c0, 0x4400a800, 0x8050a000,
- 0x8054a800, 0x8058b040, 0x05fe07fa, 0x1c01f000,
- 0x4c000000, 0x59a80007, 0x8c00051c, 0x5c000000,
- 0x1c01f000, 0x59a80007, 0x8c000518, 0x1c01f000,
- 0x4200b000, 0x0010e511, 0x5058b000, 0x1c01f000,
- 0x42006800, 0x0010e512, 0x58340406, 0x8c000502,
- 0x05fc07f8, 0x6004b000, 0x1c01f000, 0x61906800,
- 0x80346840, 0x05000006, 0x64070000, 0x40000000,
- 0x59807000, 0x8c380500, 0x05fc07fa, 0x1c01f000,
- 0x4c040000, 0x05fdfff6, 0x05020003, 0x80040840,
- 0x05fe07fd, 0x5c000800, 0x1c01f000, 0x640f0000,
- 0x40000000, 0x59800000, 0x8c000500, 0x05fc07fc,
- 0x1c01f000, 0x42006800, 0x0010e512, 0x58340406,
- 0x8c000504, 0x1c01f000, 0x42006800, 0x0010e511,
- 0x50346800, 0x42007000, 0x0010e512, 0x58380200,
- 0x8c000500, 0x05020004, 0x9038740d, 0x80346840,
- 0x05fe07fb, 0x1c01f000, 0x42006800, 0x0010e512,
- 0x58340406, 0x8c000508, 0x1c01f000, 0x42006800,
- 0x0010e512, 0x58340406, 0x8c00050a, 0x1c01f000,
- 0x59a80006, 0x8c000516, 0x1c01f000, 0x599c0017,
- 0x8c00051e, 0x1c01f000, 0x42006800, 0x0010e511,
- 0x50346800, 0x59cc7000, 0x42007800, 0x0010e512,
- 0x583c0005, 0x80380580, 0x82000500, 0x00ffffff,
- 0x05000006, 0x80346840, 0x05000003, 0x903c7c0d,
- 0x05fdf7f8, 0x90000541, 0x1c01f000, 0x59a86a49,
- 0x8c34050a, 0x0500000a, 0x8c340514, 0x05000008,
- 0x42006800, 0x0010e511, 0x50346800, 0xb0340481,
- 0x05001004, 0x599c0017, 0x8c00050a, 0x1c01f000,
- 0x80000580, 0x05fdf7fe, 0x59a80006, 0x8c000518,
- 0x05000002, 0x8d0c0520, 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, 0x0010e512,
- 0x0010e51f, 0x0010e52c, 0x0010e539, 0x0010e546,
- 0x0010e553, 0x0010e560, 0x0010e56d, 0x0010e57a,
- 0x0010e587, 0x0010e594, 0x0010e5a1, 0x0010e5ae,
- 0x0010e5bb, 0x0010e5c8, 0x0010e5d5, 0x0010e5e2,
- 0x0010e5ef, 0x0010e5fc, 0x0010e609, 0x0010e616,
- 0x0010e623, 0x0010e630, 0x0010e63d, 0x0010e64a,
- 0x0010e657, 0x0010e664, 0x0010e671, 0x0010e67e,
- 0x0010e68b, 0x0010e698, 0x0010e6a5, 0x0010e6b2,
- 0x0010e6bf, 0x0010e6cc, 0x0010e6d9, 0x0010e6e6,
- 0x0010e6f3, 0x0010e700, 0x0010e70d, 0x0010e71a,
- 0x0010e727, 0x0010e734, 0x0010e741, 0x0010e74e,
- 0x0010e75b, 0x0010e768, 0x0010e775, 0x0010e782,
- 0x0010e78f, 0x0010e79c, 0x0010e7a9, 0x0010e7b6,
- 0x0010e7c3, 0x0010e7d0, 0x0010e7dd, 0x0010e7ea,
- 0x0010e7f7, 0x0010e804, 0x0010e811, 0x0010e81e,
- 0x0010e82b, 0x0010e838, 0x0010e845, 0x0010e852,
- 0x0010e85f, 0x0010e86c, 0x0010e879, 0x0010e886,
- 0x0010e893, 0x0010e8a0, 0x0010e8ad, 0x0010e8ba,
- 0x0010e8c7, 0x0010e8d4, 0x0010e8e1, 0x0010e8ee,
- 0x0010e8fb, 0x0010e908, 0x0010e915, 0x0010e922,
- 0x0010e92f, 0x0010e93c, 0x0010e949, 0x0010e956,
- 0x0010e963, 0x0010e970, 0x0010e97d, 0x0010e98a,
- 0x0010e997, 0x0010e9a4, 0x0010e9b1, 0x0010e9be,
- 0x0010e9cb, 0x0010e9d8, 0x0010e9e5, 0x0010e9f2,
- 0x0010e9ff, 0x0010ea0c, 0x0010ea19, 0x0010ea26,
- 0x0010ea33, 0x0010ea40, 0x0010ea4d, 0x0010ea5a,
- 0x0010ea67, 0x0010ea74, 0x0010ea81, 0x0010ea8e,
- 0x0010ea9b, 0x0010eaa8, 0x0010eab5, 0x0010eac2,
- 0x0010eacf, 0x0010eadc, 0x0010eae9, 0x0010eaf6,
- 0x0010eb03, 0x0010eb10, 0x0010eb1d, 0x0010eb2a,
- 0x0010eb37, 0x0010eb44, 0x0010eb51, 0x0010eb5e,
- 0x0010eb6b, 0x0010eb78, 0x0010eb85, 0x0010eb92,
- 0x0010eb9f, 0x0010ebac, 0x0010ebb9, 0x0010ebc6,
- 0x0010ebd3, 0x0010ebe0, 0x0010ebed, 0x0010ebfa,
- 0x0010ec07, 0x0010ec14, 0x0010ec21, 0x0010ec2e,
- 0x0010ec3b, 0x0010ec48, 0x0010ec55, 0x0010ec62,
- 0x0010ec6f, 0x0010ec7c, 0x0010ec89, 0x0010ec96,
- 0x0010eca3, 0x0010ecb0, 0x0010ecbd, 0x0010ecca,
- 0x0010ecd7, 0x0010ece4, 0x0010ecf1, 0x0010ecfe,
- 0x0010ed0b, 0x0010ed18, 0x0010ed25, 0x0010ed32,
- 0x0010ed3f, 0x0010ed4c, 0x0010ed59, 0x0010ed66,
- 0x0010ed73, 0x0010ed80, 0x0010ed8d, 0x0010ed9a,
- 0x0010eda7, 0x0010edb4, 0x0010edc1, 0x0010edce,
- 0x0010eddb, 0x0010ede8, 0x0010edf5, 0x0010ee02,
- 0x0010ee0f, 0x0010ee1c, 0x0010ee29, 0x0010ee36,
- 0x0010ee43, 0x0010ee50, 0x0010ee5d, 0x0010ee6a,
- 0x0010ee77, 0x0010ee84, 0x0010ee91, 0x0010ee9e,
- 0x0010eeab, 0x0010eeb8, 0x0010eec5, 0x0010eed2,
- 0x0010eedf, 0x0010eeec, 0x0010eef9, 0x0010ef06,
- 0x0010ef13, 0x0010ef20, 0x0010ef2d, 0x0010ef3a,
- 0x0010ef47, 0x0010ef54, 0x0010ef61, 0x0010ef6e,
- 0x0010ef7b, 0x0010ef88, 0x0010ef95, 0x0010efa2,
- 0x0010efaf, 0x0010efbc, 0x0010efc9, 0x0010efd6,
- 0x0010efe3, 0x0010eff0, 0x0010effd, 0x0010f00a,
- 0x0010f017, 0x0010f024, 0x0010f031, 0x0010f03e,
- 0x0010f04b, 0x0010f058, 0x0010f065, 0x0010f072,
- 0x0010f07f, 0x0010f08c, 0x0010f099, 0x0010f0a6,
- 0x0010f0b3, 0x0010f0c0, 0x0010f0cd, 0x0010f0da,
- 0x0010f0e7, 0x0010f0f4, 0x0010f101, 0x0010f10e,
- 0x0010f11b, 0x0010f128, 0x0010f135, 0x0010f142,
- 0x0010f14f, 0x0010f15c, 0x0010f169, 0x0010f176,
- 0x0010f183, 0x0010f190, 0x0010f19d, 0x0010f1aa,
- 0x0010f1b7, 0x0010f1c4, 0x0010f1d1, 0x0010f1de,
- 0x0010f1eb, 0x0010f1f8, 0x0010f205, 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,
- 0x05a20bd4, 0x8d0c0530, 0x05a20bc7, 0x05a20bc9,
- 0x6403c017, 0x4203e000, 0x30000001, 0x0599fcb5,
- 0x05fdf7ff, 0x59a808d1, 0x8c100502, 0x05000003,
- 0x84040d42, 0x0501f007, 0x8c100504, 0x05000003,
- 0x84040d44, 0x0501f003, 0x8c100500, 0x84040d40,
- 0x480750d1, 0x1c01f000, 0x59a800d1, 0x8c000502,
- 0x05000009, 0x4a0350d2, 0x0000008b, 0x4a0350d3,
- 0x0000008b, 0x4a0350d4, 0x0000008b, 0x641350d5,
- 0x0501f00c, 0x8c000504, 0x05000006, 0x65bf50d2,
- 0x65bf50d3, 0x65df50d4, 0x640350d5, 0x0501f005,
- 0x64cf50d2, 0x64cf50d3, 0x649750d4, 0x640350d5,
- 0x1c01f000, 0x9d56cdac, 0x00000000, 0x00000000,
- 0x00112000, 0x0000317e, 0x00000000, 0x00000000,
- 0x00020000, 0x000011a6, 0x916c0583, 0x01020177,
- 0x42000000, 0x0010dd03, 0x50000000, 0x800001c0,
- 0x05020a3e, 0x0501f9fb, 0x0501ffd5, 0x0501fb93,
- 0x8d0c0516, 0x05000f50, 0x8d0c0516, 0x05000e06,
- 0x59a800a2, 0x80000540, 0x01060ac5, 0x0505fc83,
- 0x05fdf7ee, 0x835c0480, 0x00000104, 0x010411a5,
- 0x416a5800, 0x592ed000, 0x497a5800, 0x497a5801,
- 0x815eb840, 0x812e59c0, 0x1c01f000, 0x42007000,
- 0x000211a7, 0x58380004, 0x49781000, 0x64001002,
- 0x48087004, 0x80000d40, 0x05020006, 0x48087005,
- 0x58380000, 0x80000540, 0x0500000a, 0x1c01f000,
- 0x48080800, 0x05fdf7fb, 0x42007000, 0x000211a7,
- 0x58380000, 0x80000540, 0x05000002, 0x1c01f000,
- 0x58380807, 0x800409c0, 0x01060234, 0x58380005,
- 0x80006d40, 0x05020002, 0x1c01f000, 0x58340000,
- 0x48347001, 0x80000540, 0x05020002, 0x48007004,
- 0x48007005, 0x4a03b805, 0x30000002, 0x58340007,
- 0x59dc0806, 0x4803b800, 0x58340008, 0x4803b801,
- 0x58340806, 0x4807b81f, 0x58340805, 0x58341003,
- 0x58340001, 0x48047002, 0x48087003, 0x480bb803,
- 0x8c000500, 0x05020004, 0x64087000, 0x6407c824,
- 0x0501f004, 0x64047000, 0x6503c824, 0x0105f25b,
- 0x58380802, 0x600011fe, 0x82040480, 0x0000ff00,
- 0x05021003, 0x40041000, 0x80000580, 0x48007002,
- 0x480bb802, 0x4a03b805, 0x10000002, 0x1c01f000,
- 0x59dc0806, 0x4a03b805, 0x20000000, 0x8c04053e,
- 0x05000009, 0x8c040508, 0x01020dda, 0x42007000,
- 0x000211a7, 0x58380000, 0x90001484, 0x0c001003,
- 0x0101fdda, 0x1c01f000, 0x00020036, 0x00020078,
- 0x0002007f, 0x001014e8, 0x82040d00, 0x43200f80,
- 0x01060268, 0x58380002, 0x80000540, 0x05000008,
- 0x0105f25b, 0x82040d00, 0x43200f80, 0x01060268,
- 0x58380002, 0x80000540, 0x05fe07d6, 0x58386001,
- 0x58300009, 0x4a006002, 0x00000100, 0x64007000,
- 0x80001540, 0x05fc07ab, 0x59dc0000, 0x48006007,
- 0x59dc0001, 0x48006008, 0x0809f800, 0x05fdf79f,
- 0x84040d1e, 0x59e00017, 0x8c00050c, 0x05020007,
- 0x59a818a0, 0x800400c4, 0x800c1c00, 0x580c0003,
- 0x8c000500, 0x05000008, 0x59a800a2, 0x4c000000,
- 0x0105fab6, 0x5c000000, 0x80000540, 0x01060280,
- 0x1c01f000, 0x4d2c0000, 0x4c040000, 0x4c0c0000,
- 0x05fdff71, 0x5c001800, 0x5c000800, 0x05000014,
- 0x82040400, 0x0010df60, 0x50000000, 0x48025806,
- 0x64025801, 0x64125805, 0x64065804, 0x900c0402,
- 0x48025803, 0x580c0000, 0x48025807, 0x580c0001,
- 0x48025808, 0x4a025809, 0x000200bf, 0x4806580a,
- 0x412c1000, 0x5c025800, 0x05fdf765, 0x5c025800,
- 0x0105f2b6, 0x58300802, 0x82040580, 0x00000100,
- 0x01060275, 0x4d2c0000, 0x40325800, 0x0105f993,
- 0x5c025800, 0x0105f280, 0x59b800ea, 0x82000d00,
- 0xf2000038, 0x010603f7, 0x8c000510, 0x010403f6,
- 0x59ba60e0, 0x81300182, 0x0502104c, 0x05002030,
- 0x8532653e, 0x59300407, 0x90000583, 0x0502002a,
- 0x59300203, 0x90000584, 0x05020027, 0x59325809,
- 0x59300004, 0x4a025a08, 0x00000103, 0x497a580d,
- 0x8c00053e, 0x0502001a, 0x59300008, 0x82000500,
- 0x04000800, 0x82000580, 0x04000800, 0x05000017,
- 0x0501fa9c, 0x59325827, 0x812e59c0, 0x01060993,
- 0x5932680a, 0x0505fef1, 0x5934000f, 0x8d0c0512,
- 0x05020005, 0x5934140b, 0x80081040, 0x05001002,
- 0x480a6c0b, 0x80000540, 0x05020a19, 0x59b800ea,
- 0x8c000510, 0x05fe07d7, 0x1c01f000, 0x0145f8b9,
- 0x05fc07e6, 0x0105f3ef, 0x59300221, 0x48025c13,
- 0x05fdf7e8, 0x61567000, 0x0501f024, 0x83326500,
- 0x3fffffff, 0x59300407, 0x90000583, 0x05020015,
- 0x59325809, 0x5932680a, 0x4a025a08, 0x00000103,
- 0x497a580d, 0x0501fa77, 0x59325827, 0x812e59c0,
- 0x01060992, 0x0505fecd, 0x5934000f, 0x8d0c0512,
- 0x05020005, 0x5934140b, 0x80081040, 0x05001002,
- 0x480a6c0b, 0x80000540, 0x050209f5, 0x05fdf7dc,
- 0x61527000, 0x0501f009, 0x83300500, 0x60000000,
- 0x05000013, 0x81326580, 0x8000013a, 0x82000400,
- 0x00100bfb, 0x50027000, 0x59300c07, 0x90040580,
- 0x010403ef, 0x90040582, 0x010403ef, 0x59300004,
- 0x8c00053e, 0x05020003, 0x0505fed4, 0x05fdf7c8,
- 0x0145f8b9, 0x05fc07fd, 0x0105f3ef, 0x83300500,
- 0x1f000000, 0x010403f1, 0x81326580, 0x80000130,
- 0x90000c97, 0x01021dda, 0x1201f000, 0x00100bff,
- 0x82000500, 0xf0000000, 0x82040d00, 0x0fffffff,
- 0x80040d40, 0x4807c857, 0x59b800ea, 0x8c000516,
- 0x0106051a, 0x480770e1, 0x1c01f000, 0x59325809,
- 0x412c7000, 0x58380a08, 0x82040d00, 0x000000ff,
- 0xb00405a8, 0x01040786, 0xb00405aa, 0x01040786,
- 0xb00405ba, 0x0104079f, 0xb00405b2, 0x0104079f,
- 0x58380a08, 0x9004050f, 0x82000c00, 0x001012ac,
- 0x50044000, 0x0c01f001, 0x00100f85, 0x00100f85,
- 0x00020168, 0x00100f85, 0x00100f85, 0x00100f85,
- 0x00100f85, 0x00100f85, 0x00020176, 0x00100fa5,
- 0x00100f85, 0x00100f85, 0x00100f85, 0x00100f85,
- 0x00100f85, 0x00100f85, 0x5838040e, 0x8c000500,
- 0x01000dda, 0x50200000, 0x80387c00, 0x583c1002,
- 0x583c2800, 0x583c2001, 0x58380a0b, 0x58383013,
- 0x59303808, 0x58380011, 0x48026014, 0x0501f00e,
- 0x5838020e, 0x8c000502, 0x01040785, 0x50200000,
- 0x80387c00, 0x583c2800, 0x583c2001, 0x583c1002,
- 0x592c0a0b, 0x592c3013, 0x59303808, 0x497a6014,
- 0x497a6015, 0x48166010, 0x48126011, 0x480a6012,
- 0x481a6013, 0x80040840, 0x4806600f, 0x010607cc,
- 0x841c3d40, 0x481e6008, 0x1c01f000, 0x4d2c0000,
- 0x59325809, 0x592c0a08, 0x4807c857, 0x82040d00,
- 0x000000ff, 0x9004050f, 0x1201f000, 0x001010f0,
- 0x41787800, 0x59325809, 0x592c0c0e, 0x8c040502,
- 0x01080120, 0x592c0011, 0x592c1013, 0x592c0a08,
- 0x480a6013, 0x48026014, 0x48026015, 0x82040d00,
- 0x000000ff, 0xb00405b2, 0x01080126, 0xb00405ba,
- 0x01080126, 0x412c3000, 0x9004050f, 0x82000400,
- 0x001012ac, 0x50003800, 0x8c3c050e, 0x05000002,
- 0x801c3800, 0x501c0000, 0x592c1a0b, 0x4802600c,
- 0x481a600d, 0x481e600e, 0x480e600f, 0x843c7d4a,
- 0x403c1000, 0x1c01f000, 0x59e00004, 0x8c00050e,
- 0x05fe06ac, 0x1c01f000, 0x42001000, 0x001105e7,
- 0x5808000a, 0x80000540, 0x010a06ac, 0x4a001003,
- 0x001105f1, 0x4c080000, 0x0501f812, 0x5c001000,
- 0x4814100a, 0x480c1007, 0x48101008, 0x64001001,
- 0x64101005, 0x64041004, 0x05fdf655, 0x58300802,
- 0x82040580, 0x00000100, 0x010a06bb, 0x82300580,
- 0x001105e7, 0x010a06b6, 0x4978600a, 0x1c01f000,
- 0x61901800, 0x800c1840, 0x05000006, 0x64070000,
- 0x40000000, 0x59800000, 0x8c000500, 0x05fc07fa,
- 0x01080706, 0x600028f4, 0x58142024, 0x58141823,
- 0x58142825, 0x64030000, 0x1c01f000, 0x4c000000,
- 0x4df00000, 0x4203e000, 0xb0100000, 0x41f00000,
- 0x81fe1500, 0x8d080512, 0x010e092d, 0x8d08051c,
- 0x05060ccd, 0x8d080518, 0x05060d00, 0x8d08051a,
- 0x05fe0ed6, 0x83080500, 0x00000d00, 0x05020804,
- 0x5c03e000, 0x5c000000, 0x1801f000, 0x8d080516,
- 0x010a0f6d, 0x8d080514, 0x05fe0fbc, 0x8d080508,
- 0x010a0b68, 0x8d080500, 0x05060c27, 0x8d08050c,
- 0x010e0830, 0x8d08050a, 0x010a049f, 0x1c01f000,
- 0x42000000, 0x0010dd09, 0x50000000, 0x8c000504,
- 0x05000013, 0x8c000508, 0x05020004, 0x8c000502,
- 0x05020002, 0x1c01f000, 0x4df00000, 0x4203e000,
- 0x50000000, 0x42034000, 0x0010dceb, 0x59a0001e,
- 0x59a1d806, 0x84000502, 0x4803401e, 0x58ec0009,
- 0x0801f800, 0x5c03e000, 0x1c01f000, 0x05027002,
- 0x05026002, 0x1c01f000, 0x4df00000, 0x4203e000,
- 0x50000000, 0x59e00020, 0xb0000d85, 0x05000003,
- 0xb0000d84, 0x05020007, 0x4803c857, 0x42000800,
- 0x000211a7, 0x58040800, 0x90040d80, 0x05020019,
- 0x0105f982, 0x05000017, 0x412dd800, 0x48efc857,
- 0x0125f8b5, 0x42034000, 0x0010dceb, 0x49a1d80b,
- 0x48ef4006, 0x59a0001e, 0x84000544, 0x4803401e,
- 0x59e00020, 0x4803c857, 0x59e00021, 0x4803c857,
- 0x59e00022, 0x4803c857, 0x59e00023, 0x4803c857,
- 0x59e00024, 0x4803c857, 0x0115f957, 0x0115f96f,
- 0x5c03e000, 0x1c01f000, 0x4c5c0000, 0x4da00000,
- 0x4df00000, 0x4203e000, 0x50000000, 0x05006062,
- 0x42034000, 0x0010dceb, 0x59a01018, 0x59a01819,
- 0x800c19c0, 0x05020009, 0x59a0381c, 0x801c39c0,
- 0x01000dda, 0x49a3c857, 0x481fc857, 0x59a0041d,
- 0x801c3c00, 0x0501f00a, 0x59a0041a, 0x90000402,
- 0x4803441a, 0x90000c97, 0x05001003, 0x497b441a,
- 0x41780000, 0x59a03817, 0x801c3c00, 0x401cb800,
- 0x80081040, 0x480b4018, 0x581c0200, 0x4803c021,
- 0x581c0401, 0x4803c022, 0x581c0201, 0x4803c023,
- 0x581c0400, 0x4803c020, 0x900001c0, 0x90000552,
- 0x4803c011, 0x8d0c0530, 0x0500000f, 0x4c080000,
- 0x4c0c0000, 0x4c1c0000, 0x59e00017, 0x8c00050a,
- 0x05000004, 0x60000800, 0x05fdfe16, 0x0501f003,
- 0x8c000500, 0x05fe0f3d, 0x5c003800, 0x5c001800,
- 0x5c001000, 0x6403c017, 0x4203e000, 0x30000001,
- 0x800c19c0, 0x05000007, 0x800c1840, 0x480f4019,
- 0x0502001b, 0x497b441a, 0x497b421a, 0x0501f018,
- 0x800811c0, 0x0502000a, 0x4d2c0000, 0x59a2581c,
- 0x0105f992, 0x5c025800, 0x497b401c, 0x497b401b,
- 0x497b441d, 0x497b421d, 0x0501f00d, 0x59a0041d,
- 0x90000402, 0x90000c96, 0x4803441d, 0x05001008,
- 0x4d2c0000, 0x59a2581c, 0x592c3817, 0x481f401c,
- 0x497b441d, 0x0105f992, 0x5c025800, 0x8d0c052a,
- 0x05000009, 0x60083800, 0x42000800, 0x25000000,
- 0x585c1800, 0x585c3001, 0x900c19c0, 0x901831c0,
- 0x0101fea6, 0x5c03e000, 0x5c034000, 0x5c00b800,
- 0x1c01f000, 0x8d0c0520, 0x05000003, 0x59a80005,
- 0x8c000516, 0x1c01f000, 0x910c0503, 0x012a02dd,
- 0x59340400, 0x82000580, 0x00000606, 0x012a02b7,
- 0x5934000d, 0x80027d40, 0x012a02e6, 0x592c1003,
- 0x5808020a, 0x8c000500, 0x05000005, 0x592c1813,
- 0x5808000d, 0x800c0400, 0x4800100d, 0x5934000f,
- 0x59341203, 0x80080540, 0x05020021, 0x8d0c0512,
- 0x05000010, 0x0505fcf0, 0x05000017, 0x59a800d2,
- 0x80000040, 0x05fe07ff, 0x492e6009, 0x4936600a,
- 0x58d400ea, 0x8c000516, 0x05fe07fe, 0x83300400,
- 0x20000000, 0x4801a8e1, 0x80000580, 0x1c01f000,
- 0x5934000b, 0x80001920, 0x82000500, 0x0000ffff,
- 0x800c0480, 0x0502100a, 0x800c1800, 0x480e6c0b,
- 0x05fdf7e9, 0x8d0c0512, 0x05020005, 0x59341c0b,
- 0x800c1840, 0x480e6c0b, 0x59341203, 0x0501f803,
- 0x80000580, 0x1c01f000, 0x800811c0, 0x05020002,
- 0x64066a03, 0x59340010, 0x492e6810, 0x80000d40,
- 0x05020008, 0x492e680f, 0x592c040a, 0x800000c2,
- 0x800018c4, 0x800c0400, 0x48025807, 0x1c01f000,
- 0x492c0800, 0x05fdf7f9, 0x83440c80, 0x00000800,
- 0x05021009, 0x83440400, 0x0010d400, 0x50000000,
- 0x80000540, 0x05000004, 0x40026800, 0x80000580,
- 0x1c01f000, 0x90000541, 0x1c01f000, 0x59340203,
- 0x80000540, 0x05020036, 0x4d300000, 0x4d2c0000,
- 0x5934000f, 0x80025d40, 0x0500002f, 0x0505fcaa,
- 0x05000021, 0x592c0000, 0x4802680f, 0x80000540,
- 0x05020002, 0x48026810, 0x592c2a08, 0x4936600a,
- 0x4c080000, 0x012dfdc8, 0x5c001000, 0x05000025,
- 0x492e6009, 0x8d0c0512, 0x05000010, 0x58d400ea,
- 0x8c000516, 0x05fe07fe, 0x83300400, 0x20000000,
- 0x4801a8e1, 0x8d0c0512, 0x05fe07e6, 0x5934000b,
- 0x80001120, 0x82000500, 0x0000ffff, 0x80080480,
- 0x05fc17e0, 0x0501f010, 0x80081000, 0x480a6c0b,
- 0x05fdf7ef, 0x4c080000, 0x012dfdc8, 0x05020008,
- 0x42000000, 0x0010e444, 0x0165ffdc, 0x015dfa53,
- 0x05000003, 0x5c001000, 0x05fdf7d7, 0x5c001000,
- 0x64066a03, 0x5c025800, 0x5c026000, 0x1c01f000,
- 0x497a5800, 0x4932580d, 0x4a026007, 0x00068000,
- 0x641e6203, 0x0501f802, 0x05fdf7df, 0x592e440b,
- 0x83224500, 0x000000ff, 0x83200400, 0x0010d17b,
- 0x50024800, 0x4926601d, 0x592c0210, 0x48026202,
- 0x59240206, 0x8c000510, 0x012a070a, 0x8d0c050e,
- 0x012a0708, 0x59240200, 0x8c000516, 0x012a0706,
- 0x59340200, 0x8c000518, 0x012a0704, 0x64025a0a,
- 0x8c000508, 0x012a0702, 0x492e6009, 0x4d3c0000,
- 0x417a7800, 0x0505fac6, 0x5c027800, 0x1c01f000,
- 0x58040001, 0x49680800, 0x49780801, 0x815eb800,
- 0x4006d000, 0x80000d40, 0x05fe07fa, 0x497a5801,
- 0x59c80000, 0x82000540, 0x00001200, 0x48039000,
- 0x1c01f000, 0x59980005, 0x48032823, 0x59d8010b,
- 0x48033006, 0x1c01f000, 0x59980005, 0x59747408,
- 0x58387100, 0x483aec02, 0x4802e803, 0x1c01f000,
- 0x592c0408, 0x8c00051e, 0x012e0618, 0x497a5800,
- 0x8d0c0516, 0x05020003, 0x0501fa49, 0x0501f011,
- 0x8d0c0526, 0x0502000d, 0x0502d007, 0x592c0001,
- 0x492fb107, 0x80000d40, 0x05fe0fda, 0x0500e1c4,
- 0x1c01f000, 0x0500e9c2, 0x05fcd7f9, 0x42000000,
- 0x0010e3a8, 0x0165ffdf, 0x0501fa39, 0x0500da49,
- 0x0500e1bb, 0x59d80105, 0x82000d00, 0x01238780,
- 0x05020257, 0x1c01f000, 0x59980003, 0x0c01f001,
- 0x000203a8, 0x000203a9, 0x00020421, 0x00020461,
- 0x000203b7, 0x000204de, 0x1c01f000, 0x4df00000,
- 0x4203e000, 0x50000000, 0x05026a8e, 0x05006003,
- 0x8d0c0520, 0x05020b35, 0x830c0580, 0x00080800,
- 0x82000500, 0x00080800, 0x05000a2e, 0x5c03e000,
+ 0x8c040516, 0x05000004, 0x5988011f, 0x80000000,
+ 0x4803111f, 0x8c040514, 0x05000004, 0x59880120,
+ 0x80000000, 0x48031120, 0x5c000000, 0x1c01f000,
+ 0x4807c857, 0x4c000000, 0x8c040510, 0x05000004,
+ 0x59880121, 0x80000000, 0x48031121, 0x8c04050c,
+ 0x05000004, 0x59880122, 0x80000000, 0x48031122,
+ 0x5c000000, 0x1c01f000, 0x4807c857, 0x4c000000,
+ 0x8c040508, 0x05000004, 0x59880123, 0x80000000,
+ 0x48031123, 0x8c040504, 0x05000004, 0x59880124,
+ 0x80000000, 0x48031124, 0x5c000000, 0x1c01f000,
+ 0x4807c856, 0x4c000000, 0x598800ed, 0x80000000,
+ 0x480310ed, 0x5c000000, 0x1c01f000, 0x5c036000,
+ 0x4db00000, 0x49b3c857, 0x4c040000, 0x50000800,
+ 0x80040800, 0x05001002, 0x44040000, 0x5c000800,
+ 0x1c01f000, 0x480fc857, 0x4c000000, 0x900c0580,
+ 0x05020004, 0x42000000, 0x001123b2, 0x0501f012,
+ 0x820c0580, 0x00001001, 0x05020004, 0x42000000,
+ 0x001123b3, 0x0501f00c, 0x820c0580, 0x00001002,
+ 0x05020004, 0x42000000, 0x001123b4, 0x0501f006,
+ 0x820c0c80, 0x0000201c, 0x05961e9f, 0x900c051f,
+ 0x0c01f804, 0x05fdffde, 0x5c000000, 0x1c01f000,
+ 0x0010d798, 0x0010d79b, 0x0010d79e, 0x0010d7a1,
+ 0x0010d7a4, 0x0010d7a7, 0x0010d7aa, 0x0010d7ad,
+ 0x0010d7b0, 0x0010d7b3, 0x0010d7b6, 0x0010d7b9,
+ 0x0010d7bc, 0x0010d7bf, 0x0010d7c2, 0x0010d7c5,
+ 0x0010d7c8, 0x0010d7cb, 0x0010d7ce, 0x0010d7d1,
+ 0x0010d7d4, 0x0010d7d7, 0x0010d7da, 0x0010d7dd,
+ 0x0010d7e0, 0x0010d7e3, 0x0010d7e6, 0x0010d7e9,
+ 0x42000000, 0x001123b5, 0x1c01f000, 0x42000000,
+ 0x001123b6, 0x1c01f000, 0x42000000, 0x001123b7,
+ 0x1c01f000, 0x42000000, 0x001123b8, 0x1c01f000,
+ 0x42000000, 0x001123b9, 0x1c01f000, 0x42000000,
+ 0x001123ba, 0x1c01f000, 0x42000000, 0x001123bb,
+ 0x1c01f000, 0x42000000, 0x001123bc, 0x1c01f000,
+ 0x42000000, 0x001123bd, 0x1c01f000, 0x42000000,
+ 0x001123be, 0x1c01f000, 0x42000000, 0x001123bf,
+ 0x1c01f000, 0x42000000, 0x001123c0, 0x1c01f000,
+ 0x42000000, 0x001123c1, 0x1c01f000, 0x42000000,
+ 0x001123c2, 0x1c01f000, 0x42000000, 0x001123c3,
+ 0x1c01f000, 0x42000000, 0x001123c4, 0x1c01f000,
+ 0x42000000, 0x001123c5, 0x1c01f000, 0x42000000,
+ 0x001123c6, 0x1c01f000, 0x42000000, 0x001123c7,
+ 0x1c01f000, 0x42000000, 0x001123c8, 0x1c01f000,
+ 0x42000000, 0x001123c9, 0x1c01f000, 0x42000000,
+ 0x001123ca, 0x1c01f000, 0x42000000, 0x001123cb,
+ 0x1c01f000, 0x42000000, 0x001123cc, 0x1c01f000,
+ 0x42000000, 0x001123cd, 0x1c01f000, 0x42000000,
+ 0x001123ce, 0x1c01f000, 0x42000000, 0x001123cf,
+ 0x1c01f000, 0x42000000, 0x001123d0, 0x1c01f000,
+ 0x480fc857, 0x4c000000, 0x900c0585, 0x05020004,
+ 0x42000000, 0x00112335, 0x0501f00f, 0x900c0582,
+ 0x05020004, 0x42000000, 0x00112336, 0x0501f00a,
+ 0x900c0583, 0x05020004, 0x42000000, 0x00112337,
+ 0x0501f005, 0x900c0584, 0x05020004, 0x42000000,
+ 0x00112338, 0x05fdff56, 0x5c000000, 0x1c01f000,
+ 0x4c000000, 0x59a8024c, 0x4803c857, 0x59240a00,
+ 0x8c04050a, 0x05000010, 0x8c000506, 0x05000004,
+ 0x42000000, 0x00112340, 0x0501f011, 0x8c00050a,
+ 0x05000004, 0x42000000, 0x0011233f, 0x0501f00c,
+ 0x8c000508, 0x05000004, 0x42000000, 0x00112342,
+ 0x0501f007, 0x05c5fb7f, 0x05000006, 0x8c000506,
+ 0x05020004, 0x42000000, 0x00112341, 0x05fdff38,
+ 0x5c000000, 0x1c01f000, 0x8058b1c0, 0x05940df2,
+ 0x5450a800, 0x8050a000, 0x8054a800, 0x8058b040,
+ 0x05fe07fc, 0x1c01f000, 0x8058b1c0, 0x05940dea,
+ 0x4450a800, 0x8054a800, 0x8058b040, 0x05fe07fd,
+ 0x1c01f000, 0x4813c857, 0x4817c857, 0x40140000,
+ 0x80100480, 0x05961de0, 0x497bc841, 0x41787000,
+ 0x42006800, 0x00140000, 0x59a800cf, 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, 0x05940db7, 0x50500000,
+ 0x9c0001c0, 0x4400a800, 0x8050a000, 0x8054a800,
+ 0x8058b040, 0x05fe07fa, 0x1c01f000, 0x4c000000,
+ 0x59a80007, 0x8c00051c, 0x5c000000, 0x1c01f000,
+ 0x59a80007, 0x8c000518, 0x1c01f000, 0x4200b000,
+ 0x001124b5, 0x5058b000, 0x1c01f000, 0x42006800,
+ 0x001124b6, 0x58340406, 0x8c000502, 0x05fc07f8,
+ 0x6004b000, 0x1c01f000, 0x61906800, 0x80346840,
+ 0x05000006, 0x64070000, 0x40000000, 0x59807000,
+ 0x8c380500, 0x05fc07fa, 0x1c01f000, 0x4c040000,
+ 0x05fdfff6, 0x05020003, 0x80040840, 0x05fe07fd,
+ 0x5c000800, 0x1c01f000, 0x640f0000, 0x40000000,
+ 0x59800000, 0x8c000500, 0x05fc07fc, 0x1c01f000,
+ 0x42006800, 0x001124b6, 0x58340406, 0x8c000504,
+ 0x1c01f000, 0x42006800, 0x001124b5, 0x50346800,
+ 0x42007000, 0x001124b6, 0x58380200, 0x8c000500,
+ 0x05020004, 0x9038740d, 0x80346840, 0x05fe07fb,
+ 0x1c01f000, 0x42006800, 0x001124b6, 0x58340406,
+ 0x8c000508, 0x1c01f000, 0x42006800, 0x001124b6,
+ 0x58340406, 0x8c00050a, 0x1c01f000, 0x59a80006,
+ 0x8c000516, 0x1c01f000, 0x599c0017, 0x8c00051e,
+ 0x1c01f000, 0x42006800, 0x001124b5, 0x50346800,
+ 0x59cc7000, 0x42007800, 0x001124b6, 0x583c0005,
+ 0x80380580, 0x82000500, 0x00ffffff, 0x05000006,
+ 0x80346840, 0x05000003, 0x903c7c0d, 0x05fdf7f8,
+ 0x90000541, 0x1c01f000, 0x59a86a4c, 0x8c34050a,
+ 0x0500000a, 0x8c340514, 0x05000008, 0x42006800,
+ 0x001124b5, 0x50346800, 0xb0340481, 0x05001004,
+ 0x599c0017, 0x8c00050a, 0x1c01f000, 0x80000580,
+ 0x05fdf7fe, 0x59a80006, 0x8c000518, 0x05000002,
+ 0x8d0c0520, 0x1c01f000, 0x599c0019, 0x8c00050c,
+ 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, 0x001124b6, 0x001124c3, 0x001124d0,
+ 0x001124dd, 0x001124ea, 0x001124f7, 0x00112504,
+ 0x00112511, 0x0011251e, 0x0011252b, 0x00112538,
+ 0x00112545, 0x00112552, 0x0011255f, 0x0011256c,
+ 0x00112579, 0x00112586, 0x00112593, 0x001125a0,
+ 0x001125ad, 0x001125ba, 0x001125c7, 0x001125d4,
+ 0x001125e1, 0x001125ee, 0x001125fb, 0x00112608,
+ 0x00112615, 0x00112622, 0x0011262f, 0x0011263c,
+ 0x00112649, 0x00112656, 0x00112663, 0x00112670,
+ 0x0011267d, 0x0011268a, 0x00112697, 0x001126a4,
+ 0x001126b1, 0x001126be, 0x001126cb, 0x001126d8,
+ 0x001126e5, 0x001126f2, 0x001126ff, 0x0011270c,
+ 0x00112719, 0x00112726, 0x00112733, 0x00112740,
+ 0x0011274d, 0x0011275a, 0x00112767, 0x00112774,
+ 0x00112781, 0x0011278e, 0x0011279b, 0x001127a8,
+ 0x001127b5, 0x001127c2, 0x001127cf, 0x001127dc,
+ 0x001127e9, 0x001127f6, 0x00112803, 0x00112810,
+ 0x0011281d, 0x0011282a, 0x00112837, 0x00112844,
+ 0x00112851, 0x0011285e, 0x0011286b, 0x00112878,
+ 0x00112885, 0x00112892, 0x0011289f, 0x001128ac,
+ 0x001128b9, 0x001128c6, 0x001128d3, 0x001128e0,
+ 0x001128ed, 0x001128fa, 0x00112907, 0x00112914,
+ 0x00112921, 0x0011292e, 0x0011293b, 0x00112948,
+ 0x00112955, 0x00112962, 0x0011296f, 0x0011297c,
+ 0x00112989, 0x00112996, 0x001129a3, 0x001129b0,
+ 0x001129bd, 0x001129ca, 0x001129d7, 0x001129e4,
+ 0x001129f1, 0x001129fe, 0x00112a0b, 0x00112a18,
+ 0x00112a25, 0x00112a32, 0x00112a3f, 0x00112a4c,
+ 0x00112a59, 0x00112a66, 0x00112a73, 0x00112a80,
+ 0x00112a8d, 0x00112a9a, 0x00112aa7, 0x00112ab4,
+ 0x00112ac1, 0x00112ace, 0x00112adb, 0x00112ae8,
+ 0x00112af5, 0x00112b02, 0x00112b0f, 0x00112b1c,
+ 0x00112b29, 0x00112b36, 0x00112b43, 0x00112b50,
+ 0x00112b5d, 0x00112b6a, 0x00112b77, 0x00112b84,
+ 0x00112b91, 0x00112b9e, 0x00112bab, 0x00112bb8,
+ 0x00112bc5, 0x00112bd2, 0x00112bdf, 0x00112bec,
+ 0x00112bf9, 0x00112c06, 0x00112c13, 0x00112c20,
+ 0x00112c2d, 0x00112c3a, 0x00112c47, 0x00112c54,
+ 0x00112c61, 0x00112c6e, 0x00112c7b, 0x00112c88,
+ 0x00112c95, 0x00112ca2, 0x00112caf, 0x00112cbc,
+ 0x00112cc9, 0x00112cd6, 0x00112ce3, 0x00112cf0,
+ 0x00112cfd, 0x00112d0a, 0x00112d17, 0x00112d24,
+ 0x00112d31, 0x00112d3e, 0x00112d4b, 0x00112d58,
+ 0x00112d65, 0x00112d72, 0x00112d7f, 0x00112d8c,
+ 0x00112d99, 0x00112da6, 0x00112db3, 0x00112dc0,
+ 0x00112dcd, 0x00112dda, 0x00112de7, 0x00112df4,
+ 0x00112e01, 0x00112e0e, 0x00112e1b, 0x00112e28,
+ 0x00112e35, 0x00112e42, 0x00112e4f, 0x00112e5c,
+ 0x00112e69, 0x00112e76, 0x00112e83, 0x00112e90,
+ 0x00112e9d, 0x00112eaa, 0x00112eb7, 0x00112ec4,
+ 0x00112ed1, 0x00112ede, 0x00112eeb, 0x00112ef8,
+ 0x00112f05, 0x00112f12, 0x00112f1f, 0x00112f2c,
+ 0x00112f39, 0x00112f46, 0x00112f53, 0x00112f60,
+ 0x00112f6d, 0x00112f7a, 0x00112f87, 0x00112f94,
+ 0x00112fa1, 0x00112fae, 0x00112fbb, 0x00112fc8,
+ 0x00112fd5, 0x00112fe2, 0x00112fef, 0x00112ffc,
+ 0x00113009, 0x00113016, 0x00113023, 0x00113030,
+ 0x0011303d, 0x0011304a, 0x00113057, 0x00113064,
+ 0x00113071, 0x0011307e, 0x0011308b, 0x00113098,
+ 0x001130a5, 0x001130b2, 0x001130bf, 0x001130cc,
+ 0x001130d9, 0x001130e6, 0x001130f3, 0x00113100,
+ 0x0011310d, 0x0011311a, 0x00113127, 0x00113134,
+ 0x00113141, 0x0011314e, 0x0011315b, 0x00113168,
+ 0x00113175, 0x00113182, 0x0011318f, 0x0011319c,
+ 0x001131a9, 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, 0x481350ec, 0x05fdff97, 0x05020807,
+ 0x82101d00, 0x0fffffff, 0x480fc021, 0x900c01c0,
+ 0x4803c022, 0x1c01f000, 0x497bc021, 0x497bc022,
+ 0x4a03c020, 0x00004020, 0x4a03c011, 0x40200011,
+ 0x6016d800, 0x05027011, 0x59e00020, 0x90000582,
+ 0x0502000e, 0x05006000, 0x4203e000, 0x40000000,
+ 0x59e00017, 0x60000800, 0x8c00050a, 0x059e0cc6,
+ 0x8d0c0530, 0x059e0cb9, 0x059e0cbb, 0x6403c017,
+ 0x4203e000, 0x30000001, 0x0595fd65, 0x05fdf7ff,
+ 0x59a808d6, 0x8c100502, 0x05000003, 0x84040d42,
+ 0x0501f007, 0x8c100504, 0x05000003, 0x84040d44,
+ 0x0501f003, 0x8c100500, 0x84040d40, 0x480750d6,
+ 0x1c01f000, 0x59a800d6, 0x8c000502, 0x05000009,
+ 0x4a0350d7, 0x0000008b, 0x4a0350d8, 0x0000008b,
+ 0x4a0350d9, 0x0000008b, 0x641350da, 0x0501f00c,
+ 0x8c000504, 0x05000006, 0x65bf50d7, 0x65bf50d8,
+ 0x65df50d9, 0x640350da, 0x0501f005, 0x64cf50d7,
+ 0x64cf50d8, 0x649750d9, 0x640350da, 0x1c01f000,
+ 0x909963d2, 0x00000000, 0x00000000, 0x00116000,
+ 0x0000320d, 0x00000000, 0x00000000, 0x00020000,
+ 0x000011e7, 0x916c0583, 0x010201aa, 0x42000000,
+ 0x00111c89, 0x50000000, 0x800001c0, 0x05020a46,
+ 0x0501fa03, 0x0501fffc, 0x0501fbb9, 0x8d0c0516,
+ 0x05000f77, 0x8d0c0516, 0x05000e2c, 0x59a800a5,
+ 0x80000540, 0x01060b27, 0x0505fcb9, 0x80ddb9c0,
+ 0x05000007, 0x4df00000, 0x4203e000, 0x50000000,
+ 0x58de5801, 0x0135fba1, 0x5c03e000, 0x05fdf7e6,
+ 0x835c0480, 0x00000104, 0x010411dc, 0x416a5800,
+ 0x592ed000, 0x497a5800, 0x497a5801, 0x815eb840,
+ 0x812e59c0, 0x1c01f000, 0x42007000, 0x000211e8,
+ 0x58380004, 0x49781000, 0x64001002, 0x48087004,
+ 0x80000d40, 0x05020006, 0x48087005, 0x58380000,
+ 0x80000540, 0x0500000a, 0x1c01f000, 0x48080800,
+ 0x05fdf7fb, 0x42007000, 0x000211e8, 0x58380000,
+ 0x80000540, 0x05000002, 0x1c01f000, 0x58380807,
+ 0x800409c0, 0x01060291, 0x58380005, 0x80006d40,
+ 0x05020002, 0x1c01f000, 0x58340000, 0x48347001,
+ 0x80000540, 0x05020002, 0x48007004, 0x48007005,
+ 0x4a03b805, 0x30000002, 0x58340007, 0x59dc0806,
+ 0x4803b800, 0x58340008, 0x4803b801, 0x58340806,
+ 0x4807b81f, 0x58340805, 0x58341003, 0x58340001,
+ 0x48047002, 0x48087003, 0x480bb803, 0x8c000500,
+ 0x05020004, 0x64087000, 0x6407c824, 0x0501f004,
+ 0x64047000, 0x6503c824, 0x0105f2bd, 0x58380802,
+ 0x600011fe, 0x82040480, 0x0000ff00, 0x05021003,
+ 0x40041000, 0x80000580, 0x48007002, 0x480bb802,
+ 0x4a03b805, 0x10000002, 0x1c01f000, 0x59dc0806,
+ 0x4a03b805, 0x20000000, 0x8c04053e, 0x05000009,
+ 0x8c040508, 0x01020e15, 0x42007000, 0x000211e8,
+ 0x58380000, 0x90001484, 0x0c001003, 0x0101fe15,
+ 0x1c01f000, 0x0002003e, 0x00020080, 0x00020087,
+ 0x00101557, 0x82040d00, 0x43200f80, 0x010602ca,
+ 0x58380002, 0x80000540, 0x05000008, 0x0105f2bd,
+ 0x82040d00, 0x43200f80, 0x010602ca, 0x58380002,
+ 0x80000540, 0x05fe07d6, 0x58386001, 0x58300009,
+ 0x4a006002, 0x00000100, 0x64007000, 0x80001540,
+ 0x05fc07ab, 0x59dc0000, 0x48006007, 0x59dc0001,
+ 0x48006008, 0x0809f800, 0x05fdf79f, 0x84040d1e,
+ 0x59e00017, 0x8c00050c, 0x05020007, 0x59a818a3,
+ 0x800400c4, 0x800c1c00, 0x580c0003, 0x8c000500,
+ 0x05000008, 0x59a800a5, 0x4c000000, 0x0105fb18,
+ 0x5c000000, 0x80000540, 0x010602e2, 0x1c01f000,
+ 0x4d2c0000, 0x4c040000, 0x4c0c0000, 0x05fdff71,
+ 0x5c001800, 0x5c000800, 0x05000014, 0x82040400,
+ 0x00111efa, 0x50000000, 0x48025806, 0x64025801,
+ 0x64125805, 0x64065804, 0x900c0402, 0x48025803,
+ 0x580c0000, 0x48025807, 0x580c0001, 0x48025808,
+ 0x4a025809, 0x000200c7, 0x4806580a, 0x412c1000,
+ 0x5c025800, 0x05fdf765, 0x5c025800, 0x0105f318,
+ 0x58300802, 0x82040580, 0x00000100, 0x010602d7,
+ 0x4d2c0000, 0x40325800, 0x0105f9ca, 0x5c025800,
+ 0x0105f2e2, 0x59b800ea, 0x82000d00, 0xf2000038,
+ 0x0106048a, 0x8c000510, 0x01040489, 0x59ba60e0,
+ 0x81300182, 0x0502104c, 0x05002030, 0x8532653e,
+ 0x59300407, 0x90000583, 0x0502002a, 0x59300203,
+ 0x90000584, 0x05020027, 0x59325809, 0x59300004,
+ 0x4a025a08, 0x00000103, 0x497a580d, 0x8c00053e,
+ 0x0502001a, 0x59300008, 0x82000500, 0x04000800,
+ 0x82000580, 0x04000800, 0x05000017, 0x0501faba,
+ 0x59325827, 0x812e59c0, 0x010609ca, 0x5932680a,
+ 0x0505ff1d, 0x5934000f, 0x8d0c0512, 0x05020005,
+ 0x5934140b, 0x80081040, 0x05001002, 0x480a6c0b,
+ 0x80000540, 0x05020a37, 0x59b800ea, 0x8c000510,
+ 0x05fe07d7, 0x1c01f000, 0x0145fd77, 0x05fc07e6,
+ 0x0105f482, 0x59300221, 0x48025c13, 0x05fdf7e8,
+ 0x61567000, 0x0501f024, 0x83326500, 0x3fffffff,
+ 0x59300407, 0x90000583, 0x05020015, 0x59325809,
+ 0x5932680a, 0x4a025a08, 0x00000103, 0x497a580d,
+ 0x0501fa95, 0x59325827, 0x812e59c0, 0x010609c9,
+ 0x0505fef9, 0x5934000f, 0x8d0c0512, 0x05020005,
+ 0x5934140b, 0x80081040, 0x05001002, 0x480a6c0b,
+ 0x80000540, 0x05020a13, 0x05fdf7dc, 0x61527000,
+ 0x0501f009, 0x83300500, 0x60000000, 0x05000013,
+ 0x81326580, 0x8000013a, 0x82000400, 0x00100c8e,
+ 0x50027000, 0x59300c07, 0x90040580, 0x01040482,
+ 0x90040582, 0x01040482, 0x59300004, 0x8c00053e,
+ 0x05020003, 0x0505ff05, 0x05fdf7c8, 0x0145fd77,
+ 0x05fc07fd, 0x0105f482, 0x83300500, 0x1f000000,
+ 0x01040484, 0x81326580, 0x80000130, 0x90000c9b,
+ 0x01021e15, 0x1201f000, 0x00100c92, 0x82000500,
+ 0xf0000000, 0x82040d00, 0x0fffffff, 0x80040d40,
+ 0x4807c857, 0x59b800ea, 0x8c000516, 0x010605b6,
+ 0x480770e1, 0x1c01f000, 0x59325809, 0x412c7000,
+ 0x58380a08, 0x82040d00, 0x000000ff, 0xb00405a8,
+ 0x01080024, 0xb00405aa, 0x01080024, 0xb00405ba,
+ 0x0108003d, 0xb00405b2, 0x0108003d, 0x58380a08,
+ 0x9004050f, 0x82000c00, 0x0010004b, 0x50044000,
+ 0x0c01f001, 0x00101023, 0x00101023, 0x00020170,
+ 0x00101023, 0x00101023, 0x00101023, 0x00101023,
+ 0x00101023, 0x0002017e, 0x00101043, 0x00101023,
+ 0x00101023, 0x00101023, 0x00101023, 0x00101023,
+ 0x00101023, 0x5838040e, 0x8c000500, 0x01000e15,
+ 0x50200000, 0x80387c00, 0x583c1002, 0x583c2800,
+ 0x583c2001, 0x58380a0b, 0x58383013, 0x59303808,
+ 0x58380011, 0x48026014, 0x0501f00e, 0x5838020e,
+ 0x8c000502, 0x01080023, 0x50200000, 0x80387c00,
+ 0x583c2800, 0x583c2001, 0x583c1002, 0x592c0a0b,
+ 0x592c3013, 0x59303808, 0x497a6014, 0x497a6015,
+ 0x48166010, 0x48126011, 0x480a6012, 0x481a6013,
+ 0x80040840, 0x4806600f, 0x010a006a, 0x841c3d40,
+ 0x481e6008, 0x1c01f000, 0x4d2c0000, 0x59325809,
+ 0x592c0a08, 0x4807c857, 0x82040d00, 0x000000ff,
+ 0x9004050f, 0x1201f000, 0x0010118f, 0x41787800,
+ 0x59325809, 0x592c0c0e, 0x8c040502, 0x010801bf,
+ 0x592c0011, 0x592c1013, 0x592c0a08, 0x480a6013,
+ 0x48026014, 0x48026015, 0x82040d00, 0x000000ff,
+ 0xb00405b2, 0x010801c5, 0xb00405ba, 0x010801c5,
+ 0x412c3000, 0x9004050f, 0x82000400, 0x0010004b,
+ 0x50003800, 0x8c3c050e, 0x05000002, 0x801c3800,
+ 0x501c0000, 0x592c1a0b, 0x4802600c, 0x481a600d,
+ 0x481e600e, 0x480e600f, 0x843c7d4a, 0x403c1000,
+ 0x1c01f000, 0x59e00004, 0x8c00050e, 0x05fe06ac,
+ 0x1c01f000, 0x42001000, 0x0011458b, 0x5808000a,
+ 0x80000540, 0x010a071d, 0x4a001003, 0x00114595,
+ 0x4c080000, 0x0501f812, 0x5c001000, 0x4814100a,
+ 0x480c1007, 0x48101008, 0x64001001, 0x64101005,
+ 0x64041004, 0x05fdf655, 0x58300802, 0x82040580,
+ 0x00000100, 0x010a072c, 0x82300580, 0x0011458b,
+ 0x010a0727, 0x4978600a, 0x1c01f000, 0x61901800,
+ 0x800c1840, 0x05000006, 0x64070000, 0x40000000,
+ 0x59800000, 0x8c000500, 0x05fc07fa, 0x01080777,
+ 0x600028f4, 0x58142024, 0x58141823, 0x58142825,
+ 0x64030000, 0x1c01f000, 0x4c000000, 0x4df00000,
+ 0x4203e000, 0xb0100000, 0x41f00000, 0x81fe1500,
+ 0x8d080512, 0x010e09a4, 0x8d08051c, 0x05060cfc,
+ 0x8d080518, 0x05060d2f, 0x8d08051a, 0x05fe0ed6,
+ 0x83080500, 0x00000d00, 0x05020804, 0x5c03e000,
+ 0x5c000000, 0x1801f000, 0x8d080516, 0x010a0fde,
+ 0x8d080514, 0x05fe0fbc, 0x8d080508, 0x010a0bdb,
+ 0x8d080500, 0x05060c55, 0x8d08050c, 0x010e08a1,
+ 0x8d08050a, 0x010a050e, 0x1c01f000, 0x42000000,
+ 0x00111c8f, 0x50000000, 0x8c000504, 0x05000013,
+ 0x8c000508, 0x05020004, 0x8c000502, 0x05020002,
0x1c01f000, 0x4df00000, 0x4203e000, 0x50000000,
- 0x59d8110a, 0x59d8010a, 0x80080580, 0x05fe07fd,
- 0x59742c08, 0x59740003, 0x480aec09, 0x48082800,
- 0x80000540, 0x05002011, 0x05000007, 0x59980004,
- 0x90000585, 0x0500000d, 0x59a8009b, 0x81640580,
- 0x0502000a, 0x58140100, 0x80080d80, 0x0500001f,
- 0x59740c02, 0x80040d80, 0x0500000e, 0x59980805,
- 0x4802ec02, 0x4806e803, 0x0500ead1, 0x8d0c0524,
- 0x05020003, 0x5c03e000, 0x1c01f000, 0x59d8010b,
- 0x59d8110a, 0x80080580, 0x05000010, 0x05fc67fa,
- 0x05006013, 0x59740a09, 0x59e00017, 0x8c00050a,
- 0x05020012, 0x8c04051e, 0x05020005, 0x59741202,
- 0x800810e0, 0x90081554, 0x480bc011, 0x4807c017,
- 0x4203e000, 0x30000001, 0x4a02e803, 0xffff0000,
- 0x850e1d24, 0x0500eab6, 0x05fdf7e7, 0x850e1d64,
- 0x0500eab3, 0x05fdf7e4, 0x4c040000, 0x05fdfc9d,
- 0x5c000800, 0x8c04051e, 0x05fc07ed, 0x5c03e000,
- 0x1c01f000, 0x592c0c08, 0x58040000, 0x58040900,
- 0x80040580, 0x05000019, 0x592c0402, 0x80040580,
- 0x05000005, 0x59980005, 0x48025803, 0x48065c02,
- 0x1c01f000, 0x05006013, 0x592c0a09, 0x4a025803,
- 0xffff0000, 0x59e00017, 0x8c00050a, 0x0502000e,
- 0x8c04051e, 0x05020005, 0x592c0202, 0x800000e0,
- 0x90000554, 0x4803c011, 0x4807c017, 0x4203e000,
- 0x30000001, 0x1c01f000, 0x4a025803, 0xffff0000,
- 0x1c01f000, 0x4c040000, 0x05fdfc76, 0x5c000800,
- 0x8c04051e, 0x05fc07f1, 0x1c01f000, 0x4df00000,
- 0x4203e000, 0x50000000, 0x59940023, 0x80000540,
- 0x05002012, 0x05000007, 0x59980004, 0x90000585,
- 0x0500000e, 0x59a8009b, 0x81640580, 0x0502000b,
- 0x59d8010b, 0x59d8110a, 0x80080d80, 0x05000023,
- 0x59980806, 0x80040d80, 0x05000013, 0x59980805,
- 0x48072823, 0x48033006, 0x0500ea55, 0x8d0c0524,
- 0x05020005, 0x8d0c0526, 0x050209a6, 0x5c03e000,
- 0x1c01f000, 0x59d8110a, 0x59d8010a, 0x80080580,
- 0x05fe07fd, 0x59d8010b, 0x80080580, 0x0500000f,
- 0x05fc67f5, 0x05006012, 0x800810e0, 0x90081553,
- 0x480bc011, 0x60040800, 0x59e00017, 0x8c00050a,
- 0x0502000e, 0x8d0c0530, 0x0502000e, 0x6407c017,
- 0x4203e000, 0x30000001, 0x4a032823, 0xffff0000,
- 0x850e1d24, 0x0500ea36, 0x05fdf7e3, 0x850e1d64,
- 0x0500ea33, 0x05fdf7e0, 0x05fdfc36, 0x05fdf7f4,
- 0x8c000500, 0x05fe0d5d, 0x05fdf7f1, 0x4df00000,
- 0x4203e000, 0x50000000, 0x59b800e4, 0x8c000518,
- 0x0502001b, 0x830c0500, 0x00140000, 0x0502001b,
- 0x59940023, 0x80000540, 0x0500200c, 0x05000017,
- 0x59980004, 0x90000585, 0x05000008, 0x59a8009b,
- 0x81640580, 0x05020005, 0x59a80099, 0x59a80898,
- 0x80040580, 0x0500000c, 0x0500ea15, 0x05006004,
- 0x8d0c0524, 0x0502000a, 0x0501fa4a, 0x8d0c0526,
- 0x05020964, 0x5c03e000, 0x1c01f000, 0x4a0370e4,
- 0x00002000, 0x850e1d68, 0x0500604c, 0x59d8090a,
- 0x59d8010a, 0x80041580, 0x05fe07fd, 0x59d8190b,
- 0x800c1580, 0x59981006, 0x480f3006, 0x05000037,
- 0x0501f844, 0x59980007, 0x483b3007, 0x0500000d,
- 0x8d0c0528, 0x05020021, 0x80380580, 0x05020004,
- 0x40080000, 0x800c0580, 0x0500001c, 0x59980005,
- 0x48032823, 0x830e1d00, 0xffebffff, 0x05fdf7e0,
- 0x8d0c0528, 0x05020004, 0x40080000, 0x800c0580,
- 0x05fe07f7, 0x800408e0, 0x90040d53, 0x60041000,
- 0x4807c011, 0x59e00017, 0x8c00050a, 0x0502000f,
- 0x8d0c0530, 0x05020012, 0x480bc017, 0x4203e000,
- 0x30000001, 0x4a032823, 0xffff0000, 0x830e1d00,
- 0xffebffff, 0x05fdf7ca, 0x800408e0, 0x90040d5d,
- 0x60001000, 0x05fdf7ef, 0x4c080000, 0x40080800,
- 0x05fdfbd8, 0x5c001000, 0x05fdf7f0, 0x8c000500,
- 0x05fc07ee, 0x4c080000, 0x40080800, 0x05fdfcfb,
- 0x5c001000, 0x05fdf7e9, 0x0501f80e, 0x59980007,
- 0x483b3007, 0x05fc07e8, 0x80380580, 0x05000003,
- 0x8d0c0528, 0x05fc07ce, 0x912801c0, 0x90000d5c,
- 0x60001000, 0x05fdf7d7, 0x850e1d64, 0x05fdf7a7,
- 0x59e0000f, 0x59e0680f, 0x80346d80, 0x05fe07fd,
- 0x40025000, 0x59e00010, 0x59e07010, 0x80387580,
- 0x05fe07fd, 0x40007000, 0x81280580, 0x1c01f000,
+ 0x42034000, 0x00111c71, 0x59a0001e, 0x59a1d806,
+ 0x84000502, 0x4803401e, 0x58ec0009, 0x0801f800,
+ 0x5c03e000, 0x1c01f000, 0x05027002, 0x05026002,
+ 0x1c01f000, 0x4df00000, 0x4203e000, 0x50000000,
+ 0x59e00020, 0xb0000d85, 0x05000003, 0xb0000d84,
+ 0x05020007, 0x4803c857, 0x42000800, 0x000211e8,
+ 0x58040800, 0x90040d80, 0x05020019, 0x0105f9b9,
+ 0x05000017, 0x412dd800, 0x48efc857, 0x0125fa58,
+ 0x42034000, 0x00111c71, 0x49a1d80b, 0x48ef4006,
+ 0x59a0001e, 0x84000544, 0x4803401e, 0x59e00020,
+ 0x4803c857, 0x59e00021, 0x4803c857, 0x59e00022,
+ 0x4803c857, 0x59e00023, 0x4803c857, 0x59e00024,
+ 0x4803c857, 0x0115f9ff, 0x0115fa17, 0x5c03e000,
+ 0x1c01f000, 0x4c5c0000, 0x4da00000, 0x4df00000,
+ 0x4203e000, 0x50000000, 0x05006062, 0x42034000,
+ 0x00111c71, 0x59a01018, 0x59a01819, 0x800c19c0,
+ 0x05020009, 0x59a0381c, 0x801c39c0, 0x01000e15,
+ 0x49a3c857, 0x481fc857, 0x59a0041d, 0x801c3c00,
+ 0x0501f00a, 0x59a0041a, 0x90000402, 0x4803441a,
+ 0x90000c97, 0x05001003, 0x497b441a, 0x41780000,
+ 0x59a03817, 0x801c3c00, 0x401cb800, 0x80081040,
+ 0x480b4018, 0x581c0200, 0x4803c021, 0x581c0401,
+ 0x4803c022, 0x581c0201, 0x4803c023, 0x581c0400,
+ 0x4803c020, 0x900001c0, 0x90000552, 0x4803c011,
+ 0x8d0c0530, 0x0500000f, 0x4c080000, 0x4c0c0000,
+ 0x4c1c0000, 0x59e00017, 0x8c00050a, 0x05000004,
+ 0x60000800, 0x05fdfe16, 0x0501f003, 0x8c000500,
+ 0x05fe0f3d, 0x5c003800, 0x5c001800, 0x5c001000,
+ 0x6403c017, 0x4203e000, 0x30000001, 0x800c19c0,
+ 0x05000007, 0x800c1840, 0x480f4019, 0x0502001b,
+ 0x497b441a, 0x497b421a, 0x0501f018, 0x800811c0,
+ 0x0502000a, 0x4d2c0000, 0x59a2581c, 0x0105f9c9,
+ 0x5c025800, 0x497b401c, 0x497b401b, 0x497b441d,
+ 0x497b421d, 0x0501f00d, 0x59a0041d, 0x90000402,
+ 0x90000c96, 0x4803441d, 0x05001008, 0x4d2c0000,
+ 0x59a2581c, 0x592c3817, 0x481f401c, 0x497b441d,
+ 0x0105f9c9, 0x5c025800, 0x8d0c052a, 0x05000009,
+ 0x60083800, 0x42000800, 0x25000000, 0x585c1800,
+ 0x585c3001, 0x900c19c0, 0x901831c0, 0x0101fed5,
+ 0x5c03e000, 0x5c034000, 0x5c00b800, 0x1c01f000,
+ 0x8d0c0520, 0x05000003, 0x59a80005, 0x8c000516,
+ 0x1c01f000, 0x910c0503, 0x012a04d4, 0x59340400,
+ 0x82000580, 0x00000606, 0x012a04ae, 0x5934000d,
+ 0x80027d40, 0x012a04dd, 0x592c1003, 0x5808720a,
+ 0x8c380500, 0x05000005, 0x592c1813, 0x5808000d,
+ 0x800c0400, 0x4800100d, 0x5934000f, 0x59341203,
+ 0x80080540, 0x05020021, 0x8d0c0512, 0x05000010,
+ 0x0505fd1f, 0x05000017, 0x59a800d7, 0x80000040,
+ 0x05fe07ff, 0x492e6009, 0x4936600a, 0x58d400ea,
+ 0x8c000516, 0x05fe07fe, 0x83300400, 0x20000000,
+ 0x4801a8e1, 0x80000580, 0x1c01f000, 0x5934000b,
+ 0x80001920, 0x82000500, 0x0000ffff, 0x800c0480,
+ 0x0502100a, 0x800c1800, 0x480e6c0b, 0x05fdf7e9,
+ 0x8d0c0512, 0x05020005, 0x59341c0b, 0x800c1840,
+ 0x480e6c0b, 0x59341203, 0x0501f803, 0x80000580,
+ 0x1c01f000, 0x800811c0, 0x05020002, 0x64066a03,
+ 0x59340010, 0x492e6810, 0x80000d40, 0x05020008,
+ 0x492e680f, 0x592c040a, 0x800000c2, 0x800018c4,
+ 0x800c0400, 0x48025807, 0x1c01f000, 0x492c0800,
+ 0x05fdf7f9, 0x59a800ad, 0x81440480, 0x05021024,
+ 0x83442400, 0x0010db80, 0x50100000, 0x80000d40,
+ 0x0500001f, 0x82000d00, 0xe0000000, 0x0500001e,
+ 0x8d0c0538, 0x0500001a, 0x82000500, 0x00ffffff,
+ 0x82041d80, 0x20000000, 0x05000017, 0x82041d80,
+ 0x80000000, 0x05020007, 0x84040d7a, 0x4c000000,
+ 0x80040540, 0x44002000, 0x5c000000, 0x0501f00e,
+ 0x82041d80, 0xa0000000, 0x0500000b, 0x82041d80,
+ 0x40000000, 0x05020006, 0x4c040000, 0x012df81b,
+ 0x5c000800, 0x40340000, 0x05000003, 0x90000541,
+ 0x1c01f000, 0x40026800, 0x80000580, 0x05fdf7fd,
+ 0x59340203, 0x80000540, 0x05020036, 0x4d300000,
+ 0x4d2c0000, 0x5934000f, 0x80025d40, 0x0500002f,
+ 0x0505fcbb, 0x05000021, 0x592c0000, 0x4802680f,
+ 0x80000540, 0x05020002, 0x48026810, 0x592c2a08,
+ 0x4936600a, 0x4c080000, 0x0131f8a2, 0x5c001000,
+ 0x05000025, 0x492e6009, 0x8d0c0512, 0x05000010,
+ 0x58d400ea, 0x8c000516, 0x05fe07fe, 0x83300400,
+ 0x20000000, 0x4801a8e1, 0x8d0c0512, 0x05fe07e6,
+ 0x5934000b, 0x80001120, 0x82000500, 0x0000ffff,
+ 0x80080480, 0x05fc17e0, 0x0501f010, 0x80081000,
+ 0x480a6c0b, 0x05fdf7ef, 0x4c080000, 0x0131f8a2,
+ 0x05020008, 0x42000000, 0x001123e6, 0x0169ff57,
+ 0x0161f906, 0x05000003, 0x5c001000, 0x05fdf7d7,
+ 0x5c001000, 0x64066a03, 0x5c025800, 0x5c026000,
+ 0x1c01f000, 0x497a5800, 0x4932580d, 0x4a026007,
+ 0x00068000, 0x641e6203, 0x0501f802, 0x05fdf7df,
+ 0x592e440b, 0x83224500, 0x000000ff, 0x83200400,
+ 0x0010d8f9, 0x50024800, 0x4926601d, 0x592c0210,
+ 0x48026202, 0x59240206, 0x8c000510, 0x012e0170,
+ 0x8d0c050e, 0x012e016e, 0x59240200, 0x8c000516,
+ 0x012e016c, 0x59340200, 0x8c000518, 0x012e016a,
+ 0x64025a0a, 0x8c000508, 0x012e0168, 0x492e6009,
+ 0x4d3c0000, 0x417a7800, 0x0505fad6, 0x5c027800,
+ 0x1c01f000, 0x58040001, 0x49680800, 0x49780801,
+ 0x815eb800, 0x4006d000, 0x80000d40, 0x05fe07fa,
+ 0x497a5801, 0x59c80000, 0x82000540, 0x00001200,
+ 0x48039000, 0x1c01f000, 0x59980005, 0x48032823,
+ 0x59d8010b, 0x48033006, 0x1c01f000, 0x59980005,
+ 0x59747408, 0x58387100, 0x483aec02, 0x4802e803,
+ 0x1c01f000, 0x592c0408, 0x8c00051e, 0x013200fc,
+ 0x497a5800, 0x8d0c0516, 0x05020003, 0x0501fa49,
+ 0x0501f011, 0x8d0c0526, 0x0502000d, 0x0502d007,
+ 0x592c0001, 0x492fb107, 0x80000d40, 0x05fe0fda,
+ 0x0500e1c4, 0x1c01f000, 0x0500e9c2, 0x05fcd7f9,
+ 0x42000000, 0x00112349, 0x0169ff5a, 0x0501fa39,
+ 0x0500da49, 0x0500e1bb, 0x59d80105, 0x82000d00,
+ 0x01238780, 0x05020257, 0x1c01f000, 0x59980003,
+ 0x0c01f001, 0x000203ce, 0x000203cf, 0x00020447,
+ 0x00020487, 0x000203dd, 0x00020504, 0x1c01f000,
+ 0x4df00000, 0x4203e000, 0x50000000, 0x05026a8e,
+ 0x05006003, 0x8d0c0520, 0x05020b35, 0x830c0580,
+ 0x00080800, 0x82000500, 0x00080800, 0x05000a2e,
+ 0x5c03e000, 0x1c01f000, 0x4df00000, 0x4203e000,
+ 0x50000000, 0x59d8110a, 0x59d8010a, 0x80080580,
+ 0x05fe07fd, 0x59742c08, 0x59740003, 0x480aec09,
+ 0x48082800, 0x80000540, 0x05002011, 0x05000007,
+ 0x59980004, 0x90000585, 0x0500000d, 0x59a8009e,
+ 0x81640580, 0x0502000a, 0x58140100, 0x80080d80,
+ 0x0500001f, 0x59740c02, 0x80040d80, 0x0500000e,
+ 0x59980805, 0x4802ec02, 0x4806e803, 0x0500ead1,
+ 0x8d0c0524, 0x05020003, 0x5c03e000, 0x1c01f000,
+ 0x59d8010b, 0x59d8110a, 0x80080580, 0x05000010,
+ 0x05fc67fa, 0x05006013, 0x59740a09, 0x59e00017,
+ 0x8c00050a, 0x05020012, 0x8c04051e, 0x05020005,
+ 0x59741202, 0x800810e0, 0x90081554, 0x480bc011,
+ 0x4807c017, 0x4203e000, 0x30000001, 0x4a02e803,
+ 0xffff0000, 0x850e1d24, 0x0500eab6, 0x05fdf7e7,
+ 0x850e1d64, 0x0500eab3, 0x05fdf7e4, 0x4c040000,
+ 0x05fdfc7f, 0x5c000800, 0x8c04051e, 0x05fc07ed,
+ 0x5c03e000, 0x1c01f000, 0x592c0c08, 0x592c0409,
+ 0x58040900, 0x80040580, 0x05000019, 0x592c0402,
+ 0x80040580, 0x05000005, 0x59980005, 0x48025803,
+ 0x48065c02, 0x1c01f000, 0x05006013, 0x592c0a09,
+ 0x4a025803, 0xffff0000, 0x59e00017, 0x8c00050a,
+ 0x0502000e, 0x8c04051e, 0x05020005, 0x592c0202,
+ 0x800000e0, 0x90000554, 0x4803c011, 0x4807c017,
+ 0x4203e000, 0x30000001, 0x1c01f000, 0x4a025803,
+ 0xffff0000, 0x1c01f000, 0x4c040000, 0x05fdfc58,
+ 0x5c000800, 0x8c04051e, 0x05fc07f1, 0x1c01f000,
+ 0x4df00000, 0x4203e000, 0x50000000, 0x59940023,
+ 0x80000540, 0x05002012, 0x05000007, 0x59980004,
+ 0x90000585, 0x0500000e, 0x59a8009e, 0x81640580,
+ 0x0502000b, 0x59d8010b, 0x59d8110a, 0x80080d80,
+ 0x05000023, 0x59980806, 0x80040d80, 0x05000013,
+ 0x59980805, 0x48072823, 0x48033006, 0x0500ea55,
+ 0x8d0c0524, 0x05020005, 0x8d0c0526, 0x050209a6,
+ 0x5c03e000, 0x1c01f000, 0x59d8110a, 0x59d8010a,
+ 0x80080580, 0x05fe07fd, 0x59d8010b, 0x80080580,
+ 0x0500000f, 0x05fc67f5, 0x05006012, 0x800810e0,
+ 0x90081553, 0x480bc011, 0x60040800, 0x59e00017,
+ 0x8c00050a, 0x0502000e, 0x8d0c0530, 0x0502000e,
+ 0x6407c017, 0x4203e000, 0x30000001, 0x4a032823,
+ 0xffff0000, 0x850e1d24, 0x0500ea36, 0x05fdf7e3,
+ 0x850e1d64, 0x0500ea33, 0x05fdf7e0, 0x05fdfc18,
+ 0x05fdf7f4, 0x8c000500, 0x05fe0d3f, 0x05fdf7f1,
0x4df00000, 0x4203e000, 0x50000000, 0x59b800e4,
- 0x8c000518, 0x05020067, 0x59d8110a, 0x59d8010a,
- 0x80080580, 0x05fe07fd, 0x59742c08, 0x59740003,
- 0x480aec09, 0x48082800, 0x80000540, 0x05002015,
- 0x0500000b, 0x59980004, 0x90000585, 0x05000011,
- 0x59a8009b, 0x81640580, 0x0502000e, 0x59a80099,
- 0x59a80898, 0x80040580, 0x0500002a, 0x58140100,
- 0x80080d80, 0x05000013, 0x59740c02, 0x80040d80,
- 0x05000024, 0x59980805, 0x4802ec02, 0x4806e803,
- 0x0500e9a3, 0x8d0c0524, 0x05020019, 0x05006007,
- 0x8d0c0528, 0x0502000b, 0x59940023, 0x80000540,
- 0x05000008, 0x0501f9bb, 0x5c03e000, 0x1c01f000,
- 0x4a02e803, 0xffff0000, 0x850e1d24, 0x0500e994,
- 0x05fdffc0, 0x59980007, 0x483b3007, 0x05000031,
- 0x80380580, 0x05000024, 0x8d0c0528, 0x05020022,
- 0x59980005, 0x48032823, 0x05fdf7f0, 0x59d8010b,
- 0x59d8110a, 0x80080580, 0x05fc07ee, 0x05fc67eb,
- 0x05006016, 0x59740a09, 0x59e00017, 0x8c00050a,
- 0x05020028, 0x8c04051e, 0x05020005, 0x59741202,
- 0x800810e0, 0x90081554, 0x480bc011, 0x4807c017,
- 0x4203e000, 0x30000001, 0x4a02e803, 0xffff0000,
- 0x4a032823, 0xffff0000, 0x830e1d00, 0xffebffff,
- 0x0500e96f, 0x05fdf7d5, 0x850e1d64, 0x0500e96c,
- 0x05fdf7d2, 0x05fc67d1, 0x912801c0, 0x90000d5c,
- 0x4807c011, 0x59e00017, 0x8c00050a, 0x60000800,
- 0x05fe0b50, 0x6403c017, 0x4203e000, 0x30000001,
- 0x4a032823, 0xffff0000, 0x850e1d28, 0x05fdf7c3,
- 0x4a0370e4, 0x00002000, 0x850e1d68, 0x05fdf797,
- 0x4c040000, 0x05fdfb43, 0x5c000800, 0x8c04051e,
- 0x05fc07d7, 0x5c03e000, 0x1c01f000, 0x59d81108,
- 0x835c0480, 0x00000104, 0x0500101c, 0x0502b01a,
- 0x480bb007, 0x05fce7fa, 0x59d80105, 0x82000500,
- 0x01238780, 0x05020096, 0x8d0c0522, 0x0500001f,
- 0x8d0c0516, 0x0502000c, 0x59d8090a, 0x59d8010a,
- 0x80040580, 0x05fe07fd, 0x59741003, 0x59740408,
- 0x48040000, 0x4806ec09, 0x800811c0, 0x05fc260f,
- 0x1c01f000, 0x59940023, 0x80000540, 0x05fc2606,
- 0x1c01f000, 0x0500f00a, 0x49681000, 0x400ad000,
- 0x815eb800, 0x59c80000, 0x82000540, 0x00001200,
- 0x48039000, 0x05fee7e1, 0x05fdf7d9, 0x480ba807,
- 0x05fee7de, 0x05fdf7d6, 0x05006024, 0x850e1d24,
- 0x59d8010a, 0x59d8090a, 0x80040580, 0x05fe07fd,
- 0x8d0c0516, 0x05000016, 0x59d8010b, 0x59d8110b,
- 0x80081580, 0x05fe07fd, 0x80040580, 0x0500000f,
- 0x800408e0, 0x8d0c0520, 0x05020016, 0x90040d53,
- 0x4807c011, 0x59740a09, 0x59e00017, 0x8c00050a,
- 0x05020031, 0x8d0c0530, 0x05020033, 0x4807c017,
- 0x4203e000, 0x30000001, 0x1c01f000, 0x59740408,
- 0x4806ec09, 0x48040000, 0x59740a02, 0x800408e0,
- 0x90040d54, 0x05fdf7ef, 0x850e1d64, 0x1c01f000,
- 0x59e0000f, 0x59b818e4, 0x59e0100f, 0x80081580,
- 0x05fe07fc, 0x8c0c050c, 0x05fe07fa, 0x81281580,
- 0x05000012, 0x40025000, 0x820c0500, 0x04000000,
- 0x850e1d34, 0x810e1d40, 0x90040d5d, 0x4807c011,
- 0x59e00017, 0x60000800, 0x8c00050a, 0x0502000e,
- 0x8d0c0530, 0x05020010, 0x6403c017, 0x4203e000,
- 0x30000001, 0x1c01f000, 0x40001000, 0x400c0000,
- 0x810c0580, 0x8c000534, 0x40080000, 0x05fe07ea,
- 0x05fdf7cb, 0x4c040000, 0x05fdfaca, 0x5c000800,
- 0x05fdf7cf, 0x8c000500, 0x05fc07cd, 0x4c040000,
- 0x05fdfbee, 0x5c000800, 0x05fdf7c9, 0x592c2802,
- 0x801429c0, 0x0500000d, 0x58140804, 0x592c0001,
- 0x492c2804, 0x800409c0, 0x05000005, 0x492c0800,
- 0x80000d40, 0x05fe058f, 0x1c01f000, 0x492c2805,
- 0x850e1d66, 0x05fdf7fb, 0x492fc857, 0x0105f19b,
- 0x0502d00c, 0x59740805, 0x58040000, 0x4807b107,
- 0x80000d40, 0x05020005, 0x4802e804, 0x850e1d26,
- 0x4802e805, 0x1c01f000, 0x05fcd7f8, 0x05fdf7fd,
- 0x59d80105, 0x82000500, 0x01238780, 0x05020004,
- 0x42000000, 0x0010e3a8, 0x0165f7df, 0x4803c857,
- 0x485fc857, 0x8c00050e, 0x01020dd3, 0x4203e000,
- 0x50000000, 0x6010b900, 0x0101f5de, 0x4a03b104,
- 0x10000000, 0x592c4408, 0x592c1409, 0x800800cc,
- 0x592c2006, 0x80100400, 0x4803b100, 0x497bb102,
- 0x59d80101, 0x4813b100, 0x592c0007, 0x4803b101,
- 0x592c0208, 0x82000540, 0x00400000, 0x4803b103,
- 0x58200900, 0x480bb10a, 0x4807b10b, 0x592c0001,
- 0x4803b11f, 0x4a03b104, 0x10000001, 0x412ee800,
+ 0x8c000518, 0x0502001b, 0x830c0500, 0x00140000,
+ 0x0502001b, 0x59940023, 0x80000540, 0x0500200c,
+ 0x05000017, 0x59980004, 0x90000585, 0x05000008,
+ 0x59a8009e, 0x81640580, 0x05020005, 0x59a8009c,
+ 0x59a8089b, 0x80040580, 0x0500000c, 0x0500ea15,
+ 0x05006004, 0x8d0c0524, 0x0502000a, 0x0501fa4a,
+ 0x8d0c0526, 0x05020964, 0x5c03e000, 0x1c01f000,
+ 0x4a0370e4, 0x00002000, 0x850e1d68, 0x0500604c,
+ 0x59d8090a, 0x59d8010a, 0x80041580, 0x05fe07fd,
+ 0x59d8190b, 0x800c1580, 0x59981006, 0x480f3006,
+ 0x05000037, 0x0501f844, 0x59980007, 0x483b3007,
+ 0x0500000d, 0x8d0c0528, 0x05020021, 0x80380580,
+ 0x05020004, 0x40080000, 0x800c0580, 0x0500001c,
+ 0x59980005, 0x48032823, 0x830e1d00, 0xffebffff,
+ 0x05fdf7e0, 0x8d0c0528, 0x05020004, 0x40080000,
+ 0x800c0580, 0x05fe07f7, 0x800408e0, 0x90040d53,
+ 0x60041000, 0x4807c011, 0x59e00017, 0x8c00050a,
+ 0x0502000f, 0x8d0c0530, 0x05020012, 0x480bc017,
+ 0x4203e000, 0x30000001, 0x4a032823, 0xffff0000,
+ 0x830e1d00, 0xffebffff, 0x05fdf7ca, 0x800408e0,
+ 0x90040d5d, 0x60001000, 0x05fdf7ef, 0x4c080000,
+ 0x40080800, 0x05fdfbba, 0x5c001000, 0x05fdf7f0,
+ 0x8c000500, 0x05fc07ee, 0x4c080000, 0x40080800,
+ 0x05fdfcdd, 0x5c001000, 0x05fdf7e9, 0x0501f80e,
+ 0x59980007, 0x483b3007, 0x05fc07e8, 0x80380580,
+ 0x05000003, 0x8d0c0528, 0x05fc07ce, 0x912801c0,
+ 0x90000d5c, 0x60001000, 0x05fdf7d7, 0x850e1d64,
+ 0x05fdf7a7, 0x59e0000f, 0x59e0680f, 0x80346d80,
+ 0x05fe07fd, 0x40025000, 0x59e00010, 0x59e07010,
+ 0x80387580, 0x05fe07fd, 0x40007000, 0x81280580,
0x1c01f000, 0x4df00000, 0x4203e000, 0x50000000,
- 0x59741408, 0x58080900, 0x4807b10b, 0x8d0c0524,
- 0x0502001a, 0x59d80106, 0x80000540, 0x05020017,
- 0x59d80105, 0x82000500, 0x00006000, 0x05020013,
- 0x599af808, 0x817ef9c0, 0x05000010, 0x41765800,
- 0x592e5800, 0x592c1005, 0x800811c0, 0x05000006,
- 0x412c0000, 0x81740580, 0x05fe0fcd, 0x05fdffb1,
- 0x0501f006, 0x592c0003, 0x80000540, 0x05fc0dc6,
- 0x817ef840, 0x05fe07f3, 0x5c03e000, 0x1c01f000,
- 0x05fce71b, 0x59d80105, 0x82000500, 0x01238780,
- 0x05fe07b7, 0x8d0c0524, 0x05020002, 0x1c01f000,
- 0x59d8010a, 0x59d8090a, 0x80040580, 0x05fe07fd,
- 0x850e1d24, 0x8d0c0516, 0x05000013, 0x59d8010b,
- 0x80040580, 0x0500000f, 0x800408e0, 0x8d0c0520,
- 0x05020014, 0x90040d53, 0x4807c011, 0x59740a09,
- 0x59e00017, 0x8c00050a, 0x05020028, 0x8d0c0530,
- 0x0502002a, 0x4807c017, 0x4203e000, 0x30000001,
- 0x1c01f000, 0x59740408, 0x4806ec09, 0x48040000,
- 0x59740a02, 0x800408e0, 0x90040d54, 0x05fdf7ef,
- 0x59e0000f, 0x59b818e4, 0x59e0100f, 0x80081580,
- 0x05fe07fc, 0x8c0c050c, 0x05fe07fa, 0x81281580,
- 0x0500001c, 0x40025000, 0x820c0500, 0x04000000,
- 0x850e1d34, 0x810e1d40, 0x90040d5d, 0x4807c011,
- 0x59e00017, 0x60000800, 0x8c00050a, 0x05020007,
- 0x8d0c0530, 0x05020009, 0x6403c017, 0x4203e000,
- 0x30000001, 0x1c01f000, 0x4c040000, 0x05fdfa15,
- 0x5c000800, 0x05fdf7d8, 0x8c000500, 0x05fc07d6,
- 0x4c040000, 0x05fdfb39, 0x5c000800, 0x05fdf7d2,
- 0x40001000, 0x400c0000, 0x810c0580, 0x8c000534,
- 0x40080000, 0x05fe07e0, 0x05fdf7c3, 0x59da5908,
- 0x496a5800, 0x412ed000, 0x815eb800, 0x05fce7fc,
- 0x59c80000, 0x82000540, 0x00001200, 0x48039000,
- 0x59d8090b, 0x59980006, 0x48073006, 0x80040480,
- 0x05020004, 0x59940023, 0x80000540, 0x05022003,
- 0x59980805, 0x48072823, 0x59d80105, 0x82000500,
- 0x01238780, 0x05fe0752, 0x1c01f000, 0x59da5908,
- 0x496a5800, 0x412ed000, 0x815eb800, 0x05fce7fc,
- 0x59c80000, 0x82000540, 0x00001200, 0x48039000,
- 0x59740c08, 0x58040900, 0x4807b10b, 0x59740402,
- 0x4806ec02, 0x80040480, 0x05020004, 0x59740003,
- 0x80000540, 0x05022003, 0x59980805, 0x4806e803,
- 0x59d8090a, 0x59d8010a, 0x80040580, 0x05fe07fd,
- 0x59740408, 0x48040000, 0x4806ec09, 0x59d80105,
- 0x82000500, 0x01238780, 0x05fe0731, 0x1c01f000,
- 0x59981007, 0x59e00010, 0x59e00810, 0x80041d80,
- 0x05fe07fd, 0x80080580, 0x0500000d, 0x48073007,
+ 0x59b800e4, 0x8c000518, 0x05020067, 0x59d8110a,
+ 0x59d8010a, 0x80080580, 0x05fe07fd, 0x59742c08,
+ 0x59740003, 0x480aec09, 0x48082800, 0x80000540,
+ 0x05002015, 0x0500000b, 0x59980004, 0x90000585,
+ 0x05000011, 0x59a8009e, 0x81640580, 0x0502000e,
+ 0x59a8009c, 0x59a8089b, 0x80040580, 0x0500002a,
+ 0x58140100, 0x80080d80, 0x05000013, 0x59740c02,
+ 0x80040d80, 0x05000024, 0x59980805, 0x4802ec02,
+ 0x4806e803, 0x0500e9a3, 0x8d0c0524, 0x05020019,
+ 0x05006007, 0x8d0c0528, 0x0502000b, 0x59940023,
+ 0x80000540, 0x05000008, 0x0501f9bb, 0x5c03e000,
+ 0x1c01f000, 0x4a02e803, 0xffff0000, 0x850e1d24,
+ 0x0500e994, 0x05fdffc0, 0x59980007, 0x483b3007,
+ 0x05000031, 0x80380580, 0x05000024, 0x8d0c0528,
+ 0x05020022, 0x59980005, 0x48032823, 0x05fdf7f0,
+ 0x59d8010b, 0x59d8110a, 0x80080580, 0x05fc07ee,
+ 0x05fc67eb, 0x05006016, 0x59740a09, 0x59e00017,
+ 0x8c00050a, 0x05020028, 0x8c04051e, 0x05020005,
+ 0x59741202, 0x800810e0, 0x90081554, 0x480bc011,
+ 0x4807c017, 0x4203e000, 0x30000001, 0x4a02e803,
+ 0xffff0000, 0x4a032823, 0xffff0000, 0x830e1d00,
+ 0xffebffff, 0x0500e96f, 0x05fdf7d5, 0x850e1d64,
+ 0x0500e96c, 0x05fdf7d2, 0x05fc67d1, 0x912801c0,
+ 0x90000d5c, 0x4807c011, 0x59e00017, 0x8c00050a,
+ 0x60000800, 0x05fe0b32, 0x6403c017, 0x4203e000,
+ 0x30000001, 0x4a032823, 0xffff0000, 0x850e1d28,
+ 0x05fdf7c3, 0x4a0370e4, 0x00002000, 0x850e1d68,
+ 0x05fdf797, 0x4c040000, 0x05fdfb25, 0x5c000800,
+ 0x8c04051e, 0x05fc07d7, 0x5c03e000, 0x1c01f000,
+ 0x59d81108, 0x835c0480, 0x00000104, 0x0500101c,
+ 0x0502b01a, 0x480bb007, 0x05fce7fa, 0x59d80105,
+ 0x82000500, 0x01238780, 0x05020096, 0x8d0c0522,
+ 0x0500001f, 0x8d0c0516, 0x0502000c, 0x59d8090a,
+ 0x59d8010a, 0x80040580, 0x05fe07fd, 0x59741003,
+ 0x59740408, 0x48040000, 0x4806ec09, 0x800811c0,
+ 0x05fc260f, 0x1c01f000, 0x59940023, 0x80000540,
+ 0x05fc2606, 0x1c01f000, 0x0500f00a, 0x49681000,
+ 0x400ad000, 0x815eb800, 0x59c80000, 0x82000540,
+ 0x00001200, 0x48039000, 0x05fee7e1, 0x05fdf7d9,
+ 0x480ba807, 0x05fee7de, 0x05fdf7d6, 0x05006024,
+ 0x850e1d24, 0x59d8010a, 0x59d8090a, 0x80040580,
+ 0x05fe07fd, 0x8d0c0516, 0x05000016, 0x59d8010b,
+ 0x59d8110b, 0x80081580, 0x05fe07fd, 0x80040580,
+ 0x0500000f, 0x800408e0, 0x8d0c0520, 0x05020016,
+ 0x90040d53, 0x4807c011, 0x59740a09, 0x59e00017,
+ 0x8c00050a, 0x05020031, 0x8d0c0530, 0x05020033,
+ 0x4807c017, 0x4203e000, 0x30000001, 0x1c01f000,
+ 0x59740408, 0x4806ec09, 0x48040000, 0x59740a02,
+ 0x800408e0, 0x90040d54, 0x05fdf7ef, 0x850e1d64,
+ 0x1c01f000, 0x59e0000f, 0x59b818e4, 0x59e0100f,
+ 0x80081580, 0x05fe07fc, 0x8c0c050c, 0x05fe07fa,
+ 0x81281580, 0x05000012, 0x40025000, 0x820c0500,
+ 0x04000000, 0x850e1d34, 0x810e1d40, 0x90040d5d,
+ 0x4807c011, 0x59e00017, 0x60000800, 0x8c00050a,
+ 0x0502000e, 0x8d0c0530, 0x05020010, 0x6403c017,
+ 0x4203e000, 0x30000001, 0x1c01f000, 0x40001000,
+ 0x400c0000, 0x810c0580, 0x8c000534, 0x40080000,
+ 0x05fe07ea, 0x05fdf7cb, 0x4c040000, 0x05fdfaac,
+ 0x5c000800, 0x05fdf7cf, 0x8c000500, 0x05fc07cd,
+ 0x4c040000, 0x05fdfbd0, 0x5c000800, 0x05fdf7c9,
+ 0x592c2802, 0x801429c0, 0x0500000d, 0x58140804,
+ 0x592c0001, 0x492c2804, 0x800409c0, 0x05000005,
+ 0x492c0800, 0x80000d40, 0x05fe058f, 0x1c01f000,
+ 0x492c2805, 0x850e1d66, 0x05fdf7fb, 0x492fc857,
+ 0x0105f1d2, 0x0502d00c, 0x59740805, 0x58040000,
+ 0x4807b107, 0x80000d40, 0x05020005, 0x4802e804,
+ 0x850e1d26, 0x4802e805, 0x1c01f000, 0x05fcd7f8,
+ 0x05fdf7fd, 0x59d80105, 0x82000500, 0x01238780,
+ 0x05020004, 0x42000000, 0x00112349, 0x0169f75a,
+ 0x4803c857, 0x485fc857, 0x8c00050e, 0x01020e0e,
+ 0x4203e000, 0x50000000, 0x6010b900, 0x0101f619,
+ 0x4a03b104, 0x10000000, 0x592c4408, 0x592c1409,
+ 0x800800cc, 0x592c2006, 0x80100400, 0x4803b100,
+ 0x497bb102, 0x59d80101, 0x4813b100, 0x592c0007,
+ 0x4803b101, 0x592c0208, 0x82000540, 0x00400000,
+ 0x4803b103, 0x58200900, 0x480bb10a, 0x4807b10b,
+ 0x592c0001, 0x4803b11f, 0x4a03b104, 0x10000001,
+ 0x412ee800, 0x1c01f000, 0x4df00000, 0x4203e000,
+ 0x50000000, 0x59741408, 0x58080900, 0x4807b10b,
+ 0x8d0c0524, 0x0502001a, 0x59d80106, 0x80000540,
+ 0x05020017, 0x59d80105, 0x82000500, 0x00006000,
+ 0x05020013, 0x599af808, 0x817ef9c0, 0x05000010,
+ 0x41765800, 0x592e5800, 0x592c1005, 0x800811c0,
+ 0x05000006, 0x412c0000, 0x81740580, 0x05fe0fcd,
+ 0x05fdffb1, 0x0501f006, 0x592c0003, 0x80000540,
+ 0x05fc0dc6, 0x817ef840, 0x05fe07f3, 0x5c03e000,
+ 0x1c01f000, 0x05fce71b, 0x59d80105, 0x82000500,
+ 0x01238780, 0x05fe07b7, 0x8d0c0524, 0x05020002,
+ 0x1c01f000, 0x59d8010a, 0x59d8090a, 0x80040580,
+ 0x05fe07fd, 0x850e1d24, 0x8d0c0516, 0x05000013,
+ 0x59d8010b, 0x80040580, 0x0500000f, 0x800408e0,
+ 0x8d0c0520, 0x05020014, 0x90040d53, 0x4807c011,
+ 0x59740a09, 0x59e00017, 0x8c00050a, 0x05020028,
+ 0x8d0c0530, 0x0502002a, 0x4807c017, 0x4203e000,
+ 0x30000001, 0x1c01f000, 0x59740408, 0x4806ec09,
+ 0x48040000, 0x59740a02, 0x800408e0, 0x90040d54,
+ 0x05fdf7ef, 0x59e0000f, 0x59b818e4, 0x59e0100f,
+ 0x80081580, 0x05fe07fc, 0x8c0c050c, 0x05fe07fa,
+ 0x81281580, 0x0500001c, 0x40025000, 0x820c0500,
+ 0x04000000, 0x850e1d34, 0x810e1d40, 0x90040d5d,
+ 0x4807c011, 0x59e00017, 0x60000800, 0x8c00050a,
+ 0x05020007, 0x8d0c0530, 0x05020009, 0x6403c017,
+ 0x4203e000, 0x30000001, 0x1c01f000, 0x4c040000,
+ 0x05fdf9f7, 0x5c000800, 0x05fdf7d8, 0x8c000500,
+ 0x05fc07d6, 0x4c040000, 0x05fdfb1b, 0x5c000800,
+ 0x05fdf7d2, 0x40001000, 0x400c0000, 0x810c0580,
+ 0x8c000534, 0x40080000, 0x05fe07e0, 0x05fdf7c3,
+ 0x59da5908, 0x496a5800, 0x412ed000, 0x815eb800,
+ 0x05fce7fc, 0x59c80000, 0x82000540, 0x00001200,
+ 0x48039000, 0x59d8090b, 0x59980006, 0x48073006,
+ 0x80040480, 0x05020004, 0x59940023, 0x80000540,
+ 0x05022003, 0x59980805, 0x48072823, 0x59d80105,
+ 0x82000500, 0x01238780, 0x05fe0752, 0x1c01f000,
+ 0x59da5908, 0x496a5800, 0x412ed000, 0x815eb800,
+ 0x05fce7fc, 0x59c80000, 0x82000540, 0x00001200,
+ 0x48039000, 0x59740c08, 0x58040900, 0x4807b10b,
+ 0x59740402, 0x4806ec02, 0x80040480, 0x05020004,
+ 0x59740003, 0x80000540, 0x05022003, 0x59980805,
+ 0x4806e803, 0x59d8090a, 0x59d8010a, 0x80040580,
+ 0x05fe07fd, 0x59740408, 0x48040000, 0x4806ec09,
+ 0x59d80105, 0x82000500, 0x01238780, 0x05fe0731,
+ 0x1c01f000, 0x59981007, 0x59e00010, 0x59e00810,
+ 0x80041d80, 0x05fe07fd, 0x80080580, 0x0500000d,
+ 0x48073007, 0x59e0000f, 0x59e0100f, 0x80081d80,
+ 0x05fe07fd, 0x81280580, 0x0500000d, 0x400a5000,
+ 0x40080000, 0x80040580, 0x05fe04a0, 0x1c01f000,
0x59e0000f, 0x59e0100f, 0x80081d80, 0x05fe07fd,
- 0x81280580, 0x0500000d, 0x400a5000, 0x40080000,
- 0x80040580, 0x05fe04a0, 0x1c01f000, 0x59e0000f,
- 0x59e0100f, 0x80081d80, 0x05fe07fd, 0x81280580,
- 0x05fc07fa, 0x400a5000, 0x59940023, 0x80000540,
- 0x05fc27f3, 0x1c01f000, 0x59e0000f, 0x59b818e4,
- 0x59e0100f, 0x80080d80, 0x05fe07fc, 0x8c0c050c,
- 0x05fe07fa, 0x81280580, 0x05020006, 0x400c0000,
- 0x810c0580, 0x8c000534, 0x05020002, 0x1c01f000,
- 0x820c0500, 0x04000000, 0x850e1d34, 0x810e1d40,
- 0x400a5000, 0x900811c0, 0x9008155c, 0x480bc011,
- 0x59e00017, 0x60000800, 0x8c00050a, 0x05020007,
- 0x8d0c0530, 0x05020007, 0x6403c017, 0x4203e000,
- 0x30000001, 0x1c01f000, 0x05fdf98e, 0x05fdf7fb,
- 0x8c000500, 0x05fe0ab5, 0x05fdf7f8, 0x4d2c0000,
- 0x599af802, 0x817ef9c0, 0x05000008, 0x40f25800,
- 0x592c020a, 0x8c000500, 0x05020806, 0x592e5801,
- 0x817ef840, 0x05fe07fb, 0x5c025800, 0x1c01f000,
- 0x59c40001, 0x82000500, 0x00018000, 0x82000d80,
- 0x00018000, 0x05020004, 0x42000800, 0x64000000,
- 0x0501f00f, 0x82000d80, 0x00010000, 0x05020004,
- 0x42000800, 0x32000000, 0x0501f009, 0x82000d80,
- 0x00008000, 0x05020004, 0x42000800, 0x19000000,
- 0x0501f003, 0x42000800, 0x0c800000, 0x592c1411,
- 0x013dff72, 0x40041000, 0x40000800, 0x61a00007,
- 0x013dff8e, 0x480a580f, 0x1c01f000, 0x592c020a,
- 0x84000502, 0x592c080d, 0x48025a0a, 0x4806580e,
- 0x800409c0, 0x05000020, 0x592c000f, 0x80041480,
- 0x0500100f, 0x0500001b, 0x82080480, 0x000003e8,
- 0x05001018, 0x480a580d, 0x592c0210, 0x80000040,
- 0x05000015, 0x80000040, 0x05000003, 0x48025a10,
- 0x1c01f000, 0x64065a10, 0x1c01f000, 0x80081080,
- 0x80081000, 0x82080480, 0x000003e8, 0x05001009,
- 0x497a580d, 0x592c0210, 0x90000402, 0x82001500,
- 0x00000f00, 0x05020005, 0x48025a10, 0x1c01f000,
- 0x497a580d, 0x1c01f000, 0x4a025a10, 0x000000ff,
- 0x1c01f000, 0x4df00000, 0x4203e000, 0x50000000,
- 0x599af802, 0x817ef9c0, 0x0500003e, 0x4178c000,
- 0x59d8080b, 0x59d8000b, 0x80040580, 0x05fe07fd,
- 0x58f00200, 0x48040100, 0x4805e20c, 0x59d8000a,
- 0x80040580, 0x05020033, 0x59d80005, 0x82000500,
- 0x00006000, 0x0502002f, 0x0500c02e, 0x91700582,
- 0x0500002c, 0x91700588, 0x0500002a, 0x40f25800,
- 0x592e5801, 0x592cba0a, 0x592c000d, 0x80000540,
- 0x05000005, 0x8c5c0502, 0x05020003, 0x4200c000,
- 0xffffffff, 0x592c4200, 0x592c020c, 0x58201000,
- 0x40002000, 0x80080580, 0x05000014, 0x412c0000,
- 0x80f00580, 0x05020009, 0x8c5c0502, 0x05000003,
- 0x80600000, 0x05000013, 0x0501f81d, 0x480bb00a,
- 0x5c03e000, 0x1c01f000, 0x8c5c0502, 0x05020014,
- 0x4a03b004, 0x10000000, 0x4971e410, 0x0501f831,
- 0x5c03e000, 0x1c01f000, 0x817ef840, 0x05fe07dd,
- 0x80600000, 0x05000003, 0x80625d58, 0x05020003,
- 0x5c03e000, 0x1c01f000, 0x592c4200, 0x592c220c,
- 0x58201000, 0x592cba0a, 0x05fdf7ee, 0x8060c1c0,
- 0x05fe07f2, 0x412cc000, 0x05fdf7f0, 0x916c0583,
- 0x05020017, 0x8c5c0500, 0x05000007, 0x8c5c0502,
- 0x05020005, 0x592c000d, 0x592c080f, 0x80040480,
- 0x05001010, 0x40100000, 0x80080c80, 0x05021003,
- 0x592c040a, 0x80040c00, 0x592c0210, 0x80041c80,
- 0x05021002, 0x1c01f000, 0x80101400, 0x592c040a,
- 0x80080480, 0x05001002, 0x40001000, 0x1c01f000,
- 0x845cbd42, 0x485e5a0a, 0x40101000, 0x1c01f000,
- 0x801000cc, 0x592c2808, 0x80140400, 0x4803b000,
- 0x497bb002, 0x59d80001, 0x4817b000, 0x592c0009,
- 0x4803b001, 0x4813b00b, 0x592ee410, 0x592c040a,
- 0x82000540, 0x00400000, 0x4803b003, 0x05fdffd4,
- 0x480bb00a, 0x592c000b, 0x4803b01f, 0x4a03b004,
- 0x10000001, 0x412de000, 0x1c01f000, 0x41700000,
- 0x0c01f001, 0x001064bd, 0x000207ec, 0x001064bd,
- 0x000208b8, 0x001064bc, 0x001064bc, 0x001064bc,
- 0x001064bc, 0x00106bd4, 0x05010035, 0x59980000,
- 0x80000540, 0x013604e2, 0x0502c01f, 0x6062f800,
- 0x4df00000, 0x4203e000, 0x50000000, 0x49db3001,
- 0x59da5808, 0x592c2a08, 0x58f00812, 0x800409c0,
- 0x05000031, 0x58f0000b, 0x48025804, 0x48065802,
- 0x48f25803, 0x497a5800, 0x497a5801, 0x82140500,
- 0x000000ff, 0xb0000cbb, 0x05021024, 0x0c01f838,
- 0x5c03e000, 0x817ef840, 0x05000007, 0x916c0583,
- 0x05020005, 0x91700581, 0x0502000e, 0x05010015,
- 0x05fcc7e4, 0x0500fb2c, 0x0500b317, 0x59d40005,
- 0x82000500, 0x43238780, 0x01360079, 0x59d80005,
- 0x82000500, 0x43238780, 0x0136007f, 0x1c01f000,
- 0x91700583, 0x0500089d, 0x91700581, 0x05fe07f2,
- 0x05010004, 0x05fcc7d3, 0x05fdf7ef, 0x6062f800,
- 0x4df00000, 0x4203e000, 0x50000000, 0x49d73001,
- 0x59d65808, 0x05fdf7d0, 0x0131fd24, 0x5c03e000,
- 0x05fdf7e5, 0x592c0408, 0x82001500, 0x000000ff,
- 0x80000110, 0x82000c00, 0x0010de60, 0x50040800,
- 0x480a5c08, 0x800409c0, 0x05fe07c7, 0x80000540,
- 0x01000dda, 0x42000800, 0x0010de60, 0x50040800,
- 0x48065802, 0x0131fd39, 0x05fdf7ca, 0x00106524,
- 0x00106524, 0x00106524, 0x00106524, 0x001065b0,
- 0x00106524, 0x00106524, 0x00106524, 0x00106524,
- 0x00106524, 0x00106532, 0x00106524, 0x00106524,
- 0x00106524, 0x001065cd, 0x00106524, 0x00106524,
- 0x00106524, 0x00020a44, 0x00106524, 0x0010677c,
- 0x00106524, 0x00106524, 0x00106524, 0x000208d9,
- 0x00106524, 0x00106524, 0x00106524, 0x00106524,
- 0x00106524, 0x00106524, 0x00106524, 0x00106524,
- 0x00106524, 0x00106524, 0x00106524, 0x00106524,
- 0x00106524, 0x00106524, 0x00106524, 0x00106524,
- 0x00106576, 0x00106524, 0x00106524, 0x00106524,
- 0x00106524, 0x00106524, 0x00106524, 0x0010688b,
- 0x00106a51, 0x00106524, 0x0010680e, 0x00106524,
- 0x00106524, 0x00106524, 0x00106524, 0x00106524,
- 0x00106858, 0x00106524, 0x00106524, 0x00106524,
- 0x00106524, 0x00106524, 0x00106524, 0x00106524,
- 0x00106524, 0x00106524, 0x00106524, 0x00106524,
- 0x00106524, 0x00106524, 0x00106524, 0x00106ba1,
- 0x00106524, 0x00106524, 0x00106524, 0x00106524,
- 0x00106524, 0x00106524, 0x00106524, 0x00106524,
- 0x00106524, 0x001067db, 0x00106b6a, 0x00106524,
- 0x00106b97, 0x00106524, 0x00106524, 0x00106524,
- 0x00106524, 0x00106524, 0x00106524, 0x00106524,
- 0x00106524, 0x00106524, 0x00106524, 0x00106524,
- 0x00106524, 0x00106524, 0x00106524, 0x00106524,
- 0x00106524, 0x00106524, 0x00106524, 0x000208e4,
- 0x00106524, 0x000208ec, 0x00106524, 0x00106524,
- 0x00106524, 0x00106524, 0x00106524, 0x00106524,
- 0x00106524, 0x00020ad5, 0x00106524, 0x00106524,
- 0x00020c45, 0x00106524, 0x00106524, 0x00106524,
- 0x00106c2c, 0x000208ec, 0x835c0480, 0x00000104,
- 0x013014d5, 0x4df00000, 0x4203e000, 0x50000000,
- 0x59981001, 0x58080005, 0x82000d00, 0x43238780,
- 0x0136007f, 0x8c000508, 0x013004bf, 0x580a5808,
- 0x592c0208, 0x58f00812, 0x800409c0, 0x013004c1,
- 0x48065802, 0x497a5800, 0x497a5801, 0x82000500,
- 0x000000ff, 0xb0000c8b, 0x013214be, 0x1201f800,
- 0x001064d9, 0x5c03e000, 0x91700583, 0x05fc07e3,
- 0x0500fa65, 0x0500b250, 0x1c01f000, 0x80140110,
- 0x80000040, 0x0500013d, 0x0130152b, 0x4a01e007,
- 0x00020a18, 0x4801e400, 0x492de002, 0x492de003,
- 0x600ee000, 0x1c01f000, 0x497a5805, 0x80140110,
- 0x80000040, 0x0130052b, 0x0130152b, 0x4a01e007,
- 0x0002097f, 0x05fdf7f4, 0x497a5805, 0x80140110,
- 0x80000040, 0x0132052b, 0x592c020b, 0x82000480,
- 0x00001001, 0x01321539, 0x592c0017, 0xb0000580,
- 0x01320539, 0x4d2c0000, 0x05f9ff1f, 0x05000011,
- 0x412c6800, 0x5c025800, 0x600ae000, 0x42001000,
- 0x001102f2, 0x592c0804, 0x592c2015, 0x592c2816,
- 0x90340405, 0x48001003, 0x48041006, 0x48101007,
- 0x48141008, 0x4834100a, 0x492c100b, 0x05f9f718,
- 0x5c025800, 0x492de005, 0x6022e000, 0x4a01e004,
- 0x00020910, 0x1c01f000, 0x6006e000, 0x412c6800,
- 0x58f25805, 0x05fdf7e9, 0x4d2c0000, 0x5832580b,
- 0x592c5a08, 0x4978600b, 0x812e59c0, 0x0130056e,
- 0x58300002, 0x82000580, 0x00000100, 0x01320554,
- 0x42000000, 0x001102f1, 0x50007000, 0x5830680a,
- 0x58340005, 0x592c0809, 0x80040580, 0x01320558,
- 0x58340806, 0x58341007, 0x58341808, 0x48065815,
- 0x480a5816, 0x480e5817, 0x822c0d80, 0x0000016a,
- 0x0502000e, 0x592c0a0e, 0x58342c09, 0x5834180f,
- 0x58342010, 0x58341011, 0x8c040504, 0x0502000e,
- 0x8c140510, 0x05020011, 0x480c680c, 0x4810680d,
- 0x4808680e, 0x0501f037, 0x592c0c0e, 0x90040d04,
- 0x592c040b, 0x80000110, 0x90000508, 0x80040d40,
- 0x05fdf7ee, 0x82080500, 0xffff0003, 0x01320558,
- 0x8c140510, 0x05000016, 0x58343812, 0x58344013,
- 0x58343014, 0x8c040506, 0x05000004, 0x82180500,
- 0xffff0003, 0x01320558, 0x8c040504, 0x05020009,
- 0x8c040506, 0x0500001f, 0x481c7007, 0x48207008,
- 0x40181000, 0x60483000, 0x607c3800, 0x0501f00f,
- 0x481c7011, 0x48207012, 0x48187013, 0x60303000,
- 0x60203800, 0x8c140510, 0x05000006, 0x603c3000,
- 0x60683800, 0x8c040506, 0x05020002, 0x60603800,
- 0x480c7007, 0x48107008, 0x481c7010, 0x592c0804,
- 0x48047006, 0x492c700b, 0x4818700e, 0x4834700c,
- 0x48365801, 0x65286808, 0x5c025800, 0x0135f3c3,
- 0x48365801, 0x65286808, 0x6006e000, 0x40341000,
- 0x822c0580, 0x0000016a, 0x05020004, 0x0501f80e,
- 0x5c025800, 0x1c01f000, 0x0501f96d, 0x5c025800,
- 0x1c01f000, 0x592c0001, 0x80001540, 0x0130052b,
- 0x58080a08, 0x82040d00, 0x000000ff, 0xb004058a,
- 0x01320532, 0x58080409, 0x8c000510, 0x0500008f,
- 0x4d2c0000, 0x4c080000, 0x05f9fe8b, 0x5c001000,
- 0x05000008, 0x412c6800, 0x5c025800, 0x48365805,
- 0x592c5a0e, 0x0501f80e, 0x05000084, 0x0131f539,
- 0x5c025800, 0x492de005, 0x6022e000, 0x4a01e004,
- 0x0002099c, 0x1c01f000, 0x6006e000, 0x412c6800,
- 0x58f25805, 0x592c1001, 0x05fdf7f1, 0x592c220b,
- 0x5808480c, 0x5808040d, 0x80004540, 0x0500004c,
- 0x80102480, 0x0500004a, 0x05001049, 0x90200483,
- 0x05001007, 0x0500000b, 0x0500100c, 0x40004000,
- 0x58081001, 0x90200485, 0x05fdf7fb, 0x40200000,
- 0x0c01f001, 0x000209f1, 0x000209cb, 0x000209cf,
- 0x58081001, 0x0501f008, 0x40200000, 0x0c01f001,
- 0x000209bf, 0x000209c3, 0x000209c7, 0x000209cb,
- 0x000209cf, 0x60240800, 0x42001800, 0x001012a3,
- 0x0501f010, 0x60300800, 0x42001800, 0x001012a4,
- 0x0501f00c, 0x603c0800, 0x42001800, 0x001012a5,
- 0x0501f008, 0x60480800, 0x42001800, 0x001012a6,
- 0x0501f004, 0x60540800, 0x42001800, 0x001012a7,
- 0x40080000, 0x80043c00, 0x581c2800, 0x581c3001,
- 0x581c3802, 0x8c2c0502, 0x0500000e, 0x80102040,
- 0x0500000c, 0x90040595, 0x05000004, 0x90040c03,
- 0x800c1800, 0x0501f007, 0x58081001, 0x800811c0,
- 0x01000dda, 0x60240800, 0x42001800, 0x001012a3,
- 0x48046809, 0x4808680a, 0x480c680b, 0x4810680c,
- 0x4814680d, 0x4818680e, 0x481c680f, 0x48246810,
- 0x64046811, 0x80000580, 0x1c01f000, 0x90000541,
- 0x1c01f000, 0x592c0208, 0x82000500, 0x000000ff,
- 0xb00005a8, 0x05000007, 0x90000582, 0x05000005,
- 0x90000598, 0x05000003, 0x90000588, 0x05020018,
- 0x592c0001, 0x80001540, 0x05000015, 0x58080208,
- 0x82000500, 0x000000ff, 0xb000058a, 0x05020010,
- 0x58080409, 0x8c000510, 0x0500000d, 0x592c0005,
- 0x4d2c0000, 0x80025d40, 0x59a8000c, 0x812c0480,
- 0x05001008, 0x59a8000a, 0x812c0480, 0x05021005,
- 0x0105f992, 0x5c025800, 0x497a5805, 0x1c01f000,
+ 0x81280580, 0x05fc07fa, 0x400a5000, 0x59940023,
+ 0x80000540, 0x05fc27f3, 0x1c01f000, 0x59e0000f,
+ 0x59b818e4, 0x59e0100f, 0x80080d80, 0x05fe07fc,
+ 0x8c0c050c, 0x05fe07fa, 0x81280580, 0x05020006,
+ 0x400c0000, 0x810c0580, 0x8c000534, 0x05020002,
+ 0x1c01f000, 0x820c0500, 0x04000000, 0x850e1d34,
+ 0x810e1d40, 0x400a5000, 0x900811c0, 0x9008155c,
+ 0x480bc011, 0x59e00017, 0x60000800, 0x8c00050a,
+ 0x05020007, 0x8d0c0530, 0x05020007, 0x6403c017,
+ 0x4203e000, 0x30000001, 0x1c01f000, 0x05fdf970,
+ 0x05fdf7fb, 0x8c000500, 0x05fe0a97, 0x05fdf7f8,
+ 0x4d2c0000, 0x599af802, 0x817ef9c0, 0x05000008,
+ 0x40f25800, 0x592c020a, 0x8c000500, 0x05020806,
+ 0x592e5801, 0x817ef840, 0x05fe07fb, 0x5c025800,
+ 0x1c01f000, 0x59c40001, 0x82000500, 0x00018000,
+ 0x82000d80, 0x00018000, 0x05020004, 0x42000800,
+ 0x00100000, 0x0501f00f, 0x82000d80, 0x00010000,
+ 0x05020004, 0x42000800, 0x00080000, 0x0501f009,
+ 0x82000d80, 0x00008000, 0x05020004, 0x42000800,
+ 0x00040000, 0x0501f003, 0x42000800, 0x00020000,
+ 0x592c1411, 0x0141fc2b, 0x40041000, 0x40000800,
+ 0x60280000, 0x0141fc47, 0x800810c8, 0x480a580f,
+ 0x1c01f000, 0x592c020a, 0x84000502, 0x592c080d,
+ 0x48025a0a, 0x4806580e, 0x800409c0, 0x05000020,
+ 0x592c000f, 0x80041480, 0x0500100f, 0x0500001b,
+ 0x82080480, 0x000003e8, 0x05001018, 0x480a580d,
+ 0x592c0210, 0x80000040, 0x05000015, 0x80000040,
+ 0x05000003, 0x48025a10, 0x1c01f000, 0x64065a10,
+ 0x1c01f000, 0x80081080, 0x80081000, 0x82080480,
+ 0x000003e8, 0x05001009, 0x497a580d, 0x592c0210,
+ 0x90000402, 0x82001500, 0x00000f00, 0x05020005,
+ 0x48025a10, 0x1c01f000, 0x497a580d, 0x1c01f000,
+ 0x4a025a10, 0x000000ff, 0x1c01f000, 0x4df00000,
+ 0x4203e000, 0x50000000, 0x599af802, 0x817ef9c0,
+ 0x0500003e, 0x4178c000, 0x59d8080b, 0x59d8000b,
+ 0x80040580, 0x05fe07fd, 0x58f00200, 0x48040100,
+ 0x4805e20c, 0x59d8000a, 0x80040580, 0x05020033,
+ 0x59d80005, 0x82000500, 0x00006000, 0x0502002f,
+ 0x0500c02e, 0x91700582, 0x0500002c, 0x91700588,
+ 0x0500002a, 0x40f25800, 0x592e5801, 0x592cba0a,
+ 0x592c000d, 0x80000540, 0x05000005, 0x8c5c0502,
+ 0x05020003, 0x4200c000, 0xffffffff, 0x592c4200,
+ 0x592c020c, 0x58201000, 0x40002000, 0x80080580,
+ 0x05000014, 0x412c0000, 0x80f00580, 0x05020009,
+ 0x8c5c0502, 0x05000003, 0x80600000, 0x05000013,
+ 0x0501f81d, 0x480bb00a, 0x5c03e000, 0x1c01f000,
+ 0x8c5c0502, 0x05020014, 0x4a03b004, 0x10000000,
+ 0x4971e410, 0x0501f831, 0x5c03e000, 0x1c01f000,
+ 0x817ef840, 0x05fe07dd, 0x80600000, 0x05000003,
+ 0x80625d58, 0x05020003, 0x5c03e000, 0x1c01f000,
+ 0x592c4200, 0x592c220c, 0x58201000, 0x592cba0a,
+ 0x05fdf7ee, 0x8060c1c0, 0x05fe07f2, 0x412cc000,
+ 0x05fdf7f0, 0x916c0583, 0x05020017, 0x8c5c0500,
+ 0x05000007, 0x8c5c0502, 0x05020005, 0x592c000d,
+ 0x592c080f, 0x80040480, 0x05001010, 0x40100000,
+ 0x80080c80, 0x05021003, 0x592c040a, 0x80040c00,
+ 0x592c0210, 0x80041c80, 0x05021002, 0x1c01f000,
+ 0x80101400, 0x592c040a, 0x80080480, 0x05001002,
+ 0x40001000, 0x1c01f000, 0x845cbd42, 0x485e5a0a,
+ 0x40101000, 0x1c01f000, 0x801000cc, 0x592c2808,
+ 0x80140400, 0x4803b000, 0x497bb002, 0x59d80001,
+ 0x4817b000, 0x592c0009, 0x4803b001, 0x4813b00b,
+ 0x592ee410, 0x592c040a, 0x82000540, 0x00400000,
+ 0x4803b003, 0x05fdffd4, 0x480bb00a, 0x592c000b,
+ 0x4803b01f, 0x4a03b004, 0x10000001, 0x412de000,
+ 0x1c01f000, 0x41700000, 0x0c01f001, 0x001067ad,
+ 0x00020813, 0x001067ad, 0x000208df, 0x001067ac,
+ 0x001067ac, 0x001067ac, 0x001067ac, 0x00106f40,
+ 0x05010035, 0x59980000, 0x80000540, 0x013a006a,
+ 0x0502c01f, 0x6062f800, 0x4df00000, 0x4203e000,
+ 0x50000000, 0x49db3001, 0x59da5808, 0x592c2a08,
+ 0x58f00812, 0x800409c0, 0x05000031, 0x58f0000b,
+ 0x48025804, 0x48065802, 0x48f25803, 0x497a5800,
+ 0x497a5801, 0x82140500, 0x000000ff, 0xb0000cbb,
+ 0x05021024, 0x0c01f838, 0x5c03e000, 0x817ef840,
+ 0x05000007, 0x916c0583, 0x05020005, 0x91700581,
+ 0x0502000e, 0x05010015, 0x05fcc7e4, 0x0500fb3b,
+ 0x0500b326, 0x59d40005, 0x82000500, 0x43238780,
+ 0x0136038f, 0x59d80005, 0x82000500, 0x43238780,
+ 0x01360395, 0x1c01f000, 0x91700583, 0x0500089d,
+ 0x91700581, 0x05fe07f2, 0x05010004, 0x05fcc7d3,
+ 0x05fdf7ef, 0x6062f800, 0x4df00000, 0x4203e000,
+ 0x50000000, 0x49d73001, 0x59d65808, 0x05fdf7d0,
+ 0x0135f814, 0x5c03e000, 0x05fdf7e5, 0x592c0408,
+ 0x82001500, 0x000000ff, 0x80000110, 0x82000c00,
+ 0x00111dfa, 0x50040800, 0x480a5c08, 0x800409c0,
+ 0x05fe07c7, 0x80000540, 0x01000e15, 0x42000800,
+ 0x00111dfa, 0x50040800, 0x48065802, 0x0135f829,
+ 0x05fdf7ca, 0x00106814, 0x00106814, 0x00106814,
+ 0x00106814, 0x0010689d, 0x00106814, 0x00106814,
+ 0x00106814, 0x00106814, 0x00106814, 0x00106822,
+ 0x00106814, 0x00106814, 0x00106814, 0x001068be,
+ 0x00106814, 0x00106814, 0x00106814, 0x00020a7a,
+ 0x00106814, 0x00106a8e, 0x00106814, 0x00106814,
+ 0x00106814, 0x00020900, 0x00106814, 0x00106814,
+ 0x00106814, 0x00106814, 0x00106814, 0x00106814,
+ 0x00106814, 0x00106814, 0x00106814, 0x00106814,
+ 0x00106814, 0x00106814, 0x00106814, 0x00106814,
+ 0x00106814, 0x00106814, 0x00106866, 0x00106814,
+ 0x00106814, 0x00106814, 0x00106814, 0x00106814,
+ 0x00106814, 0x00106ba1, 0x00106db9, 0x00106814,
+ 0x00106b21, 0x00106814, 0x00106814, 0x00106814,
+ 0x00106814, 0x00106814, 0x00106b6e, 0x00106814,
+ 0x00106814, 0x00106814, 0x00106814, 0x00106814,
+ 0x00106814, 0x00106814, 0x00106814, 0x00106814,
+ 0x00106814, 0x00106814, 0x00106814, 0x00106814,
+ 0x00106814, 0x00106f0d, 0x00106814, 0x00106814,
+ 0x00106814, 0x00106814, 0x00106814, 0x00106814,
+ 0x00106814, 0x00106814, 0x00106814, 0x00106aed,
+ 0x00106ed2, 0x00106814, 0x00106f02, 0x00106814,
+ 0x00106814, 0x00106814, 0x00106814, 0x00106814,
+ 0x00106814, 0x00106814, 0x00106814, 0x00106814,
+ 0x00106814, 0x00106814, 0x00106814, 0x00106814,
+ 0x00106814, 0x00106814, 0x00106814, 0x00106814,
+ 0x00106814, 0x0002090b, 0x00106814, 0x00020913,
+ 0x00106814, 0x00106814, 0x00106814, 0x00106814,
+ 0x00106814, 0x00106814, 0x00106814, 0x00020b0b,
+ 0x00106814, 0x00106814, 0x00020c7b, 0x00106814,
+ 0x00106814, 0x00106814, 0x00106fb4, 0x00020913,
+ 0x835c0480, 0x00000104, 0x013017c5, 0x4df00000,
+ 0x4203e000, 0x50000000, 0x59981001, 0x58080005,
+ 0x82000d00, 0x43238780, 0x01360395, 0x8c000508,
+ 0x013007af, 0x580a5808, 0x592c0208, 0x58f00812,
+ 0x800409c0, 0x013007b1, 0x48065802, 0x497a5800,
+ 0x497a5801, 0x82000500, 0x000000ff, 0xb0000c8b,
+ 0x013217ae, 0x1201f800, 0x001067c9, 0x5c03e000,
+ 0x91700583, 0x05fc07e3, 0x0500fa74, 0x0500b25f,
+ 0x1c01f000, 0x80140110, 0x80000040, 0x0500013f,
+ 0x0134101b, 0x4a01e007, 0x00020a41, 0x4801e400,
+ 0x492de002, 0x492de003, 0x600ee000, 0x1c01f000,
+ 0x497a5805, 0x80140110, 0x80000040, 0x0134001b,
+ 0x0134101b, 0x4a01e007, 0x000209a6, 0x05fdf7f4,
+ 0x497a5805, 0x80140110, 0x80000040, 0x0136001b,
+ 0x592c020b, 0x82000480, 0x00001001, 0x01361029,
+ 0x592c0017, 0xb0000580, 0x01360029, 0x4d2c0000,
+ 0x05f9ff00, 0x05000011, 0x412c6800, 0x5c025800,
+ 0x600ae000, 0x42001000, 0x00114296, 0x592c0804,
+ 0x592c2015, 0x592c2816, 0x90340405, 0x48001003,
+ 0x48041006, 0x48101007, 0x48141008, 0x4834100a,
+ 0x492c100b, 0x05f9f6f9, 0x5c025800, 0x492de005,
+ 0x6022e000, 0x4a01e004, 0x00020937, 0x1c01f000,
+ 0x6006e000, 0x412c6800, 0x58f25805, 0x05fdf7e9,
+ 0x4d2c0000, 0x5832580b, 0x592c5a08, 0x4978600b,
+ 0x812e59c0, 0x0134005e, 0x58300002, 0x82000580,
+ 0x00000100, 0x01360044, 0x42000000, 0x00114295,
+ 0x50007000, 0x5830680a, 0x58340005, 0x592c0809,
+ 0x80040580, 0x01360048, 0x58340806, 0x58341007,
+ 0x58341808, 0x48065815, 0x480a5816, 0x480e5817,
+ 0x822c0d80, 0x0000016a, 0x0502000e, 0x592c0a0e,
+ 0x58342c09, 0x5834180f, 0x58342010, 0x58341011,
+ 0x8c040504, 0x0502000e, 0x8c140510, 0x05020011,
+ 0x480c680c, 0x4810680d, 0x4808680e, 0x0501f037,
+ 0x592c0c0e, 0x90040d04, 0x592c040b, 0x80000110,
+ 0x90000508, 0x80040d40, 0x05fdf7ee, 0x82080500,
+ 0xffff0003, 0x01360048, 0x8c140510, 0x05000016,
+ 0x58343812, 0x58344013, 0x58343014, 0x8c040506,
+ 0x05000004, 0x82180500, 0xffff0003, 0x01360048,
+ 0x8c040504, 0x05020009, 0x8c040506, 0x0500001f,
+ 0x481c7007, 0x48207008, 0x40181000, 0x60483000,
+ 0x607c3800, 0x0501f00f, 0x481c7011, 0x48207012,
+ 0x48187013, 0x60303000, 0x60203800, 0x8c140510,
+ 0x05000006, 0x603c3000, 0x60683800, 0x8c040506,
+ 0x05020002, 0x60603800, 0x480c7007, 0x48107008,
+ 0x481c7010, 0x592c0804, 0x48047006, 0x492c700b,
+ 0x4818700e, 0x4834700c, 0x48365801, 0x65286808,
+ 0x5c025800, 0x0135f72f, 0x48365801, 0x65286808,
+ 0x6006e000, 0x40341000, 0x822c0580, 0x0000016a,
+ 0x05020004, 0x0501f80e, 0x5c025800, 0x1c01f000,
+ 0x0501f97c, 0x5c025800, 0x1c01f000, 0x592c0001,
+ 0x80001540, 0x0134001b, 0x58080a08, 0x82040d00,
+ 0x000000ff, 0xb004058a, 0x01360022, 0x58080409,
+ 0x8c000510, 0x05000091, 0x4d2c0000, 0x4c080000,
+ 0x05f9fe6c, 0x5c001000, 0x05000008, 0x412c6800,
+ 0x5c025800, 0x48365805, 0x592c5a0e, 0x0501f80e,
+ 0x05000086, 0x0135f029, 0x5c025800, 0x492de005,
+ 0x6022e000, 0x4a01e004, 0x000209c3, 0x1c01f000,
+ 0x6006e000, 0x412c6800, 0x58f25805, 0x592c1001,
+ 0x05fdf7f1, 0x592c220b, 0x5808480c, 0x5808040d,
+ 0x80004540, 0x0500004c, 0x80102480, 0x0500004a,
+ 0x05001049, 0x90200483, 0x05001007, 0x0500000b,
+ 0x0500100c, 0x40004000, 0x58081001, 0x90200485,
+ 0x05fdf7fb, 0x40200000, 0x0c01f001, 0x00020a18,
+ 0x000209f2, 0x000209f6, 0x58081001, 0x0501f008,
+ 0x40200000, 0x0c01f001, 0x000209e6, 0x000209ea,
+ 0x000209ee, 0x000209f2, 0x000209f6, 0x60240800,
+ 0x42001800, 0x00100042, 0x0501f010, 0x60300800,
+ 0x42001800, 0x00100043, 0x0501f00c, 0x603c0800,
+ 0x42001800, 0x00100044, 0x0501f008, 0x60480800,
+ 0x42001800, 0x00100045, 0x0501f004, 0x60540800,
+ 0x42001800, 0x00100046, 0x40080000, 0x80043c00,
+ 0x581c2800, 0x581c3001, 0x581c3802, 0x8c2c0502,
+ 0x0500000e, 0x80102040, 0x0500000c, 0x90040595,
+ 0x05000004, 0x90040c03, 0x800c1800, 0x0501f007,
+ 0x58081001, 0x800811c0, 0x01000e15, 0x60240800,
+ 0x42001800, 0x00100042, 0x48046809, 0x4808680a,
+ 0x480c680b, 0x4810680c, 0x4814680d, 0x4818680e,
+ 0x481c680f, 0x48246810, 0x64046811, 0x80000580,
+ 0x1c01f000, 0x90000541, 0x1c01f000, 0x592c0208,
+ 0x82000500, 0x000000ff, 0xb00005a8, 0x05000007,
+ 0x90000582, 0x05000005, 0x90000598, 0x05000003,
+ 0x90000588, 0x0502001a, 0x592c0001, 0x80001540,
+ 0x05000017, 0x58080208, 0x82000500, 0x000000ff,
+ 0xb000058a, 0x05020012, 0x58080409, 0x8c000510,
+ 0x0500000f, 0x592c0005, 0x4d2c0000, 0x80025d40,
+ 0x59a8000c, 0x812c0480, 0x05021003, 0x0159fa66,
+ 0x05000008, 0x59a8000a, 0x812c0480, 0x05021005,
+ 0x0105f9c9, 0x5c025800, 0x497a5805, 0x1c01f000,
0x5c025800, 0x05fdf7fe, 0x592e8a0a, 0x83440c80,
- 0x000007f0, 0x01321539, 0x8d0c050e, 0x0132057e,
- 0x592e4414, 0x81224110, 0x83440400, 0x0010d400,
- 0x50000000, 0x80026d40, 0x01300591, 0x59340013,
- 0x80000130, 0x81200580, 0x01320591, 0x599c0018,
- 0x8c00052a, 0x05000005, 0x592c0003, 0x5800040c,
- 0x81200580, 0x01320591, 0x5934000a, 0x8c00052e,
- 0x01320597, 0x05fdf885, 0x01320593, 0x1c01f000,
- 0x58f00803, 0x58f00400, 0x48065800, 0x492c0801,
- 0x492de003, 0x80000040, 0x4801e400, 0x05000002,
- 0x1c01f000, 0x58f25802, 0x58f00007, 0x6006e000,
- 0x0801f800, 0x1c01f000, 0x80140110, 0x0130052b,
- 0x80000040, 0x05020009, 0x592c240e, 0x8c100504,
- 0x0500000a, 0x592c020b, 0x82000c80, 0x00001001,
- 0x01321539, 0x0135f3b1, 0x4a01e007, 0x00020a53,
- 0x05fdf68d, 0x592c240e, 0x592c040b, 0x8c000510,
- 0x0500000d, 0x0169f933, 0x0502000b, 0x59a800df,
- 0x492f50df, 0x492fc857, 0x4803c857, 0x80000d40,
- 0x05000003, 0x492c0800, 0x1c01f000, 0x492f50de,
- 0x1c01f000, 0x592e8a0a, 0x417a7800, 0x592e440b,
- 0x83224500, 0x000000ff, 0x83200580, 0x000000ff,
- 0x01300716, 0x83200400, 0x0010d17b, 0x50024800,
- 0x83440c80, 0x000007f0, 0x0132170d, 0x83440c00,
- 0x0010d400, 0x50040000, 0x80026d40, 0x01300711,
- 0x59340013, 0x80000130, 0x81200580, 0x01320711,
- 0x59340002, 0x592c080c, 0x80040580, 0x82000500,
- 0x00ffffff, 0x01320539, 0x59243a00, 0x901c0503,
- 0x90000583, 0x05000004, 0x59340200, 0x8c00050e,
- 0x0130070a, 0x592c040b, 0x8c000510, 0x0500001b,
- 0x592c080d, 0x59a802dd, 0x80041480, 0x0130172f,
- 0x59a804dd, 0x80000000, 0x80041480, 0x0132172f,
- 0x0139fa9c, 0x01300539, 0x59300407, 0x800001c0,
- 0x01320539, 0x497a580c, 0x4936600a, 0x59340002,
- 0x82000500, 0x00ffffff, 0x4802600b, 0x641a6407,
- 0x4926601d, 0x492e6017, 0x592c040e, 0x8c00051e,
- 0x01320539, 0x1c01f000, 0x592e600d, 0x497a580c,
- 0x83300480, 0x00111b00, 0x0130172f, 0xa1300495,
- 0x013216d4, 0x592c0a10, 0x59300202, 0x80040580,
- 0x0132072f, 0x4936600a, 0x4926601d, 0x8c10051c,
- 0x013206c8, 0x59240206, 0x8c000510, 0x01320747,
- 0x8d0c050e, 0x013206b4, 0x8c1c0516, 0x0132073e,
- 0x59340200, 0x8c000518, 0x0132072c, 0x59300c07,
- 0x90040586, 0x0132074a, 0xa1300494, 0x05021008,
- 0x05000007, 0x592c040e, 0x8c00051e, 0x05000004,
- 0x59300203, 0x90000587, 0x01320744, 0x8c100508,
- 0x013206aa, 0x59300809, 0x497a5807, 0x64025a0a,
- 0x800409c0, 0x013206af, 0x59300416, 0x8c000516,
- 0x01320732, 0x492e6009, 0x0501f359, 0x497a5805,
- 0x80140110, 0x0130052b, 0x80000040, 0x0130052b,
- 0x592c0a0b, 0x82040c80, 0x00001001, 0x01321539,
- 0x4a01e007, 0x00020ae1, 0x05fdf5ff, 0x592c0001,
- 0x80001540, 0x0130052b, 0x58080a08, 0x82040d00,
- 0x000000ff, 0xb004058a, 0x01320532, 0x58080409,
- 0x8c000510, 0x05020021, 0x6006e000, 0x592c240e,
- 0x8c100504, 0x05fc0765, 0x592c0208, 0x82000580,
- 0x0000017a, 0x05fc0761, 0x40087800, 0x592c020b,
- 0x82000480, 0x00001001, 0x01321539, 0x583c180c,
- 0x583c200d, 0x583c100e, 0x82080500, 0xffff0003,
- 0x01320539, 0x600ae000, 0x42000000, 0x001102f1,
- 0x50007000, 0x64207010, 0x592c0804, 0x48047006,
- 0x480c7007, 0x48107008, 0x492c700b, 0x6430700e,
- 0x483c700c, 0x0135f3c3, 0x592c240e, 0x8c100504,
- 0x01320539, 0x4d2c0000, 0x4c080000, 0x05f9fd06,
- 0x5c001000, 0x0500000e, 0x412c6800, 0x5c025800,
- 0x592c5c0e, 0x802c5942, 0x48365805, 0x05fdfe88,
- 0x05fc0739, 0x0131f539, 0x6006e000, 0x412c6800,
- 0x58f25805, 0x592c1001, 0x05fdf7f6, 0x5c025800,
- 0x492de005, 0x6022e000, 0x4a01e004, 0x00020b1c,
- 0x1c01f000, 0x4df00000, 0x4203e000, 0x50000000,
- 0x0502b00b, 0x835c0480, 0x00000104, 0x0500100c,
- 0x815eb840, 0x416a5800, 0x592ed000, 0x492fb007,
- 0x497a5800, 0x497a5801, 0x05fcb7f7, 0x59d80005,
- 0x82000500, 0x43238780, 0x0136007f, 0x5c03e000,
- 0x1c01f000, 0x4df00000, 0x4203e000, 0x50000000,
- 0x0502f00b, 0x835c0480, 0x00000104, 0x0500100c,
- 0x815eb840, 0x416a5800, 0x592ed000, 0x492fa807,
- 0x497a5800, 0x497a5801, 0x05fcf7f7, 0x59d40005,
- 0x82000500, 0x43238780, 0x01360079, 0x5c03e000,
- 0x1c01f000, 0x40307000, 0x5838000b, 0x80025d40,
- 0x0500001c, 0x58380002, 0x82000580, 0x00000100,
- 0x0500001d, 0x4c380000, 0x592c0208, 0x82000500,
- 0x000000ff, 0x90000592, 0x0500000f, 0xb00005a0,
- 0x0500000d, 0x90000588, 0x0500000b, 0x592c020c,
- 0x8400054e, 0x48025a0c, 0x497a5c0c, 0x497a5c0d,
- 0x640a5a0a, 0x4a025a08, 0x00000103, 0x05fdf819,
- 0x0501f003, 0x64425a0a, 0x05fdf816, 0x5c007000,
- 0x6006e000, 0x4a007002, 0x00000100, 0x49787010,
- 0x1c01f000, 0x58380004, 0x90000483, 0x05000081,
- 0x58381010, 0x8c080500, 0x05020014, 0x8c080506,
- 0x05020037, 0x600cb000, 0x912cac15, 0x5838000a,
- 0x5838100d, 0x8008a400, 0x4c380000, 0x0169f8a7,
- 0x5c007000, 0x5838000d, 0x90000403, 0x4800700d,
- 0x64047010, 0x58380004, 0x90000483, 0x48007004,
- 0x90000583, 0x0500006b, 0x5838000e, 0x80001d40,
- 0x05020026, 0x4c380000, 0x05f9fc87, 0x5c007000,
- 0x05000012, 0x4a025a08, 0x0000010a, 0x60241800,
- 0x480c700e, 0x5838000c, 0x80000540, 0x05020002,
- 0x5838000b, 0x40000800, 0x492c0801, 0x492c700c,
- 0x603c0800, 0x0501f019, 0x6022e000, 0x4a01e004,
- 0x00020ba8, 0x1c01f000, 0x6022e000, 0x4a01e004,
- 0x00020bac, 0x1c01f000, 0x600ae000, 0x6e007000,
- 0x001102f1, 0x0501f06b, 0x600ae000, 0x42000000,
- 0x001102f1, 0x50007000, 0x05fdf7e3, 0x84081540,
- 0x48087010, 0x5838180e, 0x583a580c, 0x400c0000,
- 0x60600800, 0x80040c80, 0x58381004, 0x5838000f,
- 0x41783000, 0x80000540, 0x05020004, 0x84183540,
- 0x90081483, 0x05000037, 0x40080000, 0x80040480,
- 0x05001002, 0x40080800, 0x4004b000, 0x412c0000,
- 0x800c0400, 0x4000a800, 0x5838000a, 0x5838100d,
- 0x8008a400, 0x4c080000, 0x4c040000, 0x4c0c0000,
- 0x4c380000, 0x0169f8a7, 0x5c007000, 0x5c001800,
- 0x5c000800, 0x40040000, 0x58381004, 0x80080480,
- 0x48007004, 0x90000583, 0x05000002, 0x84183500,
- 0x5c000000, 0x80041400, 0xb00804a0, 0x05020003,
- 0x84183542, 0x41781000, 0x400c0000, 0x80041c00,
- 0x900c0498, 0x05020003, 0x84183544, 0x40001800,
- 0x40080800, 0x4804700d, 0x480c700e, 0x40180000,
- 0x0c01f001, 0x00020bf3, 0x00020bf6, 0x00020bf4,
- 0x00020bf3, 0x00020b8f, 0x00020bf6, 0x00020bf4,
- 0x00020bf3, 0x0101fdda, 0x5838100f, 0x0135f3c3,
- 0x5838080d, 0x90040402, 0x5838100a, 0x80080400,
- 0x50001000, 0x800811c0, 0x05020041, 0x58381810,
- 0x8c0c0506, 0x0502000b, 0x6006e000, 0x583a580b,
- 0x4978700b, 0x49787010, 0x592c0208, 0x82000500,
- 0x000000ff, 0x90000592, 0x05fc064b, 0x05fdf60f,
- 0x8c0c0502, 0x05020028, 0x8c0c0508, 0x05000016,
- 0x5838080c, 0x5838000e, 0x80002d40, 0x0502000b,
- 0x4c380000, 0x0105f971, 0x5c007000, 0x05fc078b,
- 0x412c0800, 0x583a580c, 0x48065801, 0x4a000a08,
- 0x0000010a, 0x60242800, 0x58381811, 0x58382012,
- 0x58381013, 0x80040c05, 0x480c0800, 0x48100801,
- 0x48080802, 0x6006e000, 0x583a580b, 0x4978700b,
- 0x49787010, 0x592c0208, 0x82000d00, 0x000000ff,
- 0xb00405b2, 0x05fc0628, 0x592c1001, 0xb00405ba,
- 0x05fe0559, 0x58080409, 0x8c000510, 0x05fc0622,
- 0x05fdf6dd, 0x8c0c0504, 0x05fe07ef, 0x840c1d44,
- 0x480c7010, 0x58381811, 0x58382012, 0x58381013,
- 0x480c7007, 0x48107008, 0x0135f3c3, 0x5838000a,
- 0x80040c00, 0x90381c07, 0x54041800, 0x80040800,
- 0x800c1800, 0x54041800, 0x0135f3c3, 0x80140110,
- 0x0130052b, 0x80000040, 0x0130052b, 0x4a01e007,
- 0x00020c4c, 0x05fdf494, 0x4d2c0000, 0x0105f971,
- 0x412c6800, 0x5c025800, 0x05000006, 0x48365805,
- 0x90346c01, 0x0501f80c, 0x05fc05c4, 0x0131f539,
- 0x492de006, 0x6022e000, 0x4a01e004, 0x00020c5b,
- 0x1c01f000, 0x6006e000, 0x412c6800, 0x58f25806,
- 0x05fdf7f3, 0x592c4812, 0x592c020b, 0x80004540,
- 0x05000023, 0x592c040b, 0x80002540, 0x05000020,
- 0x592c7001, 0x80204040, 0x05000008, 0x90200485,
- 0x05001006, 0x58387001, 0x803871c0, 0x05000018,
- 0x80004540, 0x05fe07fa, 0x82204400, 0x001012a3,
- 0x50200000, 0x80380c00, 0x58042800, 0x58043001,
- 0x58043802, 0x4838680d, 0x4800680c, 0x49786814,
- 0x49786815, 0x48146810, 0x48186811, 0x481c6812,
- 0x4820680e, 0x48246813, 0x80102040, 0x4810680f,
- 0x05020005, 0x80000580, 0x1c01f000, 0x90000541,
- 0x1c01f000, 0x80204000, 0x50201800, 0x800c19c0,
- 0x0502000a, 0x58380001, 0x80007540, 0x05fc07f8,
- 0x58380208, 0x9000050f, 0x82000400, 0x001012ac,
- 0x50004000, 0x50201800, 0x4820680e, 0x480c680c,
- 0x4838680d, 0x05fdf7ec, 0x4df00000, 0x4203e000,
- 0x50000000, 0x5994002e, 0x80000540, 0x05000183,
- 0x4c000000, 0x5c000000, 0x59947824, 0x4803282f,
- 0x803c0480, 0x05001004, 0x05000003, 0x48032824,
- 0x0501f05f, 0x417a0800, 0x81060800, 0x82000400,
- 0x000003e8, 0x05fc27fd, 0x48032824, 0x59940032,
- 0x80000d40, 0x05000006, 0x80040840, 0x48072832,
- 0x05020003, 0x59940033, 0x0801f800, 0x59a8001c,
- 0x8400057e, 0x4803501c, 0x59a80022, 0x8400057e,
- 0x48035022, 0x59a8000f, 0x8400057e, 0x4803500f,
- 0x59a80010, 0x8400057e, 0x48035010, 0x0125f91f,
- 0x0502000a, 0x59a80878, 0x800409c0, 0x05000007,
- 0xa0040c81, 0x48075078, 0x05000002, 0x05021003,
- 0x497b5078, 0x013dfecc, 0x59a800a7, 0x8c000500,
- 0x0500000e, 0x59a80878, 0x800409c0, 0x0500000b,
- 0xa0040c81, 0x48075078, 0x05000002, 0x05021007,
- 0x497b5078, 0x42000000, 0x0010dd09, 0x50000800,
- 0x84040d48, 0x44040000, 0x59a800b8, 0x81041400,
- 0x480b50b8, 0x59a808ba, 0x81040c01, 0x82040480,
- 0x00028f5a, 0x05001002, 0x41780800, 0x480750ba,
- 0x81040040, 0x05000002, 0x4907c857, 0x59e40852,
- 0x59a800b9, 0x80040580, 0x05000004, 0x480bc857,
- 0x59e40052, 0x480350b9, 0x59940030, 0x81040400,
- 0x48032830, 0x0139ff8b, 0x5998b002, 0x8058b1c0,
- 0x05000008, 0x40f25800, 0x592e5801, 0x592c020a,
- 0x8c000500, 0x05fe0a3a, 0x8058b040, 0x05fe07fb,
- 0x59940000, 0x90000580, 0x05020005, 0x59940030,
- 0x48032831, 0x497b2830, 0x64072800, 0x4c0c0000,
- 0x58d400e5, 0x8c000514, 0x05000013, 0x59940807,
- 0x59941006, 0x5994002f, 0x80081c80, 0x05001004,
- 0x05000003, 0x480f2806, 0x0501f00b, 0x80040840,
- 0x48072807, 0x05020004, 0x59940008, 0x0801f800,
- 0x0501f005, 0x400c0000, 0x900c1c0a, 0x05fc27f8,
- 0x480f2806, 0x5c001800, 0x4d180000, 0x59c80040,
- 0x8c000534, 0x05020025, 0x417a3000, 0x91947c09,
- 0x60042000, 0x58d400e5, 0x80100500, 0x05020007,
- 0x801020c4, 0x903c7c05, 0x811a3000, 0x91180585,
- 0x05fe07f9, 0x0501f019, 0x583c0801, 0x583c1000,
- 0x5994002f, 0x80080480, 0x05001005, 0x05000004,
- 0x48007800, 0x80000040, 0x05fe17f2, 0x80040840,
- 0x48047801, 0x05000006, 0x9000040a, 0x48007800,
- 0x05fc27fb, 0xb004053f, 0x05fdf7ea, 0x583c0004,
- 0x4c3c0000, 0x4c100000, 0x0801f800, 0x5c002000,
- 0x5c007800, 0x05fdf7e3, 0x5c023000, 0x8d0c0516,
- 0x05020017, 0x8d0c0522, 0x0500001e, 0x5998b008,
- 0x8058b1c0, 0x05000012, 0x41765800, 0x592e5800,
- 0x592c0003, 0x80001540, 0x05000006, 0x05002008,
- 0x5994002f, 0x80080480, 0x05021004, 0x497a5803,
- 0x05f9fea5, 0x0501f002, 0x48025803, 0x8058b040,
- 0x05fe07f3, 0x8d0c0520, 0x0500000a, 0x59940023,
- 0x80001540, 0x05000007, 0x05002006, 0x5994002f,
- 0x80080480, 0x05021002, 0x80000580, 0x48032823,
- 0x59940026, 0x80000d40, 0x05000012, 0x59941025,
- 0x5994002f, 0x80080480, 0x05001005, 0x05000004,
- 0x48032825, 0x80000040, 0x0502100a, 0x80040840,
- 0x48072826, 0x05020004, 0x59940027, 0x0801f800,
- 0x0501f004, 0x9000040a, 0x48032825, 0x05fc27f8,
- 0x59940004, 0x80000d40, 0x05000012, 0x59941003,
- 0x5994002f, 0x80080480, 0x05001005, 0x05000004,
- 0x48032803, 0x80000040, 0x0502100a, 0x80040840,
- 0x48072804, 0x05020004, 0x59940005, 0x0801f800,
- 0x0501f004, 0x9000040a, 0x48032803, 0x05fc27f8,
- 0x59940029, 0x80000d40, 0x05000012, 0x59941028,
- 0x5994002f, 0x80080480, 0x05001005, 0x05000004,
- 0x48032828, 0x80000040, 0x0502100a, 0x80040840,
- 0x48072829, 0x05020004, 0x5994002a, 0x0801f800,
- 0x0501f004, 0x90000401, 0x48032828, 0x05fc27f8,
- 0x5994002c, 0x80000d40, 0x05000012, 0x5994102b,
- 0x5994002f, 0x80080480, 0x05001005, 0x05000004,
- 0x4803282b, 0x80000040, 0x0502100a, 0x80040840,
- 0x4807282c, 0x05020004, 0x5994002d, 0x0801f800,
- 0x0501f004, 0x9000040a, 0x4803282b, 0x05fc27f8,
- 0x59a8081c, 0x8c04053e, 0x0500001b, 0x84040d3e,
- 0x4807501c, 0x05000018, 0x5994002f, 0x4c000000,
- 0x82000400, 0x000003e8, 0x4803282f, 0x80040480,
- 0x05001004, 0x05000003, 0x4803501c, 0x0501f00c,
- 0x4c000000, 0x013df83f, 0x013c08af, 0x5c000000,
- 0x59a8081b, 0x80040400, 0x05fc27ff, 0x800001c0,
- 0x05020002, 0x40040000, 0x4803501c, 0x5c000000,
- 0x4803282f, 0x59a8080f, 0x8c04053e, 0x05000021,
- 0x84040d3e, 0x4807500f, 0x0500001e, 0x5994002f,
- 0x4c000000, 0x82000400, 0x000003e8, 0x4803282f,
- 0x80040480, 0x05001009, 0x05000008, 0x4803500f,
- 0x4c000000, 0x59a8100d, 0x5808040b, 0x8c000514,
- 0x5c000000, 0x0500000d, 0x4c000000, 0x60480000,
- 0x59a8100d, 0x013dfb92, 0x013c08af, 0x5c000000,
- 0x90000400, 0x05fc27ff, 0x800001c0, 0x05020002,
- 0x60000000, 0x4803500f, 0x5c000000, 0x4803282f,
- 0x59a80810, 0x8c04053e, 0x05000023, 0x84040d3e,
- 0x48075010, 0x05000020, 0x5994002f, 0x4c000000,
- 0x82000400, 0x000003e8, 0x4803282f, 0x80040480,
- 0x05001009, 0x05000008, 0x48035010, 0x4c000000,
- 0x59a8100e, 0x5808040b, 0x8c000514, 0x5c000000,
- 0x0500000f, 0x4c000000, 0x60500000, 0x59a8100e,
- 0x013dfb92, 0x013c08af, 0x5c000000, 0x82000400,
- 0x000927c0, 0x05fc27fe, 0x800001c0, 0x05020003,
- 0x42000000, 0x000927c0, 0x48035010, 0x5c000000,
- 0x4803282f, 0x5994082e, 0x5994002f, 0x80040480,
- 0x01001dda, 0x4803282e, 0x59940000, 0x0c01f001,
- 0x00020e25, 0x001076d4, 0x00107743, 0x5c03e000,
- 0x1c01f000, 0x5994002e, 0x80000000, 0x4803282e,
- 0x4203e000, 0x70000000, 0x1c01f000, 0x813e79c0,
- 0x05020016, 0x59a800d4, 0x80000040, 0x05fe07ff,
- 0x58d400ea, 0x8c000516, 0x05fe07fe, 0x91300400,
- 0x4801a8e1, 0x592c1003, 0x5808020a, 0x8c000500,
- 0x0500000a, 0x592c1c0e, 0x820c1d00, 0x000000c0,
- 0xb00c1d80, 0x05000005, 0x592c1813, 0x5808000d,
- 0x800c0400, 0x4800100d, 0x1c01f000, 0x5c000000,
- 0x4c000000, 0x4803c857, 0x4807c857, 0x59302a03,
- 0x98140486, 0x05000005, 0x601c2800, 0x0501f003,
- 0x60040800, 0x601c2800, 0x59325809, 0x832c0580,
- 0x00110228, 0x0500001f, 0x832c0500, 0x00ff0000,
- 0x05000025, 0x592c1000, 0x59301808, 0x59302027,
- 0x801021c0, 0x05020039, 0x592c040e, 0x480a6009,
- 0x48166203, 0x8c000510, 0x0502001c, 0x48065a0a,
- 0x820c0500, 0x04000800, 0x82000580, 0x04000800,
- 0x0500002b, 0xa1300494, 0x05021009, 0x05000008,
- 0x592c040e, 0x8c00051e, 0x05020005, 0x013dff4d,
- 0x59300202, 0x48025a10, 0x4932580d, 0x05f9fd11,
- 0x417a7800, 0x59300009, 0x82000d80, 0x00110228,
- 0x05020003, 0x58040000, 0x48026009, 0x80025d40,
- 0x05fe07b3, 0x1c01f000, 0x832c0580, 0x00110228,
- 0x05fc07f4, 0x592c040b, 0x8c000510, 0x05fe07f1,
- 0x98040481, 0x05fe07de, 0x456a5800, 0x412ed000,
- 0x815eb800, 0x592c0001, 0x80000d40, 0x05020006,
+ 0x000007f0, 0x0502101e, 0x8d0c050e, 0x0136006e,
+ 0x592e4414, 0x81224110, 0x83440480, 0x000007f0,
+ 0x0502101e, 0x83440400, 0x0010db80, 0x50000000,
+ 0x80026d40, 0x0134007e, 0x59340013, 0x80000130,
+ 0x81200580, 0x0136007e, 0x599c0018, 0x8c00052a,
+ 0x05000005, 0x592c0003, 0x5800040c, 0x81200580,
+ 0x0136007e, 0x5934000a, 0x8c00052e, 0x01360084,
+ 0x05fdf861, 0x01360080, 0x1c01f000, 0x83440c80,
+ 0x00000800, 0x01341029, 0x59a800ad, 0x81440480,
+ 0x01361029, 0x05fdf7dd, 0x05fdf89f, 0x05fc07e7,
+ 0x0135f07e, 0x58f00803, 0x58f00400, 0x48065800,
+ 0x492c0801, 0x492de003, 0x80000040, 0x4801e400,
+ 0x05000002, 0x1c01f000, 0x58f25802, 0x58f00007,
+ 0x6006e000, 0x0801f800, 0x1c01f000, 0x80140110,
+ 0x0134001b, 0x80000040, 0x05020009, 0x592c240e,
+ 0x8c100504, 0x0500000a, 0x592c020b, 0x82000c80,
+ 0x00001001, 0x01361029, 0x0135f71d, 0x4a01e007,
+ 0x00020a89, 0x05fdf67e, 0x592c240e, 0x592c040b,
+ 0x8c000510, 0x0500000d, 0x016df8ae, 0x0502000b,
+ 0x59a800e4, 0x492f50e4, 0x492fc857, 0x4803c857,
+ 0x80000d40, 0x05000003, 0x492c0800, 0x1c01f000,
+ 0x492f50e3, 0x1c01f000, 0x592e8a0a, 0x417a7800,
+ 0x592e440b, 0x83224500, 0x000000ff, 0x83200580,
+ 0x000000ff, 0x0134021e, 0x83200400, 0x0010d8f9,
+ 0x50024800, 0x83440c80, 0x000007f0, 0x01361215,
+ 0x83440c00, 0x0010db80, 0x50040000, 0x80026d40,
+ 0x01340219, 0x59340013, 0x80000130, 0x81200580,
+ 0x01360219, 0x59340002, 0x592c080c, 0x80040580,
+ 0x82000500, 0x00ffffff, 0x01360029, 0x59243a00,
+ 0x901c0503, 0x90000583, 0x05000004, 0x59340200,
+ 0x8c00050e, 0x01340212, 0x592c040b, 0x8c000510,
+ 0x0500001b, 0x592c080d, 0x59a802e2, 0x80041480,
+ 0x0134123a, 0x59a804e2, 0x80000000, 0x80041480,
+ 0x0136123a, 0x0139fe8a, 0x01340029, 0x59300407,
+ 0x800001c0, 0x01360029, 0x497a580c, 0x4936600a,
+ 0x59340002, 0x82000500, 0x00ffffff, 0x4802600b,
+ 0x641a6407, 0x4926601d, 0x492e6017, 0x592c040e,
+ 0x8c00051e, 0x01360029, 0x1c01f000, 0x592e600d,
+ 0x497a580c, 0x813004af, 0x0134123a, 0xa1300495,
+ 0x013611dc, 0x592c0a10, 0x59300202, 0x80040580,
+ 0x0136023a, 0x4936600a, 0x4926601d, 0x8c10051c,
+ 0x013601ce, 0x59240206, 0x8c000510, 0x01360252,
+ 0x8d0c050e, 0x013601ba, 0x8c1c0516, 0x01360249,
+ 0x59340200, 0x8c000518, 0x01360234, 0x59300c07,
+ 0x90040586, 0x01360255, 0xa1300494, 0x05021009,
+ 0xa1300496, 0x05001007, 0x592c040e, 0x8c00051e,
+ 0x05000004, 0x59300203, 0x90000587, 0x0136024f,
+ 0x8c100508, 0x013601b0, 0x59300809, 0x497a5807,
+ 0x64025a0a, 0x800409c0, 0x013601b5, 0x59300416,
+ 0x8c000516, 0x0136023d, 0x492e6009, 0x0501f359,
+ 0x497a5805, 0x80140110, 0x0134001b, 0x80000040,
+ 0x0134001b, 0x592c0a0b, 0x82040c80, 0x00001001,
+ 0x01361029, 0x4a01e007, 0x00020b17, 0x05fdf5f0,
+ 0x592c0001, 0x80001540, 0x0134001b, 0x58080a08,
+ 0x82040d00, 0x000000ff, 0xb004058a, 0x01360022,
+ 0x58080409, 0x8c000510, 0x05020021, 0x6006e000,
+ 0x592c240e, 0x8c100504, 0x05fc0765, 0x592c0208,
+ 0x82000580, 0x0000017a, 0x05fc0761, 0x40087800,
+ 0x592c020b, 0x82000480, 0x00001001, 0x01361029,
+ 0x583c180c, 0x583c200d, 0x583c100e, 0x82080500,
+ 0xffff0003, 0x01360029, 0x600ae000, 0x42000000,
+ 0x00114295, 0x50007000, 0x64207010, 0x592c0804,
+ 0x48047006, 0x480c7007, 0x48107008, 0x492c700b,
+ 0x6430700e, 0x483c700c, 0x0135f72f, 0x592c240e,
+ 0x8c100504, 0x01360029, 0x4d2c0000, 0x4c080000,
+ 0x05f9fcd8, 0x5c001000, 0x0500000e, 0x412c6800,
+ 0x5c025800, 0x592c5c0e, 0x802c5942, 0x48365805,
+ 0x05fdfe79, 0x05fc0739, 0x0135f029, 0x6006e000,
+ 0x412c6800, 0x58f25805, 0x592c1001, 0x05fdf7f6,
+ 0x5c025800, 0x492de005, 0x6022e000, 0x4a01e004,
+ 0x00020b52, 0x1c01f000, 0x4df00000, 0x4203e000,
+ 0x50000000, 0x0502b00b, 0x835c0480, 0x00000104,
+ 0x0500100c, 0x815eb840, 0x416a5800, 0x592ed000,
+ 0x492fb007, 0x497a5800, 0x497a5801, 0x05fcb7f7,
+ 0x59d80005, 0x82000500, 0x43238780, 0x01360395,
+ 0x5c03e000, 0x1c01f000, 0x4df00000, 0x4203e000,
+ 0x50000000, 0x0502f00b, 0x835c0480, 0x00000104,
+ 0x0500100c, 0x815eb840, 0x416a5800, 0x592ed000,
+ 0x492fa807, 0x497a5800, 0x497a5801, 0x05fcf7f7,
+ 0x59d40005, 0x82000500, 0x43238780, 0x0136038f,
+ 0x5c03e000, 0x1c01f000, 0x40307000, 0x5838000b,
+ 0x80025d40, 0x0500001c, 0x58380002, 0x82000580,
+ 0x00000100, 0x0500001d, 0x4c380000, 0x592c0208,
+ 0x82000500, 0x000000ff, 0x90000592, 0x0500000f,
+ 0xb00005a0, 0x0500000d, 0x90000588, 0x0500000b,
+ 0x592c020c, 0x8400054e, 0x48025a0c, 0x497a5c0c,
+ 0x497a5c0d, 0x640a5a0a, 0x4a025a08, 0x00000103,
+ 0x05fdf809, 0x0501f003, 0x64425a0a, 0x05fdf806,
+ 0x5c007000, 0x6006e000, 0x4a007002, 0x00000100,
+ 0x49787010, 0x1c01f000, 0x58380004, 0x90000483,
+ 0x05000081, 0x58381010, 0x8c080500, 0x05020014,
+ 0x8c080506, 0x05020037, 0x600cb000, 0x912cac15,
+ 0x5838000a, 0x5838100d, 0x8008a400, 0x4c380000,
+ 0x0501fe18, 0x5c007000, 0x5838000d, 0x90000403,
+ 0x4800700d, 0x64047010, 0x58380004, 0x90000483,
+ 0x48007004, 0x90000583, 0x0500006b, 0x5838000e,
+ 0x80001d40, 0x05020026, 0x4c380000, 0x05f9fc59,
+ 0x5c007000, 0x05000012, 0x4a025a08, 0x0000010a,
+ 0x60241800, 0x480c700e, 0x5838000c, 0x80000540,
+ 0x05020002, 0x5838000b, 0x40000800, 0x492c0801,
+ 0x492c700c, 0x603c0800, 0x0501f019, 0x6022e000,
+ 0x4a01e004, 0x00020bde, 0x1c01f000, 0x6022e000,
+ 0x4a01e004, 0x00020be2, 0x1c01f000, 0x600ae000,
+ 0x6e007000, 0x00114295, 0x0501f06b, 0x600ae000,
+ 0x42000000, 0x00114295, 0x50007000, 0x05fdf7e3,
+ 0x84081540, 0x48087010, 0x5838180e, 0x583a580c,
+ 0x400c0000, 0x60600800, 0x80040c80, 0x58381004,
+ 0x5838000f, 0x41783000, 0x80000540, 0x05020004,
+ 0x84183540, 0x90081483, 0x05000037, 0x40080000,
+ 0x80040480, 0x05001002, 0x40080800, 0x4004b000,
+ 0x412c0000, 0x800c0400, 0x4000a800, 0x5838000a,
+ 0x5838100d, 0x8008a400, 0x4c080000, 0x4c040000,
+ 0x4c0c0000, 0x4c380000, 0x0501fdca, 0x5c007000,
+ 0x5c001800, 0x5c000800, 0x40040000, 0x58381004,
+ 0x80080480, 0x48007004, 0x90000583, 0x05000002,
+ 0x84183500, 0x5c000000, 0x80041400, 0xb00804a0,
+ 0x05020003, 0x84183542, 0x41781000, 0x400c0000,
+ 0x80041c00, 0x900c0498, 0x05020003, 0x84183544,
+ 0x40001800, 0x40080800, 0x4804700d, 0x480c700e,
+ 0x40180000, 0x0c01f001, 0x00020c29, 0x00020c2c,
+ 0x00020c2a, 0x00020c29, 0x00020bc5, 0x00020c2c,
+ 0x00020c2a, 0x00020c29, 0x0101fe15, 0x5838100f,
+ 0x0135f72f, 0x5838080d, 0x90040402, 0x5838100a,
+ 0x80080400, 0x50001000, 0x800811c0, 0x05020041,
+ 0x58381810, 0x8c0c0506, 0x0502000b, 0x6006e000,
+ 0x583a580b, 0x4978700b, 0x49787010, 0x592c0208,
+ 0x82000500, 0x000000ff, 0x90000592, 0x05fc064b,
+ 0x05fdf602, 0x8c0c0502, 0x05020028, 0x8c0c0508,
+ 0x05000016, 0x5838080c, 0x5838000e, 0x80002d40,
+ 0x0502000b, 0x4c380000, 0x0105f9a8, 0x5c007000,
+ 0x05fc078b, 0x412c0800, 0x583a580c, 0x48065801,
+ 0x4a000a08, 0x0000010a, 0x60242800, 0x58381811,
+ 0x58382012, 0x58381013, 0x80040c05, 0x480c0800,
+ 0x48100801, 0x48080802, 0x6006e000, 0x583a580b,
+ 0x4978700b, 0x49787010, 0x592c0208, 0x82000d00,
+ 0x000000ff, 0xb00405b2, 0x05fc0628, 0x592c1001,
+ 0xb00405ba, 0x05fe054a, 0x58080409, 0x8c000510,
+ 0x05fc0622, 0x05fdf6dd, 0x8c0c0504, 0x05fe07ef,
+ 0x840c1d44, 0x480c7010, 0x58381811, 0x58382012,
+ 0x58381013, 0x480c7007, 0x48107008, 0x0135f72f,
+ 0x5838000a, 0x80040c00, 0x90381c07, 0x54041800,
+ 0x80040800, 0x800c1800, 0x54041800, 0x0135f72f,
+ 0x80140110, 0x0134001b, 0x80000040, 0x0134001b,
+ 0x4a01e007, 0x00020c82, 0x05fdf485, 0x4d2c0000,
+ 0x0105f9a8, 0x412c6800, 0x5c025800, 0x05000006,
+ 0x48365805, 0x90346c01, 0x0501f80c, 0x05fc05b7,
+ 0x0135f029, 0x492de006, 0x6022e000, 0x4a01e004,
+ 0x00020c91, 0x1c01f000, 0x6006e000, 0x412c6800,
+ 0x58f25806, 0x05fdf7f3, 0x592c4812, 0x592c020b,
+ 0x80004540, 0x05000023, 0x592c040b, 0x80002540,
+ 0x05000020, 0x592c7001, 0x80204040, 0x05000008,
+ 0x90200485, 0x05001006, 0x58387001, 0x803871c0,
+ 0x05000018, 0x80004540, 0x05fe07fa, 0x82204400,
+ 0x00100042, 0x50200000, 0x80380c00, 0x58042800,
+ 0x58043001, 0x58043802, 0x4838680d, 0x4800680c,
+ 0x49786814, 0x49786815, 0x48146810, 0x48186811,
+ 0x481c6812, 0x4820680e, 0x48246813, 0x80102040,
+ 0x4810680f, 0x05020005, 0x80000580, 0x1c01f000,
+ 0x90000541, 0x1c01f000, 0x80204000, 0x50201800,
+ 0x800c19c0, 0x0502000a, 0x58380001, 0x80007540,
+ 0x05fc07f8, 0x58380208, 0x9000050f, 0x82000400,
+ 0x0010004b, 0x50004000, 0x50201800, 0x4820680e,
+ 0x480c680c, 0x4838680d, 0x05fdf7ec, 0x4df00000,
+ 0x4203e000, 0x50000000, 0x5994002f, 0x80000540,
+ 0x05000183, 0x4c000000, 0x5c000000, 0x59947824,
+ 0x48032830, 0x803c0480, 0x05001004, 0x05000003,
+ 0x48032824, 0x0501f05f, 0x417a0800, 0x81060800,
+ 0x82000400, 0x000003e8, 0x05fc27fd, 0x48032824,
+ 0x59940033, 0x80000d40, 0x05000006, 0x80040840,
+ 0x48072833, 0x05020003, 0x59940034, 0x0801f800,
+ 0x59a8001e, 0x8400057e, 0x4803501e, 0x59a80024,
+ 0x8400057e, 0x48035024, 0x59a80011, 0x8400057e,
+ 0x48035011, 0x59a80012, 0x8400057e, 0x48035012,
+ 0x0125fac5, 0x0502000a, 0x59a8087b, 0x800409c0,
+ 0x05000007, 0xa0040c81, 0x4807507b, 0x05000002,
+ 0x05021003, 0x497b507b, 0x0141fb83, 0x59a800aa,
+ 0x8c000500, 0x0500000e, 0x59a8087b, 0x800409c0,
+ 0x0500000b, 0xa0040c81, 0x4807507b, 0x05000002,
+ 0x05021007, 0x497b507b, 0x42000000, 0x00111c8f,
+ 0x50000800, 0x84040d48, 0x44040000, 0x59a800bd,
+ 0x81041400, 0x480b50bd, 0x59a808bf, 0x81040c01,
+ 0x82040480, 0x00028f5a, 0x05001002, 0x41780800,
+ 0x480750bf, 0x81040040, 0x05000002, 0x4907c857,
+ 0x59e40852, 0x59a800be, 0x80040580, 0x05000004,
+ 0x480bc857, 0x59e40052, 0x480350be, 0x59940031,
+ 0x81040400, 0x48032831, 0x013dfbef, 0x5998b002,
+ 0x8058b1c0, 0x05000008, 0x40f25800, 0x592e5801,
+ 0x592c020a, 0x8c000500, 0x05fe0a2b, 0x8058b040,
+ 0x05fe07fb, 0x59940000, 0x90000580, 0x05020005,
+ 0x59940031, 0x48032832, 0x497b2831, 0x64072800,
+ 0x4c0c0000, 0x58d400e5, 0x8c000514, 0x05000013,
+ 0x59940807, 0x59941006, 0x59940030, 0x80081c80,
+ 0x05001004, 0x05000003, 0x480f2806, 0x0501f00b,
+ 0x80040840, 0x48072807, 0x05020004, 0x59940008,
+ 0x0801f800, 0x0501f005, 0x400c0000, 0x900c1c0a,
+ 0x05fc27f8, 0x480f2806, 0x5c001800, 0x4d180000,
+ 0x59c80040, 0x8c000534, 0x05020025, 0x417a3000,
+ 0x91947c09, 0x60042000, 0x58d400e5, 0x80100500,
+ 0x05020007, 0x801020c4, 0x903c7c05, 0x811a3000,
+ 0x91180585, 0x05fe07f9, 0x0501f019, 0x583c0801,
+ 0x583c1000, 0x59940030, 0x80080480, 0x05001005,
+ 0x05000004, 0x48007800, 0x80000040, 0x05fe17f2,
+ 0x80040840, 0x48047801, 0x05000006, 0x9000040a,
+ 0x48007800, 0x05fc27fb, 0xb004053f, 0x05fdf7ea,
+ 0x583c0004, 0x4c3c0000, 0x4c100000, 0x0801f800,
+ 0x5c002000, 0x5c007800, 0x05fdf7e3, 0x5c023000,
+ 0x8d0c0516, 0x05020017, 0x8d0c0522, 0x0500001e,
+ 0x5998b008, 0x8058b1c0, 0x05000012, 0x41765800,
+ 0x592e5800, 0x592c0003, 0x80001540, 0x05000006,
+ 0x05002008, 0x59940030, 0x80080480, 0x05021004,
+ 0x497a5803, 0x05f9fe95, 0x0501f002, 0x48025803,
+ 0x8058b040, 0x05fe07f3, 0x8d0c0520, 0x0500000a,
+ 0x59940023, 0x80001540, 0x05000007, 0x05002006,
+ 0x59940030, 0x80080480, 0x05021002, 0x80000580,
+ 0x48032823, 0x59940026, 0x80000d40, 0x05000012,
+ 0x59941025, 0x59940030, 0x80080480, 0x05001005,
+ 0x05000004, 0x48032825, 0x80000040, 0x0502100a,
+ 0x80040840, 0x48072826, 0x05020004, 0x59940027,
+ 0x0801f800, 0x0501f004, 0x9000040a, 0x48032825,
+ 0x05fc27f8, 0x59940004, 0x80000d40, 0x05000012,
+ 0x59941003, 0x59940030, 0x80080480, 0x05001005,
+ 0x05000004, 0x48032803, 0x80000040, 0x0502100a,
+ 0x80040840, 0x48072804, 0x05020004, 0x59940005,
+ 0x0801f800, 0x0501f004, 0x9000040a, 0x48032803,
+ 0x05fc27f8, 0x5994002a, 0x80000d40, 0x05000012,
+ 0x59941028, 0x59940030, 0x80080480, 0x05001005,
+ 0x05000004, 0x48032828, 0x80000040, 0x0502100a,
+ 0x80040840, 0x4807282a, 0x05020004, 0x5994002b,
+ 0x0801f800, 0x0501f004, 0x9000040a, 0x48032828,
+ 0x05fc27f8, 0x5994002d, 0x80000d40, 0x05000012,
+ 0x5994102c, 0x59940030, 0x80080480, 0x05001005,
+ 0x05000004, 0x4803282c, 0x80000040, 0x0502100a,
+ 0x80040840, 0x4807282d, 0x05020004, 0x5994002e,
+ 0x0801f800, 0x0501f004, 0x9000040a, 0x4803282c,
+ 0x05fc27f8, 0x59a8081e, 0x8c04053e, 0x0500001b,
+ 0x84040d3e, 0x4807501e, 0x05000018, 0x59940030,
+ 0x4c000000, 0x82000400, 0x000003e8, 0x48032830,
+ 0x80040480, 0x05001004, 0x05000003, 0x4803501e,
+ 0x0501f00c, 0x4c000000, 0x013dfcff, 0x013c0d6f,
+ 0x5c000000, 0x59a8081d, 0x80040400, 0x05fc27ff,
+ 0x800001c0, 0x05020002, 0x40040000, 0x4803501e,
+ 0x5c000000, 0x48032830, 0x59a80811, 0x8c04053e,
+ 0x05000021, 0x84040d3e, 0x48075011, 0x0500001e,
+ 0x59940030, 0x4c000000, 0x82000400, 0x000003e8,
+ 0x48032830, 0x80040480, 0x05001009, 0x05000008,
+ 0x48035011, 0x4c000000, 0x59a8100f, 0x5808040b,
+ 0x8c000514, 0x5c000000, 0x0500000d, 0x4c000000,
+ 0x60480000, 0x59a8100f, 0x0141f852, 0x013c0d6f,
+ 0x5c000000, 0x90000400, 0x05fc27ff, 0x800001c0,
+ 0x05020002, 0x60000000, 0x48035011, 0x5c000000,
+ 0x48032830, 0x59a80812, 0x8c04053e, 0x05000023,
+ 0x84040d3e, 0x48075012, 0x05000020, 0x59940030,
+ 0x4c000000, 0x82000400, 0x000003e8, 0x48032830,
+ 0x80040480, 0x05001009, 0x05000008, 0x48035012,
+ 0x4c000000, 0x59a81010, 0x5808040b, 0x8c000514,
+ 0x5c000000, 0x0500000f, 0x4c000000, 0x60500000,
+ 0x59a81010, 0x0141f852, 0x013c0d6f, 0x5c000000,
+ 0x82000400, 0x000927c0, 0x05fc27fe, 0x800001c0,
+ 0x05020003, 0x42000000, 0x000927c0, 0x48035012,
+ 0x5c000000, 0x48032830, 0x5994082f, 0x59940030,
+ 0x80040480, 0x01001e15, 0x4803282f, 0x59940000,
+ 0x0c01f001, 0x00020e5b, 0x00107aee, 0x00107ba7,
+ 0x5c03e000, 0x1c01f000, 0x5994002f, 0x80000000,
+ 0x4803282f, 0x4203e000, 0x70000000, 0x1c01f000,
+ 0x813e79c0, 0x05020016, 0x59a800d9, 0x80000040,
+ 0x05fe07ff, 0x58d400ea, 0x8c000516, 0x05fe07fe,
+ 0x91300400, 0x4801a8e1, 0x592c1003, 0x5808720a,
+ 0x8c380500, 0x0500000a, 0x592c1c0e, 0x820c1d00,
+ 0x000000c0, 0xb00c1d80, 0x05000005, 0x592c1813,
+ 0x5808000d, 0x800c0400, 0x4800100d, 0x1c01f000,
+ 0x5c000000, 0x4c000000, 0x4803c857, 0x4807c857,
+ 0x59302a03, 0x98140486, 0x05000005, 0x601c2800,
+ 0x0501f003, 0x60040800, 0x601c2800, 0x59325809,
+ 0x832c0580, 0x001141cc, 0x05000020, 0x832c0500,
+ 0x00ff0000, 0x05000026, 0x592c1000, 0x59301808,
+ 0x59302027, 0x801021c0, 0x0502003a, 0x592c040e,
+ 0x480a6009, 0x48166203, 0x8c000510, 0x0502001d,
+ 0x48065a0a, 0x820c0500, 0x04000800, 0x82000580,
+ 0x04000800, 0x0500002c, 0xa1300494, 0x0502100a,
+ 0xa1300496, 0x05001008, 0x592c040e, 0x8c00051e,
+ 0x05020005, 0x0141fc01, 0x59300202, 0x48025a10,
+ 0x4932580d, 0x05f9fd00, 0x417a7800, 0x59300009,
+ 0x82000d80, 0x001141cc, 0x05020003, 0x58040000,
+ 0x48026009, 0x80025d40, 0x05fe07b2, 0x1c01f000,
+ 0x832c0580, 0x001141cc, 0x05fc07f4, 0x592c040b,
+ 0x8c000510, 0x05fe07f1, 0x98040481, 0x05fe07dd,
+ 0x456a5800, 0x412ed000, 0x815eb800, 0x592c0001,
+ 0x80000d40, 0x05020006, 0x59c80000, 0x82000540,
+ 0x00001200, 0x48039000, 0x05fdf7e4, 0x05f9fcca,
+ 0x05fdf7e2, 0x59300021, 0x48025c13, 0x05fdf7d3,
+ 0x497a6027, 0x45682000, 0x4012d000, 0x815eb800,
0x59c80000, 0x82000540, 0x00001200, 0x48039000,
- 0x05fdf7e4, 0x05f9fcdb, 0x05fdf7e2, 0x59300021,
- 0x48025c13, 0x05fdf7d4, 0x497a6027, 0x45682000,
- 0x4012d000, 0x815eb800, 0x59c80000, 0x82000540,
- 0x00001200, 0x48039000, 0x05fdf7c0, 0x59300416,
- 0x8c000510, 0x05000002, 0x84040d52, 0x48066004,
- 0x497a6000, 0x497a6001, 0x58d400ea, 0x8c000516,
- 0x05fe07fe, 0x83300400, 0xa0000000, 0x4801a8e1,
- 0x1c01f000, 0x59300416, 0x8c000510, 0x05000002,
- 0x84040d52, 0x59300004, 0x82000500, 0x00000100,
- 0x80040d40, 0x48066004, 0x58d400ea, 0x8c000516,
- 0x05fe07fe, 0x83300400, 0x40000000, 0x4801a8e1,
- 0x1c01f000, 0x58d400ea, 0x82001500, 0x32000018,
- 0x01420562, 0x8c000510, 0x0500002f, 0x58d410e0,
- 0x82080500, 0xfffff000, 0x0502000d, 0x900a350f,
- 0x80081108, 0x480bc857, 0x90080487, 0x01021dda,
- 0x90080481, 0x01001dda, 0x1201f000, 0x00108566,
- 0x84040d10, 0x48066004, 0x0501f019, 0x840a653e,
- 0x59300804, 0x8c040520, 0x05fc07fa, 0x82040d00,
- 0xfffefeff, 0x48066004, 0x8c08053e, 0x05020009,
- 0x8c040514, 0x05000004, 0x05fdff72, 0x0501f8ff,
- 0x0501f00b, 0x604e7000, 0x0501f920, 0x0501f008,
- 0x8c040514, 0x05000004, 0x05fdff6a, 0x0501f8f7,
- 0x0501f003, 0x61267000, 0x0501f918, 0x58d400ea,
- 0x82001500, 0x32000018, 0x01420562, 0x8c000510,
- 0x05fe07d3, 0x1c01f000, 0x59bc00ea, 0x82001500,
- 0xb2000018, 0x0142058c, 0x8c000510, 0x05000009,
- 0x59bc10e0, 0x80080108, 0x900a350f, 0x9800048b,
- 0x05000005, 0x4803c857, 0x1201f000, 0x00108590,
- 0x1c01f000, 0x4d300000, 0x59bc00ea, 0x8c000510,
- 0x05fc07fe, 0x59be60e0, 0x813261c0, 0x01000dda,
- 0x59300804, 0x8c04051c, 0x05020068, 0x59300027,
- 0x80006d40, 0x05000065, 0x83180400, 0x00020f72,
- 0x50001000, 0x5808020f, 0x8c000500, 0x0502005d,
- 0x58340811, 0x8c040500, 0x0502002b, 0x5808000e,
- 0x50000000, 0x48001003, 0x5808080c, 0x80040c80,
- 0x58340011, 0x8c000504, 0x05000007, 0x5834200d,
- 0x5834280e, 0x48101007, 0x48141008, 0x84000504,
- 0x48006811, 0x5834180c, 0x5834300f, 0x58345010,
- 0x40180000, 0x80284480, 0x05021002, 0x40280000,
- 0x80000104, 0x80044480, 0x05001002, 0x40000800,
- 0xb0040480, 0x05001002, 0x61000800, 0x48041004,
- 0x800408c4, 0x48041005, 0x40040000, 0x80285480,
- 0x48286810, 0x80184c80, 0x05000016, 0x4824680f,
- 0x802851c0, 0x05000015, 0x05f9f8e5, 0x5c026000,
- 0x1c01f000, 0x84040d00, 0x48046811, 0x5808080b,
- 0x5834200d, 0x5834280e, 0x59301809, 0x580c3004,
- 0x48181006, 0x48041003, 0x48101007, 0x48141008,
- 0x49301010, 0x48341011, 0x60000801, 0x05fdf7d6,
- 0x800c1840, 0x05020005, 0x58340011, 0x84000542,
- 0x48006811, 0x05fdf7e9, 0x5834700a, 0x5834200b,
- 0x80102000, 0x50100000, 0x80000540, 0x05000010,
- 0x80383400, 0x58183800, 0x58184001, 0x58184802,
- 0x4810680b, 0x480c680c, 0x481c680d, 0x4820680e,
- 0x4824680f, 0x802851c0, 0x05fc07ec, 0x58340011,
- 0x84000544, 0x48006811, 0x05fdf7d4, 0x58387001,
- 0x4838680a, 0x42002000, 0x001012a3, 0x05fdf7ea,
- 0x84000542, 0x4800120f, 0x4933c857, 0x05fdf7cc,
- 0x0010e32d, 0x0010e33f, 0x0010e351, 0x0010e363,
- 0x0010e375, 0x5830020f, 0x8c000500, 0x0502001b,
- 0x58307810, 0x803c79c0, 0x05000030, 0x58300002,
- 0x82000580, 0x00000100, 0x0502002e, 0x583c0c07,
- 0x90040586, 0x05000003, 0x90040583, 0x05020027,
- 0x58300804, 0x58300003, 0x80040c00, 0x5830000b,
- 0x80047c80, 0x823c7d80, 0x00000080, 0x05020002,
- 0x40000800, 0x5830000e, 0x44040000, 0x5830000d,
- 0x480378e7, 0x1c01f000, 0x4803c856, 0x4978620f,
- 0x8c000502, 0x05fc07fc, 0x4803c856, 0x4c300000,
- 0x0141fd13, 0x5c006000, 0x58300c0f, 0x800410ca,
- 0x82081400, 0x00007600, 0x4a001014, 0x00090000,
- 0x800410c8, 0x82081400, 0x0000bf32, 0x58080005,
- 0x84000500, 0x48001005, 0x5830000b, 0x5830080e,
- 0x44000800, 0x0141fd04, 0x483fc857, 0x05fdf7e6,
- 0x4d300000, 0x4d2c0000, 0x4d3c0000, 0x4c300000,
- 0x58326010, 0x4933c857, 0x59325809, 0x592c020c,
- 0x8400054e, 0x48025a0c, 0x417a7800, 0x0155f815,
- 0x5c006000, 0x5c027800, 0x5c025800, 0x5c026000,
- 0x05fdf7d5, 0x59a8029c, 0x81640480, 0x05001015,
- 0x41626000, 0x41580000, 0x59300a03, 0x90040d80,
- 0x05020007, 0x64226203, 0x8166c840, 0x9132c430,
- 0x81600480, 0x05021008, 0x1c01f000, 0x91326430,
- 0x81300c80, 0x05fc17f5, 0x42026000, 0x00111b00,
- 0x05fdf7f2, 0x837ac540, 0x00111b00, 0x1c01f000,
- 0x42000000, 0x0010e442, 0x0165ffdc, 0x4967c857,
- 0x80026580, 0x1c01f000, 0x83300480, 0x00111b00,
- 0x01001dda, 0x41580000, 0x81300480, 0x0502100a,
- 0x457a6000, 0x4a026202, 0x0000ffff, 0x05011000,
- 0x91300403, 0x4803c840, 0x64b7c842, 0x8166c800,
- 0x1c01f000, 0x41540000, 0x81300480, 0x01021dda,
- 0xa1300494, 0x05021005, 0x05000004, 0x64026203,
- 0x497a6006, 0x1c01f000, 0x59a80098, 0x49335097,
- 0x80000000, 0x48035098, 0x457a6000, 0x4a026202,
+ 0x05fdf7bf, 0x59300416, 0x8c000510, 0x05000002,
+ 0x84040d52, 0x48066004, 0x497a6000, 0x497a6001,
+ 0x58d400ea, 0x8c000516, 0x05fe07fe, 0x83300400,
+ 0xa0000000, 0x4801a8e1, 0x1c01f000, 0x59300416,
+ 0x8c000510, 0x05000002, 0x84040d52, 0x59300004,
+ 0x82000500, 0x00000100, 0x80040d40, 0x48066004,
+ 0x58d400ea, 0x8c000516, 0x05fe07fe, 0x83300400,
+ 0x40000000, 0x4801a8e1, 0x1c01f000, 0x58d400ea,
+ 0x82001500, 0x32000018, 0x01460220, 0x8c000510,
+ 0x0500002f, 0x58d410e0, 0x82080500, 0xfffff000,
+ 0x0502000d, 0x900a350f, 0x80081108, 0x480bc857,
+ 0x90080487, 0x01021e15, 0x90080481, 0x01001e15,
+ 0x1201f000, 0x00108a24, 0x84040d10, 0x48066004,
+ 0x0501f019, 0x840a653e, 0x59300804, 0x8c040520,
+ 0x05fc07fa, 0x82040d00, 0xfffefeff, 0x48066004,
+ 0x8c08053e, 0x05020009, 0x8c040514, 0x05000004,
+ 0x05fdff71, 0x0501f8fc, 0x0501f00b, 0x604e7000,
+ 0x0501f922, 0x0501f008, 0x8c040514, 0x05000004,
+ 0x05fdff69, 0x0501f8f4, 0x0501f003, 0x61267000,
+ 0x0501f91a, 0x58d400ea, 0x82001500, 0x32000018,
+ 0x01460220, 0x8c000510, 0x05fe07d3, 0x1c01f000,
+ 0x59bc00ea, 0x82001500, 0xb2000018, 0x0146024a,
+ 0x8c000510, 0x05000009, 0x59bc10e0, 0x80080108,
+ 0x900a350f, 0x9800048b, 0x05000005, 0x4803c857,
+ 0x1201f000, 0x00108a4e, 0x1c01f000, 0x4d300000,
+ 0x59bc00ea, 0x8c000510, 0x05fc07fe, 0x59be60e0,
+ 0x813261c0, 0x01000e15, 0x59300804, 0x8c04051c,
+ 0x05020068, 0x59300027, 0x80006d40, 0x05000065,
+ 0x83180400, 0x00020fa9, 0x50001000, 0x5808020f,
+ 0x8c000500, 0x0502005d, 0x58340811, 0x8c040500,
+ 0x0502002b, 0x5808000e, 0x50000000, 0x48001003,
+ 0x5808080c, 0x80040c80, 0x58340011, 0x8c000504,
+ 0x05000007, 0x5834200d, 0x5834280e, 0x48101007,
+ 0x48141008, 0x84000504, 0x48006811, 0x5834180c,
+ 0x5834300f, 0x58345010, 0x40180000, 0x80284480,
+ 0x05021002, 0x40280000, 0x80000104, 0x80044480,
+ 0x05001002, 0x40000800, 0xb0040480, 0x05001002,
+ 0x61000800, 0x48041004, 0x800408c4, 0x48041005,
+ 0x40040000, 0x80285480, 0x48286810, 0x80184c80,
+ 0x05000016, 0x4824680f, 0x802851c0, 0x05000015,
+ 0x05f9f8b6, 0x5c026000, 0x1c01f000, 0x84040d00,
+ 0x48046811, 0x5808080b, 0x5834200d, 0x5834280e,
+ 0x59301809, 0x580c3004, 0x48181006, 0x48041003,
+ 0x48101007, 0x48141008, 0x49301010, 0x48341011,
+ 0x60000801, 0x05fdf7d6, 0x800c1840, 0x05020005,
+ 0x58340011, 0x84000542, 0x48006811, 0x05fdf7e9,
+ 0x5834700a, 0x5834200b, 0x80102000, 0x50100000,
+ 0x80000540, 0x05000010, 0x80383400, 0x58183800,
+ 0x58184001, 0x58184802, 0x4810680b, 0x480c680c,
+ 0x481c680d, 0x4820680e, 0x4824680f, 0x802851c0,
+ 0x05fc07ec, 0x58340011, 0x84000544, 0x48006811,
+ 0x05fdf7d4, 0x58387001, 0x4838680a, 0x42002000,
+ 0x00100042, 0x05fdf7ea, 0x84000542, 0x4800120f,
+ 0x4933c857, 0x05fdf7cc, 0x001122c8, 0x001122da,
+ 0x001122ec, 0x001122fe, 0x00112310, 0x5830020f,
+ 0x8c000500, 0x0502001b, 0x58307810, 0x803c79c0,
+ 0x05000030, 0x58300002, 0x82000580, 0x00000100,
+ 0x0502002e, 0x583c0c07, 0x90040586, 0x05000003,
+ 0x90040583, 0x05020027, 0x58300804, 0x58300003,
+ 0x80040c00, 0x5830000b, 0x80047c80, 0x823c7d80,
+ 0x00000080, 0x05020002, 0x40000800, 0x5830000e,
+ 0x44040000, 0x5830000d, 0x480378e7, 0x1c01f000,
+ 0x4803c856, 0x4978620f, 0x8c000502, 0x05fc07fc,
+ 0x4803c856, 0x4c300000, 0x0145f9d1, 0x5c006000,
+ 0x58300c0f, 0x800410ca, 0x82081400, 0x00007600,
+ 0x4a001014, 0x00090000, 0x800410c8, 0x82081400,
+ 0x0000bf32, 0x58080005, 0x84000500, 0x48001005,
+ 0x5830000b, 0x5830080e, 0x44000800, 0x0145f9c2,
+ 0x483fc857, 0x05fdf7e6, 0x4d300000, 0x4d2c0000,
+ 0x4d3c0000, 0x4c300000, 0x58326010, 0x4933c857,
+ 0x59325809, 0x592c020c, 0x8400054e, 0x48025a0c,
+ 0x417a7800, 0x0155fd87, 0x5c006000, 0x5c027800,
+ 0x5c025800, 0x5c026000, 0x05fdf7d5, 0x816404a0,
+ 0x05001013, 0x41626000, 0x41580000, 0x59300a03,
+ 0x90040d80, 0x05020007, 0x64226203, 0x8166c840,
+ 0x9132c430, 0x81600480, 0x05021007, 0x1c01f000,
+ 0x91326430, 0x81300c80, 0x05fc17f5, 0x40be6000,
+ 0x05fdf7f3, 0x80bec56f, 0x1c01f000, 0x42000000,
+ 0x001123e4, 0x0169ff57, 0x4967c857, 0x80026580,
+ 0x1c01f000, 0x813004af, 0x014c10c4, 0x41580000,
+ 0x81300480, 0x0502100a, 0x457a6000, 0x4a026202,
+ 0x0000ffff, 0x05011000, 0x91300403, 0x4803c840,
+ 0x64b3c842, 0x8166c800, 0x1c01f000, 0x41540000,
+ 0x81300480, 0x01021e15, 0xa1300494, 0x05021008,
+ 0x5930102f, 0x82080580, 0x00000800, 0x4802602f,
+ 0x64026203, 0x497a6006, 0x1c01f000, 0x59a8009b,
+ 0x80000000, 0x4803509b, 0x5930102f, 0x82080580,
+ 0x00000800, 0x4802602f, 0x457a6000, 0x4a026202,
0x0000ffff, 0x05011000, 0x91300403, 0x4803c840,
- 0x64b7c842, 0x1c01f000, 0x4d340000, 0x4d240000,
+ 0x64b3c842, 0x1c01f000, 0x4d340000, 0x4d240000,
0x5932481d, 0x5932680a, 0x59300407, 0x9000051f,
0x0c01f804, 0x5c024800, 0x5c026800, 0x1c01f000,
- 0x0010942a, 0x00109439, 0x00109453, 0x0002102a,
- 0x0010baa6, 0x0010bac1, 0x0002111a, 0x0010942a,
- 0x00109439, 0x00107f71, 0x0010949b, 0x0010942a,
- 0x0010942a, 0x0010942a, 0x0010942a, 0x0010946b,
- 0x0010b373, 0x0010cb60, 0x0010942a, 0x0010942a,
- 0x0010942a, 0x0010942a, 0x0010942a, 0x0010942a,
- 0x0010942a, 0x0010942a, 0x0010942a, 0x0010942a,
- 0x0010942a, 0x0010942a, 0x0010942a, 0x0010942a,
- 0x59300203, 0x90000c91, 0x01021dda, 0x0c01f001,
- 0x0010946a, 0x0010a076, 0x0002103f, 0x0010a2f9,
- 0x0010a3aa, 0x0010946a, 0x0010946a, 0x0010946a,
- 0x0010a062, 0x0010946a, 0x0010946a, 0x0010946a,
- 0x0010946a, 0x0010a5a1, 0x0010ae80, 0x0010946a,
- 0x0010aeaf, 0xb1380498, 0x05021006, 0xb1380480,
+ 0x0010995c, 0x0010996b, 0x00109985, 0x00021063,
+ 0x0010c183, 0x0010c19e, 0x00021153, 0x0010995c,
+ 0x0010996b, 0x0010842a, 0x001099cd, 0x0010995c,
+ 0x0010995c, 0x0010995c, 0x0010995c, 0x0010999d,
+ 0x0010b919, 0x0010d2aa, 0x0010995c, 0x0010995c,
+ 0x0010995c, 0x0010995c, 0x0010995c, 0x0010995c,
+ 0x0010995c, 0x0010995c, 0x0010995c, 0x0010995c,
+ 0x0010995c, 0x0010995c, 0x0010995c, 0x0010995c,
+ 0x59300203, 0x90000c91, 0x01021e15, 0x0c01f001,
+ 0x0010999c, 0x0010a5bb, 0x00021078, 0x0010a83d,
+ 0x0010a8ee, 0x0010999c, 0x0010999c, 0x0010999c,
+ 0x0010a5a7, 0x0010999c, 0x0010999c, 0x0010999c,
+ 0x0010999c, 0x0010ab13, 0x0010b419, 0x0010999c,
+ 0x0010b448, 0xb1380498, 0x05021006, 0xb1380480,
0x05001004, 0x4d2c0000, 0x0c01f803, 0x5c025800,
- 0x1c01f000, 0x0010a0f0, 0x0010a0f0, 0x0010a0f0,
- 0x0010a0f0, 0x0010a0f0, 0x0010a0f1, 0x0010a1ed,
- 0x0010a0f0, 0x0010a23e, 0x0010a0f0, 0x0010a0f0,
- 0x0010a0f0, 0x0010a0f0, 0x0010a0f0, 0x0010a0f0,
- 0x0010a0f0, 0x0010a0f0, 0x0010a0f0, 0x0010a0f0,
- 0x0010a1f1, 0x0002105f, 0x0010a0f0, 0x0010a1f0,
- 0x0010a1f2, 0x59325809, 0x59300008, 0x8c000536,
+ 0x1c01f000, 0x0010a634, 0x0010a634, 0x0010a634,
+ 0x0010a634, 0x0010a634, 0x0010a635, 0x0010a731,
+ 0x0010a634, 0x0010a782, 0x0010a634, 0x0010a634,
+ 0x0010a634, 0x0010a634, 0x0010a634, 0x0010a634,
+ 0x0010a634, 0x0010a634, 0x0010a634, 0x0010a634,
+ 0x0010a735, 0x00021098, 0x0010a634, 0x0010a734,
+ 0x0010a736, 0x59325809, 0x59300008, 0x8c000536,
0x0500000f, 0x497a580d, 0x41782800, 0x60303000,
0x60443800, 0x4c5c0000, 0x592cb805, 0x0501f84c,
- 0x4d2c0000, 0x405e5800, 0x0105f992, 0x5c025800,
+ 0x4d2c0000, 0x405e5800, 0x0105f9c9, 0x5c025800,
0x497a5805, 0x5c00b800, 0x0501f01c, 0x59300813,
0x59301402, 0x59340200, 0x8c00050e, 0x05020023,
0x0501f82f, 0x05000005, 0x4a025a08, 0x00000103,
0x497a580d, 0x0501f009, 0x4a025a08, 0x00000103,
- 0x64025a0a, 0x497a580d, 0x40040000, 0x0159feba,
- 0x80000d40, 0x01520b78, 0x4806580b, 0x480a5c0a,
+ 0x64025a0a, 0x497a580d, 0x40040000, 0x015dfc60,
+ 0x80000d40, 0x015608bc, 0x4806580b, 0x480a5c0a,
0x59300008, 0x82000500, 0x04000800, 0x82000580,
- 0x04000800, 0x05000017, 0x05f9faf6, 0x0159feb1,
+ 0x04000800, 0x05000017, 0x05f9fae3, 0x015dfc57,
0x5934000f, 0x8d0c0512, 0x05020005, 0x5934140b,
0x80081040, 0x05001002, 0x480a6c0b, 0x80000540,
- 0x05fa0a77, 0x05fdf745, 0x592c020e, 0x8c000502,
+ 0x05fa0a64, 0x05fdf740, 0x592c020e, 0x8c000502,
0x05fc07dc, 0x800409c0, 0x05fc07e0, 0x592c020c,
- 0x8c00050e, 0x05fe07dd, 0x4933c857, 0x0155f703,
+ 0x8c00050e, 0x05fe07dd, 0x4933c857, 0x0159f49c,
0x59300221, 0x48025c13, 0x05fdf7e8, 0x592c020e,
0x8c000500, 0x0500000d, 0x59300017, 0x592c3813,
0x801c3c80, 0x05000009, 0x64565a0a, 0x8c1c053e,
@@ -14629,2070 +15123,2092 @@ static const uint32_t isp_2500_risc_code[] = {
0x812c3c00, 0x50180000, 0x44003800, 0x401cc000,
0x901cc401, 0x585c0813, 0x800409c0, 0x0500003d,
0x4807c857, 0x8c04053e, 0x05020025, 0x5930002b,
- 0x80000540, 0x05000018, 0x015dfa98, 0x0500002e,
+ 0x80000540, 0x05000018, 0x0161f94e, 0x0500002e,
0x4c040000, 0x4c080000, 0x4c0c0000, 0x4c100000,
0x4c140000, 0x40002800, 0x58141003, 0x40040000,
- 0x80081480, 0x48082803, 0x40140000, 0x0105ff10,
+ 0x80081480, 0x48082803, 0x40140000, 0x0105ffae,
0x5c002800, 0x5c002000, 0x5c001800, 0x5c001000,
0x5c000800, 0x592c020a, 0x80000540, 0x0502000b,
0x0501f005, 0x592c040c, 0x8c00051c, 0x05000002,
0x592c0806, 0x4807c857, 0x592c020a, 0x82000540,
0x00001500, 0x48025a0a, 0x0501f016, 0x5930002b,
- 0x80000540, 0x0500000e, 0x015dfa98, 0x0500000a,
+ 0x80000540, 0x0500000e, 0x0161f94e, 0x0500000a,
0x592c020a, 0x82000540, 0x00000700, 0x48025a0a,
- 0x5930002b, 0x4c040000, 0x0105ff10, 0x5c000800,
+ 0x5930002b, 0x4c040000, 0x0105ffae, 0x5c000800,
0x0501f008, 0x64465a0a, 0x05fdf7fa, 0x4807c856,
0x592c020a, 0x82000540, 0x00000700, 0x48025a0a,
0x4404c000, 0x5c00c000, 0x5c00b800, 0x1c01f000,
- 0x59300203, 0x90003491, 0x01021dda, 0x0c01f001,
- 0x0010badf, 0x0002112f, 0x0010c2aa, 0x0010c2bb,
- 0x0002114a, 0x0010badf, 0x0010c39c, 0x00021178,
- 0x0010badf, 0x0010badf, 0x0010badf, 0x0010badf,
- 0x0010badf, 0x0010badf, 0x0010c8cd, 0x0010badf,
- 0x0010c900, 0x91380593, 0x01620241, 0x59300403,
- 0xb0027484, 0x01021dda, 0xb0000480, 0x01001dda,
- 0x0c01f001, 0x0010c28a, 0x0002113b, 0x0010c28b,
- 0x0010c29d, 0x0159f89e, 0x05000005, 0x59a8005e,
+ 0x59300203, 0x90003491, 0x01021e15, 0x0c01f001,
+ 0x0010c1bc, 0x00021168, 0x0010c9ad, 0x0010c9be,
+ 0x00021183, 0x0010c1bc, 0x0010ca9f, 0x000211b1,
+ 0x0010c1bc, 0x0010c1bc, 0x0010c1bc, 0x0010c1bc,
+ 0x0010c1bc, 0x0010c1bc, 0x0010d017, 0x0010c1bc,
+ 0x0010d04a, 0x91380593, 0x01660144, 0x59300403,
+ 0xb0027484, 0x01021e15, 0xb0000480, 0x01001e15,
+ 0x0c01f001, 0x0010c98d, 0x00021174, 0x0010c98e,
+ 0x0010c9a0, 0x0159fe36, 0x05000005, 0x59a80061,
0x48026205, 0x643a6203, 0x1c01f000, 0x59325809,
0x832c0500, 0x00ff0000, 0x05000004, 0x592c0c0e,
- 0x8c04051a, 0x0162029a, 0x05fdfd06, 0x05fdf693,
+ 0x8c04051a, 0x0166019d, 0x05fdfd03, 0x05fdf68e,
0xb1380498, 0x05001007, 0xb13805a1, 0x05000003,
- 0xb13805a0, 0x01020dda, 0x4933c857, 0x1c01f000,
- 0xb1380588, 0x05000004, 0xb1380593, 0x0160033f,
- 0x0101fdda, 0x83300580, 0x00111ad0, 0x05020008,
- 0x497a6205, 0x59301202, 0x41780000, 0x0161fc4e,
- 0x01600354, 0x411e6000, 0x0161f31f, 0x5930002b,
+ 0xb13805a0, 0x01020e15, 0x4933c857, 0x1c01f000,
+ 0xb1380588, 0x05000004, 0xb1380593, 0x01640242,
+ 0x0101fe15, 0x83300580, 0x00115a74, 0x05020008,
+ 0x497a6205, 0x59301202, 0x41780000, 0x0165fb4b,
+ 0x01640257, 0x411e6000, 0x0165f222, 0x5930002b,
0x59301013, 0x5930080a, 0x58040a00, 0x8c04050e,
- 0x01620325, 0x800811c0, 0x01620330, 0x5930002b,
- 0x80000540, 0x0162033a, 0x59325809, 0x592c040e,
- 0x8c00051e, 0x0160031f, 0x64066203, 0x65066403,
+ 0x01660228, 0x800811c0, 0x01660233, 0x5930002b,
+ 0x80000540, 0x0166023d, 0x59325809, 0x592c040e,
+ 0x8c00051e, 0x01640222, 0x64066203, 0x65066403,
0x42000800, 0x80002042, 0x8c00051a, 0x05020002,
- 0x84040d54, 0x05fdf534, 0xb1380498, 0x01621360,
- 0xb1380480, 0x01601361, 0x0c01f001, 0x0010c369,
- 0x00021191, 0x0010c372, 0x0010c377, 0x0010c369,
- 0x0010c369, 0x0010c369, 0x0010c369, 0x0010c36a,
- 0x0010c36e, 0x0010c36e, 0x0010c369, 0x0010c369,
- 0x0010c369, 0x0010c369, 0x0010c36e, 0x0010c369,
- 0x0010c36e, 0x0010c369, 0x0010c36a, 0x64066203,
- 0x493a6403, 0x42000800, 0x80002042, 0x05fdf516,
+ 0x84040d54, 0x05fdf532, 0xb1380498, 0x01661263,
+ 0xb1380480, 0x01641264, 0x0c01f001, 0x0010ca6c,
+ 0x000211ca, 0x0010ca75, 0x0010ca7a, 0x0010ca6c,
+ 0x0010ca6c, 0x0010ca6c, 0x0010ca6c, 0x0010ca6d,
+ 0x0010ca71, 0x0010ca71, 0x0010ca6c, 0x0010ca6c,
+ 0x0010ca6c, 0x0010ca6c, 0x0010ca71, 0x0010ca6c,
+ 0x0010ca71, 0x0010ca6c, 0x0010ca6d, 0x64066203,
+ 0x493a6403, 0x42000800, 0x80002042, 0x05fdf514,
+ 0x8058b1c0, 0x01000e15, 0x5450a800, 0x8050a000,
+ 0x8054a800, 0x8058b040, 0x05fe07fc, 0x1c01f000,
0x00000000, 0x00000000, 0x00000000, 0x00000000,
0x00000000, 0x00000000, 0x00000000, 0x00000000,
0x00000000, 0x00000000, 0x00000000, 0x00000000,
- 0x00000000, 0x00000000, 0x00000000, 0x00960114,
+ 0x00000000, 0x00000000, 0x00000000, 0x81cffae4,
0x00000000, 0x00000000, 0x00000000, 0x00000005,
0xfffffffb, 0x02800004, 0x00000000, 0x0000c000,
- 0x00000aa2, 0x073fca5a, 0x0705a5a5, 0x01928009,
+ 0x00000adf, 0x073fca5a, 0x0705a5a5, 0x01928009,
0x070ff0e1, 0x03800006, 0x053f2aaa, 0x070aaaaa,
- 0x073f3aaa, 0x070aaaaa, 0x05958014, 0x05308000,
- 0x05008000, 0x0600902f, 0x04a007df, 0x0202f051,
- 0x042e4020, 0x07840018, 0x028f0361, 0x033e5000,
- 0x03020000, 0x068d0025, 0x079306e2, 0x039206e4,
- 0x050fb056, 0x040010e6, 0x002fb008, 0x060ff0e6,
- 0x00580401, 0x054880ff, 0x06810023, 0x008c04f2,
- 0x008a04f1, 0x048b04ef, 0x069f0029, 0x039809b1,
- 0x069f0029, 0x079909af, 0x058e8014, 0x07840018,
- 0x0678aae5, 0x04004051, 0x06818275, 0x079a0014,
- 0x030430d4, 0x04052051, 0x0448b043, 0x06810034,
- 0x00252080, 0x022a5001, 0x06780043, 0x030e0000,
- 0x030450ff, 0x06780043, 0x03019000, 0x03a182b7,
- 0x0481892c, 0x027c0045, 0x03020000, 0x0781812d,
- 0x0590803f, 0x0291092a, 0x010410a6, 0x06600052,
- 0x030d60ff, 0x05601041, 0x050f80ff, 0x032fa071,
- 0x060ff032, 0x055c0441, 0x0681004f, 0x070ff0d1,
- 0x055c0403, 0x034a88ff, 0x05818944, 0x01800114,
- 0x07480000, 0x07810936, 0x0149b000, 0x0781005f,
- 0x06600a01, 0x050f80ff, 0x053fa809, 0x0600001c,
- 0x07f00000, 0x030ef039, 0x02860934, 0x07600339,
- 0x07601839, 0x050f80ff, 0x063fa051, 0x06000002,
- 0x05481000, 0x04818068, 0x06780043, 0x070000f0,
- 0x06810073, 0x037c00ff, 0x06000010, 0x04818932,
- 0x02800073, 0x06780043, 0x070000f0, 0x037c00ff,
- 0x07000030, 0x06810073, 0x06780043, 0x070000f0,
- 0x037c00ff, 0x06000020, 0x06810073, 0x02800932,
- 0x0379ff00, 0x070fffff, 0x06780043, 0x07f00000,
- 0x075a0000, 0x020ef001, 0x02860934, 0x05484000,
- 0x02a182da, 0x03680c00, 0x0581897b, 0x04600452,
- 0x030d60ff, 0x002fb001, 0x070ff069, 0x00868089,
- 0x060ff079, 0x055c0441, 0x07810014, 0x012fb000,
- 0x060560fb, 0x0280008f, 0x060ff079, 0x028682b5,
- 0x070ff069, 0x055c0441, 0x07810014, 0x060560fb,
- 0x070ff0d1, 0x0700f0ff, 0x04600252, 0x030d60ff,
- 0x070ff00f, 0x055c040c, 0x058180fa, 0x070ff0d1,
- 0x045c040d, 0x054b08ff, 0x07818105, 0x04600801,
- 0x050f80ff, 0x053fa809, 0x0600004f, 0x03070039,
- 0x0007b001, 0x03079041, 0x0307a000, 0x07489000,
- 0x06818134, 0x068d00a4, 0x0207c004, 0x0107d005,
- 0x0107e006, 0x0207f007, 0x02080008, 0x01081009,
- 0x0108200a, 0x0208300b, 0x018680bb, 0x0448d07a,
- 0x058180bb, 0x0448b07a, 0x0681093d, 0x0049707a,
- 0x058180bb, 0x04604679, 0x050f80ff, 0x053fa809,
- 0x06000001, 0x01680703, 0x076c0303, 0x0481893d,
- 0x072d5003, 0x033e5000, 0x05002000, 0x0049107a,
- 0x068100c7, 0x070ff00a, 0x0054040b, 0x058280c6,
- 0x078d00c3, 0x0008200b, 0x032ff000, 0x010770ff,
- 0x0108400c, 0x0208500d, 0x0678007a, 0x06000008,
- 0x068100da, 0x078d00cc, 0x04603e79, 0x050f80ff,
- 0x073fa041, 0x0600004a, 0x0049707a, 0x01a18a0f,
- 0x068d00d3, 0x0678007a, 0x07f00000, 0x010880ff,
- 0x02386008, 0x03010000, 0x028000e0, 0x068d00da,
- 0x0678007a, 0x07f00000, 0x010880ff, 0x03386000,
- 0x03010000, 0x072e6300, 0x020ef07f, 0x03860014,
- 0x070ff07d, 0x0450047c, 0x050f80ff, 0x002fa819,
- 0x078d00e7, 0x02080001, 0x00081002, 0x0678007a,
- 0x05000200, 0x068100ef, 0x0049107a, 0x02a182d3,
- 0x01082003, 0x078d00f0, 0x0448b07a, 0x078100f6,
- 0x0338600c, 0x03010000, 0x028000f8, 0x02386004,
- 0x03010000, 0x072e6c00, 0x03800014, 0x04600252,
- 0x030d60ff, 0x07f00000, 0x07f00000, 0x0400e0d0,
- 0x0648300e, 0x07810096, 0x072e500c, 0x00208001,
- 0x05a007e4, 0x03800014, 0x06780043, 0x070000f0,
- 0x0781093f, 0x050020ff, 0x027c0002, 0x06000010,
- 0x04810110, 0x027c0002, 0x07000030, 0x04810110,
- 0x0380093f, 0x0500d0d1, 0x0279ff0d, 0x070000ff,
- 0x0380009a, 0x060ff032, 0x055c0441, 0x0681004f,
- 0x020ef002, 0x03860924, 0x04602602, 0x050f80ff,
+ 0x073f3aaa, 0x070aaaaa, 0x04958016, 0x05308000,
+ 0x05008000, 0x0600902f, 0x070ff02e, 0x055c0409,
+ 0x02a1880d, 0x0202f051, 0x042e4020, 0x0684001a,
+ 0x028f037c, 0x033e5000, 0x03020000, 0x078d0027,
+ 0x04930701, 0x01920703, 0x050fb056, 0x040010e6,
+ 0x002fb008, 0x060ff0e6, 0x00580401, 0x054880ff,
+ 0x06810025, 0x028c050d, 0x038a050c, 0x078b050a,
+ 0x079f002b, 0x039809ed, 0x079f002b, 0x079909eb,
+ 0x048e8016, 0x0684001a, 0x0678aae5, 0x04004051,
+ 0x0681828c, 0x069a0016, 0x030430d4, 0x04052051,
+ 0x0448b043, 0x07810036, 0x00252080, 0x022a5001,
+ 0x06780043, 0x030e0000, 0x030450ff, 0x06780043,
+ 0x03019000, 0x03a182d8, 0x05818960, 0x027c0045,
+ 0x03020000, 0x07818135, 0x05908041, 0x0291095e,
+ 0x010410a6, 0x06600052, 0x030d60ff, 0x05601041,
+ 0x050f80ff, 0x032fa071, 0x060ff032, 0x055c0441,
+ 0x06810051, 0x070ff0d1, 0x055c0403, 0x034a88ff,
+ 0x05818978, 0x0080011c, 0x07480000, 0x0781096a,
+ 0x0149b000, 0x06810061, 0x06600a01, 0x050f80ff,
+ 0x053fa809, 0x0600001c, 0x07f00000, 0x030ef039,
+ 0x02860968, 0x07600339, 0x07601839, 0x050f80ff,
+ 0x063fa051, 0x06000002, 0x05481000, 0x0581806a,
+ 0x06780043, 0x070000f0, 0x06810075, 0x037c00ff,
+ 0x06000010, 0x05818966, 0x02800075, 0x06780043,
+ 0x070000f0, 0x037c00ff, 0x07000030, 0x06810075,
+ 0x06780043, 0x070000f0, 0x037c00ff, 0x06000020,
+ 0x06810075, 0x03800966, 0x0379ff00, 0x070fffff,
+ 0x06780043, 0x07f00000, 0x075a0000, 0x020ef001,
+ 0x02860968, 0x05484000, 0x02a182fd, 0x03680c00,
+ 0x058189b7, 0x04600452, 0x030d60ff, 0x002fb001,
+ 0x070ff069, 0x0186808b, 0x060ff079, 0x055c0441,
+ 0x06810016, 0x012fb000, 0x060560fb, 0x02800091,
+ 0x060ff079, 0x038682d4, 0x070ff069, 0x055c0441,
+ 0x06810016, 0x060560fb, 0x070ff0d1, 0x0700f0ff,
+ 0x04600252, 0x030d60ff, 0x070ff00f, 0x055c040c,
+ 0x058180fc, 0x070ff0d1, 0x045c040d, 0x054b08ff,
+ 0x0681810d, 0x04600801, 0x050f80ff, 0x053fa809,
+ 0x0600004f, 0x03070039, 0x0007b001, 0x03079041,
+ 0x0307a000, 0x07489000, 0x0781813c, 0x078d00a6,
+ 0x0207c004, 0x0107d005, 0x0107e006, 0x0207f007,
+ 0x02080008, 0x01081009, 0x0108200a, 0x0208300b,
+ 0x018680bd, 0x0448d07a, 0x058180bd, 0x0448b07a,
+ 0x07810971, 0x0049707a, 0x058180bd, 0x04604679,
+ 0x050f80ff, 0x053fa809, 0x06000001, 0x01680703,
+ 0x076c0303, 0x05818971, 0x072d5003, 0x033e5000,
+ 0x05002000, 0x0049107a, 0x078100c9, 0x070ff00a,
+ 0x0054040b, 0x048280c8, 0x078d00c5, 0x0008200b,
+ 0x032ff000, 0x010770ff, 0x0108400c, 0x0208500d,
+ 0x0678007a, 0x06000008, 0x068100dc, 0x068d00ce,
+ 0x04603e79, 0x050f80ff, 0x073fa041, 0x0600004a,
+ 0x0049707a, 0x01a18a4b, 0x068d00d5, 0x0678007a,
+ 0x07f00000, 0x010880ff, 0x02386008, 0x03010000,
+ 0x038000e2, 0x068d00dc, 0x0678007a, 0x07f00000,
+ 0x010880ff, 0x03386000, 0x03010000, 0x072e6300,
+ 0x020ef07f, 0x02860016, 0x070ff07d, 0x0450047c,
+ 0x050f80ff, 0x002fa819, 0x068d00e9, 0x02080001,
+ 0x00081002, 0x0678007a, 0x05000200, 0x068100f1,
+ 0x0049107a, 0x03a182f6, 0x01082003, 0x068d00f2,
+ 0x0448b07a, 0x068100f8, 0x0338600c, 0x03010000,
+ 0x038000fa, 0x02386004, 0x03010000, 0x072e6c00,
+ 0x02800016, 0x04600252, 0x030d60ff, 0x07f00000,
+ 0x07f00000, 0x0400e0d0, 0x0648300e, 0x06810098,
+ 0x072e500c, 0x00208001, 0x062d6002, 0x050fd00c,
+ 0x07f00000, 0x07f00000, 0x070ff0d1, 0x050fd0ff,
+ 0x05a00812, 0x02800016, 0x06780043, 0x070000f0,
+ 0x06810973, 0x050020ff, 0x027c0002, 0x06000010,
+ 0x05810118, 0x027c0002, 0x07000030, 0x05810118,
+ 0x02800973, 0x0500d0d1, 0x0279ff0d, 0x070000ff,
+ 0x0380009c, 0x060ff032, 0x055c0441, 0x06810051,
+ 0x020ef002, 0x02860958, 0x04602602, 0x050f80ff,
0x053fa811, 0x06000008, 0x060ff0d0, 0x055c0411,
- 0x0179feff, 0x0700ffff, 0x05818924, 0x0448b043,
- 0x0481012c, 0x072d6000, 0x0179fd12, 0x0600001f,
+ 0x0179feff, 0x0700ffff, 0x04818958, 0x0448b043,
+ 0x04810134, 0x072d6000, 0x0179fd12, 0x0600001f,
0x060ff0d0, 0x0379fcff, 0x0600001f, 0x055c0412,
- 0x05818924, 0x0280004f, 0x027c0045, 0x03040000,
- 0x0481013d, 0x027c0045, 0x03080000, 0x0681092a,
- 0x0380003f, 0x06600a79, 0x050f80ff, 0x053fa80a,
- 0x06000010, 0x028000a4, 0x05601041, 0x050f80ff,
- 0x032fa071, 0x0280004f, 0x0204a051, 0x06780043,
- 0x070000f0, 0x037c00ff, 0x06000010, 0x07818266,
- 0x06600052, 0x030d60ff, 0x00948926, 0x050fb056,
- 0x044880e6, 0x05818014, 0x060ff0d0, 0x0179feff,
- 0x0700ffff, 0x057dfeff, 0x0700ffff, 0x07810924,
- 0x053f2000, 0x07030000, 0x019d8014, 0x070ff093,
- 0x045a0201, 0x070ff093, 0x045c0401, 0x06818152,
+ 0x04818958, 0x02800051, 0x027c0045, 0x03040000,
+ 0x04810145, 0x027c0045, 0x03080000, 0x0681095e,
+ 0x03800041, 0x06600a79, 0x050f80ff, 0x053fa80a,
+ 0x06000010, 0x038000a6, 0x05601041, 0x050f80ff,
+ 0x032fa071, 0x02800051, 0x0204a051, 0x06780043,
+ 0x070000f0, 0x037c00ff, 0x06000010, 0x0781827d,
+ 0x06600052, 0x030d60ff, 0x0194895a, 0x050fb056,
+ 0x044880e6, 0x04818016, 0x060ff0d0, 0x0179feff,
+ 0x0700ffff, 0x057dfeff, 0x0700ffff, 0x06810958,
+ 0x053f2000, 0x07030000, 0x009d8016, 0x070ff093,
+ 0x045a0201, 0x070ff093, 0x045c0401, 0x0781815a,
0x02046092, 0x04002046, 0x060ff002, 0x045c0401,
- 0x0703a0ff, 0x04600202, 0x00540401, 0x07828160,
+ 0x0703a0ff, 0x04600202, 0x00540401, 0x06828168,
0x04500425, 0x070060ff, 0x0730ffff, 0x0700000f,
- 0x0742000f, 0x048102ad, 0x07a0090c, 0x0648a002,
- 0x07818163, 0x00047089, 0x070ff047, 0x045c0443,
- 0x077800ff, 0x07f00000, 0x068182ab, 0x07780047,
- 0x0500e000, 0x04818913, 0x070ff006, 0x008601f1,
+ 0x0742000f, 0x058102c6, 0x06a00940, 0x0648a002,
+ 0x0681816b, 0x00047089, 0x070ff047, 0x045c0443,
+ 0x077800ff, 0x07f00000, 0x068182c2, 0x07780047,
+ 0x0500e600, 0x05818947, 0x070ff006, 0x01860200,
0x0179fe47, 0x0700000f, 0x010480ff, 0x056c7048,
- 0x0681817c, 0x007a0d4a, 0x04003801, 0x0220f001,
- 0x00800189, 0x07608e48, 0x034a60ff, 0x0700f0ff,
+ 0x07818184, 0x007a0d4a, 0x04003801, 0x0220f001,
+ 0x00800191, 0x07608e48, 0x034a60ff, 0x0700f0ff,
0x074b88ff, 0x037000ff, 0x07000600, 0x05500448,
0x074d00ff, 0x045a044a, 0x0304a0ff, 0x070ff00f,
- 0x01540406, 0x048201f1, 0x04031051, 0x0349c0e4,
- 0x048101e0, 0x062d6001, 0x07f00000, 0x060ff0d0,
- 0x034900ff, 0x068181e0, 0x072e500c, 0x062d6002,
+ 0x01540406, 0x05820200, 0x04031051, 0x0349c0e4,
+ 0x048101ef, 0x062d6001, 0x07f00000, 0x060ff0d0,
+ 0x034900ff, 0x068181ef, 0x072e500c, 0x062d6002,
0x07f00000, 0x0204f0d0, 0x0079fe4f, 0x070000ff,
- 0x050580ff, 0x01540436, 0x078281d8, 0x060ff058,
- 0x0054043b, 0x058201d8, 0x072d6000, 0x044b044f,
+ 0x050580ff, 0x01540436, 0x078281e7, 0x060ff058,
+ 0x0054043b, 0x058201e7, 0x072d6000, 0x044b044f,
0x050580ff, 0x0004d0d0, 0x0379ff4d, 0x0700ffff,
- 0x0104e0d1, 0x0379ff4e, 0x0700ffff, 0x079081a6,
- 0x0291092a, 0x0500e0a6, 0x0279ff0e, 0x0700ffff,
+ 0x0104e0d1, 0x0379ff4e, 0x0700ffff, 0x069081ae,
+ 0x0291095e, 0x0500e0a6, 0x0279ff0e, 0x0700ffff,
0x04600e0e, 0x050f80ff, 0x032fa009, 0x07f00000,
- 0x074b0000, 0x056c0e00, 0x048101dc, 0x0660060e,
+ 0x074b0000, 0x056c0e00, 0x058101eb, 0x0660060e,
0x050f80ff, 0x032fa009, 0x0379ff00, 0x070000ff,
- 0x076c0000, 0x068181da, 0x06602e0e, 0x050f80ff,
- 0x032fa009, 0x030ef000, 0x028681bf, 0x066a0331,
- 0x00201008, 0x0460040e, 0x050f80ff, 0x032fa009,
- 0x07780000, 0x07ffff00, 0x045a0458, 0x070000ff,
+ 0x076c0000, 0x068181e9, 0x06602e0e, 0x050f80ff,
+ 0x032fa009, 0x030ef000, 0x028681c7, 0x066a0331,
+ 0x04605e0e, 0x050f80ff, 0x032fa009, 0x07780000,
+ 0x06000008, 0x048101ce, 0x0045e04a, 0x00201008,
+ 0x0460040e, 0x050f80ff, 0x032fa009, 0x07780000,
+ 0x07ffff00, 0x045a0458, 0x070000ff, 0x04002051,
+ 0x06003051, 0x01204000, 0x07305000, 0x07000060,
+ 0x03206009, 0x05007022, 0x0460040e, 0x050f80ff,
+ 0x032fa042, 0x07f00000, 0x0405804f, 0x0460520e,
+ 0x050f80ff, 0x053fa812, 0x06000026, 0x00800213,
+ 0x066a0531, 0x018001ee, 0x046a0731, 0x018001ee,
+ 0x066a0931, 0x018001ee, 0x046a0b31, 0x0405804f,
+ 0x04950210, 0x07a0031d, 0x02868213, 0x06780043,
+ 0x070000f0, 0x037c00ff, 0x07000030, 0x0481020e,
+ 0x0134bfff, 0x070fffff, 0x0104102e, 0x050fd041,
+ 0x07602e41, 0x050f80ff, 0x06000051, 0x032fa00a,
+ 0x01800236, 0x07608e48, 0x034a60ff, 0x00540425,
+ 0x05810205, 0x06828208, 0x06a00379, 0x02209016,
+ 0x0380097e, 0x0495020e, 0x07a0031d, 0x0086020e,
+ 0x0202f00e, 0x052e4030, 0x040fd02f, 0x06a00379,
+ 0x02800016, 0x0400e02f, 0x042e4020, 0x0202f051,
+ 0x0004100e, 0x0079fe31, 0x070000ff, 0x0481022c,
+ 0x06602e0e, 0x050f80ff, 0x06780031, 0x06000004,
+ 0x0481021f, 0x04300ead, 0x010deadd, 0x0080022a,
+ 0x07000033, 0x032fa00a, 0x0079fe58, 0x070000ff,
+ 0x070000ff, 0x04602c0e, 0x050f80ff, 0x017a0100,
+ 0x03400000, 0x032fa00a, 0x0080022c, 0x032fa00a,
+ 0x07f00000, 0x044b8c31, 0x045a040e, 0x0104b0ff,
+ 0x004980e5, 0x07818236, 0x06780043, 0x070000f0,
+ 0x037c00ff, 0x07000030, 0x078109b4, 0x024a6c46,
+ 0x04500423, 0x050070ff, 0x03620024, 0x050080ff,
+ 0x04004046, 0x0700500f, 0x03206000, 0x05601048,
+ 0x0700a0ff, 0x0700900a, 0x070ff005, 0x04500446,
+ 0x00540425, 0x05820269, 0x07601e22, 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, 0x06a00316, 0x048d0262,
+ 0x0208a04a, 0x0108b04b, 0x02386001, 0x03010000,
+ 0x072e6300, 0x028000e3, 0x0500d00a, 0x05500405,
+ 0x014a68ff, 0x070090ff, 0x0154040a, 0x0700c0ff,
+ 0x0600a023, 0x0500b024, 0x02206001, 0x07601e22,
+ 0x050f80ff, 0x063fa04a, 0x06000002, 0x07f00000,
+ 0x07601822, 0x050f80ff, 0x043fa819, 0x06000001,
+ 0x0600a00d, 0x0080024c, 0x06780043, 0x070000f0,
+ 0x050010ff, 0x027c0001, 0x07000030, 0x05810287,
+ 0x027c0001, 0x06000020, 0x0781094e, 0x03800966,
+ 0x0548e0e4, 0x0781094e, 0x0334a000, 0x03080000,
+ 0x0180014b, 0x074860ff, 0x068182ad, 0x054880ff,
+ 0x06810016, 0x070ff056, 0x050fb0ff, 0x044880e5,
+ 0x04810298, 0x067800e6, 0x07000041, 0x04818016,
+ 0x0180029f, 0x056c02ff, 0x050fb0ff, 0x070560ff,
+ 0x072e5300, 0x067800e6, 0x07000041, 0x04818016,
+ 0x072d5003, 0x033e5000, 0x05002000, 0x06780043,
+ 0x07f00000, 0x010880ff, 0x050fd0ff, 0x058d02a6,
+ 0x03386005, 0x03010000, 0x033e6000, 0x0700000c,
+ 0x052e5200, 0x02800016, 0x069a0016, 0x05301fff,
+ 0x0700000f, 0x06420001, 0x058102c6, 0x06a00940,
+ 0x0648a002, 0x068182b0, 0x062e5080, 0x04001089,
+ 0x040fd002, 0x040fd001, 0x02499001, 0x048102ef,
+ 0x070ff0d4, 0x050fd0ff, 0x045c0401, 0x077800ff,
+ 0x07f00000, 0x068182ef, 0x02800016, 0x06009051,
+ 0x057b8509, 0x06000002, 0x00800815, 0x06009051,
+ 0x077b8d09, 0x06000002, 0x00800815, 0x06009051,
+ 0x077b9509, 0x06000002, 0x00800815, 0x03209000,
+ 0x00800815, 0x06009051, 0x057ba109, 0x06000002,
+ 0x00800815, 0x06009051, 0x077ba909, 0x06000002,
+ 0x00800815, 0x06780043, 0x07009000, 0x068182e3,
+ 0x00498043, 0x048102e3, 0x0648a0e5, 0x058102e4,
+ 0x027c0045, 0x03040000, 0x048102e6, 0x075c00ff,
+ 0x07c00000, 0x056a02ff, 0x008002e3, 0x018002e2,
+ 0x06780075, 0x06000c07, 0x05810882, 0x06009051,
+ 0x077bcf09, 0x06000002, 0x070fc0ff, 0x05a00800,
+ 0x070fc0ff, 0x05308000, 0x0700a000, 0x05a00812,
+ 0x033e5000, 0x0700000c, 0x02800016, 0x070ff003,
+ 0x01540477, 0x068282fb, 0x07003077, 0x060ff051,
+ 0x010770ff, 0x07c00000, 0x04602601, 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, 0x068d0319, 0x063fa051,
+ 0x0600003e, 0x07c00000, 0x06005051, 0x0400e02c,
+ 0x0660060e, 0x050f80ff, 0x032fa009, 0x0379ff00,
+ 0x070000ff, 0x076c0000, 0x07810330, 0x0660600e,
+ 0x0500e0ff, 0x034000ff, 0x01540427, 0x06820362,
+ 0x03400005, 0x070ff005, 0x055c0428, 0x06810364,
+ 0x0280031f, 0x06a00368, 0x04605e0e, 0x050f80ff,
+ 0x012fa809, 0x06780001, 0x06000008, 0x06810338,
+ 0x0045e04a, 0x06600052, 0x030d60ff, 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, 0x0405804f,
- 0x0460520e, 0x050f80ff, 0x053fa812, 0x06000026,
- 0x018001fc, 0x066a0531, 0x008001df, 0x046a0731,
- 0x008001df, 0x066a0931, 0x008001df, 0x046a0b31,
- 0x0405804f, 0x059501f9, 0x05a002fa, 0x038681fc,
- 0x06780043, 0x070000f0, 0x037c00ff, 0x07000030,
- 0x048101f7, 0x0134bfff, 0x070fffff, 0x0104102e,
- 0x050fd041, 0x07602e41, 0x050f80ff, 0x06000051,
- 0x032fa00a, 0x0080021f, 0x049501f7, 0x05a002fa,
- 0x008601f7, 0x0202f00e, 0x052e4030, 0x040fd02f,
- 0x06a0035e, 0x03800014, 0x0400e02f, 0x042e4020,
- 0x0202f051, 0x0004100e, 0x0079fe31, 0x070000ff,
- 0x04810215, 0x06602e0e, 0x050f80ff, 0x06780031,
- 0x06000004, 0x04810208, 0x04300ead, 0x010deadd,
- 0x00800213, 0x07000033, 0x032fa00a, 0x0079fe58,
- 0x070000ff, 0x070000ff, 0x04602c0e, 0x050f80ff,
- 0x017a0100, 0x03400000, 0x032fa00a, 0x00800215,
- 0x032fa00a, 0x07f00000, 0x044b8c31, 0x045a040e,
- 0x0104b0ff, 0x004980e5, 0x0681821f, 0x06780043,
- 0x070000f0, 0x037c00ff, 0x07000030, 0x07810978,
- 0x024a6c46, 0x04500423, 0x050070ff, 0x03620024,
- 0x050080ff, 0x04004046, 0x0700500f, 0x03206000,
- 0x05601048, 0x0700a0ff, 0x0700900a, 0x070ff005,
- 0x04500446, 0x00540425, 0x04820252, 0x07601e22,
- 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, 0x05a002f3,
- 0x058d024b, 0x0208a04a, 0x0108b04b, 0x02386001,
- 0x03010000, 0x072e6300, 0x038000e1, 0x0500d00a,
- 0x05500405, 0x014a68ff, 0x070090ff, 0x0154040a,
- 0x0700c0ff, 0x0600a023, 0x0500b024, 0x02206001,
- 0x07601e22, 0x050f80ff, 0x063fa04a, 0x06000002,
- 0x07f00000, 0x07601822, 0x050f80ff, 0x043fa819,
- 0x06000001, 0x0600a00d, 0x01800235, 0x06780043,
- 0x070000f0, 0x050010ff, 0x027c0001, 0x07000030,
- 0x04810270, 0x027c0001, 0x06000020, 0x0681091a,
- 0x02800932, 0x0548e0e4, 0x0681091a, 0x0334a000,
- 0x03080000, 0x00800143, 0x074860ff, 0x07818296,
- 0x054880ff, 0x07810014, 0x070ff056, 0x050fb0ff,
- 0x044880e5, 0x05810281, 0x067800e6, 0x07000041,
- 0x05818014, 0x01800288, 0x056c02ff, 0x050fb0ff,
- 0x070560ff, 0x072e5300, 0x067800e6, 0x07000041,
- 0x05818014, 0x072d5003, 0x033e5000, 0x05002000,
- 0x06780043, 0x07f00000, 0x010880ff, 0x050fd0ff,
- 0x048d028f, 0x03386005, 0x03010000, 0x033e6000,
- 0x0700000c, 0x052e5200, 0x03800014, 0x079a0014,
- 0x05301fff, 0x0700000f, 0x06420001, 0x048102ad,
- 0x07a0090c, 0x0648a002, 0x07818299, 0x062e5080,
- 0x04001089, 0x040fd002, 0x040fd001, 0x02499001,
- 0x058102cc, 0x070ff0d4, 0x050fd0ff, 0x045c0401,
- 0x077800ff, 0x07f00000, 0x078182cc, 0x03800014,
- 0x002092ab, 0x018007e7, 0x002092ad, 0x018007e7,
- 0x012092af, 0x018007e7, 0x03209000, 0x018007e7,
- 0x002092b3, 0x018007e7, 0x002092b5, 0x018007e7,
- 0x06780043, 0x07009000, 0x068182c2, 0x00498043,
- 0x048102c2, 0x0648a0e5, 0x058102c3, 0x027c0045,
- 0x03040000, 0x058102c5, 0x075c00ff, 0x07c00000,
- 0x056a02ff, 0x008002c2, 0x008002c1, 0x06780075,
- 0x06000c07, 0x04810852, 0x012092c6, 0x070fc0ff,
- 0x05a007d2, 0x070fc0ff, 0x05308000, 0x0700a000,
- 0x05a007e4, 0x033e5000, 0x0700000c, 0x03800014,
- 0x070ff003, 0x01540477, 0x078282d8, 0x07003077,
- 0x060ff051, 0x010770ff, 0x07c00000, 0x04602601,
- 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, 0x058d02f6,
- 0x063fa051, 0x0600003e, 0x07c00000, 0x06005051,
- 0x0400e02c, 0x0660060e, 0x050f80ff, 0x032fa009,
- 0x0379ff00, 0x070000ff, 0x076c0000, 0x0681031c,
- 0x0660600e, 0x0500e0ff, 0x034000ff, 0x01540427,
- 0x07820347, 0x03400005, 0x070ff005, 0x055c0428,
- 0x06810349, 0x056c0805, 0x078182fc, 0x040f8029,
- 0x053fa809, 0x07000024, 0x07f00000, 0x06600649,
- 0x050f80ff, 0x032fa009, 0x0379ff00, 0x070000ff,
- 0x076c0000, 0x078182fc, 0x07a0034d, 0x0400e049,
- 0x0380031d, 0x07a0034d, 0x06600052, 0x030d60ff,
- 0x0460040e, 0x050f80ff, 0x0004d0d0, 0x0379ff4d,
- 0x0700ffff, 0x0104e0d1, 0x0379ff4e, 0x0700ffff,
- 0x062d6002, 0x032fa009, 0x0204f0d0, 0x064b004f,
- 0x07780000, 0x07ffff00, 0x045a044f, 0x070000ff,
- 0x00201008, 0x04002051, 0x06003051, 0x01204000,
- 0x07305000, 0x06000068, 0x03206009, 0x05007022,
- 0x0460040e, 0x050f80ff, 0x032fa042, 0x07f00000,
- 0x0460520e, 0x050f80ff, 0x053fa812, 0x06000026,
- 0x050010d1, 0x0660360e, 0x050f80ff, 0x012fa80a,
- 0x060ff00e, 0x055c042e, 0x0781034b, 0x07c00000,
- 0x0400e026, 0x02800308, 0x0500e02e, 0x0380031d,
- 0x0400e051, 0x02800346, 0x050f802b, 0x053fa809,
- 0x06000016, 0x07f00000, 0x0340002d, 0x050f802b,
- 0x053fa80a, 0x06000016, 0x07f00000, 0x0660600e,
- 0x0302c0ff, 0x034000ff, 0x01540427, 0x0782035c,
- 0x07c00000, 0x0202c026, 0x0280035b, 0x053f2000,
- 0x03020000, 0x07c00000, 0x022a5002, 0x077800e4,
- 0x07000005, 0x068184df, 0x010440d7, 0x0678aae5,
- 0x06000051, 0x01a18974, 0x05908369, 0x029103f2,
- 0x030400a6, 0x04600e40, 0x050f80ff, 0x022fa029,
- 0x07f00000, 0x074b0000, 0x076c0600, 0x048183f4,
- 0x060ff002, 0x01580403, 0x04810420, 0x070ff044,
- 0x045c0404, 0x034a88ff, 0x058183f6, 0x0349f044,
- 0x07818422, 0x0049b001, 0x07810381, 0x0448e001,
- 0x06810383, 0x028003f8, 0x02495001, 0x048183f8,
- 0x030100d8, 0x062da001, 0x0149e044, 0x07810393,
- 0x018f8387, 0x0700f0d7, 0x062da001, 0x0149e00f,
- 0x0681038f, 0x008f838c, 0x05a004bb, 0x048183a4,
- 0x0778000f, 0x07a00000, 0x03a18412, 0x048183a4,
- 0x06480001, 0x078103c3, 0x0448e001, 0x078103a9,
- 0x00491001, 0x0681840d, 0x06005010, 0x05780105,
+ 0x06000068, 0x03206009, 0x05007022, 0x0460040e,
+ 0x050f80ff, 0x032fa042, 0x07f00000, 0x0460520e,
+ 0x050f80ff, 0x053fa812, 0x06000026, 0x050010d1,
+ 0x0660360e, 0x050f80ff, 0x012fa80a, 0x060ff00e,
+ 0x055c042e, 0x07810366, 0x07c00000, 0x0400e026,
+ 0x0380032b, 0x0500e02e, 0x02800338, 0x0400e051,
+ 0x02800361, 0x050f802b, 0x053fa809, 0x06000016,
+ 0x07f00000, 0x0340002d, 0x050f802b, 0x053fa80a,
+ 0x06000016, 0x07f00000, 0x0660600e, 0x0302c0ff,
+ 0x034000ff, 0x01540427, 0x07820377, 0x07c00000,
+ 0x0202c026, 0x02800376, 0x053f2000, 0x03020000,
+ 0x07c00000, 0x022a5002, 0x077800e4, 0x07000005,
+ 0x078184fa, 0x010440d7, 0x0678aae5, 0x06000051,
+ 0x00a189b0, 0x05908384, 0x0091040d, 0x030400a6,
+ 0x04600e40, 0x050f80ff, 0x022fa029, 0x07f00000,
+ 0x074b0000, 0x076c0600, 0x0781840f, 0x060ff002,
+ 0x01580403, 0x0481043b, 0x070ff044, 0x045c0404,
+ 0x034a88ff, 0x07818411, 0x0349f044, 0x0681843d,
+ 0x0049b001, 0x0781039c, 0x0448e001, 0x0681039e,
+ 0x00800413, 0x02495001, 0x06818413, 0x030100d8,
+ 0x062da001, 0x0149e044, 0x068103ae, 0x008f83a2,
+ 0x0700f0d7, 0x062da001, 0x0149e00f, 0x078103aa,
+ 0x008f83a7, 0x04a004d6, 0x048183bf, 0x0778000f,
+ 0x07a00000, 0x03a1842d, 0x048183bf, 0x06480001,
+ 0x078103de, 0x0448e001, 0x068103c4, 0x00491001,
+ 0x07818428, 0x06005010, 0x05780105, 0x07ffff00,
+ 0x06006051, 0x06601402, 0x050f80ff, 0x053fa812,
+ 0x06000002, 0x0245f040, 0x078403bd, 0x020e0040,
+ 0x053f2000, 0x05008000, 0x0693001a, 0x0292001a,
+ 0x02800016, 0x060ff079, 0x045c0440, 0x048183c8,
+ 0x0644f07a, 0x002fb008, 0x060ff079, 0x045c0440,
+ 0x048183cd, 0x0644f07a, 0x002fb008, 0x0644f001,
+ 0x06489001, 0x068103d5, 0x04600440, 0x050f80ff,
+ 0x073fa00a, 0x06000008, 0x06a009b0, 0x04601040,
+ 0x050f80ff, 0x012fa80a, 0x03200003, 0x06600c40,
+ 0x050f80ff, 0x032fa00a, 0x028003bf, 0x020ef002,
+ 0x01860400, 0x04600840, 0x050f80ff, 0x053fa809,
+ 0x06000002, 0x05780105, 0x00800440, 0x017c0105,
+ 0x05000400, 0x07818400, 0x04602602, 0x050f80ff,
+ 0x053fa809, 0x06000002, 0x07f00000, 0x06602e40,
+ 0x050f80ff, 0x070ff005, 0x053fa809, 0x06000002,
+ 0x055c0405, 0x07818400, 0x06005010, 0x05780105,
0x07ffff00, 0x06006051, 0x06601402, 0x050f80ff,
- 0x053fa812, 0x06000002, 0x0245f040, 0x068403a2,
- 0x020e0040, 0x053f2000, 0x05008000, 0x07930018,
- 0x03920018, 0x03800014, 0x060ff079, 0x045c0440,
- 0x048183ad, 0x0644f07a, 0x002fb008, 0x060ff079,
- 0x045c0440, 0x058183b2, 0x0644f07a, 0x002fb008,
- 0x0644f001, 0x06489001, 0x068103ba, 0x04600440,
- 0x050f80ff, 0x073fa00a, 0x06000008, 0x07a00974,
- 0x04601040, 0x050f80ff, 0x012fa80a, 0x03200003,
- 0x06600c40, 0x050f80ff, 0x032fa00a, 0x028003a4,
- 0x020ef002, 0x028603e5, 0x04600840, 0x050f80ff,
- 0x053fa809, 0x06000002, 0x05780105, 0x00800440,
- 0x017c0105, 0x05000400, 0x048183e5, 0x04602602,
- 0x050f80ff, 0x053fa809, 0x06000002, 0x07f00000,
- 0x06602e40, 0x050f80ff, 0x070ff005, 0x053fa809,
- 0x06000002, 0x055c0405, 0x048183e5, 0x06005010,
- 0x05780105, 0x07ffff00, 0x06006051, 0x06601402,
- 0x050f80ff, 0x053fa812, 0x06000002, 0x007a0140,
- 0x07c00000, 0x028003a2, 0x0644f001, 0x04601040,
- 0x050f80ff, 0x012fa80a, 0x05308000, 0x03040000,
- 0x04600440, 0x050f80ff, 0x073fa00a, 0x06000008,
- 0x06009040, 0x04a007df, 0x028003a4, 0x02209002,
- 0x018004c5, 0x03209000, 0x018004c5, 0x02209004,
- 0x018004c5, 0x04a004e9, 0x062da001, 0x0149e044,
- 0x04810408, 0x018f83fc, 0x0700f0d7, 0x062da001,
- 0x0149e00f, 0x04810404, 0x028f8401, 0x05a004bb,
- 0x048183a4, 0x0778000f, 0x07a00000, 0x03a18412,
- 0x048183a4, 0x05308000, 0x05002000, 0x06009040,
- 0x04a007df, 0x028003a4, 0x05308000, 0x05004000,
- 0x06009040, 0x04a007df, 0x028003a4, 0x0700600f,
- 0x0379ff06, 0x0700ffff, 0x05602603, 0x050f80ff,
- 0x053fa809, 0x06000008, 0x0179fe11, 0x0700ffff,
- 0x055c0406, 0x0781841e, 0x07c00000, 0x056a02ff,
- 0x0180041d, 0x02209008, 0x018004c5, 0x053f2000,
- 0x05008000, 0x02495001, 0x07818495, 0x012f200c,
- 0x029d8426, 0x04600840, 0x050f80ff, 0x053fa809,
- 0x07000003, 0x0448e007, 0x06818492, 0x0721f000,
- 0x0249f007, 0x04810432, 0x0245f01f, 0x06000002,
- 0x0049b001, 0x0781843c, 0x05601c00, 0x050f80ff,
- 0x012fa809, 0x06480001, 0x05810495, 0x04481001,
- 0x07818495, 0x06602840, 0x050f80ff, 0x012fa809,
- 0x020ef001, 0x03868495, 0x059c0495, 0x070050d8,
- 0x062da001, 0x06306002, 0x05000430, 0x04600440,
- 0x050f80ff, 0x053fa812, 0x06000002, 0x028f844a,
- 0x050040d8, 0x062da001, 0x0149e044, 0x0481045b,
- 0x028f844f, 0x0700f0d7, 0x062da001, 0x0149e00f,
- 0x04810457, 0x028f8454, 0x05a004bb, 0x0681848c,
- 0x0778000f, 0x07a00000, 0x03a18412, 0x0681848c,
- 0x05602600, 0x050f80ff, 0x073fa009, 0x06000001,
- 0x060ff004, 0x00540402, 0x05820490, 0x06005051,
- 0x06006051, 0x04602640, 0x050f80ff, 0x063fa01a,
- 0x06000002, 0x07f00000, 0x06600a40, 0x050f80ff,
- 0x073fa00a, 0x07000003, 0x04487007, 0x0481047a,
- 0x060ff002, 0x00540404, 0x0682847a, 0x002f2008,
- 0x05308000, 0x07005000, 0x06009040, 0x04a007df,
- 0x04008004, 0x05a007e4, 0x03800018, 0x06780007,
- 0x02800040, 0x06818489, 0x0079c107, 0x07ffffff,
- 0x007a0b07, 0x03800000, 0x04780104, 0x07ffff00,
- 0x04810485, 0x02455007, 0x04600840, 0x050f80ff,
- 0x053fa80a, 0x07000003, 0x060ff040, 0x045a041f,
- 0x030e30ff, 0x002f2008, 0x07930018, 0x03920018,
- 0x03800014, 0x04004002, 0x00800462, 0x002f2008,
- 0x03209000, 0x018004c5, 0x002f2008, 0x04a004e9,
- 0x062da001, 0x07f00000, 0x038f8499, 0x030100d8,
- 0x062da001, 0x0149e044, 0x058104aa, 0x028f849e,
- 0x0700f0d7, 0x062da001, 0x0149e00f, 0x058104a6,
- 0x038f84a3, 0x05a004bb, 0x05818018, 0x0778000f,
- 0x07a00000, 0x03a18412, 0x05818018, 0x05308000,
- 0x07005000, 0x06009040, 0x04a007df, 0x04008010,
- 0x05a007e4, 0x03800018, 0x05602603, 0x050f80ff,
- 0x053fa809, 0x06000008, 0x07780044, 0x073f0000,
- 0x055c0411, 0x077800ff, 0x07ff0000, 0x07c00000,
- 0x07602803, 0x050f80ff, 0x053fa809, 0x06000008,
- 0x070ff0d8, 0x062da001, 0x055c0411, 0x0379fcff,
- 0x0600001f, 0x07c00000, 0x050fd009, 0x040fd040,
- 0x053f2000, 0x05008000, 0x05308000, 0x03013000,
- 0x04a007df, 0x010440d7, 0x0349f044, 0x058104d2,
- 0x062da001, 0x018f04d2, 0x03e00000, 0x062da001,
- 0x0149e044, 0x07810018, 0x018f04d7, 0x03e00000,
- 0x0700f0d7, 0x062da001, 0x0149e00f, 0x07810018,
- 0x018f04dd, 0x03e00000, 0x062da001, 0x03800018,
- 0x069084df, 0x0249c0e5, 0x07810018, 0x062da001,
- 0x07f00000, 0x07f00000, 0x033e5000, 0x070c0000,
- 0x018f04e2, 0x02800016, 0x050020d8, 0x04600440,
- 0x050f80ff, 0x073fa00a, 0x06000001, 0x07c00000,
- 0x002fb001, 0x008004f2, 0x012fb000, 0x03075087,
- 0x058d04f3, 0x03386000, 0x03020000, 0x04482075,
- 0x0781059c, 0x0648a0e6, 0x06810543, 0x0642007f,
- 0x07810541, 0x0340007e, 0x060ff038, 0x0154047e,
- 0x02d00531, 0x0560027d, 0x050f80ff, 0x032fa009,
- 0x030ef000, 0x0186084d, 0x0107d000, 0x05601000,
- 0x050f80ff, 0x032fa009, 0x03681e00, 0x076c14ff,
- 0x0581850f, 0x0007e038, 0x0727c009, 0x02800515,
- 0x03681e00, 0x04500420, 0x050f80ff, 0x073fa009,
- 0x0700003f, 0x008004fd, 0x070ff07d, 0x0450047c,
- 0x050f80ff, 0x002fa819, 0x068d0519, 0x02080001,
- 0x00081002, 0x0678007a, 0x05000200, 0x07810521,
- 0x0049107a, 0x02a182d3, 0x01082003, 0x078d0522,
- 0x0448b07a, 0x0481852a, 0x0249007a, 0x0781052d,
- 0x07780003, 0x03800000, 0x0781052d, 0x0338600c,
- 0x03010000, 0x0280052f, 0x02386004, 0x03010000,
- 0x072e6c00, 0x0380059c, 0x02800537, 0x03800539,
- 0x0280053b, 0x0280053d, 0x0380053f, 0x03800500,
- 0x0727c009, 0x02800515, 0x0727c00c, 0x02800515,
- 0x0727c00f, 0x02800515, 0x0727c012, 0x02800515,
- 0x0627c015, 0x02800515, 0x052e6800, 0x0380059c,
- 0x044880e6, 0x04810886, 0x070ff088, 0x0179feff,
- 0x070fffff, 0x03a18821, 0x06818816, 0x0249607a,
- 0x0781884b, 0x060ff083, 0x02868846, 0x013e6200,
- 0x07000003, 0x0448b07a, 0x06810567, 0x0049707a,
- 0x06810558, 0x004940e6, 0x06810567, 0x072e6300,
- 0x02800567, 0x04604679, 0x050f80ff, 0x032fa009,
- 0x03680600, 0x076c00ff, 0x04818567, 0x068d055e,
- 0x05001099, 0x060ff001, 0x064b0001, 0x045c0401,
- 0x0179feff, 0x070000ff, 0x06810567, 0x0245a07a,
- 0x068d0567, 0x008c04f2, 0x0648307a, 0x048185f2,
- 0x0279127a, 0x01040222, 0x016d02ff, 0x058185d1,
- 0x00798075, 0x0700f50f, 0x058185d1, 0x06483075,
- 0x078105d1, 0x04602679, 0x0049b07a, 0x07810578,
- 0x04602670, 0x050f80ff, 0x053fa812, 0x07000041,
- 0x078d057b, 0x004940e6, 0x06810580, 0x072e6300,
- 0x03800014, 0x0049707a, 0x07810584, 0x0049807a,
- 0x07810014, 0x02386001, 0x07030000, 0x0648f07a,
- 0x0781059a, 0x04600479, 0x050f80ff, 0x053fa809,
- 0x06000002, 0x05780105, 0x07ffff00, 0x06006051,
- 0x0760147b, 0x050f80ff, 0x053fa812, 0x06000002,
- 0x0245f079, 0x06840594, 0x020e0079, 0x033e6a00,
- 0x0700aa0a, 0x02079051, 0x03800014, 0x0444e07a,
- 0x02800649, 0x078d059c, 0x008c04f2, 0x038005b8,
- 0x060ff0e6, 0x077800ff, 0x07000050, 0x058185b8,
- 0x02799075, 0x0500fd0f, 0x037c00ff, 0x04000808,
- 0x058185b8, 0x0049107a, 0x058185b8, 0x06601879,
- 0x0049b07a, 0x068105ae, 0x06601870, 0x050f80ff,
- 0x063fa052, 0x0600003e, 0x078d05b1, 0x02386001,
- 0x07030000, 0x033e6a00, 0x0700aa0a, 0x02079051,
- 0x03800014, 0x0648c0e6, 0x048185d9, 0x0448e0e6,
- 0x068105ce, 0x022095bc, 0x02490075, 0x078182cc,
- 0x004920e6, 0x078105c9, 0x04a008d5, 0x05001088,
- 0x00700101, 0x03100000, 0x00088001, 0x033e6000,
- 0x07000088, 0x018008c5, 0x02386001, 0x07030000,
- 0x033e6000, 0x06000008, 0x028006b9, 0x02799075,
- 0x0700f50f, 0x07810014, 0x06601879, 0x0049b07a,
- 0x068105d5, 0x06601870, 0x050080ff, 0x06309052,
- 0x0600003e, 0x028005e0, 0x04602679, 0x0049b07a,
- 0x078105dd, 0x04602670, 0x050080ff, 0x05309812,
- 0x07000041, 0x0648007a, 0x068105f2, 0x04488075,
- 0x048185f2, 0x0678007a, 0x04000108, 0x078105ee,
- 0x04603e79, 0x050f80ff, 0x068d05e9, 0x073fa042,
- 0x0600004a, 0x068d05ec, 0x02086051, 0x040f8008,
- 0x070fa009, 0x0049107a, 0x01a186bb, 0x00798075,
- 0x0600f507, 0x07818869, 0x0448b075, 0x078105f9,
- 0x02493075, 0x05810865, 0x004940e6, 0x07810611,
- 0x02386001, 0x030e0000, 0x05001087, 0x00494001,
- 0x07810603, 0x04780b01, 0x01204000, 0x0681060e,
- 0x0249f076, 0x07810609, 0x06a00a7f, 0x0647f076,
- 0x004940e6, 0x0781060f, 0x03386000, 0x030e0000,
- 0x033e6000, 0x0700c000, 0x03800014, 0x06a00a2c,
- 0x03386000, 0x030e0000, 0x0648c0e6, 0x05818624,
- 0x068d0613, 0x02386001, 0x07030000, 0x0049107a,
- 0x0681061a, 0x020ef083, 0x03860624, 0x06483075,
- 0x078106b7, 0x0279007a, 0x01080200, 0x01a107d2,
- 0x05308000, 0x07060000, 0x06009079, 0x04a007df,
- 0x038006b7, 0x06483075, 0x058107fc, 0x068d0626,
- 0x02386001, 0x07030000, 0x0444e07a, 0x0648307a,
- 0x0581865f, 0x0448707a, 0x07810690, 0x0448107a,
- 0x05818690, 0x0648f07a, 0x06810649, 0x05a007d2,
- 0x04008079, 0x0049b07a, 0x07810639, 0x04602670,
- 0x04a007f2, 0x0380063a, 0x04a007f1, 0x0186865a,
- 0x0049107a, 0x0581865a, 0x04600408, 0x050f80ff,
- 0x053fa809, 0x06000002, 0x05780105, 0x07ffff00,
- 0x0760147b, 0x050f80ff, 0x053fa812, 0x06000002,
- 0x05a007db, 0x038006b7, 0x0760187b, 0x050f80ff,
- 0x032fa009, 0x0349c000, 0x04818658, 0x04601079,
- 0x050f80ff, 0x073fa00a, 0x0600003d, 0x07f00000,
- 0x06600a79, 0x050f80ff, 0x053fa80a, 0x06000010,
- 0x038006b7, 0x0046e07a, 0x03800690, 0x06009008,
- 0x05308000, 0x05004000, 0x04a007df, 0x038006b7,
+ 0x053fa812, 0x06000002, 0x007a0140, 0x07c00000,
+ 0x038003bd, 0x0644f001, 0x04601040, 0x050f80ff,
+ 0x012fa80a, 0x05308000, 0x03040000, 0x04600440,
+ 0x050f80ff, 0x073fa00a, 0x06000008, 0x06009040,
+ 0x04a0080d, 0x028003bf, 0x02209002, 0x008004e0,
+ 0x03209000, 0x008004e0, 0x02209004, 0x008004e0,
+ 0x06a00504, 0x062da001, 0x0149e044, 0x04810423,
+ 0x038f8417, 0x0700f0d7, 0x062da001, 0x0149e00f,
+ 0x0481041f, 0x028f841c, 0x04a004d6, 0x048183bf,
+ 0x0778000f, 0x07a00000, 0x03a1842d, 0x048183bf,
+ 0x05308000, 0x05002000, 0x06009040, 0x04a0080d,
+ 0x028003bf, 0x05308000, 0x05004000, 0x06009040,
+ 0x04a0080d, 0x028003bf, 0x0700600f, 0x0379ff06,
+ 0x0700ffff, 0x05602603, 0x050f80ff, 0x053fa809,
+ 0x06000008, 0x0179fe11, 0x0700ffff, 0x055c0406,
+ 0x07818439, 0x07c00000, 0x056a02ff, 0x00800438,
+ 0x02209008, 0x008004e0, 0x053f2000, 0x05008000,
+ 0x02495001, 0x068184b0, 0x012f200c, 0x039d8441,
+ 0x04600840, 0x050f80ff, 0x053fa809, 0x07000003,
+ 0x0448e007, 0x068184ad, 0x0721f000, 0x0249f007,
+ 0x0581044d, 0x0245f01f, 0x06000002, 0x0049b001,
+ 0x06818457, 0x05601c00, 0x050f80ff, 0x012fa809,
+ 0x06480001, 0x048104b0, 0x04481001, 0x068184b0,
+ 0x06602840, 0x050f80ff, 0x012fa809, 0x020ef001,
+ 0x028684b0, 0x049c04b0, 0x070050d8, 0x062da001,
+ 0x06306002, 0x05000430, 0x04600440, 0x050f80ff,
+ 0x053fa812, 0x06000002, 0x038f8465, 0x050040d8,
+ 0x062da001, 0x0149e044, 0x04810476, 0x038f846a,
+ 0x0700f0d7, 0x062da001, 0x0149e00f, 0x05810472,
+ 0x038f846f, 0x04a004d6, 0x068184a7, 0x0778000f,
+ 0x07a00000, 0x03a1842d, 0x068184a7, 0x05602600,
+ 0x050f80ff, 0x073fa009, 0x06000001, 0x060ff004,
+ 0x00540402, 0x048204ab, 0x06005051, 0x06006051,
+ 0x04602640, 0x050f80ff, 0x063fa01a, 0x06000002,
+ 0x07f00000, 0x06600a40, 0x050f80ff, 0x073fa00a,
+ 0x07000003, 0x04487007, 0x05810495, 0x060ff002,
+ 0x00540404, 0x07828495, 0x002f2008, 0x05308000,
+ 0x07005000, 0x06009040, 0x04a0080d, 0x04008004,
+ 0x05a00812, 0x0280001a, 0x06780007, 0x02800040,
+ 0x068184a4, 0x0079c107, 0x07ffffff, 0x007a0b07,
+ 0x03800000, 0x04780104, 0x07ffff00, 0x058104a0,
+ 0x02455007, 0x04600840, 0x050f80ff, 0x053fa80a,
+ 0x07000003, 0x060ff040, 0x045a041f, 0x030e30ff,
+ 0x002f2008, 0x0693001a, 0x0292001a, 0x02800016,
+ 0x04004002, 0x0180047d, 0x002f2008, 0x03209000,
+ 0x008004e0, 0x002f2008, 0x06a00504, 0x062da001,
+ 0x07f00000, 0x038f84b4, 0x030100d8, 0x062da001,
+ 0x0149e044, 0x058104c5, 0x028f84b9, 0x0700f0d7,
+ 0x062da001, 0x0149e00f, 0x048104c1, 0x038f84be,
+ 0x04a004d6, 0x0481801a, 0x0778000f, 0x07a00000,
+ 0x03a1842d, 0x0481801a, 0x05308000, 0x07005000,
+ 0x06009040, 0x04a0080d, 0x04008010, 0x05a00812,
+ 0x0280001a, 0x05602603, 0x050f80ff, 0x053fa809,
+ 0x06000008, 0x07780044, 0x073f0000, 0x055c0411,
+ 0x077800ff, 0x07ff0000, 0x07c00000, 0x07602803,
+ 0x050f80ff, 0x053fa809, 0x06000008, 0x070ff0d8,
+ 0x062da001, 0x055c0411, 0x0379fcff, 0x0600001f,
+ 0x07c00000, 0x050fd009, 0x040fd040, 0x053f2000,
+ 0x05008000, 0x05308000, 0x03013000, 0x04a0080d,
+ 0x010440d7, 0x0349f044, 0x058104ed, 0x062da001,
+ 0x018f04ed, 0x03e00000, 0x062da001, 0x0149e044,
+ 0x0681001a, 0x008f04f2, 0x03e00000, 0x0700f0d7,
+ 0x062da001, 0x0149e00f, 0x0681001a, 0x008f04f8,
+ 0x03e00000, 0x062da001, 0x0280001a, 0x079084fa,
+ 0x0249c0e5, 0x0681001a, 0x062da001, 0x07f00000,
+ 0x07f00000, 0x033e5000, 0x070c0000, 0x008f04fd,
+ 0x03800018, 0x050020d8, 0x04600440, 0x050f80ff,
+ 0x073fa00a, 0x06000001, 0x07c00000, 0x002fb001,
+ 0x0280050d, 0x012fb000, 0x03075087, 0x068d050e,
+ 0x03386000, 0x03020000, 0x04482075, 0x078105b7,
+ 0x0648a0e6, 0x0681055e, 0x0642007f, 0x0781055c,
+ 0x0340007e, 0x060ff038, 0x0154047e, 0x02d0054c,
+ 0x0560027d, 0x050f80ff, 0x032fa009, 0x030ef000,
+ 0x0186087b, 0x0107d000, 0x05601000, 0x050f80ff,
+ 0x032fa009, 0x03681e00, 0x076c14ff, 0x0481852a,
+ 0x0007e038, 0x0727c009, 0x03800530, 0x03681e00,
+ 0x04500420, 0x050f80ff, 0x073fa009, 0x0700003f,
+ 0x03800518, 0x070ff07d, 0x0450047c, 0x050f80ff,
+ 0x002fa819, 0x068d0534, 0x02080001, 0x00081002,
+ 0x0678007a, 0x05000200, 0x0781053c, 0x0049107a,
+ 0x03a182f6, 0x01082003, 0x068d053d, 0x0448b07a,
+ 0x04818545, 0x0249007a, 0x07810548, 0x07780003,
+ 0x03800000, 0x07810548, 0x0338600c, 0x03010000,
+ 0x0280054a, 0x02386004, 0x03010000, 0x072e6c00,
+ 0x038005b7, 0x02800552, 0x02800554, 0x03800556,
+ 0x02800558, 0x0380055a, 0x0380051b, 0x0727c009,
+ 0x03800530, 0x0727c00c, 0x03800530, 0x0727c00f,
+ 0x03800530, 0x0727c012, 0x03800530, 0x0627c015,
+ 0x03800530, 0x052e6800, 0x038005b7, 0x044880e6,
+ 0x048108ba, 0x070ff088, 0x0179feff, 0x070fffff,
+ 0x02a1884f, 0x07818844, 0x0249607a, 0x06818879,
+ 0x060ff083, 0x03868874, 0x013e6200, 0x07000003,
+ 0x0448b07a, 0x07810582, 0x0049707a, 0x06810573,
+ 0x004940e6, 0x07810582, 0x072e6300, 0x03800582,
+ 0x04604679, 0x050f80ff, 0x032fa009, 0x03680600,
+ 0x076c00ff, 0x05818582, 0x068d0579, 0x05001099,
+ 0x060ff001, 0x064b0001, 0x045c0401, 0x0179feff,
+ 0x070000ff, 0x07810582, 0x0245a07a, 0x078d0582,
+ 0x028c050d, 0x0648307a, 0x05818611, 0x0279127a,
+ 0x01040222, 0x016d02ff, 0x058185ee, 0x00798075,
+ 0x0700f50f, 0x058185ee, 0x06483075, 0x078105ee,
+ 0x04602679, 0x0049b07a, 0x07810593, 0x04602670,
+ 0x050f80ff, 0x053fa812, 0x07000041, 0x078d0596,
+ 0x004940e6, 0x0681059b, 0x072e6300, 0x02800016,
+ 0x0049707a, 0x0781059f, 0x0049807a, 0x06810016,
+ 0x02386001, 0x07030000, 0x0648f07a, 0x068105b5,
+ 0x04600479, 0x050f80ff, 0x053fa809, 0x06000002,
+ 0x05780105, 0x07ffff00, 0x06006051, 0x0760147b,
+ 0x050f80ff, 0x053fa812, 0x06000002, 0x0245f079,
+ 0x078405af, 0x020e0079, 0x033e6a00, 0x0700aa0a,
+ 0x02079051, 0x02800016, 0x0444e07a, 0x02800668,
+ 0x078d05b7, 0x028c050d, 0x028005d3, 0x060ff0e6,
+ 0x077800ff, 0x07000050, 0x048185d3, 0x02799075,
+ 0x0500fd0f, 0x037c00ff, 0x04000808, 0x048185d3,
+ 0x0049107a, 0x048185d3, 0x06601879, 0x0049b07a,
+ 0x078105c9, 0x06601870, 0x050f80ff, 0x063fa052,
+ 0x0600003e, 0x078d05cc, 0x02386001, 0x07030000,
+ 0x033e6a00, 0x0700aa0a, 0x02079051, 0x02800016,
+ 0x0648c0e6, 0x058185f6, 0x0448e0e6, 0x078105eb,
+ 0x06009051, 0x077baf09, 0x07000005, 0x02490075,
+ 0x068182ef, 0x004920e6, 0x068105e6, 0x07a00909,
+ 0x05001088, 0x00700101, 0x03100000, 0x00088001,
+ 0x033e6000, 0x07000088, 0x018008f9, 0x02386001,
+ 0x07030000, 0x033e6000, 0x06000008, 0x038006d8,
+ 0x02799075, 0x0700f50f, 0x06810016, 0x06601879,
+ 0x0049b07a, 0x068105f2, 0x06601870, 0x050080ff,
+ 0x06309052, 0x0600003e, 0x038005ff, 0x0648307a,
+ 0x05818611, 0x04602679, 0x0049b07a, 0x078105fc,
+ 0x04602670, 0x050080ff, 0x05309812, 0x07000041,
+ 0x0648007a, 0x07810611, 0x04488075, 0x05818611,
+ 0x0678007a, 0x04000108, 0x0681060d, 0x04603e79,
+ 0x050f80ff, 0x068d0608, 0x073fa042, 0x0600004a,
+ 0x068d060b, 0x02086051, 0x040f8008, 0x070fa009,
+ 0x0049107a, 0x00a186da, 0x00798075, 0x0600f507,
+ 0x0681889d, 0x0448b075, 0x07810618, 0x02493075,
+ 0x05810895, 0x004940e6, 0x07810630, 0x02386001,
+ 0x030e0000, 0x05001087, 0x00494001, 0x07810622,
+ 0x04780b01, 0x01204000, 0x0781062d, 0x0249f076,
+ 0x07810628, 0x07a00abb, 0x0647f076, 0x004940e6,
+ 0x0781062e, 0x03386000, 0x030e0000, 0x033e6000,
+ 0x0700c000, 0x02800016, 0x06a00a68, 0x03386000,
+ 0x030e0000, 0x0648c0e6, 0x04818643, 0x068d0632,
+ 0x02386001, 0x07030000, 0x0049107a, 0x07810639,
+ 0x020ef083, 0x02860643, 0x06483075, 0x068106d6,
+ 0x0279007a, 0x01080200, 0x01a10800, 0x05308000,
+ 0x07060000, 0x06009079, 0x04a0080d, 0x028006d6,
+ 0x06483075, 0x0481082a, 0x068d0645, 0x02386001,
+ 0x07030000, 0x0444e07a, 0x0648307a, 0x0581867e,
+ 0x0448707a, 0x078106af, 0x0448107a, 0x058186af,
+ 0x0648f07a, 0x06810668, 0x05a00800, 0x04008079,
+ 0x0049b07a, 0x06810658, 0x04602670, 0x04a00820,
+ 0x03800659, 0x04a0081f, 0x00868679, 0x0049107a,
+ 0x04818679, 0x04600408, 0x050f80ff, 0x053fa809,
+ 0x06000002, 0x05780105, 0x07ffff00, 0x0760147b,
+ 0x050f80ff, 0x053fa812, 0x06000002, 0x05a00809,
+ 0x028006d6, 0x0760187b, 0x050f80ff, 0x032fa009,
+ 0x0349c000, 0x05818677, 0x04601079, 0x050f80ff,
+ 0x073fa00a, 0x0600003d, 0x07f00000, 0x06600a79,
+ 0x050f80ff, 0x053fa80a, 0x06000010, 0x028006d6,
+ 0x0046e07a, 0x038006af, 0x06009008, 0x05308000,
+ 0x05004000, 0x04a0080d, 0x028006d6, 0x06600679,
+ 0x050f80ff, 0x00201007, 0x012fa80a, 0x0046047a,
+ 0x034630ff, 0x050020ff, 0x06003051, 0x04601079,
+ 0x050f80ff, 0x073fa012, 0x06000001, 0x07f00000,
0x07601e7b, 0x050f80ff, 0x032fa011, 0x070ff000,
0x04500401, 0x030460ff, 0x060ff025, 0x00540446,
- 0x06820673, 0x030460ff, 0x052e40c0, 0x04092046,
- 0x0349a0e4, 0x04818670, 0x003e4080, 0x0700c000,
- 0x03800674, 0x003e4080, 0x05008000, 0x03800674,
- 0x04092046, 0x070ff03a, 0x01868678, 0x013e4000,
- 0x07000003, 0x06a0035e, 0x06600679, 0x050f80ff,
- 0x00201007, 0x012fa80a, 0x0046047a, 0x034630ff,
- 0x050020ff, 0x06003051, 0x04601079, 0x050f80ff,
- 0x073fa012, 0x06000001, 0x07f00000, 0x06602e79,
- 0x050f80ff, 0x032fa009, 0x030ef000, 0x0286068f,
- 0x06009079, 0x05308000, 0x03016000, 0x04a007df,
- 0x038006b7, 0x0049407a, 0x078106b2, 0x079c06b1,
- 0x04008079, 0x04a007f1, 0x018686b1, 0x06600679,
- 0x050f80ff, 0x063fa029, 0x06000001, 0x0349f003,
- 0x058186b1, 0x07780006, 0x07ffff00, 0x037c00ff,
- 0x07000600, 0x058186b1, 0x0079fe02, 0x070000ff,
- 0x056c08ff, 0x058186b1, 0x0246007a, 0x0400707a,
- 0x06600679, 0x050f80ff, 0x04302001, 0x04000410,
- 0x05303442, 0x02080002, 0x063fa032, 0x06000001,
- 0x020e3079, 0x038006b7, 0x0447407a, 0x05a007d2,
- 0x05308000, 0x03020000, 0x06009079, 0x04a007df,
- 0x033e6a00, 0x0700aa0a, 0x02079051, 0x03800014,
- 0x06605679, 0x050f80ff, 0x032fa009, 0x070ff000,
- 0x038606d4, 0x057dfeff, 0x07ffffff, 0x078106d4,
- 0x050f8000, 0x012fa811, 0x0079fe02, 0x070000ff,
- 0x077d66ff, 0x060000dc, 0x058186d4, 0x060ff001,
- 0x008686d5, 0x064b0002, 0x06420002, 0x060ff002,
- 0x05500400, 0x050f80ff, 0x05004084, 0x073fa00a,
- 0x06000002, 0x07c00000, 0x04600201, 0x050f80ff,
- 0x073fa009, 0x06000001, 0x0079fe02, 0x070000ff,
- 0x077d72ff, 0x070000dd, 0x058186d4, 0x064b0002,
- 0x06420002, 0x06000001, 0x028006ce, 0x0605004c,
- 0x028006e6, 0x079306e2, 0x05a007d8, 0x054bc450,
- 0x068106e9, 0x02d006ea, 0x028006e9, 0x038006fa,
- 0x038006fc, 0x0080078c, 0x0180079f, 0x01800709,
- 0x038006fc, 0x01800756, 0x038006fa, 0x008007a7,
- 0x018007a3, 0x038006fa, 0x018007aa, 0x008007c7,
- 0x01800778, 0x038006fa, 0x038006fa, 0x032096fa,
- 0x018007e7, 0x073c3fff, 0x0700000f, 0x0379ff50,
- 0x070fffff, 0x060ff079, 0x055c0450, 0x0581079c,
- 0x002fb008, 0x060ff079, 0x055c0450, 0x0481079b,
- 0x05a007ca, 0x00800794, 0x0179fe50, 0x070fffff,
- 0x070050ff, 0x060ff079, 0x055c0405, 0x04810713,
- 0x002fb008, 0x060ff079, 0x055c0405, 0x06818798,
- 0x073c3fff, 0x0700000f, 0x070ff087, 0x017980ff,
- 0x0600f507, 0x07818722, 0x02203040, 0x05002087,
- 0x0049d002, 0x07818722, 0x002fb008, 0x07006087,
- 0x002fb008, 0x0149d006, 0x05810750, 0x05930727,
- 0x01257000, 0x052e4003, 0x072e5030, 0x0304c050,
- 0x02400057, 0x06740057, 0x06000004, 0x0782001b,
- 0x004940e6, 0x01a18a72, 0x0049107a, 0x01a186bb,
- 0x04002083, 0x07003084, 0x04004085, 0x04602679,
- 0x0049b07a, 0x05810736, 0x04602670, 0x050f80ff,
- 0x063fa01a, 0x06000001, 0x05a007d2, 0x05a008de,
- 0x033e6a00, 0x0700aa0a, 0x062e5020, 0x07a0090c,
- 0x02798102, 0x070000ff, 0x007c8002, 0x07000055,
- 0x0581074d, 0x072e50c0, 0x0648a002, 0x0581074d,
- 0x040fd002, 0x058d0748, 0x03386006, 0x03010000,
- 0x033e6000, 0x0700000c, 0x003e4002, 0x07000a00,
- 0x028006b9, 0x07420003, 0x0681871a, 0x00798002,
- 0x0600f507, 0x07818722, 0x0180072b, 0x0493075d,
- 0x01257000, 0x073c3fff, 0x0700000f, 0x052e4003,
- 0x072e5030, 0x0304c050, 0x067800e6, 0x07000041,
- 0x04810762, 0x05a008e7, 0x0681876d, 0x002fb008,
- 0x067800e6, 0x07000041, 0x04810768, 0x05a008e7,
- 0x0681876d, 0x062e5020, 0x003e4002, 0x07000a00,
- 0x03e00000, 0x03800014, 0x06740057, 0x07000018,
- 0x0782001b, 0x05a008de, 0x033e6a00, 0x0700aa0a,
- 0x002fb008, 0x05a008de, 0x033e6a00, 0x0700aa0a,
- 0x00800768, 0x0379ff50, 0x070fffff, 0x060ff079,
- 0x055c0450, 0x0781877e, 0x0245507a, 0x002fb008,
- 0x060ff079, 0x055c0450, 0x06818783, 0x0245507a,
- 0x002fb008, 0x05601050, 0x050f80ff, 0x012fa809,
- 0x02455001, 0x05601050, 0x050f80ff, 0x012fa80a,
- 0x01800795, 0x0795879c, 0x0179fe50, 0x070fffff,
- 0x045c042f, 0x0781879c, 0x0202f051, 0x042e4020,
- 0x01800795, 0x002fb008, 0x003e4002, 0x07000a00,
- 0x0380001b, 0x0693879b, 0x062e5020, 0x042e4002,
- 0x002fb008, 0x013e4000, 0x05000e00, 0x0380001b,
- 0x0179fe50, 0x070fffff, 0x010210ff, 0x0380001b,
- 0x0179fe50, 0x070fffff, 0x050340ff, 0x01800795,
- 0x023e5008, 0x05000800, 0x0380001b, 0x0179fe50,
- 0x070fffff, 0x0102e0ff, 0x05602c2e, 0x050f80ff,
- 0x05222000, 0x07223000, 0x05224000, 0x07225000,
- 0x07226000, 0x05227000, 0x05228000, 0x07229000,
- 0x0722a000, 0x0522b000, 0x063fa051, 0x07000011,
- 0x0202c026, 0x0522d000, 0x052e400c, 0x0560402e,
- 0x050f80ff, 0x032fa021, 0x04032002, 0x07033003,
- 0x07420000, 0x07036000, 0x0403b001, 0x0380001b,
- 0x030430d4, 0x062e5008, 0x00800279, 0x05601050,
- 0x050f80ff, 0x032fa009, 0x03460000, 0x008007d5,
- 0x0246007a, 0x0045207a, 0x008007d3, 0x0246007a,
- 0x0600007a, 0x04601079, 0x050f80ff, 0x032fa00a,
- 0x07c00000, 0x039287d8, 0x070500e1, 0x07c00000,
- 0x0245f008, 0x048407dc, 0x020e0008, 0x07c00000,
- 0x070ff009, 0x065a0008, 0x058407e1, 0x020e0008,
- 0x07c00000, 0x058407e4, 0x020e0008, 0x07c00000,
- 0x05308000, 0x0500d000, 0x04a007df, 0x04a007ec,
- 0x03800014, 0x052e4300, 0x072e500c, 0x073c3fff,
- 0x0700000f, 0x07c00000, 0x04602608, 0x050f80ff,
- 0x032fa011, 0x076a0000, 0x078187fa, 0x066a0001,
- 0x058107fa, 0x06006051, 0x07c00000, 0x02206001,
- 0x07c00000, 0x0678007a, 0x06000020, 0x06818804,
- 0x0049107a, 0x04810804, 0x073c3fff, 0x0700000f,
- 0x02800626, 0x040fd079, 0x0648307a, 0x05810809,
- 0x06a0096b, 0x0080080e, 0x05a007cf, 0x05308000,
- 0x05001000, 0x06009079, 0x04a007df, 0x048d080e,
- 0x040fd079, 0x033e6a00, 0x0600aa0e, 0x02079051,
- 0x03386006, 0x03010000, 0x03800014, 0x052e6200,
- 0x0648307a, 0x0581081b, 0x06a0096b, 0x018008c5,
- 0x05a007cf, 0x05308000, 0x05001000, 0x06009079,
- 0x04a007df, 0x018008c5, 0x050010ff, 0x0448b07a,
- 0x0481082f, 0x0049107a, 0x0481082f, 0x048d0826,
- 0x04604679, 0x050f80ff, 0x032fa009, 0x03680600,
- 0x056c02ff, 0x0681882f, 0x046c1001, 0x04810831,
- 0x056a02ff, 0x07c00000, 0x04a00834, 0x075c00ff,
- 0x07c00000, 0x048d0834, 0x060ff07c, 0x070ff07d,
- 0x070ff07e, 0x060ff07f, 0x060ff080, 0x070ff081,
- 0x070ff082, 0x060ff083, 0x070ff084, 0x060ff085,
- 0x0338600c, 0x03010000, 0x038a8841, 0x058d0842,
- 0x03386000, 0x03020000, 0x07c00000, 0x06483075,
- 0x0781884b, 0x0448d07a, 0x078187fc, 0x040fd079,
- 0x052e6200, 0x038005d1, 0x0648307a, 0x068182b3,
- 0x05a007d2, 0x0120984d, 0x018007e7, 0x04002089,
+ 0x0782069f, 0x030460ff, 0x052e40c0, 0x04092046,
+ 0x0349a0e4, 0x0581869c, 0x003e4080, 0x0700c000,
+ 0x038006a0, 0x003e4080, 0x05008000, 0x038006a0,
+ 0x04092046, 0x070ff03a, 0x008686a4, 0x013e4000,
+ 0x07000003, 0x06a00379, 0x06602e79, 0x050f80ff,
+ 0x032fa009, 0x030ef000, 0x028606ae, 0x06009079,
+ 0x05308000, 0x03016000, 0x04a0080d, 0x028006d6,
+ 0x0049407a, 0x078106d1, 0x069c06d0, 0x04008079,
+ 0x04a0081f, 0x008686d0, 0x06600679, 0x050f80ff,
+ 0x063fa029, 0x06000001, 0x0349f003, 0x048186d0,
+ 0x07780006, 0x07ffff00, 0x037c00ff, 0x07000600,
+ 0x048186d0, 0x0079fe02, 0x070000ff, 0x056c08ff,
+ 0x048186d0, 0x0246007a, 0x0400707a, 0x06600679,
+ 0x050f80ff, 0x04302001, 0x04000410, 0x05303442,
+ 0x02080002, 0x063fa032, 0x06000001, 0x020e3079,
+ 0x028006d6, 0x0447407a, 0x05a00800, 0x05308000,
+ 0x03020000, 0x06009079, 0x04a0080d, 0x033e6a00,
+ 0x0700aa0a, 0x02079051, 0x02800016, 0x06605679,
+ 0x050f80ff, 0x032fa009, 0x070ff000, 0x038606f3,
+ 0x057dfeff, 0x07ffffff, 0x078106f3, 0x050f8000,
+ 0x012fa811, 0x0079fe02, 0x070000ff, 0x077d66ff,
+ 0x060000dc, 0x058186f3, 0x060ff001, 0x008686f4,
+ 0x064b0002, 0x06420002, 0x060ff002, 0x05500400,
+ 0x050f80ff, 0x05004084, 0x073fa00a, 0x06000002,
+ 0x07c00000, 0x04600201, 0x050f80ff, 0x073fa009,
+ 0x06000001, 0x0079fe02, 0x070000ff, 0x077d72ff,
+ 0x070000dd, 0x058186f3, 0x064b0002, 0x06420002,
+ 0x06000001, 0x038006ed, 0x0605004c, 0x01800705,
+ 0x04930701, 0x05a00806, 0x054bc450, 0x04810708,
+ 0x01d00709, 0x00800708, 0x00800719, 0x0180071d,
+ 0x018007bd, 0x008007d0, 0x0080072a, 0x0180071d,
+ 0x01800787, 0x00800719, 0x018007d4, 0x00800719,
+ 0x00800719, 0x018007d7, 0x018007f5, 0x018007a9,
+ 0x00800719, 0x00800719, 0x06009051, 0x037a3309,
+ 0x06000007, 0x00800815, 0x073c3fff, 0x0700000f,
+ 0x0379ff50, 0x070fffff, 0x060ff079, 0x055c0450,
+ 0x048107cd, 0x002fb008, 0x060ff079, 0x055c0450,
+ 0x058107cc, 0x04a007f8, 0x018007c5, 0x0179fe50,
+ 0x070fffff, 0x070050ff, 0x060ff079, 0x055c0405,
+ 0x0481073d, 0x002fb008, 0x060ff079, 0x055c0405,
+ 0x0481073d, 0x050fd005, 0x05601005, 0x050f80ff,
+ 0x032fa009, 0x03460000, 0x05601005, 0x050f80ff,
+ 0x032fa00a, 0x018007c9, 0x073c3fff, 0x0700000f,
+ 0x070ff087, 0x017980ff, 0x0600f507, 0x0681874c,
+ 0x02203040, 0x05002087, 0x0049d002, 0x0681874c,
+ 0x002fb008, 0x07006087, 0x002fb008, 0x0149d006,
+ 0x05810781, 0x04930751, 0x01257000, 0x052e4003,
+ 0x072e5030, 0x0304c050, 0x02400057, 0x06740057,
+ 0x06000004, 0x0782001d, 0x004940e6, 0x00a18aae,
+ 0x0448b07a, 0x0481075e, 0x04603e79, 0x050f80ff,
+ 0x048d075b, 0x073fa042, 0x0600004a, 0x0049107a,
+ 0x00a186da, 0x04002083, 0x07003084, 0x04004085,
+ 0x04602679, 0x0049b07a, 0x04810767, 0x04602670,
+ 0x050f80ff, 0x063fa01a, 0x06000001, 0x05a00800,
+ 0x07a00912, 0x033e6a00, 0x0700aa0a, 0x062e5020,
+ 0x06a00940, 0x02798102, 0x070000ff, 0x007c8002,
+ 0x07000055, 0x0581077e, 0x072e50c0, 0x0648a002,
+ 0x0581077e, 0x040fd002, 0x048d0779, 0x03386006,
+ 0x03010000, 0x033e6000, 0x0700000c, 0x003e4002,
+ 0x07000a00, 0x038006d8, 0x07420003, 0x07818744,
+ 0x00798002, 0x0600f507, 0x0681874c, 0x01800755,
+ 0x0593078e, 0x01257000, 0x073c3fff, 0x0700000f,
+ 0x052e4003, 0x072e5030, 0x0304c050, 0x067800e6,
+ 0x07000041, 0x05810793, 0x07a0091b, 0x0681879e,
+ 0x002fb008, 0x067800e6, 0x07000041, 0x05810799,
+ 0x07a0091b, 0x0681879e, 0x062e5020, 0x003e4002,
+ 0x07000a00, 0x03e00000, 0x02800016, 0x06740057,
+ 0x07000018, 0x0782001d, 0x07a00912, 0x033e6a00,
+ 0x0700aa0a, 0x002fb008, 0x07a00912, 0x033e6a00,
+ 0x0700aa0a, 0x01800799, 0x0379ff50, 0x070fffff,
+ 0x060ff079, 0x055c0450, 0x078187af, 0x0245507a,
+ 0x002fb008, 0x060ff079, 0x055c0450, 0x078187b4,
+ 0x0245507a, 0x002fb008, 0x05601050, 0x050f80ff,
+ 0x012fa809, 0x02455001, 0x05601050, 0x050f80ff,
+ 0x012fa80a, 0x018007c6, 0x069587cd, 0x0179fe50,
+ 0x070fffff, 0x045c042f, 0x068187cd, 0x0202f051,
+ 0x042e4020, 0x018007c6, 0x002fb008, 0x003e4002,
+ 0x07000a00, 0x0380001d, 0x079387cc, 0x062e5020,
+ 0x042e4002, 0x002fb008, 0x013e4000, 0x05000e00,
+ 0x0380001d, 0x0179fe50, 0x070fffff, 0x010210ff,
+ 0x0380001d, 0x023e5008, 0x05000800, 0x0380001d,
+ 0x0179fe50, 0x070fffff, 0x0102e0ff, 0x05602c2e,
+ 0x050f80ff, 0x05222000, 0x07223000, 0x05224000,
+ 0x07225000, 0x07226000, 0x05227000, 0x05228000,
+ 0x0722a000, 0x0522b000, 0x060ff029, 0x063fa051,
+ 0x07000011, 0x030290ff, 0x0202c026, 0x0522d000,
+ 0x052e400c, 0x0560402e, 0x050f80ff, 0x032fa021,
+ 0x04032002, 0x07033003, 0x07420000, 0x07036000,
+ 0x0403b001, 0x0380001d, 0x030430d4, 0x062e5008,
+ 0x01800290, 0x05601050, 0x050f80ff, 0x032fa009,
+ 0x03460000, 0x01800803, 0x0246007a, 0x0045207a,
+ 0x00800801, 0x0246007a, 0x0600007a, 0x04601079,
+ 0x050f80ff, 0x032fa00a, 0x07c00000, 0x03928806,
+ 0x070500e1, 0x07c00000, 0x0245f008, 0x0584080a,
+ 0x020e0008, 0x07c00000, 0x070ff009, 0x065a0008,
+ 0x0584080f, 0x020e0008, 0x07c00000, 0x05840812,
+ 0x020e0008, 0x07c00000, 0x05308000, 0x0500d000,
+ 0x04a0080d, 0x04a0081a, 0x02800016, 0x052e4300,
+ 0x072e500c, 0x073c3fff, 0x0700000f, 0x07c00000,
+ 0x04602608, 0x050f80ff, 0x032fa011, 0x076a0000,
+ 0x07818828, 0x066a0001, 0x05810828, 0x06006051,
+ 0x07c00000, 0x02206001, 0x07c00000, 0x0678007a,
+ 0x06000020, 0x06818832, 0x0049107a, 0x04810832,
+ 0x073c3fff, 0x0700000f, 0x02800645, 0x040fd079,
+ 0x0648307a, 0x04810837, 0x06a009a7, 0x0180083c,
+ 0x04a007fd, 0x05308000, 0x05001000, 0x06009079,
+ 0x04a0080d, 0x058d083c, 0x040fd079, 0x033e6a00,
+ 0x0600aa0e, 0x02079051, 0x03386006, 0x03010000,
+ 0x02800016, 0x052e6200, 0x0648307a, 0x04810849,
+ 0x06a009a7, 0x018008f9, 0x04a007fd, 0x05308000,
+ 0x05001000, 0x06009079, 0x04a0080d, 0x018008f9,
+ 0x050010ff, 0x0448b07a, 0x0481085d, 0x0049107a,
+ 0x0481085d, 0x048d0854, 0x04604679, 0x050f80ff,
+ 0x032fa009, 0x03680600, 0x056c02ff, 0x0681885d,
+ 0x046c1001, 0x0581085f, 0x056a02ff, 0x07c00000,
+ 0x04a00862, 0x075c00ff, 0x07c00000, 0x048d0862,
+ 0x060ff07c, 0x070ff07d, 0x070ff07e, 0x060ff07f,
+ 0x060ff080, 0x070ff081, 0x070ff082, 0x060ff083,
+ 0x070ff084, 0x060ff085, 0x0338600c, 0x03010000,
+ 0x038a886f, 0x048d0870, 0x03386000, 0x03020000,
+ 0x07c00000, 0x06483075, 0x06818879, 0x0448d07a,
+ 0x0681882a, 0x040fd079, 0x052e6200, 0x038005ee,
+ 0x0648307a, 0x068182d0, 0x05a00800, 0x06009051,
+ 0x017af709, 0x06000008, 0x00800815, 0x04002089,
0x04780102, 0x07f00000, 0x05001088, 0x04740101,
0x03100000, 0x04780101, 0x07f00000, 0x060ff002,
- 0x045c0401, 0x06818867, 0x00088001, 0x033e6000,
+ 0x045c0401, 0x07818899, 0x00088001, 0x033e6000,
0x070000c0, 0x0220901a, 0x05308000, 0x01012000,
- 0x04a007df, 0x018008c0, 0x01209865, 0x018007e7,
- 0x00209867, 0x018002ca, 0x040fd075, 0x040fd07a,
- 0x040fd079, 0x0648307a, 0x05810874, 0x06780075,
- 0x06000007, 0x07818881, 0x00494075, 0x07818874,
- 0x06a0096b, 0x06486075, 0x078182b1, 0x00494075,
- 0x06818894, 0x02490075, 0x078182c6, 0x04487075,
- 0x06818889, 0x0448b07a, 0x04810880, 0x00492075,
- 0x0781889f, 0x00800897, 0x05308000, 0x03010000,
- 0x06009079, 0x04a007df, 0x03800014, 0x0448e0e6,
- 0x0581859c, 0x018002af, 0x0648307a, 0x078188c0,
- 0x004940e6, 0x01a18a72, 0x05308000, 0x0500e000,
- 0x06009079, 0x04a007df, 0x04008089, 0x05a007e4,
- 0x018008c0, 0x00208007, 0x05a007e4, 0x03800014,
- 0x05a007cf, 0x05308000, 0x0700f000, 0x06009079,
- 0x07000088, 0x04a008a8, 0x04a007df, 0x03800014,
- 0x004940e6, 0x01a18a72, 0x05308000, 0x01011000,
- 0x06009079, 0x07000088, 0x04a008a8, 0x04a007df,
- 0x03800014, 0x03386000, 0x07030000, 0x07f00000,
- 0x048d08ab, 0x033e6a00, 0x0600aa0e, 0x02079051,
- 0x040fd075, 0x0448b075, 0x058108b7, 0x02493075,
- 0x058108b7, 0x05301005, 0x03010000, 0x008008b9,
+ 0x04a0080d, 0x008008f4, 0x06009051, 0x077b2b09,
+ 0x06000008, 0x00800815, 0x06009051, 0x077b3309,
+ 0x06000008, 0x018002ed, 0x040fd075, 0x040fd07a,
+ 0x040fd079, 0x0648307a, 0x048108a8, 0x06780075,
+ 0x06000007, 0x068188b5, 0x00494075, 0x068188a8,
+ 0x06a009a7, 0x06486075, 0x068182ce, 0x00494075,
+ 0x068188c8, 0x02490075, 0x078182e7, 0x04487075,
+ 0x078188bd, 0x0448b07a, 0x058108b4, 0x00492075,
+ 0x068188d3, 0x008008cb, 0x05308000, 0x03010000,
+ 0x06009079, 0x04a0080d, 0x02800016, 0x0448e0e6,
+ 0x058185b7, 0x018002ca, 0x0648307a, 0x068188f4,
+ 0x004940e6, 0x00a18aae, 0x05308000, 0x0500e000,
+ 0x06009079, 0x04a0080d, 0x04008089, 0x05a00812,
+ 0x008008f4, 0x00208007, 0x05a00812, 0x02800016,
+ 0x04a007fd, 0x05308000, 0x0700f000, 0x06009079,
+ 0x07000088, 0x04a008dc, 0x04a0080d, 0x02800016,
+ 0x004940e6, 0x00a18aae, 0x05308000, 0x01011000,
+ 0x06009079, 0x07000088, 0x04a008dc, 0x04a0080d,
+ 0x02800016, 0x03386000, 0x07030000, 0x07f00000,
+ 0x048d08df, 0x033e6a00, 0x0600aa0e, 0x02079051,
+ 0x040fd075, 0x0448b075, 0x058108eb, 0x02493075,
+ 0x058108eb, 0x05301005, 0x03010000, 0x018008ed,
0x05301006, 0x03010000, 0x05002087, 0x06485002,
- 0x068188b9, 0x0744c000, 0x01088000, 0x02086001,
- 0x07c00000, 0x05001088, 0x040fd001, 0x04a008d5,
+ 0x078188ed, 0x0744c000, 0x01088000, 0x02086001,
+ 0x07c00000, 0x05001088, 0x040fd001, 0x07a00909,
0x0644c001, 0x00088001, 0x070fc0ff, 0x033e6a00,
- 0x0600aa0e, 0x004920e6, 0x068188cb, 0x02079051,
- 0x048d08cb, 0x060ff089, 0x034990ff, 0x058108d2,
- 0x03386005, 0x03010000, 0x03800014, 0x03386006,
- 0x03010000, 0x03800014, 0x048d08d5, 0x03386000,
- 0x07030000, 0x07f00000, 0x048d08d9, 0x070ff087,
- 0x074850ff, 0x068188da, 0x07c00000, 0x058d08de,
- 0x02386001, 0x07030000, 0x07f00000, 0x058d08e2,
- 0x070ff087, 0x074850ff, 0x068188e3, 0x07c00000,
- 0x05002087, 0x0049d002, 0x078188f6, 0x002fb008,
- 0x067800e6, 0x07000041, 0x002fb008, 0x078188f6,
- 0x07a0090c, 0x0448e002, 0x058108f9, 0x0648a002,
- 0x05818903, 0x06486002, 0x048108fd, 0x02400057,
- 0x056a02ff, 0x07c00000, 0x07a0090c, 0x06788102,
- 0x06000004, 0x078188f6, 0x04002089, 0x070ff0d4,
- 0x045c0402, 0x077800ff, 0x07f00000, 0x078188f6,
- 0x00202010, 0x018c08f6, 0x07f00000, 0x06420002,
- 0x04818904, 0x05a008de, 0x033e6a00, 0x0700aa0a,
+ 0x0600aa0e, 0x004920e6, 0x078188ff, 0x02079051,
+ 0x058d08ff, 0x060ff089, 0x034990ff, 0x07810906,
+ 0x03386005, 0x03010000, 0x02800016, 0x03386006,
+ 0x03010000, 0x02800016, 0x078d0909, 0x03386000,
+ 0x07030000, 0x07f00000, 0x068d090d, 0x070ff087,
+ 0x074850ff, 0x0481890e, 0x07c00000, 0x078d0912,
+ 0x02386001, 0x07030000, 0x07f00000, 0x068d0916,
+ 0x070ff087, 0x074850ff, 0x05818917, 0x07c00000,
+ 0x05002087, 0x0049d002, 0x0481892a, 0x002fb008,
+ 0x067800e6, 0x07000041, 0x002fb008, 0x0481892a,
+ 0x06a00940, 0x0448e002, 0x0781092d, 0x0648a002,
+ 0x04818937, 0x06486002, 0x06810931, 0x02400057,
+ 0x056a02ff, 0x07c00000, 0x06a00940, 0x06788102,
+ 0x06000004, 0x0481892a, 0x04002089, 0x070ff0d4,
+ 0x045c0402, 0x077800ff, 0x07f00000, 0x0481892a,
+ 0x00202010, 0x028c092a, 0x07f00000, 0x06420002,
+ 0x04818938, 0x07a00912, 0x033e6a00, 0x0700aa0a,
0x07c00000, 0x07f00000, 0x060ff0a2, 0x045a0202,
- 0x060ff0a2, 0x045c0402, 0x0481890d, 0x07c00000,
- 0x06a0035e, 0x03495047, 0x07810918, 0x0320901d,
- 0x0280094a, 0x0220901f, 0x0280094a, 0x014980e4,
- 0x05818014, 0x013e4000, 0x07003000, 0x05600e35,
- 0x050f80ff, 0x07a00990, 0x01208003, 0x05a007e4,
- 0x02800932, 0x03209009, 0x0280094a, 0x03209011,
- 0x0280094a, 0x02209007, 0x0280094a, 0x03209003,
- 0x0280094a, 0x00497043, 0x05818928, 0x00494043,
- 0x07810924, 0x02209001, 0x0280094a, 0x0220900d,
- 0x0280094a, 0x0320900f, 0x0280094a, 0x03493000,
- 0x0681093b, 0x027c0045, 0x070a0000, 0x06810946,
- 0x0220900b, 0x0280094a, 0x0320900c, 0x02800940,
- 0x02209013, 0x05308000, 0x01012000, 0x04a007df,
- 0x01800288, 0x03209005, 0x0280094a, 0x072e500c,
- 0x00208002, 0x05a007e4, 0x03800014, 0x0349c0e4,
- 0x06810967, 0x072d6000, 0x07f00000, 0x060000d0,
+ 0x060ff0a2, 0x045c0402, 0x05818941, 0x07c00000,
+ 0x06a00379, 0x03495047, 0x0681094c, 0x0320901d,
+ 0x0380097e, 0x0220901f, 0x0380097e, 0x014980e4,
+ 0x04818016, 0x013e4000, 0x07003000, 0x05600e35,
+ 0x050f80ff, 0x07a009cc, 0x01208003, 0x05a00812,
+ 0x03800966, 0x03209009, 0x0380097e, 0x03209011,
+ 0x0380097e, 0x02209007, 0x0380097e, 0x03209003,
+ 0x0380097e, 0x00497043, 0x0581895c, 0x00494043,
+ 0x06810958, 0x02209001, 0x0380097e, 0x0220900d,
+ 0x0380097e, 0x0320900f, 0x0380097e, 0x03493000,
+ 0x0781096f, 0x027c0045, 0x070a0000, 0x0681097a,
+ 0x0220900b, 0x0380097e, 0x0320900c, 0x03800974,
+ 0x02209013, 0x05308000, 0x01012000, 0x04a0080d,
+ 0x0180029f, 0x03209005, 0x0380097e, 0x072e500c,
+ 0x00208002, 0x05a00812, 0x02800016, 0x0349c0e4,
+ 0x0681099b, 0x072d6000, 0x07f00000, 0x060000d0,
0x0379ff00, 0x0700ffff, 0x04605232, 0x050f80ff,
0x032fa00a, 0x070000d1, 0x0379ff00, 0x0700ffff,
0x04605432, 0x050f80ff, 0x032fa00a, 0x062d6002,
0x07f00000, 0x0204f0d0, 0x0079fe4f, 0x070000ff,
0x074b0a00, 0x044b044f, 0x075a0000, 0x04600432,
- 0x050f80ff, 0x032fa00a, 0x00041032, 0x03800044,
- 0x05308000, 0x01012000, 0x04a007df, 0x00800279,
- 0x06a0035e, 0x070ff02e, 0x045c0479, 0x06810973,
- 0x05308000, 0x05008000, 0x06009079, 0x04a007df,
- 0x07c00000, 0x053f2000, 0x0700c000, 0x019d8974,
- 0x07c00000, 0x033e5000, 0x0700f000, 0x0280097f,
- 0x004980e5, 0x0581807e, 0x033e5000, 0x05008000,
- 0x050f8035, 0x07a00990, 0x00017008, 0x01018009,
+ 0x050f80ff, 0x032fa00a, 0x00041032, 0x02800046,
+ 0x07780047, 0x05000700, 0x037c00ff, 0x07000500,
+ 0x058189a3, 0x05308000, 0x03019000, 0x038009a5,
+ 0x05308000, 0x01012000, 0x04a0080d, 0x01800290,
+ 0x06a00379, 0x070ff02e, 0x045c0479, 0x078109af,
+ 0x05308000, 0x05008000, 0x06009079, 0x04a0080d,
+ 0x07c00000, 0x053f2000, 0x0700c000, 0x009d89b0,
+ 0x07c00000, 0x033e5000, 0x0700f000, 0x038009bb,
+ 0x004980e5, 0x04818080, 0x033e5000, 0x05008000,
+ 0x050f8035, 0x07a009cc, 0x00017008, 0x01018009,
0x033e5000, 0x07000c00, 0x05308000, 0x07006000,
- 0x07009041, 0x04a007df, 0x033e5000, 0x07003000,
- 0x05008017, 0x07009018, 0x0249a0e5, 0x0681821f,
- 0x0380007e, 0x06600052, 0x030d60ff, 0x07f00000,
+ 0x07009041, 0x04a0080d, 0x033e5000, 0x07003000,
+ 0x05008017, 0x07009018, 0x0249a0e5, 0x07818236,
+ 0x02800080, 0x06600052, 0x030d60ff, 0x07f00000,
0x07f00000, 0x000110d0, 0x010120d1, 0x04600252,
0x030d60ff, 0x07f00000, 0x07f00000, 0x020130d0,
0x010140d1, 0x04600452, 0x030d60ff, 0x010170d4,
0x07f00000, 0x020150d0, 0x030160d1, 0x053fa83a,
0x06000008, 0x07c00000, 0x07600c41, 0x050f80ff,
0x01202003, 0x073fa00a, 0x06000001, 0x07f00000,
- 0x05601041, 0x050f80ff, 0x032fa071, 0x01800139,
- 0x002fb001, 0x038009b2, 0x012fb000, 0x02386001,
- 0x030e0000, 0x03076087, 0x069f09b5, 0x03386000,
- 0x03020000, 0x00498076, 0x04818a07, 0x00497076,
- 0x048189c1, 0x04482076, 0x048189d3, 0x02496076,
- 0x058189f6, 0x02800a04, 0x075a00ff, 0x069f09c2,
+ 0x05601041, 0x050f80ff, 0x032fa071, 0x01800141,
+ 0x002fb001, 0x038009ee, 0x012fb000, 0x02386001,
+ 0x030e0000, 0x03076087, 0x069f09f1, 0x03386000,
+ 0x03020000, 0x00498076, 0x04818a43, 0x00497076,
+ 0x048189fd, 0x04482076, 0x05818a0f, 0x02496076,
+ 0x04818a32, 0x02800a40, 0x075a00ff, 0x069f09fe,
0x03386000, 0x03010000, 0x033e6000, 0x07003000,
- 0x00492076, 0x06810a04, 0x00491076, 0x04818a04,
- 0x02490076, 0x04818a04, 0x0249a0e6, 0x078109d1,
- 0x06a00a7f, 0x028009fb, 0x0245f076, 0x02800a04,
- 0x004980e6, 0x06810a0d, 0x070ff074, 0x028609e5,
+ 0x00492076, 0x06810a40, 0x00491076, 0x04818a40,
+ 0x02490076, 0x04818a40, 0x0249a0e6, 0x06810a0d,
+ 0x07a00abb, 0x02800a37, 0x0245f076, 0x02800a40,
+ 0x004980e6, 0x06810a49, 0x070ff074, 0x03860a21,
0x070ff072, 0x05500471, 0x050f80ff, 0x002fa819,
- 0x079f09db, 0x02080001, 0x00081002, 0x01082003,
- 0x06a00a49, 0x02860a0d, 0x06a00a2c, 0x0249a0e6,
- 0x048189fb, 0x02800a04, 0x06a00a2c, 0x033e6000,
- 0x07002200, 0x030ef003, 0x018689ed, 0x033e6000,
- 0x07002e00, 0x0045807a, 0x0249a0e6, 0x068109f1,
- 0x04a007d3, 0x038009ff, 0x0648c0e6, 0x06810a04,
- 0x03386000, 0x030e0000, 0x02800580, 0x06a00a2c,
- 0x030ef003, 0x008689fb, 0x070ff074, 0x028609ea,
- 0x033e6000, 0x07002200, 0x0249a0e6, 0x06810a04,
+ 0x079f0a17, 0x02080001, 0x00081002, 0x01082003,
+ 0x06a00a85, 0x02860a49, 0x06a00a68, 0x0249a0e6,
+ 0x04818a37, 0x02800a40, 0x06a00a68, 0x033e6000,
+ 0x07002200, 0x030ef003, 0x00868a29, 0x033e6000,
+ 0x07002e00, 0x0045807a, 0x0249a0e6, 0x07810a2d,
+ 0x04a00801, 0x02800a3b, 0x0648c0e6, 0x06810a40,
+ 0x03386000, 0x030e0000, 0x0280059b, 0x06a00a68,
+ 0x030ef003, 0x00868a37, 0x070ff074, 0x02860a26,
+ 0x033e6000, 0x07002200, 0x0249a0e6, 0x06810a40,
0x03386000, 0x030e0000, 0x033e6000, 0x05008000,
- 0x03800611, 0x03386000, 0x030e0000, 0x02800029,
+ 0x03800630, 0x03386000, 0x030e0000, 0x0380002b,
0x040fd079, 0x033e6000, 0x0500a200, 0x03386000,
- 0x030e0000, 0x00800897, 0x02209a0d, 0x018007e7,
+ 0x030e0000, 0x008008cb, 0x02209a49, 0x00800815,
0x02386001, 0x030e0000, 0x06604e79, 0x050f80ff,
0x032fa009, 0x03070000, 0x06601270, 0x050f80ff,
0x053fa821, 0x06000038, 0x07f00000, 0x04601a70,
- 0x050f80ff, 0x032fa021, 0x060ff002, 0x02860a2a,
- 0x069f0a1f, 0x03080000, 0x00081001, 0x00082002,
+ 0x050f80ff, 0x032fa021, 0x060ff002, 0x03860a66,
+ 0x069f0a5b, 0x03080000, 0x00081001, 0x00082002,
0x03083003, 0x070ff087, 0x033e6000, 0x07000300,
0x03386000, 0x030e0000, 0x07c00000, 0x0045807a,
- 0x03800a27, 0x06604e79, 0x050f80ff, 0x032fa009,
+ 0x03800a63, 0x06604e79, 0x050f80ff, 0x032fa009,
0x03070000, 0x06601270, 0x050f80ff, 0x053fa822,
- 0x06000038, 0x069f0a34, 0x070ff087, 0x0149d0ff,
- 0x04818a40, 0x06000080, 0x05001081, 0x05002082,
+ 0x06000038, 0x069f0a70, 0x070ff087, 0x0149d0ff,
+ 0x04818a7c, 0x06000080, 0x05001081, 0x05002082,
0x06003083, 0x04601a70, 0x050f80ff, 0x032fa022,
0x07c00000, 0x0131ef00, 0x0700000f, 0x070ff087,
- 0x0149d0ff, 0x06810a34, 0x0742001e, 0x05818a42,
- 0x050fd0ff, 0x02800a40, 0x07420074, 0x06810a5e,
- 0x02400073, 0x060ff038, 0x00540473, 0x03d00a60,
+ 0x0149d0ff, 0x06810a70, 0x0742001e, 0x05818a7e,
+ 0x050fd0ff, 0x02800a7c, 0x07420074, 0x07810a9a,
+ 0x02400073, 0x060ff038, 0x00540473, 0x03d00a9c,
0x05600272, 0x050f80ff, 0x032fa009, 0x030ef000,
- 0x02860a70, 0x01072000, 0x05601000, 0x050f80ff,
- 0x032fa009, 0x03681e00, 0x076c14ff, 0x04818a70,
+ 0x03860aac, 0x01072000, 0x05601000, 0x050f80ff,
+ 0x032fa009, 0x03681e00, 0x076c14ff, 0x05818aac,
0x02073038, 0x05271009, 0x07c00000, 0x022ff001,
- 0x02800a5d, 0x03800a66, 0x02800a68, 0x03800a6a,
- 0x03800a6c, 0x02800a6e, 0x02800a4f, 0x05271009,
- 0x02800a5d, 0x0527100c, 0x02800a5d, 0x0527100f,
- 0x02800a5d, 0x05271012, 0x02800a5d, 0x04271015,
- 0x02800a5d, 0x032ff000, 0x02800a5d, 0x02386001,
- 0x030e0000, 0x05001087, 0x069f0a75, 0x00494001,
- 0x07810a7b, 0x03386000, 0x030e0000, 0x07c00000,
+ 0x03800a99, 0x02800aa2, 0x02800aa4, 0x03800aa6,
+ 0x02800aa8, 0x03800aaa, 0x03800a8b, 0x05271009,
+ 0x03800a99, 0x0527100c, 0x03800a99, 0x0527100f,
+ 0x03800a99, 0x05271012, 0x03800a99, 0x04271015,
+ 0x03800a99, 0x032ff000, 0x03800a99, 0x02386001,
+ 0x030e0000, 0x05001087, 0x079f0ab1, 0x00494001,
+ 0x07810ab7, 0x03386000, 0x030e0000, 0x07c00000,
0x03386000, 0x03010000, 0x033e6000, 0x07003000,
- 0x00208080, 0x0301a087, 0x0049401a, 0x04818a89,
- 0x0049701a, 0x05818a9f, 0x06420008, 0x04818a80,
- 0x0760031e, 0x00208080, 0x0049d01a, 0x07810a90,
- 0x06420008, 0x04818a80, 0x0760031d, 0x00208080,
- 0x02800a80, 0x00208070, 0x0301a087, 0x0049401a,
- 0x06810a80, 0x01208060, 0x0301a087, 0x0049401a,
- 0x06810a80, 0x06a00a2c, 0x033e6000, 0x07002200,
- 0x069f0a9b, 0x03386000, 0x030e0000, 0x07c00000,
- 0x06a00a2c, 0x02800a9b, 0xe2cab9fe, 0x02800004,
- 0x00000000, 0x00008000, 0x00000703, 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, 0x01a18536, 0x079a0053, 0x05908018,
- 0x010170e1, 0x03640a17, 0x0482803d, 0x070ff017,
- 0x02d0002a, 0x02800032, 0x02800034, 0x02800037,
- 0x0380003a, 0x0280003d, 0x0280003d, 0x0280003d,
- 0x0280003d, 0x03e00000, 0x03800018, 0x04908034,
- 0x030160e1, 0x0380003f, 0x04908037, 0x030150e1,
- 0x0380003f, 0x0590803a, 0x010140e1, 0x0380003f,
- 0x060fc013, 0x06a006f4, 0x03800018, 0x014940e4,
- 0x00a18043, 0x03800024, 0x02681e0d, 0x050fb0ff,
- 0x04600875, 0x050f80ff, 0x053fa809, 0x06000001,
- 0x05488003, 0x04818052, 0x0400800d, 0x0120d000,
- 0x013e4000, 0x05000200, 0x06009075, 0x04002076,
- 0x06a006e0, 0x07c00000, 0x000170e3, 0x050fe017,
- 0x05878059, 0x0547f417, 0x0301f0ff, 0x01800235,
- 0x054bc417, 0x050fb0ff, 0x03640aff, 0x04828061,
- 0x0179fe17, 0x070fffff, 0x030750ff, 0x01800472,
- 0x050fd017, 0x06a006f4, 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, 0x05a001a0, 0x07781817, 0x05000200,
- 0x037c00ff, 0x05000200, 0x0581012e, 0x078b0084,
- 0x03385000, 0x03020000, 0x07780017, 0x0043dc07,
- 0x078181e2, 0x056c0478, 0x05810147, 0x056c0278,
- 0x07810090, 0x05278000, 0x0180012e, 0x05278000,
- 0x07483017, 0x04810131, 0x05482017, 0x04810138,
- 0x0448b076, 0x0681811c, 0x06601875, 0x050f80ff,
- 0x073fa022, 0x0600003e, 0x06000080, 0x05001081,
- 0x05002082, 0x06003083, 0x00683e76, 0x076c0aff,
- 0x048180a7, 0x05004084, 0x04602075, 0x050f80ff,
- 0x022fa02a, 0x038000aa, 0x04602075, 0x050f80ff,
- 0x032fa022, 0x04487076, 0x0581011b, 0x04604675,
- 0x050f80ff, 0x032fa009, 0x03680600, 0x050010ff,
- 0x056c02ff, 0x058180f3, 0x07000090, 0x074b0000,
- 0x050fe000, 0x038600ee, 0x0560027b, 0x050f80ff,
- 0x032fa009, 0x07f00000, 0x07601400, 0x050f80ff,
- 0x032fa009, 0x07f00000, 0x074b0000, 0x070ff08d,
- 0x0179feff, 0x070000ff, 0x055c0400, 0x078100f3,
- 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,
- 0x008001ea, 0x04603875, 0x050f80ff, 0x05002071,
- 0x073fa00a, 0x06000001, 0x066c0001, 0x06818115,
- 0x05482017, 0x04810115, 0x070ff09a, 0x017910ff,
- 0x03088888, 0x057d10ff, 0x03088888, 0x04810115,
- 0x070ff09a, 0x045a0201, 0x070ff09a, 0x045c0401,
- 0x048180fd, 0x050020ff, 0x060000fb, 0x06483001,
- 0x07818109, 0x00680e01, 0x055c0400, 0x0481010e,
- 0x004a4001, 0x02400002, 0x046c0e02, 0x06818104,
- 0x00800115, 0x040fd002, 0x052e400c, 0x040080fb,
- 0x046a6108, 0x06009075, 0x04002076, 0x06a006e0,
- 0x04603e75, 0x050f80ff, 0x053fa842, 0x06000045,
- 0x048b0119, 0x02085013, 0x05278000, 0x02075013,
- 0x060ff0fb, 0x00d0011f, 0x01800124, 0x00800126,
- 0x01800128, 0x0080012a, 0x0080012c, 0x062d0020,
- 0x0180012e, 0x062d0080, 0x0180012e, 0x052d0200,
- 0x0180012e, 0x052d0800, 0x0180012e, 0x033d0000,
- 0x06000002, 0x03920024, 0x0584801d, 0x02800023,
- 0x040fe07f, 0x00860140, 0x05a00160, 0x0192012e,
- 0x040fe07f, 0x07a68160, 0x0180012e, 0x0760187b,
- 0x050f80ff, 0x032fa009, 0x0744f000, 0x0760187b,
- 0x050f80ff, 0x032fa00a, 0x02800097, 0x052e400c,
- 0x040080fb, 0x046aa108, 0x06009075, 0x04002076,
- 0x06a006e0, 0x0180012e, 0x04278001, 0x05482017,
- 0x04810154, 0x048b014a, 0x060ff086, 0x0349f0ff,
- 0x0581807b, 0x07483017, 0x04810151, 0x050fd0ff,
- 0x040fe07f, 0x07a68160, 0x0180012e, 0x05004084,
- 0x05a00217, 0x0192012e, 0x070ff07d, 0x0450047c,
- 0x056004ff, 0x050f80ff, 0x032fa009, 0x070ff000,
- 0x00540479, 0x030790ff, 0x00800138, 0x04487076,
- 0x04810168, 0x04605875, 0x050f80ff, 0x032fa009,
- 0x060ff079, 0x01540400, 0x0180016a, 0x060ff079,
- 0x0054047a, 0x05820199, 0x05810199, 0x070ff07d,
- 0x0450047c, 0x050f80ff, 0x002fa819, 0x048b0170,
- 0x02080001, 0x00081002, 0x01082003, 0x058b0174,
- 0x04487076, 0x0481017a, 0x02385001, 0x03010000,
- 0x0080017c, 0x03385000, 0x03010000, 0x03400078,
- 0x070ff003, 0x04500479, 0x030790ff, 0x0340007e,
- 0x0642007f, 0x05810199, 0x070ff07e, 0x050f80ff,
- 0x032fa009, 0x050fe000, 0x02868198, 0x070ff07d,
- 0x056002ff, 0x050f80ff, 0x032fa009, 0x0107d000,
- 0x0186019a, 0x0560107d, 0x050f80ff, 0x032fa009,
- 0x03681e00, 0x0550041b, 0x050f80ff, 0x032fa009,
- 0x0107e000, 0x070ff07e, 0x01800184, 0x0307c000,
- 0x07c00000, 0x052e400c, 0x040080fb, 0x046aa108,
- 0x06009075, 0x04002076, 0x028006e0, 0x060ff075,
- 0x008601e0, 0x060ff073, 0x00540419, 0x058201b7,
- 0x058101c3, 0x050010ff, 0x00202010, 0x00642001,
- 0x068281ab, 0x04002001, 0x040f8073, 0x024a3c02,
- 0x017a02ff, 0x06000c98, 0x070fa0ff, 0x060ff002,
- 0x06500073, 0x03610072, 0x045c0473, 0x078181c6,
- 0x03073072, 0x018001c6, 0x036100ff, 0x050010ff,
- 0x03610072, 0x00540473, 0x057dfeff, 0x07ffffff,
- 0x01400203, 0x00202010, 0x01642003, 0x068281ab,
- 0x05002003, 0x008001ab, 0x04002013, 0x04001013,
- 0x01294000, 0x07480077, 0x078181e1, 0x06604e75,
- 0x050f80ff, 0x053fa809, 0x06000001, 0x07f00000,
- 0x07602203, 0x050f80ff, 0x053fa809, 0x06000001,
- 0x05481003, 0x078181dd, 0x060ff002, 0x04500401,
- 0x016480ff, 0x078281e1, 0x07440077, 0x040080fb,
- 0x006b6108, 0x06009075, 0x07a006db, 0x018001e1,
- 0x060ff002, 0x045c0401, 0x078181e1, 0x01294000,
- 0x07c00000, 0x040fd075, 0x050fd017, 0x060ff086,
- 0x077800ff, 0x07000060, 0x037c00ff, 0x07000060,
- 0x078181e4, 0x04487076, 0x04810201, 0x07780017,
- 0x0243d807, 0x06818201, 0x06601875, 0x050f80ff,
- 0x073fa022, 0x0600003e, 0x0249a076, 0x078181fa,
- 0x058b01f5, 0x04603e75, 0x050f80ff, 0x053fa842,
- 0x06000045, 0x052e400c, 0x040080fb, 0x026b4108,
- 0x06009075, 0x04002076, 0x06a006e0, 0x03800024,
- 0x06601875, 0x050f80ff, 0x073fa022, 0x0600003e,
- 0x052e400c, 0x04600875, 0x050f80ff, 0x053fa809,
- 0x06000001, 0x05488003, 0x05810211, 0x0400d0fb,
- 0x066a810d, 0x013e4000, 0x07000300, 0x03800024,
- 0x040080fb, 0x066a8108, 0x06009075, 0x04002076,
- 0x06a006e0, 0x03800024, 0x0240007f, 0x0742007e,
- 0x050f807e, 0x032fa009, 0x050fe000, 0x02868231,
- 0x070ff07d, 0x055c047b, 0x04810226, 0x0760007d,
- 0x050f80ff, 0x032fa009, 0x050fe000, 0x02868226,
- 0x070ff07b, 0x0107d0ff, 0x0560107d, 0x050f80ff,
- 0x032fa009, 0x03681e00, 0x0450041c, 0x0107e0ff,
- 0x050f80ff, 0x032fa009, 0x050fe000, 0x01860233,
- 0x0307c000, 0x07c00000, 0x040fd075, 0x028006f4,
- 0x0460081f, 0x050f80ff, 0x032fa039, 0x01021000,
- 0x03020005, 0x01018006, 0x01683e21, 0x00d0023d,
- 0x0080025d, 0x018002f5, 0x0280032f, 0x038003d8,
- 0x00800261, 0x0080025d, 0x0080025d, 0x0080025d,
+ 0x04008051, 0x00610108, 0x0301a087, 0x0049401a,
+ 0x05818ac6, 0x0049701a, 0x04818adc, 0x06420008,
+ 0x05818abd, 0x0760031e, 0x00610108, 0x0049d01a,
+ 0x06810acd, 0x06420008, 0x05818abd, 0x0760031d,
+ 0x00610108, 0x03800abd, 0x00208070, 0x0301a087,
+ 0x0049401a, 0x07810abd, 0x01208060, 0x0301a087,
+ 0x0049401a, 0x07810abd, 0x06a00a68, 0x033e6000,
+ 0x07002200, 0x079f0ad8, 0x03386000, 0x030e0000,
+ 0x07c00000, 0x06a00a68, 0x03800ad8, 0x8e579a58,
+ 0x02800004, 0x00000000, 0x00008000, 0x0000070b,
+ 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, 0x00a1853d, 0x079a0053,
+ 0x05908018, 0x010170e1, 0x03640a17, 0x0482803d,
+ 0x070ff017, 0x02d0002a, 0x02800032, 0x02800034,
+ 0x02800037, 0x0380003a, 0x0280003d, 0x0280003d,
+ 0x0280003d, 0x0280003d, 0x03e00000, 0x03800018,
+ 0x04908034, 0x030160e1, 0x0380003f, 0x04908037,
+ 0x030150e1, 0x0380003f, 0x0590803a, 0x010140e1,
+ 0x0380003f, 0x060fc013, 0x06a006fb, 0x03800018,
+ 0x014940e4, 0x00a18043, 0x03800024, 0x02681e0d,
+ 0x050fb0ff, 0x04600875, 0x050f80ff, 0x053fa809,
+ 0x06000001, 0x05488003, 0x04818052, 0x0400800d,
+ 0x0120d000, 0x013e4000, 0x05000200, 0x06009075,
+ 0x04002076, 0x07a006e7, 0x07c00000, 0x000170e3,
+ 0x050fe017, 0x05878059, 0x0547f417, 0x0301f0ff,
+ 0x01800235, 0x054bc417, 0x050fb0ff, 0x03640aff,
+ 0x04828061, 0x0179fe17, 0x070fffff, 0x030750ff,
+ 0x01800472, 0x050fd017, 0x06a006fb, 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, 0x05a001a0, 0x07781817,
+ 0x05000200, 0x037c00ff, 0x05000200, 0x0581012e,
+ 0x078b0084, 0x03385000, 0x03020000, 0x07780017,
+ 0x0043dc07, 0x078181e2, 0x056c0478, 0x05810147,
+ 0x056c0278, 0x07810090, 0x05278000, 0x0180012e,
+ 0x05278000, 0x07483017, 0x04810131, 0x05482017,
+ 0x04810138, 0x0448b076, 0x0681811c, 0x06601875,
+ 0x050f80ff, 0x073fa022, 0x0600003e, 0x06000080,
+ 0x05001081, 0x05002082, 0x06003083, 0x00683e76,
+ 0x076c0aff, 0x048180a7, 0x05004084, 0x04602075,
+ 0x050f80ff, 0x022fa02a, 0x038000aa, 0x04602075,
+ 0x050f80ff, 0x032fa022, 0x04487076, 0x0581011b,
+ 0x04604675, 0x050f80ff, 0x032fa009, 0x03680600,
+ 0x050010ff, 0x056c02ff, 0x058180f3, 0x07000090,
+ 0x074b0000, 0x050fe000, 0x038600ee, 0x0560027b,
+ 0x050f80ff, 0x032fa009, 0x07f00000, 0x07601400,
+ 0x050f80ff, 0x032fa009, 0x07f00000, 0x074b0000,
+ 0x070ff08d, 0x0179feff, 0x070000ff, 0x055c0400,
+ 0x078100f3, 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, 0x008001ea, 0x04603875, 0x050f80ff,
+ 0x05002071, 0x073fa00a, 0x06000001, 0x066c0001,
+ 0x06818115, 0x05482017, 0x04810115, 0x070ff09a,
+ 0x017910ff, 0x03088888, 0x057d10ff, 0x03088888,
+ 0x04810115, 0x070ff09a, 0x045a0201, 0x070ff09a,
+ 0x045c0401, 0x048180fd, 0x050020ff, 0x060000fb,
+ 0x06483001, 0x07818109, 0x00680e01, 0x055c0400,
+ 0x0481010e, 0x004a4001, 0x02400002, 0x046c0e02,
+ 0x06818104, 0x00800115, 0x040fd002, 0x052e400c,
+ 0x040080fb, 0x046a6108, 0x06009075, 0x04002076,
+ 0x07a006e7, 0x04603e75, 0x050f80ff, 0x053fa842,
+ 0x06000045, 0x048b0119, 0x02085013, 0x05278000,
+ 0x02075013, 0x060ff0fb, 0x00d0011f, 0x01800124,
+ 0x00800126, 0x01800128, 0x0080012a, 0x0080012c,
+ 0x062d0020, 0x0180012e, 0x062d0080, 0x0180012e,
+ 0x052d0200, 0x0180012e, 0x052d0800, 0x0180012e,
+ 0x033d0000, 0x06000002, 0x03920024, 0x0584801d,
+ 0x02800023, 0x040fe07f, 0x00860140, 0x05a00160,
+ 0x0192012e, 0x040fe07f, 0x07a68160, 0x0180012e,
+ 0x0760187b, 0x050f80ff, 0x032fa009, 0x0744f000,
+ 0x0760187b, 0x050f80ff, 0x032fa00a, 0x02800097,
+ 0x052e400c, 0x040080fb, 0x046aa108, 0x06009075,
+ 0x04002076, 0x07a006e7, 0x0180012e, 0x04278001,
+ 0x05482017, 0x04810154, 0x048b014a, 0x060ff086,
+ 0x0349f0ff, 0x0581807b, 0x07483017, 0x04810151,
+ 0x050fd0ff, 0x040fe07f, 0x07a68160, 0x0180012e,
+ 0x05004084, 0x05a00217, 0x0192012e, 0x070ff07d,
+ 0x0450047c, 0x056004ff, 0x050f80ff, 0x032fa009,
+ 0x070ff000, 0x00540479, 0x030790ff, 0x00800138,
+ 0x04487076, 0x04810168, 0x04605875, 0x050f80ff,
+ 0x032fa009, 0x060ff079, 0x01540400, 0x0180016a,
+ 0x060ff079, 0x0054047a, 0x05820199, 0x05810199,
+ 0x070ff07d, 0x0450047c, 0x050f80ff, 0x002fa819,
+ 0x048b0170, 0x02080001, 0x00081002, 0x01082003,
+ 0x058b0174, 0x04487076, 0x0481017a, 0x02385001,
+ 0x03010000, 0x0080017c, 0x03385000, 0x03010000,
+ 0x03400078, 0x070ff003, 0x04500479, 0x030790ff,
+ 0x0340007e, 0x0642007f, 0x05810199, 0x070ff07e,
+ 0x050f80ff, 0x032fa009, 0x050fe000, 0x02868198,
+ 0x070ff07d, 0x056002ff, 0x050f80ff, 0x032fa009,
+ 0x0107d000, 0x0186019a, 0x0560107d, 0x050f80ff,
+ 0x032fa009, 0x03681e00, 0x0550041b, 0x050f80ff,
+ 0x032fa009, 0x0107e000, 0x070ff07e, 0x01800184,
+ 0x0307c000, 0x07c00000, 0x052e400c, 0x040080fb,
+ 0x046aa108, 0x06009075, 0x04002076, 0x038006e7,
+ 0x060ff075, 0x008601e0, 0x060ff073, 0x00540419,
+ 0x058201b7, 0x058101c3, 0x050010ff, 0x00202010,
+ 0x00642001, 0x068281ab, 0x04002001, 0x040f8073,
+ 0x024a3c02, 0x017a02ff, 0x06000c98, 0x070fa0ff,
+ 0x060ff002, 0x06500073, 0x03610072, 0x045c0473,
+ 0x078181c6, 0x03073072, 0x018001c6, 0x036100ff,
+ 0x050010ff, 0x03610072, 0x00540473, 0x057dfeff,
+ 0x07ffffff, 0x01400203, 0x00202010, 0x01642003,
+ 0x068281ab, 0x05002003, 0x008001ab, 0x04002013,
+ 0x04001013, 0x01294000, 0x07480077, 0x078181e1,
+ 0x06604e75, 0x050f80ff, 0x053fa809, 0x06000001,
+ 0x07f00000, 0x07602203, 0x050f80ff, 0x053fa809,
+ 0x06000001, 0x05481003, 0x078181dd, 0x060ff002,
+ 0x04500401, 0x016480ff, 0x078281e1, 0x07440077,
+ 0x040080fb, 0x006b6108, 0x06009075, 0x07a006e2,
+ 0x018001e1, 0x060ff002, 0x045c0401, 0x078181e1,
+ 0x01294000, 0x07c00000, 0x040fd075, 0x050fd017,
+ 0x060ff086, 0x077800ff, 0x07000060, 0x037c00ff,
+ 0x07000060, 0x078181e4, 0x04487076, 0x04810201,
+ 0x07780017, 0x0243d807, 0x06818201, 0x06601875,
+ 0x050f80ff, 0x073fa022, 0x0600003e, 0x0249a076,
+ 0x078181fa, 0x058b01f5, 0x04603e75, 0x050f80ff,
+ 0x053fa842, 0x06000045, 0x052e400c, 0x040080fb,
+ 0x026b4108, 0x06009075, 0x04002076, 0x07a006e7,
+ 0x03800024, 0x06601875, 0x050f80ff, 0x073fa022,
+ 0x0600003e, 0x052e400c, 0x04600875, 0x050f80ff,
+ 0x053fa809, 0x06000001, 0x05488003, 0x05810211,
+ 0x0400d0fb, 0x066a810d, 0x013e4000, 0x07000300,
+ 0x03800024, 0x040080fb, 0x066a8108, 0x06009075,
+ 0x04002076, 0x07a006e7, 0x03800024, 0x0240007f,
+ 0x0742007e, 0x050f807e, 0x032fa009, 0x050fe000,
+ 0x02868231, 0x070ff07d, 0x055c047b, 0x04810226,
+ 0x0760007d, 0x050f80ff, 0x032fa009, 0x050fe000,
+ 0x02868226, 0x070ff07b, 0x0107d0ff, 0x0560107d,
+ 0x050f80ff, 0x032fa009, 0x03681e00, 0x0450041c,
+ 0x0107e0ff, 0x050f80ff, 0x032fa009, 0x050fe000,
+ 0x01860233, 0x0307c000, 0x07c00000, 0x040fd075,
+ 0x028006fb, 0x0460081f, 0x050f80ff, 0x032fa039,
+ 0x01021000, 0x03020005, 0x01018006, 0x01683e21,
+ 0x00d0023d, 0x0080025d, 0x018002f5, 0x0280032f,
+ 0x038003d8, 0x00800261, 0x0080025d, 0x0080025d,
0x0080025d, 0x0080025d, 0x0080025d, 0x0080025d,
- 0x0080025d, 0x0080025d, 0x00800413, 0x0080025d,
+ 0x0080025d, 0x0080025d, 0x0080025d, 0x00800413,
0x0080025d, 0x0080025d, 0x0080025d, 0x0080025d,
0x0080025d, 0x0080025d, 0x0080025d, 0x0080025d,
0x0080025d, 0x0080025d, 0x0080025d, 0x0080025d,
0x0080025d, 0x0080025d, 0x0080025d, 0x0080025d,
- 0x050fd0ff, 0x06a006f4, 0x03800018, 0x0380001d,
- 0x01494021, 0x06818434, 0x0400701f, 0x05a00466,
- 0x007a0101, 0x07060000, 0x04601c20, 0x050f80ff,
- 0x053fa809, 0x07000003, 0x04484007, 0x048102b9,
- 0x06485007, 0x048102b9, 0x04601020, 0x050f80ff,
- 0x073fa009, 0x07000003, 0x0769ff06, 0x076c3006,
- 0x04810289, 0x056cd006, 0x04810289, 0x04601c20,
- 0x050f80ff, 0x053fa809, 0x07000003, 0x06780007,
- 0x070000ff, 0x075a0005, 0x04601020, 0x050f80ff,
- 0x053fa809, 0x07000003, 0x0469fe07, 0x05780105,
- 0x07ffff00, 0x075a0005, 0x030b6005, 0x018002a3,
- 0x04601c20, 0x050f80ff, 0x053fa809, 0x07000003,
- 0x00464007, 0x02465007, 0x07f00000, 0x04601c20,
- 0x050f80ff, 0x053fa80a, 0x07000003, 0x07f00000,
+ 0x0080025d, 0x050fd0ff, 0x06a006fb, 0x03800018,
+ 0x0380001d, 0x01494021, 0x06818434, 0x0400701f,
+ 0x05a00466, 0x007a0101, 0x07060000, 0x04601c20,
+ 0x050f80ff, 0x053fa809, 0x07000003, 0x04484007,
+ 0x048102b9, 0x06485007, 0x048102b9, 0x04601020,
+ 0x050f80ff, 0x073fa009, 0x07000003, 0x0769ff06,
+ 0x076c3006, 0x04810289, 0x056cd006, 0x04810289,
0x04601c20, 0x050f80ff, 0x053fa809, 0x07000003,
- 0x07f00000, 0x07f00000, 0x04601620, 0x050f80ff,
- 0x053fa809, 0x07000003, 0x05780105, 0x07ffff00,
- 0x044b0407, 0x075a0005, 0x0460041f, 0x050f80ff,
- 0x053fa80a, 0x06000002, 0x07f00000, 0x0460041f,
- 0x050f80ff, 0x053fa809, 0x07000003, 0x07303000,
- 0x06008280, 0x0460081f, 0x050f80ff, 0x053fa809,
- 0x07000003, 0x007a0107, 0x03400000, 0x0460081f,
- 0x050f80ff, 0x053fa80a, 0x07000003, 0x018002bb,
- 0x07303000, 0x07008290, 0x03496021, 0x068182bf,
- 0x06006013, 0x018002c6, 0x02400010, 0x048102bf,
- 0x06006010, 0x0660361f, 0x050f80ff, 0x073fa00a,
- 0x07000003, 0x072d0003, 0x039b82c6, 0x069382cb,
+ 0x06780007, 0x070000ff, 0x075a0005, 0x04601020,
+ 0x050f80ff, 0x053fa809, 0x07000003, 0x0469fe07,
+ 0x05780105, 0x07ffff00, 0x075a0005, 0x030b6005,
+ 0x018002a3, 0x04601c20, 0x050f80ff, 0x053fa809,
+ 0x07000003, 0x00464007, 0x02465007, 0x07f00000,
+ 0x04601c20, 0x050f80ff, 0x053fa80a, 0x07000003,
+ 0x07f00000, 0x04601c20, 0x050f80ff, 0x053fa809,
+ 0x07000003, 0x07f00000, 0x07f00000, 0x04601620,
+ 0x050f80ff, 0x053fa809, 0x07000003, 0x05780105,
+ 0x07ffff00, 0x044b0407, 0x075a0005, 0x0460041f,
+ 0x050f80ff, 0x053fa80a, 0x06000002, 0x07f00000,
+ 0x0460041f, 0x050f80ff, 0x053fa809, 0x07000003,
+ 0x07303000, 0x06008280, 0x0460081f, 0x050f80ff,
+ 0x053fa809, 0x07000003, 0x007a0107, 0x03400000,
+ 0x0460081f, 0x050f80ff, 0x053fa80a, 0x07000003,
+ 0x018002bb, 0x07303000, 0x07008290, 0x03496021,
+ 0x068182bf, 0x06006013, 0x018002c6, 0x02400010,
+ 0x048102bf, 0x06006010, 0x0660361f, 0x050f80ff,
+ 0x073fa00a, 0x07000003, 0x072d0003, 0x039b82c6,
+ 0x069382cb, 0x073aa000, 0x06000004, 0x010b1000,
+ 0x000b2001, 0x020b3002, 0x010b4003, 0x020b5004,
+ 0x030b6005, 0x010b7006, 0x069382e6, 0x07602818,
+ 0x050f80ff, 0x012fa809, 0x04002001, 0x0279ff01,
+ 0x070000ff, 0x007a0101, 0x07500000, 0x000b8001,
+ 0x04780102, 0x07ffff00, 0x020b9002, 0x009702e3,
+ 0x063aa020, 0x0700001e, 0x008002ec, 0x063aa020,
+ 0x06000016, 0x008002ec, 0x029782ea, 0x063aa020,
+ 0x07000012, 0x008002ec, 0x063aa020, 0x0600001a,
+ 0x070ff0f6, 0x03687eff, 0x068182ec, 0x06601820,
+ 0x050f10ff, 0x063f3008, 0x06000008, 0x062d0002,
+ 0x01800260, 0x04007013, 0x05a00466, 0x007a0101,
+ 0x07050000, 0x07303000, 0x07008890, 0x074d0005,
+ 0x06006013, 0x072d0003, 0x029b82fd, 0x04938302,
0x073aa000, 0x06000004, 0x010b1000, 0x000b2001,
0x020b3002, 0x010b4003, 0x020b5004, 0x030b6005,
- 0x010b7006, 0x069382e6, 0x07602818, 0x050f80ff,
+ 0x010b7006, 0x04938316, 0x07602818, 0x050f80ff,
0x012fa809, 0x04002001, 0x0279ff01, 0x070000ff,
0x007a0101, 0x07500000, 0x000b8001, 0x04780102,
- 0x07ffff00, 0x020b9002, 0x009702e3, 0x063aa020,
- 0x0700001e, 0x008002ec, 0x063aa020, 0x06000016,
- 0x008002ec, 0x029782ea, 0x063aa020, 0x07000012,
- 0x008002ec, 0x063aa020, 0x0600001a, 0x070ff0f6,
- 0x03687eff, 0x068182ec, 0x06601820, 0x050f10ff,
- 0x063f3008, 0x06000008, 0x062d0002, 0x01800260,
- 0x04007013, 0x05a00466, 0x007a0101, 0x07050000,
- 0x07303000, 0x07008890, 0x074d0005, 0x06006013,
- 0x072d0003, 0x029b82fd, 0x04938302, 0x073aa000,
+ 0x07ffff00, 0x020b9002, 0x06602220, 0x050f80ff,
+ 0x022fa019, 0x04001002, 0x04002013, 0x0660281f,
+ 0x050f80ff, 0x032fa00a, 0x05938328, 0x0500b01e,
+ 0x0660050b, 0x040f800b, 0x022fa01a, 0x073aa00c,
+ 0x06000016, 0x07300003, 0x06000008, 0x01800409,
+ 0x050f801e, 0x022fa01a, 0x073aa00c, 0x07000012,
+ 0x07300003, 0x06000008, 0x01800409, 0x04007013,
+ 0x05a00466, 0x007a0101, 0x03070000, 0x04602c1f,
+ 0x050f80ff, 0x073fa009, 0x06000004, 0x02499008,
+ 0x0781033c, 0x07303000, 0x07008890, 0x0280033e,
+ 0x07303000, 0x04008980, 0x05007003, 0x04601620,
+ 0x050f80ff, 0x073fa009, 0x07000003, 0x03499006,
+ 0x0781034e, 0x0379ff05, 0x070000ff, 0x06602220,
+ 0x050f80ff, 0x073fa009, 0x07000003, 0x07780006,
+ 0x07ffff00, 0x075a0005, 0x074d0005, 0x06006013,
+ 0x072d0003, 0x019b8350, 0x05938355, 0x073aa000,
0x06000004, 0x010b1000, 0x000b2001, 0x020b3002,
0x010b4003, 0x020b5004, 0x030b6005, 0x010b7006,
- 0x04938316, 0x07602818, 0x050f80ff, 0x012fa809,
+ 0x0493836b, 0x07602818, 0x050f80ff, 0x012fa809,
0x04002001, 0x0279ff01, 0x070000ff, 0x007a0101,
0x07500000, 0x000b8001, 0x04780102, 0x07ffff00,
- 0x020b9002, 0x06602220, 0x050f80ff, 0x022fa019,
- 0x04001002, 0x04002013, 0x0660281f, 0x050f80ff,
- 0x032fa00a, 0x05938328, 0x0500b01e, 0x0660050b,
- 0x040f800b, 0x022fa01a, 0x073aa00c, 0x06000016,
- 0x07300003, 0x06000008, 0x01800409, 0x050f801e,
- 0x022fa01a, 0x073aa00c, 0x07000012, 0x07300003,
- 0x06000008, 0x01800409, 0x04007013, 0x05a00466,
- 0x007a0101, 0x03070000, 0x04602c1f, 0x050f80ff,
- 0x073fa009, 0x06000004, 0x02499008, 0x0781033c,
- 0x07303000, 0x07008890, 0x0280033e, 0x07303000,
- 0x04008980, 0x05007003, 0x04601620, 0x050f80ff,
- 0x073fa009, 0x07000003, 0x03499006, 0x0781034e,
- 0x0379ff05, 0x070000ff, 0x06602220, 0x050f80ff,
- 0x073fa009, 0x07000003, 0x07780006, 0x07ffff00,
- 0x075a0005, 0x074d0005, 0x06006013, 0x072d0003,
- 0x019b8350, 0x05938355, 0x073aa000, 0x06000004,
- 0x010b1000, 0x000b2001, 0x020b3002, 0x010b4003,
- 0x020b5004, 0x030b6005, 0x010b7006, 0x0493836b,
- 0x07602818, 0x050f80ff, 0x012fa809, 0x04002001,
- 0x0279ff01, 0x070000ff, 0x007a0101, 0x07500000,
- 0x000b8001, 0x04780102, 0x07ffff00, 0x020b9002,
- 0x0500b01e, 0x0660050b, 0x04601c20, 0x050f80ff,
- 0x032fa021, 0x07f00000, 0x064b0002, 0x02499008,
- 0x06810373, 0x0644c002, 0x054b0400, 0x050040ff,
- 0x06698104, 0x0581838b, 0x06000013, 0x04001013,
- 0x04780102, 0x06000010, 0x06003013, 0x04004013,
- 0x06005013, 0x06006013, 0x04007013, 0x00644015,
- 0x07820384, 0x04448002, 0x02205008, 0x05938387,
- 0x040f800b, 0x03800388, 0x050f801e, 0x032fa042,
- 0x04008015, 0x038003cc, 0x046c8004, 0x0581839c,
- 0x01208018, 0x06780002, 0x07000003, 0x0581839f,
- 0x06003001, 0x06000013, 0x04001013, 0x04004013,
- 0x06005013, 0x05938399, 0x040f800b, 0x0380039a,
- 0x050f801e, 0x022fa032, 0x038003cc, 0x040fd01f,
- 0x06a006f4, 0x03800018, 0x0379ff03, 0x070000ff,
- 0x04488002, 0x078103a6, 0x070ff003, 0x04500408,
- 0x050080ff, 0x0379ff00, 0x070000ff, 0x06489002,
- 0x068103ad, 0x070ff000, 0x04500408, 0x050080ff,
- 0x07005003, 0x05004000, 0x06003001, 0x06000013,
- 0x04001013, 0x049383b5, 0x040f800b, 0x028003b6,
- 0x050f801e, 0x022fa032, 0x07f00000, 0x06602420,
- 0x050f80ff, 0x022fa031, 0x07f00000, 0x049383bf,
- 0x06600c0b, 0x038003c0, 0x07600c1e, 0x050f80ff,
- 0x022fa032, 0x02680608, 0x078103cc, 0x016408ff,
- 0x057dfeff, 0x07ffffff, 0x034000ff, 0x045a0407,
- 0x010b40ff, 0x06600908, 0x0669f908, 0x049383d0,
- 0x027a0008, 0x05000160, 0x038003d2, 0x027a0008,
- 0x04000120, 0x070aa0ff, 0x024a2408, 0x037a00ff,
- 0x06000080, 0x070000ff, 0x01800409, 0x04007013,
- 0x05a00466, 0x007a0101, 0x07030000, 0x07303000,
- 0x07008190, 0x06006013, 0x028003e0, 0x072d0003,
- 0x009b83e0, 0x049383e5, 0x073aa000, 0x06000004,
- 0x010b1000, 0x000b2001, 0x020b3002, 0x010b4003,
- 0x020b5004, 0x030b6005, 0x010b7006, 0x06938401,
+ 0x020b9002, 0x0500b01e, 0x0660050b, 0x04601c20,
+ 0x050f80ff, 0x032fa021, 0x07f00000, 0x064b0002,
+ 0x02499008, 0x06810373, 0x0644c002, 0x054b0400,
+ 0x050040ff, 0x06698104, 0x0581838b, 0x06000013,
+ 0x04001013, 0x04780102, 0x06000010, 0x06003013,
+ 0x04004013, 0x06005013, 0x06006013, 0x04007013,
+ 0x00644015, 0x07820384, 0x04448002, 0x02205008,
+ 0x05938387, 0x040f800b, 0x03800388, 0x050f801e,
+ 0x032fa042, 0x04008015, 0x038003cc, 0x046c8004,
+ 0x0581839c, 0x01208018, 0x06780002, 0x07000003,
+ 0x0581839f, 0x06003001, 0x06000013, 0x04001013,
+ 0x04004013, 0x06005013, 0x05938399, 0x040f800b,
+ 0x0380039a, 0x050f801e, 0x022fa032, 0x038003cc,
+ 0x040fd01f, 0x06a006fb, 0x03800018, 0x0379ff03,
+ 0x070000ff, 0x04488002, 0x078103a6, 0x070ff003,
+ 0x04500408, 0x050080ff, 0x0379ff00, 0x070000ff,
+ 0x06489002, 0x068103ad, 0x070ff000, 0x04500408,
+ 0x050080ff, 0x07005003, 0x05004000, 0x06003001,
+ 0x06000013, 0x04001013, 0x049383b5, 0x040f800b,
+ 0x028003b6, 0x050f801e, 0x022fa032, 0x07f00000,
+ 0x06602420, 0x050f80ff, 0x022fa031, 0x07f00000,
+ 0x049383bf, 0x06600c0b, 0x038003c0, 0x07600c1e,
+ 0x050f80ff, 0x022fa032, 0x02680608, 0x078103cc,
+ 0x016408ff, 0x057dfeff, 0x07ffffff, 0x034000ff,
+ 0x045a0407, 0x010b40ff, 0x06600908, 0x0669f908,
+ 0x049383d0, 0x027a0008, 0x05000160, 0x038003d2,
+ 0x027a0008, 0x04000120, 0x070aa0ff, 0x024a2408,
+ 0x037a00ff, 0x06000080, 0x070000ff, 0x01800409,
+ 0x04007013, 0x05a00466, 0x007a0101, 0x07030000,
+ 0x07303000, 0x07008190, 0x06006013, 0x028003e0,
+ 0x072d0003, 0x009b83e0, 0x049383e5, 0x073aa000,
+ 0x06000004, 0x010b1000, 0x000b2001, 0x020b3002,
+ 0x010b4003, 0x020b5004, 0x030b6005, 0x010b7006,
+ 0x06938401, 0x07602818, 0x050f80ff, 0x012fa809,
+ 0x04002001, 0x0279ff01, 0x070000ff, 0x007a0101,
+ 0x07500000, 0x000b8001, 0x04780102, 0x07ffff00,
+ 0x020b9002, 0x073ff000, 0x06000007, 0x029703fe,
+ 0x037a00ff, 0x06000080, 0x070aa0ff, 0x062d0002,
+ 0x01800260, 0x073ff000, 0x07000003, 0x01970406,
+ 0x037a00ff, 0x06000080, 0x070aa0ff, 0x062d0002,
+ 0x01800260, 0x070ff0f6, 0x03687eff, 0x07818409,
+ 0x0793840f, 0x040f100b, 0x00800410, 0x050f101e,
+ 0x070f3000, 0x062d0002, 0x01800260, 0x073aa000,
+ 0x06000002, 0x072d0003, 0x029b8415, 0x070ff0f6,
+ 0x036830ff, 0x07818417, 0x070ff0f6, 0x036830ff,
+ 0x0681841a, 0x0660301f, 0x070f00ff, 0x0693842f,
0x07602818, 0x050f80ff, 0x012fa809, 0x04002001,
0x0279ff01, 0x070000ff, 0x007a0101, 0x07500000,
- 0x000b8001, 0x04780102, 0x07ffff00, 0x020b9002,
- 0x073ff000, 0x06000007, 0x029703fe, 0x037a00ff,
- 0x06000080, 0x070aa0ff, 0x062d0002, 0x01800260,
- 0x073ff000, 0x07000003, 0x01970406, 0x037a00ff,
- 0x06000080, 0x070aa0ff, 0x062d0002, 0x01800260,
- 0x070ff0f6, 0x03687eff, 0x07818409, 0x0793840f,
- 0x040f100b, 0x00800410, 0x050f101e, 0x070f3000,
- 0x062d0002, 0x01800260, 0x073aa000, 0x06000002,
- 0x072d0003, 0x029b8415, 0x070ff0f6, 0x036830ff,
- 0x07818417, 0x070ff0f6, 0x036830ff, 0x0681841a,
- 0x0660301f, 0x070f00ff, 0x0693842f, 0x07602818,
- 0x050f80ff, 0x012fa809, 0x04002001, 0x0279ff01,
- 0x070000ff, 0x007a0101, 0x07500000, 0x060af001,
- 0x04780102, 0x07ffff00, 0x020b0002, 0x07300c00,
- 0x07000005, 0x00800431, 0x07300c00, 0x07000005,
- 0x070f3000, 0x062d0002, 0x01800260, 0x05474021,
- 0x04602620, 0x050f80ff, 0x053fa809, 0x07000003,
- 0x06780007, 0x07ffff00, 0x0481043d, 0x03455021,
- 0x04602a20, 0x050f80ff, 0x063fa019, 0x06000002,
- 0x06003013, 0x01497021, 0x07818455, 0x04601620,
- 0x050f80ff, 0x053fa809, 0x06000001, 0x0379ff03,
- 0x070000ff, 0x07420003, 0x04600220, 0x050f80ff,
- 0x012fa809, 0x040fe001, 0x0186045a, 0x03200009,
- 0x0760141b, 0x050f80ff, 0x073fa009, 0x06000001,
- 0x04008013, 0x0660181f, 0x050f80ff, 0x022fa04a,
- 0x01800263, 0x012080c0, 0x0600901f, 0x05002021,
- 0x06a006e0, 0x01800260, 0x06489076, 0x05810463,
- 0x02200020, 0x00800464, 0x03200000, 0x06006075,
- 0x0180046c, 0x07489021, 0x0581046a, 0x03200030,
- 0x0080046b, 0x03200011, 0x0600601f, 0x07a005ac,
- 0x05600406, 0x050f80ff, 0x053fa809, 0x06000002,
- 0x07c00000, 0x04600875, 0x050f80ff, 0x032fa039,
+ 0x060af001, 0x04780102, 0x07ffff00, 0x020b0002,
+ 0x07300c00, 0x07000005, 0x00800431, 0x07300c00,
+ 0x07000005, 0x070f3000, 0x062d0002, 0x01800260,
+ 0x05474021, 0x04602620, 0x050f80ff, 0x053fa809,
+ 0x07000003, 0x06780007, 0x07ffff00, 0x0481043d,
+ 0x03455021, 0x04602a20, 0x050f80ff, 0x063fa019,
+ 0x06000002, 0x06003013, 0x01497021, 0x07818455,
+ 0x04601620, 0x050f80ff, 0x053fa809, 0x06000001,
+ 0x0379ff03, 0x070000ff, 0x07420003, 0x04600220,
+ 0x050f80ff, 0x012fa809, 0x040fe001, 0x0186045a,
+ 0x03200009, 0x0760141b, 0x050f80ff, 0x073fa009,
+ 0x06000001, 0x04008013, 0x0660181f, 0x050f80ff,
+ 0x022fa04a, 0x01800263, 0x012080c0, 0x0600901f,
+ 0x05002021, 0x07a006e7, 0x01800260, 0x06489076,
+ 0x05810463, 0x02200020, 0x00800464, 0x03200000,
+ 0x06006075, 0x0180046c, 0x07489021, 0x0581046a,
+ 0x03200030, 0x0080046b, 0x03200011, 0x0600601f,
+ 0x06a005b3, 0x05600406, 0x050f80ff, 0x053fa809,
+ 0x06000002, 0x07c00000, 0x04600875, 0x050f80ff,
+ 0x032fa039, 0x07780000, 0x02800040, 0x037c00ff,
+ 0x03800000, 0x0481047c, 0x02075013, 0x008004a4,
0x03076000, 0x0107b005, 0x01018006, 0x0448b076,
- 0x0781847e, 0x06602475, 0x050f80ff, 0x053fa811,
- 0x0700003c, 0x00077013, 0x050fe078, 0x0386849a,
- 0x04a0049e, 0x0092049d, 0x060ff0fb, 0x00d00485,
- 0x0080048a, 0x0180048d, 0x01800490, 0x01800493,
- 0x01800496, 0x072d0030, 0x029b848a, 0x0280052f,
- 0x072d00c0, 0x039b848d, 0x0280052f, 0x072d0300,
- 0x039b8490, 0x0280052f, 0x072d0c00, 0x039b8493,
- 0x0280052f, 0x033d0000, 0x07000003, 0x039b8496,
- 0x0280052f, 0x040fd075, 0x050fd078, 0x06a006f4,
- 0x0380001d, 0x048b049e, 0x03385000, 0x07030000,
+ 0x06818485, 0x06602475, 0x050f80ff, 0x053fa811,
+ 0x0700003c, 0x00077013, 0x050fe078, 0x028684a1,
+ 0x05a004a5, 0x009204a4, 0x060ff0fb, 0x00d0048c,
+ 0x00800491, 0x00800494, 0x00800497, 0x0180049a,
+ 0x0080049d, 0x072d0030, 0x029b8491, 0x03800536,
+ 0x072d00c0, 0x029b8494, 0x03800536, 0x072d0300,
+ 0x029b8497, 0x03800536, 0x072d0c00, 0x039b849a,
+ 0x03800536, 0x033d0000, 0x07000003, 0x029b849d,
+ 0x03800536, 0x040fd075, 0x050fd078, 0x06a006fb,
+ 0x0380001d, 0x058b04a5, 0x03385000, 0x07030000,
0x05600818, 0x050f80ff, 0x032fa009, 0x07f00000,
- 0x054b0400, 0x0308a0ff, 0x029884ad, 0x04693e76,
- 0x076c0aff, 0x068184ad, 0x07288200, 0x008004b0,
+ 0x054b0400, 0x0308a0ff, 0x039884b4, 0x04693e76,
+ 0x076c0aff, 0x078184b4, 0x07288200, 0x018004b7,
0x0179fe00, 0x070000ff, 0x010880ff, 0x0560087b,
0x050f80ff, 0x012fa809, 0x0609f001, 0x0448b076,
- 0x048104df, 0x05601c7b, 0x050f80ff, 0x002fa819,
- 0x02790076, 0x03010000, 0x068184d5, 0x02025001,
- 0x06483001, 0x048104d5, 0x04600475, 0x050f80ff,
+ 0x048104e6, 0x05601c7b, 0x050f80ff, 0x002fa819,
+ 0x02790076, 0x03010000, 0x068184dc, 0x02025001,
+ 0x06483001, 0x048104dc, 0x04600475, 0x050f80ff,
0x053fa809, 0x06000002, 0x07f00000, 0x054b0405,
0x05780105, 0x07ffff00, 0x075a0005, 0x050fd005,
0x040fd07a, 0x06602475, 0x050f80ff, 0x053fa811,
0x0700003c, 0x06306002, 0x05000430, 0x04600475,
- 0x050f80ff, 0x053fa812, 0x06000002, 0x008004df,
+ 0x050f80ff, 0x053fa812, 0x06000002, 0x008004e6,
0x02080002, 0x01081003, 0x064b0001, 0x00082001,
0x02083001, 0x02079001, 0x0207a001, 0x00084013,
- 0x0207f013, 0x0280051f, 0x06485076, 0x07810500,
+ 0x0207f013, 0x02800526, 0x06485076, 0x06810507,
0x02465076, 0x06601875, 0x050f80ff, 0x073fa021,
0x0600003e, 0x070ff07d, 0x0450047c, 0x050f80ff,
- 0x002fa819, 0x048b04ea, 0x02080001, 0x00081002,
- 0x01082003, 0x03079003, 0x04487076, 0x048104f8,
- 0x00498076, 0x01a18527, 0x04605875, 0x050f80ff,
- 0x032fa009, 0x03083000, 0x018004f9, 0x0208307a,
- 0x0340007e, 0x0642007f, 0x0681050e, 0x070ff07e,
- 0x05a00184, 0x0092850e, 0x02800526, 0x078b0500,
+ 0x002fa819, 0x048b04f1, 0x02080001, 0x00081002,
+ 0x01082003, 0x03079003, 0x04487076, 0x058104ff,
+ 0x00498076, 0x01a1852e, 0x04605875, 0x050f80ff,
+ 0x032fa009, 0x03083000, 0x03800500, 0x0208307a,
+ 0x0340007e, 0x0642007f, 0x06810515, 0x070ff07e,
+ 0x05a00184, 0x00928515, 0x0380052d, 0x068b0507,
0x06601875, 0x050f80ff, 0x073fa041, 0x0600003e,
- 0x07f00000, 0x04487076, 0x0781050c, 0x04605875,
+ 0x07f00000, 0x04487076, 0x06810513, 0x04605875,
0x050f80ff, 0x032fa009, 0x03083000, 0x00498076,
- 0x01a18527, 0x06602875, 0x050f80ff, 0x073fa009,
- 0x06000007, 0x0008400e, 0x04487076, 0x0681051f,
- 0x0007100e, 0x068b0516, 0x04603e75, 0x050f80ff,
- 0x053fa841, 0x06000045, 0x078b051b, 0x02385001,
- 0x03010000, 0x03800522, 0x068b051f, 0x03385000,
- 0x03010000, 0x04278001, 0x040fe07f, 0x02860526,
+ 0x01a1852e, 0x06602875, 0x050f80ff, 0x073fa009,
+ 0x06000007, 0x0008400e, 0x04487076, 0x06810526,
+ 0x0007100e, 0x078b051d, 0x04603e75, 0x050f80ff,
+ 0x053fa841, 0x06000045, 0x078b0522, 0x02385001,
+ 0x03010000, 0x02800529, 0x068b0526, 0x03385000,
+ 0x03010000, 0x04278001, 0x040fe07f, 0x0386052d,
0x01800160, 0x07c00000, 0x04094013, 0x03073072,
0x07440077, 0x040080fb, 0x006b6108, 0x06009075,
- 0x07a006db, 0x07c00000, 0x00683e76, 0x06810534,
- 0x0448d076, 0x068105df, 0x03800635, 0x07a006cf,
- 0x0080049d, 0x06000013, 0x00201001, 0x00202002,
- 0x0778aae7, 0x06000001, 0x06810585, 0x050fb000,
- 0x070ff000, 0x03d0053f, 0x03800559, 0x02800554,
- 0x0280054f, 0x0280054a, 0x03800544, 0x077800e7,
- 0x06000001, 0x07810582, 0x072e7200, 0x030190cc,
- 0x0280055d, 0x016880e7, 0x07810582, 0x042e7080,
- 0x020190cb, 0x0280055d, 0x016820e7, 0x07810582,
- 0x042e7020, 0x030190ca, 0x0280055d, 0x016808e7,
- 0x07810582, 0x042e7008, 0x030190c9, 0x0280055d,
- 0x016802e7, 0x07810582, 0x042e7002, 0x020190c8,
- 0x07480077, 0x07810582, 0x03460077, 0x060ff075,
- 0x03860582, 0x06003094, 0x0748a003, 0x05818582,
+ 0x07a006e2, 0x07c00000, 0x00683e76, 0x0681053b,
+ 0x0448d076, 0x068105e6, 0x0380063c, 0x06a006d6,
+ 0x008004a4, 0x06000013, 0x00201001, 0x00202002,
+ 0x0778aae7, 0x06000001, 0x0681058c, 0x050fb000,
+ 0x070ff000, 0x02d00546, 0x03800560, 0x0280055b,
+ 0x03800556, 0x02800551, 0x0380054b, 0x077800e7,
+ 0x06000001, 0x06810589, 0x072e7200, 0x030190cc,
+ 0x02800564, 0x016880e7, 0x06810589, 0x042e7080,
+ 0x020190cb, 0x02800564, 0x016820e7, 0x06810589,
+ 0x042e7020, 0x030190ca, 0x02800564, 0x016808e7,
+ 0x06810589, 0x042e7008, 0x030190c9, 0x02800564,
+ 0x016802e7, 0x06810589, 0x042e7002, 0x020190c8,
+ 0x07480077, 0x06810589, 0x03460077, 0x060ff075,
+ 0x02860589, 0x06003094, 0x0748a003, 0x04818589,
0x01683e03, 0x02203010, 0x01540403, 0x014a1a03,
- 0x060ff073, 0x00540419, 0x0682058f, 0x07810595,
- 0x050010ff, 0x01540403, 0x07820571, 0x06003001,
+ 0x060ff073, 0x00540419, 0x07820596, 0x0781059c,
+ 0x050010ff, 0x01540403, 0x07820578, 0x06003001,
0x034a3c03, 0x017a02ff, 0x06000c98, 0x040f8073,
0x070fa0ff, 0x070ff003, 0x06500073, 0x03610072,
- 0x045c0473, 0x0481857c, 0x03073072, 0x05394000,
+ 0x045c0473, 0x04818583, 0x03073072, 0x05394000,
0x07000090, 0x07f00000, 0x06003094, 0x07489003,
- 0x04818586, 0x03400000, 0x076c0a00, 0x05818539,
- 0x07c00000, 0x060ff073, 0x00540419, 0x0681059b,
- 0x07820599, 0x01683e03, 0x02203010, 0x01540403,
- 0x014a1a03, 0x0280056d, 0x03610072, 0x00540473,
- 0x057dfeff, 0x07ffffff, 0x034000ff, 0x0280056d,
- 0x040fd075, 0x040fd073, 0x040fd019, 0x03800582,
- 0x040fd075, 0x028006f4, 0x06604e75, 0x050f80ff,
+ 0x0581858d, 0x03400000, 0x076c0a00, 0x04818540,
+ 0x07c00000, 0x060ff073, 0x00540419, 0x068105a2,
+ 0x078205a0, 0x01683e03, 0x02203010, 0x01540403,
+ 0x014a1a03, 0x03800574, 0x03610072, 0x00540473,
+ 0x057dfeff, 0x07ffffff, 0x034000ff, 0x03800574,
+ 0x040fd075, 0x040fd073, 0x040fd019, 0x02800589,
+ 0x040fd075, 0x028006fb, 0x06604e75, 0x050f80ff,
0x053fa809, 0x06000001, 0x07f00000, 0x07602203,
0x050f80ff, 0x053fa809, 0x06000001, 0x05481003,
- 0x05818582, 0x07440077, 0x040080fb, 0x006b6108,
- 0x06009075, 0x07a006db, 0x03800582, 0x009785ba,
+ 0x04818589, 0x07440077, 0x040080fb, 0x006b6108,
+ 0x06009075, 0x07a006e2, 0x02800589, 0x009785c1,
0x07602418, 0x050f80ff, 0x012fa809, 0x06780001,
0x070000ff, 0x075a0000, 0x05602618, 0x050f80ff,
0x012fa809, 0x060ff001, 0x0569feff, 0x054b08ff,
0x075a0000, 0x05600418, 0x050f80ff, 0x012fa809,
- 0x040fe007, 0x008685c1, 0x01204000, 0x028005d6,
+ 0x040fe007, 0x008685c8, 0x01204000, 0x038005dd,
0x05600e06, 0x050f80ff, 0x073fa009, 0x06000002,
0x07f00000, 0x064d0004, 0x00700104, 0x03010000,
- 0x06780004, 0x07ff0000, 0x076c00ff, 0x058185cf,
+ 0x06780004, 0x07ff0000, 0x076c00ff, 0x048185d6,
0x00700104, 0x03010000, 0x064d0004, 0x05600e06,
0x050f80ff, 0x073fa00a, 0x06000002, 0x07f00000,
0x044b0804, 0x0279ff01, 0x0700ffff, 0x05602618,
0x050f80ff, 0x073fa009, 0x06000001, 0x0279ff02,
0x0700ffff, 0x07c00000, 0x04007075, 0x0448b076,
- 0x068105fe, 0x02790076, 0x03010000, 0x058185e7,
- 0x06483025, 0x048185fe, 0x06489076, 0x078105eb,
- 0x03200030, 0x028005ec, 0x03200011, 0x06006075,
+ 0x07810605, 0x02790076, 0x03010000, 0x058185ee,
+ 0x06483025, 0x05818605, 0x06489076, 0x068105f2,
+ 0x03200030, 0x038005f3, 0x03200011, 0x06006075,
0x05a0046c, 0x007a0101, 0x07060000, 0x07303000,
- 0x07008290, 0x02496076, 0x058185f6, 0x06006013,
- 0x03800611, 0x02400010, 0x078105f6, 0x06006010,
+ 0x07008290, 0x02496076, 0x048185fd, 0x06006013,
+ 0x03800618, 0x02400010, 0x068105fd, 0x06006010,
0x06603675, 0x050f80ff, 0x073fa00a, 0x07000003,
- 0x03800611, 0x0600007a, 0x02493076, 0x04818607,
+ 0x03800618, 0x0600007a, 0x02493076, 0x0481860e,
0x06602e75, 0x050f80ff, 0x032fa009, 0x060ff07a,
0x05500400, 0x070000ff, 0x06473076, 0x06602e75,
0x050f80ff, 0x032fa00a, 0x05a0045f, 0x007a0101,
0x03010000, 0x06303008, 0x05008000, 0x0600600e,
- 0x072d0003, 0x019b8611, 0x04938616, 0x073a0000,
+ 0x072d0003, 0x019b8618, 0x0593861d, 0x073a0000,
0x06000001, 0x050a4000, 0x060a5001, 0x060a6002,
0x050a7003, 0x040a8004, 0x070a9005, 0x050ae006,
- 0x0593862d, 0x07602818, 0x050f80ff, 0x012fa809,
+ 0x04938634, 0x07602818, 0x050f80ff, 0x012fa809,
0x04002001, 0x0279ff01, 0x070000ff, 0x007a0101,
0x07500000, 0x060af001, 0x04780102, 0x07ffff00,
- 0x020b0002, 0x053079a0, 0x0700000f, 0x0280062f,
- 0x053079a0, 0x0600000e, 0x06489076, 0x06810632,
- 0x06446007, 0x060a0007, 0x062d0002, 0x0080049d,
- 0x00683e76, 0x076c0aff, 0x07810677, 0x04007013,
- 0x06489076, 0x0681063d, 0x03200030, 0x0280063e,
+ 0x020b0002, 0x053079a0, 0x0700000f, 0x03800636,
+ 0x053079a0, 0x0600000e, 0x06489076, 0x07810639,
+ 0x06446007, 0x060a0007, 0x062d0002, 0x008004a4,
+ 0x00683e76, 0x076c0aff, 0x0781067e, 0x04007013,
+ 0x06489076, 0x07810644, 0x03200030, 0x02800645,
0x03200011, 0x06006075, 0x05a0046c, 0x007a0101,
0x03070000, 0x04602c75, 0x050f80ff, 0x053fa809,
- 0x06000001, 0x03499003, 0x0781064d, 0x07303000,
- 0x07008890, 0x053079a0, 0x0700000c, 0x02800651,
+ 0x06000001, 0x03499003, 0x06810654, 0x07303000,
+ 0x07008890, 0x053079a0, 0x0700000c, 0x02800658,
0x07303000, 0x04008980, 0x04307920, 0x0700000c,
- 0x074d0005, 0x06006013, 0x072d0003, 0x019b8653,
- 0x04938658, 0x073a0000, 0x06000001, 0x050a4000,
+ 0x074d0005, 0x06006013, 0x072d0003, 0x019b865a,
+ 0x0593865f, 0x073a0000, 0x06000001, 0x050a4000,
0x060a5001, 0x060a6002, 0x050a7003, 0x040a8004,
- 0x070a9005, 0x050ae006, 0x0593866f, 0x07602818,
+ 0x070a9005, 0x050ae006, 0x04938676, 0x07602818,
0x050f80ff, 0x012fa809, 0x04002001, 0x0279ff01,
0x070000ff, 0x007a0101, 0x07500000, 0x060af001,
0x04780102, 0x07ffff00, 0x020b0002, 0x007a0107,
- 0x07000030, 0x03800671, 0x007a0107, 0x06000020,
- 0x06489076, 0x07810674, 0x06446007, 0x060a0007,
- 0x062d0002, 0x0080049d, 0x06602e75, 0x050f80ff,
+ 0x07000030, 0x03800678, 0x007a0107, 0x06000020,
+ 0x06489076, 0x0781067b, 0x06446007, 0x060a0007,
+ 0x062d0002, 0x008004a4, 0x06602e75, 0x050f80ff,
0x032fa009, 0x060ff07a, 0x05500400, 0x070000ff,
0x06473076, 0x06602e75, 0x050f80ff, 0x032fa00a,
0x04007075, 0x05a0045f, 0x007a0101, 0x03010000,
0x06303008, 0x07008800, 0x074d0005, 0x06600a75,
0x050f80ff, 0x073fa009, 0x07000003, 0x07f00000,
0x054b0406, 0x045a0404, 0x050040ff, 0x0600600e,
- 0x072d0003, 0x009b8691, 0x05938696, 0x073aa000,
+ 0x072d0003, 0x009b8698, 0x0493869d, 0x073aa000,
0x06000004, 0x050a4000, 0x060a5001, 0x060a6002,
0x050a7003, 0x040a8004, 0x070a9005, 0x050ae006,
- 0x049386ad, 0x07602818, 0x050f80ff, 0x012fa809,
+ 0x059386b4, 0x07602818, 0x050f80ff, 0x012fa809,
0x04002001, 0x0279ff01, 0x070000ff, 0x007a0101,
0x07500000, 0x060af001, 0x04780102, 0x07ffff00,
- 0x020b0002, 0x04307920, 0x0700000f, 0x038006af,
+ 0x020b0002, 0x04307920, 0x0700000f, 0x028006b6,
0x04307920, 0x0600000e, 0x06307d20, 0x0600000e,
- 0x0648c076, 0x048186b5, 0x04307920, 0x0600000e,
- 0x06489076, 0x078106b8, 0x06446007, 0x060a0007,
- 0x062d0002, 0x0080049d, 0x072d0003, 0x019b86bb,
- 0x070ff0f6, 0x03687eff, 0x058186bd, 0x050f2074,
- 0x06489076, 0x068106c4, 0x06446007, 0x060a0007,
- 0x040070fb, 0x049386c8, 0x066a9007, 0x050f40ff,
- 0x062d0002, 0x0080049d, 0x01208060, 0x0600901f,
- 0x05002021, 0x028006e0, 0x040080fb, 0x066ae108,
- 0x06009075, 0x04002076, 0x028006e0, 0x03201100,
- 0x048486d9, 0x06420001, 0x048186d5, 0x028006f7,
- 0x020e0008, 0x07c00000, 0x03201100, 0x058486ed,
- 0x06420001, 0x048186dc, 0x028006f7, 0x050fd009,
- 0x040fd008, 0x03201100, 0x058486e7, 0x06420001,
- 0x048186e3, 0x028006f7, 0x007a0102, 0x04000101,
+ 0x0648c076, 0x048186bc, 0x04307920, 0x0600000e,
+ 0x06489076, 0x068106bf, 0x06446007, 0x060a0007,
+ 0x062d0002, 0x008004a4, 0x072d0003, 0x009b86c2,
+ 0x070ff0f6, 0x03687eff, 0x048186c4, 0x050f2074,
+ 0x06489076, 0x068106cb, 0x06446007, 0x060a0007,
+ 0x040070fb, 0x059386cf, 0x066a9007, 0x050f40ff,
+ 0x062d0002, 0x008004a4, 0x01208060, 0x0600901f,
+ 0x05002021, 0x038006e7, 0x040080fb, 0x066ae108,
+ 0x06009075, 0x04002076, 0x038006e7, 0x03201100,
+ 0x048486e0, 0x06420001, 0x048186dc, 0x038006ff,
+ 0x020e0008, 0x07c00000, 0x03201100, 0x048486f4,
+ 0x06420001, 0x048186e3, 0x038006ff, 0x050fd009,
+ 0x040fd008, 0x03201100, 0x058486ee, 0x06420001,
+ 0x048186ea, 0x038006ff, 0x007a0102, 0x04000101,
0x05600809, 0x050f80ff, 0x073fa00a, 0x06000001,
- 0x020e0008, 0x068406f1, 0x030e0009, 0x07c00000,
+ 0x020e0008, 0x068406f8, 0x030e0009, 0x07c00000,
0x01011009, 0x052e4300, 0x07c00000, 0x052e400f,
- 0x01208090, 0x038006d4, 0x070fc0ff, 0x040f8013,
- 0x032fa009, 0x038006fa, 0x05008006, 0x05007005,
- 0x06006004, 0x07005003, 0x04004002, 0x06003001,
- 0x07c00000, 0xf06a0be7, 0x02800004, 0x00000000,
- 0x0000a000, 0x00000621, 0x033d0aaa, 0x070aaaaa,
- 0x013d1aaa, 0x070aaaaa, 0x008c041c, 0x048e04cb,
- 0x058d04d7, 0x028f053e, 0x02910013, 0x040f7029,
- 0x02860013, 0x066c001f, 0x07810559, 0x066c0a1f,
- 0x06810586, 0x040f702f, 0x0386001d, 0x06000010,
- 0x050fb000, 0x066c0079, 0x068105c7, 0x0398001d,
- 0x03400000, 0x076c0a00, 0x04818016, 0x07960021,
- 0x05998021, 0x06a0009e, 0x02800008, 0x050f7012,
- 0x04a683f7, 0x04908008, 0x030150e1, 0x06780015,
- 0x07fffff0, 0x06810064, 0x0079fe15, 0x031fffff,
- 0x030160ff, 0x064bd415, 0x03d0002d, 0x0180019f,
- 0x038000d4, 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, 0x07a000bb, 0x03800078,
- 0x040fd016, 0x03800078, 0x0279f015, 0x07ffffff,
- 0x04818076, 0x060ff015, 0x03d00069, 0x03800071,
- 0x02800073, 0x02800076, 0x02800076, 0x02800076,
- 0x02800076, 0x02800076, 0x02800076, 0x03e00000,
- 0x02800008, 0x04908073, 0x010140e1, 0x03800078,
- 0x060fc010, 0x06a00619, 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,
- 0x038000bb, 0x062d0008, 0x00011016, 0x052e4c00,
- 0x07c00000, 0x062d0008, 0x040fd016, 0x07c00000,
- 0x030160eb, 0x0249f016, 0x0481807f, 0x04600816,
- 0x050f80ff, 0x012fa839, 0x01494005, 0x068100b6,
- 0x06783f01, 0x03800060, 0x027c0501, 0x02800020,
- 0x0581809c, 0x040f7025, 0x018680af, 0x02026016,
- 0x028000b3, 0x06600025, 0x050f80ff, 0x073fa00a,
- 0x0600000b, 0x02025016, 0x02400029, 0x07c00000,
- 0x06783f01, 0x03800060, 0x007c0b01, 0x03800000,
- 0x0581809c, 0x06601807, 0x070030ff, 0x050f80ff,
- 0x012fa809, 0x050f8003, 0x073fa00a, 0x0600000b,
- 0x040f7001, 0x038600c9, 0x04600201, 0x050f80ff,
- 0x073fa00a, 0x0600000b, 0x07c00000, 0x050f702e,
- 0x008680ce, 0x0002e016, 0x0202f016, 0x028000d3,
- 0x0760002e, 0x050f80ff, 0x073fa00a, 0x0600000b,
- 0x0002e016, 0x07c00000, 0x0430e004, 0x03080000,
- 0x06601216, 0x050f80ff, 0x073fa011, 0x07000005,
- 0x07f00000, 0x0660000b, 0x050f80ff, 0x022fa019,
- 0x0700c000, 0x0279ff02, 0x0700ffff, 0x00017002,
- 0x0760280a, 0x050f80ff, 0x012fa809, 0x0079fe01,
- 0x0700ffff, 0x055c0417, 0x0781818d, 0x0400d010,
- 0x0548e00c, 0x078100ed, 0x0245600e, 0x0548400c,
- 0x078100f5, 0x07300000, 0x05001000, 0x04602c16,
- 0x050f80ff, 0x032fa00a, 0x0644900e, 0x0560100a,
- 0x050f80ff, 0x032fa039, 0x02015002, 0x064b0015,
- 0x0379ff03, 0x070000ff, 0x01018003, 0x05420418,
- 0x07818100, 0x0045700e, 0x0179fe06, 0x070000ff,
- 0x0700f0ff, 0x06006010, 0x04007010, 0x0760280a,
+ 0x04008013, 0x026b2108, 0x038006db, 0x070fc0ff,
+ 0x040f8013, 0x032fa009, 0x00800702, 0x05008006,
+ 0x05007005, 0x06006004, 0x07005003, 0x04004002,
+ 0x06003001, 0x07c00000, 0xd3228c85, 0x02800004,
+ 0x00000000, 0x0000a000, 0x0000062a, 0x033d0aaa,
+ 0x070aaaaa, 0x013d1aaa, 0x070aaaaa, 0x008c041c,
+ 0x058e04cc, 0x058d04d8, 0x038f0541, 0x02910013,
+ 0x040f7029, 0x02860013, 0x066c001f, 0x0781055c,
+ 0x066c0a1f, 0x0781058b, 0x040f702f, 0x0386001d,
+ 0x06000010, 0x050fb000, 0x066c0079, 0x068105ce,
+ 0x0398001d, 0x03400000, 0x076c0a00, 0x04818016,
+ 0x07960021, 0x05998021, 0x06a0009e, 0x02800008,
+ 0x050f7012, 0x04a683f7, 0x04908008, 0x030150e1,
+ 0x06780015, 0x07fffff0, 0x06810064, 0x0079fe15,
+ 0x031fffff, 0x030160ff, 0x064bd415, 0x03d0002d,
+ 0x0180019f, 0x038000d4, 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, 0x07a000bb,
+ 0x03800078, 0x040fd016, 0x03800078, 0x0279f015,
+ 0x07ffffff, 0x04818076, 0x060ff015, 0x03d00069,
+ 0x03800071, 0x02800073, 0x02800076, 0x02800076,
+ 0x02800076, 0x02800076, 0x02800076, 0x02800076,
+ 0x03e00000, 0x02800008, 0x04908073, 0x010140e1,
+ 0x03800078, 0x060fc010, 0x07a00622, 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, 0x038000bb, 0x062d0008, 0x00011016,
+ 0x052e4c00, 0x07c00000, 0x062d0008, 0x040fd016,
+ 0x07c00000, 0x030160eb, 0x0249f016, 0x0481807f,
+ 0x04600816, 0x050f80ff, 0x012fa839, 0x01494005,
+ 0x068100b6, 0x06783f01, 0x03800060, 0x027c0501,
+ 0x02800020, 0x0581809c, 0x040f7025, 0x018680af,
+ 0x02026016, 0x028000b3, 0x06600025, 0x050f80ff,
+ 0x073fa00a, 0x0600000b, 0x02025016, 0x02400029,
+ 0x07c00000, 0x06783f01, 0x03800060, 0x007c0b01,
+ 0x03800000, 0x0581809c, 0x06601807, 0x070030ff,
+ 0x050f80ff, 0x012fa809, 0x050f8003, 0x073fa00a,
+ 0x0600000b, 0x040f7001, 0x038600c9, 0x04600201,
+ 0x050f80ff, 0x073fa00a, 0x0600000b, 0x07c00000,
+ 0x050f702e, 0x008680ce, 0x0002e016, 0x0202f016,
+ 0x028000d3, 0x0760002e, 0x050f80ff, 0x073fa00a,
+ 0x0600000b, 0x0002e016, 0x07c00000, 0x0430e004,
+ 0x03080000, 0x06601216, 0x050f80ff, 0x073fa011,
+ 0x07000005, 0x07f00000, 0x0660000b, 0x050f80ff,
+ 0x022fa019, 0x0700c000, 0x0279ff02, 0x0700ffff,
+ 0x00017002, 0x0760280a, 0x050f80ff, 0x012fa809,
+ 0x0079fe01, 0x0700ffff, 0x055c0417, 0x0781818d,
+ 0x0400d010, 0x0548e00c, 0x078100ed, 0x0245600e,
+ 0x0548400c, 0x078100f5, 0x07300000, 0x05001000,
+ 0x04602c16, 0x050f80ff, 0x032fa00a, 0x0644900e,
+ 0x0560100a, 0x050f80ff, 0x032fa039, 0x02015002,
+ 0x064b0015, 0x0379ff03, 0x070000ff, 0x01018003,
+ 0x05420418, 0x07818100, 0x0045700e, 0x0179fe06,
+ 0x070000ff, 0x0700f0ff, 0x06006010, 0x04007010,
+ 0x0760280a, 0x050f80ff, 0x073fa009, 0x06000004,
+ 0x07f00000, 0x064b8408, 0x040080ce, 0x04500408,
0x050f80ff, 0x073fa009, 0x06000004, 0x07f00000,
- 0x064b8408, 0x040080ce, 0x04500408, 0x050f80ff,
- 0x073fa009, 0x06000004, 0x07f00000, 0x04603216,
- 0x050f80ff, 0x063fa02a, 0x06000002, 0x0769ff00,
- 0x076c9000, 0x0481011a, 0x076cd400, 0x0781811b,
- 0x0444b00e, 0x0368060f, 0x01d0011d, 0x0080013e,
- 0x01800139, 0x00800140, 0x01800121, 0x056cea00,
- 0x0781818d, 0x0748300f, 0x05810135, 0x0560260a,
- 0x050f80ff, 0x073fa009, 0x06000002, 0x06005010,
- 0x06006010, 0x04602616, 0x050f80ff, 0x063fa01a,
- 0x06000002, 0x07f00000, 0x0760180a, 0x050f80ff,
- 0x053fa812, 0x06000002, 0x07f00000, 0x027a030d,
- 0x03080000, 0x0444b00e, 0x01800139, 0x007a010e,
- 0x07001800, 0x076c3000, 0x03a182e4, 0x07818172,
- 0x0220f002, 0x01800147, 0x0120d081, 0x007a010e,
- 0x05001000, 0x076c3000, 0x03a182e4, 0x07818172,
- 0x0220f004, 0x0548400c, 0x0581014e, 0x0220f00e,
- 0x0444100d, 0x0748600c, 0x0581014e, 0x0444200d,
- 0x056cea00, 0x05810153, 0x0548700c, 0x05810153,
- 0x0644900d, 0x024a1815, 0x004a2c15, 0x04500415,
- 0x070030ff, 0x0700000f, 0x017a0100, 0x05004000,
- 0x0400100e, 0x05304000, 0x07000030, 0x04002010,
- 0x0600500d, 0x0700600a, 0x0400700b, 0x05008017,
- 0x06600616, 0x050f80ff, 0x022fa04a, 0x0448b00e,
- 0x05818056, 0x050f7027, 0x0286816b, 0x00028016,
- 0x0180016f, 0x07600027, 0x050f80ff, 0x073fa00a,
- 0x0600000b, 0x00027016, 0x02400029, 0x03800078,
- 0x040fd016, 0x050fd00a, 0x0560100a, 0x050f80ff,
- 0x032fa009, 0x05780100, 0x07ffff00, 0x017a0700,
- 0x06000001, 0x050f80ff, 0x032fa00a, 0x07f00000,
- 0x0760140a, 0x050f80ff, 0x022fa019, 0x05780100,
- 0x07ffff00, 0x076a0500, 0x00202001, 0x0560260a,
- 0x050f80ff, 0x012fa809, 0x06003010, 0x0760140a,
- 0x050f80ff, 0x032fa022, 0x00800197, 0x050fd00a,
- 0x0560100a, 0x050f80ff, 0x032fa009, 0x0379ff00,
- 0x0380ffff, 0x0145b000, 0x0560100a, 0x050f80ff,
- 0x032fa00a, 0x07303000, 0x07000030, 0x04600e16,
- 0x050f80ff, 0x053fa80a, 0x06000001, 0x06a003e6,
- 0x03800078, 0x06600616, 0x050f80ff, 0x012fa841,
- 0x0079fe01, 0x070000ff, 0x070090ff, 0x0400d010,
- 0x0600a007, 0x0400b008, 0x0560100a, 0x050f80ff,
- 0x032fa009, 0x0769ff00, 0x0660000b, 0x050f80ff,
- 0x073fa009, 0x07000006, 0x07f00000, 0x04602c16,
- 0x050f80ff, 0x053fa809, 0x0600000b, 0x07479017,
- 0x056c0e09, 0x058101bd, 0x076c0c09, 0x058101bd,
- 0x050fd009, 0x06a00619, 0x03800078, 0x05601c0a,
- 0x050f80ff, 0x053fa809, 0x06000007, 0x07f00000,
- 0x074b000f, 0x0748300f, 0x058101ca, 0x07446000,
- 0x04602c16, 0x050f80ff, 0x053fa80a, 0x0600000b,
- 0x0368060f, 0x01d001cc, 0x008001d0, 0x0180024b,
- 0x00800208, 0x0180027d, 0x0748f00f, 0x0581027b,
- 0x0530e042, 0x02080002, 0x0578400f, 0x06000020,
- 0x017c40ff, 0x06000020, 0x068181dc, 0x0748500c,
- 0x048101dc, 0x03459017, 0x04602c16, 0x050f80ff,
- 0x053fa80a, 0x0600000b, 0x0569800f, 0x078181e8,
- 0x0548d00f, 0x068181e5, 0x0644a00e, 0x056c0e09,
- 0x058101f3, 0x0080027f, 0x050010ff, 0x046c8001,
- 0x078181fa, 0x056c0e09, 0x058101f3, 0x0560200a,
- 0x050f80ff, 0x012fa809, 0x04780101, 0x07ffff00,
- 0x0481027f, 0x01498017, 0x058101f6, 0x0644900e,
- 0x06300001, 0x04000410, 0x05a00295, 0x03800035,
- 0x026d0001, 0x048101fd, 0x0180027d, 0x0530e042,
- 0x02080002, 0x01498017, 0x04810202, 0x0644900e,
+ 0x04603216, 0x050f80ff, 0x063fa02a, 0x06000002,
+ 0x0769ff00, 0x076c9000, 0x0481011a, 0x076cd400,
+ 0x0781811b, 0x0444b00e, 0x0368060f, 0x01d0011d,
+ 0x0080013e, 0x01800139, 0x00800140, 0x01800121,
+ 0x056cea00, 0x0781818d, 0x0748300f, 0x05810135,
+ 0x0560260a, 0x050f80ff, 0x073fa009, 0x06000002,
+ 0x06005010, 0x06006010, 0x04602616, 0x050f80ff,
+ 0x063fa01a, 0x06000002, 0x07f00000, 0x0760180a,
+ 0x050f80ff, 0x053fa812, 0x06000002, 0x07f00000,
+ 0x027a030d, 0x03080000, 0x0444b00e, 0x01800139,
+ 0x007a010e, 0x07001800, 0x076c3000, 0x03a182e4,
+ 0x07818172, 0x0220f002, 0x01800147, 0x0120d081,
+ 0x007a010e, 0x05001000, 0x076c3000, 0x03a182e4,
+ 0x07818172, 0x0220f004, 0x0548400c, 0x0581014e,
+ 0x0220f00e, 0x0444100d, 0x0748600c, 0x0581014e,
+ 0x0444200d, 0x056cea00, 0x05810153, 0x0548700c,
+ 0x05810153, 0x0644900d, 0x024a1815, 0x004a2c15,
+ 0x04500415, 0x070030ff, 0x0700000f, 0x017a0100,
+ 0x05004000, 0x0400100e, 0x05304000, 0x07000030,
+ 0x04002010, 0x0600500d, 0x0700600a, 0x0400700b,
+ 0x05008017, 0x06600616, 0x050f80ff, 0x022fa04a,
+ 0x0448b00e, 0x05818056, 0x050f7027, 0x0286816b,
+ 0x00028016, 0x0180016f, 0x07600027, 0x050f80ff,
+ 0x073fa00a, 0x0600000b, 0x00027016, 0x02400029,
+ 0x03800078, 0x040fd016, 0x050fd00a, 0x0560100a,
+ 0x050f80ff, 0x032fa009, 0x05780100, 0x07ffff00,
+ 0x017a0700, 0x06000001, 0x050f80ff, 0x032fa00a,
+ 0x07f00000, 0x0760140a, 0x050f80ff, 0x022fa019,
+ 0x05780100, 0x07ffff00, 0x076a0500, 0x00202001,
+ 0x0560260a, 0x050f80ff, 0x012fa809, 0x06003010,
+ 0x0760140a, 0x050f80ff, 0x032fa022, 0x00800197,
+ 0x050fd00a, 0x0560100a, 0x050f80ff, 0x032fa009,
+ 0x0379ff00, 0x0380ffff, 0x0145b000, 0x0560100a,
+ 0x050f80ff, 0x032fa00a, 0x07303000, 0x07000030,
+ 0x04600e16, 0x050f80ff, 0x053fa80a, 0x06000001,
+ 0x06a003e6, 0x03800078, 0x06600616, 0x050f80ff,
+ 0x012fa841, 0x0079fe01, 0x070000ff, 0x070090ff,
+ 0x0400d010, 0x0600a007, 0x0400b008, 0x0560100a,
+ 0x050f80ff, 0x032fa009, 0x0769ff00, 0x0660000b,
+ 0x050f80ff, 0x073fa009, 0x07000006, 0x07f00000,
+ 0x04602c16, 0x050f80ff, 0x053fa809, 0x0600000b,
+ 0x07479017, 0x056c0e09, 0x058101bd, 0x076c0c09,
+ 0x058101bd, 0x050fd009, 0x07a00622, 0x03800078,
+ 0x05601c0a, 0x050f80ff, 0x053fa809, 0x06000007,
+ 0x07f00000, 0x074b000f, 0x0748300f, 0x058101ca,
+ 0x07446000, 0x04602c16, 0x050f80ff, 0x053fa80a,
+ 0x0600000b, 0x0368060f, 0x01d001cc, 0x008001d0,
+ 0x0180024b, 0x00800208, 0x0180027d, 0x0748f00f,
+ 0x0581027b, 0x0530e042, 0x02080002, 0x0578400f,
+ 0x06000020, 0x017c40ff, 0x06000020, 0x068181dc,
+ 0x0748500c, 0x048101dc, 0x03459017, 0x04602c16,
+ 0x050f80ff, 0x053fa80a, 0x0600000b, 0x0569800f,
+ 0x078181e8, 0x0548d00f, 0x068181e5, 0x0644a00e,
+ 0x056c0e09, 0x058101f3, 0x0080027f, 0x050010ff,
+ 0x046c8001, 0x078181fa, 0x056c0e09, 0x058101f3,
+ 0x0560200a, 0x050f80ff, 0x012fa809, 0x04780101,
+ 0x07ffff00, 0x0481027f, 0x01498017, 0x058101f6,
+ 0x0644900e, 0x06300001, 0x04000410, 0x05a00295,
+ 0x03800035, 0x026d0001, 0x048101fd, 0x0180027d,
+ 0x0530e042, 0x02080002, 0x01498017, 0x04810202,
+ 0x0644900e, 0x05a002b2, 0x06818279, 0x07300003,
+ 0x05000430, 0x05a00295, 0x03800056, 0x0630e445,
+ 0x02080002, 0x056c0e09, 0x0681827f, 0x0748f00f,
+ 0x04810215, 0x0569800f, 0x0781827d, 0x0548d00f,
+ 0x07818217, 0x007a010e, 0x06000010, 0x0180021d,
+ 0x0246a00e, 0x0180021d, 0x0246a00e, 0x0748500f,
+ 0x0581021d, 0x0748500c, 0x0581021d, 0x03459017,
+ 0x0349a017, 0x07818224, 0x04602c16, 0x050f80ff,
+ 0x053fa80a, 0x0600000b, 0x0180022e, 0x0747a017,
+ 0x05001017, 0x0760220a, 0x050f80ff, 0x073fa009,
+ 0x06000001, 0x07f00000, 0x04602c16, 0x050f80ff,
+ 0x012fa812, 0x01498017, 0x05810233, 0x0644900e,
+ 0x0279ff0e, 0x07ffffeb, 0x0448700e, 0x04810245,
+ 0x06601216, 0x050f80ff, 0x012fa809, 0x07f00000,
+ 0x04600201, 0x050f80ff, 0x012fa809, 0x07f00000,
+ 0x06601401, 0x050f80ff, 0x012fa809, 0x060ff001,
+ 0x075a00ff, 0x04810245, 0x0279ff0e, 0x07ffffeb,
0x05a002b2, 0x06818279, 0x07300003, 0x05000430,
- 0x05a00295, 0x03800056, 0x0630e445, 0x02080002,
- 0x056c0e09, 0x0681827f, 0x0748f00f, 0x04810215,
- 0x0569800f, 0x0781827d, 0x0548d00f, 0x07818217,
- 0x007a010e, 0x06000010, 0x0180021d, 0x0246a00e,
- 0x0180021d, 0x0246a00e, 0x0748500f, 0x0581021d,
- 0x0748500c, 0x0581021d, 0x03459017, 0x0349a017,
- 0x07818224, 0x04602c16, 0x050f80ff, 0x053fa80a,
- 0x0600000b, 0x0180022e, 0x0747a017, 0x05001017,
- 0x0760220a, 0x050f80ff, 0x073fa009, 0x06000001,
- 0x07f00000, 0x04602c16, 0x050f80ff, 0x012fa812,
- 0x01498017, 0x05810233, 0x0644900e, 0x0279ff0e,
- 0x07ffffeb, 0x0448700e, 0x04810245, 0x06601216,
- 0x050f80ff, 0x012fa809, 0x07f00000, 0x04600201,
- 0x050f80ff, 0x012fa809, 0x07f00000, 0x06601401,
- 0x050f80ff, 0x012fa809, 0x060ff001, 0x075a00ff,
- 0x04810245, 0x0279ff0e, 0x07ffffeb, 0x05a002b2,
- 0x06818279, 0x07300003, 0x05000430, 0x05a00295,
- 0x03800056, 0x056c0e09, 0x0681827f, 0x0430e001,
- 0x02080002, 0x0644000d, 0x0447400d, 0x0748f00f,
- 0x05810265, 0x0569800f, 0x0781827d, 0x0578400f,
- 0x06000020, 0x017c40ff, 0x06000020, 0x0681825e,
- 0x0748500c, 0x0481025e, 0x03459017, 0x01800265,
- 0x0049100d, 0x07818265, 0x0548700c, 0x07818265,
- 0x07486000, 0x07818265, 0x0045400d, 0x04602c16,
- 0x050f80ff, 0x053fa80a, 0x0600000b, 0x05a002b2,
- 0x06818279, 0x01498017, 0x04810275, 0x0644900e,
- 0x0444100d, 0x0630000e, 0x04000420, 0x0748600c,
- 0x05810277, 0x0444200d, 0x01800277, 0x06300004,
- 0x04000420, 0x05a00295, 0x03800035, 0x02200010,
- 0x00800280, 0x02200001, 0x00800280, 0x03200006,
- 0x00800280, 0x02200004, 0x040fd016, 0x050fd00a,
- 0x050fd000, 0x0760140a, 0x050f80ff, 0x032fa00a,
- 0x07f00000, 0x04600e16, 0x050f80ff, 0x053fa809,
- 0x06000001, 0x05780103, 0x070000ff, 0x017a0103,
- 0x07000600, 0x04600e16, 0x050f80ff, 0x053fa80a,
- 0x06000001, 0x06a003e6, 0x03800078, 0x0760140a,
- 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, 0x048102cd,
- 0x056cf400, 0x048102ba, 0x076ce400, 0x068182df,
- 0x0748000f, 0x058102bd, 0x0444b00d, 0x0548100f,
- 0x058102c0, 0x0444700e, 0x06a00364, 0x078182e2,
- 0x0760220a, 0x050f80ff, 0x0448b00d, 0x058102c9,
- 0x073fa009, 0x06000004, 0x008002d3, 0x043fa819,
- 0x06000002, 0x05008005, 0x008002d3, 0x0760220a,
- 0x050f80ff, 0x043fa819, 0x06000002, 0x05008005,
- 0x0500100a, 0x06780007, 0x07ffff00, 0x058102d7,
- 0x0245500e, 0x0560160a, 0x050f80ff, 0x053fa809,
- 0x06000001, 0x0379ff03, 0x070000ff, 0x01018003,
- 0x03800318, 0x040fd016, 0x050fd00a, 0x02800619,
- 0x056a02ff, 0x07c00000, 0x0447400e, 0x03681e00,
- 0x070090ff, 0x076c3000, 0x07810312, 0x076c9000,
- 0x07810312, 0x056cea00, 0x068182ef, 0x02209008,
- 0x03800312, 0x056cd000, 0x058102f6, 0x076cd400,
- 0x058102f6, 0x040fd016, 0x050fd00a, 0x02800619,
- 0x0748000f, 0x058102f9, 0x0444700e, 0x0548100f,
- 0x058102fc, 0x0444b00d, 0x06a00364, 0x05818311,
- 0x0448700d, 0x05818317, 0x0644500e, 0x070ff009,
+ 0x05a00295, 0x03800056, 0x056c0e09, 0x0681827f,
+ 0x0430e001, 0x02080002, 0x0644000d, 0x0447400d,
+ 0x0748f00f, 0x05810265, 0x0569800f, 0x0781827d,
+ 0x0578400f, 0x06000020, 0x017c40ff, 0x06000020,
+ 0x0681825e, 0x0748500c, 0x0481025e, 0x03459017,
+ 0x01800265, 0x0049100d, 0x07818265, 0x0548700c,
+ 0x07818265, 0x07486000, 0x07818265, 0x0045400d,
+ 0x04602c16, 0x050f80ff, 0x053fa80a, 0x0600000b,
+ 0x05a002b2, 0x06818279, 0x01498017, 0x04810275,
+ 0x0644900e, 0x0444100d, 0x0630000e, 0x04000420,
+ 0x0748600c, 0x05810277, 0x0444200d, 0x01800277,
+ 0x06300004, 0x04000420, 0x05a00295, 0x03800035,
+ 0x02200010, 0x00800280, 0x02200001, 0x00800280,
+ 0x03200006, 0x00800280, 0x02200004, 0x040fd016,
+ 0x050fd00a, 0x050fd000, 0x0760140a, 0x050f80ff,
+ 0x032fa00a, 0x07f00000, 0x04600e16, 0x050f80ff,
+ 0x053fa809, 0x06000001, 0x05780103, 0x070000ff,
+ 0x017a0103, 0x07000600, 0x04600e16, 0x050f80ff,
+ 0x053fa80a, 0x06000001, 0x06a003e6, 0x03800078,
+ 0x0760140a, 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,
+ 0x048102cd, 0x056cf400, 0x048102ba, 0x076ce400,
+ 0x068182df, 0x0748000f, 0x058102bd, 0x0444b00d,
+ 0x0548100f, 0x058102c0, 0x0444700e, 0x06a00364,
+ 0x078182e2, 0x0760220a, 0x050f80ff, 0x0448b00d,
+ 0x058102c9, 0x073fa009, 0x06000004, 0x008002d3,
+ 0x043fa819, 0x06000002, 0x05008005, 0x008002d3,
+ 0x0760220a, 0x050f80ff, 0x043fa819, 0x06000002,
+ 0x05008005, 0x0500100a, 0x06780007, 0x07ffff00,
+ 0x058102d7, 0x0245500e, 0x0560160a, 0x050f80ff,
+ 0x053fa809, 0x06000001, 0x0379ff03, 0x070000ff,
+ 0x01018003, 0x03800318, 0x040fd016, 0x050fd00a,
+ 0x03800622, 0x056a02ff, 0x07c00000, 0x0447400e,
+ 0x03681e00, 0x070090ff, 0x076c3000, 0x07810312,
+ 0x076c9000, 0x07810312, 0x056cea00, 0x068182ef,
+ 0x02209008, 0x03800312, 0x056cd000, 0x058102f6,
+ 0x076cd400, 0x058102f6, 0x040fd016, 0x050fd00a,
+ 0x03800622, 0x0748000f, 0x058102f9, 0x0444700e,
+ 0x0548100f, 0x058102fc, 0x0444b00d, 0x06a00364,
+ 0x05818311, 0x0448700d, 0x05818317, 0x0644500e,
+ 0x070ff009, 0x0550041b, 0x050f80ff, 0x073fa009,
+ 0x06000001, 0x0320000c, 0x02400002, 0x04488004,
+ 0x0781030c, 0x02400002, 0x0320000f, 0x07003018,
+ 0x06601816, 0x050f80ff, 0x032fa022, 0x075c00ff,
+ 0x07c00000, 0x0500100a, 0x0560260a, 0x050f80ff,
+ 0x053fa809, 0x07000003, 0x04008010, 0x06a00320,
+ 0x0481831f, 0x07003018, 0x06601816, 0x050f80ff,
+ 0x022fa04a, 0x075c00ff, 0x07c00000, 0x070ff009,
0x0550041b, 0x050f80ff, 0x073fa009, 0x06000001,
- 0x0320000c, 0x02400002, 0x04488004, 0x0781030c,
- 0x02400002, 0x0320000f, 0x07003018, 0x06601816,
- 0x050f80ff, 0x032fa022, 0x075c00ff, 0x07c00000,
- 0x0500100a, 0x0560260a, 0x050f80ff, 0x053fa809,
- 0x07000003, 0x04008010, 0x06a00320, 0x0481831f,
- 0x07003018, 0x06601816, 0x050f80ff, 0x022fa04a,
- 0x075c00ff, 0x07c00000, 0x070ff009, 0x0550041b,
- 0x050f80ff, 0x073fa009, 0x06000001, 0x0448b00d,
- 0x04818329, 0x0448700e, 0x0781032d, 0x02400002,
- 0x0049700d, 0x0781032d, 0x02400002, 0x07a0033c,
- 0x0581833a, 0x060ff001, 0x05500400, 0x050f80ff,
- 0x063fa019, 0x06000002, 0x07f00000, 0x07420018,
- 0x0681033b, 0x02400002, 0x07a0033c, 0x0681033b,
- 0x056a02ff, 0x07c00000, 0x070ff01d, 0x00540402,
- 0x03d0033f, 0x02800345, 0x03800347, 0x02800349,
- 0x0380034b, 0x0380034d, 0x0280034f, 0x03200009,
- 0x02800362, 0x0320000c, 0x02800362, 0x0320000f,
- 0x02800362, 0x03200012, 0x02800362, 0x02200015,
- 0x02800362, 0x04600201, 0x050f80ff, 0x012fa809,
- 0x040f7001, 0x0286035e, 0x04601001, 0x050f80ff,
- 0x073fa009, 0x06000001, 0x02681e02, 0x0550041b,
- 0x050f80ff, 0x073fa009, 0x06000001, 0x0380033c,
- 0x040fd016, 0x040fd002, 0x056a02ff, 0x03800363,
- 0x075c00ff, 0x07c00000, 0x0560020a, 0x050f80ff,
- 0x053fa809, 0x06000007, 0x050f700f, 0x038603e4,
- 0x0560100f, 0x050f80ff, 0x053fa809, 0x06000004,
- 0x0769ff09, 0x056c9409, 0x058183e4, 0x05602a0a,
- 0x050f80ff, 0x063fa019, 0x07000003, 0x07000006,
- 0x0079fe07, 0x070000ff, 0x050010ff, 0x0760120f,
- 0x050f80ff, 0x063fa019, 0x06000002, 0x0379ff05,
- 0x070000ff, 0x074b0c05, 0x055a0405, 0x070050ff,
- 0x0079fe04, 0x070000ff, 0x050020ff, 0x064b0c04,
- 0x045a0402, 0x050020ff, 0x064b0004, 0x04487004,
- 0x06810392, 0x0379ff05, 0x070000ff, 0x04488004,
- 0x04818398, 0x04007010, 0x04008010, 0x04444004,
- 0x04488004, 0x068103ad, 0x02680604, 0x076c06ff,
- 0x04818398, 0x00464004, 0x0045700d, 0x0045800e,
- 0x05601a0f, 0x050f80ff, 0x073fa009, 0x0700000c,
- 0x07f00000, 0x074b0018, 0x07600a0a, 0x050f80ff,
- 0x053fa809, 0x06000001, 0x050f80ff, 0x073fa00a,
- 0x06000008, 0x07f00000, 0x06604e16, 0x050f80ff,
- 0x053fa80a, 0x06000001, 0x07f00000, 0x04605816,
- 0x050f80ff, 0x073fa00a, 0x07000003, 0x06486004,
- 0x058183c5, 0x04780107, 0x07ffff00, 0x004a8c07,
- 0x04780107, 0x07ff0000, 0x004a8007, 0x045a0407,
- 0x045a0404, 0x050040ff, 0x06780008, 0x07ff00ff,
- 0x0279ff08, 0x0700ff00, 0x014c80ff, 0x044d8008,
- 0x045a0408, 0x070030ff, 0x028003dc, 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, 0x038603ed, 0x06600013, 0x050f80ff,
- 0x073fa00a, 0x0600000b, 0x07c00000, 0x070ff0e2,
- 0x077800ff, 0x033e0000, 0x077400ff, 0x031a0000,
- 0x05820412, 0x05810412, 0x00012016, 0x02013016,
- 0x07c00000, 0x070ff0e2, 0x077800ff, 0x033e0000,
- 0x077400ff, 0x031a0000, 0x078203ff, 0x078103ff,
- 0x07c00000, 0x03016012, 0x06600016, 0x050f80ff,
- 0x032fa009, 0x07f00000, 0x06600016, 0x050f80ff,
- 0x073fa00a, 0x06000008, 0x050f7000, 0x0186040c,
- 0x01012000, 0x0080040e, 0x00012010, 0x02013010,
- 0x04600816, 0x050f80ff, 0x073fa009, 0x06000007,
- 0x0647f00e, 0x007a010e, 0x04000101, 0x04600816,
- 0x050f80ff, 0x073fa00a, 0x06000007, 0x072e0030,
- 0x020e0016, 0x07c00000, 0x0391000a, 0x0784001d,
- 0x022c0004, 0x046c041f, 0x04810431, 0x046c021f,
- 0x05810481, 0x066c0c1f, 0x05810493, 0x046c081f,
- 0x058104a5, 0x066c061f, 0x048104bf, 0x0721f000,
- 0x0202c010, 0x0202a010, 0x02020010, 0x052e5800,
- 0x02b60079, 0x058d04d7, 0x0380000c, 0x040f702a,
- 0x0086042a, 0x06000010, 0x04001010, 0x0760182b,
- 0x050f80ff, 0x032fa012, 0x07f00000, 0x0460082a,
- 0x050f80ff, 0x053fa809, 0x06000001, 0x07780003,
- 0x03400000, 0x05810471, 0x0560102b, 0x050f80ff,
- 0x032fa009, 0x0769ff00, 0x076c3000, 0x05810448,
- 0x056cd000, 0x07818471, 0x05601c2b, 0x050f80ff,
- 0x032fa009, 0x05444000, 0x07445000, 0x032fa00a,
- 0x06300002, 0x05000430, 0x0660062a, 0x050f80ff,
- 0x032fa00a, 0x07f00000, 0x0560262b, 0x050f80ff,
- 0x032fa009, 0x04001010, 0x04002010, 0x0460262a,
- 0x050f80ff, 0x022fa01a, 0x07f00000, 0x06600a2a,
- 0x050f80ff, 0x012fa80a, 0x07f00000, 0x0460082a,
- 0x050f80ff, 0x012fa80a, 0x0079c101, 0x07ffffff,
- 0x007a0b01, 0x03800000, 0x05780100, 0x07ffff00,
- 0x0581046c, 0x02455001, 0x0460082a, 0x050f80ff,
- 0x012fa80a, 0x0201602a, 0x07a000bb, 0x06420029,
+ 0x0448b00d, 0x04818329, 0x0448700e, 0x0781032d,
+ 0x02400002, 0x0049700d, 0x0781032d, 0x02400002,
+ 0x07a0033c, 0x0581833a, 0x060ff001, 0x05500400,
+ 0x050f80ff, 0x063fa019, 0x06000002, 0x07f00000,
+ 0x07420018, 0x0681033b, 0x02400002, 0x07a0033c,
+ 0x0681033b, 0x056a02ff, 0x07c00000, 0x070ff01d,
+ 0x00540402, 0x03d0033f, 0x02800345, 0x03800347,
+ 0x02800349, 0x0380034b, 0x0380034d, 0x0280034f,
+ 0x03200009, 0x02800362, 0x0320000c, 0x02800362,
+ 0x0320000f, 0x02800362, 0x03200012, 0x02800362,
+ 0x02200015, 0x02800362, 0x04600201, 0x050f80ff,
+ 0x012fa809, 0x040f7001, 0x0286035e, 0x04601001,
+ 0x050f80ff, 0x073fa009, 0x06000001, 0x02681e02,
+ 0x0550041b, 0x050f80ff, 0x073fa009, 0x06000001,
+ 0x0380033c, 0x040fd016, 0x040fd002, 0x056a02ff,
+ 0x03800363, 0x075c00ff, 0x07c00000, 0x0560020a,
+ 0x050f80ff, 0x053fa809, 0x06000007, 0x050f700f,
+ 0x038603e4, 0x0560100f, 0x050f80ff, 0x053fa809,
+ 0x06000004, 0x0769ff09, 0x056c9409, 0x058183e4,
+ 0x05602a0a, 0x050f80ff, 0x063fa019, 0x07000003,
+ 0x07000006, 0x0079fe07, 0x070000ff, 0x050010ff,
+ 0x0760120f, 0x050f80ff, 0x063fa019, 0x06000002,
+ 0x0379ff05, 0x070000ff, 0x074b0c05, 0x055a0405,
+ 0x070050ff, 0x0079fe04, 0x070000ff, 0x050020ff,
+ 0x064b0c04, 0x045a0402, 0x050020ff, 0x064b0004,
+ 0x04487004, 0x06810392, 0x0379ff05, 0x070000ff,
+ 0x04488004, 0x04818398, 0x04007010, 0x04008010,
+ 0x04444004, 0x04488004, 0x068103ad, 0x02680604,
+ 0x076c06ff, 0x04818398, 0x00464004, 0x0045700d,
+ 0x0045800e, 0x05601a0f, 0x050f80ff, 0x073fa009,
+ 0x0700000c, 0x07f00000, 0x074b0018, 0x07600a0a,
+ 0x050f80ff, 0x053fa809, 0x06000001, 0x050f80ff,
+ 0x073fa00a, 0x06000008, 0x07f00000, 0x06604e16,
+ 0x050f80ff, 0x053fa80a, 0x06000001, 0x07f00000,
+ 0x04605816, 0x050f80ff, 0x073fa00a, 0x07000003,
+ 0x06486004, 0x058183c5, 0x04780107, 0x07ffff00,
+ 0x004a8c07, 0x04780107, 0x07ff0000, 0x004a8007,
+ 0x045a0407, 0x045a0404, 0x050040ff, 0x06780008,
+ 0x07ff00ff, 0x0279ff08, 0x0700ff00, 0x014c80ff,
+ 0x044d8008, 0x045a0408, 0x070030ff, 0x028003dc,
+ 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, 0x038603ed, 0x06600013,
+ 0x050f80ff, 0x073fa00a, 0x0600000b, 0x07c00000,
+ 0x070ff0e2, 0x077800ff, 0x033e0000, 0x077400ff,
+ 0x031a0000, 0x05820412, 0x05810412, 0x00012016,
+ 0x02013016, 0x07c00000, 0x070ff0e2, 0x077800ff,
+ 0x033e0000, 0x077400ff, 0x031a0000, 0x078203ff,
+ 0x078103ff, 0x07c00000, 0x03016012, 0x06600016,
+ 0x050f80ff, 0x032fa009, 0x07f00000, 0x06600016,
+ 0x050f80ff, 0x073fa00a, 0x06000008, 0x050f7000,
+ 0x0186040c, 0x01012000, 0x0080040e, 0x00012010,
+ 0x02013010, 0x04600816, 0x050f80ff, 0x073fa009,
+ 0x06000007, 0x0647f00e, 0x007a010e, 0x04000101,
+ 0x04600816, 0x050f80ff, 0x073fa00a, 0x06000007,
+ 0x072e0030, 0x020e0016, 0x07c00000, 0x0391000a,
+ 0x0784001d, 0x022c0004, 0x046c041f, 0x04810432,
+ 0x046c021f, 0x05810482, 0x066c0c1f, 0x04810494,
+ 0x046c081f, 0x058104a6, 0x066c061f, 0x058104c0,
+ 0x0721f000, 0x0202c010, 0x0202a010, 0x02020010,
+ 0x052e5800, 0x02b60079, 0x058d04d8, 0x0380000c,
+ 0x0380001d, 0x040f702a, 0x0086042a, 0x06000010,
+ 0x04001010, 0x0760182b, 0x050f80ff, 0x032fa012,
+ 0x07f00000, 0x0460082a, 0x050f80ff, 0x053fa809,
+ 0x06000001, 0x07780003, 0x03400000, 0x05810472,
+ 0x0560102b, 0x050f80ff, 0x032fa009, 0x0769ff00,
+ 0x076c3000, 0x04810449, 0x056cd000, 0x07818472,
+ 0x05601c2b, 0x050f80ff, 0x032fa009, 0x05444000,
+ 0x07445000, 0x032fa00a, 0x06300002, 0x05000430,
+ 0x0660062a, 0x050f80ff, 0x032fa00a, 0x07f00000,
+ 0x0560262b, 0x050f80ff, 0x032fa009, 0x04001010,
+ 0x04002010, 0x0460262a, 0x050f80ff, 0x022fa01a,
+ 0x07f00000, 0x06600a2a, 0x050f80ff, 0x012fa80a,
+ 0x07f00000, 0x0460082a, 0x050f80ff, 0x012fa80a,
+ 0x0079c101, 0x07ffffff, 0x007a0b01, 0x03800000,
+ 0x05780100, 0x07ffff00, 0x0481046d, 0x02455001,
+ 0x0460082a, 0x050f80ff, 0x012fa80a, 0x0201602a,
+ 0x07a000bb, 0x06420029, 0x0660002a, 0x050f80ff,
+ 0x053fa809, 0x06000001, 0x050f7003, 0x0086047f,
+ 0x01028003, 0x0660002a, 0x050f80ff, 0x073fa00a,
+ 0x06000008, 0x008004c1, 0x00028010, 0x00027010,
+ 0x008004c1, 0x040f702a, 0x00860429, 0x06420029,
0x0660002a, 0x050f80ff, 0x053fa809, 0x06000001,
- 0x050f7003, 0x0186047e, 0x01028003, 0x0660002a,
- 0x050f80ff, 0x073fa00a, 0x06000008, 0x018004c0,
- 0x00028010, 0x00027010, 0x018004c0, 0x040f702a,
+ 0x050f7003, 0x00860491, 0x03026003, 0x0660002a,
+ 0x050f80ff, 0x073fa00a, 0x06000008, 0x008004c1,
+ 0x02026010, 0x02025010, 0x008004c1, 0x040f702a,
0x00860429, 0x06420029, 0x0660002a, 0x050f80ff,
- 0x053fa809, 0x06000001, 0x050f7003, 0x01860490,
- 0x03026003, 0x0660002a, 0x050f80ff, 0x073fa00a,
- 0x06000008, 0x018004c0, 0x02026010, 0x02025010,
- 0x018004c0, 0x040f702a, 0x00860429, 0x06420029,
+ 0x053fa809, 0x06000001, 0x050f7003, 0x018604a3,
+ 0x01024003, 0x0660002a, 0x050f80ff, 0x073fa00a,
+ 0x06000008, 0x018004b7, 0x00024010, 0x02023010,
+ 0x018004b7, 0x040f702a, 0x00860429, 0x06420029,
0x0660002a, 0x050f80ff, 0x053fa809, 0x06000001,
- 0x050f7003, 0x008604a2, 0x01024003, 0x0660002a,
- 0x050f80ff, 0x073fa00a, 0x06000008, 0x008004b6,
- 0x00024010, 0x02023010, 0x008004b6, 0x040f702a,
- 0x00860429, 0x06420029, 0x0660002a, 0x050f80ff,
- 0x053fa809, 0x06000001, 0x050f7003, 0x018604b4,
- 0x01022003, 0x0660002a, 0x050f80ff, 0x073fa00a,
- 0x06000008, 0x008004b6, 0x00022010, 0x00021010,
- 0x0647f020, 0x007a0120, 0x04000101, 0x06a0054a,
- 0x0400802a, 0x06a005fe, 0x02948429, 0x0721f005,
- 0x0080042a, 0x0080042f, 0x0647f020, 0x06486020,
- 0x078184c5, 0x06a0054a, 0x00800429, 0x007a0120,
- 0x04000101, 0x06a0054a, 0x0400802a, 0x06a005fe,
- 0x00800429, 0x0391000a, 0x070ff0e2, 0x077800ff,
- 0x033e0000, 0x077400ff, 0x031a0000, 0x0682842f,
- 0x040fd02a, 0x052e4003, 0x00208010, 0x06a005fe,
- 0x0080042f, 0x0784001d, 0x030150c0, 0x0448e015,
- 0x05818505, 0x0648f015, 0x068184fd, 0x02490015,
- 0x078184f5, 0x00491015, 0x078184ed, 0x00492015,
- 0x0781053c, 0x033d0000, 0x07000003, 0x019b853c,
- 0x033d0000, 0x06000002, 0x073c0000, 0x06000040,
- 0x052e5200, 0x02200004, 0x0380050c, 0x072d0c00,
- 0x039b84e1, 0x052d0800, 0x073c0000, 0x06000020,
- 0x062e5080, 0x03200003, 0x0380050c, 0x072d0300,
- 0x029b84df, 0x052d0200, 0x073c0000, 0x06000010,
- 0x062e5020, 0x02200002, 0x0380050c, 0x072d00c0,
- 0x039b84dd, 0x062d0080, 0x073c0000, 0x06000008,
- 0x062e5008, 0x02200001, 0x0380050c, 0x072d0030,
- 0x039b84db, 0x062d0020, 0x073c0000, 0x06000004,
- 0x062e5002, 0x06000010, 0x0784001d, 0x0392000c,
- 0x050fb000, 0x040f707c, 0x02860538, 0x046c0279,
- 0x0581851d, 0x0448b07a, 0x07810524, 0x06000010,
- 0x04001010, 0x0760187b, 0x050f80ff, 0x032fa012,
- 0x0046b07a, 0x02b60079, 0x03800527, 0x066c0079,
- 0x07810522, 0x040fd07c, 0x06a00619, 0x02800008,
- 0x040fd07c, 0x03800527, 0x0045207a, 0x0279ff7a,
- 0x07ffd7ff, 0x0007d010, 0x0647f07a, 0x0648607a,
- 0x04818532, 0x0448707a, 0x07810530, 0x040f70fb,
- 0x01868530, 0x0644f07a, 0x07a00550, 0x02800538,
- 0x007a017a, 0x04000101, 0x07a00550, 0x0400807c,
- 0x0245f008, 0x06a005fe, 0x07279000, 0x0007e010,
- 0x0207c010, 0x0207a010, 0x008c041c, 0x0380000c,
+ 0x050f7003, 0x008604b5, 0x01022003, 0x0660002a,
+ 0x050f80ff, 0x073fa00a, 0x06000008, 0x018004b7,
+ 0x00022010, 0x00021010, 0x0647f020, 0x007a0120,
+ 0x04000101, 0x07a0054d, 0x0400802a, 0x07a00605,
+ 0x02948429, 0x0721f005, 0x0080042a, 0x00800431,
+ 0x0647f020, 0x06486020, 0x078184c6, 0x07a0054d,
+ 0x00800429, 0x007a0120, 0x04000101, 0x07a0054d,
+ 0x0400802a, 0x07a00605, 0x00800429, 0x0391001d,
+ 0x070ff0e2, 0x077800ff, 0x033e0000, 0x077400ff,
+ 0x031a0000, 0x06828431, 0x040fd02a, 0x052e4003,
+ 0x00208010, 0x07a00605, 0x00800431, 0x0784001d,
+ 0x030150c0, 0x0448e015, 0x05818506, 0x0648f015,
+ 0x068184fe, 0x02490015, 0x078184f6, 0x00491015,
+ 0x078184ee, 0x00492015, 0x06810540, 0x033d0000,
+ 0x07000003, 0x009b8540, 0x033d0000, 0x06000002,
+ 0x073c0000, 0x06000040, 0x052e5200, 0x02200004,
+ 0x0280050d, 0x072d0c00, 0x039b84e2, 0x052d0800,
+ 0x073c0000, 0x06000020, 0x062e5080, 0x03200003,
+ 0x0280050d, 0x072d0300, 0x029b84e0, 0x052d0200,
+ 0x073c0000, 0x06000010, 0x062e5020, 0x02200002,
+ 0x0280050d, 0x072d00c0, 0x039b84de, 0x062d0080,
+ 0x073c0000, 0x06000008, 0x062e5008, 0x02200001,
+ 0x0280050d, 0x072d0030, 0x029b84dc, 0x062d0020,
+ 0x073c0000, 0x06000004, 0x062e5002, 0x06000010,
+ 0x0784001d, 0x0392000c, 0x050fb000, 0x040f707c,
+ 0x03860539, 0x046c0279, 0x0581851e, 0x0448b07a,
+ 0x06810525, 0x06000010, 0x04001010, 0x0760187b,
+ 0x050f80ff, 0x032fa012, 0x0046b07a, 0x02b60079,
+ 0x03800528, 0x066c0079, 0x06810523, 0x040fd07c,
+ 0x07a00622, 0x02800008, 0x040fd07c, 0x03800528,
+ 0x0045207a, 0x0279ff7a, 0x07ffd7ff, 0x0007d010,
+ 0x0647f07a, 0x0648607a, 0x05818533, 0x0448707a,
+ 0x06810531, 0x040f70fb, 0x00868531, 0x0644f07a,
+ 0x07a00553, 0x03800539, 0x007a017a, 0x04000101,
+ 0x07a00553, 0x0400807c, 0x0245f008, 0x07a00605,
+ 0x07279000, 0x0007e010, 0x0207c010, 0x0207a010,
+ 0x008c041c, 0x058d04d8, 0x0380000c, 0x0380001d,
0x0392000c, 0x070ff0e2, 0x077800ff, 0x033e0000,
- 0x077400ff, 0x031a0000, 0x0582853c, 0x070fc0ff,
- 0x052e400c, 0x00208020, 0x06a005fe, 0x0380053c,
+ 0x077400ff, 0x031a0000, 0x04828540, 0x070fc0ff,
+ 0x052e400c, 0x00208020, 0x07a00605, 0x02800540,
0x06000020, 0x05001014, 0x0460082a, 0x050f80ff,
0x032fa012, 0x07c00000, 0x0600007a, 0x040010a2,
0x044b0801, 0x070ff014, 0x065a0001, 0x0460087c,
0x050f80ff, 0x032fa012, 0x07c00000, 0x050f7024,
- 0x02860564, 0x070ff0e2, 0x077800ff, 0x033e0000,
+ 0x02860567, 0x070ff0e2, 0x077800ff, 0x033e0000,
0x077400ff, 0x031a0000, 0x04828013, 0x0721f006,
- 0x0302a024, 0x028005ad, 0x050f7022, 0x02860573,
- 0x070ff0e2, 0x077800ff, 0x033e0000, 0x077400ff,
- 0x031a0000, 0x04828013, 0x0302a022, 0x06a005b9,
- 0x04488020, 0x0781059c, 0x040fd02a, 0x0202a010,
- 0x02020010, 0x040f7026, 0x03860581, 0x0202a026,
- 0x06a005b9, 0x04488020, 0x0581857d, 0x0621f001,
- 0x00683e20, 0x048185ae, 0x0280059d, 0x040fd02a,
- 0x0202a010, 0x0002b010, 0x02020010, 0x050f7028,
- 0x028605b6, 0x0621f002, 0x0302a028, 0x028005ad,
+ 0x0302a024, 0x038005b2, 0x050f7022, 0x03860577,
0x070ff0e2, 0x077800ff, 0x033e0000, 0x077400ff,
- 0x031a0000, 0x04828013, 0x050f7024, 0x02860591,
- 0x0721f006, 0x0302a024, 0x028005ad, 0x050f7022,
- 0x028605b6, 0x0302a022, 0x06a005b9, 0x04488020,
- 0x0781059c, 0x040fd02a, 0x0202a010, 0x0002b010,
- 0x02020010, 0x028005b6, 0x0621f004, 0x070ff0e2,
- 0x077800ff, 0x033e0000, 0x077400ff, 0x031a0000,
- 0x048285a8, 0x01208060, 0x0600902a, 0x04002020,
- 0x07a00605, 0x028005b6, 0x0202a010, 0x02020010,
- 0x0002b010, 0x0721f000, 0x028005b6, 0x06a005b9,
- 0x0400102a, 0x0245f001, 0x06a005bf, 0x050f801e,
- 0x0320000a, 0x022017d0, 0x032fa012, 0x072e5c00,
- 0x008c041c, 0x058d04d7, 0x02800013, 0x0460082a,
- 0x050f80ff, 0x022fa031, 0x03020000, 0x0102b005,
- 0x07c00000, 0x01200100, 0x079a05c3, 0x060f0001,
- 0x07c00000, 0x07420000, 0x058185c0, 0x060fc010,
- 0x02800619, 0x0392001d, 0x0207c02f, 0x0460087c,
+ 0x031a0000, 0x04828013, 0x0302a022, 0x06a005bf,
+ 0x04488020, 0x068105a1, 0x040fd02a, 0x0202a010,
+ 0x02020010, 0x038005be, 0x040f7026, 0x02860586,
+ 0x0202a026, 0x06a005bf, 0x04488020, 0x05818581,
+ 0x0621f001, 0x00683e20, 0x048185b3, 0x028005a2,
+ 0x040fd02a, 0x0202a010, 0x0002b010, 0x02020010,
+ 0x038005be, 0x050f7028, 0x038605bb, 0x0621f002,
+ 0x0302a028, 0x038005b2, 0x070ff0e2, 0x077800ff,
+ 0x033e0000, 0x077400ff, 0x031a0000, 0x04828013,
+ 0x050f7024, 0x03860596, 0x0721f006, 0x0302a024,
+ 0x038005b2, 0x050f7022, 0x038605bb, 0x0302a022,
+ 0x06a005bf, 0x04488020, 0x068105a1, 0x040fd02a,
+ 0x0202a010, 0x0002b010, 0x02020010, 0x038005be,
+ 0x0621f004, 0x070ff0e2, 0x077800ff, 0x033e0000,
+ 0x077400ff, 0x031a0000, 0x048285ad, 0x01208060,
+ 0x0600902a, 0x04002020, 0x06a0060d, 0x038005bb,
+ 0x0202a010, 0x02020010, 0x0002b010, 0x0721f000,
+ 0x038005bb, 0x06a005bf, 0x0400102a, 0x0245f001,
+ 0x07a005c5, 0x050f801e, 0x0320000a, 0x022017d0,
+ 0x032fa012, 0x072e5c00, 0x008c041c, 0x058d04d8,
+ 0x02800013, 0x0380001d, 0x0460082a, 0x050f80ff,
+ 0x022fa031, 0x03020000, 0x0102b005, 0x07c00000,
+ 0x07300000, 0x06000008, 0x079a05ca, 0x060f0001,
+ 0x07c00000, 0x07420000, 0x048185c7, 0x060fc010,
+ 0x03800622, 0x0392001d, 0x0207c02f, 0x0460087c,
0x050f80ff, 0x032fa039, 0x0307a000, 0x0107b005,
0x0307f006, 0x0660007c, 0x050020ff, 0x050f80ff,
- 0x032fa011, 0x0302f000, 0x008685df, 0x0202f001,
- 0x018685dd, 0x0002e010, 0x0660187f, 0x050f80ff,
- 0x073fa00a, 0x06000008, 0x028005e5, 0x0002e001,
- 0x028005e5, 0x040f7001, 0x038605d8, 0x0760002e,
+ 0x032fa011, 0x0302f000, 0x008685e6, 0x0202f001,
+ 0x018685e4, 0x0002e010, 0x0660187f, 0x050f80ff,
+ 0x073fa00a, 0x06000008, 0x028005ec, 0x0002e001,
+ 0x028005ec, 0x040f7001, 0x028605df, 0x0760002e,
0x050f80ff, 0x012fa80a, 0x0002e001, 0x06000010,
0x04001010, 0x040f8002, 0x032fa012, 0x06279001,
0x0400107c, 0x060ff0fb, 0x054bc8ff, 0x065a0001,
- 0x06a005bf, 0x0320000a, 0x022011f4, 0x00202004,
- 0x06003010, 0x0249507a, 0x078105f6, 0x0020200e,
+ 0x07a005c5, 0x0320000a, 0x022011f4, 0x00202004,
+ 0x06003010, 0x0249507a, 0x068105fd, 0x0020200e,
0x050f8078, 0x032fa022, 0x030e5077, 0x008c041c,
- 0x058d04d7, 0x040f702f, 0x00868013, 0x0380001d,
- 0x03201100, 0x05848603, 0x06420001, 0x058185ff,
- 0x0280061c, 0x020e0008, 0x07c00000, 0x050fd009,
- 0x040fd008, 0x03201100, 0x0584860c, 0x06420001,
- 0x04818608, 0x0280061c, 0x007a0102, 0x04000101,
- 0x05600809, 0x050f80ff, 0x073fa00a, 0x06000001,
- 0x020e0008, 0x05848617, 0x06420001, 0x04818613,
- 0x0280061c, 0x030e0009, 0x07c00000, 0x052e400f,
- 0x00208040, 0x028005fe, 0x070fc0ff, 0x040f8010,
- 0x032fa009, 0x0280061f, 0x45c0c10d, 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, 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,
- 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,
+ 0x058d04d8, 0x040f702f, 0x00868013, 0x0380001d,
+ 0x05301000, 0x06000008, 0x0484860b, 0x06420001,
+ 0x04818607, 0x02800625, 0x020e0008, 0x07c00000,
+ 0x050fd009, 0x040fd008, 0x05301000, 0x06000008,
+ 0x04848615, 0x06420001, 0x05818611, 0x02800625,
+ 0x007a0102, 0x04000101, 0x05600809, 0x050f80ff,
+ 0x073fa00a, 0x06000001, 0x020e0008, 0x04848620,
+ 0x06420001, 0x0481861c, 0x02800625, 0x030e0009,
+ 0x07c00000, 0x052e400f, 0x00208040, 0x03800605,
+ 0x070fc0ff, 0x040f8010, 0x032fa009, 0x03800628,
+ 0x0c83b152, 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, 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, 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, 0x00000000,
0x00000000, 0x00000000, 0x00000000, 0x00000000,
0x00000000, 0x00000000, 0x00000000, 0x00000000,
0x00000000, 0x00000000, 0x00000000, 0x00000000,
@@ -16714,7 +17230,7 @@ static const uint32_t isp_2500_risc_code[] = {
0x00000000, 0x00000000, 0x00000000, 0x00000000,
0x00000000, 0x00000000, 0x00000000, 0x00000000,
0x00000000, 0x00000000, 0x00000000, 0x00000000,
- 0x00000000, 0x00000000, 0x00000000, 0x000f1f01,
- 0xc3002003, 0xb9f6ad13, 0xffffb7ea, 0xffeeae82
+ 0x00000000, 0x000f1f01, 0xc3002003, 0xb9f6ad13,
+ 0xffffb7ea, 0xffee6df3
};
#endif
diff --git a/sys/dev/ixgbe/if_ix.c b/sys/dev/ixgbe/if_ix.c
index 5e16fbd..ddee699 100644
--- a/sys/dev/ixgbe/if_ix.c
+++ b/sys/dev/ixgbe/if_ix.c
@@ -2122,7 +2122,7 @@ ixgbe_mc_array_itr(struct ixgbe_hw *hw, u8 **update_ptr, u32 *vmdq)
mta = (struct ixgbe_mc_addr *)*update_ptr;
*vmdq = mta->vmdq;
- *update_ptr = (u8*)(mta + 1);;
+ *update_ptr = (u8*)(mta + 1);
return (mta->addr);
}
diff --git a/sys/dev/ixgbe/ixgbe_common.c b/sys/dev/ixgbe/ixgbe_common.c
index feb74f6..c302071 100644
--- a/sys/dev/ixgbe/ixgbe_common.c
+++ b/sys/dev/ixgbe/ixgbe_common.c
@@ -1902,7 +1902,7 @@ static s32 ixgbe_ready_eeprom(struct ixgbe_hw *hw)
usec_delay(5);
ixgbe_standby_eeprom(hw);
- };
+ }
/*
* On some parts, SPI write time could vary from 0-20mSec on 3.3V
@@ -1988,7 +1988,7 @@ static void ixgbe_shift_out_eeprom_bits(struct ixgbe_hw *hw, u16 data,
* EEPROM
*/
mask = mask >> 1;
- };
+ }
/* We leave the "DI" bit set to "0" when we leave this routine. */
eec &= ~IXGBE_EEC_DI;
diff --git a/sys/dev/ixl/if_ixl.c b/sys/dev/ixl/if_ixl.c
index 2ac5b92..36d79ad 100644
--- a/sys/dev/ixl/if_ixl.c
+++ b/sys/dev/ixl/if_ixl.c
@@ -3380,7 +3380,7 @@ ixl_add_sysctls_eth_stats(struct sysctl_ctx_list *ctx,
};
struct ixl_sysctl_info *entry = ctls;
- while (entry->stat != 0)
+ while (entry->stat != NULL)
{
SYSCTL_ADD_UQUAD(ctx, child, OID_AUTO, entry->name,
CTLFLAG_RD, entry->stat,
@@ -3439,7 +3439,7 @@ ixl_add_sysctls_mac_stats(struct sysctl_ctx_list *ctx,
};
struct ixl_sysctl_info *entry = ctls;
- while (entry->stat != 0)
+ while (entry->stat != NULL)
{
SYSCTL_ADD_UQUAD(ctx, stat_list, OID_AUTO, entry->name,
CTLFLAG_RD, entry->stat,
diff --git a/sys/dev/ixl/if_ixlv.c b/sys/dev/ixl/if_ixlv.c
index 51d4e95..8c4a901 100644
--- a/sys/dev/ixl/if_ixlv.c
+++ b/sys/dev/ixl/if_ixlv.c
@@ -2832,7 +2832,7 @@ ixlv_add_sysctls(struct ixlv_sc *sc)
{0,0,0}
};
struct ixl_sysctl_info *entry = ctls;
- while (entry->stat != 0)
+ while (entry->stat != NULL)
{
SYSCTL_ADD_QUAD(ctx, child, OID_AUTO, entry->name,
CTLFLAG_RD, entry->stat,
diff --git a/sys/dev/kbdmux/kbdmux.c b/sys/dev/kbdmux/kbdmux.c
index a21b37c..0dce120 100644
--- a/sys/dev/kbdmux/kbdmux.c
+++ b/sys/dev/kbdmux/kbdmux.c
@@ -33,6 +33,7 @@
#include "opt_compat.h"
#include "opt_kbd.h"
+#include "opt_kbdmux.h"
#include <sys/param.h>
#include <sys/bus.h>
@@ -54,6 +55,13 @@
#include <sys/taskqueue.h>
#include <sys/uio.h>
#include <dev/kbd/kbdreg.h>
+
+/* the initial key map, accent map and fkey strings */
+#ifdef KBDMUX_DFLT_KEYMAP
+#define KBD_DFLT_KEYMAP
+#include "kbdmuxmap.h"
+#endif
+
#include <dev/kbd/kbdtables.h>
#define KEYBOARD_NAME "kbdmux"
diff --git a/sys/dev/mii/mii_physubr.c b/sys/dev/mii/mii_physubr.c
index 84f4f44..4233159 100644
--- a/sys/dev/mii/mii_physubr.c
+++ b/sys/dev/mii/mii_physubr.c
@@ -154,7 +154,7 @@ mii_phy_setmedia(struct mii_softc *sc)
case (IFM_FDX | IFM_FLOW):
index = MII_MEDIA_10_T_FDX;
break;
- };
+ }
break;
case IFM_100_TX:
diff --git a/sys/dev/mmc/host/dwmmc.c b/sys/dev/mmc/host/dwmmc.c
index 5b24a6d..f55d3e6 100644
--- a/sys/dev/mmc/host/dwmmc.c
+++ b/sys/dev/mmc/host/dwmmc.c
@@ -191,7 +191,7 @@ dwmmc_ctrl_reset(struct dwmmc_softc *sc, int reset_bits)
if (!(READ4(sc, SDMMC_CTRL) & reset_bits))
return (0);
DELAY(10);
- };
+ }
device_printf(sc->dev, "Reset failed\n");
diff --git a/sys/dev/mvs/mvs.c b/sys/dev/mvs/mvs.c
index b89db41..bdadf39 100644
--- a/sys/dev/mvs/mvs.c
+++ b/sys/dev/mvs/mvs.c
@@ -506,7 +506,7 @@ mvs_set_edma_mode(device_t dev, enum mvs_edma_mode mode)
device_printf(dev, "stopping EDMA engine failed\n");
break;
}
- };
+ }
}
ch->curr_mode = mode;
ch->fbs_enabled = 0;
diff --git a/sys/dev/nand/nand.c b/sys/dev/nand/nand.c
index 113953e..ae64121 100644
--- a/sys/dev/nand/nand.c
+++ b/sys/dev/nand/nand.c
@@ -811,7 +811,7 @@ nand_erase_blocks(struct nand_chip *chip, off_t offset, size_t len)
err = ENXIO;
block++;
- };
+ }
NANDBUS_UNLOCK(nandbus);
diff --git a/sys/dev/nand/nandsim_chip.c b/sys/dev/nand/nandsim_chip.c
index 3241e1a..5b568ab 100644
--- a/sys/dev/nand/nandsim_chip.c
+++ b/sys/dev/nand/nandsim_chip.c
@@ -309,7 +309,7 @@ nandsim_loop(void *arg)
links);
destroy_event(ev);
wakeup(ev);
- };
+ }
NANDSIM_CHIP_UNLOCK(chip);
nandsim_log(chip, NANDSIM_LOG_SM, "destroyed\n");
mtx_destroy(&chip->ns_lock);
diff --git a/sys/dev/ncr/ncr.c b/sys/dev/ncr/ncr.c
index 111cd69..8cf142f 100644
--- a/sys/dev/ncr/ncr.c
+++ b/sys/dev/ncr/ncr.c
@@ -2906,7 +2906,7 @@ static void ncr_script_fill (struct script * scr, struct scripth * scrh)
*p++ =RADDR (dsa);
*p++ =SCR_CALL;
*p++ =PADDR (trysel);
- };
+ }
*p++ =SCR_JUMP;
*p++ =PADDRH(tryloop);
@@ -2927,7 +2927,7 @@ static void ncr_script_fill (struct script * scr, struct scripth * scrh)
*p++ =PADDR (checkatn);
*p++ =SCR_MOVE_TBL ^ SCR_DATA_IN;
*p++ =offsetof (struct dsb, data[i]);
- };
+ }
*p++ =SCR_CALL;
*p++ =PADDR (checkatn);
@@ -2951,7 +2951,7 @@ static void ncr_script_fill (struct script * scr, struct scripth * scrh)
*p++ =PADDR (dispatch);
*p++ =SCR_MOVE_TBL ^ SCR_DATA_OUT;
*p++ =offsetof (struct dsb, data[i]);
- };
+ }
*p++ =SCR_CALL;
*p++ =PADDR (dispatch);
@@ -2997,7 +2997,7 @@ static void ncr_script_copy_and_bind (ncb_p np, ncrcmd *src, ncrcmd *dst, int le
device_printf(np->dev, "ERROR0 IN SCRIPT at %d.\n",
(int)(src - start - 1));
DELAY (1000000);
- };
+ }
if (DEBUG_FLAGS & DEBUG_SCRIPT)
printf ("%p: <%x>\n",
@@ -3062,7 +3062,7 @@ static void ncr_script_copy_and_bind (ncb_p np, ncrcmd *src, ncrcmd *dst, int le
default:
relocs = 0;
break;
- };
+ }
if (relocs) {
while (relocs--) {
@@ -3110,7 +3110,7 @@ static void ncr_script_copy_and_bind (ncb_p np, ncrcmd *src, ncrcmd *dst, int le
offset += 4;
}
- };
+ }
}
/*==========================================================
@@ -3614,7 +3614,7 @@ ncr_attach (device_t dev)
usrsync = np->maxsync;
if (usrsync < np->minsync)
usrsync = np->minsync;
- };
+ }
usrwide = (SCSI_NCR_MAX_WIDE);
if (usrwide > np->maxwide) usrwide=np->maxwide;
@@ -3719,7 +3719,7 @@ ncr_attach (device_t dev)
if (ncr_snooptest (np)) {
printf ("CACHE INCORRECTLY CONFIGURED.\n");
return EINVAL;
- };
+ }
/*
** Install the interrupt handler.
@@ -3817,7 +3817,7 @@ ncr_intr_locked(ncb_p np)
} while (INB(nc_istat) & (INTF|SIP|DIP));
np->ticks = 100;
- };
+ }
if (DEBUG_FLAGS & DEBUG_TINY) printf ("]\n");
}
@@ -3892,7 +3892,7 @@ ncr_action (struct cam_sim *sim, union ccb *ccb)
ccb->ccb_h.status = CAM_RESRC_UNAVAIL;
xpt_done(ccb);
return;
- };
+ }
cp->ccb = ccb;
@@ -3923,8 +3923,8 @@ ncr_action (struct cam_sim *sim, union ccb *ccb)
!= tp->tinfo.goal.offset)) {
tp->nego_cp = cp;
nego = NS_SYNC;
- };
- };
+ }
+ }
/*---------------------------------------------------
**
@@ -3950,11 +3950,11 @@ ncr_action (struct cam_sim *sim, union ccb *ccb)
if (DEBUG_FLAGS & DEBUG_TAGS) {
PRINT_ADDR(ccb);
printf ("using tag #%d.\n", cp->tag);
- };
- };
+ }
+ }
} else {
cp->tag=0;
- };
+ }
/*----------------------------------------------------
**
@@ -4001,7 +4001,7 @@ ncr_action (struct cam_sim *sim, union ccb *ccb)
printf (".\n");
};
break;
- };
+ }
/*----------------------------------------------------
**
@@ -4435,7 +4435,7 @@ ncr_complete (ncb_p np, nccb_p cp)
*/
tp->tinfo.goal.period = 0;
tp->tinfo.goal.offset = 0;
- };
+ }
/*
** Check for extended errors.
@@ -4453,10 +4453,10 @@ ncr_complete (ncb_p np, nccb_p cp)
default:
printf ("extended error %d.\n", cp->xerr_status);
break;
- };
+ }
if (cp->host_status==HS_COMPLETE)
cp->host_status = HS_FAIL;
- };
+ }
/*
** Check the status.
@@ -4579,9 +4579,9 @@ ncr_wakeup (ncb_p np, u_long code)
default:
ncr_complete (np, cp);
break;
- };
+ }
cp = cp -> link_nccb;
- };
+ }
}
static void
@@ -4959,7 +4959,7 @@ ncr_setsync(ncb_p np, nccb_p cp, u_char scntl3, u_char sxfer, u_char period)
if (cp->ccb->ccb_h.target_id != target) continue;
cp->sync_status = sxfer;
cp->wide_status = scntl3;
- };
+ }
}
/*==========================================================
@@ -5038,7 +5038,7 @@ static void ncr_setwide (ncb_p np, nccb_p cp, u_char wide, u_char ack)
if (cp->ccb->ccb_h.target_id != target) continue;
cp->sync_status = sxfer;
cp->wide_status = scntl3;
- };
+ }
}
/*==========================================================
@@ -5092,7 +5092,7 @@ ncr_timeout (void *arg)
** Let's try to wake it up.
*/
OUTB (nc_istat, SIGP);
- };
+ }
/*----------------------------------------------------
**
@@ -5120,7 +5120,7 @@ ncr_timeout (void *arg)
"timeout nccb=%p (skip)\n", cp);
cp->phys.header.launch.l_paddr
= NCB_SCRIPT_PHYS (np, skip);
- };
+ }
switch (cp->host_status) {
@@ -5129,14 +5129,14 @@ ncr_timeout (void *arg)
/* FALLTHROUGH */
case HS_DISCONNECT:
cp->host_status=HS_TIMEOUT;
- };
+ }
cp->tag = 0;
/*
** wakeup this nccb.
*/
ncr_complete (np, cp);
- };
+ }
}
callout_reset(&np->timer, step ? step : 1, ncr_timeout, np);
@@ -5150,7 +5150,7 @@ ncr_timeout (void *arg)
if (DEBUG_FLAGS & DEBUG_TINY) printf ("{");
ncr_exception (np);
if (DEBUG_FLAGS & DEBUG_TINY) printf ("}");
- };
+ }
}
/*==========================================================
@@ -5255,7 +5255,7 @@ static void ncr_exception (ncb_p np)
OUTB (nc_istat, INTF);
np->profile.num_fly++;
ncr_wakeup (np, 0);
- };
+ }
if (!(istat & (SIP|DIP))) {
return;
}
@@ -5291,7 +5291,7 @@ static void ncr_exception (ncb_p np)
if (sist & RST) {
ncr_init (np, bootverbose ? "scsi reset" : NULL, HS_RESET);
return;
- };
+ }
/*-------------------------------------------
** selection timeout
@@ -5306,7 +5306,7 @@ static void ncr_exception (ncb_p np)
!(dstat & (MDPE|BF|ABRT|SIR))) {
ncr_int_sto (np);
return;
- };
+ }
/*-------------------------------------------
** Phase mismatch.
@@ -5318,7 +5318,7 @@ static void ncr_exception (ncb_p np)
!(dstat & (MDPE|BF|ABRT|SIR|IID))) {
ncr_int_ma (np, dstat);
return;
- };
+ }
/*----------------------------------------
** move command with length 0
@@ -5335,7 +5335,7 @@ static void ncr_exception (ncb_p np)
*/
OUTL (nc_dsp, NCB_SCRIPT_PHYS (np, no_data));
return;
- };
+ }
/*-------------------------------------------
** Programmed interrupt
@@ -5348,7 +5348,7 @@ static void ncr_exception (ncb_p np)
(INB(nc_dsps) <= SIR_MAX)) {
ncr_int_sir (np);
return;
- };
+ }
/*========================================
** log message for real hard errors
@@ -5369,7 +5369,7 @@ static void ncr_exception (ncb_p np)
((volatile char*)&np->regdump)[i] = INB_OFF(i);
np->regdump.nc_dstat = dstat;
np->regdump.nc_sist = sist;
- };
+ }
/*----------------------------------------
@@ -5413,7 +5413,7 @@ static void ncr_exception (ncb_p np)
OUTB (nc_scr0, HS_UNEXPECTED);
OUTL (nc_dsp, NCB_SCRIPT_PHYS (np, cleanup));
return;
- };
+ }
/*----------------------------------------
** cannot disconnect
@@ -5438,7 +5438,7 @@ static void ncr_exception (ncb_p np)
*/
device_printf(np->dev, "INFO: LDSC while IID.\n");
return;
- };
+ }
device_printf(np->dev, "target %d doesn't release the bus.\n",
INB (nc_sdid)&0x0f);
/*
@@ -5446,7 +5446,7 @@ static void ncr_exception (ncb_p np)
** timeout will do the real work.
*/
return;
- };
+ }
/*----------------------------------------
** single step
@@ -5458,7 +5458,7 @@ static void ncr_exception (ncb_p np)
!(dstat & (MDPE|BF|ABRT|SIR|IID))) {
OUTB (nc_dcntl, np->rv_dcntl | STD);
return;
- };
+ }
/*
** @RECOVER@ HTH, SGE, ABRT.
@@ -5491,11 +5491,11 @@ static void ncr_exception (ncb_p np)
case 12:
printf (" ");
break;
- };
+ }
val = bus_read_1(np->reg_res, i);
printf (" %x%x", val/16, val%16);
if (i%16==15) printf (".\n");
- };
+ }
callout_stop(&np->timer);
@@ -5505,7 +5505,7 @@ static void ncr_exception (ncb_p np)
*/
OUTB (nc_istat, SRST);
return;
- };
+ }
#ifdef NCR_FREEZE
/*
@@ -5556,7 +5556,7 @@ static void ncr_int_sto (ncb_p np)
if (cp) {
cp-> host_status = HS_SEL_TIMEOUT;
ncr_complete (np, cp);
- };
+ }
/*
** repair start queue
@@ -5571,7 +5571,7 @@ static void ncr_int_sto (ncb_p np)
WRITESCRIPT(startpos[0], scratcha);
OUTL (nc_dsp, NCB_SCRIPT_PHYS (np, start));
return;
- };
+ }
ncr_init (np, "selection timeout", HS_FAIL);
}
@@ -5634,7 +5634,7 @@ static void ncr_int_ma (ncb_p np, u_char dstat)
if (INB(nc_scntl3) & EWS) {
if (ss2 & OLF1) rest++;
if (ss2 & ORF1) rest++;
- };
+ }
OUTB (nc_ctest3, np->rv_ctest3 | CLF); /* clear dma fifo */
OUTB (nc_stest3, TE|CSF); /* clear scsi fifo */
@@ -5682,7 +5682,7 @@ static void ncr_int_ma (ncb_p np, u_char dstat)
vdsp_base = np->scripth;
vdsp_off = dsp - np->p_scripth - 8;
nxtdsp = dsp;
- };
+ }
/*
** log the information
@@ -5691,13 +5691,13 @@ static void ncr_int_ma (ncb_p np, u_char dstat)
printf ("P%x%x ",cmd&7, sbcl&7);
printf ("RL=%d D=%d SS0=%x ",
(unsigned) rest, (unsigned) delta, ss0);
- };
+ }
if (DEBUG_FLAGS & DEBUG_PHASE) {
printf ("\nCP=%p CP2=%p DSP=%x NXT=%x VDSP=%p CMD=%x ",
cp, np->header.cp,
dsp,
nxtdsp, (volatile char*)vdsp_base+vdsp_off, cmd);
- };
+ }
/*
** get old startaddress and old length.
@@ -5712,7 +5712,7 @@ static void ncr_int_ma (ncb_p np, u_char dstat)
} else {
tblp = (u_int32_t *) 0;
olen = READSCRIPT_OFF(vdsp_base, vdsp_off) & 0xffffff;
- };
+ }
if (DEBUG_FLAGS & DEBUG_PHASE) {
printf ("OCMD=%x\nTBLP=%p OLEN=%lx OADR=%lx\n",
@@ -5720,7 +5720,7 @@ static void ncr_int_ma (ncb_p np, u_char dstat)
(void *) tblp,
(u_long) olen,
(u_long) oadr);
- };
+ }
/*
** if old phase not dataphase, leave here.
@@ -5742,7 +5742,7 @@ static void ncr_int_ma (ncb_p np, u_char dstat)
OUTB (nc_dcntl, np->rv_dcntl | STD);
return;
- };
+ }
/*
** choose the correct patch area.
@@ -5799,12 +5799,12 @@ static int ncr_show_msg (u_char * msg)
for (i=1;i<8;i++) {
if (i-1>msg[1]) break;
printf ("-%x",msg[i]);
- };
+ }
return (i+1);
} else if ((*msg & 0xf0) == 0x20) {
printf ("-%x",msg[1]);
return (2);
- };
+ }
return (1);
}
@@ -5873,7 +5873,7 @@ static void ncr_int_sir (ncb_p np)
break;
if (DEBUG_FLAGS & DEBUG_RESTART) printf ("- (remove)");
tp->hold_cp = cp = (nccb_p) 0;
- };
+ }
if (cp) {
if (DEBUG_FLAGS & DEBUG_RESTART)
@@ -5881,7 +5881,7 @@ static void ncr_int_sir (ncb_p np)
OUTL (nc_dsa, CCB_PHYS (cp, phys));
OUTL (nc_dsp, NCB_SCRIPTH_PHYS (np, getcc));
return;
- };
+ }
/*
** no job, resume normal processing
@@ -6001,7 +6001,7 @@ static void ncr_int_sir (ncb_p np)
PRINT_ADDR(cp->ccb);
printf ("negotiation failed sir=%x status=%x.\n",
num, cp->nego_status);
- };
+ }
/*
** any error in negotiation:
@@ -6017,7 +6017,7 @@ static void ncr_int_sir (ncb_p np)
ncr_setwide (np, cp, 0, 0);
break;
- };
+ }
np->msgin [0] = MSG_NOOP;
np->msgout[0] = MSG_NOOP;
cp->nego_status = 0;
@@ -6034,7 +6034,7 @@ static void ncr_int_sir (ncb_p np)
printf ("sync msgin: ");
(void) ncr_show_msg (np->msgin);
printf (".\n");
- };
+ }
/*
** get requested values.
@@ -6100,14 +6100,14 @@ static void ncr_int_sir (ncb_p np)
*/
ncr_setsync (np,cp,scntl3,(fak<<5)|ofs, per);
OUTL (nc_dsp, NCB_SCRIPT_PHYS (np, clrack));
- };
+ }
return;
case NS_WIDE:
ncr_setwide (np, cp, 0, 0);
break;
- };
- };
+ }
+ }
/*
** It was a request. Set value and
@@ -6148,7 +6148,7 @@ static void ncr_int_sir (ncb_p np)
printf ("wide msgin: ");
(void) ncr_show_msg (np->msgin);
printf (".\n");
- };
+ }
/*
** get requested values.
@@ -6189,14 +6189,14 @@ static void ncr_int_sir (ncb_p np)
*/
ncr_setwide (np, cp, wide, 1);
OUTL (nc_dsp, NCB_SCRIPT_PHYS (np, clrack));
- };
+ }
return;
case NS_SYNC:
ncr_setsync (np, cp, 0, 0xe0, 0);
break;
- };
- };
+ }
+ }
/*
** It was a request, set value and
@@ -6338,7 +6338,7 @@ static void ncr_int_sir (ncb_p np)
*/
OUTL (nc_dsp, NCB_SCRIPT_PHYS (np, reselect));
return;
- };
+ }
/*
** else remove the interrupt.
@@ -6347,7 +6347,7 @@ static void ncr_int_sir (ncb_p np)
device_printf(np->dev, "queue empty.\n");
WRITESCRIPT(start1[0], SCR_INT ^ IFFALSE (0));
break;
- };
+ }
out:
OUTB (nc_dcntl, np->rv_dcntl | STD);
@@ -6643,7 +6643,7 @@ static int ncr_scatter
csize -= size;
datalen -= size;
paddr = vtophys (vaddr);
- };
+ }
if(DEBUG_FLAGS & DEBUG_SCATTER)
printf ("\tseg #%d addr=%x size=%d (rest=%d).\n",
@@ -6661,7 +6661,7 @@ static int ncr_scatter
printf("ncr?: scatter/gather failed (residue=%d).\n",
(unsigned) datalen);
return (-1);
- };
+ }
return (segment);
}
@@ -6697,7 +6697,7 @@ static int ncr_regtest (struct ncb* np)
printf ("CACHE TEST FAILED: reg dstat-sstat2 readback %x.\n",
(unsigned) data);
return (0x10);
- };
+ }
return (0);
}
#endif
@@ -6753,7 +6753,7 @@ static int ncr_snooptest (struct ncb* np)
if (i>=NCR_SNOOP_TIMEOUT) {
printf ("CACHE TEST FAILED: timeout.\n");
return (0x20);
- };
+ }
/*
** Check termination position.
*/
@@ -6763,7 +6763,7 @@ static int ncr_snooptest (struct ncb* np)
(u_long) NCB_SCRIPTH_PHYS (np, snooptest), (u_long) pc,
(u_long) NCB_SCRIPTH_PHYS (np, snoopend) +8);
return (0x40);
- };
+ }
/*
** Show results.
*/
@@ -6771,17 +6771,17 @@ static int ncr_snooptest (struct ncb* np)
printf ("CACHE TEST FAILED: host wrote %d, ncr read %d.\n",
(int) host_wr, (int) ncr_rd);
err |= 1;
- };
+ }
if (host_rd != ncr_wr) {
printf ("CACHE TEST FAILED: ncr wrote %d, host read %d.\n",
(int) ncr_wr, (int) host_rd);
err |= 2;
- };
+ }
if (ncr_bk != ncr_wr) {
printf ("CACHE TEST FAILED: ncr wrote %d, read back %d.\n",
(int) ncr_wr, (int) ncr_bk);
err |= 4;
- };
+ }
return (err);
}
diff --git a/sys/dev/nfe/if_nfe.c b/sys/dev/nfe/if_nfe.c
index 0a37079..58fee0b 100644
--- a/sys/dev/nfe/if_nfe.c
+++ b/sys/dev/nfe/if_nfe.c
@@ -2590,7 +2590,7 @@ nfe_setmulti(struct nfe_softc *sc)
bzero(addr, ETHER_ADDR_LEN);
bzero(mask, ETHER_ADDR_LEN);
goto done;
- };
+ }
if_multiaddr_array(ifp, mta, &mcnt, mc_count);
diff --git a/sys/dev/oce/oce_mbox.c b/sys/dev/oce/oce_mbox.c
index 01bd4cf..cb2ae81 100644
--- a/sys/dev/oce/oce_mbox.c
+++ b/sys/dev/oce/oce_mbox.c
@@ -2113,7 +2113,7 @@ oce_get_profile_config(POCE_SOFTC sc, uint32_t max_rss)
sc->nrssqs = MIN(sc->nrssqs, max_rss);
else
sc->nrssqs = max_rss;
- sc->nrqs = sc->nrssqs + 1; /* 1 for def RX */;
+ sc->nrqs = sc->nrssqs + 1; /* 1 for def RX */
}
error:
@@ -2213,7 +2213,7 @@ oce_get_func_config(POCE_SOFTC sc)
sc->nrssqs = MIN(sc->nrssqs, max_rss);
else
sc->nrssqs = max_rss;
- sc->nrqs = sc->nrssqs + 1; /* 1 for def RX */;
+ sc->nrqs = sc->nrssqs + 1; /* 1 for def RX */
}
error:
oce_dma_free(sc, &dma);
diff --git a/sys/dev/oce/oce_sysctl.c b/sys/dev/oce/oce_sysctl.c
index 3df7d0d..61adf93 100644
--- a/sys/dev/oce/oce_sysctl.c
+++ b/sys/dev/oce/oce_sysctl.c
@@ -331,7 +331,7 @@ static void oce_fill_flash_img_data(POCE_SOFTC sc, const struct flash_sec_info *
case IMG_PXEBIOS:
pimg->optype = 3;
if (IS_BE3(sc)) {
- pimg->img_offset = 13107200;;
+ pimg->img_offset = 13107200;
pimg->img_size = 524288;
}
break;
diff --git a/sys/dev/ow/ow.c b/sys/dev/ow/ow.c
index ea78890..f5b5c6b 100644
--- a/sys/dev/ow/ow.c
+++ b/sys/dev/ow/ow.c
@@ -413,7 +413,7 @@ again:
foundfp(dev, probed);
last_mask = probed;
prior = last;
- };
+ }
ow_release_bus(dev, dev);
return (0);
diff --git a/sys/dev/patm/if_patm_attach.c b/sys/dev/patm/if_patm_attach.c
index ed48bda..29a2a87 100644
--- a/sys/dev/patm/if_patm_attach.c
+++ b/sys/dev/patm/if_patm_attach.c
@@ -189,7 +189,7 @@ patm_attach(device_t dev)
IFP2IFATM(sc->ifp)->mib.hw_version = 0;
IFP2IFATM(sc->ifp)->mib.sw_version = 0;
IFP2IFATM(sc->ifp)->mib.vpi_bits = PATM_VPI_BITS;
- IFP2IFATM(sc->ifp)->mib.vci_bits = 0; /* set below */;
+ IFP2IFATM(sc->ifp)->mib.vci_bits = 0; /* set below */
IFP2IFATM(sc->ifp)->mib.max_vpcs = 0;
IFP2IFATM(sc->ifp)->mib.max_vccs = 0; /* set below */
IFP2IFATM(sc->ifp)->mib.media = IFM_ATM_UNKNOWN;
diff --git a/sys/dev/pcf/pcf.c b/sys/dev/pcf/pcf.c
index f9252b5..cf2b65d 100644
--- a/sys/dev/pcf/pcf.c
+++ b/sys/dev/pcf/pcf.c
@@ -466,7 +466,7 @@ pcf_read(device_t dev, char *buf, int len, int *read, int last,
len --;
bytes ++;
- };
+ }
error:
*read = bytes;
diff --git a/sys/dev/pci/pci.c b/sys/dev/pci/pci.c
index 8343181..fbe9abd 100644
--- a/sys/dev/pci/pci.c
+++ b/sys/dev/pci/pci.c
@@ -161,6 +161,7 @@ static device_method_t pci_methods[] = {
DEVMETHOD(bus_release_resource, pci_release_resource),
DEVMETHOD(bus_activate_resource, pci_activate_resource),
DEVMETHOD(bus_deactivate_resource, pci_deactivate_resource),
+ DEVMETHOD(bus_child_deleted, pci_child_deleted),
DEVMETHOD(bus_child_detached, pci_child_detached),
DEVMETHOD(bus_child_pnpinfo_str, pci_child_pnpinfo_str_method),
DEVMETHOD(bus_child_location_str, pci_child_location_str_method),
@@ -5194,7 +5195,7 @@ pci_deactivate_resource(device_t dev, device_t child, int type,
}
void
-pci_delete_child(device_t dev, device_t child)
+pci_child_deleted(device_t dev, device_t child)
{
struct resource_list_entry *rle;
struct resource_list *rl;
@@ -5203,12 +5204,13 @@ pci_delete_child(device_t dev, device_t child)
dinfo = device_get_ivars(child);
rl = &dinfo->resources;
- if (device_is_attached(child))
- device_detach(child);
-
/* Turn off access to resources we're about to free */
- pci_write_config(child, PCIR_COMMAND, pci_read_config(child,
- PCIR_COMMAND, 2) & ~(PCIM_CMD_MEMEN | PCIM_CMD_PORTEN), 2);
+ if (bus_child_present(child) != 0) {
+ pci_write_config(child, PCIR_COMMAND, pci_read_config(child,
+ PCIR_COMMAND, 2) & ~(PCIM_CMD_MEMEN | PCIM_CMD_PORTEN), 2);
+
+ pci_disable_busmaster(child);
+ }
/* Free all allocated resources */
STAILQ_FOREACH(rle, rl, link) {
@@ -5229,7 +5231,6 @@ pci_delete_child(device_t dev, device_t child)
}
resource_list_free(rl);
- device_delete_child(dev, child);
pci_freecfg(dinfo);
}
diff --git a/sys/dev/pci/pci_iov.c b/sys/dev/pci/pci_iov.c
index 8189ffb..d216557 100644
--- a/sys/dev/pci/pci_iov.c
+++ b/sys/dev/pci/pci_iov.c
@@ -640,7 +640,7 @@ pci_iov_enumerate_vfs(struct pci_devinfo *dinfo, const nvlist_t *config,
error = PCI_IOV_ADD_VF(dev, i, driver_config);
if (error != 0) {
device_printf(dev, "Failed to add VF %d\n", i);
- pci_delete_child(bus, vf);
+ device_delete_child(bus, vf);
}
}
@@ -833,7 +833,7 @@ pci_iov_delete(struct cdev *cdev)
vf = devlist[i];
if (pci_iov_is_child_vf(iov, vf))
- pci_delete_child(bus, vf);
+ device_delete_child(bus, vf);
}
PCI_IOV_UNINIT(dev);
diff --git a/sys/dev/pci/pci_private.h b/sys/dev/pci/pci_private.h
index 9b018ab..e11dcfa 100644
--- a/sys/dev/pci/pci_private.h
+++ b/sys/dev/pci/pci_private.h
@@ -57,7 +57,6 @@ void pci_add_resources(device_t bus, device_t dev, int force,
uint32_t prefetchmask);
void pci_add_resources_ea(device_t bus, device_t dev, int alloc_iov);
int pci_attach_common(device_t dev);
-void pci_delete_child(device_t dev, device_t child);
void pci_driver_added(device_t dev, driver_t *driver);
int pci_ea_is_enabled(device_t dev, int rid);
int pci_print_child(device_t dev, device_t child);
@@ -122,6 +121,7 @@ struct pci_devinfo *pci_read_device(device_t pcib, int d, int b, int s, int f,
size_t size);
void pci_print_verbose(struct pci_devinfo *dinfo);
int pci_freecfg(struct pci_devinfo *dinfo);
+void pci_child_deleted(device_t dev, device_t child);
void pci_child_detached(device_t dev, device_t child);
int pci_child_location_str_method(device_t cbdev, device_t child,
char *buf, size_t buflen);
diff --git a/sys/dev/pdq/pdq.c b/sys/dev/pdq/pdq.c
index 2f44439..4fb98db 100644
--- a/sys/dev/pdq/pdq.c
+++ b/sys/dev/pdq/pdq.c
@@ -1291,7 +1291,7 @@ pdq_stop(
pdq->pdq_intrmask = 0;
/* PDQ_HOST_INT_STATE_CHANGE
|PDQ_HOST_INT_FATAL_ERROR|PDQ_HOST_INT_CMD_RSP_ENABLE
- |PDQ_HOST_INT_UNSOL_ENABLE */;
+ |PDQ_HOST_INT_UNSOL_ENABLE */
PDQ_CSR_WRITE(csrs, csr_host_int_enable, pdq->pdq_intrmask);
/*
diff --git a/sys/dev/qlxgbe/ql_hw.c b/sys/dev/qlxgbe/ql_hw.c
index 3ae3f38..bbe774b 100644
--- a/sys/dev/qlxgbe/ql_hw.c
+++ b/sys/dev/qlxgbe/ql_hw.c
@@ -3434,7 +3434,7 @@ qla_iscsi_pdu(qla_host_t *ha, struct mbuf *mp)
offset = hdrlen + 4;
if (mp->m_len >= offset) {
- th = (struct tcphdr *)(mp->m_data + hdrlen);;
+ th = (struct tcphdr *)(mp->m_data + hdrlen);
} else {
m_copydata(mp, hdrlen, 4, buf);
th = (struct tcphdr *)buf;
@@ -3458,7 +3458,7 @@ qla_iscsi_pdu(qla_host_t *ha, struct mbuf *mp)
offset = hdrlen + 4;
if (mp->m_len >= offset) {
- th = (struct tcphdr *)(mp->m_data + hdrlen);;
+ th = (struct tcphdr *)(mp->m_data + hdrlen);
} else {
m_copydata(mp, hdrlen, 4, buf);
th = (struct tcphdr *)buf;
diff --git a/sys/dev/ral/rt2860.c b/sys/dev/ral/rt2860.c
index 8bfb00d..c50c14d 100644
--- a/sys/dev/ral/rt2860.c
+++ b/sys/dev/ral/rt2860.c
@@ -3448,7 +3448,7 @@ rt2860_read_eeprom(struct rt2860_softc *sc, uint8_t macaddr[IEEE80211_ADDR_LEN])
sc->ext_5ghz_lna = (val >> 3) & 1;
sc->ext_2ghz_lna = (val >> 2) & 1;
/* check if RF supports automatic Tx access gain control */
- sc->calib_2ghz = sc->calib_5ghz = 0; /* XXX (val >> 1) & 1 */;
+ sc->calib_2ghz = sc->calib_5ghz = 0; /* XXX (val >> 1) & 1 */
/* check if we have a hardware radio switch */
sc->rfswitch = val & 1;
}
diff --git a/sys/dev/rt/if_rt.c b/sys/dev/rt/if_rt.c
index 8057b2c..fd042fe 100644
--- a/sys/dev/rt/if_rt.c
+++ b/sys/dev/rt/if_rt.c
@@ -1,5 +1,5 @@
/*-
- * Copyright (c) 2015, Stanislav Galabov
+ * Copyright (c) 2015-2016, Stanislav Galabov
* Copyright (c) 2014, Aleksandr A. Mityaev
* Copyright (c) 2011, Aleksandr Rybalko
* based on hard work
@@ -54,6 +54,7 @@ __FBSDID("$FreeBSD$");
#include <vm/vm_param.h>
#include <vm/vm.h>
#include <vm/pmap.h>
+#include <machine/pmap.h>
#include <sys/bus.h>
#include <sys/rman.h>
@@ -69,8 +70,10 @@ __FBSDID("$FreeBSD$");
#include <dev/mii/mii.h>
#include <dev/mii/miivar.h>
+#if 0
#include <mips/rt305x/rt305x_sysctlvar.h>
#include <mips/rt305x/rt305xreg.h>
+#endif
#ifdef IF_RT_PHY_SUPPORT
#include "miibus_if.h"
@@ -89,19 +92,20 @@ __FBSDID("$FreeBSD$");
#define RT_TX_WATCHDOG_TIMEOUT 5
#define RT_CHIPID_RT3050 0x3050
-#define RT_CHIPID_RT3052 0x3052
#define RT_CHIPID_RT5350 0x5350
-#define RT_CHIPID_RT6855 0x6855
#define RT_CHIPID_MT7620 0x7620
+#define RT_CHIPID_MT7621 0x7621
#ifdef FDT
/* more specific and new models should go first */
static const struct ofw_compat_data rt_compat_data[] = {
- { "ralink,rt6855-eth", (uintptr_t)RT_CHIPID_RT6855 },
- { "ralink,rt5350-eth", (uintptr_t)RT_CHIPID_RT5350 },
- { "ralink,rt3052-eth", (uintptr_t)RT_CHIPID_RT3052 },
- { "ralink,rt305x-eth", (uintptr_t)RT_CHIPID_RT3050 },
- { NULL, (uintptr_t)NULL }
+ { "ralink,rt3050-eth", RT_CHIPID_RT3050 },
+ { "ralink,rt3352-eth", RT_CHIPID_RT3050 },
+ { "ralink,rt3883-eth", RT_CHIPID_RT3050 },
+ { "ralink,rt5350-eth", RT_CHIPID_RT5350 },
+ { "ralink,mt7620a-eth", RT_CHIPID_MT7620 },
+ { "ralink,mt7621-eth", RT_CHIPID_MT7621 },
+ { NULL, 0 }
};
#endif
@@ -182,21 +186,23 @@ rt_probe(device_t dev)
const struct ofw_compat_data * cd;
cd = ofw_bus_search_compatible(dev, rt_compat_data);
- if (cd->ocd_data == (uintptr_t)NULL)
+ if (cd->ocd_data == 0)
return (ENXIO);
sc->rt_chipid = (unsigned int)(cd->ocd_data);
#else
#if defined(MT7620)
sc->rt_chipid = RT_CHIPID_MT7620;
+#elif defined(MT7621)
+ sc->rt_chipid = RT_CHIPID_MT7621;
#elif defined(RT5350)
sc->rt_chipid = RT_CHIPID_RT5350;
#else
sc->rt_chipid = RT_CHIPID_RT3050;
#endif
#endif
- snprintf(buf, sizeof(buf), "Ralink RT%x onChip Ethernet driver",
- sc->rt_chipid);
+ snprintf(buf, sizeof(buf), "Ralink %cT%x onChip Ethernet driver",
+ sc->rt_chipid >= 0x7600 ? 'M' : 'R', sc->rt_chipid);
device_set_desc_copy(dev, buf);
return (BUS_PROBE_GENERIC);
}
@@ -373,12 +379,26 @@ rt_attach(device_t dev)
/* Reset hardware */
reset_freng(sc);
+
+
+ if (sc->rt_chipid == RT_CHIPID_MT7620) {
+ sc->csum_fail_ip = MT7620_RXD_SRC_IP_CSUM_FAIL;
+ sc->csum_fail_l4 = MT7620_RXD_SRC_L4_CSUM_FAIL;
+ } else if (sc->rt_chipid == RT_CHIPID_MT7621) {
+ sc->csum_fail_ip = MT7621_RXD_SRC_IP_CSUM_FAIL;
+ sc->csum_fail_l4 = MT7621_RXD_SRC_L4_CSUM_FAIL;
+ } else {
+ sc->csum_fail_ip = RT305X_RXD_SRC_IP_CSUM_FAIL;
+ sc->csum_fail_l4 = RT305X_RXD_SRC_L4_CSUM_FAIL;
+ }
/* Fill in soc-specific registers map */
switch(sc->rt_chipid) {
case RT_CHIPID_MT7620:
+ case RT_CHIPID_MT7621:
case RT_CHIPID_RT5350:
- device_printf(dev, "RT%x Ethernet MAC (rev 0x%08x)\n",
+ device_printf(dev, "%cT%x Ethernet MAC (rev 0x%08x)\n",
+ sc->rt_chipid >= 0x7600 ? 'M' : 'R',
sc->rt_chipid, sc->mac_rev);
/* RT5350: No GDMA, PSE, CDMA, PPE */
RT_WRITE(sc, GE_PORT_BASE + 0x0C00, // UDPCS, TCPCS, IPCS=1
@@ -406,10 +426,6 @@ rt_attach(device_t dev)
sc->int_rx_done_mask=RT5350_INT_RXQ0_DONE;
sc->int_tx_done_mask=RT5350_INT_TXQ0_DONE;
break;
- case RT_CHIPID_RT6855:
- device_printf(dev, "RT6855 Ethernet MAC (rev 0x%08x)\n",
- sc->mac_rev);
- break;
default:
device_printf(dev, "RT305XF Ethernet MAC (rev 0x%08x)\n",
sc->mac_rev);
@@ -444,7 +460,7 @@ rt_attach(device_t dev)
sc->rx_drx_idx[0]=PDMA_BASE+RX_DRX_IDX0;
sc->int_rx_done_mask=INT_RX_DONE;
sc->int_tx_done_mask=INT_TXQ0_DONE;
- };
+ }
/* allocate Tx and Rx rings */
for (i = 0; i < RT_SOFTC_TX_RING_COUNT; i++) {
@@ -533,7 +549,8 @@ rt_attach(device_t dev)
/* set up interrupt */
error = bus_setup_intr(dev, sc->irq, INTR_TYPE_NET | INTR_MPSAFE,
NULL, (sc->rt_chipid == RT_CHIPID_RT5350 ||
- sc->rt_chipid == RT_CHIPID_MT7620) ? rt_rt5350_intr : rt_intr,
+ sc->rt_chipid == RT_CHIPID_MT7620 ||
+ sc->rt_chipid == RT_CHIPID_MT7621) ? rt_rt5350_intr : rt_intr,
sc, &sc->irqh);
if (error != 0) {
printf("%s: could not set up interrupt\n",
@@ -763,7 +780,7 @@ rt_init_locked(void *priv)
//rt305x_sysctl_set(SYSCTL_RSTCTRL, SYSCTL_RSTCTRL_FRENG);
/* Fwd to CPU (uni|broad|multi)cast and Unknown */
- if(sc->rt_chipid == RT_CHIPID_RT3050 || sc->rt_chipid == RT_CHIPID_RT3052)
+ if(sc->rt_chipid == RT_CHIPID_RT3050)
RT_WRITE(sc, GDMA1_BASE + GDMA_FWD_CFG,
(
GDM_ICS_EN | /* Enable IP Csum */
@@ -831,7 +848,8 @@ rt_init_locked(void *priv)
/* write back DDONE, 16byte burst enable RX/TX DMA */
tmp = FE_TX_WB_DDONE | FE_DMA_BT_SIZE16 | FE_RX_DMA_EN | FE_TX_DMA_EN;
- if (sc->rt_chipid == RT_CHIPID_MT7620)
+ if (sc->rt_chipid == RT_CHIPID_MT7620 ||
+ sc->rt_chipid == RT_CHIPID_MT7621)
tmp |= (1<<31);
RT_WRITE(sc, sc->pdma_glo_cfg, tmp);
@@ -843,7 +861,8 @@ rt_init_locked(void *priv)
/* enable interrupts */
if (sc->rt_chipid == RT_CHIPID_RT5350 ||
- sc->rt_chipid == RT_CHIPID_MT7620)
+ sc->rt_chipid == RT_CHIPID_MT7620 ||
+ sc->rt_chipid == RT_CHIPID_MT7621)
tmp = RT5350_INT_TX_COHERENT |
RT5350_INT_RX_COHERENT |
RT5350_INT_TXQ3_DONE |
@@ -945,7 +964,8 @@ rt_stop_locked(void *priv)
RT_WRITE(sc, sc->fe_int_enable, 0);
if(sc->rt_chipid == RT_CHIPID_RT5350 ||
- sc->rt_chipid == RT_CHIPID_MT7620) {
+ sc->rt_chipid == RT_CHIPID_MT7620 ||
+ sc->rt_chipid == RT_CHIPID_MT7621) {
} else {
/* reset adapter */
RT_WRITE(sc, GE_PORT_BASE + FE_RST_GLO, PSE_RESET);
@@ -1055,22 +1075,29 @@ rt_tx_data(struct rt_softc *sc, struct mbuf *m, int qid)
/* TODO: this needs to be refined as MT7620 for example has
* a different word3 layout than RT305x and RT5350 (the last
- * one doesn't use word3 at all).
+ * one doesn't use word3 at all). And so does MT7621...
*/
- /* Set destination */
- if (sc->rt_chipid != RT_CHIPID_MT7620)
- desc->dst = (TXDSCR_DST_PORT_GDMA1);
-
- if ((ifp->if_capenable & IFCAP_TXCSUM) != 0)
- desc->dst |= (TXDSCR_IP_CSUM_GEN|TXDSCR_UDP_CSUM_GEN|
- TXDSCR_TCP_CSUM_GEN);
- /* Set queue id */
- desc->qn = qid;
- /* No PPPoE */
- desc->pppoe = 0;
- /* No VLAN */
- desc->vid = 0;
+ if (sc->rt_chipid != RT_CHIPID_MT7621) {
+ /* Set destination */
+ if (sc->rt_chipid != RT_CHIPID_MT7620)
+ desc->dst = (TXDSCR_DST_PORT_GDMA1);
+
+ if ((ifp->if_capenable & IFCAP_TXCSUM) != 0)
+ desc->dst |= (TXDSCR_IP_CSUM_GEN |
+ TXDSCR_UDP_CSUM_GEN | TXDSCR_TCP_CSUM_GEN);
+ /* Set queue id */
+ desc->qn = qid;
+ /* No PPPoE */
+ desc->pppoe = 0;
+ /* No VLAN */
+ desc->vid = 0;
+ } else {
+ desc->vid = 0;
+ desc->pppoe = 0;
+ desc->qn = 0;
+ desc->dst = 2;
+ }
desc->sdp0 = htole32(dma_seg[i].ds_addr);
desc->sdl0 = htole16(dma_seg[i].ds_len |
@@ -1714,7 +1741,8 @@ rt_tx_done_task(void *context, int pending)
ifp->if_drv_flags &= ~IFF_DRV_OACTIVE;
if(sc->rt_chipid == RT_CHIPID_RT5350 ||
- sc->rt_chipid == RT_CHIPID_MT7620)
+ sc->rt_chipid == RT_CHIPID_MT7620 ||
+ sc->rt_chipid == RT_CHIPID_MT7621)
intr_mask = (
RT5350_INT_TXQ3_DONE |
RT5350_INT_TXQ2_DONE |
@@ -1870,15 +1898,13 @@ rt_rx_eof(struct rt_softc *sc, struct rt_softc_rx_ring *ring, int limit)
BUS_DMASYNC_PREREAD);
m = data->m;
- desc_flags = desc->src;
+ desc_flags = desc->word3;
data->m = mnew;
/* Add 2 for proper align of RX IP header */
desc->sdp0 = htole32(segs[0].ds_addr+2);
desc->sdl0 = htole32(segs[0].ds_len-2);
- desc->src = 0;
- desc->ai = 0;
- desc->foe = 0;
+ desc->word3 = 0;
RT_DPRINTF(sc, RT_DEBUG_RX,
"Rx frame: rxdesc flags=0x%08x\n", desc_flags);
@@ -1891,8 +1917,7 @@ rt_rx_eof(struct rt_softc *sc, struct rt_softc_rx_ring *ring, int limit)
/* check for crc errors */
if ((ifp->if_capenable & IFCAP_RXCSUM) != 0) {
/*check for valid checksum*/
- if (desc_flags & (RXDSXR_SRC_IP_CSUM_FAIL|
- RXDSXR_SRC_L4_CSUM_FAIL)) {
+ if (desc_flags & (sc->csum_fail_ip|sc->csum_fail_l4)) {
RT_DPRINTF(sc, RT_DEBUG_RX,
"rxdesc: crc error\n");
@@ -1903,7 +1928,7 @@ rt_rx_eof(struct rt_softc *sc, struct rt_softc_rx_ring *ring, int limit)
goto skip;
}
}
- if ((desc_flags & RXDSXR_SRC_IP_CSUM_FAIL) != 0) {
+ if ((desc_flags & sc->csum_fail_ip) == 0) {
m->m_pkthdr.csum_flags |= CSUM_IP_CHECKED;
m->m_pkthdr.csum_flags |= CSUM_IP_VALID;
m->m_pkthdr.csum_data = 0xffff;
@@ -2031,7 +2056,8 @@ rt_watchdog(struct rt_softc *sc)
int ntries;
#endif
if(sc->rt_chipid != RT_CHIPID_RT5350 &&
- sc->rt_chipid != RT_CHIPID_MT7620) {
+ sc->rt_chipid != RT_CHIPID_MT7620 &&
+ sc->rt_chipid != RT_CHIPID_MT7621) {
tmp = RT_READ(sc, PSE_BASE + CDMA_OQ_STA);
RT_DPRINTF(sc, RT_DEBUG_WATCHDOG,
diff --git a/sys/dev/rt/if_rtvar.h b/sys/dev/rt/if_rtvar.h
index f46574f..b2869c5 100644
--- a/sys/dev/rt/if_rtvar.h
+++ b/sys/dev/rt/if_rtvar.h
@@ -115,12 +115,21 @@ struct rt_txdesc
} __packed;
#define RT_RXDESC_SDL0_DDONE (1 << 15)
+
+#define RT305X_RXD_SRC_L4_CSUM_FAIL (1 << 28)
+#define RT305X_RXD_SRC_IP_CSUM_FAIL (1 << 29)
+#define MT7620_RXD_SRC_L4_CSUM_FAIL (1 << 22)
+#define MT7620_RXD_SRC_IP_CSUM_FAIL (1 << 25)
+#define MT7621_RXD_SRC_L4_CSUM_FAIL (1 << 23)
+#define MT7621_RXD_SRC_IP_CSUM_FAIL (1 << 26)
+
struct rt_rxdesc
{
uint32_t sdp0;
uint16_t sdl1;
uint16_t sdl0;
uint32_t sdp1;
+#if 0
uint16_t foe;
#define RXDSXR_FOE_ENTRY_VALID 0x40
#define RXDSXR_FOE_ENTRY_MASK 0x3f
@@ -134,6 +143,8 @@ struct rt_rxdesc
#define RXDSXR_SRC_L4_CSUM_FAIL 0x10
#define RXDSXR_SRC_AIS 0x08
#define RXDSXR_SRC_PORT_MASK 0x07
+#endif
+ uint32_t word3;
} __packed;
struct rt_softc_rx_data
@@ -263,6 +274,8 @@ struct rt_softc
uint32_t rt_chipid;
/* chip specific registers config */
int rx_ring_count;
+ uint32_t csum_fail_l4;
+ uint32_t csum_fail_ip;
uint32_t int_rx_done_mask;
uint32_t int_tx_done_mask;
uint32_t delay_int_cfg;
diff --git a/sys/dev/sound/midi/midi.c b/sys/dev/sound/midi/midi.c
index e741dd0d..71f7772 100644
--- a/sys/dev/sound/midi/midi.c
+++ b/sys/dev/sound/midi/midi.c
@@ -669,7 +669,7 @@ midi_open(struct cdev *i_dev, int flags, int mode, struct thread *td)
* from a previous session
*/
MIDIQ_CLEAR(m->inq);
- };
+ }
if (flags & FWRITE)
m->flags |= M_TX;
@@ -1126,7 +1126,7 @@ midisynth_open(void *n, void *arg, int flags)
*/
MIDIQ_CLEAR(m->inq);
m->rchan = 0;
- };
+ }
if (flags & FWRITE) {
m->flags |= M_TX;
diff --git a/sys/dev/sound/pci/hda/hdaa.c b/sys/dev/sound/pci/hda/hdaa.c
index a1b9f7c..b4c021b 100644
--- a/sys/dev/sound/pci/hda/hdaa.c
+++ b/sys/dev/sound/pci/hda/hdaa.c
@@ -779,7 +779,7 @@ hdaa_sense_init(struct hdaa_devinfo *devinfo)
(w->unsol < 0) ? "polling" :
"unsolicited responses");
);
- };
+ }
}
hdaa_presence_handler(w);
if (!HDA_PARAM_PIN_CAP_DP(w->wclass.pin.cap) &&
@@ -847,7 +847,7 @@ hdaa_widget_pin_patch(uint32_t config, const char *str)
if (bad[0] == 0) {
config |= ((ival << HDA_CONFIG_DEFAULTCONF_COLOR_SHIFT) &
HDA_CONFIG_DEFAULTCONF_COLOR_MASK);
- };
+ }
for (i = 0; i < 16; i++) {
if (strcasecmp(HDA_COLORS[i], value) == 0) {
config |= (i << HDA_CONFIG_DEFAULTCONF_COLOR_SHIFT);
@@ -872,7 +872,7 @@ hdaa_widget_pin_patch(uint32_t config, const char *str)
config |= ((ival << HDA_CONFIG_DEFAULTCONF_DEVICE_SHIFT) &
HDA_CONFIG_DEFAULTCONF_DEVICE_MASK);
continue;
- };
+ }
for (i = 0; i < 16; i++) {
if (strcasecmp(HDA_DEVS[i], value) == 0) {
config |= (i << HDA_CONFIG_DEFAULTCONF_DEVICE_SHIFT);
@@ -898,7 +898,7 @@ hdaa_widget_pin_patch(uint32_t config, const char *str)
config |= ((ival << HDA_CONFIG_DEFAULTCONF_CONNECTIVITY_SHIFT) &
HDA_CONFIG_DEFAULTCONF_CONNECTIVITY_MASK);
continue;
- };
+ }
for (i = 0; i < 4; i++) {
if (strcasecmp(HDA_CONNS[i], value) == 0) {
config |= (i << HDA_CONFIG_DEFAULTCONF_CONNECTIVITY_SHIFT);
diff --git a/sys/dev/sym/sym_hipd.c b/sys/dev/sym/sym_hipd.c
index 491aa54..43a0e9d 100644
--- a/sys/dev/sym/sym_hipd.c
+++ b/sys/dev/sym/sym_hipd.c
@@ -2025,7 +2025,7 @@ static void sym_fw_bind_script (hcb_p np, u32 *start, int len)
MDELAY (10000);
++cur;
continue;
- };
+ }
/*
* We use the bogus value 0xf00ff00f ;-)
@@ -2114,7 +2114,7 @@ static void sym_fw_bind_script (hcb_p np, u32 *start, int len)
default:
relocs = 0;
break;
- };
+ }
/*
* Scriptify:) the opcode.
@@ -2170,7 +2170,7 @@ static void sym_fw_bind_script (hcb_p np, u32 *start, int len)
*cur++ = cpu_to_scr(new);
}
- };
+ }
}
/*---------------------------------------------------------------------------*/
@@ -2867,7 +2867,7 @@ static int sym_prepare_nego(hcb_p np, ccb_p cp, int nego, u_char *msgptr)
msgptr[msglen++] = tp->tinfo.goal.width;
msgptr[msglen++] = tp->tinfo.goal.options & PPR_OPT_DT;
break;
- };
+ }
cp->nego_status = nego;
@@ -2877,8 +2877,8 @@ static int sym_prepare_nego(hcb_p np, ccb_p cp, int nego, u_char *msgptr)
sym_print_msg(cp, nego == NS_SYNC ? "sync msgout" :
nego == NS_WIDE ? "wide msgout" :
"ppr msgout", msgptr);
- };
- };
+ }
+ }
return msglen;
}
@@ -3827,7 +3827,7 @@ static void sym_intr1 (hcb_p np)
istat = INB (nc_istat); /* DUMMY READ */
if (DEBUG_FLAGS & DEBUG_TINY) printf ("F ");
(void)sym_wakeup_done (np);
- };
+ }
if (!(istat & (SIP|DIP)))
return;
@@ -3892,7 +3892,7 @@ static void sym_intr1 (hcb_p np)
else if (dstat & SSI) OUTONB_STD ();
else goto unknown_int;
return;
- };
+ }
/*
* Now, interrupts that donnot happen in normal
@@ -3910,7 +3910,7 @@ static void sym_intr1 (hcb_p np)
printf("SCSI BUS reset detected.\n");
sym_init (np, 1);
return;
- };
+ }
OUTB (nc_ctest3, np->rv_ctest3 | CLF); /* clear dma fifo */
OUTB (nc_stest3, TE|CSF); /* clear scsi fifo */
@@ -3922,7 +3922,7 @@ static void sym_intr1 (hcb_p np)
else if (sist & UDC) sym_int_udc (np);
else goto unknown_int;
return;
- };
+ }
/*
* Now, interrupts we are not able to recover cleanly.
@@ -3937,7 +3937,7 @@ static void sym_intr1 (hcb_p np)
(dstat & (MDPE|BF|ABRT|IID))) {
sym_start_reset(np);
return;
- };
+ }
unknown_int:
/*
@@ -4274,7 +4274,7 @@ static void sym_int_ma (hcb_p np)
if (ss2 & OLF1) rest++;
if (!(np->features & FE_C10))
if (ss2 & ORF1) rest++;
- };
+ }
/*
* Clear fifos.
@@ -4313,7 +4313,7 @@ static void sym_int_ma (hcb_p np)
if (DEBUG_FLAGS & DEBUG_PHASE) {
printf ("\nCP=%p DSP=%x NXT=%x VDSP=%p CMD=%x ",
cp, (unsigned)dsp, (unsigned)nxtdsp, vdsp, cmd);
- };
+ }
if (!vdsp) {
printf ("%s: interrupted SCRIPT address not found.\n",
@@ -4339,7 +4339,7 @@ static void sym_int_ma (hcb_p np)
} else {
tblp = (u32 *) 0;
olen = scr_to_cpu(vdsp[0]) & 0xffffff;
- };
+ }
if (DEBUG_FLAGS & DEBUG_PHASE) {
printf ("OCMD=%x\nTBLP=%p OLEN=%x OADR=%x\n",
@@ -4347,7 +4347,7 @@ static void sym_int_ma (hcb_p np)
tblp,
(unsigned) olen,
(unsigned) oadr);
- };
+ }
/*
* check cmd against assumed interrupted script command.
@@ -4360,7 +4360,7 @@ static void sym_int_ma (hcb_p np)
(unsigned)cmd, (unsigned)scr_to_cpu(vdsp[0]) >> 24);
goto reset_all;
- };
+ }
/*
* if old phase not dataphase, leave here.
@@ -4371,7 +4371,7 @@ static void sym_int_ma (hcb_p np)
cmd&7, INB(nc_sbcl)&7, (unsigned)olen,
(unsigned)oadr, (unsigned)rest);
goto unexpected_phase;
- };
+ }
/*
* Choose the correct PM save area.
@@ -5541,12 +5541,12 @@ static int sym_show_msg (u_char * msg)
for (i=1;i<8;i++) {
if (i-1>msg[1]) break;
printf ("-%x",msg[i]);
- };
+ }
return (i+1);
} else if ((*msg & 0xf0) == 0x20) {
printf ("-%x",msg[1]);
return (2);
- };
+ }
return (1);
}
@@ -5607,7 +5607,7 @@ static void sym_sync_nego(hcb_p np, tcb_p tp, ccb_p cp)
*/
if (DEBUG_FLAGS & DEBUG_NEGO) {
sym_print_msg(cp, "sync msgin", np->msgin);
- };
+ }
/*
* request or answer ?
@@ -5708,7 +5708,7 @@ static void sym_ppr_nego(hcb_p np, tcb_p tp, ccb_p cp)
*/
if (DEBUG_FLAGS & DEBUG_NEGO) {
sym_print_msg(cp, "ppr msgin", np->msgin);
- };
+ }
/*
* get requested values.
@@ -5847,7 +5847,7 @@ static void sym_wide_nego(hcb_p np, tcb_p tp, ccb_p cp)
*/
if (DEBUG_FLAGS & DEBUG_NEGO) {
sym_print_msg(cp, "wide msgin", np->msgin);
- };
+ }
/*
* Is it a request from the device?
@@ -5912,7 +5912,7 @@ static void sym_wide_nego(hcb_p np, tcb_p tp, ccb_p cp)
OUTL_DSP (SCRIPTA_BA (np, clrack));
return;
- };
+ }
/*
* It was a request, set value and
@@ -5972,7 +5972,7 @@ static void sym_nego_default(hcb_p np, tcb_p tp, ccb_p cp)
case NS_WIDE:
sym_setwide (np, cp, 0);
break;
- };
+ }
np->msgin [0] = M_NOOP;
np->msgout[0] = M_NOOP;
cp->nego_status = 0;
@@ -6237,7 +6237,7 @@ static void sym_int_sir (hcb_p np)
case SIR_NEGO_PROTO:
sym_nego_default(np, tp, cp);
goto out;
- };
+ }
out:
OUTONB_STD ();
@@ -6719,7 +6719,7 @@ static int sym_regtest (hcb_p np)
printf ("CACHE TEST FAILED: reg dstat-sstat2 readback %x.\n",
(unsigned) data);
return (0x10);
- };
+ }
return (0);
}
#endif
@@ -6763,7 +6763,7 @@ restart_test:
if (i>=SYM_SNOOP_TIMEOUT) {
printf ("CACHE TEST FAILED: timeout.\n");
return (0x20);
- };
+ }
/*
* Check for fatal DMA errors.
*/
@@ -6801,7 +6801,7 @@ restart_test:
(u_long) SCRIPTB0_BA (np, snooptest), (u_long) pc,
(u_long) SCRIPTB0_BA (np, snoopend) +8);
return (0x40);
- };
+ }
/*
* Show results.
*/
@@ -6809,17 +6809,17 @@ restart_test:
printf ("CACHE TEST FAILED: host wrote %d, chip read %d.\n",
(int) host_wr, (int) sym_rd);
err |= 1;
- };
+ }
if (host_rd != sym_wr) {
printf ("CACHE TEST FAILED: chip wrote %d, host read %d.\n",
(int) sym_wr, (int) host_rd);
err |= 2;
- };
+ }
if (sym_bk != sym_wr) {
printf ("CACHE TEST FAILED: chip wrote %d, read back %d.\n",
(int) sym_wr, (int) sym_bk);
err |= 4;
- };
+ }
return (err);
}
@@ -8734,7 +8734,7 @@ sym_pci_attach(device_t dev)
if (sym_snooptest (np)) {
device_printf(dev, "CACHE INCORRECTLY CONFIGURED.\n");
goto attach_failed;
- };
+ }
/*
* Now deal with CAM.
diff --git a/sys/dev/tdfx/tdfx_pci.c b/sys/dev/tdfx/tdfx_pci.c
index 918857a..be42375 100644
--- a/sys/dev/tdfx/tdfx_pci.c
+++ b/sys/dev/tdfx/tdfx_pci.c
@@ -127,7 +127,7 @@ tdfx_probe(device_t dev)
case PCI_DEVICE_3DFX_VOODOO1:
device_set_desc(dev, "3DFX Voodoo Graphics 3D Accelerator");
return BUS_PROBE_DEFAULT;
- };
+ }
return ENXIO;
}
diff --git a/sys/dev/ti/if_ti.c b/sys/dev/ti/if_ti.c
index eba7f7b..23ed50b 100644
--- a/sys/dev/ti/if_ti.c
+++ b/sys/dev/ti/if_ti.c
@@ -1720,7 +1720,7 @@ ti_init_rx_ring_std(struct ti_softc *sc)
for (i = 0; i < TI_STD_RX_RING_CNT; i++) {
if (ti_newbuf_std(sc, i) != 0)
return (ENOBUFS);
- };
+ }
sc->ti_std = TI_STD_RX_RING_CNT - 1;
TI_UPDATE_STDPROD(sc, TI_STD_RX_RING_CNT - 1);
@@ -1758,7 +1758,7 @@ ti_init_rx_ring_jumbo(struct ti_softc *sc)
for (i = 0; i < TI_JUMBO_RX_RING_CNT; i++) {
if (ti_newbuf_jumbo(sc, i, NULL) != 0)
return (ENOBUFS);
- };
+ }
sc->ti_jumbo = TI_JUMBO_RX_RING_CNT - 1;
TI_UPDATE_JUMBOPROD(sc, TI_JUMBO_RX_RING_CNT - 1);
@@ -1795,7 +1795,7 @@ ti_init_rx_ring_mini(struct ti_softc *sc)
for (i = 0; i < TI_MINI_RX_RING_CNT; i++) {
if (ti_newbuf_mini(sc, i) != 0)
return (ENOBUFS);
- };
+ }
sc->ti_mini = TI_MINI_RX_RING_CNT - 1;
TI_UPDATE_MINIPROD(sc, TI_MINI_RX_RING_CNT - 1);
diff --git a/sys/dev/uart/uart_dev_msm.c b/sys/dev/uart/uart_dev_msm.c
index 7ba46ac..cfd2330 100644
--- a/sys/dev/uart/uart_dev_msm.c
+++ b/sys/dev/uart/uart_dev_msm.c
@@ -123,7 +123,7 @@ msm_uart_param(struct uart_bas *bas, int baudrate, int databits,
}
uart_setreg(bas, UART_DM_MR2, ulcon);
- /* Set 115200 for both TX and RX. */;
+ /* Set 115200 for both TX and RX. */
uart_setreg(bas, UART_DM_CSR, UART_DM_CSR_115200);
uart_barrier(bas);
diff --git a/sys/dev/usb/net/if_mos.c b/sys/dev/usb/net/if_mos.c
index 1f92629..3a65ec6 100644
--- a/sys/dev/usb/net/if_mos.c
+++ b/sys/dev/usb/net/if_mos.c
@@ -608,7 +608,7 @@ mos_setmulti(struct usb_ether *ue)
if (ifma->ifma_addr->sa_family != AF_LINK) {
allmulti = 1;
continue;
- };
+ }
h = ether_crc32_be(LLADDR((struct sockaddr_dl *)
ifma->ifma_addr), ETHER_ADDR_LEN) >> 26;
hashtbl[h / 8] |= 1 << (h % 8);
diff --git a/sys/dev/usb/net/if_ure.c b/sys/dev/usb/net/if_ure.c
index 4d215f8..9d7f47a 100644
--- a/sys/dev/usb/net/if_ure.c
+++ b/sys/dev/usb/net/if_ure.c
@@ -419,7 +419,7 @@ ure_probe(device_t dev)
{
struct usb_attach_arg *uaa;
- uaa = device_get_ivars(dev);;
+ uaa = device_get_ivars(dev);
if (uaa->usb_mode != USB_MODE_HOST)
return (ENXIO);
if (uaa->info.bConfigIndex != URE_CONFIG_IDX)
diff --git a/sys/dev/usb/net/if_urndis.c b/sys/dev/usb/net/if_urndis.c
index 749f874..de7fd1e 100644
--- a/sys/dev/usb/net/if_urndis.c
+++ b/sys/dev/usb/net/if_urndis.c
@@ -235,7 +235,7 @@ urndis_attach(device_t dev)
cmd = usbd_find_descriptor(uaa->device, NULL, uaa->info.bIfaceIndex,
UDESC_CS_INTERFACE, 0xFF, UDESCSUB_CDC_CM, 0xFF);
- if (cmd != 0) {
+ if (cmd != NULL) {
DPRINTF("Call Mode Descriptor found, dataif=%d\n", cmd->bDataInterface);
iface_index[0] = cmd->bDataInterface;
}
diff --git a/sys/dev/usb/quirk/usb_quirk.c b/sys/dev/usb/quirk/usb_quirk.c
index 5af2136..6f6dac7 100644
--- a/sys/dev/usb/quirk/usb_quirk.c
+++ b/sys/dev/usb/quirk/usb_quirk.c
@@ -529,6 +529,9 @@ static struct usb_quirk_entry usb_quirks[USB_DEV_QUIRKS_MAX] = {
/* DYMO LabelManager Pnp */
USB_QUIRK(DYMO, LABELMANAGERPNP, 0x0000, 0xffff, UQ_MSC_DYMO_EJECT),
+
+ /* Holtek USB gaming keyboard */
+ USB_QUIRK(HOLTEK, F85, 0x0000, 0xffff, UQ_KBD_BOOTPROTO),
};
#undef USB_QUIRK_VP
#undef USB_QUIRK
diff --git a/sys/dev/usb/usb_transfer.c b/sys/dev/usb/usb_transfer.c
index 783a96c..17b9367 100644
--- a/sys/dev/usb/usb_transfer.c
+++ b/sys/dev/usb/usb_transfer.c
@@ -925,7 +925,7 @@ usbd_transfer_setup(struct usb_device *udev,
DPRINTFN(6, "setup array has zero length!\n");
return (USB_ERR_INVAL);
}
- if (ifaces == 0) {
+ if (ifaces == NULL) {
DPRINTFN(6, "ifaces array is NULL!\n");
return (USB_ERR_INVAL);
}
diff --git a/sys/dev/usb/usbdevs b/sys/dev/usb/usbdevs
index 7f75d5a..a2df3e4 100644
--- a/sys/dev/usb/usbdevs
+++ b/sys/dev/usb/usbdevs
@@ -2268,6 +2268,9 @@ product HIDGLOBAL CM6020 0x1784 Omnikey Cardman 6020
product HITACHI DVDCAM_DZ_MV100A 0x0004 DVD-CAM DZ-MV100A Camcorder
product HITACHI DVDCAM_USB 0x001e DVDCAM USB HS Interface
+/* Holtek products */
+product HOLTEK F85 0xa030 Holtek USB gaming keyboard
+
/* HP products */
product HP 895C 0x0004 DeskJet 895C
product HP 4100C 0x0101 Scanjet 4100C
diff --git a/sys/dev/vnic/nicvf_queues.c b/sys/dev/vnic/nicvf_queues.c
index 9b46d7c..087cf9f 100644
--- a/sys/dev/vnic/nicvf_queues.c
+++ b/sys/dev/vnic/nicvf_queues.c
@@ -1904,7 +1904,6 @@ static int
nicvf_tx_mbuf_locked(struct snd_queue *sq, struct mbuf **mbufp)
{
bus_dma_segment_t segs[256];
- struct nicvf *nic;
struct snd_buff *snd_buff;
size_t seg;
int nsegs, qentry;
@@ -1928,12 +1927,7 @@ nicvf_tx_mbuf_locked(struct snd_queue *sq, struct mbuf **mbufp)
}
/* Set how many subdescriptors is required */
- nic = sq->nic;
- if ((*mbufp)->m_pkthdr.tso_segsz != 0 && nic->hw_tso)
- subdesc_cnt = MIN_SQ_DESC_PER_PKT_XMIT;
- else
- subdesc_cnt = MIN_SQ_DESC_PER_PKT_XMIT + nsegs - 1;
-
+ subdesc_cnt = MIN_SQ_DESC_PER_PKT_XMIT + nsegs - 1;
if (subdesc_cnt > sq->free_cnt) {
/* ARM64TODO: Add mbuf defragmentation if we lack descriptors */
bus_dmamap_unload(sq->snd_buff_dmat, snd_buff->dmap);
diff --git a/sys/dev/vnic/thunder_bgx.c b/sys/dev/vnic/thunder_bgx.c
index 3494754..7a3a941 100644
--- a/sys/dev/vnic/thunder_bgx.c
+++ b/sys/dev/vnic/thunder_bgx.c
@@ -240,7 +240,7 @@ static int
bgx_poll_reg(struct bgx *bgx, uint8_t lmac, uint64_t reg, uint64_t mask,
boolean_t zero)
{
- int timeout = 100;
+ int timeout = 10;
uint64_t reg_val;
while (timeout) {
@@ -250,7 +250,7 @@ bgx_poll_reg(struct bgx *bgx, uint8_t lmac, uint64_t reg, uint64_t mask,
if (!zero && (reg_val & mask))
return (0);
- DELAY(1000);
+ DELAY(100);
timeout--;
}
return (ETIMEDOUT);
diff --git a/sys/dev/vt/vt_core.c b/sys/dev/vt/vt_core.c
index 40be782..2884c57 100644
--- a/sys/dev/vt/vt_core.c
+++ b/sys/dev/vt/vt_core.c
@@ -709,7 +709,7 @@ vt_machine_kbdevent(int c)
/* Suspend machine. */
power_pm_suspend(POWER_SLEEP_STATE_SUSPEND);
return (1);
- };
+ }
return (0);
}
diff --git a/sys/dev/xen/pci/xen_acpi_pci.c b/sys/dev/xen/pci/xen_acpi_pci.c
index 0eadd4a..11797fb 100644
--- a/sys/dev/xen/pci/xen_acpi_pci.c
+++ b/sys/dev/xen/pci/xen_acpi_pci.c
@@ -38,6 +38,7 @@ __FBSDID("$FreeBSD$");
#include <contrib/dev/acpica/include/accommon.h>
#include <dev/acpica/acpivar.h>
+#include <dev/acpica/acpi_pcivar.h>
#include <sys/pciio.h>
#include <dev/pci/pcireg.h>
@@ -65,6 +66,14 @@ xen_acpi_pci_probe(device_t dev)
return (BUS_PROBE_SPECIFIC);
}
+static void
+xen_acpi_pci_child_added(device_t dev, device_t child)
+{
+
+ acpi_pci_child_added(dev, child);
+ xen_pci_child_added_method(dev, child);
+}
+
static device_method_t xen_acpi_pci_methods[] = {
/* Device interface */
DEVMETHOD(device_probe, xen_acpi_pci_probe),
@@ -72,7 +81,7 @@ static device_method_t xen_acpi_pci_methods[] = {
/* PCI interface overwrites */
DEVMETHOD(pci_enable_msi, xen_pci_enable_msi_method),
DEVMETHOD(pci_disable_msi, xen_pci_disable_msi_method),
- DEVMETHOD(pci_child_added, xen_pci_child_added_method),
+ DEVMETHOD(pci_child_added, xen_acpi_pci_child_added),
DEVMETHOD_END
};
diff --git a/sys/fs/ext2fs/ext2_alloc.c b/sys/fs/ext2fs/ext2_alloc.c
index 9d5417c..c3bd29b 100644
--- a/sys/fs/ext2fs/ext2_alloc.c
+++ b/sys/fs/ext2fs/ext2_alloc.c
@@ -161,7 +161,7 @@ ext2_reallocblks(struct vop_reallocblks_args *ap)
struct inode *ip;
struct vnode *vp;
struct buf *sbp, *ebp;
- uint32_t *bap, *sbap, *ebap = 0;
+ uint32_t *bap, *sbap, *ebap;
struct ext2mount *ump;
struct cluster_save *buflist;
struct indir start_ap[NIADDR + 1], end_ap[NIADDR + 1], *idp;
@@ -231,6 +231,7 @@ ext2_reallocblks(struct vop_reallocblks_args *ap)
/*
* If the block range spans two block maps, get the second map.
*/
+ ebap = NULL;
if (end_lvl == 0 || (idp = &end_ap[end_lvl - 1])->in_off + 1 >= len) {
ssize = len;
} else {
diff --git a/sys/fs/ext2fs/ext2_bmap.c b/sys/fs/ext2fs/ext2_bmap.c
index 8e5e986..7966b9b 100644
--- a/sys/fs/ext2fs/ext2_bmap.c
+++ b/sys/fs/ext2fs/ext2_bmap.c
@@ -42,6 +42,7 @@
#include <sys/proc.h>
#include <sys/vnode.h>
#include <sys/mount.h>
+#include <sys/racct.h>
#include <sys/resourcevar.h>
#include <sys/stat.h>
@@ -247,6 +248,13 @@ ext2_bmaparray(struct vnode *vp, daddr_t bn, daddr_t *bnp, int *runp, int *runb)
vfs_busy_pages(bp, 0);
bp->b_iooffset = dbtob(bp->b_blkno);
bstrategy(bp);
+#ifdef RACCT
+ if (racct_enable) {
+ PROC_LOCK(curproc);
+ racct_add_buf(curproc, bp, 0);
+ PROC_UNLOCK(curproc);
+ }
+#endif
curthread->td_ru.ru_inblock++;
error = bufwait(bp);
if (error) {
diff --git a/sys/fs/ext2fs/ext2_vfsops.c b/sys/fs/ext2fs/ext2_vfsops.c
index fab98a5..a1f3c51 100644
--- a/sys/fs/ext2fs/ext2_vfsops.c
+++ b/sys/fs/ext2fs/ext2_vfsops.c
@@ -308,8 +308,8 @@ ext2_check_sb_compat(struct ext2fs *es, struct cdev *dev, int ronly)
}
/*
- * This computes the fields of the ext2_sb_info structure from the
- * data in the ext2_super_block structure read in.
+ * This computes the fields of the m_ext2fs structure from the
+ * data in the ext2fs structure read in.
*/
static int
compute_sb_data(struct vnode *devvp, struct ext2fs *es,
@@ -600,7 +600,7 @@ ext2_mountfs(struct vnode *devvp, struct mount *mp)
/*
* I don't know whether this is the right strategy. Note that
- * we dynamically allocate both an ext2_sb_info and an ext2_super_block
+ * we dynamically allocate both an m_ext2fs and an ext2fs
* while Linux keeps the super block in a locked buffer.
*/
ump->um_e2fs = malloc(sizeof(struct m_ext2fs),
diff --git a/sys/fs/nandfs/nandfs_segment.c b/sys/fs/nandfs/nandfs_segment.c
index 22fb7cd..38019ef 100644
--- a/sys/fs/nandfs/nandfs_segment.c
+++ b/sys/fs/nandfs/nandfs_segment.c
@@ -199,7 +199,7 @@ delete_segment(struct nandfs_seginfo *seginfo)
TAILQ_REMOVE(&seg->segsum, bp, b_cluster.cluster_entry);
bp->b_flags &= ~B_MANAGED;
brelse(bp);
- };
+ }
LIST_REMOVE(seg, seg_link);
free(seg, M_DEVBUF);
@@ -752,7 +752,7 @@ nandfs_clean_segblocks(struct nandfs_segment *seg, uint8_t unlock)
TAILQ_FOREACH_SAFE(bp, &seg->segsum, b_cluster.cluster_entry, tbp) {
TAILQ_REMOVE(&seg->segsum, bp, b_cluster.cluster_entry);
nandfs_clean_buf(fsdev, bp);
- };
+ }
TAILQ_FOREACH_SAFE(bp, &seg->data, b_cluster.cluster_entry, tbp) {
TAILQ_REMOVE(&seg->data, bp, b_cluster.cluster_entry);
@@ -807,7 +807,7 @@ nandfs_save_segblocks(struct nandfs_segment *seg, uint8_t unlock)
goto out;
}
i++;
- };
+ }
i = 0;
TAILQ_FOREACH_SAFE(bp, &seg->data, b_cluster.cluster_entry, tbp) {
diff --git a/sys/fs/nfs/nfs_commonacl.c b/sys/fs/nfs/nfs_commonacl.c
index 0201e2d..d6ba742 100644
--- a/sys/fs/nfs/nfs_commonacl.c
+++ b/sys/fs/nfs/nfs_commonacl.c
@@ -436,7 +436,7 @@ nfsrv_buildacl(struct nfsrv_descript *nd, NFSACL_T *aclp, enum vtype type,
break;
default:
continue;
- };
+ }
retlen += nfsrv_buildace(nd, name, namelen, type, isgroup,
isowner, &aclp->acl_entry[i]);
entrycnt++;
@@ -505,7 +505,7 @@ nfsrv_compareacl(NFSACL_T *aclp1, NFSACL_T *aclp2)
case ACL_OTHER:
if (acep1->ae_perm != acep2->ae_perm)
return (1);
- };
+ }
acep1++;
acep2++;
}
diff --git a/sys/fs/nfs/nfs_commonport.c b/sys/fs/nfs/nfs_commonport.c
index a22b38c..a62a222 100644
--- a/sys/fs/nfs/nfs_commonport.c
+++ b/sys/fs/nfs/nfs_commonport.c
@@ -337,7 +337,7 @@ nfsvno_pathconf(struct vnode *vp, int flag, register_t *retf,
*/
*retf = 0;
printf("nfsrvd pathconf flag=%d not supp\n", flag);
- };
+ }
error = 0;
}
NFSEXITCODE(error);
diff --git a/sys/fs/nfs/nfs_commonsubs.c b/sys/fs/nfs/nfs_commonsubs.c
index 16d91af..0d46d95 100644
--- a/sys/fs/nfs/nfs_commonsubs.c
+++ b/sys/fs/nfs/nfs_commonsubs.c
@@ -507,7 +507,7 @@ nfsm_fhtom(struct nfsrv_descript *nd, u_int8_t *fhp, int size, int set_true)
}
(void) nfsm_strtom(nd, fhp, size);
break;
- };
+ }
return (bytesize);
}
@@ -544,7 +544,7 @@ nfsaddr_match(int family, union nethostaddr *haddr, NFSSOCKADDR_T nam)
}
break;
#endif
- };
+ }
return (0);
}
@@ -581,7 +581,7 @@ nfsaddr2_match(NFSSOCKADDR_T nam1, NFSSOCKADDR_T nam2)
}
break;
#endif
- };
+ }
return (0);
}
@@ -1774,7 +1774,7 @@ nfsv4_loadattr(struct nfsrv_descript *nd, vnode_t vp,
*/
bitpos = NFSATTRBIT_MAX;
break;
- };
+ }
}
/*
@@ -2508,7 +2508,7 @@ nfsv4_fillattr(struct nfsrv_descript *nd, struct mount *mp, vnode_t vp,
break;
default:
printf("EEK! Bad V4 attribute bitpos=%d\n", bitpos);
- };
+ }
}
}
if (naclp != NULL)
diff --git a/sys/fs/nfsclient/nfs_clbio.c b/sys/fs/nfsclient/nfs_clbio.c
index 3498dc0..567e326 100644
--- a/sys/fs/nfsclient/nfs_clbio.c
+++ b/sys/fs/nfsclient/nfs_clbio.c
@@ -681,7 +681,7 @@ ncl_bioread(struct vnode *vp, struct uio *uio, int ioflag, struct ucred *cred)
ncl_printf(" ncl_bioread: type %x unexpected\n", vp->v_type);
bp = NULL;
break;
- };
+ }
if (n > 0) {
error = vn_io_fault_uiomove(bp->b_data + on, (int)n, uio);
@@ -1664,7 +1664,7 @@ ncl_doio(struct vnode *vp, struct buf *bp, struct ucred *cr, struct thread *td,
default:
ncl_printf("ncl_doio: type %x unexpected\n", vp->v_type);
break;
- };
+ }
if (error) {
bp->b_ioflags |= BIO_ERROR;
bp->b_error = error;
diff --git a/sys/fs/nfsclient/nfs_clport.c b/sys/fs/nfsclient/nfs_clport.c
index eaa445b..c063de1 100644
--- a/sys/fs/nfsclient/nfs_clport.c
+++ b/sys/fs/nfsclient/nfs_clport.c
@@ -925,7 +925,7 @@ nfscl_fillsattr(struct nfsrv_descript *nd, struct vattr *vap,
(void) nfsv4_fillattr(nd, vp->v_mount, vp, NULL, vap, NULL, 0,
&attrbits, NULL, NULL, 0, 0, 0, 0, (uint64_t)0);
break;
- };
+ }
}
/*
diff --git a/sys/fs/nfsclient/nfs_clrpcops.c b/sys/fs/nfsclient/nfs_clrpcops.c
index a7d47f0..cd12fba 100644
--- a/sys/fs/nfsclient/nfs_clrpcops.c
+++ b/sys/fs/nfsclient/nfs_clrpcops.c
@@ -487,7 +487,7 @@ nfsrpc_openrpc(struct nfsmount *nmp, vnode_t vp, u_int8_t *nfhp, int fhlen,
default:
error = NFSERR_BADXDR;
goto nfsmout;
- };
+ }
} else {
ndp->nfsdl_flags = NFSCLDL_READ;
}
@@ -2086,7 +2086,7 @@ nfsrpc_createv4(vnode_t dvp, char *name, int namelen, struct vattr *vap,
default:
error = NFSERR_BADXDR;
goto nfsmout;
- };
+ }
} else {
dp->nfsdl_flags = NFSCLDL_READ;
}
@@ -3698,7 +3698,7 @@ nfsrpc_advlock(vnode_t vp, off_t size, int op, struct flock *fl,
break;
default:
return (EINVAL);
- };
+ }
if (start < 0)
return (EINVAL);
if (fl->l_len != 0) {
diff --git a/sys/fs/nfsclient/nfs_clstate.c b/sys/fs/nfsclient/nfs_clstate.c
index 2600b80..a49e93f 100644
--- a/sys/fs/nfsclient/nfs_clstate.c
+++ b/sys/fs/nfsclient/nfs_clstate.c
@@ -1297,7 +1297,7 @@ nfscl_checkwritelocked(vnode_t vp, struct flock *fl,
break;
default:
return (1);
- };
+ }
if (fl->l_len != 0) {
end = off + fl->l_len;
if (end < off)
@@ -3507,7 +3507,7 @@ nfscl_docb(struct nfsrv_descript *nd, NFSPROC_T *p)
error = NFSERR_NOTSUPP;
}
break;
- };
+ }
if (error) {
if (error == EBADRPC || error == NFSERR_BADXDR) {
nd->nd_repstat = NFSERR_BADXDR;
diff --git a/sys/fs/nfsclient/nfs_clvnops.c b/sys/fs/nfsclient/nfs_clvnops.c
index 6aee675..4487b2a 100644
--- a/sys/fs/nfsclient/nfs_clvnops.c
+++ b/sys/fs/nfsclient/nfs_clvnops.c
@@ -974,7 +974,7 @@ nfs_setattr(struct vop_setattr_args *ap)
mtx_lock(&np->n_mtx);
np->n_vattr.na_size = np->n_size = vap->va_size;
mtx_unlock(&np->n_mtx);
- };
+ }
} else {
mtx_lock(&np->n_mtx);
if ((vap->va_mtime.tv_sec != VNOVAL || vap->va_atime.tv_sec != VNOVAL) &&
diff --git a/sys/fs/nfsserver/nfs_nfsdport.c b/sys/fs/nfsserver/nfs_nfsdport.c
index edbcb35..44ae88e 100644
--- a/sys/fs/nfsserver/nfs_nfsdport.c
+++ b/sys/fs/nfsserver/nfs_nfsdport.c
@@ -2370,7 +2370,7 @@ nfsrv_sattr(struct nfsrv_descript *nd, vnode_t vp, struct nfsvattr *nvap,
vfs_timestamp(&nvap->na_atime);
nvap->na_vaflags |= VA_UTIMES_NULL;
break;
- };
+ }
NFSM_DISSECT(tl, u_int32_t *, NFSX_UNSIGNED);
switch (fxdr_unsigned(int, *tl)) {
case NFSV3SATTRTIME_TOCLIENT:
@@ -2383,11 +2383,11 @@ nfsrv_sattr(struct nfsrv_descript *nd, vnode_t vp, struct nfsvattr *nvap,
if (!toclient)
nvap->na_vaflags |= VA_UTIMES_NULL;
break;
- };
+ }
break;
case ND_NFSV4:
error = nfsv4_sattr(nd, vp, nvap, attrbitp, aclp, p);
- };
+ }
nfsmout:
NFSEXITCODE2(error, nd);
return (error);
@@ -2585,7 +2585,7 @@ nfsv4_sattr(struct nfsrv_descript *nd, vnode_t vp, struct nfsvattr *nvap,
*/
bitpos = NFSATTRBIT_MAX;
break;
- };
+ }
}
/*
diff --git a/sys/fs/nfsserver/nfs_nfsdserv.c b/sys/fs/nfsserver/nfs_nfsdserv.c
index bd054c4..2a0c9cf 100644
--- a/sys/fs/nfsserver/nfs_nfsdserv.c
+++ b/sys/fs/nfsserver/nfs_nfsdserv.c
@@ -1024,7 +1024,7 @@ nfsrvd_create(struct nfsrv_descript *nd, __unused int isdgram,
break;
default:
break;
- };
+ }
} else {
NFSM_DISSECT(tl, u_int32_t *, NFSX_UNSIGNED);
how = fxdr_unsigned(int, *tl);
@@ -1041,7 +1041,7 @@ nfsrvd_create(struct nfsrv_descript *nd, __unused int isdgram,
cverf[1] = *tl;
exclusive_flag = 1;
break;
- };
+ }
NFSVNO_SETATTRVAL(&nva, type, VREG);
}
}
@@ -1088,7 +1088,7 @@ nfsrvd_create(struct nfsrv_descript *nd, __unused int isdgram,
if (named.ni_vp == NULL)
NFSVNO_SETATTRVAL(&nva, mode, 0);
break;
- };
+ }
}
/*
@@ -2206,7 +2206,7 @@ nfsrvd_lock(struct nfsrv_descript *nd, __unused int isdgram,
default:
nd->nd_repstat = NFSERR_BADXDR;
goto nfsmout;
- };
+ }
if (*tl++ == newnfs_true)
flags |= NFSLCK_RECLAIM;
offset = fxdr_hyper(tl);
@@ -2400,7 +2400,7 @@ nfsrvd_lockt(struct nfsrv_descript *nd, __unused int isdgram,
default:
nd->nd_repstat = NFSERR_BADXDR;
goto nfsmout;
- };
+ }
lo.lo_first = fxdr_hyper(tl);
tl += 2;
len = fxdr_hyper(tl);
@@ -2509,7 +2509,7 @@ nfsrvd_locku(struct nfsrv_descript *nd, __unused int isdgram,
free(stp, M_NFSDSTATE);
free(lop, M_NFSDLOCK);
goto nfsmout;
- };
+ }
stp->ls_ownerlen = 0;
stp->ls_uid = nd->nd_cred->cr_uid;
stp->ls_seq = fxdr_unsigned(int, *tl++);
@@ -2645,7 +2645,7 @@ nfsrvd_open(struct nfsrv_descript *nd, __unused int isdgram,
default:
/* nd_repstat will be set to NFSERR_INVAL below. */
break;
- };
+ }
}
switch (i) {
case NFSV4OPEN_ACCESSREAD:
@@ -2659,7 +2659,7 @@ nfsrvd_open(struct nfsrv_descript *nd, __unused int isdgram,
break;
default:
nd->nd_repstat = NFSERR_INVAL;
- };
+ }
i = fxdr_unsigned(int, *tl++);
switch (i) {
case NFSV4OPEN_DENYNONE:
@@ -2675,7 +2675,7 @@ nfsrvd_open(struct nfsrv_descript *nd, __unused int isdgram,
break;
default:
nd->nd_repstat = NFSERR_INVAL;
- };
+ }
clientid.lval[0] = *tl++;
clientid.lval[1] = *tl;
if ((nd->nd_flag & ND_IMPLIEDCLID) != 0) {
@@ -2750,7 +2750,7 @@ nfsrvd_open(struct nfsrv_descript *nd, __unused int isdgram,
default:
nd->nd_repstat = NFSERR_BADXDR;
goto nfsmout;
- };
+ }
} else if (create != NFSV4OPEN_NOCREATE) {
nd->nd_repstat = NFSERR_BADXDR;
goto nfsmout;
@@ -2832,7 +2832,7 @@ nfsrvd_open(struct nfsrv_descript *nd, __unused int isdgram,
case NFSCREATE_EXCLUSIVE41:
exclusive_flag = 1;
break;
- };
+ }
}
nfsvno_open(nd, &named, clientid, &stateid, stp,
&exclusive_flag, &nva, cverf, create, aclp, &attrbits,
@@ -2853,7 +2853,7 @@ nfsrvd_open(struct nfsrv_descript *nd, __unused int isdgram,
default:
nd->nd_repstat = NFSERR_BADXDR;
goto nfsmout;
- };
+ }
stp->ls_flags |= NFSLCK_RECLAIM;
} else {
/* CLAIM_NULL_FH */
@@ -3247,7 +3247,7 @@ nfsrvd_opendowngrade(struct nfsrv_descript *nd, __unused int isdgram,
break;
default:
nd->nd_repstat = NFSERR_BADXDR;
- };
+ }
i = fxdr_unsigned(int, *tl);
switch (i) {
case NFSV4OPEN_DENYNONE:
@@ -3263,7 +3263,7 @@ nfsrvd_opendowngrade(struct nfsrv_descript *nd, __unused int isdgram,
break;
default:
nd->nd_repstat = NFSERR_BADXDR;
- };
+ }
clientid.lval[0] = stp->ls_stateid.other[0];
clientid.lval[1] = stp->ls_stateid.other[1];
diff --git a/sys/fs/nfsserver/nfs_nfsdsocket.c b/sys/fs/nfsserver/nfs_nfsdsocket.c
index 4497161..4e995c1 100644
--- a/sys/fs/nfsserver/nfs_nfsdsocket.c
+++ b/sys/fs/nfsserver/nfs_nfsdsocket.c
@@ -992,7 +992,7 @@ nfsrvd_compound(struct nfsrv_descript *nd, int isdgram, u_char *tag,
NULL, p, &vpnes);
}
}
- };
+ }
if (error) {
if (error == EBADRPC || error == NFSERR_BADXDR) {
nd->nd_repstat = NFSERR_BADXDR;
diff --git a/sys/fs/nfsserver/nfs_nfsdsubs.c b/sys/fs/nfsserver/nfs_nfsdsubs.c
index c0421e3..c177f45 100644
--- a/sys/fs/nfsserver/nfs_nfsdsubs.c
+++ b/sys/fs/nfsserver/nfs_nfsdsubs.c
@@ -1814,7 +1814,7 @@ nfsrv_putreferralattr(struct nfsrv_descript *nd, nfsattrbit_t *retbitp,
break;
default:
printf("EEK! Bad V4 refattr bitpos=%d\n", bitpos);
- };
+ }
}
}
*retnump = txdr_unsigned(retnum);
diff --git a/sys/fs/smbfs/smbfs_io.c b/sys/fs/smbfs/smbfs_io.c
index 4de3827..f549160 100644
--- a/sys/fs/smbfs/smbfs_io.c
+++ b/sys/fs/smbfs/smbfs_io.c
@@ -342,7 +342,7 @@ smbfs_doio(struct vnode *vp, struct buf *bp, struct ucred *cr, struct thread *td
default:
printf("smbfs_doio: type %x unexpected\n",vp->v_type);
break;
- };
+ }
if (error) {
bp->b_error = error;
bp->b_ioflags |= BIO_ERROR;
diff --git a/sys/fs/smbfs/smbfs_subr.c b/sys/fs/smbfs/smbfs_subr.c
index 4e9f77d..a97fb80 100644
--- a/sys/fs/smbfs/smbfs_subr.c
+++ b/sys/fs/smbfs/smbfs_subr.c
@@ -59,7 +59,6 @@ void
smb_time_server2local(u_long seconds, int tzoff, struct timespec *tsp)
{
tsp->tv_sec = seconds + tzoff * 60;
- /*+ tz_minuteswest * 60 + (wall_cmos_clock ? adjkerntz : 0)*/;
}
/*
diff --git a/sys/fs/smbfs/smbfs_vnops.c b/sys/fs/smbfs/smbfs_vnops.c
index c78ceb2..1c762b0 100644
--- a/sys/fs/smbfs/smbfs_vnops.c
+++ b/sys/fs/smbfs/smbfs_vnops.c
@@ -341,7 +341,7 @@ smbfs_setattr(ap)
default:
error = EINVAL;
goto out;
- };
+ }
if (isreadonly) {
error = EROFS;
goto out;
diff --git a/sys/fs/tmpfs/tmpfs_subr.c b/sys/fs/tmpfs/tmpfs_subr.c
index fcc8782..72e8792 100644
--- a/sys/fs/tmpfs/tmpfs_subr.c
+++ b/sys/fs/tmpfs/tmpfs_subr.c
@@ -945,7 +945,7 @@ tmpfs_dir_attach_dup(struct tmpfs_node *dnode,
LIST_INSERT_BEFORE(de, nde, uh.td_dup.index_entries);
LIST_INSERT_HEAD(duphead, nde, uh.td_dup.entries);
return;
- };
+ }
}
/*
diff --git a/sys/fs/unionfs/union_subr.c b/sys/fs/unionfs/union_subr.c
index 951d775..6f53473 100644
--- a/sys/fs/unionfs/union_subr.c
+++ b/sys/fs/unionfs/union_subr.c
@@ -1238,7 +1238,7 @@ unionfs_checkuppervp(struct vnode *vp, char *fil, int lno)
"unionfs_checkuppervp: on non-unionfs-node.\n");
#endif
panic("unionfs_checkuppervp");
- };
+ }
#endif
return (unp->un_uppervp);
}
@@ -1258,7 +1258,7 @@ unionfs_checklowervp(struct vnode *vp, char *fil, int lno)
"unionfs_checklowervp: on non-unionfs-node.\n");
#endif
panic("unionfs_checklowervp");
- };
+ }
#endif
return (unp->un_lowervp);
}
diff --git a/sys/geom/eli/g_eli.c b/sys/geom/eli/g_eli.c
index a2b4e65..912a5c5 100644
--- a/sys/geom/eli/g_eli.c
+++ b/sys/geom/eli/g_eli.c
@@ -1181,6 +1181,7 @@ g_eli_dumpconf(struct sbuf *sb, const char *indent, struct g_geom *gp,
ADD_FLAG(G_ELI_FLAG_DESTROY, "DESTROY");
ADD_FLAG(G_ELI_FLAG_RO, "READ-ONLY");
ADD_FLAG(G_ELI_FLAG_NODELETE, "NODELETE");
+ ADD_FLAG(G_ELI_FLAG_GELIBOOT, "GELIBOOT");
#undef ADD_FLAG
}
sbuf_printf(sb, "</Flags>\n");
diff --git a/sys/geom/eli/g_eli.h b/sys/geom/eli/g_eli.h
index 3deb865..13e7807 100644
--- a/sys/geom/eli/g_eli.h
+++ b/sys/geom/eli/g_eli.h
@@ -97,6 +97,8 @@
#define G_ELI_FLAG_RO 0x00000020
/* Don't pass through BIO_DELETE requests. */
#define G_ELI_FLAG_NODELETE 0x00000040
+/* This GELI supports GELIBoot */
+#define G_ELI_FLAG_GELIBOOT 0x00000080
/* RUNTIME FLAGS. */
/* Provider was open for writing. */
#define G_ELI_FLAG_WOPEN 0x00010000
diff --git a/sys/geom/eli/g_eli_ctl.c b/sys/geom/eli/g_eli_ctl.c
index 9de7ec3..89e9f02 100644
--- a/sys/geom/eli/g_eli_ctl.c
+++ b/sys/geom/eli/g_eli_ctl.c
@@ -376,7 +376,7 @@ g_eli_ctl_configure(struct gctl_req *req, struct g_class *mp)
char param[16];
const char *prov;
u_char *sector;
- int *nargs, *boot, *noboot, *trim, *notrim;
+ int *nargs, *boot, *noboot, *trim, *notrim, *geliboot, *nogeliboot;
int zero, error, changed;
u_int i;
@@ -421,6 +421,19 @@ g_eli_ctl_configure(struct gctl_req *req, struct g_class *mp)
if (*trim || *notrim)
changed = 1;
+ geliboot = gctl_get_paraml(req, "geliboot", sizeof(*geliboot));
+ if (geliboot == NULL)
+ geliboot = &zero;
+ nogeliboot = gctl_get_paraml(req, "nogeliboot", sizeof(*nogeliboot));
+ if (nogeliboot == NULL)
+ nogeliboot = &zero;
+ if (*geliboot && *nogeliboot) {
+ gctl_error(req, "Options -g and -G are mutually exclusive.");
+ return;
+ }
+ if (*geliboot || *nogeliboot)
+ changed = 1;
+
if (!changed) {
gctl_error(req, "No option given.");
return;
@@ -469,6 +482,16 @@ g_eli_ctl_configure(struct gctl_req *req, struct g_class *mp)
continue;
}
+ if (*geliboot && (sc->sc_flags & G_ELI_FLAG_GELIBOOT)) {
+ G_ELI_DEBUG(1, "GELIBOOT flag already configured for %s.",
+ prov);
+ continue;
+ } else if (*nogeliboot && !(sc->sc_flags & G_ELI_FLAG_GELIBOOT)) {
+ G_ELI_DEBUG(1, "GELIBOOT flag not configured for %s.",
+ prov);
+ continue;
+ }
+
if (!(sc->sc_flags & G_ELI_FLAG_ONETIME)) {
/*
* ONETIME providers don't write metadata to
@@ -504,6 +527,14 @@ g_eli_ctl_configure(struct gctl_req *req, struct g_class *mp)
sc->sc_flags &= ~G_ELI_FLAG_NODELETE;
}
+ if (*geliboot) {
+ md.md_flags |= G_ELI_FLAG_GELIBOOT;
+ sc->sc_flags |= G_ELI_FLAG_GELIBOOT;
+ } else if (*nogeliboot) {
+ md.md_flags &= ~G_ELI_FLAG_GELIBOOT;
+ sc->sc_flags &= ~G_ELI_FLAG_GELIBOOT;
+ }
+
if (sc->sc_flags & G_ELI_FLAG_ONETIME) {
/* There's no metadata on disk so we are done here. */
continue;
diff --git a/sys/geom/raid/md_promise.c b/sys/geom/raid/md_promise.c
index 2d161e7..42ae947 100644
--- a/sys/geom/raid/md_promise.c
+++ b/sys/geom/raid/md_promise.c
@@ -290,7 +290,7 @@ promise_meta_unused_range(struct promise_raid_conf **metaarr, int nsd,
metaarr[i]->disk_sectors;
csize = sectors - coff;
i++;
- };
+ }
return ((*size > 0) ? 1 : 0);
}
diff --git a/sys/geom/sched/g_sched.c b/sys/geom/sched/g_sched.c
index d4e3ca0..192f5c5 100644
--- a/sys/geom/sched/g_sched.c
+++ b/sys/geom/sched/g_sched.c
@@ -742,7 +742,7 @@ g_gsched_modevent(module_t mod, int cmd, void *arg)
G_SCHED_DEBUG(0, "Unloaded module %s error %d.",
gsp->gs_name, error);
break;
- };
+ }
return (error);
}
diff --git a/sys/kern/kern_cpuset.c b/sys/kern/kern_cpuset.c
index 4c057cc..f0f184b 100644
--- a/sys/kern/kern_cpuset.c
+++ b/sys/kern/kern_cpuset.c
@@ -831,7 +831,7 @@ struct cpuset *
cpuset_thread0(void)
{
struct cpuset *set;
- int error;
+ int error, i;
cpuset_zone = uma_zcreate("cpuset", sizeof(struct cpuset), NULL, NULL,
NULL, NULL, UMA_ALIGN_PTR, 0);
@@ -863,9 +863,15 @@ cpuset_thread0(void)
*/
cpuset_unr = new_unrhdr(2, INT_MAX, NULL);
- /* MD Code is responsible for initializing sets if vm_ndomains > 1. */
- if (vm_ndomains == 1)
- CPU_COPY(&all_cpus, &cpuset_domain[0]);
+ /*
+ * If MD code has not initialized per-domain cpusets, place all
+ * CPUs in domain 0.
+ */
+ for (i = 0; i < MAXMEMDOM; i++)
+ if (!CPU_EMPTY(&cpuset_domain[i]))
+ goto domains_set;
+ CPU_COPY(&all_cpus, &cpuset_domain[0]);
+domains_set:
return (set);
}
@@ -1118,7 +1124,7 @@ sys_cpuset_getaffinity(struct thread *td, struct cpuset_getaffinity_args *uap)
error = intr_getaffinity(uap->id, mask);
break;
case CPU_WHICH_DOMAIN:
- if (uap->id < 0 || uap->id >= vm_ndomains)
+ if (uap->id < 0 || uap->id >= MAXMEMDOM)
error = ESRCH;
else
CPU_COPY(&cpuset_domain[uap->id], mask);
diff --git a/sys/kern/kern_physio.c b/sys/kern/kern_physio.c
index a148386..31d8f16 100644
--- a/sys/kern/kern_physio.c
+++ b/sys/kern/kern_physio.c
@@ -27,6 +27,7 @@ __FBSDID("$FreeBSD$");
#include <sys/conf.h>
#include <sys/malloc.h>
#include <sys/proc.h>
+#include <sys/racct.h>
#include <sys/uio.h>
#include <geom/geom.h>
@@ -109,6 +110,22 @@ physio(struct cdev *dev, struct uio *uio, int ioflag)
prot |= VM_PROT_WRITE; /* Less backwards than it looks */
error = 0;
for (i = 0; i < uio->uio_iovcnt; i++) {
+#ifdef RACCT
+ if (racct_enable) {
+ PROC_LOCK(curproc);
+ if (uio->uio_rw == UIO_READ) {
+ racct_add_force(curproc, RACCT_READBPS,
+ uio->uio_iov[i].iov_len);
+ racct_add_force(curproc, RACCT_READIOPS, 1);
+ } else {
+ racct_add_force(curproc, RACCT_WRITEBPS,
+ uio->uio_iov[i].iov_len);
+ racct_add_force(curproc, RACCT_WRITEIOPS, 1);
+ }
+ PROC_UNLOCK(curproc);
+ }
+#endif /* RACCT */
+
while (uio->uio_iov[i].iov_len) {
g_reset_bio(bp);
if (uio->uio_rw == UIO_READ) {
diff --git a/sys/kern/kern_racct.c b/sys/kern/kern_racct.c
index bbd50ca..438a249 100644
--- a/sys/kern/kern_racct.c
+++ b/sys/kern/kern_racct.c
@@ -35,6 +35,7 @@ __FBSDID("$FreeBSD$");
#include "opt_sched.h"
#include <sys/param.h>
+#include <sys/buf.h>
#include <sys/systm.h>
#include <sys/eventhandler.h>
#include <sys/jail.h>
@@ -177,7 +178,15 @@ int racct_types[] = {
[RACCT_WALLCLOCK] =
RACCT_IN_MILLIONS,
[RACCT_PCTCPU] =
- RACCT_DECAYING | RACCT_DENIABLE | RACCT_IN_MILLIONS };
+ RACCT_DECAYING | RACCT_DENIABLE | RACCT_IN_MILLIONS,
+ [RACCT_READBPS] =
+ RACCT_DECAYING,
+ [RACCT_WRITEBPS] =
+ RACCT_DECAYING,
+ [RACCT_READIOPS] =
+ RACCT_DECAYING,
+ [RACCT_WRITEIOPS] =
+ RACCT_DECAYING };
static const fixpt_t RACCT_DECAY_FACTOR = 0.3 * FSCALE;
@@ -634,6 +643,28 @@ racct_add_cred(struct ucred *cred, int resource, uint64_t amount)
RACCT_UNLOCK();
}
+/*
+ * Account for disk IO resource consumption. Checks for limits,
+ * but never fails, due to disk limits being undeniable.
+ */
+void
+racct_add_buf(struct proc *p, const struct buf *bp, int is_write)
+{
+
+ ASSERT_RACCT_ENABLED();
+ PROC_LOCK_ASSERT(p, MA_OWNED);
+
+ RACCT_LOCK();
+ if (is_write) {
+ racct_add_locked(curproc, RACCT_WRITEBPS, bp->b_bcount, 1);
+ racct_add_locked(curproc, RACCT_WRITEIOPS, 1, 1);
+ } else {
+ racct_add_locked(curproc, RACCT_READBPS, bp->b_bcount, 1);
+ racct_add_locked(curproc, RACCT_READIOPS, 1, 1);
+ }
+ RACCT_UNLOCK();
+}
+
static int
racct_set_locked(struct proc *p, int resource, uint64_t amount, int force)
{
@@ -655,7 +686,7 @@ racct_set_locked(struct proc *p, int resource, uint64_t amount, int force)
* The diffs may be negative.
*/
diff_proc = amount - old_amount;
- if (RACCT_IS_DECAYING(resource)) {
+ if (resource == RACCT_PCTCPU) {
/*
* Resources in per-credential racct containers may decay.
* If this is the case, we need to calculate the difference
@@ -1043,14 +1074,19 @@ racct_move(struct racct *dest, struct racct *src)
RACCT_UNLOCK();
}
-static void
-racct_proc_throttle(struct proc *p)
+/*
+ * Make the process sleep in userret() for 'timeout' ticks. Setting
+ * timeout to -1 makes it sleep until woken up by racct_proc_wakeup().
+ */
+void
+racct_proc_throttle(struct proc *p, int timeout)
{
struct thread *td;
#ifdef SMP
int cpuid;
#endif
+ KASSERT(timeout != 0, ("timeout %d", timeout));
ASSERT_RACCT_ENABLED();
PROC_LOCK_ASSERT(p, MA_OWNED);
@@ -1058,10 +1094,13 @@ racct_proc_throttle(struct proc *p)
* Do not block kernel processes. Also do not block processes with
* low %cpu utilization to improve interactivity.
*/
- if (((p->p_flag & (P_SYSTEM | P_KPROC)) != 0) ||
- (p->p_racct->r_resources[RACCT_PCTCPU] <= pcpu_threshold))
+ if ((p->p_flag & (P_SYSTEM | P_KPROC)) != 0)
return;
- p->p_throttled = 1;
+
+ if (p->p_throttled < 0 || (timeout > 0 && p->p_throttled > timeout))
+ return;
+
+ p->p_throttled = timeout;
FOREACH_THREAD_IN_PROC(p, td) {
thread_lock(td);
@@ -1102,7 +1141,7 @@ racct_proc_wakeup(struct proc *p)
PROC_LOCK_ASSERT(p, MA_OWNED);
- if (p->p_throttled) {
+ if (p->p_throttled != 0) {
p->p_throttled = 0;
wakeup(p->p_racct);
}
@@ -1116,6 +1155,13 @@ racct_decay_callback(struct racct *racct, void *dummy1, void *dummy2)
ASSERT_RACCT_ENABLED();
RACCT_LOCK_ASSERT();
+#ifdef RCTL
+ rctl_throttle_decay(racct, RACCT_READBPS);
+ rctl_throttle_decay(racct, RACCT_WRITEBPS);
+ rctl_throttle_decay(racct, RACCT_READIOPS);
+ rctl_throttle_decay(racct, RACCT_WRITEIOPS);
+#endif
+
r_old = racct->r_resources[RACCT_PCTCPU];
/* If there is nothing to decay, just exit. */
@@ -1206,6 +1252,12 @@ racctd(void)
pct_estimate = 0;
pct = racct_getpcpu(p, pct_estimate);
RACCT_LOCK();
+#ifdef RCTL
+ rctl_throttle_decay(p->p_racct, RACCT_READBPS);
+ rctl_throttle_decay(p->p_racct, RACCT_WRITEBPS);
+ rctl_throttle_decay(p->p_racct, RACCT_READIOPS);
+ rctl_throttle_decay(p->p_racct, RACCT_WRITEIOPS);
+#endif
racct_set_locked(p, RACCT_PCTCPU, pct, 1);
racct_set_locked(p, RACCT_CPU, runtime, 0);
racct_set_locked(p, RACCT_WALLCLOCK,
@@ -1228,10 +1280,13 @@ racctd(void)
continue;
}
- if (racct_pcpu_available(p) <= 0)
- racct_proc_throttle(p);
- else if (p->p_throttled)
+ if (racct_pcpu_available(p) <= 0) {
+ if (p->p_racct->r_resources[RACCT_PCTCPU] >
+ pcpu_threshold)
+ racct_proc_throttle(p, -1);
+ } else if (p->p_throttled == -1) {
racct_proc_wakeup(p);
+ }
PROC_UNLOCK(p);
}
sx_sunlock(&allproc_lock);
diff --git a/sys/kern/kern_rctl.c b/sys/kern/kern_rctl.c
index 7f6a7ad..2442852 100644
--- a/sys/kern/kern_rctl.c
+++ b/sys/kern/kern_rctl.c
@@ -77,17 +77,46 @@ FEATURE(rctl, "Resource Limits");
#define RCTL_PCPU_SHIFT (10 * 1000000)
-unsigned int rctl_maxbufsize = RCTL_MAX_OUTBUFSIZE;
+static unsigned int rctl_maxbufsize = RCTL_MAX_OUTBUFSIZE;
static int rctl_log_rate_limit = 10;
static int rctl_devctl_rate_limit = 10;
+/*
+ * Values below are initialized in rctl_init().
+ */
+static int rctl_throttle_min = -1;
+static int rctl_throttle_max = -1;
+static int rctl_throttle_pct = -1;
+static int rctl_throttle_pct2 = -1;
+
+static int rctl_throttle_min_sysctl(SYSCTL_HANDLER_ARGS);
+static int rctl_throttle_max_sysctl(SYSCTL_HANDLER_ARGS);
+static int rctl_throttle_pct_sysctl(SYSCTL_HANDLER_ARGS);
+static int rctl_throttle_pct2_sysctl(SYSCTL_HANDLER_ARGS);
+
SYSCTL_NODE(_kern_racct, OID_AUTO, rctl, CTLFLAG_RW, 0, "Resource Limits");
SYSCTL_UINT(_kern_racct_rctl, OID_AUTO, maxbufsize, CTLFLAG_RWTUN,
&rctl_maxbufsize, 0, "Maximum output buffer size");
SYSCTL_UINT(_kern_racct_rctl, OID_AUTO, log_rate_limit, CTLFLAG_RW,
&rctl_log_rate_limit, 0, "Maximum number of log messages per second");
-SYSCTL_UINT(_kern_racct_rctl, OID_AUTO, devctl_rate_limit, CTLFLAG_RW,
+SYSCTL_UINT(_kern_racct_rctl, OID_AUTO, devctl_rate_limit, CTLFLAG_RWTUN,
&rctl_devctl_rate_limit, 0, "Maximum number of devctl messages per second");
+SYSCTL_PROC(_kern_racct_rctl, OID_AUTO, throttle_min,
+ CTLTYPE_UINT | CTLFLAG_RWTUN, 0, 0, &rctl_throttle_min_sysctl, "IU",
+ "Shortest throttling duration, in hz");
+TUNABLE_INT("kern.racct.rctl.throttle_min", &rctl_throttle_min);
+SYSCTL_PROC(_kern_racct_rctl, OID_AUTO, throttle_max,
+ CTLTYPE_UINT | CTLFLAG_RWTUN, 0, 0, &rctl_throttle_max_sysctl, "IU",
+ "Longest throttling duration, in hz");
+TUNABLE_INT("kern.racct.rctl.throttle_max", &rctl_throttle_max);
+SYSCTL_PROC(_kern_racct_rctl, OID_AUTO, throttle_pct,
+ CTLTYPE_UINT | CTLFLAG_RWTUN, 0, 0, &rctl_throttle_pct_sysctl, "IU",
+ "Throttling penalty for process consumption, in percent");
+TUNABLE_INT("kern.racct.rctl.throttle_pct", &rctl_throttle_pct);
+SYSCTL_PROC(_kern_racct_rctl, OID_AUTO, throttle_pct2,
+ CTLTYPE_UINT | CTLFLAG_RWTUN, 0, 0, &rctl_throttle_pct2_sysctl, "IU",
+ "Throttling penalty for container consumption, in percent");
+TUNABLE_INT("kern.racct.rctl.throttle_pct2", &rctl_throttle_pct2);
/*
* 'rctl_rule_link' connects a rule with every racct it's related to.
@@ -134,6 +163,10 @@ static struct dict resourcenames[] = {
{ "shmsize", RACCT_SHMSIZE },
{ "wallclock", RACCT_WALLCLOCK },
{ "pcpu", RACCT_PCTCPU },
+ { "readbps", RACCT_READBPS },
+ { "writebps", RACCT_WRITEBPS },
+ { "readiops", RACCT_READIOPS },
+ { "writeiops", RACCT_WRITEIOPS },
{ NULL, -1 }};
static struct dict actionnames[] = {
@@ -171,6 +204,7 @@ static struct dict actionnames[] = {
{ "deny", RCTL_ACTION_DENY },
{ "log", RCTL_ACTION_LOG },
{ "devctl", RCTL_ACTION_DEVCTL },
+ { "throttle", RCTL_ACTION_THROTTLE },
{ NULL, -1 }};
static void rctl_init(void);
@@ -193,6 +227,78 @@ static void rctl_rule_to_sbuf(struct sbuf *sb, const struct rctl_rule *rule);
static MALLOC_DEFINE(M_RCTL, "rctl", "Resource Limits");
+static int rctl_throttle_min_sysctl(SYSCTL_HANDLER_ARGS)
+{
+ int val = rctl_throttle_min;
+ int error;
+
+ error = sysctl_handle_int(oidp, &val, 0, req);
+ if (error || !req->newptr)
+ return (error);
+ if (val < 1 || val > rctl_throttle_max)
+ return (EINVAL);
+
+ RCTL_WLOCK();
+ rctl_throttle_min = val;
+ RCTL_WUNLOCK();
+
+ return (0);
+}
+
+static int rctl_throttle_max_sysctl(SYSCTL_HANDLER_ARGS)
+{
+ int val = rctl_throttle_max;
+ int error;
+
+ error = sysctl_handle_int(oidp, &val, 0, req);
+ if (error || !req->newptr)
+ return (error);
+ if (val < rctl_throttle_min)
+ return (EINVAL);
+
+ RCTL_WLOCK();
+ rctl_throttle_max = val;
+ RCTL_WUNLOCK();
+
+ return (0);
+}
+
+static int rctl_throttle_pct_sysctl(SYSCTL_HANDLER_ARGS)
+{
+ int val = rctl_throttle_pct;
+ int error;
+
+ error = sysctl_handle_int(oidp, &val, 0, req);
+ if (error || !req->newptr)
+ return (error);
+ if (val < 0)
+ return (EINVAL);
+
+ RCTL_WLOCK();
+ rctl_throttle_pct = val;
+ RCTL_WUNLOCK();
+
+ return (0);
+}
+
+static int rctl_throttle_pct2_sysctl(SYSCTL_HANDLER_ARGS)
+{
+ int val = rctl_throttle_pct2;
+ int error;
+
+ error = sysctl_handle_int(oidp, &val, 0, req);
+ if (error || !req->newptr)
+ return (error);
+ if (val < 0)
+ return (EINVAL);
+
+ RCTL_WLOCK();
+ rctl_throttle_pct2 = val;
+ RCTL_WUNLOCK();
+
+ return (0);
+}
+
static const char *
rctl_subject_type_name(int subject)
{
@@ -274,23 +380,53 @@ rctl_available_resource(const struct proc *p, const struct rctl_rule *rule)
}
/*
- * Return non-zero if allocating 'amount' by proc 'p' would exceed
- * resource limit specified by 'rule'.
+ * Called every second for proc, uidinfo, loginclass, and jail containers.
+ * If the limit isn't exceeded, it decreases the usage amount to zero.
+ * Otherwise, it decreases it by the value of the limit. This way
+ * resource consumption exceeding the limit "carries over" to the next
+ * period.
*/
-static int
-rctl_would_exceed(const struct proc *p, const struct rctl_rule *rule,
- int64_t amount)
+void
+rctl_throttle_decay(struct racct *racct, int resource)
{
- int64_t available;
+ struct rctl_rule *rule;
+ struct rctl_rule_link *link;
+ int64_t minavailable;
ASSERT_RACCT_ENABLED();
- RCTL_LOCK_ASSERT();
- available = rctl_available_resource(p, rule);
- if (available >= amount)
- return (0);
+ minavailable = INT64_MAX;
- return (1);
+ RCTL_RLOCK();
+
+ LIST_FOREACH(link, &racct->r_rule_links, rrl_next) {
+ rule = link->rrl_rule;
+
+ if (rule->rr_resource != resource)
+ continue;
+ if (rule->rr_action != RCTL_ACTION_THROTTLE)
+ continue;
+
+ if (rule->rr_amount < minavailable)
+ minavailable = rule->rr_amount;
+ }
+
+ RCTL_RUNLOCK();
+
+ if (racct->r_resources[resource] < minavailable) {
+ racct->r_resources[resource] = 0;
+ } else {
+ /*
+ * Cap utilization counter at ten times the limit. Otherwise,
+ * if we changed the rule lowering the allowed amount, it could
+ * take unreasonably long time for the accumulated resource
+ * usage to drop.
+ */
+ if (racct->r_resources[resource] > minavailable * 10)
+ racct->r_resources[resource] = minavailable * 10;
+
+ racct->r_resources[resource] -= minavailable;
+ }
}
/*
@@ -340,6 +476,38 @@ rctl_pcpu_available(const struct proc *p) {
return (minavailable);
}
+static uint64_t
+xadd(uint64_t a, uint64_t b)
+{
+ uint64_t c;
+
+ c = a + b;
+
+ /*
+ * Detect overflow.
+ */
+ if (c < a || c < b)
+ return (UINT64_MAX);
+
+ return (c);
+}
+
+static uint64_t
+xmul(uint64_t a, uint64_t b)
+{
+ uint64_t c;
+
+ if (a == 0 || b == 0)
+ return (0);
+
+ c = a * b;
+
+ if (c < a || c < b)
+ return (UINT64_MAX);
+
+ return (c);
+}
+
/*
* Check whether the proc 'p' can allocate 'amount' of 'resource' in addition
* to what it keeps allocated now. Returns non-zero if the allocation should
@@ -353,9 +521,12 @@ rctl_enforce(struct proc *p, int resource, uint64_t amount)
struct rctl_rule *rule;
struct rctl_rule_link *link;
struct sbuf sb;
+ int64_t available;
+ uint64_t sleep_ms, sleep_ratio;
int should_deny = 0;
char *buf;
+
ASSERT_RACCT_ENABLED();
RCTL_RLOCK();
@@ -368,7 +539,9 @@ rctl_enforce(struct proc *p, int resource, uint64_t amount)
rule = link->rrl_rule;
if (rule->rr_resource != resource)
continue;
- if (!rctl_would_exceed(p, rule, amount)) {
+
+ available = rctl_available_resource(p, rule);
+ if (available >= (int64_t)amount) {
link->rrl_exceeded = 0;
continue;
}
@@ -421,7 +594,7 @@ rctl_enforce(struct proc *p, int resource, uint64_t amount)
if (p->p_state != PRS_NORMAL)
continue;
-
+
if (!ppsratecheck(&devctl_lasttime, &devctl_curtime,
rctl_devctl_rate_limit))
continue;
@@ -444,6 +617,69 @@ rctl_enforce(struct proc *p, int resource, uint64_t amount)
free(buf, M_RCTL);
link->rrl_exceeded = 1;
continue;
+ case RCTL_ACTION_THROTTLE:
+ if (p->p_state != PRS_NORMAL)
+ continue;
+
+ /*
+ * Make the process sleep for a fraction of second
+ * proportional to the ratio of process' resource
+ * utilization compared to the limit. The point is
+ * to penalize resource hogs: processes that consume
+ * more of the available resources sleep for longer.
+ *
+ * We're trying to defer division until the very end,
+ * to minimize the rounding effects. The following
+ * calculation could have been written in a clearer
+ * way like this:
+ *
+ * sleep_ms = hz * p->p_racct->r_resources[resource] /
+ * rule->rr_amount;
+ * sleep_ms *= rctl_throttle_pct / 100;
+ * if (sleep_ms < rctl_throttle_min)
+ * sleep_ms = rctl_throttle_min;
+ *
+ */
+ sleep_ms = xmul(hz, p->p_racct->r_resources[resource]);
+ sleep_ms = xmul(sleep_ms, rctl_throttle_pct) / 100;
+ if (sleep_ms < rctl_throttle_min * rule->rr_amount)
+ sleep_ms = rctl_throttle_min * rule->rr_amount;
+
+ /*
+ * Multiply that by the ratio of the resource
+ * consumption for the container compared to the limit,
+ * squared. In other words, a process in a container
+ * that is two times over the limit will be throttled
+ * four times as much for hitting the same rule. The
+ * point is to penalize processes more if the container
+ * itself (eg certain UID or jail) is above the limit.
+ */
+ if (available < 0)
+ sleep_ratio = -available / rule->rr_amount;
+ else
+ sleep_ratio = 0;
+ sleep_ratio = xmul(sleep_ratio, sleep_ratio);
+ sleep_ratio = xmul(sleep_ratio, rctl_throttle_pct2) / 100;
+ sleep_ms = xadd(sleep_ms, xmul(sleep_ms, sleep_ratio));
+
+ /*
+ * Finally the division.
+ */
+ sleep_ms /= rule->rr_amount;
+
+ if (sleep_ms > rctl_throttle_max)
+ sleep_ms = rctl_throttle_max;
+#if 0
+ printf("%s: pid %d (%s), %jd of %jd, will sleep for %ld ms (ratio %ld, available %ld)\n",
+ __func__, p->p_pid, p->p_comm,
+ p->p_racct->r_resources[resource],
+ rule->rr_amount, sleep_ms, sleep_ratio, available);
+#endif
+
+ KASSERT(sleep_ms >= rctl_throttle_min, ("%s: %ju < %d\n",
+ __func__, (uintmax_t)sleep_ms, rctl_throttle_min));
+ racct_proc_throttle(p, sleep_ms);
+ continue;
default:
if (link->rrl_exceeded != 0)
continue;
@@ -1073,20 +1309,32 @@ rctl_rule_add(struct rctl_rule *rule)
KASSERT(rctl_rule_fully_specified(rule), ("rule not fully specified"));
/*
- * Some rules just don't make sense. Note that the one below
- * cannot be rewritten using RACCT_IS_DENIABLE(); the RACCT_PCTCPU,
- * for example, is not deniable in the racct sense, but the
- * limit is enforced in a different way, so "deny" rules for %CPU
- * do make sense.
+ * Some rules just don't make sense, like "deny" rule for an undeniable
+ * resource. The exception are the RSS and %CPU resources - they are
+ * not deniable in the racct sense, but the limit is enforced in
+ * a different way.
*/
if (rule->rr_action == RCTL_ACTION_DENY &&
- (rule->rr_resource == RACCT_CPU ||
- rule->rr_resource == RACCT_WALLCLOCK))
+ !RACCT_IS_DENIABLE(rule->rr_resource) &&
+ rule->rr_resource != RACCT_RSS &&
+ rule->rr_resource != RACCT_PCTCPU) {
return (EOPNOTSUPP);
+ }
+
+ if (rule->rr_action == RCTL_ACTION_THROTTLE &&
+ !RACCT_IS_DECAYING(rule->rr_resource)) {
+ return (EOPNOTSUPP);
+ }
+
+ if (rule->rr_action == RCTL_ACTION_THROTTLE &&
+ rule->rr_resource == RACCT_PCTCPU) {
+ return (EOPNOTSUPP);
+ }
if (rule->rr_per == RCTL_SUBJECT_TYPE_PROCESS &&
- RACCT_IS_SLOPPY(rule->rr_resource))
+ RACCT_IS_SLOPPY(rule->rr_resource)) {
return (EOPNOTSUPP);
+ }
/*
* Make sure there are no duplicated rules. Also, for the "deny"
@@ -1960,6 +2208,21 @@ rctl_init(void)
UMA_ALIGN_PTR, UMA_ZONE_NOFREE);
rctl_rule_zone = uma_zcreate("rctl_rule", sizeof(struct rctl_rule),
NULL, NULL, NULL, NULL, UMA_ALIGN_PTR, UMA_ZONE_NOFREE);
+
+ /*
+ * Set default values, making sure not to overwrite the ones
+ * fetched from tunables. Most of those could be set at the
+ * declaration, except for the rctl_throttle_max - we cannot
+ * set it there due to hz not being compile time constant.
+ */
+ if (rctl_throttle_min < 1)
+ rctl_throttle_min = 1;
+ if (rctl_throttle_max < rctl_throttle_min)
+ rctl_throttle_max = 2 * hz;
+ if (rctl_throttle_pct < 0)
+ rctl_throttle_pct = 100;
+ if (rctl_throttle_pct2 < 0)
+ rctl_throttle_pct2 = 100;
}
#else /* !RCTL */
diff --git a/sys/kern/link_elf_obj.c b/sys/kern/link_elf_obj.c
index 012d5b7..575a706 100644
--- a/sys/kern/link_elf_obj.c
+++ b/sys/kern/link_elf_obj.c
@@ -258,7 +258,7 @@ link_elf_link_preload(linker_class_t cls, const char *filename,
case SHT_PROGBITS:
case SHT_NOBITS:
#ifdef __amd64__
- case SHT_AMD64_UNWIND:
+ case SHT_X86_64_UNWIND:
#endif
ef->nprogtab++;
break;
@@ -331,13 +331,13 @@ link_elf_link_preload(linker_class_t cls, const char *filename,
case SHT_PROGBITS:
case SHT_NOBITS:
#ifdef __amd64__
- case SHT_AMD64_UNWIND:
+ case SHT_X86_64_UNWIND:
#endif
ef->progtab[pb].addr = (void *)shdr[i].sh_addr;
if (shdr[i].sh_type == SHT_PROGBITS)
ef->progtab[pb].name = "<<PROGBITS>>";
#ifdef __amd64__
- else if (shdr[i].sh_type == SHT_AMD64_UNWIND)
+ else if (shdr[i].sh_type == SHT_X86_64_UNWIND)
ef->progtab[pb].name = "<<UNWIND>>";
#endif
else
@@ -597,7 +597,7 @@ link_elf_load_file(linker_class_t cls, const char *filename,
case SHT_PROGBITS:
case SHT_NOBITS:
#ifdef __amd64__
- case SHT_AMD64_UNWIND:
+ case SHT_X86_64_UNWIND:
#endif
ef->nprogtab++;
break;
@@ -712,7 +712,7 @@ link_elf_load_file(linker_class_t cls, const char *filename,
case SHT_PROGBITS:
case SHT_NOBITS:
#ifdef __amd64__
- case SHT_AMD64_UNWIND:
+ case SHT_X86_64_UNWIND:
#endif
alignmask = shdr[i].sh_addralign - 1;
mapsize += alignmask;
@@ -782,7 +782,7 @@ link_elf_load_file(linker_class_t cls, const char *filename,
case SHT_PROGBITS:
case SHT_NOBITS:
#ifdef __amd64__
- case SHT_AMD64_UNWIND:
+ case SHT_X86_64_UNWIND:
#endif
alignmask = shdr[i].sh_addralign - 1;
mapbase += alignmask;
@@ -797,7 +797,7 @@ link_elf_load_file(linker_class_t cls, const char *filename,
} else if (shdr[i].sh_type == SHT_PROGBITS)
ef->progtab[pb].name = "<<PROGBITS>>";
#ifdef __amd64__
- else if (shdr[i].sh_type == SHT_AMD64_UNWIND)
+ else if (shdr[i].sh_type == SHT_X86_64_UNWIND)
ef->progtab[pb].name = "<<UNWIND>>";
#endif
else
@@ -823,7 +823,7 @@ link_elf_load_file(linker_class_t cls, const char *filename,
ef->progtab[pb].sec = i;
if (shdr[i].sh_type == SHT_PROGBITS
#ifdef __amd64__
- || shdr[i].sh_type == SHT_AMD64_UNWIND
+ || shdr[i].sh_type == SHT_X86_64_UNWIND
#endif
) {
error = vn_rdwr(UIO_READ, nd.ni_vp,
diff --git a/sys/kern/subr_bus.c b/sys/kern/subr_bus.c
index caf9202..81be368 100644
--- a/sys/kern/subr_bus.c
+++ b/sys/kern/subr_bus.c
@@ -5125,6 +5125,18 @@ bus_free_resource(device_t dev, int type, struct resource *r)
return (bus_release_resource(dev, type, rman_get_rid(r), r));
}
+device_t
+device_lookup_by_name(const char *name)
+{
+ device_t dev;
+
+ TAILQ_FOREACH(dev, &bus_data_devices, devlink) {
+ if (dev->nameunit != NULL && strcmp(dev->nameunit, name) == 0)
+ return (dev);
+ }
+ return (NULL);
+}
+
/*
* /dev/devctl2 implementation. The existing /dev/devctl device has
* implicit semantics on open, so it could not be reused for this.
@@ -5145,12 +5157,10 @@ find_device(struct devreq *req, device_t *devp)
* Second, try to find an attached device whose name matches
* 'name'.
*/
- TAILQ_FOREACH(dev, &bus_data_devices, devlink) {
- if (dev->nameunit != NULL &&
- strcmp(dev->nameunit, req->dr_name) == 0) {
- *devp = dev;
- return (0);
- }
+ dev = device_lookup_by_name(req->dr_name);
+ if (dev != NULL) {
+ *devp = dev;
+ return (0);
}
/* Finally, give device enumerators a chance. */
diff --git a/sys/kern/subr_hash.c b/sys/kern/subr_hash.c
index 5533882..fe81286 100644
--- a/sys/kern/subr_hash.c
+++ b/sys/kern/subr_hash.c
@@ -93,7 +93,8 @@ hashdestroy(void *vhashtbl, struct malloc_type *type, u_long hashmask)
hashtbl = vhashtbl;
for (hp = hashtbl; hp <= &hashtbl[hashmask]; hp++)
- KASSERT(LIST_EMPTY(hp), ("%s: hash not empty", __func__));
+ KASSERT(LIST_EMPTY(hp), ("%s: hashtbl %p not empty "
+ "(malloc type %s)", __func__, hashtbl, type->ks_shortdesc));
free(hashtbl, type);
}
diff --git a/sys/kern/subr_intr.c b/sys/kern/subr_intr.c
index 96319ad..dc1e487 100644
--- a/sys/kern/subr_intr.c
+++ b/sys/kern/subr_intr.c
@@ -467,6 +467,32 @@ intr_isrc_deregister(struct intr_irqsrc *isrc)
return (error);
}
+#ifdef SMP
+/*
+ * A support function for a PIC to decide if provided ISRC should be inited
+ * on given cpu. The logic of INTR_ISRCF_BOUND flag and isrc_cpu member of
+ * struct intr_irqsrc is the following:
+ *
+ * If INTR_ISRCF_BOUND is set, the ISRC should be inited only on cpus
+ * set in isrc_cpu. If not, the ISRC should be inited on every cpu and
+ * isrc_cpu is kept consistent with it. Thus isrc_cpu is always correct.
+ */
+bool
+intr_isrc_init_on_cpu(struct intr_irqsrc *isrc, u_int cpu)
+{
+
+ if (isrc->isrc_handlers == 0)
+ return (false);
+ if ((isrc->isrc_flags & (INTR_ISRCF_PPI | INTR_ISRCF_IPI)) == 0)
+ return (false);
+ if (isrc->isrc_flags & INTR_ISRCF_BOUND)
+ return (CPU_ISSET(cpu, &isrc->isrc_cpu));
+
+ CPU_SET(cpu, &isrc->isrc_cpu);
+ return (true);
+}
+#endif
+
static struct intr_dev_data *
intr_ddata_alloc(u_int extsize)
{
@@ -766,11 +792,19 @@ pic_lookup_locked(device_t dev, intptr_t xref)
mtx_assert(&pic_list_lock, MA_OWNED);
+ if (dev == NULL && xref == 0)
+ return (NULL);
+
+ /* Note that pic->pic_dev is never NULL on registered PIC. */
SLIST_FOREACH(pic, &pic_list, pic_next) {
- if (pic->pic_xref != xref)
- continue;
- if (pic->pic_xref != 0 || pic->pic_dev == dev)
- return (pic);
+ if (dev == NULL) {
+ if (xref == pic->pic_xref)
+ return (pic);
+ } else if (xref == 0 || pic->pic_xref == 0) {
+ if (dev == pic->pic_dev)
+ return (pic);
+ } else if (xref == pic->pic_xref && dev == pic->pic_dev)
+ return (pic);
}
return (NULL);
}
@@ -840,14 +874,14 @@ intr_pic_register(device_t dev, intptr_t xref)
{
struct intr_pic *pic;
+ if (dev == NULL)
+ return (EINVAL);
pic = pic_create(dev, xref);
if (pic == NULL)
return (ENOMEM);
- if (pic->pic_dev != dev)
- return (EINVAL); /* XXX it could be many things. */
- debugf("PIC %p registered for %s <xref %x>\n", pic,
- device_get_nameunit(dev), xref);
+ debugf("PIC %p registered for %s <dev %p, xref %x>\n", pic,
+ device_get_nameunit(dev), dev, xref);
return (0);
}
@@ -1156,7 +1190,7 @@ intr_irq_shuffle(void *arg __unused)
for (i = 0; i < NIRQ; i++) {
isrc = irq_sources[i];
if (isrc == NULL || isrc->isrc_handlers == 0 ||
- isrc->isrc_flags & INTR_ISRCF_PPI)
+ isrc->isrc_flags & (INTR_ISRCF_PPI | INTR_ISRCF_IPI))
continue;
if (isrc->isrc_event != NULL &&
diff --git a/sys/kern/subr_smp.c b/sys/kern/subr_smp.c
index b09bc50..4f3b51d 100644
--- a/sys/kern/subr_smp.c
+++ b/sys/kern/subr_smp.c
@@ -1029,8 +1029,8 @@ topo_set_pu_id(struct topo_node *node, cpuid_t id)
node->subtype = 1;
while ((node = node->parent) != NULL) {
- if (CPU_ISSET(id, &node->cpuset))
- break;
+ KASSERT(!CPU_ISSET(id, &node->cpuset),
+ ("logical ID %u is already set in node %p", id, node));
CPU_SET(id, &node->cpuset);
node->cpu_count++;
}
diff --git a/sys/kern/subr_trap.c b/sys/kern/subr_trap.c
index a371456..6d1ac70 100644
--- a/sys/kern/subr_trap.c
+++ b/sys/kern/subr_trap.c
@@ -172,10 +172,14 @@ userret(struct thread *td, struct trapframe *frame)
(td->td_vnet_lpush != NULL) ? td->td_vnet_lpush : "N/A"));
#endif
#ifdef RACCT
- if (racct_enable && p->p_throttled == 1) {
+ if (racct_enable && p->p_throttled != 0) {
PROC_LOCK(p);
- while (p->p_throttled == 1)
- msleep(p->p_racct, &p->p_mtx, 0, "racct", 0);
+ while (p->p_throttled != 0) {
+ msleep(p->p_racct, &p->p_mtx, 0, "racct",
+ p->p_throttled < 0 ? 0 : p->p_throttled);
+ if (p->p_throttled > 0)
+ p->p_throttled = 0;
+ }
PROC_UNLOCK(p);
}
#endif
diff --git a/sys/kern/vfs_bio.c b/sys/kern/vfs_bio.c
index e272f9d..b7b9641 100644
--- a/sys/kern/vfs_bio.c
+++ b/sys/kern/vfs_bio.c
@@ -61,6 +61,7 @@ __FBSDID("$FreeBSD$");
#include <sys/kernel.h>
#include <sys/kthread.h>
#include <sys/proc.h>
+#include <sys/racct.h>
#include <sys/resourcevar.h>
#include <sys/rwlock.h>
#include <sys/smp.h>
@@ -1784,8 +1785,16 @@ breada(struct vnode * vp, daddr_t * rablkno, int * rabsize,
rabp = getblk(vp, *rablkno, *rabsize, 0, 0, 0);
if ((rabp->b_flags & B_CACHE) == 0) {
- if (!TD_IS_IDLETHREAD(curthread))
+ if (!TD_IS_IDLETHREAD(curthread)) {
+#ifdef RACCT
+ if (racct_enable) {
+ PROC_LOCK(curproc);
+ racct_add_buf(curproc, rabp, 0);
+ PROC_UNLOCK(curproc);
+ }
+#endif /* RACCT */
curthread->td_ru.ru_inblock++;
+ }
rabp->b_flags |= B_ASYNC;
rabp->b_flags &= ~B_INVAL;
rabp->b_ioflags &= ~BIO_ERROR;
@@ -1829,8 +1838,16 @@ breadn_flags(struct vnode *vp, daddr_t blkno, int size, daddr_t *rablkno,
/* if not found in cache, do some I/O */
if ((bp->b_flags & B_CACHE) == 0) {
- if (!TD_IS_IDLETHREAD(curthread))
+ if (!TD_IS_IDLETHREAD(curthread)) {
+#ifdef RACCT
+ if (racct_enable) {
+ PROC_LOCK(curproc);
+ racct_add_buf(curproc, bp, 0);
+ PROC_UNLOCK(curproc);
+ }
+#endif /* RACCT */
curthread->td_ru.ru_inblock++;
+ }
bp->b_iocmd = BIO_READ;
bp->b_flags &= ~B_INVAL;
bp->b_ioflags &= ~BIO_ERROR;
@@ -1926,8 +1943,16 @@ bufwrite(struct buf *bp)
bp->b_runningbufspace = bp->b_bufsize;
space = atomic_fetchadd_long(&runningbufspace, bp->b_runningbufspace);
- if (!TD_IS_IDLETHREAD(curthread))
+ if (!TD_IS_IDLETHREAD(curthread)) {
+#ifdef RACCT
+ if (racct_enable) {
+ PROC_LOCK(curproc);
+ racct_add_buf(curproc, bp, 1);
+ PROC_UNLOCK(curproc);
+ }
+#endif /* RACCT */
curthread->td_ru.ru_oublock++;
+ }
if (oldflags & B_ASYNC)
BUF_KERNPROC(bp);
bp->b_iooffset = dbtob(bp->b_blkno);
diff --git a/sys/kern/vfs_cluster.c b/sys/kern/vfs_cluster.c
index 9871a50..40dc0c0 100644
--- a/sys/kern/vfs_cluster.c
+++ b/sys/kern/vfs_cluster.c
@@ -45,6 +45,7 @@ __FBSDID("$FreeBSD$");
#include <sys/vnode.h>
#include <sys/malloc.h>
#include <sys/mount.h>
+#include <sys/racct.h>
#include <sys/resourcevar.h>
#include <sys/rwlock.h>
#include <sys/vmmeter.h>
@@ -241,6 +242,13 @@ cluster_read(struct vnode *vp, u_quad_t filesize, daddr_t lblkno, long size,
BUF_KERNPROC(bp);
bp->b_iooffset = dbtob(bp->b_blkno);
bstrategy(bp);
+#ifdef RACCT
+ if (racct_enable) {
+ PROC_LOCK(curproc);
+ racct_add_buf(curproc, bp, 0);
+ PROC_UNLOCK(curproc);
+ }
+#endif /* RACCT */
curthread->td_ru.ru_inblock++;
}
@@ -294,6 +302,13 @@ cluster_read(struct vnode *vp, u_quad_t filesize, daddr_t lblkno, long size,
BUF_KERNPROC(rbp);
rbp->b_iooffset = dbtob(rbp->b_blkno);
bstrategy(rbp);
+#ifdef RACCT
+ if (racct_enable) {
+ PROC_LOCK(curproc);
+ racct_add_buf(curproc, rbp, 0);
+ PROC_UNLOCK(curproc);
+ }
+#endif /* RACCT */
curthread->td_ru.ru_inblock++;
}
diff --git a/sys/kern/vfs_vnops.c b/sys/kern/vfs_vnops.c
index 4320b14..a0f624e 100644
--- a/sys/kern/vfs_vnops.c
+++ b/sys/kern/vfs_vnops.c
@@ -1420,7 +1420,7 @@ vn_stat(vp, sb, active_cred, file_cred, td)
break;
default:
return (EBADF);
- };
+ }
sb->st_mode = mode;
sb->st_nlink = vap->va_nlink;
sb->st_uid = vap->va_uid;
diff --git a/sys/kgssapi/gss_impl.c b/sys/kgssapi/gss_impl.c
index 3a427a5..38930d7 100644
--- a/sys/kgssapi/gss_impl.c
+++ b/sys/kgssapi/gss_impl.c
@@ -323,7 +323,7 @@ kgssapi_modevent(module_t mod, int type, void *data)
/* FALLTHROUGH */
default:
error = EOPNOTSUPP;
- };
+ }
return (error);
}
static moduledata_t kgssapi_mod = {
diff --git a/sys/mips/mediatek/fdt_reset.c b/sys/mips/mediatek/fdt_reset.c
new file mode 100644
index 0000000..5ff2758
--- /dev/null
+++ b/sys/mips/mediatek/fdt_reset.c
@@ -0,0 +1,125 @@
+/*-
+ * Copyright (c) 2016 Stanislav Galabov
+ * Copyright (c) 2014 Ian Lepore <ian@freebsd.org>
+ * 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 <sys/cdefs.h>
+#include <sys/param.h>
+#include <sys/kernel.h>
+#include <sys/lock.h>
+#include <sys/mutex.h>
+#include <sys/queue.h>
+#include <sys/systm.h>
+
+#include <dev/ofw/ofw_bus.h>
+#include <dev/ofw/ofw_bus_subr.h>
+
+#include "fdt_reset_if.h"
+#include <mips/mediatek/fdt_reset.h>
+
+/*
+ * Loop through all the tuples in the resets= property for a device, asserting
+ * or deasserting each reset.
+ *
+ * Be liberal about errors for now: warn about a failure to (de)assert but keep
+ * trying with any other resets in the list. Return ENXIO if any errors were
+ * found, and let the caller decide whether the problem is fatal.
+ */
+static int
+assert_deassert_all(device_t consumer, boolean_t assert)
+{
+ phandle_t rnode;
+ device_t resetdev;
+ int resetnum, err, i, ncells;
+ uint32_t *resets;
+ boolean_t anyerrors;
+
+ rnode = ofw_bus_get_node(consumer);
+ ncells = OF_getencprop_alloc(rnode, "resets", sizeof(*resets),
+ (void **)&resets);
+ if (!assert && ncells < 2) {
+ device_printf(consumer, "Warning: No resets specified in fdt "
+ "data; device may not function.");
+ return (ENXIO);
+ }
+ anyerrors = false;
+ for (i = 0; i < ncells; i += 2) {
+ resetdev = OF_device_from_xref(resets[i]);
+ resetnum = resets[i + 1];
+ if (resetdev == NULL) {
+ if (!assert)
+ device_printf(consumer, "Warning: can not find "
+ "driver for reset number %u; device may "
+ "not function\n", resetnum);
+ anyerrors = true;
+ continue;
+ }
+ if (assert)
+ err = FDT_RESET_ASSERT(resetdev, resetnum);
+ else
+ err = FDT_RESET_DEASSERT(resetdev, resetnum);
+ if (err != 0) {
+ if (!assert)
+ device_printf(consumer, "Warning: failed to "
+ "deassert reset number %u; device may not "
+ "function\n", resetnum);
+ anyerrors = true;
+ }
+ }
+ free(resets, M_OFWPROP);
+ return (anyerrors ? ENXIO : 0);
+}
+
+int
+fdt_reset_assert_all(device_t consumer)
+{
+
+ return (assert_deassert_all(consumer, true));
+}
+
+int
+fdt_reset_deassert_all(device_t consumer)
+{
+
+ return (assert_deassert_all(consumer, false));
+}
+
+void
+fdt_reset_register_provider(device_t provider)
+{
+
+ OF_device_register_xref(
+ OF_xref_from_node(ofw_bus_get_node(provider)), provider);
+}
+
+void
+fdt_reset_unregister_provider(device_t provider)
+{
+
+ OF_device_register_xref(OF_xref_from_device(provider), NULL);
+}
+
diff --git a/sys/mips/mediatek/fdt_reset.h b/sys/mips/mediatek/fdt_reset.h
new file mode 100644
index 0000000..195beaa
--- /dev/null
+++ b/sys/mips/mediatek/fdt_reset.h
@@ -0,0 +1,49 @@
+/*-
+ * Copyright (c) 2016 Stanislav Galabov
+ * Copyright (c) 2014 Ian Lepore <ian@freebsd.org>
+ * 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 ``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.
+ *
+ * $FreeBSD$
+ */
+
+#ifndef DEV_FDT_RESET_H
+#define DEV_FDT_RESET_H
+
+#include "fdt_reset_if.h"
+
+/*
+ * Look up "resets" property in consumer's fdt data and assert or deassert all
+ * configured resets.
+ */
+int fdt_reset_assert_all(device_t consumer);
+int fdt_reset_deassert_all(device_t consumer);
+
+/*
+ * [Un]register the given device instance as a driver that implements the
+ * fdt_clock interface.
+ */
+void fdt_reset_register_provider(device_t provider);
+void fdt_reset_unregister_provider(device_t provider);
+
+#endif /* DEV_FDT_RESET_H */
+
diff --git a/sys/mips/mediatek/fdt_reset_if.m b/sys/mips/mediatek/fdt_reset_if.m
new file mode 100644
index 0000000..2bde7b7
--- /dev/null
+++ b/sys/mips/mediatek/fdt_reset_if.m
@@ -0,0 +1,58 @@
+#-
+# Copyright (c) 2016 Stanislav Galabov
+# Copyright (c) 2014 Ian Lepore
+# 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 <sys/types.h>
+
+#
+# This is the interface that fdt_reset drivers provide to other drivers.
+# In this context, reset refers to a reset signal provided to some other
+# hardware component within the system. They are most often found within
+# embedded processors that have on-chip IO controllers.
+#
+
+INTERFACE fdt_reset;
+
+#
+# Enable/assert/apply the specified reset.
+# Returns 0 on success or a standard errno value.
+#
+METHOD int assert {
+ device_t provider;
+ int index;
+};
+
+#
+# Disable/de-assert/remove the specified reset.
+# Returns 0 on success or a standard errno value.
+#
+METHOD int deassert {
+ device_t provider;
+ int index;
+};
+
diff --git a/sys/mips/mediatek/mtk_clock.c b/sys/mips/mediatek/mtk_clock.c
new file mode 100644
index 0000000..83433fb
--- /dev/null
+++ b/sys/mips/mediatek/mtk_clock.c
@@ -0,0 +1,156 @@
+/*-
+ * Copyright (c) 2016 Stanislav Galabov
+ * 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, immediately at the beginning of the file.
+ * 2. 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 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 <sys/cdefs.h>
+__FBSDID("$FreeBSD$");
+
+#include <sys/param.h>
+#include <sys/kernel.h>
+#include <sys/bus.h>
+#include <sys/module.h>
+
+#include <dev/fdt/fdt_common.h>
+#include <dev/ofw/openfirm.h>
+#include <dev/ofw/ofw_bus.h>
+#include <dev/ofw/ofw_bus_subr.h>
+#include <dev/fdt/fdt_clock.h>
+
+#include <mips/mediatek/mtk_sysctl.h>
+
+#include "fdt_clock_if.h"
+
+static const struct ofw_compat_data compat_data[] = {
+ { "ralink,rt2880-clock", 1 },
+
+ /* Sentinel */
+ { NULL, 0 }
+};
+
+static int
+mtk_clock_probe(device_t dev)
+{
+
+ if (!ofw_bus_status_okay(dev))
+ return (ENXIO);
+
+ if (ofw_bus_search_compatible(dev, compat_data)->ocd_data == 0)
+ return (ENXIO);
+
+ device_set_desc(dev, "MTK Clock Controller");
+
+ return (0);
+}
+
+static int
+mtk_clock_attach(device_t dev)
+{
+
+ if (device_get_unit(dev) != 0) {
+ device_printf(dev, "Only one clock control allowed\n");
+ return (ENXIO);
+ }
+
+ fdt_clock_register_provider(dev);
+
+ return (0);
+}
+
+#define CLOCK_ENABLE 1
+#define CLOCK_DISABLE 0
+
+static int
+mtk_clock_set(device_t dev, int index, int value)
+{
+ uint32_t mask;
+
+ /* Clock config register holds 32 clock gating bits */
+ if (index < 0 || index > 31)
+ return (EINVAL);
+
+ mask = (1u << index);
+
+ if (value == CLOCK_ENABLE)
+ mtk_sysctl_clr_set(SYSCTL_CLKCFG1, 0, mask);
+ else
+ mtk_sysctl_clr_set(SYSCTL_CLKCFG1, mask, 0);
+
+ return (0);
+}
+
+static int
+mtk_clock_enable(device_t dev, int index)
+{
+
+ return mtk_clock_set(dev, index, CLOCK_ENABLE);
+}
+
+static int
+mtk_clock_disable(device_t dev, int index)
+{
+
+ return mtk_clock_set(dev, index, CLOCK_DISABLE);
+}
+
+static int
+mtk_clock_get_info(device_t dev, int index, struct fdt_clock_info *info)
+{
+ uint32_t mask;
+
+ if (index < 0 || index > 31 || info == NULL)
+ return (EINVAL);
+
+ if (mtk_sysctl_get(SYSCTL_CLKCFG1) & mask)
+ info->flags = FDT_CIFLAG_RUNNING;
+ else
+ info->flags = 0;
+
+ return (0);
+}
+
+static device_method_t mtk_clock_methods[] = {
+ DEVMETHOD(device_probe, mtk_clock_probe),
+ DEVMETHOD(device_attach, mtk_clock_attach),
+
+ /* fdt_clock interface */
+ DEVMETHOD(fdt_clock_enable, mtk_clock_enable),
+ DEVMETHOD(fdt_clock_disable, mtk_clock_disable),
+ DEVMETHOD(fdt_clock_get_info, mtk_clock_get_info),
+
+ DEVMETHOD_END
+};
+
+static driver_t mtk_clock_driver = {
+ "clkctrl",
+ mtk_clock_methods,
+ 0,
+};
+static devclass_t mtk_clock_devclass;
+
+EARLY_DRIVER_MODULE(mtk_clock, simplebus, mtk_clock_driver, mtk_clock_devclass,
+ 0, 0, BUS_PASS_INTERRUPT + BUS_PASS_ORDER_EARLY);
+
+MODULE_DEPEND(mtk_clock, mtk_sysctl, 1, 1, 1);
diff --git a/sys/mips/mediatek/mtk_dotg.c b/sys/mips/mediatek/mtk_dotg.c
new file mode 100644
index 0000000..d7421ad
--- /dev/null
+++ b/sys/mips/mediatek/mtk_dotg.c
@@ -0,0 +1,220 @@
+#include <sys/cdefs.h>
+__FBSDID("$FreeBSD$");
+
+/*-
+ * Copyright (c) 2015-2016 Stanislav Galabov. All rights reserved.
+ * Copyright (c) 2010,2011 Aleksandr Rybalko. All rights reserved.
+ * Copyright (c) 2007-2008 Hans Petter Selasky. 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 <sys/stdint.h>
+#include <sys/stddef.h>
+#include <sys/param.h>
+#include <sys/queue.h>
+#include <sys/types.h>
+#include <sys/systm.h>
+#include <sys/kernel.h>
+#include <sys/bus.h>
+#include <sys/module.h>
+#include <sys/lock.h>
+#include <sys/mutex.h>
+#include <sys/condvar.h>
+#include <sys/sysctl.h>
+#include <sys/sx.h>
+#include <sys/unistd.h>
+#include <sys/callout.h>
+#include <sys/malloc.h>
+#include <sys/priv.h>
+#include <sys/rman.h>
+
+#include <dev/usb/usb.h>
+#include <dev/usb/usbdi.h>
+
+#include <dev/usb/usb_core.h>
+#include <dev/usb/usb_busdma.h>
+#include <dev/usb/usb_process.h>
+#include <dev/usb/usb_util.h>
+
+#include <dev/usb/usb_controller.h>
+#include <dev/usb/usb_bus.h>
+
+#include <dev/usb/controller/dwc_otg.h>
+
+#include <dev/ofw/openfirm.h>
+#include <dev/ofw/ofw_bus.h>
+#include <dev/ofw/ofw_bus_subr.h>
+
+#define MEM_RID 0
+
+static device_probe_t dotg_fdt_probe;
+static device_attach_t dotg_fdt_attach;
+static device_detach_t dotg_fdt_detach;
+
+static int
+dotg_fdt_probe(device_t dev)
+{
+
+ if (!ofw_bus_status_okay(dev))
+ return (ENXIO);
+
+ if (!ofw_bus_is_compatible(dev, "ralink,rt3050-otg"))
+ return (ENXIO);
+
+ device_set_desc(dev, "MTK DWC-OTG USB Controller");
+ return (0);
+}
+
+static int
+dotg_fdt_attach(device_t dev)
+{
+ struct dwc_otg_softc *sc = device_get_softc(dev);
+ int err, rid;
+
+ /* setup controller interface softc */
+
+ /* initialise some bus fields */
+ sc->sc_mode = DWC_MODE_HOST;
+ sc->sc_bus.parent = dev;
+ sc->sc_bus.devices = sc->sc_devices;
+ sc->sc_bus.devices_max = DWC_OTG_MAX_DEVICES;
+ sc->sc_bus.dma_bits = 32;
+
+ /* get all DMA memory */
+ if (usb_bus_mem_alloc_all(&sc->sc_bus,
+ USB_GET_DMA_TAG(dev), NULL)) {
+ printf("No mem\n");
+ return (ENOMEM);
+ }
+ rid = 0;
+ sc->sc_io_res =
+ bus_alloc_resource_any(dev, SYS_RES_MEMORY, &rid, RF_ACTIVE);
+ if (!(sc->sc_io_res)) {
+ printf("Can`t alloc MEM\n");
+ goto error;
+ }
+ sc->sc_io_tag = rman_get_bustag(sc->sc_io_res);
+ sc->sc_io_hdl = rman_get_bushandle(sc->sc_io_res);
+ sc->sc_io_size = rman_get_size(sc->sc_io_res);
+
+ rid = 0;
+ sc->sc_irq_res = bus_alloc_resource_any(dev, SYS_RES_IRQ,
+ &rid, RF_ACTIVE);
+ if (!(sc->sc_irq_res)) {
+ printf("Can`t alloc IRQ\n");
+ goto error;
+ }
+
+ sc->sc_bus.bdev = device_add_child(dev, "usbus", -1);
+ if (!(sc->sc_bus.bdev)) {
+ printf("Can`t add usbus\n");
+ goto error;
+ }
+ device_set_ivars(sc->sc_bus.bdev, &sc->sc_bus);
+
+ err = bus_setup_intr(dev, sc->sc_irq_res,
+ INTR_TYPE_TTY | INTR_MPSAFE, dwc_otg_filter_interrupt,
+ dwc_otg_interrupt, sc, &sc->sc_intr_hdl);
+ if (err) {
+ sc->sc_intr_hdl = NULL;
+ printf("Can`t set IRQ handle\n");
+ goto error;
+ }
+
+ err = dwc_otg_init(sc);
+ if (err) printf("dotg_init fail\n");
+ if (!err) {
+ err = device_probe_and_attach(sc->sc_bus.bdev);
+ if (err) printf("device_probe_and_attach fail %d\n", err);
+ }
+ if (err) {
+ goto error;
+ }
+ return (0);
+
+error:
+ dotg_fdt_detach(dev);
+ return (ENXIO);
+}
+
+static int
+dotg_fdt_detach(device_t dev)
+{
+ struct dwc_otg_softc *sc = device_get_softc(dev);
+ device_t bdev;
+ int err;
+
+ if (sc->sc_bus.bdev) {
+ bdev = sc->sc_bus.bdev;
+ device_detach(bdev);
+ device_delete_child(dev, bdev);
+ }
+ /* during module unload there are lots of children leftover */
+ device_delete_children(dev);
+
+ if (sc->sc_irq_res && sc->sc_intr_hdl) {
+ /*
+ * only call dotg_fdt_uninit() after dotg_fdt_init()
+ */
+ dwc_otg_uninit(sc);
+
+ err = bus_teardown_intr(dev, sc->sc_irq_res,
+ sc->sc_intr_hdl);
+ sc->sc_intr_hdl = NULL;
+ }
+ if (sc->sc_irq_res) {
+ bus_release_resource(dev, SYS_RES_IRQ, 0,
+ sc->sc_irq_res);
+ sc->sc_irq_res = NULL;
+ }
+ if (sc->sc_io_res) {
+ bus_release_resource(dev, SYS_RES_MEMORY, 0,
+ sc->sc_io_res);
+ sc->sc_io_res = NULL;
+ }
+ usb_bus_mem_free_all(&sc->sc_bus, NULL);
+
+ return (0);
+}
+
+static device_method_t dotg_fdt_methods[] = {
+ /* Device interface */
+ DEVMETHOD(device_probe, dotg_fdt_probe),
+ DEVMETHOD(device_attach, dotg_fdt_attach),
+ DEVMETHOD(device_detach, dotg_fdt_detach),
+ DEVMETHOD(device_suspend, bus_generic_suspend),
+ DEVMETHOD(device_resume, bus_generic_resume),
+ DEVMETHOD(device_shutdown, bus_generic_shutdown),
+
+ DEVMETHOD_END
+};
+
+static driver_t dotg_fdt_driver = {
+ .name = "dwcotg",
+ .methods = dotg_fdt_methods,
+ .size = sizeof(struct dwc_otg_softc),
+};
+
+static devclass_t dotg_fdt_devclass;
+
+DRIVER_MODULE(dotg, simplebus, dotg_fdt_driver, dotg_fdt_devclass, 0, 0);
diff --git a/sys/mips/mediatek/mtk_ehci.c b/sys/mips/mediatek/mtk_ehci.c
new file mode 100644
index 0000000..109a32a
--- /dev/null
+++ b/sys/mips/mediatek/mtk_ehci.c
@@ -0,0 +1,223 @@
+#include <sys/cdefs.h>
+__FBSDID("$FreeBSD$");
+
+/*-
+ * Copyright (c) 2015 Stanislav Galabov. All rights reserved.
+ * Copyright (c) 2010,2011 Aleksandr Rybalko. All rights reserved.
+ * Copyright (c) 2007-2008 Hans Petter Selasky. 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 <sys/stdint.h>
+#include <sys/stddef.h>
+#include <sys/param.h>
+#include <sys/queue.h>
+#include <sys/types.h>
+#include <sys/systm.h>
+#include <sys/kernel.h>
+#include <sys/bus.h>
+#include <sys/module.h>
+#include <sys/lock.h>
+#include <sys/mutex.h>
+#include <sys/condvar.h>
+#include <sys/sysctl.h>
+#include <sys/sx.h>
+#include <sys/unistd.h>
+#include <sys/callout.h>
+#include <sys/malloc.h>
+#include <sys/priv.h>
+#include <sys/rman.h>
+
+#include <dev/usb/usb.h>
+#include <dev/usb/usbdi.h>
+
+#include <dev/usb/usb_core.h>
+#include <dev/usb/usb_busdma.h>
+#include <dev/usb/usb_process.h>
+#include <dev/usb/usb_util.h>
+
+#include <dev/usb/usb_controller.h>
+#include <dev/usb/usb_bus.h>
+
+#include <dev/usb/controller/ehci.h>
+
+#include <dev/ofw/openfirm.h>
+#include <dev/ofw/ofw_bus.h>
+#include <dev/ofw/ofw_bus_subr.h>
+
+#define EHCI_HC_DEVSTR "MTK USB 2.0 Controller"
+
+static device_probe_t ehci_fdt_probe;
+static device_attach_t ehci_fdt_attach;
+static device_detach_t ehci_fdt_detach;
+
+static int
+ehci_fdt_probe(device_t self)
+{
+
+ if (!ofw_bus_status_okay(self))
+ return (ENXIO);
+
+ if (!ofw_bus_is_compatible(self, "ralink,rt3xxx-ehci"))
+ return (ENXIO);
+
+ device_set_desc(self, EHCI_HC_DEVSTR);
+
+ return (BUS_PROBE_DEFAULT);
+}
+
+static int
+ehci_fdt_attach(device_t self)
+{
+ ehci_softc_t *sc = device_get_softc(self);
+ int err;
+ int rid;
+
+ /* initialise some bus fields */
+ sc->sc_bus.parent = self;
+ sc->sc_bus.devices = sc->sc_devices;
+ sc->sc_bus.devices_max = EHCI_MAX_DEVICES;
+ sc->sc_bus.dma_bits = 32;
+
+ /* get all DMA memory */
+ if (usb_bus_mem_alloc_all(&sc->sc_bus,
+ USB_GET_DMA_TAG(self), &ehci_iterate_hw_softc)) {
+ printf("No mem\n");
+ return (ENOMEM);
+ }
+
+ rid = 0;
+ sc->sc_io_res = bus_alloc_resource_any(self, SYS_RES_MEMORY, &rid,
+ RF_ACTIVE);
+ if (!sc->sc_io_res) {
+ device_printf(self, "Could not map memory\n");
+ goto error;
+ }
+ sc->sc_io_tag = rman_get_bustag(sc->sc_io_res);
+ sc->sc_io_hdl = rman_get_bushandle(sc->sc_io_res);
+ sc->sc_io_size = rman_get_size(sc->sc_io_res);
+
+ rid = 0;
+ sc->sc_irq_res = bus_alloc_resource_any(self, SYS_RES_IRQ, &rid,
+ RF_SHAREABLE | RF_ACTIVE);
+ if (sc->sc_irq_res == NULL) {
+ device_printf(self, "Could not allocate irq\n");
+ goto error;
+ }
+
+ sc->sc_bus.bdev = device_add_child(self, "usbus", -1);
+ if (!(sc->sc_bus.bdev)) {
+ device_printf(self, "Could not add USB device\n");
+ goto error;
+ }
+ device_set_ivars(sc->sc_bus.bdev, &sc->sc_bus);
+ device_set_desc(sc->sc_bus.bdev, EHCI_HC_DEVSTR);
+
+ sprintf(sc->sc_vendor, "MediaTek");
+
+ err = bus_setup_intr(self, sc->sc_irq_res, INTR_TYPE_BIO | INTR_MPSAFE,
+ NULL, (driver_intr_t *)ehci_interrupt, sc, &sc->sc_intr_hdl);
+ if (err) {
+ device_printf(self, "Could not setup irq, %d\n", err);
+ sc->sc_intr_hdl = NULL;
+ goto error;
+ }
+
+ err = ehci_init(sc);
+ if (!err) {
+ err = device_probe_and_attach(sc->sc_bus.bdev);
+ }
+ if (err) {
+ device_printf(self, "USB init failed err=%d\n", err);
+ goto error;
+ }
+ return (0);
+
+error:
+ ehci_fdt_detach(self);
+ return (ENXIO);
+}
+
+static int
+ehci_fdt_detach(device_t self)
+{
+ ehci_softc_t *sc = device_get_softc(self);
+ device_t bdev;
+ int err;
+
+ if (sc->sc_bus.bdev) {
+ bdev = sc->sc_bus.bdev;
+ device_detach(bdev);
+ device_delete_child(self, bdev);
+ }
+ /* during module unload there are lots of children leftover */
+ device_delete_children(self);
+
+ if (sc->sc_irq_res && sc->sc_intr_hdl) {
+ /*
+ * only call ehci_detach() after ehci_init()
+ */
+ ehci_detach(sc);
+
+ err = bus_teardown_intr(self, sc->sc_irq_res, sc->sc_intr_hdl);
+ if (err)
+ device_printf(self, "Could not tear down irq, %d\n",
+ err);
+ sc->sc_intr_hdl = NULL;
+ }
+ if (sc->sc_irq_res) {
+ bus_release_resource(self, SYS_RES_IRQ, 0,
+ sc->sc_irq_res);
+ sc->sc_irq_res = NULL;
+ }
+ if (sc->sc_io_res) {
+ bus_release_resource(self, SYS_RES_MEMORY, 0,
+ sc->sc_io_res);
+ sc->sc_io_res = NULL;
+ }
+ usb_bus_mem_free_all(&sc->sc_bus, &ehci_iterate_hw_softc);
+
+ return (0);
+}
+
+static device_method_t ehci_fdt_methods[] = {
+ /* Device interface */
+ DEVMETHOD(device_probe, ehci_fdt_probe),
+ DEVMETHOD(device_attach, ehci_fdt_attach),
+ DEVMETHOD(device_detach, ehci_fdt_detach),
+ DEVMETHOD(device_suspend, bus_generic_suspend),
+ DEVMETHOD(device_resume, bus_generic_resume),
+ DEVMETHOD(device_shutdown, bus_generic_shutdown),
+
+ DEVMETHOD_END
+};
+
+static driver_t ehci_fdt_driver = {
+ .name = "ehci",
+ .methods = ehci_fdt_methods,
+ .size = sizeof(ehci_softc_t),
+};
+
+static devclass_t ehci_fdt_devclass;
+
+DRIVER_MODULE(ehci, simplebus, ehci_fdt_driver, ehci_fdt_devclass, 0, 0);
diff --git a/sys/mips/mediatek/mtk_gpio_v1.c b/sys/mips/mediatek/mtk_gpio_v1.c
new file mode 100644
index 0000000..29b2258
--- /dev/null
+++ b/sys/mips/mediatek/mtk_gpio_v1.c
@@ -0,0 +1,675 @@
+/*-
+ * Copyright 2016 Stanislav Galabov
+ * 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 <sys/cdefs.h>
+__FBSDID("$FreeBSD$");
+
+#include "opt_platform.h"
+
+#include <sys/param.h>
+#include <sys/systm.h>
+#include <sys/conf.h>
+#include <sys/bus.h>
+#include <sys/kernel.h>
+#include <sys/module.h>
+#include <sys/lock.h>
+#include <sys/mutex.h>
+#include <sys/proc.h>
+#include <sys/resource.h>
+#include <sys/gpio.h>
+
+#include <machine/bus.h>
+#include <machine/intr.h>
+
+#include <mips/mediatek/mtk_soc.h>
+
+#include <dev/gpio/gpiobusvar.h>
+
+#include <dev/fdt/fdt_common.h>
+#include <dev/ofw/ofw_bus.h>
+#include <dev/ofw/ofw_bus_subr.h>
+
+#include <gnu/dts/include/dt-bindings/interrupt-controller/irq.h>
+
+#include "gpio_if.h"
+#include "pic_if.h"
+
+#define MTK_GPIO_PINS 32
+
+struct mtk_gpio_pin_irqsrc {
+ struct intr_irqsrc isrc;
+ u_int irq;
+};
+
+struct mtk_gpio_pin {
+ uint32_t pin_caps;
+ uint32_t pin_flags;
+ enum intr_trigger intr_trigger;
+ enum intr_polarity intr_polarity;
+ char pin_name[GPIOMAXNAME];
+ struct mtk_gpio_pin_irqsrc pin_irqsrc;
+};
+
+struct mtk_gpio_softc {
+ device_t dev;
+ device_t busdev;
+ struct resource *res[2];
+ struct mtx mtx;
+ struct mtk_gpio_pin pins[MTK_GPIO_PINS];
+ void *intrhand;
+
+ uint32_t num_pins;
+ uint8_t do_remap;
+};
+
+#define PIC_INTR_ISRC(sc, irq) (&(sc)->pins[(irq)].pin_irqsrc.isrc)
+
+static struct resource_spec mtk_gpio_spec[] = {
+ { SYS_RES_MEMORY, 0, RF_ACTIVE },
+ { SYS_RES_IRQ, 0, RF_ACTIVE | RF_SHAREABLE },
+ { -1, 0 }
+};
+
+static int mtk_gpio_probe(device_t dev);
+static int mtk_gpio_attach(device_t dev);
+static int mtk_gpio_detach(device_t dev);
+static int mtk_gpio_intr(void *arg);
+
+#define MTK_GPIO_LOCK(sc) mtx_lock_spin(&(sc)->mtx)
+#define MTK_GPIO_UNLOCK(sc) mtx_unlock_spin(&(sc)->mtx)
+#define MTK_GPIO_LOCK_INIT(sc) \
+ mtx_init(&(sc)->mtx, device_get_nameunit((sc)->dev), \
+ "mtk_gpio", MTX_SPIN)
+#define MTK_GPIO_LOCK_DESTROY(sc) mtx_destroy(&(sc)->mtx)
+
+#define MTK_WRITE_4(sc, reg, val) bus_write_4((sc)->res[0], (reg), (val))
+#define MTK_READ_4(sc, reg) bus_read_4((sc)->res[0], (reg))
+
+/* Register definitions */
+#define GPIO_PIOINT(_sc) 0x0000
+#define GPIO_PIOEDGE(_sc) 0x0004
+#define GPIO_PIORENA(_sc) 0x0008
+#define GPIO_PIOFENA(_sc) 0x000C
+#define GPIO_PIODATA(_sc) ((_sc)->do_remap ? 0x0020 : 0x0010)
+#define GPIO_PIODIR(_sc) ((_sc)->do_remap ? 0x0024 : 0x0014)
+#define GPIO_PIOPOL(_sc) ((_sc)->do_remap ? 0x0028 : 0x0018)
+#define GPIO_PIOSET(_sc) ((_sc)->do_remap ? 0x002C : 0x001C)
+#define GPIO_PIORESET(_sc) ((_sc)->do_remap ? 0x0030 : 0x0020)
+#define GPIO_PIOTOG(_sc) ((_sc)->do_remap ? 0x0034 : 0x0024)
+
+static struct ofw_compat_data compat_data[] = {
+ { "ralink,rt2880-gpio", 1 },
+ { "ralink,rt3050-gpio", 1 },
+ { "ralink,rt3352-gpio", 1 },
+ { "ralink,rt3883-gpio", 1 },
+ { "ralink,rt5350-gpio", 1 },
+ { "ralink,mt7620a-gpio", 1 },
+ { NULL, 0 }
+};
+
+static int
+mtk_gpio_probe(device_t dev)
+{
+ phandle_t node;
+
+ if (!ofw_bus_status_okay(dev))
+ return (ENXIO);
+
+ if (ofw_bus_search_compatible(dev, compat_data)->ocd_data == 0)
+ return (ENXIO);
+
+ node = ofw_bus_get_node(dev);
+ if (!OF_hasprop(node, "gpio-controller"))
+ return (ENXIO);
+
+ device_set_desc(dev, "MTK GPIO Controller (v1)");
+
+ return (BUS_PROBE_DEFAULT);
+}
+
+static int
+mtk_pic_register_isrcs(struct mtk_gpio_softc *sc)
+{
+ int error;
+ uint32_t irq;
+ struct intr_irqsrc *isrc;
+ const char *name;
+
+ name = device_get_nameunit(sc->dev);
+ for (irq = 0; irq < sc->num_pins; irq++) {
+ sc->pins[irq].pin_irqsrc.irq = irq;
+ isrc = PIC_INTR_ISRC(sc, irq);
+ error = intr_isrc_register(isrc, sc->dev, 0, "%s", name);
+ if (error != 0) {
+ /* XXX call intr_isrc_deregister */
+ device_printf(sc->dev, "%s failed", __func__);
+ return (error);
+ }
+ }
+
+ return (0);
+}
+
+static int
+mtk_gpio_pin_set_direction(struct mtk_gpio_softc *sc, uint32_t pin,
+ uint32_t dir)
+{
+ uint32_t regval, mask = (1u << pin);
+
+ if (!(sc->pins[pin].pin_caps & dir))
+ return (EINVAL);
+
+ regval = MTK_READ_4(sc, GPIO_PIODIR(sc));
+ if (dir == GPIO_PIN_INPUT)
+ regval &= ~mask;
+ else
+ regval |= mask;
+ MTK_WRITE_4(sc, GPIO_PIODIR(sc), regval);
+
+ sc->pins[pin].pin_flags &= ~(GPIO_PIN_INPUT | GPIO_PIN_OUTPUT);
+ sc->pins[pin].pin_flags |= dir;
+
+ return (0);
+}
+
+static int
+mtk_gpio_pin_set_invert(struct mtk_gpio_softc *sc, uint32_t pin, uint32_t val)
+{
+ uint32_t regval, mask = (1u << pin);
+
+ regval = MTK_READ_4(sc, GPIO_PIOPOL(sc));
+ if (val)
+ regval |= mask;
+ else
+ regval &= ~mask;
+ MTK_WRITE_4(sc, GPIO_PIOPOL(sc), regval);
+ sc->pins[pin].pin_flags &= ~(GPIO_PIN_INVIN | GPIO_PIN_INVOUT);
+ sc->pins[pin].pin_flags |= val;
+
+ return (0);
+}
+
+static void
+mtk_gpio_pin_probe(struct mtk_gpio_softc *sc, uint32_t pin)
+{
+ uint32_t mask = (1u << pin);
+ uint32_t val;
+
+ /* Clear cached gpio config */
+ sc->pins[pin].pin_flags = 0;
+
+ val = MTK_READ_4(sc, GPIO_PIORENA(sc)) |
+ MTK_READ_4(sc, GPIO_PIOFENA(sc));
+ if (val & mask) {
+ /* Pin is in interrupt mode */
+ sc->pins[pin].intr_trigger = INTR_TRIGGER_EDGE;
+ val = MTK_READ_4(sc, GPIO_PIORENA(sc));
+ if (val & mask)
+ sc->pins[pin].intr_polarity = INTR_POLARITY_HIGH;
+ else
+ sc->pins[pin].intr_polarity = INTR_POLARITY_LOW;
+ }
+
+ val = MTK_READ_4(sc, GPIO_PIODIR(sc));
+ if (val & mask)
+ sc->pins[pin].pin_flags |= GPIO_PIN_OUTPUT;
+ else
+ sc->pins[pin].pin_flags |= GPIO_PIN_INPUT;
+
+ val = MTK_READ_4(sc, GPIO_PIOPOL(sc));
+ if (val & mask) {
+ if (sc->pins[pin].pin_flags & GPIO_PIN_INPUT) {
+ sc->pins[pin].pin_flags |= GPIO_PIN_INVIN;
+ } else {
+ sc->pins[pin].pin_flags |= GPIO_PIN_INVOUT;
+ }
+ }
+}
+
+static int
+mtk_gpio_attach(device_t dev)
+{
+ struct mtk_gpio_softc *sc;
+ phandle_t node;
+ uint32_t i, num_pins;
+
+ sc = device_get_softc(dev);
+ sc->dev = dev;
+
+ if (bus_alloc_resources(dev, mtk_gpio_spec, sc->res)) {
+ device_printf(dev, "could not allocate resources for device\n");
+ return (ENXIO);
+ }
+
+ MTK_GPIO_LOCK_INIT(sc);
+
+ node = ofw_bus_get_node(dev);
+
+ if (OF_hasprop(node, "clocks"))
+ mtk_soc_start_clock(dev);
+ if (OF_hasprop(node, "resets"))
+ mtk_soc_reset_device(dev);
+
+ if (OF_hasprop(node, "mtk,register-gap")) {
+ device_printf(dev, "<register gap>\n");
+ sc->do_remap = 1;
+ } else {
+ device_printf(dev, "<no register gap>\n");
+ sc->do_remap = 0;
+ }
+
+ if (OF_hasprop(node, "mtk,num-pins") && (OF_getencprop(node,
+ "mtk,num-pins", &num_pins, sizeof(num_pins)) >= 0))
+ sc->num_pins = num_pins;
+ else
+ sc->num_pins = MTK_GPIO_PINS;
+
+ for (i = 0; i < num_pins; i++) {
+ sc->pins[i].pin_caps |= GPIO_PIN_INPUT | GPIO_PIN_OUTPUT |
+ GPIO_PIN_INVIN | GPIO_PIN_INVOUT;
+ sc->pins[i].intr_polarity = INTR_POLARITY_HIGH;
+ sc->pins[i].intr_trigger = INTR_TRIGGER_EDGE;
+
+ snprintf(sc->pins[i].pin_name, GPIOMAXNAME - 1, "gpio%c%d",
+ device_get_unit(dev) + 'a', i);
+ sc->pins[i].pin_name[GPIOMAXNAME - 1] = '\0';
+
+ mtk_gpio_pin_probe(sc, i);
+ }
+
+ if (mtk_pic_register_isrcs(sc) != 0) {
+ device_printf(dev, "could not register PIC ISRCs\n");
+ goto fail;
+ }
+
+ if (intr_pic_register(dev, OF_xref_from_node(node)) != 0) {
+ device_printf(dev, "could not register PIC\n");
+ goto fail;
+ }
+
+ if (bus_setup_intr(dev, sc->res[1], INTR_TYPE_MISC | INTR_MPSAFE,
+ mtk_gpio_intr, NULL, sc, &sc->intrhand) != 0)
+ goto fail_pic;
+
+ sc->busdev = gpiobus_attach_bus(dev);
+ if (sc->busdev == NULL)
+ goto fail_pic;
+
+ return (0);
+fail_pic:
+ intr_pic_deregister(dev, OF_xref_from_node(node));
+fail:
+ if(sc->intrhand != NULL)
+ bus_teardown_intr(dev, sc->res[1], sc->intrhand);
+ bus_release_resources(dev, mtk_gpio_spec, sc->res);
+ MTK_GPIO_LOCK_DESTROY(sc);
+ return (ENXIO);
+}
+
+static int
+mtk_gpio_detach(device_t dev)
+{
+ struct mtk_gpio_softc *sc = device_get_softc(dev);
+ phandle_t node;
+
+ node = ofw_bus_get_node(dev);
+ intr_pic_deregister(dev, OF_xref_from_node(node));
+ if (sc->intrhand != NULL)
+ bus_teardown_intr(dev, sc->res[1], sc->intrhand);
+ bus_release_resources(dev, mtk_gpio_spec, sc->res);
+ MTK_GPIO_LOCK_DESTROY(sc);
+ return (0);
+}
+
+static device_t
+mtk_gpio_get_bus(device_t dev)
+{
+ struct mtk_gpio_softc *sc = device_get_softc(dev);
+
+ return (sc->busdev);
+}
+
+static int
+mtk_gpio_pin_max(device_t dev, int *maxpin)
+{
+ struct mtk_gpio_softc *sc = device_get_softc(dev);
+
+ *maxpin = sc->num_pins - 1;
+
+ return (0);
+}
+
+static int
+mtk_gpio_pin_getcaps(device_t dev, uint32_t pin, uint32_t *caps)
+{
+ struct mtk_gpio_softc *sc = device_get_softc(dev);
+
+ if (pin >= sc->num_pins)
+ return (EINVAL);
+
+ MTK_GPIO_LOCK(sc);
+ *caps = sc->pins[pin].pin_caps;
+ MTK_GPIO_UNLOCK(sc);
+
+ return (0);
+}
+
+static int
+mtk_gpio_pin_getflags(device_t dev, uint32_t pin, uint32_t *flags)
+{
+ struct mtk_gpio_softc *sc = device_get_softc(dev);
+
+ if (pin >= sc->num_pins)
+ return (EINVAL);
+
+ MTK_GPIO_LOCK(sc);
+ *flags = sc->pins[pin].pin_flags;
+ MTK_GPIO_UNLOCK(sc);
+
+ return (0);
+}
+
+static int
+mtk_gpio_pin_getname(device_t dev, uint32_t pin, char *name)
+{
+ struct mtk_gpio_softc *sc = device_get_softc(dev);
+
+ if (pin >= sc->num_pins)
+ return (EINVAL);
+
+ strncpy(name, sc->pins[pin].pin_name, GPIOMAXNAME - 1);
+ name[GPIOMAXNAME - 1] = '\0';
+
+ return (0);
+}
+
+static int
+mtk_gpio_pin_setflags(device_t dev, uint32_t pin, uint32_t flags)
+{
+ struct mtk_gpio_softc *sc;
+ int retval;
+
+ sc = device_get_softc(dev);
+
+ if (pin >= sc->num_pins)
+ return (EINVAL);
+
+ MTK_GPIO_LOCK(sc);
+ retval = mtk_gpio_pin_set_direction(sc, pin,
+ flags & (GPIO_PIN_INPUT | GPIO_PIN_OUTPUT));
+ if (retval == 0)
+ retval = mtk_gpio_pin_set_invert(sc, pin,
+ flags & (GPIO_PIN_INVIN | GPIO_PIN_INVOUT));
+ MTK_GPIO_UNLOCK(sc);
+
+ return (retval);
+}
+
+static int
+mtk_gpio_pin_set(device_t dev, uint32_t pin, unsigned int value)
+{
+ struct mtk_gpio_softc *sc;
+ int ret;
+
+ sc = device_get_softc(dev);
+ ret = 0;
+
+ if (pin >= sc->num_pins)
+ return (EINVAL);
+
+ MTK_GPIO_LOCK(sc);
+ if(!(sc->pins[pin].pin_flags & GPIO_PIN_OUTPUT)) {
+ ret = EINVAL;
+ goto out;
+ }
+
+ if (value)
+ MTK_WRITE_4(sc, GPIO_PIOSET(sc), (1u << pin));
+ else
+ MTK_WRITE_4(sc, GPIO_PIORESET(sc), (1u << pin));
+
+out:
+ MTK_GPIO_UNLOCK(sc);
+ return (ret);
+}
+
+static int
+mtk_gpio_pin_get(device_t dev, uint32_t pin, unsigned int *val)
+{
+ struct mtk_gpio_softc *sc;
+ uint32_t data;
+ int ret;
+
+ sc = device_get_softc(dev);
+ ret = 0;
+
+ if (pin >= sc->num_pins)
+ return (EINVAL);
+
+ MTK_GPIO_LOCK(sc);
+ if(!(sc->pins[pin].pin_flags & GPIO_PIN_INPUT)) {
+ ret = EINVAL;
+ goto out;
+ }
+ data = MTK_READ_4(sc, GPIO_PIODATA(sc));
+ *val = (data & (1u << pin)) ? 1 : 0;
+
+out:
+ MTK_GPIO_UNLOCK(sc);
+ return (ret);
+}
+
+static int
+mtk_gpio_pin_toggle(device_t dev, uint32_t pin)
+{
+ struct mtk_gpio_softc *sc;
+ int ret;
+
+ if (pin >= sc->num_pins)
+ return (EINVAL);
+
+ sc = device_get_softc(dev);
+ ret = 0;
+
+ MTK_GPIO_LOCK(sc);
+ if (!(sc->pins[pin].pin_flags & GPIO_PIN_OUTPUT)) {
+ ret = EINVAL;
+ goto out;
+ }
+ MTK_WRITE_4(sc, GPIO_PIOTOG(sc), (1u << pin));
+
+out:
+ MTK_GPIO_UNLOCK(sc);
+
+ return (ret);
+}
+
+static int
+mtk_gpio_pic_map_intr(device_t dev, struct intr_map_data *data,
+ struct intr_irqsrc **isrcp)
+{
+ struct mtk_gpio_softc *sc;
+
+ sc = device_get_softc(dev);
+
+ if (data == NULL || data->type != INTR_MAP_DATA_FDT ||
+ data->fdt.ncells != 1 || data->fdt.cells[0] >= sc->num_pins)
+ return (EINVAL);
+
+ *isrcp = PIC_INTR_ISRC(sc, data->fdt.cells[0]);
+ return (0);
+}
+
+static void
+mtk_gpio_pic_enable_intr(device_t dev, struct intr_irqsrc *isrc)
+{
+ struct mtk_gpio_softc *sc;
+ struct mtk_gpio_pin_irqsrc *pisrc;
+ uint32_t pin, mask, val;
+
+ sc = device_get_softc(dev);
+
+ pisrc = (struct mtk_gpio_pin_irqsrc *)isrc;
+ pin = pisrc->irq;
+ mask = 1u << pin;
+
+ MTK_GPIO_LOCK(sc);
+
+ if (sc->pins[pin].intr_polarity == INTR_POLARITY_LOW) {
+ val = MTK_READ_4(sc, GPIO_PIORENA(sc)) & ~mask;
+ MTK_WRITE_4(sc, GPIO_PIORENA(sc), val);
+ val = MTK_READ_4(sc, GPIO_PIOFENA(sc)) | mask;
+ MTK_WRITE_4(sc, GPIO_PIOFENA(sc), val);
+ } else {
+ val = MTK_READ_4(sc, GPIO_PIOFENA(sc)) & ~mask;
+ MTK_WRITE_4(sc, GPIO_PIOFENA(sc), val);
+ val = MTK_READ_4(sc, GPIO_PIORENA(sc)) | mask;
+ MTK_WRITE_4(sc, GPIO_PIORENA(sc), val);
+ }
+
+ MTK_GPIO_UNLOCK(sc);
+}
+
+static void
+mtk_gpio_pic_disable_intr(device_t dev, struct intr_irqsrc *isrc)
+{
+ struct mtk_gpio_softc *sc;
+ struct mtk_gpio_pin_irqsrc *pisrc;
+ uint32_t pin, mask, val;
+
+ sc = device_get_softc(dev);
+
+ pisrc = (struct mtk_gpio_pin_irqsrc *)isrc;
+ pin = pisrc->irq;
+ mask = 1u << pin;
+
+ MTK_GPIO_LOCK(sc);
+
+ val = MTK_READ_4(sc, GPIO_PIORENA(sc)) & ~mask;
+ MTK_WRITE_4(sc, GPIO_PIORENA(sc), val);
+ val = MTK_READ_4(sc, GPIO_PIOFENA(sc)) & ~mask;
+ MTK_WRITE_4(sc, GPIO_PIOFENA(sc), val);
+
+ MTK_GPIO_UNLOCK(sc);
+}
+
+static void
+mtk_gpio_pic_pre_ithread(device_t dev, struct intr_irqsrc *isrc)
+{
+
+ mtk_gpio_pic_disable_intr(dev, isrc);
+}
+
+static void
+mtk_gpio_pic_post_ithread(device_t dev, struct intr_irqsrc *isrc)
+{
+
+ mtk_gpio_pic_enable_intr(dev, isrc);
+}
+
+static void
+mtk_gpio_pic_post_filter(device_t dev, struct intr_irqsrc *isrc)
+{
+ struct mtk_gpio_softc *sc;
+ struct mtk_gpio_pin_irqsrc *pisrc;
+
+ pisrc = (struct mtk_gpio_pin_irqsrc *)isrc;
+ sc = device_get_softc(dev);
+ MTK_GPIO_LOCK(sc);
+ MTK_WRITE_4(sc, GPIO_PIOINT(sc), 1u << pisrc->irq);
+ MTK_GPIO_UNLOCK(sc);
+}
+
+static int
+mtk_gpio_intr(void *arg)
+{
+ struct mtk_gpio_softc *sc;
+ uint32_t i, interrupts;
+
+ sc = arg;
+ interrupts = MTK_READ_4(sc, GPIO_PIOINT(sc));
+
+ for (i = 0; interrupts != 0; i++, interrupts >>= 1) {
+ if ((interrupts & 0x1) == 0)
+ continue;
+ if (intr_isrc_dispatch(PIC_INTR_ISRC(sc, i),
+ curthread->td_intr_frame) != 0) {
+ device_printf(sc->dev, "spurious interrupt %d\n", i);
+ }
+ }
+
+ return (FILTER_HANDLED);
+}
+
+static phandle_t
+mtk_gpio_get_node(device_t bus, device_t dev)
+{
+
+ /* We only have one child, the GPIO bus, which needs our own node. */
+ return (ofw_bus_get_node(bus));
+}
+
+static device_method_t mtk_gpio_methods[] = {
+ /* Device interface */
+ DEVMETHOD(device_probe, mtk_gpio_probe),
+ DEVMETHOD(device_attach, mtk_gpio_attach),
+ DEVMETHOD(device_detach, mtk_gpio_detach),
+
+ /* GPIO protocol */
+ DEVMETHOD(gpio_get_bus, mtk_gpio_get_bus),
+ DEVMETHOD(gpio_pin_max, mtk_gpio_pin_max),
+ DEVMETHOD(gpio_pin_getname, mtk_gpio_pin_getname),
+ DEVMETHOD(gpio_pin_getflags, mtk_gpio_pin_getflags),
+ DEVMETHOD(gpio_pin_getcaps, mtk_gpio_pin_getcaps),
+ DEVMETHOD(gpio_pin_setflags, mtk_gpio_pin_setflags),
+ DEVMETHOD(gpio_pin_get, mtk_gpio_pin_get),
+ DEVMETHOD(gpio_pin_set, mtk_gpio_pin_set),
+ DEVMETHOD(gpio_pin_toggle, mtk_gpio_pin_toggle),
+
+ /* Interrupt controller interface */
+ DEVMETHOD(pic_disable_intr, mtk_gpio_pic_disable_intr),
+ DEVMETHOD(pic_enable_intr, mtk_gpio_pic_enable_intr),
+ DEVMETHOD(pic_map_intr, mtk_gpio_pic_map_intr),
+ DEVMETHOD(pic_post_filter, mtk_gpio_pic_post_filter),
+ DEVMETHOD(pic_post_ithread, mtk_gpio_pic_post_ithread),
+ DEVMETHOD(pic_pre_ithread, mtk_gpio_pic_pre_ithread),
+
+ /* ofw_bus interface */
+ DEVMETHOD(ofw_bus_get_node, mtk_gpio_get_node),
+
+ DEVMETHOD_END
+};
+
+static driver_t mtk_gpio_driver = {
+ "gpio",
+ mtk_gpio_methods,
+ sizeof(struct mtk_gpio_softc),
+};
+
+static devclass_t mtk_gpio_devclass;
+
+EARLY_DRIVER_MODULE(mtk_gpio_v1, simplebus, mtk_gpio_driver,
+ mtk_gpio_devclass, 0, 0, BUS_PASS_INTERRUPT + BUS_PASS_ORDER_LATE);
diff --git a/sys/mips/mediatek/mtk_gpio_v2.c b/sys/mips/mediatek/mtk_gpio_v2.c
new file mode 100644
index 0000000..282b112
--- /dev/null
+++ b/sys/mips/mediatek/mtk_gpio_v2.c
@@ -0,0 +1,675 @@
+/*-
+ * Copyright 2016 Stanislav Galabov
+ * 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 <sys/cdefs.h>
+__FBSDID("$FreeBSD$");
+
+#include "opt_platform.h"
+
+#include <sys/param.h>
+#include <sys/systm.h>
+#include <sys/conf.h>
+#include <sys/bus.h>
+#include <sys/kernel.h>
+#include <sys/module.h>
+#include <sys/lock.h>
+#include <sys/mutex.h>
+#include <sys/proc.h>
+#include <sys/resource.h>
+#include <sys/gpio.h>
+
+#include <machine/bus.h>
+#include <machine/intr.h>
+
+#include <mips/mediatek/mtk_soc.h>
+
+#include <dev/gpio/gpiobusvar.h>
+
+#include <dev/fdt/fdt_common.h>
+#include <dev/ofw/ofw_bus.h>
+#include <dev/ofw/ofw_bus_subr.h>
+
+#include <gnu/dts/include/dt-bindings/interrupt-controller/irq.h>
+
+#include "gpio_if.h"
+#include "pic_if.h"
+
+#define MTK_GPIO_PINS 32
+
+struct mtk_gpio_pin_irqsrc {
+ struct intr_irqsrc isrc;
+ u_int irq;
+};
+
+struct mtk_gpio_pin {
+ uint32_t pin_caps;
+ uint32_t pin_flags;
+ enum intr_trigger intr_trigger;
+ enum intr_polarity intr_polarity;
+ char pin_name[GPIOMAXNAME];
+ struct mtk_gpio_pin_irqsrc pin_irqsrc;
+};
+
+struct mtk_gpio_softc {
+ device_t dev;
+ device_t busdev;
+ struct resource *res[2];
+ struct mtx mtx;
+ struct mtk_gpio_pin pins[MTK_GPIO_PINS];
+ void *intrhand;
+
+ uint32_t num_pins;
+ uint32_t bank_id;
+};
+
+#define PIC_INTR_ISRC(sc, irq) (&(sc)->pins[(irq)].pin_irqsrc.isrc)
+
+static struct resource_spec mtk_gpio_spec[] = {
+ { SYS_RES_MEMORY, 0, RF_ACTIVE | RF_SHAREABLE },
+ { SYS_RES_IRQ, 0, RF_ACTIVE | RF_SHAREABLE },
+ { -1, 0 }
+};
+
+static int mtk_gpio_probe(device_t dev);
+static int mtk_gpio_attach(device_t dev);
+static int mtk_gpio_detach(device_t dev);
+static int mtk_gpio_intr(void *arg);
+
+#define MTK_GPIO_LOCK(sc) mtx_lock_spin(&(sc)->mtx)
+#define MTK_GPIO_UNLOCK(sc) mtx_unlock_spin(&(sc)->mtx)
+#define MTK_GPIO_LOCK_INIT(sc) \
+ mtx_init(&(sc)->mtx, device_get_nameunit((sc)->dev), \
+ "mtk_gpio", MTX_SPIN)
+#define MTK_GPIO_LOCK_DESTROY(sc) mtx_destroy(&(sc)->mtx)
+
+#define MTK_WRITE_4(sc, reg, val) bus_write_4((sc)->res[0], (reg), (val))
+#define MTK_READ_4(sc, reg) bus_read_4((sc)->res[0], (reg))
+
+/* Register definitions */
+#define GPIO_REG(_sc, _reg) ((_reg) + (_sc)->bank_id * 0x4)
+#define GPIO_PIOINT(_sc) GPIO_REG((_sc), 0x0090)
+#define GPIO_PIOEDGE(_sc) GPIO_REG((_sc), 0x00A0)
+#define GPIO_PIORENA(_sc) GPIO_REG((_sc), 0x0050)
+#define GPIO_PIOFENA(_sc) GPIO_REG((_sc), 0x0060)
+#define GPIO_PIODATA(_sc) GPIO_REG((_sc), 0x0020)
+#define GPIO_PIODIR(_sc) GPIO_REG((_sc), 0x0000)
+#define GPIO_PIOPOL(_sc) GPIO_REG((_sc), 0x0010)
+#define GPIO_PIOSET(_sc) GPIO_REG((_sc), 0x0030)
+#define GPIO_PIORESET(_sc) GPIO_REG((_sc), 0x0040)
+
+static struct ofw_compat_data compat_data[] = {
+ { "mtk,mt7621-gpio", 1 },
+ { "mtk,mt7628-gpio", 1 },
+ { NULL, 0 }
+};
+
+static int
+mtk_gpio_probe(device_t dev)
+{
+ phandle_t node;
+
+ if (!ofw_bus_status_okay(dev))
+ return (ENXIO);
+
+ if (ofw_bus_search_compatible(dev, compat_data)->ocd_data == 0)
+ return (ENXIO);
+
+ node = ofw_bus_get_node(dev);
+ if (!OF_hasprop(node, "gpio-controller"))
+ return (ENXIO);
+
+ device_set_desc(dev, "MTK GPIO Controller (v2)");
+
+ return (BUS_PROBE_DEFAULT);
+}
+
+static int
+mtk_pic_register_isrcs(struct mtk_gpio_softc *sc)
+{
+ int error;
+ uint32_t irq;
+ struct intr_irqsrc *isrc;
+ const char *name;
+
+ name = device_get_nameunit(sc->dev);
+ for (irq = 0; irq < sc->num_pins; irq++) {
+ sc->pins[irq].pin_irqsrc.irq = irq;
+ isrc = PIC_INTR_ISRC(sc, irq);
+ error = intr_isrc_register(isrc, sc->dev, 0, "%s", name);
+ if (error != 0) {
+ /* XXX call intr_isrc_deregister */
+ device_printf(sc->dev, "%s failed", __func__);
+ return (error);
+ }
+ }
+
+ return (0);
+}
+
+static int
+mtk_gpio_pin_set_direction(struct mtk_gpio_softc *sc, uint32_t pin,
+ uint32_t dir)
+{
+ uint32_t regval, mask = (1u << pin);
+
+ if (!(sc->pins[pin].pin_caps & dir))
+ return (EINVAL);
+
+ regval = MTK_READ_4(sc, GPIO_PIODIR(sc));
+ if (dir == GPIO_PIN_INPUT)
+ regval &= ~mask;
+ else
+ regval |= mask;
+ MTK_WRITE_4(sc, GPIO_PIODIR(sc), regval);
+
+ sc->pins[pin].pin_flags &= ~(GPIO_PIN_INPUT | GPIO_PIN_OUTPUT);
+ sc->pins[pin].pin_flags |= dir;
+
+ return (0);
+}
+
+static int
+mtk_gpio_pin_set_invert(struct mtk_gpio_softc *sc, uint32_t pin, uint32_t val)
+{
+ uint32_t regval, mask = (1u << pin);
+
+ regval = MTK_READ_4(sc, GPIO_PIOPOL(sc));
+ if (val)
+ regval |= mask;
+ else
+ regval &= ~mask;
+ MTK_WRITE_4(sc, GPIO_PIOPOL(sc), regval);
+ sc->pins[pin].pin_flags &= ~(GPIO_PIN_INVIN | GPIO_PIN_INVOUT);
+ sc->pins[pin].pin_flags |= val;
+
+ return (0);
+}
+
+static void
+mtk_gpio_pin_probe(struct mtk_gpio_softc *sc, uint32_t pin)
+{
+ uint32_t mask = (1u << pin);
+ uint32_t val;
+
+ /* Clear cached gpio config */
+ sc->pins[pin].pin_flags = 0;
+
+ val = MTK_READ_4(sc, GPIO_PIORENA(sc)) |
+ MTK_READ_4(sc, GPIO_PIOFENA(sc));
+ if (val & mask) {
+ /* Pin is in interrupt mode */
+ sc->pins[pin].intr_trigger = INTR_TRIGGER_EDGE;
+ val = MTK_READ_4(sc, GPIO_PIORENA(sc));
+ if (val & mask)
+ sc->pins[pin].intr_polarity = INTR_POLARITY_HIGH;
+ else
+ sc->pins[pin].intr_polarity = INTR_POLARITY_LOW;
+ }
+
+ val = MTK_READ_4(sc, GPIO_PIODIR(sc));
+ if (val & mask)
+ sc->pins[pin].pin_flags |= GPIO_PIN_OUTPUT;
+ else
+ sc->pins[pin].pin_flags |= GPIO_PIN_INPUT;
+
+ val = MTK_READ_4(sc, GPIO_PIOPOL(sc));
+ if (val & mask) {
+ if (sc->pins[pin].pin_flags & GPIO_PIN_INPUT) {
+ sc->pins[pin].pin_flags |= GPIO_PIN_INVIN;
+ } else {
+ sc->pins[pin].pin_flags |= GPIO_PIN_INVOUT;
+ }
+ }
+}
+
+static int
+mtk_gpio_attach(device_t dev)
+{
+ struct mtk_gpio_softc *sc;
+ phandle_t node;
+ uint32_t i, num_pins, bank_id;
+
+ sc = device_get_softc(dev);
+ sc->dev = dev;
+
+ if (bus_alloc_resources(dev, mtk_gpio_spec, sc->res)) {
+ device_printf(dev, "could not allocate resources for device\n");
+ return (ENXIO);
+ }
+
+ MTK_GPIO_LOCK_INIT(sc);
+
+ node = ofw_bus_get_node(dev);
+
+ if (OF_hasprop(node, "clocks"))
+ mtk_soc_start_clock(dev);
+ if (OF_hasprop(node, "resets"))
+ mtk_soc_reset_device(dev);
+
+ if (OF_hasprop(node, "mtk,bank-id") && (OF_getencprop(node,
+ "mtk,bank-id", &bank_id, sizeof(bank_id)) >= 0))
+ sc->bank_id = bank_id;
+ else
+ sc->bank_id = device_get_unit(dev);
+
+ if (OF_hasprop(node, "mtk,num-pins") && (OF_getencprop(node,
+ "mtk,num-pins", &num_pins, sizeof(num_pins)) >= 0))
+ sc->num_pins = num_pins;
+ else
+ sc->num_pins = MTK_GPIO_PINS;
+
+ for (i = 0; i < num_pins; i++) {
+ sc->pins[i].pin_caps |= GPIO_PIN_INPUT | GPIO_PIN_OUTPUT |
+ GPIO_PIN_INVIN | GPIO_PIN_INVOUT;
+ sc->pins[i].intr_polarity = INTR_POLARITY_HIGH;
+ sc->pins[i].intr_trigger = INTR_TRIGGER_EDGE;
+
+ snprintf(sc->pins[i].pin_name, GPIOMAXNAME - 1, "gpio%c%d",
+ device_get_unit(dev) + 'a', i);
+ sc->pins[i].pin_name[GPIOMAXNAME - 1] = '\0';
+
+ mtk_gpio_pin_probe(sc, i);
+ }
+
+ if (mtk_pic_register_isrcs(sc) != 0) {
+ device_printf(dev, "could not register PIC ISRCs\n");
+ goto fail;
+ }
+
+ if (intr_pic_register(dev, OF_xref_from_node(node)) != 0) {
+ device_printf(dev, "could not register PIC\n");
+ goto fail;
+ }
+
+ if (bus_setup_intr(dev, sc->res[1], INTR_TYPE_MISC | INTR_MPSAFE,
+ mtk_gpio_intr, NULL, sc, &sc->intrhand) != 0)
+ goto fail_pic;
+
+ sc->busdev = gpiobus_attach_bus(dev);
+ if (sc->busdev == NULL)
+ goto fail_pic;
+
+ return (0);
+fail_pic:
+ intr_pic_deregister(dev, OF_xref_from_node(node));
+fail:
+ if(sc->intrhand != NULL)
+ bus_teardown_intr(dev, sc->res[1], sc->intrhand);
+ bus_release_resources(dev, mtk_gpio_spec, sc->res);
+ MTK_GPIO_LOCK_DESTROY(sc);
+ return (ENXIO);
+}
+
+static int
+mtk_gpio_detach(device_t dev)
+{
+ struct mtk_gpio_softc *sc = device_get_softc(dev);
+ phandle_t node;
+
+ node = ofw_bus_get_node(dev);
+ intr_pic_deregister(dev, OF_xref_from_node(node));
+ if (sc->intrhand != NULL)
+ bus_teardown_intr(dev, sc->res[1], sc->intrhand);
+ bus_release_resources(dev, mtk_gpio_spec, sc->res);
+ MTK_GPIO_LOCK_DESTROY(sc);
+ return (0);
+}
+
+static device_t
+mtk_gpio_get_bus(device_t dev)
+{
+ struct mtk_gpio_softc *sc = device_get_softc(dev);
+
+ return (sc->busdev);
+}
+
+static int
+mtk_gpio_pin_max(device_t dev, int *maxpin)
+{
+ struct mtk_gpio_softc *sc = device_get_softc(dev);
+
+ *maxpin = sc->num_pins - 1;
+
+ return (0);
+}
+
+static int
+mtk_gpio_pin_getcaps(device_t dev, uint32_t pin, uint32_t *caps)
+{
+ struct mtk_gpio_softc *sc = device_get_softc(dev);
+
+ if (pin >= sc->num_pins)
+ return (EINVAL);
+
+ MTK_GPIO_LOCK(sc);
+ *caps = sc->pins[pin].pin_caps;
+ MTK_GPIO_UNLOCK(sc);
+
+ return (0);
+}
+
+static int
+mtk_gpio_pin_getflags(device_t dev, uint32_t pin, uint32_t *flags)
+{
+ struct mtk_gpio_softc *sc = device_get_softc(dev);
+
+ if (pin >= sc->num_pins)
+ return (EINVAL);
+
+ MTK_GPIO_LOCK(sc);
+ *flags = sc->pins[pin].pin_flags;
+ MTK_GPIO_UNLOCK(sc);
+
+ return (0);
+}
+
+static int
+mtk_gpio_pin_getname(device_t dev, uint32_t pin, char *name)
+{
+ struct mtk_gpio_softc *sc = device_get_softc(dev);
+
+ if (pin >= sc->num_pins)
+ return (EINVAL);
+
+ strncpy(name, sc->pins[pin].pin_name, GPIOMAXNAME - 1);
+ name[GPIOMAXNAME - 1] = '\0';
+
+ return (0);
+}
+
+static int
+mtk_gpio_pin_setflags(device_t dev, uint32_t pin, uint32_t flags)
+{
+ struct mtk_gpio_softc *sc;
+ int retval;
+
+ sc = device_get_softc(dev);
+
+ if (pin >= sc->num_pins)
+ return (EINVAL);
+
+ MTK_GPIO_LOCK(sc);
+ retval = mtk_gpio_pin_set_direction(sc, pin,
+ flags & (GPIO_PIN_INPUT | GPIO_PIN_OUTPUT));
+ if (retval == 0)
+ retval = mtk_gpio_pin_set_invert(sc, pin,
+ flags & (GPIO_PIN_INVIN | GPIO_PIN_INVOUT));
+ MTK_GPIO_UNLOCK(sc);
+
+ return (retval);
+}
+
+static int
+mtk_gpio_pin_set(device_t dev, uint32_t pin, unsigned int value)
+{
+ struct mtk_gpio_softc *sc;
+ int ret;
+
+ if (pin >= sc->num_pins)
+ return (EINVAL);
+
+ sc = device_get_softc(dev);
+ ret = 0;
+
+ MTK_GPIO_LOCK(sc);
+ if (!(sc->pins[pin].pin_flags & GPIO_PIN_OUTPUT)) {
+ ret = EINVAL;
+ goto out;
+ }
+ if (value)
+ MTK_WRITE_4(sc, GPIO_PIOSET(sc), (1u << pin));
+ else
+ MTK_WRITE_4(sc, GPIO_PIORESET(sc), (1u << pin));
+
+out:
+ MTK_GPIO_UNLOCK(sc);
+
+ return (ret);
+}
+
+static int
+mtk_gpio_pin_get(device_t dev, uint32_t pin, unsigned int *val)
+{
+ struct mtk_gpio_softc *sc;
+ uint32_t data;
+ int ret;
+
+ if (pin >= sc->num_pins)
+ return (EINVAL);
+
+ sc = device_get_softc(dev);
+ ret = 0;
+
+ MTK_GPIO_LOCK(sc);
+ if (!(sc->pins[pin].pin_flags & GPIO_PIN_INPUT)) {
+ ret = EINVAL;
+ goto out;
+ }
+ data = MTK_READ_4(sc, GPIO_PIODATA(sc));
+ *val = (data & (1u << pin)) ? 1 : 0;
+
+out:
+ MTK_GPIO_UNLOCK(sc);
+ return (ret);
+}
+
+static int
+mtk_gpio_pin_toggle(device_t dev, uint32_t pin)
+{
+ struct mtk_gpio_softc *sc;
+ uint32_t val;
+ int ret;
+
+ if (pin >= sc->num_pins)
+ return (EINVAL);
+
+ sc = device_get_softc(dev);
+ ret = 0;
+
+ MTK_GPIO_LOCK(sc);
+ if(!(sc->pins[pin].pin_flags & GPIO_PIN_OUTPUT)) {
+ ret = EINVAL;
+ goto out;
+ }
+ val = MTK_READ_4(sc, GPIO_PIODATA(sc));
+ val &= (1u << pin);
+ if (val)
+ MTK_WRITE_4(sc, GPIO_PIORESET(sc), (1u << pin));
+ else
+ MTK_WRITE_4(sc, GPIO_PIOSET(sc), (1u << pin));
+
+out:
+ MTK_GPIO_UNLOCK(sc);
+
+ return (ret);
+}
+
+static int
+mtk_gpio_pic_map_intr(device_t dev, struct intr_map_data *data,
+ struct intr_irqsrc **isrcp)
+{
+ struct mtk_gpio_softc *sc;
+
+ sc = device_get_softc(dev);
+
+ if (data == NULL || data->type != INTR_MAP_DATA_FDT ||
+ data->fdt.ncells != 1 || data->fdt.cells[0] >= sc->num_pins)
+ return (EINVAL);
+
+ *isrcp = PIC_INTR_ISRC(sc, data->fdt.cells[0]);
+ return (0);
+}
+
+static void
+mtk_gpio_pic_enable_intr(device_t dev, struct intr_irqsrc *isrc)
+{
+ struct mtk_gpio_softc *sc;
+ struct mtk_gpio_pin_irqsrc *pisrc;
+ uint32_t pin, mask, val;
+
+ sc = device_get_softc(dev);
+
+ pisrc = (struct mtk_gpio_pin_irqsrc *)isrc;
+ pin = pisrc->irq;
+ mask = 1u << pin;
+
+ MTK_GPIO_LOCK(sc);
+
+ if (sc->pins[pin].intr_polarity == INTR_POLARITY_LOW) {
+ val = MTK_READ_4(sc, GPIO_PIORENA(sc)) & ~mask;
+ MTK_WRITE_4(sc, GPIO_PIORENA(sc), val);
+ val = MTK_READ_4(sc, GPIO_PIOFENA(sc)) | mask;
+ MTK_WRITE_4(sc, GPIO_PIOFENA(sc), val);
+ } else {
+ val = MTK_READ_4(sc, GPIO_PIOFENA(sc)) & ~mask;
+ MTK_WRITE_4(sc, GPIO_PIOFENA(sc), val);
+ val = MTK_READ_4(sc, GPIO_PIORENA(sc)) | mask;
+ MTK_WRITE_4(sc, GPIO_PIORENA(sc), val);
+ }
+
+ MTK_GPIO_UNLOCK(sc);
+}
+
+static void
+mtk_gpio_pic_disable_intr(device_t dev, struct intr_irqsrc *isrc)
+{
+ struct mtk_gpio_softc *sc;
+ struct mtk_gpio_pin_irqsrc *pisrc;
+ uint32_t pin, mask, val;
+
+ sc = device_get_softc(dev);
+
+ pisrc = (struct mtk_gpio_pin_irqsrc *)isrc;
+ pin = pisrc->irq;
+ mask = 1u << pin;
+
+ MTK_GPIO_LOCK(sc);
+
+ val = MTK_READ_4(sc, GPIO_PIORENA(sc)) & ~mask;
+ MTK_WRITE_4(sc, GPIO_PIORENA(sc), val);
+ val = MTK_READ_4(sc, GPIO_PIOFENA(sc)) & ~mask;
+ MTK_WRITE_4(sc, GPIO_PIOFENA(sc), val);
+
+ MTK_GPIO_UNLOCK(sc);
+}
+
+static void
+mtk_gpio_pic_pre_ithread(device_t dev, struct intr_irqsrc *isrc)
+{
+
+ mtk_gpio_pic_disable_intr(dev, isrc);
+}
+
+static void
+mtk_gpio_pic_post_ithread(device_t dev, struct intr_irqsrc *isrc)
+{
+
+ mtk_gpio_pic_enable_intr(dev, isrc);
+}
+
+static void
+mtk_gpio_pic_post_filter(device_t dev, struct intr_irqsrc *isrc)
+{
+ struct mtk_gpio_softc *sc;
+ struct mtk_gpio_pin_irqsrc *pisrc;
+
+ pisrc = (struct mtk_gpio_pin_irqsrc *)isrc;
+ sc = device_get_softc(dev);
+ MTK_GPIO_LOCK(sc);
+ MTK_WRITE_4(sc, GPIO_PIOINT(sc), 1u << pisrc->irq);
+ MTK_GPIO_UNLOCK(sc);
+}
+
+static int
+mtk_gpio_intr(void *arg)
+{
+ struct mtk_gpio_softc *sc;
+ uint32_t i, interrupts;
+
+ sc = arg;
+ interrupts = MTK_READ_4(sc, GPIO_PIOINT(sc));
+
+ for (i = 0; interrupts != 0; i++, interrupts >>= 1) {
+ if ((interrupts & 0x1) == 0)
+ continue;
+ if (intr_isrc_dispatch(PIC_INTR_ISRC(sc, i),
+ curthread->td_intr_frame) != 0) {
+ device_printf(sc->dev, "spurious interrupt %d\n", i);
+ }
+ }
+
+ return (FILTER_HANDLED);
+}
+
+static phandle_t
+mtk_gpio_get_node(device_t bus, device_t dev)
+{
+
+ /* We only have one child, the GPIO bus, which needs our own node. */
+ return (ofw_bus_get_node(bus));
+}
+
+static device_method_t mtk_gpio_methods[] = {
+ /* Device interface */
+ DEVMETHOD(device_probe, mtk_gpio_probe),
+ DEVMETHOD(device_attach, mtk_gpio_attach),
+ DEVMETHOD(device_detach, mtk_gpio_detach),
+
+ /* GPIO protocol */
+ DEVMETHOD(gpio_get_bus, mtk_gpio_get_bus),
+ DEVMETHOD(gpio_pin_max, mtk_gpio_pin_max),
+ DEVMETHOD(gpio_pin_getname, mtk_gpio_pin_getname),
+ DEVMETHOD(gpio_pin_getflags, mtk_gpio_pin_getflags),
+ DEVMETHOD(gpio_pin_getcaps, mtk_gpio_pin_getcaps),
+ DEVMETHOD(gpio_pin_setflags, mtk_gpio_pin_setflags),
+ DEVMETHOD(gpio_pin_get, mtk_gpio_pin_get),
+ DEVMETHOD(gpio_pin_set, mtk_gpio_pin_set),
+ DEVMETHOD(gpio_pin_toggle, mtk_gpio_pin_toggle),
+
+ /* Interrupt controller interface */
+ DEVMETHOD(pic_disable_intr, mtk_gpio_pic_disable_intr),
+ DEVMETHOD(pic_enable_intr, mtk_gpio_pic_enable_intr),
+ DEVMETHOD(pic_map_intr, mtk_gpio_pic_map_intr),
+ DEVMETHOD(pic_post_filter, mtk_gpio_pic_post_filter),
+ DEVMETHOD(pic_post_ithread, mtk_gpio_pic_post_ithread),
+ DEVMETHOD(pic_pre_ithread, mtk_gpio_pic_pre_ithread),
+
+ /* ofw_bus interface */
+ DEVMETHOD(ofw_bus_get_node, mtk_gpio_get_node),
+
+ DEVMETHOD_END
+};
+
+static driver_t mtk_gpio_driver = {
+ "gpio",
+ mtk_gpio_methods,
+ sizeof(struct mtk_gpio_softc),
+};
+
+static devclass_t mtk_gpio_devclass;
+
+EARLY_DRIVER_MODULE(mtk_gpio_v2, simplebus, mtk_gpio_driver,
+ mtk_gpio_devclass, 0, 0, BUS_PASS_INTERRUPT + BUS_PASS_ORDER_LATE);
diff --git a/sys/mips/mediatek/mtk_intr_gic.c b/sys/mips/mediatek/mtk_intr_gic.c
new file mode 100644
index 0000000..3eb6ffc
--- /dev/null
+++ b/sys/mips/mediatek/mtk_intr_gic.c
@@ -0,0 +1,377 @@
+/*-
+ * Copyright (c) 2016 Stanislav Galabov
+ * Copyright (c) 2015 Alexander Kabaev
+ * 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, immediately at the beginning of the file.
+ * 2. 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 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 "opt_platform.h"
+
+#include <sys/cdefs.h>
+__FBSDID("$FreeBSD$");
+
+#include <sys/param.h>
+#include <sys/systm.h>
+#include <sys/bus.h>
+#include <sys/kernel.h>
+#include <sys/ktr.h>
+#include <sys/module.h>
+#include <sys/malloc.h>
+#include <sys/rman.h>
+#include <sys/pcpu.h>
+#include <sys/proc.h>
+#include <sys/cpuset.h>
+#include <sys/lock.h>
+#include <sys/mutex.h>
+#include <sys/smp.h>
+#include <sys/sched.h>
+#include <machine/bus.h>
+#include <machine/intr.h>
+#include <machine/smp.h>
+
+#include <dev/fdt/fdt_common.h>
+#include <dev/ofw/openfirm.h>
+#include <dev/ofw/ofw_bus.h>
+#include <dev/ofw/ofw_bus_subr.h>
+
+#include "pic_if.h"
+
+#define MTK_NIRQS 64 /* We'll only use 64 for now */
+
+#define MTK_INTPOL 0x0100
+#define MTK_INTTRIG 0x0180
+#define MTK_INTDIS 0x0300
+#define MTK_INTENA 0x0380
+#define MTK_INTMASK 0x0400
+#define MTK_INTSTAT 0x0480
+#define MTK_MAPPIN(_i) (0x0500 + (4 * (_i)))
+#define MTK_MAPVPE(_i, _v) (0x2000 + (32 * (_i)) + (((_v) / 32) * 4))
+
+#define MTK_INTPOL_POS 1
+#define MTK_INTPOL_NEG 0
+#define MTK_INTTRIG_EDGE 1
+#define MTK_INTTRIG_LEVEL 0
+#define MTK_PIN_BITS(_i) ((1 << 31) | (_i))
+#define MTK_VPE_BITS(_v) (1 << ((_v) % 32))
+
+static int mtk_gic_intr(void *);
+
+struct mtk_gic_irqsrc {
+ struct intr_irqsrc isrc;
+ u_int irq;
+};
+
+struct mtk_gic_softc {
+ device_t gic_dev;
+ void * gic_intrhand;
+ struct resource * gic_res[2];
+ struct mtk_gic_irqsrc gic_irqs[MTK_NIRQS];
+ struct mtx mutex;
+ uint32_t nirqs;
+};
+
+#define GIC_INTR_ISRC(sc, irq) (&(sc)->gic_irqs[(irq)].isrc)
+
+static struct resource_spec mtk_gic_spec[] = {
+ { SYS_RES_MEMORY, 0, RF_ACTIVE }, /* Registers */
+ { SYS_RES_IRQ, 0, RF_ACTIVE }, /* Parent interrupt 1 */
+ { -1, 0 }
+};
+
+static struct ofw_compat_data compat_data[] = {
+ { "mti,gic", 1 },
+ { NULL, 0 }
+};
+
+#if 0
+#define READ4(_sc, _reg) \
+ bus_space_read_4((_sc)->bst, (_sc)->bsh, _reg)
+#define WRITE4(_sc, _reg, _val) \
+ bus_space_write_4((_sc)->bst, (_sc)->bsh, _reg, _val)
+#else
+#define READ4(_sc, _reg) bus_read_4((_sc)->gic_res[0], (_reg))
+#define WRITE4(_sc, _reg, _val) bus_write_4((_sc)->gic_res[0], (_reg), (_val))
+#endif
+
+static int
+mtk_gic_probe(device_t dev)
+{
+
+ if (!ofw_bus_status_okay(dev))
+ return (ENXIO);
+
+ if (ofw_bus_search_compatible(dev, compat_data)->ocd_data == 0)
+ return (ENXIO);
+
+ device_set_desc(dev, "MTK Interrupt Controller (GIC)");
+ return (BUS_PROBE_DEFAULT);
+}
+
+static inline void
+gic_irq_unmask(struct mtk_gic_softc *sc, u_int irq)
+{
+
+ WRITE4(sc, MTK_INTENA, (1u << (irq)));
+}
+
+static inline void
+gic_irq_mask(struct mtk_gic_softc *sc, u_int irq)
+{
+
+ WRITE4(sc, MTK_INTDIS, (1u << (irq)));
+}
+
+static inline intptr_t
+gic_xref(device_t dev)
+{
+
+ return (OF_xref_from_node(ofw_bus_get_node(dev)));
+}
+
+static int
+mtk_gic_register_isrcs(struct mtk_gic_softc *sc)
+{
+ int error;
+ uint32_t irq;
+ struct intr_irqsrc *isrc;
+ const char *name;
+
+ name = device_get_nameunit(sc->gic_dev);
+ for (irq = 0; irq < sc->nirqs; irq++) {
+ sc->gic_irqs[irq].irq = irq;
+ isrc = GIC_INTR_ISRC(sc, irq);
+ error = intr_isrc_register(isrc, sc->gic_dev, 0, "%s", name);
+ if (error != 0) {
+ /* XXX call intr_isrc_deregister */
+ device_printf(sc->gic_dev, "%s failed", __func__);
+ return (error);
+ }
+ }
+
+ return (0);
+}
+
+static int
+mtk_gic_attach(device_t dev)
+{
+ struct mtk_gic_softc *sc;
+ intptr_t xref = gic_xref(dev);
+ int i;
+
+ sc = device_get_softc(dev);
+
+ if (bus_alloc_resources(dev, mtk_gic_spec, sc->gic_res)) {
+ device_printf(dev, "could not allocate resources\n");
+ return (ENXIO);
+ }
+
+ sc->gic_dev = dev;
+
+ /* Initialize mutex */
+ mtx_init(&sc->mutex, "PIC lock", "", MTX_SPIN);
+
+ /* Set the number of interrupts */
+ sc->nirqs = nitems(sc->gic_irqs);
+
+ /* Mask all interrupts */
+ WRITE4(sc, MTK_INTDIS, 0xFFFFFFFF);
+
+ /* All interrupts are of type level */
+ WRITE4(sc, MTK_INTTRIG, 0x00000000);
+
+ /* All interrupts are of positive polarity */
+ WRITE4(sc, MTK_INTPOL, 0xFFFFFFFF);
+
+ /*
+ * Route all interrupts to pin 0 on VPE 0;
+ */
+ for (i = 0; i < 32; i++) {
+ WRITE4(sc, MTK_MAPPIN(i), MTK_PIN_BITS(0));
+ WRITE4(sc, MTK_MAPVPE(i, 0), MTK_VPE_BITS(0));
+ }
+
+ /* Register the interrupts */
+ if (mtk_gic_register_isrcs(sc) != 0) {
+ device_printf(dev, "could not register GIC ISRCs\n");
+ goto cleanup;
+ }
+
+ /*
+ * Now, when everything is initialized, it's right time to
+ * register interrupt controller to interrupt framefork.
+ */
+ if (intr_pic_register(dev, xref) != 0) {
+ device_printf(dev, "could not register PIC\n");
+ goto cleanup;
+ }
+
+ if (bus_setup_intr(dev, sc->gic_res[1], INTR_TYPE_CLK,
+ mtk_gic_intr, NULL, sc, &sc->gic_intrhand)) {
+ device_printf(dev, "could not setup irq handler\n");
+ intr_pic_deregister(dev, xref);
+ goto cleanup;
+ }
+ return (0);
+
+cleanup:
+ bus_release_resources(dev, mtk_gic_spec, sc->gic_res);
+ return(ENXIO);
+}
+
+static int
+mtk_gic_intr(void *arg)
+{
+ struct mtk_gic_softc *sc = arg;
+ struct thread *td;
+ uint32_t i, intr;
+
+ td = curthread;
+ /* Workaround: do not inflate intr nesting level */
+ td->td_intr_nesting_level--;
+
+ intr = READ4(sc, MTK_INTSTAT) & READ4(sc, MTK_INTMASK);
+ while ((i = fls(intr)) != 0) {
+ i--;
+ intr &= ~(1u << i);
+
+ if (intr_isrc_dispatch(GIC_INTR_ISRC(sc, i),
+ curthread->td_intr_frame) != 0) {
+ device_printf(sc->gic_dev,
+ "Stray interrupt %u detected\n", i);
+ gic_irq_mask(sc, i);
+ continue;
+ }
+ }
+
+ KASSERT(i == 0, ("all interrupts handled"));
+
+ td->td_intr_nesting_level++;
+
+ return (FILTER_HANDLED);
+}
+
+static int
+mtk_gic_map_intr(device_t dev, struct intr_map_data *data,
+ struct intr_irqsrc **isrcp)
+{
+#ifdef FDT
+ struct mtk_gic_softc *sc;
+
+ sc = device_get_softc(dev);
+
+ if (data == NULL || data->type != INTR_MAP_DATA_FDT ||
+ data->fdt.ncells != 1 || data->fdt.cells[0] >= sc->nirqs)
+ return (EINVAL);
+
+ *isrcp = GIC_INTR_ISRC(sc, data->fdt.cells[0]);
+ return (0);
+#else
+ return (EINVAL);
+#endif
+}
+
+static void
+mtk_gic_enable_intr(device_t dev, struct intr_irqsrc *isrc)
+{
+ u_int irq;
+
+ irq = ((struct mtk_gic_irqsrc *)isrc)->irq;
+ gic_irq_unmask(device_get_softc(dev), irq);
+}
+
+static void
+mtk_gic_disable_intr(device_t dev, struct intr_irqsrc *isrc)
+{
+ u_int irq;
+
+ irq = ((struct mtk_gic_irqsrc *)isrc)->irq;
+ gic_irq_mask(device_get_softc(dev), irq);
+}
+
+static void
+mtk_gic_pre_ithread(device_t dev, struct intr_irqsrc *isrc)
+{
+
+ mtk_gic_disable_intr(dev, isrc);
+}
+
+static void
+mtk_gic_post_ithread(device_t dev, struct intr_irqsrc *isrc)
+{
+
+ mtk_gic_enable_intr(dev, isrc);
+}
+
+static void
+mtk_gic_post_filter(device_t dev, struct intr_irqsrc *isrc)
+{
+}
+
+#ifdef SMP
+static int
+mtk_gic_bind(device_t dev, struct intr_irqsrc *isrc)
+{
+ return (EOPNOTSUPP);
+}
+
+static void
+mtk_gic_init_secondary(device_t dev)
+{
+}
+
+static void
+mtk_gic_ipi_send(device_t dev, struct intr_irqsrc *isrc, cpuset_t cpus)
+{
+}
+#endif
+
+static device_method_t mtk_gic_methods[] = {
+ /* Device interface */
+ DEVMETHOD(device_probe, mtk_gic_probe),
+ DEVMETHOD(device_attach, mtk_gic_attach),
+ /* Interrupt controller interface */
+ DEVMETHOD(pic_disable_intr, mtk_gic_disable_intr),
+ DEVMETHOD(pic_enable_intr, mtk_gic_enable_intr),
+ DEVMETHOD(pic_map_intr, mtk_gic_map_intr),
+ DEVMETHOD(pic_post_filter, mtk_gic_post_filter),
+ DEVMETHOD(pic_post_ithread, mtk_gic_post_ithread),
+ DEVMETHOD(pic_pre_ithread, mtk_gic_pre_ithread),
+#ifdef SMP
+ DEVMETHOD(pic_bind, mtk_gic_bind),
+ DEVMETHOD(pic_init_secondary, mtk_gic_init_secondary),
+ DEVMETHOD(pic_ipi_send, mtk_gic_ipi_send),
+#endif
+ { 0, 0 }
+};
+
+static driver_t mtk_gic_driver = {
+ "intc",
+ mtk_gic_methods,
+ sizeof(struct mtk_gic_softc),
+};
+
+static devclass_t mtk_gic_devclass;
+
+EARLY_DRIVER_MODULE(intc_gic, simplebus, mtk_gic_driver, mtk_gic_devclass, 0, 0,
+ BUS_PASS_INTERRUPT + BUS_PASS_ORDER_MIDDLE);
diff --git a/sys/mips/mediatek/mtk_intr_v1.c b/sys/mips/mediatek/mtk_intr_v1.c
new file mode 100644
index 0000000..f1ae3a2
--- /dev/null
+++ b/sys/mips/mediatek/mtk_intr_v1.c
@@ -0,0 +1,353 @@
+/*-
+ * Copyright (c) 2015 Stanislav Galabov
+ * Copyright (c) 2015 Alexander Kabaev
+ * 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, immediately at the beginning of the file.
+ * 2. 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 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 "opt_platform.h"
+
+#include <sys/cdefs.h>
+__FBSDID("$FreeBSD$");
+
+#include <sys/param.h>
+#include <sys/systm.h>
+#include <sys/bus.h>
+#include <sys/kernel.h>
+#include <sys/ktr.h>
+#include <sys/module.h>
+#include <sys/malloc.h>
+#include <sys/rman.h>
+#include <sys/pcpu.h>
+#include <sys/proc.h>
+#include <sys/cpuset.h>
+#include <sys/lock.h>
+#include <sys/mutex.h>
+#include <sys/smp.h>
+#include <sys/sched.h>
+#include <machine/bus.h>
+#include <machine/intr.h>
+#include <machine/smp.h>
+
+#include <dev/fdt/fdt_common.h>
+#include <dev/ofw/openfirm.h>
+#include <dev/ofw/ofw_bus.h>
+#include <dev/ofw/ofw_bus_subr.h>
+
+#include "pic_if.h"
+
+#define MTK_NIRQS 32
+
+#define MTK_IRQ0STAT 0x0000
+#define MTK_IRQ1STAT 0x0004
+#define MTK_INTTYPE 0x0020
+#define MTK_INTRAW 0x0030
+#define MTK_INTENA 0x0034
+#define MTK_INTDIS 0x0038
+
+static int mtk_pic_intr(void *);
+
+struct mtk_pic_irqsrc {
+ struct intr_irqsrc isrc;
+ u_int irq;
+};
+
+struct mtk_pic_softc {
+ device_t pic_dev;
+ void * pic_intrhand;
+ struct resource * pic_res[2];
+ struct mtk_pic_irqsrc pic_irqs[MTK_NIRQS];
+ struct mtx mutex;
+ uint32_t nirqs;
+};
+
+#define PIC_INTR_ISRC(sc, irq) (&(sc)->pic_irqs[(irq)].isrc)
+
+static struct resource_spec mtk_pic_spec[] = {
+ { SYS_RES_MEMORY, 0, RF_ACTIVE }, /* Registers */
+ { SYS_RES_IRQ, 0, RF_ACTIVE }, /* Parent interrupt 1 */
+// { SYS_RES_IRQ, 1, RF_ACTIVE }, /* Parent interrupt 2 */
+ { -1, 0 }
+};
+
+static struct ofw_compat_data compat_data[] = {
+ { "ralink,rt2880-intc", 1 },
+ { "ralink,rt3050-intc", 1 },
+ { "ralink,rt3352-intc", 1 },
+ { "ralink,rt3883-intc", 1 },
+ { "ralink,rt5350-intc", 1 },
+ { "ralink,mt7620a-intc", 1 },
+ { NULL, 0 }
+};
+
+#define READ4(_sc, _reg) bus_read_4((_sc)->pic_res[0], _reg)
+#define WRITE4(_sc, _reg, _val) bus_write_4((_sc)->pic_res[0], _reg, _val)
+
+static int
+mtk_pic_probe(device_t dev)
+{
+
+ if (!ofw_bus_status_okay(dev))
+ return (ENXIO);
+
+ if (ofw_bus_search_compatible(dev, compat_data)->ocd_data == 0)
+ return (ENXIO);
+
+ device_set_desc(dev, "MTK Interrupt Controller (v2)");
+ return (BUS_PROBE_DEFAULT);
+}
+
+static inline void
+pic_irq_unmask(struct mtk_pic_softc *sc, u_int irq)
+{
+
+ WRITE4(sc, MTK_INTENA, (1u << (irq)));
+}
+
+static inline void
+pic_irq_mask(struct mtk_pic_softc *sc, u_int irq)
+{
+
+ WRITE4(sc, MTK_INTDIS, (1u << (irq)));
+}
+
+static inline intptr_t
+pic_xref(device_t dev)
+{
+ return (OF_xref_from_node(ofw_bus_get_node(dev)));
+}
+
+static int
+mtk_pic_register_isrcs(struct mtk_pic_softc *sc)
+{
+ int error;
+ uint32_t irq;
+ struct intr_irqsrc *isrc;
+ const char *name;
+
+ name = device_get_nameunit(sc->pic_dev);
+ for (irq = 0; irq < sc->nirqs; irq++) {
+ sc->pic_irqs[irq].irq = irq;
+ isrc = PIC_INTR_ISRC(sc, irq);
+ error = intr_isrc_register(isrc, sc->pic_dev, 0, "%s", name);
+ if (error != 0) {
+ /* XXX call intr_isrc_deregister */
+ device_printf(sc->pic_dev, "%s failed", __func__);
+ return (error);
+ }
+ }
+
+ return (0);
+}
+
+static int
+mtk_pic_attach(device_t dev)
+{
+ struct mtk_pic_softc *sc;
+ intptr_t xref = pic_xref(dev);
+
+ sc = device_get_softc(dev);
+
+ if (bus_alloc_resources(dev, mtk_pic_spec, sc->pic_res)) {
+ device_printf(dev, "could not allocate resources\n");
+ return (ENXIO);
+ }
+
+ sc->pic_dev = dev;
+
+ /* Initialize mutex */
+ mtx_init(&sc->mutex, "PIC lock", "", MTX_SPIN);
+
+ /* Set the number of interrupts */
+ sc->nirqs = nitems(sc->pic_irqs);
+
+ /* Mask all interrupts */
+ WRITE4(sc, MTK_INTDIS, 0x7FFFFFFF);
+
+ /* But enable interrupt generation/masking */
+ WRITE4(sc, MTK_INTENA, 0x80000000);
+
+ /* Set all interrupts to type 0 */
+ WRITE4(sc, MTK_INTTYPE, 0x00000000);
+
+ /* Register the interrupts */
+ if (mtk_pic_register_isrcs(sc) != 0) {
+ device_printf(dev, "could not register PIC ISRCs\n");
+ goto cleanup;
+ }
+
+ /*
+ * Now, when everything is initialized, it's right time to
+ * register interrupt controller to interrupt framefork.
+ */
+ if (intr_pic_register(dev, xref) != 0) {
+ device_printf(dev, "could not register PIC\n");
+ goto cleanup;
+ }
+
+ if (bus_setup_intr(dev, sc->pic_res[1], INTR_TYPE_CLK,
+ mtk_pic_intr, NULL, sc, &sc->pic_intrhand)) {
+ device_printf(dev, "could not setup irq handler\n");
+ intr_pic_deregister(dev, xref);
+ goto cleanup;
+ }
+ return (0);
+
+cleanup:
+ bus_release_resources(dev, mtk_pic_spec, sc->pic_res);
+ return(ENXIO);
+}
+
+static int
+mtk_pic_intr(void *arg)
+{
+ struct mtk_pic_softc *sc = arg;
+ struct thread *td;
+ uint32_t i, intr;
+
+ td = curthread;
+ /* Workaround: do not inflate intr nesting level */
+ td->td_intr_nesting_level--;
+
+#ifdef _notyet_
+ intr = READ4(sc, MTK_IRQ1STAT);
+ while ((i = fls(intr)) != 0) {
+ i--;
+ intr &= ~(1u << i);
+
+ if (intr_isrc_dispatch(PIC_INTR_ISRC(sc, i),
+ curthread->td_intr_frame) != 0) {
+ device_printf(sc->pic_dev,
+ "Stray interrupt %u detected\n", i);
+ pic_irq_mask(sc, i);
+ continue;
+ }
+ }
+
+ KASSERT(i == 0, ("all interrupts handled"));
+#endif
+
+ intr = READ4(sc, MTK_IRQ0STAT);
+
+ while ((i = fls(intr)) != 0) {
+ i--;
+ intr &= ~(1u << i);
+
+ if (intr_isrc_dispatch(PIC_INTR_ISRC(sc, i),
+ curthread->td_intr_frame) != 0) {
+ device_printf(sc->pic_dev,
+ "Stray interrupt %u detected\n", i);
+ pic_irq_mask(sc, i);
+ continue;
+ }
+ }
+
+ KASSERT(i == 0, ("all interrupts handled"));
+
+ td->td_intr_nesting_level++;
+
+ return (FILTER_HANDLED);
+}
+
+static int
+mtk_pic_map_intr(device_t dev, struct intr_map_data *data,
+ struct intr_irqsrc **isrcp)
+{
+#ifdef FDT
+ struct mtk_pic_softc *sc;
+
+ sc = device_get_softc(dev);
+
+ if (data == NULL || data->type != INTR_MAP_DATA_FDT ||
+ data->fdt.ncells != 1 || data->fdt.cells[0] >= sc->nirqs)
+ return (EINVAL);
+
+ *isrcp = PIC_INTR_ISRC(sc, data->fdt.cells[0]);
+ return (0);
+#else
+ return (EINVAL);
+#endif
+}
+
+static void
+mtk_pic_enable_intr(device_t dev, struct intr_irqsrc *isrc)
+{
+ u_int irq;
+
+ irq = ((struct mtk_pic_irqsrc *)isrc)->irq;
+ pic_irq_unmask(device_get_softc(dev), irq);
+}
+
+static void
+mtk_pic_disable_intr(device_t dev, struct intr_irqsrc *isrc)
+{
+ u_int irq;
+
+ irq = ((struct mtk_pic_irqsrc *)isrc)->irq;
+ pic_irq_mask(device_get_softc(dev), irq);
+}
+
+static void
+mtk_pic_pre_ithread(device_t dev, struct intr_irqsrc *isrc)
+{
+
+ mtk_pic_disable_intr(dev, isrc);
+}
+
+static void
+mtk_pic_post_ithread(device_t dev, struct intr_irqsrc *isrc)
+{
+
+ mtk_pic_enable_intr(dev, isrc);
+}
+
+static void
+mtk_pic_post_filter(device_t dev, struct intr_irqsrc *isrc)
+{
+}
+
+static device_method_t mtk_pic_methods[] = {
+ /* Device interface */
+ DEVMETHOD(device_probe, mtk_pic_probe),
+ DEVMETHOD(device_attach, mtk_pic_attach),
+ /* Interrupt controller interface */
+ DEVMETHOD(pic_disable_intr, mtk_pic_disable_intr),
+ DEVMETHOD(pic_enable_intr, mtk_pic_enable_intr),
+ DEVMETHOD(pic_map_intr, mtk_pic_map_intr),
+ DEVMETHOD(pic_post_filter, mtk_pic_post_filter),
+ DEVMETHOD(pic_post_ithread, mtk_pic_post_ithread),
+ DEVMETHOD(pic_pre_ithread, mtk_pic_pre_ithread),
+ { 0, 0 }
+};
+
+static driver_t mtk_pic_driver = {
+ "intc",
+ mtk_pic_methods,
+ sizeof(struct mtk_pic_softc),
+};
+
+static devclass_t mtk_pic_devclass;
+
+EARLY_DRIVER_MODULE(intc_v1, simplebus, mtk_pic_driver, mtk_pic_devclass, 0, 0,
+ BUS_PASS_INTERRUPT + BUS_PASS_ORDER_MIDDLE);
diff --git a/sys/mips/mediatek/mtk_intr_v2.c b/sys/mips/mediatek/mtk_intr_v2.c
new file mode 100644
index 0000000..5a9646e
--- /dev/null
+++ b/sys/mips/mediatek/mtk_intr_v2.c
@@ -0,0 +1,348 @@
+/*-
+ * Copyright (c) 2015 Stanislav Galabov
+ * Copyright (c) 2015 Alexander Kabaev
+ * 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, immediately at the beginning of the file.
+ * 2. 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 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 "opt_platform.h"
+
+#include <sys/cdefs.h>
+__FBSDID("$FreeBSD$");
+
+#include <sys/param.h>
+#include <sys/systm.h>
+#include <sys/bus.h>
+#include <sys/kernel.h>
+#include <sys/ktr.h>
+#include <sys/module.h>
+#include <sys/malloc.h>
+#include <sys/rman.h>
+#include <sys/pcpu.h>
+#include <sys/proc.h>
+#include <sys/cpuset.h>
+#include <sys/lock.h>
+#include <sys/mutex.h>
+#include <sys/smp.h>
+#include <sys/sched.h>
+#include <machine/bus.h>
+#include <machine/intr.h>
+#include <machine/smp.h>
+
+#include <dev/fdt/fdt_common.h>
+#include <dev/ofw/openfirm.h>
+#include <dev/ofw/ofw_bus.h>
+#include <dev/ofw/ofw_bus_subr.h>
+
+#include "pic_if.h"
+
+#define MTK_NIRQS 32
+
+#define MTK_IRQ0STAT 0x009c
+#define MTK_IRQ1STAT 0x00a0
+#define MTK_INTTYPE 0x0000
+#define MTK_INTRAW 0x00a4
+#define MTK_INTENA 0x0080
+#define MTK_INTDIS 0x0078
+
+static int mtk_pic_intr(void *);
+
+struct mtk_pic_irqsrc {
+ struct intr_irqsrc isrc;
+ u_int irq;
+};
+
+struct mtk_pic_softc {
+ device_t pic_dev;
+ void * pic_intrhand;
+ struct resource * pic_res[2];
+ struct mtk_pic_irqsrc pic_irqs[MTK_NIRQS];
+ struct mtx mutex;
+ uint32_t nirqs;
+};
+
+#define PIC_INTR_ISRC(sc, irq) (&(sc)->pic_irqs[(irq)].isrc)
+
+static struct resource_spec mtk_pic_spec[] = {
+ { SYS_RES_MEMORY, 0, RF_ACTIVE }, /* Registers */
+ { SYS_RES_IRQ, 0, RF_ACTIVE }, /* Parent interrupt 1 */
+// { SYS_RES_IRQ, 1, RF_ACTIVE }, /* Parent interrupt 2 */
+ { -1, 0 }
+};
+
+static struct ofw_compat_data compat_data[] = {
+ { "ralink,mt7628an-intc", 1 },
+ { NULL, 0 }
+};
+
+#define READ4(_sc, _reg) bus_read_4((_sc)->pic_res[0], _reg)
+#define WRITE4(_sc, _reg, _val) bus_write_4((_sc)->pic_res[0], _reg, _val)
+
+static int
+mtk_pic_probe(device_t dev)
+{
+
+ if (!ofw_bus_status_okay(dev))
+ return (ENXIO);
+
+ if (ofw_bus_search_compatible(dev, compat_data)->ocd_data == 0)
+ return (ENXIO);
+
+ device_set_desc(dev, "MTK Interrupt Controller (v2)");
+ return (BUS_PROBE_DEFAULT);
+}
+
+static inline void
+pic_irq_unmask(struct mtk_pic_softc *sc, u_int irq)
+{
+
+ WRITE4(sc, MTK_INTENA, (1u << (irq)));
+}
+
+static inline void
+pic_irq_mask(struct mtk_pic_softc *sc, u_int irq)
+{
+
+ WRITE4(sc, MTK_INTDIS, (1u << (irq)));
+}
+
+static inline intptr_t
+pic_xref(device_t dev)
+{
+ return (OF_xref_from_node(ofw_bus_get_node(dev)));
+}
+
+static int
+mtk_pic_register_isrcs(struct mtk_pic_softc *sc)
+{
+ int error;
+ uint32_t irq;
+ struct intr_irqsrc *isrc;
+ const char *name;
+
+ name = device_get_nameunit(sc->pic_dev);
+ for (irq = 0; irq < sc->nirqs; irq++) {
+ sc->pic_irqs[irq].irq = irq;
+ isrc = PIC_INTR_ISRC(sc, irq);
+ error = intr_isrc_register(isrc, sc->pic_dev, 0, "%s", name);
+ if (error != 0) {
+ /* XXX call intr_isrc_deregister */
+ device_printf(sc->pic_dev, "%s failed", __func__);
+ return (error);
+ }
+ }
+
+ return (0);
+}
+
+static int
+mtk_pic_attach(device_t dev)
+{
+ struct mtk_pic_softc *sc;
+ intptr_t xref = pic_xref(dev);
+
+ sc = device_get_softc(dev);
+
+ if (bus_alloc_resources(dev, mtk_pic_spec, sc->pic_res)) {
+ device_printf(dev, "could not allocate resources\n");
+ return (ENXIO);
+ }
+
+ sc->pic_dev = dev;
+
+ /* Initialize mutex */
+ mtx_init(&sc->mutex, "PIC lock", "", MTX_SPIN);
+
+ /* Set the number of interrupts */
+ sc->nirqs = nitems(sc->pic_irqs);
+
+ /* Mask all interrupts */
+ WRITE4(sc, MTK_INTDIS, 0xFFFFFFFF);
+
+ /* But enable interrupt generation/masking */
+ WRITE4(sc, MTK_INTENA, 0x00000000);
+
+ /* Set all interrupts to type 0 */
+ WRITE4(sc, MTK_INTTYPE, 0xFFFFFFFF);
+
+ /* Register the interrupts */
+ if (mtk_pic_register_isrcs(sc) != 0) {
+ device_printf(dev, "could not register PIC ISRCs\n");
+ goto cleanup;
+ }
+
+ /*
+ * Now, when everything is initialized, it's right time to
+ * register interrupt controller to interrupt framefork.
+ */
+ if (intr_pic_register(dev, xref) != 0) {
+ device_printf(dev, "could not register PIC\n");
+ goto cleanup;
+ }
+
+ if (bus_setup_intr(dev, sc->pic_res[1], INTR_TYPE_CLK,
+ mtk_pic_intr, NULL, sc, &sc->pic_intrhand)) {
+ device_printf(dev, "could not setup irq handler\n");
+ intr_pic_deregister(dev, xref);
+ goto cleanup;
+ }
+ return (0);
+
+cleanup:
+ bus_release_resources(dev, mtk_pic_spec, sc->pic_res);
+ return(ENXIO);
+}
+
+static int
+mtk_pic_intr(void *arg)
+{
+ struct mtk_pic_softc *sc = arg;
+ struct thread *td;
+ uint32_t i, intr;
+
+ td = curthread;
+ /* Workaround: do not inflate intr nesting level */
+ td->td_intr_nesting_level--;
+
+#ifdef _notyet_
+ intr = READ4(sc, MTK_IRQ1STAT);
+ while ((i = fls(intr)) != 0) {
+ i--;
+ intr &= ~(1u << i);
+
+ if (intr_isrc_dispatch(PIC_INTR_ISRC(sc, i),
+ curthread->td_intr_frame) != 0) {
+ device_printf(sc->pic_dev,
+ "Stray interrupt %u detected\n", i);
+ pic_irq_mask(sc, i);
+ continue;
+ }
+ }
+
+ KASSERT(i == 0, ("all interrupts handled"));
+#endif
+
+ intr = READ4(sc, MTK_IRQ0STAT);
+
+ while ((i = fls(intr)) != 0) {
+ i--;
+ intr &= ~(1u << i);
+
+ if (intr_isrc_dispatch(PIC_INTR_ISRC(sc, i),
+ curthread->td_intr_frame) != 0) {
+ device_printf(sc->pic_dev,
+ "Stray interrupt %u detected\n", i);
+ pic_irq_mask(sc, i);
+ continue;
+ }
+ }
+
+ KASSERT(i == 0, ("all interrupts handled"));
+
+ td->td_intr_nesting_level++;
+
+ return (FILTER_HANDLED);
+}
+
+static int
+mtk_pic_map_intr(device_t dev, struct intr_map_data *data,
+ struct intr_irqsrc **isrcp)
+{
+#ifdef FDT
+ struct mtk_pic_softc *sc;
+
+ sc = device_get_softc(dev);
+
+ if (data == NULL || data->type != INTR_MAP_DATA_FDT ||
+ data->fdt.ncells != 1 || data->fdt.cells[0] >= sc->nirqs)
+ return (EINVAL);
+
+ *isrcp = PIC_INTR_ISRC(sc, data->fdt.cells[0]);
+ return (0);
+#else
+ return (EINVAL);
+#endif
+}
+
+static void
+mtk_pic_enable_intr(device_t dev, struct intr_irqsrc *isrc)
+{
+ u_int irq;
+
+ irq = ((struct mtk_pic_irqsrc *)isrc)->irq;
+ pic_irq_unmask(device_get_softc(dev), irq);
+}
+
+static void
+mtk_pic_disable_intr(device_t dev, struct intr_irqsrc *isrc)
+{
+ u_int irq;
+
+ irq = ((struct mtk_pic_irqsrc *)isrc)->irq;
+ pic_irq_mask(device_get_softc(dev), irq);
+}
+
+static void
+mtk_pic_pre_ithread(device_t dev, struct intr_irqsrc *isrc)
+{
+
+ mtk_pic_disable_intr(dev, isrc);
+}
+
+static void
+mtk_pic_post_ithread(device_t dev, struct intr_irqsrc *isrc)
+{
+
+ mtk_pic_enable_intr(dev, isrc);
+}
+
+static void
+mtk_pic_post_filter(device_t dev, struct intr_irqsrc *isrc)
+{
+}
+
+static device_method_t mtk_pic_methods[] = {
+ /* Device interface */
+ DEVMETHOD(device_probe, mtk_pic_probe),
+ DEVMETHOD(device_attach, mtk_pic_attach),
+ /* Interrupt controller interface */
+ DEVMETHOD(pic_disable_intr, mtk_pic_disable_intr),
+ DEVMETHOD(pic_enable_intr, mtk_pic_enable_intr),
+ DEVMETHOD(pic_map_intr, mtk_pic_map_intr),
+ DEVMETHOD(pic_post_filter, mtk_pic_post_filter),
+ DEVMETHOD(pic_post_ithread, mtk_pic_post_ithread),
+ DEVMETHOD(pic_pre_ithread, mtk_pic_pre_ithread),
+ { 0, 0 }
+};
+
+static driver_t mtk_pic_driver = {
+ "intc",
+ mtk_pic_methods,
+ sizeof(struct mtk_pic_softc),
+};
+
+static devclass_t mtk_pic_devclass;
+
+EARLY_DRIVER_MODULE(intc_v2, simplebus, mtk_pic_driver, mtk_pic_devclass, 0, 0,
+ BUS_PASS_INTERRUPT + BUS_PASS_ORDER_MIDDLE);
diff --git a/sys/mips/mediatek/mtk_machdep.c b/sys/mips/mediatek/mtk_machdep.c
new file mode 100644
index 0000000..eeadd4f
--- /dev/null
+++ b/sys/mips/mediatek/mtk_machdep.c
@@ -0,0 +1,286 @@
+/*-
+ * Copyright (C) 2015-2016 by Stanislav Galabov. All rights reserved.
+ * Copyright (C) 2010-2011 by Aleksandr Rybalko. All rights reserved.
+ * Copyright (C) 2007 by Oleksandr Tymoshenko. 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 ``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 HIS RELATIVES 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 MIND, 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 <sys/cdefs.h>
+__FBSDID("$FreeBSD$");
+
+#include "opt_ddb.h"
+
+#include <sys/param.h>
+#include <sys/conf.h>
+#include <sys/kernel.h>
+#include <sys/systm.h>
+#include <sys/imgact.h>
+#include <sys/bio.h>
+#include <sys/buf.h>
+#include <sys/bus.h>
+#include <sys/cpu.h>
+#include <sys/cons.h>
+#include <sys/exec.h>
+#include <sys/ucontext.h>
+#include <sys/proc.h>
+#include <sys/kdb.h>
+#include <sys/ptrace.h>
+#include <sys/reboot.h>
+#include <sys/signalvar.h>
+#include <sys/sysent.h>
+#include <sys/sysproto.h>
+#include <sys/user.h>
+
+#include <vm/vm.h>
+#include <vm/vm_object.h>
+#include <vm/vm_page.h>
+
+#include <machine/cache.h>
+#include <machine/clock.h>
+#include <machine/cpu.h>
+#include <machine/cpuinfo.h>
+#include <machine/cpufunc.h>
+#include <machine/cpuregs.h>
+#include <machine/hwfunc.h>
+#include <machine/intr_machdep.h>
+#include <machine/locore.h>
+#include <machine/md_var.h>
+#include <machine/pte.h>
+#include <machine/sigframe.h>
+#include <machine/trap.h>
+#include <machine/vmparam.h>
+
+#include <mips/mediatek/mtk_sysctl.h>
+#include <mips/mediatek/mtk_soc.h>
+
+#include "opt_platform.h"
+#include "opt_rt305x.h"
+
+#include <dev/fdt/fdt_common.h>
+#include <dev/ofw/openfirm.h>
+
+extern int *edata;
+extern int *end;
+static char boot1_env[0x1000];
+
+void
+platform_cpu_init()
+{
+ /* Nothing special */
+}
+
+static void
+mips_init(void)
+{
+ struct mem_region mr[FDT_MEM_REGIONS];
+ uint64_t val;
+ int i, j, mr_cnt;
+ char *memsize;
+
+ printf("entry: mips_init()\n");
+
+ bootverbose = 1;
+
+ for (i = 0; i < 10; i++)
+ phys_avail[i] = 0;
+
+ dump_avail[0] = phys_avail[0] = MIPS_KSEG0_TO_PHYS(kernel_kseg0_end);
+
+ /*
+ * The most low memory MT7621 can have. Currently MT7621 is the chip
+ * that supports the most memory, so that seems reasonable.
+ */
+ realmem = btoc(448 * 1024 * 1024);
+
+ if (fdt_get_mem_regions(mr, &mr_cnt, &val) == 0) {
+ physmem = btoc(val);
+
+ printf("RAM size: %ldMB (from FDT)\n",
+ ctob(physmem) / (1024 * 1024));
+
+ KASSERT((phys_avail[0] >= mr[0].mr_start) && \
+ (phys_avail[0] < (mr[0].mr_start + mr[0].mr_size)),
+ ("First region is not within FDT memory range"));
+
+ /* Limit size of the first region */
+ phys_avail[1] = (mr[0].mr_start +
+ MIN(mr[0].mr_size, ctob(realmem)));
+ dump_avail[1] = phys_avail[1];
+
+ /* Add the rest of the regions */
+ for (i = 1, j = 2; i < mr_cnt; i++, j+=2) {
+ phys_avail[j] = mr[i].mr_start;
+ phys_avail[j+1] = (mr[i].mr_start + mr[i].mr_size);
+ dump_avail[j] = phys_avail[j];
+ dump_avail[j+1] = phys_avail[j+1];
+ }
+ } else {
+ if ((memsize = kern_getenv("memsize")) != NULL) {
+ physmem = btoc(strtol(memsize, NULL, 0) << 20);
+ printf("RAM size: %ldMB (from memsize)\n",
+ ctob(physmem) / (1024 * 1024));
+ } else { /* All else failed, assume 32MB */
+ physmem = btoc(32 * 1024 * 1024);
+ printf("RAM size: %ldMB (assumed)\n",
+ ctob(physmem) / (1024 * 1024));
+ }
+
+ if (ctob(physmem) < (448 * 1024 * 1024)) {
+ /*
+ * Anything up to 448MB is assumed to be directly
+ * mappable as low memory...
+ */
+ dump_avail[1] = phys_avail[1] = ctob(physmem);
+ } else if (mtk_soc_get_socid() == MTK_SOC_MT7621) {
+ /*
+ * On MT7621 the low memory is limited to 448MB, the
+ * rest is high memory, mapped at 0x20000000
+ */
+ phys_avail[1] = 448 * 1024 * 1024;
+ phys_avail[2] = 0x20000000;
+ phys_avail[3] = phys_avail[2] + ctob(physmem) -
+ phys_avail[1];
+ dump_avail[1] = phys_avail[1] - phys_avail[0];
+ dump_avail[2] = phys_avail[2];
+ dump_avail[3] = phys_avail[3] - phys_avail[2];
+ } else {
+ /*
+ * We have > 448MB RAM and we're not MT7621? Currently
+ * there is no such chip, so we'll just limit the RAM to
+ * 32MB and let the user know...
+ */
+ printf("Unknown chip, assuming 32MB RAM\n");
+ physmem = btoc(32 * 1024 * 1024);
+ dump_avail[1] = phys_avail[1] = ctob(physmem);
+ }
+ }
+
+ if (physmem < realmem)
+ realmem = physmem;
+
+ init_param1();
+ init_param2(physmem);
+ mips_cpu_init();
+ pmap_bootstrap();
+ mips_proc0_init();
+ mutex_init();
+ kdb_init();
+#ifdef KDB
+ if (boothowto & RB_KDB)
+ kdb_enter(KDB_WHY_BOOTFLAGS, "Boot flags requested debugger");
+#endif
+}
+
+void
+platform_reset(void)
+{
+
+ mtk_soc_reset();
+}
+
+void
+platform_start(__register_t a0 __unused, __register_t a1 __unused,
+ __register_t a2 __unused, __register_t a3 __unused)
+{
+ vm_offset_t kernend;
+ int argc = a0, i;//, res;
+ uint32_t timer_clk;
+ char **argv = (char **)MIPS_PHYS_TO_KSEG0(a1);
+ char **envp = (char **)MIPS_PHYS_TO_KSEG0(a2);
+ void *dtbp;
+
+ /* clear the BSS and SBSS segments */
+ kernend = (vm_offset_t)&end;
+ memset(&edata, 0, kernend - (vm_offset_t)(&edata));
+
+ mips_postboot_fixup();
+
+ /* Initialize pcpu stuff */
+ mips_pcpu0_init();
+
+ dtbp = &fdt_static_dtb;
+ if (OF_install(OFW_FDT, 0) == FALSE)
+ while (1);
+ if (OF_init((void *)dtbp) != 0)
+ while (1);
+
+ mtk_soc_try_early_detect();
+ if ((timer_clk = mtk_soc_get_timerclk()) == 0)
+ timer_clk = 1000000000; /* no such speed yet */
+
+ mips_timer_early_init(timer_clk);
+
+ /* initialize console so that we have printf */
+ boothowto |= (RB_SERIAL | RB_MULTIPLE); /* Use multiple consoles */
+ boothowto |= (RB_VERBOSE);
+ cninit();
+
+ init_static_kenv(boot1_env, sizeof(boot1_env));
+
+ printf("FDT DTB at: 0x%08x\n", (uint32_t)dtbp);
+
+ printf("CPU clock: %4dMHz\n", mtk_soc_get_cpuclk()/(1000*1000));
+ printf("Timer clock: %4dMHz\n", timer_clk/(1000*1000));
+ printf("UART clock: %4dMHz\n\n", mtk_soc_get_uartclk()/(1000*1000));
+
+ printf("U-Boot args (from %d args):\n", argc - 1);
+
+ if (argc == 1)
+ printf("\tNone\n");
+
+ for (i = 1; i < argc; i++) {
+ char *n = "argv ", *arg;
+
+ if (i > 99)
+ break;
+
+ if (argv[i])
+ {
+ arg = (char *)(intptr_t)MIPS_PHYS_TO_KSEG0(argv[i]);
+ printf("\targv[%d] = %s\n", i, arg);
+ sprintf(n, "argv%d", i);
+ kern_setenv(n, arg);
+ }
+ }
+
+ printf("Environment:\n");
+
+ for (i = 0; envp[i] && MIPS_IS_VALID_PTR(envp[i]); i++) {
+ char *n, *arg;
+
+ arg = (char *)(intptr_t)MIPS_PHYS_TO_KSEG0(envp[i]);
+ if (! MIPS_IS_VALID_PTR(arg))
+ continue;
+ printf("\t%s\n", arg);
+ n = strsep(&arg, "=");
+ if (arg == NULL)
+ kern_setenv(n, "1");
+ else
+ kern_setenv(n, arg);
+ }
+
+
+ mips_init();
+ mips_timer_init_params(timer_clk, 0);
+}
diff --git a/sys/mips/mediatek/mtk_ohci.c b/sys/mips/mediatek/mtk_ohci.c
new file mode 100644
index 0000000..91c98ce
--- /dev/null
+++ b/sys/mips/mediatek/mtk_ohci.c
@@ -0,0 +1,223 @@
+#include <sys/cdefs.h>
+__FBSDID("$FreeBSD$");
+
+/*-
+ * Copyright (c) 2015 Stanislav Galabov. All rights reserved.
+ * Copyright (c) 2010,2011 Aleksandr Rybalko. All rights reserved.
+ * Copyright (c) 2007-2008 Hans Petter Selasky. 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 <sys/stdint.h>
+#include <sys/stddef.h>
+#include <sys/param.h>
+#include <sys/queue.h>
+#include <sys/types.h>
+#include <sys/systm.h>
+#include <sys/kernel.h>
+#include <sys/bus.h>
+#include <sys/module.h>
+#include <sys/lock.h>
+#include <sys/mutex.h>
+#include <sys/condvar.h>
+#include <sys/sysctl.h>
+#include <sys/sx.h>
+#include <sys/unistd.h>
+#include <sys/callout.h>
+#include <sys/malloc.h>
+#include <sys/priv.h>
+#include <sys/rman.h>
+
+#include <dev/usb/usb.h>
+#include <dev/usb/usbdi.h>
+
+#include <dev/usb/usb_core.h>
+#include <dev/usb/usb_busdma.h>
+#include <dev/usb/usb_process.h>
+#include <dev/usb/usb_util.h>
+
+#include <dev/usb/usb_controller.h>
+#include <dev/usb/usb_bus.h>
+
+#include <dev/usb/controller/ohci.h>
+
+#include <dev/ofw/openfirm.h>
+#include <dev/ofw/ofw_bus.h>
+#include <dev/ofw/ofw_bus_subr.h>
+
+#define OHCI_HC_DEVSTR "MTK USB Controller"
+
+static device_probe_t ohci_fdt_probe;
+static device_attach_t ohci_fdt_attach;
+static device_detach_t ohci_fdt_detach;
+
+static int
+ohci_fdt_probe(device_t self)
+{
+
+ if (!ofw_bus_status_okay(self))
+ return (ENXIO);
+
+ if (!ofw_bus_is_compatible(self, "ralink,rt3xxx-ohci"))
+ return (ENXIO);
+
+ device_set_desc(self, OHCI_HC_DEVSTR);
+
+ return (BUS_PROBE_DEFAULT);
+}
+
+static int
+ohci_fdt_attach(device_t self)
+{
+ ohci_softc_t *sc = device_get_softc(self);
+ int err;
+ int rid;
+
+ /* initialise some bus fields */
+ sc->sc_bus.parent = self;
+ sc->sc_bus.devices = sc->sc_devices;
+ sc->sc_bus.devices_max = OHCI_MAX_DEVICES;
+ sc->sc_bus.dma_bits = 32;
+
+ /* get all DMA memory */
+ if (usb_bus_mem_alloc_all(&sc->sc_bus,
+ USB_GET_DMA_TAG(self), &ohci_iterate_hw_softc)) {
+ printf("No mem\n");
+ return (ENOMEM);
+ }
+
+ rid = 0;
+ sc->sc_io_res = bus_alloc_resource_any(self, SYS_RES_MEMORY, &rid,
+ RF_ACTIVE);
+ if (!sc->sc_io_res) {
+ device_printf(self, "Could not map memory\n");
+ goto error;
+ }
+ sc->sc_io_tag = rman_get_bustag(sc->sc_io_res);
+ sc->sc_io_hdl = rman_get_bushandle(sc->sc_io_res);
+ sc->sc_io_size = rman_get_size(sc->sc_io_res);
+
+ rid = 0;
+ sc->sc_irq_res = bus_alloc_resource_any(self, SYS_RES_IRQ, &rid,
+ RF_SHAREABLE | RF_ACTIVE);
+ if (sc->sc_irq_res == NULL) {
+ device_printf(self, "Could not allocate irq\n");
+ goto error;
+ }
+
+ sc->sc_bus.bdev = device_add_child(self, "usbus", -1);
+ if (!(sc->sc_bus.bdev)) {
+ device_printf(self, "Could not add USB device\n");
+ goto error;
+ }
+ device_set_ivars(sc->sc_bus.bdev, &sc->sc_bus);
+ device_set_desc(sc->sc_bus.bdev, OHCI_HC_DEVSTR);
+
+ sprintf(sc->sc_vendor, "MediaTek");
+
+ err = bus_setup_intr(self, sc->sc_irq_res, INTR_TYPE_BIO | INTR_MPSAFE,
+ NULL, (driver_intr_t *)ohci_interrupt, sc, &sc->sc_intr_hdl);
+ if (err) {
+ device_printf(self, "Could not setup irq, %d\n", err);
+ sc->sc_intr_hdl = NULL;
+ goto error;
+ }
+
+ err = ohci_init(sc);
+ if (!err) {
+ err = device_probe_and_attach(sc->sc_bus.bdev);
+ }
+ if (err) {
+ device_printf(self, "USB init failed err=%d\n", err);
+ goto error;
+ }
+ return (0);
+
+error:
+ ohci_fdt_detach(self);
+ return (ENXIO);
+}
+
+static int
+ohci_fdt_detach(device_t self)
+{
+ ohci_softc_t *sc = device_get_softc(self);
+ device_t bdev;
+ int err;
+
+ if (sc->sc_bus.bdev) {
+ bdev = sc->sc_bus.bdev;
+ device_detach(bdev);
+ device_delete_child(self, bdev);
+ }
+ /* during module unload there are lots of children leftover */
+ device_delete_children(self);
+
+ if (sc->sc_irq_res && sc->sc_intr_hdl) {
+ /*
+ * only call ohci_detach() after ohci_init()
+ */
+ ohci_detach(sc);
+
+ err = bus_teardown_intr(self, sc->sc_irq_res, sc->sc_intr_hdl);
+ if (err)
+ device_printf(self, "Could not tear down irq, %d\n",
+ err);
+ sc->sc_intr_hdl = NULL;
+ }
+ if (sc->sc_irq_res) {
+ bus_release_resource(self, SYS_RES_IRQ, 0,
+ sc->sc_irq_res);
+ sc->sc_irq_res = NULL;
+ }
+ if (sc->sc_io_res) {
+ bus_release_resource(self, SYS_RES_MEMORY, 0,
+ sc->sc_io_res);
+ sc->sc_io_res = NULL;
+ }
+ usb_bus_mem_free_all(&sc->sc_bus, &ohci_iterate_hw_softc);
+
+ return (0);
+}
+
+static device_method_t ohci_fdt_methods[] = {
+ /* Device interface */
+ DEVMETHOD(device_probe, ohci_fdt_probe),
+ DEVMETHOD(device_attach, ohci_fdt_attach),
+ DEVMETHOD(device_detach, ohci_fdt_detach),
+ DEVMETHOD(device_suspend, bus_generic_suspend),
+ DEVMETHOD(device_resume, bus_generic_resume),
+ DEVMETHOD(device_shutdown, bus_generic_shutdown),
+
+ DEVMETHOD_END
+};
+
+static driver_t ohci_fdt_driver = {
+ .name = "ohci",
+ .methods = ohci_fdt_methods,
+ .size = sizeof(ohci_softc_t),
+};
+
+static devclass_t ohci_fdt_devclass;
+
+DRIVER_MODULE(ohci, simplebus, ohci_fdt_driver, ohci_fdt_devclass, 0, 0);
diff --git a/sys/mips/mediatek/mtk_pcie.c b/sys/mips/mediatek/mtk_pcie.c
new file mode 100644
index 0000000..a43d277
--- /dev/null
+++ b/sys/mips/mediatek/mtk_pcie.c
@@ -0,0 +1,1489 @@
+/*-
+ * Copyright (c) 2016 Stanislav Galabov.
+ *
+ * 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.
+ *
+ * The pci allocator parts are based on code from sys/dev/arm/mv/:
+ *
+ * Copyright (c) 2008 MARVELL INTERNATIONAL LTD.
+ * Copyright (c) 2010 The FreeBSD Foundation
+ * Copyright (c) 2010-2012 Semihalf
+ * All rights reserved.
+ *
+ * Developed by Semihalf.
+ */
+#include <sys/cdefs.h>
+__FBSDID("$FreeBSD$");
+
+#include <sys/param.h>
+#include <sys/systm.h>
+
+#include <sys/bus.h>
+#include <sys/interrupt.h>
+#include <sys/malloc.h>
+#include <sys/kernel.h>
+#include <sys/module.h>
+#include <sys/rman.h>
+#include <sys/lock.h>
+#include <sys/mutex.h>
+#include <sys/endian.h>
+
+#include <vm/vm.h>
+#include <vm/pmap.h>
+#include <vm/vm_extern.h>
+
+#include <machine/bus.h>
+#include <machine/cpu.h>
+#include <machine/intr.h>
+#include <machine/pmap.h>
+
+#include <dev/pci/pcivar.h>
+#include <dev/pci/pcireg.h>
+
+#include <dev/pci/pcib_private.h>
+
+#include <dev/fdt/fdt_common.h>
+#include <dev/fdt/fdt_clock.h>
+#include <dev/ofw/openfirm.h>
+#include <dev/ofw/ofw_bus.h>
+#include <dev/ofw/ofw_bus_subr.h>
+
+#include <mips/mediatek/mtk_pcie.h>
+#include <mips/mediatek/mtk_soc.h>
+#include <mips/mediatek/mtk_sysctl.h>
+#include <mips/mediatek/fdt_reset.h>
+
+#include "pcib_if.h"
+#include "pic_if.h"
+
+/*
+ * Note: We only support PCIe at the moment.
+ * Most SoCs in the Ralink/Mediatek family that we target actually don't
+ * support PCI anyway, with the notable exceptions being RT3662/RT3883, which
+ * support both PCI and PCIe. If there exists a board based on one of them
+ * which is of interest in the future it shouldn't be too hard to enable PCI
+ * support for it.
+ */
+
+/* Chip specific function declarations */
+static int mtk_pcie_phy_init(device_t);
+static int mtk_pcie_phy_start(device_t);
+static int mtk_pcie_phy_stop(device_t);
+static int mtk_pcie_phy_mt7621_init(device_t);
+static int mtk_pcie_phy_mt7628_init(device_t);
+static int mtk_pcie_phy_mt7620_init(device_t);
+static int mtk_pcie_phy_rt3883_init(device_t);
+static void mtk_pcie_phy_setup_slots(device_t);
+
+/* Generic declarations */
+struct mtx mtk_pci_mtx;
+MTX_SYSINIT(mtk_pci_mtx, &mtk_pci_mtx, "MTK PCIe mutex", MTX_SPIN);
+
+static int mtk_pcib_init(device_t, int, int);
+static int mtk_pci_intr(void *);
+
+static struct mtk_pci_softc *mt_sc = NULL;
+
+struct mtk_pci_range {
+ u_long base;
+ u_long len;
+};
+
+#define FDT_RANGES_CELLS (3 * 2)
+
+static void
+mtk_pci_range_dump(struct mtk_pci_range *range)
+{
+#ifdef DEBUG
+ printf("\n");
+ printf(" base = 0x%08lx\n", range->base);
+ printf(" len = 0x%08lx\n", range->len);
+#endif
+}
+
+static int
+mtk_pci_ranges_decode(phandle_t node, struct mtk_pci_range *io_space,
+ struct mtk_pci_range *mem_space)
+{
+ struct mtk_pci_range *pci_space;
+ pcell_t ranges[FDT_RANGES_CELLS];
+ pcell_t *rangesptr;
+ pcell_t cell0, cell1, cell2;
+ int tuples, i, rv, len;
+
+ /*
+ * Retrieve 'ranges' property.
+ */
+ if (!OF_hasprop(node, "ranges")) {
+ printf("%s: %d\n", __FUNCTION__, 1);
+ return (EINVAL);
+ }
+
+ len = OF_getproplen(node, "ranges");
+ if (len > sizeof(ranges)) {
+ printf("%s: %d\n", __FUNCTION__, 2);
+ return (ENOMEM);
+ }
+
+ if (OF_getprop(node, "ranges", ranges, sizeof(ranges)) <= 0) {
+ printf("%s: %d\n", __FUNCTION__, 3);
+ return (EINVAL);
+ }
+
+ tuples = len / (sizeof(pcell_t) * 3);
+
+ /*
+ * Initialize the ranges so that we don't have to worry about
+ * having them all defined in the FDT. In particular, it is
+ * perfectly fine not to want I/O space on PCI busses.
+ */
+ bzero(io_space, sizeof(*io_space));
+ bzero(mem_space, sizeof(*mem_space));
+
+ rangesptr = &ranges[0];
+ for (i = 0; i < tuples; i++) {
+ cell0 = fdt_data_get((void *)rangesptr, 1);
+ rangesptr++;
+ cell1 = fdt_data_get((void *)rangesptr, 1);
+ rangesptr++;
+ cell2 = fdt_data_get((void *)rangesptr, 1);
+ rangesptr++;
+
+ if (cell0 == 2) {
+ pci_space = mem_space;
+ } else if (cell0 == 1) {
+ pci_space = io_space;
+ } else {
+ rv = ERANGE;
+ printf("%s: %d\n", __FUNCTION__, 4);
+ goto out;
+ }
+
+ pci_space->base = cell1;
+ pci_space->len = cell2;
+ }
+
+ rv = 0;
+out:
+ return (rv);
+}
+
+static int
+mtk_pci_ranges(phandle_t node, struct mtk_pci_range *io_space,
+ struct mtk_pci_range *mem_space)
+{
+ int err;
+
+ if ((err = mtk_pci_ranges_decode(node, io_space, mem_space)) != 0) {
+ return (err);
+ }
+
+ mtk_pci_range_dump(io_space);
+ mtk_pci_range_dump(mem_space);
+
+ return (0);
+}
+
+static struct ofw_compat_data compat_data[] = {
+ { "ralink,rt3662-pcie", MTK_SOC_RT3883 },
+ { "ralink,rt3883-pcie", MTK_SOC_RT3883 },
+ { "ralink,mt7620a-pcie", MTK_SOC_MT7620A },
+ { "ralink,mt7621-pcie", MTK_SOC_MT7621 },
+ { "ralink,mt7628-pcie", MTK_SOC_MT7628 },
+ { "ralink,mt7688-pcie", MTK_SOC_MT7628 },
+ { NULL, MTK_SOC_UNKNOWN }
+};
+
+static int
+mtk_pci_probe(device_t dev)
+{
+ struct mtk_pci_softc *sc = device_get_softc(dev);
+
+ if (!ofw_bus_status_okay(dev))
+ return (ENXIO);
+
+ sc->socid = ofw_bus_search_compatible(dev, compat_data)->ocd_data;
+ if (sc->socid == MTK_SOC_UNKNOWN)
+ return (ENXIO);
+
+ device_set_desc(dev, "MTK PCIe Controller");
+
+ return (0);
+}
+
+static int
+mtk_pci_attach(device_t dev)
+{
+ struct mtk_pci_softc *sc = device_get_softc(dev);
+ struct mtk_pci_range io_space, mem_space;
+ phandle_t node;
+ intptr_t xref;
+ int i, rid;
+
+ sc->sc_dev = dev;
+ mt_sc = sc;
+ sc->addr_mask = 0xffffffff;
+
+ /* Request our memory */
+ rid = 0;
+ sc->pci_res[0] = bus_alloc_resource_any(dev, SYS_RES_MEMORY, &rid,
+ RF_ACTIVE);
+ if (sc->pci_res[0] == NULL) {
+ device_printf(dev, "could not allocate memory resource\n");
+ return (ENXIO);
+ }
+
+ /* See how many interrupts we need */
+ if (sc->socid == MTK_SOC_MT7621)
+ sc->sc_num_irq = 3;
+ else {
+ sc->sc_num_irq = 1;
+ sc->pci_res[2] = sc->pci_res[3] = NULL;
+ sc->pci_intrhand[1] = sc->pci_intrhand[2] = NULL;
+ }
+
+ /* Request our interrupts */
+ for (i = 1; i <= sc->sc_num_irq ; i++) {
+ rid = i - 1;
+ sc->pci_res[i] = bus_alloc_resource_any(dev, SYS_RES_IRQ, &rid,
+ RF_ACTIVE);
+ if (sc->pci_res[i] == NULL) {
+ device_printf(dev, "could not allocate interrupt "
+ "resource %d\n", rid);
+ goto cleanup_res;
+ }
+ }
+
+ /* Parse our PCI 'ranges' property */
+ node = ofw_bus_get_node(dev);
+ xref = OF_xref_from_node(node);
+ if (mtk_pci_ranges(node, &io_space, &mem_space)) {
+ device_printf(dev, "could not retrieve 'ranges' data\n");
+ goto cleanup_res;
+ }
+
+ /* Memory, I/O and IRQ resource limits */
+ sc->sc_io_base = io_space.base;
+ sc->sc_io_size = io_space.len;
+ sc->sc_mem_base = mem_space.base;
+ sc->sc_mem_size = mem_space.len;
+ sc->sc_irq_start = MTK_PCIE0_IRQ;
+ sc->sc_irq_end = MTK_PCIE2_IRQ;
+
+ /* Init resource managers for memory, I/O and IRQ */
+ sc->sc_mem_rman.rm_type = RMAN_ARRAY;
+ sc->sc_mem_rman.rm_descr = "mtk pcie memory window";
+ if (rman_init(&sc->sc_mem_rman) != 0 ||
+ rman_manage_region(&sc->sc_mem_rman, sc->sc_mem_base,
+ sc->sc_mem_base + sc->sc_mem_size - 1) != 0) {
+ device_printf(dev, "failed to setup memory rman\n");
+ goto cleanup_res;
+ }
+
+ sc->sc_io_rman.rm_type = RMAN_ARRAY;
+ sc->sc_io_rman.rm_descr = "mtk pcie io window";
+ if (rman_init(&sc->sc_io_rman) != 0 ||
+ rman_manage_region(&sc->sc_io_rman, sc->sc_io_base,
+ sc->sc_io_base + sc->sc_io_size - 1) != 0) {
+ device_printf(dev, "failed to setup io rman\n");
+ goto cleanup_res;
+ }
+
+ sc->sc_irq_rman.rm_type = RMAN_ARRAY;
+ sc->sc_irq_rman.rm_descr = "mtk pcie irqs";
+ if (rman_init(&sc->sc_irq_rman) != 0 ||
+ rman_manage_region(&sc->sc_irq_rman, sc->sc_irq_start,
+ sc->sc_irq_end) != 0) {
+ device_printf(dev, "failed to setup irq rman\n");
+ goto cleanup_res;
+ }
+
+ /* Do SoC-specific PCIe initialization */
+ if (mtk_pcie_phy_init(dev)) {
+ device_printf(dev, "pcie phy init failed\n");
+ goto cleanup_rman;
+ }
+
+ /* Register ourselves as an interrupt controller */
+ if (intr_pic_register(dev, xref) != 0) {
+ device_printf(dev, "could not register PIC\n");
+ goto cleanup_rman;
+ }
+
+ /* Set up our interrupt handler */
+ for (i = 1; i <= sc->sc_num_irq; i++) {
+ sc->pci_intrhand[i - 1] = NULL;
+ if (bus_setup_intr(dev, sc->pci_res[i], INTR_TYPE_MISC,
+ mtk_pci_intr, NULL, sc, &sc->pci_intrhand[i - 1])) {
+ device_printf(dev, "could not setup intr handler %d\n",
+ i);
+ goto cleanup;
+ }
+ }
+
+ /* Do generic PCIe initialization and resource allocation */
+ mtk_pcib_init(dev, 0, PCI_SLOTMAX);
+
+ /* Attach our PCI child so bus enumeration can start */
+ if (device_add_child(dev, "pci", -1) == NULL) {
+ device_printf(dev, "could not attach pci bus\n");
+ goto cleanup;
+ }
+
+ /* And finally, attach ourselves to the bus */
+ if (bus_generic_attach(dev)) {
+ device_printf(dev, "could not attach to bus\n");
+ goto cleanup;
+ }
+
+ return (0);
+
+cleanup:
+#ifdef notyet
+ intr_pic_unregister(dev, xref);
+#endif
+ for (i = 1; i <= sc->sc_num_irq; i++) {
+ if (sc->pci_intrhand[i - 1] != NULL)
+ bus_teardown_intr(dev, sc->pci_res[i],
+ sc->pci_intrhand[i - 1]);
+ }
+cleanup_rman:
+ mtk_pcie_phy_stop(dev);
+ rman_fini(&sc->sc_irq_rman);
+ rman_fini(&sc->sc_io_rman);
+ rman_fini(&sc->sc_mem_rman);
+cleanup_res:
+ mt_sc = NULL;
+ if (sc->pci_res[0] != NULL)
+ bus_release_resource(dev, SYS_RES_MEMORY, 0, sc->pci_res[0]);
+ if (sc->pci_res[1] != NULL)
+ bus_release_resource(dev, SYS_RES_IRQ, 0, sc->pci_res[1]);
+ if (sc->pci_res[2] != NULL)
+ bus_release_resource(dev, SYS_RES_IRQ, 1, sc->pci_res[2]);
+ if (sc->pci_res[3] != NULL)
+ bus_release_resource(dev, SYS_RES_IRQ, 2, sc->pci_res[3]);
+ return (ENXIO);
+}
+
+static int
+mtk_pci_read_ivar(device_t dev, device_t child, int which,
+ uintptr_t *result)
+{
+ struct mtk_pci_softc *sc = device_get_softc(dev);
+
+ switch (which) {
+ case PCIB_IVAR_DOMAIN:
+ *result = device_get_unit(dev);
+ return (0);
+ case PCIB_IVAR_BUS:
+ *result = sc->sc_busno;
+ return (0);
+ }
+
+ return (ENOENT);
+}
+
+static int
+mtk_pci_write_ivar(device_t dev, device_t child, int which,
+ uintptr_t result)
+{
+ struct mtk_pci_softc *sc = device_get_softc(dev);
+
+ switch (which) {
+ case PCIB_IVAR_BUS:
+ sc->sc_busno = result;
+ return (0);
+ }
+
+ return (ENOENT);
+}
+
+static struct resource *
+mtk_pci_alloc_resource(device_t bus, device_t child, int type, int *rid,
+ rman_res_t start, rman_res_t end, rman_res_t count, u_int flags)
+{
+ struct mtk_pci_softc *sc = device_get_softc(bus);
+ struct resource *rv;
+ struct rman *rm;
+
+ switch (type) {
+ case SYS_RES_IRQ:
+ rm = &sc->sc_irq_rman;
+ break;
+ case SYS_RES_IOPORT:
+ rm = &sc->sc_io_rman;
+ break;
+ case SYS_RES_MEMORY:
+ rm = &sc->sc_mem_rman;
+ break;
+ default:
+ return (NULL);
+ }
+
+ rv = rman_reserve_resource(rm, start, end, count, flags, child);
+
+ if (rv == NULL)
+ return (NULL);
+
+ rman_set_rid(rv, *rid);
+
+ if ((flags & RF_ACTIVE) && type != SYS_RES_IRQ) {
+ if (bus_activate_resource(child, type, *rid, rv)) {
+ rman_release_resource(rv);
+ return (NULL);
+ }
+ }
+
+ return (rv);
+}
+
+static inline int
+mtk_idx_to_irq(int idx)
+{
+
+ return ((idx == 0) ? MTK_PCIE0_IRQ :
+ (idx == 1) ? MTK_PCIE1_IRQ :
+ (idx == 2) ? MTK_PCIE2_IRQ : -1);
+}
+
+static inline int
+mtk_irq_to_idx(int irq)
+{
+
+ return ((irq == MTK_PCIE0_IRQ) ? 0 :
+ (irq == MTK_PCIE1_IRQ) ? 1 :
+ (irq == MTK_PCIE2_IRQ) ? 2 : -1);
+}
+
+static void
+mtk_pci_mask_irq(void *source)
+{
+ MT_WRITE32(mt_sc, MTK_PCI_PCIENA,
+ MT_READ32(mt_sc, MTK_PCI_PCIENA) & ~(1<<((int)source)));
+}
+
+static void
+mtk_pci_unmask_irq(void *source)
+{
+
+ MT_WRITE32(mt_sc, MTK_PCI_PCIENA,
+ MT_READ32(mt_sc, MTK_PCI_PCIENA) | (1<<((int)source)));
+}
+
+static int
+mtk_pci_setup_intr(device_t bus, device_t child, struct resource *ires,
+ int flags, driver_filter_t *filt, driver_intr_t *handler,
+ void *arg, void **cookiep)
+{
+ struct mtk_pci_softc *sc = device_get_softc(bus);
+ struct intr_event *event;
+ int irq, error, irqidx;
+
+ irq = rman_get_start(ires);
+
+ if (irq < sc->sc_irq_start || irq > sc->sc_irq_end)
+ return (EINVAL);
+
+ irqidx = irq - sc->sc_irq_start;
+
+ event = sc->sc_eventstab[irqidx];
+ if (event == NULL) {
+ error = intr_event_create(&event, (void *)irq, 0, irq,
+ mtk_pci_mask_irq, mtk_pci_unmask_irq, NULL, NULL,
+ "pci intr%d:", irq);
+
+ if (error == 0) {
+ sc->sc_eventstab[irqidx] = event;
+ }
+ else {
+ return (error);
+ }
+ }
+
+ intr_event_add_handler(event, device_get_nameunit(child), filt,
+ handler, arg, intr_priority(flags), flags, cookiep);
+
+ mtk_pci_unmask_irq((void*)irq);
+
+ return (0);
+}
+
+static int
+mtk_pci_teardown_intr(device_t dev, device_t child, struct resource *ires,
+ void *cookie)
+{
+ struct mtk_pci_softc *sc = device_get_softc(dev);
+ int irq, result, irqidx;
+
+ irq = rman_get_start(ires);
+ if (irq < sc->sc_irq_start || irq > sc->sc_irq_end)
+ return (EINVAL);
+
+ irqidx = irq - sc->sc_irq_start;
+ if (sc->sc_eventstab[irqidx] == NULL)
+ panic("Trying to teardown unoccupied IRQ");
+
+ mtk_pci_mask_irq((void*)irq);
+
+ result = intr_event_remove_handler(cookie);
+ if (!result)
+ sc->sc_eventstab[irqidx] = NULL;
+
+
+ return (result);
+}
+
+static inline uint32_t
+mtk_pci_make_addr(int bus, int slot, int func, int reg)
+{
+ uint32_t addr;
+
+ addr = ((((reg & 0xf00) >> 8) << 24) | (bus << 16) | (slot << 11) |
+ (func << 8) | (reg & 0xfc) | (1 << 31));
+
+ return (addr);
+}
+
+static int
+mtk_pci_maxslots(device_t dev)
+{
+
+ return (PCI_SLOTMAX);
+}
+
+static inline int
+mtk_pci_slot_has_link(device_t dev, int slot)
+{
+ struct mtk_pci_softc *sc = device_get_softc(dev);
+
+ return !!(sc->pcie_link_status & (1<<slot));
+}
+
+static uint32_t
+mtk_pci_read_config(device_t dev, u_int bus, u_int slot, u_int func,
+ u_int reg, int bytes)
+{
+ struct mtk_pci_softc *sc = device_get_softc(dev);
+ uint32_t addr = 0, data = 0;
+
+ /* Return ~0U if slot has no link */
+ if (bus == 0 && mtk_pci_slot_has_link(dev, slot) == 0) {
+ return (~0U);
+ }
+
+ mtx_lock_spin(&mtk_pci_mtx);
+ addr = mtk_pci_make_addr(bus, slot, func, (reg & ~3)) & sc->addr_mask;
+ MT_WRITE32(sc, MTK_PCI_CFGADDR, addr);
+ switch (bytes % 4) {
+ case 0:
+ data = MT_READ32(sc, MTK_PCI_CFGDATA);
+ break;
+ case 1:
+ data = MT_READ8(sc, MTK_PCI_CFGDATA + (reg & 0x3));
+ break;
+ case 2:
+ data = MT_READ16(sc, MTK_PCI_CFGDATA + (reg & 0x3));
+ break;
+ default:
+ panic("%s(): Wrong number of bytes (%d) requested!\n",
+ __FUNCTION__, bytes % 4);
+ }
+ mtx_unlock_spin(&mtk_pci_mtx);
+
+ return (data);
+}
+
+static void
+mtk_pci_write_config(device_t dev, u_int bus, u_int slot, u_int func,
+ u_int reg, uint32_t val, int bytes)
+{
+ struct mtk_pci_softc *sc = device_get_softc(dev);
+ uint32_t addr = 0, data = val;
+
+ /* Do not write if slot has no link */
+ if (bus == 0 && mtk_pci_slot_has_link(dev, slot) == 0)
+ return;
+
+ mtx_lock_spin(&mtk_pci_mtx);
+ addr = mtk_pci_make_addr(bus, slot, func, (reg & ~3)) & sc->addr_mask;
+ MT_WRITE32(sc, MTK_PCI_CFGADDR, addr);
+ switch (bytes % 4) {
+ case 0:
+ MT_WRITE32(sc, MTK_PCI_CFGDATA, data);
+ break;
+ case 1:
+ MT_WRITE8(sc, MTK_PCI_CFGDATA + (reg & 0x3), data);
+ break;
+ case 2:
+ MT_WRITE16(sc, MTK_PCI_CFGDATA + (reg & 0x3), data);
+ break;
+ default:
+ panic("%s(): Wrong number of bytes (%d) requested!\n",
+ __FUNCTION__, bytes % 4);
+ }
+ mtx_unlock_spin(&mtk_pci_mtx);
+}
+
+#if 0
+/* We take care of interrupt routing in the allocator code below */
+static int
+mtk_pci_route_interrupt(device_t pcib, device_t device, int pin)
+{
+ //struct mtk_pci_softc *sc = device_get_softc(pcib);
+ int bus, sl, dev;
+
+ if (1) return PCI_INVALID_IRQ;
+
+ bus = pci_get_bus(device);
+ sl = pci_get_slot(device);
+ dev = pci_get_device(device);
+
+ printf("%s: for %d:%d:%d, int = %d\n", __FUNCTION__, bus, sl, dev, pin);
+
+ if (bus != 0)
+ panic("Unexpected bus number %d\n", bus);
+
+ /* PCIe only */
+ switch (sl) {
+ case 0: return MTK_PCIE0_IRQ;
+ case 1: return MTK_PCIE0_IRQ + 1;
+ case 2: return MTK_PCIE0_IRQ + 2;
+ default: return (-1);
+ }
+
+ return (-1);
+}
+#endif
+
+static device_method_t mtk_pci_methods[] = {
+ /* Device interface */
+ DEVMETHOD(device_probe, mtk_pci_probe),
+ DEVMETHOD(device_attach, mtk_pci_attach),
+ DEVMETHOD(device_shutdown, bus_generic_shutdown),
+ DEVMETHOD(device_suspend, bus_generic_suspend),
+ DEVMETHOD(device_resume, bus_generic_resume),
+
+ /* Bus interface */
+ DEVMETHOD(bus_read_ivar, mtk_pci_read_ivar),
+ DEVMETHOD(bus_write_ivar, mtk_pci_write_ivar),
+ DEVMETHOD(bus_alloc_resource, mtk_pci_alloc_resource),
+ DEVMETHOD(bus_release_resource, bus_generic_release_resource),
+ DEVMETHOD(bus_activate_resource, bus_generic_activate_resource),
+ DEVMETHOD(bus_deactivate_resource, bus_generic_deactivate_resource),
+ DEVMETHOD(bus_setup_intr, mtk_pci_setup_intr),
+ DEVMETHOD(bus_teardown_intr, mtk_pci_teardown_intr),
+
+ /* pcib interface */
+ DEVMETHOD(pcib_maxslots, mtk_pci_maxslots),
+ DEVMETHOD(pcib_read_config, mtk_pci_read_config),
+ DEVMETHOD(pcib_write_config, mtk_pci_write_config),
+#if 0
+ DEVMETHOD(pcib_route_interrupt, mtk_pci_route_interrupt),
+#endif
+
+ DEVMETHOD_END
+};
+
+static driver_t mtk_pci_driver = {
+ "pcib",
+ mtk_pci_methods,
+ sizeof(struct mtk_pci_softc),
+};
+
+static devclass_t mtk_pci_devclass;
+
+DRIVER_MODULE(mtk_pci, simplebus, mtk_pci_driver, mtk_pci_devclass, 0, 0);
+
+/* Resource allocation code */
+static inline uint32_t
+pcib_bit_get(uint32_t *map, uint32_t bit)
+{
+ uint32_t n = bit / BITS_PER_UINT32;
+
+ bit = bit % BITS_PER_UINT32;
+ return (map[n] & (1 << bit));
+}
+
+static inline void
+pcib_bit_set(uint32_t *map, uint32_t bit)
+{
+ uint32_t n = bit / BITS_PER_UINT32;
+
+ bit = bit % BITS_PER_UINT32;
+ map[n] |= (1 << bit);
+}
+
+static inline uint32_t
+pcib_map_check(uint32_t *map, uint32_t start, uint32_t bits)
+{
+ uint32_t i;
+
+ for (i = start; i < start + bits; i++)
+ if (pcib_bit_get(map, i))
+ return (0);
+
+ return (1);
+}
+
+static inline void
+pcib_map_set(uint32_t *map, uint32_t start, uint32_t bits)
+{
+ uint32_t i;
+
+ for (i = start; i < start + bits; i++)
+ pcib_bit_set(map, i);
+}
+
+static bus_addr_t
+pcib_alloc(device_t dev, uint32_t smask)
+{
+ struct mtk_pci_softc *sc = device_get_softc(dev);
+ uint32_t bits, bits_limit, i, *map, min_alloc, size;
+ bus_addr_t addr = 0;
+ bus_addr_t base;
+
+ if (smask & 1) {
+ base = sc->sc_io_base;
+ min_alloc = PCI_MIN_IO_ALLOC;
+ bits_limit = sc->sc_io_size / min_alloc;
+ map = sc->sc_io_map;
+ smask &= ~0x3;
+ } else {
+ base = sc->sc_mem_base;
+ min_alloc = PCI_MIN_MEM_ALLOC;
+ bits_limit = sc->sc_mem_size / min_alloc;
+ map = sc->sc_mem_map;
+ smask &= ~0xF;
+ }
+
+ size = ~smask + 1;
+ bits = size / min_alloc;
+
+ for (i = 0; i + bits <= bits_limit; i+= bits)
+ if (pcib_map_check(map, i, bits)) {
+ pcib_map_set(map, i, bits);
+ addr = base + (i * min_alloc);
+ return (addr);
+ }
+
+ return (addr);
+}
+
+static int
+mtk_pcib_init_bar(device_t dev, int bus, int slot, int func, int barno)
+{
+ uint32_t addr, bar;
+ int reg, width;
+
+ reg = PCIR_BAR(barno);
+
+ mtk_pci_write_config(dev, bus, slot, func, reg, ~0, 4);
+ bar = mtk_pci_read_config(dev, bus, slot, func, reg, 4);
+ if (bar == 0)
+ return (1);
+
+ /* Calculate BAR size: 64 or 32 bit (in 32-bit units) */
+ width = ((bar & 7) == 4) ? 2 : 1;
+
+ addr = pcib_alloc(dev, bar);
+ if (!addr)
+ return (-1);
+
+ if (bootverbose)
+ printf("PCI %u:%u:%u: reg %x: smask=%08x: addr=%08x\n",
+ bus, slot, func, reg, bar, addr);
+
+ mtk_pci_write_config(dev, bus, slot, func, reg, addr, 4);
+ if (width == 2)
+ mtk_pci_write_config(dev, bus, slot, func, reg + 4, 0, 4);
+
+ return (width);
+}
+
+static int
+mtk_pcib_init_all_bars(device_t dev, int bus, int slot, int func,
+ int hdrtype)
+{
+ int maxbar, bar, i;
+
+ maxbar = (hdrtype & PCIM_HDRTYPE) ? 0 : 6;
+ bar = 0;
+
+ while (bar < maxbar) {
+ i = mtk_pcib_init_bar(dev, bus, slot, func, bar);
+ bar += i;
+ if (i < 0) {
+ device_printf(dev, "PCI IO/Memory space exhausted\n");
+ return (ENOMEM);
+ }
+ }
+
+ return (0);
+}
+
+static void
+mtk_pcib_init_bridge(device_t dev, int bus, int slot, int func)
+{
+ struct mtk_pci_softc *sc = device_get_softc(dev);
+ bus_addr_t io_base, mem_base;
+ uint32_t io_limit, mem_limit;
+ int secbus;
+
+ if (bus == 0 && !mtk_pci_slot_has_link(dev, slot)) {
+ sc->sc_cur_secbus++;
+ device_printf(dev, "Skip bus %d due to no link\n",
+ sc->sc_cur_secbus);
+ return;
+ }
+
+ io_base = sc->sc_io_base;
+ io_limit = io_base + sc->sc_io_size - 1;
+ mem_base = sc->sc_mem_base;
+ mem_limit = mem_base + sc->sc_mem_size - 1;
+
+ mtk_pci_write_config(dev, bus, slot, func, PCIR_IOBASEL_1,
+ io_base >> 8, 1);
+ mtk_pci_write_config(dev, bus, slot, func, PCIR_IOBASEH_1,
+ io_base >> 16, 2);
+ mtk_pci_write_config(dev, bus, slot, func, PCIR_IOLIMITL_1,
+ io_limit >> 8, 1);
+ mtk_pci_write_config(dev, bus, slot, func, PCIR_IOLIMITH_1,
+ io_limit >> 16, 2);
+
+ mtk_pci_write_config(dev, bus, slot, func, PCIR_MEMBASE_1,
+ mem_base >> 16, 2);
+ mtk_pci_write_config(dev, bus, slot, func, PCIR_MEMLIMIT_1,
+ mem_limit >> 16, 2);
+
+ mtk_pci_write_config(dev, bus, slot, func, PCIR_PMBASEL_1,
+ 0x10, 2);
+ mtk_pci_write_config(dev, bus, slot, func, PCIR_PMBASEH_1,
+ 0x0, 4);
+ mtk_pci_write_config(dev, bus, slot, func, PCIR_PMLIMITL_1,
+ 0xF, 2);
+ mtk_pci_write_config(dev, bus, slot, func, PCIR_PMLIMITH_1,
+ 0x0, 4);
+
+ mtk_pci_write_config(dev, bus, slot, func, PCIR_INTLINE, 0xff, 1);
+
+ secbus = mtk_pci_read_config(dev, bus, slot, func, PCIR_SECBUS_1, 1);
+
+ if (secbus == 0) {
+ sc->sc_cur_secbus++;
+ mtk_pci_write_config(dev, bus, slot, func, PCIR_SECBUS_1,
+ sc->sc_cur_secbus, 1);
+ mtk_pci_write_config(dev, bus, slot, func, PCIR_SUBBUS_1,
+ sc->sc_cur_secbus, 1);
+ secbus = sc->sc_cur_secbus;
+ }
+
+ mtk_pcib_init(dev, secbus, PCI_SLOTMAX);
+}
+
+static uint8_t
+mtk_pci_get_int(device_t dev, int bus, int slot)
+{
+
+ if (slot != 0)
+ return (PCI_INVALID_IRQ);
+
+ switch (bus) {
+ case 1:
+ return (MTK_PCIE0_IRQ);
+ case 2:
+ return (MTK_PCIE1_IRQ);
+ case 3:
+ return (MTK_PCIE2_IRQ);
+ default:
+ device_printf(dev, "Bus %d out of range\n", slot);
+ return (PCI_INVALID_IRQ);
+ }
+
+ /* Unreachable */
+ return (PCI_INVALID_IRQ);
+}
+
+static int
+mtk_pcib_init(device_t dev, int bus, int maxslot)
+{
+ int slot, func, maxfunc, error;
+ uint8_t hdrtype, command, class, subclass;
+
+ for (slot = 0; slot <= maxslot; slot++) {
+ maxfunc = 0;
+ for (func = 0; func <= maxfunc; func++) {
+ hdrtype = mtk_pci_read_config(dev, bus, slot, func,
+ PCIR_HDRTYPE, 1);
+
+ if ((hdrtype & PCIM_HDRTYPE) > PCI_MAXHDRTYPE)
+ continue;
+
+ if (func == 0 && (hdrtype & PCIM_MFDEV))
+ maxfunc = PCI_FUNCMAX;
+
+ command = mtk_pci_read_config(dev, bus, slot, func,
+ PCIR_COMMAND, 1);
+ command &= ~(PCIM_CMD_MEMEN | PCIM_CMD_PORTEN);
+ mtk_pci_write_config(dev, bus, slot, func,
+ PCIR_COMMAND, command, 1);
+
+ error = mtk_pcib_init_all_bars(dev, bus, slot, func,
+ hdrtype);
+
+ if (error)
+ return (error);
+
+ command |= PCIM_CMD_BUSMASTEREN | PCIM_CMD_MEMEN |
+ PCIM_CMD_PORTEN;
+ mtk_pci_write_config(dev, bus, slot, func,
+ PCIR_COMMAND, command, 1);
+
+ mtk_pci_write_config(dev, bus, slot, func,
+ PCIR_CACHELNSZ, 16, 1);
+
+ class = mtk_pci_read_config(dev, bus, slot, func,
+ PCIR_CLASS, 1);
+ subclass = mtk_pci_read_config(dev, bus, slot, func,
+ PCIR_SUBCLASS, 1);
+
+ if (class != PCIC_BRIDGE ||
+ subclass != PCIS_BRIDGE_PCI) {
+ uint8_t val;
+
+ val = mtk_pci_get_int(dev, bus, slot);
+
+ mtk_pci_write_config(dev, bus, slot, func,
+ PCIR_INTLINE, val, 1); /* XXX */
+ continue;
+ }
+
+ mtk_pcib_init_bridge(dev, bus, slot, func);
+ }
+ }
+
+ return (0);
+}
+
+/* Our interrupt handler */
+static int
+mtk_pci_intr(void *arg)
+{
+ struct mtk_pci_softc *sc = arg;
+ struct intr_event *event;
+ uint32_t reg, irq, irqidx;
+
+ reg = MT_READ32(sc, MTK_PCI_PCIINT);
+
+ for (irq = sc->sc_irq_start; irq <= sc->sc_irq_end; irq++) {
+ if (reg & (1u<<irq)) {
+ irqidx = irq - sc->sc_irq_start;
+ event = sc->sc_eventstab[irqidx];
+ if (!event || TAILQ_EMPTY(&event->ie_handlers)) {
+ if (irq != 0)
+ printf("Stray PCI IRQ %d\n", irq);
+ continue;
+ }
+
+ intr_event_handle(event, NULL);
+ }
+ }
+
+ return (FILTER_HANDLED);
+}
+
+/* PCIe SoC-specific initialization */
+static int
+mtk_pcie_phy_init(device_t dev)
+{
+ struct mtk_pci_softc *sc;
+
+ /* Get our softc */
+ sc = device_get_softc(dev);
+
+ /* We don't know how many slots we have yet */
+ sc->num_slots = 0;
+
+ /* Handle SoC specific PCIe init */
+ switch (sc->socid) {
+ case MTK_SOC_MT7628: /* Fallthrough */
+ case MTK_SOC_MT7688:
+ if (mtk_pcie_phy_mt7628_init(dev))
+ return (ENXIO);
+ break;
+ case MTK_SOC_MT7621:
+ if (mtk_pcie_phy_mt7621_init(dev))
+ return (ENXIO);
+ break;
+ case MTK_SOC_MT7620A:
+ if (mtk_pcie_phy_mt7620_init(dev))
+ return (ENXIO);
+ break;
+ case MTK_SOC_RT3662: /* Fallthrough */
+ case MTK_SOC_RT3883:
+ if (mtk_pcie_phy_rt3883_init(dev))
+ return (ENXIO);
+ break;
+ default:
+ device_printf(dev, "unsupported device %x\n", sc->socid);
+ return (ENXIO);
+ }
+
+ /*
+ * If we were successful so far go and set up the PCIe slots, so we
+ * may allocate mem/io/irq resources and enumerate busses later.
+ */
+ mtk_pcie_phy_setup_slots(dev);
+
+ return (0);
+}
+
+static int
+mtk_pcie_phy_start(device_t dev)
+{
+ struct mtk_pci_softc *sc = device_get_softc(dev);
+
+ if (sc->socid == MTK_SOC_MT7621 &&
+ (mtk_sysctl_get(SYSCTL_REVID) & SYSCTL_REVID_MASK) !=
+ SYSCTL_MT7621_REV_E) {
+ if (fdt_reset_assert_all(dev))
+ return (ENXIO);
+ } else {
+ if (fdt_reset_deassert_all(dev))
+ return (ENXIO);
+ }
+
+ if (fdt_clock_enable_all(dev))
+ return (ENXIO);
+
+ return (0);
+}
+
+static int
+mtk_pcie_phy_stop(device_t dev)
+{
+ struct mtk_pci_softc *sc = device_get_softc(dev);
+
+ if (sc->socid == MTK_SOC_MT7621 &&
+ (mtk_sysctl_get(SYSCTL_REVID) & SYSCTL_REVID_MASK) !=
+ SYSCTL_MT7621_REV_E) {
+ if (fdt_reset_deassert_all(dev))
+ return (ENXIO);
+ } else {
+ if (fdt_reset_assert_all(dev))
+ return (ENXIO);
+ }
+
+ if (fdt_clock_disable_all(dev))
+ return (ENXIO);
+
+ return (0);
+}
+
+#define mtk_pcie_phy_set(_sc, _reg, _s, _n, _v) \
+ MT_WRITE32((_sc), (_reg), ((MT_READ32((_sc), (_reg)) & \
+ (~(((1ull << (_n)) - 1) << (_s)))) | ((_v) << (_s))))
+
+static void
+mtk_pcie_phy_mt7621_bypass_pipe_rst(struct mtk_pci_softc *sc, uint32_t off)
+{
+
+ mtk_pcie_phy_set(sc, off + 0x002c, 12, 1, 1);
+ mtk_pcie_phy_set(sc, off + 0x002c, 4, 1, 1);
+ mtk_pcie_phy_set(sc, off + 0x012c, 12, 1, 1);
+ mtk_pcie_phy_set(sc, off + 0x012c, 4, 1, 1);
+ mtk_pcie_phy_set(sc, off + 0x102c, 12, 1, 1);
+ mtk_pcie_phy_set(sc, off + 0x102c, 4, 1, 1);
+}
+
+static void
+mtk_pcie_phy_mt7621_setup_ssc(struct mtk_pci_softc *sc, uint32_t off)
+{
+ uint32_t xtal_sel;
+
+ xtal_sel = mtk_sysctl_get(SYSCTL_SYSCFG) >> 6;
+ xtal_sel &= 0x7;
+
+ mtk_pcie_phy_set(sc, off + 0x400, 8, 1, 1);
+ mtk_pcie_phy_set(sc, off + 0x400, 9, 2, 0);
+ mtk_pcie_phy_set(sc, off + 0x000, 4, 1, 1);
+ mtk_pcie_phy_set(sc, off + 0x100, 4, 1, 1);
+ mtk_pcie_phy_set(sc, off + 0x000, 5, 1, 0);
+ mtk_pcie_phy_set(sc, off + 0x100, 5, 1, 0);
+
+ if (xtal_sel <= 5 && xtal_sel >= 3) {
+ mtk_pcie_phy_set(sc, off + 0x490, 6, 2, 1);
+ mtk_pcie_phy_set(sc, off + 0x4a8, 0, 12, 0x1a);
+ mtk_pcie_phy_set(sc, off + 0x4a8, 16, 12, 0x1a);
+ } else {
+ mtk_pcie_phy_set(sc, off + 0x490, 6, 2, 0);
+ if (xtal_sel >= 6) {
+ mtk_pcie_phy_set(sc, off + 0x4bc, 4, 2, 0x01);
+ mtk_pcie_phy_set(sc, off + 0x49c, 0, 31, 0x18000000);
+ mtk_pcie_phy_set(sc, off + 0x4a4, 0, 16, 0x18d);
+ mtk_pcie_phy_set(sc, off + 0x4a8, 0, 12, 0x4a);
+ mtk_pcie_phy_set(sc, off + 0x4a8, 16, 12, 0x4a);
+ mtk_pcie_phy_set(sc, off + 0x4a8, 0, 12, 0x11);
+ mtk_pcie_phy_set(sc, off + 0x4a8, 16, 12, 0x11);
+ } else {
+ mtk_pcie_phy_set(sc, off + 0x4a8, 0, 12, 0x1a);
+ mtk_pcie_phy_set(sc, off + 0x4a8, 16, 12, 0x1a);
+ }
+ }
+
+ mtk_pcie_phy_set(sc, off + 0x4a0, 5, 1, 1);
+ mtk_pcie_phy_set(sc, off + 0x490, 22, 2, 2);
+ mtk_pcie_phy_set(sc, off + 0x490, 18, 4, 6);
+ mtk_pcie_phy_set(sc, off + 0x490, 12, 4, 2);
+ mtk_pcie_phy_set(sc, off + 0x490, 8, 4, 1);
+ mtk_pcie_phy_set(sc, off + 0x4ac, 16, 3, 0);
+ mtk_pcie_phy_set(sc, off + 0x490, 1, 3, 2);
+
+ if (xtal_sel <= 5 && xtal_sel >= 3) {
+ mtk_pcie_phy_set(sc, off + 0x414, 6, 2, 1);
+ mtk_pcie_phy_set(sc, off + 0x414, 5, 1, 1);
+ }
+
+ mtk_pcie_phy_set(sc, off + 0x414, 28, 2, 1);
+ mtk_pcie_phy_set(sc, off + 0x040, 17, 4, 7);
+ mtk_pcie_phy_set(sc, off + 0x040, 16, 1, 1);
+ mtk_pcie_phy_set(sc, off + 0x140, 17, 4, 7);
+ mtk_pcie_phy_set(sc, off + 0x140, 16, 1, 1);
+
+ mtk_pcie_phy_set(sc, off + 0x000, 5, 1, 1);
+ mtk_pcie_phy_set(sc, off + 0x100, 5, 1, 1);
+ mtk_pcie_phy_set(sc, off + 0x000, 4, 1, 0);
+ mtk_pcie_phy_set(sc, off + 0x100, 4, 1, 0);
+}
+
+/* XXX: ugly, we need to fix this at some point */
+#define MT7621_GPIO_CTRL0 *((volatile uint32_t *)0xbe000600)
+#define MT7621_GPIO_DATA0 *((volatile uint32_t *)0xbe000620)
+
+#define mtk_gpio_clr_set(_reg, _clr, _set) \
+ do { \
+ (_reg) = ((_reg) & (_clr)) | (_set); \
+ } while (0)
+
+static int
+mtk_pcie_phy_mt7621_init(device_t dev)
+{
+ struct mtk_pci_softc *sc = device_get_softc(dev);
+
+ /* First off, stop the PHY */
+ if (mtk_pcie_phy_stop(dev))
+ return (ENXIO);
+
+ /* PCIe resets are GPIO pins */
+ mtk_sysctl_clr_set(SYSCTL_GPIOMODE, MT7621_PERST_GPIO_MODE |
+ MT7621_UARTL3_GPIO_MODE, MT7621_PERST_GPIO | MT7621_UARTL3_GPIO);
+
+ /* Set GPIO pins as outputs */
+ mtk_gpio_clr_set(MT7621_GPIO_CTRL0, 0, MT7621_PCIE_RST);
+
+ /* Assert resets to PCIe devices */
+ mtk_gpio_clr_set(MT7621_GPIO_DATA0, MT7621_PCIE_RST, 0);
+
+ /* Give everything a chance to sink in */
+ DELAY(100000);
+
+ /* Now start the PHY again */
+ if (mtk_pcie_phy_start(dev))
+ return (ENXIO);
+
+ /* Wait for things to settle */
+ DELAY(100000);
+
+ /* Only apply below to REV-E hardware */
+ if ((mtk_sysctl_get(SYSCTL_REVID) & SYSCTL_REVID_MASK) ==
+ SYSCTL_MT7621_REV_E)
+ mtk_pcie_phy_mt7621_bypass_pipe_rst(sc, 0x9000);
+
+ /* Setup PCIe ports 0 and 1 */
+ mtk_pcie_phy_mt7621_setup_ssc(sc, 0x9000);
+ /* Setup PCIe port 2 */
+ mtk_pcie_phy_mt7621_setup_ssc(sc, 0xa000);
+
+ /* Deassert resets to PCIe devices */
+ mtk_gpio_clr_set(MT7621_GPIO_DATA0, 0, MT7621_PCIE_RST);
+
+ /* Set number of slots supported */
+ sc->num_slots = 3;
+
+ /* Give it a chance to sink in */
+ DELAY(100000);
+
+ return (0);
+}
+
+static void
+mtk_pcie_phy_mt7628_setup(struct mtk_pci_softc *sc, uint32_t off)
+{
+ uint32_t xtal_sel;
+
+ xtal_sel = mtk_sysctl_get(SYSCTL_SYSCFG) >> 6;
+ xtal_sel &= 0x1;
+
+ mtk_pcie_phy_set(sc, off + 0x400, 8, 1, 1);
+ mtk_pcie_phy_set(sc, off + 0x400, 9, 2, 0);
+ mtk_pcie_phy_set(sc, off + 0x000, 4, 1, 1);
+ mtk_pcie_phy_set(sc, off + 0x000, 5, 1, 0);
+ mtk_pcie_phy_set(sc, off + 0x4ac, 16, 3, 3);
+
+ if (xtal_sel == 1) {
+ mtk_pcie_phy_set(sc, off + 0x4bc, 24, 8, 0x7d);
+ mtk_pcie_phy_set(sc, off + 0x490, 12, 4, 0x08);
+ mtk_pcie_phy_set(sc, off + 0x490, 6, 2, 0x01);
+ mtk_pcie_phy_set(sc, off + 0x4c0, 0, 32, 0x1f400000);
+ mtk_pcie_phy_set(sc, off + 0x4a4, 0, 16, 0x013d);
+ mtk_pcie_phy_set(sc, off + 0x4a8, 16, 16, 0x74);
+ mtk_pcie_phy_set(sc, off + 0x4a8, 0, 16, 0x74);
+ } else {
+ mtk_pcie_phy_set(sc, off + 0x4bc, 24, 8, 0x64);
+ mtk_pcie_phy_set(sc, off + 0x490, 12, 4, 0x0a);
+ mtk_pcie_phy_set(sc, off + 0x490, 6, 2, 0x00);
+ mtk_pcie_phy_set(sc, off + 0x4c0, 0, 32, 0x19000000);
+ mtk_pcie_phy_set(sc, off + 0x4a4, 0, 16, 0x018d);
+ mtk_pcie_phy_set(sc, off + 0x4a8, 16, 16, 0x4a);
+ mtk_pcie_phy_set(sc, off + 0x4a8, 0, 16, 0x4a);
+ }
+
+ mtk_pcie_phy_set(sc, off + 0x498, 0, 8, 5);
+ mtk_pcie_phy_set(sc, off + 0x000, 5, 1, 1);
+ mtk_pcie_phy_set(sc, off + 0x000, 4, 1, 0);
+}
+
+static int
+mtk_pcie_phy_mt7628_init(device_t dev)
+{
+ struct mtk_pci_softc *sc = device_get_softc(dev);
+
+ /* Set PCIe reset to normal mode */
+ mtk_sysctl_clr_set(SYSCTL_GPIOMODE, MT7628_PERST_GPIO_MODE,
+ MT7628_PERST);
+
+ /* Start the PHY */
+ if (mtk_pcie_phy_start(dev))
+ return (ENXIO);
+
+ /* Give it a chance to sink in */
+ DELAY(100000);
+
+ /* Setup the PHY */
+ mtk_pcie_phy_mt7628_setup(sc, 0x9000);
+
+ /* Deassert PCIe device reset */
+ MT_CLR_SET32(sc, MTK_PCI_PCICFG, MTK_PCI_RESET, 0);
+
+ /* Set number of slots supported */
+ sc->num_slots = 1;
+
+ return (0);
+}
+
+static int
+mtk_pcie_phy_mt7620_wait_busy(struct mtk_pci_softc *sc)
+{
+ uint32_t reg_value, retry;
+
+ reg_value = retry = 0;
+
+ while (retry++ < MT7620_MAX_RETRIES) {
+ reg_value = MT_READ32(sc, MT7620_PCIE_PHY_CFG);
+ if (reg_value & PHY_BUSY)
+ DELAY(100000);
+ else
+ break;
+ }
+
+ if (retry >= MT7620_MAX_RETRIES)
+ return (ENXIO);
+
+ return (0);
+}
+
+static int
+mtk_pcie_phy_mt7620_set(struct mtk_pci_softc *sc, uint32_t reg,
+ uint32_t val)
+{
+ uint32_t reg_val;
+
+ if (mtk_pcie_phy_mt7620_wait_busy(sc))
+ return (ENXIO);
+
+ reg_val = PHY_MODE_WRITE | ((reg & 0xff) << PHY_ADDR_OFFSET) |
+ (val & 0xff);
+ MT_WRITE32(sc, MT7620_PCIE_PHY_CFG, reg_val);
+ DELAY(1000);
+
+ if (mtk_pcie_phy_mt7620_wait_busy(sc))
+ return (ENXIO);
+
+ return (0);
+}
+
+static int
+mtk_pcie_phy_mt7620_init(device_t dev)
+{
+ struct mtk_pci_softc *sc = device_get_softc(dev);
+
+ /*
+ * The below sets the PCIe PHY to bypass the PCIe DLL and enables
+ * "elastic buffer control", whatever that may be...
+ */
+ if (mtk_pcie_phy_mt7620_set(sc, 0x00, 0x80) ||
+ mtk_pcie_phy_mt7620_set(sc, 0x01, 0x04) ||
+ mtk_pcie_phy_mt7620_set(sc, 0x68, 0x84))
+ return (ENXIO);
+
+ /* Stop PCIe */
+ if (mtk_pcie_phy_stop(dev))
+ return (ENXIO);
+
+ /* Restore PPLL to a sane state before going on */
+ mtk_sysctl_clr_set(MT7620_PPLL_DRV, LC_CKDRVPD, PDRV_SW_SET);
+
+ /* No PCIe on the MT7620N */
+ if (!(mtk_sysctl_get(SYSCTL_REVID) & MT7620_PKG_BGA)) {
+ device_printf(dev, "PCIe disabled for MT7620N\n");
+ mtk_sysctl_clr_set(MT7620_PPLL_CFG0, 0, PPLL_SW_SET);
+ mtk_sysctl_clr_set(MT7620_PPLL_CFG1, 0, PPLL_PD);
+ return (ENXIO);
+ }
+
+ /* PCIe device reset pin is in normal mode */
+ mtk_sysctl_clr_set(SYSCTL_GPIOMODE, MT7620_PERST_GPIO_MODE,
+ MT7620_PERST);
+
+ /* Enable PCIe now */
+ if (mtk_pcie_phy_start(dev))
+ return (ENXIO);
+
+ /* Give it a chance to sink in */
+ DELAY(100000);
+
+ /* If PLL is not locked - bail */
+ if (!(mtk_sysctl_get(MT7620_PPLL_CFG1) & PPLL_LOCKED)) {
+ device_printf(dev, "no PPLL not lock\n");
+ mtk_pcie_phy_stop(dev);
+ return (ENXIO);
+ }
+
+ /* Configure PCIe PLL */
+ mtk_sysctl_clr_set(MT7620_PPLL_DRV, LC_CKDRVOHZ | LC_CKDRVHZ,
+ LC_CKDRVPD | PDRV_SW_SET);
+
+ /* and give it a chance to settle */
+ DELAY(100000);
+
+ /* Deassert PCIe device reset */
+ MT_CLR_SET32(sc, MTK_PCI_PCICFG, MTK_PCI_RESET, 0);
+
+ /* MT7620 supports one PCIe slot */
+ sc->num_slots = 1;
+
+ return (0);
+}
+
+static int
+mtk_pcie_phy_rt3883_init(device_t dev)
+{
+ struct mtk_pci_softc *sc = device_get_softc(dev);
+
+ /* Enable PCI host mode and PCIe RC mode */
+ mtk_sysctl_clr_set(SYSCTL_SYSCFG1, 0, RT3883_PCI_HOST_MODE |
+ RT3883_PCIE_RC_MODE);
+
+ /* Enable PCIe PHY */
+ if (mtk_pcie_phy_start(dev))
+ return (ENXIO);
+
+ /* Disable PCI, we only support PCIe for now */
+ mtk_sysctl_clr_set(SYSCTL_RSTCTRL, 0, RT3883_PCI_RST);
+ mtk_sysctl_clr_set(SYSCTL_CLKCFG1, RT3883_PCI_CLK, 0);
+
+ /* Give things a chance to sink in */
+ DELAY(500000);
+
+ /* Set PCIe port number to 0 and lift PCIe reset */
+ MT_WRITE32(sc, MTK_PCI_PCICFG, 0);
+
+ /* Configure PCI Arbiter */
+ MT_WRITE32(sc, MTK_PCI_ARBCTL, 0x79);
+
+ /* We have a single PCIe slot */
+ sc->num_slots = 1;
+
+ return (0);
+}
+
+static void
+mtk_pcie_phy_setup_slots(device_t dev)
+{
+ struct mtk_pci_softc *sc = device_get_softc(dev);
+ uint32_t bar0_val, val;
+ int i;
+
+ /* Disable all PCIe interrupts */
+ MT_WRITE32(sc, MTK_PCI_PCIENA, 0);
+
+ /* Default bar0_val is 64M, enabled */
+ bar0_val = 0x03FF0001;
+
+ /* But we override it to 2G, enabled for some SoCs */
+ if (sc->socid == MTK_SOC_MT7620A || sc->socid == MTK_SOC_MT7628 ||
+ sc->socid == MTK_SOC_MT7688 || sc->socid == MTK_SOC_MT7621)
+ bar0_val = 0x7FFF0001;
+
+ /* We still don't know which slots have linked up */
+ sc->pcie_link_status = 0;
+
+ /* XXX: I am not sure if this delay is really necessary */
+ DELAY(500000);
+
+ /*
+ * See which slots have links and mark them.
+ * Set up all slots' BARs and make them look like PCIe bridges.
+ */
+ for (i = 0; i < sc->num_slots; i++) {
+ /* If slot has link - mark it */
+ if (MT_READ32(sc, MTK_PCIE_STATUS(i)) & 1)
+ sc->pcie_link_status |= (1<<i);
+
+ /* Generic slot configuration follows */
+
+ /* We enable BAR0 */
+ MT_WRITE32(sc, MTK_PCIE_BAR0SETUP(i), bar0_val);
+ /* and disable BAR1 */
+ MT_WRITE32(sc, MTK_PCIE_BAR1SETUP(i), 0);
+ /* Internal memory base has no offset */
+ MT_WRITE32(sc, MTK_PCIE_IMBASEBAR0(i), 0);
+ /* We're a PCIe bridge */
+ MT_WRITE32(sc, MTK_PCIE_CLASS(i), 0x06040001);
+
+ val = mtk_pci_read_config(dev, 0, i, 0, 0x4, 4);
+ mtk_pci_write_config(dev, 0, i, 0, 0x4, val | 0x4, 4);
+ val = mtk_pci_read_config(dev, 0, i, 0, 0x70c, 4);
+ val &= ~(0xff << 8);
+ val |= (0x50 << 8);
+ mtk_pci_write_config(dev, 0, i, 0, 0x4, val, 4);
+ }
+}
diff --git a/sys/mips/mediatek/mtk_pcie.h b/sys/mips/mediatek/mtk_pcie.h
new file mode 100644
index 0000000..f4aa1ed
--- /dev/null
+++ b/sys/mips/mediatek/mtk_pcie.h
@@ -0,0 +1,164 @@
+/*-
+ * Copyright (c) 2016 Stanislav Galabov.
+ * 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 __MTK_PCIE_H__
+#define __MTK_PCIE_H__
+
+#define PCI_MIN_IO_ALLOC 4
+#define PCI_MIN_MEM_ALLOC 16
+#define BITS_PER_UINT32 (NBBY * sizeof(uint32_t))
+
+#define MTK_PCI_NIRQS 3
+#define MTK_PCI_BASESLOT 0
+
+struct mtk_pci_softc {
+ device_t sc_dev;
+
+ struct resource * pci_res[MTK_PCI_NIRQS + 1];
+ void * pci_intrhand[MTK_PCI_NIRQS];
+
+ int sc_busno;
+ int sc_cur_secbus;
+
+ struct rman sc_mem_rman;
+ struct rman sc_io_rman;
+ struct rman sc_irq_rman;
+
+ uint32_t sc_num_irq;
+ uint32_t sc_irq_start;
+ uint32_t sc_irq_end;
+
+ bus_addr_t sc_mem_base;
+ bus_addr_t sc_mem_size;
+ uint32_t sc_mem_map[(256*1024*1024) /
+ (PCI_MIN_MEM_ALLOC * BITS_PER_UINT32)];
+
+ bus_addr_t sc_io_base;
+ bus_addr_t sc_io_size;
+ uint32_t sc_io_map[(16*1024*1024) /
+ (PCI_MIN_IO_ALLOC * BITS_PER_UINT32)];
+
+ struct intr_event *sc_eventstab[MTK_PCI_NIRQS];
+
+ uint32_t pcie_link_status;
+ uint32_t num_slots;
+ uint32_t socid;
+ uint32_t addr_mask;
+};
+
+#define MTK_PCI_PCICFG 0x0000
+#define MTK_PCI_RESET (1<<1)
+#define MTK_PCI_PCIINT 0x0008
+#define MTK_PCI_PCIENA 0x000C
+#define MTK_PCI_CFGADDR 0x0020
+#define MTK_PCI_CFGDATA 0x0024
+#define MTK_PCI_MEMBASE 0x0028
+#define MTK_PCI_IOBASE 0x002C
+#define MTK_PCI_ARBCTL 0x0080
+#define MTK_PCI_PHY0_CFG 0x0090
+
+#define MTK_PCI_PCIE0_BAR0SETUP 0x2010
+#define MTK_PCI_PCIE0_BAR1SETUP 0x2014
+#define MTK_PCI_PCIE0_IMBASEBAR0 0x2018
+#define MTK_PCI_PCIE0_ID 0x2030
+#define MTK_PCI_PCIE0_CLASS 0x2034
+#define MTK_PCI_PCIE0_SUBID 0x2038
+#define MTK_PCI_PCIE0_STATUS 0x2050
+#define MTK_PCI_PCIE0_DLECR 0x2060
+#define MTK_PCI_PCIE0_ECRC 0x2064
+
+#define MTK_PCIE_BAR0SETUP(_s) (MTK_PCI_PCIE0_BAR0SETUP + (_s)*0x1000)
+#define MTK_PCIE_BAR1SETUP(_s) (MTK_PCI_PCIE0_BAR1SETUP + (_s)*0x1000)
+#define MTK_PCIE_IMBASEBAR0(_s) (MTK_PCI_PCIE0_IMBASEBAR0 + (_s)*0x1000)
+#define MTK_PCIE_ID(_s) (MTK_PCI_PCIE0_ID + (_s)*0x1000)
+#define MTK_PCIE_CLASS(_s) (MTK_PCI_PCIE0_CLASS + (_s)*0x1000)
+#define MTK_PCIE_SUBID(_s) (MTK_PCI_PCIE0_SUBID + (_s)*0x1000)
+#define MTK_PCIE_STATUS(_s) (MTK_PCI_PCIE0_STATUS + (_s)*0x1000)
+
+#define MTK_PCIE0_IRQ 20
+#define MTK_PCIE1_IRQ 21
+#define MTK_PCIE2_IRQ 22
+
+#define MTK_PCI_INTR_PIN 2
+
+/* Chip specific defines */
+#define MT7620_MAX_RETRIES 10
+#define MT7620_PCIE_PHY_CFG 0x90
+#define PHY_BUSY (1<<31)
+#define PHY_MODE_WRITE (1<<23)
+#define PHY_ADDR_OFFSET 8
+#define MT7620_PPLL_CFG0 0x98
+#define PPLL_SW_SET (1<<31)
+#define MT7620_PPLL_CFG1 0x9c
+#define PPLL_PD (1<<26)
+#define PPLL_LOCKED (1<<23)
+#define MT7620_PPLL_DRV 0xa0
+#define PDRV_SW_SET (1<<31)
+#define LC_CKDRVPD (1<<19)
+#define LC_CKDRVOHZ (1<<18)
+#define LC_CKDRVHZ (1<<17)
+#define MT7620_PERST_GPIO_MODE (3<<16)
+#define MT7620_PERST (0<<16)
+#define MT7620_GPIO (2<<16)
+#define MT7620_PKG_BGA (1<<16)
+
+#define MT7628_PERST_GPIO_MODE (1<<16)
+#define MT7628_PERST (0<<16)
+
+#define MT7621_PERST_GPIO_MODE (3<<10)
+#define MT7621_PERST_GPIO (1<<10)
+#define MT7621_UARTL3_GPIO_MODE (3<<3)
+#define MT7621_UARTL3_GPIO (1<<3)
+#define MT7621_PCIE0_RST (1<<19)
+#define MT7621_PCIE1_RST (1<<8)
+#define MT7621_PCIE2_RST (1<<7)
+#define MT7621_PCIE_RST (MT7621_PCIE0_RST | MT7621_PCIE1_RST | \
+ MT7621_PCIE2_RST)
+
+#define RT3883_PCI_RST (1<<24)
+#define RT3883_PCI_CLK (1<<19)
+#define RT3883_PCI_HOST_MODE (1<<7)
+#define RT3883_PCIE_RC_MODE (1<<8)
+/* End of chip specific defines */
+
+#define MT_WRITE32(sc, off, val) \
+ bus_write_4((sc)->pci_res[0], (off), (val))
+#define MT_WRITE16(sc, off, val) \
+ bus_write_2((sc)->pci_res[0], (off), (val))
+#define MT_WRITE8(sc, off, val) \
+ bus_write_1((sc)->pci_res[0], (off), (val))
+#define MT_READ32(sc, off) \
+ bus_read_4((sc)->pci_res[0], (off))
+#define MT_READ16(sc, off) \
+ bus_read_2((sc)->pci_res[0], (off))
+#define MT_READ8(sc, off) \
+ bus_read_1((sc)->pci_res[0], (off))
+
+#define MT_CLR_SET32(sc, off, clr, set) \
+ MT_WRITE32((sc), (off), ((MT_READ32((sc), (off)) & ~(clr)) | (off)))
+
+#endif /* __MTK_PCIE_H__ */
diff --git a/sys/mips/mediatek/mtk_pinctrl.c b/sys/mips/mediatek/mtk_pinctrl.c
new file mode 100644
index 0000000..489be5b
--- /dev/null
+++ b/sys/mips/mediatek/mtk_pinctrl.c
@@ -0,0 +1,114 @@
+/*-
+ * Copyright (c) 2016 Stanislav Galabov
+ * 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, immediately at the beginning of the file.
+ * 2. 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 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 <sys/cdefs.h>
+__FBSDID("$FreeBSD$");
+
+#include <sys/param.h>
+#include <sys/kernel.h>
+#include <sys/bus.h>
+#include <sys/module.h>
+
+#include <dev/fdt/fdt_common.h>
+#include <dev/ofw/openfirm.h>
+#include <dev/ofw/ofw_bus.h>
+#include <dev/ofw/ofw_bus_subr.h>
+
+#include <dev/fdt/fdt_pinctrl.h>
+#include <mips/mediatek/mtk_sysctl.h>
+
+#include "fdt_pinctrl_if.h"
+
+static const struct ofw_compat_data compat_data[] = {
+ { "ralink,rt2880-pinctrl", 1 },
+
+ /* Sentinel */
+ { NULL, 0 }
+};
+
+static int
+mtk_pinctrl_probe(device_t dev)
+{
+
+ if (!ofw_bus_status_okay(dev))
+ return (ENXIO);
+
+ if (ofw_bus_search_compatible(dev, compat_data)->ocd_data == 0)
+ return (ENXIO);
+
+ device_set_desc(dev, "MTK Pin Controller");
+
+ return (0);
+}
+
+static int
+mtk_pinctrl_attach(device_t dev)
+{
+
+ if (device_get_unit(dev) != 0) {
+ device_printf(dev, "Only one pin control allowed\n");
+ return (ENXIO);
+ }
+
+ fdt_pinctrl_register(dev, "pinctrl-single,bits");
+ fdt_pinctrl_configure_tree(dev);
+
+ if (bootverbose)
+ device_printf(dev, "GPIO mode: 0x%08x\n",
+ mtk_sysctl_get(SYSCTL_GPIOMODE));
+
+ return (0);
+}
+
+static int
+mtk_pinctrl_configure(device_t dev, phandle_t cfgxref)
+{
+
+ return (EINVAL);
+}
+
+static device_method_t mtk_pinctrl_methods[] = {
+ DEVMETHOD(device_probe, mtk_pinctrl_probe),
+ DEVMETHOD(device_attach, mtk_pinctrl_attach),
+
+ /* fdt_pinctrl interface */
+ DEVMETHOD(fdt_pinctrl_configure, mtk_pinctrl_configure),
+
+ DEVMETHOD_END
+};
+
+static driver_t mtk_pinctrl_driver = {
+ "pinctrl",
+ mtk_pinctrl_methods,
+ 0,
+};
+static devclass_t mtk_pinctrl_devclass;
+
+EARLY_DRIVER_MODULE(mtk_pinctrl, simplebus, mtk_pinctrl_driver,
+ mtk_pinctrl_devclass, 0, 0, BUS_PASS_INTERRUPT + BUS_PASS_ORDER_EARLY);
+
+MODULE_DEPEND(mtk_pinctrl, mtk_sysctl, 1, 1, 1);
diff --git a/sys/mips/mediatek/mtk_reset.c b/sys/mips/mediatek/mtk_reset.c
new file mode 100644
index 0000000..31d56e4
--- /dev/null
+++ b/sys/mips/mediatek/mtk_reset.c
@@ -0,0 +1,139 @@
+/*-
+ * Copyright (c) 2016 Stanislav Galabov
+ * 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, immediately at the beginning of the file.
+ * 2. 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 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 <sys/cdefs.h>
+__FBSDID("$FreeBSD$");
+
+#include <sys/param.h>
+#include <sys/kernel.h>
+#include <sys/bus.h>
+#include <sys/module.h>
+
+#include <dev/fdt/fdt_common.h>
+#include <dev/ofw/openfirm.h>
+#include <dev/ofw/ofw_bus.h>
+#include <dev/ofw/ofw_bus_subr.h>
+
+#include <mips/mediatek/fdt_reset.h>
+#include <mips/mediatek/mtk_sysctl.h>
+
+#include "fdt_reset_if.h"
+
+static const struct ofw_compat_data compat_data[] = {
+ { "ralink,rt2880-reset", 1 },
+
+ /* Sentinel */
+ { NULL, 0 }
+};
+
+static int
+mtk_reset_probe(device_t dev)
+{
+
+ if (!ofw_bus_status_okay(dev))
+ return (ENXIO);
+
+ if (ofw_bus_search_compatible(dev, compat_data)->ocd_data == 0)
+ return (ENXIO);
+
+ device_set_desc(dev, "MTK Reset Controller");
+
+ return (0);
+}
+
+static int
+mtk_reset_attach(device_t dev)
+{
+
+ if (device_get_unit(dev) != 0) {
+ device_printf(dev, "Only one reset control allowed\n");
+ return (ENXIO);
+ }
+
+ fdt_reset_register_provider(dev);
+
+ return (0);
+}
+
+#define RESET_ASSERT 1
+#define RESET_DEASSERT 0
+
+static int
+mtk_reset_set(device_t dev, int index, int value)
+{
+ uint32_t mask;
+
+ /* index 0 is SoC reset, indices 1 - 31 are valid peripheral resets */
+ if (index < 1 || index > 31)
+ return (EINVAL);
+
+ mask = (1u << index);
+
+ if (value == RESET_ASSERT)
+ mtk_sysctl_clr_set(SYSCTL_RSTCTRL, 0, mask);
+ else
+ mtk_sysctl_clr_set(SYSCTL_RSTCTRL, mask, 0);
+
+ return (0);
+}
+
+static int
+mtk_reset_assert(device_t dev, int index)
+{
+
+ return mtk_reset_set(dev, index, RESET_ASSERT);
+}
+
+static int
+mtk_reset_deassert(device_t dev, int index)
+{
+
+ return mtk_reset_set(dev, index, RESET_DEASSERT);
+}
+
+static device_method_t mtk_reset_methods[] = {
+ DEVMETHOD(device_probe, mtk_reset_probe),
+ DEVMETHOD(device_attach, mtk_reset_attach),
+
+ /* fdt_reset interface */
+ DEVMETHOD(fdt_reset_assert, mtk_reset_assert),
+ DEVMETHOD(fdt_reset_deassert, mtk_reset_deassert),
+
+ DEVMETHOD_END
+};
+
+static driver_t mtk_reset_driver = {
+ "rstctrl",
+ mtk_reset_methods,
+ 0,
+};
+static devclass_t mtk_reset_devclass;
+
+EARLY_DRIVER_MODULE(mtk_reset, simplebus, mtk_reset_driver, mtk_reset_devclass,
+ 0, 0, BUS_PASS_INTERRUPT + BUS_PASS_ORDER_EARLY);
+
+MODULE_DEPEND(mtk_reset, mtk_sysctl, 1, 1, 1);
diff --git a/sys/mips/mediatek/mtk_soc.c b/sys/mips/mediatek/mtk_soc.c
new file mode 100644
index 0000000..b331467
--- /dev/null
+++ b/sys/mips/mediatek/mtk_soc.c
@@ -0,0 +1,438 @@
+/*-
+ * Copyright (c) 2016 Stanislav Galabov.
+ * 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 <sys/cdefs.h>
+__FBSDID("$FreeBSD$");
+
+#include <sys/param.h>
+#include <sys/systm.h>
+#include <sys/bus.h>
+#include <sys/kernel.h>
+#include <sys/module.h>
+#include <sys/rman.h>
+
+#include <machine/fdt.h>
+
+#include <dev/ofw/openfirm.h>
+#include <dev/ofw/ofw_bus.h>
+#include <dev/ofw/ofw_bus_subr.h>
+
+#include <dev/fdt/fdt_common.h>
+#include <dev/fdt/fdt_clock.h>
+
+#include <mips/mediatek/fdt_reset.h>
+#include <mips/mediatek/mtk_sysctl.h>
+#include <mips/mediatek/mtk_soc.h>
+
+static uint32_t mtk_soc_socid = MTK_SOC_UNKNOWN;
+static uint32_t mtk_soc_uartclk = 0;
+static uint32_t mtk_soc_cpuclk = MTK_CPU_CLK_880MHZ;
+static uint32_t mtk_soc_timerclk = MTK_CPU_CLK_880MHZ / 2;
+
+static const struct ofw_compat_data compat_data[] = {
+ { "ralink,rt3050-soc", MTK_SOC_RT3050 },
+ { "ralink,rt3052-soc", MTK_SOC_RT3052 },
+ { "ralink,rt3350-soc", MTK_SOC_RT3350 },
+ { "ralink,rt3352-soc", MTK_SOC_RT3352 },
+ { "ralink,rt3662-soc", MTK_SOC_RT3662 },
+ { "ralink,rt3883-soc", MTK_SOC_RT3883 },
+ { "ralink,rt5350-soc", MTK_SOC_RT5350 },
+ { "ralink,mtk7620a-soc", MTK_SOC_MT7620A },
+ { "ralink,mtk7620n-soc", MTK_SOC_MT7620N },
+ { "mediatek,mtk7621-soc", MTK_SOC_MT7621 },
+ { "ralink,mtk7621-soc", MTK_SOC_MT7621 },
+ { "ralink,mtk7628an-soc", MTK_SOC_MT7628 },
+ { "mediatek,mt7628an-soc", MTK_SOC_MT7628 },
+ { "ralink,mtk7688-soc", MTK_SOC_MT7688 },
+
+ /* Sentinel */
+ { NULL, MTK_SOC_UNKNOWN },
+};
+
+static uint32_t
+mtk_detect_cpuclk_rt305x(bus_space_tag_t bst, bus_space_handle_t bsh)
+{
+ uint32_t clk;
+
+ clk = bus_space_read_4(bst, bsh, SYSCTL_SYSCFG);
+ clk >>= RT305X_CPU_CLKSEL_OFF;
+ clk &= RT305X_CPU_CLKSEL_MSK;
+
+ return ((clk == 0) ? MTK_CPU_CLK_320MHZ : MTK_CPU_CLK_384MHZ);
+}
+
+static uint32_t
+mtk_detect_cpuclk_rt3352(bus_space_tag_t bst, bus_space_handle_t bsh)
+{
+ uint32_t val;
+
+ val = bus_space_read_4(bst, bsh, SYSCTL_SYSCFG);
+ val >>= RT3352_CPU_CLKSEL_OFF;
+ val &= RT3352_CPU_CLKSEL_MSK;
+
+ if (val)
+ return (MTK_CPU_CLK_400MHZ);
+
+ return (MTK_CPU_CLK_384MHZ);
+}
+
+static uint32_t
+mtk_detect_cpuclk_rt3883(bus_space_tag_t bst, bus_space_handle_t bsh)
+{
+ uint32_t val;
+
+ val = bus_space_read_4(bst, bsh, SYSCTL_SYSCFG);
+ val >>= RT3883_CPU_CLKSEL_OFF;
+ val &= RT3883_CPU_CLKSEL_MSK;
+
+ switch (val) {
+ case 0:
+ return (MTK_CPU_CLK_250MHZ);
+ case 1:
+ return (MTK_CPU_CLK_384MHZ);
+ case 2:
+ return (MTK_CPU_CLK_480MHZ);
+ case 3:
+ return (MTK_CPU_CLK_500MHZ);
+ }
+
+ /* Never reached */
+ return (0);
+}
+
+static uint32_t
+mtk_detect_cpuclk_rt5350(bus_space_tag_t bst, bus_space_handle_t bsh)
+{
+ uint32_t val1, val2;
+
+ val1 = val2 = bus_space_read_4(bst, bsh, SYSCTL_SYSCFG);
+
+ val1 >>= RT5350_CPU_CLKSEL_OFF1;
+ val2 >>= RT5350_CPU_CLKSEL_OFF2;
+ val1 &= RT5350_CPU_CLKSEL_MSK;
+ val2 &= RT5350_CPU_CLKSEL_MSK;
+ val1 |= (val2 << 1);
+
+ switch (val1) {
+ case 0:
+ return (MTK_CPU_CLK_360MHZ);
+ case 1:
+ /* Reserved value, but we return UNKNOWN */
+ return (MTK_CPU_CLK_UNKNOWN);
+ case 2:
+ return (MTK_CPU_CLK_320MHZ);
+ case 3:
+ return (MTK_CPU_CLK_300MHZ);
+ }
+
+ /* Never reached */
+ return (0);
+}
+
+static uint32_t
+mtk_detect_cpuclk_mt7620(bus_space_tag_t bst, bus_space_handle_t bsh)
+{
+ uint32_t val, mul, div, res;
+
+ val = bus_space_read_4(bst, bsh, SYSCTL_MT7620_CPLL_CFG1);
+ if (val & MT7620_CPU_CLK_AUX0)
+ return (MTK_CPU_CLK_480MHZ);
+
+ val = bus_space_read_4(bst, bsh, SYSCTL_MT7620_CPLL_CFG0);
+ if (!(val & MT7620_CPLL_SW_CFG))
+ return (MTK_CPU_CLK_600MHZ);
+
+ mul = MT7620_PLL_MULT_RATIO_BASE + ((val >> MT7620_PLL_MULT_RATIO_OFF) &
+ MT7620_PLL_MULT_RATIO_MSK);
+ div = (val >> MT7620_PLL_DIV_RATIO_OFF) & MT7620_PLL_DIV_RATIO_MSK;
+
+ if (div != MT7620_PLL_DIV_RATIO_MSK)
+ div += MT7620_PLL_DIV_RATIO_BASE;
+ else
+ div = MT7620_PLL_DIV_RATIO_MAX;
+
+ res = (MT7620_XTAL_40 * mul) / div;
+
+ return (MTK_MHZ(res));
+}
+
+static uint32_t
+mtk_detect_cpuclk_mt7621(bus_space_tag_t bst, bus_space_handle_t bsh)
+{
+ uint32_t val, div, res;
+
+ val = bus_space_read_4(bst, bsh, SYSCTL_CLKCFG0);
+ if (val & MT7621_USES_MEMDIV) {
+ div = bus_space_read_4(bst, bsh, MTK_MT7621_CLKDIV_REG);
+ div >>= MT7621_MEMDIV_OFF;
+ div &= MT7621_MEMDIV_MSK;
+ div += MT7621_MEMDIV_BASE;
+
+ val = bus_space_read_4(bst, bsh, SYSCTL_SYSCFG);
+ val >>= MT7621_CLKSEL_OFF;
+ val &= MT7621_CLKSEL_MSK;
+
+ if (val >= MT7621_CLKSEL_25MHZ_VAL)
+ res = div * MT7621_CLKSEL_25MHZ;
+ else if (val >= MT7621_CLKSEL_20MHZ_VAL)
+ res = div * MT7621_CLKSEL_20MHZ;
+ else
+ res = div * 0; /* XXX: not sure about this */
+ } else {
+ val = bus_space_read_4(bst, bsh, SYSCTL_CUR_CLK_STS);
+ div = (val >> MT7621_CLK_STS_DIV_OFF) & MT7621_CLK_STS_MSK;
+ val &= MT7621_CLK_STS_MSK;
+
+ res = (MT7621_CLK_STS_BASE * val) / div;
+ }
+
+ return (MTK_MHZ(res));
+}
+
+static uint32_t
+mtk_detect_cpuclk_mt7628(bus_space_tag_t bst, bus_space_handle_t bsh)
+{
+ uint32_t val;
+
+ val = bus_space_read_4(bst, bsh, SYSCTL_SYSCFG);
+ val >>= MT7628_CPU_CLKSEL_OFF;
+ val &= MT7628_CPU_CLKSEL_MSK;
+
+ if (val)
+ return (MTK_CPU_CLK_580MHZ);
+
+ return (MTK_CPU_CLK_575MHZ);
+}
+
+void
+mtk_soc_try_early_detect(void)
+{
+ bus_space_tag_t bst;
+ bus_space_handle_t bsh;
+ uint32_t base;
+ phandle_t node;
+ int i;
+
+ if ((node = OF_finddevice("/")) == -1)
+ return;
+
+ for (i = 0; compat_data[i].ocd_str != NULL; i++) {
+ if (fdt_is_compatible(node, compat_data[i].ocd_str)) {
+ mtk_soc_socid = compat_data[i].ocd_data;
+ break;
+ }
+ }
+
+ if (mtk_soc_socid == MTK_SOC_UNKNOWN) {
+ /* We don't know the SoC, so we don't know how to get clocks */
+ return;
+ }
+
+ bst = fdtbus_bs_tag;
+ if (mtk_soc_socid == MTK_SOC_MT7621)
+ base = MTK_MT7621_BASE;
+ else
+ base = MTK_DEFAULT_BASE;
+
+ if (bus_space_map(bst, base, MTK_DEFAULT_SIZE, 0, &bsh))
+ return;
+
+ /* First, figure out the CPU clock */
+ switch (mtk_soc_socid) {
+ case MTK_SOC_RT3050: /* fallthrough */
+ case MTK_SOC_RT3052:
+ mtk_soc_cpuclk = mtk_detect_cpuclk_rt305x(bst, bsh);
+ break;
+ case MTK_SOC_RT3350:
+ mtk_soc_cpuclk = MTK_CPU_CLK_320MHZ;
+ break;
+ case MTK_SOC_RT3352:
+ mtk_soc_cpuclk = mtk_detect_cpuclk_rt3352(bst, bsh);
+ break;
+ case MTK_SOC_RT3662: /* fallthrough */
+ case MTK_SOC_RT3883:
+ mtk_soc_cpuclk = mtk_detect_cpuclk_rt3883(bst, bsh);
+ break;
+ case MTK_SOC_RT5350:
+ mtk_soc_cpuclk = mtk_detect_cpuclk_rt5350(bst, bsh);
+ break;
+ case MTK_SOC_MT7620A: /* fallthrough */
+ case MTK_SOC_MT7620N:
+ mtk_soc_cpuclk = mtk_detect_cpuclk_mt7620(bst, bsh);
+ break;
+ case MTK_SOC_MT7621:
+ mtk_soc_cpuclk = mtk_detect_cpuclk_mt7621(bst, bsh);
+ break;
+ case MTK_SOC_MT7628: /* fallthrough */
+ case MTK_SOC_MT7688:
+ mtk_soc_cpuclk = mtk_detect_cpuclk_mt7628(bst, bsh);
+ break;
+ default:
+ /* We don't know the SoC, so we can't find the CPU clock */
+ break;
+ }
+
+ /* Now figure out the timer clock */
+ if (mtk_soc_socid == MTK_SOC_MT7621) {
+#ifdef notyet
+ /*
+ * We use the GIC timer for timing source and its clock freq is
+ * the same as the CPU's clock freq
+ */
+ mtk_soc_timerclk = mtk_soc_cpuclk;
+#else
+ /*
+ * When GIC timer and MIPS timer are ready to co-exist and
+ * GIC timer is actually implemented, we need to switch to it.
+ * Until then we use a fake GIC timer, which is actually a
+ * normal MIPS ticker, so the timer clock is half the CPU clock
+ */
+ mtk_soc_timerclk = mtk_soc_cpuclk / 2;
+#endif
+ } else {
+ /*
+ * We use the MIPS ticker for the rest for now, so
+ * the CPU clock is divided by 2
+ */
+ mtk_soc_timerclk = mtk_soc_cpuclk / 2;
+ }
+
+ switch (mtk_soc_socid) {
+ case MTK_SOC_RT3350: /* fallthrough */
+ case MTK_SOC_RT3050: /* fallthrough */
+ case MTK_SOC_RT3052:
+ /* UART clock is CPU clock / 3 */
+ mtk_soc_uartclk = mtk_soc_cpuclk / MTK_UARTDIV_3;
+ break;
+ case MTK_SOC_RT3352: /* fallthrough */
+ case MTK_SOC_RT3662: /* fallthrough */
+ case MTK_SOC_RT3883: /* fallthrough */
+ case MTK_SOC_RT5350: /* fallthrough */
+ case MTK_SOC_MT7620A: /* fallthrough */
+ case MTK_SOC_MT7620N: /* fallthrough */
+ case MTK_SOC_MT7628: /* fallthrough */
+ case MTK_SOC_MT7688:
+ /* UART clock is always 40MHz */
+ mtk_soc_uartclk = MTK_UART_CLK_40MHZ;
+ break;
+ case MTK_SOC_MT7621:
+ /* UART clock is always 50MHz */
+ mtk_soc_uartclk = MTK_UART_CLK_50MHZ;
+ break;
+ default:
+ /* We don't know the SoC, so we don't know the UART clock */
+ break;
+ }
+
+ bus_space_unmap(bst, bsh, MTK_DEFAULT_SIZE);
+}
+
+uint32_t
+mtk_soc_get_uartclk(void)
+{
+
+ return mtk_soc_uartclk;
+}
+
+uint32_t
+mtk_soc_get_cpuclk(void)
+{
+
+ return mtk_soc_cpuclk;
+}
+
+uint32_t
+mtk_soc_get_timerclk(void)
+{
+
+ return mtk_soc_timerclk;
+}
+
+uint32_t
+mtk_soc_get_socid(void)
+{
+
+ return mtk_soc_socid;
+}
+
+/*
+ * The following are generic reset and clock functions
+ */
+
+/* Default reset time is 100ms */
+#define DEFAULT_RESET_TIME 100000
+
+int
+mtk_soc_reset_device(device_t dev)
+{
+ int res;
+
+ res = fdt_reset_assert_all(dev);
+ if (res == 0) {
+ DELAY(DEFAULT_RESET_TIME);
+ res = fdt_reset_deassert_all(dev);
+ if (res == 0)
+ DELAY(DEFAULT_RESET_TIME);
+ }
+
+ return (res);
+}
+
+int
+mtk_soc_stop_clock(device_t dev)
+{
+
+ return (fdt_clock_disable_all(dev));
+}
+
+int
+mtk_soc_start_clock(device_t dev)
+{
+
+ return (fdt_clock_enable_all(dev));
+}
+
+int
+mtk_soc_assert_reset(device_t dev)
+{
+
+ return (fdt_reset_assert_all(dev));
+}
+
+int
+mtk_soc_deassert_reset(device_t dev)
+{
+
+ return (fdt_reset_deassert_all(dev));
+}
+
+void
+mtk_soc_reset(void)
+{
+
+ mtk_sysctl_clr_set(SYSCTL_RSTCTRL, 0, 1);
+ mtk_sysctl_clr_set(SYSCTL_RSTCTRL, 1, 0);
+}
diff --git a/sys/mips/mediatek/mtk_soc.h b/sys/mips/mediatek/mtk_soc.h
new file mode 100644
index 0000000..445675d
--- /dev/null
+++ b/sys/mips/mediatek/mtk_soc.h
@@ -0,0 +1,130 @@
+/*-
+ * Copyright (c) 2016 Stanislav Galabov.
+ * 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 unmodified, 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 _MTK_SOC_H_
+#define _MTK_SOC_H_
+
+enum mtk_soc_id {
+ MTK_SOC_UNKNOWN,
+ MTK_SOC_RT3050,
+ MTK_SOC_RT3052,
+ MTK_SOC_RT3350,
+ MTK_SOC_RT3352,
+ MTK_SOC_RT3662,
+ MTK_SOC_RT3883,
+ MTK_SOC_RT5350,
+ MTK_SOC_MT7620A,
+ MTK_SOC_MT7620N,
+ MTK_SOC_MT7621,
+ MTK_SOC_MT7628,
+ MTK_SOC_MT7688,
+ MTK_SOC_MAX
+};
+
+#define RT305X_CPU_CLKSEL_OFF 18
+#define RT305X_CPU_CLKSEL_MSK 0x1
+#define RT3352_CPU_CLKSEL_OFF 8
+#define RT3352_CPU_CLKSEL_MSK 0x1
+#define RT3883_CPU_CLKSEL_OFF 8
+#define RT3883_CPU_CLKSEL_MSK 0x3
+#define RT5350_CPU_CLKSEL_OFF1 8
+#define RT5350_CPU_CLKSEL_OFF2 10
+#define RT5350_CPU_CLKSEL_MSK 0x1
+#define MT7628_CPU_CLKSEL_OFF 6
+#define MT7628_CPU_CLKSEL_MSK 0x1
+
+#define MT7620_CPU_CLK_AUX0 (1u<<24)
+#define MT7620_CPLL_SW_CFG (1u<<31)
+#define MT7620_PLL_MULT_RATIO_OFF 16
+#define MT7620_PLL_MULT_RATIO_MSK 0x7
+#define MT7620_PLL_MULT_RATIO_BASE 24
+#define MT7620_PLL_DIV_RATIO_OFF 10
+#define MT7620_PLL_DIV_RATIO_MSK 0x3
+#define MT7620_PLL_DIV_RATIO_BASE 2
+#define MT7620_PLL_DIV_RATIO_MAX 8
+#define MT7620_XTAL_40 40
+
+#define MT7621_USES_MEMDIV (1u<<30)
+#define MT7621_MEMDIV_OFF 4
+#define MT7621_MEMDIV_MSK 0x7f
+#define MT7621_MEMDIV_BASE 1
+#define MT7621_CLKSEL_OFF 6
+#define MT7621_CLKSEL_MSK 0x7
+#define MT7621_CLKSEL_25MHZ_VAL 6
+#define MT7621_CLKSEL_20MHZ_VAL 3
+#define MT7621_CLKSEL_20MHZ 20
+#define MT7621_CLKSEL_25MHZ 25
+#define MT7621_CLK_STS_DIV_OFF 8
+#define MT7621_CLK_STS_MSK 0x1f
+#define MT7621_CLK_STS_BASE 500
+
+#define MTK_MT7621_CLKDIV_REG 0x5648
+#define MTK_MT7621_CLKDIV_OFF 4
+#define MTK_MT7621_CLKDIV_MSK 0x7f
+
+#define MTK_MHZ(x) ((x) * 1000 * 1000)
+
+#define MTK_CPU_CLK_UNKNOWN 0
+#define MTK_CPU_CLK_250MHZ 250000000
+#define MTK_CPU_CLK_300MHZ 300000000
+#define MTK_CPU_CLK_320MHZ 320000000
+#define MTK_CPU_CLK_360MHZ 360000000
+#define MTK_CPU_CLK_384MHZ 384000000
+#define MTK_CPU_CLK_400MHZ 400000000
+#define MTK_CPU_CLK_480MHZ 480000000
+#define MTK_CPU_CLK_500MHZ 500000000
+#define MTK_CPU_CLK_575MHZ 575000000
+#define MTK_CPU_CLK_580MHZ 580000000
+#define MTK_CPU_CLK_600MHZ 600000000
+#define MTK_CPU_CLK_880MHZ 880000000
+
+#define MTK_UART_CLK_40MHZ 40000000
+#define MTK_UART_CLK_50MHZ 50000000
+
+#define MTK_UARTDIV_2 2
+#define MTK_UARTDIV_3 3
+
+#define MTK_DEFAULT_BASE 0x10000000
+#define MTK_MT7621_BASE 0x1e000000
+#define MTK_DEFAULT_SIZE 0x6000
+
+extern void mtk_soc_try_early_detect(void);
+extern uint32_t mtk_soc_get_uartclk(void);
+extern uint32_t mtk_soc_get_cpuclk(void);
+extern uint32_t mtk_soc_get_timerclk(void);
+extern uint32_t mtk_soc_get_socid(void);
+
+extern int mtk_soc_reset_device(device_t);
+extern int mtk_soc_stop_clock(device_t);
+extern int mtk_soc_start_clock(device_t);
+extern int mtk_soc_assert_reset(device_t);
+extern int mtk_soc_deassert_reset(device_t);
+extern void mtk_soc_reset(void);
+
+#endif /* _MTK_SOC_H_ */
diff --git a/sys/mips/mediatek/mtk_spi_v1.c b/sys/mips/mediatek/mtk_spi_v1.c
new file mode 100644
index 0000000..1835b8e
--- /dev/null
+++ b/sys/mips/mediatek/mtk_spi_v1.c
@@ -0,0 +1,351 @@
+/*-
+ * Copyright (c) 2009, Oleksandr Tymoshenko <gonzo@FreeBSD.org>
+ * Copyright (c) 2011, Aleksandr Rybalko <ray@FreeBSD.org>
+ * Copyright (c) 2013, Alexander A. Mityaev <sansan@adm.ua>
+ * 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 unmodified, 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 <sys/cdefs.h>
+__FBSDID("$FreeBSD$");
+
+#include <sys/param.h>
+#include <sys/systm.h>
+#include <sys/bus.h>
+
+#include <sys/kernel.h>
+#include <sys/module.h>
+#include <sys/rman.h>
+#include <sys/lock.h>
+#include <sys/mutex.h>
+
+#include <machine/bus.h>
+#include <machine/cpu.h>
+//#include <machine/pmap.h>
+
+#include <dev/spibus/spi.h>
+#include <dev/spibus/spibusvar.h>
+#include "spibus_if.h"
+
+#include "opt_platform.h"
+
+#include <dev/ofw/openfirm.h>
+#include <dev/ofw/ofw_bus.h>
+#include <dev/ofw/ofw_bus_subr.h>
+
+#include <mips/mediatek/mtk_spi_v1.h>
+#include <dev/flash/mx25lreg.h>
+
+#undef MTK_SPI_DEBUG
+#ifdef MTK_SPI_DEBUG
+#define dprintf printf
+#else
+#define dprintf(x, arg...)
+#endif
+
+/*
+ * register space access macros
+ */
+#define SPI_WRITE(sc, reg, val) do { \
+ bus_write_4(sc->sc_mem_res, (reg), (val)); \
+ } while (0)
+
+#define SPI_READ(sc, reg) bus_read_4(sc->sc_mem_res, (reg))
+
+#define SPI_SET_BITS(sc, reg, bits) \
+ SPI_WRITE(sc, reg, SPI_READ(sc, (reg)) | (bits))
+
+#define SPI_CLEAR_BITS(sc, reg, bits) \
+ SPI_WRITE(sc, reg, SPI_READ(sc, (reg)) & ~(bits))
+
+struct mtk_spi_softc {
+ device_t sc_dev;
+ struct resource *sc_mem_res;
+};
+
+static int mtk_spi_probe(device_t);
+static int mtk_spi_attach(device_t);
+static int mtk_spi_detach(device_t);
+static int mtk_spi_wait(struct mtk_spi_softc *);
+static void mtk_spi_chip_activate(struct mtk_spi_softc *);
+static void mtk_spi_chip_deactivate(struct mtk_spi_softc *);
+static uint8_t mtk_spi_txrx(struct mtk_spi_softc *, uint8_t *, int);
+static int mtk_spi_transfer(device_t, device_t, struct spi_command *);
+static phandle_t mtk_spi_get_node(device_t, device_t);
+
+static struct ofw_compat_data compat_data[] = {
+ { "ralink,rt2880-spi", 1 },
+ { "ralink,rt3050-spi", 1 },
+ { "ralink,rt3352-spi", 1 },
+ { "ralink,rt3883-spi", 1 },
+ { "ralink,rt5350-spi", 1 },
+ { "ralink,mt7620a-spi", 1 },
+ { NULL, 0 }
+};
+
+static int
+mtk_spi_probe(device_t dev)
+{
+
+ if (!ofw_bus_status_okay(dev))
+ return (ENXIO);
+
+ if (ofw_bus_search_compatible(dev, compat_data)->ocd_data == 0)
+ return(ENXIO);
+
+ device_set_desc(dev, "MTK SPI Controller (v1)");
+
+ return (0);
+}
+
+static int
+mtk_spi_attach(device_t dev)
+{
+ struct mtk_spi_softc *sc = device_get_softc(dev);
+ int rid;
+
+ sc->sc_dev = dev;
+ rid = 0;
+ sc->sc_mem_res = bus_alloc_resource_any(dev, SYS_RES_MEMORY, &rid,
+ RF_ACTIVE);
+ if (!sc->sc_mem_res) {
+ device_printf(dev, "Could not map memory\n");
+ return (ENXIO);
+ }
+
+ if (mtk_spi_wait(sc)) {
+ bus_release_resource(dev, SYS_RES_MEMORY, 0, sc->sc_mem_res);
+ return (EBUSY);
+ }
+
+ SPI_WRITE(sc, MTK_SPICFG, MSBFIRST | SPICLKPOL | TX_ON_CLK_FALL |
+ SPI_CLK_DIV8); /* XXX: make it configurable */
+ /*
+ * W25Q64CV max 104MHz, bus 120-192 MHz, so divide by 2.
+ * Update: divide by 4, DEV2 to fast for flash.
+ */
+
+ device_add_child(dev, "spibus", 0);
+ return (bus_generic_attach(dev));
+}
+
+static int
+mtk_spi_detach(device_t dev)
+{
+ struct mtk_spi_softc *sc = device_get_softc(dev);
+
+ SPI_SET_BITS(sc, MTK_SPICTL, HIZSMOSI | CS_HIGH);
+
+ if (sc->sc_mem_res)
+ bus_release_resource(dev, SYS_RES_MEMORY, 0, sc->sc_mem_res);
+
+ return (0);
+}
+
+static void
+mtk_spi_chip_activate(struct mtk_spi_softc *sc)
+{
+// printf("%s\n", __func__);
+ mtk_spi_wait(sc);
+ /*
+ * Put all CSx to low
+ */
+ SPI_CLEAR_BITS(sc, MTK_SPICTL, CS_HIGH | HIZSMOSI);
+}
+
+static void
+mtk_spi_chip_deactivate(struct mtk_spi_softc *sc)
+{
+// printf("%s\n", __func__);
+ mtk_spi_wait(sc);
+ /*
+ * Put all CSx to high
+ */
+ SPI_SET_BITS(sc, MTK_SPICTL, CS_HIGH | HIZSMOSI);
+}
+
+static int
+mtk_spi_wait(struct mtk_spi_softc *sc)
+{
+ int i = 1000;
+
+ while (i--) {
+ if (!SPI_READ(sc, MTK_SPIBUSY))
+ break;
+ }
+ if (i == 0) {
+ printf("busy\n");
+ return (1);
+ }
+
+ return (0);
+}
+
+static uint8_t
+mtk_spi_txrx(struct mtk_spi_softc *sc, uint8_t *data, int write)
+{
+
+ if (mtk_spi_wait(sc))
+ return (EBUSY);
+
+ if (write == MTK_SPI_WRITE) {
+ SPI_WRITE(sc, MTK_SPIDATA, *data);
+ SPI_SET_BITS(sc, MTK_SPICTL, START_WRITE);
+ //printf("%s(W:%d)\n", __func__, *data);
+ } else {/* MTK_SPI_READ */
+ SPI_SET_BITS(sc, MTK_SPICTL, START_READ);
+ if (mtk_spi_wait(sc))
+ return (EBUSY);
+
+ *data = SPI_READ(sc, MTK_SPIDATA) & 0xff;
+ //printf("%s(R:%d)\n", __func__, *data);
+ }
+ return (0);
+}
+
+static int
+mtk_spi_transfer(device_t dev, device_t child, struct spi_command *cmd)
+{
+ struct mtk_spi_softc *sc;
+ uint8_t *buf, byte, *tx_buf;
+ struct spibus_ivar *devi = SPIBUS_IVAR(child);
+ int i, sz, error = 0, write = 0;
+
+ sc = device_get_softc(dev);
+
+ if (devi->cs != 0)
+ /* Only 1 CS */
+ return (ENXIO);
+
+ /* There is always a command to transfer. */
+ tx_buf = (uint8_t *)(cmd->tx_cmd);
+
+ /* Perform some fixup because MTK dont support duplex SPI */
+ switch(tx_buf[0]) {
+ case CMD_READ_IDENT:
+ cmd->tx_cmd_sz = 1;
+ cmd->rx_cmd_sz = 3;
+ break;
+ case CMD_ENTER_4B_MODE:
+ case CMD_EXIT_4B_MODE:
+ case CMD_WRITE_ENABLE:
+ case CMD_WRITE_DISABLE:
+ cmd->tx_cmd_sz = 1;
+ cmd->rx_cmd_sz = 0;
+ break;
+ case CMD_READ_STATUS:
+ cmd->tx_cmd_sz = 1;
+ cmd->rx_cmd_sz = 1;
+ break;
+ case CMD_READ:
+ case CMD_FAST_READ:
+ cmd->rx_cmd_sz = cmd->tx_data_sz = 0;
+ break;
+ case CMD_SECTOR_ERASE:
+ cmd->rx_cmd_sz = 0;
+ break;
+ case CMD_PAGE_PROGRAM:
+ cmd->rx_cmd_sz = cmd->rx_data_sz = 0;
+ break;
+ }
+
+ mtk_spi_chip_activate(sc);
+
+ if (cmd->tx_cmd_sz + cmd->rx_cmd_sz) {
+ buf = (uint8_t *)(cmd->rx_cmd);
+ tx_buf = (uint8_t *)(cmd->tx_cmd);
+ sz = cmd->tx_cmd_sz + cmd->rx_cmd_sz;
+
+ for (i = 0; i < sz; i++) {
+ if(i < cmd->tx_cmd_sz) {
+ byte = tx_buf[i];
+ error = mtk_spi_txrx(sc, &byte,
+ MTK_SPI_WRITE);
+ if (error)
+ goto mtk_spi_transfer_fail;
+ continue;
+ }
+ error = mtk_spi_txrx(sc, &byte,
+ MTK_SPI_READ);
+ if (error)
+ goto mtk_spi_transfer_fail;
+ buf[i] = byte;
+ }
+ }
+
+ /*
+ * Transfer/Receive data
+ */
+
+ if (cmd->tx_data_sz + cmd->rx_data_sz) {
+ write = (cmd->tx_data_sz > 0)?1:0;
+ buf = (uint8_t *)(write ? cmd->tx_data : cmd->rx_data);
+ sz = write ? cmd->tx_data_sz : cmd->rx_data_sz;
+
+ for (i = 0; i < sz; i++) {
+ byte = buf[i];
+ error = mtk_spi_txrx(sc, &byte,
+ write ? MTK_SPI_WRITE : MTK_SPI_READ);
+ if (error)
+ goto mtk_spi_transfer_fail;
+ buf[i] = byte;
+ }
+ }
+mtk_spi_transfer_fail:
+ mtk_spi_chip_deactivate(sc);
+
+ return (error);
+}
+
+static phandle_t
+mtk_spi_get_node(device_t bus, device_t dev)
+{
+
+ /* We only have one child, the SPI bus, which needs our own node. */
+ return (ofw_bus_get_node(bus));
+}
+
+static device_method_t mtk_spi_methods[] = {
+ /* Device interface */
+ DEVMETHOD(device_probe, mtk_spi_probe),
+ DEVMETHOD(device_attach, mtk_spi_attach),
+ DEVMETHOD(device_detach, mtk_spi_detach),
+
+ DEVMETHOD(spibus_transfer, mtk_spi_transfer),
+
+ /* ofw_bus interface */
+ DEVMETHOD(ofw_bus_get_node, mtk_spi_get_node),
+
+ DEVMETHOD_END
+};
+
+static driver_t mtk_spi_driver = {
+ .name = "spi",
+ .methods = mtk_spi_methods,
+ .size = sizeof(struct mtk_spi_softc),
+};
+
+static devclass_t mtk_spi_devclass;
+
+DRIVER_MODULE(mtk_spi_v1, simplebus, mtk_spi_driver, mtk_spi_devclass, 0, 0);
diff --git a/sys/mips/mediatek/mtk_spi_v1.h b/sys/mips/mediatek/mtk_spi_v1.h
new file mode 100644
index 0000000..3b82e5b
--- /dev/null
+++ b/sys/mips/mediatek/mtk_spi_v1.h
@@ -0,0 +1,71 @@
+/*-
+ * Copyright (c) 2009, Oleksandr Tymoshenko <gonzo@FreeBSD.org>
+ * Copyright (c) 2011, Aleksandr Rybalko <ray@FreeBSD.org>
+ * Copyright (c) 2013, Alexander A. Mityaev <sansan@adm.ua>
+ * Copyright (c) 2016, Stanislav Galabov <sgalabov@gmail.com>
+ * 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 unmodified, 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 _MTK_SPIVAR_H_
+#define _MTK_SPIVAR_H_
+
+/* SPI controller interface */
+
+#define MTK_SPISTAT 0x00
+/* SPIBUSY is alias for SPIBUSY, because SPISTAT have only BUSY bit*/
+#define MTK_SPIBUSY MTK_SPISTAT
+
+#define MTK_SPICFG 0x10
+#define MSBFIRST (1<<8)
+#define SPICLKPOL (1<<6)
+#define CAPT_ON_CLK_FALL (1<<5)
+#define TX_ON_CLK_FALL (1<<4)
+#define HIZSPI (1<<3) /* Set SPI pins to Tri-state */
+#define SPI_CLK_SHIFT 0 /* SPI clock divide control */
+#define SPI_CLK_MASK 0x00000007
+#define SPI_CLK_DIV2 0
+#define SPI_CLK_DIV4 1
+#define SPI_CLK_DIV8 2
+#define SPI_CLK_DIV16 3
+#define SPI_CLK_DIV32 4
+#define SPI_CLK_DIV64 5
+#define SPI_CLK_DIV128 6
+#define SPI_CLK_DISABLED 7
+
+#define MTK_SPICTL 0x14
+#define HIZSMOSI (1<<3)
+#define START_WRITE (1<<2)
+#define START_READ (1<<1)
+#define CS_HIGH (1<<0)
+
+#define MTK_SPIDATA 0x20
+#define SPIDATA_MASK 0x000000ff
+
+#define MTK_SPI_WRITE 1
+#define MTK_SPI_READ 0
+
+#endif /* _MTK_SPIVAR_H_ */
diff --git a/sys/mips/mediatek/mtk_spi_v2.c b/sys/mips/mediatek/mtk_spi_v2.c
new file mode 100644
index 0000000..0ffd976
--- /dev/null
+++ b/sys/mips/mediatek/mtk_spi_v2.c
@@ -0,0 +1,357 @@
+/*-
+ * Copyright (c) 2009, Oleksandr Tymoshenko <gonzo@FreeBSD.org>
+ * Copyright (c) 2011, Aleksandr Rybalko <ray@FreeBSD.org>
+ * Copyright (c) 2013, Alexander A. Mityaev <sansan@adm.ua>
+ * Copyright (c) 2016, Stanislav Galabov <sgalabov@gmail.com>
+ * 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 unmodified, 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 <sys/cdefs.h>
+__FBSDID("$FreeBSD$");
+
+#include <sys/param.h>
+#include <sys/systm.h>
+#include <sys/bus.h>
+
+#include <sys/kernel.h>
+#include <sys/module.h>
+#include <sys/rman.h>
+#include <sys/lock.h>
+#include <sys/mutex.h>
+
+#include <machine/bus.h>
+#include <machine/cpu.h>
+//#include <machine/pmap.h>
+
+#include <dev/spibus/spi.h>
+#include <dev/spibus/spibusvar.h>
+#include "spibus_if.h"
+
+#include "opt_platform.h"
+
+#include <dev/ofw/openfirm.h>
+#include <dev/ofw/ofw_bus.h>
+#include <dev/ofw/ofw_bus_subr.h>
+
+#include <mips/mediatek/mtk_spi_v2.h>
+#include <dev/flash/mx25lreg.h>
+
+#undef MTK_SPI_DEBUG
+#ifdef MTK_SPI_DEBUG
+#define dprintf printf
+#else
+#define dprintf(x, arg...)
+#endif
+
+/*
+ * register space access macros
+ */
+#define SPI_WRITE(sc, reg, val) do { \
+ bus_write_4(sc->sc_mem_res, (reg), (val)); \
+ } while (0)
+
+#define SPI_READ(sc, reg) bus_read_4(sc->sc_mem_res, (reg))
+
+#define SPI_SET_BITS(sc, reg, bits) \
+ SPI_WRITE(sc, reg, SPI_READ(sc, (reg)) | (bits))
+
+#define SPI_CLEAR_BITS(sc, reg, bits) \
+ SPI_WRITE(sc, reg, SPI_READ(sc, (reg)) & ~(bits))
+
+struct mtk_spi_softc {
+ device_t sc_dev;
+ struct resource *sc_mem_res;
+};
+
+static int mtk_spi_probe(device_t);
+static int mtk_spi_attach(device_t);
+static int mtk_spi_detach(device_t);
+static int mtk_spi_wait(struct mtk_spi_softc *);
+static void mtk_spi_chip_activate(struct mtk_spi_softc *);
+static void mtk_spi_chip_deactivate(struct mtk_spi_softc *);
+static uint8_t mtk_spi_txrx(struct mtk_spi_softc *, uint8_t *, int);
+static int mtk_spi_transfer(device_t, device_t, struct spi_command *);
+static phandle_t mtk_spi_get_node(device_t, device_t);
+
+static struct ofw_compat_data compat_data[] = {
+ { "ralink,mt7621-spi", 1 },
+ { "ralink,mtk7628an-spi", 1 },
+ { NULL, 0 }
+};
+
+static int
+mtk_spi_probe(device_t dev)
+{
+
+ if (!ofw_bus_status_okay(dev))
+ return (ENXIO);
+
+ if (ofw_bus_search_compatible(dev, compat_data)->ocd_data == 0)
+ return(ENXIO);
+
+ device_set_desc(dev, "MTK SPI Controller (v2)");
+
+ return (0);
+}
+
+static int
+mtk_spi_attach(device_t dev)
+{
+ struct mtk_spi_softc *sc = device_get_softc(dev);
+ uint32_t val;
+ int rid;
+
+ sc->sc_dev = dev;
+ rid = 0;
+ sc->sc_mem_res = bus_alloc_resource_any(dev, SYS_RES_MEMORY, &rid,
+ RF_ACTIVE);
+ if (!sc->sc_mem_res) {
+ device_printf(dev, "Could not map memory\n");
+ return (ENXIO);
+ }
+
+ if (mtk_spi_wait(sc)) {
+ bus_release_resource(dev, SYS_RES_MEMORY, 0, sc->sc_mem_res);
+ return (EBUSY);
+ }
+
+ val = SPI_READ(sc, MTK_SPIMASTER);
+ val &= ~(0xfff << 16);
+ val |= 13 << 16;
+ val |= 7 << 29;
+ val |= 1 << 2;
+ SPI_WRITE(sc, MTK_SPIMASTER, val);
+ /*
+ * W25Q64CV max 104MHz, bus 120-192 MHz, so divide by 2.
+ * Update: divide by 4, DEV2 to fast for flash.
+ */
+
+ device_add_child(dev, "spibus", 0);
+ return (bus_generic_attach(dev));
+}
+
+static int
+mtk_spi_detach(device_t dev)
+{
+ struct mtk_spi_softc *sc = device_get_softc(dev);
+
+ //SPI_SET_BITS(sc, MTK_SPICTL, HIZSMOSI | CS_HIGH);
+
+ if (sc->sc_mem_res)
+ bus_release_resource(dev, SYS_RES_MEMORY, 0, sc->sc_mem_res);
+
+ return (0);
+}
+
+static void
+mtk_spi_chip_activate(struct mtk_spi_softc *sc)
+{
+// printf("%s\n", __func__);
+ mtk_spi_wait(sc);
+ /*
+ * Put all CSx to low
+ */
+ SPI_SET_BITS(sc, MTK_SPIPOLAR, 1);
+}
+
+static void
+mtk_spi_chip_deactivate(struct mtk_spi_softc *sc)
+{
+// printf("%s\n", __func__);
+ mtk_spi_wait(sc);
+ /*
+ * Put all CSx to high
+ */
+ SPI_CLEAR_BITS(sc, MTK_SPIPOLAR, 1);
+}
+
+static int
+mtk_spi_wait(struct mtk_spi_softc *sc)
+{
+ int i = 1000;
+
+ while (i--) {
+ if (!(SPI_READ(sc, MTK_SPITRANS) & SPIBUSY))
+ break;
+ }
+ if (i == 0) {
+ //printf("busy\n");
+ return (1);
+ }
+
+ return (0);
+}
+
+static uint8_t
+mtk_spi_txrx(struct mtk_spi_softc *sc, uint8_t *data, int write)
+{
+
+ if (mtk_spi_wait(sc))
+ return (0xff);
+
+ if (write == MTK_SPI_WRITE) {
+ SPI_WRITE(sc, MTK_SPIOPCODE, (*data));
+ SPI_WRITE(sc, MTK_SPIMOREBUF, (8<<24));
+ } else {
+ SPI_WRITE(sc, MTK_SPIMOREBUF, (8<<12));
+ }
+
+ SPI_SET_BITS(sc, MTK_SPITRANS, SPISTART);
+
+ if (mtk_spi_wait(sc))
+ return (0xff);
+
+ if (write == MTK_SPI_READ) {
+ *data = SPI_READ(sc, MTK_SPIDATA) & 0xff;
+ }
+
+ return (0);
+}
+
+static int
+mtk_spi_transfer(device_t dev, device_t child, struct spi_command *cmd)
+{
+ struct mtk_spi_softc *sc;
+ uint8_t *buf, byte, *tx_buf;
+ struct spibus_ivar *devi = SPIBUS_IVAR(child);
+ int i, sz, error, write = 0;
+
+ sc = device_get_softc(dev);
+
+ if (devi->cs != 0)
+ /* Only 1 CS */
+ return (ENXIO);
+
+ /* There is always a command to transfer. */
+ tx_buf = (uint8_t *)(cmd->tx_cmd);
+
+ /* Perform some fixup because MTK dont support duplex SPI */
+ switch(tx_buf[0]) {
+ case CMD_READ_IDENT:
+ cmd->tx_cmd_sz = 1;
+ cmd->rx_cmd_sz = 3;
+ break;
+ case CMD_ENTER_4B_MODE:
+ case CMD_EXIT_4B_MODE:
+ case CMD_WRITE_ENABLE:
+ case CMD_WRITE_DISABLE:
+ cmd->tx_cmd_sz = 1;
+ cmd->rx_cmd_sz = 0;
+ break;
+ case CMD_READ_STATUS:
+ cmd->tx_cmd_sz = 1;
+ cmd->rx_cmd_sz = 1;
+ break;
+ case CMD_READ:
+ case CMD_FAST_READ:
+ cmd->rx_cmd_sz = cmd->tx_data_sz = 0;
+ break;
+ case CMD_SECTOR_ERASE:
+ cmd->rx_cmd_sz = 0;
+ break;
+ case CMD_PAGE_PROGRAM:
+ cmd->rx_cmd_sz = cmd->rx_data_sz = 0;
+ break;
+ }
+
+ mtk_spi_chip_activate(sc);
+
+ if (cmd->tx_cmd_sz + cmd->rx_cmd_sz) {
+ buf = (uint8_t *)(cmd->rx_cmd);
+ tx_buf = (uint8_t *)(cmd->tx_cmd);
+ sz = cmd->tx_cmd_sz + cmd->rx_cmd_sz;
+
+ for (i = 0; i < sz; i++) {
+ if(i < cmd->tx_cmd_sz) {
+ byte = tx_buf[i];
+ error = mtk_spi_txrx(sc, &byte,
+ MTK_SPI_WRITE);
+ if (error)
+ goto mtk_spi_transfer_fail;
+ continue;
+ }
+ error = mtk_spi_txrx(sc, &byte,
+ MTK_SPI_READ);
+ if (error)
+ goto mtk_spi_transfer_fail;
+ buf[i] = byte;
+ }
+ }
+
+ /*
+ * Transfer/Receive data
+ */
+
+ if (cmd->tx_data_sz + cmd->rx_data_sz) {
+ write = (cmd->tx_data_sz > 0)?1:0;
+ buf = (uint8_t *)(write ? cmd->tx_data : cmd->rx_data);
+ sz = write ? cmd->tx_data_sz : cmd->rx_data_sz;
+
+ for (i = 0; i < sz; i++) {
+ byte = buf[i];
+ error = mtk_spi_txrx(sc, &byte,
+ write ? MTK_SPI_WRITE : MTK_SPI_READ);
+ if (error)
+ goto mtk_spi_transfer_fail;
+ buf[i] = byte;
+ }
+ }
+mtk_spi_transfer_fail:
+ mtk_spi_chip_deactivate(sc);
+
+ return (0);
+}
+
+static phandle_t
+mtk_spi_get_node(device_t bus, device_t dev)
+{
+
+ /* We only have one child, the SPI bus, which needs our own node. */
+ return (ofw_bus_get_node(bus));
+}
+
+static device_method_t mtk_spi_methods[] = {
+ /* Device interface */
+ DEVMETHOD(device_probe, mtk_spi_probe),
+ DEVMETHOD(device_attach, mtk_spi_attach),
+ DEVMETHOD(device_detach, mtk_spi_detach),
+
+ DEVMETHOD(spibus_transfer, mtk_spi_transfer),
+
+ /* ofw_bus interface */
+ DEVMETHOD(ofw_bus_get_node, mtk_spi_get_node),
+
+ DEVMETHOD_END
+};
+
+static driver_t mtk_spi_driver = {
+ .name = "spi",
+ .methods = mtk_spi_methods,
+ .size = sizeof(struct mtk_spi_softc),
+};
+
+static devclass_t mtk_spi_devclass;
+
+DRIVER_MODULE(mtk_spi_v2, simplebus, mtk_spi_driver, mtk_spi_devclass, 0, 0);
diff --git a/sys/mips/mediatek/mtk_spi_v2.h b/sys/mips/mediatek/mtk_spi_v2.h
new file mode 100644
index 0000000..fc7ae31
--- /dev/null
+++ b/sys/mips/mediatek/mtk_spi_v2.h
@@ -0,0 +1,55 @@
+/*-
+ * Copyright (c) 2009, Oleksandr Tymoshenko <gonzo@FreeBSD.org>
+ * Copyright (c) 2011, Aleksandr Rybalko <ray@FreeBSD.org>
+ * Copyright (c) 2013, Alexander A. Mityaev <sansan@adm.ua>
+ * Copyright (c) 2016, Stanislav Galabov <sgalabov@gmail.com>
+ * 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 unmodified, 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 _MTK_SPI_NEWVAR_H_
+#define _MTK_SPI_NEWVAR_H_
+
+/* SPI controller interface */
+
+#define MTK_SPITRANS 0x00
+#define SPIBUSY (1<<16)
+#define SPISTART (1<<8)
+
+#define MTK_SPIMASTER 0x28
+
+#define MTK_SPIMOREBUF 0x2C
+
+#define MTK_SPIOPCODE 0x04
+#define MTK_SPIDATA 0x08
+#define SPIDATA_MASK 0x000000ff
+
+#define MTK_SPI_WRITE 1
+#define MTK_SPI_READ 0
+
+#define MTK_SPIPOLAR 0x38
+
+#endif /* _MTK_SPI_NEWVAR_H_ */
diff --git a/sys/mips/mediatek/mtk_sysctl.c b/sys/mips/mediatek/mtk_sysctl.c
new file mode 100644
index 0000000..c16b55d
--- /dev/null
+++ b/sys/mips/mediatek/mtk_sysctl.c
@@ -0,0 +1,191 @@
+/*-
+ * Copyright (c) 2016 Stanislav Galabov.
+ * 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 <sys/cdefs.h>
+__FBSDID("$FreeBSD$");
+
+#include <sys/param.h>
+#include <sys/systm.h>
+#include <sys/bus.h>
+#include <sys/interrupt.h>
+#include <sys/kernel.h>
+#include <sys/module.h>
+#include <sys/lock.h>
+#include <sys/mutex.h>
+#include <sys/rman.h>
+#include <sys/malloc.h>
+
+#include <machine/fdt.h>
+
+#include <dev/ofw/openfirm.h>
+#include <dev/ofw/ofw_bus.h>
+#include <dev/ofw/ofw_bus_subr.h>
+
+#include <mips/mediatek/mtk_sysctl.h>
+
+#include <dev/fdt/fdt_common.h>
+
+struct mtk_sysctl_softc {
+ device_t dev;
+ struct resource *mem_res;
+ int mem_rid;
+ struct mtx mtx;
+};
+
+static struct mtk_sysctl_softc *mtk_sysctl_sc = NULL;
+
+static struct ofw_compat_data compat_data[] = {
+ { "ralink,rt2880-sysc", 1 },
+ { "ralink,rt3050-sysc", 1 },
+ { "ralink,rt3352-sysc", 1 },
+ { "ralink,rt3883-sysc", 1 },
+ { "ralink,rt5350-sysc", 1 },
+ { "ralink,mt7620a-sysc", 1 },
+ { "mtk,mt7621-sysc", 1 },
+
+ /* Sentinel */
+ { NULL, 0 }
+};
+
+#define MTK_SYSCTL_LOCK(sc) mtx_lock_spin(&(sc)->mtx)
+#define MTK_SYSCTL_UNLOCK(sc) mtx_unlock_spin(&(sc)->mtx)
+#define MTK_SYSCTL_LOCK_INIT(sc) \
+ mtx_init(&(sc)->mtx, device_get_nameunit((sc)->dev), \
+ "mtk_sysctl", MTX_SPIN)
+#define MTK_SYSCTL_LOCK_DESTROY(sc) mtx_destroy(&(sc)->mtx)
+
+static int
+mtk_sysctl_probe(device_t dev)
+{
+
+ if (!ofw_bus_status_okay(dev))
+ return (ENXIO);
+
+ if (ofw_bus_search_compatible(dev, compat_data)->ocd_data == 0)
+ return (ENXIO);
+
+ device_set_desc(dev, "MTK System Controller");
+
+ return (BUS_PROBE_DEFAULT);
+}
+
+static int mtk_sysctl_detach(device_t);
+
+static int
+mtk_sysctl_attach(device_t dev)
+{
+ struct mtk_sysctl_softc *sc = device_get_softc(dev);
+
+ if (device_get_unit(dev) != 0 || mtk_sysctl_sc != NULL) {
+ device_printf(dev, "Only one sysctl module supported\n");
+ return (ENXIO);
+ }
+
+ mtk_sysctl_sc = sc;
+
+ /* Map control/status registers. */
+ sc->mem_rid = 0;
+ sc->mem_res = bus_alloc_resource_any(dev, SYS_RES_MEMORY,
+ &sc->mem_rid, RF_ACTIVE);
+
+ if (sc->mem_res == NULL) {
+ device_printf(dev, "couldn't map memory\n");
+ mtk_sysctl_detach(dev);
+ return (ENXIO);
+ }
+
+ sc->dev = dev;
+
+ MTK_SYSCTL_LOCK_INIT(sc);
+
+ return (0);
+}
+
+static int
+mtk_sysctl_detach(device_t dev)
+{
+ struct mtk_sysctl_softc *sc = device_get_softc(dev);
+
+ if (sc->mem_res)
+ bus_release_resource(dev, SYS_RES_MEMORY, sc->mem_rid,
+ sc->mem_res);
+
+ MTK_SYSCTL_LOCK_DESTROY(sc);
+
+ return(0);
+}
+
+uint32_t
+mtk_sysctl_get(uint32_t reg)
+{
+ uint32_t val;
+
+ MTK_SYSCTL_LOCK(mtk_sysctl_sc);
+ val = bus_read_4(mtk_sysctl_sc->mem_res, reg);
+ MTK_SYSCTL_UNLOCK(mtk_sysctl_sc);
+
+ return (val);
+}
+
+void
+mtk_sysctl_set(uint32_t reg, uint32_t val)
+{
+
+ MTK_SYSCTL_LOCK(mtk_sysctl_sc);
+ bus_write_4(mtk_sysctl_sc->mem_res, reg, val);
+ MTK_SYSCTL_UNLOCK(mtk_sysctl_sc);
+}
+
+void
+mtk_sysctl_clr_set(uint32_t reg, uint32_t clr, uint32_t set)
+{
+ uint32_t val;
+
+ MTK_SYSCTL_LOCK(mtk_sysctl_sc);
+ val = bus_read_4(mtk_sysctl_sc->mem_res, reg);
+ val &= ~(clr);
+ val |= set;
+ bus_write_4(mtk_sysctl_sc->mem_res, reg, val);
+ MTK_SYSCTL_UNLOCK(mtk_sysctl_sc);
+}
+
+static device_method_t mtk_sysctl_methods[] = {
+ DEVMETHOD(device_probe, mtk_sysctl_probe),
+ DEVMETHOD(device_attach, mtk_sysctl_attach),
+ DEVMETHOD(device_detach, mtk_sysctl_detach),
+
+ DEVMETHOD_END
+};
+
+static driver_t mtk_sysctl_driver = {
+ "sysc",
+ mtk_sysctl_methods,
+ sizeof(struct mtk_sysctl_softc),
+};
+static devclass_t mtk_sysctl_devclass;
+
+EARLY_DRIVER_MODULE(mtk_sysctl, simplebus, mtk_sysctl_driver,
+ mtk_sysctl_devclass, 0, 0, BUS_PASS_INTERRUPT + BUS_PASS_ORDER_EARLY);
diff --git a/sys/mips/mediatek/mtk_sysctl.h b/sys/mips/mediatek/mtk_sysctl.h
new file mode 100644
index 0000000..0ef908e
--- /dev/null
+++ b/sys/mips/mediatek/mtk_sysctl.h
@@ -0,0 +1,59 @@
+/*-
+ * Copyright (c) 2016 Stanislav Galabov.
+ * 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 unmodified, 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 _MTK_SYSCTL_H_
+#define _MTK_SYSCTL_H_
+
+/* System Control */
+#define SYSCTL_CHIPID0_3 0x00
+#define SYSCTL_CHIPID4_7 0x04
+
+#define SYSCTL_REVID 0x0C
+#define SYSCTL_REVID_MASK 0xFFFF
+#define SYSCTL_MT7621_REV_E 0x0101
+
+#define SYSCTL_SYSCFG 0x10
+#define SYSCTL_SYSCFG1 0x14
+#define SYSCTL_CLKCFG0 0x2C
+#define SYSCTL_CLKCFG1 0x30
+#define SYSCTL_RSTCTRL 0x34
+#define SYSCTL_GPIOMODE 0x60
+
+#define SYSCTL_CUR_CLK_STS 0x44
+
+#define SYSCTL_MT7620_CPLL_CFG0 0x54
+#define SYSCTL_MT7620_CPLL_CFG1 0x58
+
+#define SYSCFG1_USB_HOST_MODE (1<<10)
+
+extern uint32_t mtk_sysctl_get(uint32_t);
+extern void mtk_sysctl_set(uint32_t, uint32_t);
+extern void mtk_sysctl_clr_set(uint32_t, uint32_t, uint32_t);
+
+#endif /* _MTK_SYSCTL_H_ */
diff --git a/sys/mips/mediatek/mtk_usb_phy.c b/sys/mips/mediatek/mtk_usb_phy.c
new file mode 100644
index 0000000..d400720
--- /dev/null
+++ b/sys/mips/mediatek/mtk_usb_phy.c
@@ -0,0 +1,324 @@
+/*-
+ * Copyright (c) 2016 Stanislav Galabov.
+ * 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 ``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.
+ */
+
+#include <sys/cdefs.h>
+__FBSDID("$FreeBSD$");
+
+#include <sys/stddef.h>
+#include <sys/param.h>
+#include <sys/types.h>
+#include <sys/kernel.h>
+#include <sys/bus.h>
+#include <sys/module.h>
+
+#include <machine/bus.h>
+
+#include <dev/fdt/fdt_common.h>
+#include <dev/fdt/fdt_clock.h>
+#include <mips/mediatek/fdt_reset.h>
+#include <dev/ofw/ofw_bus.h>
+#include <dev/ofw/ofw_bus_subr.h>
+
+#include <mips/mediatek/mtk_sysctl.h>
+#include <mips/mediatek/mtk_soc.h>
+#include <mips/mediatek/mtk_usb_phy.h>
+
+#define RESET_ASSERT_DELAY 1000
+#define RESET_DEASSERT_DELAY 10000
+
+struct mtk_usb_phy_softc {
+ device_t dev;
+ struct resource * res;
+ uint32_t fm_base;
+ uint32_t u2_base;
+ uint32_t sr_coef;
+ uint32_t socid;
+};
+
+#define USB_PHY_READ(_sc, _off) bus_read_4((_sc)->res, (_off))
+#define USB_PHY_WRITE(_sc, _off, _val) bus_write_4((_sc)->res, (_off), (_val))
+#define USB_PHY_CLR_SET(_sc, _off, _clr, _set) \
+ USB_PHY_WRITE(_sc, _off, ((USB_PHY_READ(_sc, _off) & ~(_clr)) | (_set)))
+
+#define USB_PHY_READ_U2(_sc, _off) \
+ USB_PHY_READ((_sc), ((_sc)->u2_base + (_off)))
+#define USB_PHY_WRITE_U2(_sc, _off, _val) \
+ USB_PHY_WRITE((_sc), ((_sc)->u2_base + (_off)), (_val))
+#define USB_PHY_CLR_SET_U2(_sc, _off, _clr, _set) \
+ USB_PHY_WRITE_U2((_sc), (_off), ((USB_PHY_READ_U2((_sc), (_off)) & \
+ ~(_clr)) | (_set)))
+#define USB_PHY_BARRIER(_sc) bus_barrier((_sc)->res, 0, 0, \
+ BUS_SPACE_BARRIER_WRITE | BUS_SPACE_BARRIER_READ)
+
+#define USB_PHY_READ_FM(_sc, _off) \
+ USB_PHY_READ((_sc), ((_sc)->fm_base + (_off)))
+#define USB_PHY_WRITE_FM(_sc, _off) \
+ USB_PHY_WRITE((_sc), ((_sc)->fm_base + (_off)), (_val))
+#define USB_PHY_CLR_SET_FM(_sc, _off, _clr, _set) \
+ USB_PHY_WRITE_U2((_sc), (_off), ((USB_PHY_READ_U2((_sc), (_off)) & \
+ ~(_clr)) | (_set)))
+
+static void mtk_usb_phy_mt7621_init(device_t);
+static void mtk_usb_phy_mt7628_init(device_t);
+
+static struct ofw_compat_data compat_data[] = {
+ { "ralink,mt7620a-usbphy", MTK_SOC_MT7620A },
+ { "ralink,mt7628an-usbphy", MTK_SOC_MT7628 },
+ { "ralink,rt3xxx-usbphy", MTK_SOC_RT3352 },
+ { NULL, MTK_SOC_UNKNOWN }
+};
+
+static int
+mtk_usb_phy_probe(device_t dev)
+{
+ struct mtk_usb_phy_softc *sc = device_get_softc(dev);
+
+ if (!ofw_bus_status_okay(dev))
+ return (ENXIO);
+ if ((sc->socid =
+ ofw_bus_search_compatible(dev, compat_data)->ocd_data) ==
+ MTK_SOC_UNKNOWN)
+ return (ENXIO);
+
+ device_set_desc(dev, "MTK USB PHY");
+
+ return (0);
+}
+
+static int
+mtk_usb_phy_attach(device_t dev)
+{
+ struct mtk_usb_phy_softc * sc = device_get_softc(dev);
+ phandle_t node;
+ uint32_t val;
+ int rid;
+
+ sc->dev = dev;
+
+ /* Get our FDT node and SoC id */
+ node = ofw_bus_get_node(dev);
+
+ /* Now let's see about setting USB to host or device mode */
+ /* XXX: is it the same for all SoCs? */
+ val = mtk_sysctl_get(SYSCTL_SYSCFG1);
+ if (OF_hasprop(node, "mtk,usb-device"))
+ val &= ~SYSCFG1_USB_HOST_MODE;
+ else
+ val |= SYSCFG1_USB_HOST_MODE;
+ mtk_sysctl_set(SYSCTL_SYSCFG1, val);
+
+ /* If we have clocks defined - enable them */
+ if (OF_hasprop(node, "clocks"))
+ fdt_clock_enable_all(dev);
+
+ /* If we have resets defined - perform a reset sequence */
+ if (OF_hasprop(node, "resets")) {
+ fdt_reset_assert_all(dev);
+ DELAY(RESET_ASSERT_DELAY);
+ fdt_reset_deassert_all(dev);
+ DELAY(RESET_DEASSERT_DELAY);
+ }
+
+ /* Careful, some devices actually require resources */
+ if (OF_hasprop(node, "reg")) {
+ rid = 0;
+ sc->res = bus_alloc_resource_any(dev, SYS_RES_MEMORY, &rid,
+ RF_ACTIVE);
+ if (sc->res == NULL) {
+ device_printf(dev, "could not map memory\n");
+ return (ENXIO);
+ }
+ } else {
+ sc->res = NULL;
+ }
+
+ /* Some SoCs require specific USB PHY init... handle these */
+ switch (sc->socid) {
+ case MTK_SOC_MT7628: /* Fallthrough */
+ case MTK_SOC_MT7688:
+ if (sc->res == NULL)
+ return (ENXIO);
+ sc->fm_base = MT7628_FM_FEG_BASE;
+ sc->u2_base = MT7628_U2_BASE;
+ sc->sr_coef = MT7628_SR_COEF;
+ mtk_usb_phy_mt7628_init(dev);
+ break;
+ case MTK_SOC_MT7621:
+ if (sc->res == NULL)
+ return (ENXIO);
+ sc->fm_base = MT7621_FM_FEG_BASE;
+ sc->u2_base = MT7621_U2_BASE;
+ sc->sr_coef = MT7621_SR_COEF;
+ mtk_usb_phy_mt7621_init(dev);
+ break;
+ }
+
+ /* We no longer need the resources, release them */
+ if (sc->res != NULL)
+ bus_release_resource(dev, SYS_RES_MEMORY, 0, sc->res);
+
+ return (0);
+}
+
+static int
+mtk_usb_phy_detach(device_t dev)
+{
+ struct mtk_usb_phy_softc *sc = device_get_softc(dev);
+ phandle_t node;
+
+ /* Get our FDT node */
+ node = ofw_bus_get_node(dev);
+
+ /* If we have resets defined - assert them */
+ if (OF_hasprop(node, "resets"))
+ fdt_reset_assert_all(dev);
+
+ /* If we have clocks defined - disable them */
+ if (OF_hasprop(node, "clocks"))
+ fdt_clock_disable_all(dev);
+
+ /* Finally, release resources, if any were allocated */
+ if (sc->res != NULL)
+ bus_release_resource(dev, SYS_RES_MEMORY, 0, sc->res);
+
+ return (0);
+}
+
+/*
+ * Things currently seem to work a lot better without slew rate calibration
+ * both on MT7621 and MT7688, so we leave it out for now.
+ */
+#ifdef notyet
+static void
+mtk_usb_phy_slew_rate_calibration(struct mtk_usb_phy_softc *sc)
+{
+ uint32_t val;
+ int i;
+
+ USB_PHY_CLR_SET_U2(sc, U2_PHY_ACR0, 0, SRCAL_EN);
+ USB_PHY_BARRIER(sc);
+ DELAY(1000);
+
+ USB_PHY_CLR_SET_FM(sc, U2_PHY_FMMONR1, 0, FRCK_EN);
+ USB_PHY_BARRIER(sc);
+ USB_PHY_CLR_SET_FM(sc, U2_PHY_FMCR0, CYCLECNT, 0x400);
+ USB_PHY_BARRIER(sc);
+ USB_PHY_CLR_SET_FM(sc, U2_PHY_FMCR0, 0, FDET_EN);
+ USB_PHY_BARRIER(sc);
+
+ for (i = 0; i < 1000; i++) {
+ if ((val = USB_PHY_READ_FM(sc, U2_PHY_FMMONR0)) != 0) {
+ device_printf(sc->dev, "DONE with FDET\n");
+ break;
+ }
+ DELAY(10000);
+ }
+ device_printf(sc->dev, "After FDET\n");
+
+ USB_PHY_CLR_SET_FM(sc, U2_PHY_FMCR0, FDET_EN, 0);
+ USB_PHY_BARRIER(sc);
+ USB_PHY_CLR_SET_FM(sc, U2_PHY_FMMONR1, FRCK_EN, 0);
+ USB_PHY_BARRIER(sc);
+ USB_PHY_CLR_SET_U2(sc, U2_PHY_ACR0, SRCAL_EN, 0);
+ USB_PHY_BARRIER(sc);
+ DELAY(1000);
+
+ if (val == 0) {
+ USB_PHY_CLR_SET_U2(sc, U2_PHY_ACR0, SRCTRL, 0x4 << SRCTRL_OFF);
+ USB_PHY_BARRIER(sc);
+ } else {
+ val = ((((1024 * 25 * sc->sr_coef) / val) + 500) / 1000) &
+ SRCTRL_MSK;
+ USB_PHY_CLR_SET_U2(sc, U2_PHY_ACR0, SRCTRL, val << SRCTRL_OFF);
+ USB_PHY_BARRIER(sc);
+ }
+}
+#endif
+
+static void
+mtk_usb_phy_mt7621_init(device_t dev)
+{
+#ifdef notyet
+ struct mtk_usb_phy_softc *sc = device_get_softc(dev);
+
+ /* Slew rate calibration only, but for 2 ports */
+ mtk_usb_phy_slew_rate_calibration(sc);
+
+ sc->u2_base = MT7621_U2_BASE_P1;
+ mtk_usb_phy_slew_rate_calibration(sc);
+#endif
+}
+
+static void
+mtk_usb_phy_mt7628_init(device_t dev)
+{
+ struct mtk_usb_phy_softc *sc = device_get_softc(dev);
+
+ /* XXX: possibly add barriers between the next writes? */
+ USB_PHY_WRITE_U2(sc, U2_PHY_DCR0, 0x00ffff02);
+ USB_PHY_BARRIER(sc);
+ USB_PHY_WRITE_U2(sc, U2_PHY_DCR0, 0x00555502);
+ USB_PHY_BARRIER(sc);
+ USB_PHY_WRITE_U2(sc, U2_PHY_DCR0, 0x00aaaa02);
+ USB_PHY_BARRIER(sc);
+ USB_PHY_WRITE_U2(sc, U2_PHY_DCR0, 0x00000402);
+ USB_PHY_BARRIER(sc);
+ USB_PHY_WRITE_U2(sc, U2_PHY_AC0, 0x0048086a);
+ USB_PHY_BARRIER(sc);
+ USB_PHY_WRITE_U2(sc, U2_PHY_AC1, 0x4400001c);
+ USB_PHY_BARRIER(sc);
+ USB_PHY_WRITE_U2(sc, U2_PHY_ACR3, 0xc0200000);
+ USB_PHY_BARRIER(sc);
+ USB_PHY_WRITE_U2(sc, U2_PHY_DTM0, 0x02000000);
+ USB_PHY_BARRIER(sc);
+
+#ifdef notyet
+ /* Slew rate calibration */
+ mtk_usb_phy_slew_rate_calibration(sc);
+#endif
+}
+
+static device_method_t mtk_usb_phy_methods[] = {
+ /* Device interface */
+ DEVMETHOD(device_probe, mtk_usb_phy_probe),
+ DEVMETHOD(device_attach, mtk_usb_phy_attach),
+ DEVMETHOD(device_detach, mtk_usb_phy_detach),
+ DEVMETHOD(device_suspend, bus_generic_suspend),
+ DEVMETHOD(device_resume, bus_generic_resume),
+ DEVMETHOD(device_shutdown, bus_generic_shutdown),
+
+ DEVMETHOD_END
+};
+
+static driver_t mtk_usb_phy_driver = {
+ .name = "usbphy",
+ .methods = mtk_usb_phy_methods,
+ .size = sizeof(struct mtk_usb_phy_softc),
+};
+
+static devclass_t mtk_usb_phy_devclass;
+
+DRIVER_MODULE(usbphy, simplebus, mtk_usb_phy_driver, mtk_usb_phy_devclass, 0,
+ 0);
diff --git a/sys/mips/mediatek/mtk_usb_phy.h b/sys/mips/mediatek/mtk_usb_phy.h
new file mode 100644
index 0000000..24fb661
--- /dev/null
+++ b/sys/mips/mediatek/mtk_usb_phy.h
@@ -0,0 +1,66 @@
+/*-
+ * Copyright (c) 2016 Stanislav Galabov.
+ * 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 _MTK_USB_PHY_H_
+#define _MTK_USB_PHY_H_
+
+#define MT7621_FM_FEG_BASE 0x0100
+#define MT7621_U2_BASE 0x0800
+#define MT7621_U2_BASE_P1 0x1000
+#define MT7621_SR_COEF 28
+
+#define MT7628_FM_FEG_BASE 0x0f00
+#define MT7628_U2_BASE 0x0800
+#define MT7628_SR_COEF 32
+
+#define U2_PHY_AC0 0x00
+#define U2_PHY_AC1 0x04
+#define U2_PHY_AC2 0x08
+#define U2_PHY_ACR0 0x10
+#define SRCAL_EN (1<<23)
+#define SRCTRL_MSK 0x7
+#define SRCTRL_OFF 16
+#define SRCTRL (SRCTRL_MSK<<SRCTRL_OFF)
+#define U2_PHY_ACR1 0x14
+#define U2_PHY_ACR2 0x18
+#define U2_PHY_ACR3 0x1C
+
+#define U2_PHY_DCR0 0x60
+#define U2_PHY_DCR1 0x64
+#define U2_PHY_DTM0 0x68
+#define U2_PHY_DTM1 0x6C
+
+#define U2_PHY_FMCR0 0x00
+#define CYCLECNT (0xffffff)
+#define FDET_EN (1<<24)
+#define U2_PHY_FMCR1 0x04
+#define FRCK_EN (1<<8)
+#define U2_PHY_FMCR2 0x08
+#define U2_PHY_FMMONR0 0x0C
+#define U2_PHY_FMMONR1 0x10
+
+#endif /* _MTK_USB_PHY_H_ */
diff --git a/sys/mips/mediatek/mtk_xhci.c b/sys/mips/mediatek/mtk_xhci.c
new file mode 100644
index 0000000..0899307
--- /dev/null
+++ b/sys/mips/mediatek/mtk_xhci.c
@@ -0,0 +1,298 @@
+#include <sys/cdefs.h>
+__FBSDID("$FreeBSD$");
+
+/*-
+ * Copyright (c) 2015 Stanislav Galabov. All rights reserved.
+ * Copyright (c) 2010,2011 Aleksandr Rybalko. All rights reserved.
+ * Copyright (c) 2007-2008 Hans Petter Selasky. 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 <sys/stdint.h>
+#include <sys/stddef.h>
+#include <sys/param.h>
+#include <sys/queue.h>
+#include <sys/types.h>
+#include <sys/systm.h>
+#include <sys/kernel.h>
+#include <sys/bus.h>
+#include <sys/module.h>
+#include <sys/lock.h>
+#include <sys/mutex.h>
+#include <sys/condvar.h>
+#include <sys/sysctl.h>
+#include <sys/sx.h>
+#include <sys/unistd.h>
+#include <sys/callout.h>
+#include <sys/malloc.h>
+#include <sys/priv.h>
+#include <sys/rman.h>
+
+#include <dev/usb/usb.h>
+#include <dev/usb/usbdi.h>
+
+#include <dev/usb/usb_core.h>
+#include <dev/usb/usb_busdma.h>
+#include <dev/usb/usb_process.h>
+#include <dev/usb/usb_util.h>
+
+#include <dev/usb/usb_controller.h>
+#include <dev/usb/usb_bus.h>
+
+#include <dev/usb/controller/xhci.h>
+
+#include <dev/ofw/openfirm.h>
+#include <dev/ofw/ofw_bus.h>
+#include <dev/ofw/ofw_bus_subr.h>
+
+#define XHCI_HC_DEVSTR "MTK USB 3.0 controller"
+
+static device_probe_t mtk_xhci_fdt_probe;
+static device_attach_t mtk_xhci_fdt_attach;
+static device_detach_t mtk_xhci_fdt_detach;
+
+static void mtk_xhci_fdt_init(device_t dev);
+
+static int
+mtk_xhci_fdt_probe(device_t self)
+{
+
+ if (!ofw_bus_status_okay(self))
+ return (ENXIO);
+
+ if (!ofw_bus_is_compatible(self, "mtk,usb-xhci"))
+ return (ENXIO);
+
+ device_set_desc(self, XHCI_HC_DEVSTR);
+
+ return (BUS_PROBE_DEFAULT);
+}
+
+static int
+mtk_xhci_fdt_attach(device_t self)
+{
+ struct xhci_softc *sc = device_get_softc(self);
+ int err;
+ int rid;
+
+ /* initialise some bus fields */
+ sc->sc_bus.parent = self;
+ sc->sc_bus.devices = sc->sc_devices;
+ sc->sc_bus.devices_max = XHCI_MAX_DEVICES;
+ sc->sc_bus.dma_bits = 32;
+
+ rid = 0;
+ sc->sc_io_res = bus_alloc_resource_any(self, SYS_RES_MEMORY, &rid,
+ RF_ACTIVE);
+ if (!sc->sc_io_res) {
+ device_printf(self, "Could not map memory\n");
+ goto error;
+ }
+ sc->sc_io_tag = rman_get_bustag(sc->sc_io_res);
+ sc->sc_io_hdl = rman_get_bushandle(sc->sc_io_res);
+ sc->sc_io_size = rman_get_size(sc->sc_io_res);
+
+ mtk_xhci_fdt_init(self);
+
+ rid = 0;
+ sc->sc_irq_res = bus_alloc_resource_any(self, SYS_RES_IRQ, &rid,
+ RF_SHAREABLE | RF_ACTIVE);
+ if (sc->sc_irq_res == NULL) {
+ device_printf(self, "Could not allocate irq\n");
+ goto error;
+ }
+
+ sc->sc_bus.bdev = device_add_child(self, "usbus", -1);
+ if (!(sc->sc_bus.bdev)) {
+ device_printf(self, "Could not add USB device\n");
+ goto error;
+ }
+ device_set_ivars(sc->sc_bus.bdev, &sc->sc_bus);
+ device_set_desc(sc->sc_bus.bdev, XHCI_HC_DEVSTR);
+
+ sprintf(sc->sc_vendor, "Mediatek");
+
+ err = bus_setup_intr(self, sc->sc_irq_res, INTR_TYPE_BIO | INTR_MPSAFE,
+ NULL, (driver_intr_t *)xhci_interrupt, sc, &sc->sc_intr_hdl);
+ if (err) {
+ device_printf(self, "Could not setup irq, %d\n", err);
+ sc->sc_intr_hdl = NULL;
+ goto error;
+ }
+
+ err = xhci_init(sc, self, 1);
+ if (err == 0)
+ err = xhci_halt_controller(sc);
+ if (err == 0)
+ err = xhci_start_controller(sc);
+ if (err == 0)
+ err = device_probe_and_attach(sc->sc_bus.bdev);
+ if (err) {
+ device_printf(self, "USB init failed err=%d\n", err);
+ goto error;
+ }
+ return (0);
+
+error:
+ mtk_xhci_fdt_detach(self);
+ return (ENXIO);
+}
+
+static int
+mtk_xhci_fdt_detach(device_t self)
+{
+ struct xhci_softc *sc = device_get_softc(self);
+ device_t bdev;
+ int err;
+
+ if (sc->sc_bus.bdev) {
+ bdev = sc->sc_bus.bdev;
+ device_detach(bdev);
+ device_delete_child(self, bdev);
+ }
+ /* during module unload there are lots of children leftover */
+ device_delete_children(self);
+
+ if (sc->sc_irq_res && sc->sc_intr_hdl) {
+ /*
+ * only call xhci_detach() after xhci_init()
+ */
+ xhci_uninit(sc);
+
+ err = bus_teardown_intr(self, sc->sc_irq_res, sc->sc_intr_hdl);
+ if (err)
+ device_printf(self, "Could not tear down irq, %d\n",
+ err);
+ sc->sc_intr_hdl = NULL;
+ }
+ if (sc->sc_irq_res) {
+ bus_release_resource(self, SYS_RES_IRQ, 0,
+ sc->sc_irq_res);
+ sc->sc_irq_res = NULL;
+ }
+ if (sc->sc_io_res) {
+ bus_release_resource(self, SYS_RES_MEMORY, 0,
+ sc->sc_io_res);
+ sc->sc_io_res = NULL;
+ }
+
+ return (0);
+}
+
+static device_method_t mtk_xhci_fdt_methods[] = {
+ /* Device interface */
+ DEVMETHOD(device_probe, mtk_xhci_fdt_probe),
+ DEVMETHOD(device_attach, mtk_xhci_fdt_attach),
+ DEVMETHOD(device_detach, mtk_xhci_fdt_detach),
+ DEVMETHOD(device_suspend, bus_generic_suspend),
+ DEVMETHOD(device_resume, bus_generic_resume),
+ DEVMETHOD(device_shutdown, bus_generic_shutdown),
+
+ DEVMETHOD_END
+};
+
+static driver_t mtk_xhci_fdt_driver = {
+ .name = "xhci",
+ .methods = mtk_xhci_fdt_methods,
+ .size = sizeof(struct xhci_softc),
+};
+
+static devclass_t mtk_xhci_fdt_devclass;
+
+DRIVER_MODULE(xhci, simplebus, mtk_xhci_fdt_driver, mtk_xhci_fdt_devclass, 0,
+ 0);
+
+#define USB_HDMA_CFG 0x950
+#define USB_HDMA_CFG_MT7621_VAL 0x10E0E0C
+
+#define U3_LTSSM_TIMING_PARAM3 0x2514
+#define U3_LTSSM_TIMING_VAL 0x3E8012C
+
+#define SYNC_HS_EOF 0x938
+#define SYNC_HS_EOF_VAL 0x201F3
+
+#define USB_IP_SPAR0 0x107C8
+#define USB_IP_SPAR0_VAL 1
+
+#define U2_PHY_BASE_P0 0x10800
+#define U2_PHY_BASE_P1 0x11000
+#define U2_PHYD_CR1 0x64
+#define U2_PHYD_CR1_MASK (3<<18)
+#define U2_PHYD_CR1_VAL (1<<18)
+
+#define USB_IP_PW_CTRL 0x10700
+#define USB_IP_PW_CTRL_1 0x10704
+#define USB_IP_CAP 0x10724
+#define USB_U3_CTRL(p) (0x10730 + ((p) * 0x08))
+#define USB_U2_CTRL(p) (0x10750 + ((p) * 0x08))
+
+#define USB_IP_SW_RST (1 << 0)
+#define USB_IP_PDN (1 << 0)
+
+#define USB_PORT_DIS (1 << 0)
+#define USB_PORT_PDN (1 << 1)
+
+#define U3_PORT_NUM(p) (p & 0xFF)
+#define U2_PORT_NUM(p) ((p>>8) & 0xFF)
+
+#define RD4(_sc, _reg) bus_read_4((_sc)->sc_io_res, (_reg))
+#define WR4(_sc, _reg, _val) bus_write_4((_sc)->sc_io_res, (_reg), (_val))
+#define CLRSET4(_sc, _reg, _clr, _set) \
+ WR4((_sc), (_reg), (RD4((_sc), (_reg)) & ~(_clr)) | (_set))
+
+static void
+mtk_xhci_fdt_init(device_t dev)
+{
+ struct xhci_softc *sc;
+ uint32_t temp, u3_ports, u2_ports, i;
+
+ sc = device_get_softc(dev);
+
+ temp = RD4(sc, USB_IP_CAP);
+ u3_ports = U3_PORT_NUM(temp);
+ u2_ports = U2_PORT_NUM(temp);
+
+ device_printf(dev, "%d USB3 ports, %d USB2 ports\n",
+ u3_ports, u2_ports);
+
+ CLRSET4(sc, USB_IP_PW_CTRL, 0, USB_IP_SW_RST);
+ CLRSET4(sc, USB_IP_PW_CTRL, USB_IP_SW_RST, 0);
+ CLRSET4(sc, USB_IP_PW_CTRL_1, USB_IP_PDN, 0);
+
+ for (i = 0; i < u3_ports; i++)
+ CLRSET4(sc, USB_U3_CTRL(i), USB_PORT_PDN | USB_PORT_DIS, 0);
+
+ for (i = 0; i < u2_ports; i++)
+ CLRSET4(sc, USB_U2_CTRL(i), USB_PORT_PDN | USB_PORT_DIS, 0);
+
+ DELAY(100000);
+
+ WR4(sc, USB_HDMA_CFG, USB_HDMA_CFG_MT7621_VAL);
+ WR4(sc, U3_LTSSM_TIMING_PARAM3, U3_LTSSM_TIMING_VAL);
+ WR4(sc, SYNC_HS_EOF, SYNC_HS_EOF_VAL);
+ WR4(sc, USB_IP_SPAR0, USB_IP_SPAR0_VAL);
+ CLRSET4(sc, U2_PHY_BASE_P0 + U2_PHYD_CR1, U2_PHYD_CR1_MASK,
+ U2_PHYD_CR1_VAL);
+ CLRSET4(sc, U2_PHY_BASE_P1 + U2_PHYD_CR1, U2_PHYD_CR1_MASK,
+ U2_PHYD_CR1_VAL);
+}
diff --git a/sys/mips/mediatek/uart_dev_mtk.c b/sys/mips/mediatek/uart_dev_mtk.c
new file mode 100644
index 0000000..5993cb6
--- /dev/null
+++ b/sys/mips/mediatek/uart_dev_mtk.c
@@ -0,0 +1,552 @@
+/* $NetBSD: uart.c,v 1.2 2007/03/23 20:05:47 dogcow Exp $ */
+
+/*-
+ * Copyright (c) 2013, Alexander A. Mityaev <sansan@adm.ua>
+ * Copyright (c) 2010 Aleksandr Rybalko.
+ * Copyright (c) 2007 Ruslan Ermilov and Vsevolod Lobko.
+ * Copyright (c) 2007 Oleksandr Tymoshenko.
+ * 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 AUTHORS ``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 AUTHORS
+ * 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 <sys/cdefs.h>
+__FBSDID("$FreeBSD$");
+
+#include "opt_ddb.h"
+
+#include <sys/param.h>
+#include <sys/systm.h>
+#include <sys/bus.h>
+#include <sys/conf.h>
+#include <sys/kdb.h>
+#include <sys/reboot.h>
+#include <sys/sysctl.h>
+#include <sys/kernel.h>
+#include <machine/bus.h>
+#include <machine/fdt.h>
+
+#include <dev/uart/uart.h>
+#include <dev/uart/uart_cpu.h>
+#include <dev/uart/uart_cpu_fdt.h>
+#include <dev/uart/uart_bus.h>
+
+#include <mips/mediatek/uart_dev_mtk.h>
+#include <mips/mediatek/mtk_soc.h>
+#include <mips/mediatek/mtk_sysctl.h>
+
+#include "uart_if.h"
+
+/* Set some reference clock value. Real value will be taken from FDT */
+#define DEFAULT_RCLK (120 * 1000 * 1000)
+
+/*
+ * Low-level UART interface.
+ */
+static int mtk_uart_probe(struct uart_bas *bas);
+static void mtk_uart_init(struct uart_bas *bas, int, int, int, int);
+static void mtk_uart_term(struct uart_bas *bas);
+static void mtk_uart_putc(struct uart_bas *bas, int);
+static int mtk_uart_rxready(struct uart_bas *bas);
+static int mtk_uart_getc(struct uart_bas *bas, struct mtx *);
+
+static struct uart_ops uart_mtk_ops = {
+ .probe = mtk_uart_probe,
+ .init = mtk_uart_init,
+ .term = mtk_uart_term,
+ .putc = mtk_uart_putc,
+ .rxready = mtk_uart_rxready,
+ .getc = mtk_uart_getc,
+};
+
+static int uart_output = 1;
+TUNABLE_INT("kern.uart_output", &uart_output);
+SYSCTL_INT(_kern, OID_AUTO, uart_output, CTLFLAG_RW,
+ &uart_output, 0, "UART output enabled.");
+
+static int
+mtk_uart_probe(struct uart_bas *bas)
+{
+ return (0);
+}
+
+static void
+mtk_uart_init(struct uart_bas *bas, int baudrate, int databits,
+ int stopbits, int parity)
+{
+ /* CLKDIV = 384000000/ 3/ 16/ br */
+ /* for 384MHz CLKDIV = 8000000 / baudrate; */
+ switch (databits) {
+ case 5:
+ databits = UART_LCR_5B;
+ break;
+ case 6:
+ databits = UART_LCR_6B;
+ break;
+ case 7:
+ databits = UART_LCR_7B;
+ break;
+ case 8:
+ databits = UART_LCR_8B;
+ break;
+ default:
+ /* Unsupported */
+ return;
+ }
+ switch (parity) {
+ case UART_PARITY_EVEN: parity = (UART_LCR_PEN|UART_LCR_EVEN); break;
+ case UART_PARITY_ODD: parity = (UART_LCR_PEN); break;
+ case UART_PARITY_NONE: parity = 0; break;
+ /* Unsupported */
+ default: return;
+ }
+
+ if (bas->rclk && baudrate) {
+ uart_setreg(bas, UART_CDDL_REG, bas->rclk/16/baudrate);
+ uart_barrier(bas);
+ }
+
+ uart_setreg(bas, UART_LCR_REG, databits |
+ (stopbits==1?0:UART_LCR_STB_15) |
+ parity);
+ uart_barrier(bas);
+}
+
+static void
+mtk_uart_term(struct uart_bas *bas)
+{
+ uart_setreg(bas, UART_MCR_REG, 0);
+ uart_barrier(bas);
+}
+
+static void
+mtk_uart_putc(struct uart_bas *bas, int c)
+{
+ char chr;
+ if (!uart_output) return;
+ chr = c;
+ while (!(uart_getreg(bas, UART_LSR_REG) & UART_LSR_THRE));
+ uart_setreg(bas, UART_TX_REG, c);
+ uart_barrier(bas);
+ while (!(uart_getreg(bas, UART_LSR_REG) & UART_LSR_THRE));
+}
+
+static int
+mtk_uart_rxready(struct uart_bas *bas)
+{
+ if (uart_getreg(bas, UART_LSR_REG) & UART_LSR_DR)
+ return (1);
+ return (0);
+}
+
+static int
+mtk_uart_getc(struct uart_bas *bas, struct mtx *hwmtx)
+{
+ int c;
+
+ uart_lock(hwmtx);
+
+ while (!(uart_getreg(bas, UART_LSR_REG) & UART_LSR_DR)) {
+ uart_unlock(hwmtx);
+ DELAY(10);
+ uart_lock(hwmtx);
+ }
+
+ c = uart_getreg(bas, UART_RX_REG);
+
+ uart_unlock(hwmtx);
+
+ return (c);
+}
+
+/*
+ * High-level UART interface.
+ */
+struct uart_mtk_softc {
+ struct uart_softc base;
+ uint8_t ier_mask;
+ uint8_t ier;
+};
+
+static int mtk_uart_bus_attach(struct uart_softc *);
+static int mtk_uart_bus_detach(struct uart_softc *);
+static int mtk_uart_bus_flush(struct uart_softc *, int);
+static int mtk_uart_bus_getsig(struct uart_softc *);
+static int mtk_uart_bus_ioctl(struct uart_softc *, int, intptr_t);
+static int mtk_uart_bus_ipend(struct uart_softc *);
+static int mtk_uart_bus_param(struct uart_softc *, int, int, int, int);
+static int mtk_uart_bus_probe(struct uart_softc *);
+static int mtk_uart_bus_receive(struct uart_softc *);
+static int mtk_uart_bus_setsig(struct uart_softc *, int);
+static int mtk_uart_bus_transmit(struct uart_softc *);
+static void mtk_uart_bus_grab(struct uart_softc *);
+static void mtk_uart_bus_ungrab(struct uart_softc *);
+
+static kobj_method_t uart_mtk_methods[] = {
+ KOBJMETHOD(uart_attach, mtk_uart_bus_attach),
+ KOBJMETHOD(uart_detach, mtk_uart_bus_detach),
+ KOBJMETHOD(uart_flush, mtk_uart_bus_flush),
+ KOBJMETHOD(uart_getsig, mtk_uart_bus_getsig),
+ KOBJMETHOD(uart_ioctl, mtk_uart_bus_ioctl),
+ KOBJMETHOD(uart_ipend, mtk_uart_bus_ipend),
+ KOBJMETHOD(uart_param, mtk_uart_bus_param),
+ KOBJMETHOD(uart_probe, mtk_uart_bus_probe),
+ KOBJMETHOD(uart_receive, mtk_uart_bus_receive),
+ KOBJMETHOD(uart_setsig, mtk_uart_bus_setsig),
+ KOBJMETHOD(uart_transmit, mtk_uart_bus_transmit),
+ KOBJMETHOD(uart_grab, mtk_uart_bus_grab),
+ KOBJMETHOD(uart_ungrab, mtk_uart_bus_ungrab),
+ { 0, 0 }
+};
+
+struct uart_class uart_mtk_class = {
+ "uart_mtk",
+ uart_mtk_methods,
+ sizeof(struct uart_mtk_softc),
+ .uc_ops = &uart_mtk_ops,
+ .uc_range = 1, /* use hinted range */
+ .uc_rclk = 0
+};
+
+static struct ofw_compat_data compat_data[] = {
+ { "ralink,rt2880-uart", (uintptr_t)&uart_mtk_class },
+ { "ralink,rt3050-uart", (uintptr_t)&uart_mtk_class },
+ { "ralink,rt3352-uart", (uintptr_t)&uart_mtk_class },
+ { "ralink,rt3883-uart", (uintptr_t)&uart_mtk_class },
+ { "ralink,rt5350-uart", (uintptr_t)&uart_mtk_class },
+ { "ralink,mt7620a-uart", (uintptr_t)&uart_mtk_class },
+ { NULL, (uintptr_t)NULL },
+};
+UART_FDT_CLASS_AND_DEVICE(compat_data);
+
+
+#define SIGCHG(c, i, s, d) \
+ if (c) { \
+ i |= (i & s) ? s : s | d; \
+ } else { \
+ i = (i & s) ? (i & ~s) | d : i; \
+ }
+
+/*
+ * Disable TX interrupt. uart should be locked
+ */
+static __inline void
+mtk_uart_disable_txintr(struct uart_softc *sc)
+{
+ struct uart_bas *bas = &sc->sc_bas;
+ uint8_t cr;
+
+ cr = uart_getreg(bas, UART_IER_REG);
+ cr &= ~UART_IER_ETBEI;
+ uart_setreg(bas, UART_IER_REG, cr);
+ uart_barrier(bas);
+}
+
+/*
+ * Enable TX interrupt. uart should be locked
+ */
+static __inline void
+mtk_uart_enable_txintr(struct uart_softc *sc)
+{
+ struct uart_bas *bas = &sc->sc_bas;
+ uint8_t cr;
+
+ cr = uart_getreg(bas, UART_IER_REG);
+ cr |= UART_IER_ETBEI;
+ uart_setreg(bas, UART_IER_REG, cr);
+ uart_barrier(bas);
+}
+
+static int
+mtk_uart_bus_attach(struct uart_softc *sc)
+{
+ struct uart_bas *bas;
+ struct uart_devinfo *di;
+ struct uart_mtk_softc *usc = (struct uart_mtk_softc *)sc;
+
+ bas = &sc->sc_bas;
+
+ if (!bas->rclk) {
+ bas->rclk = mtk_soc_get_uartclk();
+ }
+
+ if (sc->sc_sysdev != NULL) {
+ di = sc->sc_sysdev;
+ mtk_uart_init(bas, di->baudrate, di->databits, di->stopbits,
+ di->parity);
+ } else {
+ mtk_uart_init(bas, 57600, 8, 1, 0);
+ }
+
+ sc->sc_rxfifosz = 16;
+ sc->sc_txfifosz = 16;
+
+ (void)mtk_uart_bus_getsig(sc);
+
+ /* Enable FIFO */
+ uart_setreg(bas, UART_FCR_REG,
+ uart_getreg(bas, UART_FCR_REG) |
+ UART_FCR_FIFOEN | UART_FCR_TXTGR_1 | UART_FCR_RXTGR_1);
+ uart_barrier(bas);
+ /* Enable interrupts */
+ usc->ier_mask = 0xf0;
+ uart_setreg(bas, UART_IER_REG,
+ UART_IER_EDSSI | UART_IER_ELSI | UART_IER_ERBFI);
+ uart_barrier(bas);
+
+ return (0);
+}
+
+static int
+mtk_uart_bus_detach(struct uart_softc *sc)
+{
+ return (0);
+}
+
+static int
+mtk_uart_bus_flush(struct uart_softc *sc, int what)
+{
+ struct uart_bas *bas = &sc->sc_bas;
+ uint32_t fcr = uart_getreg(bas, UART_FCR_REG);
+
+ if (what & UART_FLUSH_TRANSMITTER) {
+ uart_setreg(bas, UART_FCR_REG, fcr|UART_FCR_TXRST);
+ uart_barrier(bas);
+ }
+ if (what & UART_FLUSH_RECEIVER) {
+ uart_setreg(bas, UART_FCR_REG, fcr|UART_FCR_RXRST);
+ uart_barrier(bas);
+ }
+ uart_setreg(bas, UART_FCR_REG, fcr);
+ uart_barrier(bas);
+ return (0);
+}
+
+static int
+mtk_uart_bus_getsig(struct uart_softc *sc)
+{
+ uint32_t new, old, sig;
+ uint8_t bes;
+
+ return(0);
+ do {
+ old = sc->sc_hwsig;
+ sig = old;
+ uart_lock(sc->sc_hwmtx);
+ bes = uart_getreg(&sc->sc_bas, UART_MSR_REG);
+ uart_unlock(sc->sc_hwmtx);
+ /* XXX: chip can show delta */
+ SIGCHG(bes & UART_MSR_CTS, sig, SER_CTS, SER_DCTS);
+ SIGCHG(bes & UART_MSR_DCD, sig, SER_DCD, SER_DDCD);
+ SIGCHG(bes & UART_MSR_DSR, sig, SER_DSR, SER_DDSR);
+ new = sig & ~SER_MASK_DELTA;
+ } while (!atomic_cmpset_32(&sc->sc_hwsig, old, new));
+
+ return (sig);
+}
+
+static int
+mtk_uart_bus_ioctl(struct uart_softc *sc, int request, intptr_t data)
+{
+ struct uart_bas *bas;
+ int baudrate, divisor, error;
+
+ bas = &sc->sc_bas;
+ error = 0;
+ uart_lock(sc->sc_hwmtx);
+ switch (request) {
+ case UART_IOCTL_BREAK:
+ /* TODO: Send BREAK */
+ break;
+ case UART_IOCTL_BAUD:
+ divisor = uart_getreg(bas, UART_CDDL_REG);
+ baudrate = bas->rclk / (divisor * 16);
+ *(int*)data = baudrate;
+ break;
+ default:
+ error = EINVAL;
+ break;
+ }
+ uart_unlock(sc->sc_hwmtx);
+ return (error);
+}
+
+static int
+mtk_uart_bus_ipend(struct uart_softc *sc)
+{
+ struct uart_bas *bas;
+ int ipend;
+ uint8_t iir, lsr, msr;
+
+// breakpoint();
+
+ bas = &sc->sc_bas;
+ ipend = 0;
+
+ uart_lock(sc->sc_hwmtx);
+ iir = uart_getreg(&sc->sc_bas, UART_IIR_REG);
+ lsr = uart_getreg(&sc->sc_bas, UART_LSR_REG);
+ uart_setreg(&sc->sc_bas, UART_LSR_REG, lsr);
+ msr = uart_getreg(&sc->sc_bas, UART_MSR_REG);
+ uart_setreg(&sc->sc_bas, UART_MSR_REG, msr);
+ if (iir & UART_IIR_INTP) {
+ uart_unlock(sc->sc_hwmtx);
+ return (0);
+ }
+ switch ((iir >> 1) & 0x07) {
+ case UART_IIR_ID_THRE:
+ ipend |= SER_INT_TXIDLE;
+ break;
+ case UART_IIR_ID_DR2:
+ mtk_uart_bus_flush(sc, UART_FLUSH_RECEIVER);
+ /* passthrough */
+ case UART_IIR_ID_DR:
+ ipend |= SER_INT_RXREADY;
+ break;
+ case UART_IIR_ID_MST:
+ case UART_IIR_ID_LINESTATUS:
+ ipend |= SER_INT_SIGCHG;
+ if (lsr & UART_LSR_BI)
+ ipend |= SER_INT_BREAK;
+ if (lsr & UART_LSR_OE)
+ ipend |= SER_INT_OVERRUN;
+ break;
+ default:
+ /* XXX: maybe return error here */
+ break;
+ }
+
+ uart_unlock(sc->sc_hwmtx);
+
+ return (ipend);
+}
+
+static int
+mtk_uart_bus_param(struct uart_softc *sc, int baudrate, int databits,
+ int stopbits, int parity)
+{
+ uart_lock(sc->sc_hwmtx);
+ mtk_uart_init(&sc->sc_bas, baudrate, databits, stopbits, parity);
+ uart_unlock(sc->sc_hwmtx);
+ return (0);
+}
+
+static int
+mtk_uart_bus_probe(struct uart_softc *sc)
+{
+ int error;
+
+ error = mtk_uart_probe(&sc->sc_bas);
+ if (error)
+ return (error);
+
+ device_set_desc(sc->sc_dev, "MTK UART Controller");
+
+ return (0);
+}
+
+static int
+mtk_uart_bus_receive(struct uart_softc *sc)
+{
+ struct uart_bas *bas;
+ int xc;
+ uint8_t lsr;
+
+ bas = &sc->sc_bas;
+ uart_lock(sc->sc_hwmtx);
+ lsr = uart_getreg(bas, UART_LSR_REG);
+ while ((lsr & UART_LSR_DR)) {
+ if (uart_rx_full(sc)) {
+ sc->sc_rxbuf[sc->sc_rxput] = UART_STAT_OVERRUN;
+ break;
+ }
+ xc = 0;
+ xc = uart_getreg(bas, UART_RX_REG);
+ if (lsr & UART_LSR_FE)
+ xc |= UART_STAT_FRAMERR;
+ if (lsr & UART_LSR_PE)
+ xc |= UART_STAT_PARERR;
+ if (lsr & UART_LSR_OE)
+ xc |= UART_STAT_OVERRUN;
+ uart_barrier(bas);
+ uart_rx_put(sc, xc);
+ lsr = uart_getreg(bas, UART_LSR_REG);
+ }
+
+ uart_unlock(sc->sc_hwmtx);
+ return (0);
+}
+
+static int
+mtk_uart_bus_setsig(struct uart_softc *sc, int sig)
+{
+ /* TODO: implement (?) */
+ return (sig);
+}
+
+static int
+mtk_uart_bus_transmit(struct uart_softc *sc)
+{
+ struct uart_bas *bas = &sc->sc_bas;
+ int i;
+
+ if (!uart_output) return (0);
+
+ bas = &sc->sc_bas;
+ uart_lock(sc->sc_hwmtx);
+ while ((uart_getreg(bas, UART_LSR_REG) & UART_LSR_THRE) == 0);
+ mtk_uart_enable_txintr(sc);
+ for (i = 0; i < sc->sc_txdatasz; i++) {
+ uart_setreg(bas, UART_TX_REG, sc->sc_txbuf[i]);
+ uart_barrier(bas);
+ }
+ sc->sc_txbusy = 1;
+ uart_unlock(sc->sc_hwmtx);
+ return (0);
+}
+
+void
+mtk_uart_bus_grab(struct uart_softc *sc)
+{
+ struct uart_bas *bas = &sc->sc_bas;
+ struct uart_mtk_softc *usc = (struct uart_mtk_softc *)sc;
+
+ uart_lock(sc->sc_hwmtx);
+ usc->ier = uart_getreg(bas, UART_IER_REG);
+ uart_setreg(bas, UART_IER_REG, usc->ier & usc->ier_mask);
+ uart_barrier(bas);
+ uart_unlock(sc->sc_hwmtx);
+}
+
+void
+mtk_uart_bus_ungrab(struct uart_softc *sc)
+{
+ struct uart_mtk_softc *usc = (struct uart_mtk_softc *)sc;
+ struct uart_bas *bas = &sc->sc_bas;
+
+ uart_lock(sc->sc_hwmtx);
+ uart_setreg(bas, UART_IER_REG, usc->ier);
+ uart_barrier(bas);
+ uart_unlock(sc->sc_hwmtx);
+}
diff --git a/sys/mips/mediatek/uart_dev_mtk.h b/sys/mips/mediatek/uart_dev_mtk.h
new file mode 100644
index 0000000..44fcdd8
--- /dev/null
+++ b/sys/mips/mediatek/uart_dev_mtk.h
@@ -0,0 +1,126 @@
+/*-
+ * Copyright (c) 2010 Aleksandr Rybalko.
+ * 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.
+ * 3. The names of the authors may not be used to endorse or promote
+ * products derived from this software without specific prior
+ * written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE AUTHORS ``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 AUTHORS
+ * 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 _MTKUART_H
+#define _MTKUART_H
+
+#undef uart_getreg
+#undef uart_setreg
+#define uart_getreg(bas, reg) \
+ bus_space_read_4((bas)->bst, (bas)->bsh, reg)
+#define uart_setreg(bas, reg, value) \
+ bus_space_write_4((bas)->bst, (bas)->bsh, reg, value)
+
+/* UART registers */
+#define UART_RX_REG 0x00
+#define UART_TX_REG 0x04
+
+#define UART_IER_REG 0x08
+#define UART_IER_EDSSI (1<<3) /* Only full UART */
+#define UART_IER_ELSI (1<<2)
+#define UART_IER_ETBEI (1<<1)
+#define UART_IER_ERBFI (1<<0)
+
+#define UART_IIR_REG 0x0c
+#define UART_IIR_RXFIFO (1<<7)
+#define UART_IIR_TXFIFO (1<<6)
+#define UART_IIR_ID_MST 0
+#define UART_IIR_ID_THRE 1
+#define UART_IIR_ID_DR 2
+#define UART_IIR_ID_LINESTATUS 3
+#define UART_IIR_ID_DR2 6
+#define UART_IIR_ID_SHIFT 1
+#define UART_IIR_ID_MASK 0x0000000e
+#define UART_IIR_INTP (1<<0)
+
+#define UART_FCR_REG 0x10
+#define UART_FCR_RXTGR_1 (0<<6)
+#define UART_FCR_RXTGR_4 (1<<6)
+#define UART_FCR_RXTGR_8 (2<<6)
+#define UART_FCR_RXTGR_12 (3<<6)
+#define UART_FCR_TXTGR_1 (0<<4)
+#define UART_FCR_TXTGR_4 (1<<4)
+#define UART_FCR_TXTGR_8 (2<<4)
+#define UART_FCR_TXTGR_12 (3<<4)
+#define UART_FCR_DMA (1<<3)
+#define UART_FCR_TXRST (1<<2)
+#define UART_FCR_RXRST (1<<1)
+#define UART_FCR_FIFOEN (1<<0)
+
+#define UART_LCR_REG 0x14
+#define UART_LCR_DLAB (1<<7)
+#define UART_LCR_BRK (1<<6)
+#define UART_LCR_FPAR (1<<5)
+#define UART_LCR_EVEN (1<<4)
+#define UART_LCR_PEN (1<<3)
+#define UART_LCR_STB_15 (1<<2)
+#define UART_LCR_5B 0
+#define UART_LCR_6B 1
+#define UART_LCR_7B 2
+#define UART_LCR_8B 3
+
+#define UART_MCR_REG 0x18
+#define UART_MCR_LOOP (1<<4)
+#define UART_MCR_OUT2_L (1<<3) /* Only full UART */
+#define UART_MCR_OUT1_L (1<<2) /* Only full UART */
+#define UART_MCR_RTS_L (1<<1) /* Only full UART */
+#define UART_MCR_DTR_L (1<<0) /* Only full UART */
+
+#define UART_LSR_REG 0x1c
+#define UART_LSR_ERINF (1<<7)
+#define UART_LSR_TEMT (1<<6)
+#define UART_LSR_THRE (1<<5)
+#define UART_LSR_BI (1<<4)
+#define UART_LSR_FE (1<<3)
+#define UART_LSR_PE (1<<2)
+#define UART_LSR_OE (1<<1)
+#define UART_LSR_DR (1<<0)
+
+#define UART_MSR_REG 0x20 /* Only full UART */
+#define UART_MSR_DCD (1<<7) /* Only full UART */
+#define UART_MSR_RI (1<<6) /* Only full UART */
+#define UART_MSR_DSR (1<<5) /* Only full UART */
+#define UART_MSR_CTS (1<<4) /* Only full UART */
+#define UART_MSR_DDCD (1<<3) /* Only full UART */
+#define UART_MSR_TERI (1<<2) /* Only full UART */
+#define UART_MSR_DDSR (1<<1) /* Only full UART */
+#define UART_MSR_DCTS (1<<0) /* Only full UART */
+
+#define UART_CDDL_REG 0x28
+#define UART_CDDLL_REG 0x2c
+#define UART_CDDLH_REG 0x30
+
+#define UART_IFCTL_REG 0x34
+#define UART_IFCTL_IFCTL (1<<0)
+
+int uart_cnattach(void);
+#endif /* _MTKUART_H */
diff --git a/sys/mips/mediatek/uart_dev_mtk_ns8250.c b/sys/mips/mediatek/uart_dev_mtk_ns8250.c
new file mode 100644
index 0000000..3c259ff
--- /dev/null
+++ b/sys/mips/mediatek/uart_dev_mtk_ns8250.c
@@ -0,0 +1,113 @@
+/*-
+ * Copyright (c) 2013 Ian Lepore
+ * 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 ``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.
+ */
+
+#include "opt_platform.h"
+
+#include <sys/cdefs.h>
+__FBSDID("$FreeBSD$");
+
+#include <sys/param.h>
+#include <sys/systm.h>
+#include <sys/bus.h>
+#include <sys/conf.h>
+#include <sys/kernel.h>
+#include <sys/sysctl.h>
+#include <machine/bus.h>
+
+#include <mips/mediatek/mtk_soc.h>
+#include <mips/mediatek/mtk_sysctl.h>
+
+#include <dev/fdt/fdt_common.h>
+#include <dev/ofw/ofw_bus.h>
+#include <dev/ofw/ofw_bus_subr.h>
+
+#include <dev/uart/uart.h>
+#include <dev/uart/uart_cpu.h>
+#include <dev/uart/uart_cpu_fdt.h>
+#include <dev/uart/uart_bus.h>
+#include <dev/uart/uart_dev_ns8250.h>
+
+#include "uart_if.h"
+
+/*
+ * High-level UART interface.
+ */
+static struct uart_class uart_mtk_ns8250_class;
+static int mtk_ns8250_bus_probe(struct uart_softc *);
+
+static kobj_method_t mtk_ns8250_methods[] = {
+ KOBJMETHOD(uart_probe, mtk_ns8250_bus_probe),
+
+ KOBJMETHOD(uart_attach, ns8250_bus_attach),
+ KOBJMETHOD(uart_detach, ns8250_bus_detach),
+ KOBJMETHOD(uart_flush, ns8250_bus_flush),
+ KOBJMETHOD(uart_getsig, ns8250_bus_getsig),
+ KOBJMETHOD(uart_ioctl, ns8250_bus_ioctl),
+ KOBJMETHOD(uart_ipend, ns8250_bus_ipend),
+ KOBJMETHOD(uart_param, ns8250_bus_param),
+ KOBJMETHOD(uart_receive, ns8250_bus_receive),
+ KOBJMETHOD(uart_setsig, ns8250_bus_setsig),
+ KOBJMETHOD(uart_transmit, ns8250_bus_transmit),
+ KOBJMETHOD_END
+};
+
+static struct uart_class uart_mtk_ns8250_class = {
+ "mtk8250",
+ mtk_ns8250_methods,
+ sizeof(struct ns8250_softc),
+ .uc_ops = &uart_ns8250_ops,
+ .uc_range = 1, /* use hinted range */
+ .uc_rclk = 0,
+ .uc_rshift = 2
+};
+
+static struct ofw_compat_data compat_data[] = {
+ { "mtk,ns16550a", (uintptr_t)&uart_mtk_ns8250_class },
+ { "ns16550a", (uintptr_t)&uart_mtk_ns8250_class },
+ { NULL, (uintptr_t)NULL },
+};
+UART_FDT_CLASS_AND_DEVICE(compat_data);
+
+static int
+mtk_ns8250_bus_probe(struct uart_softc *sc)
+{
+ int status;
+
+ if (!ofw_bus_status_okay(sc->sc_dev))
+ return (ENXIO);
+
+ if (ofw_bus_search_compatible(sc->sc_dev, compat_data)->ocd_data ==
+ (uintptr_t)NULL)
+ return (ENXIO);
+
+ sc->sc_bas.rclk = mtk_soc_get_uartclk();
+
+ status = ns8250_bus_probe(sc);
+ if (status == 0)
+ device_set_desc(sc->sc_dev, "MTK UART Controller (ns16550a)");
+
+ return (status);
+}
diff --git a/sys/mips/mips/db_disasm.c b/sys/mips/mips/db_disasm.c
index 14788ed..108c9dd 100644
--- a/sys/mips/mips/db_disasm.c
+++ b/sys/mips/mips/db_disasm.c
@@ -226,7 +226,7 @@ md_printins(int ins, int mdbdot)
default:
db_printf("\t%s,%s,%s", reg_name[i.RType.rd],
reg_name[i.RType.rs], reg_name[i.RType.rt]);
- };
+ }
break;
case OP_BCOND:
@@ -288,7 +288,7 @@ md_printins(int ins, int mdbdot)
default:
db_printf("%s", c0_opname[i.FRType.func]);
- };
+ }
break;
case OP_COP1:
@@ -323,7 +323,7 @@ md_printins(int ins, int mdbdot)
db_printf("%s.%s\tf%d,f%d,f%d",
cop1_name[i.FRType.func], fmt_name[i.FRType.fmt],
i.FRType.fd, i.FRType.fs, i.FRType.ft);
- };
+ }
break;
case OP_J:
diff --git a/sys/mips/mips/db_trace.c b/sys/mips/mips/db_trace.c
index 445600c..1359a53 100644
--- a/sys/mips/mips/db_trace.c
+++ b/sys/mips/mips/db_trace.c
@@ -260,7 +260,7 @@ loop:
case OP_SYSCALL:
case OP_BREAK:
more = 1; /* stop now */
- };
+ }
break;
case OP_BCOND:
@@ -281,7 +281,7 @@ loop:
case OP_BCx:
case OP_BCy:
more = 2; /* stop after next instruction */
- };
+ }
break;
case OP_SW:
diff --git a/sys/mips/mips/mips_pic.c b/sys/mips/mips/mips_pic.c
index 4e97c41..a24647d 100644
--- a/sys/mips/mips/mips_pic.c
+++ b/sys/mips/mips/mips_pic.c
@@ -71,15 +71,24 @@ __FBSDID("$FreeBSD$");
static int mips_pic_intr(void *);
+struct mips_pic_irqsrc {
+ struct intr_irqsrc isrc;
+ struct resource *res;
+ u_int irq;
+};
+
struct mips_pic_softc {
- device_t pic_dev;
- struct intr_irqsrc * pic_irqs[NREAL_IRQS];
- struct mtx mutex;
- uint32_t nirqs;
+ device_t pic_dev;
+ struct mips_pic_irqsrc pic_irqs[NREAL_IRQS];
+ struct rman pic_irq_rman;
+ struct mtx mutex;
+ uint32_t nirqs;
};
static struct mips_pic_softc *pic_sc;
+#define PIC_INTR_ISRC(sc, irq) (&(sc)->pic_irqs[(irq)].isrc)
+
#ifdef FDT
static struct ofw_compat_data compat_data[] = {
{"mti,cpu-interrupt-controller", true},
@@ -125,13 +134,6 @@ pic_irq_mask(struct mips_pic_softc *sc, u_int irq)
mips_wr_status(mips_rd_status() & ~((1 << irq) << 8));
}
-#ifdef SMP
-static void
-mips_pic_init_secondary(device_t dev)
-{
-}
-#endif /* SMP */
-
static inline intptr_t
pic_xref(device_t dev)
{
@@ -143,6 +145,46 @@ pic_xref(device_t dev)
}
static int
+mips_pic_register_isrcs(struct mips_pic_softc *sc)
+{
+ int error;
+ uint32_t irq, i, tmpirq;
+ struct intr_irqsrc *isrc;
+ char *name;
+
+ for (irq = 0; irq < sc->nirqs; irq++) {
+ sc->pic_irqs[irq].irq = irq;
+ sc->pic_irqs[irq].res = rman_reserve_resource(&sc->pic_irq_rman,
+ irq, irq, 1, RF_ACTIVE, sc->pic_dev);
+ if (sc->pic_irqs[irq].res == NULL) {
+ device_printf(sc->pic_dev,
+ "%s failed to alloc resource for irq %u",
+ __func__, irq);
+ return (ENOMEM);
+ }
+ isrc = PIC_INTR_ISRC(sc, irq);
+ if (irq < NSOFT_IRQS) {
+ name = "sint";
+ tmpirq = irq;
+ } else {
+ name = "int";
+ tmpirq = irq - NSOFT_IRQS;
+ }
+ error = intr_isrc_register(isrc, sc->pic_dev, 0, "%s%u",
+ name, tmpirq);
+ if (error != 0) {
+ for (i = 0; i < irq; i++) {
+ intr_isrc_deregister(PIC_INTR_ISRC(sc, i));
+ }
+ device_printf(sc->pic_dev, "%s failed", __func__);
+ return (error);
+ }
+ }
+
+ return (0);
+}
+
+static int
mips_pic_attach(device_t dev)
{
struct mips_pic_softc *sc;
@@ -162,6 +204,21 @@ mips_pic_attach(device_t dev)
/* Set the number of interrupts */
sc->nirqs = nitems(sc->pic_irqs);
+ /* Init the IRQ rman */
+ sc->pic_irq_rman.rm_type = RMAN_ARRAY;
+ sc->pic_irq_rman.rm_descr = "MIPS PIC IRQs";
+ if (rman_init(&sc->pic_irq_rman) != 0 ||
+ rman_manage_region(&sc->pic_irq_rman, 0, sc->nirqs - 1) != 0) {
+ device_printf(dev, "failed to setup IRQ rman\n");
+ goto cleanup;
+ }
+
+ /* Register the interrupts */
+ if (mips_pic_register_isrcs(sc) != 0) {
+ device_printf(dev, "could not register PIC ISRCs\n");
+ goto cleanup;
+ }
+
/*
* Now, when everything is initialized, it's right time to
* register interrupt controller to interrupt framefork.
@@ -174,7 +231,7 @@ mips_pic_attach(device_t dev)
/* Claim our root controller role */
if (intr_pic_claim_root(dev, xref, mips_pic_intr, sc, 0) != 0) {
device_printf(dev, "could not set PIC as a root\n");
- intr_pic_unregister(dev, xref);
+ intr_pic_deregister(dev, xref);
goto cleanup;
}
@@ -189,7 +246,6 @@ mips_pic_intr(void *arg)
{
struct mips_pic_softc *sc = arg;
register_t cause, status;
- struct intr_irqsrc *isrc;
int i, intr;
cause = mips_rd_cause();
@@ -205,15 +261,13 @@ mips_pic_intr(void *arg)
i--; /* Get a 0-offset interrupt. */
intr &= ~(1 << i);
- isrc = sc->pic_irqs[i];
- if (isrc == NULL) {
+ if (intr_isrc_dispatch(PIC_INTR_ISRC(sc, i),
+ curthread->td_intr_frame) != 0) {
device_printf(sc->pic_dev,
"Stray interrupt %u detected\n", i);
pic_irq_mask(sc, i);
continue;
}
-
- intr_irq_dispatch(isrc, curthread->td_intr_frame);
}
KASSERT(i == 0, ("all interrupts handled"));
@@ -228,178 +282,56 @@ mips_pic_intr(void *arg)
return (FILTER_HANDLED);
}
-static int
-pic_attach_isrc(struct mips_pic_softc *sc, struct intr_irqsrc *isrc, u_int irq)
-{
-
- /*
- * 1. The link between ISRC and controller must be set atomically.
- * 2. Just do things only once in rare case when consumers
- * of shared interrupt came here at the same moment.
- */
- mtx_lock_spin(&sc->mutex);
- if (sc->pic_irqs[irq] != NULL) {
- mtx_unlock_spin(&sc->mutex);
- return (sc->pic_irqs[irq] == isrc ? 0 : EEXIST);
- }
- sc->pic_irqs[irq] = isrc;
- isrc->isrc_data = irq;
- mtx_unlock_spin(&sc->mutex);
-
- if (irq < NSOFT_IRQS)
- intr_irq_set_name(isrc, "sint%u", irq);
- else if (irq < NREAL_IRQS)
- intr_irq_set_name(isrc, "int%u", irq - NSOFT_IRQS);
- else
- panic("Invalid irq %u", irq);
- return (0);
-}
-
-static int
-pic_detach_isrc(struct mips_pic_softc *sc, struct intr_irqsrc *isrc, u_int irq)
+static void
+mips_pic_disable_intr(device_t dev, struct intr_irqsrc *isrc)
{
+ u_int irq;
- mtx_lock_spin(&sc->mutex);
- if (sc->pic_irqs[irq] != isrc) {
- mtx_unlock_spin(&sc->mutex);
- return (sc->pic_irqs[irq] == NULL ? 0 : EINVAL);
- }
- sc->pic_irqs[irq] = NULL;
- isrc->isrc_data = 0;
- mtx_unlock_spin(&sc->mutex);
-
- intr_irq_set_name(isrc, "%s", "");
- return (0);
+ irq = ((struct mips_pic_irqsrc *)isrc)->irq;
+ pic_irq_mask(device_get_softc(dev), irq);
}
-static int
-pic_irq_from_nspc(struct mips_pic_softc *sc, u_int type, u_int num, u_int *irqp)
+static void
+mips_pic_enable_intr(device_t dev, struct intr_irqsrc *isrc)
{
+ u_int irq;
- switch (type) {
- case INTR_IRQ_NSPC_PLAIN:
- *irqp = num;
- return (*irqp < sc->nirqs ? 0 : EINVAL);
-
- case INTR_IRQ_NSPC_SWI:
- *irqp = num;
- return (num < NSOFT_IRQS ? 0 : EINVAL);
-
- case INTR_IRQ_NSPC_IRQ:
- *irqp = num + NSOFT_IRQS;
- return (num < NHARD_IRQS ? 0 : EINVAL);
-
- default:
- return (EINVAL);
- }
+ irq = ((struct mips_pic_irqsrc *)isrc)->irq;
+ pic_irq_unmask(device_get_softc(dev), irq);
}
static int
-pic_map_nspc(struct mips_pic_softc *sc, struct intr_irqsrc *isrc, u_int *irqp)
+mips_pic_map_intr(device_t dev, struct intr_map_data *data,
+ struct intr_irqsrc **isrcp)
{
- int error;
-
- error = pic_irq_from_nspc(sc, isrc->isrc_nspc_type, isrc->isrc_nspc_num,
- irqp);
- if (error != 0)
- return (error);
- return (pic_attach_isrc(sc, isrc, *irqp));
-}
-
#ifdef FDT
-static int
-pic_map_fdt(struct mips_pic_softc *sc, struct intr_irqsrc *isrc, u_int *irqp)
-{
- u_int irq;
- int error;
+ struct mips_pic_softc *sc;
- irq = isrc->isrc_cells[0];
+ sc = device_get_softc(dev);
- if (irq >= sc->nirqs)
+ if (data == NULL || data->type != INTR_MAP_DATA_FDT ||
+ data->fdt.ncells != 1 || data->fdt.cells[0] >= sc->nirqs)
return (EINVAL);
- error = pic_attach_isrc(sc, isrc, irq);
- if (error != 0)
- return (error);
-
- isrc->isrc_nspc_type = INTR_IRQ_NSPC_PLAIN;
- isrc->isrc_nspc_num = irq;
- isrc->isrc_trig = INTR_TRIGGER_CONFORM;
- isrc->isrc_pol = INTR_POLARITY_CONFORM;
-
- *irqp = irq;
+ *isrcp = PIC_INTR_ISRC(sc, data->fdt.cells[0]);
return (0);
-}
-#endif
-
-static int
-mips_pic_register(device_t dev, struct intr_irqsrc *isrc, boolean_t *is_percpu)
-{
- struct mips_pic_softc *sc = device_get_softc(dev);
- u_int irq;
- int error;
-
- if (isrc->isrc_type == INTR_ISRCT_NAMESPACE)
- error = pic_map_nspc(sc, isrc, &irq);
-#ifdef FDT
- else if (isrc->isrc_type == INTR_ISRCT_FDT)
- error = pic_map_fdt(sc, isrc, &irq);
+#else
+ return (EINVAL);
#endif
- else
- return (EINVAL);
-
- if (error == 0)
- *is_percpu = TRUE;
- return (error);
-}
-
-static void
-mips_pic_enable_intr(device_t dev, struct intr_irqsrc *isrc)
-{
-
- if (isrc->isrc_trig == INTR_TRIGGER_CONFORM)
- isrc->isrc_trig = INTR_TRIGGER_LEVEL;
-}
-
-static void
-mips_pic_enable_source(device_t dev, struct intr_irqsrc *isrc)
-{
- struct mips_pic_softc *sc = device_get_softc(dev);
- u_int irq = isrc->isrc_data;
-
- pic_irq_unmask(sc, irq);
-}
-
-static void
-mips_pic_disable_source(device_t dev, struct intr_irqsrc *isrc)
-{
- struct mips_pic_softc *sc = device_get_softc(dev);
- u_int irq = isrc->isrc_data;
-
- pic_irq_mask(sc, irq);
-}
-
-static int
-mips_pic_unregister(device_t dev, struct intr_irqsrc *isrc)
-{
- struct mips_pic_softc *sc = device_get_softc(dev);
- u_int irq = isrc->isrc_data;
-
- return (pic_detach_isrc(sc, isrc, irq));
}
static void
mips_pic_pre_ithread(device_t dev, struct intr_irqsrc *isrc)
{
- mips_pic_disable_source(dev, isrc);
+ mips_pic_disable_intr(dev, isrc);
}
static void
mips_pic_post_ithread(device_t dev, struct intr_irqsrc *isrc)
{
- mips_pic_enable_source(dev, isrc);
+ mips_pic_enable_intr(dev, isrc);
}
static void
@@ -407,19 +339,6 @@ mips_pic_post_filter(device_t dev, struct intr_irqsrc *isrc)
{
}
-#ifdef SMP
-static int
-mips_pic_bind(device_t dev, struct intr_irqsrc *isrc)
-{
- return (EOPNOTSUPP);
-}
-
-static void
-mips_pic_ipi_send(device_t dev, struct intr_irqsrc *isrc, cpuset_t cpus)
-{
-}
-#endif
-
static device_method_t mips_pic_methods[] = {
/* Device interface */
#ifndef FDT
@@ -427,20 +346,15 @@ static device_method_t mips_pic_methods[] = {
#endif
DEVMETHOD(device_probe, mips_pic_probe),
DEVMETHOD(device_attach, mips_pic_attach),
+
/* Interrupt controller interface */
- DEVMETHOD(pic_disable_source, mips_pic_disable_source),
+ DEVMETHOD(pic_disable_intr, mips_pic_disable_intr),
DEVMETHOD(pic_enable_intr, mips_pic_enable_intr),
- DEVMETHOD(pic_enable_source, mips_pic_enable_source),
- DEVMETHOD(pic_post_filter, mips_pic_post_filter),
- DEVMETHOD(pic_post_ithread, mips_pic_post_ithread),
+ DEVMETHOD(pic_map_intr, mips_pic_map_intr),
DEVMETHOD(pic_pre_ithread, mips_pic_pre_ithread),
- DEVMETHOD(pic_register, mips_pic_register),
- DEVMETHOD(pic_unregister, mips_pic_unregister),
-#ifdef SMP
- DEVMETHOD(pic_bind, mips_pic_bind),
- DEVMETHOD(pic_init_secondary, mips_pic_init_secondary),
- DEVMETHOD(pic_ipi_send, mips_pic_ipi_send),
-#endif
+ DEVMETHOD(pic_post_ithread, mips_pic_post_ithread),
+ DEVMETHOD(pic_post_filter, mips_pic_post_filter),
+
{ 0, 0 }
};
@@ -469,7 +383,6 @@ void
cpu_establish_hardintr(const char *name, driver_filter_t *filt,
void (*handler)(void*), void *arg, int irq, int flags, void **cookiep)
{
- u_int vec;
int res;
/*
@@ -479,17 +392,11 @@ cpu_establish_hardintr(const char *name, driver_filter_t *filt,
panic("%s called for unknown hard intr %d", __func__, irq);
KASSERT(pic_sc != NULL, ("%s: no pic", __func__));
- vec = intr_namespace_map_irq(pic_sc->pic_dev, INTR_IRQ_NSPC_IRQ, irq);
- KASSERT(vec != NIRQ, ("Unable to map hard IRQ %d\n", irq));
- res = intr_irq_add_handler(pic_sc->pic_dev, filt, handler, arg, vec,
- flags, cookiep);
+ irq += NSOFT_IRQS;
+ res = intr_setup_irq(pic_sc->pic_dev, pic_sc->pic_irqs[irq].res, filt,
+ handler, arg, flags, cookiep);
if (res != 0) panic("Unable to add hard IRQ %d handler", irq);
-
- (void)pic_irq_from_nspc(pic_sc, INTR_IRQ_NSPC_IRQ, irq, &vec);
- KASSERT(pic_sc->pic_irqs[vec] != NULL,
- ("Hard IRQ %d not registered\n", irq));
- intr_irq_set_name(pic_sc->pic_irqs[vec], "%s", name);
}
void
@@ -497,23 +404,15 @@ cpu_establish_softintr(const char *name, driver_filter_t *filt,
void (*handler)(void*), void *arg, int irq, int flags,
void **cookiep)
{
- u_int vec;
int res;
if (irq < 0 || irq > NSOFT_IRQS)
panic("%s called for unknown soft intr %d", __func__, irq);
KASSERT(pic_sc != NULL, ("%s: no pic", __func__));
- vec = intr_namespace_map_irq(pic_sc->pic_dev, INTR_IRQ_NSPC_SWI, irq);
- KASSERT(vec <= NIRQ, ("Unable to map soft IRQ %d\n", irq));
- intr_irq_add_handler(pic_sc->pic_dev, filt, handler, arg, vec,
- flags, cookiep);
+ res = intr_setup_irq(pic_sc->pic_dev, pic_sc->pic_irqs[irq].res, filt,
+ handler, arg, flags, cookiep);
if (res != 0) panic("Unable to add soft IRQ %d handler", irq);
-
- (void)pic_irq_from_nspc(pic_sc, INTR_IRQ_NSPC_SWI, irq, &vec);
- KASSERT(pic_sc->pic_irqs[vec] != NULL,
- ("Soft IRQ %d not registered\n", irq));
- intr_irq_set_name(pic_sc->pic_irqs[vec], "%s", name);
}
diff --git a/sys/mips/mips/nexus.c b/sys/mips/mips/nexus.c
index 89049f0..a2a8e527 100644
--- a/sys/mips/mips/nexus.c
+++ b/sys/mips/mips/nexus.c
@@ -457,14 +457,11 @@ static int
nexus_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)
{
- int irq;
#ifdef MIPS_INTRNG
- for (irq = rman_get_start(res); irq <= rman_get_end(res); irq++) {
- intr_irq_add_handler(child, filt, intr, arg, irq, flags,
- cookiep);
- }
+ return (intr_setup_irq(child, res, filt, intr, arg, flags, cookiep));
#else
+ int irq;
register_t s;
s = intr_disable();
@@ -477,8 +474,9 @@ nexus_setup_intr(device_t dev, device_t child, struct resource *res, int flags,
cpu_establish_hardintr(device_get_nameunit(child), filt, intr, arg,
irq, flags, cookiep);
intr_restore(s);
-#endif
+
return (0);
+#endif
}
static int
@@ -486,7 +484,7 @@ nexus_teardown_intr(device_t dev, device_t child, struct resource *r, void *ih)
{
#ifdef MIPS_INTRNG
- return (intr_irq_remove_handler(child, rman_get_start(r), ih));
+ return (intr_teardown_irq(child, r, ih));
#else
printf("Unimplemented %s at %s:%d\n", __func__, __FILE__, __LINE__);
return (0);
@@ -499,7 +497,8 @@ nexus_config_intr(device_t dev, int irq, enum intr_trigger trig,
enum intr_polarity pol)
{
- return (intr_irq_config(irq, trig, pol));
+ device_printf(dev, "bus_config_intr is obsolete and not supported!\n");
+ return (EOPNOTSUPP);
}
static int
@@ -507,7 +506,7 @@ nexus_describe_intr(device_t dev, device_t child, struct resource *irq,
void *cookie, const char *descr)
{
- return (intr_irq_describe(rman_get_start(irq), cookie, descr));
+ return (intr_describe_irq(child, irq, cookie, descr));
}
#ifdef SMP
@@ -515,7 +514,7 @@ static int
nexus_bind_intr(device_t dev, device_t child, struct resource *irq, int cpu)
{
- return (intr_irq_bind(rman_get_start(irq), cpu));
+ return (intr_bind_irq(child, irq, cpu));
}
#endif
diff --git a/sys/mips/mips/ofw_machdep.c b/sys/mips/mips/ofw_machdep.c
index 26bc260..6b840e7 100644
--- a/sys/mips/mips/ofw_machdep.c
+++ b/sys/mips/mips/ofw_machdep.c
@@ -1,6 +1,6 @@
/*-
* Copyright (c) 2015 Ian Lepore <ian@freebsd.org>
- * All rights excluded.
+ * All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
diff --git a/sys/modules/cxgbe/if_cxgbe/Makefile b/sys/modules/cxgbe/if_cxgbe/Makefile
index df343b2..967683b 100644
--- a/sys/modules/cxgbe/if_cxgbe/Makefile
+++ b/sys/modules/cxgbe/if_cxgbe/Makefile
@@ -8,6 +8,7 @@ CXGBE= ${.CURDIR}/../../../dev/cxgbe
KMOD= if_cxgbe
SRCS= bus_if.h
SRCS+= device_if.h
+SRCS+= opt_ddb.h
SRCS+= opt_inet.h
SRCS+= opt_inet6.h
SRCS+= opt_ofed.h
diff --git a/sys/modules/kbdmux/Makefile b/sys/modules/kbdmux/Makefile
index 70b39a0..363343a 100644
--- a/sys/modules/kbdmux/Makefile
+++ b/sys/modules/kbdmux/Makefile
@@ -4,7 +4,7 @@
.PATH: ${.CURDIR}/../../dev/kbdmux
KMOD= kbdmux
-SRCS= kbdmux.c opt_compat.h opt_kbd.h bus_if.h device_if.h
+SRCS= kbdmux.c opt_compat.h opt_kbd.h opt_kbdmux.h bus_if.h device_if.h
.if !defined(KERNBUILDDIR)
opt_compat.h:
diff --git a/sys/net/bpf.c b/sys/net/bpf.c
index 54dd184..5f2ef71 100644
--- a/sys/net/bpf.c
+++ b/sys/net/bpf.c
@@ -39,6 +39,7 @@ __FBSDID("$FreeBSD$");
#include "opt_bpf.h"
#include "opt_compat.h"
+#include "opt_ddb.h"
#include "opt_netgraph.h"
#include <sys/types.h>
@@ -67,6 +68,10 @@ __FBSDID("$FreeBSD$");
#include <sys/socket.h>
+#ifdef DDB
+#include <ddb/ddb.h>
+#endif
+
#include <net/if.h>
#include <net/if_var.h>
#include <net/if_dl.h>
@@ -2569,6 +2574,32 @@ bpfattach2(struct ifnet *ifp, u_int dlt, u_int hdrlen, struct bpf_if **driverp)
if_printf(ifp, "bpf attached\n");
}
+#ifdef VIMAGE
+/*
+ * When moving interfaces between vnet instances we need a way to
+ * query the dlt and hdrlen before detach so we can re-attch the if_bpf
+ * after the vmove. We unfortunately have no device driver infrastructure
+ * to query the interface for these values after creation/attach, thus
+ * add this as a workaround.
+ */
+int
+bpf_get_bp_params(struct bpf_if *bp, u_int *bif_dlt, u_int *bif_hdrlen)
+{
+
+ if (bp == NULL)
+ return (ENXIO);
+ if (bif_dlt == NULL && bif_hdrlen == NULL)
+ return (0);
+
+ if (bif_dlt != NULL)
+ *bif_dlt = bp->bif_dlt;
+ if (bif_hdrlen != NULL)
+ *bif_hdrlen = bp->bif_hdrlen;
+
+ return (0);
+}
+#endif
+
/*
* Detach bpf from an interface. This involves detaching each descriptor
* associated with the interface. Notify each descriptor as it's detached
@@ -2977,3 +3008,34 @@ bpf_validate(const struct bpf_insn *f, int len)
}
#endif /* !DEV_BPF && !NETGRAPH_BPF */
+
+#ifdef DDB
+static void
+bpf_show_bpf_if(struct bpf_if *bpf_if)
+{
+
+ if (bpf_if == NULL)
+ return;
+ db_printf("%p:\n", bpf_if);
+#define BPF_DB_PRINTF(f, e) db_printf(" %s = " f "\n", #e, bpf_if->e);
+ /* bif_ext.bif_next */
+ /* bif_ext.bif_dlist */
+ BPF_DB_PRINTF("%#x", bif_dlt);
+ BPF_DB_PRINTF("%u", bif_hdrlen);
+ BPF_DB_PRINTF("%p", bif_ifp);
+ /* bif_lock */
+ /* bif_wlist */
+ BPF_DB_PRINTF("%#x", bif_flags);
+}
+
+DB_SHOW_COMMAND(bpf_if, db_show_bpf_if)
+{
+
+ if (!have_addr) {
+ db_printf("usage: show bpf_if <struct bpf_if *>\n");
+ return;
+ }
+
+ bpf_show_bpf_if((struct bpf_if *)addr);
+}
+#endif
diff --git a/sys/net/bpf.h b/sys/net/bpf.h
index a74b521..0ffc15ac 100644
--- a/sys/net/bpf.h
+++ b/sys/net/bpf.h
@@ -1469,6 +1469,9 @@ void bpf_mtap2(struct bpf_if *, void *, u_int, struct mbuf *);
void bpfattach(struct ifnet *, u_int, u_int);
void bpfattach2(struct ifnet *, u_int, u_int, struct bpf_if **);
void bpfdetach(struct ifnet *);
+#ifdef VIMAGE
+int bpf_get_bp_params(struct bpf_if *, u_int *, u_int *);
+#endif
void bpfilterattach(int);
u_int bpf_filter(const struct bpf_insn *, u_char *, u_int, u_int);
diff --git a/sys/net/if.c b/sys/net/if.c
index b9e524c..2c44c87 100644
--- a/sys/net/if.c
+++ b/sys/net/if.c
@@ -1021,8 +1021,16 @@ void
if_vmove(struct ifnet *ifp, struct vnet *new_vnet)
{
struct if_clone *ifc;
+ u_int bif_dlt, bif_hdrlen;
int rc;
+ /*
+ * if_detach_internal() will call the eventhandler to notify
+ * interface departure. That will detach if_bpf. We need to
+ * safe the dlt and hdrlen so we can re-attach it later.
+ */
+ bpf_get_bp_params(ifp->if_bpf, &bif_dlt, &bif_hdrlen);
+
/*
* Detach from current vnet, but preserve LLADDR info, do not
* mark as dead etc. so that the ifnet can be reattached later.
@@ -1062,6 +1070,9 @@ if_vmove(struct ifnet *ifp, struct vnet *new_vnet)
if_attach_internal(ifp, 1, ifc);
+ if (ifp->if_bpf == NULL)
+ bpfattach(ifp, bif_dlt, bif_hdrlen);
+
CURVNET_RESTORE();
}
diff --git a/sys/net/if_gif.c b/sys/net/if_gif.c
index 1607af9..cfa4650 100644
--- a/sys/net/if_gif.c
+++ b/sys/net/if_gif.c
@@ -1023,7 +1023,7 @@ gif_set_tunnel(struct ifnet *ifp, struct sockaddr *src, struct sockaddr *dst)
#endif
default:
return (EAFNOSUPPORT);
- };
+ }
if (sc->gif_family != src->sa_family)
gif_detach(sc);
diff --git a/sys/net/if_gre.c b/sys/net/if_gre.c
index 9d4a976..425df8e 100644
--- a/sys/net/if_gre.c
+++ b/sys/net/if_gre.c
@@ -353,7 +353,7 @@ gre_ioctl(struct ifnet *ifp, u_long cmd, caddr_t data)
if (error != 0)
goto end;
#endif
- };
+ }
error = gre_set_tunnel(ifp, src, dst);
break;
case SIOCDIFPHYADDR:
@@ -960,7 +960,7 @@ gre_transmit(struct ifnet *ifp, struct mbuf *m)
default:
m_freem(m);
error = ENETDOWN;
- };
+ }
drop:
if (error)
if_inc_counter(ifp, IFCOUNTER_OERRORS, 1);
diff --git a/sys/net80211/ieee80211_adhoc.c b/sys/net80211/ieee80211_adhoc.c
index a9334d0..eca9877 100644
--- a/sys/net80211/ieee80211_adhoc.c
+++ b/sys/net80211/ieee80211_adhoc.c
@@ -371,10 +371,7 @@ adhoc_input(struct ieee80211_node *ni, struct mbuf *m,
/*
* Validate the bssid.
*/
- if (!(type == IEEE80211_FC0_TYPE_MGT &&
- (subtype == IEEE80211_FC0_SUBTYPE_BEACON ||
- subtype == IEEE80211_FC0_SUBTYPE_PROBE_RESP)) &&
- !IEEE80211_ADDR_EQ(bssid, vap->iv_bss->ni_bssid) &&
+ if (!IEEE80211_ADDR_EQ(bssid, vap->iv_bss->ni_bssid) &&
!IEEE80211_ADDR_EQ(bssid, ifp->if_broadcastaddr)) {
/* not interested in */
IEEE80211_DISCARD_MAC(vap, IEEE80211_MSG_INPUT,
diff --git a/sys/net80211/ieee80211_ht.c b/sys/net80211/ieee80211_ht.c
index be380e9..cf78e88 100644
--- a/sys/net80211/ieee80211_ht.c
+++ b/sys/net80211/ieee80211_ht.c
@@ -136,12 +136,10 @@ const struct ieee80211_mcs_rates ieee80211_htrates[IEEE80211_HTRATE_MAXSIZE] = {
{ 429, 477, 891, 990 }, /* MCS 76 */
};
-#ifdef IEEE80211_AMPDU_AGE
static int ieee80211_ampdu_age = -1; /* threshold for ampdu reorder q (ms) */
SYSCTL_PROC(_net_wlan, OID_AUTO, ampdu_age, CTLTYPE_INT | CTLFLAG_RW,
&ieee80211_ampdu_age, 0, ieee80211_sysctl_msecs_ticks, "I",
"AMPDU max reorder age (ms)");
-#endif
static int ieee80211_recv_bar_ena = 1;
SYSCTL_INT(_net_wlan, OID_AUTO, recv_bar, CTLFLAG_RW, &ieee80211_recv_bar_ena,
@@ -178,9 +176,7 @@ ieee80211_ht_init(void)
/*
* Setup HT parameters that depends on the clock frequency.
*/
-#ifdef IEEE80211_AMPDU_AGE
ieee80211_ampdu_age = msecs_to_ticks(500);
-#endif
ieee80211_addba_timeout = msecs_to_ticks(250);
ieee80211_addba_backoff = msecs_to_ticks(10*1000);
ieee80211_bar_timeout = msecs_to_ticks(250);
@@ -671,7 +667,6 @@ ampdu_rx_dispatch(struct ieee80211_rx_ampdu *rap, struct ieee80211_node *ni)
vap->iv_stats.is_ampdu_rx_oor += i;
}
-#ifdef IEEE80211_AMPDU_AGE
/*
* Dispatch all frames in the A-MPDU re-order queue.
*/
@@ -696,7 +691,6 @@ ampdu_rx_flush(struct ieee80211_node *ni, struct ieee80211_rx_ampdu *rap)
break;
}
}
-#endif /* IEEE80211_AMPDU_AGE */
/*
* Dispatch all frames in the A-MPDU re-order queue
@@ -864,7 +858,7 @@ again:
* Common case (hopefully): in the BA window.
* Sec 9.10.7.6.2 a) (p.137)
*/
-#ifdef IEEE80211_AMPDU_AGE
+
/*
* Check for frames sitting too long in the reorder queue.
* This should only ever happen if frames are not delivered
@@ -903,7 +897,7 @@ again:
*/
rap->rxa_age = ticks;
}
-#endif /* IEEE80211_AMPDU_AGE */
+
/* save packet */
if (rap->rxa_m[off] == NULL) {
rap->rxa_m[off] = m;
@@ -1063,8 +1057,9 @@ ieee80211_ht_node_init(struct ieee80211_node *ni)
IEEE80211_NOTE(ni->ni_vap, IEEE80211_MSG_11N,
ni,
- "%s: called",
- __func__);
+ "%s: called (%p)",
+ __func__,
+ ni);
if (ni->ni_flags & IEEE80211_NODE_HT) {
/*
@@ -1074,8 +1069,8 @@ ieee80211_ht_node_init(struct ieee80211_node *ni)
*/
IEEE80211_NOTE(ni->ni_vap, IEEE80211_MSG_11N,
ni,
- "%s: calling cleanup",
- __func__);
+ "%s: calling cleanup (%p)",
+ __func__, ni);
ieee80211_ht_node_cleanup(ni);
}
for (tid = 0; tid < WME_NUM_TID; tid++) {
@@ -1100,8 +1095,8 @@ ieee80211_ht_node_cleanup(struct ieee80211_node *ni)
IEEE80211_NOTE(ni->ni_vap, IEEE80211_MSG_11N,
ni,
- "%s: called",
- __func__);
+ "%s: called (%p)",
+ __func__, ni);
KASSERT(ni->ni_flags & IEEE80211_NODE_HT, ("not an HT node"));
@@ -1124,14 +1119,11 @@ ieee80211_ht_node_cleanup(struct ieee80211_node *ni)
void
ieee80211_ht_node_age(struct ieee80211_node *ni)
{
-#ifdef IEEE80211_AMPDU_AGE
struct ieee80211vap *vap = ni->ni_vap;
uint8_t tid;
-#endif
KASSERT(ni->ni_flags & IEEE80211_NODE_HT, ("not an HT sta"));
-#ifdef IEEE80211_AMPDU_AGE
for (tid = 0; tid < WME_NUM_TID; tid++) {
struct ieee80211_rx_ampdu *rap;
@@ -1154,7 +1146,6 @@ ieee80211_ht_node_age(struct ieee80211_node *ni)
ampdu_rx_flush(ni, rap);
}
}
-#endif /* IEEE80211_AMPDU_AGE */
}
static struct ieee80211_channel *
@@ -2166,7 +2157,7 @@ ieee80211_ampdu_enable(struct ieee80211_node *ni,
return 0;
/* XXX check rssi? */
if (tap->txa_attempts >= ieee80211_addba_maxtries &&
- ticks < tap->txa_nextrequest) {
+ ieee80211_time_after(ticks, tap->txa_nextrequest)) {
/*
* Don't retry too often; txa_nextrequest is set
* to the minimum interval we'll retry after
diff --git a/sys/net80211/ieee80211_node.c b/sys/net80211/ieee80211_node.c
index 66afb74..0986145 100644
--- a/sys/net80211/ieee80211_node.c
+++ b/sys/net80211/ieee80211_node.c
@@ -330,9 +330,10 @@ ieee80211_create_ibss(struct ieee80211vap* vap, struct ieee80211_channel *chan)
struct ieee80211_node *ni;
IEEE80211_DPRINTF(vap, IEEE80211_MSG_SCAN,
- "%s: creating %s on channel %u\n", __func__,
+ "%s: creating %s on channel %u%c\n", __func__,
ieee80211_opmode_name[vap->iv_opmode],
- ieee80211_chan2ieee(ic, chan));
+ ieee80211_chan2ieee(ic, chan),
+ ieee80211_channel_type_char(chan));
ni = ieee80211_alloc_node(&ic->ic_sta, vap, vap->iv_myaddr);
if (ni == NULL) {
@@ -556,31 +557,18 @@ check_bss_debug(struct ieee80211vap *vap, struct ieee80211_node *ni)
}
#endif /* IEEE80211_DEBUG */
-/*
- * Handle 802.11 ad hoc network merge. The
- * convention, set by the Wireless Ethernet Compatibility Alliance
- * (WECA), is that an 802.11 station will change its BSSID to match
- * the "oldest" 802.11 ad hoc network, on the same channel, that
- * has the station's desired SSID. The "oldest" 802.11 network
- * sends beacons with the greatest TSF timestamp.
- *
- * The caller is assumed to validate TSF's before attempting a merge.
- *
- * Return !0 if the BSSID changed, 0 otherwise.
- */
+
int
-ieee80211_ibss_merge(struct ieee80211_node *ni)
+ieee80211_ibss_merge_check(struct ieee80211_node *ni)
{
struct ieee80211vap *vap = ni->ni_vap;
-#ifdef IEEE80211_DEBUG
- struct ieee80211com *ic = ni->ni_ic;
-#endif
if (ni == vap->iv_bss ||
IEEE80211_ADDR_EQ(ni->ni_bssid, vap->iv_bss->ni_bssid)) {
/* unchanged, nothing to do */
return 0;
}
+
if (!check_bss(vap, ni)) {
/* capabilities mismatch */
IEEE80211_DPRINTF(vap, IEEE80211_MSG_ASSOC,
@@ -592,6 +580,33 @@ ieee80211_ibss_merge(struct ieee80211_node *ni)
vap->iv_stats.is_ibss_capmismatch++;
return 0;
}
+
+ return 1;
+}
+
+/*
+ * Handle 802.11 ad hoc network merge. The
+ * convention, set by the Wireless Ethernet Compatibility Alliance
+ * (WECA), is that an 802.11 station will change its BSSID to match
+ * the "oldest" 802.11 ad hoc network, on the same channel, that
+ * has the station's desired SSID. The "oldest" 802.11 network
+ * sends beacons with the greatest TSF timestamp.
+ *
+ * The caller is assumed to validate TSF's before attempting a merge.
+ *
+ * Return !0 if the BSSID changed, 0 otherwise.
+ */
+int
+ieee80211_ibss_merge(struct ieee80211_node *ni)
+{
+#ifdef IEEE80211_DEBUG
+ struct ieee80211vap *vap = ni->ni_vap;
+ struct ieee80211com *ic = ni->ni_ic;
+#endif
+
+ if (! ieee80211_ibss_merge_check(ni))
+ return 0;
+
IEEE80211_DPRINTF(vap, IEEE80211_MSG_ASSOC,
"%s: new bssid %s: %s preamble, %s slot time%s\n", __func__,
ether_sprintf(ni->ni_bssid),
diff --git a/sys/net80211/ieee80211_node.h b/sys/net80211/ieee80211_node.h
index e9b7393..9492fc0 100644
--- a/sys/net80211/ieee80211_node.h
+++ b/sys/net80211/ieee80211_node.h
@@ -330,6 +330,7 @@ void ieee80211_setupcurchan(struct ieee80211com *,
struct ieee80211_channel *);
void ieee80211_setcurchan(struct ieee80211com *, struct ieee80211_channel *);
void ieee80211_update_chw(struct ieee80211com *);
+int ieee80211_ibss_merge_check(struct ieee80211_node *);
int ieee80211_ibss_merge(struct ieee80211_node *);
struct ieee80211_scan_entry;
int ieee80211_sta_join(struct ieee80211vap *, struct ieee80211_channel *,
diff --git a/sys/net80211/ieee80211_sta.c b/sys/net80211/ieee80211_sta.c
index 9c1707b..d80c767 100644
--- a/sys/net80211/ieee80211_sta.c
+++ b/sys/net80211/ieee80211_sta.c
@@ -1706,6 +1706,14 @@ sta_recv_mgmt(struct ieee80211_node *ni, struct mbuf *m0, int subtype,
}
/*
+ * Always initialise FF/superg state; we can use this
+ * for doing A-MSDU encapsulation as well.
+ */
+#ifdef IEEE80211_SUPPORT_SUPERG
+ ieee80211_ff_node_init(ni);
+#endif
+
+ /*
* Configure state now that we are associated.
*
* XXX may need different/additional driver callbacks?
diff --git a/sys/netgraph/netflow/ng_netflow.c b/sys/netgraph/netflow/ng_netflow.c
index 4f9f953c..a142903 100644
--- a/sys/netgraph/netflow/ng_netflow.c
+++ b/sys/netgraph/netflow/ng_netflow.c
@@ -609,7 +609,7 @@ ng_netflow_rcvdata (hook_p hook, item_p item)
*/
log(LOG_ERR, "ng_netflow: incoming data on export hook!\n");
ERROUT(EINVAL);
- };
+ }
if (hook == iface->hook) {
if ((iface->info.conf & NG_NETFLOW_CONF_INGRESS) == 0)
diff --git a/sys/netgraph/ng_base.c b/sys/netgraph/ng_base.c
index 0f48e12..af8505c 100644
--- a/sys/netgraph/ng_base.c
+++ b/sys/netgraph/ng_base.c
@@ -2056,7 +2056,7 @@ ng_acquire_read(node_p node, item_p item)
return (item);
}
cpu_spinwait();
- };
+ }
/* Queue the request for later. */
ng_queue_rw(node, item, NGQRW_R);
diff --git a/sys/netgraph/ng_ipfw.c b/sys/netgraph/ng_ipfw.c
index 092a041..066c31f 100644
--- a/sys/netgraph/ng_ipfw.c
+++ b/sys/netgraph/ng_ipfw.c
@@ -117,7 +117,7 @@ ng_ipfw_mod_event(module_t mod, int event, void *data)
!= 0) {
log(LOG_ERR, "%s: can't create ng_ipfw node", __func__);
break;
- };
+ }
/* Try to name node */
if (ng_name_node(fw_node, "ipfw") != 0)
@@ -240,7 +240,7 @@ ng_ipfw_rcvdata(hook_p hook, item_p item)
if (tag == NULL) {
NG_FREE_M(m);
return (EINVAL); /* XXX: find smth better */
- };
+ }
if (m->m_len < sizeof(struct ip) &&
(m = m_pullup(m, sizeof(struct ip))) == NULL)
diff --git a/sys/netgraph/ng_nat.c b/sys/netgraph/ng_nat.c
index 71419d6..cdec6e0 100644
--- a/sys/netgraph/ng_nat.c
+++ b/sys/netgraph/ng_nat.c
@@ -838,7 +838,7 @@ ng_nat_shutdown(node_p node)
struct ng_nat_rdr_lst *entry = STAILQ_FIRST(&priv->redirhead);
STAILQ_REMOVE_HEAD(&priv->redirhead, entries);
free(entry, M_NETGRAPH);
- };
+ }
/* Final free. */
LibAliasUninit(priv->lib);
diff --git a/sys/netinet/ip_divert.c b/sys/netinet/ip_divert.c
index 3e3bc94..f23a3a8 100644
--- a/sys/netinet/ip_divert.c
+++ b/sys/netinet/ip_divert.c
@@ -158,8 +158,7 @@ div_init(void)
* place for hashbase == NULL.
*/
in_pcbinfo_init(&V_divcbinfo, "div", &V_divcb, 1, 1, "divcb",
- div_inpcb_init, div_inpcb_fini, UMA_ZONE_NOFREE,
- IPI_HASHFIELDS_NONE);
+ div_inpcb_init, div_inpcb_fini, 0, IPI_HASHFIELDS_NONE);
}
static void
diff --git a/sys/netinet/raw_ip.c b/sys/netinet/raw_ip.c
index 2eecb95..9f29444 100644
--- a/sys/netinet/raw_ip.c
+++ b/sys/netinet/raw_ip.c
@@ -209,8 +209,7 @@ rip_init(void)
{
in_pcbinfo_init(&V_ripcbinfo, "rip", &V_ripcb, INP_PCBHASH_RAW_SIZE,
- 1, "ripcb", rip_inpcb_init, NULL, UMA_ZONE_NOFREE,
- IPI_HASHFIELDS_NONE);
+ 1, "ripcb", rip_inpcb_init, NULL, 0, IPI_HASHFIELDS_NONE);
EVENTHANDLER_REGISTER(maxsockets_change, rip_zone_change, NULL,
EVENTHANDLER_PRI_ANY);
}
diff --git a/sys/netinet/sctp.h b/sys/netinet/sctp.h
index 784c1d4..ec42cff 100644
--- a/sys/netinet/sctp.h
+++ b/sys/netinet/sctp.h
@@ -196,6 +196,9 @@ struct sctp_paramhdr {
#define SCTP_SS_VALUE 0x00001204
#define SCTP_CC_OPTION 0x00001205 /* Options for CC
* modules */
+/* For I-DATA */
+#define SCTP_INTERLEAVING_SUPPORTED 0x00001206
+
/* read only */
#define SCTP_GET_SNDBUF_USE 0x00001101
#define SCTP_GET_STAT_LOG 0x00001103
@@ -452,6 +455,7 @@ struct sctp_error_auth_invalid_hmac {
/* EY nr_sack chunk id*/
#define SCTP_NR_SELECTIVE_ACK 0x10
/************0x40 series ***********/
+#define SCTP_IDATA 0x40
/************0x80 series ***********/
/* RFC5061 */
#define SCTP_ASCONF_ACK 0x80
@@ -467,7 +471,7 @@ struct sctp_error_auth_invalid_hmac {
#define SCTP_FORWARD_CUM_TSN 0xc0
/* RFC5061 */
#define SCTP_ASCONF 0xc1
-
+#define SCTP_IFORWARD_CUM_TSN 0xc2
/* ABORT and SHUTDOWN COMPLETE FLAG */
#define SCTP_HAD_NO_TCB 0x01
diff --git a/sys/netinet/sctp_constants.h b/sys/netinet/sctp_constants.h
index 497dde6..6c1a014 100644
--- a/sys/netinet/sctp_constants.h
+++ b/sys/netinet/sctp_constants.h
@@ -386,8 +386,8 @@ __FBSDID("$FreeBSD$");
/* align to 32-bit sizes */
#define SCTP_SIZE32(x) ((((x) + 3) >> 2) << 2)
-#define IS_SCTP_CONTROL(a) ((a)->chunk_type != SCTP_DATA)
-#define IS_SCTP_DATA(a) ((a)->chunk_type == SCTP_DATA)
+#define IS_SCTP_CONTROL(a) (((a)->chunk_type != SCTP_DATA) && ((a)->chunk_type != SCTP_IDATA))
+#define IS_SCTP_DATA(a) (((a)->chunk_type == SCTP_DATA) || ((a)->chunk_type == SCTP_IDATA))
/* SCTP parameter types */
@@ -886,12 +886,19 @@ __FBSDID("$FreeBSD$");
/* modular comparison */
/* See RFC 1982 for details. */
-#define SCTP_SSN_GT(a, b) (((a < b) && ((uint16_t)(b - a) > (1U<<15))) || \
- ((a > b) && ((uint16_t)(a - b) < (1U<<15))))
-#define SCTP_SSN_GE(a, b) (SCTP_SSN_GT(a, b) || (a == b))
-#define SCTP_TSN_GT(a, b) (((a < b) && ((uint32_t)(b - a) > (1U<<31))) || \
- ((a > b) && ((uint32_t)(a - b) < (1U<<31))))
-#define SCTP_TSN_GE(a, b) (SCTP_TSN_GT(a, b) || (a == b))
+#define SCTP_UINT16_GT(a, b) (((a < b) && ((uint16_t)(b - a) > (1U<<15))) || \
+ ((a > b) && ((uint16_t)(a - b) < (1U<<15))))
+#define SCTP_UINT16_GE(a, b) (SCTP_UINT16_GT(a, b) || (a == b))
+#define SCTP_UINT32_GT(a, b) (((a < b) && ((uint32_t)(b - a) > (1U<<31))) || \
+ ((a > b) && ((uint32_t)(a - b) < (1U<<31))))
+#define SCTP_UINT32_GE(a, b) (SCTP_UINT32_GT(a, b) || (a == b))
+
+#define SCTP_SSN_GT(a, b) SCTP_UINT16_GT(a, b)
+#define SCTP_SSN_GE(a, b) SCTP_UINT16_GE(a, b)
+#define SCTP_TSN_GT(a, b) SCTP_UINT32_GT(a, b)
+#define SCTP_TSN_GE(a, b) SCTP_UINT32_GE(a, b)
+#define SCTP_MSGID_GT(o, a, b) ((o == 1) ? SCTP_UINT16_GT((uint16_t)a, (uint16_t)b) : SCTP_UINT32_GT(a, b))
+#define SCTP_MSGID_GE(o, a, b) ((o == 1) ? SCTP_UINT16_GE((uint16_t)a, (uint16_t)b) : SCTP_UINT32_GE(a, b))
/* Mapping array manipulation routines */
#define SCTP_IS_TSN_PRESENT(arry, gap) ((arry[(gap >> 3)] >> (gap & 0x07)) & 0x01)
diff --git a/sys/netinet/sctp_dtrace_define.h b/sys/netinet/sctp_dtrace_define.h
index f34effb..19f44da 100644
--- a/sys/netinet/sctp_dtrace_define.h
+++ b/sys/netinet/sctp_dtrace_define.h
@@ -45,131 +45,131 @@ SDT_PROVIDER_DEFINE(sctp);
/********************************************************/
/* Initial */
SDT_PROBE_DEFINE5(sctp, cwnd, net, init,
- "uint32_t", /* The Vtag for this end */
- "uint32_t", /*
- * The port number of the local side << 16 | port number
- * of remote in network byte order.
- */
- "uintptr_t", /* The pointer to the struct sctp_nets * changing */
- "int", /* The old value of the cwnd */
- "int"); /* The new value of the cwnd */
+ "uint32_t", /* The Vtag for this end */
+ "uint32_t", /* The port number of the local side << 16 |
+ * port number of remote in network byte
+ * order. */
+ "uintptr_t", /* The pointer to the struct sctp_nets *
+ * changing */
+ "int", /* The old value of the cwnd */
+ "int"); /* The new value of the cwnd */
/* ACK-INCREASE */
SDT_PROBE_DEFINE5(sctp, cwnd, net, ack,
- "uint32_t", /* The Vtag for this end */
- "uint32_t", /*
- * The port number of the local side << 16 | port number
- * of remote in network byte order.
- */
- "uintptr_t", /* The pointer to the struct sctp_nets * changing */
- "int", /* The old value of the cwnd */
- "int"); /* The new value of the cwnd */
+ "uint32_t", /* The Vtag for this end */
+ "uint32_t", /* The port number of the local side << 16 |
+ * port number of remote in network byte
+ * order. */
+ "uintptr_t", /* The pointer to the struct sctp_nets *
+ * changing */
+ "int", /* The old value of the cwnd */
+ "int"); /* The new value of the cwnd */
/* ACK-INCREASE */
SDT_PROBE_DEFINE5(sctp, cwnd, net, rttvar,
- "uint64_t", /* The Vtag << 32 | localport << 16 | remoteport */
- "uint64_t", /* obw | nbw */
- "uint64_t", /* bwrtt | newrtt */
- "uint64_t", /* flight */
- "uint64_t"); /* (cwnd << 32) | point << 16 | retval(0/1) */
+ "uint64_t", /* The Vtag << 32 | localport << 16 |
+ * remoteport */
+ "uint64_t", /* obw | nbw */
+ "uint64_t", /* bwrtt | newrtt */
+ "uint64_t", /* flight */
+ "uint64_t"); /* (cwnd << 32) | point << 16 | retval(0/1) */
SDT_PROBE_DEFINE5(sctp, cwnd, net, rttstep,
- "uint64_t", /* The Vtag << 32 | localport << 16 | remoteport */
- "uint64_t", /* obw | nbw */
- "uint64_t", /* bwrtt | newrtt */
- "uint64_t", /* flight */
- "uint64_t"); /* (cwnd << 32) | point << 16 | retval(0/1) */
+ "uint64_t", /* The Vtag << 32 | localport << 16 |
+ * remoteport */
+ "uint64_t", /* obw | nbw */
+ "uint64_t", /* bwrtt | newrtt */
+ "uint64_t", /* flight */
+ "uint64_t"); /* (cwnd << 32) | point << 16 | retval(0/1) */
/* FastRetransmit-DECREASE */
SDT_PROBE_DEFINE5(sctp, cwnd, net, fr,
- "uint32_t", /* The Vtag for this end */
- "uint32_t", /*
- * The port number of the local side << 16 | port number
- * of remote in network byte order.
- */
- "uintptr_t", /* The pointer to the struct sctp_nets * changing */
- "int", /* The old value of the cwnd */
- "int"); /* The new value of the cwnd */
+ "uint32_t", /* The Vtag for this end */
+ "uint32_t", /* The port number of the local side << 16 |
+ * port number of remote in network byte
+ * order. */
+ "uintptr_t", /* The pointer to the struct sctp_nets *
+ * changing */
+ "int", /* The old value of the cwnd */
+ "int"); /* The new value of the cwnd */
/* TimeOut-DECREASE */
SDT_PROBE_DEFINE5(sctp, cwnd, net, to,
- "uint32_t", /* The Vtag for this end */
- "uint32_t", /*
- * The port number of the local side << 16 | port number
- * of remote in network byte order.
- */
- "uintptr_t", /* The pointer to the struct sctp_nets * changing */
- "int", /* The old value of the cwnd */
- "int"); /* The new value of the cwnd */
+ "uint32_t", /* The Vtag for this end */
+ "uint32_t", /* The port number of the local side << 16 |
+ * port number of remote in network byte
+ * order. */
+ "uintptr_t", /* The pointer to the struct sctp_nets *
+ * changing */
+ "int", /* The old value of the cwnd */
+ "int"); /* The new value of the cwnd */
/* BurstLimit-DECREASE */
SDT_PROBE_DEFINE5(sctp, cwnd, net, bl,
- "uint32_t", /* The Vtag for this end */
- "uint32_t", /*
- * The port number of the local side << 16 | port number
- * of remote in network byte order.
- */
- "uintptr_t", /* The pointer to the struct sctp_nets * changing */
- "int", /* The old value of the cwnd */
- "int"); /* The new value of the cwnd */
+ "uint32_t", /* The Vtag for this end */
+ "uint32_t", /* The port number of the local side << 16 |
+ * port number of remote in network byte
+ * order. */
+ "uintptr_t", /* The pointer to the struct sctp_nets *
+ * changing */
+ "int", /* The old value of the cwnd */
+ "int"); /* The new value of the cwnd */
/* ECN-DECREASE */
SDT_PROBE_DEFINE5(sctp, cwnd, net, ecn,
- "uint32_t", /* The Vtag for this end */
- "uint32_t", /*
- * The port number of the local side << 16 | port number
- * of remote in network byte order.
- */
- "uintptr_t", /* The pointer to the struct sctp_nets * changing */
- "int", /* The old value of the cwnd */
- "int"); /* The new value of the cwnd */
+ "uint32_t", /* The Vtag for this end */
+ "uint32_t", /* The port number of the local side << 16 |
+ * port number of remote in network byte
+ * order. */
+ "uintptr_t", /* The pointer to the struct sctp_nets *
+ * changing */
+ "int", /* The old value of the cwnd */
+ "int"); /* The new value of the cwnd */
/* PacketDrop-DECREASE */
SDT_PROBE_DEFINE5(sctp, cwnd, net, pd,
- "uint32_t", /* The Vtag for this end */
- "uint32_t", /*
- * The port number of the local side << 16 | port number
- * of remote in network byte order.
- */
- "uintptr_t", /* The pointer to the struct sctp_nets * changing */
- "int", /* The old value of the cwnd */
- "int"); /* The new value of the cwnd */
+ "uint32_t", /* The Vtag for this end */
+ "uint32_t", /* The port number of the local side << 16 |
+ * port number of remote in network byte
+ * order. */
+ "uintptr_t", /* The pointer to the struct sctp_nets *
+ * changing */
+ "int", /* The old value of the cwnd */
+ "int"); /* The new value of the cwnd */
/********************************************************/
/* Rwnd probe - tracks changes in the receiver window for an assoc */
/********************************************************/
SDT_PROBE_DEFINE4(sctp, rwnd, assoc, val,
- "uint32_t", /* The Vtag for this end */
- "uint32_t", /*
- * The port number of the local side << 16 | port number
- * of remote in network byte order.
- */
- "int", /* The up/down amount */
- "int"); /* The new value of the cwnd */
+ "uint32_t", /* The Vtag for this end */
+ "uint32_t", /* The port number of the local side << 16 |
+ * port number of remote in network byte
+ * order. */
+ "int", /* The up/down amount */
+ "int"); /* The new value of the cwnd */
/********************************************************/
/* flight probe - tracks changes in the flight size on a net or assoc */
/********************************************************/
SDT_PROBE_DEFINE5(sctp, flightsize, net, val,
- "uint32_t", /* The Vtag for this end */
- "uint32_t", /*
- * The port number of the local side << 16 | port number
- * of remote in network byte order.
- */
- "uintptr_t", /* The pointer to the struct sctp_nets * changing */
- "int", /* The up/down amount */
- "int"); /* The new value of the cwnd */
+ "uint32_t", /* The Vtag for this end */
+ "uint32_t", /* The port number of the local side << 16 |
+ * port number of remote in network byte
+ * order. */
+ "uintptr_t", /* The pointer to the struct sctp_nets *
+ * changing */
+ "int", /* The up/down amount */
+ "int"); /* The new value of the cwnd */
/********************************************************/
/* The total flight version */
/********************************************************/
SDT_PROBE_DEFINE4(sctp, flightsize, assoc, val,
- "uint32_t", /* The Vtag for this end */
- "uint32_t", /*
- * The port number of the local side << 16 | port number
- * of remote in network byte order.
- */
- "int", /* The up/down amount */
- "int"); /* The new value of the cwnd */
+ "uint32_t", /* The Vtag for this end */
+ "uint32_t", /* The port number of the local side << 16 |
+ * port number of remote in network byte
+ * order. */
+ "int", /* The up/down amount */
+ "int"); /* The new value of the cwnd */
#endif
diff --git a/sys/netinet/sctp_header.h b/sys/netinet/sctp_header.h
index dc05b3d..d38c837 100644
--- a/sys/netinet/sctp_header.h
+++ b/sys/netinet/sctp_header.h
@@ -152,6 +152,23 @@ struct sctp_data_chunk {
struct sctp_data dp;
} SCTP_PACKED;
+struct sctp_idata {
+ uint32_t tsn;
+ uint16_t stream_id;
+ uint16_t reserved; /* Where does the SSN go? */
+ uint32_t msg_id;
+ union {
+ uint32_t protocol_id;
+ uint32_t fsn; /* Fragment Sequence Number */
+ };
+ /* user data follows */
+} SCTP_PACKED;
+
+struct sctp_idata_chunk {
+ struct sctp_chunkhdr ch;
+ struct sctp_idata dp;
+} SCTP_PACKED;
+
/*
* Structures for the control chunks
*/
@@ -378,6 +395,12 @@ struct sctp_strseq {
uint16_t sequence;
} SCTP_PACKED;
+struct sctp_strseq_mid {
+ uint16_t stream;
+ uint16_t reserved;
+ uint32_t msg_id;
+};
+
struct sctp_forward_tsn_msg {
struct sctphdr sh;
struct sctp_forward_tsn_chunk msg;
diff --git a/sys/netinet/sctp_indata.c b/sys/netinet/sctp_indata.c
index cbc7fb5..76f0ad3 100644
--- a/sys/netinet/sctp_indata.c
+++ b/sys/netinet/sctp_indata.c
@@ -34,18 +34,22 @@
__FBSDID("$FreeBSD$");
#include <netinet/sctp_os.h>
+#include <sys/proc.h>
#include <netinet/sctp_var.h>
#include <netinet/sctp_sysctl.h>
-#include <netinet/sctp_pcb.h>
#include <netinet/sctp_header.h>
+#include <netinet/sctp_pcb.h>
#include <netinet/sctputil.h>
#include <netinet/sctp_output.h>
-#include <netinet/sctp_input.h>
-#include <netinet/sctp_indata.h>
#include <netinet/sctp_uio.h>
+#include <netinet/sctp_auth.h>
#include <netinet/sctp_timer.h>
-
-
+#include <netinet/sctp_asconf.h>
+#include <netinet/sctp_indata.h>
+#include <netinet/sctp_bsd_addr.h>
+#include <netinet/sctp_input.h>
+#include <netinet/sctp_crc32.h>
+#include <netinet/sctp_lock_bsd.h>
/*
* NOTES: On the outbound side of things I need to check the sack timer to
* see if I should generate a sack into the chunk queue (if I have data to
@@ -55,6 +59,13 @@ __FBSDID("$FreeBSD$");
* This will cause sctp_service_queues() to get called on the top entry in
* the list.
*/
+static void
+sctp_add_chk_to_control(struct sctp_queued_to_read *control,
+ struct sctp_stream_in *strm,
+ struct sctp_tcb *stcb,
+ struct sctp_association *asoc,
+ struct sctp_tmit_chunk *chk);
+
void
sctp_set_rwnd(struct sctp_tcb *stcb, struct sctp_association *asoc)
@@ -74,9 +85,9 @@ sctp_calc_rwnd(struct sctp_tcb *stcb, struct sctp_association *asoc)
* sctp_soreceive then we will fix this so that ONLY this
* associations data is taken into account.
*/
- if (stcb->sctp_socket == NULL)
+ if (stcb->sctp_socket == NULL) {
return (calc);
-
+ }
if (stcb->asoc.sb_cc == 0 &&
asoc->size_on_reasm_queue == 0 &&
asoc->size_on_all_streams == 0) {
@@ -86,7 +97,6 @@ sctp_calc_rwnd(struct sctp_tcb *stcb, struct sctp_association *asoc)
}
/* get actual space */
calc = (uint32_t) sctp_sbspace(&stcb->asoc, &stcb->sctp_socket->so_rcv);
-
/*
* take out what has NOT been put on socket queue and we yet hold
* for putting up.
@@ -95,7 +105,6 @@ sctp_calc_rwnd(struct sctp_tcb *stcb, struct sctp_association *asoc)
asoc->cnt_on_reasm_queue * MSIZE));
calc = sctp_sbspace_sub(calc, (uint32_t) (asoc->size_on_all_streams +
asoc->cnt_on_all_streams * MSIZE));
-
if (calc == 0) {
/* out of space */
return (calc);
@@ -122,7 +131,7 @@ sctp_build_readq_entry(struct sctp_tcb *stcb,
struct sctp_nets *net,
uint32_t tsn, uint32_t ppid,
uint32_t context, uint16_t stream_no,
- uint16_t stream_seq, uint8_t flags,
+ uint32_t stream_seq, uint8_t flags,
struct mbuf *dm)
{
struct sctp_queued_to_read *read_queue_e = NULL;
@@ -131,73 +140,26 @@ sctp_build_readq_entry(struct sctp_tcb *stcb,
if (read_queue_e == NULL) {
goto failed_build;
}
+ memset(read_queue_e, 0, sizeof(struct sctp_queued_to_read));
read_queue_e->sinfo_stream = stream_no;
read_queue_e->sinfo_ssn = stream_seq;
read_queue_e->sinfo_flags = (flags << 8);
read_queue_e->sinfo_ppid = ppid;
read_queue_e->sinfo_context = context;
- read_queue_e->sinfo_timetolive = 0;
read_queue_e->sinfo_tsn = tsn;
read_queue_e->sinfo_cumtsn = tsn;
read_queue_e->sinfo_assoc_id = sctp_get_associd(stcb);
+ read_queue_e->top_fsn = read_queue_e->fsn_included = 0xffffffff;
+ TAILQ_INIT(&read_queue_e->reasm);
read_queue_e->whoFrom = net;
- read_queue_e->length = 0;
atomic_add_int(&net->ref_count, 1);
read_queue_e->data = dm;
- read_queue_e->spec_flags = 0;
- read_queue_e->tail_mbuf = NULL;
- read_queue_e->aux_data = NULL;
read_queue_e->stcb = stcb;
read_queue_e->port_from = stcb->rport;
- read_queue_e->do_not_ref_stcb = 0;
- read_queue_e->end_added = 0;
- read_queue_e->some_taken = 0;
- read_queue_e->pdapi_aborted = 0;
failed_build:
return (read_queue_e);
}
-
-/*
- * Build out our readq entry based on the incoming packet.
- */
-static struct sctp_queued_to_read *
-sctp_build_readq_entry_chk(struct sctp_tcb *stcb,
- struct sctp_tmit_chunk *chk)
-{
- struct sctp_queued_to_read *read_queue_e = NULL;
-
- sctp_alloc_a_readq(stcb, read_queue_e);
- if (read_queue_e == NULL) {
- goto failed_build;
- }
- read_queue_e->sinfo_stream = chk->rec.data.stream_number;
- read_queue_e->sinfo_ssn = chk->rec.data.stream_seq;
- read_queue_e->sinfo_flags = (chk->rec.data.rcv_flags << 8);
- read_queue_e->sinfo_ppid = chk->rec.data.payloadtype;
- read_queue_e->sinfo_context = stcb->asoc.context;
- read_queue_e->sinfo_timetolive = 0;
- read_queue_e->sinfo_tsn = chk->rec.data.TSN_seq;
- read_queue_e->sinfo_cumtsn = chk->rec.data.TSN_seq;
- read_queue_e->sinfo_assoc_id = sctp_get_associd(stcb);
- read_queue_e->whoFrom = chk->whoTo;
- read_queue_e->aux_data = NULL;
- read_queue_e->length = 0;
- atomic_add_int(&chk->whoTo->ref_count, 1);
- read_queue_e->data = chk->data;
- read_queue_e->tail_mbuf = NULL;
- read_queue_e->stcb = stcb;
- read_queue_e->port_from = stcb->rport;
- read_queue_e->spec_flags = 0;
- read_queue_e->do_not_ref_stcb = 0;
- read_queue_e->end_added = 0;
- read_queue_e->some_taken = 0;
- read_queue_e->pdapi_aborted = 0;
-failed_build:
- return (read_queue_e);
-}
-
-
struct mbuf *
sctp_build_ctl_nchunk(struct sctp_inpcb *inp, struct sctp_sndrcvinfo *sinfo)
{
@@ -317,6 +279,7 @@ sctp_mark_non_revokable(struct sctp_association *asoc, uint32_t tsn)
{
uint32_t gap, i, cumackp1;
int fnd = 0;
+ int in_r = 0, in_nr = 0;
if (SCTP_BASE_SYSCTL(sctp_do_drain) == 0) {
return;
@@ -330,15 +293,20 @@ sctp_mark_non_revokable(struct sctp_association *asoc, uint32_t tsn)
return;
}
SCTP_CALC_TSN_TO_GAP(gap, tsn, asoc->mapping_array_base_tsn);
- if (!SCTP_IS_TSN_PRESENT(asoc->mapping_array, gap)) {
+ in_r = SCTP_IS_TSN_PRESENT(asoc->mapping_array, gap);
+ in_nr = SCTP_IS_TSN_PRESENT(asoc->nr_mapping_array, gap);
+ if ((in_r == 0) && (in_nr == 0)) {
+#ifdef INVARIANTS
+ panic("Things are really messed up now");
+#else
SCTP_PRINTF("gap:%x tsn:%x\n", gap, tsn);
sctp_print_mapping_array(asoc);
-#ifdef INVARIANTS
- panic("Things are really messed up now!!");
#endif
}
- SCTP_SET_TSN_PRESENT(asoc->nr_mapping_array, gap);
- SCTP_UNSET_TSN_PRESENT(asoc->mapping_array, gap);
+ if (in_nr == 0)
+ SCTP_SET_TSN_PRESENT(asoc->nr_mapping_array, gap);
+ if (in_r)
+ SCTP_UNSET_TSN_PRESENT(asoc->mapping_array, gap);
if (SCTP_TSN_GT(tsn, asoc->highest_tsn_inside_nr_map)) {
asoc->highest_tsn_inside_nr_map = tsn;
}
@@ -358,191 +326,157 @@ sctp_mark_non_revokable(struct sctp_association *asoc, uint32_t tsn)
}
}
-
-/*
- * We are delivering currently from the reassembly queue. We must continue to
- * deliver until we either: 1) run out of space. 2) run out of sequential
- * TSN's 3) hit the SCTP_DATA_LAST_FRAG flag.
- */
-static void
-sctp_service_reassembly(struct sctp_tcb *stcb, struct sctp_association *asoc)
+static int
+sctp_place_control_in_stream(struct sctp_stream_in *strm,
+ struct sctp_association *asoc,
+ struct sctp_queued_to_read *control)
{
- struct sctp_tmit_chunk *chk, *nchk;
- uint16_t nxt_todel;
- uint16_t stream_no;
- int end = 0;
- int cntDel;
- struct sctp_queued_to_read *control, *ctl, *nctl;
-
- if (stcb == NULL)
- return;
-
- cntDel = stream_no = 0;
- if ((stcb->sctp_ep->sctp_flags & SCTP_PCB_FLAGS_SOCKET_GONE) ||
- (stcb->asoc.state & SCTP_STATE_ABOUT_TO_BE_FREED) ||
- (stcb->asoc.state & SCTP_STATE_CLOSED_SOCKET)) {
- /* socket above is long gone or going.. */
-abandon:
- asoc->fragmented_delivery_inprogress = 0;
- TAILQ_FOREACH_SAFE(chk, &asoc->reasmqueue, sctp_next, nchk) {
- TAILQ_REMOVE(&asoc->reasmqueue, chk, sctp_next);
- asoc->size_on_reasm_queue -= chk->send_size;
- sctp_ucount_decr(asoc->cnt_on_reasm_queue);
- /*
- * Lose the data pointer, since its in the socket
- * buffer
- */
- if (chk->data) {
- sctp_m_freem(chk->data);
- chk->data = NULL;
+ struct sctp_queued_to_read *at;
+ struct sctp_readhead *q;
+ uint8_t bits, unordered;
+
+ bits = (control->sinfo_flags >> 8);
+ unordered = bits & SCTP_DATA_UNORDERED;
+ if (unordered) {
+ q = &strm->uno_inqueue;
+ if (asoc->idata_supported == 0) {
+ if (!TAILQ_EMPTY(q)) {
+ /*
+ * Only one stream can be here in old style
+ * -- abort
+ */
+ return (-1);
}
- /* Now free the address and data */
- sctp_free_a_chunk(stcb, chk, SCTP_SO_NOT_LOCKED);
- /* sa_ignore FREED_MEMORY */
+ TAILQ_INSERT_TAIL(q, control, next_instrm);
+ control->on_strm_q = SCTP_ON_UNORDERED;
+ return (0);
}
- return;
+ } else {
+ q = &strm->inqueue;
}
- SCTP_TCB_LOCK_ASSERT(stcb);
- TAILQ_FOREACH_SAFE(chk, &asoc->reasmqueue, sctp_next, nchk) {
- if (chk->rec.data.TSN_seq != (asoc->tsn_last_delivered + 1)) {
- /* Can't deliver more :< */
- return;
- }
- stream_no = chk->rec.data.stream_number;
- nxt_todel = asoc->strmin[stream_no].last_sequence_delivered + 1;
- if (nxt_todel != chk->rec.data.stream_seq &&
- (chk->rec.data.rcv_flags & SCTP_DATA_UNORDERED) == 0) {
- /*
- * Not the next sequence to deliver in its stream OR
- * unordered
- */
- return;
- }
- if (chk->rec.data.rcv_flags & SCTP_DATA_FIRST_FRAG) {
-
- control = sctp_build_readq_entry_chk(stcb, chk);
- if (control == NULL) {
- /* out of memory? */
- return;
- }
- /* save it off for our future deliveries */
- stcb->asoc.control_pdapi = control;
- if (chk->rec.data.rcv_flags & SCTP_DATA_LAST_FRAG)
- end = 1;
- else
- end = 0;
- sctp_mark_non_revokable(asoc, chk->rec.data.TSN_seq);
- sctp_add_to_readq(stcb->sctp_ep,
- stcb, control, &stcb->sctp_socket->so_rcv, end,
- SCTP_READ_LOCK_NOT_HELD, SCTP_SO_NOT_LOCKED);
- cntDel++;
+ if ((bits & SCTP_DATA_NOT_FRAG) == SCTP_DATA_NOT_FRAG) {
+ control->end_added = control->last_frag_seen = control->first_frag_seen = 1;
+ }
+ if (TAILQ_EMPTY(q)) {
+ /* Empty queue */
+ TAILQ_INSERT_HEAD(q, control, next_instrm);
+ if (unordered) {
+ control->on_strm_q = SCTP_ON_UNORDERED;
} else {
- if (chk->rec.data.rcv_flags & SCTP_DATA_LAST_FRAG)
- end = 1;
- else
- end = 0;
- sctp_mark_non_revokable(asoc, chk->rec.data.TSN_seq);
- if (sctp_append_to_readq(stcb->sctp_ep, stcb,
- stcb->asoc.control_pdapi,
- chk->data, end, chk->rec.data.TSN_seq,
- &stcb->sctp_socket->so_rcv)) {
+ control->on_strm_q = SCTP_ON_ORDERED;
+ }
+ return (0);
+ } else {
+ TAILQ_FOREACH(at, q, next_instrm) {
+ if (SCTP_TSN_GT(at->msg_id, control->msg_id)) {
/*
- * something is very wrong, either
- * control_pdapi is NULL, or the tail_mbuf
- * is corrupt, or there is a EOM already on
- * the mbuf chain.
+ * one in queue is bigger than the new one,
+ * insert before this one
*/
- if (stcb->asoc.state & SCTP_STATE_ABOUT_TO_BE_FREED) {
- goto abandon;
+ TAILQ_INSERT_BEFORE(at, control, next_instrm);
+ if (unordered) {
+ control->on_strm_q = SCTP_ON_UNORDERED;
} else {
-#ifdef INVARIANTS
- if ((stcb->asoc.control_pdapi == NULL) || (stcb->asoc.control_pdapi->tail_mbuf == NULL)) {
- panic("This should not happen control_pdapi NULL?");
+ control->on_strm_q = SCTP_ON_ORDERED;
+ }
+ break;
+ } else if (at->msg_id == control->msg_id) {
+ /*
+ * Gak, He sent me a duplicate msg id
+ * number?? return -1 to abort.
+ */
+ return (-1);
+ } else {
+ if (TAILQ_NEXT(at, next_instrm) == NULL) {
+ /*
+ * We are at the end, insert it
+ * after this one
+ */
+ if (SCTP_BASE_SYSCTL(sctp_logging_level) & SCTP_STR_LOGGING_ENABLE) {
+ sctp_log_strm_del(control, at,
+ SCTP_STR_LOG_FROM_INSERT_TL);
}
- /* if we did not panic, it was a EOM */
- panic("Bad chunking ??");
-#else
- if ((stcb->asoc.control_pdapi == NULL) || (stcb->asoc.control_pdapi->tail_mbuf == NULL)) {
- SCTP_PRINTF("This should not happen control_pdapi NULL?\n");
+ TAILQ_INSERT_AFTER(q,
+ at, control, next_instrm);
+ if (unordered) {
+ control->on_strm_q = SCTP_ON_UNORDERED;
+ } else {
+ control->on_strm_q = SCTP_ON_ORDERED;
}
- SCTP_PRINTF("Bad chunking ??\n");
- SCTP_PRINTF("Dumping re-assembly queue this will probably hose the association\n");
-
-#endif
- goto abandon;
+ break;
}
}
- cntDel++;
}
- /* pull it we did it */
- TAILQ_REMOVE(&asoc->reasmqueue, chk, sctp_next);
- if (chk->rec.data.rcv_flags & SCTP_DATA_LAST_FRAG) {
- asoc->fragmented_delivery_inprogress = 0;
- if ((chk->rec.data.rcv_flags & SCTP_DATA_UNORDERED) == 0) {
- asoc->strmin[stream_no].last_sequence_delivered++;
- }
- if ((chk->rec.data.rcv_flags & SCTP_DATA_FIRST_FRAG) == 0) {
- SCTP_STAT_INCR_COUNTER64(sctps_reasmusrmsgs);
- }
- } else if (chk->rec.data.rcv_flags & SCTP_DATA_FIRST_FRAG) {
- /*
- * turn the flag back on since we just delivered
- * yet another one.
- */
- asoc->fragmented_delivery_inprogress = 1;
- }
- asoc->tsn_of_pdapi_last_delivered = chk->rec.data.TSN_seq;
- asoc->last_flags_delivered = chk->rec.data.rcv_flags;
- asoc->last_strm_seq_delivered = chk->rec.data.stream_seq;
- asoc->last_strm_no_delivered = chk->rec.data.stream_number;
+ }
+ return (0);
+}
- asoc->tsn_last_delivered = chk->rec.data.TSN_seq;
- asoc->size_on_reasm_queue -= chk->send_size;
- sctp_ucount_decr(asoc->cnt_on_reasm_queue);
- /* free up the chk */
- chk->data = NULL;
- sctp_free_a_chunk(stcb, chk, SCTP_SO_NOT_LOCKED);
+static void
+sctp_abort_in_reasm(struct sctp_tcb *stcb,
+ struct sctp_stream_in *strm,
+ struct sctp_queued_to_read *control,
+ struct sctp_tmit_chunk *chk,
+ int *abort_flag, int opspot)
+{
+ char msg[SCTP_DIAG_INFO_LEN];
+ struct mbuf *oper;
+
+ if (stcb->asoc.idata_supported) {
+ snprintf(msg, sizeof(msg),
+ "Reass %x,CF:%x,TSN=%8.8x,SID=%4.4x,FSN=%8.8x,MID:%8.8x",
+ opspot,
+ control->fsn_included,
+ chk->rec.data.TSN_seq,
+ chk->rec.data.stream_number,
+ chk->rec.data.fsn_num, chk->rec.data.stream_seq);
+ } else {
+ snprintf(msg, sizeof(msg),
+ "Reass %x, CI:%x,TSN=%8.8x,SID=%4.4x,FSN=%4.4x, SSN:%4.4x",
+ opspot,
+ control->fsn_included,
+ chk->rec.data.TSN_seq,
+ chk->rec.data.stream_number,
+ chk->rec.data.fsn_num,
+ (uint16_t) chk->rec.data.stream_seq);
+ }
+ oper = sctp_generate_cause(SCTP_CAUSE_PROTOCOL_VIOLATION, msg);
+ sctp_m_freem(chk->data);
+ chk->data = NULL;
+ sctp_free_a_chunk(stcb, chk, SCTP_SO_NOT_LOCKED);
+ stcb->sctp_ep->last_abort_code = SCTP_FROM_SCTP_INDATA + SCTP_LOC_1;
+ sctp_abort_an_association(stcb->sctp_ep, stcb, oper, SCTP_SO_NOT_LOCKED);
+ *abort_flag = 1;
+}
- if (asoc->fragmented_delivery_inprogress == 0) {
- /*
- * Now lets see if we can deliver the next one on
- * the stream
- */
- struct sctp_stream_in *strm;
+static void
+clean_up_control(struct sctp_tcb *stcb, struct sctp_queued_to_read *control)
+{
+ /*
+ * The control could not be placed and must be cleaned.
+ */
+ struct sctp_tmit_chunk *chk, *nchk;
- strm = &asoc->strmin[stream_no];
- nxt_todel = strm->last_sequence_delivered + 1;
- TAILQ_FOREACH_SAFE(ctl, &strm->inqueue, next, nctl) {
- /* Deliver more if we can. */
- if (nxt_todel == ctl->sinfo_ssn) {
- TAILQ_REMOVE(&strm->inqueue, ctl, next);
- asoc->size_on_all_streams -= ctl->length;
- sctp_ucount_decr(asoc->cnt_on_all_streams);
- strm->last_sequence_delivered++;
- sctp_mark_non_revokable(asoc, ctl->sinfo_tsn);
- sctp_add_to_readq(stcb->sctp_ep, stcb,
- ctl,
- &stcb->sctp_socket->so_rcv, 1,
- SCTP_READ_LOCK_NOT_HELD, SCTP_SO_NOT_LOCKED);
- } else {
- break;
- }
- nxt_todel = strm->last_sequence_delivered + 1;
- }
- break;
- }
+ TAILQ_FOREACH_SAFE(chk, &control->reasm, sctp_next, nchk) {
+ TAILQ_REMOVE(&control->reasm, chk, sctp_next);
+ if (chk->data)
+ sctp_m_freem(chk->data);
+ chk->data = NULL;
+ sctp_free_a_chunk(stcb, chk, SCTP_SO_NOT_LOCKED);
}
+ sctp_free_a_readq(stcb, control);
}
/*
* Queue the chunk either right into the socket buffer if it is the next one
* to go OR put it in the correct place in the delivery queue. If we do
- * append to the so_buf, keep doing so until we are out of order. One big
- * question still remains, what to do when the socket buffer is FULL??
+ * append to the so_buf, keep doing so until we are out of order as
+ * long as the control's entered are non-fragmented.
*/
static void
-sctp_queue_data_to_stream(struct sctp_tcb *stcb, struct sctp_association *asoc,
- struct sctp_queued_to_read *control, int *abort_flag)
+sctp_queue_data_to_stream(struct sctp_tcb *stcb,
+ struct sctp_stream_in *strm,
+ struct sctp_association *asoc,
+ struct sctp_queued_to_read *control, int *abort_flag, int *need_reasm)
{
/*
* FIX-ME maybe? What happens when the ssn wraps? If we are getting
@@ -562,27 +496,16 @@ sctp_queue_data_to_stream(struct sctp_tcb *stcb, struct sctp_association *asoc,
* SSN alone. Maybe a hybred approach is the answer
*
*/
- struct sctp_stream_in *strm;
struct sctp_queued_to_read *at;
int queue_needed;
- uint16_t nxt_todel;
+ uint32_t nxt_todel;
struct mbuf *op_err;
char msg[SCTP_DIAG_INFO_LEN];
- queue_needed = 1;
- asoc->size_on_all_streams += control->length;
- sctp_ucount_incr(asoc->cnt_on_all_streams);
- strm = &asoc->strmin[control->sinfo_stream];
- nxt_todel = strm->last_sequence_delivered + 1;
if (SCTP_BASE_SYSCTL(sctp_logging_level) & SCTP_STR_LOGGING_ENABLE) {
sctp_log_strm_del(control, NULL, SCTP_STR_LOG_FROM_INTO_STRD);
}
- SCTPDBG(SCTP_DEBUG_INDATA1,
- "queue to stream called for sid:%u ssn:%u tsn:%u lastdel:%u nxt:%u\n",
- (uint32_t) control->sinfo_stream, (uint32_t) control->sinfo_ssn,
- (uint32_t) control->sinfo_tsn,
- (uint32_t) strm->last_sequence_delivered, (uint32_t) nxt_todel);
- if (SCTP_SSN_GE(strm->last_sequence_delivered, control->sinfo_ssn)) {
+ if (SCTP_MSGID_GT((!asoc->idata_supported), strm->last_sequence_delivered, control->sinfo_ssn)) {
/* The incoming sseq is behind where we last delivered? */
SCTPDBG(SCTP_DEBUG_INDATA1, "Duplicate S-SEQ:%d delivered:%d from peer, Abort association\n",
control->sinfo_ssn, strm->last_sequence_delivered);
@@ -591,32 +514,39 @@ protocol_error:
* throw it in the stream so it gets cleaned up in
* association destruction
*/
- TAILQ_INSERT_HEAD(&strm->inqueue, control, next);
+ TAILQ_INSERT_HEAD(&strm->inqueue, control, next_instrm);
snprintf(msg, sizeof(msg), "Delivered SSN=%4.4x, got TSN=%8.8x, SID=%4.4x, SSN=%4.4x",
strm->last_sequence_delivered, control->sinfo_tsn,
control->sinfo_stream, control->sinfo_ssn);
op_err = sctp_generate_cause(SCTP_CAUSE_PROTOCOL_VIOLATION, msg);
- stcb->sctp_ep->last_abort_code = SCTP_FROM_SCTP_INDATA + SCTP_LOC_1;
+ stcb->sctp_ep->last_abort_code = SCTP_FROM_SCTP_INDATA + SCTP_LOC_2;
sctp_abort_an_association(stcb->sctp_ep, stcb, op_err, SCTP_SO_NOT_LOCKED);
*abort_flag = 1;
return;
}
-#if defined(__APPLE__) || defined(SCTP_SO_LOCK_TESTING)
- struct socket *so;
-
- so = SCTP_INP_SO(stcb->sctp_ep);
- atomic_add_int(&stcb->asoc.refcnt, 1);
- SCTP_TCB_UNLOCK(stcb);
- SCTP_SOCKET_LOCK(so, 1);
- SCTP_TCB_LOCK(stcb);
- atomic_subtract_int(&stcb->asoc.refcnt, 1);
- if (stcb->sctp_ep->sctp_flags & SCTP_PCB_FLAGS_SOCKET_GONE) {
- SCTP_SOCKET_UNLOCK(so, 1);
- return;
+ if ((SCTP_TSN_GE(asoc->cumulative_tsn, control->sinfo_tsn)) && (asoc->idata_supported == 0)) {
+ goto protocol_error;
}
-#endif
+ queue_needed = 1;
+ asoc->size_on_all_streams += control->length;
+ sctp_ucount_incr(asoc->cnt_on_all_streams);
+ nxt_todel = strm->last_sequence_delivered + 1;
if (nxt_todel == control->sinfo_ssn) {
+#if defined(__APPLE__) || defined(SCTP_SO_LOCK_TESTING)
+ struct socket *so;
+
+ so = SCTP_INP_SO(stcb->sctp_ep);
+ atomic_add_int(&stcb->asoc.refcnt, 1);
+ SCTP_TCB_UNLOCK(stcb);
+ SCTP_SOCKET_LOCK(so, 1);
+ SCTP_TCB_LOCK(stcb);
+ atomic_subtract_int(&stcb->asoc.refcnt, 1);
+ if (stcb->sctp_ep->sctp_flags & SCTP_PCB_FLAGS_SOCKET_GONE) {
+ SCTP_SOCKET_UNLOCK(so, 1);
+ return;
+ }
+#endif
/* can be delivered right away? */
if (SCTP_BASE_SYSCTL(sctp_logging_level) & SCTP_STR_LOGGING_ENABLE) {
sctp_log_strm_del(control, NULL, SCTP_STR_LOG_FROM_IMMED_DEL);
@@ -626,19 +556,25 @@ protocol_error:
asoc->size_on_all_streams -= control->length;
sctp_ucount_decr(asoc->cnt_on_all_streams);
strm->last_sequence_delivered++;
-
sctp_mark_non_revokable(asoc, control->sinfo_tsn);
sctp_add_to_readq(stcb->sctp_ep, stcb,
control,
&stcb->sctp_socket->so_rcv, 1,
- SCTP_READ_LOCK_NOT_HELD, SCTP_SO_LOCKED);
- TAILQ_FOREACH_SAFE(control, &strm->inqueue, next, at) {
+ SCTP_READ_LOCK_NOT_HELD, SCTP_SO_NOT_LOCKED);
+ TAILQ_FOREACH_SAFE(control, &strm->inqueue, next_instrm, at) {
/* all delivered */
nxt_todel = strm->last_sequence_delivered + 1;
- if (nxt_todel == control->sinfo_ssn) {
- TAILQ_REMOVE(&strm->inqueue, control, next);
+ if ((nxt_todel == control->sinfo_ssn) &&
+ (((control->sinfo_flags >> 8) & SCTP_DATA_NOT_FRAG) == SCTP_DATA_NOT_FRAG)) {
asoc->size_on_all_streams -= control->length;
sctp_ucount_decr(asoc->cnt_on_all_streams);
+ if (control->on_strm_q == SCTP_ON_ORDERED) {
+ TAILQ_REMOVE(&strm->inqueue, control, next_instrm);
+ } else {
+ panic("Huh control:%p is on_strm_q:%d",
+ control, control->on_strm_q);
+ }
+ control->on_strm_q = 0;
strm->last_sequence_delivered++;
/*
* We ignore the return of deliver_data here
@@ -655,655 +591,1000 @@ protocol_error:
control,
&stcb->sctp_socket->so_rcv, 1,
SCTP_READ_LOCK_NOT_HELD,
- SCTP_SO_LOCKED);
+ SCTP_SO_NOT_LOCKED);
continue;
+ } else if (nxt_todel == control->sinfo_ssn) {
+ *need_reasm = 1;
}
break;
}
+#if defined(__APPLE__) || defined(SCTP_SO_LOCK_TESTING)
+ SCTP_SOCKET_UNLOCK(so, 1);
+#endif
}
if (queue_needed) {
/*
* Ok, we did not deliver this guy, find the correct place
* to put it on the queue.
*/
- if (SCTP_TSN_GE(asoc->cumulative_tsn, control->sinfo_tsn)) {
-#if defined(__APPLE__) || defined(SCTP_SO_LOCK_TESTING)
- SCTP_SOCKET_UNLOCK(so, 1);
-#endif
- goto protocol_error;
- }
- if (TAILQ_EMPTY(&strm->inqueue)) {
- /* Empty queue */
- if (SCTP_BASE_SYSCTL(sctp_logging_level) & SCTP_STR_LOGGING_ENABLE) {
- sctp_log_strm_del(control, NULL, SCTP_STR_LOG_FROM_INSERT_HD);
- }
- TAILQ_INSERT_HEAD(&strm->inqueue, control, next);
- } else {
- TAILQ_FOREACH(at, &strm->inqueue, next) {
- if (SCTP_SSN_GT(at->sinfo_ssn, control->sinfo_ssn)) {
- /*
- * one in queue is bigger than the
- * new one, insert before this one
- */
- if (SCTP_BASE_SYSCTL(sctp_logging_level) & SCTP_STR_LOGGING_ENABLE) {
- sctp_log_strm_del(control, at,
- SCTP_STR_LOG_FROM_INSERT_MD);
- }
- TAILQ_INSERT_BEFORE(at, control, next);
- break;
- } else if (at->sinfo_ssn == control->sinfo_ssn) {
- /*
- * Gak, He sent me a duplicate str
- * seq number
- */
- /*
- * foo bar, I guess I will just free
- * this new guy, should we abort
- * too? FIX ME MAYBE? Or it COULD be
- * that the SSN's have wrapped.
- * Maybe I should compare to TSN
- * somehow... sigh for now just blow
- * away the chunk!
- */
+ if (sctp_place_control_in_stream(strm, asoc, control)) {
+ char msg[SCTP_DIAG_INFO_LEN];
+ struct mbuf *oper;
- if (control->data)
- sctp_m_freem(control->data);
- control->data = NULL;
- asoc->size_on_all_streams -= control->length;
- sctp_ucount_decr(asoc->cnt_on_all_streams);
- if (control->whoFrom) {
- sctp_free_remote_addr(control->whoFrom);
- control->whoFrom = NULL;
- }
- sctp_free_a_readq(stcb, control);
-#if defined(__APPLE__) || defined(SCTP_SO_LOCK_TESTING)
- SCTP_SOCKET_UNLOCK(so, 1);
-#endif
- return;
- } else {
- if (TAILQ_NEXT(at, next) == NULL) {
- /*
- * We are at the end, insert
- * it after this one
- */
- if (SCTP_BASE_SYSCTL(sctp_logging_level) & SCTP_STR_LOGGING_ENABLE) {
- sctp_log_strm_del(control, at,
- SCTP_STR_LOG_FROM_INSERT_TL);
- }
- TAILQ_INSERT_AFTER(&strm->inqueue,
- at, control, next);
- break;
- }
- }
- }
+ snprintf(msg, sizeof(msg),
+ "Queue to str mid:%d duplicate",
+ control->msg_id);
+ clean_up_control(stcb, control);
+ oper = sctp_generate_cause(SCTP_CAUSE_PROTOCOL_VIOLATION, msg);
+ stcb->sctp_ep->last_abort_code = SCTP_FROM_SCTP_INDATA + SCTP_LOC_3;
+ sctp_abort_an_association(stcb->sctp_ep, stcb, oper, SCTP_SO_NOT_LOCKED);
+ *abort_flag = 1;
}
}
-#if defined(__APPLE__) || defined(SCTP_SO_LOCK_TESTING)
- SCTP_SOCKET_UNLOCK(so, 1);
-#endif
}
-/*
- * Returns two things: You get the total size of the deliverable parts of the
- * first fragmented message on the reassembly queue. And you get a 1 back if
- * all of the message is ready or a 0 back if the message is still incomplete
- */
-static int
-sctp_is_all_msg_on_reasm(struct sctp_association *asoc, uint32_t * t_size)
-{
- struct sctp_tmit_chunk *chk;
- uint32_t tsn;
- *t_size = 0;
- chk = TAILQ_FIRST(&asoc->reasmqueue);
- if (chk == NULL) {
- /* nothing on the queue */
- return (0);
- }
- if ((chk->rec.data.rcv_flags & SCTP_DATA_FIRST_FRAG) == 0) {
- /* Not a first on the queue */
- return (0);
- }
- tsn = chk->rec.data.TSN_seq;
- TAILQ_FOREACH(chk, &asoc->reasmqueue, sctp_next) {
- if (tsn != chk->rec.data.TSN_seq) {
- return (0);
+static void
+sctp_setup_tail_pointer(struct sctp_queued_to_read *control)
+{
+ struct mbuf *m, *prev = NULL;
+ struct sctp_tcb *stcb;
+
+ stcb = control->stcb;
+ control->held_length = 0;
+ control->length = 0;
+ m = control->data;
+ while (m) {
+ if (SCTP_BUF_LEN(m) == 0) {
+ /* Skip mbufs with NO length */
+ if (prev == NULL) {
+ /* First one */
+ control->data = sctp_m_free(m);
+ m = control->data;
+ } else {
+ SCTP_BUF_NEXT(prev) = sctp_m_free(m);
+ m = SCTP_BUF_NEXT(prev);
+ }
+ if (m == NULL) {
+ control->tail_mbuf = prev;
+ }
+ continue;
}
- *t_size += chk->send_size;
- if (chk->rec.data.rcv_flags & SCTP_DATA_LAST_FRAG) {
- return (1);
+ prev = m;
+ atomic_add_int(&control->length, SCTP_BUF_LEN(m));
+ if (control->on_read_q) {
+ /*
+ * On read queue so we must increment the SB stuff,
+ * we assume caller has done any locks of SB.
+ */
+ sctp_sballoc(stcb, &stcb->sctp_socket->so_rcv, m);
}
- tsn++;
+ m = SCTP_BUF_NEXT(m);
+ }
+ if (prev) {
+ control->tail_mbuf = prev;
}
- return (0);
}
static void
-sctp_deliver_reasm_check(struct sctp_tcb *stcb, struct sctp_association *asoc)
+sctp_add_to_tail_pointer(struct sctp_queued_to_read *control, struct mbuf *m)
{
- struct sctp_tmit_chunk *chk;
- uint16_t nxt_todel;
- uint32_t tsize, pd_point;
-
-doit_again:
- chk = TAILQ_FIRST(&asoc->reasmqueue);
- if (chk == NULL) {
- /* Huh? */
- asoc->size_on_reasm_queue = 0;
- asoc->cnt_on_reasm_queue = 0;
+ struct mbuf *prev = NULL;
+ struct sctp_tcb *stcb;
+
+ stcb = control->stcb;
+ if (stcb == NULL) {
+ panic("Control broken");
+ }
+ if (control->tail_mbuf == NULL) {
+ /* TSNH */
+ control->data = m;
+ sctp_setup_tail_pointer(control);
return;
}
- if (asoc->fragmented_delivery_inprogress == 0) {
- nxt_todel =
- asoc->strmin[chk->rec.data.stream_number].last_sequence_delivered + 1;
- if ((chk->rec.data.rcv_flags & SCTP_DATA_FIRST_FRAG) &&
- (nxt_todel == chk->rec.data.stream_seq ||
- (chk->rec.data.rcv_flags & SCTP_DATA_UNORDERED))) {
- /*
- * Yep the first one is here and its ok to deliver
- * but should we?
- */
- if (stcb->sctp_socket) {
- pd_point = min(SCTP_SB_LIMIT_RCV(stcb->sctp_socket) >> SCTP_PARTIAL_DELIVERY_SHIFT,
- stcb->sctp_ep->partial_delivery_point);
+ control->tail_mbuf->m_next = m;
+ while (m) {
+ if (SCTP_BUF_LEN(m) == 0) {
+ /* Skip mbufs with NO length */
+ if (prev == NULL) {
+ /* First one */
+ control->tail_mbuf->m_next = sctp_m_free(m);
+ m = control->tail_mbuf->m_next;
} else {
- pd_point = stcb->sctp_ep->partial_delivery_point;
+ SCTP_BUF_NEXT(prev) = sctp_m_free(m);
+ m = SCTP_BUF_NEXT(prev);
}
- if (sctp_is_all_msg_on_reasm(asoc, &tsize) || (tsize >= pd_point)) {
- /*
- * Yes, we setup to start reception, by
- * backing down the TSN just in case we
- * can't deliver. If we
- */
- asoc->fragmented_delivery_inprogress = 1;
- asoc->tsn_last_delivered =
- chk->rec.data.TSN_seq - 1;
- asoc->str_of_pdapi =
- chk->rec.data.stream_number;
- asoc->ssn_of_pdapi = chk->rec.data.stream_seq;
- asoc->pdapi_ppid = chk->rec.data.payloadtype;
- asoc->fragment_flags = chk->rec.data.rcv_flags;
- sctp_service_reassembly(stcb, asoc);
+ if (m == NULL) {
+ control->tail_mbuf = prev;
}
+ continue;
}
- } else {
- /*
- * Service re-assembly will deliver stream data queued at
- * the end of fragmented delivery.. but it wont know to go
- * back and call itself again... we do that here with the
- * got doit_again
- */
- sctp_service_reassembly(stcb, asoc);
- if (asoc->fragmented_delivery_inprogress == 0) {
+ prev = m;
+ if (control->on_read_q) {
/*
- * finished our Fragmented delivery, could be more
- * waiting?
+ * On read queue so we must increment the SB stuff,
+ * we assume caller has done any locks of SB.
*/
- goto doit_again;
+ sctp_sballoc(stcb, &stcb->sctp_socket->so_rcv, m);
}
+ atomic_add_int(&control->length, SCTP_BUF_LEN(m));
+ m = SCTP_BUF_NEXT(m);
+ }
+ if (prev) {
+ control->tail_mbuf = prev;
}
}
-/*
- * Dump onto the re-assembly queue, in its proper place. After dumping on the
- * queue, see if anthing can be delivered. If so pull it off (or as much as
- * we can. If we run out of space then we must dump what we can and set the
- * appropriate flag to say we queued what we could.
- */
static void
-sctp_queue_data_for_reasm(struct sctp_tcb *stcb, struct sctp_association *asoc,
- struct sctp_tmit_chunk *chk, int *abort_flag)
+sctp_build_readq_entry_from_ctl(struct sctp_queued_to_read *nc, struct sctp_queued_to_read *control)
{
- struct mbuf *op_err;
- char msg[SCTP_DIAG_INFO_LEN];
- uint32_t cum_ackp1, prev_tsn, post_tsn;
- struct sctp_tmit_chunk *at, *prev, *next;
-
- prev = next = NULL;
- cum_ackp1 = asoc->tsn_last_delivered + 1;
- if (TAILQ_EMPTY(&asoc->reasmqueue)) {
- /* This is the first one on the queue */
- TAILQ_INSERT_HEAD(&asoc->reasmqueue, chk, sctp_next);
- /*
- * we do not check for delivery of anything when only one
- * fragment is here
- */
- asoc->size_on_reasm_queue = chk->send_size;
- sctp_ucount_incr(asoc->cnt_on_reasm_queue);
- if (chk->rec.data.TSN_seq == cum_ackp1) {
- if (asoc->fragmented_delivery_inprogress == 0 &&
- (chk->rec.data.rcv_flags & SCTP_DATA_FIRST_FRAG) !=
- SCTP_DATA_FIRST_FRAG) {
- /*
- * An empty queue, no delivery inprogress,
- * we hit the next one and it does NOT have
- * a FIRST fragment mark.
- */
- SCTPDBG(SCTP_DEBUG_INDATA1, "Gak, Evil plot, its not first, no fragmented delivery in progress\n");
- snprintf(msg, sizeof(msg),
- "Expected B-bit for TSN=%8.8x, SID=%4.4x, SSN=%4.4x",
- chk->rec.data.TSN_seq,
- chk->rec.data.stream_number,
- chk->rec.data.stream_seq);
- op_err = sctp_generate_cause(SCTP_CAUSE_PROTOCOL_VIOLATION, msg);
- stcb->sctp_ep->last_abort_code = SCTP_FROM_SCTP_INDATA + SCTP_LOC_2;
- sctp_abort_an_association(stcb->sctp_ep, stcb, op_err, SCTP_SO_NOT_LOCKED);
- *abort_flag = 1;
- } else if (asoc->fragmented_delivery_inprogress &&
- (chk->rec.data.rcv_flags & SCTP_DATA_FIRST_FRAG) == SCTP_DATA_FIRST_FRAG) {
+ memset(nc, 0, sizeof(struct sctp_queued_to_read));
+ nc->sinfo_stream = control->sinfo_stream;
+ nc->sinfo_ssn = control->sinfo_ssn;
+ TAILQ_INIT(&nc->reasm);
+ nc->top_fsn = control->top_fsn;
+ nc->msg_id = control->msg_id;
+ nc->sinfo_flags = control->sinfo_flags;
+ nc->sinfo_ppid = control->sinfo_ppid;
+ nc->sinfo_context = control->sinfo_context;
+ nc->fsn_included = 0xffffffff;
+ nc->sinfo_tsn = control->sinfo_tsn;
+ nc->sinfo_cumtsn = control->sinfo_cumtsn;
+ nc->sinfo_assoc_id = control->sinfo_assoc_id;
+ nc->whoFrom = control->whoFrom;
+ atomic_add_int(&nc->whoFrom->ref_count, 1);
+ nc->stcb = control->stcb;
+ nc->port_from = control->port_from;
+}
+
+static int
+sctp_handle_old_data(struct sctp_tcb *stcb, struct sctp_association *asoc, struct sctp_stream_in *strm,
+ struct sctp_queued_to_read *control, uint32_t pd_point)
+{
+ /*
+ * Special handling for the old un-ordered data chunk. All the
+ * chunks/TSN's go to msg_id 0. So we have to do the old style
+ * watching to see if we have it all. If you return one, no other
+ * control entries on the un-ordered queue will be looked at. In
+ * theory there should be no others entries in reality, unless the
+ * guy is sending both unordered NDATA and unordered DATA...
+ */
+ struct sctp_tmit_chunk *chk, *lchk, *tchk;
+ uint32_t fsn;
+ struct sctp_queued_to_read *nc = NULL;
+ int cnt_added;
+
+ if (control->first_frag_seen == 0) {
+ /* Nothing we can do, we have not seen the first piece yet */
+ return (1);
+ }
+ /* Collapse any we can */
+ cnt_added = 0;
+restart:
+ fsn = control->fsn_included + 1;
+ /* Now what can we add? */
+ TAILQ_FOREACH_SAFE(chk, &control->reasm, sctp_next, lchk) {
+ if (chk->rec.data.fsn_num == fsn) {
+ /* Ok lets add it */
+ TAILQ_REMOVE(&control->reasm, chk, sctp_next);
+ sctp_add_chk_to_control(control, strm, stcb, asoc, chk);
+ fsn++;
+ cnt_added++;
+ chk = NULL;
+ if (control->end_added) {
+ /* We are done */
+ if (!TAILQ_EMPTY(&control->reasm)) {
+ /*
+ * Ok we have to move anything left
+ * on the control queue to a new
+ * control.
+ */
+ sctp_alloc_a_readq(stcb, nc);
+ sctp_build_readq_entry_from_ctl(nc, control);
+ tchk = TAILQ_FIRST(&control->reasm);
+ if (tchk->rec.data.rcv_flags & SCTP_DATA_FIRST_FRAG) {
+ TAILQ_REMOVE(&control->reasm, tchk, sctp_next);
+ nc->first_frag_seen = 1;
+ nc->fsn_included = tchk->rec.data.fsn_num;
+ nc->data = tchk->data;
+ sctp_mark_non_revokable(asoc, tchk->rec.data.TSN_seq);
+ tchk->data = NULL;
+ sctp_free_a_chunk(stcb, tchk, SCTP_SO_NOT_LOCKED);
+ sctp_setup_tail_pointer(nc);
+ tchk = TAILQ_FIRST(&control->reasm);
+ }
+ /* Spin the rest onto the queue */
+ while (tchk) {
+ TAILQ_REMOVE(&control->reasm, tchk, sctp_next);
+ TAILQ_INSERT_TAIL(&nc->reasm, tchk, sctp_next);
+ tchk = TAILQ_FIRST(&control->reasm);
+ }
+ /*
+ * Now lets add it to the queue
+ * after removing control
+ */
+ TAILQ_INSERT_TAIL(&strm->uno_inqueue, nc, next_instrm);
+ nc->on_strm_q = SCTP_ON_UNORDERED;
+ if (control->on_strm_q) {
+ TAILQ_REMOVE(&strm->uno_inqueue, control, next_instrm);
+ control->on_strm_q = 0;
+ }
+ }
+ if (control->on_read_q == 0) {
+ sctp_add_to_readq(stcb->sctp_ep, stcb, control,
+ &stcb->sctp_socket->so_rcv, control->end_added,
+ SCTP_READ_LOCK_NOT_HELD, SCTP_SO_NOT_LOCKED);
+ }
+ if (control->pdapi_started) {
+ strm->pd_api_started = 0;
+ control->pdapi_started = 0;
+ }
+ if (control->on_strm_q) {
+ TAILQ_REMOVE(&strm->uno_inqueue, control, next_instrm);
+ control->on_strm_q = 0;
+ }
+ sctp_wakeup_the_read_socket(stcb->sctp_ep);
+ if ((nc) && (nc->first_frag_seen)) {
+ /*
+ * Switch to the new guy and
+ * continue
+ */
+ control = nc;
+ nc = NULL;
+ goto restart;
+ }
+ return (1);
+ }
+ } else {
+ /* Can't add more */
+ break;
+ }
+ }
+ if ((control->length > pd_point) && (strm->pd_api_started == 0)) {
+ sctp_add_to_readq(stcb->sctp_ep, stcb, control,
+ &stcb->sctp_socket->so_rcv, control->end_added,
+ SCTP_READ_LOCK_NOT_HELD, SCTP_SO_NOT_LOCKED);
+ strm->pd_api_started = 1;
+ control->pdapi_started = 1;
+ sctp_wakeup_the_read_socket(stcb->sctp_ep);
+ return (0);
+ } else {
+ return (1);
+ }
+}
+
+static void
+sctp_inject_old_data_unordered(struct sctp_tcb *stcb, struct sctp_association *asoc,
+ struct sctp_stream_in *strm,
+ struct sctp_queued_to_read *control,
+ struct sctp_tmit_chunk *chk,
+ int *abort_flag)
+{
+ struct sctp_tmit_chunk *at;
+ int inserted = 0;
+
+ /*
+ * Here we need to place the chunk into the control structure sorted
+ * in the correct order.
+ */
+ if (chk->rec.data.rcv_flags & SCTP_DATA_FIRST_FRAG) {
+ /* Its the very first one. */
+ SCTPDBG(SCTP_DEBUG_XXX,
+ "chunk is a first fsn:%d becomes fsn_included\n",
+ chk->rec.data.fsn_num);
+ if (control->first_frag_seen) {
+ /*
+ * In old un-ordered we can reassembly on one
+ * control multiple messages. As long as the next
+ * FIRST is greater then the old first (TSN i.e. FSN
+ * wise)
+ */
+ struct mbuf *tdata;
+ uint32_t tmp;
+
+ if (SCTP_TSN_GT(chk->rec.data.fsn_num, control->fsn_included)) {
/*
- * We are doing a partial delivery and the
- * NEXT chunk MUST be either the LAST or
- * MIDDLE fragment NOT a FIRST
+ * Easy way the start of a new guy beyond
+ * the lowest
*/
- SCTPDBG(SCTP_DEBUG_INDATA1, "Gak, Evil plot, it IS a first and fragmented delivery in progress\n");
- snprintf(msg, sizeof(msg),
- "Didn't expect B-bit for TSN=%8.8x, SID=%4.4x, SSN=%4.4x",
- chk->rec.data.TSN_seq,
- chk->rec.data.stream_number,
- chk->rec.data.stream_seq);
- op_err = sctp_generate_cause(SCTP_CAUSE_PROTOCOL_VIOLATION, msg);
- stcb->sctp_ep->last_abort_code = SCTP_FROM_SCTP_INDATA + SCTP_LOC_3;
- sctp_abort_an_association(stcb->sctp_ep, stcb, op_err, SCTP_SO_NOT_LOCKED);
- *abort_flag = 1;
- } else if (asoc->fragmented_delivery_inprogress) {
+ goto place_chunk;
+ }
+ if ((chk->rec.data.fsn_num == control->fsn_included) ||
+ (control->pdapi_started)) {
/*
- * Here we are ok with a MIDDLE or LAST
- * piece
+ * Ok this should not happen, if it does we
+ * started the pd-api on the higher TSN
+ * (since the equals part is a TSN failure
+ * it must be that).
+ *
+ * We are completly hosed in that case since I
+ * have no way to recover. This really will
+ * only happen if we can get more TSN's
+ * higher before the pd-api-point.
*/
- if (chk->rec.data.stream_number !=
- asoc->str_of_pdapi) {
- /* Got to be the right STR No */
- SCTPDBG(SCTP_DEBUG_INDATA1, "Gak, Evil plot, it IS not same stream number %d vs %d\n",
- chk->rec.data.stream_number,
- asoc->str_of_pdapi);
- snprintf(msg, sizeof(msg),
- "Expected SID=%4.4x, got TSN=%8.8x, SID=%4.4x, SSN=%4.4x",
- asoc->str_of_pdapi,
- chk->rec.data.TSN_seq,
- chk->rec.data.stream_number,
- chk->rec.data.stream_seq);
- op_err = sctp_generate_cause(SCTP_CAUSE_PROTOCOL_VIOLATION, msg);
- stcb->sctp_ep->last_abort_code = SCTP_FROM_SCTP_INDATA + SCTP_LOC_4;
- sctp_abort_an_association(stcb->sctp_ep, stcb, op_err, SCTP_SO_NOT_LOCKED);
- *abort_flag = 1;
- } else if ((asoc->fragment_flags & SCTP_DATA_UNORDERED) !=
- SCTP_DATA_UNORDERED &&
- chk->rec.data.stream_seq != asoc->ssn_of_pdapi) {
- /* Got to be the right STR Seq */
- SCTPDBG(SCTP_DEBUG_INDATA1, "Gak, Evil plot, it IS not same stream seq %d vs %d\n",
- chk->rec.data.stream_seq,
- asoc->ssn_of_pdapi);
- snprintf(msg, sizeof(msg),
- "Expected SSN=%4.4x, got TSN=%8.8x, SID=%4.4x, SSN=%4.4x",
- asoc->ssn_of_pdapi,
- chk->rec.data.TSN_seq,
- chk->rec.data.stream_number,
- chk->rec.data.stream_seq);
- op_err = sctp_generate_cause(SCTP_CAUSE_PROTOCOL_VIOLATION, msg);
- stcb->sctp_ep->last_abort_code = SCTP_FROM_SCTP_INDATA + SCTP_LOC_5;
- sctp_abort_an_association(stcb->sctp_ep, stcb, op_err, SCTP_SO_NOT_LOCKED);
- *abort_flag = 1;
- }
+ sctp_abort_in_reasm(stcb, strm, control, chk,
+ abort_flag,
+ SCTP_FROM_SCTP_INDATA + SCTP_LOC_4);
+
+ return;
}
- }
+ /*
+ * Ok we have two firsts and the one we just got is
+ * smaller than the one we previously placed.. yuck!
+ * We must swap them out.
+ */
+ /* swap the mbufs */
+ tdata = control->data;
+ control->data = chk->data;
+ chk->data = tdata;
+ /* Swap the lengths */
+ tmp = control->length;
+ control->length = chk->send_size;
+ chk->send_size = tmp;
+ /* Fix the FSN included */
+ tmp = control->fsn_included;
+ control->fsn_included = chk->rec.data.fsn_num;
+ chk->rec.data.fsn_num = tmp;
+ goto place_chunk;
+ }
+ control->first_frag_seen = 1;
+ control->top_fsn = control->fsn_included = chk->rec.data.fsn_num;
+ control->data = chk->data;
+ sctp_mark_non_revokable(asoc, chk->rec.data.TSN_seq);
+ chk->data = NULL;
+ sctp_free_a_chunk(stcb, chk, SCTP_SO_NOT_LOCKED);
+ sctp_setup_tail_pointer(control);
+ return;
+ }
+place_chunk:
+ if (TAILQ_EMPTY(&control->reasm)) {
+ TAILQ_INSERT_TAIL(&control->reasm, chk, sctp_next);
+ asoc->size_on_reasm_queue += chk->send_size;
+ sctp_ucount_incr(asoc->cnt_on_reasm_queue);
return;
}
- /* Find its place */
- TAILQ_FOREACH(at, &asoc->reasmqueue, sctp_next) {
- if (SCTP_TSN_GT(at->rec.data.TSN_seq, chk->rec.data.TSN_seq)) {
+ TAILQ_FOREACH(at, &control->reasm, sctp_next) {
+ if (SCTP_TSN_GT(at->rec.data.fsn_num, chk->rec.data.fsn_num)) {
/*
- * one in queue is bigger than the new one, insert
- * before this one
+ * This one in queue is bigger than the new one,
+ * insert the new one before at.
*/
- /* A check */
asoc->size_on_reasm_queue += chk->send_size;
sctp_ucount_incr(asoc->cnt_on_reasm_queue);
- next = at;
+ inserted = 1;
TAILQ_INSERT_BEFORE(at, chk, sctp_next);
break;
- } else if (at->rec.data.TSN_seq == chk->rec.data.TSN_seq) {
- /* Gak, He sent me a duplicate str seq number */
+ } else if (at->rec.data.fsn_num == chk->rec.data.fsn_num) {
/*
- * foo bar, I guess I will just free this new guy,
- * should we abort too? FIX ME MAYBE? Or it COULD be
- * that the SSN's have wrapped. Maybe I should
- * compare to TSN somehow... sigh for now just blow
- * away the chunk!
+ * They sent a duplicate fsn number. This really
+ * should not happen since the FSN is a TSN and it
+ * should have been dropped earlier.
*/
if (chk->data) {
sctp_m_freem(chk->data);
chk->data = NULL;
}
sctp_free_a_chunk(stcb, chk, SCTP_SO_NOT_LOCKED);
+ sctp_abort_in_reasm(stcb, strm, control, chk,
+ abort_flag,
+ SCTP_FROM_SCTP_INDATA + SCTP_LOC_5);
return;
+ }
+ }
+ if (inserted == 0) {
+ /* Its at the end */
+ asoc->size_on_reasm_queue += chk->send_size;
+ sctp_ucount_incr(asoc->cnt_on_reasm_queue);
+ control->top_fsn = chk->rec.data.fsn_num;
+ TAILQ_INSERT_TAIL(&control->reasm, chk, sctp_next);
+ }
+}
+
+static int
+sctp_deliver_reasm_check(struct sctp_tcb *stcb, struct sctp_association *asoc, struct sctp_stream_in *strm)
+{
+ /*
+ * Given a stream, strm, see if any of the SSN's on it that are
+ * fragmented are ready to deliver. If so go ahead and place them on
+ * the read queue. In so placing if we have hit the end, then we
+ * need to remove them from the stream's queue.
+ */
+ struct sctp_queued_to_read *control, *nctl = NULL;
+ uint32_t next_to_del;
+ uint32_t pd_point;
+ int ret = 0;
+
+ if (stcb->sctp_socket) {
+ pd_point = min(SCTP_SB_LIMIT_RCV(stcb->sctp_socket) >> SCTP_PARTIAL_DELIVERY_SHIFT,
+ stcb->sctp_ep->partial_delivery_point);
+ } else {
+ pd_point = stcb->sctp_ep->partial_delivery_point;
+ }
+ control = TAILQ_FIRST(&strm->uno_inqueue);
+ if ((control) &&
+ (asoc->idata_supported == 0)) {
+ /* Special handling needed for "old" data format */
+ nctl = TAILQ_NEXT(control, next_instrm);
+ if (sctp_handle_old_data(stcb, asoc, strm, control, pd_point)) {
+ goto done_un;
+ }
+ }
+ if (strm->pd_api_started) {
+ /* Can't add more */
+ return (0);
+ }
+ while (control) {
+ SCTPDBG(SCTP_DEBUG_XXX, "Looking at control:%p e(%d) ssn:%d top_fsn:%d inc_fsn:%d -uo\n",
+ control, control->end_added, control->sinfo_ssn, control->top_fsn, control->fsn_included);
+ nctl = TAILQ_NEXT(control, next_instrm);
+ if (control->end_added) {
+ /* We just put the last bit on */
+ if (control->on_strm_q) {
+ if (control->on_strm_q != SCTP_ON_UNORDERED) {
+ panic("Huh control:%p on_q:%d -- not unordered?",
+ control, control->on_strm_q);
+ }
+ TAILQ_REMOVE(&strm->uno_inqueue, control, next_instrm);
+ control->on_strm_q = 0;
+ }
+ if (control->on_read_q == 0) {
+ sctp_add_to_readq(stcb->sctp_ep, stcb,
+ control,
+ &stcb->sctp_socket->so_rcv, control->end_added,
+ SCTP_READ_LOCK_NOT_HELD, SCTP_SO_NOT_LOCKED);
+ }
} else {
- prev = at;
- if (TAILQ_NEXT(at, sctp_next) == NULL) {
- /*
- * We are at the end, insert it after this
- * one
- */
- /* check it first */
- asoc->size_on_reasm_queue += chk->send_size;
- sctp_ucount_incr(asoc->cnt_on_reasm_queue);
- TAILQ_INSERT_AFTER(&asoc->reasmqueue, at, chk, sctp_next);
+ /* Can we do a PD-API for this un-ordered guy? */
+ if ((control->length >= pd_point) && (strm->pd_api_started == 0)) {
+ strm->pd_api_started = 1;
+ control->pdapi_started = 1;
+ sctp_add_to_readq(stcb->sctp_ep, stcb,
+ control,
+ &stcb->sctp_socket->so_rcv, control->end_added,
+ SCTP_READ_LOCK_NOT_HELD, SCTP_SO_NOT_LOCKED);
+
break;
}
}
+ control = nctl;
}
- /* Now the audits */
- if (prev) {
- prev_tsn = chk->rec.data.TSN_seq - 1;
- if (prev_tsn == prev->rec.data.TSN_seq) {
- /*
- * Ok the one I am dropping onto the end is the
- * NEXT. A bit of valdiation here.
- */
- if ((prev->rec.data.rcv_flags & SCTP_DATA_FRAG_MASK) ==
- SCTP_DATA_FIRST_FRAG ||
- (prev->rec.data.rcv_flags & SCTP_DATA_FRAG_MASK) ==
- SCTP_DATA_MIDDLE_FRAG) {
- /*
- * Insert chk MUST be a MIDDLE or LAST
- * fragment
- */
- if ((chk->rec.data.rcv_flags & SCTP_DATA_FRAG_MASK) ==
- SCTP_DATA_FIRST_FRAG) {
- SCTPDBG(SCTP_DEBUG_INDATA1, "Prev check - It can be a midlle or last but not a first\n");
- SCTPDBG(SCTP_DEBUG_INDATA1, "Gak, Evil plot, it's a FIRST!\n");
- snprintf(msg, sizeof(msg),
- "Can't handle B-bit, got TSN=%8.8x, SID=%4.4x, SSN=%4.4x",
- chk->rec.data.TSN_seq,
- chk->rec.data.stream_number,
- chk->rec.data.stream_seq);
- op_err = sctp_generate_cause(SCTP_CAUSE_PROTOCOL_VIOLATION, msg);
- stcb->sctp_ep->last_abort_code = SCTP_FROM_SCTP_INDATA + SCTP_LOC_6;
- sctp_abort_an_association(stcb->sctp_ep, stcb, op_err, SCTP_SO_NOT_LOCKED);
- *abort_flag = 1;
- return;
- }
- if (chk->rec.data.stream_number !=
- prev->rec.data.stream_number) {
- /*
- * Huh, need the correct STR here,
- * they must be the same.
- */
- SCTPDBG(SCTP_DEBUG_INDATA1, "Prev check - Gak, Evil plot, sid:%d not the same as at:%d\n",
- chk->rec.data.stream_number,
- prev->rec.data.stream_number);
- snprintf(msg, sizeof(msg),
- "Expect SID=%4.4x, got TSN=%8.8x, SID=%4.4x, SSN=%4.4x",
- prev->rec.data.stream_number,
- chk->rec.data.TSN_seq,
- chk->rec.data.stream_number,
- chk->rec.data.stream_seq);
- op_err = sctp_generate_cause(SCTP_CAUSE_PROTOCOL_VIOLATION, msg);
- stcb->sctp_ep->last_abort_code = SCTP_FROM_SCTP_INDATA + SCTP_LOC_7;
- sctp_abort_an_association(stcb->sctp_ep, stcb, op_err, SCTP_SO_NOT_LOCKED);
- *abort_flag = 1;
- return;
+done_un:
+ control = TAILQ_FIRST(&strm->inqueue);
+ if (strm->pd_api_started) {
+ /* Can't add more */
+ return (0);
+ }
+ if (control == NULL) {
+ return (ret);
+ }
+ if (strm->last_sequence_delivered == control->sinfo_ssn) {
+ /*
+ * Ok the guy at the top was being partially delivered
+ * completed, so we remove it. Note the pd_api flag was
+ * taken off when the chunk was merged on in
+ * sctp_queue_data_for_reasm below.
+ */
+ nctl = TAILQ_NEXT(control, next_instrm);
+ SCTPDBG(SCTP_DEBUG_XXX,
+ "Looking at control:%p e(%d) ssn:%d top_fsn:%d inc_fsn:%d (lastdel:%d)- o\n",
+ control, control->end_added, control->sinfo_ssn,
+ control->top_fsn, control->fsn_included,
+ strm->last_sequence_delivered);
+ if (control->end_added) {
+ if (control->on_strm_q) {
+ if (control->on_strm_q != SCTP_ON_ORDERED) {
+ panic("Huh control:%p on_q:%d -- not ordered?",
+ control, control->on_strm_q);
}
- if ((chk->rec.data.rcv_flags & SCTP_DATA_UNORDERED) !=
- (prev->rec.data.rcv_flags & SCTP_DATA_UNORDERED)) {
- /*
- * Huh, need the same ordering here,
- * they must be the same.
- */
- SCTPDBG(SCTP_DEBUG_INDATA1, "Prev check - Gak, Evil plot, U-bit not constant\n");
- snprintf(msg, sizeof(msg),
- "Expect U-bit=%d for TSN=%8.8x, got U-bit=%d",
- (prev->rec.data.rcv_flags & SCTP_DATA_UNORDERED) ? 1 : 0,
- chk->rec.data.TSN_seq,
- (chk->rec.data.rcv_flags & SCTP_DATA_UNORDERED) ? 1 : 0);
- op_err = sctp_generate_cause(SCTP_CAUSE_PROTOCOL_VIOLATION, msg);
- stcb->sctp_ep->last_abort_code = SCTP_FROM_SCTP_INDATA + SCTP_LOC_8;
- sctp_abort_an_association(stcb->sctp_ep, stcb, op_err, SCTP_SO_NOT_LOCKED);
- *abort_flag = 1;
- return;
+ TAILQ_REMOVE(&strm->inqueue, control, next_instrm);
+ control->on_strm_q = 0;
+ }
+ if (control->on_read_q == 0) {
+ sctp_add_to_readq(stcb->sctp_ep, stcb,
+ control,
+ &stcb->sctp_socket->so_rcv, control->end_added,
+ SCTP_READ_LOCK_NOT_HELD, SCTP_SO_NOT_LOCKED);
+ }
+ if (strm->pd_api_started && control->pdapi_started) {
+ control->pdapi_started = 0;
+ strm->pd_api_started = 0;
+ }
+ control = nctl;
+ }
+ }
+ if (strm->pd_api_started) {
+ /*
+ * Can't add more must have gotten an un-ordered above being
+ * partially delivered.
+ */
+ return (0);
+ }
+deliver_more:
+ next_to_del = strm->last_sequence_delivered + 1;
+ if (control) {
+ SCTPDBG(SCTP_DEBUG_XXX,
+ "Looking at control:%p e(%d) ssn:%d top_fsn:%d inc_fsn:%d (nxtdel:%d)- o\n",
+ control, control->end_added, control->sinfo_ssn, control->top_fsn, control->fsn_included,
+ next_to_del);
+ nctl = TAILQ_NEXT(control, next_instrm);
+ if ((control->sinfo_ssn == next_to_del) &&
+ (control->first_frag_seen)) {
+ /* Ok we can deliver it onto the stream. */
+ if (control->end_added) {
+ /* We are done with it afterwards */
+ if (control->on_strm_q) {
+ if (control->on_strm_q != SCTP_ON_ORDERED) {
+ panic("Huh control:%p on_q:%d -- not ordered?",
+ control, control->on_strm_q);
+ }
+ TAILQ_REMOVE(&strm->inqueue, control, next_instrm);
+ control->on_strm_q = 0;
}
- if ((prev->rec.data.rcv_flags & SCTP_DATA_UNORDERED) == 0 &&
- chk->rec.data.stream_seq !=
- prev->rec.data.stream_seq) {
+ ret++;
+ }
+ if (((control->sinfo_flags >> 8) & SCTP_DATA_NOT_FRAG) == SCTP_DATA_NOT_FRAG) {
+ /*
+ * A singleton now slipping through - mark
+ * it non-revokable too
+ */
+ sctp_mark_non_revokable(asoc, control->sinfo_tsn);
+ } else if (control->end_added == 0) {
+ /*
+ * Check if we can defer adding until its
+ * all there
+ */
+ if ((control->length < pd_point) || (strm->pd_api_started)) {
/*
- * Huh, need the correct STR here,
- * they must be the same.
+ * Don't need it or cannot add more
+ * (one being delivered that way)
*/
- SCTPDBG(SCTP_DEBUG_INDATA1, "Prev check - Gak, Evil plot, sseq:%d not the same as at:%d\n",
- chk->rec.data.stream_seq,
- prev->rec.data.stream_seq);
- snprintf(msg, sizeof(msg),
- "Expect SSN=%4.4x, got TSN=%8.8x, SID=%4.4x, SSN=%4.4x",
- prev->rec.data.stream_seq,
- chk->rec.data.TSN_seq,
- chk->rec.data.stream_number,
- chk->rec.data.stream_seq);
- op_err = sctp_generate_cause(SCTP_CAUSE_PROTOCOL_VIOLATION, msg);
- stcb->sctp_ep->last_abort_code = SCTP_FROM_SCTP_INDATA + SCTP_LOC_9;
- sctp_abort_an_association(stcb->sctp_ep, stcb, op_err, SCTP_SO_NOT_LOCKED);
- *abort_flag = 1;
- return;
- }
- } else if ((prev->rec.data.rcv_flags & SCTP_DATA_FRAG_MASK) ==
- SCTP_DATA_LAST_FRAG) {
- /* Insert chk MUST be a FIRST */
- if ((chk->rec.data.rcv_flags & SCTP_DATA_FRAG_MASK) !=
- SCTP_DATA_FIRST_FRAG) {
- SCTPDBG(SCTP_DEBUG_INDATA1, "Prev check - Gak, evil plot, its not FIRST and it must be!\n");
- snprintf(msg, sizeof(msg),
- "Expect B-bit, got TSN=%8.8x, SID=%4.4x, SSN=%4.4x",
- chk->rec.data.TSN_seq,
- chk->rec.data.stream_number,
- chk->rec.data.stream_seq);
- op_err = sctp_generate_cause(SCTP_CAUSE_PROTOCOL_VIOLATION, msg);
- stcb->sctp_ep->last_abort_code = SCTP_FROM_SCTP_INDATA + SCTP_LOC_10;
- sctp_abort_an_association(stcb->sctp_ep, stcb, op_err, SCTP_SO_NOT_LOCKED);
- *abort_flag = 1;
- return;
+ goto out;
}
}
+ if (control->on_read_q == 0) {
+ sctp_add_to_readq(stcb->sctp_ep, stcb,
+ control,
+ &stcb->sctp_socket->so_rcv, control->end_added,
+ SCTP_READ_LOCK_NOT_HELD, SCTP_SO_NOT_LOCKED);
+ }
+ strm->last_sequence_delivered = next_to_del;
+ if ((control->end_added) && (control->last_frag_seen)) {
+ control = nctl;
+ goto deliver_more;
+ } else {
+ /* We are now doing PD API */
+ strm->pd_api_started = 1;
+ control->pdapi_started = 1;
+ }
}
}
- if (next) {
- post_tsn = chk->rec.data.TSN_seq + 1;
- if (post_tsn == next->rec.data.TSN_seq) {
+out:
+ return (ret);
+}
+
+void
+sctp_add_chk_to_control(struct sctp_queued_to_read *control,
+ struct sctp_stream_in *strm,
+ struct sctp_tcb *stcb, struct sctp_association *asoc,
+ struct sctp_tmit_chunk *chk)
+{
+ /*
+ * Given a control and a chunk, merge the data from the chk onto the
+ * control and free up the chunk resources.
+ */
+ int i_locked = 0;
+
+ if (control->on_read_q) {
+ /*
+ * Its being pd-api'd so we must do some locks.
+ */
+ SCTP_INP_READ_LOCK(stcb->sctp_ep);
+ i_locked = 1;
+ }
+ if (control->data == NULL) {
+ control->data = chk->data;
+ sctp_setup_tail_pointer(control);
+ } else {
+ sctp_add_to_tail_pointer(control, chk->data);
+ }
+ control->fsn_included = chk->rec.data.fsn_num;
+ asoc->size_on_reasm_queue -= chk->send_size;
+ sctp_ucount_decr(asoc->cnt_on_reasm_queue);
+ sctp_mark_non_revokable(asoc, chk->rec.data.TSN_seq);
+ chk->data = NULL;
+ if (chk->rec.data.rcv_flags & SCTP_DATA_FIRST_FRAG) {
+ control->first_frag_seen = 1;
+ }
+ if (chk->rec.data.rcv_flags & SCTP_DATA_LAST_FRAG) {
+ /* Its complete */
+ if ((control->on_strm_q) && (control->on_read_q)) {
+ if (control->pdapi_started) {
+ control->pdapi_started = 0;
+ strm->pd_api_started = 0;
+ }
+ if (control->on_strm_q == SCTP_ON_UNORDERED) {
+ /* Unordered */
+ TAILQ_REMOVE(&strm->uno_inqueue, control, next_instrm);
+ control->on_strm_q = 0;
+ } else if (control->on_strm_q == SCTP_ON_ORDERED) {
+ /* Ordered */
+ TAILQ_REMOVE(&strm->inqueue, control, next_instrm);
+ control->on_strm_q = 0;
+ } else if (control->on_strm_q) {
+ panic("Unknown state on ctrl:%p on_strm_q:%d", control,
+ control->on_strm_q);
+ }
+ }
+ control->end_added = 1;
+ control->last_frag_seen = 1;
+ }
+ if (i_locked) {
+ SCTP_INP_READ_UNLOCK(stcb->sctp_ep);
+ }
+ sctp_free_a_chunk(stcb, chk, SCTP_SO_NOT_LOCKED);
+}
+
+/*
+ * Dump onto the re-assembly queue, in its proper place. After dumping on the
+ * queue, see if anthing can be delivered. If so pull it off (or as much as
+ * we can. If we run out of space then we must dump what we can and set the
+ * appropriate flag to say we queued what we could.
+ */
+static void
+sctp_queue_data_for_reasm(struct sctp_tcb *stcb, struct sctp_association *asoc,
+ struct sctp_stream_in *strm,
+ struct sctp_queued_to_read *control,
+ struct sctp_tmit_chunk *chk,
+ int created_control,
+ int *abort_flag, uint32_t tsn)
+{
+ uint32_t next_fsn;
+ struct sctp_tmit_chunk *at, *nat;
+ int cnt_added, unordered;
+
+ /*
+ * For old un-ordered data chunks.
+ */
+ if ((control->sinfo_flags >> 8) & SCTP_DATA_UNORDERED) {
+ unordered = 1;
+ } else {
+ unordered = 0;
+ }
+ /* Must be added to the stream-in queue */
+ if (created_control) {
+ if (sctp_place_control_in_stream(strm, asoc, control)) {
+ /* Duplicate SSN? */
+ clean_up_control(stcb, control);
+ sctp_abort_in_reasm(stcb, strm, control, chk,
+ abort_flag,
+ SCTP_FROM_SCTP_INDATA + SCTP_LOC_6);
+ return;
+ }
+ if ((tsn == (asoc->cumulative_tsn + 1) && (asoc->idata_supported == 0))) {
/*
- * Ok the one I am inserting ahead of is my NEXT
- * one. A bit of valdiation here.
+ * Ok we created this control and now lets validate
+ * that its legal i.e. there is a B bit set, if not
+ * and we have up to the cum-ack then its invalid.
*/
- if (next->rec.data.rcv_flags & SCTP_DATA_FIRST_FRAG) {
- /* Insert chk MUST be a last fragment */
- if ((chk->rec.data.rcv_flags & SCTP_DATA_FRAG_MASK)
- != SCTP_DATA_LAST_FRAG) {
- SCTPDBG(SCTP_DEBUG_INDATA1, "Next chk - Next is FIRST, we must be LAST\n");
- SCTPDBG(SCTP_DEBUG_INDATA1, "Gak, Evil plot, its not a last!\n");
- snprintf(msg, sizeof(msg),
- "Expect only E-bit, got TSN=%8.8x, SID=%4.4x, SSN=%4.4x",
- chk->rec.data.TSN_seq,
- chk->rec.data.stream_number,
- chk->rec.data.stream_seq);
- op_err = sctp_generate_cause(SCTP_CAUSE_PROTOCOL_VIOLATION, msg);
- stcb->sctp_ep->last_abort_code = SCTP_FROM_SCTP_INDATA + SCTP_LOC_11;
- sctp_abort_an_association(stcb->sctp_ep, stcb, op_err, SCTP_SO_NOT_LOCKED);
- *abort_flag = 1;
- return;
- }
- } else if ((next->rec.data.rcv_flags & SCTP_DATA_FRAG_MASK) ==
- SCTP_DATA_MIDDLE_FRAG ||
- (next->rec.data.rcv_flags & SCTP_DATA_FRAG_MASK) ==
- SCTP_DATA_LAST_FRAG) {
+ if ((chk->rec.data.rcv_flags & SCTP_DATA_FIRST_FRAG) == 0) {
+ sctp_abort_in_reasm(stcb, strm, control, chk,
+ abort_flag,
+ SCTP_FROM_SCTP_INDATA + SCTP_LOC_7);
+ return;
+ }
+ }
+ }
+ if ((asoc->idata_supported == 0) && ((control->sinfo_flags >> 8) & SCTP_DATA_UNORDERED)) {
+ sctp_inject_old_data_unordered(stcb, asoc, strm, control, chk, abort_flag);
+ return;
+ }
+ /*
+ * Ok we must queue the chunk into the reasembly portion: o if its
+ * the first it goes to the control mbuf. o if its not first but the
+ * next in sequence it goes to the control, and each succeeding one
+ * in order also goes. o if its not in order we place it on the list
+ * in its place.
+ */
+ if (chk->rec.data.rcv_flags & SCTP_DATA_FIRST_FRAG) {
+ /* Its the very first one. */
+ SCTPDBG(SCTP_DEBUG_XXX,
+ "chunk is a first fsn:%d becomes fsn_included\n",
+ chk->rec.data.fsn_num);
+ if (control->first_frag_seen) {
+ /*
+ * Error on senders part, they either sent us two
+ * data chunks with FIRST, or they sent two
+ * un-ordered chunks that were fragmented at the
+ * same time in the same stream.
+ */
+ sctp_abort_in_reasm(stcb, strm, control, chk,
+ abort_flag,
+ SCTP_FROM_SCTP_INDATA + SCTP_LOC_8);
+ return;
+ }
+ control->first_frag_seen = 1;
+ control->fsn_included = chk->rec.data.fsn_num;
+ control->data = chk->data;
+ sctp_mark_non_revokable(asoc, chk->rec.data.TSN_seq);
+ chk->data = NULL;
+ sctp_free_a_chunk(stcb, chk, SCTP_SO_NOT_LOCKED);
+ sctp_setup_tail_pointer(control);
+ } else {
+ /* Place the chunk in our list */
+ int inserted = 0;
+
+ if (control->last_frag_seen == 0) {
+ /* Still willing to raise highest FSN seen */
+ if (SCTP_TSN_GT(chk->rec.data.fsn_num, control->top_fsn)) {
+ SCTPDBG(SCTP_DEBUG_XXX,
+ "We have a new top_fsn:%d\n",
+ chk->rec.data.fsn_num);
+ control->top_fsn = chk->rec.data.fsn_num;
+ }
+ if (chk->rec.data.rcv_flags & SCTP_DATA_LAST_FRAG) {
+ SCTPDBG(SCTP_DEBUG_XXX,
+ "The last fsn is now in place fsn:%d\n",
+ chk->rec.data.fsn_num);
+ control->last_frag_seen = 1;
+ }
+ if (asoc->idata_supported || control->first_frag_seen) {
/*
- * Insert chk CAN be MIDDLE or FIRST NOT
- * LAST
+ * For IDATA we always check since we know
+ * that the first fragment is 0. For old
+ * DATA we have to receive the first before
+ * we knwo the first FSN (which is the TSN).
*/
- if ((chk->rec.data.rcv_flags & SCTP_DATA_FRAG_MASK) ==
- SCTP_DATA_LAST_FRAG) {
- SCTPDBG(SCTP_DEBUG_INDATA1, "Next chk - Next is a MIDDLE/LAST\n");
- SCTPDBG(SCTP_DEBUG_INDATA1, "Gak, Evil plot, new prev chunk is a LAST\n");
- snprintf(msg, sizeof(msg),
- "Didn't expect E-bit, got TSN=%8.8x, SID=%4.4x, SSN=%4.4x",
- chk->rec.data.TSN_seq,
- chk->rec.data.stream_number,
- chk->rec.data.stream_seq);
- op_err = sctp_generate_cause(SCTP_CAUSE_PROTOCOL_VIOLATION, msg);
- stcb->sctp_ep->last_abort_code = SCTP_FROM_SCTP_INDATA + SCTP_LOC_12;
- sctp_abort_an_association(stcb->sctp_ep, stcb, op_err, SCTP_SO_NOT_LOCKED);
- *abort_flag = 1;
- return;
- }
- if (chk->rec.data.stream_number !=
- next->rec.data.stream_number) {
+ if (SCTP_TSN_GE(control->fsn_included, chk->rec.data.fsn_num)) {
/*
- * Huh, need the correct STR here,
- * they must be the same.
+ * We have already delivered up to
+ * this so its a dup
*/
- SCTPDBG(SCTP_DEBUG_INDATA1, "Next chk - Gak, Evil plot, ssn:%d not the same as at:%d\n",
- chk->rec.data.stream_number,
- next->rec.data.stream_number);
- snprintf(msg, sizeof(msg),
- "Required SID %4.4x, got TSN=%8.8x, SID=%4.4x, SSN=%4.4x",
- next->rec.data.stream_number,
- chk->rec.data.TSN_seq,
- chk->rec.data.stream_number,
- chk->rec.data.stream_seq);
- op_err = sctp_generate_cause(SCTP_CAUSE_PROTOCOL_VIOLATION, msg);
- stcb->sctp_ep->last_abort_code = SCTP_FROM_SCTP_INDATA + SCTP_LOC_13;
- sctp_abort_an_association(stcb->sctp_ep, stcb, op_err, SCTP_SO_NOT_LOCKED);
- *abort_flag = 1;
+ sctp_abort_in_reasm(stcb, strm, control, chk,
+ abort_flag,
+ SCTP_FROM_SCTP_INDATA + SCTP_LOC_9);
return;
}
- if ((chk->rec.data.rcv_flags & SCTP_DATA_UNORDERED) !=
- (next->rec.data.rcv_flags & SCTP_DATA_UNORDERED)) {
+ }
+ } else {
+ if (chk->rec.data.rcv_flags & SCTP_DATA_LAST_FRAG) {
+ /* Second last? huh? */
+ SCTPDBG(SCTP_DEBUG_XXX,
+ "Duplicate last fsn:%d (top:%d) -- abort\n",
+ chk->rec.data.fsn_num, control->top_fsn);
+ sctp_abort_in_reasm(stcb, strm, control,
+ chk, abort_flag,
+ SCTP_FROM_SCTP_INDATA + SCTP_LOC_10);
+ return;
+ }
+ if (asoc->idata_supported || control->first_frag_seen) {
+ /*
+ * For IDATA we always check since we know
+ * that the first fragment is 0. For old
+ * DATA we have to receive the first before
+ * we knwo the first FSN (which is the TSN).
+ */
+
+ if (SCTP_TSN_GE(control->fsn_included, chk->rec.data.fsn_num)) {
/*
- * Huh, need the same ordering here,
- * they must be the same.
+ * We have already delivered up to
+ * this so its a dup
*/
- SCTPDBG(SCTP_DEBUG_INDATA1, "Next check - Gak, Evil plot, U-bit not constant\n");
- snprintf(msg, sizeof(msg),
- "Expect U-bit=%d for TSN=%8.8x, got U-bit=%d",
- (next->rec.data.rcv_flags & SCTP_DATA_UNORDERED) ? 1 : 0,
- chk->rec.data.TSN_seq,
- (chk->rec.data.rcv_flags & SCTP_DATA_UNORDERED) ? 1 : 0);
- op_err = sctp_generate_cause(SCTP_CAUSE_PROTOCOL_VIOLATION, msg);
- stcb->sctp_ep->last_abort_code = SCTP_FROM_SCTP_INDATA + SCTP_LOC_14;
- sctp_abort_an_association(stcb->sctp_ep, stcb, op_err, SCTP_SO_NOT_LOCKED);
- *abort_flag = 1;
+ SCTPDBG(SCTP_DEBUG_XXX,
+ "New fsn:%d is already seen in included_fsn:%d -- abort\n",
+ chk->rec.data.fsn_num, control->fsn_included);
+ sctp_abort_in_reasm(stcb, strm, control, chk,
+ abort_flag,
+ SCTP_FROM_SCTP_INDATA + SCTP_LOC_11);
return;
}
- if ((next->rec.data.rcv_flags & SCTP_DATA_UNORDERED) == 0 &&
- chk->rec.data.stream_seq !=
- next->rec.data.stream_seq) {
- /*
- * Huh, need the correct STR here,
- * they must be the same.
- */
- SCTPDBG(SCTP_DEBUG_INDATA1, "Next chk - Gak, Evil plot, sseq:%d not the same as at:%d\n",
- chk->rec.data.stream_seq,
- next->rec.data.stream_seq);
- snprintf(msg, sizeof(msg),
- "Required SSN %4.4x, got TSN=%8.8x, SID=%4.4x, SSN=%4.4x",
- next->rec.data.stream_seq,
- chk->rec.data.TSN_seq,
- chk->rec.data.stream_number,
- chk->rec.data.stream_seq);
- op_err = sctp_generate_cause(SCTP_CAUSE_PROTOCOL_VIOLATION, msg);
- stcb->sctp_ep->last_abort_code = SCTP_FROM_SCTP_INDATA + SCTP_LOC_15;
- sctp_abort_an_association(stcb->sctp_ep, stcb, op_err, SCTP_SO_NOT_LOCKED);
- *abort_flag = 1;
- return;
+ }
+ /*
+ * validate not beyond top FSN if we have seen last
+ * one
+ */
+ if (SCTP_TSN_GT(chk->rec.data.fsn_num, control->top_fsn)) {
+ SCTPDBG(SCTP_DEBUG_XXX,
+ "New fsn:%d is beyond or at top_fsn:%d -- abort\n",
+ chk->rec.data.fsn_num,
+ control->top_fsn);
+ sctp_abort_in_reasm(stcb, strm, control, chk,
+ abort_flag,
+ SCTP_FROM_SCTP_INDATA + SCTP_LOC_12);
+ return;
+ }
+ }
+ /*
+ * If we reach here, we need to place the new chunk in the
+ * reassembly for this control.
+ */
+ SCTPDBG(SCTP_DEBUG_XXX,
+ "chunk is a not first fsn:%d needs to be inserted\n",
+ chk->rec.data.fsn_num);
+ TAILQ_FOREACH(at, &control->reasm, sctp_next) {
+ if (SCTP_TSN_GT(at->rec.data.fsn_num, chk->rec.data.fsn_num)) {
+ /*
+ * This one in queue is bigger than the new
+ * one, insert the new one before at.
+ */
+ SCTPDBG(SCTP_DEBUG_XXX,
+ "Insert it before fsn:%d\n",
+ at->rec.data.fsn_num);
+ asoc->size_on_reasm_queue += chk->send_size;
+ sctp_ucount_incr(asoc->cnt_on_reasm_queue);
+ TAILQ_INSERT_BEFORE(at, chk, sctp_next);
+ inserted = 1;
+ break;
+ } else if (at->rec.data.fsn_num == chk->rec.data.fsn_num) {
+ /*
+ * Gak, He sent me a duplicate str seq
+ * number
+ */
+ /*
+ * foo bar, I guess I will just free this
+ * new guy, should we abort too? FIX ME
+ * MAYBE? Or it COULD be that the SSN's have
+ * wrapped. Maybe I should compare to TSN
+ * somehow... sigh for now just blow away
+ * the chunk!
+ */
+ SCTPDBG(SCTP_DEBUG_XXX,
+ "Duplicate to fsn:%d -- abort\n",
+ at->rec.data.fsn_num);
+ sctp_abort_in_reasm(stcb, strm, control,
+ chk, abort_flag,
+ SCTP_FROM_SCTP_INDATA + SCTP_LOC_13);
+ return;
+ }
+ }
+ if (inserted == 0) {
+ /* Goes on the end */
+ SCTPDBG(SCTP_DEBUG_XXX, "Inserting at tail of list fsn:%d\n",
+ chk->rec.data.fsn_num);
+ asoc->size_on_reasm_queue += chk->send_size;
+ sctp_ucount_incr(asoc->cnt_on_reasm_queue);
+ TAILQ_INSERT_TAIL(&control->reasm, chk, sctp_next);
+ }
+ }
+ /*
+ * Ok lets see if we can suck any up into the control structure that
+ * are in seq if it makes sense.
+ */
+ cnt_added = 0;
+ /*
+ * If the first fragment has not been seen there is no sense in
+ * looking.
+ */
+ if (control->first_frag_seen) {
+ next_fsn = control->fsn_included + 1;
+ TAILQ_FOREACH_SAFE(at, &control->reasm, sctp_next, nat) {
+ if (at->rec.data.fsn_num == next_fsn) {
+ /* We can add this one now to the control */
+ SCTPDBG(SCTP_DEBUG_XXX,
+ "Adding more to control:%p at:%p fsn:%d next_fsn:%d included:%d\n",
+ control, at,
+ at->rec.data.fsn_num,
+ next_fsn, control->fsn_included);
+ TAILQ_REMOVE(&control->reasm, at, sctp_next);
+ sctp_add_chk_to_control(control, strm, stcb, asoc, at);
+ cnt_added++;
+ next_fsn++;
+ if (control->end_added && control->pdapi_started) {
+ if (strm->pd_api_started) {
+ strm->pd_api_started = 0;
+ control->pdapi_started = 0;
+ }
+ if (control->on_read_q == 0) {
+ sctp_add_to_readq(stcb->sctp_ep, stcb,
+ control,
+ &stcb->sctp_socket->so_rcv, control->end_added,
+ SCTP_READ_LOCK_NOT_HELD, SCTP_SO_NOT_LOCKED);
+ }
+ break;
}
+ } else {
+ break;
}
}
}
- /* Do we need to do some delivery? check */
- sctp_deliver_reasm_check(stcb, asoc);
+ if ((control->on_read_q) && (cnt_added > 0)) {
+ /* Need to wakeup the reader */
+ sctp_wakeup_the_read_socket(stcb->sctp_ep);
+ }
}
-/*
- * This is an unfortunate routine. It checks to make sure a evil guy is not
- * stuffing us full of bad packet fragments. A broken peer could also do this
- * but this is doubtful. It is to bad I must worry about evil crackers sigh
- * :< more cycles.
- */
-static int
-sctp_does_tsn_belong_to_reasm(struct sctp_association *asoc,
- uint32_t TSN_seq)
+static struct sctp_queued_to_read *
+find_reasm_entry(struct sctp_stream_in *strm, uint32_t msg_id, int ordered, int old)
{
- struct sctp_tmit_chunk *at;
- uint32_t tsn_est;
-
- TAILQ_FOREACH(at, &asoc->reasmqueue, sctp_next) {
- if (SCTP_TSN_GT(TSN_seq, at->rec.data.TSN_seq)) {
- /* is it one bigger? */
- tsn_est = at->rec.data.TSN_seq + 1;
- if (tsn_est == TSN_seq) {
- /* yep. It better be a last then */
- if ((at->rec.data.rcv_flags & SCTP_DATA_FRAG_MASK) !=
- SCTP_DATA_LAST_FRAG) {
- /*
- * Ok this guy belongs next to a guy
- * that is NOT last, it should be a
- * middle/last, not a complete
- * chunk.
- */
- return (1);
- } else {
- /*
- * This guy is ok since its a LAST
- * and the new chunk is a fully
- * self- contained one.
- */
- return (0);
- }
+ struct sctp_queued_to_read *reasm;
+
+ if (ordered) {
+ TAILQ_FOREACH(reasm, &strm->inqueue, next_instrm) {
+ if (reasm->msg_id == msg_id) {
+ break;
}
- } else if (TSN_seq == at->rec.data.TSN_seq) {
- /* Software error since I have a dup? */
- return (1);
- } else {
- /*
- * Ok, 'at' is larger than new chunk but does it
- * need to be right before it.
- */
- tsn_est = TSN_seq + 1;
- if (tsn_est == at->rec.data.TSN_seq) {
- /* Yep, It better be a first */
- if ((at->rec.data.rcv_flags & SCTP_DATA_FRAG_MASK) !=
- SCTP_DATA_FIRST_FRAG) {
- return (1);
- } else {
- return (0);
- }
+ }
+ } else {
+ if (old) {
+ reasm = TAILQ_FIRST(&strm->uno_inqueue);
+ return (reasm);
+ }
+ TAILQ_FOREACH(reasm, &strm->uno_inqueue, next_instrm) {
+ if (reasm->msg_id == msg_id) {
+ break;
}
}
}
- return (0);
+ return (reasm);
}
+
static int
sctp_process_a_data_chunk(struct sctp_tcb *stcb, struct sctp_association *asoc,
- struct mbuf **m, int offset, struct sctp_data_chunk *ch, int chk_length,
+ struct mbuf **m, int offset, int chk_length,
struct sctp_nets *net, uint32_t * high_tsn, int *abort_flag,
- int *break_flag, int last_chunk)
+ int *break_flag, int last_chunk, uint8_t chtype)
{
/* Process a data chunk */
/* struct sctp_tmit_chunk *chk; */
+ struct sctp_data_chunk *ch;
+ struct sctp_idata_chunk *nch, chunk_buf;
struct sctp_tmit_chunk *chk;
- uint32_t tsn, gap;
+ uint32_t tsn, fsn, gap, msg_id;
struct mbuf *dmbuf;
int the_len;
int need_reasm_check = 0;
- uint16_t strmno, strmseq;
+ uint16_t strmno;
struct mbuf *op_err;
char msg[SCTP_DIAG_INFO_LEN];
- struct sctp_queued_to_read *control;
- int ordered;
+ struct sctp_queued_to_read *control = NULL;
uint32_t protocol_id;
uint8_t chunk_flags;
struct sctp_stream_reset_list *liste;
+ struct sctp_stream_in *strm;
+ int ordered;
+ size_t clen;
+ int created_control = 0;
+ uint8_t old_data;
chk = NULL;
- tsn = ntohl(ch->dp.tsn);
+ if (chtype == SCTP_IDATA) {
+ nch = (struct sctp_idata_chunk *)sctp_m_getptr(*m, offset,
+ sizeof(struct sctp_idata_chunk), (uint8_t *) & chunk_buf);
+
+ ch = (struct sctp_data_chunk *)nch;
+ clen = sizeof(struct sctp_idata_chunk);
+ tsn = ntohl(ch->dp.tsn);
+ msg_id = ntohl(nch->dp.msg_id);
+ if (ch->ch.chunk_flags & SCTP_DATA_FIRST_FRAG)
+ fsn = 0;
+ else
+ fsn = ntohl(nch->dp.fsn);
+ old_data = 0;
+ } else {
+ ch = (struct sctp_data_chunk *)sctp_m_getptr(*m, offset,
+ sizeof(struct sctp_data_chunk), (uint8_t *) & chunk_buf);
+
+ tsn = ntohl(ch->dp.tsn);
+ clen = sizeof(struct sctp_data_chunk);
+ fsn = tsn;
+ msg_id = (uint32_t) (ntohs(ch->dp.stream_sequence));
+ nch = NULL;
+ old_data = 1;
+ }
chunk_flags = ch->ch.chunk_flags;
+ if ((size_t)chk_length == clen) {
+ /*
+ * Need to send an abort since we had a empty data chunk.
+ */
+ struct mbuf *op_err;
+
+ op_err = sctp_generate_no_user_data_cause(ch->dp.tsn);
+ stcb->sctp_ep->last_abort_code = SCTP_FROM_SCTP_INDATA + SCTP_LOC_14;
+ sctp_abort_an_association(stcb->sctp_ep, stcb, op_err, SCTP_SO_NOT_LOCKED);
+ *abort_flag = 1;
+ return (0);
+ }
+ ordered = ((chunk_flags & SCTP_DATA_UNORDERED) == 0);
if ((chunk_flags & SCTP_DATA_SACK_IMMEDIATELY) == SCTP_DATA_SACK_IMMEDIATELY) {
asoc->send_sack = 1;
}
@@ -1377,54 +1658,9 @@ sctp_process_a_data_chunk(struct sctp_tcb *stcb, struct sctp_association *asoc,
* for on a partial delivery API.
*/
- /* now do the tests */
- if (((asoc->cnt_on_all_streams +
- asoc->cnt_on_reasm_queue +
- asoc->cnt_msg_on_sb) >= SCTP_BASE_SYSCTL(sctp_max_chunks_on_queue)) ||
- (((int)asoc->my_rwnd) <= 0)) {
- /*
- * When we have NO room in the rwnd we check to make sure
- * the reader is doing its job...
- */
- if (stcb->sctp_socket->so_rcv.sb_cc) {
- /* some to read, wake-up */
-#if defined(__APPLE__) || defined(SCTP_SO_LOCK_TESTING)
- struct socket *so;
-
- so = SCTP_INP_SO(stcb->sctp_ep);
- atomic_add_int(&stcb->asoc.refcnt, 1);
- SCTP_TCB_UNLOCK(stcb);
- SCTP_SOCKET_LOCK(so, 1);
- SCTP_TCB_LOCK(stcb);
- atomic_subtract_int(&stcb->asoc.refcnt, 1);
- if (stcb->asoc.state & SCTP_STATE_CLOSED_SOCKET) {
- /* assoc was freed while we were unlocked */
- SCTP_SOCKET_UNLOCK(so, 1);
- return (0);
- }
-#endif
- sctp_sorwakeup(stcb->sctp_ep, stcb->sctp_socket);
-#if defined(__APPLE__) || defined(SCTP_SO_LOCK_TESTING)
- SCTP_SOCKET_UNLOCK(so, 1);
-#endif
- }
- /* now is it in the mapping array of what we have accepted? */
- if (SCTP_TSN_GT(tsn, asoc->highest_tsn_inside_map) &&
- SCTP_TSN_GT(tsn, asoc->highest_tsn_inside_nr_map)) {
- /* Nope not in the valid range dump it */
- sctp_set_rwnd(stcb, asoc);
- if ((asoc->cnt_on_all_streams +
- asoc->cnt_on_reasm_queue +
- asoc->cnt_msg_on_sb) >= SCTP_BASE_SYSCTL(sctp_max_chunks_on_queue)) {
- SCTP_STAT_INCR(sctps_datadropchklmt);
- } else {
- SCTP_STAT_INCR(sctps_datadroprwnd);
- }
- *break_flag = 1;
- return (0);
- }
- }
+ /* Is the stream valid? */
strmno = ntohs(ch->dp.stream_id);
+
if (strmno >= asoc->streamincnt) {
struct sctp_error_invalid_stream *cause;
@@ -1458,14 +1694,121 @@ sctp_process_a_data_chunk(struct sctp_tcb *stcb, struct sctp_association *asoc,
}
return (0);
}
+ strm = &asoc->strmin[strmno];
/*
- * Before we continue lets validate that we are not being fooled by
- * an evil attacker. We can only have 4k chunks based on our TSN
- * spread allowed by the mapping array 512 * 8 bits, so there is no
- * way our stream sequence numbers could have wrapped. We of course
- * only validate the FIRST fragment so the bit must be set.
+ * If its a fragmented message, lets see if we can find the control
+ * on the reassembly queues.
*/
- strmseq = ntohs(ch->dp.stream_sequence);
+ if ((chtype == SCTP_IDATA) && ((chunk_flags & SCTP_DATA_FIRST_FRAG) == 0) && (fsn == 0)) {
+ /*
+ * The first *must* be fsn 0, and other (middle/end) pieces
+ * can *not* be fsn 0.
+ */
+ goto err_out;
+ }
+ if ((chunk_flags & SCTP_DATA_NOT_FRAG) != SCTP_DATA_NOT_FRAG) {
+ /* See if we can find the re-assembly entity */
+ control = find_reasm_entry(strm, msg_id, ordered, old_data);
+ SCTPDBG(SCTP_DEBUG_XXX, "chunk_flags:0x%x look for control on queues %p\n",
+ chunk_flags, control);
+ if (control) {
+ /* We found something, does it belong? */
+ if (ordered && (msg_id != control->sinfo_ssn)) {
+ err_out:
+ op_err = sctp_generate_cause(SCTP_CAUSE_PROTOCOL_VIOLATION, msg);
+ stcb->sctp_ep->last_abort_code = SCTP_FROM_SCTP_INDATA + SCTP_LOC_15;
+ sctp_abort_an_association(stcb->sctp_ep, stcb, op_err, SCTP_SO_NOT_LOCKED);
+ *abort_flag = 1;
+ return (0);
+ }
+ if (ordered && ((control->sinfo_flags >> 8) & SCTP_DATA_UNORDERED)) {
+ /*
+ * We can't have a switched order with an
+ * unordered chunk
+ */
+ goto err_out;
+ }
+ if (!ordered && (((control->sinfo_flags >> 8) & SCTP_DATA_UNORDERED) == 0)) {
+ /*
+ * We can't have a switched unordered with a
+ * ordered chunk
+ */
+ goto err_out;
+ }
+ }
+ } else {
+ /*
+ * Its a complete segment. Lets validate we don't have a
+ * re-assembly going on with the same Stream/Seq (for
+ * ordered) or in the same Stream for unordered.
+ */
+ SCTPDBG(SCTP_DEBUG_XXX, "chunk_flags:0x%x look for msg in case we have dup\n",
+ chunk_flags);
+ if (find_reasm_entry(strm, msg_id, ordered, old_data)) {
+ SCTPDBG(SCTP_DEBUG_XXX, "chunk_flags:0x%x dup detected on msg_id:%d\n",
+ chunk_flags,
+ msg_id);
+
+ goto err_out;
+ }
+ }
+ /* now do the tests */
+ if (((asoc->cnt_on_all_streams +
+ asoc->cnt_on_reasm_queue +
+ asoc->cnt_msg_on_sb) >= SCTP_BASE_SYSCTL(sctp_max_chunks_on_queue)) ||
+ (((int)asoc->my_rwnd) <= 0)) {
+ /*
+ * When we have NO room in the rwnd we check to make sure
+ * the reader is doing its job...
+ */
+ if (stcb->sctp_socket->so_rcv.sb_cc) {
+ /* some to read, wake-up */
+#if defined(__APPLE__) || defined(SCTP_SO_LOCK_TESTING)
+ struct socket *so;
+
+ so = SCTP_INP_SO(stcb->sctp_ep);
+ atomic_add_int(&stcb->asoc.refcnt, 1);
+ SCTP_TCB_UNLOCK(stcb);
+ SCTP_SOCKET_LOCK(so, 1);
+ SCTP_TCB_LOCK(stcb);
+ atomic_subtract_int(&stcb->asoc.refcnt, 1);
+ if (stcb->asoc.state & SCTP_STATE_CLOSED_SOCKET) {
+ /* assoc was freed while we were unlocked */
+ SCTP_SOCKET_UNLOCK(so, 1);
+ return (0);
+ }
+#endif
+ sctp_sorwakeup(stcb->sctp_ep, stcb->sctp_socket);
+#if defined(__APPLE__) || defined(SCTP_SO_LOCK_TESTING)
+ SCTP_SOCKET_UNLOCK(so, 1);
+#endif
+ }
+ /* now is it in the mapping array of what we have accepted? */
+ if (nch == NULL) {
+ if (SCTP_TSN_GT(tsn, asoc->highest_tsn_inside_map) &&
+ SCTP_TSN_GT(tsn, asoc->highest_tsn_inside_nr_map)) {
+ /* Nope not in the valid range dump it */
+ dump_packet:
+ sctp_set_rwnd(stcb, asoc);
+ if ((asoc->cnt_on_all_streams +
+ asoc->cnt_on_reasm_queue +
+ asoc->cnt_msg_on_sb) >= SCTP_BASE_SYSCTL(sctp_max_chunks_on_queue)) {
+ SCTP_STAT_INCR(sctps_datadropchklmt);
+ } else {
+ SCTP_STAT_INCR(sctps_datadroprwnd);
+ }
+ *break_flag = 1;
+ return (0);
+ }
+ } else {
+ if (control == NULL) {
+ goto dump_packet;
+ }
+ if (SCTP_TSN_GT(fsn, control->top_fsn)) {
+ goto dump_packet;
+ }
+ }
+ }
#ifdef SCTP_ASOCLOG_OF_TSNS
SCTP_TCB_LOCK_ASSERT(stcb);
if (asoc->tsn_in_at >= SCTP_TSN_LOG_SIZE) {
@@ -1474,7 +1817,7 @@ sctp_process_a_data_chunk(struct sctp_tcb *stcb, struct sctp_association *asoc,
}
asoc->in_tsnlog[asoc->tsn_in_at].tsn = tsn;
asoc->in_tsnlog[asoc->tsn_in_at].strm = strmno;
- asoc->in_tsnlog[asoc->tsn_in_at].seq = strmseq;
+ asoc->in_tsnlog[asoc->tsn_in_at].seq = msg_id;
asoc->in_tsnlog[asoc->tsn_in_at].sz = chk_length;
asoc->in_tsnlog[asoc->tsn_in_at].flgs = chunk_flags;
asoc->in_tsnlog[asoc->tsn_in_at].stcb = (void *)stcb;
@@ -1482,17 +1825,24 @@ sctp_process_a_data_chunk(struct sctp_tcb *stcb, struct sctp_association *asoc,
asoc->in_tsnlog[asoc->tsn_in_at].in_out = 1;
asoc->tsn_in_at++;
#endif
+ /*
+ * Before we continue lets validate that we are not being fooled by
+ * an evil attacker. We can only have Nk chunks based on our TSN
+ * spread allowed by the mapping array N * 8 bits, so there is no
+ * way our stream sequence numbers could have wrapped. We of course
+ * only validate the FIRST fragment so the bit must be set.
+ */
if ((chunk_flags & SCTP_DATA_FIRST_FRAG) &&
(TAILQ_EMPTY(&asoc->resetHead)) &&
(chunk_flags & SCTP_DATA_UNORDERED) == 0 &&
- SCTP_SSN_GE(asoc->strmin[strmno].last_sequence_delivered, strmseq)) {
+ SCTP_MSGID_GE(old_data, asoc->strmin[strmno].last_sequence_delivered, msg_id)) {
/* The incoming sseq is behind where we last delivered? */
SCTPDBG(SCTP_DEBUG_INDATA1, "EVIL/Broken-Dup S-SEQ:%d delivered:%d from peer, Abort!\n",
- strmseq, asoc->strmin[strmno].last_sequence_delivered);
+ msg_id, asoc->strmin[strmno].last_sequence_delivered);
snprintf(msg, sizeof(msg), "Delivered SSN=%4.4x, got TSN=%8.8x, SID=%4.4x, SSN=%4.4x",
asoc->strmin[strmno].last_sequence_delivered,
- tsn, strmno, strmseq);
+ tsn, strmno, msg_id);
op_err = sctp_generate_cause(SCTP_CAUSE_PROTOCOL_VIOLATION, msg);
stcb->sctp_ep->last_abort_code = SCTP_FROM_SCTP_INDATA + SCTP_LOC_16;
sctp_abort_an_association(stcb->sctp_ep, stcb, op_err, SCTP_SO_NOT_LOCKED);
@@ -1503,12 +1853,21 @@ sctp_process_a_data_chunk(struct sctp_tcb *stcb, struct sctp_association *asoc,
* From here down we may find ch-> invalid
* so its a good idea NOT to use it.
*************************************/
-
- the_len = (chk_length - sizeof(struct sctp_data_chunk));
+ if (nch) {
+ the_len = (chk_length - sizeof(struct sctp_idata_chunk));
+ } else {
+ the_len = (chk_length - sizeof(struct sctp_data_chunk));
+ }
if (last_chunk == 0) {
- dmbuf = SCTP_M_COPYM(*m,
- (offset + sizeof(struct sctp_data_chunk)),
- the_len, M_NOWAIT);
+ if (nch) {
+ dmbuf = SCTP_M_COPYM(*m,
+ (offset + sizeof(struct sctp_idata_chunk)),
+ the_len, M_NOWAIT);
+ } else {
+ dmbuf = SCTP_M_COPYM(*m,
+ (offset + sizeof(struct sctp_data_chunk)),
+ the_len, M_NOWAIT);
+ }
#ifdef SCTP_MBUF_LOGGING
if (SCTP_BASE_SYSCTL(sctp_logging_level) & SCTP_MBUF_LOGGING_ENABLE) {
sctp_log_mbc(dmbuf, SCTP_MBUF_ICOPY);
@@ -1520,7 +1879,11 @@ sctp_process_a_data_chunk(struct sctp_tcb *stcb, struct sctp_association *asoc,
dmbuf = *m;
/* lop off the top part */
- m_adj(dmbuf, (offset + sizeof(struct sctp_data_chunk)));
+ if (nch) {
+ m_adj(dmbuf, (offset + sizeof(struct sctp_idata_chunk)));
+ } else {
+ m_adj(dmbuf, (offset + sizeof(struct sctp_data_chunk)));
+ }
if (SCTP_BUF_NEXT(dmbuf) == NULL) {
l_len = SCTP_BUF_LEN(dmbuf);
} else {
@@ -1544,11 +1907,36 @@ sctp_process_a_data_chunk(struct sctp_tcb *stcb, struct sctp_association *asoc,
SCTP_STAT_INCR(sctps_nomem);
return (0);
}
+ /*
+ * Now no matter what we need a control, get one if we don't have
+ * one (we may have gotten it above when we found the message was
+ * fragmented
+ */
+ if (control == NULL) {
+ sctp_alloc_a_readq(stcb, control);
+ sctp_build_readq_entry_mac(control, stcb, asoc->context, net, tsn,
+ protocol_id,
+ strmno, msg_id,
+ chunk_flags,
+ NULL, fsn, msg_id);
+ if (control == NULL) {
+ SCTP_STAT_INCR(sctps_nomem);
+ return (0);
+ }
+ if ((chunk_flags & SCTP_DATA_NOT_FRAG) == SCTP_DATA_NOT_FRAG) {
+ control->data = dmbuf;
+ control->tail_mbuf = NULL;
+ control->end_added = control->last_frag_seen = control->first_frag_seen = 1;
+ control->top_fsn = control->fsn_included = fsn;
+ }
+ created_control = 1;
+ }
+ SCTPDBG(SCTP_DEBUG_XXX, "chunk_flags:0x%x ordered:%d msgid:%d control:%p\n",
+ chunk_flags, ordered, msg_id, control);
if ((chunk_flags & SCTP_DATA_NOT_FRAG) == SCTP_DATA_NOT_FRAG &&
- asoc->fragmented_delivery_inprogress == 0 &&
TAILQ_EMPTY(&asoc->resetHead) &&
((ordered == 0) ||
- ((uint16_t) (asoc->strmin[strmno].last_sequence_delivered + 1) == strmseq &&
+ ((uint16_t) (asoc->strmin[strmno].last_sequence_delivered + 1) == msg_id &&
TAILQ_EMPTY(&asoc->strmin[strmno].inqueue)))) {
/* Candidate for express delivery */
/*
@@ -1558,109 +1946,30 @@ sctp_process_a_data_chunk(struct sctp_tcb *stcb, struct sctp_association *asoc,
* And there is room for it in the socket buffer. Lets just
* stuff it up the buffer....
*/
-
- /* It would be nice to avoid this copy if we could :< */
- sctp_alloc_a_readq(stcb, control);
- sctp_build_readq_entry_mac(control, stcb, asoc->context, net, tsn,
- protocol_id,
- strmno, strmseq,
- chunk_flags,
- dmbuf);
- if (control == NULL) {
- goto failed_express_del;
- }
SCTP_SET_TSN_PRESENT(asoc->nr_mapping_array, gap);
if (SCTP_TSN_GT(tsn, asoc->highest_tsn_inside_nr_map)) {
asoc->highest_tsn_inside_nr_map = tsn;
}
+ SCTPDBG(SCTP_DEBUG_XXX, "Injecting control:%p to be read (mid:%d)\n",
+ control, msg_id);
+
sctp_add_to_readq(stcb->sctp_ep, stcb,
control, &stcb->sctp_socket->so_rcv,
1, SCTP_READ_LOCK_NOT_HELD, SCTP_SO_NOT_LOCKED);
if ((chunk_flags & SCTP_DATA_UNORDERED) == 0) {
/* for ordered, bump what we delivered */
- asoc->strmin[strmno].last_sequence_delivered++;
+ strm->last_sequence_delivered++;
}
SCTP_STAT_INCR(sctps_recvexpress);
if (SCTP_BASE_SYSCTL(sctp_logging_level) & SCTP_STR_LOGGING_ENABLE) {
- sctp_log_strm_del_alt(stcb, tsn, strmseq, strmno,
+ sctp_log_strm_del_alt(stcb, tsn, msg_id, strmno,
SCTP_STR_LOG_FROM_EXPRS_DEL);
}
control = NULL;
-
goto finish_express_del;
}
-failed_express_del:
- /* If we reach here this is a new chunk */
- chk = NULL;
- control = NULL;
- /* Express for fragmented delivery? */
- if ((asoc->fragmented_delivery_inprogress) &&
- (stcb->asoc.control_pdapi) &&
- (asoc->str_of_pdapi == strmno) &&
- (asoc->ssn_of_pdapi == strmseq)
- ) {
- control = stcb->asoc.control_pdapi;
- if ((chunk_flags & SCTP_DATA_FIRST_FRAG) == SCTP_DATA_FIRST_FRAG) {
- /* Can't be another first? */
- goto failed_pdapi_express_del;
- }
- if (tsn == (control->sinfo_tsn + 1)) {
- /* Yep, we can add it on */
- int end = 0;
-
- if (chunk_flags & SCTP_DATA_LAST_FRAG) {
- end = 1;
- }
- if (sctp_append_to_readq(stcb->sctp_ep, stcb, control, dmbuf, end,
- tsn,
- &stcb->sctp_socket->so_rcv)) {
- SCTP_PRINTF("Append fails end:%d\n", end);
- goto failed_pdapi_express_del;
- }
- SCTP_SET_TSN_PRESENT(asoc->nr_mapping_array, gap);
- if (SCTP_TSN_GT(tsn, asoc->highest_tsn_inside_nr_map)) {
- asoc->highest_tsn_inside_nr_map = tsn;
- }
- SCTP_STAT_INCR(sctps_recvexpressm);
- asoc->tsn_last_delivered = tsn;
- asoc->fragment_flags = chunk_flags;
- asoc->tsn_of_pdapi_last_delivered = tsn;
- asoc->last_flags_delivered = chunk_flags;
- asoc->last_strm_seq_delivered = strmseq;
- asoc->last_strm_no_delivered = strmno;
- if (end) {
- /* clean up the flags and such */
- asoc->fragmented_delivery_inprogress = 0;
- if ((chunk_flags & SCTP_DATA_UNORDERED) == 0) {
- asoc->strmin[strmno].last_sequence_delivered++;
- }
- stcb->asoc.control_pdapi = NULL;
- if (TAILQ_EMPTY(&asoc->reasmqueue) == 0) {
- /*
- * There could be another message
- * ready
- */
- need_reasm_check = 1;
- }
- }
- control = NULL;
- goto finish_express_del;
- }
- }
-failed_pdapi_express_del:
- control = NULL;
- if (SCTP_BASE_SYSCTL(sctp_do_drain) == 0) {
- SCTP_SET_TSN_PRESENT(asoc->nr_mapping_array, gap);
- if (SCTP_TSN_GT(tsn, asoc->highest_tsn_inside_nr_map)) {
- asoc->highest_tsn_inside_nr_map = tsn;
- }
- } else {
- SCTP_SET_TSN_PRESENT(asoc->mapping_array, gap);
- if (SCTP_TSN_GT(tsn, asoc->highest_tsn_inside_map)) {
- asoc->highest_tsn_inside_map = tsn;
- }
- }
+ /* Now will we need a chunk too? */
if ((chunk_flags & SCTP_DATA_NOT_FRAG) != SCTP_DATA_NOT_FRAG) {
sctp_alloc_a_chunk(stcb, chk);
if (chk == NULL) {
@@ -1674,7 +1983,8 @@ failed_pdapi_express_del:
}
chk->rec.data.TSN_seq = tsn;
chk->no_fr_allowed = 0;
- chk->rec.data.stream_seq = strmseq;
+ chk->rec.data.fsn_num = fsn;
+ chk->rec.data.stream_seq = msg_id;
chk->rec.data.stream_number = strmno;
chk->rec.data.payloadtype = protocol_id;
chk->rec.data.context = stcb->asoc.context;
@@ -1683,193 +1993,110 @@ failed_pdapi_express_del:
chk->asoc = asoc;
chk->send_size = the_len;
chk->whoTo = net;
+ SCTPDBG(SCTP_DEBUG_XXX, "Building ck:%p for control:%p to be read (mid:%d)\n",
+ chk,
+ control, msg_id);
atomic_add_int(&net->ref_count, 1);
chk->data = dmbuf;
+ }
+ /* Set the appropriate TSN mark */
+ if (SCTP_BASE_SYSCTL(sctp_do_drain) == 0) {
+ SCTP_SET_TSN_PRESENT(asoc->nr_mapping_array, gap);
+ if (SCTP_TSN_GT(tsn, asoc->highest_tsn_inside_nr_map)) {
+ asoc->highest_tsn_inside_nr_map = tsn;
+ }
} else {
- sctp_alloc_a_readq(stcb, control);
- sctp_build_readq_entry_mac(control, stcb, asoc->context, net, tsn,
- protocol_id,
- strmno, strmseq,
- chunk_flags,
- dmbuf);
- if (control == NULL) {
- /* No memory so we drop the chunk */
- SCTP_STAT_INCR(sctps_nomem);
- if (last_chunk == 0) {
- /* we copied it, free the copy */
- sctp_m_freem(dmbuf);
- }
- return (0);
+ SCTP_SET_TSN_PRESENT(asoc->mapping_array, gap);
+ if (SCTP_TSN_GT(tsn, asoc->highest_tsn_inside_map)) {
+ asoc->highest_tsn_inside_map = tsn;
}
- control->length = the_len;
}
-
- /* Mark it as received */
- /* Now queue it where it belongs */
- if (control != NULL) {
- /* First a sanity check */
- if (asoc->fragmented_delivery_inprogress) {
+ /* Now is it complete (i.e. not fragmented)? */
+ if ((chunk_flags & SCTP_DATA_NOT_FRAG) == SCTP_DATA_NOT_FRAG) {
+ /*
+ * Special check for when streams are resetting. We could be
+ * more smart about this and check the actual stream to see
+ * if it is not being reset.. that way we would not create a
+ * HOLB when amongst streams being reset and those not being
+ * reset.
+ *
+ */
+ if (((liste = TAILQ_FIRST(&asoc->resetHead)) != NULL) &&
+ SCTP_TSN_GT(tsn, liste->tsn)) {
/*
- * Ok, we have a fragmented delivery in progress if
- * this chunk is next to deliver OR belongs in our
- * view to the reassembly, the peer is evil or
- * broken.
+ * yep its past where we need to reset... go ahead
+ * and queue it.
*/
- uint32_t estimate_tsn;
-
- estimate_tsn = asoc->tsn_last_delivered + 1;
- if (TAILQ_EMPTY(&asoc->reasmqueue) &&
- (estimate_tsn == control->sinfo_tsn)) {
- /* Evil/Broke peer */
- sctp_m_freem(control->data);
- control->data = NULL;
- if (control->whoFrom) {
- sctp_free_remote_addr(control->whoFrom);
- control->whoFrom = NULL;
- }
- sctp_free_a_readq(stcb, control);
- snprintf(msg, sizeof(msg), "Reas. queue emtpy, got TSN=%8.8x, SID=%4.4x, SSN=%4.4x",
- tsn, strmno, strmseq);
- op_err = sctp_generate_cause(SCTP_CAUSE_PROTOCOL_VIOLATION, msg);
- stcb->sctp_ep->last_abort_code = SCTP_FROM_SCTP_INDATA + SCTP_LOC_17;
- sctp_abort_an_association(stcb->sctp_ep, stcb, op_err, SCTP_SO_NOT_LOCKED);
- *abort_flag = 1;
- if (last_chunk) {
- *m = NULL;
- }
- return (0);
+ if (TAILQ_EMPTY(&asoc->pending_reply_queue)) {
+ /* first one on */
+ TAILQ_INSERT_TAIL(&asoc->pending_reply_queue, control, next);
} else {
- if (sctp_does_tsn_belong_to_reasm(asoc, control->sinfo_tsn)) {
- sctp_m_freem(control->data);
- control->data = NULL;
- if (control->whoFrom) {
- sctp_free_remote_addr(control->whoFrom);
- control->whoFrom = NULL;
- }
- sctp_free_a_readq(stcb, control);
- snprintf(msg, sizeof(msg), "PD ongoing, got TSN=%8.8x, SID=%4.4x, SSN=%4.4x",
- tsn, strmno, strmseq);
- op_err = sctp_generate_cause(SCTP_CAUSE_PROTOCOL_VIOLATION, msg);
- stcb->sctp_ep->last_abort_code = SCTP_FROM_SCTP_INDATA + SCTP_LOC_18;
- sctp_abort_an_association(stcb->sctp_ep, stcb, op_err, SCTP_SO_NOT_LOCKED);
- *abort_flag = 1;
- if (last_chunk) {
- *m = NULL;
+ struct sctp_queued_to_read *ctlOn, *nctlOn;
+ unsigned char inserted = 0;
+
+ TAILQ_FOREACH_SAFE(ctlOn, &asoc->pending_reply_queue, next, nctlOn) {
+ if (SCTP_TSN_GT(control->sinfo_tsn, ctlOn->sinfo_tsn)) {
+
+ continue;
+ } else {
+ /* found it */
+ TAILQ_INSERT_BEFORE(ctlOn, control, next);
+ inserted = 1;
+ break;
}
- return (0);
}
- }
- } else {
- /* No PDAPI running */
- if (!TAILQ_EMPTY(&asoc->reasmqueue)) {
- /*
- * Reassembly queue is NOT empty validate
- * that this tsn does not need to be in
- * reasembly queue. If it does then our peer
- * is broken or evil.
- */
- if (sctp_does_tsn_belong_to_reasm(asoc, control->sinfo_tsn)) {
- sctp_m_freem(control->data);
- control->data = NULL;
- if (control->whoFrom) {
- sctp_free_remote_addr(control->whoFrom);
- control->whoFrom = NULL;
- }
- sctp_free_a_readq(stcb, control);
- snprintf(msg, sizeof(msg), "No PD ongoing, got TSN=%8.8x, SID=%4.4x, SSN=%4.4x",
- tsn, strmno, strmseq);
- op_err = sctp_generate_cause(SCTP_CAUSE_PROTOCOL_VIOLATION, msg);
- stcb->sctp_ep->last_abort_code = SCTP_FROM_SCTP_INDATA + SCTP_LOC_19;
- sctp_abort_an_association(stcb->sctp_ep, stcb, op_err, SCTP_SO_NOT_LOCKED);
- *abort_flag = 1;
- if (last_chunk) {
- *m = NULL;
- }
- return (0);
+ if (inserted == 0) {
+ /*
+ * must be put at end, use prevP
+ * (all setup from loop) to setup
+ * nextP.
+ */
+ TAILQ_INSERT_TAIL(&asoc->pending_reply_queue, control, next);
}
}
+ goto finish_express_del;
}
- /* ok, if we reach here we have passed the sanity checks */
if (chunk_flags & SCTP_DATA_UNORDERED) {
/* queue directly into socket buffer */
+ SCTPDBG(SCTP_DEBUG_XXX, "Unordered data to be read control:%p msg_id:%d\n",
+ control, msg_id);
sctp_mark_non_revokable(asoc, control->sinfo_tsn);
sctp_add_to_readq(stcb->sctp_ep, stcb,
control,
- &stcb->sctp_socket->so_rcv, 1, SCTP_READ_LOCK_NOT_HELD, SCTP_SO_NOT_LOCKED);
- } else {
- /*
- * Special check for when streams are resetting. We
- * could be more smart about this and check the
- * actual stream to see if it is not being reset..
- * that way we would not create a HOLB when amongst
- * streams being reset and those not being reset.
- *
- * We take complete messages that have a stream reset
- * intervening (aka the TSN is after where our
- * cum-ack needs to be) off and put them on a
- * pending_reply_queue. The reassembly ones we do
- * not have to worry about since they are all sorted
- * and proceessed by TSN order. It is only the
- * singletons I must worry about.
- */
- if (((liste = TAILQ_FIRST(&asoc->resetHead)) != NULL) &&
- SCTP_TSN_GT(tsn, liste->tsn)) {
- /*
- * yep its past where we need to reset... go
- * ahead and queue it.
- */
- if (TAILQ_EMPTY(&asoc->pending_reply_queue)) {
- /* first one on */
- TAILQ_INSERT_TAIL(&asoc->pending_reply_queue, control, next);
- } else {
- struct sctp_queued_to_read *ctlOn,
- *nctlOn;
- unsigned char inserted = 0;
+ &stcb->sctp_socket->so_rcv, 1,
+ SCTP_READ_LOCK_NOT_HELD, SCTP_SO_NOT_LOCKED);
- TAILQ_FOREACH_SAFE(ctlOn, &asoc->pending_reply_queue, next, nctlOn) {
- if (SCTP_TSN_GT(control->sinfo_tsn, ctlOn->sinfo_tsn)) {
- continue;
- } else {
- /* found it */
- TAILQ_INSERT_BEFORE(ctlOn, control, next);
- inserted = 1;
- break;
- }
- }
- if (inserted == 0) {
- /*
- * must be put at end, use
- * prevP (all setup from
- * loop) to setup nextP.
- */
- TAILQ_INSERT_TAIL(&asoc->pending_reply_queue, control, next);
- }
- }
- } else {
- sctp_queue_data_to_stream(stcb, asoc, control, abort_flag);
- if (*abort_flag) {
- if (last_chunk) {
- *m = NULL;
- }
- return (0);
+ } else {
+ SCTPDBG(SCTP_DEBUG_XXX, "Queue control:%p for reordering msg_id:%d\n", control,
+ msg_id);
+ sctp_queue_data_to_stream(stcb, strm, asoc, control, abort_flag, &need_reasm_check);
+ if (*abort_flag) {
+ if (last_chunk) {
+ *m = NULL;
}
+ return (0);
}
}
- } else {
- /* Into the re-assembly queue */
- sctp_queue_data_for_reasm(stcb, asoc, chk, abort_flag);
- if (*abort_flag) {
- /*
- * the assoc is now gone and chk was put onto the
- * reasm queue, which has all been freed.
- */
- if (last_chunk) {
- *m = NULL;
- }
- return (0);
+ goto finish_express_del;
+ }
+ /* If we reach here its a reassembly */
+ need_reasm_check = 1;
+ SCTPDBG(SCTP_DEBUG_XXX,
+ "Queue data to stream for reasm control:%p msg_id:%d\n",
+ control, msg_id);
+ sctp_queue_data_for_reasm(stcb, asoc, strm, control, chk, created_control, abort_flag, tsn);
+ if (*abort_flag) {
+ /*
+ * the assoc is now gone and chk was put onto the reasm
+ * queue, which has all been freed.
+ */
+ if (last_chunk) {
+ *m = NULL;
}
+ return (0);
}
finish_express_del:
+ /* Here we tidy up things */
if (tsn == (asoc->cumulative_tsn + 1)) {
/* Update cum-ack */
asoc->cumulative_tsn = tsn;
@@ -1885,7 +2112,7 @@ finish_express_del:
SCTP_STAT_INCR(sctps_recvdata);
/* Set it present please */
if (SCTP_BASE_SYSCTL(sctp_logging_level) & SCTP_STR_LOGGING_ENABLE) {
- sctp_log_strm_del_alt(stcb, tsn, strmseq, strmno, SCTP_STR_LOG_FROM_MARK_TSN);
+ sctp_log_strm_del_alt(stcb, tsn, msg_id, strmno, SCTP_STR_LOG_FROM_MARK_TSN);
}
if (SCTP_BASE_SYSCTL(sctp_logging_level) & SCTP_MAP_LOGGING_ENABLE) {
sctp_log_map(asoc->mapping_array_base_tsn, asoc->cumulative_tsn,
@@ -1912,7 +2139,7 @@ finish_express_del:
/* All can be removed */
TAILQ_FOREACH_SAFE(ctl, &asoc->pending_reply_queue, next, nctl) {
TAILQ_REMOVE(&asoc->pending_reply_queue, ctl, next);
- sctp_queue_data_to_stream(stcb, asoc, ctl, abort_flag);
+ sctp_queue_data_to_stream(stcb, strm, asoc, ctl, abort_flag, &need_reasm_check);
if (*abort_flag) {
return (0);
}
@@ -1928,7 +2155,7 @@ finish_express_del:
* ctl->sinfo_tsn > liste->tsn
*/
TAILQ_REMOVE(&asoc->pending_reply_queue, ctl, next);
- sctp_queue_data_to_stream(stcb, asoc, ctl, abort_flag);
+ sctp_queue_data_to_stream(stcb, strm, asoc, ctl, abort_flag, &need_reasm_check);
if (*abort_flag) {
return (0);
}
@@ -1938,12 +2165,12 @@ finish_express_del:
* Now service re-assembly to pick up anything that has been
* held on reassembly queue?
*/
- sctp_deliver_reasm_check(stcb, asoc);
+ (void)sctp_deliver_reasm_check(stcb, asoc, strm);
need_reasm_check = 0;
}
if (need_reasm_check) {
/* Another one waits ? */
- sctp_deliver_reasm_check(stcb, asoc);
+ (void)sctp_deliver_reasm_check(stcb, asoc, strm);
}
return (1);
}
@@ -2179,7 +2406,7 @@ sctp_sack_check(struct sctp_tcb *stcb, int was_a_gap)
if (SCTP_OS_TIMER_PENDING(&stcb->asoc.dack_timer.timer)) {
sctp_timer_stop(SCTP_TIMER_TYPE_RECV,
stcb->sctp_ep, stcb, NULL,
- SCTP_FROM_SCTP_INDATA + SCTP_LOC_20);
+ SCTP_FROM_SCTP_INDATA + SCTP_LOC_17);
}
sctp_send_shutdown(stcb,
((stcb->asoc.alternate) ? stcb->asoc.alternate : stcb->asoc.primary_destination));
@@ -2244,73 +2471,12 @@ sctp_sack_check(struct sctp_tcb *stcb, int was_a_gap)
}
}
-void
-sctp_service_queues(struct sctp_tcb *stcb, struct sctp_association *asoc)
-{
- struct sctp_tmit_chunk *chk;
- uint32_t tsize, pd_point;
- uint16_t nxt_todel;
-
- if (asoc->fragmented_delivery_inprogress) {
- sctp_service_reassembly(stcb, asoc);
- }
- /* Can we proceed further, i.e. the PD-API is complete */
- if (asoc->fragmented_delivery_inprogress) {
- /* no */
- return;
- }
- /*
- * Now is there some other chunk I can deliver from the reassembly
- * queue.
- */
-doit_again:
- chk = TAILQ_FIRST(&asoc->reasmqueue);
- if (chk == NULL) {
- asoc->size_on_reasm_queue = 0;
- asoc->cnt_on_reasm_queue = 0;
- return;
- }
- nxt_todel = asoc->strmin[chk->rec.data.stream_number].last_sequence_delivered + 1;
- if ((chk->rec.data.rcv_flags & SCTP_DATA_FIRST_FRAG) &&
- ((nxt_todel == chk->rec.data.stream_seq) ||
- (chk->rec.data.rcv_flags & SCTP_DATA_UNORDERED))) {
- /*
- * Yep the first one is here. We setup to start reception,
- * by backing down the TSN just in case we can't deliver.
- */
-
- /*
- * Before we start though either all of the message should
- * be here or the socket buffer max or nothing on the
- * delivery queue and something can be delivered.
- */
- if (stcb->sctp_socket) {
- pd_point = min(SCTP_SB_LIMIT_RCV(stcb->sctp_socket) >> SCTP_PARTIAL_DELIVERY_SHIFT,
- stcb->sctp_ep->partial_delivery_point);
- } else {
- pd_point = stcb->sctp_ep->partial_delivery_point;
- }
- if (sctp_is_all_msg_on_reasm(asoc, &tsize) || (tsize >= pd_point)) {
- asoc->fragmented_delivery_inprogress = 1;
- asoc->tsn_last_delivered = chk->rec.data.TSN_seq - 1;
- asoc->str_of_pdapi = chk->rec.data.stream_number;
- asoc->ssn_of_pdapi = chk->rec.data.stream_seq;
- asoc->pdapi_ppid = chk->rec.data.payloadtype;
- asoc->fragment_flags = chk->rec.data.rcv_flags;
- sctp_service_reassembly(stcb, asoc);
- if (asoc->fragmented_delivery_inprogress == 0) {
- goto doit_again;
- }
- }
- }
-}
-
int
sctp_process_data(struct mbuf **mm, int iphlen, int *offset, int length,
struct sctp_inpcb *inp, struct sctp_tcb *stcb,
struct sctp_nets *net, uint32_t * high_tsn)
{
- struct sctp_data_chunk *ch, chunk_buf;
+ struct sctp_chunkhdr *ch, chunk_buf;
struct sctp_association *asoc;
int num_chunks = 0; /* number of control chunks processed */
int stop_proc = 0;
@@ -2368,8 +2534,8 @@ sctp_process_data(struct mbuf **mm, int iphlen, int *offset, int length,
}
}
/* get pointer to the first chunk header */
- ch = (struct sctp_data_chunk *)sctp_m_getptr(m, *offset,
- sizeof(struct sctp_data_chunk), (uint8_t *) & chunk_buf);
+ ch = (struct sctp_chunkhdr *)sctp_m_getptr(m, *offset,
+ sizeof(struct sctp_chunkhdr), (uint8_t *) & chunk_buf);
if (ch == NULL) {
return (1);
}
@@ -2381,14 +2547,44 @@ sctp_process_data(struct mbuf **mm, int iphlen, int *offset, int length,
asoc->data_pkts_seen++;
while (stop_proc == 0) {
/* validate chunk length */
- chk_length = ntohs(ch->ch.chunk_length);
+ chk_length = ntohs(ch->chunk_length);
if (length - *offset < chk_length) {
/* all done, mutulated chunk */
stop_proc = 1;
continue;
}
- if (ch->ch.chunk_type == SCTP_DATA) {
- if ((size_t)chk_length < sizeof(struct sctp_data_chunk)) {
+ if ((asoc->idata_supported == 1) &&
+ (ch->chunk_type == SCTP_DATA)) {
+ struct mbuf *op_err;
+ char msg[SCTP_DIAG_INFO_LEN];
+
+ snprintf(msg, sizeof(msg), "I-DATA chunk received when DATA was negotiated");
+ op_err = sctp_generate_cause(SCTP_CAUSE_PROTOCOL_VIOLATION, msg);
+ stcb->sctp_ep->last_abort_code = SCTP_FROM_SCTP_INDATA + SCTP_LOC_18;
+ sctp_abort_an_association(inp, stcb, op_err, SCTP_SO_NOT_LOCKED);
+ return (2);
+ }
+ if ((asoc->idata_supported == 0) &&
+ (ch->chunk_type == SCTP_IDATA)) {
+ struct mbuf *op_err;
+ char msg[SCTP_DIAG_INFO_LEN];
+
+ snprintf(msg, sizeof(msg), "DATA chunk received when I-DATA was negotiated");
+ op_err = sctp_generate_cause(SCTP_CAUSE_PROTOCOL_VIOLATION, msg);
+ stcb->sctp_ep->last_abort_code = SCTP_FROM_SCTP_INDATA + SCTP_LOC_19;
+ sctp_abort_an_association(inp, stcb, op_err, SCTP_SO_NOT_LOCKED);
+ return (2);
+ }
+ if ((ch->chunk_type == SCTP_DATA) ||
+ (ch->chunk_type == SCTP_IDATA)) {
+ int clen;
+
+ if (ch->chunk_type == SCTP_DATA) {
+ clen = sizeof(struct sctp_data_chunk);
+ } else {
+ clen = sizeof(struct sctp_idata_chunk);
+ }
+ if ((size_t)chk_length < clen) {
/*
* Need to send an abort since we had a
* invalid data chunk.
@@ -2399,19 +2595,7 @@ sctp_process_data(struct mbuf **mm, int iphlen, int *offset, int length,
snprintf(msg, sizeof(msg), "DATA chunk of length %d",
chk_length);
op_err = sctp_generate_cause(SCTP_CAUSE_PROTOCOL_VIOLATION, msg);
- stcb->sctp_ep->last_abort_code = SCTP_FROM_SCTP_INDATA + SCTP_LOC_21;
- sctp_abort_an_association(inp, stcb, op_err, SCTP_SO_NOT_LOCKED);
- return (2);
- }
- if ((size_t)chk_length == sizeof(struct sctp_data_chunk)) {
- /*
- * Need to send an abort since we had an
- * empty data chunk.
- */
- struct mbuf *op_err;
-
- op_err = sctp_generate_no_user_data_cause(ch->dp.tsn);
- stcb->sctp_ep->last_abort_code = SCTP_FROM_SCTP_INDATA + SCTP_LOC_22;
+ stcb->sctp_ep->last_abort_code = SCTP_FROM_SCTP_INDATA + SCTP_LOC_20;
sctp_abort_an_association(inp, stcb, op_err, SCTP_SO_NOT_LOCKED);
return (2);
}
@@ -2423,9 +2607,9 @@ sctp_process_data(struct mbuf **mm, int iphlen, int *offset, int length,
} else {
last_chunk = 0;
}
- if (sctp_process_a_data_chunk(stcb, asoc, mm, *offset, ch,
+ if (sctp_process_a_data_chunk(stcb, asoc, mm, *offset,
chk_length, net, high_tsn, &abort_flag, &break_flag,
- last_chunk)) {
+ last_chunk, ch->chunk_type)) {
num_chunks++;
}
if (abort_flag)
@@ -2441,7 +2625,7 @@ sctp_process_data(struct mbuf **mm, int iphlen, int *offset, int length,
}
} else {
/* not a data chunk in the data region */
- switch (ch->ch.chunk_type) {
+ switch (ch->chunk_type) {
case SCTP_INITIATION:
case SCTP_INITIATION_ACK:
case SCTP_SELECTIVE_ACK:
@@ -2477,7 +2661,7 @@ sctp_process_data(struct mbuf **mm, int iphlen, int *offset, int length,
char msg[SCTP_DIAG_INFO_LEN];
snprintf(msg, sizeof(msg), "DATA chunk followed by chunk of type %2.2x",
- ch->ch.chunk_type);
+ ch->chunk_type);
op_err = sctp_generate_cause(SCTP_CAUSE_PROTOCOL_VIOLATION, msg);
sctp_abort_an_association(inp, stcb, op_err, SCTP_SO_NOT_LOCKED);
return (2);
@@ -2485,7 +2669,7 @@ sctp_process_data(struct mbuf **mm, int iphlen, int *offset, int length,
break;
default:
/* unknown chunk type, use bit rules */
- if (ch->ch.chunk_type & 0x40) {
+ if (ch->chunk_type & 0x40) {
/* Add a error report to the queue */
struct mbuf *op_err;
struct sctp_gen_error_cause *cause;
@@ -2505,7 +2689,7 @@ sctp_process_data(struct mbuf **mm, int iphlen, int *offset, int length,
}
}
}
- if ((ch->ch.chunk_type & 0x80) == 0) {
+ if ((ch->chunk_type & 0x80) == 0) {
/* discard the rest of this packet */
stop_proc = 1;
} /* else skip this bad chunk and
@@ -2519,8 +2703,8 @@ sctp_process_data(struct mbuf **mm, int iphlen, int *offset, int length,
stop_proc = 1;
continue;
}
- ch = (struct sctp_data_chunk *)sctp_m_getptr(m, *offset,
- sizeof(struct sctp_data_chunk), (uint8_t *) & chunk_buf);
+ ch = (struct sctp_chunkhdr *)sctp_m_getptr(m, *offset,
+ sizeof(struct sctp_chunkhdr), (uint8_t *) & chunk_buf);
if (ch == NULL) {
*offset = length;
stop_proc = 1;
@@ -2550,9 +2734,6 @@ sctp_process_data(struct mbuf **mm, int iphlen, int *offset, int length,
(void)SCTP_GETTIME_TIMEVAL(&stcb->asoc.time_last_rcvd);
}
/* now service all of the reassm queue if needed */
- if (!(TAILQ_EMPTY(&asoc->reasmqueue)))
- sctp_service_queues(stcb, asoc);
-
if (SCTP_GET_STATE(asoc) == SCTP_STATE_SHUTDOWN_SENT) {
/* Assure that we ack right away */
stcb->asoc.send_sack = 1;
@@ -3629,7 +3810,7 @@ sctp_express_handle_sack(struct sctp_tcb *stcb, uint32_t cumack,
snprintf(msg, sizeof(msg), "Cum ack %8.8x greater or equal than TSN %8.8x",
cumack, send_s);
op_err = sctp_generate_cause(SCTP_CAUSE_PROTOCOL_VIOLATION, msg);
- stcb->sctp_ep->last_abort_code = SCTP_FROM_SCTP_INDATA + SCTP_LOC_23;
+ stcb->sctp_ep->last_abort_code = SCTP_FROM_SCTP_INDATA + SCTP_LOC_21;
sctp_abort_an_association(stcb->sctp_ep, stcb, op_err, SCTP_SO_NOT_LOCKED);
return;
}
@@ -3832,7 +4013,7 @@ sctp_express_handle_sack(struct sctp_tcb *stcb, uint32_t cumack,
net->dest_state &= ~SCTP_ADDR_PF;
sctp_timer_stop(SCTP_TIMER_TYPE_HEARTBEAT,
stcb->sctp_ep, stcb, net,
- SCTP_FROM_SCTP_INDATA + SCTP_LOC_24);
+ SCTP_FROM_SCTP_INDATA + SCTP_LOC_22);
sctp_timer_start(SCTP_TIMER_TYPE_HEARTBEAT, stcb->sctp_ep, stcb, net);
asoc->cc_functions.sctp_cwnd_update_exit_pf(stcb, net);
/* Done with this net */
@@ -3918,7 +4099,7 @@ again:
} else if (SCTP_OS_TIMER_PENDING(&net->rxt_timer.timer)) {
sctp_timer_stop(SCTP_TIMER_TYPE_SEND, stcb->sctp_ep,
stcb, net,
- SCTP_FROM_SCTP_INDATA + SCTP_LOC_25);
+ SCTP_FROM_SCTP_INDATA + SCTP_LOC_23);
}
}
}
@@ -3992,7 +4173,7 @@ again:
*abort_now = 1;
/* XXX */
op_err = sctp_generate_cause(SCTP_CAUSE_USER_INITIATED_ABT, "");
- stcb->sctp_ep->last_abort_code = SCTP_FROM_SCTP_INDATA + SCTP_LOC_26;
+ stcb->sctp_ep->last_abort_code = SCTP_FROM_SCTP_INDATA + SCTP_LOC_24;
sctp_abort_an_association(stcb->sctp_ep, stcb, op_err, SCTP_SO_NOT_LOCKED);
return;
} else {
@@ -4206,7 +4387,7 @@ sctp_handle_sack(struct mbuf *m, int offset_seg, int offset_dup,
snprintf(msg, sizeof(msg), "Cum ack %8.8x greater or equal than TSN %8.8x",
cum_ack, send_s);
op_err = sctp_generate_cause(SCTP_CAUSE_PROTOCOL_VIOLATION, msg);
- stcb->sctp_ep->last_abort_code = SCTP_FROM_SCTP_INDATA + SCTP_LOC_27;
+ stcb->sctp_ep->last_abort_code = SCTP_FROM_SCTP_INDATA + SCTP_LOC_25;
sctp_abort_an_association(stcb->sctp_ep, stcb, op_err, SCTP_SO_NOT_LOCKED);
return;
}
@@ -4238,7 +4419,7 @@ sctp_handle_sack(struct mbuf *m, int offset_seg, int offset_dup,
/* stop any timers */
TAILQ_FOREACH(net, &asoc->nets, sctp_next) {
sctp_timer_stop(SCTP_TIMER_TYPE_SEND, stcb->sctp_ep,
- stcb, net, SCTP_FROM_SCTP_INDATA + SCTP_LOC_28);
+ stcb, net, SCTP_FROM_SCTP_INDATA + SCTP_LOC_26);
net->partial_bytes_acked = 0;
net->flight_size = 0;
}
@@ -4443,14 +4624,14 @@ sctp_handle_sack(struct mbuf *m, int offset_seg, int offset_dup,
if (net->new_pseudo_cumack)
sctp_timer_stop(SCTP_TIMER_TYPE_SEND, stcb->sctp_ep,
stcb, net,
- SCTP_FROM_SCTP_INDATA + SCTP_LOC_29);
+ SCTP_FROM_SCTP_INDATA + SCTP_LOC_27);
}
} else {
if (accum_moved) {
TAILQ_FOREACH(net, &asoc->nets, sctp_next) {
sctp_timer_stop(SCTP_TIMER_TYPE_SEND, stcb->sctp_ep,
- stcb, net, SCTP_FROM_SCTP_INDATA + SCTP_LOC_30);
+ stcb, net, SCTP_FROM_SCTP_INDATA + SCTP_LOC_28);
}
}
}
@@ -4630,7 +4811,7 @@ sctp_handle_sack(struct mbuf *m, int offset_seg, int offset_dup,
net->dest_state &= ~SCTP_ADDR_PF;
sctp_timer_stop(SCTP_TIMER_TYPE_HEARTBEAT,
stcb->sctp_ep, stcb, net,
- SCTP_FROM_SCTP_INDATA + SCTP_LOC_31);
+ SCTP_FROM_SCTP_INDATA + SCTP_LOC_29);
sctp_timer_start(SCTP_TIMER_TYPE_HEARTBEAT, stcb->sctp_ep, stcb, net);
asoc->cc_functions.sctp_cwnd_update_exit_pf(stcb, net);
/* Done with this net */
@@ -4654,7 +4835,7 @@ sctp_handle_sack(struct mbuf *m, int offset_seg, int offset_dup,
/* stop all timers */
sctp_timer_stop(SCTP_TIMER_TYPE_SEND, stcb->sctp_ep,
stcb, net,
- SCTP_FROM_SCTP_INDATA + SCTP_LOC_32);
+ SCTP_FROM_SCTP_INDATA + SCTP_LOC_30);
net->flight_size = 0;
net->partial_bytes_acked = 0;
}
@@ -4710,7 +4891,7 @@ sctp_handle_sack(struct mbuf *m, int offset_seg, int offset_dup,
*abort_now = 1;
/* XXX */
op_err = sctp_generate_cause(SCTP_CAUSE_USER_INITIATED_ABT, "");
- stcb->sctp_ep->last_abort_code = SCTP_FROM_SCTP_INDATA + SCTP_LOC_33;
+ stcb->sctp_ep->last_abort_code = SCTP_FROM_SCTP_INDATA + SCTP_LOC_31;
sctp_abort_an_association(stcb->sctp_ep, stcb, op_err, SCTP_SO_NOT_LOCKED);
return;
} else {
@@ -4862,7 +5043,7 @@ again:
} else if (SCTP_OS_TIMER_PENDING(&net->rxt_timer.timer)) {
sctp_timer_stop(SCTP_TIMER_TYPE_SEND, stcb->sctp_ep,
stcb, net,
- SCTP_FROM_SCTP_INDATA + SCTP_LOC_34);
+ SCTP_FROM_SCTP_INDATA + SCTP_LOC_32);
}
}
}
@@ -4963,130 +5144,175 @@ sctp_kick_prsctp_reorder_queue(struct sctp_tcb *stcb,
{
struct sctp_queued_to_read *ctl, *nctl;
struct sctp_association *asoc;
- uint16_t tt;
+ uint32_t tt;
+ int need_reasm_check = 0, old;
asoc = &stcb->asoc;
tt = strmin->last_sequence_delivered;
+ if (asoc->idata_supported) {
+ old = 0;
+ } else {
+ old = 1;
+ }
/*
* First deliver anything prior to and including the stream no that
- * came in
+ * came in.
*/
- TAILQ_FOREACH_SAFE(ctl, &strmin->inqueue, next, nctl) {
- if (SCTP_SSN_GE(tt, ctl->sinfo_ssn)) {
+ TAILQ_FOREACH_SAFE(ctl, &strmin->inqueue, next_instrm, nctl) {
+ if (SCTP_MSGID_GE(old, tt, ctl->sinfo_ssn)) {
/* this is deliverable now */
- TAILQ_REMOVE(&strmin->inqueue, ctl, next);
- /* subtract pending on streams */
- asoc->size_on_all_streams -= ctl->length;
- sctp_ucount_decr(asoc->cnt_on_all_streams);
- /* deliver it to at least the delivery-q */
- if (stcb->sctp_socket) {
- sctp_mark_non_revokable(asoc, ctl->sinfo_tsn);
- sctp_add_to_readq(stcb->sctp_ep, stcb,
- ctl,
- &stcb->sctp_socket->so_rcv, 1, SCTP_READ_LOCK_HELD, SCTP_SO_NOT_LOCKED);
+ if (((ctl->sinfo_flags >> 8) & SCTP_DATA_NOT_FRAG) == SCTP_DATA_NOT_FRAG) {
+ if (ctl->on_strm_q) {
+ if (ctl->on_strm_q == SCTP_ON_ORDERED) {
+ TAILQ_REMOVE(&strmin->inqueue, ctl, next_instrm);
+ } else if (ctl->on_strm_q == SCTP_ON_UNORDERED) {
+ TAILQ_REMOVE(&strmin->uno_inqueue, ctl, next_instrm);
+ } else {
+ panic("strmin:%p ctl:%p unknown %d",
+ strmin, ctl, ctl->on_strm_q);
+ }
+ ctl->on_strm_q = 0;
+ }
+ /* subtract pending on streams */
+ asoc->size_on_all_streams -= ctl->length;
+ sctp_ucount_decr(asoc->cnt_on_all_streams);
+ /* deliver it to at least the delivery-q */
+ if (stcb->sctp_socket) {
+ sctp_mark_non_revokable(asoc, ctl->sinfo_tsn);
+ sctp_add_to_readq(stcb->sctp_ep, stcb,
+ ctl,
+ &stcb->sctp_socket->so_rcv,
+ 1, SCTP_READ_LOCK_HELD,
+ SCTP_SO_NOT_LOCKED);
+ }
+ } else {
+ /* Its a fragmented message */
+ if (ctl->first_frag_seen) {
+ /*
+ * Make it so this is next to
+ * deliver, we restore later
+ */
+ strmin->last_sequence_delivered = ctl->sinfo_ssn - 1;
+ need_reasm_check = 1;
+ break;
+ }
}
} else {
/* no more delivery now. */
break;
}
}
+ if (need_reasm_check) {
+ int ret;
+
+ ret = sctp_deliver_reasm_check(stcb, &stcb->asoc, strmin);
+ if (SCTP_MSGID_GT(old, tt, strmin->last_sequence_delivered)) {
+ /* Restore the next to deliver unless we are ahead */
+ strmin->last_sequence_delivered = tt;
+ }
+ if (ret == 0) {
+ /* Left the front Partial one on */
+ return;
+ }
+ need_reasm_check = 0;
+ }
/*
* now we must deliver things in queue the normal way if any are
* now ready.
*/
tt = strmin->last_sequence_delivered + 1;
- TAILQ_FOREACH_SAFE(ctl, &strmin->inqueue, next, nctl) {
+ TAILQ_FOREACH_SAFE(ctl, &strmin->inqueue, next_instrm, nctl) {
if (tt == ctl->sinfo_ssn) {
- /* this is deliverable now */
- TAILQ_REMOVE(&strmin->inqueue, ctl, next);
- /* subtract pending on streams */
- asoc->size_on_all_streams -= ctl->length;
- sctp_ucount_decr(asoc->cnt_on_all_streams);
- /* deliver it to at least the delivery-q */
- strmin->last_sequence_delivered = ctl->sinfo_ssn;
- if (stcb->sctp_socket) {
- sctp_mark_non_revokable(asoc, ctl->sinfo_tsn);
- sctp_add_to_readq(stcb->sctp_ep, stcb,
- ctl,
- &stcb->sctp_socket->so_rcv, 1, SCTP_READ_LOCK_HELD, SCTP_SO_NOT_LOCKED);
+ if (((ctl->sinfo_flags >> 8) & SCTP_DATA_NOT_FRAG) == SCTP_DATA_NOT_FRAG) {
+ /* this is deliverable now */
+ if (ctl->on_strm_q) {
+ if (ctl->on_strm_q == SCTP_ON_ORDERED) {
+ TAILQ_REMOVE(&strmin->inqueue, ctl, next_instrm);
+ } else if (ctl->on_strm_q == SCTP_ON_UNORDERED) {
+ TAILQ_REMOVE(&strmin->uno_inqueue, ctl, next_instrm);
+ } else {
+ panic("strmin:%p ctl:%p unknown %d",
+ strmin, ctl, ctl->on_strm_q);
+ }
+ ctl->on_strm_q = 0;
+ }
+ /* subtract pending on streams */
+ asoc->size_on_all_streams -= ctl->length;
+ sctp_ucount_decr(asoc->cnt_on_all_streams);
+ /* deliver it to at least the delivery-q */
+ strmin->last_sequence_delivered = ctl->sinfo_ssn;
+ if (stcb->sctp_socket) {
+ sctp_mark_non_revokable(asoc, ctl->sinfo_tsn);
+ sctp_add_to_readq(stcb->sctp_ep, stcb,
+ ctl,
+ &stcb->sctp_socket->so_rcv, 1,
+ SCTP_READ_LOCK_HELD, SCTP_SO_NOT_LOCKED);
+ }
+ tt = strmin->last_sequence_delivered + 1;
+ } else {
+ /* Its a fragmented message */
+ if (ctl->first_frag_seen) {
+ /*
+ * Make it so this is next to
+ * deliver
+ */
+ strmin->last_sequence_delivered = ctl->sinfo_ssn - 1;
+ need_reasm_check = 1;
+ break;
+ }
}
- tt = strmin->last_sequence_delivered + 1;
} else {
break;
}
}
+ if (need_reasm_check) {
+ (void)sctp_deliver_reasm_check(stcb, &stcb->asoc, strmin);
+ }
}
static void
sctp_flush_reassm_for_str_seq(struct sctp_tcb *stcb,
struct sctp_association *asoc,
- uint16_t stream, uint16_t seq)
+ uint16_t stream, uint32_t seq)
{
+ struct sctp_queued_to_read *control;
+ struct sctp_stream_in *strm;
struct sctp_tmit_chunk *chk, *nchk;
- /* For each one on here see if we need to toss it */
/*
- * For now large messages held on the reasmqueue that are complete
+ * For now large messages held on the stream reasm that are complete
* will be tossed too. We could in theory do more work to spin
* through and stop after dumping one msg aka seeing the start of a
* new msg at the head, and call the delivery function... to see if
* it can be delivered... But for now we just dump everything on the
* queue.
*/
- TAILQ_FOREACH_SAFE(chk, &asoc->reasmqueue, sctp_next, nchk) {
- /*
- * Do not toss it if on a different stream or marked for
- * unordered delivery in which case the stream sequence
- * number has no meaning.
- */
- if ((chk->rec.data.stream_number != stream) ||
- ((chk->rec.data.rcv_flags & SCTP_DATA_UNORDERED) == SCTP_DATA_UNORDERED)) {
- continue;
+ strm = &asoc->strmin[stream];
+ control = find_reasm_entry(strm, (uint32_t) seq, 0, 0);
+ if (control == NULL) {
+ /* Not found */
+ return;
+ }
+ TAILQ_FOREACH_SAFE(chk, &control->reasm, sctp_next, nchk) {
+ /* Purge hanging chunks */
+ TAILQ_REMOVE(&control->reasm, chk, sctp_next);
+ asoc->size_on_reasm_queue -= chk->send_size;
+ sctp_ucount_decr(asoc->cnt_on_reasm_queue);
+ if (chk->data) {
+ sctp_m_freem(chk->data);
+ chk->data = NULL;
}
- if (chk->rec.data.stream_seq == seq) {
- /* It needs to be tossed */
- TAILQ_REMOVE(&asoc->reasmqueue, chk, sctp_next);
- if (SCTP_TSN_GT(chk->rec.data.TSN_seq, asoc->tsn_last_delivered)) {
- asoc->tsn_last_delivered = chk->rec.data.TSN_seq;
- asoc->str_of_pdapi = chk->rec.data.stream_number;
- asoc->ssn_of_pdapi = chk->rec.data.stream_seq;
- asoc->fragment_flags = chk->rec.data.rcv_flags;
- }
- asoc->size_on_reasm_queue -= chk->send_size;
- sctp_ucount_decr(asoc->cnt_on_reasm_queue);
-
- /* Clear up any stream problem */
- if ((chk->rec.data.rcv_flags & SCTP_DATA_UNORDERED) != SCTP_DATA_UNORDERED &&
- SCTP_SSN_GT(chk->rec.data.stream_seq, asoc->strmin[chk->rec.data.stream_number].last_sequence_delivered)) {
- /*
- * We must dump forward this streams
- * sequence number if the chunk is not
- * unordered that is being skipped. There is
- * a chance that if the peer does not
- * include the last fragment in its FWD-TSN
- * we WILL have a problem here since you
- * would have a partial chunk in queue that
- * may not be deliverable. Also if a Partial
- * delivery API as started the user may get
- * a partial chunk. The next read returning
- * a new chunk... really ugly but I see no
- * way around it! Maybe a notify??
- */
- asoc->strmin[chk->rec.data.stream_number].last_sequence_delivered = chk->rec.data.stream_seq;
- }
- if (chk->data) {
- sctp_m_freem(chk->data);
- chk->data = NULL;
- }
- sctp_free_a_chunk(stcb, chk, SCTP_SO_NOT_LOCKED);
- } else if (SCTP_SSN_GT(chk->rec.data.stream_seq, seq)) {
- /*
- * If the stream_seq is > than the purging one, we
- * are done
- */
- break;
+ sctp_free_a_chunk(stcb, chk, SCTP_SO_NOT_LOCKED);
+ }
+ TAILQ_REMOVE(&strm->inqueue, control, next_instrm);
+ if (control->on_read_q == 0) {
+ sctp_free_remote_addr(control->whoFrom);
+ if (control->data) {
+ sctp_m_freem(control->data);
+ control->data = NULL;
}
+ sctp_free_a_readq(stcb, control);
}
}
@@ -5113,7 +5339,6 @@ sctp_handle_forward_tsn(struct sctp_tcb *stcb,
unsigned int i, fwd_sz, m_size;
uint32_t str_seq;
struct sctp_stream_in *strm;
- struct sctp_tmit_chunk *chk, *nchk;
struct sctp_queued_to_read *ctl, *sv;
asoc = &stcb->asoc;
@@ -5152,7 +5377,7 @@ sctp_handle_forward_tsn(struct sctp_tcb *stcb,
"New cum ack %8.8x too high, highest TSN %8.8x",
new_cum_tsn, asoc->highest_tsn_inside_map);
op_err = sctp_generate_cause(SCTP_CAUSE_PROTOCOL_VIOLATION, msg);
- stcb->sctp_ep->last_abort_code = SCTP_FROM_SCTP_INDATA + SCTP_LOC_35;
+ stcb->sctp_ep->last_abort_code = SCTP_FROM_SCTP_INDATA + SCTP_LOC_33;
sctp_abort_an_association(stcb->sctp_ep, stcb, op_err, SCTP_SO_NOT_LOCKED);
return;
}
@@ -5183,67 +5408,9 @@ sctp_handle_forward_tsn(struct sctp_tcb *stcb,
/*************************************************************/
/* 2. Clear up re-assembly queue */
/*************************************************************/
- /*
- * First service it if pd-api is up, just in case we can progress it
- * forward
- */
- if (asoc->fragmented_delivery_inprogress) {
- sctp_service_reassembly(stcb, asoc);
- }
- /* For each one on here see if we need to toss it */
- /*
- * For now large messages held on the reasmqueue that are complete
- * will be tossed too. We could in theory do more work to spin
- * through and stop after dumping one msg aka seeing the start of a
- * new msg at the head, and call the delivery function... to see if
- * it can be delivered... But for now we just dump everything on the
- * queue.
- */
- TAILQ_FOREACH_SAFE(chk, &asoc->reasmqueue, sctp_next, nchk) {
- if (SCTP_TSN_GE(new_cum_tsn, chk->rec.data.TSN_seq)) {
- /* It needs to be tossed */
- TAILQ_REMOVE(&asoc->reasmqueue, chk, sctp_next);
- if (SCTP_TSN_GT(chk->rec.data.TSN_seq, asoc->tsn_last_delivered)) {
- asoc->tsn_last_delivered = chk->rec.data.TSN_seq;
- asoc->str_of_pdapi = chk->rec.data.stream_number;
- asoc->ssn_of_pdapi = chk->rec.data.stream_seq;
- asoc->fragment_flags = chk->rec.data.rcv_flags;
- }
- asoc->size_on_reasm_queue -= chk->send_size;
- sctp_ucount_decr(asoc->cnt_on_reasm_queue);
-
- /* Clear up any stream problem */
- if ((chk->rec.data.rcv_flags & SCTP_DATA_UNORDERED) != SCTP_DATA_UNORDERED &&
- SCTP_SSN_GT(chk->rec.data.stream_seq, asoc->strmin[chk->rec.data.stream_number].last_sequence_delivered)) {
- /*
- * We must dump forward this streams
- * sequence number if the chunk is not
- * unordered that is being skipped. There is
- * a chance that if the peer does not
- * include the last fragment in its FWD-TSN
- * we WILL have a problem here since you
- * would have a partial chunk in queue that
- * may not be deliverable. Also if a Partial
- * delivery API as started the user may get
- * a partial chunk. The next read returning
- * a new chunk... really ugly but I see no
- * way around it! Maybe a notify??
- */
- asoc->strmin[chk->rec.data.stream_number].last_sequence_delivered = chk->rec.data.stream_seq;
- }
- if (chk->data) {
- sctp_m_freem(chk->data);
- chk->data = NULL;
- }
- sctp_free_a_chunk(stcb, chk, SCTP_SO_NOT_LOCKED);
- } else {
- /*
- * Ok we have gone beyond the end of the fwd-tsn's
- * mark.
- */
- break;
- }
- }
+
+ /* This is now done as part of clearing up the stream/seq */
+
/*******************************************************/
/* 3. Update the PR-stream re-ordering queues and fix */
/* delivery issues as needed. */
@@ -5252,27 +5419,45 @@ sctp_handle_forward_tsn(struct sctp_tcb *stcb,
if (m && fwd_sz) {
/* New method. */
unsigned int num_str;
+ uint32_t sequence;
+ uint16_t stream;
+ int old;
struct sctp_strseq *stseq, strseqbuf;
+ struct sctp_strseq_mid *stseq_m, strseqbuf_m;
offset += sizeof(*fwd);
SCTP_INP_READ_LOCK(stcb->sctp_ep);
- num_str = fwd_sz / sizeof(struct sctp_strseq);
+ if (asoc->idata_supported) {
+ num_str = fwd_sz / sizeof(struct sctp_strseq_mid);
+ old = 0;
+ } else {
+ num_str = fwd_sz / sizeof(struct sctp_strseq);
+ old = 1;
+ }
for (i = 0; i < num_str; i++) {
- uint16_t st;
-
- stseq = (struct sctp_strseq *)sctp_m_getptr(m, offset,
- sizeof(struct sctp_strseq),
- (uint8_t *) & strseqbuf);
- offset += sizeof(struct sctp_strseq);
- if (stseq == NULL) {
- break;
+ if (asoc->idata_supported) {
+ stseq_m = (struct sctp_strseq_mid *)sctp_m_getptr(m, offset,
+ sizeof(struct sctp_strseq_mid),
+ (uint8_t *) & strseqbuf_m);
+ offset += sizeof(struct sctp_strseq_mid);
+ if (stseq_m == NULL) {
+ break;
+ }
+ stream = ntohs(stseq_m->stream);
+ sequence = ntohl(stseq_m->msg_id);
+ } else {
+ stseq = (struct sctp_strseq *)sctp_m_getptr(m, offset,
+ sizeof(struct sctp_strseq),
+ (uint8_t *) & strseqbuf);
+ offset += sizeof(struct sctp_strseq);
+ if (stseq == NULL) {
+ break;
+ }
+ stream = ntohs(stseq->stream);
+ sequence = (uint32_t) ntohs(stseq->sequence);
}
/* Convert */
- st = ntohs(stseq->stream);
- stseq->stream = st;
- st = ntohs(stseq->sequence);
- stseq->sequence = st;
/* now process */
@@ -5281,12 +5466,12 @@ sctp_handle_forward_tsn(struct sctp_tcb *stcb,
* queue where its not all delivered. If we find it
* we transmute the read entry into a PDI_ABORTED.
*/
- if (stseq->stream >= asoc->streamincnt) {
+ if (stream >= asoc->streamincnt) {
/* screwed up streams, stop! */
break;
}
- if ((asoc->str_of_pdapi == stseq->stream) &&
- (asoc->ssn_of_pdapi == stseq->sequence)) {
+ if ((asoc->str_of_pdapi == stream) &&
+ (asoc->ssn_of_pdapi == sequence)) {
/*
* If this is the one we were partially
* delivering now then we no longer are.
@@ -5295,14 +5480,24 @@ sctp_handle_forward_tsn(struct sctp_tcb *stcb,
*/
asoc->fragmented_delivery_inprogress = 0;
}
- sctp_flush_reassm_for_str_seq(stcb, asoc, stseq->stream, stseq->sequence);
+ strm = &asoc->strmin[stream];
+ sctp_flush_reassm_for_str_seq(stcb, asoc, stream, sequence);
TAILQ_FOREACH(ctl, &stcb->sctp_ep->read_queue, next) {
- if ((ctl->sinfo_stream == stseq->stream) &&
- (ctl->sinfo_ssn == stseq->sequence)) {
- str_seq = (stseq->stream << 16) | stseq->sequence;
- ctl->end_added = 1;
+ if ((ctl->sinfo_stream == stream) &&
+ (ctl->sinfo_ssn == sequence)) {
+ str_seq = (stream << 16) | (0x0000ffff & sequence);
ctl->pdapi_aborted = 1;
sv = stcb->asoc.control_pdapi;
+ ctl->end_added = 1;
+ if (ctl->on_strm_q == SCTP_ON_ORDERED) {
+ TAILQ_REMOVE(&strm->inqueue, ctl, next_instrm);
+ } else if (ctl->on_strm_q == SCTP_ON_UNORDERED) {
+ TAILQ_REMOVE(&strm->uno_inqueue, ctl, next_instrm);
+ } else if (ctl->on_strm_q) {
+ panic("strm:%p ctl:%p unknown %d",
+ strm, ctl, ctl->on_strm_q);
+ }
+ ctl->on_strm_q = 0;
stcb->asoc.control_pdapi = ctl;
sctp_ulp_notify(SCTP_NOTIFY_PARTIAL_DELVIERY_INDICATION,
stcb,
@@ -5311,16 +5506,15 @@ sctp_handle_forward_tsn(struct sctp_tcb *stcb,
SCTP_SO_NOT_LOCKED);
stcb->asoc.control_pdapi = sv;
break;
- } else if ((ctl->sinfo_stream == stseq->stream) &&
- SCTP_SSN_GT(ctl->sinfo_ssn, stseq->sequence)) {
+ } else if ((ctl->sinfo_stream == stream) &&
+ SCTP_MSGID_GT(old, ctl->sinfo_ssn, sequence)) {
/* We are past our victim SSN */
break;
}
}
- strm = &asoc->strmin[stseq->stream];
- if (SCTP_SSN_GT(stseq->sequence, strm->last_sequence_delivered)) {
+ if (SCTP_MSGID_GT(old, sequence, strm->last_sequence_delivered)) {
/* Update the sequence number */
- strm->last_sequence_delivered = stseq->sequence;
+ strm->last_sequence_delivered = sequence;
}
/* now kick the stream the new way */
/* sa_ignore NO_NULL_CHK */
@@ -5332,10 +5526,4 @@ sctp_handle_forward_tsn(struct sctp_tcb *stcb,
* Now slide thing forward.
*/
sctp_slide_mapping_arrays(stcb);
-
- if (!TAILQ_EMPTY(&asoc->reasmqueue)) {
- /* now lets kick out and check for more fragmented delivery */
- /* sa_ignore NO_NULL_CHK */
- sctp_deliver_reasm_check(stcb, &stcb->asoc);
- }
}
diff --git a/sys/netinet/sctp_indata.h b/sys/netinet/sctp_indata.h
index 94cd49c..162ca90 100644
--- a/sys/netinet/sctp_indata.h
+++ b/sys/netinet/sctp_indata.h
@@ -43,35 +43,31 @@ sctp_build_readq_entry(struct sctp_tcb *stcb,
struct sctp_nets *net,
uint32_t tsn, uint32_t ppid,
uint32_t context, uint16_t stream_no,
- uint16_t stream_seq, uint8_t flags,
+ uint32_t stream_seq, uint8_t flags,
struct mbuf *dm);
-#define sctp_build_readq_entry_mac(_ctl, in_it, context, net, tsn, ppid, stream_no, stream_seq, flags, dm) do { \
+#define sctp_build_readq_entry_mac(_ctl, in_it, context, net, tsn, ppid, stream_no, stream_seq, flags, dm, tfsn, msgid) do { \
if (_ctl) { \
atomic_add_int(&((net)->ref_count), 1); \
+ memset(_ctl, 0, sizeof(struct sctp_queued_to_read)); \
(_ctl)->sinfo_stream = stream_no; \
(_ctl)->sinfo_ssn = stream_seq; \
+ TAILQ_INIT(&_ctl->reasm); \
+ (_ctl)->top_fsn = tfsn; \
+ (_ctl)->msg_id = msgid; \
(_ctl)->sinfo_flags = (flags << 8); \
(_ctl)->sinfo_ppid = ppid; \
(_ctl)->sinfo_context = context; \
- (_ctl)->sinfo_timetolive = 0; \
+ (_ctl)->fsn_included = 0xffffffff; \
+ (_ctl)->top_fsn = 0xffffffff; \
(_ctl)->sinfo_tsn = tsn; \
(_ctl)->sinfo_cumtsn = tsn; \
(_ctl)->sinfo_assoc_id = sctp_get_associd((in_it)); \
- (_ctl)->length = 0; \
- (_ctl)->held_length = 0; \
(_ctl)->whoFrom = net; \
(_ctl)->data = dm; \
- (_ctl)->tail_mbuf = NULL; \
- (_ctl)->aux_data = NULL; \
(_ctl)->stcb = (in_it); \
(_ctl)->port_from = (in_it)->rport; \
- (_ctl)->spec_flags = 0; \
- (_ctl)->do_not_ref_stcb = 0; \
- (_ctl)->end_added = 0; \
- (_ctl)->pdapi_aborted = 0; \
- (_ctl)->some_taken = 0; \
} \
} while (0)
diff --git a/sys/netinet/sctp_input.c b/sys/netinet/sctp_input.c
index c555be2..9e4cbd8 100644
--- a/sys/netinet/sctp_input.c
+++ b/sys/netinet/sctp_input.c
@@ -386,17 +386,9 @@ sctp_process_init(struct sctp_init_chunk *cp, struct sctp_tcb *stcb)
if (asoc->strmin != NULL) {
/* Free the old ones */
- struct sctp_queued_to_read *ctl, *nctl;
-
for (i = 0; i < asoc->streamincnt; i++) {
- TAILQ_FOREACH_SAFE(ctl, &asoc->strmin[i].inqueue, next, nctl) {
- TAILQ_REMOVE(&asoc->strmin[i].inqueue, ctl, next);
- sctp_free_remote_addr(ctl->whoFrom);
- ctl->whoFrom = NULL;
- sctp_m_freem(ctl->data);
- ctl->data = NULL;
- sctp_free_a_readq(stcb, ctl);
- }
+ sctp_clean_up_stream(stcb, &asoc->strmin[i].inqueue);
+ sctp_clean_up_stream(stcb, &asoc->strmin[i].uno_inqueue);
}
SCTP_FREE(asoc->strmin, SCTP_M_STRMI);
}
@@ -414,8 +406,10 @@ sctp_process_init(struct sctp_init_chunk *cp, struct sctp_tcb *stcb)
}
for (i = 0; i < asoc->streamincnt; i++) {
asoc->strmin[i].stream_no = i;
- asoc->strmin[i].last_sequence_delivered = 0xffff;
+ asoc->strmin[i].last_sequence_delivered = 0xffffffff;
TAILQ_INIT(&asoc->strmin[i].inqueue);
+ TAILQ_INIT(&asoc->strmin[i].uno_inqueue);
+ asoc->strmin[i].pd_api_started = 0;
asoc->strmin[i].delivery_started = 0;
}
/*
@@ -894,6 +888,29 @@ sctp_handle_shutdown(struct sctp_shutdown_chunk *cp,
* With a normal shutdown we assume the end of last record.
*/
SCTP_INP_READ_LOCK(stcb->sctp_ep);
+ if (asoc->control_pdapi->on_strm_q) {
+ struct sctp_stream_in *strm;
+
+ strm = &asoc->strmin[asoc->control_pdapi->sinfo_stream];
+ if (asoc->control_pdapi->on_strm_q == SCTP_ON_UNORDERED) {
+ /* Unordered */
+ TAILQ_REMOVE(&strm->uno_inqueue, asoc->control_pdapi, next_instrm);
+ asoc->control_pdapi->on_strm_q = 0;
+ } else if (asoc->control_pdapi->on_strm_q == SCTP_ON_ORDERED) {
+ /* Ordered */
+ TAILQ_REMOVE(&strm->inqueue, asoc->control_pdapi, next_instrm);
+ asoc->control_pdapi->on_strm_q = 0;
+ } else {
+ panic("Unknown state on ctrl:%p on_strm_q:%d",
+ asoc->control_pdapi,
+ asoc->control_pdapi->on_strm_q);
+ }
+ }
+ printf("%s:%d End added to ctl:%p (%d)\n",
+ __FUNCTION__,
+ __LINE__,
+ asoc->control_pdapi,
+ asoc->control_pdapi->on_strm_q);
asoc->control_pdapi->end_added = 1;
asoc->control_pdapi->pdapi_aborted = 1;
asoc->control_pdapi = NULL;
@@ -1009,6 +1026,11 @@ sctp_handle_shutdown_ack(struct sctp_shutdown_ack_chunk *cp SCTP_UNUSED,
* With a normal shutdown we assume the end of last record.
*/
SCTP_INP_READ_LOCK(stcb->sctp_ep);
+ printf("%s:%d End added to ctl:%p (%d)\n",
+ __FUNCTION__,
+ __LINE__,
+ asoc->control_pdapi,
+ asoc->control_pdapi->on_strm_q);
asoc->control_pdapi->end_added = 1;
asoc->control_pdapi->pdapi_aborted = 1;
asoc->control_pdapi = NULL;
@@ -1083,6 +1105,7 @@ sctp_process_unrecog_chunk(struct sctp_tcb *stcb, struct sctp_paramhdr *phdr,
case SCTP_ASCONF:
sctp_asconf_cleanup(stcb, net);
break;
+ case SCTP_IFORWARD_CUM_TSN:
case SCTP_FORWARD_CUM_TSN:
stcb->asoc.prsctp_supported = 0;
break;
@@ -3450,6 +3473,7 @@ process_chunk_drop(struct sctp_tcb *stcb, struct sctp_chunk_desc *desc,
/* resend last asconf ack */
sctp_send_asconf_ack(stcb);
break;
+ case SCTP_IFORWARD_CUM_TSN:
case SCTP_FORWARD_CUM_TSN:
send_forward_tsn(stcb, &stcb->asoc);
break;
@@ -3475,8 +3499,8 @@ sctp_reset_in_stream(struct sctp_tcb *stcb, uint32_t number_entries, uint16_t *
uint16_t temp;
/*
- * We set things to 0xffff since this is the last delivered sequence
- * and we will be sending in 0 after the reset.
+ * We set things to 0xffffffff since this is the last delivered
+ * sequence and we will be sending in 0 after the reset.
*/
if (number_entries) {
@@ -3485,12 +3509,12 @@ sctp_reset_in_stream(struct sctp_tcb *stcb, uint32_t number_entries, uint16_t *
if (temp >= stcb->asoc.streamincnt) {
continue;
}
- stcb->asoc.strmin[temp].last_sequence_delivered = 0xffff;
+ stcb->asoc.strmin[temp].last_sequence_delivered = 0xffffffff;
}
} else {
list = NULL;
for (i = 0; i < stcb->asoc.streamincnt; i++) {
- stcb->asoc.strmin[i].last_sequence_delivered = 0xffff;
+ stcb->asoc.strmin[i].last_sequence_delivered = 0xffffffff;
}
}
sctp_ulp_notify(SCTP_NOTIFY_STR_RESET_RECV, stcb, number_entries, (void *)list, SCTP_SO_NOT_LOCKED);
@@ -4031,20 +4055,28 @@ sctp_handle_str_reset_add_strm(struct sctp_tcb *stcb, struct sctp_tmit_chunk *ch
/* copy off the old data */
for (i = 0; i < stcb->asoc.streamincnt; i++) {
TAILQ_INIT(&stcb->asoc.strmin[i].inqueue);
+ TAILQ_INIT(&stcb->asoc.strmin[i].uno_inqueue);
stcb->asoc.strmin[i].stream_no = i;
stcb->asoc.strmin[i].last_sequence_delivered = oldstrm[i].last_sequence_delivered;
stcb->asoc.strmin[i].delivery_started = oldstrm[i].delivery_started;
+ stcb->asoc.strmin[i].pd_api_started = oldstrm[i].pd_api_started;
/* now anything on those queues? */
- TAILQ_FOREACH_SAFE(ctl, &oldstrm[i].inqueue, next, nctl) {
- TAILQ_REMOVE(&oldstrm[i].inqueue, ctl, next);
- TAILQ_INSERT_TAIL(&stcb->asoc.strmin[i].inqueue, ctl, next);
+ TAILQ_FOREACH_SAFE(ctl, &oldstrm[i].inqueue, next_instrm, nctl) {
+ TAILQ_REMOVE(&oldstrm[i].inqueue, ctl, next_instrm);
+ TAILQ_INSERT_TAIL(&stcb->asoc.strmin[i].inqueue, ctl, next_instrm);
+ }
+ TAILQ_FOREACH_SAFE(ctl, &oldstrm[i].uno_inqueue, next_instrm, nctl) {
+ TAILQ_REMOVE(&oldstrm[i].uno_inqueue, ctl, next_instrm);
+ TAILQ_INSERT_TAIL(&stcb->asoc.strmin[i].uno_inqueue, ctl, next_instrm);
}
}
/* Init the new streams */
for (i = stcb->asoc.streamincnt; i < num_stream; i++) {
TAILQ_INIT(&stcb->asoc.strmin[i].inqueue);
+ TAILQ_INIT(&stcb->asoc.strmin[i].uno_inqueue);
stcb->asoc.strmin[i].stream_no = i;
- stcb->asoc.strmin[i].last_sequence_delivered = 0xffff;
+ stcb->asoc.strmin[i].last_sequence_delivered = 0xffffffff;
+ stcb->asoc.strmin[i].pd_api_started = 0;
stcb->asoc.strmin[i].delivery_started = 0;
}
SCTP_FREE(oldstrm, SCTP_M_STRMI);
@@ -5441,6 +5473,7 @@ process_control_chunks:
}
break;
case SCTP_FORWARD_CUM_TSN:
+ case SCTP_IFORWARD_CUM_TSN:
SCTPDBG(SCTP_DEBUG_INPUT3, "SCTP_FWD-TSN\n");
if (chk_length < sizeof(struct sctp_forward_tsn_chunk)) {
/* Its not ours */
diff --git a/sys/netinet/sctp_output.c b/sys/netinet/sctp_output.c
index 8eda473..4e683a2 100644
--- a/sys/netinet/sctp_output.c
+++ b/sys/netinet/sctp_output.c
@@ -3326,10 +3326,11 @@ sctp_source_address_selection(struct sctp_inpcb *inp,
#endif
/**
- * Rules: - Find the route if needed, cache if I can. - Look at
- * interface address in route, Is it in the bound list. If so we
- * have the best source. - If not we must rotate amongst the
- * addresses.
+ * Rules:
+ * - Find the route if needed, cache if I can.
+ * - Look at interface address in route, Is it in the bound list. If so we
+ * have the best source.
+ * - If not we must rotate amongst the addresses.
*
* Cavets and issues
*
@@ -4796,6 +4797,9 @@ sctp_send_initiate(struct sctp_inpcb *inp, struct sctp_tcb *stcb, int so_locked
pr_supported = (struct sctp_supported_chunk_types_param *)(mtod(m, caddr_t)+chunk_len);
if (stcb->asoc.prsctp_supported == 1) {
pr_supported->chunk_types[num_ext++] = SCTP_FORWARD_CUM_TSN;
+ if (stcb->asoc.idata_supported) {
+ pr_supported->chunk_types[num_ext++] = SCTP_IFORWARD_CUM_TSN;
+ }
}
if (stcb->asoc.auth_supported == 1) {
pr_supported->chunk_types[num_ext++] = SCTP_AUTHENTICATION;
@@ -4807,6 +4811,9 @@ sctp_send_initiate(struct sctp_inpcb *inp, struct sctp_tcb *stcb, int so_locked
if (stcb->asoc.reconfig_supported == 1) {
pr_supported->chunk_types[num_ext++] = SCTP_STREAM_RESET;
}
+ if (stcb->asoc.idata_supported) {
+ pr_supported->chunk_types[num_ext++] = SCTP_IDATA;
+ }
if (stcb->asoc.nrsack_supported == 1) {
pr_supported->chunk_types[num_ext++] = SCTP_NR_SELECTIVE_ACK;
}
@@ -5951,6 +5958,10 @@ do_a_abort:
if (((asoc != NULL) && (asoc->prsctp_supported == 1)) ||
((asoc == NULL) && (inp->prsctp_supported == 1))) {
pr_supported->chunk_types[num_ext++] = SCTP_FORWARD_CUM_TSN;
+ if (((asoc != NULL) && (asoc->idata_supported == 1)) ||
+ ((asoc == NULL) && (inp->idata_supported == 1))) {
+ pr_supported->chunk_types[num_ext++] = SCTP_IFORWARD_CUM_TSN;
+ }
}
if (((asoc != NULL) && (asoc->auth_supported == 1)) ||
((asoc == NULL) && (inp->auth_supported == 1))) {
@@ -5965,6 +5976,10 @@ do_a_abort:
((asoc == NULL) && (inp->reconfig_supported == 1))) {
pr_supported->chunk_types[num_ext++] = SCTP_STREAM_RESET;
}
+ if (((asoc != NULL) && (asoc->idata_supported == 1)) ||
+ ((asoc == NULL) && (inp->idata_supported == 1))) {
+ pr_supported->chunk_types[num_ext++] = SCTP_IDATA;
+ }
if (((asoc != NULL) && (asoc->nrsack_supported == 1)) ||
((asoc == NULL) && (inp->nrsack_supported == 1))) {
pr_supported->chunk_types[num_ext++] = SCTP_NR_SELECTIVE_ACK;
@@ -6232,11 +6247,15 @@ sctp_get_frag_point(struct sctp_tcb *stcb,
* we use a larger frag point.
*/
if (stcb->sctp_ep->sctp_flags & SCTP_PCB_FLAGS_BOUND_V6) {
- ovh = SCTP_MED_OVERHEAD;
+ ovh = SCTP_MIN_OVERHEAD;
} else {
- ovh = SCTP_MED_V4_OVERHEAD;
+ ovh = SCTP_MIN_V4_OVERHEAD;
+ }
+ if (stcb->asoc.idata_supported) {
+ ovh += sizeof(struct sctp_idata_chunk);
+ } else {
+ ovh += sizeof(struct sctp_data_chunk);
}
-
if (stcb->asoc.sctp_frag_point > asoc->smallest_mtu)
siz = asoc->smallest_mtu - ovh;
else
@@ -6361,6 +6380,8 @@ sctp_msg_append(struct sctp_tcb *stcb,
sp->timetolive = srcv->sinfo_timetolive;
sp->ppid = srcv->sinfo_ppid;
sp->context = srcv->sinfo_context;
+ sp->fsn = 0;
+ sp->msg_id = atomic_fetchadd_int(&stcb->asoc.assoc_msg_id, 1);
if (sp->sinfo_flags & SCTP_ADDR_OVER) {
sp->net = net;
atomic_add_int(&sp->net->ref_count, 1);
@@ -7163,8 +7184,9 @@ sctp_move_to_outqueue(struct sctp_tcb *stcb,
struct sctp_association *asoc;
struct sctp_stream_queue_pending *sp;
struct sctp_tmit_chunk *chk;
- struct sctp_data_chunk *dchkh;
- uint32_t to_move, length;
+ struct sctp_data_chunk *dchkh = NULL;
+ struct sctp_idata_chunk *ndchkh = NULL;
+ uint32_t to_move, length, leading;
uint8_t rcv_flags = 0;
uint8_t some_taken;
uint8_t send_lock_up = 0;
@@ -7173,6 +7195,7 @@ sctp_move_to_outqueue(struct sctp_tcb *stcb,
asoc = &stcb->asoc;
one_more_time:
/* sa_ignore FREED_MEMORY */
+ *locked = 0;
sp = TAILQ_FIRST(&strq->outqueue);
if (sp == NULL) {
*locked = 0;
@@ -7184,7 +7207,9 @@ one_more_time:
if (sp) {
goto one_more_time;
}
- if (strq->last_msg_incomplete) {
+ if ((sctp_is_feature_on(stcb->sctp_ep, SCTP_PCB_FLAGS_EXPLICIT_EOR) == 0) &&
+ (stcb->asoc.idata_supported == 0) &&
+ (strq->last_msg_incomplete)) {
SCTP_PRINTF("Huh? Stream:%d lm_in_c=%d but queue is NULL\n",
strq->stream_no,
strq->last_msg_incomplete);
@@ -7248,7 +7273,8 @@ one_more_time:
* sender just finished this but still holds a
* reference
*/
- *locked = 1;
+ if (stcb->asoc.idata_supported == 0)
+ *locked = 1;
*giveup = 1;
to_move = 0;
goto out_of;
@@ -7257,7 +7283,8 @@ one_more_time:
/* is there some to get */
if (sp->length == 0) {
/* no */
- *locked = 1;
+ if (stcb->asoc.idata_supported == 0)
+ *locked = 1;
*giveup = 1;
to_move = 0;
goto out_of;
@@ -7280,7 +7307,8 @@ one_more_time:
}
sp->length = 0;
sp->some_taken = 1;
- *locked = 1;
+ if (stcb->asoc.idata_supported == 0)
+ *locked = 1;
*giveup = 1;
to_move = 0;
goto out_of;
@@ -7342,7 +7370,8 @@ re_look:
}
} else {
/* Nothing to take. */
- if (sp->some_taken) {
+ if ((sp->some_taken) &&
+ (stcb->asoc.idata_supported == 0)) {
*locked = 1;
}
*giveup = 1;
@@ -7461,7 +7490,12 @@ dont_do_it:
} else {
atomic_subtract_int(&sp->length, to_move);
}
- if (M_LEADINGSPACE(chk->data) < (int)sizeof(struct sctp_data_chunk)) {
+ if (stcb->asoc.idata_supported == 0) {
+ leading = (int)sizeof(struct sctp_data_chunk);
+ } else {
+ leading = (int)sizeof(struct sctp_idata_chunk);
+ }
+ if (M_LEADINGSPACE(chk->data) < leading) {
/* Not enough room for a chunk header, get some */
struct mbuf *m;
@@ -7502,7 +7536,11 @@ dont_do_it:
M_ALIGN(chk->data, 4);
}
}
- SCTP_BUF_PREPEND(chk->data, sizeof(struct sctp_data_chunk), M_NOWAIT);
+ if (stcb->asoc.idata_supported == 0) {
+ SCTP_BUF_PREPEND(chk->data, sizeof(struct sctp_data_chunk), M_NOWAIT);
+ } else {
+ SCTP_BUF_PREPEND(chk->data, sizeof(struct sctp_idata_chunk), M_NOWAIT);
+ }
if (chk->data == NULL) {
/* HELP, TSNH since we assured it would not above? */
#ifdef INVARIANTS
@@ -7515,8 +7553,13 @@ dont_do_it:
to_move = 0;
goto out_of;
}
- sctp_snd_sb_alloc(stcb, sizeof(struct sctp_data_chunk));
- chk->book_size = chk->send_size = (uint16_t) (to_move + sizeof(struct sctp_data_chunk));
+ if (stcb->asoc.idata_supported == 0) {
+ sctp_snd_sb_alloc(stcb, sizeof(struct sctp_data_chunk));
+ chk->book_size = chk->send_size = (uint16_t) (to_move + sizeof(struct sctp_data_chunk));
+ } else {
+ sctp_snd_sb_alloc(stcb, sizeof(struct sctp_idata_chunk));
+ chk->book_size = chk->send_size = (uint16_t) (to_move + sizeof(struct sctp_idata_chunk));
+ }
chk->book_size_scale = 0;
chk->sent = SCTP_DATAGRAM_UNSENT;
@@ -7555,7 +7598,11 @@ dont_do_it:
(uint32_t) ((chk->rec.data.stream_number << 16) | chk->rec.data.stream_seq),
chk->rec.data.TSN_seq);
}
- dchkh = mtod(chk->data, struct sctp_data_chunk *);
+ if (stcb->asoc.idata_supported == 0) {
+ dchkh = mtod(chk->data, struct sctp_data_chunk *);
+ } else {
+ ndchkh = mtod(chk->data, struct sctp_idata_chunk *);
+ }
/*
* Put the rest of the things in place now. Size was done earlier in
* previous loop prior to padding.
@@ -7577,14 +7624,29 @@ dont_do_it:
asoc->out_tsnlog[asoc->tsn_out_at].in_out = 2;
asoc->tsn_out_at++;
#endif
-
- dchkh->ch.chunk_type = SCTP_DATA;
- dchkh->ch.chunk_flags = chk->rec.data.rcv_flags;
- dchkh->dp.tsn = htonl(chk->rec.data.TSN_seq);
- dchkh->dp.stream_id = htons(strq->stream_no);
- dchkh->dp.stream_sequence = htons(chk->rec.data.stream_seq);
- dchkh->dp.protocol_id = chk->rec.data.payloadtype;
- dchkh->ch.chunk_length = htons(chk->send_size);
+ if (stcb->asoc.idata_supported == 0) {
+ dchkh->ch.chunk_type = SCTP_DATA;
+ dchkh->ch.chunk_flags = chk->rec.data.rcv_flags;
+ dchkh->dp.tsn = htonl(chk->rec.data.TSN_seq);
+ dchkh->dp.stream_id = htons((strq->stream_no & 0x0000ffff));
+ dchkh->dp.stream_sequence = htons(chk->rec.data.stream_seq);
+ dchkh->dp.protocol_id = chk->rec.data.payloadtype;
+ dchkh->ch.chunk_length = htons(chk->send_size);
+ } else {
+ ndchkh->ch.chunk_type = SCTP_IDATA;
+ ndchkh->ch.chunk_flags = chk->rec.data.rcv_flags;
+ ndchkh->dp.tsn = htonl(chk->rec.data.TSN_seq);
+ ndchkh->dp.stream_id = htons(strq->stream_no);
+ /* WHAT DO WE DO HERE??? */
+ ndchkh->dp.reserved = htons(0);
+ ndchkh->dp.msg_id = htonl(sp->msg_id);
+ if (sp->fsn == 0)
+ ndchkh->dp.protocol_id = chk->rec.data.payloadtype;
+ else
+ ndchkh->dp.fsn = htonl(sp->fsn);
+ sp->fsn++;
+ ndchkh->ch.chunk_length = htons(chk->send_size);
+ }
/* Now advance the chk->send_size by the actual pad needed. */
if (chk->send_size < SCTP_SIZE32(chk->book_size)) {
/* need a pad */
@@ -7640,7 +7702,8 @@ dont_do_it:
stcb->asoc.locked_on_sending = NULL;
} else {
/* more to go, we are locked */
- *locked = 1;
+ if (stcb->asoc.idata_supported == 0)
+ *locked = 1;
}
asoc->chunks_on_out_queue++;
strq->chunks_on_queues++;
@@ -7686,7 +7749,11 @@ sctp_fill_outqueue(struct sctp_tcb *stcb,
break;
}
/* Need an allowance for the data chunk header too */
- goal_mtu -= sizeof(struct sctp_data_chunk);
+ if (stcb->asoc.idata_supported == 0) {
+ goal_mtu -= sizeof(struct sctp_data_chunk);
+ } else {
+ goal_mtu -= sizeof(struct sctp_idata_chunk);
+ }
/* must make even word boundary */
goal_mtu &= 0xfffffffc;
@@ -7797,12 +7864,15 @@ sctp_med_chunk_output(struct sctp_inpcb *inp,
{
/**
* Ok this is the generic chunk service queue. we must do the
- * following: - Service the stream queue that is next, moving any
- * message (note I must get a complete message i.e. FIRST/MIDDLE and
- * LAST to the out queue in one pass) and assigning TSN's - Check to
- * see if the cwnd/rwnd allows any output, if so we go ahead and
- * fomulate and send the low level chunks. Making sure to combine
- * any control in the control chunk queue also.
+ * following:
+ * - Service the stream queue that is next, moving any
+ * message (note I must get a complete message i.e. FIRST/MIDDLE and
+ * LAST to the out queue in one pass) and assigning TSN's. This
+ * only applys though if the peer does not support NDATA. For NDATA
+ * chunks its ok to not send the entire message ;-)
+ * - Check to see if the cwnd/rwnd allows any output, if so we go ahead and
+ * fomulate and send the low level chunks. Making sure to combine
+ * any control in the control chunk queue also.
*/
struct sctp_nets *net, *start_at, *sack_goes_to = NULL, *old_start_at = NULL;
struct mbuf *outchain, *endoutchain;
@@ -10225,7 +10295,13 @@ send_forward_tsn(struct sctp_tcb *stcb,
struct sctp_tmit_chunk *chk;
struct sctp_forward_tsn_chunk *fwdtsn;
uint32_t advance_peer_ack_point;
+ int old;
+ if (asoc->idata_supported) {
+ old = 0;
+ } else {
+ old = 1;
+ }
SCTP_TCB_LOCK_ASSERT(stcb);
TAILQ_FOREACH(chk, &asoc->control_send_queue, sctp_next) {
if (chk->rec.chunk_id.id == SCTP_FORWARD_CUM_TSN) {
@@ -10247,6 +10323,11 @@ send_forward_tsn(struct sctp_tcb *stcb,
}
asoc->fwd_tsn_cnt++;
chk->copy_by_ref = 0;
+ /*
+ * We don't do the old thing here since this is used not for on-wire
+ * but to tell if we are sending a fwd-tsn by the stack during
+ * output. And if its a IFORWARD or a FORWARD it is a fwd-tsn.
+ */
chk->rec.chunk_id.id = SCTP_FORWARD_CUM_TSN;
chk->rec.chunk_id.can_take_data = 0;
chk->flags = 0;
@@ -10271,6 +10352,7 @@ sctp_fill_in_rest:
{
struct sctp_tmit_chunk *at, *tp1, *last;
struct sctp_strseq *strseq;
+ struct sctp_strseq_mid *strseq_m;
unsigned int cnt_of_space, i, ovh;
unsigned int space_needed;
unsigned int cnt_of_skipped = 0;
@@ -10287,9 +10369,13 @@ sctp_fill_in_rest:
}
cnt_of_skipped++;
}
- space_needed = (sizeof(struct sctp_forward_tsn_chunk) +
- (cnt_of_skipped * sizeof(struct sctp_strseq)));
-
+ if (old) {
+ space_needed = (sizeof(struct sctp_forward_tsn_chunk) +
+ (cnt_of_skipped * sizeof(struct sctp_strseq)));
+ } else {
+ space_needed = (sizeof(struct sctp_forward_tsn_chunk) +
+ (cnt_of_skipped * sizeof(struct sctp_strseq_mid)));
+ }
cnt_of_space = (unsigned int)M_TRAILINGSPACE(chk->data);
if (stcb->sctp_ep->sctp_flags & SCTP_PCB_FLAGS_BOUND_V6) {
@@ -10318,8 +10404,13 @@ sctp_fill_in_rest:
0xff, 0xff, cnt_of_space,
space_needed);
}
- cnt_of_skipped = cnt_of_space - sizeof(struct sctp_forward_tsn_chunk);
- cnt_of_skipped /= sizeof(struct sctp_strseq);
+ if (old) {
+ cnt_of_skipped = cnt_of_space - sizeof(struct sctp_forward_tsn_chunk);
+ cnt_of_skipped /= sizeof(struct sctp_strseq);
+ } else {
+ cnt_of_skipped = cnt_of_space - sizeof(struct sctp_forward_tsn_chunk);
+ cnt_of_skipped /= sizeof(struct sctp_strseq_mid);
+ }
/*-
* Go through and find the TSN that will be the one
* we report.
@@ -10346,15 +10437,24 @@ sctp_fill_in_rest:
*/
if (last)
advance_peer_ack_point = last->rec.data.TSN_seq;
- space_needed = sizeof(struct sctp_forward_tsn_chunk) +
- cnt_of_skipped * sizeof(struct sctp_strseq);
+ if (old) {
+ space_needed = sizeof(struct sctp_forward_tsn_chunk) +
+ cnt_of_skipped * sizeof(struct sctp_strseq);
+ } else {
+ space_needed = sizeof(struct sctp_forward_tsn_chunk) +
+ cnt_of_skipped * sizeof(struct sctp_strseq_mid);
+ }
}
chk->send_size = space_needed;
/* Setup the chunk */
fwdtsn = mtod(chk->data, struct sctp_forward_tsn_chunk *);
fwdtsn->ch.chunk_length = htons(chk->send_size);
fwdtsn->ch.chunk_flags = 0;
- fwdtsn->ch.chunk_type = SCTP_FORWARD_CUM_TSN;
+ if (old) {
+ fwdtsn->ch.chunk_type = SCTP_FORWARD_CUM_TSN;
+ } else {
+ fwdtsn->ch.chunk_type = SCTP_IFORWARD_CUM_TSN;
+ }
fwdtsn->new_cumulative_tsn = htonl(advance_peer_ack_point);
SCTP_BUF_LEN(chk->data) = chk->send_size;
fwdtsn++;
@@ -10362,7 +10462,11 @@ sctp_fill_in_rest:
* Move pointer to after the fwdtsn and transfer to the
* strseq pointer.
*/
- strseq = (struct sctp_strseq *)fwdtsn;
+ if (old) {
+ strseq = (struct sctp_strseq *)fwdtsn;
+ } else {
+ strseq_m = (struct sctp_strseq_mid *)fwdtsn;
+ }
/*-
* Now populate the strseq list. This is done blindly
* without pulling out duplicate stream info. This is
@@ -10389,9 +10493,16 @@ sctp_fill_in_rest:
if (at->rec.data.TSN_seq == advance_peer_ack_point) {
at->rec.data.fwd_tsn_cnt = 0;
}
- strseq->stream = ntohs(at->rec.data.stream_number);
- strseq->sequence = ntohs(at->rec.data.stream_seq);
- strseq++;
+ if (old) {
+ strseq->stream = ntohs(at->rec.data.stream_number);
+ strseq->sequence = ntohs(at->rec.data.stream_seq);
+ strseq++;
+ } else {
+ strseq_m->stream = ntohs(at->rec.data.stream_number);
+ strseq_m->reserved = ntohs(0);
+ strseq_m->msg_id = ntohl(at->rec.data.stream_seq);
+ strseq_m++;
+ }
at = tp1;
}
}
@@ -12312,6 +12423,8 @@ sctp_copy_it_in(struct sctp_tcb *stcb,
sp->timetolive = srcv->sinfo_timetolive;
sp->ppid = srcv->sinfo_ppid;
sp->context = srcv->sinfo_context;
+ sp->fsn = 0;
+ sp->msg_id = atomic_fetchadd_int(&stcb->asoc.assoc_msg_id, 1);
(void)SCTP_GETTIME_TIMEVAL(&sp->ts);
sp->stream = srcv->sinfo_stream;
@@ -13065,8 +13178,10 @@ skip_preblock:
* interrupt.
*/
strm->last_msg_incomplete = 1;
- asoc->stream_locked = 1;
- asoc->stream_locked_on = srcv->sinfo_stream;
+ if (stcb->asoc.idata_supported == 0) {
+ asoc->stream_locked = 1;
+ asoc->stream_locked_on = srcv->sinfo_stream;
+ }
sp->sender_all_done = 0;
}
sctp_snd_sb_alloc(stcb, sp->length);
@@ -13325,8 +13440,10 @@ skip_preblock:
if (sp) {
if (sp->msg_is_complete == 0) {
strm->last_msg_incomplete = 1;
- asoc->stream_locked = 1;
- asoc->stream_locked_on = srcv->sinfo_stream;
+ if (stcb->asoc.idata_supported == 0) {
+ asoc->stream_locked = 1;
+ asoc->stream_locked_on = srcv->sinfo_stream;
+ }
} else {
sp->sender_all_done = 1;
strm->last_msg_incomplete = 0;
diff --git a/sys/netinet/sctp_pcb.c b/sys/netinet/sctp_pcb.c
index 12aa145..2013fbc 100644
--- a/sys/netinet/sctp_pcb.c
+++ b/sys/netinet/sctp_pcb.c
@@ -2476,6 +2476,8 @@ sctp_inpcb_alloc(struct socket *so, uint32_t vrf_id)
inp->reconfig_supported = (uint8_t) SCTP_BASE_SYSCTL(sctp_reconfig_enable);
inp->nrsack_supported = (uint8_t) SCTP_BASE_SYSCTL(sctp_nrsack_enable);
inp->pktdrop_supported = (uint8_t) SCTP_BASE_SYSCTL(sctp_pktdrop_enable);
+ inp->idata_supported = 0;
+
inp->fibnum = so->so_fibnum;
/* init the small hash table we use to track asocid <-> tcb */
inp->sctp_asocidhash = SCTP_HASH_INIT(SCTP_STACK_VTAG_HASH_SIZE, &inp->hashasocidmark);
@@ -3660,8 +3662,7 @@ sctp_inpcb_free(struct sctp_inpcb *inp, int immediate, int from)
* no need to free the net count, since at this point all
* assoc's are gone.
*/
- SCTP_ZONE_FREE(SCTP_BASE_INFO(ipi_zone_readq), sq);
- SCTP_DECR_READQ_COUNT();
+ sctp_free_a_readq(NULL, sq);
}
/* Now the sctp_pcb things */
/*
@@ -4649,6 +4650,45 @@ sctp_add_vtag_to_timewait(uint32_t tag, uint32_t time, uint16_t lport, uint16_t
}
}
+void
+sctp_clean_up_stream(struct sctp_tcb *stcb, struct sctp_readhead *rh)
+{
+ struct sctp_tmit_chunk *chk, *nchk;
+ struct sctp_queued_to_read *ctl, *nctl;
+
+ TAILQ_FOREACH_SAFE(ctl, rh, next_instrm, nctl) {
+ TAILQ_REMOVE(rh, ctl, next_instrm);
+ ctl->on_strm_q = 0;
+ if (ctl->on_read_q == 0) {
+ sctp_free_remote_addr(ctl->whoFrom);
+ if (ctl->data) {
+ sctp_m_freem(ctl->data);
+ ctl->data = NULL;
+ }
+ }
+ /* Reassembly free? */
+ TAILQ_FOREACH_SAFE(chk, &ctl->reasm, sctp_next, nchk) {
+ TAILQ_REMOVE(&ctl->reasm, chk, sctp_next);
+ if (chk->data) {
+ sctp_m_freem(chk->data);
+ chk->data = NULL;
+ }
+ if (chk->holds_key_ref)
+ sctp_auth_key_release(stcb, chk->auth_keyid, SCTP_SO_LOCKED);
+ sctp_free_remote_addr(chk->whoTo);
+ SCTP_ZONE_FREE(SCTP_BASE_INFO(ipi_zone_chunk), chk);
+ SCTP_DECR_CHK_COUNT();
+ /* sa_ignore FREED_MEMORY */
+ }
+ /*
+ * We don't free the address here since all the net's were
+ * freed above.
+ */
+ if (ctl->on_read_q == 0) {
+ sctp_free_a_readq(stcb, ctl);
+ }
+ }
+}
/*-
@@ -4986,8 +5026,7 @@ sctp_free_assoc(struct sctp_inpcb *inp, struct sctp_tcb *stcb, int from_inpcbfre
sq->whoFrom = NULL;
sq->stcb = NULL;
/* Free the ctl entry */
- SCTP_ZONE_FREE(SCTP_BASE_INFO(ipi_zone_readq), sq);
- SCTP_DECR_READQ_COUNT();
+ sctp_free_a_readq(stcb, sq);
/* sa_ignore FREED_MEMORY */
}
TAILQ_FOREACH_SAFE(chk, &asoc->free_chunks, sctp_next, nchk) {
@@ -5100,20 +5139,6 @@ sctp_free_assoc(struct sctp_inpcb *inp, struct sctp_tcb *stcb, int from_inpcbfre
SCTP_DECR_CHK_COUNT();
/* sa_ignore FREED_MEMORY */
}
- TAILQ_FOREACH_SAFE(chk, &asoc->reasmqueue, sctp_next, nchk) {
- TAILQ_REMOVE(&asoc->reasmqueue, chk, sctp_next);
- if (chk->data) {
- sctp_m_freem(chk->data);
- chk->data = NULL;
- }
- if (chk->holds_key_ref)
- sctp_auth_key_release(stcb, chk->auth_keyid, SCTP_SO_LOCKED);
- sctp_free_remote_addr(chk->whoTo);
- SCTP_ZONE_FREE(SCTP_BASE_INFO(ipi_zone_chunk), chk);
- SCTP_DECR_CHK_COUNT();
- /* sa_ignore FREED_MEMORY */
- }
-
if (asoc->mapping_array) {
SCTP_FREE(asoc->mapping_array, SCTP_M_MAP);
asoc->mapping_array = NULL;
@@ -5129,23 +5154,9 @@ sctp_free_assoc(struct sctp_inpcb *inp, struct sctp_tcb *stcb, int from_inpcbfre
}
asoc->strm_realoutsize = asoc->streamoutcnt = 0;
if (asoc->strmin) {
- struct sctp_queued_to_read *ctl, *nctl;
-
for (i = 0; i < asoc->streamincnt; i++) {
- TAILQ_FOREACH_SAFE(ctl, &asoc->strmin[i].inqueue, next, nctl) {
- TAILQ_REMOVE(&asoc->strmin[i].inqueue, ctl, next);
- sctp_free_remote_addr(ctl->whoFrom);
- if (ctl->data) {
- sctp_m_freem(ctl->data);
- ctl->data = NULL;
- }
- /*
- * We don't free the address here since all
- * the net's were freed above.
- */
- SCTP_ZONE_FREE(SCTP_BASE_INFO(ipi_zone_readq), ctl);
- SCTP_DECR_READQ_COUNT();
- }
+ sctp_clean_up_stream(stcb, &asoc->strmin[i].inqueue);
+ sctp_clean_up_stream(stcb, &asoc->strmin[i].uno_inqueue);
}
SCTP_FREE(asoc->strmin, SCTP_M_STRMI);
asoc->strmin = NULL;
@@ -6094,6 +6105,7 @@ sctp_load_addresses_from_init(struct sctp_tcb *stcb, struct mbuf *m,
uint8_t peer_supports_reconfig;
uint8_t peer_supports_nrsack;
uint8_t peer_supports_pktdrop;
+ uint8_t peer_supports_idata;
#ifdef INET
struct sockaddr_in sin;
@@ -6122,6 +6134,7 @@ sctp_load_addresses_from_init(struct sctp_tcb *stcb, struct mbuf *m,
} else {
sa = src;
}
+ peer_supports_idata = 0;
peer_supports_ecn = 0;
peer_supports_prsctp = 0;
peer_supports_auth = 0;
@@ -6502,6 +6515,9 @@ sctp_load_addresses_from_init(struct sctp_tcb *stcb, struct mbuf *m,
case SCTP_AUTHENTICATION:
peer_supports_auth = 1;
break;
+ case SCTP_IDATA:
+ peer_supports_idata = 1;
+ break;
default:
/* one I have not learned yet */
break;
@@ -6660,6 +6676,10 @@ next_param:
(peer_supports_reconfig == 0)) {
stcb->asoc.reconfig_supported = 0;
}
+ if ((stcb->asoc.idata_supported == 1) &&
+ (peer_supports_idata == 0)) {
+ stcb->asoc.idata_supported = 0;
+ }
if ((stcb->asoc.nrsack_supported == 1) &&
(peer_supports_nrsack == 0)) {
stcb->asoc.nrsack_supported = 0;
@@ -6851,26 +6871,9 @@ sctp_drain_mbufs(struct sctp_tcb *stcb)
SCTP_STAT_INCR(sctps_protocol_drains_done);
cumulative_tsn_p1 = asoc->cumulative_tsn + 1;
cnt = 0;
- /* First look in the re-assembly queue */
- TAILQ_FOREACH_SAFE(chk, &asoc->reasmqueue, sctp_next, nchk) {
- if (SCTP_TSN_GT(chk->rec.data.TSN_seq, cumulative_tsn_p1)) {
- /* Yep it is above cum-ack */
- cnt++;
- SCTP_CALC_TSN_TO_GAP(gap, chk->rec.data.TSN_seq, asoc->mapping_array_base_tsn);
- asoc->size_on_reasm_queue = sctp_sbspace_sub(asoc->size_on_reasm_queue, chk->send_size);
- sctp_ucount_decr(asoc->cnt_on_reasm_queue);
- SCTP_UNSET_TSN_PRESENT(asoc->mapping_array, gap);
- TAILQ_REMOVE(&asoc->reasmqueue, chk, sctp_next);
- if (chk->data) {
- sctp_m_freem(chk->data);
- chk->data = NULL;
- }
- sctp_free_a_chunk(stcb, chk, SCTP_SO_NOT_LOCKED);
- }
- }
/* Ok that was fun, now we will drain all the inbound streams? */
for (strmat = 0; strmat < asoc->streamincnt; strmat++) {
- TAILQ_FOREACH_SAFE(ctl, &asoc->strmin[strmat].inqueue, next, nctl) {
+ TAILQ_FOREACH_SAFE(ctl, &asoc->strmin[strmat].inqueue, next_instrm, nctl) {
if (SCTP_TSN_GT(ctl->sinfo_tsn, cumulative_tsn_p1)) {
/* Yep it is above cum-ack */
cnt++;
@@ -6878,14 +6881,58 @@ sctp_drain_mbufs(struct sctp_tcb *stcb)
asoc->size_on_all_streams = sctp_sbspace_sub(asoc->size_on_all_streams, ctl->length);
sctp_ucount_decr(asoc->cnt_on_all_streams);
SCTP_UNSET_TSN_PRESENT(asoc->mapping_array, gap);
- TAILQ_REMOVE(&asoc->strmin[strmat].inqueue, ctl, next);
+ TAILQ_REMOVE(&asoc->strmin[strmat].inqueue, ctl, next_instrm);
if (ctl->data) {
sctp_m_freem(ctl->data);
ctl->data = NULL;
}
sctp_free_remote_addr(ctl->whoFrom);
- SCTP_ZONE_FREE(SCTP_BASE_INFO(ipi_zone_readq), ctl);
- SCTP_DECR_READQ_COUNT();
+ /* Now its reasm? */
+ TAILQ_FOREACH_SAFE(chk, &ctl->reasm, sctp_next, nchk) {
+ cnt++;
+ SCTP_CALC_TSN_TO_GAP(gap, chk->rec.data.TSN_seq, asoc->mapping_array_base_tsn);
+ asoc->size_on_reasm_queue = sctp_sbspace_sub(asoc->size_on_reasm_queue, chk->send_size);
+ sctp_ucount_decr(asoc->cnt_on_reasm_queue);
+ SCTP_UNSET_TSN_PRESENT(asoc->mapping_array, gap);
+ TAILQ_REMOVE(&ctl->reasm, chk, sctp_next);
+ if (chk->data) {
+ sctp_m_freem(chk->data);
+ chk->data = NULL;
+ }
+ sctp_free_a_chunk(stcb, chk, SCTP_SO_NOT_LOCKED);
+ }
+ sctp_free_a_readq(stcb, ctl);
+ }
+ }
+ TAILQ_FOREACH_SAFE(ctl, &asoc->strmin[strmat].uno_inqueue, next_instrm, nctl) {
+ if (SCTP_TSN_GT(ctl->sinfo_tsn, cumulative_tsn_p1)) {
+ /* Yep it is above cum-ack */
+ cnt++;
+ SCTP_CALC_TSN_TO_GAP(gap, ctl->sinfo_tsn, asoc->mapping_array_base_tsn);
+ asoc->size_on_all_streams = sctp_sbspace_sub(asoc->size_on_all_streams, ctl->length);
+ sctp_ucount_decr(asoc->cnt_on_all_streams);
+ SCTP_UNSET_TSN_PRESENT(asoc->mapping_array, gap);
+ TAILQ_REMOVE(&asoc->strmin[strmat].uno_inqueue, ctl, next_instrm);
+ if (ctl->data) {
+ sctp_m_freem(ctl->data);
+ ctl->data = NULL;
+ }
+ sctp_free_remote_addr(ctl->whoFrom);
+ /* Now its reasm? */
+ TAILQ_FOREACH_SAFE(chk, &ctl->reasm, sctp_next, nchk) {
+ cnt++;
+ SCTP_CALC_TSN_TO_GAP(gap, chk->rec.data.TSN_seq, asoc->mapping_array_base_tsn);
+ asoc->size_on_reasm_queue = sctp_sbspace_sub(asoc->size_on_reasm_queue, chk->send_size);
+ sctp_ucount_decr(asoc->cnt_on_reasm_queue);
+ SCTP_UNSET_TSN_PRESENT(asoc->mapping_array, gap);
+ TAILQ_REMOVE(&ctl->reasm, chk, sctp_next);
+ if (chk->data) {
+ sctp_m_freem(chk->data);
+ chk->data = NULL;
+ }
+ sctp_free_a_chunk(stcb, chk, SCTP_SO_NOT_LOCKED);
+ }
+ sctp_free_a_readq(stcb, ctl);
}
}
}
diff --git a/sys/netinet/sctp_pcb.h b/sys/netinet/sctp_pcb.h
index f28016a..a5810a7 100644
--- a/sys/netinet/sctp_pcb.h
+++ b/sys/netinet/sctp_pcb.h
@@ -410,6 +410,7 @@ struct sctp_inpcb {
uint8_t ecn_supported;
uint8_t prsctp_supported;
uint8_t auth_supported;
+ uint8_t idata_supported;
uint8_t asconf_supported;
uint8_t reconfig_supported;
uint8_t nrsack_supported;
@@ -629,6 +630,8 @@ int sctp_destination_is_reachable(struct sctp_tcb *, struct sockaddr *);
int sctp_swap_inpcb_for_listen(struct sctp_inpcb *inp);
+void sctp_clean_up_stream(struct sctp_tcb *stcb, struct sctp_readhead *rh);
+
/*-
* Null in last arg inpcb indicate run on ALL ep's. Specific inp in last arg
* indicates run on ONLY assoc's of the specified endpoint.
diff --git a/sys/netinet/sctp_structs.h b/sys/netinet/sctp_structs.h
index 8756650..87aa05b 100644
--- a/sys/netinet/sctp_structs.h
+++ b/sys/netinet/sctp_structs.h
@@ -389,7 +389,7 @@ struct sctp_nets {
struct sctp_data_chunkrec {
uint32_t TSN_seq; /* the TSN of this transmit */
- uint16_t stream_seq; /* the stream sequence number of this transmit */
+ uint32_t stream_seq; /* the stream sequence number of this transmit */
uint16_t stream_number; /* the stream number of this guy */
uint32_t payloadtype;
uint32_t context; /* from send */
@@ -400,6 +400,7 @@ struct sctp_data_chunkrec {
*/
uint32_t fast_retran_tsn; /* sending_seq at the time of FR */
struct timeval timetodrop; /* time we drop it from queue */
+ uint32_t fsn_num; /* Fragment Sequence Number */
uint8_t doing_fast_retransmit;
uint8_t rcv_flags; /* flags pulled from data chunk on inbound for
* outbound holds sending flags for PR-SCTP. */
@@ -458,7 +459,7 @@ struct sctp_tmit_chunk {
*/
struct sctp_queued_to_read { /* sinfo structure Pluse more */
uint16_t sinfo_stream; /* off the wire */
- uint16_t sinfo_ssn; /* off the wire */
+ uint32_t sinfo_ssn; /* off the wire */
uint16_t sinfo_flags; /* SCTP_UNORDERED from wire use SCTP_EOF for
* EOR */
uint32_t sinfo_ppid; /* off the wire */
@@ -468,8 +469,11 @@ struct sctp_queued_to_read { /* sinfo structure Pluse more */
uint32_t sinfo_cumtsn; /* Use this in reassembly as last TSN */
sctp_assoc_t sinfo_assoc_id; /* our assoc id */
/* Non sinfo stuff */
+ uint32_t msg_id; /* Fragment Index */
uint32_t length; /* length of data */
uint32_t held_length; /* length held in sb */
+ uint32_t top_fsn; /* Highest FSN in queue */
+ uint32_t fsn_included; /* Highest FSN in *data portion */
struct sctp_nets *whoFrom; /* where it came from */
struct mbuf *data; /* front of the mbuf chain of data with
* PKT_HDR */
@@ -478,14 +482,24 @@ struct sctp_queued_to_read { /* sinfo structure Pluse more */
* take it from us */
struct sctp_tcb *stcb; /* assoc, used for window update */
TAILQ_ENTRY(sctp_queued_to_read) next;
+ TAILQ_ENTRY(sctp_queued_to_read) next_instrm;
+ struct sctpchunk_listhead reasm;
uint16_t port_from;
uint16_t spec_flags; /* Flags to hold the notification field */
uint8_t do_not_ref_stcb;
uint8_t end_added;
uint8_t pdapi_aborted;
+ uint8_t pdapi_started;
uint8_t some_taken;
+ uint8_t last_frag_seen;
+ uint8_t first_frag_seen;
+ uint8_t on_read_q;
+ uint8_t on_strm_q;
};
+#define SCTP_ON_ORDERED 1
+#define SCTP_ON_UNORDERED 2
+
/* This data structure will be on the outbound
* stream queues. Data will be pulled off from
* the front of the mbuf data and chunk-ified
@@ -511,6 +525,8 @@ struct sctp_stream_queue_pending {
struct sctp_nets *net;
TAILQ_ENTRY(sctp_stream_queue_pending) next;
TAILQ_ENTRY(sctp_stream_queue_pending) ss_next;
+ uint32_t fsn;
+ uint32_t msg_id;
uint32_t length;
uint32_t timetolive;
uint32_t ppid;
@@ -534,9 +550,11 @@ struct sctp_stream_queue_pending {
TAILQ_HEAD(sctpwheelunrel_listhead, sctp_stream_in);
struct sctp_stream_in {
struct sctp_readhead inqueue;
+ struct sctp_readhead uno_inqueue;
+ uint32_t last_sequence_delivered; /* used for re-order */
uint16_t stream_no;
- uint16_t last_sequence_delivered; /* used for re-order */
uint8_t delivery_started;
+ uint8_t pd_api_started;
};
TAILQ_HEAD(sctpwheel_listhead, sctp_stream_out);
@@ -605,8 +623,8 @@ struct sctp_stream_out {
uint32_t abandoned_unsent[1];
uint32_t abandoned_sent[1];
#endif
+ uint32_t next_sequence_send; /* next one I expect to send out */
uint16_t stream_no;
- uint16_t next_sequence_send; /* next one I expect to send out */
uint8_t last_msg_incomplete;
uint8_t state;
};
@@ -635,12 +653,13 @@ struct sctp_scoping {
struct sctp_tsn_log {
void *stcb;
uint32_t tsn;
+ uint32_t seq;
uint16_t strm;
- uint16_t seq;
uint16_t sz;
uint16_t flgs;
uint16_t in_pos;
uint16_t in_out;
+ uint16_t resv;
};
#define SCTP_FS_SPEC_LOG_SIZE 200
@@ -811,9 +830,6 @@ struct sctp_association {
struct sctpchunk_listhead sent_queue;
struct sctpchunk_listhead send_queue;
- /* re-assembly queue for fragmented chunks on the inbound path */
- struct sctpchunk_listhead reasmqueue;
-
/* Scheduling queues */
union scheduling_data ss_data;
@@ -881,7 +897,7 @@ struct sctp_association {
uint32_t stream_scheduling_module;
uint32_t vrf_id;
-
+ uint32_t assoc_msg_id;
uint32_t cookie_preserve_req;
/* ASCONF next seq I am sending out, inits at init-tsn */
uint32_t asconf_seq_out;
@@ -1177,12 +1193,12 @@ struct sctp_association {
uint8_t reconfig_supported;
uint8_t nrsack_supported;
uint8_t pktdrop_supported;
+ uint8_t idata_supported;
/* Did the peer make the stream config (add out) request */
uint8_t peer_req_out;
uint8_t local_strreset_support;
-
uint8_t peer_supports_nat;
struct sctp_scoping scope;
diff --git a/sys/netinet/sctp_uio.h b/sys/netinet/sctp_uio.h
index 2299f66..248a25e 100644
--- a/sys/netinet/sctp_uio.h
+++ b/sys/netinet/sctp_uio.h
@@ -318,12 +318,13 @@ struct sctp_assoc_change {
#define SCTP_CANT_STR_ASSOC 0x0005
/* sac_info values */
-#define SCTP_ASSOC_SUPPORTS_PR 0x01
-#define SCTP_ASSOC_SUPPORTS_AUTH 0x02
-#define SCTP_ASSOC_SUPPORTS_ASCONF 0x03
-#define SCTP_ASSOC_SUPPORTS_MULTIBUF 0x04
-#define SCTP_ASSOC_SUPPORTS_RE_CONFIG 0x05
-#define SCTP_ASSOC_SUPPORTS_MAX 0x05
+#define SCTP_ASSOC_SUPPORTS_PR 0x01
+#define SCTP_ASSOC_SUPPORTS_AUTH 0x02
+#define SCTP_ASSOC_SUPPORTS_ASCONF 0x03
+#define SCTP_ASSOC_SUPPORTS_MULTIBUF 0x04
+#define SCTP_ASSOC_SUPPORTS_RE_CONFIG 0x05
+#define SCTP_ASSOC_SUPPORTS_INTERLEAVING 0x06
+#define SCTP_ASSOC_SUPPORTS_MAX 0x06
/*
* Address event
*/
diff --git a/sys/netinet/sctp_usrreq.c b/sys/netinet/sctp_usrreq.c
index a75f025..64d3a26 100644
--- a/sys/netinet/sctp_usrreq.c
+++ b/sys/netinet/sctp_usrreq.c
@@ -1730,6 +1730,37 @@ flags_out:
*optsize = sizeof(uint32_t);
break;
}
+ case SCTP_INTERLEAVING_SUPPORTED:
+ {
+ struct sctp_assoc_value *av;
+
+ SCTP_CHECK_AND_CAST(av, optval, struct sctp_assoc_value, *optsize);
+ SCTP_FIND_STCB(inp, stcb, av->assoc_id);
+
+ if (stcb) {
+ av->assoc_value = stcb->asoc.idata_supported;
+ SCTP_TCB_UNLOCK(stcb);
+ } else {
+ if ((inp->sctp_flags & SCTP_PCB_FLAGS_TCPTYPE) ||
+ (inp->sctp_flags & SCTP_PCB_FLAGS_IN_TCPPOOL) ||
+ (av->assoc_id == SCTP_FUTURE_ASSOC)) {
+ SCTP_INP_RLOCK(inp);
+ if (inp->idata_supported) {
+ av->assoc_value = 1;
+ } else {
+ av->assoc_value = 0;
+ }
+ SCTP_INP_RUNLOCK(inp);
+ } else {
+ SCTP_LTRACE_ERR_RET(inp, NULL, NULL, SCTP_FROM_SCTP_USRREQ, EINVAL);
+ error = EINVAL;
+ }
+ }
+ if (error == 0) {
+ *optsize = sizeof(struct sctp_assoc_value);
+ }
+ break;
+ }
case SCTP_CMT_ON_OFF:
{
struct sctp_assoc_value *av;
@@ -3904,6 +3935,47 @@ sctp_setopt(struct socket *so, int optname, void *optval, size_t optsize,
}
break;
}
+ case SCTP_INTERLEAVING_SUPPORTED:
+ {
+ struct sctp_assoc_value *av;
+
+ SCTP_CHECK_AND_CAST(av, optval, struct sctp_assoc_value, optsize);
+ SCTP_FIND_STCB(inp, stcb, av->assoc_id);
+
+ if (stcb) {
+ SCTP_LTRACE_ERR_RET(inp, NULL, NULL, SCTP_FROM_SCTP_USRREQ, EINVAL);
+ error = EINVAL;
+ SCTP_TCB_UNLOCK(stcb);
+ } else {
+ if ((inp->sctp_flags & SCTP_PCB_FLAGS_TCPTYPE) ||
+ (inp->sctp_flags & SCTP_PCB_FLAGS_IN_TCPPOOL) ||
+ (av->assoc_id == SCTP_FUTURE_ASSOC)) {
+ SCTP_INP_WLOCK(inp);
+ if (av->assoc_value == 0) {
+ inp->idata_supported = 0;
+ } else {
+ if ((sctp_is_feature_on(inp, SCTP_PCB_FLAGS_FRAG_INTERLEAVE)) &&
+ (sctp_is_feature_on(inp, SCTP_PCB_FLAGS_INTERLEAVE_STRMS))) {
+ inp->idata_supported = 1;
+ } else {
+ /*
+ * Must have Frag
+ * interleave and
+ * stream interleave
+ * on
+ */
+ SCTP_LTRACE_ERR_RET(inp, NULL, NULL, SCTP_FROM_SCTP_USRREQ, EINVAL);
+ error = EINVAL;
+ }
+ }
+ SCTP_INP_WUNLOCK(inp);
+ } else {
+ SCTP_LTRACE_ERR_RET(inp, NULL, NULL, SCTP_FROM_SCTP_USRREQ, EINVAL);
+ error = EINVAL;
+ }
+ }
+ break;
+ }
case SCTP_CMT_ON_OFF:
if (SCTP_BASE_SYSCTL(sctp_cmt_on_off)) {
struct sctp_assoc_value *av;
diff --git a/sys/netinet/sctp_var.h b/sys/netinet/sctp_var.h
index 7213b97..009ffdb 100644
--- a/sys/netinet/sctp_var.h
+++ b/sys/netinet/sctp_var.h
@@ -97,11 +97,19 @@ extern struct pr_usrreqs sctp_usrreqs;
* an mbuf cache as well so it is not really worth doing, at least
* right now :-D
*/
-
+#ifdef INVARIANTS
#define sctp_free_a_readq(_stcb, _readq) { \
+ if ((_readq)->on_strm_q) \
+ panic("On strm q stcb:%p readq:%p", (_stcb), (_readq)); \
SCTP_ZONE_FREE(SCTP_BASE_INFO(ipi_zone_readq), (_readq)); \
SCTP_DECR_READQ_COUNT(); \
}
+#else
+#define sctp_free_a_readq(_stcb, _readq) { \
+ SCTP_ZONE_FREE(SCTP_BASE_INFO(ipi_zone_readq), (_readq)); \
+ SCTP_DECR_READQ_COUNT(); \
+}
+#endif
#define sctp_alloc_a_readq(_stcb, _readq) { \
(_readq) = SCTP_ZONE_GET(SCTP_BASE_INFO(ipi_zone_readq), struct sctp_queued_to_read); \
@@ -211,7 +219,7 @@ extern struct pr_usrreqs sctp_usrreqs;
atomic_add_int(&(sb)->sb_cc,SCTP_BUF_LEN((m))); \
atomic_add_int(&(sb)->sb_mbcnt, MSIZE); \
if (stcb) { \
- atomic_add_int(&(stcb)->asoc.sb_cc,SCTP_BUF_LEN((m))); \
+ atomic_add_int(&(stcb)->asoc.sb_cc, SCTP_BUF_LEN((m))); \
atomic_add_int(&(stcb)->asoc.my_rwnd_control_len, MSIZE); \
} \
if (SCTP_BUF_TYPE(m) != MT_DATA && SCTP_BUF_TYPE(m) != MT_HEADER && \
diff --git a/sys/netinet/sctputil.c b/sys/netinet/sctputil.c
index 9434f06..ced18fe 100644
--- a/sys/netinet/sctputil.c
+++ b/sys/netinet/sctputil.c
@@ -970,11 +970,13 @@ sctp_init_asoc(struct sctp_inpcb *inp, struct sctp_tcb *stcb,
asoc->sctp_cmt_on_off = inp->sctp_cmt_on_off;
asoc->ecn_supported = inp->ecn_supported;
asoc->prsctp_supported = inp->prsctp_supported;
+ asoc->idata_supported = inp->idata_supported;
asoc->auth_supported = inp->auth_supported;
asoc->asconf_supported = inp->asconf_supported;
asoc->reconfig_supported = inp->reconfig_supported;
asoc->nrsack_supported = inp->nrsack_supported;
asoc->pktdrop_supported = inp->pktdrop_supported;
+ asoc->idata_supported = inp->idata_supported;
asoc->sctp_cmt_pf = (uint8_t) 0;
asoc->sctp_frag_point = inp->sctp_frag_point;
asoc->sctp_features = inp->sctp_features;
@@ -1163,7 +1165,6 @@ sctp_init_asoc(struct sctp_inpcb *inp, struct sctp_tcb *stcb,
TAILQ_INIT(&asoc->asconf_send_queue);
TAILQ_INIT(&asoc->send_queue);
TAILQ_INIT(&asoc->sent_queue);
- TAILQ_INIT(&asoc->reasmqueue);
TAILQ_INIT(&asoc->resetHead);
asoc->max_inbound_streams = inp->sctp_ep.max_open_streams_intome;
TAILQ_INIT(&asoc->asconf_queue);
@@ -2736,6 +2737,9 @@ sctp_notify_assoc_change(uint16_t state, struct sctp_tcb *stcb,
if (stcb->asoc.asconf_supported == 1) {
sac->sac_info[i++] = SCTP_ASSOC_SUPPORTS_ASCONF;
}
+ if (stcb->asoc.idata_supported == 1) {
+ sac->sac_info[i++] = SCTP_ASSOC_SUPPORTS_INTERLEAVING;
+ }
sac->sac_info[i++] = SCTP_ASSOC_SUPPORTS_MULTIBUF;
if (stcb->asoc.reconfig_supported == 1) {
sac->sac_info[i++] = SCTP_ASSOC_SUPPORTS_RE_CONFIG;
@@ -4450,6 +4454,43 @@ sctp_pull_off_control_to_new_inp(struct sctp_inpcb *old_inp,
}
void
+sctp_wakeup_the_read_socket(struct sctp_inpcb *inp)
+{
+ if (inp && inp->sctp_socket) {
+ if (sctp_is_feature_on(inp, SCTP_PCB_FLAGS_ZERO_COPY_ACTIVE)) {
+ SCTP_ZERO_COPY_EVENT(inp, inp->sctp_socket);
+ } else {
+#if defined(__APPLE__) || defined(SCTP_SO_LOCK_TESTING)
+ struct socket *so;
+
+ so = SCTP_INP_SO(inp);
+ if (!so_locked) {
+ if (stcb) {
+ atomic_add_int(&stcb->asoc.refcnt, 1);
+ SCTP_TCB_UNLOCK(stcb);
+ }
+ SCTP_SOCKET_LOCK(so, 1);
+ if (stcb) {
+ SCTP_TCB_LOCK(stcb);
+ atomic_subtract_int(&stcb->asoc.refcnt, 1);
+ }
+ if (inp->sctp_flags & SCTP_PCB_FLAGS_SOCKET_GONE) {
+ SCTP_SOCKET_UNLOCK(so, 1);
+ return;
+ }
+ }
+#endif
+ sctp_sorwakeup(inp, inp->sctp_socket);
+#if defined(__APPLE__) || defined(SCTP_SO_LOCK_TESTING)
+ if (!so_locked) {
+ SCTP_SOCKET_UNLOCK(so, 1);
+ }
+#endif
+ }
+ }
+}
+
+void
sctp_add_to_readq(struct sctp_inpcb *inp,
struct sctp_tcb *stcb,
struct sctp_queued_to_read *control,
@@ -4484,7 +4525,7 @@ sctp_add_to_readq(struct sctp_inpcb *inp,
sctp_m_freem(control->data);
control->data = NULL;
}
- SCTP_ZONE_FREE(SCTP_BASE_INFO(ipi_zone_readq), control);
+ sctp_free_a_readq(stcb, control);
if (inp_read_lock_held == 0)
SCTP_INP_READ_UNLOCK(inp);
return;
@@ -4530,7 +4571,7 @@ sctp_add_to_readq(struct sctp_inpcb *inp,
} else {
/* Everything got collapsed out?? */
sctp_free_remote_addr(control->whoFrom);
- SCTP_ZONE_FREE(SCTP_BASE_INFO(ipi_zone_readq), control);
+ sctp_free_a_readq(stcb, control);
if (inp_read_lock_held == 0)
SCTP_INP_READ_UNLOCK(inp);
return;
@@ -4539,39 +4580,11 @@ sctp_add_to_readq(struct sctp_inpcb *inp,
control->end_added = 1;
}
TAILQ_INSERT_TAIL(&inp->read_queue, control, next);
+ control->on_read_q = 1;
if (inp_read_lock_held == 0)
SCTP_INP_READ_UNLOCK(inp);
if (inp && inp->sctp_socket) {
- if (sctp_is_feature_on(inp, SCTP_PCB_FLAGS_ZERO_COPY_ACTIVE)) {
- SCTP_ZERO_COPY_EVENT(inp, inp->sctp_socket);
- } else {
-#if defined(__APPLE__) || defined(SCTP_SO_LOCK_TESTING)
- struct socket *so;
-
- so = SCTP_INP_SO(inp);
- if (!so_locked) {
- if (stcb) {
- atomic_add_int(&stcb->asoc.refcnt, 1);
- SCTP_TCB_UNLOCK(stcb);
- }
- SCTP_SOCKET_LOCK(so, 1);
- if (stcb) {
- SCTP_TCB_LOCK(stcb);
- atomic_subtract_int(&stcb->asoc.refcnt, 1);
- }
- if (inp->sctp_flags & SCTP_PCB_FLAGS_SOCKET_GONE) {
- SCTP_SOCKET_UNLOCK(so, 1);
- return;
- }
- }
-#endif
- sctp_sorwakeup(inp, inp->sctp_socket);
-#if defined(__APPLE__) || defined(SCTP_SO_LOCK_TESTING)
- if (!so_locked) {
- SCTP_SOCKET_UNLOCK(so, 1);
- }
-#endif
- }
+ sctp_wakeup_the_read_socket(inp);
}
}
@@ -5552,6 +5565,10 @@ restart_nosblocks:
sctp_m_free(control->aux_data);
control->aux_data = NULL;
}
+ if (control->on_strm_q) {
+ panic("About to free ctl:%p so:%p and its in %d",
+ control, so, control->on_strm_q);
+ }
sctp_free_remote_addr(control->whoFrom);
sctp_free_a_readq(stcb, control);
if (hold_rlock) {
@@ -5822,15 +5839,8 @@ get_more_data:
/* error we are out of here */
goto release;
}
- if ((SCTP_BUF_NEXT(m) == NULL) &&
- (cp_len >= SCTP_BUF_LEN(m)) &&
- ((control->end_added == 0) ||
- (control->end_added &&
- (TAILQ_NEXT(control, next) == NULL)))
- ) {
- SCTP_INP_READ_LOCK(inp);
- hold_rlock = 1;
- }
+ SCTP_INP_READ_LOCK(inp);
+ hold_rlock = 1;
if (cp_len == SCTP_BUF_LEN(m)) {
if ((SCTP_BUF_NEXT(m) == NULL) &&
(control->end_added)) {
@@ -5948,19 +5958,9 @@ get_more_data:
#endif
}
done_with_control:
- if (TAILQ_NEXT(control, next) == NULL) {
- /*
- * If we don't have a next we need a
- * lock, if there is a next
- * interrupt is filling ahead of us
- * and we don't need a lock to
- * remove this guy (which is the
- * head of the queue).
- */
- if (hold_rlock == 0) {
- SCTP_INP_READ_LOCK(inp);
- hold_rlock = 1;
- }
+ if (hold_rlock == 0) {
+ SCTP_INP_READ_LOCK(inp);
+ hold_rlock = 1;
}
TAILQ_REMOVE(&inp->read_queue, control, next);
/* Add back any hiddend data */
@@ -5976,6 +5976,10 @@ get_more_data:
no_rcv_needed = control->do_not_ref_stcb;
sctp_free_remote_addr(control->whoFrom);
control->data = NULL;
+ if (control->on_strm_q) {
+ panic("About to free ctl:%p so:%p and its in %d",
+ control, so, control->on_strm_q);
+ }
sctp_free_a_readq(stcb, control);
control = NULL;
if ((freed_so_far >= rwnd_req) &&
diff --git a/sys/netinet/sctputil.h b/sys/netinet/sctputil.h
index 2d32792..f58e17b 100644
--- a/sys/netinet/sctputil.h
+++ b/sys/netinet/sctputil.h
@@ -108,6 +108,9 @@ void
sctp_mtu_size_reset(struct sctp_inpcb *, struct sctp_association *, uint32_t);
void
+ sctp_wakeup_the_read_socket(struct sctp_inpcb *inp);
+
+void
sctp_add_to_readq(struct sctp_inpcb *inp,
struct sctp_tcb *stcb,
struct sctp_queued_to_read *control,
diff --git a/sys/netinet/tcp_fastopen.c b/sys/netinet/tcp_fastopen.c
index 482320e..ec02d18 100644
--- a/sys/netinet/tcp_fastopen.c
+++ b/sys/netinet/tcp_fastopen.c
@@ -204,7 +204,7 @@ void
tcp_fastopen_init(void)
{
V_counter_zone = uma_zcreate("tfo", sizeof(unsigned int),
- NULL, NULL, NULL, NULL, UMA_ALIGN_PTR, UMA_ZONE_NOFREE);
+ NULL, NULL, NULL, NULL, UMA_ALIGN_PTR, 0);
rm_init(&V_tcp_fastopen_keylock, "tfo_keylock");
callout_init_rm(&V_tcp_fastopen_autokey_ctx.c,
&V_tcp_fastopen_keylock, 0);
diff --git a/sys/netinet/tcp_subr.c b/sys/netinet/tcp_subr.c
index 33b16ad..aa24299 100644
--- a/sys/netinet/tcp_subr.c
+++ b/sys/netinet/tcp_subr.c
@@ -654,14 +654,13 @@ tcp_init(void)
hashsize);
}
in_pcbinfo_init(&V_tcbinfo, "tcp", &V_tcb, hashsize, hashsize,
- "tcp_inpcb", tcp_inpcb_init, NULL, UMA_ZONE_NOFREE,
- IPI_HASHFIELDS_4TUPLE);
+ "tcp_inpcb", tcp_inpcb_init, NULL, 0, IPI_HASHFIELDS_4TUPLE);
/*
* These have to be type stable for the benefit of the timers.
*/
V_tcpcb_zone = uma_zcreate("tcpcb", sizeof(struct tcpcb_mem),
- NULL, NULL, NULL, NULL, UMA_ALIGN_PTR, UMA_ZONE_NOFREE);
+ NULL, NULL, NULL, NULL, UMA_ALIGN_PTR, 0);
uma_zone_set_max(V_tcpcb_zone, maxsockets);
uma_zone_set_warning(V_tcpcb_zone, "kern.ipc.maxsockets limit reached");
@@ -671,7 +670,7 @@ tcp_init(void)
TUNABLE_INT_FETCH("net.inet.tcp.sack.enable", &V_tcp_do_sack);
V_sack_hole_zone = uma_zcreate("sackhole", sizeof(struct sackhole),
- NULL, NULL, NULL, NULL, UMA_ALIGN_PTR, UMA_ZONE_NOFREE);
+ NULL, NULL, NULL, NULL, UMA_ALIGN_PTR, 0);
/* Skip initialization of globals for non-default instances. */
if (!IS_DEFAULT_VNET(curvnet))
@@ -738,16 +737,32 @@ tcp_destroy(void)
{
int error;
-#ifdef TCP_RFC7413
- tcp_fastopen_destroy();
-#endif
+ /*
+ * All our processes are gone, all our sockets should be cleaned
+ * up, which means, we should be past the tcp_discardcb() calls.
+ * Sleep to let all tcpcb timers really disappear and then cleanup.
+ * Timewait will cleanup its queue and will be ready to go.
+ * XXX-BZ In theory a few ticks should be good enough to make sure
+ * the timers are all really gone. We should see if we could use a
+ * better metric here and, e.g., check a tcbcb count as an optimization?
+ */
+ DELAY(1000000 / hz);
tcp_hc_destroy();
syncache_destroy();
tcp_tw_destroy();
in_pcbinfo_destroy(&V_tcbinfo);
+ /* tcp_discardcb() clears the sack_holes up. */
uma_zdestroy(V_sack_hole_zone);
uma_zdestroy(V_tcpcb_zone);
+#ifdef TCP_RFC7413
+ /*
+ * Cannot free the zone until all tcpcbs are released as we attach
+ * the allocations to them.
+ */
+ tcp_fastopen_destroy();
+#endif
+
error = hhook_head_deregister(V_tcp_hhh[HHOOK_TCP_EST_IN]);
if (error != 0) {
printf("%s: WARNING: unable to deregister helper hook "
diff --git a/sys/netinet/tcp_syncache.c b/sys/netinet/tcp_syncache.c
index b898c49..1cf27e1 100644
--- a/sys/netinet/tcp_syncache.c
+++ b/sys/netinet/tcp_syncache.c
@@ -281,6 +281,12 @@ syncache_destroy(void)
struct syncache *sc, *nsc;
int i;
+ /*
+ * Stop the re-seed timer before freeing resources. No need to
+ * possibly schedule it another time.
+ */
+ callout_drain(&V_tcp_syncache.secret.reseed);
+
/* Cleanup hash buckets: stop timers, free entries, destroy locks. */
for (i = 0; i < V_tcp_syncache.hashsize; i++) {
@@ -304,8 +310,6 @@ syncache_destroy(void)
/* Free the allocated global resources. */
uma_zdestroy(V_tcp_syncache.zone);
free(V_tcp_syncache.hashbase, M_SYNCACHE);
-
- callout_drain(&V_tcp_syncache.secret.reseed);
}
#endif
diff --git a/sys/netinet6/in6_src.c b/sys/netinet6/in6_src.c
index 40b4723..54c0a0a 100644
--- a/sys/netinet6/in6_src.c
+++ b/sys/netinet6/in6_src.c
@@ -255,7 +255,7 @@ in6_selectsrc(uint32_t fibnum, struct sockaddr_in6 *dstsock,
* ancillary data.
*/
if ((inp->inp_flags & INP_BINDANY) == 0) {
- ia = in6ifa_ifwithaddr(&tmp, odstzone);
+ ia = in6ifa_ifwithaddr(&tmp, 0 /* XXX */);
if (ia == NULL || (ia->ia6_flags & (IN6_IFF_ANYCAST |
IN6_IFF_NOTREADY))) {
if (ia != NULL)
diff --git a/sys/netpfil/ipfw/ip_fw_sockopt.c b/sys/netpfil/ipfw/ip_fw_sockopt.c
index 25ac16e..857b465 100644
--- a/sys/netpfil/ipfw/ip_fw_sockopt.c
+++ b/sys/netpfil/ipfw/ip_fw_sockopt.c
@@ -230,7 +230,7 @@ ipfw_find_rule(struct ip_fw_chain *chain, uint32_t key, uint32_t id)
lo = i + 1; /* continue from the next one */
else /* r->id >= id */
hi = i; /* this might be good */
- };
+ }
return hi;
}
diff --git a/sys/netsmb/smb_subr.c b/sys/netsmb/smb_subr.c
index 3846b75..2992f99 100644
--- a/sys/netsmb/smb_subr.c
+++ b/sys/netsmb/smb_subr.c
@@ -209,7 +209,7 @@ m_dumpm(struct mbuf *m) {
printf("%02x ",((int)*(p++)) & 0xff);
}
m=m->m_next;
- };
+ }
printf("\n");
}
#endif
diff --git a/sys/ofed/drivers/infiniband/hw/mthca/mthca_provider.c b/sys/ofed/drivers/infiniband/hw/mthca/mthca_provider.c
index 3fed07c..adc24aa 100644
--- a/sys/ofed/drivers/infiniband/hw/mthca/mthca_provider.c
+++ b/sys/ofed/drivers/infiniband/hw/mthca/mthca_provider.c
@@ -1045,7 +1045,7 @@ static struct ib_mr *mthca_reg_user_mr(struct ib_pd *pd, u64 start, u64 length,
shift = ffs(mr->umem->page_size) - 1;
- n = mr->umem->nmap;;
+ n = mr->umem->nmap;
mr->mtt = mthca_alloc_mtt(dev, n);
if (IS_ERR(mr->mtt)) {
err = PTR_ERR(mr->mtt);
diff --git a/sys/ofed/drivers/net/mlx4/cmd.c b/sys/ofed/drivers/net/mlx4/cmd.c
index f0805e8..9d51779 100644
--- a/sys/ofed/drivers/net/mlx4/cmd.c
+++ b/sys/ofed/drivers/net/mlx4/cmd.c
@@ -2572,7 +2572,7 @@ int mlx4_set_vf_link_state(struct mlx4_dev *dev, int port, int vf, int link_stat
mlx4_warn(dev, "unknown value for link_state %02x on slave %d port %d\n",
link_state, slave, port);
return -EINVAL;
- };
+ }
/* update the admin & oper state on the link state */
s_info = &priv->mfunc.master.vf_admin[slave].vport[port];
vp_oper = &priv->mfunc.master.vf_oper[slave].vport[port];
diff --git a/sys/ofed/drivers/net/mlx4/eq.c b/sys/ofed/drivers/net/mlx4/eq.c
index 31fafbe..145b9bc 100644
--- a/sys/ofed/drivers/net/mlx4/eq.c
+++ b/sys/ofed/drivers/net/mlx4/eq.c
@@ -754,7 +754,7 @@ static int mlx4_eq_int(struct mlx4_dev *dev, struct mlx4_eq *eq)
!!(eqe->owner & 0x80) ^
!!(eq->cons_index & eq->nent) ? "HW" : "SW");
break;
- };
+ }
++eq->cons_index;
eqes_found = 1;
diff --git a/sys/pc98/cbus/olpt.c b/sys/pc98/cbus/olpt.c
index 9aa8212..983ec07 100644
--- a/sys/pc98/cbus/olpt.c
+++ b/sys/pc98/cbus/olpt.c
@@ -420,7 +420,7 @@ lptopen (struct cdev *dev, int flags, int fmt, struct thread *td)
lprintf(("irq %x\n", sc->sc_irq));
if (sc->sc_irq & LP_USE_IRQ) {
sc->sc_state |= TOUT;
- sc->sc_backoff = hz / LPTOUTINITIAL;;
+ sc->sc_backoff = hz / LPTOUTINITIAL;
callout_reset(&sc->timer, sc->sc_backoff, lptout, sc);
}
diff --git a/sys/powerpc/booke/pmap.c b/sys/powerpc/booke/pmap.c
index 54f215a..42eb631 100644
--- a/sys/powerpc/booke/pmap.c
+++ b/sys/powerpc/booke/pmap.c
@@ -96,6 +96,7 @@ __FBSDID("$FreeBSD$");
#include "mmu_if.h"
+#define SPARSE_MAPDEV
#ifdef DEBUG
#define debugf(fmt, args...) printf(fmt, ##args)
#else
@@ -191,7 +192,7 @@ static tlb_entry_t tlb1[TLB1_MAXENTRIES];
/* Next free entry in the TLB1 */
static unsigned int tlb1_idx;
-static vm_offset_t tlb1_map_base = VM_MAX_KERNEL_ADDRESS;
+static vm_offset_t tlb1_map_base = VM_MAXUSER_ADDRESS + PAGE_SIZE;
static tlbtid_t tid_alloc(struct pmap *);
static void tid_flush(tlbtid_t tid);
@@ -2796,7 +2797,7 @@ static void *
mmu_booke_mapdev_attr(mmu_t mmu, vm_paddr_t pa, vm_size_t size, vm_memattr_t ma)
{
void *res;
- uintptr_t va;
+ uintptr_t va, tmpva;
vm_size_t sz;
int i;
@@ -2819,22 +2820,22 @@ mmu_booke_mapdev_attr(mmu_t mmu, vm_paddr_t pa, vm_size_t size, vm_memattr_t ma)
size = roundup(size, PAGE_SIZE);
/*
- * We leave a hole for device direct mapping between the maximum user
- * address (0x8000000) and the minimum KVA address (0xc0000000). If
- * devices are in there, just map them 1:1. If not, map them to the
- * device mapping area about VM_MAX_KERNEL_ADDRESS. These mapped
- * addresses should be pulled from an allocator, but since we do not
- * ever free TLB1 entries, it is safe just to increment a counter.
- * Note that there isn't a lot of address space here (128 MB) and it
- * is not at all difficult to imagine running out, since that is a 4:1
- * compression from the 0xc0000000 - 0xf0000000 address space that gets
- * mapped there.
+ * The device mapping area is between VM_MAXUSER_ADDRESS and
+ * VM_MIN_KERNEL_ADDRESS. This gives 1GB of device addressing.
*/
- if (pa >= (VM_MAXUSER_ADDRESS + PAGE_SIZE) &&
- (pa + size - 1) < VM_MIN_KERNEL_ADDRESS)
- va = pa;
- else
- va = atomic_fetchadd_int(&tlb1_map_base, size);
+#ifdef SPARSE_MAPDEV
+ /*
+ * With a sparse mapdev, align to the largest starting region. This
+ * could feasibly be optimized for a 'best-fit' alignment, but that
+ * calculation could be very costly.
+ */
+ do {
+ tmpva = tlb1_map_base;
+ va = roundup(tlb1_map_base, 1 << flsl(size));
+ } while (!atomic_cmpset_int(&tlb1_map_base, tmpva, va + size));
+#else
+ va = atomic_fetchadd_int(&tlb1_map_base, size);
+#endif
res = (void *)va;
do {
diff --git a/sys/powerpc/include/vmparam.h b/sys/powerpc/include/vmparam.h
index 0dd74c9..d7368ec 100644
--- a/sys/powerpc/include/vmparam.h
+++ b/sys/powerpc/include/vmparam.h
@@ -111,7 +111,7 @@
#define KERNBASE 0xc0000000 /* start of kernel virtual */
#define VM_MIN_KERNEL_ADDRESS KERNBASE
-#define VM_MAX_KERNEL_ADDRESS 0xf7ffffff
+#define VM_MAX_KERNEL_ADDRESS 0xffffffff
#define VM_MAX_SAFE_KERNEL_ADDRESS VM_MAX_KERNEL_ADDRESS
#endif /* AIM/E500 */
diff --git a/sys/powerpc/ofw/ofw_pcibus.c b/sys/powerpc/ofw/ofw_pcibus.c
index cde3c74..4ce6e73 100644
--- a/sys/powerpc/ofw/ofw_pcibus.c
+++ b/sys/powerpc/ofw/ofw_pcibus.c
@@ -61,6 +61,7 @@ static device_probe_t ofw_pcibus_probe;
static device_attach_t ofw_pcibus_attach;
static pci_assign_interrupt_t ofw_pcibus_assign_interrupt;
static ofw_bus_get_devinfo_t ofw_pcibus_get_devinfo;
+static bus_child_deleted_t ofw_pcibus_child_deleted;
static int ofw_pcibus_child_pnpinfo_str_method(device_t cbdev, device_t child,
char *buf, size_t buflen);
@@ -73,6 +74,7 @@ static device_method_t ofw_pcibus_methods[] = {
DEVMETHOD(device_attach, ofw_pcibus_attach),
/* Bus interface */
+ DEVMETHOD(bus_child_deleted, ofw_pcibus_child_deleted),
DEVMETHOD(bus_child_pnpinfo_str, ofw_pcibus_child_pnpinfo_str_method),
/* PCI interface */
@@ -269,6 +271,16 @@ ofw_pcibus_enum_bus(device_t dev, u_int domain, u_int busno)
}
}
+static void
+ofw_pcibus_child_deleted(device_t dev, device_t child)
+{
+ struct ofw_pcibus_devinfo *dinfo;
+
+ dinfo = device_get_ivars(dev);
+ ofw_bus_gen_destroy_devinfo(&dinfo->opd_obdinfo);
+ pci_child_deleted(dev, child);
+}
+
static int
ofw_pcibus_child_pnpinfo_str_method(device_t cbdev, device_t child, char *buf,
size_t buflen)
diff --git a/sys/powerpc/powermac/fcu.c b/sys/powerpc/powermac/fcu.c
index 3d5e79f..324fd1f 100644
--- a/sys/powerpc/powermac/fcu.c
+++ b/sys/powerpc/powermac/fcu.c
@@ -553,7 +553,7 @@ fcu_fanrpm_sysctl(SYSCTL_HANDLER_ARGS)
default:
/* This should never happen */
return (EINVAL);
- };
+ }
}
/* We can only read the RPM from a PWM controlled fan, so return. */
diff --git a/sys/powerpc/powermac/pmu.c b/sys/powerpc/powermac/pmu.c
index 9df83cb..8080c21 100644
--- a/sys/powerpc/powermac/pmu.c
+++ b/sys/powerpc/powermac/pmu.c
@@ -1064,7 +1064,7 @@ pmu_battquery_sysctl(SYSCTL_HANDLER_ARGS)
default:
/* This should never happen */
result = -1;
- };
+ }
error = sysctl_handle_int(oidp, &result, 0, req);
diff --git a/sys/powerpc/powermac/smu.c b/sys/powerpc/powermac/smu.c
index bc8ea43..cbc0e35 100644
--- a/sys/powerpc/powermac/smu.c
+++ b/sys/powerpc/powermac/smu.c
@@ -888,7 +888,7 @@ smu_fanrpm_sysctl(SYSCTL_HANDLER_ARGS)
default:
/* This should never happen */
return (EINVAL);
- };
+ }
}
/* We can only read the RPM from a PWM controlled fan, so return. */
if ((arg2 & 0xff00) == SMU_PWM_SYSCTL_RPM)
diff --git a/sys/rpc/clnt_bck.c b/sys/rpc/clnt_bck.c
index b63b2b1..477b276 100644
--- a/sys/rpc/clnt_bck.c
+++ b/sys/rpc/clnt_bck.c
@@ -381,7 +381,7 @@ printf("emsgsize\n");
break;
default:
stat = RPC_CANTRECV;
- };
+ }
errp->re_status = stat;
goto out;
} else {
diff --git a/sys/security/audit/audit_syscalls.c b/sys/security/audit/audit_syscalls.c
index 90d811d..73411a4 100644
--- a/sys/security/audit/audit_syscalls.c
+++ b/sys/security/audit/audit_syscalls.c
@@ -303,8 +303,8 @@ sys_auditon(struct thread *td, struct auditon_args *uap)
(udata.au_qctrl64.aq64_lowater >=
udata.au_qctrl.aq_hiwater) ||
(udata.au_qctrl64.aq64_bufsz > AQ_MAXBUFSZ) ||
- (udata.au_qctrl64.aq64_minfree < 0) ||
- (udata.au_qctrl64.aq64_minfree > 100))
+ (udata.au_qctrl64.aq64_minfree > 100) ||
+ (udata.au_qctrl64.aq64_minfree < 0))
return (EINVAL);
audit_qctrl.aq_hiwater =
(int)udata.au_qctrl64.aq64_hiwater;
diff --git a/sys/sparc64/include/bus.h b/sys/sparc64/include/bus.h
index 9cdd208..6ff8c7c 100644
--- a/sys/sparc64/include/bus.h
+++ b/sys/sparc64/include/bus.h
@@ -98,7 +98,7 @@ extern const int bus_stream_asi[];
#define BUS_SPACE_MAXSIZE 0xFFFFFFFFFFFFFFFF
#define BUS_SPACE_MAXADDR_24BIT 0xFFFFFF
#define BUS_SPACE_MAXADDR_32BIT 0xFFFFFFFF
-#define BUS_SPACE_MAXADDR 0xFFFFFFFF
+#define BUS_SPACE_MAXADDR 0xFFFFFFFFFFFFFFFF
#define BUS_SPACE_UNRESTRICTED (~0)
diff --git a/sys/sparc64/pci/ofw_pcibus.c b/sys/sparc64/pci/ofw_pcibus.c
index 92b9f76..08ffa5d 100644
--- a/sys/sparc64/pci/ofw_pcibus.c
+++ b/sys/sparc64/pci/ofw_pcibus.c
@@ -65,6 +65,7 @@ static void ofw_pcibus_setup_device(device_t bridge, uint32_t clock,
u_int busno, u_int slot, u_int func);
/* Methods */
+static bus_child_deleted_t ofw_pcibus_child_deleted;
static bus_child_pnpinfo_str_t ofw_pcibus_pnpinfo_str;
static device_attach_t ofw_pcibus_attach;
static device_probe_t ofw_pcibus_probe;
@@ -77,6 +78,7 @@ static device_method_t ofw_pcibus_methods[] = {
DEVMETHOD(device_attach, ofw_pcibus_attach),
/* Bus interface */
+ DEVMETHOD(bus_child_deleted, ofw_pcibus_child_deleted),
DEVMETHOD(bus_child_pnpinfo_str, ofw_pcibus_pnpinfo_str),
/* PCI interface */
@@ -327,6 +329,16 @@ ofw_pcibus_get_devinfo(device_t bus, device_t dev)
return (&dinfo->opd_obdinfo);
}
+static void
+ofw_pcibus_child_deleted(device_t dev, device_t child)
+{
+ struct ofw_pcibus_devinfo *dinfo;
+
+ dinfo = device_get_ivars(dev);
+ ofw_bus_gen_destroy_devinfo(&dinfo->opd_obdinfo);
+ pci_child_deleted(dev, child);
+}
+
static int
ofw_pcibus_pnpinfo_str(device_t dev, device_t child, char *buf,
size_t buflen)
diff --git a/sys/sparc64/sparc64/db_disasm.c b/sys/sparc64/sparc64/db_disasm.c
index 55e2109..453aea6 100644
--- a/sys/sparc64/sparc64/db_disasm.c
+++ b/sys/sparc64/sparc64/db_disasm.c
@@ -867,7 +867,7 @@ db_disasm(db_addr_t loc, bool altfmt)
break;
}
i_ptr++;
- };
+ }
if (!matchp) {
db_printf("undefined\n");
@@ -1023,7 +1023,7 @@ db_disasm(db_addr_t loc, bool altfmt)
}
if (*(++f_ptr))
db_printf(", ");
- };
+ }
db_printf("\n");
diff --git a/sys/sys/bus.h b/sys/sys/bus.h
index e0297cc..01b98f5 100644
--- a/sys/sys/bus.h
+++ b/sys/sys/bus.h
@@ -524,6 +524,7 @@ int device_is_attached(device_t dev); /* did attach succeed? */
int device_is_enabled(device_t dev);
int device_is_suspended(device_t dev);
int device_is_quiet(device_t dev);
+device_t device_lookup_by_name(const char *name);
int device_print_prettyname(device_t dev);
int device_printf(device_t dev, const char *, ...) __printflike(2, 3);
int device_probe(device_t dev);
diff --git a/sys/sys/elf_common.h b/sys/sys/elf_common.h
index b4574f3..f4579c8 100644
--- a/sys/sys/elf_common.h
+++ b/sys/sys/elf_common.h
@@ -415,7 +415,8 @@ typedef struct {
#define SHT_HISUNW 0x6fffffff
#define SHT_HIOS 0x6fffffff /* Last of OS specific semantics */
#define SHT_LOPROC 0x70000000 /* reserved range for processor */
-#define SHT_AMD64_UNWIND 0x70000001 /* unwind information */
+#define SHT_X86_64_UNWIND 0x70000001 /* unwind information */
+#define SHT_AMD64_UNWIND SHT_X86_64_UNWIND
#define SHT_ARM_EXIDX 0x70000001 /* Exception index table. */
#define SHT_ARM_PREEMPTMAP 0x70000002 /* BPABI DLL dynamic linking
diff --git a/sys/sys/intr.h b/sys/sys/intr.h
index 04325c1..f7d2abe 100644
--- a/sys/sys/intr.h
+++ b/sys/sys/intr.h
@@ -98,6 +98,10 @@ int intr_isrc_deregister(struct intr_irqsrc *);
int intr_isrc_register(struct intr_irqsrc *, device_t, u_int, const char *, ...)
__printflike(4, 5);
+#ifdef SMP
+bool intr_isrc_init_on_cpu(struct intr_irqsrc *isrc, u_int cpu);
+#endif
+
int intr_isrc_dispatch(struct intr_irqsrc *, struct trapframe *);
u_int intr_irq_next_cpu(u_int current_cpu, cpuset_t *cpumask);
diff --git a/sys/sys/proc.h b/sys/sys/proc.h
index 2d1769e..d2b617c 100644
--- a/sys/sys/proc.h
+++ b/sys/sys/proc.h
@@ -623,7 +623,7 @@ struct proc {
after fork. */
uint64_t p_prev_runtime; /* (c) Resource usage accounting. */
struct racct *p_racct; /* (b) Resource accounting. */
- u_char p_throttled; /* (c) Flag for racct pcpu throttling */
+ int p_throttled; /* (c) Flag for racct pcpu throttling */
struct vm_domain_policy p_vm_dom_policy; /* (c) process default VM domain, or -1 */
/*
* An orphan is the child that has beed re-parented to the
diff --git a/sys/sys/racct.h b/sys/sys/racct.h
index 8d1f2fa..5330c63 100644
--- a/sys/sys/racct.h
+++ b/sys/sys/racct.h
@@ -42,6 +42,7 @@
#include <sys/stdint.h>
#include <sys/sysctl.h>
+struct buf;
struct proc;
struct rctl_rule_link;
struct ucred;
@@ -71,7 +72,11 @@ struct ucred;
#define RACCT_SHMSIZE 18
#define RACCT_WALLCLOCK 19
#define RACCT_PCTCPU 20
-#define RACCT_MAX RACCT_PCTCPU
+#define RACCT_READBPS 21
+#define RACCT_WRITEBPS 22
+#define RACCT_READIOPS 23
+#define RACCT_WRITEIOPS 24
+#define RACCT_MAX RACCT_WRITEIOPS
/*
* Resource properties.
@@ -153,6 +158,7 @@ SYSCTL_DECL(_kern_racct);
int racct_add(struct proc *p, int resource, uint64_t amount);
void racct_add_cred(struct ucred *cred, int resource, uint64_t amount);
void racct_add_force(struct proc *p, int resource, uint64_t amount);
+void racct_add_buf(struct proc *p, const struct buf *bufp, int is_write);
int racct_set(struct proc *p, int resource, uint64_t amount);
void racct_set_force(struct proc *p, int resource, uint64_t amount);
void racct_sub(struct proc *p, int resource, uint64_t amount);
@@ -170,6 +176,7 @@ void racct_proc_exit(struct proc *p);
void racct_proc_ucred_changed(struct proc *p, struct ucred *oldcred,
struct ucred *newcred);
void racct_move(struct racct *dest, struct racct *src);
+void racct_proc_throttle(struct proc *p, int timeout);
#else
diff --git a/sys/sys/rctl.h b/sys/sys/rctl.h
index e1a45a4..b9e6cd6 100644
--- a/sys/sys/rctl.h
+++ b/sys/sys/rctl.h
@@ -129,7 +129,8 @@ struct rctl_rule {
#define RCTL_ACTION_DENY (RCTL_ACTION_SIGNAL_MAX + 1)
#define RCTL_ACTION_LOG (RCTL_ACTION_SIGNAL_MAX + 2)
#define RCTL_ACTION_DEVCTL (RCTL_ACTION_SIGNAL_MAX + 3)
-#define RCTL_ACTION_MAX RCTL_ACTION_DEVCTL
+#define RCTL_ACTION_THROTTLE (RCTL_ACTION_SIGNAL_MAX + 4)
+#define RCTL_ACTION_MAX RCTL_ACTION_THROTTLE
#define RCTL_AMOUNT_UNDEFINED -1
@@ -140,6 +141,7 @@ void rctl_rule_release(struct rctl_rule *rule);
int rctl_rule_add(struct rctl_rule *rule);
int rctl_rule_remove(struct rctl_rule *filter);
int rctl_enforce(struct proc *p, int resource, uint64_t amount);
+void rctl_throttle_decay(struct racct *racct, int resource);
int64_t rctl_pcpu_available(const struct proc *p);
uint64_t rctl_get_limit(struct proc *p, int resource);
uint64_t rctl_get_available(struct proc *p, int resource);
diff --git a/sys/ufs/ffs/ffs_alloc.c b/sys/ufs/ffs/ffs_alloc.c
index 799efe3..feaa14f 100644
--- a/sys/ufs/ffs/ffs_alloc.c
+++ b/sys/ufs/ffs/ffs_alloc.c
@@ -259,7 +259,6 @@ ffs_realloccg(ip, lbprev, bprev, bpref, osize, nsize, flags, cred, bpp)
static int curfail;
int64_t delta;
- *bpp = 0;
vp = ITOV(ip);
fs = ip->i_fs;
bp = NULL;
@@ -319,6 +318,7 @@ retry:
/*
* Check for extension in the existing location.
*/
+ *bpp = NULL;
cg = dtog(fs, bprev);
UFS_LOCK(ump);
bno = ffs_fragextend(ip, cg, bprev, osize, nsize);
@@ -518,7 +518,7 @@ ffs_reallocblks_ufs1(ap)
struct inode *ip;
struct vnode *vp;
struct buf *sbp, *ebp;
- ufs1_daddr_t *bap, *sbap, *ebap = 0;
+ ufs1_daddr_t *bap, *sbap, *ebap;
struct cluster_save *buflist;
struct ufsmount *ump;
ufs_lbn_t start_lbn, end_lbn;
@@ -598,6 +598,7 @@ ffs_reallocblks_ufs1(ap)
/*
* If the block range spans two block maps, get the second map.
*/
+ ebap = NULL;
if (end_lvl == 0 || (idp = &end_ap[end_lvl - 1])->in_off + 1 >= len) {
ssize = len;
} else {
@@ -767,7 +768,7 @@ ffs_reallocblks_ufs2(ap)
struct inode *ip;
struct vnode *vp;
struct buf *sbp, *ebp;
- ufs2_daddr_t *bap, *sbap, *ebap = 0;
+ ufs2_daddr_t *bap, *sbap, *ebap;
struct cluster_save *buflist;
struct ufsmount *ump;
ufs_lbn_t start_lbn, end_lbn;
@@ -846,6 +847,7 @@ ffs_reallocblks_ufs2(ap)
/*
* If the block range spans two block maps, get the second map.
*/
+ ebap = NULL;
if (end_lvl == 0 || (idp = &end_ap[end_lvl - 1])->in_off + 1 >= len) {
ssize = len;
} else {
@@ -2784,7 +2786,8 @@ sysctl_ffs_fsck(SYSCTL_HANDLER_ARGS)
return (EINVAL);
}
vn_start_write(vp, &mp, V_WAIT);
- if (mp == 0 || strncmp(mp->mnt_stat.f_fstypename, "ufs", MFSNAMELEN)) {
+ if (mp == NULL ||
+ strncmp(mp->mnt_stat.f_fstypename, "ufs", MFSNAMELEN)) {
vn_finished_write(mp);
fdrop(fp, td);
return (EINVAL);
diff --git a/sys/ufs/ffs/ffs_inode.c b/sys/ufs/ffs/ffs_inode.c
index c8dac1b..0202820 100644
--- a/sys/ufs/ffs/ffs_inode.c
+++ b/sys/ufs/ffs/ffs_inode.c
@@ -41,6 +41,7 @@ __FBSDID("$FreeBSD$");
#include <sys/malloc.h>
#include <sys/mount.h>
#include <sys/proc.h>
+#include <sys/racct.h>
#include <sys/random.h>
#include <sys/resourcevar.h>
#include <sys/rwlock.h>
@@ -659,6 +660,13 @@ ffs_indirtrunc(ip, lbn, dbn, lastbn, level, countp)
vp = ITOV(ip);
bp = getblk(vp, lbn, (int)fs->fs_bsize, 0, 0, 0);
if ((bp->b_flags & B_CACHE) == 0) {
+#ifdef RACCT
+ if (racct_enable) {
+ PROC_LOCK(curproc);
+ racct_add_buf(curproc, bp, 0);
+ PROC_UNLOCK(curproc);
+ }
+#endif /* RACCT */
curthread->td_ru.ru_inblock++; /* pay for read */
bp->b_iocmd = BIO_READ;
bp->b_flags &= ~B_INVAL;
diff --git a/sys/ufs/ffs/ffs_snapshot.c b/sys/ufs/ffs/ffs_snapshot.c
index 099faeb..59ae322 100644
--- a/sys/ufs/ffs/ffs_snapshot.c
+++ b/sys/ufs/ffs/ffs_snapshot.c
@@ -1896,7 +1896,7 @@ retry:
* dopersistence sysctl-setable flag to decide on the
* persistence needed for file content data.
*/
- if (savedcbp != 0) {
+ if (savedcbp != NULL) {
bcopy(savedcbp->b_data, cbp->b_data, fs->fs_bsize);
bawrite(cbp);
if ((vtype == VDIR || dopersistence) &&
@@ -2388,7 +2388,7 @@ ffs_copyonwrite(devvp, bp)
* dopersistence sysctl-setable flag to decide on the
* persistence needed for file content data.
*/
- if (savedcbp != 0) {
+ if (savedcbp != NULL) {
bcopy(savedcbp->b_data, cbp->b_data, fs->fs_bsize);
bawrite(cbp);
if ((devvp == bp->b_vp || bp->b_vp->v_type == VDIR ||
diff --git a/sys/ufs/ffs/ffs_softdep.c b/sys/ufs/ffs/ffs_softdep.c
index bedc8e1..5b25b9e 100644
--- a/sys/ufs/ffs/ffs_softdep.c
+++ b/sys/ufs/ffs/ffs_softdep.c
@@ -69,6 +69,7 @@ __FBSDID("$FreeBSD$");
#include <sys/namei.h>
#include <sys/priv.h>
#include <sys/proc.h>
+#include <sys/racct.h>
#include <sys/rwlock.h>
#include <sys/stat.h>
#include <sys/sysctl.h>
@@ -1868,7 +1869,7 @@ softdep_move_dependencies(oldbp, newbp)
if (wk->wk_type == D_BMSAFEMAP &&
bmsafemap_backgroundwrite(WK_BMSAFEMAP(wk), newbp))
dirty = 1;
- if (wktail == 0)
+ if (wktail == NULL)
LIST_INSERT_HEAD(&newbp->b_dep, wk, wk_list);
else
LIST_INSERT_AFTER(wktail, wk, wk_list);
@@ -6229,6 +6230,13 @@ setup_trunc_indir(freeblks, ip, lbn, lastlbn, blkno)
vfs_busy_pages(bp, 0);
bp->b_iooffset = dbtob(bp->b_blkno);
bstrategy(bp);
+#ifdef RACCT
+ if (racct_enable) {
+ PROC_LOCK(curproc);
+ racct_add_buf(curproc, bp, 0);
+ PROC_UNLOCK(curproc);
+ }
+#endif /* RACCT */
curthread->td_ru.ru_inblock++;
error = bufwait(bp);
if (error) {
@@ -6667,7 +6675,7 @@ softdep_journal_freeblocks(ip, cred, length, flags)
}
}
if ((flags & IO_EXT) != 0)
- while ((adp = TAILQ_FIRST(&inodedep->id_extupdt)) != 0)
+ while ((adp = TAILQ_FIRST(&inodedep->id_extupdt)) != NULL)
cancel_allocdirect(&inodedep->id_extupdt, adp,
freeblks);
/*
@@ -6920,14 +6928,14 @@ softdep_setup_freeblocks(ip, length, flags)
if (flags & IO_NORMAL) {
merge_inode_lists(&inodedep->id_newinoupdt,
&inodedep->id_inoupdt);
- while ((adp = TAILQ_FIRST(&inodedep->id_inoupdt)) != 0)
+ while ((adp = TAILQ_FIRST(&inodedep->id_inoupdt)) != NULL)
cancel_allocdirect(&inodedep->id_inoupdt, adp,
freeblks);
}
if (flags & IO_EXT) {
merge_inode_lists(&inodedep->id_newextupdt,
&inodedep->id_extupdt);
- while ((adp = TAILQ_FIRST(&inodedep->id_extupdt)) != 0)
+ while ((adp = TAILQ_FIRST(&inodedep->id_extupdt)) != NULL)
cancel_allocdirect(&inodedep->id_extupdt, adp,
freeblks);
}
@@ -8042,8 +8050,8 @@ indir_trunc(freework, dbn, lbn)
struct fs *fs;
struct indirdep *indirdep;
struct ufsmount *ump;
- ufs1_daddr_t *bap1 = 0;
- ufs2_daddr_t nb, nnb, *bap2 = 0;
+ ufs1_daddr_t *bap1;
+ ufs2_daddr_t nb, nnb, *bap2;
ufs_lbn_t lbnadd, nlbn;
int i, nblocks, ufs1fmt;
int freedblocks;
@@ -8126,10 +8134,12 @@ indir_trunc(freework, dbn, lbn)
bap1 = (ufs1_daddr_t *)bp->b_data;
nb = bap1[freework->fw_off];
ufs1fmt = 1;
+ bap2 = NULL;
} else {
bap2 = (ufs2_daddr_t *)bp->b_data;
nb = bap2[freework->fw_off];
ufs1fmt = 0;
+ bap1 = NULL;
}
level = lbn_level(lbn);
needj = MOUNTEDSUJ(UFSTOVFS(ump)) != 0;
@@ -8304,7 +8314,7 @@ setup_newdir(dap, newinum, dinum, newdirbp, mkdirp)
struct newblk *newblk;
struct pagedep *pagedep;
struct inodedep *inodedep;
- struct newdirblk *newdirblk = 0;
+ struct newdirblk *newdirblk;
struct mkdir *mkdir1, *mkdir2;
struct worklist *wk;
struct jaddref *jaddref;
@@ -8431,7 +8441,7 @@ softdep_setup_directory_add(bp, dp, diroffset, newinum, newdirbp, isnewblk)
struct newblk *newblk;
struct pagedep *pagedep;
struct inodedep *inodedep;
- struct newdirblk *newdirblk = 0;
+ struct newdirblk *newdirblk;
struct mkdir *mkdir1, *mkdir2;
struct jaddref *jaddref;
struct ufsmount *ump;
@@ -8463,6 +8473,7 @@ softdep_setup_directory_add(bp, dp, diroffset, newinum, newdirbp, isnewblk)
dap->da_state = ATTACHED;
LIST_INIT(&dap->da_jwork);
isindir = bp->b_lblkno >= NDADDR;
+ newdirblk = NULL;
if (isnewblk &&
(isindir ? blkoff(fs, diroffset) : fragoff(fs, diroffset)) == 0) {
newdirblk = malloc(sizeof(struct newdirblk),
@@ -8553,7 +8564,7 @@ softdep_setup_directory_add(bp, dp, diroffset, newinum, newdirbp, isnewblk)
inodedep->id_mkdiradd = dap;
} else if (inodedep->id_mkdiradd)
merge_diradd(inodedep, dap);
- if (newdirblk) {
+ if (newdirblk != NULL) {
/*
* There is nothing to do if we are already tracking
* this block.
@@ -10530,13 +10541,13 @@ cancel_indirdep(indirdep, bp, freeblks)
* Pass in bp for blocks still have journal writes
* pending so we can cancel them on their own.
*/
- while ((aip = LIST_FIRST(&indirdep->ir_deplisthd)) != 0)
+ while ((aip = LIST_FIRST(&indirdep->ir_deplisthd)) != NULL)
cancel_allocindir(aip, bp, freeblks, 0);
- while ((aip = LIST_FIRST(&indirdep->ir_donehd)) != 0)
+ while ((aip = LIST_FIRST(&indirdep->ir_donehd)) != NULL)
cancel_allocindir(aip, NULL, freeblks, 0);
- while ((aip = LIST_FIRST(&indirdep->ir_writehd)) != 0)
+ while ((aip = LIST_FIRST(&indirdep->ir_writehd)) != NULL)
cancel_allocindir(aip, NULL, freeblks, 0);
- while ((aip = LIST_FIRST(&indirdep->ir_completehd)) != 0)
+ while ((aip = LIST_FIRST(&indirdep->ir_completehd)) != NULL)
cancel_allocindir(aip, NULL, freeblks, 0);
/*
* If there are pending partial truncations we need to keep the
@@ -11566,7 +11577,7 @@ handle_written_indirdep(indirdep, bp, bpp)
* the indirdep's pointer is not yet written. Otherwise
* free them here.
*/
- while ((aip = LIST_FIRST(&indirdep->ir_writehd)) != 0) {
+ while ((aip = LIST_FIRST(&indirdep->ir_writehd)) != NULL) {
LIST_REMOVE(aip, ai_next);
if ((indirdep->ir_state & DEPCOMPLETE) == 0) {
LIST_INSERT_HEAD(&indirdep->ir_completehd, aip,
@@ -11581,7 +11592,7 @@ handle_written_indirdep(indirdep, bp, bpp)
* the done list to the write list after updating the pointers.
*/
if (TAILQ_EMPTY(&indirdep->ir_trunc)) {
- while ((aip = LIST_FIRST(&indirdep->ir_donehd)) != 0) {
+ while ((aip = LIST_FIRST(&indirdep->ir_donehd)) != NULL) {
handle_allocindir_partdone(aip);
if (aip == LIST_FIRST(&indirdep->ir_donehd))
panic("disk_write_complete: not gone");
diff --git a/sys/ufs/ufs/ufs_bmap.c b/sys/ufs/ufs/ufs_bmap.c
index 9819ef5..768298f 100644
--- a/sys/ufs/ufs/ufs_bmap.c
+++ b/sys/ufs/ufs/ufs_bmap.c
@@ -44,6 +44,7 @@ __FBSDID("$FreeBSD$");
#include <sys/proc.h>
#include <sys/vnode.h>
#include <sys/mount.h>
+#include <sys/racct.h>
#include <sys/resourcevar.h>
#include <sys/stat.h>
@@ -223,6 +224,13 @@ ufs_bmaparray(vp, bn, bnp, nbp, runp, runb)
vfs_busy_pages(bp, 0);
bp->b_iooffset = dbtob(bp->b_blkno);
bstrategy(bp);
+#ifdef RACCT
+ if (racct_enable) {
+ PROC_LOCK(curproc);
+ racct_add_buf(curproc, bp, 0);
+ PROC_UNLOCK(curproc);
+ }
+#endif /* RACCT */
curthread->td_ru.ru_inblock++;
error = bufwait(bp);
if (error) {
diff --git a/sys/ufs/ufs/ufs_lookup.c b/sys/ufs/ufs/ufs_lookup.c
index 408349e..972cee1 100644
--- a/sys/ufs/ufs/ufs_lookup.c
+++ b/sys/ufs/ufs/ufs_lookup.c
@@ -1256,7 +1256,8 @@ out:
* drop its snapshot reference so that it will be reclaimed
* when last open reference goes away.
*/
- if (ip != 0 && (ip->i_flags & SF_SNAPSHOT) != 0 && ip->i_effnlink == 0)
+ if (ip != NULL && (ip->i_flags & SF_SNAPSHOT) != 0 &&
+ ip->i_effnlink == 0)
UFS_SNAPGONE(ip);
return (error);
}
diff --git a/sys/vm/vm_domain.c b/sys/vm/vm_domain.c
index c042aa7..354a223 100644
--- a/sys/vm/vm_domain.c
+++ b/sys/vm/vm_domain.c
@@ -39,7 +39,7 @@ __FBSDID("$FreeBSD$");
#include <sys/kernel.h>
#include <sys/malloc.h>
#include <sys/mutex.h>
-#if MAXMEMDOM > 1
+#ifdef VM_NUMA_ALLOC
#include <sys/proc.h>
#endif
#include <sys/queue.h>
@@ -64,7 +64,7 @@ __FBSDID("$FreeBSD$");
static __inline int
vm_domain_rr_selectdomain(int skip_domain)
{
-#if MAXMEMDOM > 1
+#ifdef VM_NUMA_ALLOC
struct thread *td;
td = curthread;
@@ -188,8 +188,13 @@ vm_domain_policy_validate(const struct vm_domain_policy *vp)
return (-1);
case VM_POLICY_FIXED_DOMAIN:
case VM_POLICY_FIXED_DOMAIN_ROUND_ROBIN:
+#ifdef VM_NUMA_ALLOC
if (vp->p.domain >= 0 && vp->p.domain < vm_ndomains)
return (0);
+#else
+ if (vp->p.domain == 0)
+ return (0);
+#endif
return (-1);
default:
return (-1);
@@ -221,6 +226,7 @@ vm_domain_iterator_set(struct vm_domain_iterator *vi,
vm_domain_policy_type_t vt, int domain)
{
+#ifdef VM_NUMA_ALLOC
switch (vt) {
case VM_POLICY_FIXED_DOMAIN:
vi->policy = VM_POLICY_FIXED_DOMAIN;
@@ -249,6 +255,10 @@ vm_domain_iterator_set(struct vm_domain_iterator *vi,
vi->n = vm_ndomains;
break;
}
+#else
+ vi->domain = 0;
+ vi->n = 1;
+#endif
return (0);
}
@@ -259,6 +269,8 @@ static inline void
_vm_domain_iterator_set_policy(struct vm_domain_iterator *vi,
const struct vm_domain_policy *vt)
{
+
+#ifdef VM_NUMA_ALLOC
/*
* Initialise the iterator.
*
@@ -300,6 +312,10 @@ _vm_domain_iterator_set_policy(struct vm_domain_iterator *vi,
vi->n = vm_ndomains;
break;
}
+#else
+ vi->domain = 0;
+ vi->n = 1;
+#endif
}
void
@@ -334,6 +350,7 @@ vm_domain_iterator_run(struct vm_domain_iterator *vi, int *domain)
if (vi->n <= 0)
return (-1);
+#ifdef VM_NUMA_ALLOC
switch (vi->policy) {
case VM_POLICY_FIXED_DOMAIN:
case VM_POLICY_FIRST_TOUCH:
@@ -358,6 +375,10 @@ vm_domain_iterator_run(struct vm_domain_iterator *vi, int *domain)
vi->n--;
break;
}
+#else
+ *domain = 0;
+ vi->n--;
+#endif
return (0);
}
diff --git a/sys/vm/vm_fault.c b/sys/vm/vm_fault.c
index a7e3d37..13a5757 100644
--- a/sys/vm/vm_fault.c
+++ b/sys/vm/vm_fault.c
@@ -83,6 +83,7 @@ __FBSDID("$FreeBSD$");
#include <sys/lock.h>
#include <sys/mman.h>
#include <sys/proc.h>
+#include <sys/racct.h>
#include <sys/resourcevar.h>
#include <sys/rwlock.h>
#include <sys/sysctl.h>
@@ -994,6 +995,21 @@ vnode_locked:
if (hardfault) {
PCPU_INC(cnt.v_io_faults);
curthread->td_ru.ru_majflt++;
+#ifdef RACCT
+ if (racct_enable && fs.object->type == OBJT_VNODE) {
+ PROC_LOCK(curproc);
+ if ((fault_type & (VM_PROT_COPY | VM_PROT_WRITE)) != 0) {
+ racct_add_force(curproc, RACCT_WRITEBPS,
+ PAGE_SIZE + behind * PAGE_SIZE);
+ racct_add_force(curproc, RACCT_WRITEIOPS, 1);
+ } else {
+ racct_add_force(curproc, RACCT_READBPS,
+ PAGE_SIZE + ahead * PAGE_SIZE);
+ racct_add_force(curproc, RACCT_READIOPS, 1);
+ }
+ PROC_UNLOCK(curproc);
+ }
+#endif
} else
curthread->td_ru.ru_minflt++;
diff --git a/sys/vm/vm_pageout.c b/sys/vm/vm_pageout.c
index b7f6887..e981e8b 100644
--- a/sys/vm/vm_pageout.c
+++ b/sys/vm/vm_pageout.c
@@ -1656,12 +1656,12 @@ static void
vm_pageout(void)
{
int error;
-#if MAXMEMDOM > 1
+#ifdef VM_NUMA_ALLOC
int i;
#endif
swap_pager_swap_init();
-#if MAXMEMDOM > 1
+#ifdef VM_NUMA_ALLOC
for (i = 1; i < vm_ndomains; i++) {
error = kthread_add(vm_pageout_worker, (void *)(uintptr_t)i,
curproc, NULL, 0, 0, "dom%d", i);
diff --git a/sys/vm/vm_phys.c b/sys/vm/vm_phys.c
index 3979513..d2f1edb 100644
--- a/sys/vm/vm_phys.c
+++ b/sys/vm/vm_phys.c
@@ -48,9 +48,7 @@ __FBSDID("$FreeBSD$");
#include <sys/kernel.h>
#include <sys/malloc.h>
#include <sys/mutex.h>
-#if MAXMEMDOM > 1
#include <sys/proc.h>
-#endif
#include <sys/queue.h>
#include <sys/rwlock.h>
#include <sys/sbuf.h>
@@ -73,8 +71,10 @@ __FBSDID("$FreeBSD$");
_Static_assert(sizeof(long) * NBBY >= VM_PHYSSEG_MAX,
"Too many physsegs.");
+#ifdef VM_NUMA_ALLOC
struct mem_affinity *mem_affinity;
int *mem_locality;
+#endif
int vm_ndomains = 1;
@@ -144,7 +144,7 @@ static int sysctl_vm_phys_segs(SYSCTL_HANDLER_ARGS);
SYSCTL_OID(_vm, OID_AUTO, phys_segs, CTLTYPE_STRING | CTLFLAG_RD,
NULL, 0, sysctl_vm_phys_segs, "A", "Phys Seg Info");
-#if MAXMEMDOM > 1
+#ifdef VM_NUMA_ALLOC
static int sysctl_vm_phys_locality(SYSCTL_HANDLER_ARGS);
SYSCTL_OID(_vm, OID_AUTO, phys_locality, CTLTYPE_STRING | CTLFLAG_RD,
NULL, 0, sysctl_vm_phys_locality, "A", "Phys Locality Info");
@@ -159,7 +159,7 @@ SYSCTL_INT(_vm, OID_AUTO, ndomains, CTLFLAG_RD,
static struct mtx vm_default_policy_mtx;
MTX_SYSINIT(vm_default_policy, &vm_default_policy_mtx, "default policy mutex",
MTX_DEF);
-#if MAXMEMDOM > 1
+#ifdef VM_NUMA_ALLOC
static struct vm_domain_policy vm_default_policy =
VM_DOMAIN_POLICY_STATIC_INITIALISER(VM_POLICY_FIRST_TOUCH_ROUND_ROBIN, 0);
#else
@@ -277,7 +277,7 @@ vm_phys_fictitious_cmp(struct vm_phys_fictitious_seg *p1,
static __inline int
vm_rr_selectdomain(void)
{
-#if MAXMEMDOM > 1
+#ifdef VM_NUMA_ALLOC
struct thread *td;
td = curthread;
@@ -303,13 +303,13 @@ vm_rr_selectdomain(void)
static void
vm_policy_iterator_init(struct vm_domain_iterator *vi)
{
-#if MAXMEMDOM > 1
+#ifdef VM_NUMA_ALLOC
struct vm_domain_policy lcl;
#endif
vm_domain_iterator_init(vi);
-#if MAXMEMDOM > 1
+#ifdef VM_NUMA_ALLOC
/* Copy out the thread policy */
vm_domain_policy_localcopy(&lcl, &curthread->td_vm_dom_policy);
if (lcl.p.policy != VM_POLICY_NONE) {
@@ -433,7 +433,7 @@ int
vm_phys_mem_affinity(int f, int t)
{
-#if MAXMEMDOM > 1
+#ifdef VM_NUMA_ALLOC
if (mem_locality == NULL)
return (-1);
if (f >= vm_ndomains || t >= vm_ndomains)
@@ -444,7 +444,7 @@ vm_phys_mem_affinity(int f, int t)
#endif
}
-#if MAXMEMDOM > 1
+#ifdef VM_NUMA_ALLOC
/*
* Outputs the VM locality table.
*/
@@ -520,6 +520,7 @@ _vm_phys_create_seg(vm_paddr_t start, vm_paddr_t end, int domain)
static void
vm_phys_create_seg(vm_paddr_t start, vm_paddr_t end)
{
+#ifdef VM_NUMA_ALLOC
int i;
if (mem_affinity == NULL) {
@@ -544,6 +545,9 @@ vm_phys_create_seg(vm_paddr_t start, vm_paddr_t end)
mem_affinity[i].domain);
start = mem_affinity[i].end;
}
+#else
+ _vm_phys_create_seg(start, end, 0);
+#endif
}
/*
diff --git a/sys/vm/vm_phys.h b/sys/vm/vm_phys.h
index f9c776d..ee4aa2d 100644
--- a/sys/vm/vm_phys.h
+++ b/sys/vm/vm_phys.h
@@ -99,7 +99,7 @@ int vm_phys_mem_affinity(int f, int t);
static inline struct vm_domain *
vm_phys_domain(vm_page_t m)
{
-#if MAXMEMDOM > 1
+#ifdef VM_NUMA_ALLOC
int domn, segind;
/* XXXKIB try to assert that the page is managed */
diff --git a/sys/x86/acpica/srat.c b/sys/x86/acpica/srat.c
index 2ec0c32..19ed116 100644
--- a/sys/x86/acpica/srat.c
+++ b/sys/x86/acpica/srat.c
@@ -28,6 +28,8 @@
#include <sys/cdefs.h>
__FBSDID("$FreeBSD$");
+#include "opt_vm.h"
+
#include <sys/param.h>
#include <sys/bus.h>
#include <sys/kernel.h>
@@ -62,7 +64,8 @@ int num_mem;
static ACPI_TABLE_SRAT *srat;
static vm_paddr_t srat_physaddr;
-static int vm_domains[VM_PHYSSEG_MAX];
+static int domain_pxm[MAXMEMDOM];
+static int ndomain;
static ACPI_TABLE_SLIT *slit;
static vm_paddr_t slit_physaddr;
@@ -145,8 +148,10 @@ parse_slit(void)
acpi_unmap_table(slit);
slit = NULL;
+#ifdef VM_NUMA_ALLOC
/* Tell the VM about it! */
mem_locality = vm_locality_table;
+#endif
return (0);
}
@@ -340,48 +345,46 @@ renumber_domains(void)
int i, j, slot;
/* Enumerate all the domains. */
- vm_ndomains = 0;
+ ndomain = 0;
for (i = 0; i < num_mem; i++) {
/* See if this domain is already known. */
- for (j = 0; j < vm_ndomains; j++) {
- if (vm_domains[j] >= mem_info[i].domain)
+ for (j = 0; j < ndomain; j++) {
+ if (domain_pxm[j] >= mem_info[i].domain)
break;
}
- if (j < vm_ndomains && vm_domains[j] == mem_info[i].domain)
+ if (j < ndomain && domain_pxm[j] == mem_info[i].domain)
continue;
/* Insert the new domain at slot 'j'. */
slot = j;
- for (j = vm_ndomains; j > slot; j--)
- vm_domains[j] = vm_domains[j - 1];
- vm_domains[slot] = mem_info[i].domain;
- vm_ndomains++;
- if (vm_ndomains > MAXMEMDOM) {
- vm_ndomains = 1;
+ for (j = ndomain; j > slot; j--)
+ domain_pxm[j] = domain_pxm[j - 1];
+ domain_pxm[slot] = mem_info[i].domain;
+ ndomain++;
+ if (ndomain > MAXMEMDOM) {
+ ndomain = 1;
printf("SRAT: Too many memory domains\n");
return (EFBIG);
}
}
- /* Renumber each domain to its index in the sorted 'domains' list. */
- for (i = 0; i < vm_ndomains; i++) {
+ /* Renumber each domain to its index in the sorted 'domain_pxm' list. */
+ for (i = 0; i < ndomain; i++) {
/*
* If the domain is already the right value, no need
* to renumber.
*/
- if (vm_domains[i] == i)
+ if (domain_pxm[i] == i)
continue;
/* Walk the cpu[] and mem_info[] arrays to renumber. */
for (j = 0; j < num_mem; j++)
- if (mem_info[j].domain == vm_domains[i])
+ if (mem_info[j].domain == domain_pxm[i])
mem_info[j].domain = i;
for (j = 0; j <= MAX_APIC_ID; j++)
- if (cpus[j].enabled && cpus[j].domain == vm_domains[i])
+ if (cpus[j].enabled && cpus[j].domain == domain_pxm[i])
cpus[j].domain = i;
}
- KASSERT(vm_ndomains > 0,
- ("renumber_domains: invalid final vm_ndomains setup"));
return (0);
}
@@ -416,8 +419,11 @@ parse_srat(void)
return (-1);
}
+#ifdef VM_NUMA_ALLOC
/* Point vm_phys at our memory affinity table. */
+ vm_ndomains = ndomain;
mem_affinity = mem_info;
+#endif
return (0);
}
@@ -495,12 +501,21 @@ acpi_map_pxm_to_vm_domainid(int pxm)
{
int i;
- for (i = 0; i < vm_ndomains; i++) {
- if (vm_domains[i] == pxm)
+ for (i = 0; i < ndomain; i++) {
+ if (domain_pxm[i] == pxm)
return (i);
}
return (-1);
}
+#else /* MAXMEMDOM == 1 */
+
+int
+acpi_map_pxm_to_vm_domainid(int pxm)
+{
+
+ return (-1);
+}
+
#endif /* MAXMEMDOM > 1 */
diff --git a/sys/x86/cpufreq/smist.c b/sys/x86/cpufreq/smist.c
index 5cfd72b..6116d94 100644
--- a/sys/x86/cpufreq/smist.c
+++ b/sys/x86/cpufreq/smist.c
@@ -223,7 +223,7 @@ set_ownership(device_t dev)
bus_dma_tag_destroy(tag);
device_printf(dev, "can't load mem\n");
return (ENXIO);
- };
+ }
DPRINT(dev, "taking ownership over BIOS return %d\n", cb_data.result);
bus_dmamap_unload(tag, map);
bus_dmamem_free(tag, cb_data.buf, map);
diff --git a/sys/x86/x86/local_apic.c b/sys/x86/x86/local_apic.c
index 82efae3..5830b77 100644
--- a/sys/x86/x86/local_apic.c
+++ b/sys/x86/x86/local_apic.c
@@ -321,9 +321,9 @@ static int native_lapic_set_lvt_triggermode(u_int apic_id, u_int lvt,
static void native_lapic_ipi_raw(register_t icrlo, u_int dest);
static void native_lapic_ipi_vectored(u_int vector, int dest);
static int native_lapic_ipi_wait(int delay);
+#endif /* SMP */
static int native_lapic_ipi_alloc(inthand_t *ipifunc);
static void native_lapic_ipi_free(int vector);
-#endif /* SMP */
struct apic_ops apic_ops = {
.create = native_lapic_create,
@@ -350,9 +350,9 @@ struct apic_ops apic_ops = {
.ipi_raw = native_lapic_ipi_raw,
.ipi_vectored = native_lapic_ipi_vectored,
.ipi_wait = native_lapic_ipi_wait,
+#endif
.ipi_alloc = native_lapic_ipi_alloc,
.ipi_free = native_lapic_ipi_free,
-#endif
.set_lvt_mask = native_lapic_set_lvt_mask,
.set_lvt_mode = native_lapic_set_lvt_mode,
.set_lvt_polarity = native_lapic_set_lvt_polarity,
@@ -1904,6 +1904,8 @@ native_lapic_ipi_vectored(u_int vector, int dest)
#endif /* DETECT_DEADLOCK */
}
+#endif /* SMP */
+
/*
* Since the IDT is shared by all CPUs the IPI slot update needs to be globally
* visible.
@@ -1958,5 +1960,3 @@ native_lapic_ipi_free(int vector)
setidt(vector, &IDTVEC(rsvd), SDT_APICT, SEL_KPL, GSEL_APIC);
mtx_unlock_spin(&icu_lock);
}
-
-#endif /* SMP */
diff --git a/sys/x86/xen/xen_apic.c b/sys/x86/xen/xen_apic.c
index 9400378..4d7a39b 100644
--- a/sys/x86/xen/xen_apic.c
+++ b/sys/x86/xen/xen_apic.c
@@ -296,6 +296,7 @@ xen_pv_lapic_ipi_wait(int delay)
XEN_APIC_UNSUPPORTED;
return (0);
}
+#endif /* SMP */
static int
xen_pv_lapic_ipi_alloc(inthand_t *ipifunc)
@@ -311,7 +312,6 @@ xen_pv_lapic_ipi_free(int vector)
XEN_APIC_UNSUPPORTED;
}
-#endif /* SMP */
static int
xen_pv_lapic_set_lvt_mask(u_int apic_id, u_int lvt, u_char masked)
@@ -372,9 +372,9 @@ struct apic_ops xen_apic_ops = {
.ipi_raw = xen_pv_lapic_ipi_raw,
.ipi_vectored = xen_pv_lapic_ipi_vectored,
.ipi_wait = xen_pv_lapic_ipi_wait,
+#endif
.ipi_alloc = xen_pv_lapic_ipi_alloc,
.ipi_free = xen_pv_lapic_ipi_free,
-#endif
.set_lvt_mask = xen_pv_lapic_set_lvt_mask,
.set_lvt_mode = xen_pv_lapic_set_lvt_mode,
.set_lvt_polarity = xen_pv_lapic_set_lvt_polarity,
diff --git a/tools/tools/nanobsd/defaults.sh b/tools/tools/nanobsd/defaults.sh
index cb7a2d1..19cf887 100755
--- a/tools/tools/nanobsd/defaults.sh
+++ b/tools/tools/nanobsd/defaults.sh
@@ -52,6 +52,11 @@ NANO_PACKAGE_LIST="*"
# where package metadata gets placed
NANO_PKG_META_BASE=/var/db
+# Path to mtree file to apply to anything copied by cust_install_files().
+# If you specify this, the mtree file *must* have an entry for every file and
+# directory located in Files.
+#NANO_CUST_FILES_MTREE=""
+
# Object tree directory
# default is subdir of /usr/obj
#NANO_OBJ=""
@@ -909,6 +914,10 @@ cust_allow_ssh_root ( ) (
cust_install_files ( ) (
cd "${NANO_TOOLS}/Files"
find . -print | grep -Ev '/(CVS|\.svn|\.hg|\.git)' | cpio -Ldumpv ${NANO_WORLDDIR}
+
+ if [ -n "${NANO_CUST_FILES_MTREE}" -a -f ${NANO_CUST_FILES_MTREE} ]; then
+ CR "mtree -eiU -p /" <${NANO_CUST_FILES_MTREE}
+ fi
)
#######################################################################
@@ -916,6 +925,18 @@ cust_install_files ( ) (
cust_pkgng ( ) (
+ mkdir -p ${NANO_WORLDDIR}/usr/local/etc
+ local PKG_CONF="${NANO_WORLDDIR}/usr/local/etc/pkg.conf"
+ local PKGCMD="env ASSUME_ALWAYS_YES=YES PKG_DBDIR=${NANO_PKG_META_BASE}/pkg SIGNATURE_TYPE=none /usr/sbin/pkg"
+
+ # Ensure pkg.conf points pkg to where the package meta data lives.
+ touch ${PKG_CONF}
+ if grep -Eiq '^PKG_DBDIR:.*' ${PKG_CONF}; then
+ sed -i -e "\|^PKG_DBDIR:.*|Is||PKG_DBDIR: "\"${NANO_PKG_META_BASE}/pkg\""|" ${PKG_CONF}
+ else
+ echo "PKG_DBDIR: \"${NANO_PKG_META_BASE}/pkg\"" >> ${PKG_CONF}
+ fi
+
# If the package directory doesn't exist, we're done.
if [ ! -d ${NANO_PACKAGE_DIR} ]; then
echo "DONE 0 packages"
@@ -930,52 +951,28 @@ cust_pkgng ( ) (
echo "FAILED: need a pkg/ package for bootstrapping"
exit 2
fi
+ NANO_PACKAGE_LIST="${_NANO_PKG_PACKAGE} ${NANO_PACKAGE_LIST}"
- # Copy packages into chroot
- mkdir -p ${NANO_WORLDDIR}/Pkg
- (
- cd "${NANO_PACKAGE_DIR}"
- find ${NANO_PACKAGE_LIST} -print |
- cpio -Ldumpv ${NANO_WORLDDIR}/Pkg
- )
+ # Mount packages into chroot
+ mkdir -p ${NANO_WORLDDIR}/_.p
+ mount -t nullfs -o noatime -o ro ${NANO_PACKAGE_DIR} ${NANO_WORLDDIR}/_.p
- #Bootstrap pkg
- CR env ASSUME_ALWAYS_YES=YES SIGNATURE_TYPE=none /usr/sbin/pkg add /Pkg/${_NANO_PKG_PACKAGE}
- CR pkg -N >/dev/null 2>&1
- if [ "$?" -ne "0" ]; then
- echo "FAILED: pkg bootstrapping faied"
- exit 2
- fi
- rm -f ${NANO_WORLDDIR}/Pkg/pkg-*
+ trap "umount ${NANO_WORLDDIR}/_.p ; rm -rf ${NANO_WORLDDIR}/_.p" 1 2 15 EXIT
- # Count & report how many we have to install
- todo=`ls ${NANO_WORLDDIR}/Pkg | /usr/bin/wc -l`
- todo=$(expr $todo + 1) # add one for pkg since it is installed already
+ # Install packages
+ todo="$(echo "${NANO_PACKAGE_LIST}" | awk '{ print NF }')"
echo "=== TODO: $todo"
- ls ${NANO_WORLDDIR}/Pkg
+ echo "${NANO_PACKAGE_LIST}"
echo "==="
- while true
- do
- # Record how many we have now
- have=$(CR env ASSUME_ALWAYS_YES=YES /usr/sbin/pkg info | /usr/bin/wc -l)
-
- # Attempt to install more packages
- CR0 'ls 'Pkg/*txz' | xargs env ASSUME_ALWAYS_YES=YES /usr/sbin/pkg add'
-
- # See what that got us
- now=$(CR env ASSUME_ALWAYS_YES=YES /usr/sbin/pkg info | /usr/bin/wc -l)
- echo "=== NOW $now"
- CR env ASSUME_ALWAYS_YES=YES /usr/sbin/pkg info
- echo "==="
- if [ $now -eq $todo ] ; then
- echo "DONE $now packages"
- break
- elif [ $now -eq $have ] ; then
- echo "FAILED: Nothing happened on this pass"
- exit 2
- fi
+ for _PKG in ${NANO_PACKAGE_LIST}; do
+ CR "${PKGCMD} add /_.p/${_PKG}"
done
- rm -rf ${NANO_WORLDDIR}/Pkg
+
+ CR0 "${PKGCMD} info"
+
+ trap - 1 2 15 EXIT
+ umount ${NANO_WORLDDIR}/_.p
+ rm -rf ${NANO_WORLDDIR}/_.p
)
#######################################################################
diff --git a/tools/tools/net80211/wlanstats/wlanstats.c b/tools/tools/net80211/wlanstats/wlanstats.c
index 50c86fc..0e55568 100644
--- a/tools/tools/net80211/wlanstats/wlanstats.c
+++ b/tools/tools/net80211/wlanstats/wlanstats.c
@@ -365,13 +365,13 @@ static const struct fmt wlanstats[] = {
#define S_TX_MCAST AFTER(S_TX_UCAST)
{ 8, "tx_mcast", "tx_mcast", "multicast data frames sent" },
#define S_RATE AFTER(S_TX_MCAST)
- { 5, "rate", "rate", "current transmit rate" },
+ { 7, "rate", "rate", "current transmit rate" },
#define S_RSSI AFTER(S_RATE)
- { 5, "rssi", "rssi", "current rssi" },
+ { 6, "rssi", "rssi", "current rssi" },
#define S_NOISE AFTER(S_RSSI)
{ 5, "noise", "noise", "current noise floor (dBm)" },
#define S_SIGNAL AFTER(S_NOISE)
- { 5, "signal", "sig", "current signal (dBm)" },
+ { 6, "signal", "sig", "current signal (dBm)" },
#define S_BEACON_BAD AFTER(S_SIGNAL)
{ 9, "beacon_bad", "beaconbad", "bad beacons received" },
#define S_AMPDU_BARTX AFTER(S_BEACON_BAD)
@@ -635,16 +635,17 @@ wlan_getinfo(struct wlanstatfoo_p *wf, int s, char b[], size_t bs)
switch (s) {
case S_RATE:
- snprintf(b, bs, "%uM", si->isi_txmbps/2);
+ snprintf(b, bs, "%.1fM", (float) si->isi_txmbps/2.0);
return 1;
case S_RSSI:
- snprintf(b, bs, "%d", si->isi_rssi);
+ snprintf(b, bs, "%.1f", (float) si->isi_rssi/2.0);
return 1;
case S_NOISE:
snprintf(b, bs, "%d", si->isi_noise);
return 1;
case S_SIGNAL:
- snprintf(b, bs, "%d", si->isi_rssi + si->isi_noise);
+ snprintf(b, bs, "%.1f", (float) si->isi_rssi/2.0
+ + (float) si->isi_noise);
return 1;
case S_RX_AUTH_FAIL_CODE:
if (wf->cur.is_rx_authfail_code == 0)
diff --git a/usr.bin/calendar/calendars/calendar.freebsd b/usr.bin/calendar/calendars/calendar.freebsd
index 091edb3..1a5c67b 100644
--- a/usr.bin/calendar/calendars/calendar.freebsd
+++ b/usr.bin/calendar/calendars/calendar.freebsd
@@ -373,6 +373,7 @@
12/15 Timur I. Bakeyev <timur@FreeBSD.org> born in Kazan, Republic of Tatarstan, USSR, 1974
12/18 Chris Timmons <cwt@FreeBSD.org> born in Ellensburg, Washington, United States, 1964
12/18 Dag-Erling Smorgrav <des@FreeBSD.org> born in Brussels, Belgium, 1977
+12/18 Muhammad Moinur Rahman <bofh@FreeBSD.org> born in Dhaka, Bangladesh, 1983
12/18 Semen Ustimenko <semenu@FreeBSD.org> born in Novosibirsk, Russian Federation, 1979
12/19 Stephen Hurd <shurd@FreeBSD.org> born in Estevan, Saskatchewan, Canada, 1975
12/21 Rong-En Fan <rafan@FreeBSD.org> born in Taipei, Taiwan, Republic of China, 1982
diff --git a/usr.bin/rctl/rctl.8 b/usr.bin/rctl/rctl.8
index ec97623..2d92d54 100644
--- a/usr.bin/rctl/rctl.8
+++ b/usr.bin/rctl/rctl.8
@@ -25,7 +25,7 @@
.\"
.\" $FreeBSD$
.\"
-.Dd November 29, 2015
+.Dd January 30, 2016
.Dt RCTL 8
.Os
.Sh NAME
@@ -204,14 +204,22 @@ resource would be
.It Sy shmsize Ta "SysV shared memory size, in bytes"
.It Sy wallclock Ta "wallclock time, in seconds"
.It Sy pcpu Ta "%CPU, in percents of a single CPU core"
+.It Sy readbps Ta "filesystem reads, in bytes per second"
+.It Sy writebps Ta "filesystem writes, in bytes per second"
+.It Sy readiops Ta "filesystem reads, in operations per second"
+.It Sy writeiops Ta "filesystem writes, in operations per second"
.El
.Sh ACTIONS
.Bl -column -offset 3n "pseudoterminals"
.It Em action
.It Sy deny Ta deny the allocation; not supported for
-.Sy cputime
+.Sy cputime ,
+.Sy wallclock ,
+.Sy readbps ,
+.Sy writebps ,
+.Sy readiops ,
and
-.Sy wallclock
+.Sy writeiops
.It Sy log Ta "log a warning to the console"
.It Sy devctl Ta "send notification to"
.Xr devd 8
@@ -228,6 +236,12 @@ send a signal to the offending process.
See
.Xr signal 3
for a list of supported signals
+.It Sy throttle Ta "slow down process execution"; only supported for
+.Sy readbps ,
+.Sy writebps ,
+.Sy readiops ,
+and
+.Sy writeiops .
.El
.Pp
Not all actions are supported for all resources.
@@ -287,3 +301,22 @@ under sponsorship from the FreeBSD Foundation.
Limiting
.Sy memoryuse
may kill the machine due to thrashing.
+.Pp
+The
+.Sy readiops
+and
+.Sy writeiops
+counters are only approximations.
+Like
+.Sy readbps
+and
+.Sy writebps ,
+they are calculated in the filesystem layer, where it is difficult
+or even impossible to observe actual disk device operations.
+.Pp
+The
+.Sy writebps
+and
+.Sy writeiops
+resources generally account for writes to the filesystem cache,
+not to actual devices.
diff --git a/usr.bin/uuencode/uuencode.1 b/usr.bin/uuencode/uuencode.1
index 2c31bdc..9ce7e05 100644
--- a/usr.bin/uuencode/uuencode.1
+++ b/usr.bin/uuencode/uuencode.1
@@ -40,6 +40,7 @@
.Sh SYNOPSIS
.Nm
.Op Fl m
+.Op Fl r
.Op Fl o Ar output_file
.Op Ar file
.Ar name
@@ -50,6 +51,7 @@
.Op Fl i
.Fl o Ar output_file
.Nm b64encode
+.Op Fl r
.Op Fl o Ar output_file
.Op Ar file
.Ar name
@@ -123,6 +125,8 @@ The following options are available for
Use the Base64 method of encoding, rather than the traditional
.Nm
algorithm.
+.It Fl r
+Produce raw output by excluding the initial and final framing lines.
.It Fl o Ar output_file
Output to
.Ar output_file
diff --git a/usr.bin/uuencode/uuencode.c b/usr.bin/uuencode/uuencode.c
index def8bcc..500dcd3 100644
--- a/usr.bin/uuencode/uuencode.c
+++ b/usr.bin/uuencode/uuencode.c
@@ -66,6 +66,7 @@ static void usage(void);
static FILE *output;
static int mode;
+static char raw = 0;
static char **av;
int
@@ -82,7 +83,7 @@ main(int argc, char *argv[])
if (strcmp(basename(argv[0]), "b64encode") == 0)
base64 = 1;
- while ((ch = getopt(argc, argv, "mo:")) != -1) {
+ while ((ch = getopt(argc, argv, "mo:r")) != -1) {
switch (ch) {
case 'm':
base64 = 1;
@@ -90,6 +91,9 @@ main(int argc, char *argv[])
case 'o':
outfile = optarg;
break;
+ case 'r':
+ raw = 1;
+ break;
case '?':
default:
usage();
@@ -152,7 +156,8 @@ base64_encode(void)
sequence = 0;
- fprintf(output, "begin-base64 %o %s\n", mode, *av);
+ if (!raw)
+ fprintf(output, "begin-base64 %o %s\n", mode, *av);
while ((n = fread(buf, 1, sizeof(buf), stdin))) {
++sequence;
rv = b64_ntop(buf, n, buf2, (sizeof(buf2) / sizeof(buf2[0])));
@@ -162,7 +167,8 @@ base64_encode(void)
}
if (sequence % GROUPS)
fprintf(output, "\n");
- fprintf(output, "====\n");
+ if (!raw)
+ fprintf(output, "====\n");
}
/*
@@ -175,7 +181,8 @@ encode(void)
register char *p;
char buf[80];
- (void)fprintf(output, "begin %o %s\n", mode, *av);
+ if (!raw)
+ (void)fprintf(output, "begin %o %s\n", mode, *av);
while ((n = fread(buf, 1, 45, stdin))) {
ch = ENC(n);
if (fputc(ch, output) == EOF)
@@ -209,7 +216,8 @@ encode(void)
}
if (ferror(stdin))
errx(1, "read error");
- (void)fprintf(output, "%c\nend\n", ENC('\0'));
+ if (!raw)
+ (void)fprintf(output, "%c\nend\n", ENC('\0'));
}
static void
diff --git a/usr.bin/whois/whois.c b/usr.bin/whois/whois.c
index 49b2005..9bae3b1 100644
--- a/usr.bin/whois/whois.c
+++ b/usr.bin/whois/whois.c
@@ -114,9 +114,16 @@ static struct {
WHOIS_REFERRAL("Whois Server:"),
WHOIS_REFERRAL("Registrar WHOIS Server:"), /* corporatedomains.com */
WHOIS_REFERRAL("ReferralServer: whois://"), /* ARIN */
+ WHOIS_REFERRAL("descr: region. Please query"), /* AfriNIC */
{ NULL, 0 }
};
+static const char *actually_arin[] = {
+ "netname: ERX-NETBLOCK\n", /* APNIC */
+ "netname: NON-RIPE-NCC-MANAGED-ADDRESS-BLOCK\n",
+ NULL
+};
+
static const char *port = DEFAULT_PORT;
static const char *choose_server(char *);
@@ -469,6 +476,12 @@ done:
(int)(p - host), host);
break;
}
+ for (i = 0; actually_arin[i] != NULL; i++) {
+ if (strncmp(buf, actually_arin[i], len) == 0) {
+ s_asprintf(&nhost, "%s", ANICHOST);
+ break;
+ }
+ }
}
/* Verisign etc. */
if (!(flags & WHOIS_SPAM_ME) &&
diff --git a/usr.sbin/bhyve/Makefile b/usr.sbin/bhyve/Makefile
index e1992a7..d85403c 100644
--- a/usr.sbin/bhyve/Makefile
+++ b/usr.sbin/bhyve/Makefile
@@ -9,6 +9,8 @@ DEBUG_FLAGS= -g -O0
MAN= bhyve.8
+SYSDIR?=${.CURDIR}/../..
+
SRCS= \
atkbdc.c \
acpi.c \
@@ -43,7 +45,7 @@ SRCS= \
xmsr.c \
spinup_ap.c
-.PATH: ${.CURDIR}/../../sys/amd64/vmm
+.PATH: ${SYSDIR}/sys/amd64/vmm
SRCS+= vmm_instruction_emul.c
LIBADD= vmmapi md pthread
diff --git a/usr.sbin/bsdinstall/scripts/zfsboot b/usr.sbin/bsdinstall/scripts/zfsboot
index 4dedbf0..415afb6 100755
--- a/usr.sbin/bsdinstall/scripts/zfsboot
+++ b/usr.sbin/bsdinstall/scripts/zfsboot
@@ -964,6 +964,8 @@ zfs_create_diskpart()
f_expand_number "$ZFSBOOT_SWAP_SIZE" swapsize
if [ "$isswapmirror" ]; then
# This is not the first disk in the mirror, do nothing
+ elif [ ${swapsize:-0} -eq 0 ]; then
+ # If swap is 0 sized, don't add it to fstab
elif [ "$ZFSBOOT_SWAP_ENCRYPTION" -a "$ZFSBOOT_SWAP_MIRROR" ]; then
f_eval_catch $funcname printf "$PRINTF_FSTAB" \
/dev/mirror/swap.eli none swap sw 0 0 \
@@ -981,8 +983,6 @@ zfs_create_diskpart()
/dev/$disk${swappart}.eli none swap sw 0 0 \
$BSDINSTALL_TMPETC/fstab ||
return $FAILURE
- elif [ ${swapsize:-0} -eq 0 ]; then
- # If swap is 0 sized, don't add it to fstab
else
f_eval_catch $funcname printf "$PRINTF_FSTAB" \
/dev/$disk$swappart none swap sw 0 0 \
@@ -1256,6 +1256,8 @@ zfs_create_boot()
f_dprintf "$funcname: Modifying directory permissions..."
local dir
for dir in /tmp /var/tmp; do
+ f_eval_catch $funcname mkdir "$MKDIR_P" \
+ $BSDINSTALL_CHROOT$dir || return $FAILURE
f_eval_catch $funcname chmod "$CHMOD_MODE" 1777 \
$BSDINSTALL_CHROOT$dir || return $FAILURE
done
diff --git a/usr.sbin/etcupdate/tests/tzsetup_test.sh b/usr.sbin/etcupdate/tests/tzsetup_test.sh
index dbdcc0e..5d3fe89 100644
--- a/usr.sbin/etcupdate/tests/tzsetup_test.sh
+++ b/usr.sbin/etcupdate/tests/tzsetup_test.sh
@@ -196,7 +196,7 @@ $COMMAND -nr -d $WORKDIR -D $TEST > $WORKDIR/testn.out
cat > $WORKDIR/correct.out <<EOF
Warnings:
- Needs update: /etc/localtime (required manual update via tzsetup(1))
+ Needs update: /etc/localtime (required manual update via tzsetup(8))
EOF
echo "Differences for missing /var/db/zoneinfo with -n:"
diff --git a/usr.sbin/lpr/chkprintcap/chkprintcap.c b/usr.sbin/lpr/chkprintcap/chkprintcap.c
index 91e8299..96fe489 100644
--- a/usr.sbin/lpr/chkprintcap/chkprintcap.c
+++ b/usr.sbin/lpr/chkprintcap/chkprintcap.c
@@ -222,7 +222,7 @@ note_spool_dir(const struct printer *pp, const struct stat *st)
struct dirlist *dp, *dp2, *last;
dp = malloc(sizeof *dp);
- if (dp == 0)
+ if (dp == NULL)
err(++problems, "malloc(%lu)", (u_long)sizeof *dp);
dp->stab = *st;
@@ -233,7 +233,7 @@ note_spool_dir(const struct printer *pp, const struct stat *st)
if (dp->path == 0)
err(++problems, "malloc(%lu)", strlen(pp->spool_dir) + 1UL);
- last = 0;
+ last = NULL;
LIST_FOREACH(dp2, &dirlist, link) {
if(!lessp(dp, dp2))
break;
@@ -255,7 +255,7 @@ check_spool_dirs(void)
for (dp = LIST_FIRST(&dirlist); dp; dp = dp2) {
dp2 = LIST_NEXT(dp, link);
- if (dp2 != 0 && equal(dp, dp2)) {
+ if (dp2 != NULL && equal(dp, dp2)) {
++problems;
if (strcmp(dp->path, dp2->path) == 0) {
warnx("%s and %s share the same spool, %s",
@@ -289,7 +289,7 @@ make_spool_dir(const struct printer *pp)
return;
}
gr = getgrnam("daemon");
- if (gr == 0)
+ if (gr == NULL)
errx(++problems, "cannot locate daemon group");
if (chown(sd, pp->daemon_user, gr->gr_gid) < 0) {
diff --git a/usr.sbin/lpr/common_source/common.c b/usr.sbin/lpr/common_source/common.c
index 52d6c9f..ce0ba7c 100644
--- a/usr.sbin/lpr/common_source/common.c
+++ b/usr.sbin/lpr/common_source/common.c
@@ -282,7 +282,7 @@ lock_file_name(const struct printer *pp, char *buf, size_t len)
{
static char staticbuf[MAXPATHLEN];
- if (buf == 0)
+ if (buf == NULL)
buf = staticbuf;
if (len == 0)
len = MAXPATHLEN;
@@ -300,7 +300,7 @@ status_file_name(const struct printer *pp, char *buf, size_t len)
{
static char staticbuf[MAXPATHLEN];
- if (buf == 0)
+ if (buf == NULL)
buf = staticbuf;
if (len == 0)
len = MAXPATHLEN;
diff --git a/usr.sbin/lpr/common_source/net.c b/usr.sbin/lpr/common_source/net.c
index ab6fa16..c495bbb 100644
--- a/usr.sbin/lpr/common_source/net.c
+++ b/usr.sbin/lpr/common_source/net.c
@@ -280,7 +280,7 @@ writel(int strm, ...)
if (n > NIOV) {
iovp = malloc(n * sizeof *iovp);
- if (iovp == 0)
+ if (iovp == NULL)
return -1;
}
diff --git a/usr.sbin/lpr/common_source/printcap.c b/usr.sbin/lpr/common_source/printcap.c
index 0d3644b..707b7b8 100644
--- a/usr.sbin/lpr/common_source/printcap.c
+++ b/usr.sbin/lpr/common_source/printcap.c
@@ -220,7 +220,7 @@ getprintcap_int(char *bp, struct printer *pp)
char *rp_name;
int error;
- if ((pp->printer = capdb_canonical_name(bp)) == 0)
+ if ((pp->printer = capdb_canonical_name(bp)) == NULL)
return PCAPERR_OSERR;
#define CHK(x) do {if ((x) == PCAPERR_OSERR) return PCAPERR_OSERR;}while(0)
@@ -386,7 +386,7 @@ capdb_getaltstr(char *bp, const char *shrt, const char *lng,
return status;
if (dflt) {
*result = strdup(dflt);
- if (*result == 0)
+ if (*result == NULL)
return PCAPERR_OSERR;
return strlen(*result);
}
@@ -439,9 +439,9 @@ capdb_canonical_name(const char *bp)
const char *nameend;
nameend = strpbrk(bp, "|:");
- if (nameend == 0)
+ if (nameend == NULL)
nameend = bp + 1;
- if ((retval = malloc(nameend - bp + 1)) != 0) {
+ if ((retval = malloc(nameend - bp + 1)) != NULL) {
retval[0] = '\0';
strncat(retval, bp, nameend - bp);
}
diff --git a/usr.sbin/lpr/common_source/request.c b/usr.sbin/lpr/common_source/request.c
index b650e5c..0c68fe9 100644
--- a/usr.sbin/lpr/common_source/request.c
+++ b/usr.sbin/lpr/common_source/request.c
@@ -69,11 +69,11 @@ free_request(struct request *rp)
free(rp->prettyname);
if (rp->authinfo)
free(rp->authinfo);
- while ((ru = TAILQ_FIRST(&rp->users)) != 0) {
+ while ((ru = TAILQ_FIRST(&rp->users)) != NULL) {
TAILQ_REMOVE(&rp->users, ru, ru_link);
free(ru);
}
- while ((rj = TAILQ_FIRST(&rp->jobids)) != 0) {
+ while ((rj = TAILQ_FIRST(&rp->jobids)) != NULL) {
TAILQ_REMOVE(&rp->jobids, rj, rj_link);
free(rj);
}
diff --git a/usr.sbin/lpr/common_source/rmjob.c b/usr.sbin/lpr/common_source/rmjob.c
index c89a6f0..96f20be 100644
--- a/usr.sbin/lpr/common_source/rmjob.c
+++ b/usr.sbin/lpr/common_source/rmjob.c
@@ -332,7 +332,7 @@ rmremote(const struct printer *pp)
else
niov = 4 + requests + 1;
iov = malloc(niov * sizeof *iov);
- if (iov == 0)
+ if (iov == NULL)
fatal(pp, "out of memory in rmremote()");
iov[0].iov_base = "\5";
iov[1].iov_base = pp->remote_queue;
diff --git a/usr.sbin/lpr/lpc/lpc.c b/usr.sbin/lpr/lpc/lpc.c
index cc58bd9..5b5ec78 100644
--- a/usr.sbin/lpr/lpc/lpc.c
+++ b/usr.sbin/lpr/lpc/lpc.c
@@ -103,7 +103,7 @@ main(int argc, char *argv[])
printf("?Ambiguous command\n");
exit(1);
}
- if (c == 0) {
+ if (c == NULL) {
printf("?Invalid command\n");
exit(1);
}
@@ -112,7 +112,7 @@ main(int argc, char *argv[])
printf("?Privileged command\n");
exit(1);
}
- if (c->c_generic != 0)
+ if (c->c_generic != NULL)
generic(c->c_generic, c->c_opts, c->c_handler,
argc, argv);
else
@@ -205,7 +205,7 @@ cmdscanner(void)
printf("?Ambiguous command\n");
continue;
}
- if (c == 0) {
+ if (c == NULL) {
printf("?Invalid command\n");
continue;
}
@@ -222,7 +222,7 @@ cmdscanner(void)
* routine might also be set on a generic routine for
* initial parameter processing.
*/
- if (c->c_generic != 0)
+ if (c->c_generic != NULL)
generic(c->c_generic, c->c_opts, c->c_handler,
margc, margv);
else
@@ -239,7 +239,7 @@ getcmd(const char *name)
longest = 0;
nmatches = 0;
- found = 0;
+ found = NULL;
for (c = cmdtab; (p = c->c_name); c++) {
for (q = name; *q == *p++; q++)
if (*q == 0) /* exact match? */
@@ -283,7 +283,7 @@ makeargv(void)
break;
*cp++ = '\0';
}
- *argp++ = 0;
+ *argp++ = NULL;
}
#define HELPINDENT (sizeof ("directory"))
diff --git a/usr.sbin/lpr/lpd/printjob.c b/usr.sbin/lpr/lpd/printjob.c
index 06ea1b0..b388b96 100644
--- a/usr.sbin/lpr/lpd/printjob.c
+++ b/usr.sbin/lpr/lpd/printjob.c
@@ -673,7 +673,7 @@ print(struct printer *pp, int format, char *file)
av[i++] = "-L";
av[i++] = *locale ? locale : "C";
av[i++] = "-F";
- av[i] = 0;
+ av[i] = NULL;
fo = ofd;
goto start;
}
@@ -795,7 +795,7 @@ print(struct printer *pp, int format, char *file)
av[n++] = "-h";
av[n++] = origin_host;
av[n++] = pp->acct_file;
- av[n] = 0;
+ av[n] = NULL;
fo = pfd;
if (of_pid > 0) { /* stop output filter */
write(ofd, "\031\1", 2);
@@ -1737,7 +1737,7 @@ init(struct printer *pp)
sprintf(&length[2], "%ld", pp->page_length);
sprintf(&pxwidth[2], "%ld", pp->page_pwidth);
sprintf(&pxlength[2], "%ld", pp->page_plength);
- if ((s = checkremote(pp)) != 0) {
+ if ((s = checkremote(pp)) != NULL) {
syslog(LOG_WARNING, "%s", s);
free(s);
}
OpenPOWER on IntegriCloud