summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorXinyu Chen <b03824@freescale.com>2012-05-25 17:06:07 +0800
committerXinyu Chen <b03824@freescale.com>2012-05-25 17:06:07 +0800
commitfd60e6b4548d6e31beff9a959148653481b2e695 (patch)
treee64a630c6aafd3723dfd7f293ab970f0aaf17418
parent411d6f671b216f7127284349d9c30a6cca88a15d (diff)
parent79f31695fcba11cb303e039eddaea82197416368 (diff)
Merge remote branch 'fsl-linux-sdk/imx_3.0.15' into imx_3.0.15_android
Conflicts: arch/arm/configs/imx6_defconfig arch/arm/kernel/smp.c arch/arm/mach-mx6/board-mx6q_arm2.c arch/arm/mach-mx6/board-mx6q_sabreauto.c arch/arm/mach-mx6/board-mx6q_sabrelite.c arch/arm/mach-mx6/board-mx6q_sabresd.c arch/arm/mach-mx6/bus_freq.c arch/arm/mach-mx6/clock.c arch/arm/mach-mx6/cpu.c arch/arm/mach-mx6/devices-imx6q.h arch/arm/mach-mx6/mx6_ddr_freq.S arch/arm/mach-mx6/mx6_mmdc.c arch/arm/mach-mx6/mx6_suspend.S arch/arm/mach-mx6/mx6_wfi.S arch/arm/mach-mx6/plat_hotplug.c arch/arm/mach-mx6/pm.c arch/arm/mach-mx6/system.c arch/arm/plat-mxc/cpufreq.c arch/arm/plat-mxc/system.c drivers/media/video/mxc/capture/Kconfig drivers/media/video/mxc/capture/mxc_v4l2_capture.c drivers/media/video/mxc/capture/ov5640_mipi.c drivers/media/video/mxc/output/mxc_vout.c drivers/mmc/host/sdhci.c drivers/mtd/nand/gpmi-nand/gpmi-lib.c drivers/mxc/gpu-viv/arch/XAQ2/hal/kernel/gc_hal_kernel_hardware.c drivers/mxc/gpu-viv/hal/kernel/gc_hal_kernel_mmu.c drivers/mxc/gpu-viv/hal/kernel/inc/gc_hal_enum.h drivers/mxc/gpu-viv/hal/kernel/inc/gc_hal_options.h drivers/mxc/gpu-viv/hal/kernel/inc/gc_hal_version.h drivers/mxc/gpu-viv/hal/os/linux/kernel/gc_hal_kernel_driver.c drivers/mxc/gpu-viv/hal/os/linux/kernel/gc_hal_kernel_os.c drivers/mxc/ipu3/vdoa.c drivers/power/max8903_charger.c drivers/video/mxc/mxc_ipuv3_fb.c sound/soc/codecs/mxc_spdif.c sound/soc/imx/Makefile sound/soc/imx/imx-wm8962.c
-rw-r--r--Documentation/arm/imx/udc.txt24
-rw-r--r--arch/arm/configs/imx6_defconfig18
-rw-r--r--arch/arm/configs/imx6_updater_defconfig20
-rw-r--r--arch/arm/configs/imx6s_defconfig2639
-rw-r--r--arch/arm/mach-mx6/Kconfig46
-rw-r--r--arch/arm/mach-mx6/Makefile3
-rw-r--r--arch/arm/mach-mx6/board-mx6dl_sabresd.h6
-rw-r--r--arch/arm/mach-mx6/board-mx6q_arm2.c33
-rw-r--r--arch/arm/mach-mx6/board-mx6q_sabreauto.c43
-rw-r--r--arch/arm/mach-mx6/board-mx6q_sabrelite.c21
-rw-r--r--arch/arm/mach-mx6/board-mx6q_sabresd.c185
-rwxr-xr-xarch/arm/mach-mx6/board-mx6sl_arm2.c1068
-rwxr-xr-xarch/arm/mach-mx6/board-mx6sl_arm2.h305
-rw-r--r--arch/arm/mach-mx6/bus_freq.c110
-rw-r--r--arch/arm/mach-mx6/clock.c158
-rwxr-xr-xarch/arm/mach-mx6/clock_mx6sl.c3821
-rw-r--r--arch/arm/mach-mx6/cpu.c124
-rw-r--r--arch/arm/mach-mx6/crm_regs.h10
-rw-r--r--arch/arm/mach-mx6/devices-imx6q.h27
-rw-r--r--arch/arm/mach-mx6/mm.c28
-rw-r--r--arch/arm/mach-mx6/mx6_ddr_freq.S123
-rw-r--r--arch/arm/mach-mx6/mx6_fec.c7
-rw-r--r--arch/arm/mach-mx6/mx6_mmdc.c3
-rw-r--r--arch/arm/mach-mx6/mx6_suspend.S (renamed from arch/arm/mach-mx6/mx6q_suspend.S)214
-rw-r--r--arch/arm/mach-mx6/mx6_wfi.S57
-rw-r--r--arch/arm/mach-mx6/mx6q_sabresd_pmic_pfuze100.c18
-rw-r--r--arch/arm/mach-mx6/mx6sl_arm2_pmic_pfuze100.c424
-rw-r--r--arch/arm/mach-mx6/plat_hotplug.c2
-rw-r--r--arch/arm/mach-mx6/pm.c48
-rw-r--r--arch/arm/mach-mx6/system.c126
-rw-r--r--arch/arm/mach-mx6/usb_dr.c14
-rw-r--r--arch/arm/mach-mx6/usb_h1.c25
-rw-r--r--arch/arm/mach-mx6/usb_h2.c4
-rw-r--r--arch/arm/plat-mxc/audmux-v2.c8
-rwxr-xr-xarch/arm/plat-mxc/cpu.c12
-rwxr-xr-xarch/arm/plat-mxc/cpufreq.c209
-rwxr-xr-xarch/arm/plat-mxc/devices/Kconfig10
-rwxr-xr-xarch/arm/plat-mxc/devices/Makefile3
-rw-r--r--arch/arm/plat-mxc/devices/platform-fec.c24
-rw-r--r--arch/arm/plat-mxc/devices/platform-fsl-usb2-wakeup.c8
-rw-r--r--arch/arm/plat-mxc/devices/platform-imx-caam.c93
-rwxr-xr-xarch/arm/plat-mxc/devices/platform-imx-dma.c20
-rw-r--r--arch/arm/plat-mxc/devices/platform-imx-elcdif-fb.c56
-rw-r--r--arch/arm/plat-mxc/devices/platform-imx-spdc-fb.c56
-rw-r--r--arch/arm/plat-mxc/devices/platform-mxc-ehci.c6
-rwxr-xr-xarch/arm/plat-mxc/dvfs_core.c8
-rwxr-xr-xarch/arm/plat-mxc/gpio.c2
-rwxr-xr-xarch/arm/plat-mxc/include/mach/common.h3
-rwxr-xr-xarch/arm/plat-mxc/include/mach/devices-common.h30
-rw-r--r--arch/arm/plat-mxc/include/mach/epdc.h29
-rw-r--r--arch/arm/plat-mxc/include/mach/iomux-mx6q.h17
-rwxr-xr-xarch/arm/plat-mxc/include/mach/iomux-mx6sl.h2968
-rw-r--r--arch/arm/plat-mxc/include/mach/iomux-v3.h2
-rwxr-xr-xarch/arm/plat-mxc/include/mach/memory.h1
-rw-r--r--arch/arm/plat-mxc/include/mach/mx6.h49
-rwxr-xr-xarch/arm/plat-mxc/include/mach/mxc.h10
-rwxr-xr-xarch/arm/plat-mxc/include/mach/mxc_edid.h1
-rwxr-xr-xarch/arm/plat-mxc/include/mach/system.h17
-rw-r--r--arch/arm/plat-mxc/system.c22
-rw-r--r--arch/arm/plat-mxc/time.c6
-rwxr-xr-xarch/arm/plat-mxc/usb_common.c16
-rw-r--r--arch/arm/tools/mach-types1
-rw-r--r--drivers/cpufreq/cpufreq_interactive.c2
-rw-r--r--drivers/crypto/caam/Kconfig2
-rw-r--r--drivers/crypto/caam/caamalg.c1982
-rw-r--r--drivers/crypto/caam/compat.h16
-rw-r--r--drivers/crypto/caam/ctrl.c161
-rw-r--r--drivers/crypto/caam/desc_constr.h60
-rw-r--r--drivers/crypto/caam/intern.h28
-rw-r--r--drivers/crypto/caam/jr.c81
-rw-r--r--drivers/crypto/caam/regs.h16
-rw-r--r--drivers/dma/imx-sdma.c46
-rw-r--r--drivers/dma/pxp/pxp_dma.c17
-rw-r--r--drivers/dma/pxp/pxp_dma_v2.c11
-rwxr-xr-xdrivers/input/touchscreen/Kconfig12
-rwxr-xr-xdrivers/input/touchscreen/Makefile1
-rw-r--r--drivers/input/touchscreen/elan_ts.c387
-rwxr-xr-xdrivers/input/touchscreen/max11801_ts.c283
-rw-r--r--drivers/media/video/mxc/capture/ipu_prp_enc.c5
-rw-r--r--drivers/media/video/mxc/capture/mxc_v4l2_capture.c115
-rw-r--r--drivers/media/video/mxc/capture/mxc_v4l2_capture.h8
-rw-r--r--drivers/media/video/mxc/capture/ov3640.c3
-rw-r--r--drivers/media/video/mxc/capture/ov5640.c3
-rw-r--r--drivers/media/video/mxc/capture/ov5640_mipi.c17
-rw-r--r--drivers/media/video/mxc/capture/ov5642.c5
-rw-r--r--drivers/media/video/mxc/capture/ov8820_mipi.c6
-rw-r--r--drivers/media/video/mxc/output/mxc_vout.c22
-rw-r--r--drivers/mfd/pfuze-core.c7
-rw-r--r--drivers/mmc/host/sdhci-esdhc-imx.c26
-rwxr-xr-xdrivers/mmc/host/sdhci.c5
-rw-r--r--drivers/mtd/nand/gpmi-nand/gpmi-lib.c28
-rw-r--r--drivers/mxc/gpu-viv/arch/GC350/hal/kernel/gc_hal_kernel_hardware_vg.c4
-rw-r--r--drivers/mxc/gpu-viv/arch/XAQ2/hal/kernel/gc_hal_kernel_context.c3
-rw-r--r--drivers/mxc/gpu-viv/arch/XAQ2/hal/kernel/gc_hal_kernel_hardware.c23
-rw-r--r--drivers/mxc/gpu-viv/hal/kernel/gc_hal_kernel.c40
-rw-r--r--drivers/mxc/gpu-viv/hal/kernel/gc_hal_kernel.h10
-rw-r--r--drivers/mxc/gpu-viv/hal/kernel/gc_hal_kernel_command.c2
-rw-r--r--drivers/mxc/gpu-viv/hal/kernel/gc_hal_kernel_command_vg.c39
-rw-r--r--drivers/mxc/gpu-viv/hal/kernel/gc_hal_kernel_debug.c6
-rw-r--r--drivers/mxc/gpu-viv/hal/kernel/gc_hal_kernel_event.c41
-rw-r--r--drivers/mxc/gpu-viv/hal/kernel/gc_hal_kernel_mmu.c6
-rw-r--r--drivers/mxc/gpu-viv/hal/kernel/gc_hal_kernel_video_memory.c12
-rw-r--r--drivers/mxc/gpu-viv/hal/kernel/inc/gc_hal.h6
-rw-r--r--drivers/mxc/gpu-viv/hal/kernel/inc/gc_hal_base.h9
-rw-r--r--drivers/mxc/gpu-viv/hal/kernel/inc/gc_hal_driver_vg.h20
-rw-r--r--drivers/mxc/gpu-viv/hal/kernel/inc/gc_hal_eglplatform.h56
-rw-r--r--drivers/mxc/gpu-viv/hal/kernel/inc/gc_hal_engine.h22
-rw-r--r--drivers/mxc/gpu-viv/hal/kernel/inc/gc_hal_enum.h8
-rw-r--r--drivers/mxc/gpu-viv/hal/kernel/inc/gc_hal_options.h6
-rw-r--r--drivers/mxc/gpu-viv/hal/kernel/inc/gc_hal_version.h4
-rw-r--r--drivers/mxc/gpu-viv/hal/os/linux/kernel/gc_hal_kernel_device.c14
-rw-r--r--drivers/mxc/gpu-viv/hal/os/linux/kernel/gc_hal_kernel_device.h24
-rw-r--r--drivers/mxc/gpu-viv/hal/os/linux/kernel/gc_hal_kernel_driver.c16
-rw-r--r--drivers/mxc/gpu-viv/hal/os/linux/kernel/gc_hal_kernel_os.c111
-rw-r--r--drivers/mxc/ipu3/ipu_common.c86
-rw-r--r--drivers/mxc/ipu3/ipu_device.c16
-rw-r--r--drivers/mxc/ipu3/ipu_disp.c68
-rw-r--r--drivers/mxc/ipu3/ipu_ic.c2
-rw-r--r--drivers/mxc/ipu3/ipu_prv.h13
-rw-r--r--drivers/mxc/ipu3/vdoa.c48
-rw-r--r--drivers/mxc/ipu3/vdoa.h2
-rw-r--r--drivers/net/can/flexcan.c11
-rwxr-xr-xdrivers/net/fec.c75
-rwxr-xr-xdrivers/power/Kconfig9
-rwxr-xr-xdrivers/power/Makefile1
-rwxr-xr-xdrivers/power/max8903_battery.c748
-rw-r--r--drivers/power/max8903_charger.c10
-rwxr-xr-xdrivers/power/sabresd_battery.c701
-rw-r--r--drivers/regulator/core.c2
-rw-r--r--drivers/regulator/pfuze100-regulator.c19
-rw-r--r--drivers/tty/serial/imx.c126
-rw-r--r--drivers/usb/gadget/zero.c33
-rw-r--r--drivers/video/mxc/Kconfig11
-rw-r--r--drivers/video/mxc/Makefile1
-rw-r--r--drivers/video/mxc/epdc_regs.h4
-rw-r--r--drivers/video/mxc/ldb.c11
-rw-r--r--drivers/video/mxc/mxc_edid.c10
-rw-r--r--drivers/video/mxc/mxc_elcdif_fb.c16
-rw-r--r--drivers/video/mxc/mxc_epdc_fb.c9
-rw-r--r--drivers/video/mxc/mxc_ipuv3_fb.c18
-rw-r--r--drivers/video/mxc/mxc_spdc_fb.c4168
-rw-r--r--drivers/video/mxc/mxc_spdc_fb.h352
-rw-r--r--drivers/video/mxc/mxcfb_seiko_wvga.c4
-rw-r--r--firmware/Makefile1
-rw-r--r--firmware/imx/spdc_pvi.fw.ihex50046
-rw-r--r--include/linux/fsl_devices.h16
-rw-r--r--include/linux/mxcfb.h2
-rw-r--r--include/linux/mxcfb_epdc_kernel.h13
-rwxr-xr-xinclude/linux/power/max8903_battery.h62
-rw-r--r--include/linux/power/sabresd_battery.h62
-rw-r--r--include/linux/pxp_dma.h1
-rw-r--r--sound/soc/codecs/Kconfig3
-rw-r--r--sound/soc/codecs/Makefile2
-rw-r--r--sound/soc/codecs/cs42888.c13
-rw-r--r--sound/soc/codecs/mxc_hdmi.c212
-rw-r--r--sound/soc/codecs/mxc_spdif.c200
-rw-r--r--sound/soc/codecs/si4763.c109
-rw-r--r--sound/soc/codecs/wm8962.c10
-rw-r--r--sound/soc/imx/Kconfig8
-rw-r--r--sound/soc/imx/Makefile1
-rw-r--r--sound/soc/imx/imx-si4763.c198
-rw-r--r--sound/soc/imx/imx-si4763.h19
-rw-r--r--sound/soc/imx/imx-wm8962.c32
163 files changed, 73363 insertions, 1499 deletions
diff --git a/Documentation/arm/imx/udc.txt b/Documentation/arm/imx/udc.txt
index e532f310d24d..27bee3b6b420 100644
--- a/Documentation/arm/imx/udc.txt
+++ b/Documentation/arm/imx/udc.txt
@@ -33,3 +33,27 @@ to different PCs.
Since there is no feedback at current usb audio framework,
it may have pop noise/no sound after play some minutes.
+How to test auto remote wakeup with the g_zero gadget
+1. Prepare a USB host which featured with remote wakeup alternatively, You can
+use another i.mx board (like mx50 rdp, or mx6q) for test device board.
+2. Boot up both boards, and connect two boards with USB cable.
+3. At device side, do below commands:
+modprobe g_zero autoresume=3000 interval=1 endms=5000
+we can use the above three parameters to control device send resume signal time.
+Autoresume is the minimum number of milliseconds before sending resume signal,
+and the time before sending resume signal will automatically increase according
+to interval value,the endms is the max number of milliseconds before sending
+resume signal.When autoresume is 0 or not be set,the test device auto remote
+wakeup function will be disabled.
+4. At host side, first do below command:
+echo enabled > /sys/devices/platform/fsl-ehci.1/power/wakeup
+echo enabled > /sys/bus/usb/devices/1-1/power/wakeup
+And you need build a test script to repeat standby the system like below:
+while [ 1 ] ;do echo mem > /sys/power/state;sleep 5 ;done
+Then run the test script.
+5. Then USB device will enter the suspended state ,and autoresume
+milliseconds later,the device will send resume signal to wake up host.
+6. The expected behavior is: the host device be waked up, and there is not
+re-enumeration happens.
+7. The host will enter suspended state again,and test case will repeat step
+5 and step 6.
diff --git a/arch/arm/configs/imx6_defconfig b/arch/arm/configs/imx6_defconfig
index bf23d5ef3d4c..5b9078268f68 100644
--- a/arch/arm/configs/imx6_defconfig
+++ b/arch/arm/configs/imx6_defconfig
@@ -965,6 +965,7 @@ CONFIG_SMSC911X=y
# CONFIG_KS8851 is not set
# CONFIG_KS8851_MLL is not set
CONFIG_FEC=y
+CONFIG_FEC_NAPI=y
# CONFIG_FEC_1588 is not set
# CONFIG_FTMAC100 is not set
# CONFIG_NETDEV_1000 is not set
@@ -1067,11 +1068,12 @@ CONFIG_INPUT_TOUCHSCREEN=y
# CONFIG_TOUCHSCREEN_HAMPSHIRE is not set
# CONFIG_TOUCHSCREEN_EETI is not set
CONFIG_TOUCHSCREEN_EGALAX=y
+CONFIG_TOUCHSCREEN_ELAN=y
# CONFIG_TOUCHSCREEN_FUJITSU is not set
# CONFIG_TOUCHSCREEN_GUNZE is not set
# CONFIG_TOUCHSCREEN_ELO is not set
# CONFIG_TOUCHSCREEN_WACOM_W8001 is not set
-# CONFIG_TOUCHSCREEN_MAX11801 is not set
+CONFIG_TOUCHSCREEN_MAX11801=y
# CONFIG_TOUCHSCREEN_MCS5000 is not set
# CONFIG_TOUCHSCREEN_MTOUCH is not set
# CONFIG_TOUCHSCREEN_INEXIO is not set
@@ -1291,7 +1293,8 @@ CONFIG_POWER_SUPPLY=y
# CONFIG_BATTERY_MAX17040 is not set
# CONFIG_BATTERY_MAX17042 is not set
# CONFIG_CHARGER_ISP1704 is not set
-CONFIG_CHARGER_MAX8903=y
+# CONFIG_CHARGER_MAX8903 is not set
+CONFIG_SABRESD_MAX8903=y
# CONFIG_CHARGER_GPIO is not set
CONFIG_HWMON=y
# CONFIG_HWMON_VID is not set
@@ -2088,7 +2091,8 @@ CONFIG_LEDS_CLASS=y
#
# CONFIG_LEDS_LM3530 is not set
# CONFIG_LEDS_PCA9532 is not set
-# CONFIG_LEDS_GPIO is not set
+CONFIG_LEDS_GPIO=y
+CONFIG_LEDS_GPIO_PLATFORM=y
# CONFIG_LEDS_LP3944 is not set
# CONFIG_LEDS_LP5521 is not set
# CONFIG_LEDS_LP5523 is not set
@@ -2098,7 +2102,7 @@ CONFIG_LEDS_CLASS=y
# CONFIG_LEDS_REGULATOR is not set
# CONFIG_LEDS_BD2802 is not set
# CONFIG_LEDS_LT3593 is not set
-# CONFIG_LEDS_TRIGGERS is not set
+CONFIG_LEDS_TRIGGERS=y
#
# LED Triggers
@@ -2108,12 +2112,6 @@ CONFIG_LEDS_CLASS=y
# CONFIG_LEDS_TRIGGER_BACKLIGHT is not set
CONFIG_LEDS_TRIGGER_GPIO=y
CONFIG_LEDS_TRIGGER_DEFAULT_ON=y
-CONFIG_LEDS_TRIGGER_SLEEP=y
-# CONFIG_LEDS_TRIGGER_TIMER is not set
-# CONFIG_LEDS_TRIGGER_HEARTBEAT is not set
-# CONFIG_LEDS_TRIGGER_BACKLIGHT is not set
-CONFIG_LEDS_TRIGGER_GPIO=y
-CONFIG_LEDS_TRIGGER_DEFAULT_ON=y
#
# iptables trigger is under Netfilter config (LED target)
diff --git a/arch/arm/configs/imx6_updater_defconfig b/arch/arm/configs/imx6_updater_defconfig
index c40094c2bde2..56406344b130 100644
--- a/arch/arm/configs/imx6_updater_defconfig
+++ b/arch/arm/configs/imx6_updater_defconfig
@@ -26,7 +26,7 @@ CONFIG_GENERIC_CALIBRATE_DELAY=y
CONFIG_NEED_DMA_MAP_STATE=y
CONFIG_FIQ=y
CONFIG_VECTORS_BASE=0xffff0000
-# CONFIG_ARM_PATCH_PHYS_VIRT is not set
+CONFIG_ARM_PATCH_PHYS_VIRT=y
CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
CONFIG_HAVE_IRQ_WORK=y
CONFIG_IRQ_WORK=y
@@ -264,6 +264,7 @@ CONFIG_IMX_HAVE_PLATFORM_FSL_USB2_UDC=y
CONFIG_IMX_HAVE_PLATFORM_GPMI_NFC=y
CONFIG_IMX_HAVE_PLATFORM_IMX2_WDT=y
CONFIG_IMX_HAVE_PLATFORM_IMX_SNVS_RTC=y
+CONFIG_IMX_HAVE_PLATFORM_IMX_CAAM=y
CONFIG_IMX_HAVE_PLATFORM_IMX_I2C=y
CONFIG_IMX_HAVE_PLATFORM_IMX_SSI=y
CONFIG_IMX_HAVE_PLATFORM_IMX_ESAI=y
@@ -292,6 +293,8 @@ CONFIG_IMX_HAVE_PLATFORM_IMX_PM=y
CONFIG_IMX_HAVE_PLATFORM_IMX_ASRC=y
CONFIG_IMX_HAVE_PLATFORM_IMX_MIPI_DSI=y
CONFIG_IMX_HAVE_PLATFORM_IMX_MIPI_CSI2=y
+CONFIG_IMX_HAVE_PLATFORM_IMX_VDOA=y
+CONFIG_IMX_HAVE_PLATFORM_IMX_PCIE=y
#
# Freescale MXC Implementations
@@ -306,7 +309,9 @@ CONFIG_ARCH_MX6=y
CONFIG_ARCH_MX6Q=y
CONFIG_FORCE_MAX_ZONEORDER=13
CONFIG_SOC_IMX6Q=y
+CONFIG_SOC_IMX6SL=y
CONFIG_MACH_MX6Q_ARM2=y
+CONFIG_MACH_MX6SL_ARM2=y
CONFIG_MACH_MX6Q_SABRELITE=y
CONFIG_MACH_MX6Q_SABRESD=y
CONFIG_MACH_MX6Q_SABREAUTO=y
@@ -315,10 +320,13 @@ CONFIG_MACH_MX6Q_SABREAUTO=y
# MX6 Options:
#
# CONFIG_IMX_PCIE is not set
+# CONFIG_MX6_INTER_LDO_BYPASS is not set
CONFIG_ISP1504_MXC=y
# CONFIG_MXC_IRQ_PRIOR is not set
CONFIG_MXC_PWM=y
# CONFIG_MXC_DEBUG_BOARD is not set
+# CONFIG_MXC_REBOOT_MFGMODE is not set
+# CONFIG_MXC_REBOOT_ANDROID_CMD is not set
CONFIG_ARCH_MXC_IOMUX_V3=y
CONFIG_ARCH_MXC_AUDMUX_V2=y
CONFIG_IRAM_ALLOC=y
@@ -451,7 +459,7 @@ CONFIG_CMDLINE_FROM_BOOTLOADER=y
# CONFIG_XIP_KERNEL is not set
# CONFIG_KEXEC is not set
# CONFIG_CRASH_DUMP is not set
-# CONFIG_AUTO_ZRELADDR is not set
+CONFIG_AUTO_ZRELADDR=y
#
# CPU Power Management
@@ -904,6 +912,7 @@ CONFIG_SMSC911X=y
# CONFIG_KS8851 is not set
# CONFIG_KS8851_MLL is not set
CONFIG_FEC=y
+# CONFIG_FEC_NAPI is not set
# CONFIG_FEC_1588 is not set
# CONFIG_FTMAC100 is not set
# CONFIG_NETDEV_1000 is not set
@@ -981,6 +990,7 @@ CONFIG_INPUT_TOUCHSCREEN=y
# CONFIG_TOUCHSCREEN_HAMPSHIRE is not set
# CONFIG_TOUCHSCREEN_EETI is not set
CONFIG_TOUCHSCREEN_EGALAX=y
+# CONFIG_TOUCHSCREEN_ELAN is not set
# CONFIG_TOUCHSCREEN_FUJITSU is not set
# CONFIG_TOUCHSCREEN_GUNZE is not set
# CONFIG_TOUCHSCREEN_ELO is not set
@@ -1414,10 +1424,10 @@ CONFIG_VIDEO_MXC_IPU_CAMERA=y
# CONFIG_MXC_CAMERA_OV2640 is not set
CONFIG_MXC_CAMERA_OV3640=m
CONFIG_MXC_CAMERA_OV5640=m
-# CONFIG_MXC_CAMERA_OV5640_MIPI is not set
# CONFIG_MXC_CAMERA_OV8820_MIPI is not set
CONFIG_MXC_CAMERA_OV5642=m
# CONFIG_MXC_TVIN_ADV7180 is not set
+# CONFIG_MXC_CAMERA_OV5640_MIPI is not set
CONFIG_MXC_CAMERA_SENSOR_CLK=m
CONFIG_MXC_IPU_PRP_VF_SDC=m
CONFIG_MXC_IPU_PRP_ENC=m
@@ -1555,7 +1565,9 @@ CONFIG_SND_SOC_AC97_BUS=y
CONFIG_SND_IMX_SOC=y
CONFIG_SND_MXC_SOC_MX2=y
# CONFIG_SND_SOC_IMX_SGTL5000 is not set
+# CONFIG_SND_SOC_IMX_WM8962 is not set
CONFIG_SND_SOC_IMX_CS42888=y
+# CONFIG_SND_SOC_IMX_SI4763 is not set
# CONFIG_SND_SOC_IMX_SPDIF is not set
# CONFIG_SND_SOC_IMX_HDMI is not set
CONFIG_SND_SOC_I2C_AND_SPI=y
@@ -1886,7 +1898,6 @@ CONFIG_DMADEVICES=y
# DMA Devices
#
# CONFIG_DW_DMAC is not set
-# CONFIG_MXC_PXP is not set
# CONFIG_MXC_PXP_V2 is not set
# CONFIG_TIMB_DMA is not set
CONFIG_IMX_SDMA=y
@@ -2367,6 +2378,7 @@ CONFIG_CRYPTO_LZO=y
# CONFIG_CRYPTO_USER_API_HASH is not set
# CONFIG_CRYPTO_USER_API_SKCIPHER is not set
CONFIG_CRYPTO_HW=y
+# CONFIG_CRYPTO_DEV_FSL_CAAM is not set
# CONFIG_BINARY_PRINTF is not set
#
diff --git a/arch/arm/configs/imx6s_defconfig b/arch/arm/configs/imx6s_defconfig
new file mode 100644
index 000000000000..3db0aeee4e22
--- /dev/null
+++ b/arch/arm/configs/imx6s_defconfig
@@ -0,0 +1,2639 @@
+#
+# Automatically generated make config: don't edit
+# Linux/arm 3.0.15 Kernel Configuration
+#
+CONFIG_ARM=y
+CONFIG_HAVE_PWM=y
+CONFIG_SYS_SUPPORTS_APM_EMULATION=y
+CONFIG_HAVE_SCHED_CLOCK=y
+CONFIG_GENERIC_GPIO=y
+# CONFIG_ARCH_USES_GETTIMEOFFSET is not set
+CONFIG_GENERIC_CLOCKEVENTS=y
+CONFIG_KTIME_SCALAR=y
+CONFIG_HAVE_PROC_CPU=y
+CONFIG_STACKTRACE_SUPPORT=y
+CONFIG_HAVE_LATENCYTOP_SUPPORT=y
+CONFIG_LOCKDEP_SUPPORT=y
+CONFIG_TRACE_IRQFLAGS_SUPPORT=y
+CONFIG_HARDIRQS_SW_RESEND=y
+CONFIG_GENERIC_IRQ_PROBE=y
+CONFIG_RWSEM_GENERIC_SPINLOCK=y
+CONFIG_ARCH_HAS_CPUFREQ=y
+CONFIG_ARCH_HAS_CPU_IDLE_WAIT=y
+CONFIG_GENERIC_HWEIGHT=y
+CONFIG_GENERIC_CALIBRATE_DELAY=y
+CONFIG_ZONE_DMA=y
+CONFIG_NEED_DMA_MAP_STATE=y
+CONFIG_FIQ=y
+CONFIG_VECTORS_BASE=0xffff0000
+CONFIG_ARM_PATCH_PHYS_VIRT=y
+CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
+CONFIG_HAVE_IRQ_WORK=y
+CONFIG_IRQ_WORK=y
+
+#
+# General setup
+#
+CONFIG_EXPERIMENTAL=y
+CONFIG_BROKEN_ON_SMP=y
+CONFIG_INIT_ENV_ARG_LIMIT=32
+CONFIG_CROSS_COMPILE=""
+CONFIG_LOCALVERSION=""
+CONFIG_LOCALVERSION_AUTO=y
+CONFIG_HAVE_KERNEL_GZIP=y
+CONFIG_HAVE_KERNEL_LZMA=y
+CONFIG_HAVE_KERNEL_LZO=y
+CONFIG_KERNEL_GZIP=y
+# CONFIG_KERNEL_LZMA is not set
+# CONFIG_KERNEL_LZO is not set
+CONFIG_DEFAULT_HOSTNAME="(none)"
+CONFIG_SWAP=y
+CONFIG_SYSVIPC=y
+CONFIG_SYSVIPC_SYSCTL=y
+# CONFIG_POSIX_MQUEUE is not set
+# CONFIG_BSD_PROCESS_ACCT is not set
+# CONFIG_FHANDLE is not set
+# CONFIG_TASKSTATS is not set
+# CONFIG_AUDIT is not set
+CONFIG_HAVE_GENERIC_HARDIRQS=y
+
+#
+# IRQ subsystem
+#
+CONFIG_GENERIC_HARDIRQS=y
+CONFIG_HAVE_SPARSE_IRQ=y
+CONFIG_GENERIC_IRQ_SHOW=y
+# CONFIG_SPARSE_IRQ is not set
+
+#
+# RCU Subsystem
+#
+CONFIG_TREE_PREEMPT_RCU=y
+# CONFIG_TINY_RCU is not set
+# CONFIG_TINY_PREEMPT_RCU is not set
+CONFIG_PREEMPT_RCU=y
+# CONFIG_RCU_TRACE is not set
+CONFIG_RCU_FANOUT=32
+# CONFIG_RCU_FANOUT_EXACT is not set
+# CONFIG_TREE_RCU_TRACE is not set
+# CONFIG_RCU_BOOST is not set
+CONFIG_IKCONFIG=y
+CONFIG_IKCONFIG_PROC=y
+CONFIG_LOG_BUF_SHIFT=14
+# CONFIG_CGROUPS is not set
+# CONFIG_NAMESPACES is not set
+# CONFIG_SCHED_AUTOGROUP is not set
+# CONFIG_SYSFS_DEPRECATED is not set
+# CONFIG_RELAY is not set
+# CONFIG_BLK_DEV_INITRD is not set
+# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set
+CONFIG_SYSCTL=y
+CONFIG_ANON_INODES=y
+CONFIG_EXPERT=y
+CONFIG_UID16=y
+CONFIG_SYSCTL_SYSCALL=y
+CONFIG_KALLSYMS=y
+CONFIG_HOTPLUG=y
+CONFIG_PRINTK=y
+CONFIG_BUG=y
+CONFIG_ELF_CORE=y
+CONFIG_BASE_FULL=y
+CONFIG_FUTEX=y
+CONFIG_EPOLL=y
+CONFIG_SIGNALFD=y
+CONFIG_TIMERFD=y
+CONFIG_EVENTFD=y
+CONFIG_SHMEM=y
+CONFIG_AIO=y
+CONFIG_EMBEDDED=y
+CONFIG_HAVE_PERF_EVENTS=y
+CONFIG_PERF_USE_VMALLOC=y
+
+#
+# Kernel Performance Events And Counters
+#
+CONFIG_PERF_EVENTS=y
+# CONFIG_PERF_COUNTERS is not set
+CONFIG_VM_EVENT_COUNTERS=y
+CONFIG_SLUB_DEBUG=y
+CONFIG_COMPAT_BRK=y
+# CONFIG_SLAB is not set
+CONFIG_SLUB=y
+# CONFIG_SLOB is not set
+# CONFIG_PROFILING is not set
+CONFIG_HAVE_OPROFILE=y
+# CONFIG_KPROBES is not set
+CONFIG_HAVE_KPROBES=y
+CONFIG_HAVE_KRETPROBES=y
+CONFIG_HAVE_REGS_AND_STACK_ACCESS_API=y
+CONFIG_HAVE_CLK=y
+CONFIG_HAVE_DMA_API_DEBUG=y
+CONFIG_HAVE_HW_BREAKPOINT=y
+
+#
+# GCOV-based kernel profiling
+#
+# CONFIG_GCOV_KERNEL is not set
+CONFIG_HAVE_GENERIC_DMA_COHERENT=y
+CONFIG_SLABINFO=y
+CONFIG_RT_MUTEXES=y
+CONFIG_BASE_SMALL=0
+CONFIG_MODULES=y
+# CONFIG_MODULE_FORCE_LOAD is not set
+CONFIG_MODULE_UNLOAD=y
+CONFIG_MODULE_FORCE_UNLOAD=y
+CONFIG_MODVERSIONS=y
+# CONFIG_MODULE_SRCVERSION_ALL is not set
+CONFIG_BLOCK=y
+CONFIG_LBDAF=y
+# CONFIG_BLK_DEV_BSG is not set
+# CONFIG_BLK_DEV_INTEGRITY is not set
+
+#
+# IO Schedulers
+#
+CONFIG_IOSCHED_NOOP=y
+CONFIG_IOSCHED_DEADLINE=y
+CONFIG_IOSCHED_CFQ=y
+# CONFIG_DEFAULT_DEADLINE is not set
+CONFIG_DEFAULT_CFQ=y
+# CONFIG_DEFAULT_NOOP is not set
+CONFIG_DEFAULT_IOSCHED="cfq"
+# CONFIG_INLINE_SPIN_TRYLOCK is not set
+# CONFIG_INLINE_SPIN_TRYLOCK_BH is not set
+# CONFIG_INLINE_SPIN_LOCK is not set
+# CONFIG_INLINE_SPIN_LOCK_BH is not set
+# CONFIG_INLINE_SPIN_LOCK_IRQ is not set
+# CONFIG_INLINE_SPIN_LOCK_IRQSAVE is not set
+# CONFIG_INLINE_SPIN_UNLOCK is not set
+# CONFIG_INLINE_SPIN_UNLOCK_BH is not set
+# CONFIG_INLINE_SPIN_UNLOCK_IRQ is not set
+# CONFIG_INLINE_SPIN_UNLOCK_IRQRESTORE is not set
+# CONFIG_INLINE_READ_TRYLOCK is not set
+# CONFIG_INLINE_READ_LOCK is not set
+# CONFIG_INLINE_READ_LOCK_BH is not set
+# CONFIG_INLINE_READ_LOCK_IRQ is not set
+# CONFIG_INLINE_READ_LOCK_IRQSAVE is not set
+# CONFIG_INLINE_READ_UNLOCK is not set
+# CONFIG_INLINE_READ_UNLOCK_BH is not set
+# CONFIG_INLINE_READ_UNLOCK_IRQ is not set
+# CONFIG_INLINE_READ_UNLOCK_IRQRESTORE is not set
+# CONFIG_INLINE_WRITE_TRYLOCK is not set
+# CONFIG_INLINE_WRITE_LOCK is not set
+# CONFIG_INLINE_WRITE_LOCK_BH is not set
+# CONFIG_INLINE_WRITE_LOCK_IRQ is not set
+# CONFIG_INLINE_WRITE_LOCK_IRQSAVE is not set
+# CONFIG_INLINE_WRITE_UNLOCK is not set
+# CONFIG_INLINE_WRITE_UNLOCK_BH is not set
+# CONFIG_INLINE_WRITE_UNLOCK_IRQ is not set
+# CONFIG_INLINE_WRITE_UNLOCK_IRQRESTORE is not set
+# CONFIG_MUTEX_SPIN_ON_OWNER is not set
+CONFIG_FREEZER=y
+
+#
+# System Type
+#
+CONFIG_MMU=y
+# CONFIG_ARCH_INTEGRATOR is not set
+# CONFIG_ARCH_REALVIEW is not set
+# CONFIG_ARCH_VERSATILE is not set
+# CONFIG_ARCH_VEXPRESS is not set
+# CONFIG_ARCH_AT91 is not set
+# CONFIG_ARCH_BCMRING is not set
+# CONFIG_ARCH_CLPS711X is not set
+# CONFIG_ARCH_CNS3XXX is not set
+# CONFIG_ARCH_GEMINI is not set
+# CONFIG_ARCH_EBSA110 is not set
+# CONFIG_ARCH_EP93XX is not set
+# CONFIG_ARCH_FOOTBRIDGE is not set
+CONFIG_ARCH_MXC=y
+# CONFIG_ARCH_MXS is not set
+# CONFIG_ARCH_NETX is not set
+# CONFIG_ARCH_H720X is not set
+# CONFIG_ARCH_IOP13XX is not set
+# CONFIG_ARCH_IOP32X is not set
+# CONFIG_ARCH_IOP33X is not set
+# CONFIG_ARCH_IXP23XX is not set
+# CONFIG_ARCH_IXP2000 is not set
+# CONFIG_ARCH_IXP4XX is not set
+# CONFIG_ARCH_DOVE is not set
+# CONFIG_ARCH_KIRKWOOD is not set
+# CONFIG_ARCH_LOKI is not set
+# CONFIG_ARCH_LPC32XX is not set
+# CONFIG_ARCH_MV78XX0 is not set
+# CONFIG_ARCH_ORION5X is not set
+# CONFIG_ARCH_MMP is not set
+# CONFIG_ARCH_KS8695 is not set
+# CONFIG_ARCH_W90X900 is not set
+# CONFIG_ARCH_NUC93X is not set
+# CONFIG_ARCH_TEGRA is not set
+# CONFIG_ARCH_PNX4008 is not set
+# CONFIG_ARCH_PXA is not set
+# CONFIG_ARCH_MSM is not set
+# CONFIG_ARCH_SHMOBILE is not set
+# CONFIG_ARCH_RPC is not set
+# CONFIG_ARCH_SA1100 is not set
+# CONFIG_ARCH_S3C2410 is not set
+# CONFIG_ARCH_S3C64XX is not set
+# CONFIG_ARCH_S5P64X0 is not set
+# CONFIG_ARCH_S5PC100 is not set
+# CONFIG_ARCH_S5PV210 is not set
+# CONFIG_ARCH_EXYNOS4 is not set
+# CONFIG_ARCH_SHARK is not set
+# CONFIG_ARCH_TCC_926 is not set
+# CONFIG_ARCH_U300 is not set
+# CONFIG_ARCH_U8500 is not set
+# CONFIG_ARCH_NOMADIK is not set
+# CONFIG_ARCH_DAVINCI is not set
+# CONFIG_ARCH_OMAP is not set
+# CONFIG_PLAT_SPEAR is not set
+# CONFIG_ARCH_VT8500 is not set
+CONFIG_GPIO_PCA953X=y
+# CONFIG_KEYBOARD_GPIO_POLLED is not set
+CONFIG_IMX_HAVE_PLATFORM_DMA=y
+CONFIG_IMX_HAVE_PLATFORM_MXC_MLB=y
+CONFIG_IMX_HAVE_PLATFORM_FEC=y
+CONFIG_IMX_HAVE_PLATFORM_FLEXCAN=y
+CONFIG_IMX_HAVE_PLATFORM_FSL_USB2_UDC=y
+CONFIG_IMX_HAVE_PLATFORM_GPMI_NFC=y
+CONFIG_IMX_HAVE_PLATFORM_IMX2_WDT=y
+CONFIG_IMX_HAVE_PLATFORM_IMX_SNVS_RTC=y
+CONFIG_IMX_HAVE_PLATFORM_IMX_I2C=y
+CONFIG_IMX_HAVE_PLATFORM_IMX_SSI=y
+CONFIG_IMX_HAVE_PLATFORM_IMX_ESAI=y
+CONFIG_IMX_HAVE_PLATFORM_IMX_UART=y
+CONFIG_IMX_HAVE_PLATFORM_MXC_EHCI=y
+CONFIG_IMX_HAVE_PLATFORM_MXC_PWM=y
+CONFIG_IMX_HAVE_PLATFORM_SDHCI_ESDHC_IMX=y
+CONFIG_IMX_HAVE_PLATFORM_SPI_IMX=y
+CONFIG_IMX_HAVE_PLATFORM_IMX_IPUV3=y
+CONFIG_IMX_HAVE_PLATFORM_IMX_VPU=y
+CONFIG_IMX_HAVE_PLATFORM_IMX_DVFS=y
+CONFIG_IMX_HAVE_PLATFORM_AHCI=y
+CONFIG_IMX_HAVE_PLATFORM_IMX_OCOTP=y
+CONFIG_IMX_HAVE_PLATFORM_IMX_VIIM=y
+CONFIG_IMX_HAVE_PLATFORM_PERFMON=y
+CONFIG_IMX_HAVE_PLATFORM_LDB=y
+CONFIG_IMX_HAVE_PLATFORM_IMX_PXP=y
+CONFIG_IMX_HAVE_PLATFORM_IMX_SPDC=y
+CONFIG_IMX_HAVE_PLATFORM_IMX_EPDC=y
+CONFIG_IMX_HAVE_PLATFORM_IMX_SPDIF=y
+CONFIG_IMX_HAVE_PLATFORM_VIV_GPU=y
+CONFIG_IMX_HAVE_PLATFORM_MXC_HDMI=y
+CONFIG_IMX_HAVE_PLATFORM_IMX_ANATOP_THERMAL=y
+CONFIG_IMX_HAVE_PLATFORM_FSL_OTG=y
+CONFIG_IMX_HAVE_PLATFORM_FSL_USB_WAKEUP=y
+CONFIG_IMX_HAVE_PLATFORM_IMX_PM=y
+CONFIG_IMX_HAVE_PLATFORM_IMX_ASRC=y
+CONFIG_IMX_HAVE_PLATFORM_IMX_MIPI_DSI=y
+CONFIG_IMX_HAVE_PLATFORM_IMX_MIPI_CSI2=y
+
+#
+# Freescale MXC Implementations
+#
+# CONFIG_ARCH_MX1 is not set
+# CONFIG_ARCH_MX2 is not set
+# CONFIG_ARCH_MX25 is not set
+# CONFIG_ARCH_MX3 is not set
+# CONFIG_ARCH_MX503 is not set
+# CONFIG_ARCH_MX51 is not set
+CONFIG_ARCH_MX6=y
+CONFIG_ARCH_MX6Q=y
+CONFIG_FORCE_MAX_ZONEORDER=14
+CONFIG_SOC_IMX6Q=y
+CONFIG_SOC_IMX6SL=y
+CONFIG_MACH_MX6Q_ARM2=y
+CONFIG_MACH_MX6SL_ARM2=y
+CONFIG_MACH_MX6Q_SABRESD=y
+
+#
+# MX6 Options:
+#
+# CONFIG_IMX_PCIE is not set
+CONFIG_ISP1504_MXC=y
+# CONFIG_MXC_IRQ_PRIOR is not set
+CONFIG_MXC_PWM=y
+# CONFIG_MXC_DEBUG_BOARD is not set
+CONFIG_ARCH_MXC_IOMUX_V3=y
+CONFIG_ARCH_MXC_AUDMUX_V2=y
+CONFIG_IRAM_ALLOC=y
+CONFIG_CLK_DEBUG=y
+CONFIG_DMA_ZONE_SIZE=184
+
+#
+# System MMU
+#
+
+#
+# Processor Type
+#
+CONFIG_CPU_V7=y
+CONFIG_CPU_32v6K=y
+CONFIG_CPU_32v7=y
+CONFIG_CPU_ABRT_EV7=y
+CONFIG_CPU_PABRT_V7=y
+CONFIG_CPU_CACHE_V7=y
+CONFIG_CPU_CACHE_VIPT=y
+CONFIG_CPU_COPY_V6=y
+CONFIG_CPU_TLB_V7=y
+CONFIG_CPU_HAS_ASID=y
+CONFIG_CPU_CP15=y
+CONFIG_CPU_CP15_MMU=y
+
+#
+# Processor Features
+#
+CONFIG_ARM_THUMB=y
+# CONFIG_ARM_THUMBEE is not set
+# CONFIG_SWP_EMULATE is not set
+# CONFIG_CPU_ICACHE_DISABLE is not set
+# CONFIG_CPU_DCACHE_DISABLE is not set
+# CONFIG_CPU_BPREDICT_DISABLE is not set
+CONFIG_OUTER_CACHE=y
+CONFIG_OUTER_CACHE_SYNC=y
+CONFIG_CACHE_L2X0=y
+CONFIG_CACHE_PL310=y
+CONFIG_ARM_L1_CACHE_SHIFT=5
+CONFIG_ARM_DMA_MEM_BUFFERABLE=y
+CONFIG_CPU_HAS_PMU=y
+# CONFIG_ARM_ERRATA_430973 is not set
+# CONFIG_ARM_ERRATA_458693 is not set
+# CONFIG_ARM_ERRATA_460075 is not set
+# CONFIG_PL310_ERRATA_588369 is not set
+# CONFIG_PL310_ERRATA_727915 is not set
+CONFIG_ARM_ERRATA_743622=y
+# CONFIG_ARM_ERRATA_753970 is not set
+CONFIG_ARM_ERRATA_754322=y
+CONFIG_ARM_GIC=y
+
+#
+# Bus support
+#
+# CONFIG_PCI_SYSCALL is not set
+# CONFIG_ARCH_SUPPORTS_MSI is not set
+# CONFIG_PCCARD is not set
+# CONFIG_PL310_ERRATA_769419 is not set
+
+#
+# Kernel Features
+#
+CONFIG_TICK_ONESHOT=y
+CONFIG_NO_HZ=y
+CONFIG_HIGH_RES_TIMERS=y
+CONFIG_GENERIC_CLOCKEVENTS_BUILD=y
+# CONFIG_SMP is not set
+# CONFIG_VMSPLIT_3G is not set
+CONFIG_VMSPLIT_2G=y
+# CONFIG_VMSPLIT_1G is not set
+CONFIG_PAGE_OFFSET=0x80000000
+# CONFIG_PREEMPT_NONE is not set
+# CONFIG_PREEMPT_VOLUNTARY is not set
+CONFIG_PREEMPT=y
+CONFIG_HZ=100
+# CONFIG_THUMB2_KERNEL is not set
+CONFIG_AEABI=y
+# CONFIG_OABI_COMPAT is not set
+# CONFIG_ARCH_SPARSEMEM_DEFAULT is not set
+# CONFIG_ARCH_SELECT_MEMORY_MODEL is not set
+CONFIG_HAVE_ARCH_PFN_VALID=y
+CONFIG_HIGHMEM=y
+# CONFIG_HIGHPTE is not set
+CONFIG_HW_PERF_EVENTS=y
+CONFIG_SELECT_MEMORY_MODEL=y
+CONFIG_FLATMEM_MANUAL=y
+CONFIG_FLATMEM=y
+CONFIG_FLAT_NODE_MEM_MAP=y
+CONFIG_HAVE_MEMBLOCK=y
+CONFIG_PAGEFLAGS_EXTENDED=y
+CONFIG_SPLIT_PTLOCK_CPUS=4
+CONFIG_COMPACTION=y
+CONFIG_MIGRATION=y
+# CONFIG_PHYS_ADDR_T_64BIT is not set
+CONFIG_ZONE_DMA_FLAG=1
+CONFIG_BOUNCE=y
+CONFIG_VIRT_TO_BUS=y
+CONFIG_KSM=y
+CONFIG_DEFAULT_MMAP_MIN_ADDR=4096
+CONFIG_NEED_PER_CPU_KM=y
+# CONFIG_CLEANCACHE is not set
+CONFIG_ALIGNMENT_TRAP=y
+# CONFIG_UACCESS_WITH_MEMCPY is not set
+# CONFIG_SECCOMP is not set
+# CONFIG_CC_STACKPROTECTOR is not set
+# CONFIG_DEPRECATED_PARAM_STRUCT is not set
+
+#
+# Boot options
+#
+# CONFIG_USE_OF is not set
+CONFIG_ZBOOT_ROM_TEXT=0x0
+CONFIG_ZBOOT_ROM_BSS=0x0
+CONFIG_CMDLINE="noinitrd console=ttymxc0,115200 root=/dev/mtdblock2 rw rootfstype=jffs2 ip=off"
+CONFIG_CMDLINE_FROM_BOOTLOADER=y
+# CONFIG_CMDLINE_EXTEND is not set
+# CONFIG_CMDLINE_FORCE is not set
+# CONFIG_XIP_KERNEL is not set
+# CONFIG_KEXEC is not set
+# CONFIG_CRASH_DUMP is not set
+CONFIG_AUTO_ZRELADDR=y
+
+#
+# CPU Power Management
+#
+
+#
+# CPU Frequency scaling
+#
+CONFIG_CPU_FREQ=y
+CONFIG_CPU_FREQ_TABLE=y
+CONFIG_CPU_FREQ_STAT=y
+# CONFIG_CPU_FREQ_STAT_DETAILS is not set
+# CONFIG_CPU_FREQ_DEFAULT_GOV_PERFORMANCE is not set
+# CONFIG_CPU_FREQ_DEFAULT_GOV_POWERSAVE is not set
+CONFIG_CPU_FREQ_DEFAULT_GOV_USERSPACE=y
+# CONFIG_CPU_FREQ_DEFAULT_GOV_ONDEMAND is not set
+# CONFIG_CPU_FREQ_DEFAULT_GOV_CONSERVATIVE is not set
+# CONFIG_CPU_FREQ_GOV_PERFORMANCE is not set
+CONFIG_CPU_FREQ_GOV_POWERSAVE=y
+CONFIG_CPU_FREQ_GOV_USERSPACE=y
+# CONFIG_CPU_FREQ_GOV_ONDEMAND is not set
+CONFIG_CPU_FREQ_GOV_CONSERVATIVE=y
+CONFIG_CPU_FREQ_IMX=y
+# CONFIG_CPU_IDLE is not set
+
+#
+# Floating point emulation
+#
+
+#
+# At least one emulation must be selected
+#
+CONFIG_VFP=y
+CONFIG_VFPv3=y
+CONFIG_NEON=y
+
+#
+# Userspace binary formats
+#
+CONFIG_BINFMT_ELF=y
+# CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS is not set
+CONFIG_HAVE_AOUT=y
+# CONFIG_BINFMT_AOUT is not set
+# CONFIG_BINFMT_MISC is not set
+
+#
+# Power management options
+#
+CONFIG_SUSPEND=y
+# CONFIG_PM_TEST_SUSPEND is not set
+CONFIG_SUSPEND_DEVICE_TIME_DEBUG=y
+CONFIG_SUSPEND_FREEZER=y
+CONFIG_PM_SLEEP=y
+CONFIG_PM_RUNTIME=y
+CONFIG_PM=y
+CONFIG_PM_DEBUG=y
+# CONFIG_PM_ADVANCED_DEBUG is not set
+CONFIG_CAN_PM_TRACE=y
+CONFIG_APM_EMULATION=y
+CONFIG_PM_RUNTIME_CLK=y
+CONFIG_ARCH_SUSPEND_POSSIBLE=y
+CONFIG_NET=y
+
+#
+# Networking options
+#
+CONFIG_PACKET=y
+CONFIG_UNIX=y
+CONFIG_XFRM=y
+# CONFIG_XFRM_USER is not set
+# CONFIG_XFRM_SUB_POLICY is not set
+# CONFIG_XFRM_MIGRATE is not set
+# CONFIG_XFRM_STATISTICS is not set
+# CONFIG_NET_KEY is not set
+CONFIG_INET=y
+CONFIG_IP_MULTICAST=y
+# CONFIG_IP_ADVANCED_ROUTER is not set
+CONFIG_IP_PNP=y
+CONFIG_IP_PNP_DHCP=y
+CONFIG_IP_PNP_BOOTP=y
+# CONFIG_IP_PNP_RARP is not set
+# CONFIG_NET_IPIP is not set
+# CONFIG_NET_IPGRE_DEMUX is not set
+# CONFIG_IP_MROUTE is not set
+# CONFIG_ARPD is not set
+# CONFIG_SYN_COOKIES is not set
+# CONFIG_INET_AH is not set
+# CONFIG_INET_ESP is not set
+# CONFIG_INET_IPCOMP is not set
+# CONFIG_INET_XFRM_TUNNEL is not set
+# CONFIG_INET_TUNNEL is not set
+CONFIG_INET_XFRM_MODE_TRANSPORT=y
+CONFIG_INET_XFRM_MODE_TUNNEL=y
+CONFIG_INET_XFRM_MODE_BEET=y
+# CONFIG_INET_LRO is not set
+CONFIG_INET_DIAG=y
+CONFIG_INET_TCP_DIAG=y
+# CONFIG_TCP_CONG_ADVANCED is not set
+CONFIG_TCP_CONG_CUBIC=y
+CONFIG_DEFAULT_TCP_CONG="cubic"
+# CONFIG_TCP_MD5SIG is not set
+# CONFIG_IPV6 is not set
+# CONFIG_NETWORK_SECMARK is not set
+# CONFIG_NETWORK_PHY_TIMESTAMPING is not set
+# CONFIG_NETFILTER is not set
+# CONFIG_IP_DCCP is not set
+# CONFIG_IP_SCTP is not set
+# CONFIG_RDS is not set
+# CONFIG_TIPC is not set
+# CONFIG_ATM is not set
+# CONFIG_L2TP is not set
+# CONFIG_BRIDGE is not set
+# CONFIG_NET_DSA is not set
+# CONFIG_VLAN_8021Q is not set
+# CONFIG_DECNET is not set
+# CONFIG_LLC2 is not set
+# CONFIG_IPX is not set
+# CONFIG_ATALK is not set
+# CONFIG_X25 is not set
+# CONFIG_LAPB is not set
+# CONFIG_ECONET is not set
+# CONFIG_WAN_ROUTER is not set
+# CONFIG_PHONET is not set
+# CONFIG_IEEE802154 is not set
+# CONFIG_NET_SCHED is not set
+# CONFIG_DCB is not set
+# CONFIG_BATMAN_ADV is not set
+
+#
+# Network testing
+#
+# CONFIG_NET_PKTGEN is not set
+# CONFIG_HAMRADIO is not set
+CONFIG_CAN=y
+CONFIG_CAN_RAW=y
+CONFIG_CAN_BCM=y
+
+#
+# CAN Device Drivers
+#
+CONFIG_CAN_VCAN=y
+# CONFIG_CAN_SLCAN is not set
+CONFIG_CAN_DEV=y
+CONFIG_CAN_CALC_BITTIMING=y
+# CONFIG_CAN_MCP251X is not set
+CONFIG_HAVE_CAN_FLEXCAN=y
+CONFIG_CAN_FLEXCAN=y
+# CONFIG_CAN_SJA1000 is not set
+# CONFIG_CAN_C_CAN is not set
+
+#
+# CAN USB interfaces
+#
+# CONFIG_CAN_EMS_USB is not set
+# CONFIG_CAN_ESD_USB2 is not set
+# CONFIG_CAN_SOFTING is not set
+# CONFIG_CAN_DEBUG_DEVICES is not set
+# CONFIG_IRDA is not set
+CONFIG_BT=y
+CONFIG_BT_L2CAP=y
+CONFIG_BT_SCO=y
+CONFIG_BT_RFCOMM=y
+CONFIG_BT_RFCOMM_TTY=y
+CONFIG_BT_BNEP=y
+CONFIG_BT_BNEP_MC_FILTER=y
+CONFIG_BT_BNEP_PROTO_FILTER=y
+CONFIG_BT_HIDP=y
+
+#
+# Bluetooth device drivers
+#
+CONFIG_BT_HCIBTUSB=y
+# CONFIG_BT_HCIBTSDIO is not set
+CONFIG_BT_HCIUART=y
+# CONFIG_BT_HCIUART_H4 is not set
+# CONFIG_BT_HCIUART_BCSP is not set
+CONFIG_BT_HCIUART_ATH3K=y
+# CONFIG_BT_HCIUART_LL is not set
+# CONFIG_BT_HCIBCM203X is not set
+# CONFIG_BT_HCIBPA10X is not set
+# CONFIG_BT_HCIBFUSB is not set
+CONFIG_BT_HCIVHCI=y
+# CONFIG_BT_MRVL is not set
+# CONFIG_BT_ATH3K is not set
+# CONFIG_AF_RXRPC is not set
+CONFIG_WIRELESS=y
+CONFIG_WIRELESS_EXT=y
+CONFIG_WEXT_CORE=y
+CONFIG_WEXT_PROC=y
+CONFIG_WEXT_SPY=y
+CONFIG_WEXT_PRIV=y
+CONFIG_CFG80211=y
+# CONFIG_NL80211_TESTMODE is not set
+# CONFIG_CFG80211_DEVELOPER_WARNINGS is not set
+# CONFIG_CFG80211_REG_DEBUG is not set
+CONFIG_CFG80211_DEFAULT_PS=y
+# CONFIG_CFG80211_DEBUGFS is not set
+# CONFIG_CFG80211_INTERNAL_REGDB is not set
+CONFIG_CFG80211_WEXT=y
+CONFIG_WIRELESS_EXT_SYSFS=y
+CONFIG_LIB80211=y
+CONFIG_LIB80211_CRYPT_WEP=y
+CONFIG_LIB80211_CRYPT_CCMP=y
+CONFIG_LIB80211_CRYPT_TKIP=y
+# CONFIG_LIB80211_DEBUG is not set
+# CONFIG_MAC80211 is not set
+# CONFIG_WIMAX is not set
+CONFIG_RFKILL=y
+CONFIG_RFKILL_INPUT=y
+# CONFIG_RFKILL_REGULATOR is not set
+# CONFIG_RFKILL_GPIO is not set
+# CONFIG_NET_9P is not set
+# CONFIG_CAIF is not set
+# CONFIG_CEPH_LIB is not set
+
+#
+# Device Drivers
+#
+
+#
+# Generic Driver Options
+#
+CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug"
+# CONFIG_DEVTMPFS is not set
+CONFIG_STANDALONE=y
+CONFIG_PREVENT_FIRMWARE_BUILD=y
+CONFIG_FW_LOADER=y
+CONFIG_FIRMWARE_IN_KERNEL=y
+CONFIG_EXTRA_FIRMWARE=""
+# CONFIG_SYS_HYPERVISOR is not set
+CONFIG_CONNECTOR=y
+CONFIG_PROC_EVENTS=y
+CONFIG_MTD=y
+# CONFIG_MTD_DEBUG is not set
+# CONFIG_MTD_TESTS is not set
+# CONFIG_MTD_REDBOOT_PARTS is not set
+CONFIG_MTD_CMDLINE_PARTS=y
+# CONFIG_MTD_AFS_PARTS is not set
+# CONFIG_MTD_AR7_PARTS is not set
+
+#
+# User Modules And Translation Layers
+#
+CONFIG_MTD_CHAR=y
+CONFIG_MTD_BLKDEVS=y
+CONFIG_MTD_BLOCK=y
+# CONFIG_FTL is not set
+# CONFIG_NFTL is not set
+# CONFIG_INFTL is not set
+# CONFIG_RFD_FTL is not set
+# CONFIG_SSFDC is not set
+# CONFIG_SM_FTL is not set
+# CONFIG_MTD_OOPS is not set
+# CONFIG_MTD_SWAP is not set
+
+#
+# RAM/ROM/Flash chip drivers
+#
+# CONFIG_MTD_CFI is not set
+# CONFIG_MTD_JEDECPROBE is not set
+CONFIG_MTD_MAP_BANK_WIDTH_1=y
+CONFIG_MTD_MAP_BANK_WIDTH_2=y
+CONFIG_MTD_MAP_BANK_WIDTH_4=y
+# CONFIG_MTD_MAP_BANK_WIDTH_8 is not set
+# CONFIG_MTD_MAP_BANK_WIDTH_16 is not set
+# CONFIG_MTD_MAP_BANK_WIDTH_32 is not set
+CONFIG_MTD_CFI_I1=y
+CONFIG_MTD_CFI_I2=y
+# CONFIG_MTD_CFI_I4 is not set
+# CONFIG_MTD_CFI_I8 is not set
+# CONFIG_MTD_RAM is not set
+# CONFIG_MTD_ROM is not set
+# CONFIG_MTD_ABSENT is not set
+
+#
+# Mapping drivers for chip access
+#
+# CONFIG_MTD_COMPLEX_MAPPINGS is not set
+# CONFIG_MTD_PLATRAM is not set
+
+#
+# Self-contained MTD device drivers
+#
+# CONFIG_MTD_DATAFLASH is not set
+CONFIG_MTD_M25P80=y
+CONFIG_M25PXX_USE_FAST_READ=y
+# CONFIG_MTD_SST25L is not set
+# CONFIG_MTD_SLRAM is not set
+# CONFIG_MTD_PHRAM is not set
+# CONFIG_MTD_MTDRAM is not set
+# CONFIG_MTD_BLOCK2MTD is not set
+
+#
+# Disk-On-Chip Device Drivers
+#
+# CONFIG_MTD_DOC2000 is not set
+# CONFIG_MTD_DOC2001 is not set
+# CONFIG_MTD_DOC2001PLUS is not set
+CONFIG_MTD_NAND_ECC=y
+# CONFIG_MTD_NAND_ECC_SMC is not set
+CONFIG_MTD_NAND=y
+# CONFIG_MTD_NAND_VERIFY_WRITE is not set
+# CONFIG_MTD_NAND_ECC_BCH is not set
+# CONFIG_MTD_SM_COMMON is not set
+# CONFIG_MTD_NAND_MUSEUM_IDS is not set
+# CONFIG_MTD_NAND_GPIO is not set
+CONFIG_MTD_NAND_IDS=y
+# CONFIG_MTD_NAND_DISKONCHIP is not set
+# CONFIG_MTD_NAND_NANDSIM is not set
+# CONFIG_MTD_NAND_GPMI_NAND is not set
+# CONFIG_MTD_NAND_PLATFORM is not set
+# CONFIG_MTD_ALAUDA is not set
+# CONFIG_MTD_ONENAND is not set
+
+#
+# LPDDR flash memory drivers
+#
+# CONFIG_MTD_LPDDR is not set
+CONFIG_MTD_UBI=y
+CONFIG_MTD_UBI_WL_THRESHOLD=4096
+CONFIG_MTD_UBI_BEB_RESERVE=1
+# CONFIG_MTD_UBI_GLUEBI is not set
+# CONFIG_MTD_UBI_DEBUG is not set
+# CONFIG_PARPORT is not set
+CONFIG_BLK_DEV=y
+# CONFIG_BLK_DEV_COW_COMMON is not set
+CONFIG_BLK_DEV_LOOP=y
+# CONFIG_BLK_DEV_CRYPTOLOOP is not set
+# CONFIG_BLK_DEV_DRBD is not set
+# CONFIG_BLK_DEV_NBD is not set
+# CONFIG_BLK_DEV_UB is not set
+# CONFIG_BLK_DEV_RAM is not set
+# CONFIG_CDROM_PKTCDVD is not set
+# CONFIG_ATA_OVER_ETH is not set
+# CONFIG_MG_DISK is not set
+# CONFIG_BLK_DEV_RBD is not set
+# CONFIG_SENSORS_LIS3LV02D is not set
+CONFIG_MISC_DEVICES=y
+# CONFIG_AD525X_DPOT is not set
+# CONFIG_INTEL_MID_PTI is not set
+# CONFIG_ICS932S401 is not set
+# CONFIG_ENCLOSURE_SERVICES is not set
+# CONFIG_APDS9802ALS is not set
+# CONFIG_ISL29003 is not set
+# CONFIG_ISL29020 is not set
+# CONFIG_SENSORS_TSL2550 is not set
+# CONFIG_SENSORS_BH1780 is not set
+# CONFIG_SENSORS_BH1770 is not set
+# CONFIG_SENSORS_APDS990X is not set
+# CONFIG_HMC6352 is not set
+# CONFIG_DS1682 is not set
+# CONFIG_TI_DAC7512 is not set
+# CONFIG_BMP085 is not set
+CONFIG_MXS_PERFMON=m
+# CONFIG_C2PORT is not set
+
+#
+# EEPROM support
+#
+# CONFIG_EEPROM_AT24 is not set
+# CONFIG_EEPROM_AT25 is not set
+# CONFIG_EEPROM_LEGACY is not set
+# CONFIG_EEPROM_MAX6875 is not set
+# CONFIG_EEPROM_93CX6 is not set
+# CONFIG_IWMC3200TOP is not set
+
+#
+# Texas Instruments shared transport line discipline
+#
+# CONFIG_TI_ST is not set
+# CONFIG_SENSORS_LIS3_SPI is not set
+# CONFIG_SENSORS_LIS3_I2C is not set
+CONFIG_HAVE_IDE=y
+# CONFIG_IDE is not set
+
+#
+# SCSI device support
+#
+CONFIG_SCSI_MOD=y
+# CONFIG_RAID_ATTRS is not set
+CONFIG_SCSI=y
+CONFIG_SCSI_DMA=y
+# CONFIG_SCSI_TGT is not set
+# CONFIG_SCSI_NETLINK is not set
+CONFIG_SCSI_PROC_FS=y
+
+#
+# SCSI support type (disk, tape, CD-ROM)
+#
+CONFIG_BLK_DEV_SD=y
+# CONFIG_CHR_DEV_ST is not set
+# CONFIG_CHR_DEV_OSST is not set
+# CONFIG_BLK_DEV_SR is not set
+# CONFIG_CHR_DEV_SG is not set
+# CONFIG_CHR_DEV_SCH is not set
+CONFIG_SCSI_MULTI_LUN=y
+# CONFIG_SCSI_CONSTANTS is not set
+# CONFIG_SCSI_LOGGING is not set
+# CONFIG_SCSI_SCAN_ASYNC is not set
+CONFIG_SCSI_WAIT_SCAN=m
+
+#
+# SCSI Transports
+#
+# CONFIG_SCSI_SPI_ATTRS is not set
+# CONFIG_SCSI_FC_ATTRS is not set
+# CONFIG_SCSI_ISCSI_ATTRS is not set
+# CONFIG_SCSI_SAS_ATTRS is not set
+# CONFIG_SCSI_SAS_LIBSAS is not set
+# CONFIG_SCSI_SRP_ATTRS is not set
+CONFIG_SCSI_LOWLEVEL=y
+# CONFIG_ISCSI_TCP is not set
+# CONFIG_ISCSI_BOOT_SYSFS is not set
+# CONFIG_LIBFC is not set
+# CONFIG_LIBFCOE is not set
+# CONFIG_SCSI_DEBUG is not set
+# CONFIG_SCSI_DH is not set
+# CONFIG_SCSI_OSD_INITIATOR is not set
+CONFIG_ATA=y
+# CONFIG_ATA_NONSTANDARD is not set
+CONFIG_ATA_VERBOSE_ERROR=y
+# CONFIG_SATA_PMP is not set
+
+#
+# Controllers with non-SFF native interface
+#
+CONFIG_SATA_AHCI_PLATFORM=y
+CONFIG_ATA_SFF=y
+
+#
+# SFF controllers with custom DMA interface
+#
+CONFIG_ATA_BMDMA=y
+
+#
+# SATA SFF controllers with BMDMA
+#
+# CONFIG_SATA_MV is not set
+
+#
+# PATA SFF controllers with BMDMA
+#
+# CONFIG_PATA_ARASAN_CF is not set
+
+#
+# PIO-only SFF controllers
+#
+# CONFIG_PATA_PLATFORM is not set
+
+#
+# Generic fallback / legacy drivers
+#
+# CONFIG_MD is not set
+# CONFIG_TARGET_CORE is not set
+CONFIG_NETDEVICES=y
+# CONFIG_DUMMY is not set
+# CONFIG_BONDING is not set
+# CONFIG_MACVLAN is not set
+# CONFIG_EQUALIZER is not set
+# CONFIG_TUN is not set
+# CONFIG_VETH is not set
+CONFIG_MII=y
+CONFIG_PHYLIB=y
+
+#
+# MII PHY device drivers
+#
+# CONFIG_MARVELL_PHY is not set
+# CONFIG_DAVICOM_PHY is not set
+# CONFIG_QSEMI_PHY is not set
+# CONFIG_LXT_PHY is not set
+# CONFIG_CICADA_PHY is not set
+# CONFIG_VITESSE_PHY is not set
+# CONFIG_SMSC_PHY is not set
+# CONFIG_BROADCOM_PHY is not set
+# CONFIG_ICPLUS_PHY is not set
+# CONFIG_REALTEK_PHY is not set
+# CONFIG_NATIONAL_PHY is not set
+# CONFIG_STE10XP is not set
+# CONFIG_LSI_ET1011C_PHY is not set
+CONFIG_MICREL_PHY=y
+# CONFIG_FIXED_PHY is not set
+# CONFIG_MDIO_BITBANG is not set
+CONFIG_NET_ETHERNET=y
+# CONFIG_AX88796 is not set
+# CONFIG_SMC91X is not set
+# CONFIG_DM9000 is not set
+# CONFIG_ENC28J60 is not set
+# CONFIG_ETHOC is not set
+# CONFIG_SMC911X is not set
+CONFIG_SMSC911X=y
+# CONFIG_SMSC911X_ARCH_HOOKS is not set
+# CONFIG_DNET is not set
+# CONFIG_IBM_NEW_EMAC_ZMII is not set
+# CONFIG_IBM_NEW_EMAC_RGMII is not set
+# CONFIG_IBM_NEW_EMAC_TAH is not set
+# CONFIG_IBM_NEW_EMAC_EMAC4 is not set
+# CONFIG_IBM_NEW_EMAC_NO_FLOW_CTRL is not set
+# CONFIG_IBM_NEW_EMAC_MAL_CLR_ICINTSTAT is not set
+# CONFIG_IBM_NEW_EMAC_MAL_COMMON_ERR is not set
+# CONFIG_B44 is not set
+# CONFIG_KS8842 is not set
+# CONFIG_KS8851 is not set
+# CONFIG_KS8851_MLL is not set
+CONFIG_FEC=y
+# CONFIG_FEC_1588 is not set
+# CONFIG_FTMAC100 is not set
+# CONFIG_NETDEV_1000 is not set
+# CONFIG_NETDEV_10000 is not set
+CONFIG_WLAN=y
+# CONFIG_USB_ZD1201 is not set
+# CONFIG_USB_NET_RNDIS_WLAN is not set
+CONFIG_ATH_COMMON=m
+# CONFIG_ATH_DEBUG is not set
+CONFIG_ATH6KL=m
+# CONFIG_ATH6KL_DEBUG is not set
+CONFIG_HOSTAP=y
+# CONFIG_HOSTAP_FIRMWARE is not set
+# CONFIG_IWM is not set
+# CONFIG_LIBERTAS is not set
+# CONFIG_MWIFIEX is not set
+
+#
+# Enable WiMAX (Networking options) to see the WiMAX drivers
+#
+
+#
+# USB Network Adapters
+#
+# CONFIG_USB_CATC is not set
+# CONFIG_USB_KAWETH is not set
+# CONFIG_USB_PEGASUS is not set
+# CONFIG_USB_RTL8150 is not set
+# CONFIG_USB_USBNET is not set
+# CONFIG_USB_HSO is not set
+# CONFIG_USB_IPHETH is not set
+# CONFIG_WAN is not set
+
+#
+# CAIF transport drivers
+#
+# CONFIG_PPP is not set
+# CONFIG_SLIP is not set
+# CONFIG_NETCONSOLE is not set
+# CONFIG_NETPOLL is not set
+# CONFIG_NET_POLL_CONTROLLER is not set
+# CONFIG_ISDN is not set
+# CONFIG_PHONE is not set
+
+#
+# Input device support
+#
+CONFIG_INPUT=y
+# CONFIG_INPUT_FF_MEMLESS is not set
+CONFIG_INPUT_POLLDEV=y
+# CONFIG_INPUT_SPARSEKMAP is not set
+
+#
+# Userland interfaces
+#
+CONFIG_INPUT_MOUSEDEV=y
+CONFIG_INPUT_MOUSEDEV_PSAUX=y
+CONFIG_INPUT_MOUSEDEV_SCREEN_X=1024
+CONFIG_INPUT_MOUSEDEV_SCREEN_Y=768
+# CONFIG_INPUT_JOYDEV is not set
+CONFIG_INPUT_EVDEV=y
+# CONFIG_INPUT_EVBUG is not set
+# CONFIG_INPUT_APMPOWER is not set
+
+#
+# Input Device Drivers
+#
+CONFIG_INPUT_KEYBOARD=y
+# CONFIG_KEYBOARD_ADP5588 is not set
+# CONFIG_KEYBOARD_ADP5589 is not set
+CONFIG_KEYBOARD_ATKBD=y
+# CONFIG_KEYBOARD_QT1070 is not set
+# CONFIG_KEYBOARD_QT2160 is not set
+# CONFIG_KEYBOARD_LKKBD is not set
+CONFIG_KEYBOARD_GPIO=y
+# CONFIG_KEYBOARD_TCA6416 is not set
+# CONFIG_KEYBOARD_MATRIX is not set
+# CONFIG_KEYBOARD_LM8323 is not set
+# CONFIG_KEYBOARD_MAX7359 is not set
+# CONFIG_KEYBOARD_MCS is not set
+# CONFIG_KEYBOARD_MPR121 is not set
+# CONFIG_KEYBOARD_IMX is not set
+# CONFIG_KEYBOARD_NEWTON is not set
+# CONFIG_KEYBOARD_OPENCORES is not set
+# CONFIG_KEYBOARD_STOWAWAY is not set
+# CONFIG_KEYBOARD_SUNKBD is not set
+# CONFIG_KEYBOARD_XTKBD is not set
+# CONFIG_KEYBOARD_MXC is not set
+# CONFIG_INPUT_MOUSE is not set
+# CONFIG_INPUT_JOYSTICK is not set
+# CONFIG_INPUT_TABLET is not set
+CONFIG_INPUT_TOUCHSCREEN=y
+# CONFIG_TOUCHSCREEN_ADS7846 is not set
+# CONFIG_TOUCHSCREEN_AD7877 is not set
+# CONFIG_TOUCHSCREEN_AD7879 is not set
+# CONFIG_TOUCHSCREEN_ATMEL_MXT is not set
+# CONFIG_TOUCHSCREEN_BU21013 is not set
+# CONFIG_TOUCHSCREEN_CY8CTMG110 is not set
+# CONFIG_TOUCHSCREEN_DYNAPRO is not set
+# CONFIG_TOUCHSCREEN_HAMPSHIRE is not set
+# CONFIG_TOUCHSCREEN_EETI is not set
+CONFIG_TOUCHSCREEN_EGALAX=y
+# CONFIG_TOUCHSCREEN_FUJITSU is not set
+# CONFIG_TOUCHSCREEN_GUNZE is not set
+# CONFIG_TOUCHSCREEN_ELO is not set
+# CONFIG_TOUCHSCREEN_WACOM_W8001 is not set
+# CONFIG_TOUCHSCREEN_MAX11801 is not set
+# CONFIG_TOUCHSCREEN_MCS5000 is not set
+# CONFIG_TOUCHSCREEN_MTOUCH is not set
+# CONFIG_TOUCHSCREEN_INEXIO is not set
+# CONFIG_TOUCHSCREEN_MK712 is not set
+# CONFIG_TOUCHSCREEN_PENMOUNT is not set
+# CONFIG_TOUCHSCREEN_TOUCHRIGHT is not set
+# CONFIG_TOUCHSCREEN_TOUCHWIN is not set
+# CONFIG_TOUCHSCREEN_WM97XX is not set
+# CONFIG_TOUCHSCREEN_USB_COMPOSITE is not set
+# CONFIG_TOUCHSCREEN_TOUCHIT213 is not set
+# CONFIG_TOUCHSCREEN_TSC2005 is not set
+# CONFIG_TOUCHSCREEN_TSC2007 is not set
+# CONFIG_TOUCHSCREEN_W90X900 is not set
+# CONFIG_TOUCHSCREEN_ST1232 is not set
+# CONFIG_TOUCHSCREEN_P1003 is not set
+# CONFIG_TOUCHSCREEN_TPS6507X is not set
+CONFIG_INPUT_MISC=y
+# CONFIG_INPUT_AD714X is not set
+# CONFIG_INPUT_ATI_REMOTE is not set
+# CONFIG_INPUT_ATI_REMOTE2 is not set
+# CONFIG_INPUT_KEYSPAN_REMOTE is not set
+# CONFIG_INPUT_POWERMATE is not set
+# CONFIG_INPUT_YEALINK is not set
+# CONFIG_INPUT_CM109 is not set
+CONFIG_INPUT_UINPUT=y
+# CONFIG_INPUT_PCF8574 is not set
+# CONFIG_INPUT_PWM_BEEPER is not set
+# CONFIG_INPUT_GPIO_ROTARY_ENCODER is not set
+# CONFIG_INPUT_ADXL34X is not set
+# CONFIG_INPUT_CMA3000 is not set
+CONFIG_INPUT_ISL29023=y
+
+#
+# Hardware I/O ports
+#
+CONFIG_SERIO=y
+CONFIG_SERIO_SERPORT=y
+CONFIG_SERIO_LIBPS2=y
+# CONFIG_SERIO_RAW is not set
+# CONFIG_SERIO_ALTERA_PS2 is not set
+# CONFIG_SERIO_PS2MULT is not set
+# CONFIG_GAMEPORT is not set
+
+#
+# Character devices
+#
+CONFIG_VT=y
+CONFIG_CONSOLE_TRANSLATIONS=y
+CONFIG_VT_CONSOLE=y
+CONFIG_HW_CONSOLE=y
+# CONFIG_VT_HW_CONSOLE_BINDING is not set
+CONFIG_UNIX98_PTYS=y
+# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set
+CONFIG_LEGACY_PTYS=y
+CONFIG_LEGACY_PTY_COUNT=256
+# CONFIG_SERIAL_NONSTANDARD is not set
+# CONFIG_N_GSM is not set
+# CONFIG_TRACE_SINK is not set
+CONFIG_DEVKMEM=y
+
+#
+# Serial drivers
+#
+# CONFIG_SERIAL_8250 is not set
+
+#
+# Non-8250 serial port support
+#
+# CONFIG_SERIAL_MAX3100 is not set
+# CONFIG_SERIAL_MAX3107 is not set
+CONFIG_SERIAL_IMX=y
+CONFIG_SERIAL_IMX_CONSOLE=y
+CONFIG_SERIAL_CORE=y
+CONFIG_SERIAL_CORE_CONSOLE=y
+# CONFIG_SERIAL_TIMBERDALE is not set
+# CONFIG_SERIAL_ALTERA_JTAGUART is not set
+# CONFIG_SERIAL_ALTERA_UART is not set
+# CONFIG_SERIAL_IFX6X60 is not set
+# CONFIG_SERIAL_XILINX_PS_UART is not set
+# CONFIG_TTY_PRINTK is not set
+CONFIG_FSL_OTP=y
+# CONFIG_HVC_DCC is not set
+# CONFIG_IPMI_HANDLER is not set
+CONFIG_HW_RANDOM=y
+# CONFIG_HW_RANDOM_TIMERIOMEM is not set
+# CONFIG_R3964 is not set
+# CONFIG_RAW_DRIVER is not set
+# CONFIG_TCG_TPM is not set
+# CONFIG_RAMOOPS is not set
+CONFIG_MXS_VIIM=y
+CONFIG_I2C=y
+CONFIG_I2C_BOARDINFO=y
+CONFIG_I2C_COMPAT=y
+CONFIG_I2C_CHARDEV=y
+# CONFIG_I2C_MUX is not set
+CONFIG_I2C_HELPER_AUTO=y
+
+#
+# I2C Hardware Bus support
+#
+
+#
+# I2C system bus drivers (mostly embedded / system-on-chip)
+#
+# CONFIG_I2C_DESIGNWARE is not set
+# CONFIG_I2C_GPIO is not set
+CONFIG_I2C_IMX=y
+# CONFIG_I2C_OCORES is not set
+# CONFIG_I2C_PCA_PLATFORM is not set
+# CONFIG_I2C_PXA_PCI is not set
+# CONFIG_I2C_SIMTEC is not set
+# CONFIG_I2C_XILINX is not set
+
+#
+# External I2C/SMBus adapter drivers
+#
+# CONFIG_I2C_DIOLAN_U2C is not set
+# CONFIG_I2C_PARPORT_LIGHT is not set
+# CONFIG_I2C_TAOS_EVM is not set
+# CONFIG_I2C_TINY_USB is not set
+
+#
+# Other I2C/SMBus bus drivers
+#
+# CONFIG_I2C_STUB is not set
+# CONFIG_I2C_DEBUG_CORE is not set
+# CONFIG_I2C_DEBUG_ALGO is not set
+# CONFIG_I2C_DEBUG_BUS is not set
+CONFIG_SPI=y
+CONFIG_SPI_MASTER=y
+
+#
+# SPI Master Controller Drivers
+#
+# CONFIG_SPI_ALTERA is not set
+CONFIG_SPI_BITBANG=y
+# CONFIG_SPI_GPIO is not set
+CONFIG_SPI_IMX_VER_2_3=y
+CONFIG_SPI_IMX=y
+# CONFIG_SPI_OC_TINY is not set
+# CONFIG_SPI_PXA2XX_PCI is not set
+# CONFIG_SPI_XILINX is not set
+# CONFIG_SPI_DESIGNWARE is not set
+
+#
+# SPI Protocol Masters
+#
+# CONFIG_SPI_SPIDEV is not set
+# CONFIG_SPI_TLE62X0 is not set
+
+#
+# PPS support
+#
+# CONFIG_PPS is not set
+
+#
+# PPS generators support
+#
+
+#
+# PTP clock support
+#
+
+#
+# Enable Device Drivers -> PPS to see the PTP clock options.
+#
+CONFIG_ARCH_REQUIRE_GPIOLIB=y
+CONFIG_GPIOLIB=y
+CONFIG_GPIO_SYSFS=y
+
+#
+# Memory mapped GPIO drivers:
+#
+# CONFIG_GPIO_BASIC_MMIO is not set
+# CONFIG_GPIO_IT8761E is not set
+
+#
+# I2C GPIO expanders:
+#
+# CONFIG_GPIO_MAX7300 is not set
+# CONFIG_GPIO_MAX732X is not set
+# CONFIG_GPIO_PCA953X_IRQ is not set
+# CONFIG_GPIO_PCF857X is not set
+# CONFIG_GPIO_SX150X is not set
+# CONFIG_GPIO_WM8994 is not set
+# CONFIG_GPIO_ADP5588 is not set
+
+#
+# PCI GPIO expanders:
+#
+
+#
+# SPI GPIO expanders:
+#
+# CONFIG_GPIO_MAX7301 is not set
+# CONFIG_GPIO_MCP23S08 is not set
+# CONFIG_GPIO_MC33880 is not set
+# CONFIG_GPIO_74X164 is not set
+
+#
+# AC97 GPIO expanders:
+#
+
+#
+# MODULbus GPIO expanders:
+#
+# CONFIG_W1 is not set
+CONFIG_POWER_SUPPLY=y
+# CONFIG_POWER_SUPPLY_DEBUG is not set
+# CONFIG_PDA_POWER is not set
+# CONFIG_APM_POWER is not set
+# CONFIG_TEST_POWER is not set
+# CONFIG_BATTERY_DS2780 is not set
+# CONFIG_BATTERY_DS2782 is not set
+# CONFIG_BATTERY_BQ20Z75 is not set
+# CONFIG_BATTERY_BQ27x00 is not set
+# CONFIG_BATTERY_MAX17040 is not set
+# CONFIG_BATTERY_MAX17042 is not set
+# CONFIG_CHARGER_ISP1704 is not set
+CONFIG_CHARGER_MAX8903=y
+# CONFIG_CHARGER_GPIO is not set
+CONFIG_HWMON=y
+# CONFIG_HWMON_VID is not set
+# CONFIG_HWMON_DEBUG_CHIP is not set
+
+#
+# Native drivers
+#
+# CONFIG_SENSORS_AD7414 is not set
+# CONFIG_SENSORS_AD7418 is not set
+# CONFIG_SENSORS_ADCXX is not set
+# CONFIG_SENSORS_ADM1021 is not set
+# CONFIG_SENSORS_ADM1025 is not set
+# CONFIG_SENSORS_ADM1026 is not set
+# CONFIG_SENSORS_ADM1029 is not set
+# CONFIG_SENSORS_ADM1031 is not set
+# CONFIG_SENSORS_ADM9240 is not set
+# CONFIG_SENSORS_ADT7411 is not set
+# CONFIG_SENSORS_ADT7462 is not set
+# CONFIG_SENSORS_ADT7470 is not set
+# CONFIG_SENSORS_ADT7475 is not set
+# CONFIG_SENSORS_ASC7621 is not set
+# CONFIG_SENSORS_ATXP1 is not set
+# CONFIG_SENSORS_DS620 is not set
+# CONFIG_SENSORS_DS1621 is not set
+# CONFIG_SENSORS_F71805F is not set
+# CONFIG_SENSORS_F71882FG is not set
+# CONFIG_SENSORS_F75375S is not set
+# CONFIG_SENSORS_G760A is not set
+# CONFIG_SENSORS_GL518SM is not set
+# CONFIG_SENSORS_GL520SM is not set
+# CONFIG_SENSORS_GPIO_FAN is not set
+# CONFIG_SENSORS_IT87 is not set
+# CONFIG_SENSORS_JC42 is not set
+# CONFIG_SENSORS_LINEAGE is not set
+# CONFIG_SENSORS_LM63 is not set
+# CONFIG_SENSORS_LM70 is not set
+# CONFIG_SENSORS_LM73 is not set
+# CONFIG_SENSORS_LM75 is not set
+# CONFIG_SENSORS_LM77 is not set
+# CONFIG_SENSORS_LM78 is not set
+# CONFIG_SENSORS_LM80 is not set
+# CONFIG_SENSORS_LM83 is not set
+# CONFIG_SENSORS_LM85 is not set
+# CONFIG_SENSORS_LM87 is not set
+# CONFIG_SENSORS_LM90 is not set
+# CONFIG_SENSORS_LM92 is not set
+# CONFIG_SENSORS_LM93 is not set
+# CONFIG_SENSORS_LTC4151 is not set
+# CONFIG_SENSORS_LTC4215 is not set
+# CONFIG_SENSORS_LTC4245 is not set
+# CONFIG_SENSORS_LTC4261 is not set
+# CONFIG_SENSORS_LM95241 is not set
+# CONFIG_SENSORS_MAX1111 is not set
+# CONFIG_SENSORS_MAX16065 is not set
+# CONFIG_SENSORS_MAX1619 is not set
+# CONFIG_SENSORS_MAX6639 is not set
+# CONFIG_SENSORS_MAX6642 is not set
+CONFIG_SENSORS_MAX17135=y
+# CONFIG_SENSORS_MAX6650 is not set
+# CONFIG_SENSORS_PC87360 is not set
+# CONFIG_SENSORS_PC87427 is not set
+# CONFIG_SENSORS_PCF8591 is not set
+# CONFIG_PMBUS is not set
+# CONFIG_SENSORS_SHT15 is not set
+# CONFIG_SENSORS_SHT21 is not set
+# CONFIG_SENSORS_SMM665 is not set
+# CONFIG_SENSORS_DME1737 is not set
+# CONFIG_SENSORS_EMC1403 is not set
+# CONFIG_SENSORS_EMC2103 is not set
+# CONFIG_SENSORS_EMC6W201 is not set
+# CONFIG_SENSORS_SMSC47M1 is not set
+# CONFIG_SENSORS_SMSC47M192 is not set
+# CONFIG_SENSORS_SMSC47B397 is not set
+# CONFIG_SENSORS_SCH5627 is not set
+# CONFIG_SENSORS_ADS1015 is not set
+# CONFIG_SENSORS_ADS7828 is not set
+# CONFIG_SENSORS_ADS7871 is not set
+# CONFIG_SENSORS_AMC6821 is not set
+# CONFIG_SENSORS_THMC50 is not set
+# CONFIG_SENSORS_TMP102 is not set
+# CONFIG_SENSORS_TMP401 is not set
+# CONFIG_SENSORS_TMP421 is not set
+# CONFIG_SENSORS_VT1211 is not set
+# CONFIG_SENSORS_W83781D is not set
+# CONFIG_SENSORS_W83791D is not set
+# CONFIG_SENSORS_W83792D is not set
+# CONFIG_SENSORS_W83793 is not set
+# CONFIG_SENSORS_W83795 is not set
+# CONFIG_SENSORS_W83L785TS is not set
+# CONFIG_SENSORS_W83L786NG is not set
+# CONFIG_SENSORS_W83627HF is not set
+# CONFIG_SENSORS_W83627EHF is not set
+CONFIG_SENSORS_MAG3110=y
+# CONFIG_MXC_MMA8450 is not set
+CONFIG_MXC_MMA8451=y
+CONFIG_THERMAL=y
+# CONFIG_THERMAL_HWMON is not set
+CONFIG_WATCHDOG=y
+CONFIG_WATCHDOG_NOWAYOUT=y
+
+#
+# Watchdog Device Drivers
+#
+# CONFIG_SOFT_WATCHDOG is not set
+# CONFIG_MAX63XX_WATCHDOG is not set
+CONFIG_IMX2_WDT=y
+
+#
+# USB-based Watchdog Cards
+#
+# CONFIG_USBPCWATCHDOG is not set
+CONFIG_SSB_POSSIBLE=y
+
+#
+# Sonics Silicon Backplane
+#
+# CONFIG_SSB is not set
+CONFIG_BCMA_POSSIBLE=y
+
+#
+# Broadcom specific AMBA
+#
+# CONFIG_BCMA is not set
+CONFIG_MFD_SUPPORT=y
+CONFIG_MFD_CORE=y
+# CONFIG_MFD_88PM860X is not set
+# CONFIG_MFD_SM501 is not set
+# CONFIG_MFD_ASIC3 is not set
+# CONFIG_HTC_EGPIO is not set
+# CONFIG_HTC_PASIC3 is not set
+# CONFIG_HTC_I2CPLD is not set
+# CONFIG_UCB1400_CORE is not set
+# CONFIG_TPS6105X is not set
+# CONFIG_TPS65010 is not set
+# CONFIG_TPS6507X is not set
+# CONFIG_MFD_TPS6586X is not set
+# CONFIG_TWL4030_CORE is not set
+# CONFIG_MFD_STMPE is not set
+# CONFIG_MFD_TC3589X is not set
+# CONFIG_MFD_TMIO is not set
+# CONFIG_MFD_T7L66XB is not set
+# CONFIG_MFD_TC6387XB is not set
+# CONFIG_MFD_TC6393XB is not set
+# CONFIG_PMIC_DA903X is not set
+# CONFIG_PMIC_ADP5520 is not set
+# CONFIG_MFD_MAX8925 is not set
+# CONFIG_MFD_MAX8997 is not set
+# CONFIG_MFD_MAX8998 is not set
+# CONFIG_MFD_WM8400 is not set
+# CONFIG_MFD_WM831X_I2C is not set
+# CONFIG_MFD_WM831X_SPI is not set
+# CONFIG_MFD_WM8350_I2C is not set
+CONFIG_MFD_WM8994=y
+# CONFIG_MFD_PCF50633 is not set
+# CONFIG_PMIC_DIALOG is not set
+# CONFIG_MFD_MC_PMIC is not set
+# CONFIG_MFD_MC34708 is not set
+CONFIG_MFD_PFUZE=y
+# CONFIG_MFD_MC13XXX is not set
+# CONFIG_ABX500_CORE is not set
+# CONFIG_EZX_PCAP is not set
+# CONFIG_MFD_WL1273_CORE is not set
+# CONFIG_MFD_TPS65910 is not set
+CONFIG_MFD_MAX17135=y
+CONFIG_MFD_MXC_HDMI=y
+CONFIG_REGULATOR=y
+# CONFIG_REGULATOR_DEBUG is not set
+# CONFIG_REGULATOR_DUMMY is not set
+CONFIG_REGULATOR_FIXED_VOLTAGE=y
+# CONFIG_REGULATOR_VIRTUAL_CONSUMER is not set
+# CONFIG_REGULATOR_USERSPACE_CONSUMER is not set
+# CONFIG_REGULATOR_BQ24022 is not set
+# CONFIG_REGULATOR_MAX1586 is not set
+# CONFIG_REGULATOR_MAX8649 is not set
+# CONFIG_REGULATOR_MAX8660 is not set
+# CONFIG_REGULATOR_MAX8952 is not set
+# CONFIG_REGULATOR_WM8994 is not set
+# CONFIG_REGULATOR_LP3971 is not set
+# CONFIG_REGULATOR_LP3972 is not set
+# CONFIG_REGULATOR_MC34708 is not set
+CONFIG_REGULATOR_PFUZE100=y
+# CONFIG_REGULATOR_TPS65023 is not set
+# CONFIG_REGULATOR_TPS6507X is not set
+# CONFIG_REGULATOR_ISL6271A is not set
+# CONFIG_REGULATOR_AD5398 is not set
+CONFIG_REGULATOR_ANATOP=y
+# CONFIG_REGULATOR_TPS6524X is not set
+CONFIG_REGULATOR_MAX17135=y
+CONFIG_MEDIA_SUPPORT=y
+
+#
+# Multimedia core support
+#
+# CONFIG_MEDIA_CONTROLLER is not set
+CONFIG_VIDEO_DEV=y
+CONFIG_VIDEO_V4L2_COMMON=y
+# CONFIG_DVB_CORE is not set
+CONFIG_VIDEO_MEDIA=y
+
+#
+# Multimedia drivers
+#
+# CONFIG_RC_CORE is not set
+# CONFIG_MEDIA_ATTACH is not set
+CONFIG_MEDIA_TUNER=y
+# CONFIG_MEDIA_TUNER_CUSTOMISE is not set
+CONFIG_MEDIA_TUNER_SIMPLE=y
+CONFIG_MEDIA_TUNER_TDA8290=y
+CONFIG_MEDIA_TUNER_TDA827X=y
+CONFIG_MEDIA_TUNER_TDA18271=y
+CONFIG_MEDIA_TUNER_TDA9887=y
+CONFIG_MEDIA_TUNER_TEA5761=y
+CONFIG_MEDIA_TUNER_TEA5767=y
+CONFIG_MEDIA_TUNER_MT20XX=y
+CONFIG_MEDIA_TUNER_XC2028=y
+CONFIG_MEDIA_TUNER_XC5000=y
+CONFIG_MEDIA_TUNER_MC44S803=y
+CONFIG_VIDEO_V4L2=y
+CONFIG_VIDEOBUF_GEN=y
+CONFIG_VIDEOBUF_DMA_CONTIG=y
+CONFIG_VIDEO_CAPTURE_DRIVERS=y
+# CONFIG_VIDEO_ADV_DEBUG is not set
+# CONFIG_VIDEO_FIXED_MINOR_RANGES is not set
+# CONFIG_VIDEO_HELPER_CHIPS_AUTO is not set
+
+#
+# Encoders, decoders, sensors and other helper chips
+#
+
+#
+# Audio decoders, processors and mixers
+#
+# CONFIG_VIDEO_TVAUDIO is not set
+# CONFIG_VIDEO_TDA7432 is not set
+# CONFIG_VIDEO_TDA9840 is not set
+# CONFIG_VIDEO_TEA6415C is not set
+# CONFIG_VIDEO_TEA6420 is not set
+# CONFIG_VIDEO_MSP3400 is not set
+# CONFIG_VIDEO_CS5345 is not set
+# CONFIG_VIDEO_CS53L32A is not set
+# CONFIG_VIDEO_TLV320AIC23B is not set
+# CONFIG_VIDEO_WM8775 is not set
+# CONFIG_VIDEO_WM8739 is not set
+# CONFIG_VIDEO_VP27SMPX is not set
+
+#
+# RDS decoders
+#
+# CONFIG_VIDEO_SAA6588 is not set
+
+#
+# Video decoders
+#
+# CONFIG_VIDEO_ADV7180 is not set
+# CONFIG_VIDEO_BT819 is not set
+# CONFIG_VIDEO_BT856 is not set
+# CONFIG_VIDEO_BT866 is not set
+# CONFIG_VIDEO_KS0127 is not set
+# CONFIG_VIDEO_SAA7110 is not set
+# CONFIG_VIDEO_SAA711X is not set
+# CONFIG_VIDEO_SAA7191 is not set
+# CONFIG_VIDEO_TVP514X is not set
+# CONFIG_VIDEO_TVP5150 is not set
+# CONFIG_VIDEO_TVP7002 is not set
+# CONFIG_VIDEO_VPX3220 is not set
+
+#
+# Video and audio decoders
+#
+# CONFIG_VIDEO_SAA717X is not set
+# CONFIG_VIDEO_CX25840 is not set
+
+#
+# MPEG video encoders
+#
+# CONFIG_VIDEO_CX2341X is not set
+
+#
+# Video encoders
+#
+# CONFIG_VIDEO_SAA7127 is not set
+# CONFIG_VIDEO_SAA7185 is not set
+# CONFIG_VIDEO_ADV7170 is not set
+# CONFIG_VIDEO_ADV7175 is not set
+# CONFIG_VIDEO_ADV7343 is not set
+# CONFIG_VIDEO_AK881X is not set
+
+#
+# Camera sensor devices
+#
+# CONFIG_VIDEO_OV7670 is not set
+# CONFIG_VIDEO_MT9V011 is not set
+# CONFIG_VIDEO_TCM825X is not set
+
+#
+# Video improvement chips
+#
+# CONFIG_VIDEO_UPD64031A is not set
+# CONFIG_VIDEO_UPD64083 is not set
+
+#
+# Miscelaneous helper chips
+#
+# CONFIG_VIDEO_THS7303 is not set
+# CONFIG_VIDEO_M52790 is not set
+# CONFIG_VIDEO_VIVI is not set
+CONFIG_VIDEO_MXC_CAMERA=m
+
+#
+# MXC Camera/V4L2 PRP Features support
+#
+CONFIG_VIDEO_MXC_IPU_CAMERA=y
+# CONFIG_VIDEO_MXC_CSI_CAMERA is not set
+# CONFIG_MXC_CAMERA_MICRON111 is not set
+# CONFIG_MXC_CAMERA_OV2640 is not set
+CONFIG_MXC_CAMERA_OV3640=m
+CONFIG_MXC_CAMERA_OV5640=m
+CONFIG_MXC_CAMERA_OV5640_MIPI=m
+CONFIG_MXC_CAMERA_OV8820_MIPI=m
+CONFIG_MXC_CAMERA_OV5642=m
+CONFIG_MXC_TVIN_ADV7180=m
+CONFIG_MXC_CAMERA_SENSOR_CLK=m
+CONFIG_MXC_IPU_PRP_VF_SDC=m
+CONFIG_MXC_IPU_PRP_ENC=m
+CONFIG_MXC_IPU_CSI_ENC=m
+CONFIG_VIDEO_MXC_OUTPUT=y
+CONFIG_VIDEO_MXC_IPU_OUTPUT=y
+# CONFIG_VIDEO_MXC_IPUV1_WVGA_OUTPUT is not set
+# CONFIG_VIDEO_MXC_OPL is not set
+# CONFIG_VIDEO_CPIA2 is not set
+# CONFIG_VIDEO_TIMBERDALE is not set
+# CONFIG_VIDEO_SR030PC30 is not set
+# CONFIG_VIDEO_NOON010PC30 is not set
+# CONFIG_SOC_CAMERA is not set
+CONFIG_V4L_USB_DRIVERS=y
+CONFIG_USB_VIDEO_CLASS=m
+CONFIG_USB_VIDEO_CLASS_INPUT_EVDEV=y
+CONFIG_USB_GSPCA=m
+# CONFIG_USB_M5602 is not set
+# CONFIG_USB_STV06XX is not set
+# CONFIG_USB_GL860 is not set
+# CONFIG_USB_GSPCA_BENQ is not set
+# CONFIG_USB_GSPCA_CONEX is not set
+# CONFIG_USB_GSPCA_CPIA1 is not set
+# CONFIG_USB_GSPCA_ETOMS is not set
+# CONFIG_USB_GSPCA_FINEPIX is not set
+# CONFIG_USB_GSPCA_JEILINJ is not set
+# CONFIG_USB_GSPCA_KINECT is not set
+# CONFIG_USB_GSPCA_KONICA is not set
+# CONFIG_USB_GSPCA_MARS is not set
+# CONFIG_USB_GSPCA_MR97310A is not set
+# CONFIG_USB_GSPCA_NW80X is not set
+# CONFIG_USB_GSPCA_OV519 is not set
+# CONFIG_USB_GSPCA_OV534 is not set
+# CONFIG_USB_GSPCA_OV534_9 is not set
+# CONFIG_USB_GSPCA_PAC207 is not set
+# CONFIG_USB_GSPCA_PAC7302 is not set
+# CONFIG_USB_GSPCA_PAC7311 is not set
+# CONFIG_USB_GSPCA_SN9C2028 is not set
+# CONFIG_USB_GSPCA_SN9C20X is not set
+# CONFIG_USB_GSPCA_SONIXB is not set
+# CONFIG_USB_GSPCA_SONIXJ is not set
+# CONFIG_USB_GSPCA_SPCA500 is not set
+# CONFIG_USB_GSPCA_SPCA501 is not set
+# CONFIG_USB_GSPCA_SPCA505 is not set
+# CONFIG_USB_GSPCA_SPCA506 is not set
+# CONFIG_USB_GSPCA_SPCA508 is not set
+# CONFIG_USB_GSPCA_SPCA561 is not set
+# CONFIG_USB_GSPCA_SPCA1528 is not set
+# CONFIG_USB_GSPCA_SQ905 is not set
+# CONFIG_USB_GSPCA_SQ905C is not set
+# CONFIG_USB_GSPCA_SQ930X is not set
+# CONFIG_USB_GSPCA_STK014 is not set
+# CONFIG_USB_GSPCA_STV0680 is not set
+# CONFIG_USB_GSPCA_SUNPLUS is not set
+# CONFIG_USB_GSPCA_T613 is not set
+# CONFIG_USB_GSPCA_TV8532 is not set
+# CONFIG_USB_GSPCA_VC032X is not set
+# CONFIG_USB_GSPCA_VICAM is not set
+# CONFIG_USB_GSPCA_XIRLINK_CIT is not set
+# CONFIG_USB_GSPCA_ZC3XX is not set
+# CONFIG_VIDEO_PVRUSB2 is not set
+# CONFIG_VIDEO_HDPVR is not set
+# CONFIG_VIDEO_USBVISION is not set
+# CONFIG_USB_ET61X251 is not set
+# CONFIG_USB_SN9C102 is not set
+# CONFIG_USB_PWC is not set
+# CONFIG_USB_ZR364XX is not set
+# CONFIG_USB_STKWEBCAM is not set
+# CONFIG_USB_S2255 is not set
+# CONFIG_V4L_MEM2MEM_DRIVERS is not set
+# CONFIG_RADIO_ADAPTERS is not set
+
+#
+# Graphics support
+#
+# CONFIG_DRM is not set
+# CONFIG_VGASTATE is not set
+# CONFIG_VIDEO_OUTPUT_CONTROL is not set
+CONFIG_FB=y
+# CONFIG_FIRMWARE_EDID is not set
+# CONFIG_FB_DDC is not set
+# CONFIG_FB_BOOT_VESA_SUPPORT is not set
+CONFIG_FB_CFB_FILLRECT=y
+CONFIG_FB_CFB_COPYAREA=y
+CONFIG_FB_CFB_IMAGEBLIT=y
+# CONFIG_FB_CFB_REV_PIXELS_IN_BYTE is not set
+# CONFIG_FB_SYS_FILLRECT is not set
+# CONFIG_FB_SYS_COPYAREA is not set
+# CONFIG_FB_SYS_IMAGEBLIT is not set
+# CONFIG_FB_FOREIGN_ENDIAN is not set
+# CONFIG_FB_SYS_FOPS is not set
+# CONFIG_FB_WMT_GE_ROPS is not set
+CONFIG_FB_DEFERRED_IO=y
+# CONFIG_FB_SVGALIB is not set
+# CONFIG_FB_MACMODES is not set
+# CONFIG_FB_BACKLIGHT is not set
+CONFIG_FB_MODE_HELPERS=y
+# CONFIG_FB_TILEBLITTING is not set
+
+#
+# Frame buffer hardware drivers
+#
+# CONFIG_FB_UVESA is not set
+# CONFIG_FB_S1D13XXX is not set
+# CONFIG_FB_TMIO is not set
+# CONFIG_FB_UDL is not set
+# CONFIG_FB_VIRTUAL is not set
+# CONFIG_FB_METRONOME is not set
+# CONFIG_FB_BROADSHEET is not set
+CONFIG_BACKLIGHT_LCD_SUPPORT=y
+# CONFIG_LCD_CLASS_DEVICE is not set
+CONFIG_BACKLIGHT_CLASS_DEVICE=y
+# CONFIG_BACKLIGHT_GENERIC is not set
+CONFIG_BACKLIGHT_PWM=y
+# CONFIG_BACKLIGHT_ADP8860 is not set
+# CONFIG_BACKLIGHT_ADP8870 is not set
+
+#
+# Display device support
+#
+# CONFIG_DISPLAY_SUPPORT is not set
+CONFIG_FB_MXC=y
+CONFIG_FB_MXC_EDID=y
+CONFIG_FB_MXC_SYNC_PANEL=y
+# CONFIG_FB_MXC_EPSON_VGA_SYNC_PANEL is not set
+CONFIG_FB_MXC_LDB=y
+CONFIG_FB_MXC_MIPI_DSI=y
+CONFIG_FB_MXC_TRULY_WVGA_SYNC_PANEL=y
+# CONFIG_FB_MXC_CLAA_WVGA_SYNC_PANEL is not set
+# CONFIG_FB_MXC_SEIKO_WVGA_SYNC_PANEL is not set
+# CONFIG_FB_MXC_SII902X is not set
+# CONFIG_FB_MXC_CH7026 is not set
+# CONFIG_FB_MXC_TVOUT_CH7024 is not set
+# CONFIG_FB_MXC_ASYNC_PANEL is not set
+CONFIG_FB_MXC_EINK_PANEL=y
+# CONFIG_FB_MXC_EINK_AUTO_UPDATE_MODE is not set
+# CONFIG_FB_MXC_ELCDIF_FB is not set
+# CONFIG_FB_MXC_SIPIX_PANEL is not set
+# CONFIG_FB_MXC_SIPIX_AUTO_UPDATE_MODE is not set
+CONFIG_FB_MXC_HDMI=y
+
+#
+# Console display driver support
+#
+CONFIG_DUMMY_CONSOLE=y
+CONFIG_FRAMEBUFFER_CONSOLE=y
+# CONFIG_FRAMEBUFFER_CONSOLE_DETECT_PRIMARY is not set
+# CONFIG_FRAMEBUFFER_CONSOLE_ROTATION is not set
+CONFIG_FONTS=y
+# CONFIG_FONT_8x8 is not set
+CONFIG_FONT_8x16=y
+# CONFIG_FONT_6x11 is not set
+# CONFIG_FONT_7x14 is not set
+# CONFIG_FONT_PEARL_8x8 is not set
+# CONFIG_FONT_ACORN_8x8 is not set
+# CONFIG_FONT_MINI_4x6 is not set
+# CONFIG_FONT_SUN8x16 is not set
+# CONFIG_FONT_SUN12x22 is not set
+# CONFIG_FONT_10x18 is not set
+CONFIG_LOGO=y
+CONFIG_LOGO_LINUX_MONO=y
+CONFIG_LOGO_LINUX_VGA16=y
+CONFIG_LOGO_LINUX_CLUT224=y
+CONFIG_SOUND=y
+# CONFIG_SOUND_OSS_CORE is not set
+CONFIG_SND=y
+CONFIG_SND_TIMER=y
+CONFIG_SND_PCM=y
+CONFIG_SND_HWDEP=y
+CONFIG_SND_RAWMIDI=y
+CONFIG_SND_JACK=y
+# CONFIG_SND_SEQUENCER is not set
+# CONFIG_SND_MIXER_OSS is not set
+# CONFIG_SND_PCM_OSS is not set
+# CONFIG_SND_HRTIMER is not set
+# CONFIG_SND_DYNAMIC_MINORS is not set
+CONFIG_SND_SUPPORT_OLD_API=y
+CONFIG_SND_VERBOSE_PROCFS=y
+# CONFIG_SND_VERBOSE_PRINTK is not set
+# CONFIG_SND_DEBUG is not set
+# CONFIG_SND_RAWMIDI_SEQ is not set
+# CONFIG_SND_OPL3_LIB_SEQ is not set
+# CONFIG_SND_OPL4_LIB_SEQ is not set
+# CONFIG_SND_SBAWE_SEQ is not set
+# CONFIG_SND_EMU10K1_SEQ is not set
+CONFIG_SND_DRIVERS=y
+# CONFIG_SND_DUMMY is not set
+# CONFIG_SND_ALOOP is not set
+# CONFIG_SND_MTPAV is not set
+# CONFIG_SND_SERIAL_U16550 is not set
+# CONFIG_SND_MPU401 is not set
+CONFIG_SND_ARM=y
+CONFIG_SND_SPI=y
+CONFIG_SND_USB=y
+CONFIG_SND_USB_AUDIO=y
+# CONFIG_SND_USB_UA101 is not set
+# CONFIG_SND_USB_CAIAQ is not set
+# CONFIG_SND_USB_6FIRE is not set
+CONFIG_SND_SOC=y
+# CONFIG_SND_SOC_CACHE_LZO is not set
+CONFIG_SND_SOC_AC97_BUS=y
+CONFIG_SND_IMX_SOC=y
+CONFIG_SND_MXC_SOC_MX2=y
+CONFIG_SND_MXC_SOC_SPDIF_DAI=y
+CONFIG_SND_SOC_IMX_SGTL5000=y
+CONFIG_SND_SOC_IMX_WM8958=y
+CONFIG_SND_SOC_IMX_WM8962=y
+CONFIG_SND_SOC_IMX_CS42888=y
+CONFIG_SND_SOC_IMX_SPDIF=y
+CONFIG_SND_SOC_IMX_HDMI=y
+CONFIG_SND_SOC_I2C_AND_SPI=y
+# CONFIG_SND_SOC_ALL_CODECS is not set
+CONFIG_SND_SOC_WM_HUBS=y
+CONFIG_SND_SOC_MXC_HDMI=y
+CONFIG_SND_SOC_MXC_SPDIF=y
+CONFIG_SND_SOC_SGTL5000=y
+CONFIG_SND_SOC_CS42888=y
+CONFIG_SND_SOC_WM8994=y
+CONFIG_SND_SOC_WM8962=y
+# CONFIG_SOUND_PRIME is not set
+CONFIG_AC97_BUS=y
+CONFIG_HID_SUPPORT=y
+CONFIG_HID=y
+CONFIG_HIDRAW=y
+
+#
+# USB Input Devices
+#
+CONFIG_USB_HID=y
+# CONFIG_HID_PID is not set
+# CONFIG_USB_HIDDEV is not set
+
+#
+# Special HID drivers
+#
+CONFIG_HID_A4TECH=m
+# CONFIG_HID_ACRUX is not set
+CONFIG_HID_APPLE=m
+CONFIG_HID_BELKIN=m
+CONFIG_HID_CHERRY=m
+CONFIG_HID_CHICONY=m
+# CONFIG_HID_PRODIKEYS is not set
+CONFIG_HID_CYPRESS=m
+# CONFIG_HID_DRAGONRISE is not set
+# CONFIG_HID_EMS_FF is not set
+# CONFIG_HID_ELECOM is not set
+CONFIG_HID_EZKEY=m
+# CONFIG_HID_KEYTOUCH is not set
+# CONFIG_HID_KYE is not set
+# CONFIG_HID_UCLOGIC is not set
+# CONFIG_HID_WALTOP is not set
+CONFIG_HID_GYRATION=m
+# CONFIG_HID_TWINHAN is not set
+# CONFIG_HID_KENSINGTON is not set
+# CONFIG_HID_LCPOWER is not set
+CONFIG_HID_LOGITECH=m
+# CONFIG_LOGITECH_FF is not set
+# CONFIG_LOGIRUMBLEPAD2_FF is not set
+# CONFIG_LOGIG940_FF is not set
+# CONFIG_LOGIWII_FF is not set
+# CONFIG_HID_MAGICMOUSE is not set
+CONFIG_HID_MICROSOFT=m
+CONFIG_HID_MONTEREY=m
+# CONFIG_HID_MULTITOUCH is not set
+# CONFIG_HID_NTRIG is not set
+# CONFIG_HID_ORTEK is not set
+CONFIG_HID_PANTHERLORD=m
+# CONFIG_PANTHERLORD_FF is not set
+CONFIG_HID_PETALYNX=m
+# CONFIG_HID_PICOLCD is not set
+# CONFIG_HID_QUANTA is not set
+# CONFIG_HID_ROCCAT is not set
+# CONFIG_HID_ROCCAT_ARVO is not set
+# CONFIG_HID_ROCCAT_KONE is not set
+# CONFIG_HID_ROCCAT_KONEPLUS is not set
+# CONFIG_HID_ROCCAT_KOVAPLUS is not set
+# CONFIG_HID_ROCCAT_PYRA is not set
+CONFIG_HID_SAMSUNG=m
+CONFIG_HID_SONY=m
+CONFIG_HID_SUNPLUS=m
+# CONFIG_HID_GREENASIA is not set
+# CONFIG_HID_SMARTJOYPLUS is not set
+# CONFIG_HID_TOPSEED is not set
+# CONFIG_HID_THRUSTMASTER is not set
+# CONFIG_HID_WACOM is not set
+# CONFIG_HID_ZEROPLUS is not set
+# CONFIG_HID_ZYDACRON is not set
+CONFIG_USB_SUPPORT=y
+CONFIG_USB_ARCH_HAS_HCD=y
+# CONFIG_USB_ARCH_HAS_OHCI is not set
+CONFIG_USB_ARCH_HAS_EHCI=y
+CONFIG_USB=y
+# CONFIG_USB_DEBUG is not set
+# CONFIG_USB_ANNOUNCE_NEW_DEVICES is not set
+
+#
+# Miscellaneous USB options
+#
+# CONFIG_USB_DEVICEFS is not set
+# CONFIG_USB_DEVICE_CLASS is not set
+# CONFIG_USB_DYNAMIC_MINORS is not set
+CONFIG_USB_SUSPEND=y
+CONFIG_USB_OTG=y
+# CONFIG_USB_OTG_WHITELIST is not set
+# CONFIG_USB_OTG_BLACKLIST_HUB is not set
+# CONFIG_USB_MON is not set
+# CONFIG_USB_WUSB is not set
+# CONFIG_USB_WUSB_CBAF is not set
+
+#
+# USB Host Controller Drivers
+#
+# CONFIG_USB_C67X00_HCD is not set
+CONFIG_USB_EHCI_HCD=y
+CONFIG_USB_EHCI_ARC=y
+CONFIG_USB_EHCI_ARC_OTG=y
+# CONFIG_USB_EHCI_ARC_HSIC is not set
+# CONFIG_USB_STATIC_IRAM is not set
+CONFIG_USB_EHCI_ROOT_HUB_TT=y
+# CONFIG_USB_EHCI_TT_NEWSCHED is not set
+# CONFIG_USB_EHCI_MXC is not set
+# CONFIG_USB_OXU210HP_HCD is not set
+# CONFIG_USB_ISP116X_HCD is not set
+# CONFIG_USB_ISP1760_HCD is not set
+# CONFIG_USB_ISP1362_HCD is not set
+# CONFIG_USB_SL811_HCD is not set
+# CONFIG_USB_R8A66597_HCD is not set
+# CONFIG_USB_HWA_HCD is not set
+# CONFIG_USB_MUSB_HDRC is not set
+
+#
+# USB Device Class drivers
+#
+# CONFIG_USB_ACM is not set
+# CONFIG_USB_PRINTER is not set
+# CONFIG_USB_WDM is not set
+# CONFIG_USB_TMC is not set
+
+#
+# NOTE: USB_STORAGE depends on SCSI but BLK_DEV_SD may
+#
+
+#
+# also be needed; see USB_STORAGE Help for more info
+#
+CONFIG_USB_STORAGE=y
+# CONFIG_USB_STORAGE_DEBUG is not set
+# CONFIG_USB_STORAGE_REALTEK is not set
+# CONFIG_USB_STORAGE_DATAFAB is not set
+# CONFIG_USB_STORAGE_FREECOM is not set
+# CONFIG_USB_STORAGE_ISD200 is not set
+# CONFIG_USB_STORAGE_USBAT is not set
+# CONFIG_USB_STORAGE_SDDR09 is not set
+# CONFIG_USB_STORAGE_SDDR55 is not set
+# CONFIG_USB_STORAGE_JUMPSHOT is not set
+# CONFIG_USB_STORAGE_ALAUDA is not set
+# CONFIG_USB_STORAGE_ONETOUCH is not set
+# CONFIG_USB_STORAGE_KARMA is not set
+# CONFIG_USB_STORAGE_CYPRESS_ATACB is not set
+# CONFIG_USB_STORAGE_ENE_UB6250 is not set
+# CONFIG_USB_UAS is not set
+# CONFIG_USB_LIBUSUAL is not set
+
+#
+# USB Imaging devices
+#
+# CONFIG_USB_MDC800 is not set
+# CONFIG_USB_MICROTEK is not set
+
+#
+# USB port drivers
+#
+# CONFIG_USB_SERIAL is not set
+
+#
+# USB Miscellaneous drivers
+#
+# CONFIG_USB_EMI62 is not set
+# CONFIG_USB_EMI26 is not set
+# CONFIG_USB_ADUTUX is not set
+# CONFIG_USB_SEVSEG is not set
+# CONFIG_USB_RIO500 is not set
+# CONFIG_USB_LEGOTOWER is not set
+# CONFIG_USB_LCD is not set
+# CONFIG_USB_LED is not set
+# CONFIG_USB_CYPRESS_CY7C63 is not set
+# CONFIG_USB_CYTHERM is not set
+# CONFIG_USB_IDMOUSE is not set
+# CONFIG_USB_FTDI_ELAN is not set
+# CONFIG_USB_APPLEDISPLAY is not set
+# CONFIG_USB_SISUSBVGA is not set
+# CONFIG_USB_LD is not set
+# CONFIG_USB_TRANCEVIBRATOR is not set
+# CONFIG_USB_IOWARRIOR is not set
+# CONFIG_USB_TEST is not set
+# CONFIG_USB_ISIGHTFW is not set
+# CONFIG_USB_YUREX is not set
+CONFIG_USB_GADGET=y
+# CONFIG_USB_GADGET_DEBUG_FILES is not set
+# CONFIG_USB_GADGET_DEBUG_FS is not set
+CONFIG_USB_GADGET_VBUS_DRAW=2
+CONFIG_USB_GADGET_SELECTED=y
+CONFIG_USB_GADGET_ARC=y
+CONFIG_USB_ARC=y
+# CONFIG_USB_GADGET_FSL_USB2 is not set
+# CONFIG_USB_GADGET_FUSB300 is not set
+# CONFIG_USB_GADGET_R8A66597 is not set
+# CONFIG_USB_GADGET_PXA_U2O is not set
+# CONFIG_USB_GADGET_M66592 is not set
+# CONFIG_USB_GADGET_DUMMY_HCD is not set
+CONFIG_USB_GADGET_DUALSPEED=y
+# CONFIG_USB_ZERO is not set
+CONFIG_USB_AUDIO=m
+CONFIG_USB_ETH=m
+CONFIG_USB_ETH_RNDIS=y
+# CONFIG_USB_ETH_EEM is not set
+# CONFIG_USB_G_NCM is not set
+# CONFIG_USB_GADGETFS is not set
+# CONFIG_USB_FUNCTIONFS is not set
+CONFIG_USB_FILE_STORAGE=m
+# CONFIG_FSL_UTP is not set
+# CONFIG_USB_FILE_STORAGE_TEST is not set
+# CONFIG_USB_MASS_STORAGE is not set
+CONFIG_USB_G_SERIAL=m
+# CONFIG_USB_MIDI_GADGET is not set
+# CONFIG_USB_G_PRINTER is not set
+# CONFIG_USB_CDC_COMPOSITE is not set
+# CONFIG_USB_G_MULTI is not set
+# CONFIG_USB_G_HID is not set
+# CONFIG_USB_G_DBGP is not set
+# CONFIG_USB_G_WEBCAM is not set
+
+#
+# OTG and related infrastructure
+#
+CONFIG_USB_OTG_UTILS=y
+# CONFIG_USB_GPIO_VBUS is not set
+# CONFIG_USB_ULPI is not set
+# CONFIG_NOP_USB_XCEIV is not set
+CONFIG_MXC_OTG=y
+CONFIG_MMC=y
+# CONFIG_MMC_DEBUG is not set
+CONFIG_MMC_UNSAFE_RESUME=y
+# CONFIG_MMC_CLKGATE is not set
+
+#
+# MMC/SD/SDIO Card Drivers
+#
+CONFIG_MMC_BLOCK=y
+CONFIG_MMC_BLOCK_MINORS=8
+CONFIG_MMC_BLOCK_BOUNCE=y
+# CONFIG_SDIO_UART is not set
+# CONFIG_MMC_TEST is not set
+
+#
+# MMC/SD/SDIO Host Controller Drivers
+#
+CONFIG_MMC_SDHCI=y
+CONFIG_MMC_SDHCI_IO_ACCESSORS=y
+CONFIG_MMC_SDHCI_PLTFM=y
+CONFIG_MMC_SDHCI_ESDHC_IMX=y
+# CONFIG_MMC_DW is not set
+# CONFIG_MMC_VUB300 is not set
+# CONFIG_MMC_USHC is not set
+# CONFIG_MEMSTICK is not set
+CONFIG_NEW_LEDS=y
+CONFIG_LEDS_CLASS=y
+
+#
+# LED drivers
+#
+# CONFIG_LEDS_LM3530 is not set
+# CONFIG_LEDS_PCA9532 is not set
+# CONFIG_LEDS_GPIO is not set
+# CONFIG_LEDS_LP3944 is not set
+# CONFIG_LEDS_LP5521 is not set
+# CONFIG_LEDS_LP5523 is not set
+# CONFIG_LEDS_PCA955X is not set
+# CONFIG_LEDS_DAC124S085 is not set
+# CONFIG_LEDS_PWM is not set
+# CONFIG_LEDS_REGULATOR is not set
+# CONFIG_LEDS_BD2802 is not set
+# CONFIG_LEDS_LT3593 is not set
+# CONFIG_LEDS_TRIGGERS is not set
+
+#
+# LED Triggers
+#
+
+#
+# LED Triggers
+#
+# CONFIG_NFC_DEVICES is not set
+# CONFIG_ACCESSIBILITY is not set
+CONFIG_RTC_LIB=y
+CONFIG_RTC_CLASS=y
+CONFIG_RTC_HCTOSYS=y
+CONFIG_RTC_HCTOSYS_DEVICE="rtc0"
+# CONFIG_RTC_DEBUG is not set
+
+#
+# RTC interfaces
+#
+CONFIG_RTC_INTF_SYSFS=y
+CONFIG_RTC_INTF_PROC=y
+CONFIG_RTC_INTF_DEV=y
+CONFIG_RTC_INTF_DEV_UIE_EMUL=y
+# CONFIG_RTC_DRV_TEST is not set
+
+#
+# I2C RTC drivers
+#
+# CONFIG_RTC_DRV_DS1307 is not set
+# CONFIG_RTC_DRV_DS1374 is not set
+# CONFIG_RTC_DRV_DS1672 is not set
+# CONFIG_RTC_DRV_DS3232 is not set
+# CONFIG_RTC_DRV_MAX6900 is not set
+# CONFIG_RTC_DRV_RS5C372 is not set
+# CONFIG_RTC_DRV_ISL1208 is not set
+# CONFIG_RTC_DRV_ISL12022 is not set
+# CONFIG_RTC_DRV_X1205 is not set
+# CONFIG_RTC_DRV_PCF8563 is not set
+# CONFIG_RTC_DRV_PCF8583 is not set
+# CONFIG_RTC_DRV_M41T80 is not set
+# CONFIG_RTC_DRV_BQ32K is not set
+# CONFIG_RTC_DRV_S35390A is not set
+# CONFIG_RTC_DRV_FM3130 is not set
+# CONFIG_RTC_DRV_RX8581 is not set
+# CONFIG_RTC_DRV_RX8025 is not set
+# CONFIG_RTC_DRV_EM3027 is not set
+# CONFIG_RTC_DRV_RV3029C2 is not set
+
+#
+# SPI RTC drivers
+#
+# CONFIG_RTC_DRV_M41T93 is not set
+# CONFIG_RTC_DRV_M41T94 is not set
+# CONFIG_RTC_DRV_DS1305 is not set
+# CONFIG_RTC_DRV_DS1390 is not set
+# CONFIG_RTC_DRV_MAX6902 is not set
+# CONFIG_RTC_DRV_R9701 is not set
+# CONFIG_RTC_DRV_RS5C348 is not set
+# CONFIG_RTC_DRV_DS3234 is not set
+# CONFIG_RTC_DRV_PCF2123 is not set
+
+#
+# Platform RTC drivers
+#
+# CONFIG_RTC_DRV_CMOS is not set
+# CONFIG_RTC_DRV_DS1286 is not set
+# CONFIG_RTC_DRV_DS1511 is not set
+# CONFIG_RTC_DRV_DS1553 is not set
+# CONFIG_RTC_DRV_DS1742 is not set
+# CONFIG_RTC_DRV_STK17TA8 is not set
+# CONFIG_RTC_DRV_M48T86 is not set
+# CONFIG_RTC_DRV_M48T35 is not set
+# CONFIG_RTC_DRV_M48T59 is not set
+# CONFIG_RTC_DRV_MSM6242 is not set
+# CONFIG_RTC_MXC is not set
+# CONFIG_RTC_DRV_MXC_V2 is not set
+CONFIG_RTC_DRV_SNVS=y
+# CONFIG_RTC_DRV_BQ4802 is not set
+# CONFIG_RTC_DRV_RP5C01 is not set
+# CONFIG_RTC_DRV_V3020 is not set
+
+#
+# on-CPU RTC drivers
+#
+CONFIG_DMADEVICES=y
+# CONFIG_DMADEVICES_DEBUG is not set
+
+#
+# DMA Devices
+#
+# CONFIG_DW_DMAC is not set
+CONFIG_MXC_PXP_V2=y
+CONFIG_MXC_PXP_CLIENT_DEVICE=y
+# CONFIG_TIMB_DMA is not set
+CONFIG_IMX_SDMA=y
+# CONFIG_MXS_DMA is not set
+CONFIG_DMA_ENGINE=y
+
+#
+# DMA Clients
+#
+# CONFIG_NET_DMA is not set
+# CONFIG_ASYNC_TX_DMA is not set
+# CONFIG_DMATEST is not set
+# CONFIG_AUXDISPLAY is not set
+# CONFIG_UIO is not set
+# CONFIG_STAGING is not set
+CONFIG_CLKDEV_LOOKUP=y
+CONFIG_CLKSRC_MMIO=y
+
+#
+# MXC support drivers
+#
+CONFIG_MXC_IPU=y
+CONFIG_MXC_IPU_V3=y
+CONFIG_MXC_IPU_V3H=y
+
+#
+# MXC SSI support
+#
+# CONFIG_MXC_SSI is not set
+
+#
+# MXC Digital Audio Multiplexer support
+#
+# CONFIG_MXC_DAM is not set
+
+#
+# MXC PMIC support
+#
+# CONFIG_MXC_PMIC_MC13783 is not set
+# CONFIG_MXC_PMIC_MC13892 is not set
+# CONFIG_MXC_PMIC_MC34704 is not set
+# CONFIG_MXC_PMIC_MC9SDZ60 is not set
+# CONFIG_MXC_PMIC_MC9S08DZ60 is not set
+
+#
+# MXC Security Drivers
+#
+# CONFIG_MXC_SECURITY_SCC is not set
+# CONFIG_MXC_SECURITY_RNG is not set
+
+#
+# MXC MPEG4 Encoder Kernel module support
+#
+# CONFIG_MXC_HMP4E is not set
+
+#
+# MXC HARDWARE EVENT
+#
+# CONFIG_MXC_HWEVENT is not set
+
+#
+# MXC VPU(Video Processing Unit) support
+#
+CONFIG_MXC_VPU=y
+# CONFIG_MXC_VPU_DEBUG is not set
+
+#
+# MXC Asynchronous Sample Rate Converter support
+#
+CONFIG_MXC_ASRC=y
+
+#
+# MXC Bluetooth support
+#
+
+#
+# Broadcom GPS ioctrl support
+#
+
+#
+# MXC Media Local Bus Driver
+#
+CONFIG_MXC_MLB=y
+CONFIG_MXC_MLB150=m
+
+#
+# i.MX ADC support
+#
+# CONFIG_IMX_ADC is not set
+
+#
+# MXC Vivante GPU support
+#
+CONFIG_MXC_GPU_VIV=m
+
+#
+# ANATOP_THERMAL
+#
+CONFIG_ANATOP_THERMAL=y
+
+#
+# MXC MIPI Support
+#
+CONFIG_MXC_MIPI_CSI2=y
+
+#
+# File systems
+#
+CONFIG_EXT2_FS=y
+# CONFIG_EXT2_FS_XATTR is not set
+# CONFIG_EXT2_FS_XIP is not set
+CONFIG_EXT3_FS=y
+# CONFIG_EXT3_DEFAULTS_TO_ORDERED is not set
+CONFIG_EXT3_FS_XATTR=y
+# CONFIG_EXT3_FS_POSIX_ACL is not set
+# CONFIG_EXT3_FS_SECURITY is not set
+CONFIG_EXT4_FS=y
+CONFIG_EXT4_FS_XATTR=y
+# CONFIG_EXT4_FS_POSIX_ACL is not set
+# CONFIG_EXT4_FS_SECURITY is not set
+# CONFIG_EXT4_DEBUG is not set
+CONFIG_JBD=y
+# CONFIG_JBD_DEBUG is not set
+CONFIG_JBD2=y
+# CONFIG_JBD2_DEBUG is not set
+CONFIG_FS_MBCACHE=y
+# CONFIG_REISERFS_FS is not set
+# CONFIG_JFS_FS is not set
+# CONFIG_XFS_FS is not set
+# CONFIG_GFS2_FS is not set
+# CONFIG_BTRFS_FS is not set
+# CONFIG_NILFS2_FS is not set
+# CONFIG_FS_POSIX_ACL is not set
+CONFIG_FILE_LOCKING=y
+CONFIG_FSNOTIFY=y
+CONFIG_DNOTIFY=y
+CONFIG_INOTIFY_USER=y
+# CONFIG_FANOTIFY is not set
+# CONFIG_QUOTA is not set
+# CONFIG_QUOTACTL is not set
+CONFIG_AUTOFS4_FS=m
+# CONFIG_FUSE_FS is not set
+
+#
+# Caches
+#
+# CONFIG_FSCACHE is not set
+
+#
+# CD-ROM/DVD Filesystems
+#
+# CONFIG_ISO9660_FS is not set
+# CONFIG_UDF_FS is not set
+
+#
+# DOS/FAT/NT Filesystems
+#
+CONFIG_FAT_FS=y
+CONFIG_MSDOS_FS=y
+CONFIG_VFAT_FS=y
+CONFIG_FAT_DEFAULT_CODEPAGE=437
+CONFIG_FAT_DEFAULT_IOCHARSET="iso8859-1"
+# CONFIG_NTFS_FS is not set
+
+#
+# Pseudo filesystems
+#
+CONFIG_PROC_FS=y
+CONFIG_PROC_SYSCTL=y
+CONFIG_PROC_PAGE_MONITOR=y
+CONFIG_SYSFS=y
+CONFIG_TMPFS=y
+# CONFIG_TMPFS_POSIX_ACL is not set
+# CONFIG_TMPFS_XATTR is not set
+# CONFIG_HUGETLB_PAGE is not set
+# CONFIG_CONFIGFS_FS is not set
+CONFIG_MISC_FILESYSTEMS=y
+# CONFIG_ADFS_FS is not set
+# CONFIG_AFFS_FS is not set
+# CONFIG_HFS_FS is not set
+# CONFIG_HFSPLUS_FS is not set
+# CONFIG_BEFS_FS is not set
+# CONFIG_BFS_FS is not set
+# CONFIG_EFS_FS is not set
+CONFIG_JFFS2_FS=y
+CONFIG_JFFS2_FS_DEBUG=0
+CONFIG_JFFS2_FS_WRITEBUFFER=y
+# CONFIG_JFFS2_FS_WBUF_VERIFY is not set
+# CONFIG_JFFS2_SUMMARY is not set
+# CONFIG_JFFS2_FS_XATTR is not set
+# CONFIG_JFFS2_COMPRESSION_OPTIONS is not set
+CONFIG_JFFS2_ZLIB=y
+# CONFIG_JFFS2_LZO is not set
+CONFIG_JFFS2_RTIME=y
+# CONFIG_JFFS2_RUBIN is not set
+CONFIG_UBIFS_FS=y
+# CONFIG_UBIFS_FS_XATTR is not set
+# CONFIG_UBIFS_FS_ADVANCED_COMPR is not set
+CONFIG_UBIFS_FS_LZO=y
+CONFIG_UBIFS_FS_ZLIB=y
+# CONFIG_UBIFS_FS_DEBUG is not set
+# CONFIG_LOGFS is not set
+CONFIG_CRAMFS=y
+# CONFIG_SQUASHFS is not set
+# CONFIG_VXFS_FS is not set
+# CONFIG_MINIX_FS is not set
+# CONFIG_OMFS_FS is not set
+# CONFIG_HPFS_FS is not set
+# CONFIG_QNX4FS_FS is not set
+# CONFIG_ROMFS_FS is not set
+# CONFIG_PSTORE is not set
+# CONFIG_SYSV_FS is not set
+# CONFIG_UFS_FS is not set
+CONFIG_NETWORK_FILESYSTEMS=y
+CONFIG_NFS_FS=y
+CONFIG_NFS_V3=y
+# CONFIG_NFS_V3_ACL is not set
+# CONFIG_NFS_V4 is not set
+CONFIG_ROOT_NFS=y
+# CONFIG_NFSD is not set
+CONFIG_LOCKD=y
+CONFIG_LOCKD_V4=y
+CONFIG_NFS_COMMON=y
+CONFIG_SUNRPC=y
+# CONFIG_CEPH_FS is not set
+# CONFIG_CIFS is not set
+# CONFIG_NCP_FS is not set
+# CONFIG_CODA_FS is not set
+# CONFIG_AFS_FS is not set
+
+#
+# Partition Types
+#
+CONFIG_PARTITION_ADVANCED=y
+# CONFIG_ACORN_PARTITION is not set
+# CONFIG_OSF_PARTITION is not set
+# CONFIG_AMIGA_PARTITION is not set
+# CONFIG_ATARI_PARTITION is not set
+# CONFIG_MAC_PARTITION is not set
+CONFIG_MSDOS_PARTITION=y
+# CONFIG_BSD_DISKLABEL is not set
+# CONFIG_MINIX_SUBPARTITION is not set
+# CONFIG_SOLARIS_X86_PARTITION is not set
+# CONFIG_UNIXWARE_DISKLABEL is not set
+# CONFIG_LDM_PARTITION is not set
+# CONFIG_SGI_PARTITION is not set
+# CONFIG_ULTRIX_PARTITION is not set
+# CONFIG_SUN_PARTITION is not set
+# CONFIG_KARMA_PARTITION is not set
+CONFIG_EFI_PARTITION=y
+# CONFIG_SYSV68_PARTITION is not set
+CONFIG_NLS=y
+CONFIG_NLS_DEFAULT="iso8859-1"
+CONFIG_NLS_CODEPAGE_437=y
+# CONFIG_NLS_CODEPAGE_737 is not set
+# CONFIG_NLS_CODEPAGE_775 is not set
+# CONFIG_NLS_CODEPAGE_850 is not set
+# CONFIG_NLS_CODEPAGE_852 is not set
+# CONFIG_NLS_CODEPAGE_855 is not set
+# CONFIG_NLS_CODEPAGE_857 is not set
+# CONFIG_NLS_CODEPAGE_860 is not set
+# CONFIG_NLS_CODEPAGE_861 is not set
+# CONFIG_NLS_CODEPAGE_862 is not set
+# CONFIG_NLS_CODEPAGE_863 is not set
+# CONFIG_NLS_CODEPAGE_864 is not set
+# CONFIG_NLS_CODEPAGE_865 is not set
+# CONFIG_NLS_CODEPAGE_866 is not set
+# CONFIG_NLS_CODEPAGE_869 is not set
+# CONFIG_NLS_CODEPAGE_936 is not set
+# CONFIG_NLS_CODEPAGE_950 is not set
+# CONFIG_NLS_CODEPAGE_932 is not set
+# CONFIG_NLS_CODEPAGE_949 is not set
+# CONFIG_NLS_CODEPAGE_874 is not set
+# CONFIG_NLS_ISO8859_8 is not set
+# CONFIG_NLS_CODEPAGE_1250 is not set
+# CONFIG_NLS_CODEPAGE_1251 is not set
+CONFIG_NLS_ASCII=m
+CONFIG_NLS_ISO8859_1=y
+# CONFIG_NLS_ISO8859_2 is not set
+# CONFIG_NLS_ISO8859_3 is not set
+# CONFIG_NLS_ISO8859_4 is not set
+# CONFIG_NLS_ISO8859_5 is not set
+# CONFIG_NLS_ISO8859_6 is not set
+# CONFIG_NLS_ISO8859_7 is not set
+# CONFIG_NLS_ISO8859_9 is not set
+# CONFIG_NLS_ISO8859_13 is not set
+# CONFIG_NLS_ISO8859_14 is not set
+# CONFIG_NLS_ISO8859_15 is not set
+# CONFIG_NLS_KOI8_R is not set
+# CONFIG_NLS_KOI8_U is not set
+CONFIG_NLS_UTF8=m
+
+#
+# Kernel hacking
+#
+# CONFIG_PRINTK_TIME is not set
+CONFIG_DEFAULT_MESSAGE_LOGLEVEL=4
+CONFIG_ENABLE_WARN_DEPRECATED=y
+CONFIG_ENABLE_MUST_CHECK=y
+CONFIG_FRAME_WARN=1024
+# CONFIG_MAGIC_SYSRQ is not set
+# CONFIG_STRIP_ASM_SYMS is not set
+# CONFIG_UNUSED_SYMBOLS is not set
+CONFIG_DEBUG_FS=y
+# CONFIG_HEADERS_CHECK is not set
+# CONFIG_DEBUG_SECTION_MISMATCH is not set
+# CONFIG_DEBUG_KERNEL is not set
+# CONFIG_HARDLOCKUP_DETECTOR is not set
+# CONFIG_SLUB_DEBUG_ON is not set
+# CONFIG_SLUB_STATS is not set
+# CONFIG_SPARSE_RCU_POINTER is not set
+CONFIG_DEBUG_BUGVERBOSE=y
+# CONFIG_DEBUG_MEMORY_INIT is not set
+CONFIG_RCU_CPU_STALL_TIMEOUT=60
+CONFIG_RCU_CPU_STALL_VERBOSE=y
+# CONFIG_LKDTM is not set
+CONFIG_SYSCTL_SYSCALL_CHECK=y
+CONFIG_HAVE_FUNCTION_TRACER=y
+CONFIG_HAVE_FUNCTION_GRAPH_TRACER=y
+CONFIG_HAVE_DYNAMIC_FTRACE=y
+CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y
+CONFIG_HAVE_C_RECORDMCOUNT=y
+CONFIG_TRACING_SUPPORT=y
+# CONFIG_FTRACE is not set
+# CONFIG_DYNAMIC_DEBUG is not set
+# CONFIG_DMA_API_DEBUG is not set
+# CONFIG_ATOMIC64_SELFTEST is not set
+# CONFIG_SAMPLES is not set
+CONFIG_HAVE_ARCH_KGDB=y
+# CONFIG_TEST_KSTRTOX is not set
+# CONFIG_STRICT_DEVMEM is not set
+CONFIG_ARM_UNWIND=y
+# CONFIG_DEBUG_USER is not set
+# CONFIG_OC_ETM is not set
+
+#
+# Security options
+#
+# CONFIG_KEYS is not set
+# CONFIG_SECURITY_DMESG_RESTRICT is not set
+# CONFIG_SECURITY is not set
+# CONFIG_SECURITYFS is not set
+CONFIG_DEFAULT_SECURITY_DAC=y
+CONFIG_DEFAULT_SECURITY=""
+CONFIG_CRYPTO=y
+
+#
+# Crypto core or helper
+#
+CONFIG_CRYPTO_ALGAPI=y
+CONFIG_CRYPTO_ALGAPI2=y
+CONFIG_CRYPTO_AEAD2=y
+CONFIG_CRYPTO_BLKCIPHER=y
+CONFIG_CRYPTO_BLKCIPHER2=y
+CONFIG_CRYPTO_HASH=y
+CONFIG_CRYPTO_HASH2=y
+CONFIG_CRYPTO_RNG2=y
+CONFIG_CRYPTO_PCOMP2=y
+CONFIG_CRYPTO_MANAGER=y
+CONFIG_CRYPTO_MANAGER2=y
+CONFIG_CRYPTO_MANAGER_DISABLE_TESTS=y
+# CONFIG_CRYPTO_GF128MUL is not set
+# CONFIG_CRYPTO_NULL is not set
+CONFIG_CRYPTO_WORKQUEUE=y
+# CONFIG_CRYPTO_CRYPTD is not set
+# CONFIG_CRYPTO_AUTHENC is not set
+CONFIG_CRYPTO_TEST=m
+# CONFIG_CRYPTO_CRYPTODEV is not set
+
+#
+# Authenticated Encryption with Associated Data
+#
+# CONFIG_CRYPTO_CCM is not set
+# CONFIG_CRYPTO_GCM is not set
+# CONFIG_CRYPTO_SEQIV is not set
+
+#
+# Block modes
+#
+CONFIG_CRYPTO_CBC=y
+# CONFIG_CRYPTO_CTR is not set
+# CONFIG_CRYPTO_CTS is not set
+CONFIG_CRYPTO_ECB=y
+# CONFIG_CRYPTO_LRW is not set
+# CONFIG_CRYPTO_PCBC is not set
+# CONFIG_CRYPTO_XTS is not set
+
+#
+# Hash modes
+#
+# CONFIG_CRYPTO_HMAC is not set
+# CONFIG_CRYPTO_XCBC is not set
+# CONFIG_CRYPTO_VMAC is not set
+
+#
+# Digest
+#
+# CONFIG_CRYPTO_CRC32C is not set
+# CONFIG_CRYPTO_GHASH is not set
+# CONFIG_CRYPTO_MD4 is not set
+# CONFIG_CRYPTO_MD5 is not set
+CONFIG_CRYPTO_MICHAEL_MIC=y
+# CONFIG_CRYPTO_RMD128 is not set
+# CONFIG_CRYPTO_RMD160 is not set
+# CONFIG_CRYPTO_RMD256 is not set
+# CONFIG_CRYPTO_RMD320 is not set
+# CONFIG_CRYPTO_SHA1 is not set
+# CONFIG_CRYPTO_SHA256 is not set
+# CONFIG_CRYPTO_SHA512 is not set
+# CONFIG_CRYPTO_TGR192 is not set
+# CONFIG_CRYPTO_WP512 is not set
+
+#
+# Ciphers
+#
+CONFIG_CRYPTO_AES=y
+# CONFIG_CRYPTO_ANUBIS is not set
+CONFIG_CRYPTO_ARC4=y
+# CONFIG_CRYPTO_BLOWFISH is not set
+# CONFIG_CRYPTO_CAMELLIA is not set
+# CONFIG_CRYPTO_CAST5 is not set
+# CONFIG_CRYPTO_CAST6 is not set
+# CONFIG_CRYPTO_DES is not set
+# CONFIG_CRYPTO_FCRYPT is not set
+# CONFIG_CRYPTO_KHAZAD is not set
+# CONFIG_CRYPTO_SALSA20 is not set
+# CONFIG_CRYPTO_SEED is not set
+# CONFIG_CRYPTO_SERPENT is not set
+# CONFIG_CRYPTO_TEA is not set
+# CONFIG_CRYPTO_TWOFISH is not set
+
+#
+# Compression
+#
+CONFIG_CRYPTO_DEFLATE=y
+# CONFIG_CRYPTO_ZLIB is not set
+CONFIG_CRYPTO_LZO=y
+
+#
+# Random Number Generation
+#
+# CONFIG_CRYPTO_ANSI_CPRNG is not set
+# CONFIG_CRYPTO_USER_API_HASH is not set
+# CONFIG_CRYPTO_USER_API_SKCIPHER is not set
+CONFIG_CRYPTO_HW=y
+# CONFIG_BINARY_PRINTF is not set
+
+#
+# Library routines
+#
+CONFIG_BITREVERSE=y
+CONFIG_RATIONAL=y
+CONFIG_CRC_CCITT=m
+CONFIG_CRC16=y
+# CONFIG_CRC_T10DIF is not set
+# CONFIG_CRC_ITU_T is not set
+CONFIG_CRC32=y
+# CONFIG_CRC7 is not set
+# CONFIG_LIBCRC32C is not set
+CONFIG_ZLIB_INFLATE=y
+CONFIG_ZLIB_DEFLATE=y
+CONFIG_LZO_COMPRESS=y
+CONFIG_LZO_DECOMPRESS=y
+# CONFIG_XZ_DEC is not set
+# CONFIG_XZ_DEC_BCJ is not set
+CONFIG_GENERIC_ALLOCATOR=y
+CONFIG_HAS_IOMEM=y
+CONFIG_HAS_IOPORT=y
+CONFIG_HAS_DMA=y
+CONFIG_NLATTR=y
+# CONFIG_AVERAGE is not set
diff --git a/arch/arm/mach-mx6/Kconfig b/arch/arm/mach-mx6/Kconfig
index 1db924a0975e..c6851d064eaa 100644
--- a/arch/arm/mach-mx6/Kconfig
+++ b/arch/arm/mach-mx6/Kconfig
@@ -23,6 +23,9 @@ config FORCE_MAX_ZONEORDER
config SOC_IMX6Q
bool
+config SOC_IMX6SL
+ bool
+
config MACH_MX6Q_ARM2
bool "Support i.MX 6Quad Armadillo2 platform"
select ARCH_MX6Q
@@ -59,12 +62,46 @@ config MACH_MX6Q_ARM2
select IMX_HAVE_PLATFORM_PERFMON
select IMX_HAVE_PLATFORM_MXC_MLB
select IMX_HAVE_PLATFORM_IMX_EPDC
+ select IMX_HAVE_PLATFORM_IMX_ELCDIF
select IMX_HAVE_PLATFORM_IMX_PXP
select IMX_HAVE_PLATFORM_IMX_PCIE
help
Include support for i.MX 6Quad Armadillo2 platform. This includes specific
configurations for the board and its peripherals.
+config MACH_MX6SL_ARM2
+ bool "Support i.MX 6SoloLite Armadillo2 platform"
+ select ARCH_MX6Q
+ select SOC_IMX6SL
+ select IMX_HAVE_PLATFORM_IMX_UART
+ select IMX_HAVE_PLATFORM_DMA
+ select IMX_HAVE_PLATFORM_FEC
+ select IMX_HAVE_PLATFORM_SDHCI_ESDHC_IMX
+ select IMX_HAVE_PLATFORM_SPI_IMX
+ select IMX_HAVE_PLATFORM_IMX_I2C
+ select IMX_HAVE_PLATFORM_VIV_GPU
+ select IMX_HAVE_PLATFORM_IMX_DVFS
+ select IMX_HAVE_PLATFORM_IMX_SSI
+ select IMX_HAVE_PLATFORM_IMX_ANATOP_THERMAL
+ select IMX_HAVE_PLATFORM_FSL_USB2_UDC
+ select IMX_HAVE_PLATFORM_MXC_EHCI
+ select IMX_HAVE_PLATFORM_FSL_OTG
+ select IMX_HAVE_PLATFORM_FSL_USB_WAKEUP
+ select IMX_HAVE_PLATFORM_AHCI
+ select IMX_HAVE_PLATFORM_IMX_OCOTP
+ select IMX_HAVE_PLATFORM_IMX_VIIM
+ select IMX_HAVE_PLATFORM_IMX2_WDT
+ select IMX_HAVE_PLATFORM_IMX_SNVS_RTC
+ select IMX_HAVE_PLATFORM_IMX_PM
+ select IMX_HAVE_PLATFORM_IMX_SPDIF
+ select IMX_HAVE_PLATFORM_PERFMON
+ select IMX_HAVE_PLATFORM_IMX_EPDC
+ select IMX_HAVE_PLATFORM_IMX_SPDC
+ select IMX_HAVE_PLATFORM_IMX_PXP
+ help
+ Include support for i.MX 6Sololite Armadillo2 platform. This includes specific
+ configurations for the board and its peripherals.
+
config MACH_MX6Q_SABRELITE
bool "Support i.MX 6Quad SABRE Lite platform"
select ARCH_MX6Q
@@ -172,4 +209,13 @@ config IMX_PCIE
bool "PCI Express support"
select PCI
+config MX6_INTER_LDO_BYPASS
+ bool "Internal LDO in MX6Q/DL bypass"
+ depends on REGULATOR_PFUZE100 && CPU_FREQ_IMX && ARCH_MX6
+ default n
+ help
+ This is choosed for bypass internal LDO in MX6. If choose it, internal
+ LDO will replaced by external pmic regulator(e.g. pfuze100), VDDCORE
+ can be adjust automatically adjust by cpu frequency.
+
endif
diff --git a/arch/arm/mach-mx6/Makefile b/arch/arm/mach-mx6/Makefile
index e76f438c9194..03ae8ddfc75d 100644
--- a/arch/arm/mach-mx6/Makefile
+++ b/arch/arm/mach-mx6/Makefile
@@ -7,8 +7,9 @@ obj-y := cpu.o mm.o system.o devices.o dummy_gpio.o irq.o bus_freq.o usb_dr.o
pm.o cpu_op-mx6.o mx6_wfi.o mx6_fec.o mx6_anatop_regulator.o cpu_regulator-mx6.o \
mx6_mmdc.o mx6_ddr_freq.o
-obj-$(CONFIG_ARCH_MX6) += clock.o mx6q_suspend.o
+obj-$(CONFIG_ARCH_MX6) += clock.o mx6_suspend.o clock_mx6sl.o
obj-$(CONFIG_MACH_MX6Q_ARM2) += board-mx6q_arm2.o
+obj-$(CONFIG_MACH_MX6SL_ARM2) += board-mx6sl_arm2.o mx6sl_arm2_pmic_pfuze100.o
obj-$(CONFIG_MACH_MX6Q_SABRELITE) += board-mx6q_sabrelite.o
obj-$(CONFIG_MACH_MX6Q_SABRESD) += board-mx6q_sabresd.o mx6q_sabresd_pmic_pfuze100.o
obj-$(CONFIG_MACH_MX6Q_SABREAUTO) += board-mx6q_sabreauto.o mx6q_sabreauto_pmic_pfuze100.o
diff --git a/arch/arm/mach-mx6/board-mx6dl_sabresd.h b/arch/arm/mach-mx6/board-mx6dl_sabresd.h
index b397163da06b..35701a4979d4 100644
--- a/arch/arm/mach-mx6/board-mx6dl_sabresd.h
+++ b/arch/arm/mach-mx6/board-mx6dl_sabresd.h
@@ -384,4 +384,10 @@ static iomux_v3_cfg_t mx6dl_sabresd_epdc_disable_pads[] = {
*/
};
+static iomux_v3_cfg_t mx6dl_arm2_elan_pads[] = {
+ MX6DL_PAD_EIM_A20__GPIO_2_18,
+ MX6DL_PAD_EIM_DA8__GPIO_3_8,
+ MX6DL_PAD_EIM_D28__GPIO_3_28,
+};
+
#endif
diff --git a/arch/arm/mach-mx6/board-mx6q_arm2.c b/arch/arm/mach-mx6/board-mx6q_arm2.c
index ba8f92fedfdd..c53840bbaf76 100644
--- a/arch/arm/mach-mx6/board-mx6q_arm2.c
+++ b/arch/arm/mach-mx6/board-mx6q_arm2.c
@@ -171,7 +171,6 @@ extern char *gp_reg_id;
extern int epdc_enabled;
extern void mx6_cpu_regulator_init(void);
static int max17135_regulator_init(struct max17135 *max17135);
-extern volatile int num_cpu_idle_lock;
enum sd_pad_mode {
SD_PAD_MODE_LOW_SPEED,
@@ -588,6 +587,7 @@ static struct fsl_mxc_camera_platform_data camera_data = {
.analog_regulator = "DA9052_LDO7",
.core_regulator = "DA9052_LDO9",
.mclk = 24000000,
+ .mclk_source = 0,
.csi = 0,
.io_init = mx6_csi0_io_init,
};
@@ -649,15 +649,15 @@ static void mx6_mipi_sensor_io_init(void)
mxc_iomux_v3_setup_multiple_pads(mipi_sensor_pads,
mipi_sensor_pads_cnt);
- if (cpu_is_mx6q())
- mxc_iomux_set_gpr_register(1, 19, 1, 0);
+ /*for mx6dl, mipi virtual channel 1 connect to csi 1*/
if (cpu_is_mx6dl())
- mxc_iomux_set_gpr_register(13, 0, 3, 0);
+ mxc_iomux_set_gpr_register(13, 3, 3, 1);
}
static struct fsl_mxc_camera_platform_data ov5640_mipi_data = {
.mclk = 24000000,
- .csi = 0,
+ .csi = 1,
+ .mclk_source = 0,
.io_init = mx6_mipi_sensor_io_init,
};
@@ -1538,6 +1538,21 @@ static struct mipi_csi2_platform_data mipi_csi2_pdata = {
.pixel_clk = "emi_clk",
};
+static struct fsl_mxc_capture_platform_data capture_data[] = {
+ {
+ .csi = 0,
+ .ipu = 0,
+ .mclk_source = 0,
+ .is_mipi = 0,
+ }, {
+ .csi = 1,
+ .ipu = 0,
+ .mclk_source = 0,
+ .is_mipi = 1,
+ },
+};
+
+
static void arm2_suspend_enter(void)
{
/* suspend preparation */
@@ -2013,7 +2028,6 @@ static void __init mx6_arm2_init(void)
spdif_pads_cnt = ARRAY_SIZE(mx6dl_arm2_spdif_pads);
flexcan_pads_cnt = ARRAY_SIZE(mx6dl_arm2_can_pads);
i2c3_pads_cnt = ARRAY_SIZE(mx6dl_arm2_i2c3_pads);
- num_cpu_idle_lock = 0xffff0000;
}
BUG_ON(!common_pads);
@@ -2091,10 +2105,13 @@ static void __init mx6_arm2_init(void)
imx6q_add_lcdif(&lcdif_data);
imx6q_add_ldb(&ldb_data);
imx6q_add_v4l2_output(0);
- imx6q_add_v4l2_capture(0);
+ imx6q_add_v4l2_capture(0, &capture_data[0]);
+ imx6q_add_v4l2_capture(1, &capture_data[1]);
imx6q_add_imx_snvs_rtc();
+ imx6q_add_imx_caam();
+
imx6q_add_imx_i2c(0, &mx6_arm2_i2c0_data);
imx6q_add_imx_i2c(1, &mx6_arm2_i2c1_data);
i2c_register_board_info(0, mxc_i2c0_board_info,
@@ -2218,6 +2235,7 @@ static struct sys_timer mxc_timer = {
static void __init mx6_arm2_reserve(void)
{
+#ifdef CONFIG_MXC_GPU_VIV
phys_addr_t phys;
if (imx6_gpu_pdata.reserved_mem_size) {
@@ -2227,6 +2245,7 @@ static void __init mx6_arm2_reserve(void)
memblock_remove(phys, imx6_gpu_pdata.reserved_mem_size);
imx6_gpu_pdata.reserved_mem_base = phys;
}
+#endif
if (imx_ion_data.heaps[0].size) {
phys = memblock_alloc(imx_ion_data.heaps[0].size, SZ_4K);
diff --git a/arch/arm/mach-mx6/board-mx6q_sabreauto.c b/arch/arm/mach-mx6/board-mx6q_sabreauto.c
index ba4ad5b05f63..5d59855a2204 100644
--- a/arch/arm/mach-mx6/board-mx6q_sabreauto.c
+++ b/arch/arm/mach-mx6/board-mx6q_sabreauto.c
@@ -139,7 +139,14 @@ static int mipi_sensor;
static int can0_enable;
static int uart3_en;
static int tuner_en;
-extern volatile int num_cpu_idle_lock;
+static int spinor_en;
+
+static int __init spinor_enable(char *p)
+{
+ spinor_en = 1;
+ return 0;
+}
+early_param("spi-nor", spinor_enable);
static int __init uart3_enable(char *p)
{
@@ -476,7 +483,7 @@ static int max7310_1_setup(struct i2c_client *client,
/* 7 GPS_RST_B */
int max7310_gpio_value[] = {
- 0, 1, 1, 1, 0, 0, 0, 0,
+ 0, 1, 1, 1, 0, 0, 1, 0,
};
int n;
@@ -1273,6 +1280,21 @@ static struct mxc_spdif_platform_data mxc_spdif_data = {
.spdif_clk = NULL, /* spdif bus clk */
};
+static struct fsl_mxc_capture_platform_data capture_data[] = {
+ {
+ .csi = 0,
+ .ipu = 0,
+ .mclk_source = 0,
+ .is_mipi = 0,
+ }, {
+ .csi = 1,
+ .ipu = 0,
+ .mclk_source = 0,
+ .is_mipi = 1,
+ },
+};
+
+
/*!
* Board specific initialization.
*/
@@ -1332,13 +1354,14 @@ static void __init mx6_board_init(void)
i2c3_pads = mx6dl_i2c3_pads_rev_b;
i2c3_pads_cnt = ARRAY_SIZE(mx6dl_i2c3_pads_rev_b);
}
- num_cpu_idle_lock = 0xffff0000;
}
BUG_ON(!common_pads);
mxc_iomux_v3_setup_multiple_pads(common_pads, common_pads_cnt);
- BUG_ON(!i2c3_pads);
- mxc_iomux_v3_setup_multiple_pads(i2c3_pads, i2c3_pads_cnt);
+ if (!spinor_en) {
+ BUG_ON(!i2c3_pads);
+ mxc_iomux_v3_setup_multiple_pads(i2c3_pads, i2c3_pads_cnt);
+ }
if (can0_enable) {
BUG_ON(!can0_pads);
@@ -1361,7 +1384,10 @@ static void __init mx6_board_init(void)
if (!board_is_mx6_reva()) {
/* enable i2c3_sda route path */
gpio_request(SABREAUTO_I2C3_STEER, "i2c3-steer");
- gpio_direction_output(SABREAUTO_I2C3_STEER, 1);
+ if (spinor_en)
+ gpio_direction_output(SABREAUTO_I2C3_STEER, 0);
+ else
+ gpio_direction_output(SABREAUTO_I2C3_STEER, 1);
/* Set GPIO_16 input for IEEE-1588 ts_clk and
* RMII reference clk
* For MX6 GPR1 bit21 meaning:
@@ -1405,7 +1431,8 @@ static void __init mx6_board_init(void)
imx6q_add_lcdif(&lcdif_data);
imx6q_add_ldb(&ldb_data);
imx6q_add_v4l2_output(0);
- imx6q_add_v4l2_capture(0);
+ imx6q_add_v4l2_capture(0, &capture_data[0]);
+ imx6q_add_v4l2_capture(1, &capture_data[1]);
imx6q_add_android_device_buttons();
imx6q_add_imx_snvs_rtc();
@@ -1536,6 +1563,7 @@ static struct sys_timer mxc_timer = {
static void __init mx6q_reserve(void)
{
+#ifdef CONFIG_MXC_GPU_VIV
phys_addr_t phys;
if (imx6q_gpu_pdata.reserved_mem_size) {
@@ -1545,6 +1573,7 @@ static void __init mx6q_reserve(void)
memblock_remove(phys, imx6q_gpu_pdata.reserved_mem_size);
imx6q_gpu_pdata.reserved_mem_base = phys;
}
+#endif
if (imx_ion_data.heaps[0].size) {
phys = memblock_alloc(imx_ion_data.heaps[0].size, SZ_4K);
diff --git a/arch/arm/mach-mx6/board-mx6q_sabrelite.c b/arch/arm/mach-mx6/board-mx6q_sabrelite.c
index ce10d6d6a8fb..d692f968a383 100644
--- a/arch/arm/mach-mx6/board-mx6q_sabrelite.c
+++ b/arch/arm/mach-mx6/board-mx6q_sabrelite.c
@@ -596,6 +596,7 @@ static void mx6q_csi0_io_init(void)
static struct fsl_mxc_camera_platform_data camera_data = {
.mclk = 24000000,
+ .mclk_source = 0,
.csi = 0,
.io_init = mx6q_csi0_io_init,
};
@@ -843,6 +844,21 @@ static struct ion_platform_data imx_ion_data = {
},
};
+static struct fsl_mxc_capture_platform_data capture_data[] = {
+ {
+ .csi = 0,
+ .ipu = 0,
+ .mclk_source = 0,
+ .is_mipi = 0,
+ }, {
+ .csi = 1,
+ .ipu = 0,
+ .mclk_source = 0,
+ .is_mipi = 1,
+ },
+};
+
+
static void sabrelite_suspend_enter(void)
{
/* suspend preparation */
@@ -1119,7 +1135,8 @@ static void __init mx6_sabrelite_board_init(void)
imx6q_add_lcdif(&lcdif_data);
imx6q_add_ldb(&ldb_data);
imx6q_add_v4l2_output(0);
- imx6q_add_v4l2_capture(0);
+ imx6q_add_v4l2_capture(0, &capture_data[0]);
+ imx6q_add_v4l2_capture(1, &capture_data[1]);
imx6q_add_mipi_csi2(&mipi_csi2_pdata);
imx6q_add_imx_snvs_rtc();
@@ -1221,6 +1238,7 @@ static struct sys_timer mx6_sabrelite_timer = {
static void __init mx6q_sabrelite_reserve(void)
{
+#ifdef CONFIG_MXC_GPU_VIV
phys_addr_t phys;
int i;
@@ -1231,6 +1249,7 @@ static void __init mx6q_sabrelite_reserve(void)
memblock_remove(phys, imx6q_gpu_pdata.reserved_mem_size);
imx6q_gpu_pdata.reserved_mem_base = phys;
}
+#endif
if (imx_ion_data.heaps[0].size) {
phys = memblock_alloc(imx_ion_data.heaps[0].size, SZ_4K);
diff --git a/arch/arm/mach-mx6/board-mx6q_sabresd.c b/arch/arm/mach-mx6/board-mx6q_sabresd.c
index 7548d8981514..bc0ee4058f04 100644
--- a/arch/arm/mach-mx6/board-mx6q_sabresd.c
+++ b/arch/arm/mach-mx6/board-mx6q_sabresd.c
@@ -47,7 +47,7 @@
#include <linux/gpio.h>
#include <linux/ion.h>
#include <linux/etherdevice.h>
-#include <linux/power/max8903_charger.h>
+#include <linux/power/sabresd_battery.h>
#include <linux/regulator/anatop-regulator.h>
#include <linux/regulator/consumer.h>
#include <linux/regulator/machine.h>
@@ -194,15 +194,20 @@
#define SABRESD_EPDC_VCOM IMX_GPIO_NR(3, 17)
#define SABRESD_CHARGE_NOW IMX_GPIO_NR(1, 2)
#define SABRESD_CHARGE_DONE IMX_GPIO_NR(1, 1)
+#define SABRESD_ELAN_CE IMX_GPIO_NR(2, 18)
+#define SABRESD_ELAN_RST IMX_GPIO_NR(3, 8)
+#define SABRESD_ELAN_INT IMX_GPIO_NR(3, 28)
static struct clk *sata_clk;
+static struct clk *clko;
static int mma8451_position = 1;
static int mag3110_position = 2;
-static int disable_ldb;
+static int max11801_mode = 1;
+static int enable_lcd_ldb;
+
extern char *gp_reg_id;
extern int epdc_enabled;
-extern volatile int num_cpu_idle_lock;
static int max17135_regulator_init(struct max17135 *max17135);
@@ -386,26 +391,20 @@ static struct platform_device mx6_sabresd_audio_wm8962_device = {
.name = "imx-wm8962",
};
-static struct wm8962_pdata wm8962_config_data = {
- .gpio_init = {
- [2] = WM8962_GPIO_FN_DMICCLK,
- [4] = 0x8000 | WM8962_GPIO_FN_DMICDAT,
- },
-};
+static struct mxc_audio_platform_data wm8962_data;
-static struct mxc_audio_platform_data wm8962_data = {
- .ssi_num = 1,
- .src_port = 2,
- .ext_port = 3,
- .hp_gpio = SABRESD_HEADPHONE_DET,
- .hp_active_low = 1,
- .mic_gpio = SABRESD_MICROPHONE_DET,
- .mic_active_low = 1,
-};
+static int wm8962_clk_enable(int enable)
+{
+ if (enable)
+ clk_enable(clko);
+ else
+ clk_disable(clko);
+
+ return 0;
+}
static int mxc_wm8962_init(void)
{
- struct clk *clko;
int rate;
clko = clk_get(NULL, "clko_clk");
@@ -415,13 +414,32 @@ static int mxc_wm8962_init(void)
}
/* both audio codec and comera use CLKO clk*/
rate = clk_round_rate(clko, 22000000);
+ clk_set_rate(clko, rate);
wm8962_data.sysclk = rate;
- clk_set_rate(clko, rate);
return 0;
}
+static struct wm8962_pdata wm8962_config_data = {
+ .gpio_init = {
+ [2] = WM8962_GPIO_FN_DMICCLK,
+ [4] = 0x8000 | WM8962_GPIO_FN_DMICDAT,
+ },
+};
+
+static struct mxc_audio_platform_data wm8962_data = {
+ .ssi_num = 1,
+ .src_port = 2,
+ .ext_port = 3,
+ .hp_gpio = SABRESD_HEADPHONE_DET,
+ .hp_active_low = 1,
+ .mic_gpio = SABRESD_MICROPHONE_DET,
+ .mic_active_low = 1,
+ .init = mxc_wm8962_init,
+ .clock_enable = wm8962_clk_enable,
+};
+
static struct regulator_consumer_supply sabresd_vwm8962_consumers[] = {
REGULATOR_SUPPLY("SPKVDD1", "0-001a"),
REGULATOR_SUPPLY("SPKVDD2", "0-001a"),
@@ -507,6 +525,7 @@ static void mx6q_csi0_io_init(void)
static struct fsl_mxc_camera_platform_data camera_data = {
.mclk = 22000000,
+ .mclk_source = 0,
.csi = 0,
.io_init = mx6q_csi0_io_init,
.pwdn = mx6q_csi0_cam_powerdown,
@@ -539,16 +558,15 @@ static void mx6q_mipi_sensor_io_init(void)
msleep(1);
gpio_set_value(SABRESD_MIPICSI_PWN, 0);
- if (cpu_is_mx6q())
- mxc_iomux_set_gpr_register(1, 19, 1, 0);
- if (cpu_is_mx6dl()) {
- mxc_iomux_set_gpr_register(13, 0, 3, 0);
- }
+ /*for mx6dl, mipi virtual channel 1 connect to csi 1*/
+ if (cpu_is_mx6dl())
+ mxc_iomux_set_gpr_register(13, 3, 3, 1);
}
static struct fsl_mxc_camera_platform_data mipi_csi2_data = {
.mclk = 24000000,
- .csi = 0,
+ .mclk_source = 0,
+ .csi = 1,
.io_init = mx6q_mipi_sensor_io_init,
.pwdn = mx6q_mipi_powerdown,
};
@@ -767,6 +785,11 @@ static struct i2c_board_info mxc_i2c1_board_info[] __initdata = {
I2C_BOARD_INFO("egalax_ts", 0x4),
.irq = gpio_to_irq(SABRESD_CAP_TCH_INT0),
},
+ {
+ I2C_BOARD_INFO("max11801", 0x48),
+ .platform_data = (void *)&max11801_mode,
+ .irq = gpio_to_irq(SABRESD_TS_INT),
+ },
};
static struct i2c_board_info mxc_i2c2_board_info[] __initdata = {
@@ -787,6 +810,9 @@ static struct i2c_board_info mxc_i2c2_board_info[] __initdata = {
I2C_BOARD_INFO("isl29023", 0x44),
.irq = gpio_to_irq(SABRESD_ALS_INT),
.platform_data = &ls_data,
+ }, {
+ I2C_BOARD_INFO("elan-touch", 0x10),
+ .irq = gpio_to_irq(SABRESD_ELAN_INT),
},
{
I2C_BOARD_INFO("mxc_ldb_i2c", 0x50),
@@ -1301,6 +1327,21 @@ static struct ion_platform_data imx_ion_data = {
},
};
+static struct fsl_mxc_capture_platform_data capture_data[] = {
+ {
+ .csi = 0,
+ .ipu = 0,
+ .mclk_source = 0,
+ .is_mipi = 0,
+ }, {
+ .csi = 1,
+ .ipu = 0,
+ .mclk_source = 0,
+ .is_mipi = 1,
+ },
+};
+
+
static void sabresd_suspend_enter(void)
{
/* suspend preparation */
@@ -1366,32 +1407,30 @@ static int __init imx6q_init_audio(void)
return 0;
}
-static void pcie_3v3_power(bool on)
+#ifndef CONFIG_IMX_PCIE
+static void pcie_3v3_power(void)
{
- /* Enable/disable PCIE_3V3 */
+ /* disable PCIE_3V3 first */
gpio_request(SABRESD_PCIE_PWR_EN, "pcie_3v3_en");
- gpio_direction_output(SABRESD_PCIE_PWR_EN, 1);
-
- if (on)
- gpio_set_value(SABRESD_PCIE_PWR_EN, 1);
- else
- gpio_set_value(SABRESD_PCIE_PWR_EN, 0);
-
+ gpio_direction_output(SABRESD_PCIE_PWR_EN, 0);
+ mdelay(10);
+ /* enable PCIE_3V3 again */
+ gpio_set_value(SABRESD_PCIE_PWR_EN, 1);
+ gpio_free(SABRESD_PCIE_PWR_EN);
}
-static void pcie_3v3_reset()
+static void pcie_3v3_reset(void)
{
/* reset miniPCIe */
gpio_request(SABRESD_PCIE_RST_B_REVB, "pcie_reset_rebB");
- gpio_direction_output(SABRESD_PCIE_RST_B_REVB, 1);
-
- gpio_set_value(SABRESD_PCIE_RST_B_REVB, 0);
+ gpio_direction_output(SABRESD_PCIE_RST_B_REVB, 0);
/* The PCI Express Mini CEM specification states that PREST# is
deasserted minimum 1ms after 3.3vVaux has been applied and stable*/
- msleep(1);
+ mdelay(1);
gpio_set_value(SABRESD_PCIE_RST_B_REVB, 1);
+ gpio_free(SABRESD_PCIE_RST_B_REVB);
}
-
+#endif
static void gps_power_on(bool on)
{
@@ -1407,6 +1446,7 @@ static void gps_power_on(bool on)
gpio_free(SABRESD_GPS_EN);
}
+
#if defined(CONFIG_LEDS_TRIGGER) || defined(CONFIG_LEDS_GPIO)
#define GPIO_LED(gpio_led, name_led, act_low, state_suspend, trigger) \
@@ -1497,7 +1537,11 @@ static struct platform_pwm_backlight_data mx6_sabresd_pwm_backlight_data = {
};
static struct mxc_dvfs_platform_data sabresd_dvfscore_data = {
+ #ifdef CONFIG_MX6_INTER_LDO_BYPASS
+ .reg_id = "VDDCORE",
+ #else
.reg_id = "cpu_vddgp",
+ #endif
.clk1_id = "cpu_clk",
.clk2_id = "gpc_dvfs_clk",
.gpc_cntr_offset = MXC_GPC_CNTR_OFFSET,
@@ -1547,7 +1591,7 @@ static void __init fixup_mxc_board(struct machine_desc *desc, struct tag *tags,
static struct mipi_csi2_platform_data mipi_csi2_pdata = {
.ipu_id = 0,
- .csi_id = 0,
+ .csi_id = 1,
.v_channel = 0,
.lanes = 2,
.dphy_clk = "mipi_pllref_clk",
@@ -1572,14 +1616,13 @@ static const struct imx_pcie_platform_data mx6_sabresd_pcie_data __initconst = {
.pcie_dis = SABRESD_PCIE_DIS_B,
};
-static int __init early_disable_ldb(char *p)
+static int __init early_enable_lcd_ldb(char *p)
{
- /*mipi dsi need pll3_pfd_540M as 540MHz, ldb will change to 454Mhz*/
- disable_ldb = 1;
+ enable_lcd_ldb = 1;
return 0;
}
+early_param("enable_lcd_ldb", early_enable_lcd_ldb);
-early_param("disable_ldb", early_disable_ldb);
/*!
* Board specific initialization.
*/
@@ -1597,7 +1640,6 @@ static void __init mx6_sabresd_board_init(void)
else if (cpu_is_mx6dl()) {
mxc_iomux_v3_setup_multiple_pads(mx6dl_sabresd_pads,
ARRAY_SIZE(mx6dl_sabresd_pads));
- num_cpu_idle_lock = 0xffff0000;
}
#ifdef CONFIG_FEC_1588
@@ -1609,15 +1651,6 @@ static void __init mx6_sabresd_board_init(void)
mxc_iomux_set_gpr_register(1, 21, 1, 1);
#endif
-#ifdef CONFIG_FEC_1588
- /* Set GPIO_16 input for IEEE-1588 ts_clk and RMII reference clock
- * For MX6 GPR1 bit21 meaning:
- * Bit21: 0 - GPIO_16 pad output
- * 1 - GPIO_16 pad input
- */
- mxc_iomux_set_gpr_register(1, 21, 1, 1);
-#endif
-
gp_reg_id = sabresd_dvfscore_data.reg_id;
mx6q_sabresd_init_uart();
@@ -1646,10 +1679,10 @@ static void __init mx6_sabresd_board_init(void)
imx6q_add_vdoa();
imx6q_add_mipi_dsi(&mipi_dsi_pdata);
imx6q_add_lcdif(&lcdif_data);
- if (!disable_ldb)
- imx6q_add_ldb(&ldb_data);
+ imx6q_add_ldb(&ldb_data);
imx6q_add_v4l2_output(0);
- imx6q_add_v4l2_capture(0);
+ imx6q_add_v4l2_capture(0, &capture_data[0]);
+ imx6q_add_v4l2_capture(1, &capture_data[1]);
imx6q_add_mipi_csi2(&mipi_csi2_pdata);
imx6q_add_imx_snvs_rtc();
@@ -1679,7 +1712,6 @@ static void __init mx6_sabresd_board_init(void)
gpio_direction_input(SABRESD_PFUZE_INT);
mx6q_sabresd_init_pfuze100(SABRESD_PFUZE_INT);
}
-
/* SPI */
imx6q_add_ecspi(0, &mx6q_sabresd_spi_data);
spi_device_init();
@@ -1719,7 +1751,9 @@ static void __init mx6_sabresd_board_init(void)
imx6q_add_dma();
imx6q_add_dvfs_core(&sabresd_dvfscore_data);
+ #ifndef CONFIG_MX6_INTER_LDO_BYPASS
mx6_cpu_regulator_init();
+ #endif
imx6q_add_ion(0, &imx_ion_data,
sizeof(imx_ion_data) + sizeof(struct ion_platform_heap));
@@ -1774,20 +1808,39 @@ static void __init mx6_sabresd_board_init(void)
gpio_direction_output(SABRESD_AUX_5V_EN, 1);
gpio_set_value(SABRESD_AUX_5V_EN, 1);
- pcie_3v3_power(false);
- msleep(10);
- pcie_3v3_power(true);
- msleep(10);
+#ifndef CONFIG_IMX_PCIE
+ /* enable pcie 3v3 power without pcie driver */
+ pcie_3v3_power();
+ mdelay(10);
pcie_3v3_reset();
+#endif
gps_power_on(true);
-
/* Register charger chips */
platform_device_register(&sabresd_max8903_charger_1);
pm_power_off = mx6_snvs_poweroff;
imx6q_add_busfreq();
imx6q_add_pcie(&mx6_sabresd_pcie_data);
+ if (cpu_is_mx6dl()) {
+ mxc_iomux_v3_setup_multiple_pads(mx6dl_arm2_elan_pads,
+ ARRAY_SIZE(mx6dl_arm2_elan_pads));
+
+ /* ELAN Touchscreen */
+ gpio_request(SABRESD_ELAN_INT, "elan-interrupt");
+ gpio_direction_input(SABRESD_ELAN_INT);
+
+ gpio_request(SABRESD_ELAN_CE, "elan-cs");
+ gpio_direction_output(SABRESD_ELAN_CE, 1);
+ gpio_direction_output(SABRESD_ELAN_CE, 0);
+
+ gpio_request(SABRESD_ELAN_RST, "elan-rst");
+ gpio_direction_output(SABRESD_ELAN_RST, 1);
+ gpio_direction_output(SABRESD_ELAN_RST, 0);
+ mdelay(1);
+ gpio_direction_output(SABRESD_ELAN_RST, 1);
+ gpio_direction_output(SABRESD_ELAN_CE, 1);
+ }
}
extern void __iomem *twd_base;
@@ -1810,6 +1863,7 @@ static struct sys_timer mx6_sabresd_timer = {
static void __init mx6q_sabresd_reserve(void)
{
+#ifdef CONFIG_MXC_GPU_VIV
phys_addr_t phys;
int i;
@@ -1820,6 +1874,7 @@ static void __init mx6q_sabresd_reserve(void)
memblock_remove(phys, imx6q_gpu_pdata.reserved_mem_size);
imx6q_gpu_pdata.reserved_mem_base = phys;
}
+#endif
if (imx_ion_data.heaps[0].size) {
phys = memblock_alloc(imx_ion_data.heaps[0].size, SZ_4K);
diff --git a/arch/arm/mach-mx6/board-mx6sl_arm2.c b/arch/arm/mach-mx6/board-mx6sl_arm2.c
new file mode 100755
index 000000000000..b57de6a21ee4
--- /dev/null
+++ b/arch/arm/mach-mx6/board-mx6sl_arm2.c
@@ -0,0 +1,1068 @@
+/*
+ * Copyright (C) 2012 Freescale Semiconductor, Inc. All Rights Reserved.
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+
+ * You should have received a copy of the GNU General Public License along
+ * with this program; if not, write to the Free Software Foundation, Inc.,
+ * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+ */
+
+#include <linux/types.h>
+#include <linux/sched.h>
+#include <linux/delay.h>
+#include <linux/pm.h>
+#include <linux/interrupt.h>
+#include <linux/irq.h>
+#include <linux/init.h>
+#include <linux/input.h>
+#include <linux/nodemask.h>
+#include <linux/clk.h>
+#include <linux/platform_device.h>
+#include <linux/fsl_devices.h>
+#include <linux/smsc911x.h>
+#include <linux/spi/spi.h>
+#include <linux/spi/flash.h>
+#include <linux/i2c.h>
+#include <linux/i2c/pca953x.h>
+#include <linux/ata.h>
+#include <linux/mtd/mtd.h>
+#include <linux/mtd/map.h>
+#include <linux/mtd/partitions.h>
+#include <linux/pmic_external.h>
+#include <linux/pmic_status.h>
+#include <linux/mxcfb.h>
+#include <linux/pwm_backlight.h>
+#include <linux/fec.h>
+#include <linux/memblock.h>
+#include <linux/gpio.h>
+#include <linux/etherdevice.h>
+#include <linux/regulator/anatop-regulator.h>
+#include <linux/regulator/consumer.h>
+#include <linux/regulator/machine.h>
+#include <linux/regulator/fixed.h>
+#include <linux/mfd/max17135.h>
+#include <sound/wm8962.h>
+#include <sound/pcm.h>
+
+#include <mach/common.h>
+#include <mach/hardware.h>
+#include <mach/mxc_dvfs.h>
+#include <mach/memory.h>
+#include <mach/iomux-mx6sl.h>
+#include <mach/imx-uart.h>
+#include <mach/viv_gpu.h>
+
+#include <asm/irq.h>
+#include <asm/setup.h>
+#include <asm/mach-types.h>
+#include <asm/mach/arch.h>
+#include <asm/mach/time.h>
+
+#include "usb.h"
+#include "devices-imx6q.h"
+#include "crm_regs.h"
+#include "cpu_op-mx6.h"
+#include "board-mx6sl_arm2.h"
+
+#define MX6_ARM2_USBOTG1_PWR IMX_GPIO_NR(4, 0) /* KEY_COL4 */
+#define MX6_ARM2_USBOTG2_PWR IMX_GPIO_NR(4, 2) /* KEY_COL5 */
+#define MX6_ARM2_LCD_PWR_EN IMX_GPIO_NR(4, 3) /* KEY_ROW5 */
+#define MX6_ARM2_SD1_WP IMX_GPIO_NR(4, 6) /* KEY_COL7 */
+#define MX6_ARM2_SD1_CD IMX_GPIO_NR(4, 7) /* KEY_ROW7 */
+#define MX6_ARM2_ECSPI1_CS0 IMX_GPIO_NR(4, 11) /* ECSPI1_SS0 */
+#define MX6_ARM2_HEADPHONE_DET IMX_GPIO_NR(4, 19) /* FEC_RX_ER */
+#define MX6_ARM2_SD2_WP IMX_GPIO_NR(4, 29) /* SD2_DAT6 */
+#define MX6_ARM2_SD2_CD IMX_GPIO_NR(5, 0) /* SD2_DAT7 */
+#define MX6_ARM2_SD3_CD IMX_GPIO_NR(3, 22) /* REF_CLK_32K */
+#define MX6_ARM2_FEC_PWR_EN IMX_GPIO_NR(4, 21) /* FEC_TX_CLK */
+
+/* EPDC GPIO pins */
+#define MX6SL_ARM2_EPDC_SDDO_0 IMX_GPIO_NR(1, 7)
+#define MX6SL_ARM2_EPDC_SDDO_1 IMX_GPIO_NR(1, 8)
+#define MX6SL_ARM2_EPDC_SDDO_2 IMX_GPIO_NR(1, 9)
+#define MX6SL_ARM2_EPDC_SDDO_3 IMX_GPIO_NR(1, 10)
+#define MX6SL_ARM2_EPDC_SDDO_4 IMX_GPIO_NR(1, 11)
+#define MX6SL_ARM2_EPDC_SDDO_5 IMX_GPIO_NR(1, 12)
+#define MX6SL_ARM2_EPDC_SDDO_6 IMX_GPIO_NR(1, 13)
+#define MX6SL_ARM2_EPDC_SDDO_7 IMX_GPIO_NR(1, 14)
+#define MX6SL_ARM2_EPDC_SDDO_8 IMX_GPIO_NR(1, 15)
+#define MX6SL_ARM2_EPDC_SDDO_9 IMX_GPIO_NR(1, 16)
+#define MX6SL_ARM2_EPDC_SDDO_10 IMX_GPIO_NR(1, 17)
+#define MX6SL_ARM2_EPDC_SDDO_11 IMX_GPIO_NR(1, 18)
+#define MX6SL_ARM2_EPDC_SDDO_12 IMX_GPIO_NR(1, 19)
+#define MX6SL_ARM2_EPDC_SDDO_13 IMX_GPIO_NR(1, 20)
+#define MX6SL_ARM2_EPDC_SDDO_14 IMX_GPIO_NR(1, 21)
+#define MX6SL_ARM2_EPDC_SDDO_15 IMX_GPIO_NR(1, 22)
+#define MX6SL_ARM2_EPDC_GDCLK IMX_GPIO_NR(1, 31)
+#define MX6SL_ARM2_EPDC_GDSP IMX_GPIO_NR(2, 2)
+#define MX6SL_ARM2_EPDC_GDOE IMX_GPIO_NR(2, 0)
+#define MX6SL_ARM2_EPDC_GDRL IMX_GPIO_NR(2, 1)
+#define MX6SL_ARM2_EPDC_SDCLK IMX_GPIO_NR(1, 23)
+#define MX6SL_ARM2_EPDC_SDOE IMX_GPIO_NR(1, 25)
+#define MX6SL_ARM2_EPDC_SDLE IMX_GPIO_NR(1, 24)
+#define MX6SL_ARM2_EPDC_SDSHR IMX_GPIO_NR(1, 26)
+#define MX6SL_ARM2_EPDC_PWRCOM IMX_GPIO_NR(2, 11)
+#define MX6SL_ARM2_EPDC_PWRSTAT IMX_GPIO_NR(2, 13)
+#define MX6SL_ARM2_EPDC_PWRCTRL0 IMX_GPIO_NR(2, 7)
+#define MX6SL_ARM2_EPDC_PWRCTRL1 IMX_GPIO_NR(2, 8)
+#define MX6SL_ARM2_EPDC_PWRCTRL2 IMX_GPIO_NR(2, 9)
+#define MX6SL_ARM2_EPDC_PWRCTRL3 IMX_GPIO_NR(2, 10)
+#define MX6SL_ARM2_EPDC_BDR0 IMX_GPIO_NR(2, 5)
+#define MX6SL_ARM2_EPDC_BDR1 IMX_GPIO_NR(2, 6)
+#define MX6SL_ARM2_EPDC_SDCE0 IMX_GPIO_NR(1, 27)
+#define MX6SL_ARM2_EPDC_SDCE1 IMX_GPIO_NR(1, 28)
+#define MX6SL_ARM2_EPDC_SDCE2 IMX_GPIO_NR(1, 29)
+#define MX6SL_ARM2_EPDC_SDCE3 IMX_GPIO_NR(1, 30)
+#define MX6SL_ARM2_EPDC_PMIC_WAKE IMX_GPIO_NR(2, 14) /* EPDC_PWRWAKEUP */
+#define MX6SL_ARM2_EPDC_PMIC_INT IMX_GPIO_NR(2, 12) /* EPDC_PWRINT */
+#define MX6SL_ARM2_EPDC_VCOM IMX_GPIO_NR(2, 3)
+
+static int max17135_regulator_init(struct max17135 *max17135);
+struct clk *extern_audio_root;
+
+extern int __init mx6sl_arm2_init_pfuze100(u32 int_gpio);
+static const struct esdhc_platform_data mx6_arm2_sd1_data __initconst = {
+ .cd_gpio = MX6_ARM2_SD1_CD,
+ .wp_gpio = MX6_ARM2_SD1_WP,
+ .support_8bit = 1,
+ .keep_power_at_suspend = 1,
+ .delay_line = 0,
+};
+
+static const struct esdhc_platform_data mx6_arm2_sd2_data __initconst = {
+ .cd_gpio = MX6_ARM2_SD2_CD,
+ .wp_gpio = MX6_ARM2_SD2_WP,
+ .keep_power_at_suspend = 1,
+ .delay_line = 0,
+};
+
+static const struct esdhc_platform_data mx6_arm2_sd3_data __initconst = {
+ .cd_gpio = MX6_ARM2_SD3_CD,
+ .keep_power_at_suspend = 1,
+ .delay_line = 0,
+};
+
+#define mV_to_uV(mV) (mV * 1000)
+#define uV_to_mV(uV) (uV / 1000)
+#define V_to_uV(V) (mV_to_uV(V * 1000))
+#define uV_to_V(uV) (uV_to_mV(uV) / 1000)
+
+static struct regulator_consumer_supply display_consumers[] = {
+ {
+ /* MAX17135 */
+ .supply = "DISPLAY",
+ },
+};
+
+static struct regulator_consumer_supply vcom_consumers[] = {
+ {
+ /* MAX17135 */
+ .supply = "VCOM",
+ },
+};
+
+static struct regulator_consumer_supply v3p3_consumers[] = {
+ {
+ /* MAX17135 */
+ .supply = "V3P3",
+ },
+};
+
+static struct regulator_init_data max17135_init_data[] = {
+ {
+ .constraints = {
+ .name = "DISPLAY",
+ .valid_ops_mask = REGULATOR_CHANGE_STATUS,
+ },
+ .num_consumer_supplies = ARRAY_SIZE(display_consumers),
+ .consumer_supplies = display_consumers,
+ }, {
+ .constraints = {
+ .name = "GVDD",
+ .min_uV = V_to_uV(20),
+ .max_uV = V_to_uV(20),
+ },
+ }, {
+ .constraints = {
+ .name = "GVEE",
+ .min_uV = V_to_uV(-22),
+ .max_uV = V_to_uV(-22),
+ },
+ }, {
+ .constraints = {
+ .name = "HVINN",
+ .min_uV = V_to_uV(-22),
+ .max_uV = V_to_uV(-22),
+ },
+ }, {
+ .constraints = {
+ .name = "HVINP",
+ .min_uV = V_to_uV(20),
+ .max_uV = V_to_uV(20),
+ },
+ }, {
+ .constraints = {
+ .name = "VCOM",
+ .min_uV = mV_to_uV(-4325),
+ .max_uV = mV_to_uV(-500),
+ .valid_ops_mask = REGULATOR_CHANGE_VOLTAGE |
+ REGULATOR_CHANGE_STATUS,
+ },
+ .num_consumer_supplies = ARRAY_SIZE(vcom_consumers),
+ .consumer_supplies = vcom_consumers,
+ }, {
+ .constraints = {
+ .name = "VNEG",
+ .min_uV = V_to_uV(-15),
+ .max_uV = V_to_uV(-15),
+ },
+ }, {
+ .constraints = {
+ .name = "VPOS",
+ .min_uV = V_to_uV(15),
+ .max_uV = V_to_uV(15),
+ },
+ }, {
+ .constraints = {
+ .name = "V3P3",
+ .valid_ops_mask = REGULATOR_CHANGE_STATUS,
+ },
+ .num_consumer_supplies = ARRAY_SIZE(v3p3_consumers),
+ .consumer_supplies = v3p3_consumers,
+ },
+};
+
+static struct platform_device max17135_sensor_device = {
+ .name = "max17135_sensor",
+ .id = 0,
+};
+
+static struct max17135_platform_data max17135_pdata __initdata = {
+ .vneg_pwrup = 1,
+ .gvee_pwrup = 1,
+ .vpos_pwrup = 2,
+ .gvdd_pwrup = 1,
+ .gvdd_pwrdn = 1,
+ .vpos_pwrdn = 2,
+ .gvee_pwrdn = 1,
+ .vneg_pwrdn = 1,
+ .gpio_pmic_pwrgood = MX6SL_ARM2_EPDC_PWRSTAT,
+ .gpio_pmic_vcom_ctrl = MX6SL_ARM2_EPDC_VCOM,
+ .gpio_pmic_wakeup = MX6SL_ARM2_EPDC_PMIC_WAKE,
+ .gpio_pmic_v3p3 = MX6SL_ARM2_EPDC_PWRCTRL0,
+ .gpio_pmic_intr = MX6SL_ARM2_EPDC_PMIC_INT,
+ .regulator_init = max17135_init_data,
+ .init = max17135_regulator_init,
+};
+
+static int __init max17135_regulator_init(struct max17135 *max17135)
+{
+ struct max17135_platform_data *pdata = &max17135_pdata;
+ int i, ret;
+
+ max17135->gvee_pwrup = pdata->gvee_pwrup;
+ max17135->vneg_pwrup = pdata->vneg_pwrup;
+ max17135->vpos_pwrup = pdata->vpos_pwrup;
+ max17135->gvdd_pwrup = pdata->gvdd_pwrup;
+ max17135->gvdd_pwrdn = pdata->gvdd_pwrdn;
+ max17135->vpos_pwrdn = pdata->vpos_pwrdn;
+ max17135->vneg_pwrdn = pdata->vneg_pwrdn;
+ max17135->gvee_pwrdn = pdata->gvee_pwrdn;
+
+ max17135->max_wait = pdata->vpos_pwrup + pdata->vneg_pwrup +
+ pdata->gvdd_pwrup + pdata->gvee_pwrup;
+
+ max17135->gpio_pmic_pwrgood = pdata->gpio_pmic_pwrgood;
+ max17135->gpio_pmic_vcom_ctrl = pdata->gpio_pmic_vcom_ctrl;
+ max17135->gpio_pmic_wakeup = pdata->gpio_pmic_wakeup;
+ max17135->gpio_pmic_v3p3 = pdata->gpio_pmic_v3p3;
+ max17135->gpio_pmic_intr = pdata->gpio_pmic_intr;
+
+ gpio_request(max17135->gpio_pmic_wakeup, "epdc-pmic-wake");
+ gpio_direction_output(max17135->gpio_pmic_wakeup, 0);
+
+ gpio_request(max17135->gpio_pmic_vcom_ctrl, "epdc-vcom");
+ gpio_direction_output(max17135->gpio_pmic_vcom_ctrl, 0);
+
+ gpio_request(max17135->gpio_pmic_v3p3, "epdc-v3p3");
+ gpio_direction_output(max17135->gpio_pmic_v3p3, 0);
+
+ gpio_request(max17135->gpio_pmic_intr, "epdc-pmic-int");
+ gpio_direction_input(max17135->gpio_pmic_intr);
+
+ gpio_request(max17135->gpio_pmic_pwrgood, "epdc-pwrstat");
+ gpio_direction_input(max17135->gpio_pmic_pwrgood);
+
+ max17135->vcom_setup = false;
+ max17135->init_done = false;
+
+ for (i = 0; i < MAX17135_NUM_REGULATORS; i++) {
+ ret = max17135_register_regulator(max17135, i,
+ &pdata->regulator_init[i]);
+ if (ret != 0) {
+ printk(KERN_ERR"max17135 regulator init failed: %d\n",
+ ret);
+ return ret;
+ }
+ }
+
+ /*
+ * TODO: We cannot enable full constraints for now, since
+ * it results in the PFUZE regulators being disabled
+ * at the end of boot, which disables critical regulators.
+ */
+ /*regulator_has_full_constraints();*/
+
+ return 0;
+}
+
+static int mx6_arm2_spi_cs[] = {
+ MX6_ARM2_ECSPI1_CS0,
+};
+
+static const struct spi_imx_master mx6_arm2_spi_data __initconst = {
+ .chipselect = mx6_arm2_spi_cs,
+ .num_chipselect = ARRAY_SIZE(mx6_arm2_spi_cs),
+};
+
+static struct imx_ssi_platform_data mx6_sabresd_ssi_pdata = {
+ .flags = IMX_SSI_DMA | IMX_SSI_SYN,
+};
+
+static struct mxc_audio_platform_data wm8962_data;
+
+static struct platform_device mx6_sabresd_audio_wm8962_device = {
+ .name = "imx-wm8962",
+};
+
+static struct wm8962_pdata wm8962_config_data = {
+
+};
+
+static int wm8962_clk_enable(int enable)
+{
+ if (enable)
+ clk_enable(extern_audio_root);
+ else
+ clk_disable(extern_audio_root);
+
+ return 0;
+}
+
+static int mxc_wm8962_init(void)
+{
+ struct clk *pll4;
+ int rate;
+
+ extern_audio_root = clk_get(NULL, "extern_audio_clk");
+ if (IS_ERR(extern_audio_root)) {
+ pr_err("can't get extern_audio_root clock.\n");
+ return PTR_ERR(extern_audio_root);
+ }
+
+ pll4 = clk_get(NULL, "pll4");
+ if (IS_ERR(pll4)) {
+ pr_err("can't get pll4 clock.\n");
+ return PTR_ERR(pll4);
+ }
+
+ clk_set_parent(extern_audio_root, pll4);
+
+ rate = clk_round_rate(extern_audio_root, 26000000);
+ clk_set_rate(extern_audio_root, rate);
+
+ wm8962_data.sysclk = rate;
+
+ return 0;
+}
+
+static struct mxc_audio_platform_data wm8962_data = {
+ .ssi_num = 1,
+ .src_port = 2,
+ .ext_port = 3,
+ .hp_gpio = MX6_ARM2_HEADPHONE_DET,
+ .hp_active_low = 1,
+ .mic_gpio = -1,
+ .mic_active_low = 1,
+ .init = mxc_wm8962_init,
+ .clock_enable = wm8962_clk_enable,
+};
+
+static struct regulator_consumer_supply sabresd_vwm8962_consumers[] = {
+ REGULATOR_SUPPLY("SPKVDD1", "1-001a"),
+ REGULATOR_SUPPLY("SPKVDD2", "1-001a"),
+};
+
+static struct regulator_init_data sabresd_vwm8962_init = {
+ .constraints = {
+ .name = "SPKVDD",
+ .valid_ops_mask = REGULATOR_CHANGE_STATUS,
+ .boot_on = 1,
+ },
+ .num_consumer_supplies = ARRAY_SIZE(sabresd_vwm8962_consumers),
+ .consumer_supplies = sabresd_vwm8962_consumers,
+};
+
+static struct fixed_voltage_config sabresd_vwm8962_reg_config = {
+ .supply_name = "SPKVDD",
+ .microvolts = 4325000,
+ .gpio = -1,
+ .enabled_at_boot = 1,
+ .init_data = &sabresd_vwm8962_init,
+};
+
+static struct platform_device sabresd_vwm8962_reg_devices = {
+ .name = "reg-fixed-voltage",
+ .id = 4,
+ .dev = {
+ .platform_data = &sabresd_vwm8962_reg_config,
+ },
+};
+
+static int __init imx6q_init_audio(void)
+{
+ platform_device_register(&sabresd_vwm8962_reg_devices);
+ mxc_register_device(&mx6_sabresd_audio_wm8962_device,
+ &wm8962_data);
+ imx6q_add_imx_ssi(1, &mx6_sabresd_ssi_pdata);
+
+ return 0;
+}
+
+static struct imxi2c_platform_data mx6_arm2_i2c0_data = {
+ .bitrate = 100000,
+};
+
+static struct imxi2c_platform_data mx6_arm2_i2c1_data = {
+ .bitrate = 100000,
+};
+
+static struct imxi2c_platform_data mx6_arm2_i2c2_data = {
+ .bitrate = 400000,
+};
+
+static struct i2c_board_info mxc_i2c0_board_info[] __initdata = {
+ {
+ I2C_BOARD_INFO("max17135", 0x48),
+ .platform_data = &max17135_pdata,
+ },
+};
+
+static struct i2c_board_info mxc_i2c1_board_info[] __initdata = {
+ {
+ I2C_BOARD_INFO("wm8962", 0x1a),
+ .platform_data = &wm8962_config_data,
+ },
+};
+
+static struct i2c_board_info mxc_i2c2_board_info[] __initdata = {
+ {
+ },
+};
+
+static struct mxc_dvfs_platform_data mx6sl_arm2_dvfscore_data = {
+ .reg_id = "cpu_vddgp",
+ .clk1_id = "cpu_clk",
+ .clk2_id = "gpc_dvfs_clk",
+ .gpc_cntr_offset = MXC_GPC_CNTR_OFFSET,
+ .ccm_cdcr_offset = MXC_CCM_CDCR_OFFSET,
+ .ccm_cacrr_offset = MXC_CCM_CACRR_OFFSET,
+ .ccm_cdhipr_offset = MXC_CCM_CDHIPR_OFFSET,
+ .prediv_mask = 0x1F800,
+ .prediv_offset = 11,
+ .prediv_val = 3,
+ .div3ck_mask = 0xE0000000,
+ .div3ck_offset = 29,
+ .div3ck_val = 2,
+ .emac_val = 0x08,
+ .upthr_val = 25,
+ .dnthr_val = 9,
+ .pncthr_val = 33,
+ .upcnt_val = 10,
+ .dncnt_val = 10,
+ .delay_time = 80,
+};
+
+void __init early_console_setup(unsigned long base, struct clk *clk);
+
+static inline void mx6_arm2_init_uart(void)
+{
+ imx6q_add_imx_uart(0, NULL); /* DEBUG UART1 */
+
+ imx6q_add_sdhci_usdhc_imx(0, &mx6_arm2_sd1_data);
+ imx6q_add_sdhci_usdhc_imx(1, &mx6_arm2_sd2_data);
+ imx6q_add_sdhci_usdhc_imx(2, &mx6_arm2_sd3_data);
+}
+
+static struct fec_platform_data fec_data __initdata = {
+ .phy = PHY_INTERFACE_MODE_RMII,
+};
+
+static int epdc_get_pins(void)
+{
+ int ret = 0;
+
+ /* Claim GPIOs for EPDC pins - used during power up/down */
+ ret |= gpio_request(MX6SL_ARM2_EPDC_SDDO_0, "epdc_d0");
+ ret |= gpio_request(MX6SL_ARM2_EPDC_SDDO_1, "epdc_d1");
+ ret |= gpio_request(MX6SL_ARM2_EPDC_SDDO_2, "epdc_d2");
+ ret |= gpio_request(MX6SL_ARM2_EPDC_SDDO_3, "epdc_d3");
+ ret |= gpio_request(MX6SL_ARM2_EPDC_SDDO_4, "epdc_d4");
+ ret |= gpio_request(MX6SL_ARM2_EPDC_SDDO_5, "epdc_d5");
+ ret |= gpio_request(MX6SL_ARM2_EPDC_SDDO_6, "epdc_d6");
+ ret |= gpio_request(MX6SL_ARM2_EPDC_SDDO_7, "epdc_d7");
+ ret |= gpio_request(MX6SL_ARM2_EPDC_GDCLK, "epdc_gdclk");
+ ret |= gpio_request(MX6SL_ARM2_EPDC_GDSP, "epdc_gdsp");
+ ret |= gpio_request(MX6SL_ARM2_EPDC_GDOE, "epdc_gdoe");
+ ret |= gpio_request(MX6SL_ARM2_EPDC_GDRL, "epdc_gdrl");
+ ret |= gpio_request(MX6SL_ARM2_EPDC_SDCLK, "epdc_sdclk");
+ ret |= gpio_request(MX6SL_ARM2_EPDC_SDOE, "epdc_sdoe");
+ ret |= gpio_request(MX6SL_ARM2_EPDC_SDLE, "epdc_sdle");
+ ret |= gpio_request(MX6SL_ARM2_EPDC_SDSHR, "epdc_sdshr");
+ ret |= gpio_request(MX6SL_ARM2_EPDC_BDR0, "epdc_bdr0");
+ ret |= gpio_request(MX6SL_ARM2_EPDC_SDCE0, "epdc_sdce0");
+ ret |= gpio_request(MX6SL_ARM2_EPDC_SDCE1, "epdc_sdce1");
+ ret |= gpio_request(MX6SL_ARM2_EPDC_SDCE2, "epdc_sdce2");
+
+ return ret;
+}
+
+static void epdc_put_pins(void)
+{
+ gpio_free(MX6SL_ARM2_EPDC_SDDO_0);
+ gpio_free(MX6SL_ARM2_EPDC_SDDO_1);
+ gpio_free(MX6SL_ARM2_EPDC_SDDO_2);
+ gpio_free(MX6SL_ARM2_EPDC_SDDO_3);
+ gpio_free(MX6SL_ARM2_EPDC_SDDO_4);
+ gpio_free(MX6SL_ARM2_EPDC_SDDO_5);
+ gpio_free(MX6SL_ARM2_EPDC_SDDO_6);
+ gpio_free(MX6SL_ARM2_EPDC_SDDO_7);
+ gpio_free(MX6SL_ARM2_EPDC_GDCLK);
+ gpio_free(MX6SL_ARM2_EPDC_GDSP);
+ gpio_free(MX6SL_ARM2_EPDC_GDOE);
+ gpio_free(MX6SL_ARM2_EPDC_GDRL);
+ gpio_free(MX6SL_ARM2_EPDC_SDCLK);
+ gpio_free(MX6SL_ARM2_EPDC_SDOE);
+ gpio_free(MX6SL_ARM2_EPDC_SDLE);
+ gpio_free(MX6SL_ARM2_EPDC_SDSHR);
+ gpio_free(MX6SL_ARM2_EPDC_BDR0);
+ gpio_free(MX6SL_ARM2_EPDC_SDCE0);
+ gpio_free(MX6SL_ARM2_EPDC_SDCE1);
+ gpio_free(MX6SL_ARM2_EPDC_SDCE2);
+}
+
+static void epdc_enable_pins(void)
+{
+ /* Configure MUX settings to enable EPDC use */
+ mxc_iomux_v3_setup_multiple_pads(mx6sl_arm2_epdc_enable_pads, \
+ ARRAY_SIZE(mx6sl_arm2_epdc_enable_pads));
+
+ gpio_direction_input(MX6SL_ARM2_EPDC_SDDO_0);
+ gpio_direction_input(MX6SL_ARM2_EPDC_SDDO_1);
+ gpio_direction_input(MX6SL_ARM2_EPDC_SDDO_2);
+ gpio_direction_input(MX6SL_ARM2_EPDC_SDDO_3);
+ gpio_direction_input(MX6SL_ARM2_EPDC_SDDO_4);
+ gpio_direction_input(MX6SL_ARM2_EPDC_SDDO_5);
+ gpio_direction_input(MX6SL_ARM2_EPDC_SDDO_6);
+ gpio_direction_input(MX6SL_ARM2_EPDC_SDDO_7);
+ gpio_direction_input(MX6SL_ARM2_EPDC_GDCLK);
+ gpio_direction_input(MX6SL_ARM2_EPDC_GDSP);
+ gpio_direction_input(MX6SL_ARM2_EPDC_GDOE);
+ gpio_direction_input(MX6SL_ARM2_EPDC_GDRL);
+ gpio_direction_input(MX6SL_ARM2_EPDC_SDCLK);
+ gpio_direction_input(MX6SL_ARM2_EPDC_SDOE);
+ gpio_direction_input(MX6SL_ARM2_EPDC_SDLE);
+ gpio_direction_input(MX6SL_ARM2_EPDC_SDSHR);
+ gpio_direction_input(MX6SL_ARM2_EPDC_BDR0);
+ gpio_direction_input(MX6SL_ARM2_EPDC_SDCE0);
+ gpio_direction_input(MX6SL_ARM2_EPDC_SDCE1);
+ gpio_direction_input(MX6SL_ARM2_EPDC_SDCE2);
+}
+
+static void epdc_disable_pins(void)
+{
+ /* Configure MUX settings for EPDC pins to
+ * GPIO and drive to 0. */
+ mxc_iomux_v3_setup_multiple_pads(mx6sl_arm2_epdc_disable_pads, \
+ ARRAY_SIZE(mx6sl_arm2_epdc_disable_pads));
+
+ gpio_direction_output(MX6SL_ARM2_EPDC_SDDO_0, 0);
+ gpio_direction_output(MX6SL_ARM2_EPDC_SDDO_1, 0);
+ gpio_direction_output(MX6SL_ARM2_EPDC_SDDO_2, 0);
+ gpio_direction_output(MX6SL_ARM2_EPDC_SDDO_3, 0);
+ gpio_direction_output(MX6SL_ARM2_EPDC_SDDO_4, 0);
+ gpio_direction_output(MX6SL_ARM2_EPDC_SDDO_5, 0);
+ gpio_direction_output(MX6SL_ARM2_EPDC_SDDO_6, 0);
+ gpio_direction_output(MX6SL_ARM2_EPDC_SDDO_7, 0);
+ gpio_direction_output(MX6SL_ARM2_EPDC_GDCLK, 0);
+ gpio_direction_output(MX6SL_ARM2_EPDC_GDSP, 0);
+ gpio_direction_output(MX6SL_ARM2_EPDC_GDOE, 0);
+ gpio_direction_output(MX6SL_ARM2_EPDC_GDRL, 0);
+ gpio_direction_output(MX6SL_ARM2_EPDC_SDCLK, 0);
+ gpio_direction_output(MX6SL_ARM2_EPDC_SDOE, 0);
+ gpio_direction_output(MX6SL_ARM2_EPDC_SDLE, 0);
+ gpio_direction_output(MX6SL_ARM2_EPDC_SDSHR, 0);
+ gpio_direction_output(MX6SL_ARM2_EPDC_BDR0, 0);
+ gpio_direction_output(MX6SL_ARM2_EPDC_SDCE0, 0);
+ gpio_direction_output(MX6SL_ARM2_EPDC_SDCE1, 0);
+ gpio_direction_output(MX6SL_ARM2_EPDC_SDCE2, 0);
+}
+
+static struct fb_videomode e60_v110_mode = {
+ .name = "E60_V110",
+ .refresh = 50,
+ .xres = 800,
+ .yres = 600,
+ .pixclock = 18604700,
+ .left_margin = 8,
+ .right_margin = 178,
+ .upper_margin = 4,
+ .lower_margin = 10,
+ .hsync_len = 20,
+ .vsync_len = 4,
+ .sync = 0,
+ .vmode = FB_VMODE_NONINTERLACED,
+ .flag = 0,
+};
+static struct fb_videomode e60_v220_mode = {
+ .name = "E60_V220",
+ .refresh = 85,
+ .xres = 800,
+ .yres = 600,
+ .pixclock = 30000000,
+ .left_margin = 8,
+ .right_margin = 164,
+ .upper_margin = 4,
+ .lower_margin = 8,
+ .hsync_len = 4,
+ .vsync_len = 1,
+ .sync = 0,
+ .vmode = FB_VMODE_NONINTERLACED,
+ .flag = 0,
+ .refresh = 85,
+ .xres = 800,
+ .yres = 600,
+};
+static struct fb_videomode e060scm_mode = {
+ .name = "E060SCM",
+ .refresh = 85,
+ .xres = 800,
+ .yres = 600,
+ .pixclock = 26666667,
+ .left_margin = 8,
+ .right_margin = 100,
+ .upper_margin = 4,
+ .lower_margin = 8,
+ .hsync_len = 4,
+ .vsync_len = 1,
+ .sync = 0,
+ .vmode = FB_VMODE_NONINTERLACED,
+ .flag = 0,
+};
+static struct fb_videomode e97_v110_mode = {
+ .name = "E97_V110",
+ .refresh = 50,
+ .xres = 1200,
+ .yres = 825,
+ .pixclock = 32000000,
+ .left_margin = 12,
+ .right_margin = 128,
+ .upper_margin = 4,
+ .lower_margin = 10,
+ .hsync_len = 20,
+ .vsync_len = 4,
+ .sync = 0,
+ .vmode = FB_VMODE_NONINTERLACED,
+ .flag = 0,
+};
+
+static struct imx_epdc_fb_mode panel_modes[] = {
+ {
+ &e60_v110_mode,
+ 4, /* vscan_holdoff */
+ 10, /* sdoed_width */
+ 20, /* sdoed_delay */
+ 10, /* sdoez_width */
+ 20, /* sdoez_delay */
+ 428, /* gdclk_hp_offs */
+ 20, /* gdsp_offs */
+ 0, /* gdoe_offs */
+ 1, /* gdclk_offs */
+ 1, /* num_ce */
+ },
+ {
+ &e60_v220_mode,
+ 4, /* vscan_holdoff */
+ 10, /* sdoed_width */
+ 20, /* sdoed_delay */
+ 10, /* sdoez_width */
+ 20, /* sdoez_delay */
+ 465, /* gdclk_hp_offs */
+ 20, /* gdsp_offs */
+ 0, /* gdoe_offs */
+ 9, /* gdclk_offs */
+ 1, /* num_ce */
+ },
+ {
+ &e060scm_mode,
+ 4, /* vscan_holdoff */
+ 10, /* sdoed_width */
+ 20, /* sdoed_delay */
+ 10, /* sdoez_width */
+ 20, /* sdoez_delay */
+ 419, /* gdclk_hp_offs */
+ 20, /* gdsp_offs */
+ 0, /* gdoe_offs */
+ 5, /* gdclk_offs */
+ 1, /* num_ce */
+ },
+ {
+ &e97_v110_mode,
+ 8, /* vscan_holdoff */
+ 10, /* sdoed_width */
+ 20, /* sdoed_delay */
+ 10, /* sdoez_width */
+ 20, /* sdoez_delay */
+ 632, /* gdclk_hp_offs */
+ 20, /* gdsp_offs */
+ 0, /* gdoe_offs */
+ 1, /* gdclk_offs */
+ 3, /* num_ce */
+ }
+};
+
+static struct imx_epdc_fb_platform_data epdc_data = {
+ .epdc_mode = panel_modes,
+ .num_modes = ARRAY_SIZE(panel_modes),
+ .get_pins = epdc_get_pins,
+ .put_pins = epdc_put_pins,
+ .enable_pins = epdc_enable_pins,
+ .disable_pins = epdc_disable_pins,
+};
+
+static int spdc_get_pins(void)
+{
+ int ret = 0;
+
+ /* Claim GPIOs for SPDC pins - used during power up/down */
+ ret |= gpio_request(MX6SL_ARM2_EPDC_SDDO_0, "SPDC_D0");
+ ret |= gpio_request(MX6SL_ARM2_EPDC_SDDO_1, "SPDC_D1");
+ ret |= gpio_request(MX6SL_ARM2_EPDC_SDDO_2, "SPDC_D2");
+ ret |= gpio_request(MX6SL_ARM2_EPDC_SDDO_3, "SPDC_D3");
+ ret |= gpio_request(MX6SL_ARM2_EPDC_SDDO_4, "SPDC_D4");
+ ret |= gpio_request(MX6SL_ARM2_EPDC_SDDO_5, "SPDC_D5");
+ ret |= gpio_request(MX6SL_ARM2_EPDC_SDDO_6, "SPDC_D6");
+ ret |= gpio_request(MX6SL_ARM2_EPDC_SDDO_7, "SPDC_D7");
+
+ ret |= gpio_request(MX6SL_ARM2_EPDC_GDOE, "SIPIX_YOE");
+ ret |= gpio_request(MX6SL_ARM2_EPDC_SDDO_9, "SIPIX_PWR_RDY");
+
+ ret |= gpio_request(MX6SL_ARM2_EPDC_GDSP, "SIPIX_YDIO");
+
+ ret |= gpio_request(MX6SL_ARM2_EPDC_GDCLK, "SIPIX_YCLK");
+ ret |= gpio_request(MX6SL_ARM2_EPDC_SDSHR, "SIPIX_XDIO");
+
+ ret |= gpio_request(MX6SL_ARM2_EPDC_SDLE, "SIPIX_LD");
+ ret |= gpio_request(MX6SL_ARM2_EPDC_SDCE1, "SIPIX_SOE");
+
+ ret |= gpio_request(MX6SL_ARM2_EPDC_SDCLK, "SIPIX_XCLK");
+ ret |= gpio_request(MX6SL_ARM2_EPDC_SDDO_10, "SIPIX_SHD_N");
+ ret |= gpio_request(MX6SL_ARM2_EPDC_SDCE0, "SIPIX2_CE");
+
+ return ret;
+}
+
+static void spdc_put_pins(void)
+{
+ gpio_free(MX6SL_ARM2_EPDC_SDDO_0);
+ gpio_free(MX6SL_ARM2_EPDC_SDDO_1);
+ gpio_free(MX6SL_ARM2_EPDC_SDDO_2);
+ gpio_free(MX6SL_ARM2_EPDC_SDDO_3);
+ gpio_free(MX6SL_ARM2_EPDC_SDDO_4);
+ gpio_free(MX6SL_ARM2_EPDC_SDDO_5);
+ gpio_free(MX6SL_ARM2_EPDC_SDDO_6);
+ gpio_free(MX6SL_ARM2_EPDC_SDDO_7);
+
+ gpio_free(MX6SL_ARM2_EPDC_GDOE);
+ gpio_free(MX6SL_ARM2_EPDC_SDDO_9);
+ gpio_free(MX6SL_ARM2_EPDC_GDSP);
+ gpio_free(MX6SL_ARM2_EPDC_GDCLK);
+ gpio_free(MX6SL_ARM2_EPDC_SDSHR);
+ gpio_free(MX6SL_ARM2_EPDC_SDLE);
+ gpio_free(MX6SL_ARM2_EPDC_SDCE1);
+ gpio_free(MX6SL_ARM2_EPDC_SDCLK);
+ gpio_free(MX6SL_ARM2_EPDC_SDDO_10);
+ gpio_free(MX6SL_ARM2_EPDC_SDCE0);
+}
+
+static void spdc_enable_pins(void)
+{
+ /* Configure MUX settings to enable SPDC use */
+ mxc_iomux_v3_setup_multiple_pads(mx6sl_arm2_spdc_enable_pads, \
+ ARRAY_SIZE(mx6sl_arm2_spdc_enable_pads));
+
+ gpio_direction_input(MX6SL_ARM2_EPDC_SDDO_0);
+ gpio_direction_input(MX6SL_ARM2_EPDC_SDDO_1);
+ gpio_direction_input(MX6SL_ARM2_EPDC_SDDO_2);
+ gpio_direction_input(MX6SL_ARM2_EPDC_SDDO_3);
+ gpio_direction_input(MX6SL_ARM2_EPDC_SDDO_4);
+ gpio_direction_input(MX6SL_ARM2_EPDC_SDDO_5);
+ gpio_direction_input(MX6SL_ARM2_EPDC_SDDO_6);
+ gpio_direction_input(MX6SL_ARM2_EPDC_SDDO_7);
+ gpio_direction_input(MX6SL_ARM2_EPDC_GDOE);
+ gpio_direction_input(MX6SL_ARM2_EPDC_SDDO_9);
+ gpio_direction_input(MX6SL_ARM2_EPDC_GDSP);
+ gpio_direction_input(MX6SL_ARM2_EPDC_GDCLK);
+ gpio_direction_input(MX6SL_ARM2_EPDC_SDSHR);
+ gpio_direction_input(MX6SL_ARM2_EPDC_SDLE);
+ gpio_direction_input(MX6SL_ARM2_EPDC_SDCE1);
+ gpio_direction_input(MX6SL_ARM2_EPDC_SDCLK);
+ gpio_direction_input(MX6SL_ARM2_EPDC_SDDO_10);
+ gpio_direction_input(MX6SL_ARM2_EPDC_SDCE0);
+}
+
+static void spdc_disable_pins(void)
+{
+ /* Configure MUX settings for SPDC pins to
+ * GPIO and drive to 0. */
+ mxc_iomux_v3_setup_multiple_pads(mx6sl_arm2_spdc_disable_pads, \
+ ARRAY_SIZE(mx6sl_arm2_spdc_disable_pads));
+
+ gpio_direction_output(MX6SL_ARM2_EPDC_SDDO_0, 0);
+ gpio_direction_output(MX6SL_ARM2_EPDC_SDDO_1, 0);
+ gpio_direction_output(MX6SL_ARM2_EPDC_SDDO_2, 0);
+ gpio_direction_output(MX6SL_ARM2_EPDC_SDDO_3, 0);
+ gpio_direction_output(MX6SL_ARM2_EPDC_SDDO_4, 0);
+ gpio_direction_output(MX6SL_ARM2_EPDC_SDDO_5, 0);
+ gpio_direction_output(MX6SL_ARM2_EPDC_SDDO_6, 0);
+ gpio_direction_output(MX6SL_ARM2_EPDC_SDDO_7, 0);
+
+ gpio_direction_output(MX6SL_ARM2_EPDC_GDOE, 0);
+ gpio_direction_output(MX6SL_ARM2_EPDC_SDDO_9, 0);
+ gpio_direction_output(MX6SL_ARM2_EPDC_GDSP, 0);
+ gpio_direction_output(MX6SL_ARM2_EPDC_GDCLK, 0);
+ gpio_direction_output(MX6SL_ARM2_EPDC_SDSHR, 0);
+ gpio_direction_output(MX6SL_ARM2_EPDC_SDLE, 0);
+ gpio_direction_output(MX6SL_ARM2_EPDC_SDCE1, 0);
+ gpio_direction_output(MX6SL_ARM2_EPDC_SDCLK, 0);
+ gpio_direction_output(MX6SL_ARM2_EPDC_SDDO_10, 0);
+ gpio_direction_output(MX6SL_ARM2_EPDC_SDCE0, 0);
+}
+
+static struct imx_spdc_panel_init_set spdc_init_set = {
+ .yoe_pol = false,
+ .dual_gate = false,
+ .resolution = 0,
+ .ud = false,
+ .rl = false,
+ .data_filter_n = true,
+ .power_ready = true,
+ .rgbw_mode_enable = false,
+ .hburst_len_en = true,
+};
+
+static struct fb_videomode erk_1_4_a01 = {
+ .name = "ERK_1_4_A01",
+ .refresh = 50,
+ .xres = 800,
+ .yres = 600,
+ .pixclock = 40000000,
+ .vmode = FB_VMODE_NONINTERLACED,
+};
+
+static struct imx_spdc_fb_mode spdc_panel_modes[] = {
+ {
+ &erk_1_4_a01,
+ &spdc_init_set,
+ .wave_timing = "pvi"
+ },
+};
+
+static struct imx_spdc_fb_platform_data spdc_data = {
+ .spdc_mode = spdc_panel_modes,
+ .num_modes = ARRAY_SIZE(spdc_panel_modes),
+ .get_pins = spdc_get_pins,
+ .put_pins = spdc_put_pins,
+ .enable_pins = spdc_enable_pins,
+ .disable_pins = spdc_disable_pins,
+};
+
+#if defined(CONFIG_FB_MXC_SIPIX_PANEL)
+static void setup_spdc(void)
+{
+ /* GPR0[8]: 0:EPDC, 1:SPDC */
+ mxc_iomux_set_gpr_register(0, 8, 1, 1);
+}
+#endif
+
+static void imx6_arm2_usbotg_vbus(bool on)
+{
+ if (on)
+ gpio_set_value(MX6_ARM2_USBOTG1_PWR, 1);
+ else
+ gpio_set_value(MX6_ARM2_USBOTG1_PWR, 0);
+}
+
+static void __init mx6_arm2_init_usb(void)
+{
+ int ret = 0;
+
+ imx_otg_base = MX6_IO_ADDRESS(MX6Q_USB_OTG_BASE_ADDR);
+
+ /* disable external charger detect,
+ * or it will affect signal quality at dp.
+ */
+
+ ret = gpio_request(MX6_ARM2_USBOTG1_PWR, "usbotg-pwr");
+ if (ret) {
+ pr_err("failed to get GPIO MX6_ARM2_USBOTG1_PWR:%d\n", ret);
+ return;
+ }
+ gpio_direction_output(MX6_ARM2_USBOTG1_PWR, 0);
+
+ ret = gpio_request(MX6_ARM2_USBOTG2_PWR, "usbh1-pwr");
+ if (ret) {
+ pr_err("failed to get GPIO MX6_ARM2_USBOTG2_PWR:%d\n", ret);
+ return;
+ }
+ gpio_direction_output(MX6_ARM2_USBOTG2_PWR, 1);
+
+ mx6_set_otghost_vbus_func(imx6_arm2_usbotg_vbus);
+ mx6_usb_dr_init();
+ mx6_usb_h1_init();
+#ifdef CONFIG_USB_EHCI_ARC_HSIC
+ mx6_usb_h2_init();
+#endif
+}
+
+static struct platform_pwm_backlight_data mx6_arm2_pwm_backlight_data = {
+ .pwm_id = 0,
+ .max_brightness = 255,
+ .dft_brightness = 128,
+ .pwm_period_ns = 50000,
+};
+static struct fb_videomode video_modes[] = {
+ {
+ /* 800x480 @ 57 Hz , pixel clk @ 32MHz */
+ "SEIKO-WVGA", 60, 800, 480, 29850, 99, 164, 33, 10, 10, 10,
+ FB_SYNC_CLK_LAT_FALL,
+ FB_VMODE_NONINTERLACED,
+ 0,},
+};
+
+static struct mxc_fb_platform_data fb_data[] = {
+ {
+ .interface_pix_fmt = V4L2_PIX_FMT_RGB24,
+ .mode_str = "SEIKO-WVGA",
+ .mode = video_modes,
+ .num_modes = ARRAY_SIZE(video_modes),
+ },
+};
+
+static struct platform_device lcd_wvga_device = {
+ .name = "lcd_seiko",
+};
+/*!
+ * Board specific initialization.
+ */
+static void __init mx6_arm2_init(void)
+{
+ mxc_iomux_v3_setup_multiple_pads(mx6sl_arm2_pads, ARRAY_SIZE(mx6sl_arm2_pads));
+
+ gp_reg_id = "cpu_vddgp";
+ mx6_cpu_regulator_init();
+
+ imx6q_add_imx_snvs_rtc();
+
+ imx6q_add_imx_i2c(0, &mx6_arm2_i2c0_data);
+ imx6q_add_imx_i2c(1, &mx6_arm2_i2c1_data);
+ i2c_register_board_info(0, mxc_i2c0_board_info,
+ ARRAY_SIZE(mxc_i2c0_board_info));
+ i2c_register_board_info(1, mxc_i2c1_board_info,
+ ARRAY_SIZE(mxc_i2c1_board_info));
+ imx6q_add_imx_i2c(2, &mx6_arm2_i2c2_data);
+ i2c_register_board_info(2, mxc_i2c2_board_info,
+ ARRAY_SIZE(mxc_i2c2_board_info));
+ mx6sl_arm2_init_pfuze100(0);
+
+ mx6_arm2_init_uart();
+ /* get enet tx reference clk from FEC_REF_CLK pad.
+ * GPR1[14] = 0, GPR1[18:17] = 00
+ */
+ mxc_iomux_set_gpr_register(1, 14, 1, 0);
+ mxc_iomux_set_gpr_register(1, 17, 2, 0);
+
+ /* power on FEC phy and reset phy */
+ gpio_request(MX6_ARM2_FEC_PWR_EN, "fec-pwr");
+ gpio_direction_output(MX6_ARM2_FEC_PWR_EN, 1);
+ /* wait RC ms for hw reset */
+ udelay(500);
+
+ imx6_init_fec(fec_data);
+
+ mx6_arm2_init_usb();
+
+ imx6q_add_mxc_pwm(0);
+ imx6q_add_mxc_pwm_backlight(0, &mx6_arm2_pwm_backlight_data);
+ imx6dl_add_imx_elcdif(&fb_data[0]);
+
+ gpio_request(MX6_ARM2_LCD_PWR_EN, "elcdif-power-on");
+ gpio_direction_output(MX6_ARM2_LCD_PWR_EN, 1);
+ mxc_register_device(&lcd_wvga_device, NULL);
+
+ imx6dl_add_imx_pxp();
+ imx6dl_add_imx_pxp_client();
+ mxc_register_device(&max17135_sensor_device, NULL);
+ imx6dl_add_imx_epdc(&epdc_data);
+#if defined(CONFIG_FB_MXC_SIPIX_PANEL)
+ setup_spdc();
+#endif
+ imx6sl_add_imx_spdc(&spdc_data);
+ imx6q_add_dvfs_core(&mx6sl_arm2_dvfscore_data);
+
+ imx6q_init_audio();
+
+ imx6q_add_viim();
+ imx6q_add_imx2_wdt(0, NULL);
+}
+
+extern void __iomem *twd_base;
+static void __init mx6_timer_init(void)
+{
+ struct clk *uart_clk;
+#ifdef CONFIG_LOCAL_TIMERS
+ twd_base = ioremap(LOCAL_TWD_ADDR, SZ_256);
+ BUG_ON(!twd_base);
+#endif
+ mx6sl_clocks_init(32768, 24000000, 0, 0);
+
+ uart_clk = clk_get_sys("imx-uart.0", NULL);
+ early_console_setup(UART1_BASE_ADDR, uart_clk);
+}
+
+static struct sys_timer mxc_timer = {
+ .init = mx6_timer_init,
+};
+
+static void __init mx6_arm2_reserve(void)
+{
+
+}
+
+MACHINE_START(MX6SL_ARM2, "Freescale i.MX 6SoloLite Armadillo2 Board")
+ .boot_params = MX6SL_PHYS_OFFSET + 0x100,
+ .map_io = mx6_map_io,
+ .init_irq = mx6_init_irq,
+ .init_machine = mx6_arm2_init,
+ .timer = &mxc_timer,
+ .reserve = mx6_arm2_reserve,
+MACHINE_END
diff --git a/arch/arm/mach-mx6/board-mx6sl_arm2.h b/arch/arm/mach-mx6/board-mx6sl_arm2.h
new file mode 100755
index 000000000000..940c46d0e984
--- /dev/null
+++ b/arch/arm/mach-mx6/board-mx6sl_arm2.h
@@ -0,0 +1,305 @@
+/*
+ * Copyright (C) 2012 Freescale Semiconductor, Inc. All Rights Reserved.
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+
+ * You should have received a copy of the GNU General Public License along
+ * with this program; if not, write to the Free Software Foundation, Inc.,
+ * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+ */
+
+#ifndef _BOARD_MX6SL_ARM2_H
+#define _BOARD_MX6SL_ARM2_H
+#include <mach/iomux-mx6sl.h>
+
+static iomux_v3_cfg_t mx6sl_arm2_pads[] = {
+
+ /* AUDMUX */
+ MX6SL_PAD_AUD_TXC__AUDMUX_AUD3_TXC,
+ MX6SL_PAD_AUD_TXD__AUDMUX_AUD3_TXD,
+ MX6SL_PAD_AUD_TXFS__AUDMUX_AUD3_TXFS,
+ MX6SL_PAD_AUD_RXD__AUDMUX_AUD3_RXD,
+ MX6SL_PAD_AUD_MCLK__AUDMUX_AUDIO_CLK_OUT,
+
+ /* Audio Codec */
+ MX6SL_PAD_FEC_RX_ER__GPIO_4_19, /* HEADPHONE_DET */
+
+ /* UART1 */
+ MX6SL_PAD_UART1_RXD__UART1_RXD,
+ MX6SL_PAD_UART1_TXD__UART1_TXD,
+
+ /* USBOTG ID pin */
+ MX6SL_PAD_EPDC_PWRCOM__ANATOP_USBOTG1_ID,
+
+ /* USBOTG POWER GPIO */
+ MX6SL_PAD_KEY_COL4__GPIO_4_0,
+ MX6SL_PAD_KEY_COL5__GPIO_4_2,
+ /* USB OC pin */
+ MX6SL_PAD_KEY_ROW4__USB_USBOTG1_OC,
+ MX6SL_PAD_ECSPI2_SCLK__USB_USBOTG2_OC,
+ /* USB HSIC pin */
+ MX6SL_PAD_HSIC_STROBE__USB_H_STROBE,
+ MX6SL_PAD_HSIC_DAT__USB_H_DATA,
+
+ /* SD1 */
+ MX6SL_PAD_SD1_CLK__USDHC1_CLK,
+ MX6SL_PAD_SD1_CMD__USDHC1_CMD,
+ MX6SL_PAD_SD1_DAT0__USDHC1_DAT0,
+ MX6SL_PAD_SD1_DAT1__USDHC1_DAT1,
+ MX6SL_PAD_SD1_DAT2__USDHC1_DAT2,
+ MX6SL_PAD_SD1_DAT3__USDHC1_DAT3,
+ MX6SL_PAD_SD1_DAT4__USDHC1_DAT4,
+ MX6SL_PAD_SD1_DAT5__USDHC1_DAT5,
+ MX6SL_PAD_SD1_DAT6__USDHC1_DAT6,
+ MX6SL_PAD_SD1_DAT7__USDHC1_DAT7,
+ /* SD1 CD & WP */
+ MX6SL_PAD_KEY_ROW7__GPIO_4_7,
+ MX6SL_PAD_KEY_COL7__GPIO_4_6,
+ /* SD2 */
+ MX6SL_PAD_SD2_CLK__USDHC2_CLK,
+ MX6SL_PAD_SD2_CMD__USDHC2_CMD,
+ MX6SL_PAD_SD2_DAT0__USDHC2_DAT0,
+ MX6SL_PAD_SD2_DAT1__USDHC2_DAT1,
+ MX6SL_PAD_SD2_DAT2__USDHC2_DAT2,
+ MX6SL_PAD_SD2_DAT3__USDHC2_DAT3,
+ /* SD2 CD & WP */
+ MX6SL_PAD_SD2_DAT7__GPIO_5_0,
+ MX6SL_PAD_SD2_DAT6__GPIO_4_29,
+ /* SD3 */
+ MX6SL_PAD_SD3_CLK__USDHC3_CLK,
+ MX6SL_PAD_SD3_CMD__USDHC3_CMD,
+ MX6SL_PAD_SD3_DAT0__USDHC3_DAT0,
+ MX6SL_PAD_SD3_DAT1__USDHC3_DAT1,
+ MX6SL_PAD_SD3_DAT2__USDHC3_DAT2,
+ MX6SL_PAD_SD3_DAT3__USDHC3_DAT3,
+ /* SD3 CD */
+ MX6SL_PAD_REF_CLK_32K__GPIO_3_22,
+
+ /* FEC */
+ MX6SL_PAD_FEC_MDC__FEC_MDC,
+ MX6SL_PAD_FEC_MDIO__FEC_MDIO,
+ MX6SL_PAD_FEC_REF_CLK__FEC_REF_OUT, /* clock from anatop */
+ MX6SL_PAD_FEC_RX_ER__GPIO_4_19,
+ MX6SL_PAD_FEC_CRS_DV__FEC_RX_DV,
+ MX6SL_PAD_FEC_RXD0__FEC_RDATA_0,
+ MX6SL_PAD_FEC_RXD1__FEC_RDATA_1,
+ MX6SL_PAD_FEC_TX_EN__FEC_TX_EN,
+ MX6SL_PAD_FEC_TXD0__FEC_TDATA_0,
+ MX6SL_PAD_FEC_TXD1__FEC_TDATA_1,
+ MX6SL_PAD_FEC_TX_CLK__GPIO_4_21, /* Phy power enable */
+
+ /* I2C */
+ MX6SL_PAD_I2C1_SCL__I2C1_SCL,
+ MX6SL_PAD_I2C1_SDA__I2C1_SDA,
+ MX6SL_PAD_I2C2_SCL__I2C2_SCL,
+ MX6SL_PAD_I2C2_SDA__I2C2_SDA,
+
+ /* ECSPI1 */
+ MX6SL_PAD_ECSPI1_MISO__ECSPI1_MISO,
+ MX6SL_PAD_ECSPI1_MOSI__ECSPI1_MOSI,
+ MX6SL_PAD_ECSPI1_SCLK__ECSPI1_SCLK,
+ MX6SL_PAD_ECSPI1_SS0__ECSPI1_SS0,
+ MX6SL_PAD_ECSPI1_SS0__GPIO_4_11, /* SS0 */
+
+ /* LCD */
+ MX6SL_PAD_LCD_CLK__LCDIF_CLK,
+ MX6SL_PAD_LCD_ENABLE__LCDIF_ENABLE,
+ MX6SL_PAD_LCD_HSYNC__LCDIF_HSYNC,
+ MX6SL_PAD_LCD_VSYNC__LCDIF_VSYNC,
+ MX6SL_PAD_LCD_RESET__LCDIF_RESET,
+ MX6SL_PAD_LCD_DAT0__LCDIF_DAT_0,
+ MX6SL_PAD_LCD_DAT1__LCDIF_DAT_1,
+ MX6SL_PAD_LCD_DAT2__LCDIF_DAT_2,
+ MX6SL_PAD_LCD_DAT3__LCDIF_DAT_3,
+ MX6SL_PAD_LCD_DAT4__LCDIF_DAT_4,
+ MX6SL_PAD_LCD_DAT5__LCDIF_DAT_5,
+ MX6SL_PAD_LCD_DAT6__LCDIF_DAT_6,
+ MX6SL_PAD_LCD_DAT7__LCDIF_DAT_7,
+ MX6SL_PAD_LCD_DAT8__LCDIF_DAT_8,
+ MX6SL_PAD_LCD_DAT9__LCDIF_DAT_9,
+ MX6SL_PAD_LCD_DAT10__LCDIF_DAT_10,
+ MX6SL_PAD_LCD_DAT11__LCDIF_DAT_11,
+ MX6SL_PAD_LCD_DAT12__LCDIF_DAT_12,
+ MX6SL_PAD_LCD_DAT13__LCDIF_DAT_13,
+ MX6SL_PAD_LCD_DAT14__LCDIF_DAT_14,
+ MX6SL_PAD_LCD_DAT15__LCDIF_DAT_15,
+ MX6SL_PAD_LCD_DAT16__LCDIF_DAT_16,
+ MX6SL_PAD_LCD_DAT17__LCDIF_DAT_17,
+ MX6SL_PAD_LCD_DAT18__LCDIF_DAT_18,
+ MX6SL_PAD_LCD_DAT19__LCDIF_DAT_19,
+ MX6SL_PAD_LCD_DAT20__LCDIF_DAT_20,
+ MX6SL_PAD_LCD_DAT21__LCDIF_DAT_21,
+ MX6SL_PAD_LCD_DAT22__LCDIF_DAT_22,
+ MX6SL_PAD_LCD_DAT23__LCDIF_DAT_23,
+ /* LCD brightness */
+ MX6SL_PAD_PWM1__PWM1_PWMO,
+ /* LCD power on */
+ MX6SL_PAD_KEY_ROW5__GPIO_4_3,
+};
+
+static iomux_v3_cfg_t mx6sl_arm2_epdc_enable_pads[] = {
+ /* EPDC */
+ MX6SL_PAD_EPDC_D0__EPDC_SDDO_0,
+ MX6SL_PAD_EPDC_D1__EPDC_SDDO_1,
+ MX6SL_PAD_EPDC_D2__EPDC_SDDO_2,
+ MX6SL_PAD_EPDC_D3__EPDC_SDDO_3,
+ MX6SL_PAD_EPDC_D4__EPDC_SDDO_4,
+ MX6SL_PAD_EPDC_D5__EPDC_SDDO_5,
+ MX6SL_PAD_EPDC_D6__EPDC_SDDO_6,
+ MX6SL_PAD_EPDC_D7__EPDC_SDDO_7,
+ MX6SL_PAD_EPDC_D8__EPDC_SDDO_8,
+ MX6SL_PAD_EPDC_D9__EPDC_SDDO_9,
+ MX6SL_PAD_EPDC_D10__EPDC_SDDO_10,
+ MX6SL_PAD_EPDC_D11__EPDC_SDDO_11,
+ MX6SL_PAD_EPDC_D12__EPDC_SDDO_12,
+ MX6SL_PAD_EPDC_D13__EPDC_SDDO_13,
+ MX6SL_PAD_EPDC_D14__EPDC_SDDO_14,
+ MX6SL_PAD_EPDC_D15__EPDC_SDDO_15,
+
+ MX6SL_PAD_EPDC_GDCLK__EPDC_GDCLK,
+ MX6SL_PAD_EPDC_GDSP__EPDC_GDSP,
+ MX6SL_PAD_EPDC_GDOE__EPDC_GDOE,
+ MX6SL_PAD_EPDC_GDRL__EPDC_GDRL,
+ MX6SL_PAD_EPDC_SDCLK__EPDC_SDCLK,
+ MX6SL_PAD_EPDC_SDOE__EPDC_SDOE,
+ MX6SL_PAD_EPDC_SDLE__EPDC_SDLE,
+ MX6SL_PAD_EPDC_SDSHR__EPDC_SDSHR,
+ MX6SL_PAD_EPDC_BDR0__EPDC_BDR_0,
+ MX6SL_PAD_EPDC_SDCE0__EPDC_SDCE_0,
+ MX6SL_PAD_EPDC_SDCE1__EPDC_SDCE_1,
+ MX6SL_PAD_EPDC_SDCE2__EPDC_SDCE_2,
+
+ /* EPD PMIC (Maxim 17135) pins */
+ MX6SL_PAD_EPDC_VCOM0__GPIO_2_3,
+ MX6SL_PAD_EPDC_PWRSTAT__GPIO_2_13,
+ MX6SL_PAD_EPDC_PWRCTRL0__GPIO_2_7,
+ MX6SL_PAD_EPDC_PWRWAKEUP__GPIO_2_14,
+};
+
+static iomux_v3_cfg_t mx6sl_arm2_epdc_disable_pads[] = {
+ /* EPDC */
+ MX6SL_PAD_EPDC_D0__GPIO_1_7,
+ MX6SL_PAD_EPDC_D1__GPIO_1_8,
+ MX6SL_PAD_EPDC_D2__GPIO_1_9,
+ MX6SL_PAD_EPDC_D3__GPIO_1_10,
+ MX6SL_PAD_EPDC_D4__GPIO_1_11,
+ MX6SL_PAD_EPDC_D5__GPIO_1_12,
+ MX6SL_PAD_EPDC_D6__GPIO_1_13,
+ MX6SL_PAD_EPDC_D7__GPIO_1_14,
+ MX6SL_PAD_EPDC_D8__GPIO_1_15,
+ MX6SL_PAD_EPDC_D9__GPIO_1_16,
+ MX6SL_PAD_EPDC_D10__GPIO_1_17,
+ MX6SL_PAD_EPDC_D11__GPIO_1_18,
+ MX6SL_PAD_EPDC_D12__GPIO_1_19,
+ MX6SL_PAD_EPDC_D13__GPIO_1_20,
+ MX6SL_PAD_EPDC_D14__GPIO_1_21,
+ MX6SL_PAD_EPDC_D15__GPIO_1_22,
+
+ MX6SL_PAD_EPDC_GDCLK__GPIO_1_31,
+ MX6SL_PAD_EPDC_GDSP__GPIO_2_2,
+ MX6SL_PAD_EPDC_GDOE__GPIO_2_0,
+ MX6SL_PAD_EPDC_GDRL__GPIO_2_1,
+ MX6SL_PAD_EPDC_SDCLK__GPIO_1_23,
+ MX6SL_PAD_EPDC_SDOE__GPIO_1_25,
+ MX6SL_PAD_EPDC_SDLE__GPIO_1_24,
+ MX6SL_PAD_EPDC_SDSHR__GPIO_1_26,
+ MX6SL_PAD_EPDC_BDR0__GPIO_2_5,
+ MX6SL_PAD_EPDC_SDCE0__GPIO_1_27,
+ MX6SL_PAD_EPDC_SDCE1__GPIO_1_28,
+ MX6SL_PAD_EPDC_SDCE2__GPIO_1_29,
+
+ /* EPD PMIC (Maxim 17135) pins */
+ MX6SL_PAD_EPDC_VCOM0__GPIO_2_3,
+ MX6SL_PAD_EPDC_PWRSTAT__GPIO_2_13,
+ MX6SL_PAD_EPDC_PWRCTRL0__GPIO_2_7,
+ MX6SL_PAD_EPDC_PWRWAKEUP__GPIO_2_14,
+};
+
+static iomux_v3_cfg_t mx6sl_arm2_spdc_enable_pads[] = {
+ /* SPDC data*/
+ MX6SL_PAD_EPDC_D0__TCON_E_DATA_0,
+ MX6SL_PAD_EPDC_D1__TCON_E_DATA_1,
+ MX6SL_PAD_EPDC_D2__TCON_E_DATA_2,
+ MX6SL_PAD_EPDC_D3__TCON_E_DATA_3,
+ MX6SL_PAD_EPDC_D4__TCON_E_DATA_4,
+ MX6SL_PAD_EPDC_D5__TCON_E_DATA_5,
+ MX6SL_PAD_EPDC_D6__TCON_E_DATA_6,
+ MX6SL_PAD_EPDC_D7__TCON_E_DATA_7,
+
+ MX6SL_PAD_EPDC_GDOE__TCON_YOEL, /* AUO panel SIPIX_YOE */
+
+ MX6SL_PAD_EPDC_D9__TCON_E_DATA_9, /* AUO panel SIPIX_PWR_RDY*/
+
+ MX6SL_PAD_EPDC_SDCE2__TCON_YDIOUR, /* AUO panel SIPIX_YDIO */
+ MX6SL_PAD_EPDC_SDCE3__TCON_YDIODR, /* AUO panel SIPIX_YDIO */
+ MX6SL_PAD_EPDC_GDRL__TCON_YDIOUL, /* AUO panel SIPIX_YDIO */
+ MX6SL_PAD_EPDC_GDSP__TCON_YDIODL, /* SIPIX_YDIO/SIPIX2_SPV */
+
+ MX6SL_PAD_EPDC_GDCLK__TCON_YCKL, /* SIPIX_YCLK/SIPIX2_CKV */
+
+ MX6SL_PAD_EPDC_SDSHR__TCON_XDIOR, /* AUO panel SIPIX_XDIO */
+ MX6SL_PAD_EPDC_SDOE__TCON_XDIOL, /* SIPIX_XDIO/SIPIX2_OE */
+
+ MX6SL_PAD_EPDC_SDLE__TCON_LD, /* SIPIX_LD/SIPIX2_LE */
+
+ MX6SL_PAD_EPDC_SDCE1__TCON_YOER, /* AUO panel SIPIX_SOE */
+ MX6SL_PAD_EPDC_BDR0__TCON_RL, /* AUO panel SIPIX_SOE */
+ MX6SL_PAD_EPDC_BDR1__TCON_UD, /* AUO panel SIPIX_SOE */
+
+ MX6SL_PAD_EPDC_SDCLK__TCON_CL, /* SIPIX_XCLK/SIPIX2_CL */
+
+ MX6SL_PAD_EPDC_D10__TCON_E_DATA_10, /* AUO panel SIPIX_SHD_N */
+
+ MX6SL_PAD_EPDC_SDCE0__TCON_YCKR, /* LG panel SIPIX2_CE */
+
+ /* EPD PMIC (Maxim 17135) pins */
+ MX6SL_PAD_EPDC_VCOM0__GPIO_2_3, /* PMICA_CEN */
+ MX6SL_PAD_EPDC_PWRSTAT__GPIO_2_13,
+ MX6SL_PAD_EPDC_PWRCTRL0__GPIO_2_7,
+ MX6SL_PAD_EPDC_PWRWAKEUP__GPIO_2_14,
+};
+
+static iomux_v3_cfg_t mx6sl_arm2_spdc_disable_pads[] = {
+ MX6SL_PAD_EPDC_D0__GPIO_1_7,
+ MX6SL_PAD_EPDC_D1__GPIO_1_8,
+ MX6SL_PAD_EPDC_D2__GPIO_1_9,
+ MX6SL_PAD_EPDC_D3__GPIO_1_10,
+ MX6SL_PAD_EPDC_D4__GPIO_1_11,
+ MX6SL_PAD_EPDC_D5__GPIO_1_12,
+ MX6SL_PAD_EPDC_D6__GPIO_1_13,
+ MX6SL_PAD_EPDC_D7__GPIO_1_14,
+
+ MX6SL_PAD_EPDC_SDCE1__GPIO_1_28,
+ MX6SL_PAD_EPDC_GDOE__GPIO_2_0,
+ MX6SL_PAD_EPDC_D9__GPIO_1_16,
+ MX6SL_PAD_EPDC_SDCE2__GPIO_1_29,
+ MX6SL_PAD_EPDC_SDCE3__GPIO_1_30,
+ MX6SL_PAD_EPDC_GDRL__GPIO_2_1,
+ MX6SL_PAD_EPDC_GDSP__GPIO_2_2,
+ MX6SL_PAD_EPDC_GDCLK__GPIO_1_31,
+ MX6SL_PAD_EPDC_SDSHR__GPIO_1_26,
+ MX6SL_PAD_EPDC_SDOE__GPIO_1_25,
+ MX6SL_PAD_EPDC_SDLE__GPIO_1_24,
+ MX6SL_PAD_EPDC_SDCE1__GPIO_1_28,
+ MX6SL_PAD_EPDC_BDR0__GPIO_2_5,
+ MX6SL_PAD_EPDC_BDR1__GPIO_2_6,
+ MX6SL_PAD_EPDC_SDCLK__GPIO_1_23,
+ MX6SL_PAD_EPDC_D10__GPIO_1_17,
+ MX6SL_PAD_EPDC_SDCE0__GPIO_1_27,
+
+ /* EPD PMIC (Maxim 17135) pins */
+ MX6SL_PAD_EPDC_VCOM0__GPIO_2_3,
+ MX6SL_PAD_EPDC_PWRSTAT__GPIO_2_13,
+ MX6SL_PAD_EPDC_PWRCTRL0__GPIO_2_7,
+ MX6SL_PAD_EPDC_PWRWAKEUP__GPIO_2_14,
+};
+
+#endif
diff --git a/arch/arm/mach-mx6/bus_freq.c b/arch/arm/mach-mx6/bus_freq.c
index b721bc0479f0..74289931b23b 100644
--- a/arch/arm/mach-mx6/bus_freq.c
+++ b/arch/arm/mach-mx6/bus_freq.c
@@ -49,6 +49,11 @@
#define LPAPM_CLK 24000000
#define DDR_MED_CLK 400000000
#define DDR3_NORMAL_CLK 528000000
+#define AXI_CLK_RATE 270000000
+#define GPC_PGC_GPU_PGCR_OFFSET 0x260
+#define GPC_CNTR_OFFSET 0x0
+
+
DEFINE_SPINLOCK(ddr_freq_lock);
@@ -74,9 +79,10 @@ unsigned int ddr_normal_rate;
int low_freq_bus_used(void);
void set_ddr_freq(int ddr_freq);
+extern int init_mmdc_settings(void);
extern struct cpu_op *(*get_cpu_op)(int *op);
extern int update_ddr_freq(int ddr_rate);
-
+extern void __iomem *gpc_base;
struct mutex bus_freq_mutex;
@@ -86,6 +92,9 @@ struct timeval end_time;
static int cpu_op_nr;
static struct cpu_op *cpu_op_tbl;
static struct clk *pll2_400;
+static struct clk *axi_clk;
+static struct clk *periph_clk;
+static struct clk *pll3_540;
static struct clk *cpu_clk;
static unsigned int org_ldo;
static struct clk *pll3;
@@ -117,6 +126,11 @@ static void reduce_bus_freq_handler(struct work_struct *work)
return;
}
+ /* Set the axi_clk to be sourced from the periph_clk.
+ * So that its frequency can be lowered down to 50MHz
+ * or 24MHz as the case may be. */
+ clk_set_parent(axi_clk, periph_clk);
+
clk_enable(pll3);
if (lp_audio_freq) {
@@ -140,14 +154,41 @@ static void reduce_bus_freq_handler(struct work_struct *work)
med_bus_freq_mode = 0;
if (cpu_is_mx6q()) {
+ /* Disable the brown out detection since we are going to be
+ * disabling the LDO.
+ */
+ reg = __raw_readl(ANA_MISC2_BASE_ADDR);
+ reg &= ~ANADIG_ANA_MISC2_REG1_BO_EN;
+ __raw_writel(reg, ANA_MISC2_BASE_ADDR);
+
/* Power gate the PU LDO. */
+ /* Power gate the PU domain first. */
+ /* enable power down request */
+ reg = __raw_readl(gpc_base + GPC_PGC_GPU_PGCR_OFFSET);
+ __raw_writel(reg | 0x1, gpc_base + GPC_PGC_GPU_PGCR_OFFSET);
+ /* power down request */
+ reg = __raw_readl(gpc_base + GPC_CNTR_OFFSET);
+ __raw_writel(reg | 0x1, gpc_base + GPC_CNTR_OFFSET);
+ /* Wait for power down to complete. */
+ while (__raw_readl(gpc_base + GPC_CNTR_OFFSET) & 0x1)
+ ;
+
+ /* Mask the ANATOP brown out interrupt in the GPC. */
+ reg = __raw_readl(gpc_base + 0x14);
+ reg |= 0x80000000;
+ __raw_writel(reg, gpc_base + 0x14);
+
org_ldo = reg = __raw_readl(ANADIG_REG_CORE);
reg &= ~(ANADIG_REG_TARGET_MASK << ANADIG_REG1_PU_TARGET_OFFSET);
__raw_writel(reg, ANADIG_REG_CORE);
+
+ /* Clear the BO interrupt in the ANATOP. */
+ reg = __raw_readl(ANADIG_MISC1_REG);
+ reg |= 0x80000000;
+ __raw_writel(reg, ANADIG_MISC1_REG);
}
clk_disable(pll3);
mutex_unlock(&bus_freq_mutex);
-
}
/* Set the DDR, AHB to 24MHz.
@@ -174,6 +215,8 @@ int set_low_bus_freq(void)
*/
int set_high_bus_freq(int high_bus_freq)
{
+ unsigned long reg;
+
if (busfreq_suspended)
return 0;
@@ -196,10 +239,41 @@ int set_high_bus_freq(int high_bus_freq)
}
clk_enable(pll3);
+ if (clk_get_parent(axi_clk) != pll3_540) {
+ /* We need to set axi_clk to be sourced from PLL3_540MHz. */
+ /* Ensure the divider is set to divide by 2 before changing the
+ * parent. */
+ if (low_bus_freq_mode)
+ clk_set_rate(axi_clk, clk_get_rate(axi_clk) / 2);
+ clk_set_parent(axi_clk, pll3_540);
+ clk_set_rate(axi_clk, AXI_CLK_RATE);
+ }
+
/* Enable the PU LDO */
- if (cpu_is_mx6q() && low_bus_freq_mode)
+ if (cpu_is_mx6q() && low_bus_freq_mode) {
__raw_writel(org_ldo, ANADIG_REG_CORE);
+ /* enable power up request */
+ reg = __raw_readl(gpc_base + GPC_PGC_GPU_PGCR_OFFSET);
+ __raw_writel(reg | 0x1, gpc_base + GPC_PGC_GPU_PGCR_OFFSET);
+ /* power up request */
+ reg = __raw_readl(gpc_base + GPC_CNTR_OFFSET);
+ __raw_writel(reg | 0x2, gpc_base + GPC_CNTR_OFFSET);
+ /* Wait for the power up bit to clear */
+ while (__raw_readl(gpc_base + GPC_CNTR_OFFSET) & 0x2)
+ ;
+
+ /* Enable the Brown Out detection. */
+ reg = __raw_readl(ANA_MISC2_BASE_ADDR);
+ reg |= ANADIG_ANA_MISC2_REG1_BO_EN;
+ __raw_writel(reg, ANA_MISC2_BASE_ADDR);
+
+ /* Unmask the ANATOP brown out interrupt in the GPC. */
+ reg = __raw_readl(gpc_base + 0x14);
+ reg &= ~0x80000000;
+ __raw_writel(reg, gpc_base + 0x14);
+ }
+
if (high_bus_freq) {
update_ddr_freq(ddr_normal_rate);
if (med_bus_freq_mode)
@@ -308,7 +382,7 @@ static int __devinit busfreq_probe(struct platform_device *pdev)
pll2_400 = clk_get(NULL, "pll2_pfd_400M");
if (IS_ERR(pll2_400)) {
- printk(KERN_DEBUG "%s: failed to get axi_clk\n",
+ printk(KERN_DEBUG "%s: failed to get pll2_pfd_400M\n",
__func__);
return PTR_ERR(pll2_400);
}
@@ -321,6 +395,32 @@ static int __devinit busfreq_probe(struct platform_device *pdev)
}
pll3 = clk_get(NULL, "pll3_main_clk");
+ if (IS_ERR(pll3)) {
+ printk(KERN_DEBUG "%s: failed to get pll3\n",
+ __func__);
+ return PTR_ERR(cpu_clk);
+ }
+
+ axi_clk = clk_get(NULL, "axi_clk");
+ if (IS_ERR(axi_clk)) {
+ printk(KERN_DEBUG "%s: failed to get axi_clk\n",
+ __func__);
+ return PTR_ERR(axi_clk);
+ }
+
+ periph_clk = clk_get(NULL, "periph_clk");
+ if (IS_ERR(periph_clk)) {
+ printk(KERN_DEBUG "%s: failed to get periph_clk\n",
+ __func__);
+ return PTR_ERR(periph_clk);
+ }
+
+ pll3_540 = clk_get(NULL, "pll3_pfd_540M");
+ if (IS_ERR(pll3_540)) {
+ printk(KERN_DEBUG "%s: failed to get periph_clk\n",
+ __func__);
+ return PTR_ERR(pll3_540);
+ }
err = sysfs_create_file(&busfreq_dev->kobj, &dev_attr_enable.attr);
if (err) {
@@ -350,6 +450,8 @@ static int __devinit busfreq_probe(struct platform_device *pdev)
mutex_init(&bus_freq_mutex);
+ init_mmdc_settings();
+
return 0;
}
diff --git a/arch/arm/mach-mx6/clock.c b/arch/arm/mach-mx6/clock.c
index 4deeb8c50c14..465bd2313329 100644
--- a/arch/arm/mach-mx6/clock.c
+++ b/arch/arm/mach-mx6/clock.c
@@ -29,8 +29,8 @@
#include <mach/common.h>
#include <mach/clock.h>
#include <mach/mxc_dvfs.h>
-#include <mach/mxc_hdmi.h>
#include <mach/ahci_sata.h>
+#include <mach/mxc_hdmi.h>
#include "crm_regs.h"
#include "cpu_op-mx6.h"
#include "regs-anadig.h"
@@ -47,9 +47,16 @@ extern struct regulator *cpu_regulator;
extern struct cpu_op *(*get_cpu_op)(int *op);
extern int lp_high_freq;
extern int lp_med_freq;
+extern int wait_mode_arm_podf;
extern int lp_audio_freq;
+extern int cur_arm_podf;
+extern bool arm_mem_clked_in_wait;
+extern bool enable_wait_mode;
void __iomem *apll_base;
+static struct clk ipu1_clk;
+static struct clk ipu2_clk;
+static struct clk axi_clk;
static struct clk pll1_sys_main_clk;
static struct clk pll2_528_bus_main_clk;
static struct clk pll2_pfd_400M;
@@ -66,6 +73,7 @@ static struct clk apbh_dma_clk;
static struct clk openvg_axi_clk;
static struct clk enfc_clk;
static struct clk usdhc3_clk;
+static struct clk ipg_clk;
static struct cpu_op *cpu_op_tbl;
static int cpu_op_nr;
@@ -513,8 +521,21 @@ static int _clk_pll1_main_set_rate(struct clk *clk, unsigned long rate)
static void _clk_pll1_disable(struct clk *clk)
{
+ void __iomem *pllbase;
+ u32 reg;
+
pll1_enabled = false;
- _clk_pll_disable(clk);
+
+ /* Set PLL1 in bypass mode only. */
+ /* We need to be able to set the ARM-PODF bit
+ * when the system enters WAIT mode. And setting
+ * this bit requires PLL1_main to be enabled.
+ */
+ pllbase = _get_pll_base(clk);
+
+ reg = __raw_readl(pllbase);
+ reg |= ANADIG_PLL_BYPASS;
+ __raw_writel(reg, pllbase);
}
static int _clk_pll1_enable(struct clk *clk)
@@ -780,6 +801,17 @@ static struct clk pll3_pfd_720M = {
.round_rate = pfd_round_rate,
};
+static int pfd_540M_set_rate(struct clk *clk, unsigned long rate)
+{
+ if ((clk_get_parent(&ipu1_clk) == clk) ||
+ (clk_get_parent(&ipu2_clk) == clk) ||
+ (clk_get_parent(&axi_clk) == clk))
+ WARN(1, "CHANGING rate of 540M PFD when IPU and \
+ AXI is sourced from it \n");
+
+ return pfd_set_rate(clk, rate);
+}
+
static struct clk pll3_pfd_540M = {
__INIT_CLK_DEBUG(pll3_pfd_540M)
.parent = &pll3_usb_otg_main_clk,
@@ -787,7 +819,7 @@ static struct clk pll3_pfd_540M = {
.enable_shift = ANADIG_PFD1_FRAC_OFFSET,
.enable = _clk_pfd_enable,
.disable = _clk_pfd_disable,
- .set_rate = pfd_set_rate,
+ .set_rate = pfd_540M_set_rate,
.get_rate = pfd_get_rate,
.round_rate = pfd_round_rate,
.get_rate = pfd_get_rate,
@@ -1171,6 +1203,7 @@ static int _clk_arm_set_rate(struct clk *clk, unsigned long rate)
u32 div;
unsigned long parent_rate;
unsigned long flags;
+ unsigned long ipg_clk_rate, max_arm_wait_clk;
for (i = 0; i < cpu_op_nr; i++) {
if (rate == cpu_op_tbl[i].cpu_rate)
@@ -1215,6 +1248,32 @@ static int _clk_arm_set_rate(struct clk *clk, unsigned long rate)
}
parent_rate = clk_get_rate(clk->parent);
div = parent_rate / rate;
+ /* Calculate the ARM_PODF to be applied when the system
+ * enters WAIT state. The max ARM clk is decided by the
+ * ipg_clk and has to follow the ratio of ARM_CLK:IPG_CLK of 12:5.
+ * For ex, when IPG is at 66MHz, ARM_CLK cannot be greater
+ * than 158MHz.
+ * Pre-calculate the optimal divider now.
+ */
+ ipg_clk_rate = clk_get_rate(&ipg_clk);
+ max_arm_wait_clk = (12 * ipg_clk_rate) / 5;
+ wait_mode_arm_podf = parent_rate / max_arm_wait_clk;
+ if (wait_mode_arm_podf > 7) {
+ /* IPG_CLK is too low and we cannot get a ARM_CLK
+ * that will satisfy the 12:5 ratio.
+ * Use the mem_ipg_stop_mask bit to ensure clocks to ARM
+ * memories are not gated during WAIT mode.
+ * This bit is NOT available on MX6DQ TO1.1/TO1.0 and
+ * MX6DL TO1.0.
+ * Else disable entry to WAIT mode.
+ */
+ if ((mx6q_revision() > IMX_CHIP_REVISION_1_1) ||
+ (mx6dl_revision() > IMX_CHIP_REVISION_1_0))
+ arm_mem_clked_in_wait = true;
+ else
+ enable_wait_mode = false;
+ }
+
if (div == 0)
div = 1;
@@ -1225,11 +1284,12 @@ static int _clk_arm_set_rate(struct clk *clk, unsigned long rate)
spin_unlock_irqrestore(&clk_lock, flags);
return -1;
}
-
/* Need PLL1-MAIN to be ON to write to ARM-PODF bit. */
if (!pll1_enabled)
pll1_sys_main_clk.enable(&pll1_sys_main_clk);
+ cur_arm_podf = div;
+
__raw_writel(div - 1, MXC_CCM_CACRR);
while (__raw_readl(MXC_CCM_CDHIPR))
@@ -2061,7 +2121,7 @@ static struct clk vpu_clk[] = {
.set_rate = _clk_vpu_axi_set_rate,
.get_rate = _clk_vpu_axi_get_rate,
.secondary = &vpu_clk[1],
- .flags = AHB_MED_SET_POINT | CPU_FREQ_TRIG_UPDATE,
+ .flags = AHB_HIGH_SET_POINT | CPU_FREQ_TRIG_UPDATE,
},
{
.parent = &mmdc_ch0_axi_clk[0],
@@ -2151,7 +2211,7 @@ static struct clk ipu1_clk = {
.round_rate = _clk_ipu_round_rate,
.set_rate = _clk_ipu1_set_rate,
.get_rate = _clk_ipu1_get_rate,
- .flags = AHB_MED_SET_POINT | CPU_FREQ_TRIG_UPDATE,
+ .flags = AHB_HIGH_SET_POINT | CPU_FREQ_TRIG_UPDATE,
};
static int _clk_ipu2_set_parent(struct clk *clk, struct clk *parent)
@@ -2212,7 +2272,7 @@ static struct clk ipu2_clk = {
.round_rate = _clk_ipu_round_rate,
.set_rate = _clk_ipu2_set_rate,
.get_rate = _clk_ipu2_get_rate,
- .flags = AHB_MED_SET_POINT | CPU_FREQ_TRIG_UPDATE,
+ .flags = AHB_HIGH_SET_POINT | CPU_FREQ_TRIG_UPDATE,
};
static struct clk usdhc_dep_clk = {
@@ -2785,7 +2845,7 @@ static struct clk ldb_di0_clk = {
.set_rate = _clk_ldb_di0_set_rate,
.round_rate = _clk_ldb_di_round_rate,
.get_rate = _clk_ldb_di0_get_rate,
- .flags = AHB_MED_SET_POINT | CPU_FREQ_TRIG_UPDATE,
+ .flags = AHB_HIGH_SET_POINT | CPU_FREQ_TRIG_UPDATE,
};
static unsigned long _clk_ldb_di1_get_rate(struct clk *clk)
@@ -2856,7 +2916,7 @@ static struct clk ldb_di1_clk = {
.set_rate = _clk_ldb_di1_set_rate,
.round_rate = _clk_ldb_di_round_rate,
.get_rate = _clk_ldb_di1_get_rate,
- .flags = AHB_MED_SET_POINT | CPU_FREQ_TRIG_UPDATE,
+ .flags = AHB_HIGH_SET_POINT | CPU_FREQ_TRIG_UPDATE,
};
@@ -3049,7 +3109,7 @@ static struct clk ipu1_di_clk[] = {
.set_rate = _clk_ipu1_di0_set_rate,
.round_rate = _clk_ipu_di_round_rate,
.get_rate = _clk_ipu1_di0_get_rate,
- .flags = AHB_MED_SET_POINT | CPU_FREQ_TRIG_UPDATE,
+ .flags = AHB_HIGH_SET_POINT | CPU_FREQ_TRIG_UPDATE,
},
{
__INIT_CLK_DEBUG(ipu1_di_clk_1)
@@ -3063,7 +3123,7 @@ static struct clk ipu1_di_clk[] = {
.set_rate = _clk_ipu1_di1_set_rate,
.round_rate = _clk_ipu_di_round_rate,
.get_rate = _clk_ipu1_di1_get_rate,
- .flags = AHB_MED_SET_POINT | CPU_FREQ_TRIG_UPDATE,
+ .flags = AHB_HIGH_SET_POINT | CPU_FREQ_TRIG_UPDATE,
},
};
@@ -3226,7 +3286,7 @@ static struct clk ipu2_di_clk[] = {
.set_rate = _clk_ipu2_di0_set_rate,
.round_rate = _clk_ipu_di_round_rate,
.get_rate = _clk_ipu2_di0_get_rate,
- .flags = AHB_MED_SET_POINT | CPU_FREQ_TRIG_UPDATE,
+ .flags = AHB_HIGH_SET_POINT | CPU_FREQ_TRIG_UPDATE,
},
{
__INIT_CLK_DEBUG(ipu2_di_clk_1)
@@ -3240,7 +3300,7 @@ static struct clk ipu2_di_clk[] = {
.set_rate = _clk_ipu2_di1_set_rate,
.round_rate = _clk_ipu_di_round_rate,
.get_rate = _clk_ipu2_di1_get_rate,
- .flags = AHB_MED_SET_POINT | CPU_FREQ_TRIG_UPDATE,
+ .flags = AHB_HIGH_SET_POINT | CPU_FREQ_TRIG_UPDATE,
},
};
@@ -4720,10 +4780,34 @@ static struct clk usboh3_clk[] = {
},
};
+static int _clk_mlb_set_parent(struct clk *clk, struct clk *parent)
+{
+ u32 sel, cbcmr = __raw_readl(MXC_CCM_CBCMR);
+
+ /*
+ * In Rigel validatioin, the MLB sys_clock isn't using the
+ * right frequency after boot.
+ * In arik, the register CBCMR controls gpu2d clock, not mlb clock,
+ * mlb is sourced from axi clock.
+ * But In rigel, the axi clock is lower than in mx6q, so mlb need to
+ * find a new clock root.
+ * The gpu2d clock is the root of mlb clock in rigel.
+ * Thus we need to add below code in mx6dl.
+ * */
+ sel = _get_mux(parent, &axi_clk, &pll3_sw_clk,
+ &pll2_pfd_352M, &pll2_pfd_400M);
+
+ cbcmr &= ~MXC_CCM_CBCMR_MLB_CLK_SEL_MASK;
+ cbcmr |= sel << MXC_CCM_CBCMR_MLB_CLK_SEL_OFFSET;
+ __raw_writel(cbcmr, MXC_CCM_CBCMR);
+
+ return 0;
+}
+
static struct clk mlb150_clk = {
__INIT_CLK_DEBUG(mlb150_clk)
.id = 0,
- .parent = &ipg_clk,
+ .set_parent = _clk_mlb_set_parent,
.enable_reg = MXC_CCM_CCGR3,
.enable_shift = MXC_CCM_CCGRx_CG9_OFFSET,
.enable = _clk_enable,
@@ -5094,7 +5178,7 @@ static struct clk_lookup lookups[] = {
_REGISTER_CLOCK("mxc_pwm.2", NULL, pwm_clk[2]),
_REGISTER_CLOCK("mxc_pwm.3", NULL, pwm_clk[3]),
_REGISTER_CLOCK(NULL, "pcie_clk", pcie_clk[0]),
- _REGISTER_CLOCK("fec.0", NULL, enet_clk[0]),
+ _REGISTER_CLOCK("enet.0", NULL, enet_clk[0]),
_REGISTER_CLOCK(NULL, "imx_sata_clk", sata_clk[0]),
_REGISTER_CLOCK(NULL, "usboh3_clk", usboh3_clk[0]),
_REGISTER_CLOCK(NULL, "usb_phy1_clk", usb_phy1_clk),
@@ -5184,8 +5268,8 @@ int __init mx6_clocks_init(unsigned long ckil, unsigned long osc,
sata_clk[0].disable(&sata_clk[0]);
pcie_clk[0].disable(&pcie_clk[0]);
- /* Initialize Audio and Video PLLs to valid frequency (650MHz). */
- clk_set_rate(&pll4_audio_main_clk, 650000000);
+ /* Initialize Audio and Video PLLs to valid frequency. */
+ clk_set_rate(&pll4_audio_main_clk, 176000000);
clk_set_rate(&pll5_video_main_clk, 650000000);
clk_set_parent(&ipu1_di_clk[0], &pll5_video_main_clk);
@@ -5214,12 +5298,23 @@ int __init mx6_clocks_init(unsigned long ckil, unsigned long osc,
/* on mx6dl gpu2d_axi_clk source from mmdc0 directly */
clk_set_parent(&gpu2d_axi_clk, &mmdc_ch0_axi_clk[0]);
- /* set axi_clk parent to pll3_pfd_540M */
- clk_set_parent(&axi_clk, &pll3_pfd_540M);
+ /* pxp & epdc */
+ clk_set_parent(&ipu2_clk, &pll2_pfd_400M);
+ clk_set_rate(&ipu2_clk, 200000000);
+ } else if (cpu_is_mx6q())
+ /* Donot source IPU from MMDC clock, as it can be scaled. */
+ clk_set_parent(&ipu2_clk, &pll3_pfd_540M);
+
+ /* Donot source IPU from MMDC clock, as it can be scaled. */
+ clk_set_parent(&ipu1_clk, &pll3_pfd_540M);
+
+ /* set axi_clk parent to pll3_pfd_540M, don't source from
+ * periph_clk as it can be scaled.
+ */
+ clk_set_parent(&axi_clk, &pll3_pfd_540M);
+ /* Need to keep PLL3_PFD_540M enabled until AXI is sourced from it. */
+ clk_enable(&axi_clk);
- /* on mx6dl, max ipu clock is 274M */
- clk_set_parent(&ipu1_clk, &pll3_pfd_540M);
- }
if (cpu_is_mx6q())
clk_set_parent(&gpu2d_core_clk[0], &pll3_usb_otg_main_clk);
@@ -5230,7 +5325,7 @@ int __init mx6_clocks_init(unsigned long ckil, unsigned long osc,
clk_set_parent(&clko2_clk, &osc_clk);
clk_set_rate(&clko2_clk, 2400000);
- clk_set_parent(&clko_clk, &ipg_clk);
+ clk_set_parent(&clko_clk, &pll4_audio_main_clk);
/*
* FIXME: asrc needs to use asrc_serial(spdif1) clock to do sample
* rate convertion and this clock frequency can not be too high, set
@@ -5279,12 +5374,23 @@ int __init mx6_clocks_init(unsigned long ckil, unsigned long osc,
/* Lower the ipg_perclk frequency to 6MHz. */
clk_set_rate(&ipg_perclk, 6000000);
- /* Set pll2_pfd_352M frequency to 528M for gpu2d core clock */
- clk_set_rate(&pll2_pfd_352M, 528000000);
-
/* S/PDIF */
clk_set_parent(&spdif0_clk[0], &pll3_pfd_454M);
+ /* MLB150 SYS Clock */
+ /*
+ * In Rigel validatioin, the MLB sys_clock isn't using the
+ * right frequency after boot.
+ * In arik, the register CBCMR controls gpu2d clock, not mlb clock,
+ * mlb is sourced from axi clock.
+ * But In rigel, the axi clock is lower than in mx6q, so mlb need to
+ * find a new clock root.
+ * The gpu2d clock is the root of mlb clock in rigel.
+ * Thus we need to add below code in mx6dl.
+ * */
+ if (cpu_is_mx6dl())
+ clk_set_parent(&mlb150_clk, &pll3_sw_clk);
+
if (mx6q_revision() == IMX_CHIP_REVISION_1_0) {
gpt_clk[0].parent = &ipg_perclk;
gpt_clk[0].get_rate = NULL;
diff --git a/arch/arm/mach-mx6/clock_mx6sl.c b/arch/arm/mach-mx6/clock_mx6sl.c
new file mode 100755
index 000000000000..1d485c39ed38
--- /dev/null
+++ b/arch/arm/mach-mx6/clock_mx6sl.c
@@ -0,0 +1,3821 @@
+/*
+ * Copyright (C) 2012 Freescale Semiconductor, Inc. All Rights Reserved.
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+ *
+ */
+
+#include <linux/kernel.h>
+#include <linux/init.h>
+#include <linux/types.h>
+#include <linux/time.h>
+#include <linux/hrtimer.h>
+#include <linux/mm.h>
+#include <linux/errno.h>
+#include <linux/delay.h>
+#include <linux/clk.h>
+#include <linux/io.h>
+#include <linux/clkdev.h>
+#include <linux/regulator/consumer.h>
+#include <asm/div64.h>
+#include <mach/hardware.h>
+#include <mach/common.h>
+#include <mach/clock.h>
+#include <mach/mxc_dvfs.h>
+#include "crm_regs.h"
+#include "cpu_op-mx6.h"
+#include "regs-anadig.h"
+
+#ifdef CONFIG_CLK_DEBUG
+#define __INIT_CLK_DEBUG(n) .name = #n,
+#else
+#define __INIT_CLK_DEBUG(n)
+#endif
+
+extern u32 arm_max_freq;
+extern int mxc_jtag_enabled;
+extern struct regulator *cpu_regulator;
+extern struct cpu_op *(*get_cpu_op)(int *op);
+extern int lp_high_freq;
+extern int lp_med_freq;
+extern int wait_mode_arm_podf;
+extern int mx6q_revision(void);
+extern bool arm_mem_clked_in_wait;
+extern int cur_arm_podf;
+
+static void __iomem *apll_base;
+static struct clk pll1_sys_main_clk;
+static struct clk pll2_528_bus_main_clk;
+static struct clk pll2_pfd2_400M;
+static struct clk pll3_usb_otg_main_clk;
+static struct clk pll4_audio_main_clk;
+static struct clk pll5_video_main_clk;
+static struct clk pll6_enet_main_clk; /* Essentially same as PLL8 on MX6Q/DL */
+static struct clk pll7_usb_host_main_clk;
+static struct clk usdhc3_clk;
+static struct clk ipg_clk;
+
+static struct cpu_op *cpu_op_tbl;
+static int cpu_op_nr;
+static bool pll1_enabled;
+static bool arm_needs_pll2_400;
+
+DEFINE_SPINLOCK(mx6sl_clk_lock);
+#define SPIN_DELAY 1200000 /* in nanoseconds */
+
+#define AUDIO_VIDEO_MIN_CLK_FREQ 650000000
+#define AUDIO_VIDEO_MAX_CLK_FREQ 1300000000
+#define MAX_ARM_CLK_IN_WAIT 158000000
+
+/* We need to check the exp status again after timer expiration,
+ * as there might be interrupt coming between the first time exp
+ * and the time reading, then the time reading may be several ms
+ * after the exp checking due to the irq handle, so we need to
+ * check it to make sure the exp return the right value after
+ * timer expiration. */
+#define WAIT(exp, timeout) \
+({ \
+ struct timespec nstimeofday; \
+ struct timespec curtime; \
+ int result = 1; \
+ getnstimeofday(&nstimeofday); \
+ while (!(exp)) { \
+ getnstimeofday(&curtime); \
+ if ((curtime.tv_nsec - nstimeofday.tv_nsec) > (timeout)) { \
+ if (!(exp)) \
+ result = 0; \
+ break; \
+ } \
+ } \
+ result; \
+})
+
+/* External clock values passed-in by the board code */
+static unsigned long external_high_reference, external_low_reference;
+static unsigned long oscillator_reference, ckih2_reference;
+static unsigned long anaclk_1_reference, anaclk_2_reference;
+
+static void __calc_pre_post_dividers(u32 max_podf, u32 div, u32 *pre, u32 *post)
+{
+ u32 min_pre, temp_pre, old_err, err;
+
+ /* Some of the podfs are 3 bits while others are 6 bits.
+ * Handle both cases here.
+ */
+ if (div >= 512 && (max_podf == 64)) {
+ /* For pre = 3bits and podf = 6 bits, max divider is 512. */
+ *pre = 8;
+ *post = 64;
+ } else if (div >= 64 && (max_podf == 8)) {
+ /* For pre = 3bits and podf = 3 bits, max divider is 64. */
+ *pre = 8;
+ *post = 8;
+ } else if (div >= 8) {
+ /* Find the minimum pre-divider for a max podf */
+ if (max_podf == 64)
+ min_pre = (div - 1) / (1 << 6) + 1;
+ else
+ min_pre = (div - 1) / (1 << 3) + 1;
+ old_err = 8;
+ /* Now loop through to find the max pre-divider. */
+ for (temp_pre = 8; temp_pre >= min_pre; temp_pre--) {
+ err = div % temp_pre;
+ if (err == 0) {
+ *pre = temp_pre;
+ break;
+ }
+ err = temp_pre - err;
+ if (err < old_err) {
+ old_err = err;
+ *pre = temp_pre;
+ }
+ }
+ *post = (div + *pre - 1) / *pre;
+ } else if (div < 8) {
+ *pre = div;
+ *post = 1;
+ }
+}
+
+static int _clk_enable(struct clk *clk)
+{
+ u32 reg;
+ reg = __raw_readl(clk->enable_reg);
+ reg |= MXC_CCM_CCGRx_CG_MASK << clk->enable_shift;
+ __raw_writel(reg, clk->enable_reg);
+
+ if (clk->flags & AHB_HIGH_SET_POINT)
+ lp_high_freq++;
+ else if (clk->flags & AHB_MED_SET_POINT)
+ lp_med_freq++;
+
+ return 0;
+}
+
+static void _clk_disable(struct clk *clk)
+{
+ u32 reg;
+ reg = __raw_readl(clk->enable_reg);
+ reg &= ~(MXC_CCM_CCGRx_CG_MASK << clk->enable_shift);
+ __raw_writel(reg, clk->enable_reg);
+
+ if (clk->flags & AHB_HIGH_SET_POINT)
+ lp_high_freq--;
+ else if (clk->flags & AHB_MED_SET_POINT)
+ lp_med_freq--;
+}
+
+static void _clk_disable_inwait(struct clk *clk)
+{
+ u32 reg;
+ reg = __raw_readl(clk->enable_reg);
+ reg &= ~(MXC_CCM_CCGRx_CG_MASK << clk->enable_shift);
+ reg |= 1 << clk->enable_shift;
+ __raw_writel(reg, clk->enable_reg);
+}
+
+/*
+ * For the 4-to-1 muxed input clock
+ */
+static inline u32 _get_mux(struct clk *parent, struct clk *m0,
+ struct clk *m1, struct clk *m2, struct clk *m3)
+{
+ if (parent == m0)
+ return 0;
+ else if (parent == m1)
+ return 1;
+ else if (parent == m2)
+ return 2;
+ else if (parent == m3)
+ return 3;
+ else
+ BUG();
+
+ return 0;
+}
+
+static inline void __iomem *_get_pll_base(struct clk *pll)
+{
+ if (pll == &pll1_sys_main_clk)
+ return PLL1_SYS_BASE_ADDR;
+ else if (pll == &pll2_528_bus_main_clk)
+ return PLL2_528_BASE_ADDR;
+ else if (pll == &pll3_usb_otg_main_clk)
+ return PLL3_480_USB1_BASE_ADDR;
+ else if (pll == &pll4_audio_main_clk)
+ return PLL4_AUDIO_BASE_ADDR;
+ else if (pll == &pll5_video_main_clk)
+ return PLL5_VIDEO_BASE_ADDR;
+ else if (pll == &pll6_enet_main_clk)
+ /* Essentially same as PLL8 on MX6Q/DL */
+ return PLL8_ENET_BASE_ADDR;
+ else if (pll == &pll7_usb_host_main_clk)
+ return PLL7_480_USB2_BASE_ADDR;
+ else
+ BUG();
+ return NULL;
+}
+
+
+/*
+ * For the 6-to-1 muxed input clock
+ */
+static inline u32 _get_mux6(struct clk *parent, struct clk *m0, struct clk *m1,
+ struct clk *m2, struct clk *m3, struct clk *m4,
+ struct clk *m5)
+{
+ if (parent == m0)
+ return 0;
+ else if (parent == m1)
+ return 1;
+ else if (parent == m2)
+ return 2;
+ else if (parent == m3)
+ return 3;
+ else if (parent == m4)
+ return 4;
+ else if (parent == m5)
+ return 5;
+ else
+ BUG();
+
+ return 0;
+}
+static unsigned long get_high_reference_clock_rate(struct clk *clk)
+{
+ return external_high_reference;
+}
+
+static unsigned long get_low_reference_clock_rate(struct clk *clk)
+{
+ return external_low_reference;
+}
+
+static unsigned long get_oscillator_reference_clock_rate(struct clk *clk)
+{
+ return oscillator_reference;
+}
+
+static unsigned long get_ckih2_reference_clock_rate(struct clk *clk)
+{
+ return ckih2_reference;
+}
+
+static unsigned long _clk_anaclk_1_get_rate(struct clk *clk)
+{
+ return anaclk_1_reference;
+}
+
+static int _clk_anaclk_1_set_rate(struct clk *clk, unsigned long rate)
+{
+ anaclk_1_reference = rate;
+ return 0;
+}
+
+static unsigned long _clk_anaclk_2_get_rate(struct clk *clk)
+{
+ return anaclk_2_reference;
+}
+
+static int _clk_anaclk_2_set_rate(struct clk *clk, unsigned long rate)
+{
+ anaclk_2_reference = rate;
+ return 0;
+}
+
+/* External high frequency clock */
+static struct clk ckih_clk = {
+ __INIT_CLK_DEBUG(ckih_clk)
+ .get_rate = get_high_reference_clock_rate,
+};
+
+static struct clk ckih2_clk = {
+ __INIT_CLK_DEBUG(ckih2_clk)
+ .get_rate = get_ckih2_reference_clock_rate,
+};
+
+static struct clk osc_clk = {
+ __INIT_CLK_DEBUG(osc_clk)
+ .get_rate = get_oscillator_reference_clock_rate,
+};
+
+/* External low frequency (32kHz) clock */
+static struct clk ckil_clk = {
+ __INIT_CLK_DEBUG(ckil_clk)
+ .get_rate = get_low_reference_clock_rate,
+};
+
+static struct clk anaclk_1 = {
+ __INIT_CLK_DEBUG(anaclk_1)
+ .get_rate = _clk_anaclk_1_get_rate,
+ .set_rate = _clk_anaclk_1_set_rate,
+};
+
+static struct clk anaclk_2 = {
+ __INIT_CLK_DEBUG(anaclk_2)
+ .get_rate = _clk_anaclk_2_get_rate,
+ .set_rate = _clk_anaclk_2_set_rate,
+};
+
+static unsigned long pfd_round_rate(struct clk *clk, unsigned long rate)
+{
+ u32 frac;
+ u64 tmp;
+
+ tmp = (u64)clk_get_rate(clk->parent) * 18;
+ tmp += rate/2;
+ do_div(tmp, rate);
+ frac = tmp;
+ frac = frac < 12 ? 12 : frac;
+ frac = frac > 35 ? 35 : frac;
+ tmp = (u64)clk_get_rate(clk->parent) * 18;
+ do_div(tmp, frac);
+ return tmp;
+}
+
+static unsigned long pfd_get_rate(struct clk *clk)
+{
+ u32 frac;
+ u64 tmp;
+ tmp = (u64)clk_get_rate(clk->parent) * 18;
+
+ frac = (__raw_readl(clk->enable_reg) >> clk->enable_shift) &
+ ANADIG_PFD_FRAC_MASK;
+
+ do_div(tmp, frac);
+
+ return tmp;
+}
+
+static int pfd_set_rate(struct clk *clk, unsigned long rate)
+{
+ u32 frac;
+ u64 tmp;
+ tmp = (u64)clk_get_rate(clk->parent) * 18;
+
+ /* Round up the divider so that we don't set a rate
+ * higher than what is requested. */
+ tmp += rate/2;
+ do_div(tmp, rate);
+ frac = tmp;
+ frac = frac < 12 ? 12 : frac;
+ frac = frac > 35 ? 35 : frac;
+ /* clear clk frac bits */
+ __raw_writel(ANADIG_PFD_FRAC_MASK << clk->enable_shift,
+ (int)clk->enable_reg + 8);
+ /* set clk frac bits */
+ __raw_writel(frac << clk->enable_shift,
+ (int)clk->enable_reg + 4);
+
+ return 0;
+}
+
+static int _clk_pfd_enable(struct clk *clk)
+{
+ /* clear clk gate bit */
+ __raw_writel((1 << (clk->enable_shift + 7)),
+ (int)clk->enable_reg + 8);
+
+ return 0;
+}
+
+static void _clk_pfd_disable(struct clk *clk)
+{
+ /* set clk gate bit */
+ __raw_writel((1 << (clk->enable_shift + 7)),
+ (int)clk->enable_reg + 4);
+}
+
+static int _clk_pll_enable(struct clk *clk)
+{
+ unsigned int reg;
+ void __iomem *pllbase;
+
+ pllbase = _get_pll_base(clk);
+
+ reg = __raw_readl(pllbase);
+ reg &= ~ANADIG_PLL_BYPASS;
+ reg &= ~ANADIG_PLL_POWER_DOWN;
+
+ /* The 480MHz PLLs have the opposite definition for power bit. */
+ if (clk == &pll3_usb_otg_main_clk || clk == &pll7_usb_host_main_clk)
+ reg |= ANADIG_PLL_POWER_DOWN;
+
+ __raw_writel(reg, pllbase);
+
+ /* It will power on pll3 */
+ if (clk == &pll3_usb_otg_main_clk)
+ __raw_writel(BM_ANADIG_ANA_MISC2_CONTROL0, apll_base + HW_ANADIG_ANA_MISC2_CLR);
+
+ /* Wait for PLL to lock */
+ if (!WAIT(__raw_readl(pllbase) & ANADIG_PLL_LOCK,
+ SPIN_DELAY))
+ panic("pll enable failed\n");
+
+ /* Enable the PLL output now*/
+ reg = __raw_readl(pllbase);
+ reg |= ANADIG_PLL_ENABLE;
+ __raw_writel(reg, pllbase);
+
+ return 0;
+}
+
+static void _clk_pll_disable(struct clk *clk)
+{
+ unsigned int reg;
+ void __iomem *pllbase;
+
+ pllbase = _get_pll_base(clk);
+
+ reg = __raw_readl(pllbase);
+ reg |= ANADIG_PLL_BYPASS;
+ reg &= ~ANADIG_PLL_ENABLE;
+
+ __raw_writel(reg, pllbase);
+
+ /*
+ * It will power off PLL3's power, it is the TO1.1 fix
+ * Please see TKT064178 for detail.
+ */
+ if (clk == &pll3_usb_otg_main_clk)
+ __raw_writel(BM_ANADIG_ANA_MISC2_CONTROL0, apll_base + HW_ANADIG_ANA_MISC2_SET);
+}
+
+static unsigned long _clk_pll1_main_get_rate(struct clk *clk)
+{
+ unsigned int div;
+ unsigned long val;
+
+ div = __raw_readl(PLL1_SYS_BASE_ADDR) & ANADIG_PLL_SYS_DIV_SELECT_MASK;
+ val = (clk_get_rate(clk->parent) * div) / 2;
+ return val;
+}
+
+static int _clk_pll1_main_set_rate(struct clk *clk, unsigned long rate)
+{
+ unsigned int reg, div;
+
+ if (rate < AUDIO_VIDEO_MIN_CLK_FREQ || rate > AUDIO_VIDEO_MAX_CLK_FREQ)
+ return -EINVAL;
+
+ div = (rate * 2) / clk_get_rate(clk->parent);
+
+ /* Update div */
+ reg = __raw_readl(PLL1_SYS_BASE_ADDR) & ~ANADIG_PLL_SYS_DIV_SELECT_MASK;
+ reg |= div;
+ __raw_writel(reg, PLL1_SYS_BASE_ADDR);
+
+ /* Wait for PLL1 to lock */
+ if (!WAIT(__raw_readl(PLL1_SYS_BASE_ADDR) & ANADIG_PLL_LOCK,
+ SPIN_DELAY))
+ panic("pll1 enable failed\n");
+
+ return 0;
+}
+
+static int _clk_pll1_main_enable(struct clk *clk)
+{
+ pll1_enabled = true;
+ _clk_pll_enable(clk);
+ return 0;
+}
+
+static void _clk_pll1_main_disable(struct clk *clk)
+{
+ unsigned int reg;
+ void __iomem *pllbase;
+
+ pll1_enabled = false;
+ pllbase = _get_pll_base(clk);
+
+ /* Set the PLL is bypass mode only.
+ * We need to be able to set the ARM_PODF bit
+ * in WAIT mode. Setting the ARM_PODF bit
+ * requires PLL1 to be enabled.
+ */
+ reg = __raw_readl(pllbase);
+ reg |= ANADIG_PLL_BYPASS;
+
+ __raw_writel(reg, pllbase);
+}
+
+static struct clk pll1_sys_main_clk = {
+ __INIT_CLK_DEBUG(pll1_sys_main_clk)
+ .parent = &osc_clk,
+ .get_rate = _clk_pll1_main_get_rate,
+ .set_rate = _clk_pll1_main_set_rate,
+ .enable = _clk_pll1_main_enable,
+ .disable = _clk_pll1_main_disable,
+};
+
+static int _clk_pll1_sw_set_parent(struct clk *clk, struct clk *parent)
+{
+ u32 reg;
+
+ reg = __raw_readl(MXC_CCM_CCSR);
+
+ if (parent == &pll1_sys_main_clk) {
+ reg &= ~MXC_CCM_CCSR_PLL1_SW_CLK_SEL;
+ __raw_writel(reg, MXC_CCM_CCSR);
+ /* Set the step_clk parent to be lp_apm, to save power. */
+ reg = __raw_readl(MXC_CCM_CCSR);
+ reg = (reg & ~MXC_CCM_CCSR_STEP_SEL);
+ } else {
+ /* Set STEP_CLK to be the parent*/
+ if (parent == &osc_clk) {
+ /* Set STEP_CLK to be sourced from LPAPM. */
+ reg = __raw_readl(MXC_CCM_CCSR);
+ reg = (reg & ~MXC_CCM_CCSR_STEP_SEL);
+ __raw_writel(reg, MXC_CCM_CCSR);
+ } else {
+ /* Set STEP_CLK to be sourced from PLL2-PDF (400MHz). */
+ reg = __raw_readl(MXC_CCM_CCSR);
+ reg |= MXC_CCM_CCSR_STEP_SEL;
+ __raw_writel(reg, MXC_CCM_CCSR);
+
+ }
+ reg = __raw_readl(MXC_CCM_CCSR);
+ reg |= MXC_CCM_CCSR_PLL1_SW_CLK_SEL;
+ }
+ __raw_writel(reg, MXC_CCM_CCSR);
+
+ return 0;
+}
+
+static unsigned long _clk_pll1_sw_get_rate(struct clk *clk)
+{
+ return clk_get_rate(clk->parent);
+}
+
+static struct clk pll1_sw_clk = {
+ __INIT_CLK_DEBUG(pll1_sw_clk)
+ .parent = &pll1_sys_main_clk,
+ .set_parent = _clk_pll1_sw_set_parent,
+ .get_rate = _clk_pll1_sw_get_rate,
+};
+
+static unsigned long _clk_pll2_main_get_rate(struct clk *clk)
+{
+ unsigned int div;
+ unsigned long val;
+
+ div = __raw_readl(PLL2_528_BASE_ADDR) & ANADIG_PLL_528_DIV_SELECT;
+
+ if (div == 1)
+ val = clk_get_rate(clk->parent) * 22;
+
+ else
+ val = clk_get_rate(clk->parent) * 20;
+
+ return val;
+}
+
+static int _clk_pll2_main_set_rate(struct clk *clk, unsigned long rate)
+{
+ unsigned int reg, div;
+
+ if (rate == 528000000)
+ div = 1;
+ else if (rate == 480000000)
+ div = 0;
+ else
+ return -EINVAL;
+
+ reg = __raw_readl(PLL2_528_BASE_ADDR);
+ reg &= ~ANADIG_PLL_528_DIV_SELECT;
+ reg |= div;
+ __raw_writel(reg, PLL2_528_BASE_ADDR);
+
+ return 0;
+}
+
+static struct clk pll2_528_bus_main_clk = {
+ __INIT_CLK_DEBUG(pll2_528_bus_main_clk)
+ .parent = &osc_clk,
+ .get_rate = _clk_pll2_main_get_rate,
+ .set_rate = _clk_pll2_main_set_rate,
+ .enable = _clk_pll_enable,
+ .disable = _clk_pll_disable,
+};
+
+static void _clk_pll2_pfd2_400M_disable(struct clk *clk)
+{
+ if (!arm_needs_pll2_400)
+ _clk_pfd_disable(clk);
+}
+
+static struct clk pll2_pfd2_400M = {
+ __INIT_CLK_DEBUG(pll2_pfd2_400M)
+ .parent = &pll2_528_bus_main_clk,
+ .enable_reg = (void *)PFD_528_BASE_ADDR,
+ .enable_shift = ANADIG_PFD2_FRAC_OFFSET,
+ .enable = _clk_pfd_enable,
+ .disable = _clk_pll2_pfd2_400M_disable,
+ .get_rate = pfd_get_rate,
+ .set_rate = pfd_set_rate,
+ .get_rate = pfd_get_rate,
+ .round_rate = pfd_round_rate,
+};
+
+static struct clk pll2_pfd0_352M = {
+ __INIT_CLK_DEBUG(pll2_pfd0_352M)
+ .parent = &pll2_528_bus_main_clk,
+ .enable_reg = (void *)PFD_528_BASE_ADDR,
+ .enable_shift = ANADIG_PFD0_FRAC_OFFSET,
+ .enable = _clk_pfd_enable,
+ .disable = _clk_pfd_disable,
+ .set_rate = pfd_set_rate,
+ .get_rate = pfd_get_rate,
+ .round_rate = pfd_round_rate,
+};
+
+static struct clk pll2_pfd1_594M = {
+ __INIT_CLK_DEBUG(pll2_pfd1_594M)
+ .parent = &pll2_528_bus_main_clk,
+ .enable_reg = (void *)PFD_528_BASE_ADDR,
+ .enable_shift = ANADIG_PFD1_FRAC_OFFSET,
+ .enable = _clk_pfd_enable,
+ .disable = _clk_pfd_disable,
+ .set_rate = pfd_set_rate,
+ .get_rate = pfd_get_rate,
+ .round_rate = pfd_round_rate,
+};
+
+static unsigned long _clk_pll2_200M_get_rate(struct clk *clk)
+{
+ return clk_get_rate(clk->parent) / 2;
+}
+
+static struct clk pll2_200M = {
+ __INIT_CLK_DEBUG(pll2_200M)
+ .parent = &pll2_pfd2_400M,
+ .get_rate = _clk_pll2_200M_get_rate,
+};
+
+static unsigned long _clk_pll3_usb_otg_get_rate(struct clk *clk)
+{
+ unsigned int div;
+ unsigned long val;
+
+ div = __raw_readl(PLL3_480_USB1_BASE_ADDR)
+ & ANADIG_PLL_480_DIV_SELECT_MASK;
+
+ if (div == 1)
+ val = clk_get_rate(clk->parent) * 22;
+ else
+ val = clk_get_rate(clk->parent) * 20;
+ return val;
+}
+
+static int _clk_pll3_usb_otg_set_rate(struct clk *clk, unsigned long rate)
+{
+ unsigned int reg, div;
+
+ if (rate == 528000000)
+ div = 1;
+ else if (rate == 480000000)
+ div = 0;
+ else
+ return -EINVAL;
+
+ reg = __raw_readl(PLL3_480_USB1_BASE_ADDR);
+ reg &= ~ANADIG_PLL_480_DIV_SELECT_MASK;
+ reg |= div;
+ __raw_writel(reg, PLL3_480_USB1_BASE_ADDR);
+
+ return 0;
+}
+
+
+/* same as pll3_main_clk. These two clocks should always be the same */
+static struct clk pll3_usb_otg_main_clk = {
+ __INIT_CLK_DEBUG(pll3_usb_otg_main_clk)
+ .parent = &osc_clk,
+ .enable = _clk_pll_enable,
+ .disable = _clk_pll_disable,
+ .set_rate = _clk_pll3_usb_otg_set_rate,
+ .get_rate = _clk_pll3_usb_otg_get_rate,
+};
+
+/* for USB OTG */
+static struct clk usb_phy1_clk = {
+ __INIT_CLK_DEBUG(usb_phy1_clk)
+ .parent = &pll3_usb_otg_main_clk,
+ .set_rate = _clk_pll3_usb_otg_set_rate,
+ .get_rate = _clk_pll3_usb_otg_get_rate,
+};
+
+/* For HSIC port 1 */
+static struct clk usb_phy3_clk = {
+ __INIT_CLK_DEBUG(usb_phy3_clk)
+ .parent = &pll3_usb_otg_main_clk,
+ .set_rate = _clk_pll3_usb_otg_set_rate,
+ .get_rate = _clk_pll3_usb_otg_get_rate,
+};
+
+/* For HSIC port 2 */
+static struct clk usb_phy4_clk = {
+ __INIT_CLK_DEBUG(usb_phy4_clk)
+ .parent = &pll3_usb_otg_main_clk,
+ .set_rate = _clk_pll3_usb_otg_set_rate,
+ .get_rate = _clk_pll3_usb_otg_get_rate,
+};
+
+static struct clk pll3_pfd2_508M = {
+ __INIT_CLK_DEBUG(pll3_pfd2_508M)
+ .parent = &pll3_usb_otg_main_clk,
+ .enable_reg = (void *)PFD_480_BASE_ADDR,
+ .enable_shift = ANADIG_PFD2_FRAC_OFFSET,
+ .enable = _clk_pfd_enable,
+ .disable = _clk_pfd_disable,
+ .set_rate = pfd_set_rate,
+ .get_rate = pfd_get_rate,
+ .round_rate = pfd_round_rate,
+};
+
+static struct clk pll3_pfd3_454M = {
+ __INIT_CLK_DEBUG(pll3_pfd3_454M)
+ .parent = &pll3_usb_otg_main_clk,
+ .enable_reg = (void *)PFD_480_BASE_ADDR,
+ .enable_shift = ANADIG_PFD3_FRAC_OFFSET,
+ .enable = _clk_pfd_enable,
+ .disable = _clk_pfd_disable,
+ .set_rate = pfd_set_rate,
+ .get_rate = pfd_get_rate,
+ .round_rate = pfd_round_rate,
+};
+
+static struct clk pll3_pfd0_720M = {
+ __INIT_CLK_DEBUG(pll3_pfd0_720M)
+ .parent = &pll3_usb_otg_main_clk,
+ .enable_reg = (void *)PFD_480_BASE_ADDR,
+ .enable_shift = ANADIG_PFD0_FRAC_OFFSET,
+ .enable = _clk_pfd_enable,
+ .disable = _clk_pfd_disable,
+ .set_rate = pfd_set_rate,
+ .get_rate = pfd_get_rate,
+ .round_rate = pfd_round_rate,
+};
+
+static struct clk pll3_pfd1_540M = {
+ __INIT_CLK_DEBUG(pll3_pfd1_540M)
+ .parent = &pll3_usb_otg_main_clk,
+ .enable_reg = (void *)PFD_480_BASE_ADDR,
+ .enable_shift = ANADIG_PFD1_FRAC_OFFSET,
+ .enable = _clk_pfd_enable,
+ .disable = _clk_pfd_disable,
+ .set_rate = pfd_set_rate,
+ .get_rate = pfd_get_rate,
+ .round_rate = pfd_round_rate,
+ .get_rate = pfd_get_rate,
+};
+
+static unsigned long _clk_pll3_sw_get_rate(struct clk *clk)
+{
+ return clk_get_rate(clk->parent);
+}
+
+/* same as pll3_main_clk. These two clocks should always be the same */
+static struct clk pll3_sw_clk = {
+ __INIT_CLK_DEBUG(pll3_sw_clk)
+ .parent = &pll3_usb_otg_main_clk,
+ .get_rate = _clk_pll3_sw_get_rate,
+};
+
+static unsigned long _clk_pll3_120M_get_rate(struct clk *clk)
+{
+ return clk_get_rate(clk->parent) / 4;
+}
+
+static struct clk pll3_120M = {
+ __INIT_CLK_DEBUG(pll3_120M)
+ .parent = &pll3_sw_clk,
+ .get_rate = _clk_pll3_120M_get_rate,
+};
+
+static unsigned long _clk_pll3_80M_get_rate(struct clk *clk)
+{
+ return clk_get_rate(clk->parent) / 6;
+}
+
+static struct clk pll3_80M = {
+ __INIT_CLK_DEBUG(pll3_80M)
+ .parent = &pll3_sw_clk,
+ .get_rate = _clk_pll3_80M_get_rate,
+};
+
+static unsigned long _clk_pll3_60M_get_rate(struct clk *clk)
+{
+ return clk_get_rate(clk->parent) / 8;
+}
+
+static struct clk pll3_60M = {
+ __INIT_CLK_DEBUG(pll3_60M)
+ .parent = &pll3_sw_clk,
+ .get_rate = _clk_pll3_60M_get_rate,
+};
+
+static unsigned long _clk_audio_video_get_rate(struct clk *clk)
+{
+ unsigned int div, mfn, mfd;
+ unsigned long rate;
+ unsigned int parent_rate = clk_get_rate(clk->parent);
+ void __iomem *pllbase;
+ unsigned int test_div_sel, control3, post_div;
+
+ pllbase = _get_pll_base(clk);
+
+ test_div_sel = (__raw_readl(pllbase)
+ & ANADIG_PLL_AV_TEST_DIV_SEL_MASK)
+ >> ANADIG_PLL_AV_TEST_DIV_SEL_OFFSET;
+ /* post_div = 4 - test_div_sel; */
+ if (test_div_sel == 0)
+ post_div = 4;
+ else if (test_div_sel == 1)
+ post_div = 2;
+ else
+ post_div = 1;
+
+ /* PMU_REG_MISC2 in RM */
+ if (clk == &pll5_video_main_clk) {
+ control3 = (__raw_readl(ANA_MISC2_BASE_ADDR)
+ & ANADIG_ANA_MISC2_CONTROL3_MASK)
+ >> ANADIG_ANA_MISC2_CONTROL3_OFFSET;
+ if (control3 == 1)
+ post_div *= 2;
+ else if (control3 == 3)
+ post_div *= 4;
+ }
+
+ div = __raw_readl(pllbase) & ANADIG_PLL_SYS_DIV_SELECT_MASK;
+ mfn = __raw_readl(pllbase + PLL_NUM_DIV_OFFSET);
+ mfd = __raw_readl(pllbase + PLL_DENOM_DIV_OFFSET);
+
+ rate = (parent_rate * div) + ((parent_rate / mfd) * mfn);
+ rate = rate / post_div;
+
+ return rate;
+}
+
+static int _clk_audio_video_set_rate(struct clk *clk, unsigned long rate)
+{
+ unsigned int reg, div;
+ unsigned int mfn, mfd = 1000000;
+ s64 temp64;
+ unsigned int parent_rate = clk_get_rate(clk->parent);
+ void __iomem *pllbase;
+ unsigned long min_clk_rate, pre_div_rate;
+ u32 test_div_sel = 2;
+ u32 control3 = 0;
+
+ if (clk == &pll4_audio_main_clk)
+ min_clk_rate = AUDIO_VIDEO_MIN_CLK_FREQ / 4;
+ else
+ min_clk_rate = AUDIO_VIDEO_MIN_CLK_FREQ / 16;
+
+ if ((rate < min_clk_rate) || (rate > AUDIO_VIDEO_MAX_CLK_FREQ))
+ return -EINVAL;
+
+ pllbase = _get_pll_base(clk);
+
+ pre_div_rate = rate;
+ while (pre_div_rate < AUDIO_VIDEO_MIN_CLK_FREQ) {
+ pre_div_rate *= 2;
+ /*
+ * test_div_sel field values:
+ * 2 -> Divide by 1
+ * 1 -> Divide by 2
+ * 0 -> Divide by 4
+ *
+ * control3 field values:
+ * 0 -> Divide by 1
+ * 1 -> Divide by 2
+ * 3 -> Divide by 4
+ */
+ if (test_div_sel != 0)
+ test_div_sel--;
+ else {
+ control3++;
+ if (control3 == 2)
+ control3++;
+ }
+ }
+
+ div = pre_div_rate / parent_rate;
+ temp64 = (u64) (pre_div_rate - (div * parent_rate));
+ temp64 *= mfd;
+ do_div(temp64, parent_rate);
+ mfn = temp64;
+
+ reg = __raw_readl(pllbase)
+ & ~ANADIG_PLL_SYS_DIV_SELECT_MASK
+ & ~ANADIG_PLL_AV_TEST_DIV_SEL_MASK;
+ reg |= div |
+ (test_div_sel << ANADIG_PLL_AV_TEST_DIV_SEL_OFFSET);
+ __raw_writel(reg, pllbase);
+ __raw_writel(mfn, pllbase + PLL_NUM_DIV_OFFSET);
+ __raw_writel(mfd, pllbase + PLL_DENOM_DIV_OFFSET);
+
+ reg = __raw_readl(ANA_MISC2_BASE_ADDR)
+ & ~ANADIG_ANA_MISC2_CONTROL3_MASK;
+ reg |= control3 << ANADIG_ANA_MISC2_CONTROL3_OFFSET;
+ __raw_writel(reg, ANA_MISC2_BASE_ADDR);
+
+ return 0;
+}
+
+static unsigned long _clk_audio_video_round_rate(struct clk *clk,
+ unsigned long rate)
+{
+ unsigned long min_clk_rate;
+ unsigned int div, post_div = 1;
+ unsigned int mfn, mfd = 1000000;
+ s64 temp64;
+ unsigned int parent_rate = clk_get_rate(clk->parent);
+ unsigned long pre_div_rate;
+ u32 test_div_sel = 2;
+ u32 control3 = 0;
+ unsigned long final_rate;
+
+ if (clk == &pll4_audio_main_clk)
+ min_clk_rate = AUDIO_VIDEO_MIN_CLK_FREQ / 4;
+ else
+ min_clk_rate = AUDIO_VIDEO_MIN_CLK_FREQ / 16;
+
+ if (rate < min_clk_rate)
+ return min_clk_rate;
+
+ if (rate > AUDIO_VIDEO_MAX_CLK_FREQ)
+ return AUDIO_VIDEO_MAX_CLK_FREQ;
+
+ pre_div_rate = rate;
+ while (pre_div_rate < AUDIO_VIDEO_MIN_CLK_FREQ) {
+ pre_div_rate *= 2;
+ post_div *= 2;
+ if (test_div_sel != 0)
+ test_div_sel--;
+ else {
+ control3++;
+ if (control3 == 2)
+ control3++;
+ }
+ }
+
+ div = pre_div_rate / parent_rate;
+ temp64 = (u64) (pre_div_rate - (div * parent_rate));
+ temp64 *= mfd;
+ do_div(temp64, parent_rate);
+ mfn = temp64;
+
+ final_rate = (parent_rate * div) + ((parent_rate / mfd) * mfn);
+ final_rate = final_rate / post_div;
+
+ return final_rate;
+}
+
+static int _clk_audio_video_set_parent(struct clk *clk, struct clk *parent)
+{
+ u32 reg;
+ int mux;
+ void __iomem *pllbase;
+
+ if (clk == &pll4_audio_main_clk)
+ pllbase = PLL4_AUDIO_BASE_ADDR;
+ else
+ pllbase = PLL5_VIDEO_BASE_ADDR;
+
+ reg = __raw_readl(pllbase) & ~ANADIG_PLL_BYPASS_CLK_SRC_MASK;
+ mux = _get_mux6(parent, &osc_clk, &anaclk_1, &anaclk_2,
+ NULL, NULL, NULL);
+ reg |= mux << ANADIG_PLL_BYPASS_CLK_SRC_OFFSET;
+ __raw_writel(reg, pllbase);
+
+ /* Set anaclk_x as input */
+ if (parent == &anaclk_1) {
+ reg = __raw_readl(ANADIG_MISC1_REG);
+ reg |= (ANATOP_LVDS_CLK1_IBEN_MASK &
+ ~ANATOP_LVDS_CLK1_OBEN_MASK);
+ __raw_writel(reg, ANADIG_MISC1_REG);
+ } else if (parent == &anaclk_2) {
+ reg = __raw_readl(ANADIG_MISC1_REG);
+ reg |= (ANATOP_LVDS_CLK2_IBEN_MASK &
+ ~ANATOP_LVDS_CLK2_OBEN_MASK);
+ __raw_writel(reg, ANADIG_MISC1_REG);
+ }
+
+ return 0;
+}
+
+static struct clk pll4_audio_main_clk = {
+ __INIT_CLK_DEBUG(pll4_audio_main_clk)
+ .parent = &osc_clk,
+ .enable = _clk_pll_enable,
+ .disable = _clk_pll_disable,
+ .set_rate = _clk_audio_video_set_rate,
+ .get_rate = _clk_audio_video_get_rate,
+ .round_rate = _clk_audio_video_round_rate,
+ .set_parent = _clk_audio_video_set_parent,
+};
+
+static struct clk pll5_video_main_clk = {
+ __INIT_CLK_DEBUG(pll5_video_main_clk)
+ .parent = &osc_clk,
+ .enable = _clk_pll_enable,
+ .disable = _clk_pll_disable,
+ .set_rate = _clk_audio_video_set_rate,
+ .get_rate = _clk_audio_video_get_rate,
+ .round_rate = _clk_audio_video_round_rate,
+ .set_parent = _clk_audio_video_set_parent,
+};
+
+static struct clk pll6_enet_main_clk = {
+ __INIT_CLK_DEBUG(pll6_enet_main_clk)
+ .parent = &osc_clk,
+ .enable = _clk_pll_enable,
+ .disable = _clk_pll_disable,
+};
+
+static unsigned long _clk_pll7_usb_otg_get_rate(struct clk *clk)
+{
+ unsigned int div;
+ unsigned long val;
+
+ div = __raw_readl(PLL7_480_USB2_BASE_ADDR)
+ & ANADIG_PLL_480_DIV_SELECT_MASK;
+
+ if (div == 1)
+ val = clk_get_rate(clk->parent) * 22;
+ else
+ val = clk_get_rate(clk->parent) * 20;
+ return val;
+}
+
+static int _clk_pll7_usb_otg_set_rate(struct clk *clk, unsigned long rate)
+{
+ unsigned int reg, div;
+
+ if (rate == 528000000)
+ div = 1;
+ else if (rate == 480000000)
+ div = 0;
+ else
+ return -EINVAL;
+
+ reg = __raw_readl(PLL7_480_USB2_BASE_ADDR);
+ reg &= ~ANADIG_PLL_480_DIV_SELECT_MASK;
+ reg |= div;
+ __raw_writel(reg, PLL7_480_USB2_BASE_ADDR);
+
+ return 0;
+}
+
+static struct clk pll7_usb_host_main_clk = {
+ __INIT_CLK_DEBUG(pll7_usb_host_main_clk)
+ .parent = &osc_clk,
+ .enable = _clk_pll_enable,
+ .disable = _clk_pll_disable,
+ .set_rate = _clk_pll7_usb_otg_set_rate,
+ .get_rate = _clk_pll7_usb_otg_get_rate,
+
+};
+
+static unsigned long _clk_arm_get_rate(struct clk *clk)
+{
+ u32 cacrr, div;
+
+ cacrr = __raw_readl(MXC_CCM_CACRR);
+ div = (cacrr & MXC_CCM_CACRR_ARM_PODF_MASK) + 1;
+ return clk_get_rate(clk->parent) / div;
+}
+
+static int _clk_arm_set_rate(struct clk *clk, unsigned long rate)
+{
+ int i;
+ u32 div;
+ u32 parent_rate;
+ unsigned long ipg_clk_rate, max_arm_wait_clk;
+ unsigned long flags;
+
+ for (i = 0; i < cpu_op_nr; i++) {
+ if (rate == cpu_op_tbl[i].cpu_rate)
+ break;
+ }
+ if (i >= cpu_op_nr)
+ return -EINVAL;
+
+ spin_lock_irqsave(&mx6sl_clk_lock, flags);
+
+ if (rate <= clk_get_rate(&pll2_pfd2_400M)) {
+ /* Source pll1_sw_clk from step_clk which is sourced from
+ * PLL2_PFD2_400M.
+ */
+ if (pll1_sw_clk.parent != &pll2_pfd2_400M) {
+ pll2_pfd2_400M.enable(&pll2_pfd2_400M);
+ arm_needs_pll2_400 = true;
+ pll1_sw_clk.set_parent(&pll1_sw_clk, &pll2_pfd2_400M);
+ pll1_sw_clk.parent = &pll2_pfd2_400M;
+ }
+ } else {
+ if (pll1_sw_clk.parent != &pll1_sys_main_clk) {
+ /* pll1_sw_clk was being sourced from pll2_400M. */
+ /* Enable PLL1 and set pll1_sw_clk parent as PLL1 */
+ if (!pll1_enabled)
+ pll1_sys_main_clk.enable(&pll1_sys_main_clk);
+ pll1_sw_clk.set_parent(&pll1_sw_clk, &pll1_sys_main_clk);
+ pll1_sw_clk.parent = &pll1_sys_main_clk;
+ arm_needs_pll2_400 = false;
+ if (pll2_pfd2_400M.usecount == 0)
+ pll2_pfd2_400M.disable(&pll2_pfd2_400M);
+ }
+ if (cpu_op_tbl[i].pll_rate != clk_get_rate(&pll1_sys_main_clk)) {
+ /* Change the PLL1 rate. */
+ if (pll2_pfd2_400M.usecount != 0)
+ pll1_sw_clk.set_parent(&pll1_sw_clk, &pll2_pfd2_400M);
+ else
+ pll1_sw_clk.set_parent(&pll1_sw_clk, &osc_clk);
+ pll1_sys_main_clk.set_rate(&pll1_sys_main_clk, cpu_op_tbl[i].pll_rate);
+ pll1_sw_clk.set_parent(&pll1_sw_clk, &pll1_sys_main_clk);
+ }
+ }
+ parent_rate = clk_get_rate(clk->parent);
+ div = parent_rate / rate;
+ /* Calculate the ARM_PODF to be applied when the system
+ * enters WAIT state.
+ * The max ARM clk is decided by the ipg_clk and has to
+ * follow the ratio of ARM_CLK:IPG_CLK of 12:5.
+ * For ex, when IPG is at 66MHz, ARM_CLK cannot be greater
+ * than 158MHz. Pre-calculate the optimal divider now.
+ */
+ ipg_clk_rate = clk_get_rate(&ipg_clk);
+ max_arm_wait_clk = (12 * ipg_clk_rate) / 5;
+ wait_mode_arm_podf = parent_rate / max_arm_wait_clk;
+ if (wait_mode_arm_podf > 7)
+ /* IPG_CLK is too low and we cannot get a ARM_CLK
+ * that will satisfy the 12:5 ratio.
+ * Use the mem_ipg_stop_mask bit to ensure clocks
+ * to ARM memories are not gated during WAIT mode.
+ * Else disable entry to WAIT mode.
+ */
+ arm_mem_clked_in_wait = true;
+ else
+ arm_mem_clked_in_wait = false;
+
+ if (div == 0)
+ div = 1;
+
+ if ((parent_rate / div) > rate)
+ div++;
+
+ if (div > 8) {
+ spin_unlock_irqrestore(&mx6sl_clk_lock, flags);
+ return -1;
+ }
+
+ if (!pll1_enabled)
+ pll1_sys_main_clk.enable(&pll1_sys_main_clk);
+
+ cur_arm_podf = div;
+
+ __raw_writel(div - 1, MXC_CCM_CACRR);
+
+ while (__raw_readl(MXC_CCM_CDHIPR))
+ ;
+
+ if (pll1_sys_main_clk.usecount == 1 && arm_needs_pll2_400)
+ pll1_sys_main_clk.disable(&pll1_sys_main_clk);
+
+ spin_unlock_irqrestore(&mx6sl_clk_lock, flags);
+
+ return 0;
+}
+
+static struct clk cpu_clk = {
+ __INIT_CLK_DEBUG(cpu_clk)
+ .parent = &pll1_sw_clk,
+ .set_rate = _clk_arm_set_rate,
+ .get_rate = _clk_arm_get_rate,
+};
+
+static unsigned long _clk_twd_get_rate(struct clk *clk)
+{
+ return clk_get_rate(clk->parent) / 2;
+}
+
+static int _clk_ipg_perclk_set_parent(struct clk *clk, struct clk *parent)
+{
+ u32 reg;
+
+ reg = __raw_readl(MXC_CCM_CSCMR1);
+
+ if (parent == &osc_clk)
+ reg |= 0x1 << MXC_CCM_CSCMR1_PERCLK_CLK_SEL_OFFSET;
+ else
+ reg &= ~(0x1 << MXC_CCM_CSCMR1_PERCLK_CLK_SEL_OFFSET);
+
+ __raw_writel(reg, MXC_CCM_CSCMR1);
+
+ return 0;
+}
+static struct clk twd_clk = {
+ __INIT_CLK_DEBUG(twd_clk)
+ .parent = &cpu_clk,
+ .get_rate = _clk_twd_get_rate,
+};
+
+static int _clk_periph_set_parent(struct clk *clk, struct clk *parent)
+{
+ u32 reg;
+ int mux;
+
+ mux = _get_mux6(parent, &pll2_528_bus_main_clk, &pll2_pfd2_400M,
+ &pll2_pfd0_352M, &pll2_200M, &pll3_sw_clk, &osc_clk);
+
+ if (mux <= 3) {
+ /* Set the pre_periph_clk multiplexer */
+ reg = __raw_readl(MXC_CCM_CBCMR);
+ reg &= ~MXC_CCM_CBCMR_PRE_PERIPH_CLK_SEL_MASK;
+ reg |= mux << MXC_CCM_CBCMR_PRE_PERIPH_CLK_SEL_OFFSET;
+ __raw_writel(reg, MXC_CCM_CBCMR);
+
+ /* Set the periph_clk_sel multiplexer. */
+ reg = __raw_readl(MXC_CCM_CBCDR);
+ reg &= ~MXC_CCM_CBCDR_PERIPH_CLK_SEL;
+ __raw_writel(reg, MXC_CCM_CBCDR);
+ } else {
+ reg = __raw_readl(MXC_CCM_CBCDR);
+ /* Set the periph_clk2_podf divider to divide by 1. */
+ reg &= ~MXC_CCM_CBCDR_PERIPH_CLK2_PODF_MASK;
+ __raw_writel(reg, MXC_CCM_CBCDR);
+
+ /* Set the periph_clk2_sel mux. */
+ reg = __raw_readl(MXC_CCM_CBCMR);
+ reg &= ~MXC_CCM_CBCMR_PERIPH_CLK2_SEL_MASK;
+ reg |= ((mux - 4) << MXC_CCM_CBCMR_PERIPH_CLK2_SEL_OFFSET);
+ __raw_writel(reg, MXC_CCM_CBCMR);
+
+ while (__raw_readl(MXC_CCM_CDHIPR))
+ ;
+
+ reg = __raw_readl(MXC_CCM_CBCDR);
+ /* Set periph_clk_sel to select periph_clk2. */
+ reg |= MXC_CCM_CBCDR_PERIPH_CLK_SEL;
+ __raw_writel(reg, MXC_CCM_CBCDR);
+ }
+
+ if (!WAIT(!(__raw_readl(MXC_CCM_CDHIPR)
+ & MXC_CCM_CDHIPR_PERIPH_CLK_SEL_BUSY), SPIN_DELAY))
+ panic("_clk_periph_set_parent failed\n");
+
+ return 0;
+}
+
+static unsigned long _clk_periph_get_rate(struct clk *clk)
+{
+ u32 div = 1;
+ u32 reg;
+ unsigned long val;
+
+ if ((clk->parent == &pll3_sw_clk) || (clk->parent == &osc_clk)) {
+ reg = __raw_readl(MXC_CCM_CBCDR)
+ & MXC_CCM_CBCDR_PERIPH_CLK2_PODF_MASK;
+ div = (reg >> MXC_CCM_CBCDR_PERIPH_CLK2_PODF_OFFSET) + 1;
+ }
+ val = clk_get_rate(clk->parent) / div;
+ return val;
+}
+
+static struct clk periph_clk = {
+ __INIT_CLK_DEBUG(periph_clk)
+ .parent = &pll2_528_bus_main_clk,
+ .set_parent = _clk_periph_set_parent,
+ .get_rate = _clk_periph_get_rate,
+};
+
+static unsigned long _clk_axi_get_rate(struct clk *clk)
+{
+ u32 div, reg;
+ unsigned long val;
+
+ reg = __raw_readl(MXC_CCM_CBCDR) & MXC_CCM_CBCDR_AXI_PODF_MASK;
+ div = (reg >> MXC_CCM_CBCDR_AXI_PODF_OFFSET);
+
+ val = clk_get_rate(clk->parent) / (div + 1);
+ return val;
+}
+
+static int _clk_axi_set_rate(struct clk *clk, unsigned long rate)
+{
+ u32 reg, div;
+ u32 parent_rate = clk_get_rate(clk->parent);
+
+ div = parent_rate / rate;
+
+ if (div == 0)
+ div++;
+ if (((parent_rate / div) != rate) || (div > 8))
+ return -EINVAL;
+
+ reg = __raw_readl(MXC_CCM_CBCDR);
+ reg &= ~MXC_CCM_CBCDR_AXI_PODF_MASK;
+ reg |= (div - 1) << MXC_CCM_CBCDR_AXI_PODF_OFFSET;
+ __raw_writel(reg, MXC_CCM_CBCDR);
+
+ if (!WAIT(!(__raw_readl(MXC_CCM_CDHIPR)
+ & MXC_CCM_CDHIPR_AXI_PODF_BUSY), SPIN_DELAY))
+ panic("pll _clk_axi_a_set_rate failed\n");
+
+ return 0;
+}
+
+static unsigned long _clk_axi_round_rate(struct clk *clk,
+ unsigned long rate)
+{
+ u32 div;
+ u32 parent_rate = clk_get_rate(clk->parent);
+
+ div = parent_rate / rate;
+
+ /* Make sure rate is not greater than the maximum
+ * value for the clock.
+ * Also prevent a div of 0.
+ */
+
+ if (div > 8)
+ div = 8;
+ else if (div == 0)
+ div++;
+
+ return parent_rate / div;
+}
+
+static int _clk_axi_set_parent(struct clk *clk, struct clk *parent)
+{
+ u32 reg;
+ int mux;
+
+ mux = _get_mux6(parent, &periph_clk, &pll2_pfd2_400M,
+ &pll3_pfd1_540M, NULL, NULL, NULL);
+
+ if (mux == 0) {
+ /* Set the AXI_SEL mux */
+ reg = __raw_readl(MXC_CCM_CBCDR) & ~MXC_CCM_CBCDR_AXI_SEL;
+ __raw_writel(reg, MXC_CCM_CBCDR);
+ } else {
+ /* Set the AXI_ALT_SEL mux. */
+ reg = __raw_readl(MXC_CCM_CBCDR)
+ & ~MXC_CCM_CBCDR_AXI_ALT_SEL_MASK;
+ reg |= ((mux - 1) << MXC_CCM_CBCDR_AXI_ALT_SEL_OFFSET);
+ __raw_writel(reg, MXC_CCM_CBCDR);
+
+ /* Set the AXI_SEL mux */
+ reg = __raw_readl(MXC_CCM_CBCDR) & ~MXC_CCM_CBCDR_AXI_SEL;
+ reg |= MXC_CCM_CBCDR_AXI_SEL;
+ __raw_writel(reg, MXC_CCM_CBCDR);
+ }
+ return 0;
+}
+
+static struct clk axi_clk = {
+ __INIT_CLK_DEBUG(axi_clk)
+ .parent = &periph_clk,
+ .set_parent = _clk_axi_set_parent,
+ .set_rate = _clk_axi_set_rate,
+ .get_rate = _clk_axi_get_rate,
+ .round_rate = _clk_axi_round_rate,
+};
+
+static unsigned long _clk_ahb_get_rate(struct clk *clk)
+{
+ u32 reg, div;
+
+ reg = __raw_readl(MXC_CCM_CBCDR);
+ div = ((reg & MXC_CCM_CBCDR_AHB_PODF_MASK) >>
+ MXC_CCM_CBCDR_AHB_PODF_OFFSET) + 1;
+
+ return clk_get_rate(clk->parent) / div;
+}
+
+static int _clk_ahb_set_rate(struct clk *clk, unsigned long rate)
+{
+ u32 reg, div;
+ u32 parent_rate = clk_get_rate(clk->parent);
+
+ div = parent_rate / rate;
+ if (div == 0)
+ div++;
+ if (((parent_rate / div) != rate) || (div > 8))
+ return -EINVAL;
+
+ reg = __raw_readl(MXC_CCM_CBCDR);
+ reg &= ~MXC_CCM_CBCDR_AHB_PODF_MASK;
+ reg |= (div - 1) << MXC_CCM_CBCDR_AHB_PODF_OFFSET;
+ __raw_writel(reg, MXC_CCM_CBCDR);
+
+ if (!WAIT(!(__raw_readl(MXC_CCM_CDHIPR) & MXC_CCM_CDHIPR_AHB_PODF_BUSY),
+ SPIN_DELAY))
+ panic("_clk_ahb_set_rate failed\n");
+
+ return 0;
+}
+
+static unsigned long _clk_ahb_round_rate(struct clk *clk,
+ unsigned long rate)
+{
+ u32 div;
+ u32 parent_rate = clk_get_rate(clk->parent);
+
+ div = parent_rate / rate;
+
+ /* Make sure rate is not greater than the maximum value for the clock.
+ * Also prevent a div of 0.
+ */
+ if (div == 0)
+ div++;
+
+ if (div > 8)
+ div = 8;
+
+ return parent_rate / div;
+}
+
+static struct clk ahb_clk = {
+ __INIT_CLK_DEBUG(ahb_clk)
+ .parent = &periph_clk,
+ .get_rate = _clk_ahb_get_rate,
+ .set_rate = _clk_ahb_set_rate,
+ .round_rate = _clk_ahb_round_rate,
+};
+
+static unsigned long _clk_ipg_get_rate(struct clk *clk)
+{
+ u32 reg, div;
+
+ reg = __raw_readl(MXC_CCM_CBCDR);
+ div = ((reg & MXC_CCM_CBCDR_IPG_PODF_MASK) >>
+ MXC_CCM_CBCDR_IPG_PODF_OFFSET) + 1;
+
+ return clk_get_rate(clk->parent) / div;
+}
+
+
+static struct clk ipg_clk = {
+ __INIT_CLK_DEBUG(ipg_clk)
+ .parent = &ahb_clk,
+ .get_rate = _clk_ipg_get_rate,
+};
+
+static struct clk tzasc1_clk = {
+ __INIT_CLK_DEBUG(tzasc1_clk)
+ .id = 0,
+ .parent = &ipg_clk,
+ .enable_reg = MXC_CCM_CCGR2,
+ .enable_shift = MXC_CCM_CCGRx_CG11_OFFSET,
+ .enable = _clk_enable,
+ .disable = _clk_disable_inwait,
+};
+
+static struct clk tzasc2_clk = {
+ __INIT_CLK_DEBUG(tzasc2_clk)
+ .id = 0,
+ .parent = &ipg_clk,
+ .enable_reg = MXC_CCM_CCGR2,
+ .enable_shift = MXC_CCM_CCGRx_CG12_OFFSET,
+ .enable = _clk_enable,
+ .disable = _clk_disable_inwait,
+};
+
+static struct clk mx6fast1_clk = {
+ __INIT_CLK_DEBUG(mx6fast1_clk)
+ .id = 0,
+ .parent = &ahb_clk,
+ .enable_reg = MXC_CCM_CCGR4,
+ .enable_shift = MXC_CCM_CCGRx_CG4_OFFSET,
+ .enable = _clk_enable,
+ .disable = _clk_disable_inwait,
+};
+
+static struct clk mx6per1_clk = {
+ __INIT_CLK_DEBUG(mx6per1_clk)
+ .id = 0,
+ .parent = &ahb_clk,
+ .secondary = &mx6fast1_clk,
+ .enable_reg = MXC_CCM_CCGR4,
+ .enable_shift = MXC_CCM_CCGRx_CG6_OFFSET,
+ .enable = _clk_enable,
+ .disable = _clk_disable_inwait,
+};
+
+static struct clk mx6per2_clk = {
+ __INIT_CLK_DEBUG(mx6per2_clk)
+ .id = 0,
+ .parent = &ahb_clk,
+ .enable_reg = MXC_CCM_CCGR4,
+ .enable_shift = MXC_CCM_CCGRx_CG7_OFFSET,
+ .enable = _clk_enable,
+ .disable = _clk_disable_inwait,
+};
+
+static unsigned long _clk_mmdc_ch1_axi_get_rate(struct clk *clk)
+{
+ u32 reg, div;
+
+ reg = __raw_readl(MXC_CCM_CBCDR);
+ div = ((reg & MXC_CCM_CBCDR_MMDC_CH1_PODF_MASK) >>
+ MXC_CCM_CBCDR_MMDC_CH1_PODF_OFFSET) + 1;
+
+ return clk_get_rate(clk->parent) / div;
+}
+
+static int _clk_mmdc_ch1_axi_set_rate(struct clk *clk, unsigned long rate)
+{
+ u32 reg, div;
+ u32 parent_rate = clk_get_rate(clk->parent);
+
+ div = parent_rate / rate;
+ if (div == 0)
+ div++;
+ if (((parent_rate / div) != rate) || (div > 8))
+ return -EINVAL;
+
+ reg = __raw_readl(MXC_CCM_CBCDR);
+ reg &= ~MXC_CCM_CBCDR_MMDC_CH1_PODF_MASK;
+ reg |= (div - 1) << MXC_CCM_CBCDR_MMDC_CH1_PODF_OFFSET;
+ __raw_writel(reg, MXC_CCM_CBCDR);
+
+ if (!WAIT(!(__raw_readl(MXC_CCM_CDHIPR)
+ & MXC_CCM_CDHIPR_MMDC_CH1_PODF_BUSY), SPIN_DELAY))
+ panic("_clk_mmdc_ch1_axi_set_rate failed\n");
+
+ return 0;
+}
+
+static unsigned long _clk_mmdc_ch1_axi_round_rate(struct clk *clk,
+ unsigned long rate)
+{
+ u32 div;
+ u32 parent_rate = clk_get_rate(clk->parent);
+
+ div = parent_rate / rate;
+
+ /* Make sure rate is not greater than the maximum value for the clock.
+ * Also prevent a div of 0.
+ */
+ if (div == 0)
+ div++;
+
+ if (div > 8)
+ div = 8;
+
+ return parent_rate / div;
+}
+
+static struct clk mmdc_ch1_axi_clk[] = {
+ {
+ __INIT_CLK_DEBUG(mmdc_ch1_axi_clk)
+ .id = 0,
+ .parent = &pll2_pfd2_400M,
+ .enable = _clk_enable,
+ .disable = _clk_disable,
+ .enable_reg = MXC_CCM_CCGR3,
+ .enable_shift = MXC_CCM_CCGRx_CG11_OFFSET,
+ .secondary = &mmdc_ch1_axi_clk[1],
+ .get_rate = _clk_mmdc_ch1_axi_get_rate,
+ .set_rate = _clk_mmdc_ch1_axi_set_rate,
+ .round_rate = _clk_mmdc_ch1_axi_round_rate,
+ },
+ {
+ .id = 1,
+ __INIT_CLK_DEBUG(mmdc_ch1_ipg_clk)
+ .parent = &ipg_clk,
+ .enable = _clk_enable,
+ .disable = _clk_disable,
+ .enable_reg = MXC_CCM_CCGR3,
+ .enable_shift = MXC_CCM_CCGRx_CG13_OFFSET,
+ .secondary = &tzasc2_clk,
+ },
+};
+
+static struct clk ocram_clk = {
+ __INIT_CLK_DEBUG(ocram_clk)
+ .id = 0,
+ .parent = &axi_clk,
+ .enable_reg = MXC_CCM_CCGR3,
+ .enable_shift = MXC_CCM_CCGRx_CG14_OFFSET,
+ .enable = _clk_enable,
+ .disable = _clk_disable_inwait,
+};
+
+static unsigned long _clk_ipg_perclk_get_rate(struct clk *clk)
+{
+ u32 reg, div;
+
+ reg = __raw_readl(MXC_CCM_CSCMR1);
+ div = ((reg & MXC_CCM_CSCMR1_PERCLK_PODF_MASK) >>
+ MXC_CCM_CSCMR1_PERCLK_PODF_OFFSET) + 1;
+ return clk_get_rate(clk->parent) / div;
+}
+
+static int _clk_ipg_perclk_set_rate(struct clk *clk, unsigned long rate)
+{
+ u32 reg, div;
+ u32 parent_rate = clk_get_rate(clk->parent);
+
+ div = parent_rate / rate;
+ if (div == 0)
+ div++;
+ if (((parent_rate / div) != rate) || (div > 64))
+ return -EINVAL;
+
+ reg = __raw_readl(MXC_CCM_CSCMR1);
+ reg &= ~MXC_CCM_CSCMR1_PERCLK_PODF_MASK;
+ reg |= (div - 1) << MXC_CCM_CSCMR1_PERCLK_PODF_OFFSET;
+ __raw_writel(reg, MXC_CCM_CSCMR1);
+
+ return 0;
+}
+
+
+static unsigned long _clk_ipg_perclk_round_rate(struct clk *clk,
+ unsigned long rate)
+{
+ u32 div;
+ u32 parent_rate = clk_get_rate(clk->parent);
+
+ div = parent_rate / rate;
+
+ /* Make sure rate is not greater than the maximum value for the clock.
+ * Also prevent a div of 0.
+ */
+ if (div == 0)
+ div++;
+
+ if (div > 64)
+ div = 64;
+
+ return parent_rate / div;
+}
+
+static struct clk ipg_perclk = {
+ __INIT_CLK_DEBUG(ipg_perclk)
+ .parent = &osc_clk,
+ .set_parent = _clk_ipg_perclk_set_parent,
+ .get_rate = _clk_ipg_perclk_get_rate,
+ .set_rate = _clk_ipg_perclk_set_rate,
+ .round_rate = _clk_ipg_perclk_round_rate,
+};
+
+static struct clk spba_clk = {
+ __INIT_CLK_DEBUG(spba_clk)
+ .parent = &ipg_clk,
+ .enable_reg = MXC_CCM_CCGR5,
+ .enable_shift = MXC_CCM_CCGRx_CG6_OFFSET,
+ .enable = _clk_enable,
+ .disable = _clk_disable,
+};
+
+static struct clk sdma_clk[] = {
+ {
+ __INIT_CLK_DEBUG(sdma_clk)
+ .parent = &ahb_clk,
+ .enable_reg = MXC_CCM_CCGR5,
+ .enable_shift = MXC_CCM_CCGRx_CG3_OFFSET,
+ .enable = _clk_enable,
+ .disable = _clk_disable,
+ .secondary = &sdma_clk[1],
+ },
+ {
+ .parent = &mx6per1_clk,
+#ifdef CONFIG_SDMA_IRAM
+ .secondary = &ocram_clk,
+#else
+ .secondary = &mmdc_ch1_axi_clk[0],
+#endif
+ },
+};
+
+static unsigned long _clk_gpt_get_rate(struct clk *clk)
+{
+ unsigned long rate;
+
+ if (mx6q_revision() == IMX_CHIP_REVISION_1_0)
+ return clk_get_rate(clk->parent);
+
+ rate = mx6_timer_rate();
+ if (!rate)
+ return clk_get_rate(clk->parent);
+
+ return rate;
+}
+
+static struct clk gpt_clk[] = {
+ {
+ __INIT_CLK_DEBUG(gpt_clk)
+ .parent = &osc_clk,
+ .id = 0,
+ .enable_reg = MXC_CCM_CCGR1,
+ .enable_shift = MXC_CCM_CCGRx_CG10_OFFSET,
+ .enable = _clk_enable,
+ .disable = _clk_disable,
+ .get_rate = _clk_gpt_get_rate,
+ },
+};
+
+static unsigned long _clk_iim_get_rate(struct clk *clk)
+{
+ return clk_get_rate(clk->parent);
+}
+
+static struct clk iim_clk = {
+ __INIT_CLK_DEBUG(iim_clk)
+ .parent = &ipg_clk,
+ .enable = _clk_enable,
+ .enable_reg = MXC_CCM_CCGR2,
+ .enable_shift = MXC_CCM_CCGRx_CG6_OFFSET,
+ .disable = _clk_disable,
+ .get_rate = _clk_iim_get_rate,
+};
+
+static struct clk i2c_clk[] = {
+ {
+ __INIT_CLK_DEBUG(i2c_clk_0)
+ .id = 0,
+ .parent = &ipg_perclk,
+ .enable_reg = MXC_CCM_CCGR2,
+ .enable_shift = MXC_CCM_CCGRx_CG3_OFFSET,
+ .enable = _clk_enable,
+ .disable = _clk_disable,
+ },
+ {
+ __INIT_CLK_DEBUG(i2c_clk_1)
+ .id = 1,
+ .parent = &ipg_perclk,
+ .enable_reg = MXC_CCM_CCGR2,
+ .enable_shift = MXC_CCM_CCGRx_CG4_OFFSET,
+ .enable = _clk_enable,
+ .disable = _clk_disable,
+ },
+ {
+ __INIT_CLK_DEBUG(i2c_clk_2)
+ .id = 2,
+ .parent = &ipg_perclk,
+ .enable_reg = MXC_CCM_CCGR2,
+ .enable_shift = MXC_CCM_CCGRx_CG5_OFFSET,
+ .enable = _clk_enable,
+ .disable = _clk_disable,
+ },
+};
+
+static int _clk_ipu1_set_parent(struct clk *clk, struct clk *parent)
+{
+ int mux;
+ u32 reg = __raw_readl(MXC_CCM_CSCDR3)
+ & ~MXC_CCM_CSCDR3_IPU1_HSP_CLK_SEL_MASK;
+
+ mux = _get_mux6(parent, &osc_clk,
+ &pll2_pfd2_400M, &pll3_120M, &pll3_pfd1_540M, NULL, NULL);
+
+ reg |= (mux << MXC_CCM_CSCDR3_IPU1_HSP_CLK_SEL_OFFSET);
+
+ __raw_writel(reg, MXC_CCM_CSCDR3);
+
+ return 0;
+}
+
+static unsigned long _clk_ipu1_get_rate(struct clk *clk)
+{
+ u32 reg, div;
+
+ reg = __raw_readl(MXC_CCM_CSCDR3);
+ div = ((reg & MXC_CCM_CSCDR3_IPU1_HSP_PODF_MASK) >>
+ MXC_CCM_CSCDR3_IPU1_HSP_PODF_OFFSET) + 1;
+
+ return clk_get_rate(clk->parent) / div;
+}
+
+static int _clk_ipu1_set_rate(struct clk *clk, unsigned long rate)
+{
+ u32 reg, div;
+ u32 parent_rate = clk_get_rate(clk->parent);
+
+ div = parent_rate / rate;
+ if (div == 0)
+ div++;
+ if (((parent_rate / div) != rate) || (div > 8))
+ return -EINVAL;
+
+ reg = __raw_readl(MXC_CCM_CSCDR3);
+ reg &= ~MXC_CCM_CSCDR3_IPU1_HSP_PODF_MASK;
+ reg |= (div - 1) << MXC_CCM_CSCDR3_IPU1_HSP_PODF_OFFSET;
+ __raw_writel(reg, MXC_CCM_CSCDR3);
+
+ return 0;
+}
+
+static unsigned long _clk_ipu_round_rate(struct clk *clk,
+ unsigned long rate)
+{
+ u32 div;
+ u32 parent_rate = clk_get_rate(clk->parent);
+
+ div = parent_rate / rate;
+
+ /* Make sure rate is not greater than the maximum value for the clock.
+ * Also prevent a div of 0.
+ */
+ if (div == 0)
+ div++;
+
+ if (div > 8)
+ div = 8;
+
+ return parent_rate / div;
+}
+
+static struct clk ipu1_clk = {
+ __INIT_CLK_DEBUG(ipu1_clk)
+ .parent = &pll2_pfd2_400M,
+ .enable_reg = MXC_CCM_CCGR3,
+ .enable_shift = MXC_CCM_CCGRx_CG0_OFFSET,
+ .enable = _clk_enable,
+ .disable = _clk_disable,
+ .set_parent = _clk_ipu1_set_parent,
+ .round_rate = _clk_ipu_round_rate,
+ .set_rate = _clk_ipu1_set_rate,
+ .get_rate = _clk_ipu1_get_rate,
+ .flags = AHB_HIGH_SET_POINT | CPU_FREQ_TRIG_UPDATE,
+};
+
+static int _clk_ipu2_set_parent(struct clk *clk, struct clk *parent)
+{
+ int mux;
+ u32 reg = __raw_readl(MXC_CCM_CSCDR3)
+ & ~MXC_CCM_CSCDR3_IPU2_HSP_CLK_SEL_MASK;
+
+ mux = _get_mux6(parent, &pll2_528_bus_main_clk,
+ &pll2_pfd2_400M, &pll3_sw_clk, &pll3_pfd1_540M, NULL, NULL);
+
+ reg |= (mux << MXC_CCM_CSCDR3_IPU2_HSP_CLK_SEL_OFFSET);
+
+ __raw_writel(reg, MXC_CCM_CSCDR3);
+
+ return 0;
+}
+
+static unsigned long _clk_ipu2_get_rate(struct clk *clk)
+{
+ u32 reg, div;
+
+ reg = __raw_readl(MXC_CCM_CSCDR3);
+ div = ((reg & MXC_CCM_CSCDR3_IPU2_HSP_PODF_MASK) >>
+ MXC_CCM_CSCDR3_IPU2_HSP_PODF_OFFSET) + 1;
+
+ return clk_get_rate(clk->parent) / div;
+}
+
+static int _clk_ipu2_set_rate(struct clk *clk, unsigned long rate)
+{
+ u32 reg, div;
+ u32 parent_rate = clk_get_rate(clk->parent);
+
+ div = parent_rate / rate;
+ if (div == 0)
+ div++;
+ if (((parent_rate / div) != rate) || (div > 8))
+ return -EINVAL;
+
+ reg = __raw_readl(MXC_CCM_CSCDR3);
+ reg &= ~MXC_CCM_CSCDR3_IPU2_HSP_PODF_MASK;
+ reg |= (div - 1) << MXC_CCM_CSCDR3_IPU2_HSP_PODF_OFFSET;
+ __raw_writel(reg, MXC_CCM_CSCDR3);
+
+ return 0;
+}
+
+static struct clk ipu2_clk = {
+ __INIT_CLK_DEBUG(elcdif_axi_clk)
+ .parent = &pll2_pfd2_400M,
+ .enable_reg = MXC_CCM_CCGR3,
+ .enable_shift = MXC_CCM_CCGRx_CG3_OFFSET,
+ .enable = _clk_enable,
+ .disable = _clk_disable,
+ .set_parent = _clk_ipu2_set_parent,
+ .round_rate = _clk_ipu_round_rate,
+ .set_rate = _clk_ipu2_set_rate,
+ .get_rate = _clk_ipu2_get_rate,
+ .flags = AHB_MED_SET_POINT | CPU_FREQ_TRIG_UPDATE,
+};
+
+static struct clk usdhc_dep_clk = {
+ .parent = &mmdc_ch1_axi_clk[0],
+ .secondary = &mx6per1_clk,
+ .flags = AHB_HIGH_SET_POINT | CPU_FREQ_TRIG_UPDATE,
+ };
+
+static unsigned long _clk_usdhc_round_rate(struct clk *clk,
+ unsigned long rate)
+{
+ u32 div;
+ u32 parent_rate = clk_get_rate(clk->parent);
+
+ div = parent_rate / rate;
+
+ /* Make sure rate is not greater than the maximum value for the clock.
+ * Also prevent a div of 0.
+ */
+ if (div == 0)
+ div++;
+
+ if (div > 8)
+ div = 8;
+
+ return parent_rate / div;
+}
+
+static int _clk_usdhc1_set_parent(struct clk *clk, struct clk *parent)
+{
+ u32 reg = __raw_readl(MXC_CCM_CSCMR1) & ~MXC_CCM_CSCMR1_USDHC1_CLK_SEL;
+
+ if (parent == &pll2_pfd0_352M)
+ reg |= (MXC_CCM_CSCMR1_USDHC1_CLK_SEL);
+
+ __raw_writel(reg, MXC_CCM_CSCMR1);
+
+ return 0;
+}
+
+static unsigned long _clk_usdhc1_get_rate(struct clk *clk)
+{
+ u32 reg, div;
+
+ reg = __raw_readl(MXC_CCM_CSCDR1);
+ div = ((reg & MXC_CCM_CSCDR1_USDHC1_PODF_MASK) >>
+ MXC_CCM_CSCDR1_USDHC1_PODF_OFFSET) + 1;
+
+ return clk_get_rate(clk->parent) / div;
+}
+
+static int _clk_usdhc1_set_rate(struct clk *clk, unsigned long rate)
+{
+ u32 reg, div;
+ u32 parent_rate = clk_get_rate(clk->parent);
+
+ div = parent_rate / rate;
+ if (div == 0)
+ div++;
+ if (((parent_rate / div) != rate) || (div > 8))
+ return -EINVAL;
+
+ reg = __raw_readl(MXC_CCM_CSCDR1);
+ reg &= ~MXC_CCM_CSCDR1_USDHC1_PODF_MASK;
+ reg |= (div - 1) << MXC_CCM_CSCDR1_USDHC1_PODF_OFFSET;
+ __raw_writel(reg, MXC_CCM_CSCDR1);
+
+ return 0;
+}
+
+static struct clk usdhc1_clk = {
+ __INIT_CLK_DEBUG(usdhc1_clk)
+ .id = 0,
+ .parent = &pll2_pfd2_400M,
+ .secondary = &usdhc_dep_clk,
+ .enable_reg = MXC_CCM_CCGR6,
+ .enable_shift = MXC_CCM_CCGRx_CG1_OFFSET,
+ .enable = _clk_enable,
+ .disable = _clk_disable,
+ .set_parent = _clk_usdhc1_set_parent,
+ .round_rate = _clk_usdhc_round_rate,
+ .set_rate = _clk_usdhc1_set_rate,
+ .get_rate = _clk_usdhc1_get_rate,
+ .flags = AHB_HIGH_SET_POINT | CPU_FREQ_TRIG_UPDATE,
+};
+
+static int _clk_usdhc2_set_parent(struct clk *clk, struct clk *parent)
+{
+ u32 reg = __raw_readl(MXC_CCM_CSCMR1) & ~MXC_CCM_CSCMR1_USDHC2_CLK_SEL;
+
+ if (parent == &pll2_pfd0_352M)
+ reg |= (MXC_CCM_CSCMR1_USDHC2_CLK_SEL);
+
+ __raw_writel(reg, MXC_CCM_CSCMR1);
+
+ return 0;
+}
+
+static unsigned long _clk_usdhc2_get_rate(struct clk *clk)
+{
+ u32 reg, div;
+
+ reg = __raw_readl(MXC_CCM_CSCDR1);
+ div = ((reg & MXC_CCM_CSCDR1_USDHC2_PODF_MASK) >>
+ MXC_CCM_CSCDR1_USDHC2_PODF_OFFSET) + 1;
+
+ return clk_get_rate(clk->parent) / div;
+}
+
+static int _clk_usdhc2_set_rate(struct clk *clk, unsigned long rate)
+{
+ u32 reg, div;
+ u32 parent_rate = clk_get_rate(clk->parent);
+
+ div = parent_rate / rate;
+ if (div == 0)
+ div++;
+ if (((parent_rate / div) != rate) || (div > 8))
+ return -EINVAL;
+
+ reg = __raw_readl(MXC_CCM_CSCDR1);
+ reg &= ~MXC_CCM_CSCDR1_USDHC2_PODF_MASK;
+ reg |= (div - 1) << MXC_CCM_CSCDR1_USDHC2_PODF_OFFSET;
+ __raw_writel(reg, MXC_CCM_CSCDR1);
+
+ return 0;
+}
+
+static struct clk usdhc2_clk = {
+ __INIT_CLK_DEBUG(usdhc2_clk)
+ .id = 1,
+ .parent = &pll2_pfd2_400M,
+ .secondary = &usdhc_dep_clk,
+ .enable_reg = MXC_CCM_CCGR6,
+ .enable_shift = MXC_CCM_CCGRx_CG2_OFFSET,
+ .enable = _clk_enable,
+ .disable = _clk_disable,
+ .set_parent = _clk_usdhc2_set_parent,
+ .round_rate = _clk_usdhc_round_rate,
+ .set_rate = _clk_usdhc2_set_rate,
+ .get_rate = _clk_usdhc2_get_rate,
+ .flags = AHB_HIGH_SET_POINT | CPU_FREQ_TRIG_UPDATE,
+};
+
+static int _clk_usdhc3_set_parent(struct clk *clk, struct clk *parent)
+{
+ u32 reg = __raw_readl(MXC_CCM_CSCMR1) & ~MXC_CCM_CSCMR1_USDHC3_CLK_SEL;
+
+ if (parent == &pll2_pfd0_352M)
+ reg |= (MXC_CCM_CSCMR1_USDHC3_CLK_SEL);
+
+ __raw_writel(reg, MXC_CCM_CSCMR1);
+
+ return 0;
+}
+
+static unsigned long _clk_usdhc3_get_rate(struct clk *clk)
+{
+ u32 reg, div;
+
+ reg = __raw_readl(MXC_CCM_CSCDR1);
+ div = ((reg & MXC_CCM_CSCDR1_USDHC3_PODF_MASK) >>
+ MXC_CCM_CSCDR1_USDHC3_PODF_OFFSET) + 1;
+
+ return clk_get_rate(clk->parent) / div;
+}
+
+static int _clk_usdhc3_set_rate(struct clk *clk, unsigned long rate)
+{
+ u32 reg, div;
+ u32 parent_rate = clk_get_rate(clk->parent);
+
+ div = parent_rate / rate;
+ if (div == 0)
+ div++;
+ if (((parent_rate / div) != rate) || (div > 8))
+ return -EINVAL;
+
+ reg = __raw_readl(MXC_CCM_CSCDR1);
+ reg &= ~MXC_CCM_CSCDR1_USDHC3_PODF_MASK;
+ reg |= (div - 1) << MXC_CCM_CSCDR1_USDHC3_PODF_OFFSET;
+ __raw_writel(reg, MXC_CCM_CSCDR1);
+
+ return 0;
+}
+
+
+static struct clk usdhc3_clk = {
+ __INIT_CLK_DEBUG(usdhc3_clk)
+ .id = 2,
+ .parent = &pll2_pfd2_400M,
+ .secondary = &usdhc_dep_clk,
+ .enable_reg = MXC_CCM_CCGR6,
+ .enable_shift = MXC_CCM_CCGRx_CG3_OFFSET,
+ .enable = _clk_enable,
+ .disable = _clk_disable,
+ .set_parent = _clk_usdhc3_set_parent,
+ .round_rate = _clk_usdhc_round_rate,
+ .set_rate = _clk_usdhc3_set_rate,
+ .get_rate = _clk_usdhc3_get_rate,
+ .flags = AHB_HIGH_SET_POINT | CPU_FREQ_TRIG_UPDATE,
+};
+
+static int _clk_usdhc4_set_parent(struct clk *clk, struct clk *parent)
+{
+ u32 reg = __raw_readl(MXC_CCM_CSCMR1) & ~MXC_CCM_CSCMR1_USDHC4_CLK_SEL;
+
+ if (parent == &pll2_pfd0_352M)
+ reg |= (MXC_CCM_CSCMR1_USDHC4_CLK_SEL);
+
+ __raw_writel(reg, MXC_CCM_CSCMR1);
+
+ return 0;
+}
+
+static unsigned long _clk_usdhc4_get_rate(struct clk *clk)
+{
+ u32 reg, div;
+
+ reg = __raw_readl(MXC_CCM_CSCDR1);
+ div = ((reg & MXC_CCM_CSCDR1_USDHC4_PODF_MASK) >>
+ MXC_CCM_CSCDR1_USDHC4_PODF_OFFSET) + 1;
+
+ return clk_get_rate(clk->parent) / div;
+}
+
+static int _clk_usdhc4_set_rate(struct clk *clk, unsigned long rate)
+{
+ u32 reg, div;
+ u32 parent_rate = clk_get_rate(clk->parent);
+
+ div = parent_rate / rate;
+ if (div == 0)
+ div++;
+ if (((parent_rate / div) != rate) || (div > 8))
+ return -EINVAL;
+
+ reg = __raw_readl(MXC_CCM_CSCDR1);
+ reg &= ~MXC_CCM_CSCDR1_USDHC4_PODF_MASK;
+ reg |= (div - 1) << MXC_CCM_CSCDR1_USDHC4_PODF_OFFSET;
+ __raw_writel(reg, MXC_CCM_CSCDR1);
+
+ return 0;
+}
+
+
+static struct clk usdhc4_clk = {
+ __INIT_CLK_DEBUG(usdhc4_clk)
+ .id = 3,
+ .parent = &pll2_pfd2_400M,
+ .secondary = &usdhc_dep_clk,
+ .enable_reg = MXC_CCM_CCGR6,
+ .enable_shift = MXC_CCM_CCGRx_CG4_OFFSET,
+ .enable = _clk_enable,
+ .disable = _clk_disable,
+ .set_parent = _clk_usdhc4_set_parent,
+ .round_rate = _clk_usdhc_round_rate,
+ .set_rate = _clk_usdhc4_set_rate,
+ .get_rate = _clk_usdhc4_get_rate,
+ .flags = AHB_HIGH_SET_POINT | CPU_FREQ_TRIG_UPDATE,
+};
+
+static unsigned long _clk_ssi_round_rate(struct clk *clk,
+ unsigned long rate)
+{
+ u32 pre, post;
+ u32 parent_rate = clk_get_rate(clk->parent);
+ u32 div = parent_rate / rate;
+
+ if (parent_rate % rate)
+ div++;
+
+ __calc_pre_post_dividers(1 << 6, div, &pre, &post);
+
+ return parent_rate / (pre * post);
+}
+
+static unsigned long _clk_ssi1_get_rate(struct clk *clk)
+{
+ u32 reg, prediv, podf;
+
+ reg = __raw_readl(MXC_CCM_CS1CDR);
+
+ prediv = ((reg & MXC_CCM_CS1CDR_SSI1_CLK_PRED_MASK)
+ >> MXC_CCM_CS1CDR_SSI1_CLK_PRED_OFFSET) + 1;
+ podf = ((reg & MXC_CCM_CS1CDR_SSI1_CLK_PODF_MASK)
+ >> MXC_CCM_CS1CDR_SSI1_CLK_PODF_OFFSET) + 1;
+
+ return clk_get_rate(clk->parent) / (prediv * podf);
+}
+
+static int _clk_ssi1_set_rate(struct clk *clk, unsigned long rate)
+{
+ u32 reg, div, pre, post;
+ u32 parent_rate = clk_get_rate(clk->parent);
+
+ div = parent_rate / rate;
+ if (div == 0)
+ div++;
+ if (((parent_rate / div) != rate) || div > 512)
+ return -EINVAL;
+
+ __calc_pre_post_dividers(1 << 6, div, &pre, &post);
+
+ reg = __raw_readl(MXC_CCM_CS1CDR);
+ reg &= ~(MXC_CCM_CS1CDR_SSI1_CLK_PRED_MASK |
+ MXC_CCM_CS1CDR_SSI1_CLK_PODF_MASK);
+ reg |= (post - 1) << MXC_CCM_CS1CDR_SSI1_CLK_PODF_OFFSET;
+ reg |= (pre - 1) << MXC_CCM_CS1CDR_SSI1_CLK_PRED_OFFSET;
+
+ __raw_writel(reg, MXC_CCM_CS1CDR);
+
+ return 0;
+}
+
+static unsigned long _clk_extern_audio_round_rate(struct clk *clk,
+ unsigned long rate)
+{
+ u32 pre, post;
+ u32 parent_rate = clk_get_rate(clk->parent);
+ u32 div = parent_rate / rate;
+
+ if (parent_rate % rate)
+ div++;
+
+ __calc_pre_post_dividers(1 << 3, div, &pre, &post);
+
+ return parent_rate / (pre * post);
+}
+
+static int _clk_extern_audio_set_parent(struct clk *clk, struct clk *parent)
+{
+ u32 reg, mux;
+
+ reg = __raw_readl(MXC_CCM_CSCMR2) & ~MXC_CCM_CSCMR2_ESAI_CLK_SEL_MASK;
+
+ mux = _get_mux6(parent, &pll4_audio_main_clk, &pll3_pfd2_508M,
+ &pll3_pfd3_454M, &pll3_sw_clk, NULL, NULL);
+ reg |= mux << MXC_CCM_CSCMR2_ESAI_CLK_SEL_OFFSET;
+
+ __raw_writel(reg, MXC_CCM_CSCMR2);
+
+ return 0;
+}
+
+static unsigned long _clk_extern_audio_get_rate(struct clk *clk)
+{
+ u32 reg, pred, podf;
+
+ reg = __raw_readl(MXC_CCM_CS1CDR);
+
+ pred = ((reg & MXC_CCM_CS1CDR_ESAI_CLK_PRED_MASK)
+ >> MXC_CCM_CS1CDR_ESAI_CLK_PRED_OFFSET) + 1;
+ podf = ((reg & MXC_CCM_CS1CDR_ESAI_CLK_PODF_MASK)
+ >> MXC_CCM_CS1CDR_ESAI_CLK_PODF_OFFSET) + 1;
+
+ return clk_get_rate(clk->parent) / (pred * podf);
+}
+
+static int _clk_extern_audio_set_rate(struct clk *clk, unsigned long rate)
+{
+ u32 reg, div, pre, post;
+ u32 parent_rate = clk_get_rate(clk->parent);
+
+ div = parent_rate / rate;
+ if (div == 0)
+ div++;
+ if (((parent_rate / div) != rate) || div > 64)
+ return -EINVAL;
+
+ __calc_pre_post_dividers(1 << 3, div, &pre, &post);
+
+ reg = __raw_readl(MXC_CCM_CS1CDR);
+ reg &= ~(MXC_CCM_CS1CDR_ESAI_CLK_PRED_MASK|
+ MXC_CCM_CS1CDR_ESAI_CLK_PODF_MASK);
+ reg |= (post - 1) << MXC_CCM_CS1CDR_ESAI_CLK_PODF_OFFSET;
+ reg |= (pre - 1) << MXC_CCM_CS1CDR_ESAI_CLK_PRED_OFFSET;
+
+ __raw_writel(reg, MXC_CCM_CS1CDR);
+
+ return 0;
+}
+
+static struct clk extern_audio_clk = {
+ __INIT_CLK_DEBUG(extern_audio_clk)
+ .id = 0,
+ .parent = &pll3_sw_clk,
+ .secondary = &spba_clk,
+ .enable_reg = MXC_CCM_CCGR1,
+ .enable_shift = MXC_CCM_CCGRx_CG8_OFFSET,
+ .enable = _clk_enable,
+ .disable = _clk_disable,
+ .set_rate = _clk_extern_audio_set_rate,
+ .get_rate = _clk_extern_audio_get_rate,
+ .set_parent = _clk_extern_audio_set_parent,
+ .round_rate = _clk_extern_audio_round_rate,
+};
+
+
+static int _clk_ssi1_set_parent(struct clk *clk, struct clk *parent)
+{
+ u32 reg, mux;
+
+ reg = __raw_readl(MXC_CCM_CSCMR1)
+ & ~MXC_CCM_CSCMR1_SSI1_CLK_SEL_MASK;
+
+ mux = _get_mux6(parent, &pll3_pfd2_508M, &pll3_pfd3_454M,
+ &pll4_audio_main_clk, NULL, NULL, NULL);
+ reg |= (mux << MXC_CCM_CSCMR1_SSI1_CLK_SEL_OFFSET);
+
+ __raw_writel(reg, MXC_CCM_CSCMR1);
+
+ return 0;
+}
+
+static struct clk ssi1_clk = {
+ __INIT_CLK_DEBUG(ssi1_clk)
+ .parent = &pll3_pfd2_508M,
+ .enable_reg = MXC_CCM_CCGR5,
+ .enable_shift = MXC_CCM_CCGRx_CG9_OFFSET,
+ .enable = _clk_enable,
+ .disable = _clk_disable,
+ .set_parent = _clk_ssi1_set_parent,
+ .set_rate = _clk_ssi1_set_rate,
+ .round_rate = _clk_ssi_round_rate,
+ .get_rate = _clk_ssi1_get_rate,
+#ifdef CONFIG_SND_MXC_SOC_IRAM
+ .secondary = &ocram_clk,
+#else
+ .secondary = &mmdc_ch1_axi_clk[0],
+#endif
+};
+
+static unsigned long _clk_ssi2_get_rate(struct clk *clk)
+{
+ u32 reg, prediv, podf;
+
+ reg = __raw_readl(MXC_CCM_CS2CDR);
+
+ prediv = ((reg & MXC_CCM_CS2CDR_SSI2_CLK_PRED_MASK)
+ >> MXC_CCM_CS2CDR_SSI2_CLK_PRED_OFFSET) + 1;
+ podf = ((reg & MXC_CCM_CS2CDR_SSI2_CLK_PODF_MASK)
+ >> MXC_CCM_CS2CDR_SSI2_CLK_PODF_OFFSET) + 1;
+
+ return clk_get_rate(clk->parent) / (prediv * podf);
+}
+
+static int _clk_ssi2_set_rate(struct clk *clk, unsigned long rate)
+{
+ u32 reg, div, pre, post;
+ u32 parent_rate = clk_get_rate(clk->parent);
+
+ div = parent_rate / rate;
+ if (div == 0)
+ div++;
+ if (((parent_rate / div) != rate) || div > 512)
+ return -EINVAL;
+
+ __calc_pre_post_dividers(1 << 6, div, &pre, &post);
+
+ reg = __raw_readl(MXC_CCM_CS2CDR);
+ reg &= ~(MXC_CCM_CS2CDR_SSI2_CLK_PRED_MASK |
+ MXC_CCM_CS2CDR_SSI2_CLK_PODF_MASK);
+ reg |= (post - 1) << MXC_CCM_CS2CDR_SSI2_CLK_PODF_OFFSET;
+ reg |= (pre - 1) << MXC_CCM_CS2CDR_SSI2_CLK_PRED_OFFSET;
+
+ __raw_writel(reg, MXC_CCM_CS2CDR);
+
+ return 0;
+}
+
+
+static int _clk_ssi2_set_parent(struct clk *clk, struct clk *parent)
+{
+ u32 reg, mux;
+
+ reg = __raw_readl(MXC_CCM_CSCMR1)
+ & ~MXC_CCM_CSCMR1_SSI2_CLK_SEL_MASK;
+
+ mux = _get_mux6(parent, &pll3_pfd2_508M, &pll3_pfd3_454M,
+ &pll4_audio_main_clk, NULL, NULL, NULL);
+ reg |= (mux << MXC_CCM_CSCMR1_SSI2_CLK_SEL_OFFSET);
+
+ __raw_writel(reg, MXC_CCM_CSCMR1);
+
+ return 0;
+}
+
+static struct clk ssi2_clk = {
+ __INIT_CLK_DEBUG(ssi2_clk)
+ .parent = &pll3_pfd2_508M,
+ .enable_reg = MXC_CCM_CCGR5,
+ .enable_shift = MXC_CCM_CCGRx_CG10_OFFSET,
+ .enable = _clk_enable,
+ .disable = _clk_disable,
+ .set_parent = _clk_ssi2_set_parent,
+ .set_rate = _clk_ssi2_set_rate,
+ .round_rate = _clk_ssi_round_rate,
+ .get_rate = _clk_ssi2_get_rate,
+#ifdef CONFIG_SND_MXC_SOC_IRAM
+ .secondary = &ocram_clk,
+#else
+ .secondary = &mmdc_ch1_axi_clk[0],
+#endif
+};
+
+static unsigned long _clk_ssi3_get_rate(struct clk *clk)
+{
+ u32 reg, prediv, podf;
+
+ reg = __raw_readl(MXC_CCM_CS1CDR);
+
+ prediv = ((reg & MXC_CCM_CS1CDR_SSI1_CLK_PRED_MASK)
+ >> MXC_CCM_CS1CDR_SSI1_CLK_PRED_OFFSET) + 1;
+ podf = ((reg & MXC_CCM_CS1CDR_SSI1_CLK_PODF_MASK)
+ >> MXC_CCM_CS1CDR_SSI1_CLK_PODF_OFFSET) + 1;
+
+ return clk_get_rate(clk->parent) / (prediv * podf);
+}
+
+static int _clk_ssi3_set_rate(struct clk *clk, unsigned long rate)
+{
+ u32 reg, div, pre, post;
+ u32 parent_rate = clk_get_rate(clk->parent);
+
+ div = parent_rate / rate;
+ if (div == 0)
+ div++;
+ if (((parent_rate / div) != rate) || div > 512)
+ return -EINVAL;
+
+ __calc_pre_post_dividers(1 << 6, div, &pre, &post);
+
+ reg = __raw_readl(MXC_CCM_CS1CDR);
+ reg &= ~(MXC_CCM_CS1CDR_SSI3_CLK_PODF_MASK|
+ MXC_CCM_CS1CDR_SSI3_CLK_PRED_MASK);
+ reg |= (post - 1) << MXC_CCM_CS1CDR_SSI3_CLK_PODF_OFFSET;
+ reg |= (pre - 1) << MXC_CCM_CS1CDR_SSI3_CLK_PRED_OFFSET;
+
+ __raw_writel(reg, MXC_CCM_CS1CDR);
+
+ return 0;
+}
+
+
+static int _clk_ssi3_set_parent(struct clk *clk, struct clk *parent)
+{
+ u32 reg, mux;
+
+ reg = __raw_readl(MXC_CCM_CSCMR1) & ~MXC_CCM_CSCMR1_SSI3_CLK_SEL_MASK;
+
+ mux = _get_mux6(parent, &pll3_pfd2_508M, &pll3_pfd3_454M,
+ &pll4_audio_main_clk, NULL, NULL, NULL);
+ reg |= (mux << MXC_CCM_CSCMR1_SSI3_CLK_SEL_OFFSET);
+
+ __raw_writel(reg, MXC_CCM_CSCMR1);
+
+ return 0;
+}
+
+static struct clk ssi3_clk = {
+ __INIT_CLK_DEBUG(ssi3_clk)
+ .parent = &pll3_pfd2_508M,
+ .enable_reg = MXC_CCM_CCGR5,
+ .enable_shift = MXC_CCM_CCGRx_CG11_OFFSET,
+ .enable = _clk_enable,
+ .disable = _clk_disable,
+ .set_parent = _clk_ssi3_set_parent,
+ .set_rate = _clk_ssi3_set_rate,
+ .round_rate = _clk_ssi_round_rate,
+ .get_rate = _clk_ssi3_get_rate,
+#ifdef CONFIG_SND_MXC_SOC_IRAM
+ .secondary = &ocram_clk,
+#else
+ .secondary = &mmdc_ch1_axi_clk[0],
+#endif
+};
+
+static unsigned long _clk_epdc_lcdif_pix_round_rate(struct clk *clk,
+ unsigned long rate)
+{
+ u32 pre, post;
+ u32 parent_rate = clk_get_rate(clk->parent);
+ u32 div = parent_rate / rate;
+
+ /* Round to closest divisor */
+ if ((parent_rate % rate) > (rate / 2))
+ div++;
+
+ /* Make sure rate is not greater than the maximum value for the clock.
+ * Also prevent a div of 0.
+ */
+ if (div == 0)
+ div++;
+
+ if (div > 64)
+ div = 64;
+
+ __calc_pre_post_dividers(1 << 3, div, &pre, &post);
+
+ return parent_rate / (pre * post);
+}
+
+static unsigned long _clk_pxp_epdc_axi_round_rate(struct clk *clk,
+ unsigned long rate)
+{
+ u32 div;
+ u32 parent_rate = clk_get_rate(clk->parent);
+
+ div = parent_rate / rate;
+ /* Round to closest divisor */
+ if ((parent_rate % rate) > (rate / 2))
+ div++;
+
+ /* Make sure rate is not greater than the maximum value for the clock.
+ * Also prevent a div of 0.
+ */
+ if (div == 0)
+ div++;
+
+ if (div > 8)
+ div = 8;
+
+ return parent_rate / div;
+}
+
+static unsigned long _clk_pxp_axi_get_rate(struct clk *clk)
+{
+ u32 reg, div;
+
+ reg = __raw_readl(MXC_CCM_CHSCCDR);
+
+ div = ((reg & MXC_CCM_CHSCCDR_IPU1_DI0_PODF_MASK) >>
+ MXC_CCM_CHSCCDR_IPU1_DI0_PODF_OFFSET) + 1;
+
+ return clk_get_rate(clk->parent) / div;
+}
+
+static int _clk_pxp_axi_set_rate(struct clk *clk, unsigned long rate)
+{
+ u32 reg, div;
+ u32 parent_rate = clk_get_rate(clk->parent);
+
+ div = parent_rate / rate;
+ if (div == 0)
+ div++;
+ if (((parent_rate / div) != rate) || (div > 8))
+ return -EINVAL;
+
+ reg = __raw_readl(MXC_CCM_CHSCCDR);
+ reg &= ~MXC_CCM_CHSCCDR_IPU1_DI0_PODF_MASK;
+ reg |= (div - 1) << MXC_CCM_CHSCCDR_IPU1_DI0_PODF_OFFSET;
+ __raw_writel(reg, MXC_CCM_CHSCCDR);
+
+ return 0;
+}
+
+static int _clk_pxp_axi_set_parent(struct clk *clk, struct clk *parent)
+{
+ u32 reg, mux;
+
+ reg = __raw_readl(MXC_CCM_CHSCCDR)
+ & ~MXC_CCM_CHSCCDR_IPU1_DI0_PRE_CLK_SEL_MASK;
+
+ mux = _get_mux6(parent, &pll2_528_bus_main_clk,
+ &pll3_usb_otg_main_clk, &pll5_video_main_clk,
+ &pll2_pfd0_352M, &pll2_pfd2_400M, &pll3_pfd1_540M);
+ reg |= (mux << MXC_CCM_CHSCCDR_IPU1_DI0_PRE_CLK_SEL_OFFSET);
+
+ __raw_writel(reg, MXC_CCM_CHSCCDR);
+
+ /* Derive clock from divided pre-muxed pxp_axi clock.*/
+ mux = 0;
+ reg = __raw_readl(MXC_CCM_CHSCCDR)
+ & ~MXC_CCM_CHSCCDR_IPU1_DI0_CLK_SEL_MASK;
+ __raw_writel(reg | (mux << MXC_CCM_CHSCCDR_IPU1_DI0_CLK_SEL_OFFSET),
+ MXC_CCM_CHSCCDR);
+
+ return 0;
+}
+
+static unsigned long _clk_epdc_axi_get_rate(struct clk *clk)
+{
+ u32 reg, div;
+
+ reg = __raw_readl(MXC_CCM_CHSCCDR);
+
+ div = ((reg & MXC_CCM_CHSCCDR_IPU1_DI1_PODF_MASK)
+ >> MXC_CCM_CHSCCDR_IPU1_DI1_PODF_OFFSET) + 1;
+
+ return clk_get_rate(clk->parent) / div;
+}
+
+static int _clk_epdc_axi_set_rate(struct clk *clk, unsigned long rate)
+{
+ u32 reg, div;
+ u32 parent_rate = clk_get_rate(clk->parent);
+
+ div = parent_rate / rate;
+ if (div == 0)
+ div++;
+ if (((parent_rate / div) != rate) || (div > 8))
+ return -EINVAL;
+
+ reg = __raw_readl(MXC_CCM_CHSCCDR);
+ reg &= ~MXC_CCM_CHSCCDR_IPU1_DI1_PODF_MASK;
+ reg |= (div - 1) << MXC_CCM_CHSCCDR_IPU1_DI1_PODF_OFFSET;
+ __raw_writel(reg, MXC_CCM_CHSCCDR);
+
+ return 0;
+}
+
+static int _clk_epdc_axi_set_parent(struct clk *clk, struct clk *parent)
+{
+ u32 reg, mux;
+
+ reg = __raw_readl(MXC_CCM_CHSCCDR)
+ & ~MXC_CCM_CHSCCDR_IPU1_DI1_PRE_CLK_SEL_MASK;
+
+ mux = _get_mux6(parent, &pll2_528_bus_main_clk,
+ &pll3_usb_otg_main_clk, &pll5_video_main_clk,
+ &pll2_pfd0_352M, &pll2_pfd2_400M, &pll3_pfd1_540M);
+ reg |= (mux << MXC_CCM_CHSCCDR_IPU1_DI1_PRE_CLK_SEL_OFFSET);
+
+ __raw_writel(reg, MXC_CCM_CHSCCDR);
+
+ /* Derive clock from divided pre-muxed ipu1_di0 clock.*/
+ mux = 0;
+ reg = __raw_readl(MXC_CCM_CHSCCDR)
+ & ~MXC_CCM_CHSCCDR_IPU1_DI1_CLK_SEL_MASK;
+ __raw_writel(reg | (mux << MXC_CCM_CHSCCDR_IPU1_DI1_CLK_SEL_OFFSET),
+ MXC_CCM_CHSCCDR);
+
+ return 0;
+}
+
+static struct clk pxp_axi_clk = {
+ __INIT_CLK_DEBUG(pxp_axi_clk)
+ .id = 0,
+ .parent = &pll5_video_main_clk,
+ .enable_reg = MXC_CCM_CCGR3,
+ .enable_shift = MXC_CCM_CCGRx_CG1_OFFSET,
+ .enable = _clk_enable,
+ .disable = _clk_disable,
+ .set_parent = _clk_pxp_axi_set_parent,
+ .set_rate = _clk_pxp_axi_set_rate,
+ .round_rate = _clk_pxp_epdc_axi_round_rate,
+ .get_rate = _clk_pxp_axi_get_rate,
+ .flags = AHB_HIGH_SET_POINT | CPU_FREQ_TRIG_UPDATE,
+};
+
+static struct clk epdc_axi_clk = {
+ __INIT_CLK_DEBUG(epdc_axi_clk)
+ .id = 0,
+ .parent = &pll5_video_main_clk,
+ .enable_reg = MXC_CCM_CCGR3,
+ .enable_shift = MXC_CCM_CCGRx_CG2_OFFSET,
+ .enable = _clk_enable,
+ .disable = _clk_disable,
+ .set_parent = _clk_epdc_axi_set_parent,
+ .set_rate = _clk_epdc_axi_set_rate,
+ .round_rate = _clk_pxp_epdc_axi_round_rate,
+ .get_rate = _clk_epdc_axi_get_rate,
+ .flags = AHB_HIGH_SET_POINT | CPU_FREQ_TRIG_UPDATE,
+};
+
+static unsigned long _clk_lcdif_pix_get_rate(struct clk *clk)
+{
+ u32 reg, pre, post;
+
+ reg = __raw_readl(MXC_CCM_CSCDR2);
+
+ pre = ((reg & MXC_CCM_CSCDR2_IPU2_DI0_PODF_MASK) >>
+ MXC_CCM_CSCDR2_IPU2_DI0_PODF_OFFSET) + 1;
+
+ reg = __raw_readl(MXC_CCM_CSCMR1);
+ post = ((reg & MXC_CCM_CSCMR1_ACLK_EMI_PODF_MASK) >>
+ MXC_CCM_CSCMR1_ACLK_EMI_PODF_OFFSET) + 1;
+
+ return clk_get_rate(clk->parent) / (pre * post);
+}
+
+static int _clk_lcdif_pix_set_rate(struct clk *clk, unsigned long rate)
+{
+ u32 reg, div, pre, post;
+ u32 parent_rate = clk_get_rate(clk->parent);
+
+ div = parent_rate / rate;
+ if (div == 0)
+ div++;
+ if (((parent_rate / div) != rate) || (div > 64))
+ return -EINVAL;
+
+ __calc_pre_post_dividers(1 << 3, div, &pre, &post);
+
+ reg = __raw_readl(MXC_CCM_CSCDR2);
+ reg &= ~MXC_CCM_CSCDR2_IPU2_DI0_PODF_MASK;
+ reg |= (pre - 1) << MXC_CCM_CSCDR2_IPU2_DI0_PODF_OFFSET;
+ __raw_writel(reg, MXC_CCM_CSCDR2);
+
+ /*
+ * fixup:
+ * Bits 22 and 21 of the divide value are inverted before
+ * going into the divider port.
+ */
+ post = (post - 1) ^ 0x6;
+
+ reg = __raw_readl(MXC_CCM_CSCMR1);
+ reg &= ~MXC_CCM_CSCMR1_ACLK_EMI_PODF_MASK;
+ reg |= post << MXC_CCM_CSCMR1_ACLK_EMI_PODF_OFFSET;
+ __raw_writel(reg, MXC_CCM_CSCMR1);
+
+ return 0;
+}
+
+static int _clk_lcdif_pix_set_parent(struct clk *clk, struct clk *parent)
+{
+ u32 reg, mux;
+
+ reg = __raw_readl(MXC_CCM_CSCDR2)
+ & ~MXC_CCM_CSCDR2_IPU2_DI0_PRE_CLK_SEL_MASK;
+
+ mux = _get_mux6(parent, &pll2_528_bus_main_clk,
+ &pll3_usb_otg_main_clk, &pll5_video_main_clk,
+ &pll2_pfd0_352M, &pll3_pfd0_720M, &pll3_pfd1_540M);
+ reg |= (mux << MXC_CCM_CSCDR2_IPU2_DI0_PRE_CLK_SEL_OFFSET);
+
+ __raw_writel(reg, MXC_CCM_CSCDR2);
+
+ /* Derive clock from divided pre-muxed lcdif_pix clock.*/
+ mux = 0;
+ reg = __raw_readl(MXC_CCM_CSCDR2)
+ & ~MXC_CCM_CSCDR2_IPU2_DI0_CLK_SEL_MASK;
+ __raw_writel(reg | (mux << MXC_CCM_CSCDR2_IPU2_DI0_CLK_SEL_OFFSET),
+ MXC_CCM_CSCDR2);
+
+ return 0;
+}
+
+static unsigned long _clk_epdc_pix_get_rate(struct clk *clk)
+{
+ u32 reg, pre, post;
+
+ reg = __raw_readl(MXC_CCM_CSCDR2);
+
+ pre = ((reg & MXC_CCM_CSCDR2_IPU2_DI1_PODF_MASK) >>
+ MXC_CCM_CSCDR2_IPU2_DI1_PODF_OFFSET) + 1;
+
+ reg = __raw_readl(MXC_CCM_CBCMR);
+ post = ((reg & MXC_CCM_CBCMR_GPU2D_CORE_PODF_MASK) >>
+ MXC_CCM_CBCMR_GPU2D_CORE_PODF_OFFSET) + 1;
+
+
+ return clk_get_rate(clk->parent) / (pre * post);
+}
+
+static int _clk_epdc_pix_set_rate(struct clk *clk, unsigned long rate)
+{
+ u32 reg, div, pre, post;
+ u32 parent_rate = clk_get_rate(clk->parent);
+
+ div = parent_rate / rate;
+ if (div == 0)
+ div++;
+
+ if (((parent_rate / div) != rate) || (div > 64))
+ return -EINVAL;
+
+ __calc_pre_post_dividers(1 << 3, div, &pre, &post);
+
+ reg = __raw_readl(MXC_CCM_CSCDR2);
+ reg &= ~MXC_CCM_CSCDR2_IPU2_DI1_PODF_MASK;
+ reg |= (pre - 1) << MXC_CCM_CSCDR2_IPU2_DI1_PODF_OFFSET;
+ __raw_writel(reg, MXC_CCM_CSCDR2);
+
+ reg = __raw_readl(MXC_CCM_CBCMR);
+ reg &= ~MXC_CCM_CBCMR_GPU2D_CORE_PODF_MASK;
+ reg |= (post - 1) << MXC_CCM_CBCMR_GPU2D_CORE_PODF_OFFSET;
+ __raw_writel(reg, MXC_CCM_CBCMR);
+
+ return 0;
+}
+
+static int _clk_epdc_pix_set_parent(struct clk *clk, struct clk *parent)
+{
+ u32 reg, mux;
+
+ reg = __raw_readl(MXC_CCM_CSCDR2)
+ & ~MXC_CCM_CSCDR2_IPU2_DI1_PRE_CLK_SEL_MASK;
+
+ mux = _get_mux6(parent, &pll2_528_bus_main_clk,
+ &pll3_usb_otg_main_clk, &pll5_video_main_clk,
+ &pll2_pfd0_352M, &pll2_pfd1_594M, &pll3_pfd1_540M);
+ reg |= (mux << MXC_CCM_CSCDR2_IPU2_DI1_PRE_CLK_SEL_OFFSET);
+
+ __raw_writel(reg, MXC_CCM_CSCDR2);
+
+ return 0;
+}
+
+static struct clk lcdif_pix_clk = {
+ __INIT_CLK_DEBUG(lcdif_pix_clk)
+ .id = 0,
+ .parent = &pll5_video_main_clk,
+ .enable_reg = MXC_CCM_CCGR3,
+ .enable_shift = MXC_CCM_CCGRx_CG4_OFFSET,
+ .enable = _clk_enable,
+ .disable = _clk_disable,
+ .set_parent = _clk_lcdif_pix_set_parent,
+ .set_rate = _clk_lcdif_pix_set_rate,
+ .round_rate = _clk_epdc_lcdif_pix_round_rate,
+ .get_rate = _clk_lcdif_pix_get_rate,
+ .flags = AHB_MED_SET_POINT | CPU_FREQ_TRIG_UPDATE,
+};
+
+static struct clk epdc_pix_clk = {
+ __INIT_CLK_DEBUG(epdc_pix_clk)
+ .id = 0,
+ .parent = &pll3_pfd1_540M,
+ .enable_reg = MXC_CCM_CCGR3,
+ .enable_shift = MXC_CCM_CCGRx_CG5_OFFSET,
+ .enable = _clk_enable,
+ .disable = _clk_disable,
+ .set_parent = _clk_epdc_pix_set_parent,
+ .set_rate = _clk_epdc_pix_set_rate,
+ .round_rate = _clk_epdc_lcdif_pix_round_rate,
+ .get_rate = _clk_epdc_pix_get_rate,
+ .flags = AHB_MED_SET_POINT | CPU_FREQ_TRIG_UPDATE,
+};
+static unsigned long _clk_spdif_round_rate(struct clk *clk,
+ unsigned long rate)
+{
+ u32 pre, post;
+ u32 parent_rate = clk_get_rate(clk->parent);
+ u32 div = parent_rate / rate;
+
+ if (parent_rate % rate)
+ div++;
+
+ __calc_pre_post_dividers(1 << 3, div, &pre, &post);
+
+ return parent_rate / (pre * post);
+}
+
+static int _clk_spdif0_set_parent(struct clk *clk, struct clk *parent)
+{
+ u32 reg, mux;
+
+ reg = __raw_readl(MXC_CCM_CDCDR)
+ & ~MXC_CCM_CDCDR_SPDIF0_CLK_SEL_MASK;
+
+ mux = _get_mux6(parent, &pll4_audio_main_clk,
+ &pll3_pfd2_508M, &pll3_pfd3_454M,
+ &pll3_sw_clk, NULL, NULL);
+ reg |= mux << MXC_CCM_CDCDR_SPDIF0_CLK_SEL_OFFSET;
+
+ __raw_writel(reg, MXC_CCM_CDCDR);
+
+ return 0;
+}
+
+static unsigned long _clk_spdif0_get_rate(struct clk *clk)
+{
+ u32 reg, pred, podf;
+
+ reg = __raw_readl(MXC_CCM_CDCDR);
+
+ pred = ((reg & MXC_CCM_CDCDR_SPDIF0_CLK_PRED_MASK)
+ >> MXC_CCM_CDCDR_SPDIF0_CLK_PRED_OFFSET) + 1;
+ podf = ((reg & MXC_CCM_CDCDR_SPDIF0_CLK_PODF_MASK)
+ >> MXC_CCM_CDCDR_SPDIF0_CLK_PODF_OFFSET) + 1;
+
+ return clk_get_rate(clk->parent) / (pred * podf);
+}
+
+static int _clk_spdif0_set_rate(struct clk *clk, unsigned long rate)
+{
+ u32 reg, div, pre, post;
+ u32 parent_rate = clk_get_rate(clk->parent);
+
+ div = parent_rate / rate;
+ if (div == 0)
+ div++;
+ if (((parent_rate / div) != rate) || div > 64)
+ return -EINVAL;
+
+ __calc_pre_post_dividers(1 << 3, div, &pre, &post);
+
+ reg = __raw_readl(MXC_CCM_CDCDR);
+ reg &= ~(MXC_CCM_CDCDR_SPDIF0_CLK_PRED_MASK|
+ MXC_CCM_CDCDR_SPDIF0_CLK_PODF_MASK);
+ reg |= (post - 1) << MXC_CCM_CDCDR_SPDIF0_CLK_PODF_OFFSET;
+ reg |= (pre - 1) << MXC_CCM_CDCDR_SPDIF0_CLK_PRED_OFFSET;
+
+ __raw_writel(reg, MXC_CCM_CDCDR);
+
+ return 0;
+}
+
+static struct clk spdif0_clk[] = {
+ {
+ __INIT_CLK_DEBUG(spdif0_clk_0)
+ .id = 0,
+ .parent = &pll3_sw_clk,
+ .enable = _clk_enable,
+ .enable_reg = MXC_CCM_CCGR5,
+ .enable_shift = MXC_CCM_CCGRx_CG7_OFFSET,
+ .disable = _clk_disable,
+ .secondary = &spdif0_clk[1],
+ .set_rate = _clk_spdif0_set_rate,
+ .get_rate = _clk_spdif0_get_rate,
+ .set_parent = _clk_spdif0_set_parent,
+ .round_rate = _clk_spdif_round_rate,
+ .flags = AHB_HIGH_SET_POINT | CPU_FREQ_TRIG_UPDATE,
+ },
+ {
+ __INIT_CLK_DEBUG(spdif0_clk_1)
+ .id = 1,
+ .parent = &ipg_clk,
+ .secondary = &spba_clk,
+ },
+};
+
+static int _clk_ecspi_set_parent(struct clk *clk, struct clk *parent)
+{
+ u32 reg, mux;
+
+ reg = __raw_readl(MXC_CCM_CSCDR2) & ~MXC_CCM_CSCDR2_ECSPI_CLK_SEL_MASK;
+
+ if (parent == &pll3_60M)
+ mux = 0;
+ else
+ mux = 1; /* osc */
+
+ reg |= mux << MXC_CCM_CSCDR2_ECSPI_CLK_SEL_OFFSET;
+
+ __raw_writel(reg, MXC_CCM_CSCDR2);
+
+ return 0;
+}
+
+static int _clk_fec_set_rate(struct clk *clk, unsigned long rate)
+{
+ unsigned int reg, div = 1;
+
+ switch (rate) {
+ case 25000000:
+ div = 0;
+ break;
+ case 50000000:
+ div = 1;
+ break;
+ case 100000000:
+ div = 2;
+ break;
+ case 125000000:
+ div = 3;
+ break;
+ default:
+ return -EINVAL;
+ }
+ reg = __raw_readl(PLL8_ENET_BASE_ADDR);
+ reg &= ~ANADIG_PLL_ENET_DIV_SELECT_MASK;
+ reg |= (div << ANADIG_PLL_ENET_DIV_SELECT_OFFSET);
+ __raw_writel(reg, PLL8_ENET_BASE_ADDR);
+
+ return 0;
+}
+
+static unsigned long _clk_fec_get_rate(struct clk *clk)
+{
+ unsigned int div;
+
+ div = (__raw_readl(PLL8_ENET_BASE_ADDR))
+ & ANADIG_PLL_ENET_DIV_SELECT_MASK;
+
+ switch (div) {
+ case 0:
+ div = 20;
+ break;
+ case 1:
+ div = 10;
+ break;
+ case 3:
+ div = 5;
+ break;
+ case 4:
+ div = 4;
+ break;
+ }
+
+ return 500000000 / div;
+}
+
+static int _clk_fec_enable(struct clk *clk)
+{
+ unsigned int reg;
+
+ /* Enable ENET ref clock */
+ reg = __raw_readl(PLL8_ENET_BASE_ADDR);
+ reg &= ~ANADIG_PLL_BYPASS;
+ reg |= ANADIG_PLL_ENABLE;
+ __raw_writel(reg, PLL8_ENET_BASE_ADDR);
+
+ _clk_enable(clk);
+ return 0;
+}
+
+static void _clk_fec_disable(struct clk *clk)
+{
+ unsigned int reg;
+
+ _clk_disable(clk);
+
+ /* Enable ENET ref clock */
+ reg = __raw_readl(PLL8_ENET_BASE_ADDR);
+ reg |= ANADIG_PLL_BYPASS;
+ reg &= ~ANADIG_PLL_ENABLE;
+ __raw_writel(reg, PLL8_ENET_BASE_ADDR);
+}
+
+static struct clk fec_clk[] = {
+ {
+ __INIT_CLK_DEBUG(fec_clk)
+ .id = 0,
+ .parent = &pll6_enet_main_clk,
+ .enable_reg = MXC_CCM_CCGR1,
+ .enable_shift = MXC_CCM_CCGRx_CG5_OFFSET,
+ .enable = _clk_fec_enable,
+ .disable = _clk_fec_disable,
+ .set_rate = _clk_fec_set_rate,
+ .get_rate = _clk_fec_get_rate,
+ .secondary = &fec_clk[1],
+ .flags = AHB_HIGH_SET_POINT | CPU_FREQ_TRIG_UPDATE,
+ },
+ {
+ .parent = &mmdc_ch1_axi_clk[0],
+ .secondary = &mx6per1_clk,
+ },
+};
+
+static struct clk ecspi_clk[] = {
+ {
+ __INIT_CLK_DEBUG(ecspi0_clk)
+ .id = 0,
+ .parent = &pll3_60M,
+ .secondary = &spba_clk,
+ .enable_reg = MXC_CCM_CCGR1,
+ .enable_shift = MXC_CCM_CCGRx_CG0_OFFSET,
+ .enable = _clk_enable,
+ .disable = _clk_disable,
+ .set_parent = _clk_ecspi_set_parent,
+ },
+ {
+ __INIT_CLK_DEBUG(ecspi1_clk)
+ .id = 1,
+ .parent = &pll3_60M,
+ .secondary = &spba_clk,
+ .enable_reg = MXC_CCM_CCGR1,
+ .enable_shift = MXC_CCM_CCGRx_CG1_OFFSET,
+ .enable = _clk_enable,
+ .disable = _clk_disable,
+ .set_parent = _clk_ecspi_set_parent,
+ },
+ {
+ __INIT_CLK_DEBUG(ecspi2_clk)
+ .id = 2,
+ .parent = &pll3_60M,
+ .secondary = &spba_clk,
+ .enable_reg = MXC_CCM_CCGR1,
+ .enable_shift = MXC_CCM_CCGRx_CG2_OFFSET,
+ .enable = _clk_enable,
+ .disable = _clk_disable,
+ .set_parent = _clk_ecspi_set_parent,
+ },
+ {
+ __INIT_CLK_DEBUG(ecspi3_clk)
+ .id = 3,
+ .parent = &pll3_60M,
+ .secondary = &spba_clk,
+ .enable_reg = MXC_CCM_CCGR1,
+ .enable_shift = MXC_CCM_CCGRx_CG3_OFFSET,
+ .enable = _clk_enable,
+ .disable = _clk_disable,
+ .set_parent = _clk_ecspi_set_parent,
+ },
+ {
+ __INIT_CLK_DEBUG(ecspi4_clk)
+ .id = 4,
+ .parent = &pll3_60M,
+ .secondary = &spba_clk,
+ .enable_reg = MXC_CCM_CCGR1,
+ .enable_shift = MXC_CCM_CCGRx_CG4_OFFSET,
+ .enable = _clk_enable,
+ .disable = _clk_disable,
+ .set_parent = _clk_ecspi_set_parent,
+ },
+};
+
+static unsigned long _clk_emi_slow_round_rate(struct clk *clk,
+ unsigned long rate)
+{
+ u32 div;
+ u32 parent_rate = clk_get_rate(clk->parent);
+
+ div = parent_rate / rate;
+
+ /* Make sure rate is not greater than the maximum value for the clock.
+ * Also prevent a div of 0.
+ */
+ if (div == 0)
+ div++;
+
+ if (div > 8)
+ div = 8;
+
+ return parent_rate / div;
+}
+
+static int _clk_emi_slow_set_parent(struct clk *clk, struct clk *parent)
+{
+ int mux;
+ u32 reg = __raw_readl(MXC_CCM_CSCMR1)
+ & ~MXC_CCM_CSCMR1_ACLK_EMI_SLOW_MASK;
+
+ mux = _get_mux6(parent, &axi_clk, &pll3_usb_otg_main_clk,
+ &pll2_pfd2_400M, &pll3_pfd0_720M, NULL, NULL);
+ reg |= (mux << MXC_CCM_CSCMR1_ACLK_EMI_SLOW_OFFSET);
+ __raw_writel(reg, MXC_CCM_CSCMR1);
+
+ return 0;
+}
+
+static unsigned long _clk_emi_slow_get_rate(struct clk *clk)
+{
+ u32 reg, div;
+
+ reg = __raw_readl(MXC_CCM_CSCMR1);
+ div = ((reg & MXC_CCM_CSCMR1_ACLK_EMI_SLOW_PODF_MASK) >>
+ MXC_CCM_CSCMR1_ACLK_EMI_SLOW_PODF_OFFSET) + 1;
+
+ return clk_get_rate(clk->parent) / div;
+}
+
+static int _clk_emi_slow_set_rate(struct clk *clk, unsigned long rate)
+{
+ u32 reg, div;
+ u32 parent_rate = clk_get_rate(clk->parent);
+
+ div = parent_rate / rate;
+ if (div == 0)
+ div++;
+ if (((parent_rate / div) != rate) || (div > 8))
+ return -EINVAL;
+
+ reg = __raw_readl(MXC_CCM_CSCMR1);
+ reg &= ~MXC_CCM_CSCMR1_ACLK_EMI_SLOW_PODF_MASK;
+ reg |= (div - 1) << MXC_CCM_CSCMR1_ACLK_EMI_SLOW_PODF_OFFSET;
+ __raw_writel(reg, MXC_CCM_CSCMR1);
+
+ return 0;
+}
+
+static struct clk emi_slow_clk = {
+ __INIT_CLK_DEBUG(emi_slow_clk)
+ .id = 0,
+ .parent = &axi_clk,
+ .enable_reg = MXC_CCM_CCGR6,
+ .enable_shift = MXC_CCM_CCGRx_CG5_OFFSET,
+ .enable = _clk_enable,
+ .disable = _clk_disable,
+ .set_rate = _clk_emi_slow_set_rate,
+ .get_rate = _clk_emi_slow_get_rate,
+ .round_rate = _clk_emi_slow_round_rate,
+ .set_parent = _clk_emi_slow_set_parent,
+};
+
+static unsigned long _clk_uart_round_rate(struct clk *clk,
+ unsigned long rate)
+{
+ u32 div;
+ u32 parent_rate = clk_get_rate(clk->parent);
+
+ div = parent_rate / rate;
+
+ /* Make sure rate is not greater than the maximum value for the clock.
+ * Also prevent a div of 0.
+ */
+ if (div == 0)
+ div++;
+
+ if (div > 64)
+ div = 64;
+
+ return parent_rate / div;
+}
+
+static int _clk_uart_set_rate(struct clk *clk, unsigned long rate)
+{
+ u32 reg, div;
+ u32 parent_rate = clk_get_rate(clk->parent);
+
+ div = parent_rate / rate;
+ if (div == 0)
+ div++;
+ if (((parent_rate / div) != rate) || (div > 64))
+ return -EINVAL;
+
+ reg = __raw_readl(MXC_CCM_CSCDR1) & MXC_CCM_CSCDR1_UART_CLK_PODF_MASK;
+ reg |= ((div - 1) << MXC_CCM_CSCDR1_UART_CLK_PODF_OFFSET);
+
+ __raw_writel(reg, MXC_CCM_CSCDR1);
+
+ return 0;
+}
+
+static unsigned long _clk_uart_get_rate(struct clk *clk)
+{
+ u32 reg, div;
+ unsigned long val;
+
+ reg = __raw_readl(MXC_CCM_CSCDR1) & MXC_CCM_CSCDR1_UART_CLK_PODF_MASK;
+ div = (reg >> MXC_CCM_CSCDR1_UART_CLK_PODF_OFFSET) + 1;
+ val = clk_get_rate(clk->parent) / div;
+
+ return val;
+}
+
+static int _clk_uart_set_parent(struct clk *clk, struct clk *parent)
+{
+ u32 reg, mux;
+
+ reg = __raw_readl(MXC_CCM_CSCDR1) & ~MXC_CCM_CSCDR1_UART_CLK_SEL_MASK;
+
+ if (parent == &osc_clk)
+ mux = 1;
+ else
+ mux = 0; /* osc */
+
+ reg |= mux << MXC_CCM_CSCDR2_ECSPI_CLK_SEL_OFFSET;
+
+ __raw_writel(reg, MXC_CCM_CSCDR1);
+
+ return 0;
+}
+
+static struct clk uart_clk[] = {
+ {
+ __INIT_CLK_DEBUG(uart_clk)
+ .id = 0,
+ .parent = &pll3_80M,
+ .enable_reg = MXC_CCM_CCGR5,
+ .enable_shift = MXC_CCM_CCGRx_CG12_OFFSET,
+ .enable = _clk_enable,
+ .disable = _clk_disable,
+ .secondary = &uart_clk[1],
+ .set_rate = _clk_uart_set_rate,
+ .get_rate = _clk_uart_get_rate,
+ .round_rate = _clk_uart_round_rate,
+ .set_parent = _clk_uart_set_parent,
+ },
+ {
+ __INIT_CLK_DEBUG(uart_serial_clk)
+ .id = 1,
+ .enable_reg = MXC_CCM_CCGR5,
+ .enable_shift = MXC_CCM_CCGRx_CG13_OFFSET,
+ .enable = _clk_enable,
+ .disable = _clk_disable,
+ },
+};
+
+static struct clk aips_tz2_clk = {
+ __INIT_CLK_DEBUG(aips_tz2_clk)
+ .parent = &ahb_clk,
+ .enable_reg = MXC_CCM_CCGR0,
+ .enable_shift = MXC_CCM_CCGRx_CG1_OFFSET,
+ .enable = _clk_enable,
+ .disable = _clk_disable_inwait,
+};
+
+static struct clk aips_tz1_clk = {
+ __INIT_CLK_DEBUG(aips_tz1_clk)
+ .parent = &ahb_clk,
+ .enable_reg = MXC_CCM_CCGR0,
+ .enable_shift = MXC_CCM_CCGRx_CG0_OFFSET,
+ .enable = _clk_enable,
+ .disable = _clk_disable_inwait,
+};
+
+/* set the parent by the ipcg table */
+
+static struct clk pwm_clk[] = {
+ {
+ __INIT_CLK_DEBUG(pwm_clk_0)
+ .parent = &ipg_perclk,
+ .id = 0,
+ .enable_reg = MXC_CCM_CCGR4,
+ .enable_shift = MXC_CCM_CCGRx_CG8_OFFSET,
+ .enable = _clk_enable,
+ .disable = _clk_disable,
+ },
+ {
+ __INIT_CLK_DEBUG(pwm_clk_1)
+ .parent = &ipg_perclk,
+ .id = 1,
+ .enable_reg = MXC_CCM_CCGR4,
+ .enable_shift = MXC_CCM_CCGRx_CG9_OFFSET,
+ .enable = _clk_enable,
+ .disable = _clk_disable,
+ },
+ {
+ __INIT_CLK_DEBUG(pwm_clk_2)
+ .parent = &ipg_perclk,
+ .id = 2,
+ .enable_reg = MXC_CCM_CCGR4,
+ .enable_shift = MXC_CCM_CCGRx_CG10_OFFSET,
+ .enable = _clk_enable,
+ .disable = _clk_disable,
+ },
+ {
+ __INIT_CLK_DEBUG(pwm_clk_3)
+ .parent = &ipg_perclk,
+ .id = 3,
+ .enable_reg = MXC_CCM_CCGR4,
+ .enable_shift = MXC_CCM_CCGRx_CG11_OFFSET,
+ .enable = _clk_enable,
+ .disable = _clk_disable,
+ },
+};
+
+static struct clk usboh3_clk[] = {
+ {
+ __INIT_CLK_DEBUG(usboh3_clk)
+ .parent = &ahb_clk,
+ .enable = _clk_enable,
+ .enable_reg = MXC_CCM_CCGR6,
+ .enable_shift = MXC_CCM_CCGRx_CG0_OFFSET,
+ .disable = _clk_disable,
+ .secondary = &usboh3_clk[1],
+ .flags = AHB_HIGH_SET_POINT | CPU_FREQ_TRIG_UPDATE,
+ },
+ {
+ .parent = &mmdc_ch1_axi_clk[0],
+ .secondary = &mx6per1_clk,
+ },
+};
+
+static int _clk_enable1(struct clk *clk)
+{
+ u32 reg;
+ reg = __raw_readl(clk->enable_reg);
+ reg |= 1 << clk->enable_shift;
+ __raw_writel(reg, clk->enable_reg);
+
+ return 0;
+}
+
+static void _clk_disable1(struct clk *clk)
+{
+ u32 reg;
+ reg = __raw_readl(clk->enable_reg);
+ reg &= ~(1 << clk->enable_shift);
+ __raw_writel(reg, clk->enable_reg);
+}
+
+static int _clk_clko_set_parent(struct clk *clk, struct clk *parent)
+{
+ u32 sel, reg;
+
+ if (parent == &pll3_usb_otg_main_clk)
+ sel = 0;
+ else if (parent == &pll2_528_bus_main_clk)
+ sel = 1;
+ else if (parent == &pll1_sys_main_clk)
+ sel = 2;
+ else if (parent == &pll5_video_main_clk)
+ sel = 3;
+ else if (parent == &axi_clk)
+ sel = 5;
+ else if (parent == &pxp_axi_clk)
+ sel = 7;
+ else if (parent == &epdc_axi_clk)
+ sel = 8;
+ else if (parent == &lcdif_pix_clk)
+ sel = 9;
+ else if (parent == &epdc_pix_clk)
+ sel = 10;
+ else if (parent == &ahb_clk)
+ sel = 11;
+ else if (parent == &ipg_clk)
+ sel = 12;
+ else if (parent == &ipg_perclk)
+ sel = 13;
+ else if (parent == &ckil_clk)
+ sel = 14;
+ else if (parent == &pll4_audio_main_clk)
+ sel = 15;
+ else
+ return -EINVAL;
+
+ reg = __raw_readl(MXC_CCM_CCOSR);
+ reg &= ~MXC_CCM_CCOSR_CKOL_SEL_MASK;
+ reg |= sel << MXC_CCM_CCOSR_CKOL_SEL_OFFSET;
+ __raw_writel(reg, MXC_CCM_CCOSR);
+ return 0;
+}
+
+static unsigned long _clk_clko_get_rate(struct clk *clk)
+{
+ u32 reg = __raw_readl(MXC_CCM_CCOSR);
+ u32 div = ((reg & MXC_CCM_CCOSR_CKOL_DIV_MASK) >>
+ MXC_CCM_CCOSR_CKOL_DIV_OFFSET) + 1;
+ return clk_get_rate(clk->parent) / div;
+}
+
+static int _clk_clko_set_rate(struct clk *clk, unsigned long rate)
+{
+ u32 reg;
+ u32 parent_rate = clk_get_rate(clk->parent);
+ u32 div = parent_rate / rate;
+
+ if (div == 0)
+ div++;
+ if (((parent_rate / div) != rate) || (div > 8))
+ return -EINVAL;
+
+ reg = __raw_readl(MXC_CCM_CCOSR);
+ reg &= ~MXC_CCM_CCOSR_CKOL_DIV_MASK;
+ reg |= (div - 1) << MXC_CCM_CCOSR_CKOL_DIV_OFFSET;
+ __raw_writel(reg, MXC_CCM_CCOSR);
+ return 0;
+}
+
+static unsigned long _clk_clko_round_rate(struct clk *clk,
+ unsigned long rate)
+{
+ u32 parent_rate = clk_get_rate(clk->parent);
+ u32 div = parent_rate / rate;
+
+ /* Make sure rate is not greater than the maximum value for the clock.
+ * Also prevent a div of 0.
+ */
+ if (div == 0)
+ div++;
+ if (div > 8)
+ div = 8;
+ return parent_rate / div;
+}
+
+static int _clk_clko2_set_parent(struct clk *clk, struct clk *parent)
+{
+ u32 sel, reg;
+
+ if (parent == &mmdc_ch1_axi_clk[0])
+ sel = 0;
+ else if (parent == &usdhc4_clk)
+ sel = 2;
+ else if (parent == &usdhc1_clk)
+ sel = 3;
+ else if (parent == &ecspi_clk[0])
+ sel = 6;
+ else if (parent == &usdhc3_clk)
+ sel = 8;
+ else if (parent == &ipu1_clk)
+ sel = 11;
+ else if (parent == &ipu2_clk)
+ sel = 12;
+
+ else if (parent == &osc_clk)
+ sel = 14;
+ else if (parent == &usdhc2_clk)
+ sel = 17;
+ else if (parent == &ssi1_clk)
+ sel = 18;
+ else if (parent == &ssi2_clk)
+ sel = 19;
+ else if (parent == &ssi3_clk)
+ sel = 20;
+ else if (parent == &uart_clk[0])
+ sel = 28;
+ else if (parent == &spdif0_clk[0])
+ sel = 29;
+ else if (parent == &spdif0_clk[1])
+ sel = 30;
+ else
+ return -EINVAL;
+
+ reg = __raw_readl(MXC_CCM_CCOSR);
+ reg &= ~MXC_CCM_CCOSR_CKO2_SEL_MASK;
+ reg |= sel << MXC_CCM_CCOSR_CKO2_SEL_OFFSET;
+ __raw_writel(reg, MXC_CCM_CCOSR);
+ return 0;
+}
+
+static unsigned long _clk_clko2_get_rate(struct clk *clk)
+{
+ u32 reg = __raw_readl(MXC_CCM_CCOSR);
+ u32 div = ((reg & MXC_CCM_CCOSR_CKO2_DIV_MASK) >>
+ MXC_CCM_CCOSR_CKO2_DIV_OFFSET) + 1;
+ return clk_get_rate(clk->parent) / div;
+}
+
+static int _clk_clko2_set_rate(struct clk *clk, unsigned long rate)
+{
+ u32 reg;
+ u32 parent_rate = clk_get_rate(clk->parent);
+ u32 div = parent_rate / rate;
+
+ if (div == 0)
+ div++;
+ if (((parent_rate / div) != rate) || (div > 8))
+ return -EINVAL;
+
+ reg = __raw_readl(MXC_CCM_CCOSR);
+ reg &= ~MXC_CCM_CCOSR_CKO2_DIV_MASK;
+ reg |= (div - 1) << MXC_CCM_CCOSR_CKO2_DIV_OFFSET;
+ __raw_writel(reg, MXC_CCM_CCOSR);
+ return 0;
+}
+
+static struct clk clko_clk = {
+ __INIT_CLK_DEBUG(clko_clk)
+ .parent = &pll2_528_bus_main_clk,
+ .enable = _clk_enable1,
+ .enable_reg = MXC_CCM_CCOSR,
+ .enable_shift = MXC_CCM_CCOSR_CKOL_EN_OFFSET,
+ .disable = _clk_disable1,
+ .set_parent = _clk_clko_set_parent,
+ .set_rate = _clk_clko_set_rate,
+ .get_rate = _clk_clko_get_rate,
+ .round_rate = _clk_clko_round_rate,
+};
+
+static struct clk clko2_clk = {
+ __INIT_CLK_DEBUG(clko2_clk)
+ .parent = &usdhc4_clk,
+ .enable = _clk_enable1,
+ .enable_reg = MXC_CCM_CCOSR,
+ .enable_shift = MXC_CCM_CCOSR_CKO2_EN_OFFSET,
+ .disable = _clk_disable1,
+ .set_parent = _clk_clko2_set_parent,
+ .set_rate = _clk_clko2_set_rate,
+ .get_rate = _clk_clko2_get_rate,
+ .round_rate = _clk_clko_round_rate,
+};
+
+static struct clk perfmon0_clk = {
+ __INIT_CLK_DEBUG(perfmon0_clk)
+ .parent = &mmdc_ch1_axi_clk[0],
+ .enable = _clk_enable1,
+ .enable_reg = MXC_CCM_CCGR4,
+ .enable_shift = MXC_CCM_CCGRx_CG1_OFFSET,
+ .disable = _clk_disable1,
+};
+
+static struct clk perfmon1_clk = {
+ __INIT_CLK_DEBUG(perfmon1_clk)
+ .parent = &ipu1_clk,
+ .enable = _clk_enable1,
+ .enable_reg = MXC_CCM_CCGR4,
+ .enable_shift = MXC_CCM_CCGRx_CG2_OFFSET,
+ .disable = _clk_disable1,
+};
+
+static struct clk perfmon2_clk = {
+ __INIT_CLK_DEBUG(perfmon2_clk)
+ .parent = &mmdc_ch1_axi_clk[0],
+ .enable = _clk_enable1,
+ .enable_reg = MXC_CCM_CCGR4,
+ .enable_shift = MXC_CCM_CCGRx_CG3_OFFSET,
+ .disable = _clk_disable1,
+};
+
+static struct clk dummy_clk = {
+ .id = 0,
+};
+
+#define _REGISTER_CLOCK(d, n, c) \
+ { \
+ .dev_id = d, \
+ .con_id = n, \
+ .clk = &c, \
+ }
+
+
+static struct clk_lookup lookups[] = {
+ _REGISTER_CLOCK(NULL, "osc", osc_clk),
+ _REGISTER_CLOCK(NULL, "ckih", ckih_clk),
+ _REGISTER_CLOCK(NULL, "ckih2", ckih2_clk),
+ _REGISTER_CLOCK(NULL, "ckil", ckil_clk),
+ _REGISTER_CLOCK(NULL, "pll1_main_clk", pll1_sys_main_clk),
+ _REGISTER_CLOCK(NULL, "pll1_sw_clk", pll1_sw_clk),
+ _REGISTER_CLOCK(NULL, "pll2", pll2_528_bus_main_clk),
+ _REGISTER_CLOCK(NULL, "pll2_pfd2_400M", pll2_pfd2_400M),
+ _REGISTER_CLOCK(NULL, "pll2_pfd0_352M", pll2_pfd0_352M),
+ _REGISTER_CLOCK(NULL, "pll2_pfd1_594M", pll2_pfd1_594M),
+ _REGISTER_CLOCK(NULL, "pll2_200M", pll2_200M),
+ _REGISTER_CLOCK(NULL, "pll3_main_clk", pll3_usb_otg_main_clk),
+ _REGISTER_CLOCK(NULL, "pll3_pfd2_508M", pll3_pfd2_508M),
+ _REGISTER_CLOCK(NULL, "pll3_pfd3_454M", pll3_pfd3_454M),
+ _REGISTER_CLOCK(NULL, "pll3_pfd0_720M", pll3_pfd0_720M),
+ _REGISTER_CLOCK(NULL, "pll3_pfd1_540M", pll3_pfd1_540M),
+ _REGISTER_CLOCK(NULL, "pll3_sw_clk", pll3_sw_clk),
+ _REGISTER_CLOCK(NULL, "pll3_120M", pll3_120M),
+ _REGISTER_CLOCK(NULL, "pll3_80M", pll3_80M),
+ _REGISTER_CLOCK(NULL, "pll3_60M", pll3_60M),
+ _REGISTER_CLOCK(NULL, "pll4", pll4_audio_main_clk),
+ _REGISTER_CLOCK(NULL, "pll5", pll5_video_main_clk),
+ _REGISTER_CLOCK(NULL, "pll6", pll6_enet_main_clk),
+ _REGISTER_CLOCK(NULL, "extern_audio_clk", extern_audio_clk),
+ _REGISTER_CLOCK(NULL, "cpu_clk", cpu_clk),
+ _REGISTER_CLOCK("smp_twd", NULL, twd_clk),
+ _REGISTER_CLOCK(NULL, "periph_clk", periph_clk),
+ _REGISTER_CLOCK(NULL, "axi_clk", axi_clk),
+ _REGISTER_CLOCK(NULL, "mmdc_ch0_axi", mmdc_ch1_axi_clk[0]),
+ _REGISTER_CLOCK(NULL, "ahb", ahb_clk),
+ _REGISTER_CLOCK(NULL, "ipg_clk", ipg_clk),
+ _REGISTER_CLOCK(NULL, "ipg_perclk", ipg_perclk),
+ _REGISTER_CLOCK(NULL, "spba", spba_clk),
+ _REGISTER_CLOCK("imx-sdma", NULL, sdma_clk[0]),
+ _REGISTER_CLOCK(NULL, "iim_clk", iim_clk),
+ _REGISTER_CLOCK(NULL, "i2c_clk", i2c_clk[0]),
+ _REGISTER_CLOCK("imx-i2c.1", NULL, i2c_clk[1]),
+ _REGISTER_CLOCK("imx-i2c.2", NULL, i2c_clk[2]),
+ _REGISTER_CLOCK(NULL, "csi_clk", ipu1_clk),
+ _REGISTER_CLOCK(NULL, "elcdif_axi", ipu2_clk),
+ _REGISTER_CLOCK("sdhci-esdhc-imx.0", NULL, usdhc1_clk),
+ _REGISTER_CLOCK("sdhci-esdhc-imx.1", NULL, usdhc2_clk),
+ _REGISTER_CLOCK("sdhci-esdhc-imx.2", NULL, usdhc3_clk),
+ _REGISTER_CLOCK("sdhci-esdhc-imx.3", NULL, usdhc4_clk),
+ _REGISTER_CLOCK("imx-ssi.0", NULL, ssi1_clk),
+ _REGISTER_CLOCK("imx-ssi.1", NULL, ssi2_clk),
+ _REGISTER_CLOCK("imx-ssi.2", NULL, ssi3_clk),
+ _REGISTER_CLOCK(NULL, "pxp_axi", pxp_axi_clk),
+ _REGISTER_CLOCK(NULL, "epdc_axi", epdc_axi_clk),
+ _REGISTER_CLOCK(NULL, "epdc_pix", epdc_pix_clk),
+ _REGISTER_CLOCK(NULL, "elcdif_pix", lcdif_pix_clk),
+ _REGISTER_CLOCK("mxc_spdif.0", NULL, spdif0_clk[0]),
+ _REGISTER_CLOCK("imx6q-ecspi.0", NULL, ecspi_clk[0]),
+ _REGISTER_CLOCK("imx6q-ecspi.1", NULL, ecspi_clk[1]),
+ _REGISTER_CLOCK("imx6q-ecspi.2", NULL, ecspi_clk[2]),
+ _REGISTER_CLOCK("imx6q-ecspi.3", NULL, ecspi_clk[3]),
+ _REGISTER_CLOCK("imx6q-ecspi.4", NULL, ecspi_clk[4]),
+ _REGISTER_CLOCK(NULL, "emi_slow_clk", emi_slow_clk),
+ _REGISTER_CLOCK("imx-uart.0", NULL, uart_clk[0]),
+ _REGISTER_CLOCK("imx-uart.1", NULL, uart_clk[0]),
+ _REGISTER_CLOCK("imx-uart.2", NULL, uart_clk[0]),
+ _REGISTER_CLOCK("imx-uart.3", NULL, uart_clk[0]),
+ _REGISTER_CLOCK(NULL, "gpt", gpt_clk[0]),
+ _REGISTER_CLOCK("mxc_pwm.0", NULL, pwm_clk[0]),
+ _REGISTER_CLOCK("mxc_pwm.1", NULL, pwm_clk[1]),
+ _REGISTER_CLOCK("mxc_pwm.2", NULL, pwm_clk[2]),
+ _REGISTER_CLOCK("mxc_pwm.3", NULL, pwm_clk[3]),
+ _REGISTER_CLOCK("fec.0", NULL, fec_clk[0]),
+ _REGISTER_CLOCK(NULL, "usboh3_clk", usboh3_clk[0]),
+ _REGISTER_CLOCK(NULL, "usb_phy1_clk", usb_phy1_clk),
+ _REGISTER_CLOCK(NULL, "usb_phy3_clk", usb_phy3_clk),
+ _REGISTER_CLOCK(NULL, "usb_phy4_clk", usb_phy4_clk),
+ _REGISTER_CLOCK("imx2-wdt.0", NULL, dummy_clk),
+ _REGISTER_CLOCK("imx2-wdt.1", NULL, dummy_clk),
+ _REGISTER_CLOCK(NULL, NULL, aips_tz2_clk),
+ _REGISTER_CLOCK(NULL, NULL, aips_tz1_clk),
+ _REGISTER_CLOCK(NULL, "clko_clk", clko_clk),
+ _REGISTER_CLOCK(NULL, "clko2_clk", clko2_clk),
+ _REGISTER_CLOCK("mxs-perfmon.0", "perfmon", perfmon0_clk),
+ _REGISTER_CLOCK("mxs-perfmon.1", "perfmon", perfmon1_clk),
+ _REGISTER_CLOCK("mxs-perfmon.2", "perfmon", perfmon2_clk),
+ _REGISTER_CLOCK(NULL, "anaclk_1", anaclk_1),
+ _REGISTER_CLOCK(NULL, "anaclk_2", anaclk_2),
+};
+
+static void clk_tree_init(void)
+
+{
+ unsigned int reg;
+
+ reg = __raw_readl(MMDC_MDMISC_OFFSET);
+ /*
+ * For lpddr2 board, current freq only support up to 400MHz,
+ * in this case, periph clk will set to 400MHz in uboot,
+ * so in clock init, we need to check whether the ddr clock
+ * is set to 400MHz, if yes, then we should set periph clk
+ * parent to pll2_pfd2_400M.
+ */
+ if ((reg & MMDC_MDMISC_DDR_TYPE_MASK) ==
+ (0x1 << MMDC_MDMISC_DDR_TYPE_OFFSET)) {
+ clk_set_parent(&periph_clk, &pll2_pfd2_400M);
+ printk(KERN_INFO "Set periph_clk's parent to pll2_pfd2_400M!\n");
+ }
+}
+
+
+int __init mx6sl_clocks_init(unsigned long ckil, unsigned long osc,
+ unsigned long ckih1, unsigned long ckih2)
+{
+ __iomem void *base;
+ int i;
+
+ external_low_reference = ckil;
+ external_high_reference = ckih1;
+ ckih2_reference = ckih2;
+ oscillator_reference = osc;
+
+ apll_base = ioremap(ANATOP_BASE_ADDR, SZ_4K);
+
+ for (i = 0; i < ARRAY_SIZE(lookups); i++) {
+ clkdev_add(&lookups[i]);
+ clk_debug_register(lookups[i].clk);
+ }
+
+ /* Disable un-necessary PFDs & PLLs */
+
+ /* keep correct count. */
+ clk_enable(&cpu_clk);
+ clk_enable(&periph_clk);
+
+ clk_tree_init();
+
+ /* Set AHB to 132MHz. */
+ clk_set_rate(&ahb_clk, clk_round_rate(&ahb_clk, 132000000));
+
+ pll2_pfd0_352M.disable(&pll2_pfd0_352M);
+ pll2_pfd1_594M.disable(&pll2_pfd1_594M);
+
+ pll3_pfd3_454M.disable(&pll3_pfd3_454M);
+ pll3_pfd2_508M.disable(&pll3_pfd2_508M);
+ pll3_pfd1_540M.disable(&pll3_pfd1_540M);
+ pll3_pfd0_720M.disable(&pll3_pfd0_720M);
+
+ pll3_usb_otg_main_clk.disable(&pll3_usb_otg_main_clk);
+ pll4_audio_main_clk.disable(&pll4_audio_main_clk);
+ pll5_video_main_clk.disable(&pll5_video_main_clk);
+ pll6_enet_main_clk.disable(&pll6_enet_main_clk);
+
+ /* Initialize Audio and Video PLLs to valid frequency (650MHz). */
+ clk_set_rate(&pll4_audio_main_clk, 650000000);
+ clk_set_rate(&pll5_video_main_clk, 650000000);
+
+ clk_set_parent(&clko_clk, &ipg_clk);
+
+ mx6_cpu_op_init();
+ cpu_op_tbl = get_cpu_op(&cpu_op_nr);
+
+ /* Gate off all possible clocks */
+ if (mxc_jtag_enabled) {
+ __raw_writel(3 << MXC_CCM_CCGRx_CG11_OFFSET |
+ 3 << MXC_CCM_CCGRx_CG2_OFFSET |
+ 3 << MXC_CCM_CCGRx_CG1_OFFSET |
+ 3 << MXC_CCM_CCGRx_CG0_OFFSET, MXC_CCM_CCGR0);
+ } else {
+ __raw_writel(1 << MXC_CCM_CCGRx_CG11_OFFSET |
+ 3 << MXC_CCM_CCGRx_CG2_OFFSET |
+ 3 << MXC_CCM_CCGRx_CG1_OFFSET |
+ 3 << MXC_CCM_CCGRx_CG0_OFFSET, MXC_CCM_CCGR0);
+ }
+ __raw_writel(3 << MXC_CCM_CCGRx_CG10_OFFSET |
+ 3 << MXC_CCM_CCGRx_CG11_OFFSET, MXC_CCM_CCGR1);
+ __raw_writel(1 << MXC_CCM_CCGRx_CG12_OFFSET |
+ 1 << MXC_CCM_CCGRx_CG11_OFFSET |
+ 3 << MXC_CCM_CCGRx_CG10_OFFSET |
+ 3 << MXC_CCM_CCGRx_CG9_OFFSET |
+ 3 << MXC_CCM_CCGRx_CG8_OFFSET, MXC_CCM_CCGR2);
+ __raw_writel(1 << MXC_CCM_CCGRx_CG14_OFFSET |
+ 3 << MXC_CCM_CCGRx_CG13_OFFSET |
+ 3 << MXC_CCM_CCGRx_CG12_OFFSET |
+ 3 << MXC_CCM_CCGRx_CG11_OFFSET |
+ 3 << MXC_CCM_CCGRx_CG10_OFFSET, MXC_CCM_CCGR3);
+ __raw_writel(3 << MXC_CCM_CCGRx_CG7_OFFSET |
+ 1 << MXC_CCM_CCGRx_CG6_OFFSET |
+ 1 << MXC_CCM_CCGRx_CG4_OFFSET, MXC_CCM_CCGR4);
+ __raw_writel(1 << MXC_CCM_CCGRx_CG0_OFFSET, MXC_CCM_CCGR5);
+
+ __raw_writel(0, MXC_CCM_CCGR6);
+
+ /* S/PDIF */
+ clk_set_parent(&spdif0_clk[0], &pll3_pfd3_454M);
+
+ /* pxp & epdc axi */
+ clk_set_parent(&pxp_axi_clk, &pll2_pfd2_400M);
+ clk_set_rate(&pxp_axi_clk, 198000000);
+ clk_set_parent(&epdc_axi_clk, &pll2_pfd2_400M);
+ clk_set_rate(&epdc_axi_clk, 198000000);
+
+ /* epdc pix - PLL5 as parent */
+ clk_set_parent(&epdc_pix_clk, &pll5_video_main_clk);
+ /* lcdif pix - PLL5 as parent */
+ clk_set_parent(&lcdif_pix_clk, &pll5_video_main_clk);
+
+ gpt_clk[0].parent = &ipg_perclk;
+ gpt_clk[0].get_rate = NULL;
+
+ /* GPT will source from perclk, hence ipg_perclk
+ * should be from OSC24M */
+ clk_set_parent(&ipg_perclk, &osc_clk);
+
+ base = ioremap(GPT_BASE_ADDR, SZ_4K);
+ mxc_timer_init(&gpt_clk[0], base, MXC_INT_GPT);
+
+ lp_high_freq = 0;
+ lp_med_freq = 0;
+
+ return 0;
+
+}
diff --git a/arch/arm/mach-mx6/cpu.c b/arch/arm/mach-mx6/cpu.c
index 6f3765e23523..2822d2d7f17c 100644
--- a/arch/arm/mach-mx6/cpu.c
+++ b/arch/arm/mach-mx6/cpu.c
@@ -31,50 +31,42 @@
#include "crm_regs.h"
#include "cpu_op-mx6.h"
-extern unsigned int num_cpu_idle_lock;
-
-void *mx6_wait_in_iram_base;
-void (*mx6_wait_in_iram)(void);
-extern void mx6_wait(void);
-extern int init_mmdc_settings(void);
-
struct cpu_op *(*get_cpu_op)(int *op);
-bool enable_wait_mode;
+bool enable_wait_mode = true;
u32 arm_max_freq = CPU_AT_1GHz;
+bool mem_clk_on_in_wait;
void __iomem *gpc_base;
void __iomem *ccm_base;
+extern unsigned int num_cpu_idle_lock;
+
static int cpu_silicon_rev = -1;
-#define SI_REV_OFFSET 0x48
+#define MX6_USB_ANALOG_DIGPROG 0x260
+#define MX6SL_USB_ANALOG_DIGPROG 0x280
-static int get_mx6q_srev(void)
+static int mx6_get_srev(void)
{
- void __iomem *romcp = ioremap(BOOT_ROM_BASE_ADDR, SZ_8K);
+ void __iomem *anatop = MX6_IO_ADDRESS(ANATOP_BASE_ADDR);
u32 rev;
+ if (cpu_is_mx6sl())
+ rev = __raw_readl(anatop + MX6SL_USB_ANALOG_DIGPROG);
+ else
+ rev = __raw_readl(anatop + MX6_USB_ANALOG_DIGPROG);
- if (!romcp) {
- cpu_silicon_rev = -EINVAL;
- return 0;
- }
-
- rev = __raw_readl(romcp + SI_REV_OFFSET);
rev &= 0xff;
- iounmap(romcp);
- if (rev == 0x10)
+ if (rev == 0)
return IMX_CHIP_REVISION_1_0;
- else if (rev == 0x11)
+ else if (rev == 1)
return IMX_CHIP_REVISION_1_1;
- else if (rev == 0x20)
- return IMX_CHIP_REVISION_2_0;
- return 0;
+
+ return IMX_CHIP_REVISION_UNKNOWN;
}
/*
* Returns:
* the silicon revision of the cpu
- * -EINVAL - not a mx50
*/
int mx6q_revision(void)
{
@@ -82,12 +74,44 @@ int mx6q_revision(void)
return -EINVAL;
if (cpu_silicon_rev == -1)
- cpu_silicon_rev = get_mx6q_srev();
+ cpu_silicon_rev = mx6_get_srev();
return cpu_silicon_rev;
}
EXPORT_SYMBOL(mx6q_revision);
+/*
+ * Returns:
+ * the silicon revision of the cpu
+ */
+int mx6dl_revision(void)
+{
+ if (!cpu_is_mx6dl())
+ return -EINVAL;
+
+ if (cpu_silicon_rev == -1)
+ cpu_silicon_rev = mx6_get_srev();
+
+ return cpu_silicon_rev;
+}
+EXPORT_SYMBOL(mx6dl_revision);
+
+/*
+ * Returns:
+ * the silicon revision of the cpu
+ */
+int mx6sl_revision(void)
+{
+ if (!cpu_is_mx6sl())
+ return -EINVAL;
+
+ if (cpu_silicon_rev == -1)
+ cpu_silicon_rev = mx6_get_srev();
+
+ return cpu_silicon_rev;
+}
+EXPORT_SYMBOL(mx6sl_revision);
+
static int __init post_cpu_init(void)
{
unsigned int reg;
@@ -113,13 +137,11 @@ static int __init post_cpu_init(void)
__raw_writel(reg, base + 0x50);
iounmap(base);
- if (enable_wait_mode) {
- /* Allow SCU_CLK to be disabled when all cores are in WFI*/
- base = IO_ADDRESS(SCU_BASE_ADDR);
- reg = __raw_readl(base);
- reg |= 0x20;
- __raw_writel(reg, base);
- }
+ /* Allow SCU_CLK to be disabled when all cores are in WFI*/
+ base = IO_ADDRESS(SCU_BASE_ADDR);
+ reg = __raw_readl(base);
+ reg |= 0x20;
+ __raw_writel(reg, base);
/* Disable SRC warm reset to work aound system reboot issue */
base = IO_ADDRESS(SRC_BASE_ADDR);
@@ -131,8 +153,34 @@ static int __init post_cpu_init(void)
ccm_base = MX6_IO_ADDRESS(CCM_BASE_ADDR);
num_cpu_idle_lock = 0x0;
+ if (cpu_is_mx6dl())
+ num_cpu_idle_lock = 0xffff0000;
+
+#ifdef CONFIG_SMP
+ switch (setup_max_cpus) {
+ case 3:
+ num_cpu_idle_lock = 0xff000000;
+ break;
+ case 2:
+ num_cpu_idle_lock = 0xffff0000;
+ break;
+ case 1:
+ case 0:
+ num_cpu_idle_lock = 0xffffff00;
+ break;
+ }
+#endif
+ /*
+ * The option to keep ARM memory clocks enabled during WAIT
+ * is only available on MX6SL, MX6DQ TO1.2 (or later) and
+ * MX6DL TO1.1 (or later)
+ * So if the user specifies "mem_clk_on" on any other chip,
+ * ensure that it is disabled.
+ */
+ if (!cpu_is_mx6sl() && (mx6q_revision() < IMX_CHIP_REVISION_1_2) &&
+ (mx6dl_revision() < IMX_CHIP_REVISION_1_1))
+ mem_clk_on_in_wait = false;
- init_mmdc_settings();
return 0;
}
postcore_initcall(post_cpu_init);
@@ -167,4 +215,14 @@ static int __init arm_core_max(char *p)
early_param("arm_freq", arm_core_max);
+static int __init enable_mem_clk_in_wait(char *p)
+{
+ mem_clk_on_in_wait = true;
+
+ return 0;
+}
+
+early_param("mem_clk_on", enable_mem_clk_in_wait);
+
+
diff --git a/arch/arm/mach-mx6/crm_regs.h b/arch/arm/mach-mx6/crm_regs.h
index 76229926cbd7..188dbaebd57f 100644
--- a/arch/arm/mach-mx6/crm_regs.h
+++ b/arch/arm/mach-mx6/crm_regs.h
@@ -141,6 +141,7 @@
#define ANADIG_REG0_CORE_TARGET_OFFSET 0
/* ANA MISC2 register defines */
+#define ANADIG_ANA_MISC2_REG1_BO_EN (1 << 13)
#define ANADIG_ANA_MISC2_CONTROL3_MASK 0xC0000000
#define ANADIG_ANA_MISC2_CONTROL3_OFFSET 30
@@ -257,6 +258,8 @@
#define MXC_CCM_CBCMR_PRE_PERIPH_CLK_SEL_OFFSET (18)
#define MXC_CCM_CBCMR_GPU2D_CLK_SEL_MASK (0x3 << 16)
#define MXC_CCM_CBCMR_GPU2D_CLK_SEL_OFFSET (16)
+#define MXC_CCM_CBCMR_MLB_CLK_SEL_MASK (0x3 << 16)
+#define MXC_CCM_CBCMR_MLB_CLK_SEL_OFFSET (16)
#define MXC_CCM_CBCMR_VPU_AXI_CLK_SEL_MASK (0x3 << 14)
#define MXC_CCM_CBCMR_VPU_AXI_CLK_SEL_OFFSET (14)
#define MXC_CCM_CBCMR_PERIPH_CLK2_SEL_MASK (0x3 << 12)
@@ -289,6 +292,8 @@
#define MXC_CCM_CSCMR1_SSI2_CLK_SEL_OFFSET (12)
#define MXC_CCM_CSCMR1_SSI1_CLK_SEL_MASK (0x3 << 10)
#define MXC_CCM_CSCMR1_SSI1_CLK_SEL_OFFSET (10)
+#define MXC_CCM_CSCMR1_PERCLK_CLK_SEL_MASK (0x1 << 6)
+#define MXC_CCM_CSCMR1_PERCLK_CLK_SEL_OFFSET (6)
#define MXC_CCM_CSCMR1_PERCLK_PODF_MASK (0x3F)
#define MXC_CCM_CSCMR1_PERCLK_PODF_OFFSET (0)
@@ -314,6 +319,8 @@
#define MXC_CCM_CSCDR1_USBOH3_CLK_PRED_OFFSET (8)
#define MXC_CCM_CSCDR1_USBOH3_CLK_PRED_MASK (0x7 << 8)
#define MXC_CCM_CSCDR1_USBOH3_CLK_PODF_OFFSET (6)
+#define MXC_CCM_CSCDR1_UART_CLK_SEL_MASK (0x1 << 6)
+#define MXC_CCM_CSCDR1_UART_CLK_SEL_OFFSET (6)
#define MXC_CCM_CSCDR1_USBOH3_CLK_PODF_MASK (0x3 << 6)
#define MXC_CCM_CSCDR1_UART_CLK_PODF_MASK (0x3F)
#define MXC_CCM_CSCDR1_UART_CLK_PODF_OFFSET (0)
@@ -382,6 +389,8 @@
/* Define the bits in register CSCDR2 */
#define MXC_CCM_CSCDR2_ECSPI_CLK_PODF_MASK (0x3F << 19)
#define MXC_CCM_CSCDR2_ECSPI_CLK_PODF_OFFSET (19)
+#define MXC_CCM_CSCDR2_ECSPI_CLK_SEL_MASK (0x1 << 18)
+#define MXC_CCM_CSCDR2_ECSPI_CLK_SEL_OFFSET (18)
#define MXC_CCM_CSCDR2_IPU2_DI1_PRE_CLK_SEL_MASK (0x7 << 15)
#define MXC_CCM_CSCDR2_IPU2_DI1_PRE_CLK_SEL_OFFSET (15)
#define MXC_CCM_CSCDR2_IPU2_DI1_PODF_MASK (0x7 << 12)
@@ -478,6 +487,7 @@
#define MXC_CCM_CGPR_EFUSE_PROG_SUPPLY_GATE (1 << 4)
#define MXC_CCM_CGPR_MMDC_EXT_CLK_DIS (1 << 2)
#define MXC_CCM_CGPR_PMIC_DELAY_SCALER (1)
+#define MXC_CCM_CGPR_MEM_IPG_STOP_MASK (1 << 1)
/* Define the bits in registers CCGRx */
#define MXC_CCM_CCGRx_CG_MASK 0x3
diff --git a/arch/arm/mach-mx6/devices-imx6q.h b/arch/arm/mach-mx6/devices-imx6q.h
index 69b2ad2e5500..6ecc42c16965 100644
--- a/arch/arm/mach-mx6/devices-imx6q.h
+++ b/arch/arm/mach-mx6/devices-imx6q.h
@@ -27,6 +27,10 @@ extern const struct imx_snvs_rtc_data imx6q_imx_snvs_rtc_data __initconst;
#define imx6q_add_imx_snvs_rtc() \
imx_add_snvs_rtc(&imx6q_imx_snvs_rtc_data)
+extern const struct imx_caam_data imx6q_imx_caam_data __initconst;
+#define imx6q_add_imx_caam() \
+ imx_add_caam(&imx6q_imx_caam_data)
+
extern const struct imx_anatop_thermal_imx_data
imx6q_anatop_thermal_imx_data __initconst;
#define imx6q_add_anatop_thermal_imx(id, pdata) \
@@ -40,6 +44,9 @@ extern const struct imx_dma_data imx6q_dma_data __initconst;
extern const struct imx_fec_data imx6q_fec_data __initconst;
#define imx6q_add_fec(pdata) \
imx_add_fec(&imx6q_fec_data, pdata)
+extern const struct imx_fec_data imx6sl_fec_data __initconst;
+#define imx6sl_add_fec(pdata) \
+ imx_add_fec(&imx6sl_fec_data, pdata)
extern const struct imx_sdhci_esdhc_imx_data
imx6q_sdhci_usdhc_imx_data[] __initconst;
@@ -66,6 +73,10 @@ extern const struct imx_mxc_ehci_data imx6q_mxc_ehci_hs_data[] __initconst;
#define imx6q_add_fsl_ehci_hs(id, pdata) \
imx_add_fsl_ehci(&imx6q_mxc_ehci_hs_data[id - 1], pdata)
+extern const struct imx_mxc_ehci_data imx6sl_mxc_ehci_hs_data[] __initconst;
+#define imx6sl_add_fsl_ehci_hs(id, pdata) \
+ imx_add_fsl_ehci(&imx6sl_mxc_ehci_hs_data[id - 1], pdata)
+
extern const struct imx_fsl_usb2_otg_data imx6q_fsl_usb2_otg_data __initconst;
#define imx6q_add_fsl_usb2_otg(pdata) \
imx_add_fsl_usb2_otg(&imx6q_fsl_usb2_otg_data, pdata)
@@ -78,6 +89,10 @@ extern const struct imx_fsl_usb2_wakeup_data imx6q_fsl_hs_wakeup_data[] __initco
#define imx6q_add_fsl_usb2_hs_wakeup(id, pdata) \
imx_add_fsl_usb2_wakeup(&imx6q_fsl_hs_wakeup_data[id - 1], pdata)
+extern const struct imx_fsl_usb2_wakeup_data imx6sl_fsl_hs_wakeup_data[] __initconst;
+#define imx6sl_add_fsl_usb2_hs_wakeup(id, pdata) \
+ imx_add_fsl_usb2_wakeup(&imx6sl_fsl_hs_wakeup_data[id - 1], pdata)
+
extern const struct imx_imx_esai_data imx6q_imx_esai_data[] __initconst;
#define imx6q_add_imx_esai(id, pdata) \
imx_add_imx_esai(&imx6q_imx_esai_data[id], pdata)
@@ -108,9 +123,9 @@ extern const struct imx_ldb_data imx6q_ldb_data __initconst;
platform_device_register_resndata(NULL, "mxc_v4l2_output",\
id, NULL, 0, NULL, 0);
-#define imx6q_add_v4l2_capture(id) \
+#define imx6q_add_v4l2_capture(id, pdata) \
platform_device_register_resndata(NULL, "mxc_v4l2_capture",\
- id, NULL, 0, NULL, 0);
+ id, NULL, 0, pdata, sizeof(*pdata));
extern const struct imx_mxc_hdmi_data imx6q_mxc_hdmi_data __initconst;
#define imx6q_add_mxc_hdmi(pdata) \
@@ -208,6 +223,14 @@ extern const struct imx_pxp_data imx6dl_pxp_data __initconst;
extern const struct imx_epdc_data imx6dl_epdc_data __initconst;
#define imx6dl_add_imx_epdc(pdata) \
imx_add_imx_epdc(&imx6dl_epdc_data, pdata)
+
+extern const struct imx_epdc_data imx6sl_spdc_data __initconst;
+#define imx6sl_add_imx_spdc(pdata) \
+ imx_add_imx_spdc(&imx6sl_spdc_data, pdata)
+
+extern const struct imx_elcdif_data imx6dl_elcdif_data __initconst;
+#define imx6dl_add_imx_elcdif(pdata) \
+ imx_add_imx_elcdif(&imx6dl_elcdif_data, pdata)
extern const struct imx_vdoa_data imx6q_vdoa_data __initconst;
#define imx6q_add_vdoa() imx_add_vdoa(&imx6q_vdoa_data)
diff --git a/arch/arm/mach-mx6/mm.c b/arch/arm/mach-mx6/mm.c
index 6e80f0aa11a3..3cf6b226fca6 100644
--- a/arch/arm/mach-mx6/mm.c
+++ b/arch/arm/mach-mx6/mm.c
@@ -30,6 +30,7 @@
#include <mach/common.h>
#include <mach/iomux-v3.h>
#include <asm/hardware/cache-l2x0.h>
+#include "crm_regs.h"
/*!
* This structure defines the MX6 memory map.
@@ -59,14 +60,24 @@ static struct map_desc mx6_io_desc[] __initdata = {
static void mx6_set_cpu_type(void)
{
- u32 cpu_type = readl(IO_ADDRESS(ANATOP_BASE_ADDR + 0x260));
+ u32 cpu_type = readl(IO_ADDRESS(ANATOP_BASE_ADDR + 0x280));
cpu_type >>= 16;
- if (cpu_type == 0x63)
+ if (cpu_type == 0x60) {
+ mxc_set_cpu_type(MXC_CPU_MX6SL);
+ imx_print_silicon_rev("i.MX6SoloLite", mx6sl_revision());
+ return;
+ }
+
+ cpu_type = readl(IO_ADDRESS(ANATOP_BASE_ADDR + 0x260));
+ cpu_type >>= 16;
+ if (cpu_type == 0x63) {
mxc_set_cpu_type(MXC_CPU_MX6Q);
- else if (cpu_type == 0x61)
+ imx_print_silicon_rev("i.MX6Q", mx6q_revision());
+ } else if (cpu_type == 0x61) {
mxc_set_cpu_type(MXC_CPU_MX6DL);
- else
+ imx_print_silicon_rev("i.MX6DL/SOLO", mx6dl_revision());
+ } else
pr_err("Unknown CPU type: %x\n", cpu_type);
}
@@ -88,6 +99,15 @@ int mxc_init_l2x0(void)
{
unsigned int val;
+ #define IOMUXC_GPR11_L2CACHE_AS_OCRAM 0x00000002
+
+ val = readl(IOMUXC_GPR11);
+ if (cpu_is_mx6sl() && (val & IOMUXC_GPR11_L2CACHE_AS_OCRAM)) {
+ /* L2 cache configured as OCRAM, reset it */
+ val &= ~IOMUXC_GPR11_L2CACHE_AS_OCRAM;
+ writel(val, IOMUXC_GPR11);
+ }
+
writel(0x132, IO_ADDRESS(L2_BASE_ADDR + L2X0_TAG_LATENCY_CTRL));
writel(0x132, IO_ADDRESS(L2_BASE_ADDR + L2X0_DATA_LATENCY_CTRL));
diff --git a/arch/arm/mach-mx6/mx6_ddr_freq.S b/arch/arm/mach-mx6/mx6_ddr_freq.S
index 85af2a402e68..fbaa44df8cdc 100644
--- a/arch/arm/mach-mx6/mx6_ddr_freq.S
+++ b/arch/arm/mach-mx6/mx6_ddr_freq.S
@@ -27,7 +27,7 @@
ldr r0, [r6, #0x14]
and r0, r0, #0x2000000
cmp r0, #0x2000000
- beq switch_pre_periph_clk_528
+ beq set_ahb_podf_before_switch
/* Step 1: Change periph_clk to be sourced from pll3_clk. */
/* Ensure PLL3 is the source and set the divider to 1. */
@@ -39,6 +39,20 @@
bic r0, r0, #0x38000000
str r0, [r6, #0x14]
+ /* Set the AHB dividers before the switch. */
+ /* Don't change AXI clock divider. */
+ /* Set the MMDC_DIV=1, AHB_DIV=4 (need to maintain GPT divider). */
+ ldr r0, [r6, #0x14]
+ ldr r2, =0x381D00
+ bic r0, r0, r2
+ orr r0, r0, #0xD00
+ str r0, [r6, #0x14]
+
+wait_div_update528:
+ ldr r0, [r6, #0x48]
+ cmp r0, #0
+ bne wait_div_update528
+
/* Now switch periph_clk to pll3_main_clk. */
ldr r0, [r6, #0x14]
orr r0, r0, #0x2000000
@@ -49,25 +63,33 @@ periph_clk_switch3:
cmp r0, #0
bne periph_clk_switch3
-switch_pre_periph_clk_528:
+ b switch_pre_periph_clk_528
- /* Now switch pre_periph_clk to PLL2_528MHz. */
- ldr r0, [r6, #0x18]
- bic r0, r0, #0xC0000
- str r0, [r6, #0x18]
-
- /* Set the MMDC_DIV=1, AXI_DIV = 2, AHB_DIV=4 (need to maintain GPT divider). */
+set_ahb_podf_before_switch:
+ /* Set the AHB dividers before the switch. */
+ /* Especially if the AHB is at 24MHz, divider
+ * would be at divide by 1 and clock
+ * would be too fast when switching to PLL3.
+ */
+ /* Don't change AXI clock divider. */
+ /* Set the MMDC_DIV=1, AHB_DIV=4 (need to maintain GPT divider). */
ldr r0, [r6, #0x14]
- ldr r2, =0x3F1D00
+ ldr r2, =0x381D00
bic r0, r0, r2
- orr r0, r0, #0x10000
orr r0, r0, #0xD00
str r0, [r6, #0x14]
-wait_div_update1:
+wait_div_update528_1:
ldr r0, [r6, #0x48]
cmp r0, #0
- bne wait_div_update1
+ bne wait_div_update528_1
+
+switch_pre_periph_clk_528:
+
+ /* Now switch pre_periph_clk to PLL2_528MHz. */
+ ldr r0, [r6, #0x18]
+ bic r0, r0, #0xC0000
+ str r0, [r6, #0x18]
/* Now switch periph_clk back. */
ldr r0, [r6, #0x14]
@@ -82,18 +104,17 @@ periph_clk_switch4:
/* Change the GPT divider so that its at 6MHz. */
ldr r0, [r6, #0x1C]
bic r0, r0, #0x3F
- orr r0, r0, #0xB
+ orr r0, r0, #0xA
str r0, [r6, #0x1C]
-
.endm
.macro switch_to_400MHz
/* check if periph_clk_sel is already set */
- ldr r0, [r6, #0x14]
- and r0, r0, #0x2000000
- cmp r0, #0x2000000
- beq switch_pre_periph_clk_400
+ ldr r0, [r6, #0x14]
+ and r0, r0, #0x2000000
+ cmp r0, #0x2000000
+ beq set_ahb_podf_before_switch1
/* Step 1: Change periph_clk to be sourced from pll3_clk. */
/* Ensure PLL3 is the source and set the divider to 1. */
@@ -115,26 +136,34 @@ periph_clk_switch5:
cmp r0, #0
bne periph_clk_switch5
-switch_pre_periph_clk_400:
+ b switch_pre_periph_clk_400
- /* Now switch pre_periph_clk to PFD_400MHz. */
- ldr r0, [r6, #0x18]
- bic r0, r0, #0xC0000
- orr r0, r0, #0x40000
- str r0, [r6, #0x18]
-
- /* Set the MMDC_DIV=1, AXI_DIV = 2, AHB_DIV=3 (need to maintain GPT divider). */
+set_ahb_podf_before_switch1:
+ /* Set the AHB dividers before the switch. */
+ /* Especially if the AHB is at 24MHz, divider
+ * would be at divide by 1 and clock
+ * would be too fast when switching to PLL3.
+ */
+ /* Don't change AXI clock divider. */
+ /* Set the MMDC_DIV=1, AHB_DIV=4 (need to maintain GPT divider). */
ldr r0, [r6, #0x14]
- ldr r2, =0x3F1D00
+ ldr r2, =0x381D00
bic r0, r0, r2
- orr r0, r0, #0x10000
- orr r0, r0, #0x900
+ orr r0, r0, #0xD00
str r0, [r6, #0x14]
-wait_div_update400:
+wait_div_update400_1:
ldr r0, [r6, #0x48]
cmp r0, #0
- bne wait_div_update400
+ bne wait_div_update400_1
+
+switch_pre_periph_clk_400:
+
+ /* Now switch pre_periph_clk to PFD_400MHz. */
+ ldr r0, [r6, #0x18]
+ bic r0, r0, #0xC0000
+ orr r0, r0, #0x40000
+ str r0, [r6, #0x18]
/* Now switch periph_clk back. */
ldr r0, [r6, #0x14]
@@ -146,10 +175,24 @@ periph_clk_switch6:
cmp r0, #0
bne periph_clk_switch6
+ /* Change AHB divider so that we are at 400/3=133MHz. */
+ /* Don't change AXI clock divider. */
+ /* Set the MMDC_DIV=1, AHB_DIV=3 (need to maintain GPT divider). */
+ ldr r0, [r6, #0x14]
+ ldr r2, =0x381D00
+ bic r0, r0, r2
+ orr r0, r0, #0x900
+ str r0, [r6, #0x14]
+
+wait_div_update400_2:
+ ldr r0, [r6, #0x48]
+ cmp r0, #0
+ bne wait_div_update400_2
+
/* Change the GPT divider so that its at 6MHz. */
ldr r0, [r6, #0x1C]
bic r0, r0, #0x3F
- orr r0, r0, #0xB
+ orr r0, r0, #0xA
str r0, [r6, #0x1C]
.endm
@@ -346,6 +389,19 @@ ddr_freq_change:
bic r0, r0, #0xff00
str r0, [r5, #0x4]
+/* Delay for a while */
+ ldr r1, =4
+delay1:
+ ldr r2, =0
+cont1:
+ ldr r0, [r5, r2]
+ add r2, r2, #4
+ cmp r2, #16
+ bne cont1
+ sub r1, r1, #1
+ cmp r1, #0
+ bgt delay1
+
/* set CON_REG */
ldr r0, =0x8000
str r0, [r5, #0x1C]
@@ -614,7 +670,7 @@ switch_freq_528:
continue_dll_on:
- /* set step-by-step mode */
+ /* set SBS step-by-step mode */
ldr r0, [r5, #0x410]
orr r0, r0, #0x100
str r0, [r5, #0x410]
@@ -668,7 +724,6 @@ cont5:
sub r1, r1, #1
cmp r1, #0
bgt delay5
-
/* Disable dqs pull down in the IOMUX. */
/*
setmem /32 0x020e05a8 = 0x00000030 // IOMUXC_SW_PAD_CTL_PAD_DRAM_SDQS0 - DSE=110
diff --git a/arch/arm/mach-mx6/mx6_fec.c b/arch/arm/mach-mx6/mx6_fec.c
index b2aa45b3c510..935ba2644831 100644
--- a/arch/arm/mach-mx6/mx6_fec.c
+++ b/arch/arm/mach-mx6/mx6_fec.c
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2011 Freescale Semiconductor, Inc. All Rights Reserved.
+ * Copyright (C) 2011-2012 Freescale Semiconductor, Inc. All Rights Reserved.
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
@@ -49,5 +49,8 @@ void __init imx6_init_fec(struct fec_platform_data fec_data)
if (!is_valid_ether_addr(fec_data.mac))
random_ether_addr(fec_data.mac);
- imx6q_add_fec(&fec_data);
+ if (cpu_is_mx6sl())
+ imx6sl_add_fec(&fec_data);
+ else
+ imx6q_add_fec(&fec_data);
}
diff --git a/arch/arm/mach-mx6/mx6_mmdc.c b/arch/arm/mach-mx6/mx6_mmdc.c
index 2498f01e0889..c4f232f0e56d 100644
--- a/arch/arm/mach-mx6/mx6_mmdc.c
+++ b/arch/arm/mach-mx6/mx6_mmdc.c
@@ -227,7 +227,6 @@ int update_ddr_freq(int ddr_rate)
/* Set the interrupt to be pending in the GIC. */
reg = 1 << (irq_used[cpu] % 32);
writel_relaxed(reg, gic_dist_base + GIC_DIST_PENDING_SET + (irq_used[cpu] / 32) * 4);
- udelay(10);
}
}
while (cpus_in_wfe != online_cpus)
@@ -343,6 +342,8 @@ int init_mmdc_settings(void)
memcpy(ddr_freq_change_iram_base, mx6_ddr_freq_change, SZ_8K);
mx6_change_ddr_freq = (void *)ddr_freq_change_iram_base;
+ curr_ddr_rate = ddr_normal_rate;
+
for_each_online_cpu(cpu) {
/* Set up a reserved interrupt to get all the active cores into a WFE state
* before changing the DDR frequency.
diff --git a/arch/arm/mach-mx6/mx6q_suspend.S b/arch/arm/mach-mx6/mx6_suspend.S
index e52c66ad0151..d276320c374a 100644
--- a/arch/arm/mach-mx6/mx6q_suspend.S
+++ b/arch/arm/mach-mx6/mx6_suspend.S
@@ -35,7 +35,7 @@
#define IRAM_SUSPEND_SIZE (1 << 12)
/*************************************************************
-mx6q_suspend:
+mx6_suspend:
Suspend the processor (eg, wait for interrupt).
Set the DDR into Self Refresh
@@ -50,6 +50,123 @@ see define in include/linux/suspend.h
r1: iram_paddr
r2: suspend_iram_base
*************************************************************/
+ .macro sl_ddr_io_save
+
+ ldr r4, [r1, #0x30c] /* DRAM_DQM0 */
+ ldr r5, [r1, #0x310] /* DRAM_DQM1 */
+ ldr r6, [r1, #0x314] /* DRAM_DQM2 */
+ ldr r7, [r1, #0x318] /* DRAM_DQM3 */
+ stmfd r0!, {r4-r7}
+
+ ldr r4, [r1, #0x344] /* DRAM_SDQS0 */
+ ldr r5, [r1, #0x348] /* DRAM_SDQS1 */
+ ldr r6, [r1, #0x34c] /* DRAM_SDQS2 */
+ ldr r7, [r1, #0x350] /* DRAM_SDQS3 */
+ stmfd r0!, {r4-r7}
+
+ ldr r4, [r1, #0x5c4] /* GPR_B0DS */
+ ldr r5, [r1, #0x5cc] /* GPR_B1DS */
+ ldr r6, [r1, #0x5d4] /* GPR_B2DS */
+ ldr r7, [r1, #0x5d8] /* GPR_B3DS */
+ stmfd r0!, {r4-r7}
+
+ ldr r4, [r1, #0x300] /* DRAM_CAS */
+ ldr r5, [r1, #0x31c] /* DRAM_RAS */
+ ldr r6, [r1, #0x338] /* DRAM_SDCLK_0 */
+ ldr r7, [r1, #0x5ac] /* GPR_ADDS*/
+ stmfd r0!, {r4-r7}
+
+ ldr r4, [r1, #0x5b0] /* DDRMODE_CTL */
+ ldr r5, [r1, #0x5c0] /* DDRMODE */
+ ldr r6, [r1, #0x33c] /* DRAM_SODT0*/
+ ldr r7, [r1, #0x340] /* DRAM_SODT1*/
+ stmfd r0!, {r4-r7}
+
+ ldr r4, [r1, #0x330] /* DRAM_SDCKE0 */
+ ldr r5, [r1, #0x334] /* DRAM_SDCKE1 */
+ ldr r6, [r1, #0x320] /* DRAM_RESET */
+ ldr r7, [r1, #0x5c8] /* GPR_CTLDS */
+ stmfd r0!, {r4-r7}
+
+ .endm
+
+ .macro sl_ddr_io_restore
+
+ ldmea r0!, {r4-r7}
+ str r4, [r1, #0x30c] /* DRAM_DQM0 */
+ str r5, [r1, #0x310] /* DRAM_DQM1 */
+ str r6, [r1, #0x314] /* DRAM_DQM2 */
+ str r7, [r1, #0x318] /* DRAM_DQM3 */
+
+ ldmea r0!, {r4-r7}
+ str r4, [r1, #0x344] /* DRAM_SDQS0 */
+ str r5, [r1, #0x348] /* DRAM_SDQS1 */
+ str r6, [r1, #0x34c] /* DRAM_SDQS2 */
+ str r7, [r1, #0x350] /* DRAM_SDQS3 */
+
+ ldmea r0!, {r4-r7}
+ str r4, [r1, #0x5c4] /* GPR_B0DS */
+ str r5, [r1, #0x5cc] /* GPR_B1DS */
+ str r6, [r1, #0x5d4] /* GPR_B2DS */
+ str r7, [r1, #0x5d8] /* GPR_B3DS */
+
+ ldmea r0!, {r4-r7}
+ str r4, [r1, #0x300] /* DRAM_CAS */
+ str r5, [r1, #0x31c] /* DRAM_RAS */
+ str r6, [r1, #0x338] /* DRAM_SDCLK_0 */
+ str r7, [r1, #0x5ac] /* GPR_ADDS*/
+
+ ldmea r0!, {r4-r7}
+ str r4, [r1, #0x5b0] /* DDRMODE_CTL */
+ str r5, [r1, #0x5c0] /* DDRMODE */
+ str r6, [r1, #0x33c] /* DRAM_SODT0*/
+ str r7, [r1, #0x340] /* DRAM_SODT1*/
+
+ ldmea r0!, {r4-r7}
+ str r4, [r1, #0x330] /* DRAM_SDCKE0 */
+ str r5, [r1, #0x334] /* DRAM_SDCKE1 */
+ str r6, [r1, #0x320] /* DRAM_RESET */
+ str r7, [r1, #0x5c8] /* GPR_CTLDS */
+
+ .endm
+
+ .macro sl_ddr_io_set_lpm
+
+ mov r0, #0
+ str r0, [r1, #0x30c] /* DRAM_DQM0 */
+ str r0, [r1, #0x310] /* DRAM_DQM1 */
+ str r0, [r1, #0x314] /* DRAM_DQM2 */
+ str r0, [r1, #0x318] /* DRAM_DQM3 */
+
+ str r0, [r1, #0x344] /* DRAM_SDQS0 */
+ str r0, [r1, #0x348] /* DRAM_SDQS1 */
+ str r0, [r1, #0x34c] /* DRAM_SDQS2 */
+ str r0, [r1, #0x350] /* DRAM_SDQS3 */
+
+ str r0, [r1, #0x5c4] /* GPR_B0DS */
+ str r0, [r1, #0x5cc] /* GPR_B1DS */
+ str r0, [r1, #0x5d4] /* GPR_B2DS */
+ str r0, [r1, #0x5d8] /* GPR_B3DS */
+
+ str r0, [r1, #0x300] /* DRAM_CAS */
+ str r0, [r1, #0x31c] /* DRAM_RAS */
+ str r0, [r1, #0x338] /* DRAM_SDCLK_0 */
+ str r0, [r1, #0x5ac] /* GPR_ADDS*/
+
+ str r0, [r1, #0x5b0] /* DDRMODE_CTL */
+ str r0, [r1, #0x5c0] /* DDRMODE */
+ str r0, [r1, #0x33c] /* DRAM_SODT0*/
+ str r0, [r1, #0x340] /* DRAM_SODT1*/
+
+ str r0, [r1, #0x5c8] /* GPR_CTLDS */
+ mov r0, #0x80000
+ str r0, [r1, #0x320] /* DRAM_RESET */
+ mov r0, #0x1000
+ str r0, [r1, #0x330] /* DRAM_SDCKE0 */
+ str r0, [r1, #0x334] /* DRAM_SDCKE1 */
+
+ .endm
+
.macro dl_ddr_io_save
ldr r4, [r1, #0x470] /* DRAM_DQM0 */
@@ -455,11 +572,12 @@ Flush and disable L1 dcache
.endm
-ENTRY(mx6q_suspend)
+ENTRY(mx6_suspend)
stmfd sp!, {r0-r12} @ Save registers
/*************************************************************
suspend mode entry
*************************************************************/
+ mov r12, r3 /* Save CPU type to r12*/
cmp r0, #0x1
bne dormant /* dormant mode */
@@ -537,21 +655,34 @@ saved register and context as below:
CPSR
SCTLR
************************************************************/
-ddr_iomux_save:
/* save mmdc iomux setting, stack is from the tail of
iram_suspend base */
mov r0, r2 /* get suspend_iram_base */
add r0, r0, #IRAM_SUSPEND_SIZE /* 4K */
+
+ mov r4, sp @ Store sp
+ mrs r5, spsr @ Store spsr
+ mov r6, lr @ Store lr
+ mov r7, r12 @ Store cpu type
+ stmfd r0!, {r4-r7}
+
ldr r1, =MX6Q_IOMUXC_BASE_ADDR
add r1, r1, #PERIPBASE_VIRT
+ cmp r12, #MXC_CPU_MX6Q
+ bne dl_io_save
dq_ddr_io_save
+ b ddr_io_save_done
+dl_io_save:
+ cmp r12, #MXC_CPU_MX6DL
+ bne sl_io_save
+ dl_ddr_io_save
+ b ddr_io_save_done
+sl_io_save:
+ sl_ddr_io_save
- mov r4, sp @ Store sp
- mrs r5, spsr @ Store spsr
- mov r6, lr @ Store lr
- stmfd r0!, {r4-r6}
+ddr_io_save_done:
/* c1 and c2 registers */
mrc p15, 0, r4, c1, c0, 2 @ CPACR
@@ -614,11 +745,24 @@ refresh:
ldr r1, =MX6Q_IOMUXC_BASE_ADDR
add r1, r1, #PERIPBASE_VIRT
+ cmp r12, #MXC_CPU_MX6Q
+ bne dl_io_set_lpm
dq_ddr_io_set_lpm
+ b ddr_io_set_lpm_done
+dl_io_set_lpm:
+ cmp r12, #MXC_CPU_MX6DL
+ bne sl_io_set_lpm
+ dl_ddr_io_set_lpm
+ b ddr_io_set_lpm_done
+sl_io_set_lpm:
+ sl_ddr_io_set_lpm
+
+ddr_io_set_lpm_done:
+
/****************************************************************
save resume pointer into SRC_GPR1
****************************************************************/
- ldr r0, =mx6q_suspend
+ ldr r0, =mx6_suspend
ldr r1, =resume
sub r1, r1, r0
add r3, r3, r1
@@ -645,7 +789,19 @@ system immediately.
ldr r1, =MX6Q_IOMUXC_BASE_ADDR
add r1, r1, #PERIPBASE_VIRT
+ cmp r12, #MXC_CPU_MX6Q
+ bne dl_io_restore
dq_ddr_io_restore
+ b ddr_io_restore_done
+dl_io_restore:
+ cmp r12, #MXC_CPU_MX6DL
+ bne sl_io_restore
+ dl_ddr_io_restore
+ b ddr_io_restore_done
+sl_io_restore:
+ sl_ddr_io_restore
+
+ddr_io_restore_done:
mrc p15, 0, r1, c1, c0, 0
orr r1, r1, #(1 << 2) @ Enable the C bit
@@ -665,14 +821,29 @@ resume:
str r1, [r0, #SRC_GPR1_OFFSET] /* clear SRC_GPR1 */
ldr r0, [r0, #SRC_GPR2_OFFSET]
+ /* Restore cp15 registers and cpu type */
+ ldmea r0!, {r4-r7}
+ mov sp, r4 @ Restore sp
+ msr spsr_cxsf, r5 @ Restore spsr
+ mov lr, r6 @ Restore lr
+ mov r12, r7 @ Restore cpu type
+
+ /* Restore DDR IO */
ldr r1, =MX6Q_IOMUXC_BASE_ADDR
+
+ cmp r12, #MXC_CPU_MX6Q
+ bne dl_io_dsm_restore
dq_ddr_io_restore
+ b ddr_io_restore_dsm_done
+dl_io_dsm_restore:
+ cmp r12, #MXC_CPU_MX6DL
+ bne sl_io_dsm_restore
+ dl_ddr_io_restore
+ b ddr_io_restore_dsm_done
+sl_io_dsm_restore:
+ sl_ddr_io_restore
- /* Restore cp15 registers */
- ldmea r0!, {r4-r6}
- mov sp, r4
- msr spsr_cxsf, r5 @ Restore spsr
- mov lr, r6 @ Restore lr
+ddr_io_restore_dsm_done:
/* c1 and c2 registers */
ldmea r0!, {r4-r7}
@@ -798,7 +969,15 @@ restore control register to enable cache
* enabling MMU.
*/
ldr r4, =PAGE_OFFSET
+
+ cmp r12, #MXC_CPU_MX6SL
+ bne dq_dl_phy_offset
+ ldr r5, =MX6SL_PHYS_OFFSET
+ b get_phy_offset_done
+dq_dl_phy_offset:
ldr r5, =MX6_PHYS_OFFSET
+get_phy_offset_done:
+
sub r4, r4, r5
add r4, r4, r10
str r9, [r4]
@@ -825,8 +1004,7 @@ out:
ldmfd sp!, {r0-r12}
mov pc, lr
- .equ va2pa_offset, (PAGE_OFFSET - MX6_PHYS_OFFSET)
- .type mx6q_do_suspend, #object
-ENTRY(mx6q_do_suspend)
- .word mx6q_suspend
- .size mx6q_suspend, . - mx6q_suspend
+ .type mx6_do_suspend, #object
+ENTRY(mx6_do_suspend)
+ .word mx6_suspend
+ .size mx6_suspend, . - mx6_suspend
diff --git a/arch/arm/mach-mx6/mx6_wfi.S b/arch/arm/mach-mx6/mx6_wfi.S
index 6e2972faa293..a616dabc4a80 100644
--- a/arch/arm/mach-mx6/mx6_wfi.S
+++ b/arch/arm/mach-mx6/mx6_wfi.S
@@ -28,13 +28,20 @@
*/
ENTRY(mx6_wait)
- push {r4, r5, r6}
+ push {r4, r5, r6, r7, r8}
+
+ mov r7, r2 /* Store the arm_podf to be used. */
+ mov r6, r3
+
+ ldr r2, =ANATOP_BASE_ADDR
+ add r2, r2, #PERIPBASE_VIRT
+
+ ldr r8, =CCM_BASE_ADDR
+ add r8, r8, #PERIPBASE_VIRT
- ldr r2, =ANATOP_BASE_ADDR
- add r2, r2, #PERIPBASE_VIRT
/* get the flags variables into the cache */
- ldr r3, [r0]
+ ldr r3, [r0]
/* get CPU ID */
mrc p15,0,r5,c0,c0,5
@@ -59,11 +66,27 @@ ENTRY(mx6_wait)
mov r3, #0xff
+ /* Check to see if we need to switch to 24MHz */
+ cmp r7, #0
+ bne use_podf
ldr r6, =(1 << 16)
str r6, [r2, #0x04]
+ b cont
+
+use_podf:
+ /* Change ARM_PODF to the max possible podf
+ * so that ARM_CLK to IPG_CLK is in 12:5 ratio.
+ */
+ str r7, [r8, #0x10]
+ /* Loop till podf is accepted. */
+podf_loop:
+ ldr r4, [r8, #0x48]
+ cmp r4, #0x0
+ bne podf_loop
/* dmb */
+cont:
str r3, [r1]
dsb
@@ -71,9 +94,18 @@ ENTRY(mx6_wait)
mvn r4, #0x0
ldr r3, [r0]
cmp r3, r4
- movne r3, #0x0
- strne r6, [r2, #0x08]
- strne r3, [r1]
+ beq DO_WFI
+
+ mov r3, #0x0
+ /* Switch to 24MHz or use ARM_PODF. */
+ cmp r7, #0x0
+ bne use_podf1
+ str r6, [r2, #0x08]
+ b DO_WFI
+use_podf1:
+ str r6, [r8, #0x10]
+
+ str r3, [r1]
DO_WFI:
dsb
@@ -90,15 +122,22 @@ DO_WFI:
bne DONE
mov r4, #0x0
+ cmp r7, #0x0
+ bne use_podf2
ldr r6, =(1 << 16)
- str r6, [r2, #0x08]
+ str r6, [r2, #0x08]
+ b cont1
+
+use_podf2:
+ str r6, [r8, #0x10]
+cont1:
mov r3, #0x0
str r3, [r1]
DONE:
- pop {r4,r5, r6}
+ pop {r4,r5, r6, r7, r8}
/* Restore registers */
mov pc, lr
diff --git a/arch/arm/mach-mx6/mx6q_sabresd_pmic_pfuze100.c b/arch/arm/mach-mx6/mx6q_sabresd_pmic_pfuze100.c
index 2d3863beba31..ed6bfb115d31 100644
--- a/arch/arm/mach-mx6/mx6q_sabresd_pmic_pfuze100.c
+++ b/arch/arm/mach-mx6/mx6q_sabresd_pmic_pfuze100.c
@@ -65,6 +65,14 @@
#define PFUZE100_SWBSTCON1_SWBSTMOD_M (0x3<<2)
+#ifdef CONFIG_MX6_INTER_LDO_BYPASS
+static struct regulator_consumer_supply sw1_consumers[] = {
+ {
+ .supply = "VDDCORE",
+ }
+};
+#endif
+
static struct regulator_consumer_supply sw2_consumers[] = {
{
.supply = "MICVDD",
@@ -139,6 +147,11 @@ static struct regulator_init_data sw1a_init = {
.boot_on = 1,
.always_on = 1,
},
+
+ #ifdef CONFIG_MX6_INTER_LDO_BYPASS
+ .num_consumer_supplies = ARRAY_SIZE(sw1_consumers),
+ .consumer_supplies = sw1_consumers,
+ #endif
};
static struct regulator_init_data sw1b_init = {
@@ -368,11 +381,6 @@ static int pfuze100_init(struct mc_pfuze *pfuze)
PFUZE100_SW1ASTANDBY_STBY_VAL);
if (ret)
goto err;
- ret = pfuze_reg_rmw(pfuze, PFUZE100_SW1BSTANDBY,
- PFUZE100_SW1BSTANDBY_STBY_M,
- PFUZE100_SW1BSTANDBY_STBY_VAL);
- if (ret)
- goto err;
ret = pfuze_reg_rmw(pfuze, PFUZE100_SW1CSTANDBY,
PFUZE100_SW1CSTANDBY_STBY_M,
PFUZE100_SW1CSTANDBY_STBY_VAL);
diff --git a/arch/arm/mach-mx6/mx6sl_arm2_pmic_pfuze100.c b/arch/arm/mach-mx6/mx6sl_arm2_pmic_pfuze100.c
new file mode 100644
index 000000000000..0d5a37cb0df0
--- /dev/null
+++ b/arch/arm/mach-mx6/mx6sl_arm2_pmic_pfuze100.c
@@ -0,0 +1,424 @@
+/*
+ * Copyright (C) 2012 Freescale Semiconductor, Inc. All Rights Reserved.
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+ */
+
+#include <linux/module.h>
+#include <linux/init.h>
+#include <linux/platform_device.h>
+#include <linux/err.h>
+#include <linux/i2c.h>
+#include <linux/gpio.h>
+#include <linux/regulator/machine.h>
+#include <linux/mfd/pfuze.h>
+#include <mach/irqs.h>
+
+/*
+ * Convenience conversion.
+ * Here atm, maybe there is somewhere better for this.
+ */
+#define mV_to_uV(mV) (mV * 1000)
+#define uV_to_mV(uV) (uV / 1000)
+#define V_to_uV(V) (mV_to_uV(V * 1000))
+#define uV_to_V(uV) (uV_to_mV(uV) / 1000)
+
+#define PFUZE100_I2C_DEVICE_NAME "pfuze100"
+/* 7-bit I2C bus slave address */
+#define PFUZE100_I2C_ADDR (0x08)
+ /*SWBST*/
+#define PFUZE100_SW1ASTANDBY 33
+#define PFUZE100_SW1ASTANDBY_STBY_VAL (0x16)
+#define PFUZE100_SW1ASTANDBY_STBY_M (0x3f<<0)
+#define PFUZE100_SW1BSTANDBY 40
+#define PFUZE100_SW1BSTANDBY_STBY_VAL (0x16)
+#define PFUZE100_SW1BSTANDBY_STBY_M (0x3f<<0)
+#define PFUZE100_SW1CSTANDBY 47
+#define PFUZE100_SW1CSTANDBY_STBY_VAL (0x16)
+#define PFUZE100_SW1CSTANDBY_STBY_M (0x3f<<0)
+#define PFUZE100_SW2STANDBY 54
+#define PFUZE100_SW2STANDBY_STBY_VAL 0x0
+#define PFUZE100_SW2STANDBY_STBY_M (0x3f<<0)
+#define PFUZE100_SW3ASTANDBY 61
+#define PFUZE100_SW3ASTANDBY_STBY_VAL 0x0
+#define PFUZE100_SW3ASTANDBY_STBY_M (0x3f<<0)
+#define PFUZE100_SW3BSTANDBY 68
+#define PFUZE100_SW3BSTANDBY_STBY_VAL 0x0
+#define PFUZE100_SW3BSTANDBY_STBY_M (0x3f<<0)
+#define PFUZE100_SW4STANDBY 75
+#define PFUZE100_SW4STANDBY_STBY_VAL 0
+#define PFUZE100_SW4STANDBY_STBY_M (0x3f<<0)
+#define PFUZE100_SWBSTCON1 102
+#define PFUZE100_SWBSTCON1_SWBSTMOD_VAL (0x1<<2)
+#define PFUZE100_SWBSTCON1_SWBSTMOD_M (0x3<<2)
+
+
+static struct regulator_consumer_supply sw2_consumers[] = {
+ {
+ .supply = "MICVDD",
+ .dev_name = "1-001a",
+ },
+ {
+ .supply = "DBVDD",
+ .dev_name = "1-001a",
+ }
+
+};
+static struct regulator_consumer_supply sw4_consumers[] = {
+ {
+ .supply = "AUD_1V8",
+ }
+};
+static struct regulator_consumer_supply swbst_consumers[] = {
+ {
+ .supply = "SWBST_5V",
+ }
+};
+static struct regulator_consumer_supply vgen1_consumers[] = {
+ {
+ .supply = "VGEN1_1V5",
+ }
+};
+static struct regulator_consumer_supply vgen2_consumers[] = {
+ {
+ .supply = "VGEN2_1V5",
+ }
+};
+static struct regulator_consumer_supply vgen4_consumers[] = {
+ {
+ .supply = "AVDD",
+ .dev_name = "1-001a",
+ },
+ {
+ .supply = "DCVDD",
+ .dev_name = "1-001a",
+ },
+ {
+ .supply = "CPVDD",
+ .dev_name = "1-001a",
+ },
+ {
+ .supply = "PLLVDD",
+ .dev_name = "1-001a",
+ }
+};
+static struct regulator_consumer_supply vgen5_consumers[] = {
+ {
+ .supply = "VGEN5_2V8",
+ }
+};
+static struct regulator_consumer_supply vgen6_consumers[] = {
+ {
+ .supply = "VGEN6_3V3",
+ }
+};
+
+static struct regulator_init_data sw1a_init = {
+ .constraints = {
+ .name = "PFUZE100_SW1A",
+#ifdef PFUZE100_FIRST_VERSION
+ .min_uV = 650000,
+ .max_uV = 1437500,
+#else
+ .min_uV = 300000,
+ .max_uV = 1875000,
+#endif
+ .valid_ops_mask = REGULATOR_CHANGE_VOLTAGE,
+ .valid_modes_mask = 0,
+ .boot_on = 1,
+ .always_on = 1,
+ },
+};
+
+static struct regulator_init_data sw1b_init = {
+ .constraints = {
+ .name = "PFUZE100_SW1B",
+ .min_uV = 300000,
+ .max_uV = 1875000,
+ .valid_ops_mask = REGULATOR_CHANGE_VOLTAGE,
+ .valid_modes_mask = 0,
+ .always_on = 1,
+ .boot_on = 1,
+ },
+};
+
+static struct regulator_init_data sw1c_init = {
+ .constraints = {
+ .name = "PFUZE100_SW1C",
+ .min_uV = 300000,
+ .max_uV = 1875000,
+ .valid_ops_mask = REGULATOR_CHANGE_VOLTAGE,
+ .valid_modes_mask = 0,
+ .always_on = 1,
+ .boot_on = 1,
+ },
+};
+
+static struct regulator_init_data sw2_init = {
+ .constraints = {
+ .name = "PFUZE100_SW2",
+#if PFUZE100_SW2_VOL6
+ .min_uV = 800000,
+ .max_uV = 3950000,
+#else
+ .min_uV = 400000,
+ .max_uV = 1975000,
+#endif
+ .valid_ops_mask = REGULATOR_CHANGE_VOLTAGE,
+ .valid_modes_mask = 0,
+ .always_on = 1,
+ .boot_on = 1,
+ },
+ .num_consumer_supplies = ARRAY_SIZE(sw2_consumers),
+ .consumer_supplies = sw2_consumers,
+};
+
+static struct regulator_init_data sw3a_init = {
+ .constraints = {
+ .name = "PFUZE100_SW3A",
+#if PFUZE100_SW3_VOL6
+ .min_uV = 800000,
+ .max_uV = 3950000,
+#else
+ .min_uV = 400000,
+ .max_uV = 1975000,
+#endif
+ .valid_ops_mask = REGULATOR_CHANGE_VOLTAGE,
+ .valid_modes_mask = 0,
+ .always_on = 1,
+ .boot_on = 1,
+ },
+};
+
+static struct regulator_init_data sw3b_init = {
+ .constraints = {
+ .name = "PFUZE100_SW3B",
+#if PFUZE100_SW3_VOL6
+ .min_uV = 800000,
+ .max_uV = 3950000,
+#else
+ .min_uV = 400000,
+ .max_uV = 1975000,
+#endif
+ .valid_ops_mask = REGULATOR_CHANGE_VOLTAGE,
+ .valid_modes_mask = 0,
+ .always_on = 1,
+ .boot_on = 1,
+ },
+};
+
+static struct regulator_init_data sw4_init = {
+ .constraints = {
+ .name = "PFUZE100_SW4",
+#if PFUZE100_SW4_VOL6
+ .min_uV = 800000,
+ .max_uV = 3950000,
+#else
+ .min_uV = 400000,
+ .max_uV = 1975000,
+#endif
+ .valid_ops_mask = REGULATOR_CHANGE_VOLTAGE,
+ .valid_modes_mask = 0,
+ },
+ .num_consumer_supplies = ARRAY_SIZE(sw4_consumers),
+ .consumer_supplies = sw4_consumers,
+};
+
+static struct regulator_init_data swbst_init = {
+ .constraints = {
+ .name = "PFUZE100_SWBST",
+ .min_uV = 5000000,
+ .max_uV = 5150000,
+ .valid_ops_mask = REGULATOR_CHANGE_VOLTAGE,
+ .valid_modes_mask = 0,
+ .always_on = 1,
+ .boot_on = 1,
+ },
+ .num_consumer_supplies = ARRAY_SIZE(swbst_consumers),
+ .consumer_supplies = swbst_consumers,
+};
+
+static struct regulator_init_data vsnvs_init = {
+ .constraints = {
+ .name = "PFUZE100_VSNVS",
+ .min_uV = 1200000,
+ .max_uV = 3000000,
+ .valid_ops_mask = REGULATOR_CHANGE_VOLTAGE,
+ .valid_modes_mask = 0,
+ .always_on = 1,
+ .boot_on = 1,
+ },
+};
+
+static struct regulator_init_data vrefddr_init = {
+ .constraints = {
+ .name = "PFUZE100_VREFDDR",
+ .always_on = 1,
+ .boot_on = 1,
+ },
+};
+
+static struct regulator_init_data vgen1_init = {
+ .constraints = {
+ .name = "PFUZE100_VGEN1",
+#ifdef PFUZE100_FIRST_VERSION
+ .min_uV = 1200000,
+ .max_uV = 1550000,
+#else
+ .min_uV = 800000,
+ .max_uV = 1550000,
+#endif
+ .valid_ops_mask = REGULATOR_CHANGE_VOLTAGE |
+ REGULATOR_CHANGE_STATUS,
+ .valid_modes_mask = 0,
+ .always_on = 0,
+ .boot_on = 0,
+ },
+ .num_consumer_supplies = ARRAY_SIZE(vgen1_consumers),
+ .consumer_supplies = vgen1_consumers,
+};
+
+static struct regulator_init_data vgen2_init = {
+ .constraints = {
+ .name = "PFUZE100_VGEN2",
+#ifdef PFUZE100_FIRST_VERSION
+ .min_uV = 1200000,
+ .max_uV = 1550000,
+#else
+ .min_uV = 800000,
+ .max_uV = 1550000,
+#endif
+ .valid_ops_mask = REGULATOR_CHANGE_VOLTAGE |
+ REGULATOR_CHANGE_STATUS,
+ .valid_modes_mask = 0,
+ },
+ .num_consumer_supplies = ARRAY_SIZE(vgen2_consumers),
+ .consumer_supplies = vgen2_consumers,
+
+};
+
+static struct regulator_init_data vgen3_init = {
+ .constraints = {
+ .name = "PFUZE100_VGEN3",
+ .min_uV = 1800000,
+ .max_uV = 3300000,
+ .valid_ops_mask = REGULATOR_CHANGE_VOLTAGE |
+ REGULATOR_CHANGE_STATUS,
+ .valid_modes_mask = 0,
+ .always_on = 0,
+ .boot_on = 0,
+ },
+};
+
+static struct regulator_init_data vgen4_init = {
+ .constraints = {
+ .name = "PFUZE100_VGEN4",
+ .min_uV = 1800000,
+ .max_uV = 3300000,
+ .valid_ops_mask = REGULATOR_CHANGE_VOLTAGE |
+ REGULATOR_CHANGE_STATUS,
+ .valid_modes_mask = 0,
+ },
+ .num_consumer_supplies = ARRAY_SIZE(vgen4_consumers),
+ .consumer_supplies = vgen4_consumers,
+};
+
+static struct regulator_init_data vgen5_init = {
+ .constraints = {
+ .name = "PFUZE100_VGEN5",
+ .min_uV = 1800000,
+ .max_uV = 3300000,
+ .valid_ops_mask = REGULATOR_CHANGE_VOLTAGE |
+ REGULATOR_CHANGE_STATUS,
+ .valid_modes_mask = 0,
+ },
+ .num_consumer_supplies = ARRAY_SIZE(vgen5_consumers),
+ .consumer_supplies = vgen5_consumers,
+};
+
+static struct regulator_init_data vgen6_init = {
+ .constraints = {
+ .name = "PFUZE100_VGEN6",
+ .min_uV = 1800000,
+ .max_uV = 3300000,
+ .valid_ops_mask = REGULATOR_CHANGE_VOLTAGE |
+ REGULATOR_CHANGE_STATUS,
+ .valid_modes_mask = 0,
+ },
+ .num_consumer_supplies = ARRAY_SIZE(vgen6_consumers),
+ .consumer_supplies = vgen6_consumers,
+};
+
+static int pfuze100_init(struct mc_pfuze *pfuze)
+{
+ int ret;
+ ret = pfuze_reg_rmw(pfuze, PFUZE100_SW1ASTANDBY,
+ PFUZE100_SW1ASTANDBY_STBY_M,
+ PFUZE100_SW1ASTANDBY_STBY_VAL);
+ if (ret)
+ goto err;
+ ret = pfuze_reg_rmw(pfuze, PFUZE100_SW1BSTANDBY,
+ PFUZE100_SW1BSTANDBY_STBY_M,
+ PFUZE100_SW1BSTANDBY_STBY_VAL);
+ if (ret)
+ goto err;
+ ret = pfuze_reg_rmw(pfuze, PFUZE100_SW1CSTANDBY,
+ PFUZE100_SW1CSTANDBY_STBY_M,
+ PFUZE100_SW1CSTANDBY_STBY_VAL);
+ if (ret)
+ goto err;
+ return 0;
+err:
+ printk(KERN_ERR "pfuze100 init error!\n");
+ return -1;
+}
+
+static struct pfuze_regulator_init_data mx6q_sabreauto_pfuze100_regulators[] = {
+ {.id = PFUZE100_SW1A, .init_data = &sw1a_init},
+ {.id = PFUZE100_SW1B, .init_data = &sw1b_init},
+ {.id = PFUZE100_SW1C, .init_data = &sw1c_init},
+ {.id = PFUZE100_SW2, .init_data = &sw2_init},
+ {.id = PFUZE100_SW3A, .init_data = &sw3a_init},
+ {.id = PFUZE100_SW3B, .init_data = &sw3b_init},
+ {.id = PFUZE100_SW4, .init_data = &sw4_init},
+ {.id = PFUZE100_SWBST, .init_data = &swbst_init},
+ {.id = PFUZE100_VSNVS, .init_data = &vsnvs_init},
+ {.id = PFUZE100_VREFDDR, .init_data = &vrefddr_init},
+ {.id = PFUZE100_VGEN1, .init_data = &vgen1_init},
+ {.id = PFUZE100_VGEN2, .init_data = &vgen2_init},
+ {.id = PFUZE100_VGEN3, .init_data = &vgen3_init},
+ {.id = PFUZE100_VGEN4, .init_data = &vgen4_init},
+ {.id = PFUZE100_VGEN5, .init_data = &vgen5_init},
+ {.id = PFUZE100_VGEN6, .init_data = &vgen6_init},
+};
+
+static struct pfuze_platform_data pfuze100_plat = {
+ .flags = PFUZE_USE_REGULATOR,
+ .num_regulators = ARRAY_SIZE(mx6q_sabreauto_pfuze100_regulators),
+ .regulators = mx6q_sabreauto_pfuze100_regulators,
+ .pfuze_init = pfuze100_init,
+};
+
+static struct i2c_board_info __initdata pfuze100_i2c_device = {
+ I2C_BOARD_INFO(PFUZE100_I2C_DEVICE_NAME, PFUZE100_I2C_ADDR),
+ .platform_data = &pfuze100_plat,
+};
+
+int __init mx6sl_arm2_init_pfuze100(u32 int_gpio)
+{
+ if (int_gpio)
+ pfuze100_i2c_device.irq = gpio_to_irq(int_gpio); /*update INT gpio */
+ return i2c_register_board_info(0, &pfuze100_i2c_device, 1);
+}
diff --git a/arch/arm/mach-mx6/plat_hotplug.c b/arch/arm/mach-mx6/plat_hotplug.c
index 3cd6bb5aec35..20a33329f472 100644
--- a/arch/arm/mach-mx6/plat_hotplug.c
+++ b/arch/arm/mach-mx6/plat_hotplug.c
@@ -27,6 +27,7 @@
#include <linux/sched.h>
#include <asm/cacheflush.h>
+extern unsigned int num_cpu_idle_lock;
void __iomem *src_base = IO_ADDRESS(SRC_BASE_ADDR);
int platform_cpu_kill(unsigned int cpu)
@@ -128,5 +129,6 @@ int platform_cpu_disable(unsigned int cpu)
* we don't allow CPU 0 to be shutdown (it is still too special
* e.g. clock tick interrupts)
*/
+ *((char *)(&num_cpu_idle_lock) + (u8)cpu) = 0xff;
return cpu == 0 ? -EPERM : 0;
}
diff --git a/arch/arm/mach-mx6/pm.c b/arch/arm/mach-mx6/pm.c
index 03ff88000052..229de6651266 100644
--- a/arch/arm/mach-mx6/pm.c
+++ b/arch/arm/mach-mx6/pm.c
@@ -49,6 +49,7 @@
#define GPC_ISR3_OFFSET 0x20
#define GPC_ISR4_OFFSET 0x24
#define GPC_CNTR_OFFSET 0x0
+#define GPC_PGC_DISP_PGCR_OFFSET 0x240
#define GPC_PGC_GPU_PGCR_OFFSET 0x260
#define GPC_PGC_CPU_PDN_OFFSET 0x2a0
#define GPC_PGC_CPU_PUPSCR_OFFSET 0x2a4
@@ -65,12 +66,16 @@
#define ANATOP_REG_CORE_OFFSET 0x140
static struct clk *cpu_clk;
+static struct clk *axi_clk;
+static struct clk *periph_clk;
+static struct clk *axi_org_parent;
+
static struct pm_platform_data *pm_data;
#if defined(CONFIG_CPU_FREQ)
extern int set_cpu_freq(int wp);
#endif
-extern void mx6q_suspend(suspend_state_t state);
+extern void mx6_suspend(suspend_state_t state);
extern void mx6_init_irq(void);
extern unsigned int gpc_wake_irq[4];
@@ -86,11 +91,11 @@ static void __iomem *anatop_base;
static void *suspend_iram_base;
static void (*suspend_in_iram)(suspend_state_t state,
- unsigned long iram_paddr, unsigned long suspend_iram_base) = NULL;
+ unsigned long iram_paddr, unsigned long suspend_iram_base, unsigned int cpu_type) = NULL;
static unsigned long iram_paddr, cpaddr;
static u32 ccm_ccr, ccm_clpcr, scu_ctrl;
-static u32 gpc_imr[4], gpc_cpu_pup, gpc_cpu_pdn, gpc_cpu, gpc_ctr;
+static u32 gpc_imr[4], gpc_cpu_pup, gpc_cpu_pdn, gpc_cpu, gpc_ctr, gpc_disp;
static u32 anatop[2], ccgr1, ccgr2, ccgr3, ccgr6;
static u32 ccm_analog_pfd528;
static bool usb_vbus_wakeup_enabled;
@@ -236,6 +241,8 @@ static void mx6_suspend_store(void)
gpc_cpu_pdn = __raw_readl(gpc_base + GPC_PGC_CPU_PDNSCR_OFFSET);
gpc_cpu = __raw_readl(gpc_base + GPC_PGC_CPU_PDN_OFFSET);
gpc_ctr = __raw_readl(gpc_base + GPC_CNTR_OFFSET);
+ if (cpu_is_mx6sl())
+ gpc_disp = __raw_readl(gpc_base + GPC_PGC_DISP_PGCR_OFFSET);
anatop[0] = __raw_readl(anatop_base + ANATOP_REG_2P5_OFFSET);
anatop[1] = __raw_readl(anatop_base + ANATOP_REG_CORE_OFFSET);
}
@@ -261,7 +268,8 @@ static void mx6_suspend_restore(void)
__raw_writel(gpc_cpu_pup, gpc_base + GPC_PGC_CPU_PUPSCR_OFFSET);
__raw_writel(gpc_cpu_pdn, gpc_base + GPC_PGC_CPU_PDNSCR_OFFSET);
__raw_writel(gpc_cpu, gpc_base + GPC_PGC_CPU_PDN_OFFSET);
-
+ if (cpu_is_mx6sl())
+ __raw_writel(gpc_disp, gpc_base + GPC_PGC_DISP_PGCR_OFFSET);
__raw_writel(ccgr1, MXC_CCM_CCGR1);
__raw_writel(ccgr2, MXC_CCM_CCGR2);
__raw_writel(ccgr3, MXC_CCM_CCGR3);
@@ -272,9 +280,17 @@ static void mx6_suspend_restore(void)
static int mx6_suspend_enter(suspend_state_t state)
{
unsigned int wake_irq_isr[4];
+ unsigned int cpu_type;
struct gic_dist_state gds;
struct gic_cpu_state gcs;
+ if (cpu_is_mx6q())
+ cpu_type = MXC_CPU_MX6Q;
+ else if (cpu_is_mx6dl())
+ cpu_type = MXC_CPU_MX6DL;
+ else
+ cpu_type = MXC_CPU_MX6SL;
+
wake_irq_isr[0] = __raw_readl(gpc_base +
GPC_ISR1_OFFSET) & gpc_wake_irq[0];
wake_irq_isr[1] = __raw_readl(gpc_base +
@@ -294,8 +310,10 @@ static int mx6_suspend_enter(suspend_state_t state)
mx6_suspend_store();
/* i.MX6dl TO1.0 TKT094231: can't support ARM_POWER_OFF mode */
- if (state == PM_SUSPEND_MEM && cpu_is_mx6dl())
+ if (state == PM_SUSPEND_MEM &&
+ (mx6dl_revision() == IMX_CHIP_REVISION_1_0)) {
state = PM_SUSPEND_STANDBY;
+ }
switch (state) {
case PM_SUSPEND_MEM:
@@ -310,6 +328,9 @@ static int mx6_suspend_enter(suspend_state_t state)
return -EINVAL;
}
+ axi_org_parent = clk_get_parent(axi_clk);
+ clk_set_parent(axi_clk, periph_clk);
+
if (state == PM_SUSPEND_MEM || state == PM_SUSPEND_STANDBY) {
if (pm_data && pm_data->suspend_enter)
pm_data->suspend_enter();
@@ -324,7 +345,7 @@ static int mx6_suspend_enter(suspend_state_t state)
}
suspend_in_iram(state, (unsigned long)iram_paddr,
- (unsigned long)suspend_iram_base);
+ (unsigned long)suspend_iram_base, cpu_type);
if (state == PM_SUSPEND_MEM) {
/* restore gic registers */
@@ -333,6 +354,7 @@ static int mx6_suspend_enter(suspend_state_t state)
usb_power_up_handler();
gpu_power_up();
}
+
mx6_suspend_restore();
if (pm_data && pm_data->suspend_exit)
@@ -340,6 +362,7 @@ static int mx6_suspend_enter(suspend_state_t state)
} else {
cpu_do_idle();
}
+ clk_set_parent(axi_clk, axi_org_parent);
return 0;
}
@@ -426,7 +449,7 @@ static int __init pm_init(void)
* Need to run the suspend code from IRAM as the DDR needs
* to be put into low power mode manually.
*/
- memcpy((void *)cpaddr, mx6q_suspend, SZ_4K);
+ memcpy((void *)cpaddr, mx6_suspend, SZ_4K);
suspend_in_iram = (void *)suspend_iram_base;
@@ -435,6 +458,17 @@ static int __init pm_init(void)
printk(KERN_DEBUG "%s: failed to get cpu_clk\n", __func__);
return PTR_ERR(cpu_clk);
}
+ axi_clk = clk_get(NULL, "axi_clk");
+ if (IS_ERR(axi_clk)) {
+ printk(KERN_DEBUG "%s: failed to get axi_clk\n", __func__);
+ return PTR_ERR(axi_clk);
+ }
+ periph_clk = clk_get(NULL, "periph_clk");
+ if (IS_ERR(periph_clk)) {
+ printk(KERN_DEBUG "%s: failed to get periph_clk\n", __func__);
+ return PTR_ERR(periph_clk);
+ }
+
printk(KERN_INFO "PM driver module loaded\n");
return 0;
diff --git a/arch/arm/mach-mx6/system.c b/arch/arm/mach-mx6/system.c
index 14601a04731e..34d82e2bb3d3 100644
--- a/arch/arm/mach-mx6/system.c
+++ b/arch/arm/mach-mx6/system.c
@@ -23,6 +23,8 @@
#include <linux/regulator/consumer.h>
#include <linux/pmic_external.h>
#include <linux/clockchips.h>
+#include <linux/hrtimer.h>
+#include <linux/tick.h>
#include <asm/io.h>
#include <mach/hardware.h>
#include <mach/clock.h>
@@ -37,6 +39,7 @@
#define SCU_INVALIDATE 0x0c
#define SCU_FPGA_REVISION 0x10
#define GPC_CNTR_OFFSET 0x0
+#define GPC_PGC_DISP_PGCR_OFFSET 0x240
#define GPC_PGC_GPU_PGCR_OFFSET 0x260
#define GPC_PGC_CPU_PDN_OFFSET 0x2a0
#define GPC_PGC_CPU_PUPSCR_OFFSET 0x2a4
@@ -46,17 +49,24 @@
#define MODULE_SFTRST (1 << 31)
extern unsigned int gpc_wake_irq[4];
-extern int mx6q_revision(void);
static unsigned int cpu_idle_mask;
static void __iomem *gpc_base = IO_ADDRESS(GPC_BASE_ADDR);
+int wait_mode_arm_podf;
volatile unsigned int num_cpu_idle;
volatile unsigned int num_cpu_idle_lock = 0x0;
+int wait_mode_arm_podf;
+int cur_arm_podf;
+bool arm_mem_clked_in_wait;
-extern void mx6_wait(void *num_cpu_idle_lock, void *num_cpu_idle);
+extern void mx6_wait(void *num_cpu_idle_lock, void *num_cpu_idle, \
+ int wait_arm_podf, int cur_arm_podf);
extern bool enable_wait_mode;
+extern int low_bus_freq_mode;
+extern int audio_bus_freq_mode;
+extern bool mem_clk_on_in_wait;
void gpc_set_wakeup(unsigned int irq[4])
{
@@ -74,7 +84,7 @@ void mxc_cpu_lp_set(enum mxc_cpu_pwr_mode mode)
int stop_mode = 0;
void __iomem *anatop_base = IO_ADDRESS(ANATOP_BASE_ADDR);
- u32 ccm_clpcr, anatop_val;
+ u32 ccm_clpcr, anatop_val, reg;
ccm_clpcr = __raw_readl(MXC_CCM_CLPCR) & ~(MXC_CCM_CLPCR_LPM_MASK);
@@ -91,21 +101,33 @@ void mxc_cpu_lp_set(enum mxc_cpu_pwr_mode mode)
ccm_clpcr &= ~MXC_CCM_CLPCR_VSTBY;
ccm_clpcr &= ~MXC_CCM_CLPCR_SBYOS;
ccm_clpcr |= 0x1 << MXC_CCM_CLPCR_LPM_OFFSET;
- ccm_clpcr |= MXC_CCM_CLPCR_BYP_MMDC_CH1_LPM_HS;
+ if (cpu_is_mx6sl()) {
+ ccm_clpcr |= MXC_CCM_CLPCR_BYP_MMDC_CH0_LPM_HS;
+ ccm_clpcr |= MXC_CCM_CLPCR_BYPASS_PMIC_VFUNC_READY;
+ } else
+ ccm_clpcr |= MXC_CCM_CLPCR_BYP_MMDC_CH1_LPM_HS;
stop_mode = 0;
} else if (mode == STOP_POWER_OFF) {
ccm_clpcr |= 0x2 << MXC_CCM_CLPCR_LPM_OFFSET;
ccm_clpcr |= 0x3 << MXC_CCM_CLPCR_STBY_COUNT_OFFSET;
ccm_clpcr |= MXC_CCM_CLPCR_VSTBY;
ccm_clpcr |= MXC_CCM_CLPCR_SBYOS;
- ccm_clpcr |= MXC_CCM_CLPCR_BYP_MMDC_CH1_LPM_HS;
+ if (cpu_is_mx6sl()) {
+ ccm_clpcr |= MXC_CCM_CLPCR_BYP_MMDC_CH0_LPM_HS;
+ ccm_clpcr |= MXC_CCM_CLPCR_BYPASS_PMIC_VFUNC_READY;
+ } else
+ ccm_clpcr |= MXC_CCM_CLPCR_BYP_MMDC_CH1_LPM_HS;
stop_mode = 1;
} else {
ccm_clpcr |= 0x2 << MXC_CCM_CLPCR_LPM_OFFSET;
ccm_clpcr |= 0x3 << MXC_CCM_CLPCR_STBY_COUNT_OFFSET;
ccm_clpcr |= MXC_CCM_CLPCR_VSTBY;
ccm_clpcr |= MXC_CCM_CLPCR_SBYOS;
- ccm_clpcr |= MXC_CCM_CLPCR_BYP_MMDC_CH1_LPM_HS;
+ if (cpu_is_mx6sl()) {
+ ccm_clpcr |= MXC_CCM_CLPCR_BYP_MMDC_CH0_LPM_HS;
+ ccm_clpcr |= MXC_CCM_CLPCR_BYPASS_PMIC_VFUNC_READY;
+ } else
+ ccm_clpcr |= MXC_CCM_CLPCR_BYP_MMDC_CH1_LPM_HS;
stop_mode = 2;
}
break;
@@ -129,7 +151,11 @@ void mxc_cpu_lp_set(enum mxc_cpu_pwr_mode mode)
__raw_writel(0x1, gpc_base + GPC_PGC_CPU_PDN_OFFSET);
__raw_writel(0x1, gpc_base + GPC_PGC_GPU_PGCR_OFFSET);
__raw_writel(0x1, gpc_base + GPC_CNTR_OFFSET);
- if (cpu_is_mx6q()) {
+ if (cpu_is_mx6sl()) {
+ __raw_writel(0x1, gpc_base + GPC_PGC_DISP_PGCR_OFFSET);
+ __raw_writel(0x10, gpc_base + GPC_CNTR_OFFSET);
+ }
+ if (cpu_is_mx6q() || cpu_is_mx6dl()) {
/* Enable weak 2P5 linear regulator */
anatop_val = __raw_readl(anatop_base +
HW_ANADIG_REG_2P5);
@@ -144,8 +170,24 @@ void mxc_cpu_lp_set(enum mxc_cpu_pwr_mode mode)
__raw_writel(anatop_val, anatop_base +
HW_ANADIG_REG_CORE);
}
+ } else {
+ /* Disable VDDHIGH_IN to VDDSNVS_IN power path,
+ * only used when VDDSNVS_IN is powered by dedicated
+ * power rail */
+ anatop_val = __raw_readl(anatop_base +
+ HW_ANADIG_ANA_MISC0);
+ anatop_val |= BM_ANADIG_ANA_MISC0_RTC_RINGOSC_EN;
+ __raw_writel(anatop_val, anatop_base +
+ HW_ANADIG_ANA_MISC0);
+ /* We need to allow the memories to be clock gated
+ * in STOP mode, else the power consumption will
+ * be very high. */
+ reg = __raw_readl(MXC_CCM_CGPR);
+ reg |= MXC_CCM_CGPR_MEM_IPG_STOP_MASK;
+ __raw_writel(reg, MXC_CCM_CGPR);
}
- if (cpu_is_mx6q())
+
+ if (!cpu_is_mx6dl())
__raw_writel(__raw_readl(MXC_CCM_CCR) |
MXC_CCM_CCR_RBC_EN, MXC_CCM_CCR);
/* Make sure we clear WB_COUNT and re-config it */
@@ -156,30 +198,78 @@ void mxc_cpu_lp_set(enum mxc_cpu_pwr_mode mode)
MXC_CCM_CCR_WB_COUNT_OFFSET), MXC_CCM_CCR);
ccm_clpcr |= MXC_CCM_CLPCR_WB_PER_AT_LPM;
}
+ if (cpu_is_mx6sl() ||
+ (mx6q_revision() > IMX_CHIP_REVISION_1_1) ||
+ (mx6dl_revision() > IMX_CHIP_REVISION_1_0)) {
+ u32 reg;
+ /* We need to allow the memories to be clock gated
+ * in STOP mode, else the power consumption will
+ * be very high.
+ */
+ reg = __raw_readl(MXC_CCM_CGPR);
+ reg |= MXC_CCM_CGPR_MEM_IPG_STOP_MASK;
+ __raw_writel(reg, MXC_CCM_CGPR);
+ }
}
__raw_writel(ccm_clpcr, MXC_CCM_CLPCR);
}
extern int tick_broadcast_oneshot_active(void);
-void arch_idle(void)
+ void arch_idle(void)
{
if (enable_wait_mode) {
-#ifdef CONFIG_LOCAL_TIMERS
+ u32 reg;
int cpu = smp_processor_id();
- if (!tick_broadcast_oneshot_active())
- return;
+ *((char *)(&num_cpu_idle_lock) + (char)cpu) = 0x0;
+ mxc_cpu_lp_set(WAIT_UNCLOCKED_POWER_OFF);
+ if (arm_mem_clked_in_wait || mem_clk_on_in_wait) {
+ reg = __raw_readl(MXC_CCM_CGPR);
+ reg &= ~MXC_CCM_CGPR_MEM_IPG_STOP_MASK;
+ __raw_writel(reg, MXC_CCM_CGPR);
+
+ cpu_do_idle();
+ } else if (num_possible_cpus() == 1) {
+ /* We can directly use the divider to drop the ARM
+ * core freq in a single core environment.
+ */
+ u32 podf = wait_mode_arm_podf;
+ /* Set the ARM_PODF to get the max freq possible
+ * to avoid the WAIT mode issue when IPG is at 66MHz.
+ */
+ if (low_bus_freq_mode)
+ podf = 7;
+
+ __raw_writel(podf, MXC_CCM_CACRR);
+ while (__raw_readl(MXC_CCM_CDHIPR))
+ ;
+ cpu_do_idle();
+
+ __raw_writel(cur_arm_podf - 1, MXC_CCM_CACRR);
+ } else {
+#ifdef CONFIG_LOCAL_TIMERS
+ if (!tick_broadcast_oneshot_active()
+ || !tick_oneshot_mode_active())
+ return;
- clockevents_notify(CLOCK_EVT_NOTIFY_BROADCAST_ENTER, &cpu);
+ clockevents_notify(CLOCK_EVT_NOTIFY_BROADCAST_ENTER, &cpu);
#endif
- *((char *)(&num_cpu_idle_lock) + smp_processor_id()) = 0x0;
- mxc_cpu_lp_set(WAIT_UNCLOCKED_POWER_OFF);
- mx6_wait((void *)&num_cpu_idle_lock, (void *)&num_cpu_idle);
+ if (low_bus_freq_mode || audio_bus_freq_mode)
+ mx6_wait((void *)&num_cpu_idle_lock,
+ (void *)&num_cpu_idle,
+ 7, cur_arm_podf - 1);
+ else
+ mx6_wait((void *)&num_cpu_idle_lock,
+ (void *)&num_cpu_idle,
+ wait_mode_arm_podf, cur_arm_podf - 1);
#ifdef CONFIG_LOCAL_TIMERS
- clockevents_notify(CLOCK_EVT_NOTIFY_BROADCAST_EXIT, &cpu);
+ clockevents_notify(CLOCK_EVT_NOTIFY_BROADCAST_EXIT, &cpu);
#endif
- } else
+ }
+ } else {
+ mxc_cpu_lp_set(WAIT_CLOCKED);
cpu_do_idle();
+ }
}
static int __mxs_reset_block(void __iomem *hwreg, int just_enable)
diff --git a/arch/arm/mach-mx6/usb_dr.c b/arch/arm/mach-mx6/usb_dr.c
index 24c8cb9c4d31..0a15a8ce3327 100644
--- a/arch/arm/mach-mx6/usb_dr.c
+++ b/arch/arm/mach-mx6/usb_dr.c
@@ -32,6 +32,7 @@ static int usbotg_init_ext(struct platform_device *pdev);
static void usbotg_uninit_ext(struct platform_device *pdev);
static void usbotg_clock_gate(bool on);
static void _dr_discharge_line(bool enable);
+extern bool usb_icbug_swfix_need(void);
/* The usb_phy1_clk do not have enable/disable function at clock.c
* and PLL output for usb1's phy should be always enabled.
@@ -160,6 +161,9 @@ static int usb_phy_enable(struct fsl_usb2_platform_data *pdata)
, phy_reg + HW_USBPHY_CTRL_SET);
}
+ if (!usb_icbug_swfix_need())
+ __raw_writel(((1 << 17) | (1 << 18)),
+ phy_reg + HW_USBPHY_IP_SET);
return 0;
}
/* Notes: configure USB clock*/
@@ -553,6 +557,7 @@ void __init mx6_usb_dr_init(void)
{
struct platform_device *pdev, *pdev_wakeup;
static void __iomem *anatop_base_addr = MX6_IO_ADDRESS(ANATOP_BASE_ADDR);
+
#ifdef CONFIG_USB_OTG
/* wake_up_enable is useless, just for usb_register_remote_wakeup execution*/
dr_utmi_config.wake_up_enable = _device_wakeup_enable;
@@ -564,8 +569,13 @@ void __init mx6_usb_dr_init(void)
#ifdef CONFIG_USB_EHCI_ARC_OTG
dr_utmi_config.operating_mode = DR_HOST_MODE;
dr_utmi_config.wake_up_enable = _host_wakeup_enable;
- dr_utmi_config.platform_rh_suspend = _host_platform_rh_suspend;
- dr_utmi_config.platform_rh_resume = _host_platform_rh_resume;
+ if (usb_icbug_swfix_need()) {
+ dr_utmi_config.platform_rh_suspend = _host_platform_rh_suspend;
+ dr_utmi_config.platform_rh_resume = _host_platform_rh_resume;
+ } else {
+ dr_utmi_config.platform_rh_suspend = NULL;
+ dr_utmi_config.platform_rh_resume = NULL;
+ }
dr_utmi_config.platform_set_disconnect_det = fsl_platform_otg_set_usb_phy_dis;
dr_utmi_config.phy_lowpower_suspend = _host_phy_lowpower_suspend;
dr_utmi_config.is_wakeup_event = _is_host_wakeup;
diff --git a/arch/arm/mach-mx6/usb_h1.c b/arch/arm/mach-mx6/usb_h1.c
index 478ead40cf0d..bff9a29aef02 100644
--- a/arch/arm/mach-mx6/usb_h1.c
+++ b/arch/arm/mach-mx6/usb_h1.c
@@ -34,6 +34,7 @@
static struct clk *usb_oh3_clk;
extern int clk_get_usecount(struct clk *clk);
static struct fsl_usb2_platform_data usbh1_config;
+extern bool usb_icbug_swfix_need(void);
static void fsl_platform_h1_set_usb_phy_dis(
struct fsl_usb2_platform_data *pdata, bool enable)
@@ -124,6 +125,9 @@ static int usb_phy_enable(struct fsl_usb2_platform_data *pdata)
tmp |= (BM_USBPHY_CTRL_ENUTMILEVEL2 | BM_USBPHY_CTRL_ENUTMILEVEL3);
__raw_writel(tmp, phy_reg + HW_USBPHY_CTRL);
+ if (!usb_icbug_swfix_need())
+ __raw_writel(((1 << 17) | (1 << 18)),
+ phy_reg + HW_USBPHY_IP_SET);
return 0;
}
static int fsl_usb_host_init_ext(struct platform_device *pdev)
@@ -329,8 +333,6 @@ static struct fsl_usb2_platform_data usbh1_config = {
.power_budget = 500, /* 500 mA max power */
.wake_up_enable = _wake_up_enable,
.usb_clock_for_pm = usbh1_clock_gate,
- .platform_rh_suspend = usbh1_platform_rh_suspend,
- .platform_rh_resume = usbh1_platform_rh_resume,
.platform_set_disconnect_det = fsl_platform_h1_set_usb_phy_dis,
.phy_lowpower_suspend = _phy_lowpower_suspend,
.is_wakeup_event = _is_usbh1_wakeup,
@@ -349,12 +351,27 @@ void __init mx6_usb_h1_init(void)
{
struct platform_device *pdev, *pdev_wakeup;
static void __iomem *anatop_base_addr = MX6_IO_ADDRESS(ANATOP_BASE_ADDR);
+
usbh1_config.wakeup_pdata = &usbh1_wakeup_config;
- pdev = imx6q_add_fsl_ehci_hs(1, &usbh1_config);
+ if (usb_icbug_swfix_need()) {
+ usbh1_config.platform_rh_suspend = usbh1_platform_rh_suspend;
+ usbh1_config.platform_rh_resume = usbh1_platform_rh_resume;
+ } else {
+ usbh1_config.platform_rh_suspend = NULL;
+ usbh1_config.platform_rh_resume = NULL;
+ }
+ if (cpu_is_mx6sl())
+ pdev = imx6sl_add_fsl_ehci_hs(1, &usbh1_config);
+ else
+ pdev = imx6q_add_fsl_ehci_hs(1, &usbh1_config);
usbh1_wakeup_config.usb_pdata[0] = pdev->dev.platform_data;
- pdev_wakeup = imx6q_add_fsl_usb2_hs_wakeup(1, &usbh1_wakeup_config);
+ if (cpu_is_mx6sl())
+ pdev_wakeup = imx6sl_add_fsl_usb2_hs_wakeup(1, &usbh1_wakeup_config);
+ else
+ pdev_wakeup = imx6q_add_fsl_usb2_hs_wakeup(1, &usbh1_wakeup_config);
((struct fsl_usb2_platform_data *)(pdev->dev.platform_data))->wakeup_pdata =
(struct fsl_usb2_wakeup_platform_data *)(pdev_wakeup->dev.platform_data);
+
/* Some phy and power's special controls for host1
* 1. The external charger detector needs to be disabled
* or the signal at DP will be poor
diff --git a/arch/arm/mach-mx6/usb_h2.c b/arch/arm/mach-mx6/usb_h2.c
index a671a958da75..24083fd52d72 100644
--- a/arch/arm/mach-mx6/usb_h2.c
+++ b/arch/arm/mach-mx6/usb_h2.c
@@ -31,6 +31,7 @@
#include <mach/hardware.h>
#include <mach/iomux-mx6q.h>
#include <mach/iomux-mx6dl.h>
+#include <mach/iomux-mx6sl.h>
#include "devices-imx6q.h"
#include "regs-anadig.h"
#include "usb.h"
@@ -185,6 +186,9 @@ static void hsic_start(void)
else if (cpu_is_mx6dl())
mxc_iomux_v3_setup_pad(
MX6DL_PAD_RGMII_TX_CTL__USBOH3_H2_STROBE_START);
+ else if (cpu_is_mx6sl())
+ mxc_iomux_v3_setup_pad(
+ MX6SL_PAD_HSIC_STROBE__USB_H_STROBE_START);
}
static void hsic_device_connected(void)
diff --git a/arch/arm/plat-mxc/audmux-v2.c b/arch/arm/plat-mxc/audmux-v2.c
index 8933cacb8cb3..c36ddb34c905 100644
--- a/arch/arm/plat-mxc/audmux-v2.c
+++ b/arch/arm/plat-mxc/audmux-v2.c
@@ -186,13 +186,11 @@ EXPORT_SYMBOL_GPL(mxc_audmux_v2_configure_port);
static int mxc_audmux_v2_init(void)
{
- int ret;
+ int ret = -1;
#if defined(CONFIG_ARCH_MX6)
- if (cpu_is_mx6q() || cpu_is_mx6dl()) {
- audmux_base = MX6_IO_ADDRESS(MX6Q_AUDMUX_BASE_ADDR);
- ret = 0;
- }
+ audmux_base = MX6_IO_ADDRESS(MX6Q_AUDMUX_BASE_ADDR);
+ ret = 0;
#endif
#if defined(CONFIG_ARCH_MX5)
if (cpu_is_mx51()) {
diff --git a/arch/arm/plat-mxc/cpu.c b/arch/arm/plat-mxc/cpu.c
index 143a9b7b0aaa..073c237cc387 100755
--- a/arch/arm/plat-mxc/cpu.c
+++ b/arch/arm/plat-mxc/cpu.c
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2011 Freescale Semiconductor, Inc. All Rights Reserved.
+ * Copyright (C) 2011-2012 Freescale Semiconductor, Inc. All Rights Reserved.
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
@@ -18,6 +18,7 @@
#include <linux/module.h>
#include <mach/clock.h>
+#include <mach/hardware.h>
unsigned int __mxc_cpu_type;
EXPORT_SYMBOL(__mxc_cpu_type);
@@ -29,6 +30,15 @@ void mxc_set_cpu_type(unsigned int type)
__mxc_cpu_type = type;
}
+void imx_print_silicon_rev(const char *cpu, int srev)
+{
+ if (srev == IMX_CHIP_REVISION_UNKNOWN)
+ pr_info("CPU identified as %s, unknown revision\n", cpu);
+ else
+ pr_info("CPU identified as %s, silicon rev %d.%d\n",
+ cpu, (srev >> 4) & 0xf, srev & 0xf);
+}
+
int mxc_jtag_enabled; /* OFF: 0 (default), ON: 1 */
int uart_at_24; /* OFF: 0 (default); ON: 1 */
/*
diff --git a/arch/arm/plat-mxc/cpufreq.c b/arch/arm/plat-mxc/cpufreq.c
index 9dfdd39be28c..3a0b818f5b22 100755
--- a/arch/arm/plat-mxc/cpufreq.c
+++ b/arch/arm/plat-mxc/cpufreq.c
@@ -22,7 +22,7 @@
#include <linux/slab.h>
#include <linux/regulator/consumer.h>
#include <linux/delay.h>
-
+#include <linux/io.h>
#include <asm/smp_plat.h>
#include <asm/cpu.h>
@@ -32,6 +32,47 @@
#define CLK32_FREQ 32768
#define NANOSECOND (1000 * 1000 * 1000)
+/*If using cpu internal ldo bypass,we need config pmic by I2C in suspend
+interface, but cpufreq driver as sys_dev is more later to suspend than I2C
+driver, so we should implement another I2C operate function which isolated
+with kernel I2C driver, these code is copied from u-boot*/
+#ifdef CONFIG_MX6_INTER_LDO_BYPASS
+#define IADR 0x00
+#define IFDR 0x04
+#define I2CR 0x08
+#define I2SR 0x0c
+#define I2DR 0x10
+
+#define I2CR_IEN (1 << 7)
+#define I2CR_IIEN (1 << 6)
+#define I2CR_MSTA (1 << 5)
+#define I2CR_MTX (1 << 4)
+#define I2CR_TX_NO_AK (1 << 3)
+#define I2CR_RSTA (1 << 2)
+
+#define I2SR_ICF (1 << 7)
+#define I2SR_IBB (1 << 5)
+#define I2SR_IIF (1 << 1)
+#define I2SR_RX_NO_AK (1 << 0)
+
+#define I2C_MAX_TIMEOUT 100000
+#define I2C_TIMEOUT_TICKET 1
+#define CCM_CCGR2 0x70
+
+/*#define MX6_I2CRAW_DEBUG*/
+#ifdef MX6_I2CRAW_DEBUG
+#define DPRINTF(args...) printk(args)
+#else
+#define DPRINTF(args...)
+#endif
+
+/*judge for pfuze regulator driver suspend or not, after pfuze regulator
+suspend and before resume, should use i2c raw read/write to configure
+voltage, it's safe enough, otherwise mxc_cpufreq_suspend will be failed
+since i2c/pfuze have been suspend firstly.*/
+extern int cpu_freq_suspend_in;
+#endif
+
static int cpu_freq_khz_min;
static int cpu_freq_khz_max;
@@ -51,11 +92,108 @@ extern int set_low_bus_freq(void);
extern int set_high_bus_freq(int high_bus_speed);
extern int low_freq_bus_used(void);
+#ifdef CONFIG_MX6_INTER_LDO_BYPASS
+static void __iomem *i2c_base;/*i2c for pmic*/
+static void __iomem *ccm_base;/*ccm_base*/
+static int wait_busy(void)
+{
+ int timeout = I2C_MAX_TIMEOUT;
+
+ while ((!(readb(i2c_base + I2SR) & I2SR_IBB) && (--timeout))) {
+ writeb(0, i2c_base + I2SR);
+ udelay(I2C_TIMEOUT_TICKET);
+ }
+ return timeout ? timeout : (readb(i2c_base + I2SR) & I2SR_IBB);
+}
+
+static int wait_complete(void)
+{
+ int timeout = I2C_MAX_TIMEOUT;
+
+ while ((!(readb(i2c_base + I2SR) & I2SR_ICF)) && (--timeout)) {
+ writeb(0, i2c_base + I2SR);
+ udelay(I2C_TIMEOUT_TICKET);
+ }
+ DPRINTF("%s:%x\n", __func__, readb(i2c_base + I2SR));
+ {
+ int i;
+ for (i = 0; i < 200; i++)
+ udelay(10);
+
+ }
+ writeb(0, i2c_base + I2SR); /* clear interrupt */
+
+ return timeout;
+}
+
+static int tx_byte(u8 byte)
+{
+ writeb(byte, i2c_base + I2DR);
+
+ if (!wait_complete() || readb(i2c_base + I2SR) & I2SR_RX_NO_AK) {
+ DPRINTF("%s:%x <= %x\n", __func__, readb(i2c_base + I2SR),
+ byte);
+ return -1;
+ }
+ DPRINTF("%s:%x\n", __func__, byte);
+ return 0;
+}
+
+static int i2c_addr(unsigned char chip, u32 addr, int alen)
+{
+ writeb(I2CR_IEN | I2CR_MSTA | I2CR_MTX, i2c_base + I2CR);
+ if (!wait_busy()) {
+ DPRINTF("%s:trigger start fail(%x)\n",
+ __func__, readb(i2c_base + I2SR));
+ return -1;
+ }
+ if (tx_byte(chip << 1) || (readb(i2c_base + I2SR) & I2SR_RX_NO_AK)) {
+ DPRINTF("%s:chip address cycle fail(%x)\n",
+ __func__, readb(i2c_base + I2SR));
+ return -1;
+ }
+ while (alen--)
+ if (tx_byte((addr >> (alen * 8)) & 0xff) ||
+ (readb(i2c_base + I2SR) & I2SR_RX_NO_AK)) {
+ DPRINTF("%s:device address cycle fail(%x)\n",
+ __func__, readb(i2c_base + I2SR));
+ return -1;
+ }
+ return 0;
+}
+
+
+static int i2c_write(unsigned char chip, u32 addr, int alen, unsigned char *buf,
+ int len)
+{
+ int timeout = I2C_MAX_TIMEOUT;
+ DPRINTF("%s chip: 0x%02x addr: 0x%04x alen: %d len: %d\n",
+ __func__, chip, addr, alen, len);
+
+ if (i2c_addr(chip, addr, alen))
+ return -1;
+
+ while (len--)
+ if (tx_byte(*buf++))
+ return -1;
+
+ writeb(I2CR_IEN, i2c_base + I2CR);
+
+ while (readb(i2c_base + I2SR) & I2SR_IBB && --timeout)
+ udelay(I2C_TIMEOUT_TICKET);
+
+ return 0;
+}
+
+#endif
int set_cpu_freq(int freq)
{
int i, ret = 0;
int org_cpu_rate;
int gp_volt = 0;
+ #ifdef CONFIG_MX6_INTER_LDO_BYPASS
+ unsigned char data;
+ #endif
org_cpu_rate = clk_get_rate(cpu_clk);
if (org_cpu_rate == freq)
@@ -68,13 +206,56 @@ int set_cpu_freq(int freq)
if (gp_volt == 0)
return ret;
+ #ifdef CONFIG_MX6_INTER_LDO_BYPASS
+ if (cpu_freq_suspend_in) {
+ u32 value;
+ /*init I2C*/
+ value = __raw_readl(ccm_base + CCM_CCGR2);
+ __raw_writel(value | 0x300, ccm_base + CCM_CCGR2);
+ udelay(1);
+ value = readb(i2c_base + I2CR);
+ writeb(value | (1 << 7), i2c_base + I2CR);
+ value = readb(i2c_base + I2SR);
+ writeb(0, i2c_base + I2SR);
+ switch (freq) {
+ case 1200000000:/*1.275*/
+ data = 0x27;
+ break;
+ case 996000000:/*1.225V*/
+ data = 0x25;
+ break;
+ case 792000000:/*1.1V*/
+ case 672000000:
+ data = 0x20;
+ break;
+ case 396000000:/*0.95V*/
+ data = 0x1a;
+ break;
+ case 198000000:/*0.85V*/
+ data = 0x16;
+ break;
+ default:
+ printk(KERN_ERR "suspend freq error:%d!!!\n", freq);
+ break;
+ }
+ }
+ #endif
/*Set the voltage for the GP domain. */
if (freq > org_cpu_rate) {
if (low_bus_freq_mode)
set_high_bus_freq(0);
+ #ifdef CONFIG_MX6_INTER_LDO_BYPASS
+ if (cpu_freq_suspend_in) {
+ ret = i2c_write(0x8, 0x20, 1, &data, 1);
+ udelay(10);
+ } else
+ ret = regulator_set_voltage(cpu_regulator, gp_volt,
+ gp_volt);
+ #else
ret = regulator_set_voltage(cpu_regulator, gp_volt,
gp_volt);
+ #endif
if (ret < 0) {
printk(KERN_DEBUG "COULD NOT SET GP VOLTAGE!!!!\n");
return ret;
@@ -89,8 +270,18 @@ int set_cpu_freq(int freq)
}
if (freq < org_cpu_rate) {
+ #ifdef CONFIG_MX6_INTER_LDO_BYPASS
+
+ if (cpu_freq_suspend_in) {
+ ret = i2c_write(0x8, 0x20, 1, &data, 1);
+ udelay(10);
+ } else
+ ret = regulator_set_voltage(cpu_regulator, gp_volt,
+ gp_volt);
+ #else
ret = regulator_set_voltage(cpu_regulator, gp_volt,
gp_volt);
+ #endif
if (ret < 0) {
printk(KERN_DEBUG "COULD NOT SET GP VOLTAGE!!!!\n");
return ret;
@@ -184,8 +375,17 @@ static int mxc_cpufreq_suspend(struct cpufreq_policy *policy)
{
pre_suspend_rate = clk_get_rate(cpu_clk);
/* Set to max freq and voltage */
+ /*There should be *1000, but if fix the typo error, found
+ hard to pass streng test, it means we didn't move cpu freq
+ to highest freq in suspend, but if we choose bypass, we
+ have to do this, so use macro to decrease the impact on
+ released code, the 1Ghz issue should be fixed in the future*/
if (pre_suspend_rate != (imx_freq_table[0].frequency * 1000))
+ #ifdef CONFIG_MX6_INTER_LDO_BYPASS
+ set_cpu_freq(imx_freq_table[0].frequency * 1000);
+ #else
set_cpu_freq(imx_freq_table[0].frequency);
+ #endif
return 0;
}
@@ -194,7 +394,6 @@ static int mxc_cpufreq_resume(struct cpufreq_policy *policy)
{
if (clk_get_rate(cpu_clk) != pre_suspend_rate)
set_cpu_freq(pre_suspend_rate);
-
return 0;
}
@@ -301,8 +500,14 @@ static struct cpufreq_driver mxc_driver = {
.name = "imx",
};
+extern void mx6_cpu_regulator_init(void);
static int __init mxc_cpufreq_driver_init(void)
{
+ #ifdef CONFIG_MX6_INTER_LDO_BYPASS
+ mx6_cpu_regulator_init();
+ i2c_base = MX6_IO_ADDRESS(MX6Q_I2C2_BASE_ADDR);
+ ccm_base = MX6_IO_ADDRESS(CCM_BASE_ADDR);
+ #endif
return cpufreq_register_driver(&mxc_driver);
}
diff --git a/arch/arm/plat-mxc/devices/Kconfig b/arch/arm/plat-mxc/devices/Kconfig
index 47d19921c6b5..bdea66b7a1f4 100755
--- a/arch/arm/plat-mxc/devices/Kconfig
+++ b/arch/arm/plat-mxc/devices/Kconfig
@@ -37,6 +37,10 @@ config IMX_HAVE_PLATFORM_IMX_SRTC
config IMX_HAVE_PLATFORM_IMX_SNVS_RTC
bool
+config IMX_HAVE_PLATFORM_IMX_CAAM
+ bool
+ default y if SOC_IMX6Q
+
config IMX_HAVE_PLATFORM_IMX_FB
bool
select HAVE_FB_IMX
@@ -137,9 +141,15 @@ config IMX_HAVE_PLATFORM_LDB
config IMX_HAVE_PLATFORM_IMX_PXP
bool
+config IMX_HAVE_PLATFORM_IMX_ELCDIF
+ bool
+
config IMX_HAVE_PLATFORM_IMX_EPDC
bool
+config IMX_HAVE_PLATFORM_IMX_SPDC
+ bool
+
config IMX_HAVE_PLATFORM_IMX_SPDIF
bool
diff --git a/arch/arm/plat-mxc/devices/Makefile b/arch/arm/plat-mxc/devices/Makefile
index be2b0a674825..386b9cb4e29c 100755
--- a/arch/arm/plat-mxc/devices/Makefile
+++ b/arch/arm/plat-mxc/devices/Makefile
@@ -10,6 +10,7 @@ obj-$(CONFIG_IMX_HAVE_PLATFORM_IMX2_WDT) += platform-imx2-wdt.o
obj-$(CONFIG_IMX_HAVE_PLATFORM_IMXDI_RTC) += platform-imxdi_rtc.o
obj-$(CONFIG_IMX_HAVE_PLATFORM_IMX_SRTC) += platform-imx_srtc.o
obj-$(CONFIG_IMX_HAVE_PLATFORM_IMX_SNVS_RTC) += platform-imx_snvs_rtc.o
+obj-$(CONFIG_IMX_HAVE_PLATFORM_IMX_CAAM) += platform-imx-caam.o
obj-y += platform-imx-dma.o
obj-$(CONFIG_IMX_HAVE_PLATFORM_IMX_FB) += platform-imx-fb.o
obj-$(CONFIG_IMX_HAVE_PLATFORM_IMX_I2C) += platform-imx-i2c.o
@@ -46,6 +47,8 @@ obj-$(CONFIG_IMX_HAVE_PLATFORM_LDB) += platform-imx_ldb.o
obj-y += platform-imx-scc2.o
obj-$(CONFIG_IMX_HAVE_PLATFORM_IMX_PXP) += platform-imx-pxp.o
obj-$(CONFIG_IMX_HAVE_PLATFORM_IMX_EPDC) += platform-imx-epdc-fb.o
+obj-$(CONFIG_IMX_HAVE_PLATFORM_IMX_SPDC) += platform-imx-spdc-fb.o
+obj-$(CONFIG_IMX_HAVE_PLATFORM_IMX_ELCDIF) += platform-imx-elcdif-fb.o
obj-$(CONFIG_IMX_HAVE_PLATFORM_IMX_SPDIF) += platform-imx-spdif.o
obj-$(CONFIG_IMX_HAVE_PLATFORM_IMX_SPDIF) += platform-imx-spdif-dai.o
obj-$(CONFIG_IMX_HAVE_PLATFORM_IMX_SPDIF) += platform-imx-spdif-audio.o
diff --git a/arch/arm/plat-mxc/devices/platform-fec.c b/arch/arm/plat-mxc/devices/platform-fec.c
index b5e98576992f..20422cf6e76f 100644
--- a/arch/arm/plat-mxc/devices/platform-fec.c
+++ b/arch/arm/plat-mxc/devices/platform-fec.c
@@ -6,52 +6,56 @@
* the terms of the GNU General Public License version 2 as published by the
* Free Software Foundation.
*
- * Copyright (C) 2011 Freescale Semiconductor, Inc.
+ * Copyright (C) 2011-2012 Freescale Semiconductor, Inc.
*/
#include <linux/dma-mapping.h>
#include <asm/sizes.h>
#include <mach/hardware.h>
#include <mach/devices-common.h>
-#define imx_fec_data_entry_single(soc) \
+#define imx_fec_data_entry_single(soc, _devid) \
{ \
.iobase = soc ## _FEC_BASE_ADDR, \
.irq = soc ## _INT_FEC, \
+ .devid = _devid, \
}
#ifdef CONFIG_SOC_IMX25
const struct imx_fec_data imx25_fec_data __initconst =
- imx_fec_data_entry_single(MX25);
+ imx_fec_data_entry_single(MX25, "imx28-fec");
#endif /* ifdef CONFIG_SOC_IMX25 */
#ifdef CONFIG_SOC_IMX27
const struct imx_fec_data imx27_fec_data __initconst =
- imx_fec_data_entry_single(MX27);
+ imx_fec_data_entry_single(MX27, "imx28-fec");
#endif /* ifdef CONFIG_SOC_IMX27 */
#ifdef CONFIG_SOC_IMX35
const struct imx_fec_data imx35_fec_data __initconst =
- imx_fec_data_entry_single(MX35);
+ imx_fec_data_entry_single(MX35, "imx28-fec");
#endif
#ifdef CONFIG_SOC_IMX50
const struct imx_fec_data imx50_fec_data __initconst =
- imx_fec_data_entry_single(MX50);
+ imx_fec_data_entry_single(MX50, "fec");
#endif
#ifdef CONFIG_SOC_IMX51
const struct imx_fec_data imx51_fec_data __initconst =
- imx_fec_data_entry_single(MX51);
+ imx_fec_data_entry_single(MX51, "fec");
#endif
#ifdef CONFIG_SOC_IMX53
const struct imx_fec_data imx53_fec_data __initconst =
- imx_fec_data_entry_single(MX53);
+ imx_fec_data_entry_single(MX53, "fec");
#endif
#ifdef CONFIG_SOC_IMX6Q
const struct imx_fec_data imx6q_fec_data __initconst =
- imx_fec_data_entry_single(MX6Q);
+ imx_fec_data_entry_single(MX6Q, "enet");
+
+const struct imx_fec_data imx6sl_fec_data __initconst =
+ imx_fec_data_entry_single(MX6DL, "fec");
#endif
struct platform_device *__init imx_add_fec(
@@ -70,7 +74,7 @@ struct platform_device *__init imx_add_fec(
},
};
- return imx_add_platform_device_dmamask("fec", 0,
+ return imx_add_platform_device_dmamask(data->devid, 0,
res, ARRAY_SIZE(res),
pdata, sizeof(*pdata), DMA_BIT_MASK(32));
}
diff --git a/arch/arm/plat-mxc/devices/platform-fsl-usb2-wakeup.c b/arch/arm/plat-mxc/devices/platform-fsl-usb2-wakeup.c
index 523c5d4599e1..986b766fabde 100644
--- a/arch/arm/plat-mxc/devices/platform-fsl-usb2-wakeup.c
+++ b/arch/arm/plat-mxc/devices/platform-fsl-usb2-wakeup.c
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2011 Freescale Semiconductor, Inc. All Rights Reserved.
+ * Copyright (C) 2011-2012 Freescale Semiconductor, Inc. All Rights Reserved.
*
* Copyright (C) 2010 Pengutronix
* Uwe Kleine-Koenig <u.kleine-koenig@pengutronix.de>
@@ -25,6 +25,12 @@ const struct imx_fsl_usb2_wakeup_data imx6q_fsl_hs_wakeup_data[] __initconst = {
imx_fsl_usb2_wakeup_data_entry_single(MX6Q, 2, HS2),
imx_fsl_usb2_wakeup_data_entry_single(MX6Q, 3, HS3),
};
+
+const struct imx_fsl_usb2_wakeup_data imx6sl_fsl_hs_wakeup_data[] __initconst = {
+ imx_fsl_usb2_wakeup_data_entry_single(MX6SL, 1, HS1),
+ imx_fsl_usb2_wakeup_data_entry_single(MX6SL, 2, HS2),
+ imx_fsl_usb2_wakeup_data_entry_single(MX6SL, 3, HS3),
+};
#endif /* ifdef CONFIG_SOC_IMX6Q */
struct platform_device *__init imx_add_fsl_usb2_wakeup(
diff --git a/arch/arm/plat-mxc/devices/platform-imx-caam.c b/arch/arm/plat-mxc/devices/platform-imx-caam.c
new file mode 100644
index 000000000000..316249032a8d
--- /dev/null
+++ b/arch/arm/plat-mxc/devices/platform-imx-caam.c
@@ -0,0 +1,93 @@
+/*
+ * Copyright (C) 2012 Freescale Semiconductor, Inc. All Rights Reserved.
+ */
+
+/*
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+
+ * You should have received a copy of the GNU General Public License along
+ * with this program; if not, write to the Free Software Foundation, Inc.,
+ * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+ */
+
+#include <asm/sizes.h>
+#include <mach/hardware.h>
+#include <mach/devices-common.h>
+
+/*
+ * security violation interrupt is used as CAAM base _INT_SNVS_SEC
+ * SNVS consolidated = _INT_SNVS
+ * JR0 = MXC_INT_CAAM_INT0_NUM
+ * JR1 = MXC_INT_CAAM_INT1_NUM
+ */
+
+const struct imx_caam_data imx6q_imx_caam_data __initconst = {
+ .iobase_caam = MXC_CAAM_BASE_ADDR,
+ .irq_sec_vio = MXC_INT_SNVS_SEC,
+ .irq_snvs = MX6Q_INT_SNVS,
+ .jr[0].offset_jr = 0x1000,
+ .jr[0].irq_jr = MXC_INT_CAAM_INT0_NUM,
+ .jr[1].offset_jr = 0x2000,
+ .jr[1].irq_jr = MXC_INT_CAAM_INT1_NUM,
+};
+
+struct platform_device *__init imx_add_caam(
+ const struct imx_caam_data *data)
+{
+ u32 res_count = 0;
+ struct resource res[] = {
+ {
+ /* Define base range for entire CAAM register map */
+ .name = "iobase_caam",
+ .start = data->iobase_caam,
+ .end = data->iobase_caam + SZ_64K - 1,
+ .flags = IORESOURCE_MEM,
+ }, {
+ /* Define interrupt for security violations */
+ .name = "irq_sec_vio",
+ .start = data->irq_sec_vio,
+ .end = data->irq_sec_vio,
+ .flags = IORESOURCE_IRQ,
+ }, {
+ /* Define general SNVS interrupt */
+ .name = "irq_snvs",
+ .start = data->irq_snvs,
+ .end = data->irq_snvs,
+ .flags = IORESOURCE_IRQ,
+ }, {
+ .name = "offset_jr0",
+ .start = data->jr[0].offset_jr,
+ .end = data->jr[0].offset_jr,
+ .flags = IORESOURCE_MEM,
+ }, {
+ .name = "irq_jr0",
+ .start = data->jr[0].irq_jr,
+ .end = data->jr[0].irq_jr,
+ .flags = IORESOURCE_IRQ,
+ }, {
+ .name = "offset_jr1",
+ .start = data->jr[1].offset_jr,
+ .end = data->jr[1].offset_jr,
+ .flags = IORESOURCE_MEM,
+ }, {
+ .name = "irq_jr1",
+ .start = data->jr[1].irq_jr,
+ .end = data->jr[1].irq_jr,
+ .flags = IORESOURCE_IRQ,
+ },
+ };
+
+ res_count = ARRAY_SIZE(res);
+ BUG_ON(!res_count);
+
+ return imx_add_platform_device("caam", 0,
+ res, ARRAY_SIZE(res), NULL, 0);
+}
diff --git a/arch/arm/plat-mxc/devices/platform-imx-dma.c b/arch/arm/plat-mxc/devices/platform-imx-dma.c
index 65a71ac8b9e9..e7caaf4ce36f 100755
--- a/arch/arm/plat-mxc/devices/platform-imx-dma.c
+++ b/arch/arm/plat-mxc/devices/platform-imx-dma.c
@@ -260,15 +260,17 @@ static int __init imxXX_add_imx_dma(void)
ret = imx_add_imx_sdma(&imx53_imx_sdma_data);
} else
#endif
-#if defined(CONFIG_SOC_IMX6Q)
- if (cpu_is_mx6q() || cpu_is_mx6dl()) {
- int to_version = 1;
- imx6q_imx_sdma_data.pdata.to_version = to_version;
- if (to_version == 1)
- imx6q_imx_sdma_data.pdata.script_addrs =
- &addr_imx6q_to1;
- ret = imx_add_imx_sdma(&imx6q_imx_sdma_data);
- } else
+#if defined(CONFIG_ARCH_MX6)
+ int to_version = 1;
+ imx6q_imx_sdma_data.pdata.to_version = to_version;
+ if (to_version == 1)
+ imx6q_imx_sdma_data.pdata.script_addrs =
+ &addr_imx6q_to1;
+ ret = imx_add_imx_sdma(&imx6q_imx_sdma_data);
+ if (IS_ERR(ret))
+ return PTR_ERR(ret);
+
+ return 0;
#endif
ret = ERR_PTR(-ENODEV);
diff --git a/arch/arm/plat-mxc/devices/platform-imx-elcdif-fb.c b/arch/arm/plat-mxc/devices/platform-imx-elcdif-fb.c
new file mode 100644
index 000000000000..09a59ef90b09
--- /dev/null
+++ b/arch/arm/plat-mxc/devices/platform-imx-elcdif-fb.c
@@ -0,0 +1,56 @@
+/*
+ * Copyright (C) 2012 Freescale Semiconductor, Inc. All Rights Reserved.
+ */
+
+/*
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+
+ * You should have received a copy of the GNU General Public License along
+ * with this program; if not, write to the Free Software Foundation, Inc.,
+ * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+ */
+
+#include <asm/sizes.h>
+#include <mach/hardware.h>
+#include <mach/devices-common.h>
+
+#define imx_elcdif_data_entry_single(soc, size) \
+ { \
+ .iobase = soc ## _ELCDIF_BASE_ADDR, \
+ .irq = soc ## _INT_ELCDIF, \
+ .iosize = size, \
+ }
+
+#ifdef CONFIG_SOC_IMX6SL
+const struct imx_elcdif_data imx6dl_elcdif_data __initconst =
+ imx_elcdif_data_entry_single(MX6DL, SZ_16K);
+#endif
+
+struct platform_device *__init imx_add_imx_elcdif(
+ const struct imx_elcdif_data *data,
+ const struct mxc_fb_platform_data *pdata)
+{
+ struct resource res[] = {
+ {
+ .start = data->iobase,
+ .end = data->iobase + data->iosize - 1,
+ .flags = IORESOURCE_MEM,
+ }, {
+ .start = data->irq,
+ .end = data->irq,
+ .flags = IORESOURCE_IRQ,
+ },
+ };
+
+ return imx_add_platform_device_dmamask("mxc_elcdif_fb", -1,
+ res, ARRAY_SIZE(res), pdata, sizeof(*pdata), DMA_BIT_MASK(32));
+}
+
diff --git a/arch/arm/plat-mxc/devices/platform-imx-spdc-fb.c b/arch/arm/plat-mxc/devices/platform-imx-spdc-fb.c
new file mode 100644
index 000000000000..72010e29d7e6
--- /dev/null
+++ b/arch/arm/plat-mxc/devices/platform-imx-spdc-fb.c
@@ -0,0 +1,56 @@
+/*
+ * Copyright (C) 2012 Freescale Semiconductor, Inc. All Rights Reserved.
+ */
+
+/*
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+
+ * You should have received a copy of the GNU General Public License along
+ * with this program; if not, write to the Free Software Foundation, Inc.,
+ * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+ */
+
+#include <asm/sizes.h>
+#include <mach/hardware.h>
+#include <mach/devices-common.h>
+
+#define imx_spdc_data_entry_single(soc, size) \
+ { \
+ .iobase = soc ## _SIPIX_BASE_ADDR, \
+ .irq = soc ## _INT_SPDC, \
+ .iosize = size, \
+ }
+
+#ifdef CONFIG_SOC_IMX6SL
+const struct imx_epdc_data imx6sl_spdc_data __initconst =
+ imx_spdc_data_entry_single(MX6SL, SZ_16K);
+#endif
+
+struct platform_device *__init imx_add_imx_spdc(
+ const struct imx_epdc_data *data,
+ const struct imx_spdc_fb_platform_data *pdata)
+{
+ struct resource res[] = {
+ {
+ .start = data->iobase,
+ .end = data->iobase + data->iosize - 1,
+ .flags = IORESOURCE_MEM,
+ }, {
+ .start = data->irq,
+ .end = data->irq,
+ .flags = IORESOURCE_IRQ,
+ },
+ };
+
+ return imx_add_platform_device_dmamask("imx_spdc_fb", -1,
+ res, ARRAY_SIZE(res), pdata, sizeof(*pdata), DMA_BIT_MASK(32));
+}
+
diff --git a/arch/arm/plat-mxc/devices/platform-mxc-ehci.c b/arch/arm/plat-mxc/devices/platform-mxc-ehci.c
index 700cf468ea8e..c39f6d7561c6 100644
--- a/arch/arm/plat-mxc/devices/platform-mxc-ehci.c
+++ b/arch/arm/plat-mxc/devices/platform-mxc-ehci.c
@@ -56,6 +56,12 @@ const struct imx_mxc_ehci_data imx6q_mxc_ehci_hs_data[] __initconst = {
imx_mxc_ehci_data_entry_single(MX6Q, 2, HS2),
imx_mxc_ehci_data_entry_single(MX6Q, 3, HS3),
};
+
+const struct imx_mxc_ehci_data imx6sl_mxc_ehci_hs_data[] __initconst = {
+ imx_mxc_ehci_data_entry_single(MX6SL, 1, HS1),
+ imx_mxc_ehci_data_entry_single(MX6SL, 2, HS2),
+ imx_mxc_ehci_data_entry_single(MX6SL, 3, HS3),
+};
#endif /* ifdef CONFIG_SOC_IMX6Q */
struct platform_device *__init imx_add_mxc_ehci(
diff --git a/arch/arm/plat-mxc/dvfs_core.c b/arch/arm/plat-mxc/dvfs_core.c
index d52f7b6eb039..a31ee9a71940 100755
--- a/arch/arm/plat-mxc/dvfs_core.c
+++ b/arch/arm/plat-mxc/dvfs_core.c
@@ -427,7 +427,7 @@ static int set_cpu_freq(int op)
{
int ret = 0;
- if (cpu_is_mx6q() || cpu_is_mx6dl())
+ if (cpu_is_mx6())
ret = mx6_set_cpu_freq(op);
else
ret = mx5_set_cpu_freq(op);
@@ -476,7 +476,7 @@ static int start_dvfs(void)
/* GPCIRQ=1, select ARM IRQ */
reg |= MXC_GPCCNTR_GPCIRQ_ARM;
/* ADU=1, select ARM domain */
- if (!(cpu_is_mx6q() || cpu_is_mx6dl()))
+ if (!cpu_is_mx6())
reg |= MXC_GPCCNTR_ADU;
__raw_writel(reg, gpc_base + dvfs_data->gpc_cntr_offset);
@@ -509,7 +509,7 @@ static int start_dvfs(void)
__raw_writel(reg, dvfs_data->membase + MXC_DVFSCORE_CNTR);
/* Enable DVFS */
- if (cpu_is_mx6q() || cpu_is_mx6dl()) {
+ if (cpu_is_mx6()) {
unsigned long cpu_wfi = 0;
int num_cpus = num_possible_cpus();
reg = __raw_readl(dvfs_data->membase + MXC_DVFSCORE_EMAC);
@@ -947,7 +947,7 @@ static int __devinit mxc_dvfs_core_probe(struct platform_device *pdev)
printk(KERN_ERR "%s: failed to get cpu clock\n", __func__);
return PTR_ERR(cpu_clk);
}
- if (!(cpu_is_mx6q() || cpu_is_mx6dl())) {
+ if (!cpu_is_mx6()) {
dvfs_clk = clk_get(NULL, dvfs_data->clk2_id);
if (IS_ERR(dvfs_clk)) {
printk(KERN_ERR "%s: failed to get dvfs clock\n", __func__);
diff --git a/arch/arm/plat-mxc/gpio.c b/arch/arm/plat-mxc/gpio.c
index f84aa75cdbba..82b70d537df9 100755
--- a/arch/arm/plat-mxc/gpio.c
+++ b/arch/arm/plat-mxc/gpio.c
@@ -346,7 +346,7 @@ int mxc_gpio_init(struct mxc_gpio_port *port, int cnt)
if (cpu_is_mx1() || cpu_is_mx3() || cpu_is_mx25() ||
cpu_is_mx51() || cpu_is_mx53() || cpu_is_mx6q() ||
- cpu_is_mx6dl()) {
+ cpu_is_mx6dl() || cpu_is_mx6sl()) {
/* setup one handler for each entry */
irq_set_chained_handler(port[i].irq,
mx3_gpio_irq_handler);
diff --git a/arch/arm/plat-mxc/include/mach/common.h b/arch/arm/plat-mxc/include/mach/common.h
index 89bc884873f8..4edcaea09b14 100755
--- a/arch/arm/plat-mxc/include/mach/common.h
+++ b/arch/arm/plat-mxc/include/mach/common.h
@@ -74,6 +74,8 @@ extern int mx50_clocks_init(unsigned long ckil, unsigned long osc,
unsigned long ckih1);
extern int mx6_clocks_init(unsigned long ckil, unsigned long osc,
unsigned long ckih1, unsigned long ckih2);
+extern int mx6sl_clocks_init(unsigned long ckil, unsigned long osc,
+ unsigned long ckih1, unsigned long ckih2);
extern void imx6_init_fec(struct fec_platform_data fec_data);
extern int mxc91231_clocks_init(unsigned long fref);
extern int mxc_register_gpios(void);
@@ -93,4 +95,5 @@ extern void early_console_setup(unsigned long base, struct clk *clk);
extern void mx6_cpu_regulator_init(void);
extern int mx6q_sabreauto_init_pfuze100(u32 int_gpio);
extern int mx6q_sabresd_init_pfuze100(u32 int_gpio);
+extern void imx_print_silicon_rev(const char *cpu, int srev);
#endif
diff --git a/arch/arm/plat-mxc/include/mach/devices-common.h b/arch/arm/plat-mxc/include/mach/devices-common.h
index 6fce8c4b8255..eaddb7e3a4f6 100755
--- a/arch/arm/plat-mxc/include/mach/devices-common.h
+++ b/arch/arm/plat-mxc/include/mach/devices-common.h
@@ -34,6 +34,7 @@ struct platform_device *__init imx_add_dma(const struct imx_dma_data *data);
struct imx_fec_data {
resource_size_t iobase;
resource_size_t irq;
+ const char *devid;
};
struct platform_device *__init imx_add_fec(
const struct imx_fec_data *data,
@@ -104,6 +105,20 @@ struct imx_snvs_rtc_data {
struct platform_device *__init imx_add_snvs_rtc(
const struct imx_snvs_rtc_data *data);
+struct imx_caam_jr_data {
+ resource_size_t offset_jr;
+ resource_size_t irq_jr;
+};
+
+struct imx_caam_data {
+ resource_size_t iobase_caam;
+ resource_size_t irq_sec_vio;
+ resource_size_t irq_snvs;
+ struct imx_caam_jr_data jr[4]; /* offset+IRQ for each possible ring */
+};
+
+struct platform_device *__init imx_add_caam(
+ const struct imx_caam_data *data);
#include <mach/imxfb.h>
struct imx_imx_fb_data {
@@ -453,6 +468,17 @@ struct platform_device *__init imx_add_imx_pxp(
const struct imx_pxp_data *data);
struct platform_device *__init imx_add_imx_pxp_client(void);
+#include <linux/fsl_devices.h>
+struct imx_elcdif_data {
+ resource_size_t iobase;
+ resource_size_t iosize;
+ resource_size_t irq;
+};
+
+struct platform_device *__init imx_add_imx_elcdif(
+ const struct imx_elcdif_data *data,
+ const struct mxc_fb_platform_data *pdata);
+
#include <mach/epdc.h>
struct imx_epdc_data {
resource_size_t iobase;
@@ -463,6 +489,10 @@ struct platform_device *__init imx_add_imx_epdc(
const struct imx_epdc_data *data,
const struct imx_epdc_fb_platform_data *pdata);
+struct platform_device *__init imx_add_imx_spdc(
+ const struct imx_epdc_data *data,
+ const struct imx_spdc_fb_platform_data *pdata);
+
struct imx_spdif_data {
resource_size_t iobase;
resource_size_t irq;
diff --git a/arch/arm/plat-mxc/include/mach/epdc.h b/arch/arm/plat-mxc/include/mach/epdc.h
index 89abcc670dd2..36aac88230c8 100644
--- a/arch/arm/plat-mxc/include/mach/epdc.h
+++ b/arch/arm/plat-mxc/include/mach/epdc.h
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2011 Freescale Semiconductor, Inc.
+ * Copyright (C) 2011-2012 Freescale Semiconductor, Inc.
*
* This program is free software; you can redistribute it and/or modify it
* under the terms of the GNU General Public License as published by the
@@ -38,4 +38,31 @@ struct imx_epdc_fb_platform_data {
void (*disable_pins) (void);
};
+struct imx_spdc_panel_init_set {
+ bool yoe_pol;
+ bool dual_gate;
+ u8 resolution;
+ bool ud;
+ bool rl;
+ bool data_filter_n;
+ bool power_ready;
+ bool rgbw_mode_enable;
+ bool hburst_len_en;
+};
+
+struct imx_spdc_fb_mode {
+ struct fb_videomode *vmode;
+ struct imx_spdc_panel_init_set *init_set;
+ const char *wave_timing;
+};
+
+struct imx_spdc_fb_platform_data {
+ struct imx_spdc_fb_mode *spdc_mode;
+ int num_modes;
+ int (*get_pins) (void);
+ void (*put_pins) (void);
+ void (*enable_pins) (void);
+ void (*disable_pins) (void);
+};
+
#endif /* __MACH_EPDC_H_ */
diff --git a/arch/arm/plat-mxc/include/mach/iomux-mx6q.h b/arch/arm/plat-mxc/include/mach/iomux-mx6q.h
index 48b5d9bcdeef..b56f2fe1ff1b 100644
--- a/arch/arm/plat-mxc/include/mach/iomux-mx6q.h
+++ b/arch/arm/plat-mxc/include/mach/iomux-mx6q.h
@@ -24,23 +24,6 @@
#include <mach/iomux-v3.h>
-/*
- * various IOMUX alternate output functions (1-7)
- */
-typedef enum iomux_config {
- IOMUX_CONFIG_ALT0,
- IOMUX_CONFIG_ALT1,
- IOMUX_CONFIG_ALT2,
- IOMUX_CONFIG_ALT3,
- IOMUX_CONFIG_ALT4,
- IOMUX_CONFIG_ALT5,
- IOMUX_CONFIG_ALT6,
- IOMUX_CONFIG_ALT7,
- IOMUX_CONFIG_GPIO, /* added to help user use GPIO mode */
- } iomux_pin_cfg_t;
-
-#define NON_MUX_I 0x3FF
-#define NON_PAD_I 0x7FF
#define MX6Q_CCM_CLK0_PAD_CTRL (PAD_CTL_PKE | PAD_CTL_PUE | \
PAD_CTL_PUS_47K_UP | PAD_CTL_SPEED_LOW | \
PAD_CTL_DSE_80ohm | PAD_CTL_SRE_FAST | PAD_CTL_HYS)
diff --git a/arch/arm/plat-mxc/include/mach/iomux-mx6sl.h b/arch/arm/plat-mxc/include/mach/iomux-mx6sl.h
new file mode 100755
index 000000000000..529ee99c2fa1
--- /dev/null
+++ b/arch/arm/plat-mxc/include/mach/iomux-mx6sl.h
@@ -0,0 +1,2968 @@
+/*
+ * Copyright (C) 2012 Freescale Semiconductor, Inc. All Rights Reserved.
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+
+ * You should have received a copy of the GNU General Public License along
+ * with this program; if not, write to the Free Software Foundation, Inc.,
+ * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Auto Generate file, please don't edit it
+ *
+ */
+
+#ifndef __MACH_IOMUX_MX6SL_H__
+#define __MACH_IOMUX_MX6SL_H__
+
+#include <mach/iomux-v3.h>
+
+#define MX6SL_HIGH_DRV PAD_CTL_DSE_120ohm
+#define MX6SL_DISP_PAD_CLT MX6SL_HIGH_DRV
+
+#define MX6SL_CCM_CLKO_PAD_CTRL (PAD_CTL_PKE | PAD_CTL_PUE | \
+ PAD_CTL_PUS_47K_UP | PAD_CTL_SPEED_LOW | \
+ PAD_CTL_DSE_80ohm | PAD_CTL_SRE_FAST | PAD_CTL_HYS)
+
+#define MX6SL_UART_PAD_CTRL (PAD_CTL_PKE | PAD_CTL_PUE | \
+ PAD_CTL_PUS_100K_UP | PAD_CTL_SPEED_MED | \
+ PAD_CTL_DSE_40ohm | PAD_CTL_SRE_FAST | PAD_CTL_HYS)
+
+#define MX6SL_USDHC_PAD_CTRL (PAD_CTL_PKE | PAD_CTL_PUE | \
+ PAD_CTL_PUS_22K_UP | PAD_CTL_SPEED_LOW | \
+ PAD_CTL_DSE_80ohm | PAD_CTL_SRE_FAST | PAD_CTL_HYS)
+
+#define MX6SL_USDHC_PAD_CTRL_100MHZ (PAD_CTL_PKE | PAD_CTL_PUE | \
+ PAD_CTL_PUS_47K_UP | PAD_CTL_SPEED_MED | \
+ PAD_CTL_DSE_40ohm | PAD_CTL_SRE_FAST | PAD_CTL_HYS)
+
+#define MX6SL_USDHC_PAD_CTRL_200MHZ (PAD_CTL_PKE | PAD_CTL_PUE | \
+ PAD_CTL_PUS_47K_UP | PAD_CTL_SPEED_HIGH | \
+ PAD_CTL_DSE_40ohm | PAD_CTL_SRE_FAST | PAD_CTL_HYS)
+
+#define MX6SL_ENET_PAD_CTRL (PAD_CTL_PKE | PAD_CTL_PUE | \
+ PAD_CTL_PUS_100K_UP | PAD_CTL_SPEED_MED | \
+ PAD_CTL_DSE_40ohm | PAD_CTL_HYS)
+
+#define MX6SL_I2C_PAD_CTRL (PAD_CTL_PKE | PAD_CTL_PUE | \
+ PAD_CTL_PUS_100K_UP | PAD_CTL_SPEED_MED | \
+ PAD_CTL_DSE_40ohm | PAD_CTL_SRE_FAST | \
+ PAD_CTL_HYS | PAD_CTL_ODE)
+
+#define MX6SL_ECSPI_PAD_CTRL (PAD_CTL_SRE_FAST | PAD_CTL_SPEED_MED | \
+ PAD_CTL_DSE_40ohm | PAD_CTL_HYS)
+
+#define MX6SL_USB_HSIC_PAD_CTRL (PAD_CTL_PKE | PAD_CTL_PUE | \
+ PAD_CTL_DSE_40ohm | PAD_CTL_HYS)
+
+#define MX6SL_HP_DET_PAD_CTRL (PAD_CTL_PKE | PAD_CTL_PUE | \
+ PAD_CTL_PUS_100K_UP | PAD_CTL_SPEED_MED | \
+ PAD_CTL_DSE_40ohm | PAD_CTL_HYS)
+#define MX6SL_LCDIF_PAD_CTRL (PAD_CTL_HYS | PAD_CTL_PUS_100K_UP | \
+ PAD_CTL_PUE | PAD_CTL_PKE | \
+ PAD_CTL_SPEED_MED | PAD_CTL_DSE_40ohm)
+
+#define MX6SL_PAD_AUD_MCLK__AUDMUX_AUDIO_CLK_OUT \
+ IOMUX_PAD(0x02A4, 0x004C, 0, 0x0000, 0, NO_PAD_CTRL)
+#define MX6SL_PAD_AUD_MCLK__PWM4_PWMO \
+ IOMUX_PAD(0x02A4, 0x004C, 1, 0x0000, 0, NO_PAD_CTRL)
+#define MX6SL_PAD_AUD_MCLK__ECSPI3_RDY \
+ IOMUX_PAD(0x02A4, 0x004C, 2, 0x06B4, 0, NO_PAD_CTRL)
+#define MX6SL_PAD_AUD_MCLK__FEC_MDC \
+ IOMUX_PAD(0x02A4, 0x004C, 3, 0x0000, 0, NO_PAD_CTRL)
+#define MX6SL_PAD_AUD_MCLK__WDOG2_WDOG_RST_B_DEB \
+ IOMUX_PAD(0x02A4, 0x004C, 4, 0x0000, 0, NO_PAD_CTRL)
+#define MX6SL_PAD_AUD_MCLK__GPIO_1_6 \
+ IOMUX_PAD(0x02A4, 0x004C, 5, 0x0000, 0, NO_PAD_CTRL)
+#define MX6SL_PAD_AUD_MCLK__SPDIF_SPDIF_EXT_CLK \
+ IOMUX_PAD(0x02A4, 0x004C, 6, 0x07F4, 0, NO_PAD_CTRL)
+#define MX6SL_PAD_AUD_MCLK__TPSMP_HDATA_27 \
+ IOMUX_PAD(0x02A4, 0x004C, 7, 0x0000, 0, NO_PAD_CTRL)
+
+#define MX6SL_PAD_AUD_RXC__AUDMUX_AUD3_RXC \
+ IOMUX_PAD(0x02A8, 0x0050, 0, 0x0000, 0, NO_PAD_CTRL)
+#define MX6SL_PAD_AUD_RXC__I2C1_SDA \
+ IOMUX_PAD(0x02A8, 0x0050, 1 | IOMUX_CONFIG_SION, 0x0720, 0, MX6SL_I2C_PAD_CTRL)
+#define MX6SL_PAD_AUD_RXC__UART3_TXD \
+ IOMUX_PAD(0x02A8, 0x0050, 2, 0x0000, 0, MX6SL_UART_PAD_CTRL)
+#define MX6SL_PAD_AUD_RXC__UART3_RXD \
+ IOMUX_PAD(0x02A8, 0x0050, 2, 0x080C, 0, MX6SL_UART_PAD_CTRL)
+#define MX6SL_PAD_AUD_RXC__FEC_TX_CLK \
+ IOMUX_PAD(0x02A8, 0x0050, 3, 0x070C, 0, NO_PAD_CTRL)
+#define MX6SL_PAD_AUD_RXC__I2C3_SDA \
+ IOMUX_PAD(0x02A8, 0x0050, 4 | IOMUX_CONFIG_SION, 0x0730, 0, MX6SL_I2C_PAD_CTRL)
+#define MX6SL_PAD_AUD_RXC__GPIO_1_1 \
+ IOMUX_PAD(0x02A8, 0x0050, 5, 0x0000, 0, NO_PAD_CTRL)
+#define MX6SL_PAD_AUD_RXC__ECSPI3_SS1 \
+ IOMUX_PAD(0x02A8, 0x0050, 6, 0x06C4, 0, NO_PAD_CTRL)
+#define MX6SL_PAD_AUD_RXC__PL301_SIM_MX6SL_PER1_HREADYOUT \
+ IOMUX_PAD(0x02A8, 0x0050, 7, 0x0000, 0, NO_PAD_CTRL)
+
+#define MX6SL_PAD_AUD_RXD__AUDMUX_AUD3_RXD \
+ IOMUX_PAD(0x02AC, 0x0054, 0, 0x0000, 0, NO_PAD_CTRL)
+#define MX6SL_PAD_AUD_RXD__ECSPI3_MOSI \
+ IOMUX_PAD(0x02AC, 0x0054, 1, 0x06BC, 0, NO_PAD_CTRL)
+#define MX6SL_PAD_AUD_RXD__UART4_TXD \
+ IOMUX_PAD(0x02AC, 0x0054, 2, 0x0000, 0, MX6SL_UART_PAD_CTRL)
+#define MX6SL_PAD_AUD_RXD__UART4_RXD \
+ IOMUX_PAD(0x02AC, 0x0054, 2, 0x0814, 0, MX6SL_UART_PAD_CTRL)
+#define MX6SL_PAD_AUD_RXD__FEC_RX_ER \
+ IOMUX_PAD(0x02AC, 0x0054, 3, 0x0708, 0, NO_PAD_CTRL)
+#define MX6SL_PAD_AUD_RXD__USDHC1_LCTL \
+ IOMUX_PAD(0x02AC, 0x0054, 4, 0x0000, 0, MX6SL_USDHC_PAD_CTRL)
+#define MX6SL_PAD_AUD_RXD__GPIO_1_2 \
+ IOMUX_PAD(0x02AC, 0x0054, 5, 0x0000, 0, NO_PAD_CTRL)
+#define MX6SL_PAD_AUD_RXD__SRC_INT_BOOT \
+ IOMUX_PAD(0x02AC, 0x0054, 6, 0x0000, 0, NO_PAD_CTRL)
+#define MX6SL_PAD_AUD_RXD__PL301_SIM_MX6SL_PER1_HRESP \
+ IOMUX_PAD(0x02AC, 0x0054, 7, 0x0000, 0, NO_PAD_CTRL)
+
+#define MX6SL_PAD_AUD_RXFS__AUDMUX_AUD3_RXFS \
+ IOMUX_PAD(0x02B0, 0x0058, 0, 0x0000, 0, NO_PAD_CTRL)
+#define MX6SL_PAD_AUD_RXFS__I2C1_SCL \
+ IOMUX_PAD(0x02B0, 0x0058, 1 | IOMUX_CONFIG_SION, 0x071C, 0, MX6SL_I2C_PAD_CTRL)
+#define MX6SL_PAD_AUD_RXFS__UART3_TXD \
+ IOMUX_PAD(0x02B0, 0x0058, 2, 0x0000, 0, MX6SL_UART_PAD_CTRL)
+#define MX6SL_PAD_AUD_RXFS__UART3_RXD \
+ IOMUX_PAD(0x02B0, 0x0058, 2, 0x080C, 1, MX6SL_UART_PAD_CTRL)
+#define MX6SL_PAD_AUD_RXFS__FEC_MDIO \
+ IOMUX_PAD(0x02B0, 0x0058, 3, 0x06F4, 0, NO_PAD_CTRL)
+#define MX6SL_PAD_AUD_RXFS__I2C3_SCL \
+ IOMUX_PAD(0x02B0, 0x0058, 4 | IOMUX_CONFIG_SION, 0x072C, 0, MX6SL_I2C_PAD_CTRL)
+#define MX6SL_PAD_AUD_RXFS__GPIO_1_0 \
+ IOMUX_PAD(0x02B0, 0x0058, 5, 0x0000, 0, NO_PAD_CTRL)
+#define MX6SL_PAD_AUD_RXFS__ECSPI3_SS0 \
+ IOMUX_PAD(0x02B0, 0x0058, 6, 0x06C0, 0, NO_PAD_CTRL)
+#define MX6SL_PAD_AUD_RXFS__PL301_SIM_MX6SL_PER1_HPROT_1 \
+ IOMUX_PAD(0x02B0, 0x0058, 7, 0x07EC, 0, NO_PAD_CTRL)
+
+#define MX6SL_PAD_AUD_TXC__AUDMUX_AUD3_TXC \
+ IOMUX_PAD(0x02B4, 0x005C, 0, 0x0000, 0, NO_PAD_CTRL)
+#define MX6SL_PAD_AUD_TXC__ECSPI3_MISO \
+ IOMUX_PAD(0x02B4, 0x005C, 1, 0x06B8, 0, NO_PAD_CTRL)
+#define MX6SL_PAD_AUD_TXC__UART4_TXD \
+ IOMUX_PAD(0x02B4, 0x005C, 2, 0x0000, 0, MX6SL_UART_PAD_CTRL)
+#define MX6SL_PAD_AUD_TXC__UART4_RXD \
+ IOMUX_PAD(0x02B4, 0x005C, 2, 0x0814, 1, MX6SL_UART_PAD_CTRL)
+#define MX6SL_PAD_AUD_TXC__FEC_RX_DV \
+ IOMUX_PAD(0x02B4, 0x005C, 3, 0x0704, 0, NO_PAD_CTRL)
+#define MX6SL_PAD_AUD_TXC__USDHC2_LCTL \
+ IOMUX_PAD(0x02B4, 0x005C, 4, 0x0000, 0, MX6SL_USDHC_PAD_CTRL)
+#define MX6SL_PAD_AUD_TXC__GPIO_1_3 \
+ IOMUX_PAD(0x02B4, 0x005C, 5, 0x0000, 0, NO_PAD_CTRL)
+#define MX6SL_PAD_AUD_TXC__SRC_SYSTEM_RST \
+ IOMUX_PAD(0x02B4, 0x005C, 6, 0x0000, 0, NO_PAD_CTRL)
+#define MX6SL_PAD_AUD_TXC__TPSMP_HDATA_24 \
+ IOMUX_PAD(0x02B4, 0x005C, 7, 0x0000, 0, NO_PAD_CTRL)
+
+#define MX6SL_PAD_AUD_TXD__AUDMUX_AUD3_TXD \
+ IOMUX_PAD(0x02B8, 0x0060, 0, 0x0000, 0, NO_PAD_CTRL)
+#define MX6SL_PAD_AUD_TXD__ECSPI3_SCLK \
+ IOMUX_PAD(0x02B8, 0x0060, 1, 0x06B0, 0, NO_PAD_CTRL)
+#define MX6SL_PAD_AUD_TXD__UART4_CTS \
+ IOMUX_PAD(0x02B8, 0x0060, 2, 0x0000, 0, MX6SL_UART_PAD_CTRL)
+#define MX6SL_PAD_AUD_TXD__UART4_RTS \
+ IOMUX_PAD(0x02B8, 0x0060, 2, 0x0810, 0, MX6SL_UART_PAD_CTRL)
+#define MX6SL_PAD_AUD_TXD__FEC_TDATA_0 \
+ IOMUX_PAD(0x02B8, 0x0060, 3, 0x0000, 0, NO_PAD_CTRL)
+#define MX6SL_PAD_AUD_TXD__USDHC4_LCTL \
+ IOMUX_PAD(0x02B8, 0x0060, 4, 0x0000, 0, MX6SL_USDHC_PAD_CTRL)
+#define MX6SL_PAD_AUD_TXD__GPIO_1_5 \
+ IOMUX_PAD(0x02B8, 0x0060, 5, 0x0000, 0, NO_PAD_CTRL)
+#define MX6SL_PAD_AUD_TXD__ANATOP_ANATOP_TESTI_1 \
+ IOMUX_PAD(0x02B8, 0x0060, 6, 0x0000, 0, NO_PAD_CTRL)
+#define MX6SL_PAD_AUD_TXD__TPSMP_HDATA_26 \
+ IOMUX_PAD(0x02B8, 0x0060, 7, 0x0000, 0, NO_PAD_CTRL)
+
+#define MX6SL_PAD_AUD_TXFS__AUDMUX_AUD3_TXFS \
+ IOMUX_PAD(0x02BC, 0x0064, 0, 0x0000, 0, NO_PAD_CTRL)
+#define MX6SL_PAD_AUD_TXFS__PWM3_PWMO \
+ IOMUX_PAD(0x02BC, 0x0064, 1, 0x0000, 0, NO_PAD_CTRL)
+#define MX6SL_PAD_AUD_TXFS__UART4_CTS \
+ IOMUX_PAD(0x02BC, 0x0064, 2, 0x0000, 0, MX6SL_UART_PAD_CTRL)
+#define MX6SL_PAD_AUD_TXFS__UART4_RTS \
+ IOMUX_PAD(0x02BC, 0x0064, 2, 0x0810, 1, MX6SL_UART_PAD_CTRL)
+#define MX6SL_PAD_AUD_TXFS__FEC_RDATA_1 \
+ IOMUX_PAD(0x02BC, 0x0064, 3, 0x06FC, 0, NO_PAD_CTRL)
+#define MX6SL_PAD_AUD_TXFS__USDHC3_LCTL \
+ IOMUX_PAD(0x02BC, 0x0064, 4, 0x0000, 0, MX6SL_USDHC_PAD_CTRL)
+#define MX6SL_PAD_AUD_TXFS__GPIO_1_4 \
+ IOMUX_PAD(0x02BC, 0x0064, 5, 0x0000, 0, NO_PAD_CTRL)
+#define MX6SL_PAD_AUD_TXFS__ANATOP_ANATOP_TESTI_0 \
+ IOMUX_PAD(0x02BC, 0x0064, 6, 0x0000, 0, NO_PAD_CTRL)
+#define MX6SL_PAD_AUD_TXFS__TPSMP_HDATA_25 \
+ IOMUX_PAD(0x02BC, 0x0064, 7, 0x0000, 0, NO_PAD_CTRL)
+
+#define MX6SL_PAD_BOOT_MODE0__SRC_BOOT_MODE_0 \
+ IOMUX_PAD(NO_PAD_I, NO_MUX_I, 0, 0x0000, 0, NO_PAD_CTRL)
+
+#define MX6SL_PAD_BOOT_MODE1__SRC_BOOT_MODE_1 \
+ IOMUX_PAD(NO_PAD_I, NO_MUX_I, 0, 0x0000, 0, NO_PAD_CTRL)
+
+#define MX6SL_PAD_DRAM_A0__MMDC_DRAM_A_0 \
+ IOMUX_PAD(0x02C0, NO_MUX_I, 0, 0x0000, 0, NO_PAD_CTRL)
+
+#define MX6SL_PAD_DRAM_A1__MMDC_DRAM_A_1 \
+ IOMUX_PAD(0x02C4, NO_MUX_I, 0, 0x0000, 0, NO_PAD_CTRL)
+
+#define MX6SL_PAD_DRAM_A10__MMDC_DRAM_A_10 \
+ IOMUX_PAD(0x02C8, NO_MUX_I, 0, 0x0000, 0, NO_PAD_CTRL)
+
+#define MX6SL_PAD_DRAM_A11__MMDC_DRAM_A_11 \
+ IOMUX_PAD(0x02CC, NO_MUX_I, 0, 0x0000, 0, NO_PAD_CTRL)
+
+#define MX6SL_PAD_DRAM_A12__MMDC_DRAM_A_12 \
+ IOMUX_PAD(0x02D0, NO_MUX_I, 0, 0x0000, 0, NO_PAD_CTRL)
+
+#define MX6SL_PAD_DRAM_A13__MMDC_DRAM_A_13 \
+ IOMUX_PAD(0x02D4, NO_MUX_I, 0, 0x0000, 0, NO_PAD_CTRL)
+
+#define MX6SL_PAD_DRAM_A14__MMDC_DRAM_A_14 \
+ IOMUX_PAD(0x02D8, NO_MUX_I, 0, 0x0000, 0, NO_PAD_CTRL)
+
+#define MX6SL_PAD_DRAM_A15__MMDC_DRAM_A_15 \
+ IOMUX_PAD(0x02DC, NO_MUX_I, 0, 0x0000, 0, NO_PAD_CTRL)
+
+#define MX6SL_PAD_DRAM_A2__MMDC_DRAM_A_2 \
+ IOMUX_PAD(0x02E0, NO_MUX_I, 0, 0x0000, 0, NO_PAD_CTRL)
+
+#define MX6SL_PAD_DRAM_A3__MMDC_DRAM_A_3 \
+ IOMUX_PAD(0x02E4, NO_MUX_I, 0, 0x0000, 0, NO_PAD_CTRL)
+
+#define MX6SL_PAD_DRAM_A4__MMDC_DRAM_A_4 \
+ IOMUX_PAD(0x02E8, NO_MUX_I, 0, 0x0000, 0, NO_PAD_CTRL)
+
+#define MX6SL_PAD_DRAM_A5__MMDC_DRAM_A_5 \
+ IOMUX_PAD(0x02EC, NO_MUX_I, 0, 0x0000, 0, NO_PAD_CTRL)
+
+#define MX6SL_PAD_DRAM_A6__MMDC_DRAM_A_6 \
+ IOMUX_PAD(0x02F0, NO_MUX_I, 0, 0x0000, 0, NO_PAD_CTRL)
+
+#define MX6SL_PAD_DRAM_A7__MMDC_DRAM_A_7 \
+ IOMUX_PAD(0x02F4, NO_MUX_I, 0, 0x0000, 0, NO_PAD_CTRL)
+
+#define MX6SL_PAD_DRAM_A8__MMDC_DRAM_A_8 \
+ IOMUX_PAD(0x02F8, NO_MUX_I, 0, 0x0000, 0, NO_PAD_CTRL)
+
+#define MX6SL_PAD_DRAM_A9__MMDC_DRAM_A_9 \
+ IOMUX_PAD(0x02FC, NO_MUX_I, 0, 0x0000, 0, NO_PAD_CTRL)
+
+#define MX6SL_PAD_DRAM_CAS__MMDC_DRAM_CAS \
+ IOMUX_PAD(0x0300, NO_MUX_I, 0, 0x0000, 0, NO_PAD_CTRL)
+
+#define MX6SL_PAD_DRAM_CS0__MMDC_DRAM_CS_0 \
+ IOMUX_PAD(0x0304, NO_MUX_I, 0, 0x0000, 0, NO_PAD_CTRL)
+
+#define MX6SL_PAD_DRAM_CS1__MMDC_DRAM_CS_1 \
+ IOMUX_PAD(0x0308, NO_MUX_I, 0, 0x0000, 0, NO_PAD_CTRL)
+
+#define MX6SL_PAD_DRAM_D0__MMDC_DRAM_D_0 \
+ IOMUX_PAD(NO_PAD_I, NO_MUX_I, 0, 0x0000, 0, NO_PAD_CTRL)
+
+#define MX6SL_PAD_DRAM_D1__MMDC_DRAM_D_1 \
+ IOMUX_PAD(NO_PAD_I, NO_MUX_I, 0, 0x0000, 0, NO_PAD_CTRL)
+
+#define MX6SL_PAD_DRAM_D10__MMDC_DRAM_D_10 \
+ IOMUX_PAD(NO_PAD_I, NO_MUX_I, 0, 0x0000, 0, NO_PAD_CTRL)
+
+#define MX6SL_PAD_DRAM_D11__MMDC_DRAM_D_11 \
+ IOMUX_PAD(NO_PAD_I, NO_MUX_I, 0, 0x0000, 0, NO_PAD_CTRL)
+
+#define MX6SL_PAD_DRAM_D12__MMDC_DRAM_D_12 \
+ IOMUX_PAD(NO_PAD_I, NO_MUX_I, 0, 0x0000, 0, NO_PAD_CTRL)
+
+#define MX6SL_PAD_DRAM_D13__MMDC_DRAM_D_13 \
+ IOMUX_PAD(NO_PAD_I, NO_MUX_I, 0, 0x0000, 0, NO_PAD_CTRL)
+
+#define MX6SL_PAD_DRAM_D14__MMDC_DRAM_D_14 \
+ IOMUX_PAD(NO_PAD_I, NO_MUX_I, 0, 0x0000, 0, NO_PAD_CTRL)
+
+#define MX6SL_PAD_DRAM_D15__MMDC_DRAM_D_15 \
+ IOMUX_PAD(NO_PAD_I, NO_MUX_I, 0, 0x0000, 0, NO_PAD_CTRL)
+
+#define MX6SL_PAD_DRAM_D16__MMDC_DRAM_D_16 \
+ IOMUX_PAD(NO_PAD_I, NO_MUX_I, 0, 0x0000, 0, NO_PAD_CTRL)
+
+#define MX6SL_PAD_DRAM_D17__MMDC_DRAM_D_17 \
+ IOMUX_PAD(NO_PAD_I, NO_MUX_I, 0, 0x0000, 0, NO_PAD_CTRL)
+
+#define MX6SL_PAD_DRAM_D18__MMDC_DRAM_D_18 \
+ IOMUX_PAD(NO_PAD_I, NO_MUX_I, 0, 0x0000, 0, NO_PAD_CTRL)
+
+#define MX6SL_PAD_DRAM_D19__MMDC_DRAM_D_19 \
+ IOMUX_PAD(NO_PAD_I, NO_MUX_I, 0, 0x0000, 0, NO_PAD_CTRL)
+
+#define MX6SL_PAD_DRAM_D2__MMDC_DRAM_D_2 \
+ IOMUX_PAD(NO_PAD_I, NO_MUX_I, 0, 0x0000, 0, NO_PAD_CTRL)
+
+#define MX6SL_PAD_DRAM_D20__MMDC_DRAM_D_20 \
+ IOMUX_PAD(NO_PAD_I, NO_MUX_I, 0, 0x0000, 0, NO_PAD_CTRL)
+
+#define MX6SL_PAD_DRAM_D21__MMDC_DRAM_D_21 \
+ IOMUX_PAD(NO_PAD_I, NO_MUX_I, 0, 0x0000, 0, NO_PAD_CTRL)
+
+#define MX6SL_PAD_DRAM_D22__MMDC_DRAM_D_22 \
+ IOMUX_PAD(NO_PAD_I, NO_MUX_I, 0, 0x0000, 0, NO_PAD_CTRL)
+
+#define MX6SL_PAD_DRAM_D23__MMDC_DRAM_D_23 \
+ IOMUX_PAD(NO_PAD_I, NO_MUX_I, 0, 0x0000, 0, NO_PAD_CTRL)
+
+#define MX6SL_PAD_DRAM_D24__MMDC_DRAM_D_24 \
+ IOMUX_PAD(NO_PAD_I, NO_MUX_I, 0, 0x0000, 0, NO_PAD_CTRL)
+
+#define MX6SL_PAD_DRAM_D25__MMDC_DRAM_D_25 \
+ IOMUX_PAD(NO_PAD_I, NO_MUX_I, 0, 0x0000, 0, NO_PAD_CTRL)
+
+#define MX6SL_PAD_DRAM_D26__MMDC_DRAM_D_26 \
+ IOMUX_PAD(NO_PAD_I, NO_MUX_I, 0, 0x0000, 0, NO_PAD_CTRL)
+
+#define MX6SL_PAD_DRAM_D27__MMDC_DRAM_D_27 \
+ IOMUX_PAD(NO_PAD_I, NO_MUX_I, 0, 0x0000, 0, NO_PAD_CTRL)
+
+#define MX6SL_PAD_DRAM_D28__MMDC_DRAM_D_28 \
+ IOMUX_PAD(NO_PAD_I, NO_MUX_I, 0, 0x0000, 0, NO_PAD_CTRL)
+
+#define MX6SL_PAD_DRAM_D29__MMDC_DRAM_D_29 \
+ IOMUX_PAD(NO_PAD_I, NO_MUX_I, 0, 0x0000, 0, NO_PAD_CTRL)
+
+#define MX6SL_PAD_DRAM_D3__MMDC_DRAM_D_3 \
+ IOMUX_PAD(NO_PAD_I, NO_MUX_I, 0, 0x0000, 0, NO_PAD_CTRL)
+
+#define MX6SL_PAD_DRAM_D30__MMDC_DRAM_D_30 \
+ IOMUX_PAD(NO_PAD_I, NO_MUX_I, 0, 0x0000, 0, NO_PAD_CTRL)
+
+#define MX6SL_PAD_DRAM_D31__MMDC_DRAM_D_31 \
+ IOMUX_PAD(NO_PAD_I, NO_MUX_I, 0, 0x0000, 0, NO_PAD_CTRL)
+
+#define MX6SL_PAD_DRAM_D4__MMDC_DRAM_D_4 \
+ IOMUX_PAD(NO_PAD_I, NO_MUX_I, 0, 0x0000, 0, NO_PAD_CTRL)
+
+#define MX6SL_PAD_DRAM_D5__MMDC_DRAM_D_5 \
+ IOMUX_PAD(NO_PAD_I, NO_MUX_I, 0, 0x0000, 0, NO_PAD_CTRL)
+
+#define MX6SL_PAD_DRAM_D6__MMDC_DRAM_D_6 \
+ IOMUX_PAD(NO_PAD_I, NO_MUX_I, 0, 0x0000, 0, NO_PAD_CTRL)
+
+#define MX6SL_PAD_DRAM_D7__MMDC_DRAM_D_7 \
+ IOMUX_PAD(NO_PAD_I, NO_MUX_I, 0, 0x0000, 0, NO_PAD_CTRL)
+
+#define MX6SL_PAD_DRAM_D8__MMDC_DRAM_D_8 \
+ IOMUX_PAD(NO_PAD_I, NO_MUX_I, 0, 0x0000, 0, NO_PAD_CTRL)
+
+#define MX6SL_PAD_DRAM_D9__MMDC_DRAM_D_9 \
+ IOMUX_PAD(NO_PAD_I, NO_MUX_I, 0, 0x0000, 0, NO_PAD_CTRL)
+
+#define MX6SL_PAD_DRAM_DQM0__MMDC_DRAM_DQM_0 \
+ IOMUX_PAD(0x030C, NO_MUX_I, 0, 0x0000, 0, NO_PAD_CTRL)
+
+#define MX6SL_PAD_DRAM_DQM1__MMDC_DRAM_DQM_1 \
+ IOMUX_PAD(0x0310, NO_MUX_I, 0, 0x0000, 0, NO_PAD_CTRL)
+
+#define MX6SL_PAD_DRAM_DQM2__MMDC_DRAM_DQM_2 \
+ IOMUX_PAD(0x0314, NO_MUX_I, 0, 0x0000, 0, NO_PAD_CTRL)
+
+#define MX6SL_PAD_DRAM_DQM3__MMDC_DRAM_DQM_3 \
+ IOMUX_PAD(0x0318, NO_MUX_I, 0, 0x0000, 0, NO_PAD_CTRL)
+
+#define MX6SL_PAD_DRAM_RAS__MMDC_DRAM_RAS \
+ IOMUX_PAD(0x031C, NO_MUX_I, 0, 0x0000, 0, NO_PAD_CTRL)
+
+#define MX6SL_PAD_DRAM_RESET__MMDC_DRAM_RESET \
+ IOMUX_PAD(0x0320, NO_MUX_I, 0, 0x0000, 0, NO_PAD_CTRL)
+
+#define MX6SL_PAD_DRAM_SDBA0__MMDC_DRAM_SDBA_0 \
+ IOMUX_PAD(0x0324, NO_MUX_I, 0, 0x0000, 0, NO_PAD_CTRL)
+
+#define MX6SL_PAD_DRAM_SDBA1__MMDC_DRAM_SDBA_1 \
+ IOMUX_PAD(0x0328, NO_MUX_I, 0, 0x0000, 0, NO_PAD_CTRL)
+
+#define MX6SL_PAD_DRAM_SDBA2__MMDC_DRAM_SDBA_2 \
+ IOMUX_PAD(0x032C, NO_MUX_I, 0, 0x0000, 0, NO_PAD_CTRL)
+
+#define MX6SL_PAD_DRAM_SDCKE0__MMDC_DRAM_SDCKE_0 \
+ IOMUX_PAD(0x0330, NO_MUX_I, 0, 0x0000, 0, NO_PAD_CTRL)
+
+#define MX6SL_PAD_DRAM_SDCKE1__MMDC_DRAM_SDCKE_1 \
+ IOMUX_PAD(0x0334, NO_MUX_I, 0, 0x0000, 0, NO_PAD_CTRL)
+
+#define MX6SL_PAD_DRAM_SDCLK_0__MMDC_DRAM_SDCLK0 \
+ IOMUX_PAD(0x0338, NO_MUX_I, 0, 0x0000, 0, NO_PAD_CTRL)
+
+#define MX6SL_PAD_DRAM_SDODT0__MMDC_DRAM_ODT_0 \
+ IOMUX_PAD(0x033C, NO_MUX_I, 0, 0x0000, 0, NO_PAD_CTRL)
+
+#define MX6SL_PAD_DRAM_SDODT1__MMDC_DRAM_ODT_1 \
+ IOMUX_PAD(0x0340, NO_MUX_I, 0, 0x0000, 0, NO_PAD_CTRL)
+
+#define MX6SL_PAD_DRAM_SDQS0__MMDC_DRAM_SDQS_0 \
+ IOMUX_PAD(0x0344, NO_MUX_I, 0, 0x0000, 0, NO_PAD_CTRL)
+
+#define MX6SL_PAD_DRAM_SDQS1__MMDC_DRAM_SDQS_1 \
+ IOMUX_PAD(0x0348, NO_MUX_I, 0, 0x0000, 0, NO_PAD_CTRL)
+
+#define MX6SL_PAD_DRAM_SDQS2__MMDC_DRAM_SDQS_2 \
+ IOMUX_PAD(0x034C, NO_MUX_I, 0, 0x0000, 0, NO_PAD_CTRL)
+
+#define MX6SL_PAD_DRAM_SDQS3__MMDC_DRAM_SDQS_3 \
+ IOMUX_PAD(0x0350, NO_MUX_I, 0, 0x0000, 0, NO_PAD_CTRL)
+
+#define MX6SL_PAD_DRAM_SDWE__MMDC_DRAM_SDWE \
+ IOMUX_PAD(0x0354, NO_MUX_I, 0, 0x0000, 0, NO_PAD_CTRL)
+
+#define MX6SL_PAD_ECSPI1_MISO__ECSPI1_MISO \
+ IOMUX_PAD(0x0358, 0x0068, 0, 0x0684, 0, MX6SL_ECSPI_PAD_CTRL)
+#define MX6SL_PAD_ECSPI1_MISO__AUDMUX_AUD4_TXFS \
+ IOMUX_PAD(0x0358, 0x0068, 1, 0x05F8, 0, NO_PAD_CTRL)
+#define MX6SL_PAD_ECSPI1_MISO__UART5_CTS \
+ IOMUX_PAD(0x0358, 0x0068, 2, 0x0000, 0, MX6SL_UART_PAD_CTRL)
+#define MX6SL_PAD_ECSPI1_MISO__UART5_RTS \
+ IOMUX_PAD(0x0358, 0x0068, 2, 0x0818, 0, MX6SL_UART_PAD_CTRL)
+#define MX6SL_PAD_ECSPI1_MISO__EPDC_BDR_0 \
+ IOMUX_PAD(0x0358, 0x0068, 3, 0x0000, 0, NO_PAD_CTRL)
+#define MX6SL_PAD_ECSPI1_MISO__USDHC2_WP \
+ IOMUX_PAD(0x0358, 0x0068, 4, 0x0834, 0, MX6SL_USDHC_PAD_CTRL)
+#define MX6SL_PAD_ECSPI1_MISO__GPIO_4_10 \
+ IOMUX_PAD(0x0358, 0x0068, 5, 0x0000, 0, NO_PAD_CTRL)
+#define MX6SL_PAD_ECSPI1_MISO__CCM_PLL3_BYP \
+ IOMUX_PAD(0x0358, 0x0068, 6, 0x0000, 0, NO_PAD_CTRL)
+#define MX6SL_PAD_ECSPI1_MISO__MMDC_MMDC_DEBUG_40 \
+ IOMUX_PAD(0x0358, 0x0068, 7, 0x0000, 0, NO_PAD_CTRL)
+
+#define MX6SL_PAD_ECSPI1_MOSI__ECSPI1_MOSI \
+ IOMUX_PAD(0x035C, 0x006C, 0, 0x0688, 0, MX6SL_ECSPI_PAD_CTRL)
+#define MX6SL_PAD_ECSPI1_MOSI__AUDMUX_AUD4_TXC \
+ IOMUX_PAD(0x035C, 0x006C, 1, 0x05F4, 0, NO_PAD_CTRL)
+#define MX6SL_PAD_ECSPI1_MOSI__UART5_TXD \
+ IOMUX_PAD(0x035C, 0x006C, 2, 0x0000, 0, MX6SL_UART_PAD_CTRL)
+#define MX6SL_PAD_ECSPI1_MOSI__UART5_RXD \
+ IOMUX_PAD(0x035C, 0x006C, 2, 0x081C, 0, MX6SL_UART_PAD_CTRL)
+#define MX6SL_PAD_ECSPI1_MOSI__EPDC_VCOM_1 \
+ IOMUX_PAD(0x035C, 0x006C, 3, 0x0000, 0, NO_PAD_CTRL)
+#define MX6SL_PAD_ECSPI1_MOSI__USDHC2_VSELECT \
+ IOMUX_PAD(0x035C, 0x006C, 4, 0x0000, 0, MX6SL_USDHC_PAD_CTRL)
+#define MX6SL_PAD_ECSPI1_MOSI__GPIO_4_9 \
+ IOMUX_PAD(0x035C, 0x006C, 5, 0x0000, 0, NO_PAD_CTRL)
+#define MX6SL_PAD_ECSPI1_MOSI__CCM_PLL2_BYP \
+ IOMUX_PAD(0x035C, 0x006C, 6, 0x0000, 0, NO_PAD_CTRL)
+#define MX6SL_PAD_ECSPI1_MOSI__MMDC_MMDC_DEBUG_49 \
+ IOMUX_PAD(0x035C, 0x006C, 7, 0x0000, 0, NO_PAD_CTRL)
+
+#define MX6SL_PAD_ECSPI1_SCLK__ECSPI1_SCLK \
+ IOMUX_PAD(0x0360, 0x0070, 0, 0x067C, 0, MX6SL_ECSPI_PAD_CTRL)
+#define MX6SL_PAD_ECSPI1_SCLK__AUDMUX_AUD4_TXD \
+ IOMUX_PAD(0x0360, 0x0070, 1, 0x05E8, 0, NO_PAD_CTRL)
+#define MX6SL_PAD_ECSPI1_SCLK__UART5_TXD \
+ IOMUX_PAD(0x0360, 0x0070, 2, 0x0000, 0, MX6SL_UART_PAD_CTRL)
+#define MX6SL_PAD_ECSPI1_SCLK__UART5_RXD \
+ IOMUX_PAD(0x0360, 0x0070, 2, 0x081C, 1, MX6SL_UART_PAD_CTRL)
+#define MX6SL_PAD_ECSPI1_SCLK__EPDC_VCOM_0 \
+ IOMUX_PAD(0x0360, 0x0070, 3, 0x0000, 0, NO_PAD_CTRL)
+#define MX6SL_PAD_ECSPI1_SCLK__USDHC2_RST \
+ IOMUX_PAD(0x0360, 0x0070, 4, 0x0000, 0, MX6SL_USDHC_PAD_CTRL)
+#define MX6SL_PAD_ECSPI1_SCLK__GPIO_4_8 \
+ IOMUX_PAD(0x0360, 0x0070, 5, 0x0000, 0, NO_PAD_CTRL)
+#define MX6SL_PAD_ECSPI1_SCLK__USB_USBOTG2_OC \
+ IOMUX_PAD(0x0360, 0x0070, 6, 0x0820, 0, NO_PAD_CTRL)
+#define MX6SL_PAD_ECSPI1_SCLK__TPSMP_HDATA_18 \
+ IOMUX_PAD(0x0360, 0x0070, 7, 0x0000, 0, NO_PAD_CTRL)
+
+#define MX6SL_PAD_ECSPI1_SS0__ECSPI1_SS0 \
+ IOMUX_PAD(0x0364, 0x0074, 0, 0x068C, 0, MX6SL_ECSPI_PAD_CTRL)
+#define MX6SL_PAD_ECSPI1_SS0__AUDMUX_AUD4_RXD \
+ IOMUX_PAD(0x0364, 0x0074, 1, 0x05E4, 0, NO_PAD_CTRL)
+#define MX6SL_PAD_ECSPI1_SS0__UART5_CTS \
+ IOMUX_PAD(0x0364, 0x0074, 2, 0x0000, 0, MX6SL_UART_PAD_CTRL)
+#define MX6SL_PAD_ECSPI1_SS0__UART5_RTS \
+ IOMUX_PAD(0x0364, 0x0074, 2, 0x0818, 1, MX6SL_UART_PAD_CTRL)
+#define MX6SL_PAD_ECSPI1_SS0__EPDC_BDR_1 \
+ IOMUX_PAD(0x0364, 0x0074, 3, 0x0000, 0, NO_PAD_CTRL)
+#define MX6SL_PAD_ECSPI1_SS0__USDHC2_CD \
+ IOMUX_PAD(0x0364, 0x0074, 4, 0x0830, 0, MX6SL_USDHC_PAD_CTRL)
+#define MX6SL_PAD_ECSPI1_SS0__GPIO_4_11 \
+ IOMUX_PAD(0x0364, 0x0074, 5, 0x0000, 0, NO_PAD_CTRL)
+#define MX6SL_PAD_ECSPI1_SS0__USB_USBOTG2_PWR \
+ IOMUX_PAD(0x0364, 0x0074, 6, 0x0000, 0, NO_PAD_CTRL)
+#define MX6SL_PAD_ECSPI1_SS0__PL301_SIM_MX6SL_PER1_HADDR_23 \
+ IOMUX_PAD(0x0364, 0x0074, 7, 0x0000, 0, NO_PAD_CTRL)
+
+#define MX6SL_PAD_ECSPI2_MISO__GPIO_4_14 \
+ IOMUX_PAD(0x0368, 0x0078, 5, 0x0000, 0, NO_PAD_CTRL)
+#define MX6SL_PAD_ECSPI2_MISO__USB_USBOTG1_OC \
+ IOMUX_PAD(0x0368, 0x0078, 6, 0x0824, 0, NO_PAD_CTRL)
+#define MX6SL_PAD_ECSPI2_MISO__TPSMP_HDATA_23 \
+ IOMUX_PAD(0x0368, 0x0078, 7, 0x0000, 0, NO_PAD_CTRL)
+#define MX6SL_PAD_ECSPI2_MISO__ECSPI2_MISO \
+ IOMUX_PAD(0x0368, 0x0078, 0, 0x06A0, 0, NO_PAD_CTRL)
+#define MX6SL_PAD_ECSPI2_MISO__SDMA_SDMA_EXT_EVENT_0 \
+ IOMUX_PAD(0x0368, 0x0078, 1, 0x0000, 0, NO_PAD_CTRL)
+#define MX6SL_PAD_ECSPI2_MISO__UART3_CTS \
+ IOMUX_PAD(0x0368, 0x0078, 2, 0x0000, 0, MX6SL_UART_PAD_CTRL)
+#define MX6SL_PAD_ECSPI2_MISO__UART3_RTS \
+ IOMUX_PAD(0x0368, 0x0078, 2, 0x0808, 0, MX6SL_UART_PAD_CTRL)
+#define MX6SL_PAD_ECSPI2_MISO__CSI_MCLK \
+ IOMUX_PAD(0x0368, 0x0078, 3, 0x0000, 0, NO_PAD_CTRL)
+#define MX6SL_PAD_ECSPI2_MISO__USDHC1_WP \
+ IOMUX_PAD(0x0368, 0x0078, 4, 0x082C, 0, MX6SL_USDHC_PAD_CTRL)
+
+#define MX6SL_PAD_ECSPI2_MOSI__ECSPI2_MOSI \
+ IOMUX_PAD(0x036C, 0x007C, 0, 0x06A4, 0, NO_PAD_CTRL)
+#define MX6SL_PAD_ECSPI2_MOSI__SDMA_SDMA_EXT_EVENT_1 \
+ IOMUX_PAD(0x036C, 0x007C, 1, 0x0000, 0, NO_PAD_CTRL)
+#define MX6SL_PAD_ECSPI2_MOSI__UART3_TXD \
+ IOMUX_PAD(0x036C, 0x007C, 2, 0x0000, 0, MX6SL_UART_PAD_CTRL)
+#define MX6SL_PAD_ECSPI2_MOSI__UART3_RXD \
+ IOMUX_PAD(0x036C, 0x007C, 2, 0x080C, 2, MX6SL_UART_PAD_CTRL)
+#define MX6SL_PAD_ECSPI2_MOSI__CSI_HSYNC \
+ IOMUX_PAD(0x036C, 0x007C, 3, 0x0670, 0, NO_PAD_CTRL)
+#define MX6SL_PAD_ECSPI2_MOSI__USDHC1_VSELECT \
+ IOMUX_PAD(0x036C, 0x007C, 4, 0x0000, 0, MX6SL_USDHC_PAD_CTRL)
+#define MX6SL_PAD_ECSPI2_MOSI__GPIO_4_13 \
+ IOMUX_PAD(0x036C, 0x007C, 5, 0x0000, 0, NO_PAD_CTRL)
+#define MX6SL_PAD_ECSPI2_MOSI__ANATOP_ANATOP_TESTO_1 \
+ IOMUX_PAD(0x036C, 0x007C, 6, 0x0000, 0, NO_PAD_CTRL)
+#define MX6SL_PAD_ECSPI2_MOSI__TPSMP_HDATA_22 \
+ IOMUX_PAD(0x036C, 0x007C, 7, 0x0000, 0, NO_PAD_CTRL)
+
+#define MX6SL_PAD_ECSPI2_SCLK__ECSPI2_SCLK \
+ IOMUX_PAD(0x0370, 0x0080, 0, 0x069C, 0, NO_PAD_CTRL)
+#define MX6SL_PAD_ECSPI2_SCLK__SPDIF_SPDIF_EXT_CLK \
+ IOMUX_PAD(0x0370, 0x0080, 1, 0x07F4, 1, NO_PAD_CTRL)
+#define MX6SL_PAD_ECSPI2_SCLK__UART3_TXD \
+ IOMUX_PAD(0x0370, 0x0080, 2, 0x0000, 0, MX6SL_UART_PAD_CTRL)
+#define MX6SL_PAD_ECSPI2_SCLK__UART3_RXD \
+ IOMUX_PAD(0x0370, 0x0080, 2, 0x080C, 3, MX6SL_UART_PAD_CTRL)
+#define MX6SL_PAD_ECSPI2_SCLK__CSI_PIXCLK \
+ IOMUX_PAD(0x0370, 0x0080, 3, 0x0674, 0, NO_PAD_CTRL)
+#define MX6SL_PAD_ECSPI2_SCLK__USDHC1_RST \
+ IOMUX_PAD(0x0370, 0x0080, 4, 0x0000, 0, MX6SL_USDHC_PAD_CTRL)
+#define MX6SL_PAD_ECSPI2_SCLK__GPIO_4_12 \
+ IOMUX_PAD(0x0370, 0x0080, 5, 0x0000, 0, NO_PAD_CTRL)
+#define MX6SL_PAD_ECSPI2_SCLK__USB_USBOTG2_OC \
+ IOMUX_PAD(0x0370, 0x0080, 6, 0x0820, 1, NO_PAD_CTRL)
+#define MX6SL_PAD_ECSPI2_SCLK__TPSMP_HDATA_21 \
+ IOMUX_PAD(0x0370, 0x0080, 7, 0x0000, 0, NO_PAD_CTRL)
+
+#define MX6SL_PAD_ECSPI2_SS0__ECSPI2_SS0 \
+ IOMUX_PAD(0x0374, 0x0084, 0, 0x06A8, 0, NO_PAD_CTRL)
+#define MX6SL_PAD_ECSPI2_SS0__ECSPI1_SS3 \
+ IOMUX_PAD(0x0374, 0x0084, 1, 0x0698, 0, NO_PAD_CTRL)
+#define MX6SL_PAD_ECSPI2_SS0__UART3_CTS \
+ IOMUX_PAD(0x0374, 0x0084, 2, 0x0000, 0, MX6SL_UART_PAD_CTRL)
+#define MX6SL_PAD_ECSPI2_SS0__UART3_RTS \
+ IOMUX_PAD(0x0374, 0x0084, 2, 0x0808, 1, MX6SL_UART_PAD_CTRL)
+#define MX6SL_PAD_ECSPI2_SS0__CSI_VSYNC \
+ IOMUX_PAD(0x0374, 0x0084, 3, 0x0678, 0, NO_PAD_CTRL)
+#define MX6SL_PAD_ECSPI2_SS0__USDHC1_CD \
+ IOMUX_PAD(0x0374, 0x0084, 4, 0x0828, 0, MX6SL_USDHC_PAD_CTRL)
+#define MX6SL_PAD_ECSPI2_SS0__GPIO_4_15 \
+ IOMUX_PAD(0x0374, 0x0084, 5, 0x0000, 0, NO_PAD_CTRL)
+#define MX6SL_PAD_ECSPI2_SS0__USB_USBOTG1_PWR \
+ IOMUX_PAD(0x0374, 0x0084, 6, 0x0000, 0, NO_PAD_CTRL)
+#define MX6SL_PAD_ECSPI2_SS0__PL301_SIM_MX6SL_PER1_HADDR_24 \
+ IOMUX_PAD(0x0374, 0x0084, 7, 0x0000, 0, NO_PAD_CTRL)
+
+#define MX6SL_PAD_EPDC_BDR0__EPDC_BDR_0 \
+ IOMUX_PAD(0x0378, 0x0088, 0, 0x0000, 0, NO_PAD_CTRL)
+#define MX6SL_PAD_EPDC_BDR0__USDHC4_CLK \
+ IOMUX_PAD(0x0378, 0x0088, 1, 0x0850, 0, MX6SL_USDHC_PAD_CTRL)
+#define MX6SL_PAD_EPDC_BDR0__UART3_CTS \
+ IOMUX_PAD(0x0378, 0x0088, 2, 0x0000, 0, MX6SL_UART_PAD_CTRL)
+#define MX6SL_PAD_EPDC_BDR0__UART3_RTS \
+ IOMUX_PAD(0x0378, 0x0088, 2, 0x0808, 2, MX6SL_UART_PAD_CTRL)
+#define MX6SL_PAD_EPDC_BDR0__WEIM_WEIM_A_26 \
+ IOMUX_PAD(0x0378, 0x0088, 3, 0x0000, 0, NO_PAD_CTRL)
+#define MX6SL_PAD_EPDC_BDR0__TCON_RL \
+ IOMUX_PAD(0x0378, 0x0088, 4, 0x0000, 0, NO_PAD_CTRL)
+#define MX6SL_PAD_EPDC_BDR0__GPIO_2_5 \
+ IOMUX_PAD(0x0378, 0x0088, 5, 0x0000, 0, NO_PAD_CTRL)
+#define MX6SL_PAD_EPDC_BDR0__EPDC_SDCE_7 \
+ IOMUX_PAD(0x0378, 0x0088, 6, 0x0000, 0, NO_PAD_CTRL)
+#define MX6SL_PAD_EPDC_BDR0__MMDC_MMDC_DEBUG_9 \
+ IOMUX_PAD(0x0378, 0x0088, 7, 0x0000, 0, NO_PAD_CTRL)
+
+#define MX6SL_PAD_EPDC_BDR1__EPDC_BDR_1 \
+ IOMUX_PAD(0x037C, 0x008C, 0, 0x0000, 0, NO_PAD_CTRL)
+#define MX6SL_PAD_EPDC_BDR1__USDHC4_CMD \
+ IOMUX_PAD(0x037C, 0x008C, 1, 0x0858, 0, MX6SL_USDHC_PAD_CTRL)
+#define MX6SL_PAD_EPDC_BDR1__UART3_CTS \
+ IOMUX_PAD(0x037C, 0x008C, 2, 0x0000, 0, MX6SL_UART_PAD_CTRL)
+#define MX6SL_PAD_EPDC_BDR1__UART3_RTS \
+ IOMUX_PAD(0x037C, 0x008C, 2, 0x0808, 3, MX6SL_UART_PAD_CTRL)
+#define MX6SL_PAD_EPDC_BDR1__WEIM_WEIM_CRE \
+ IOMUX_PAD(0x037C, 0x008C, 3, 0x0000, 0, NO_PAD_CTRL)
+#define MX6SL_PAD_EPDC_BDR1__TCON_UD \
+ IOMUX_PAD(0x037C, 0x008C, 4, 0x0000, 0, NO_PAD_CTRL)
+#define MX6SL_PAD_EPDC_BDR1__GPIO_2_6 \
+ IOMUX_PAD(0x037C, 0x008C, 5, 0x0000, 0, NO_PAD_CTRL)
+#define MX6SL_PAD_EPDC_BDR1__EPDC_SDCE_8 \
+ IOMUX_PAD(0x037C, 0x008C, 6, 0x0000, 0, NO_PAD_CTRL)
+#define MX6SL_PAD_EPDC_BDR1__MMDC_MMDC_DEBUG_8 \
+ IOMUX_PAD(0x037C, 0x008C, 7, 0x0000, 0, NO_PAD_CTRL)
+
+#define MX6SL_PAD_EPDC_D0__EPDC_SDDO_0 \
+ IOMUX_PAD(0x0380, 0x0090, 0, 0x0000, 0, NO_PAD_CTRL)
+#define MX6SL_PAD_EPDC_D0__ECSPI4_MOSI \
+ IOMUX_PAD(0x0380, 0x0090, 1, 0x06D8, 0, NO_PAD_CTRL)
+#define MX6SL_PAD_EPDC_D0__LCDIF_DAT_24 \
+ IOMUX_PAD(0x0380, 0x0090, 2, 0x0000, 0, NO_PAD_CTRL)
+#define MX6SL_PAD_EPDC_D0__CSI_D_0 \
+ IOMUX_PAD(0x0380, 0x0090, 3, 0x0630, 0, NO_PAD_CTRL)
+#define MX6SL_PAD_EPDC_D0__TCON_E_DATA_0 \
+ IOMUX_PAD(0x0380, 0x0090, 4, 0x0000, 0, NO_PAD_CTRL)
+#define MX6SL_PAD_EPDC_D0__GPIO_1_7 \
+ IOMUX_PAD(0x0380, 0x0090, 5, 0x0000, 0, NO_PAD_CTRL)
+#define MX6SL_PAD_EPDC_D0__ANATOP_USBPHY1_TSTI_TX_HS_MODE \
+ IOMUX_PAD(0x0380, 0x0090, 6, 0x0000, 0, NO_PAD_CTRL)
+#define MX6SL_PAD_EPDC_D0__OBSERVE_MUX_OUT_0 \
+ IOMUX_PAD(0x0380, 0x0090, 7, 0x0000, 0, NO_PAD_CTRL)
+
+#define MX6SL_PAD_EPDC_D1__EPDC_SDDO_1 \
+ IOMUX_PAD(0x0384, 0x0094, 0, 0x0000, 0, NO_PAD_CTRL)
+#define MX6SL_PAD_EPDC_D1__ECSPI4_MISO \
+ IOMUX_PAD(0x0384, 0x0094, 1, 0x06D4, 0, NO_PAD_CTRL)
+#define MX6SL_PAD_EPDC_D1__LCDIF_DAT_25 \
+ IOMUX_PAD(0x0384, 0x0094, 2, 0x0000, 0, NO_PAD_CTRL)
+#define MX6SL_PAD_EPDC_D1__CSI_D_1 \
+ IOMUX_PAD(0x0384, 0x0094, 3, 0x0634, 0, NO_PAD_CTRL)
+#define MX6SL_PAD_EPDC_D1__TCON_E_DATA_1 \
+ IOMUX_PAD(0x0384, 0x0094, 4, 0x0000, 0, NO_PAD_CTRL)
+#define MX6SL_PAD_EPDC_D1__GPIO_1_8 \
+ IOMUX_PAD(0x0384, 0x0094, 5, 0x0000, 0, NO_PAD_CTRL)
+#define MX6SL_PAD_EPDC_D1__ANATOP_USBPHY1_TSTI_TX_LS_MODE \
+ IOMUX_PAD(0x0384, 0x0094, 6, 0x0000, 0, NO_PAD_CTRL)
+#define MX6SL_PAD_EPDC_D1__OBSERVE_MUX_OUT_1 \
+ IOMUX_PAD(0x0384, 0x0094, 7, 0x0000, 0, NO_PAD_CTRL)
+
+#define MX6SL_PAD_EPDC_D10__EPDC_SDDO_10 \
+ IOMUX_PAD(0x0388, 0x0098, 0, 0x0000, 0, NO_PAD_CTRL)
+#define MX6SL_PAD_EPDC_D10__ECSPI3_SS0 \
+ IOMUX_PAD(0x0388, 0x0098, 1, 0x06C0, 1, NO_PAD_CTRL)
+#define MX6SL_PAD_EPDC_D10__EPDC_PWRCTRL_2 \
+ IOMUX_PAD(0x0388, 0x0098, 2, 0x0000, 0, NO_PAD_CTRL)
+#define MX6SL_PAD_EPDC_D10__WEIM_WEIM_A_18 \
+ IOMUX_PAD(0x0388, 0x0098, 3, 0x0000, 0, NO_PAD_CTRL)
+#define MX6SL_PAD_EPDC_D10__TCON_E_DATA_10 \
+ IOMUX_PAD(0x0388, 0x0098, 4, 0x0000, 0, NO_PAD_CTRL)
+#define MX6SL_PAD_EPDC_D10__GPIO_1_17 \
+ IOMUX_PAD(0x0388, 0x0098, 5, 0x0000, 0, NO_PAD_CTRL)
+#define MX6SL_PAD_EPDC_D10__USDHC4_WP \
+ IOMUX_PAD(0x0388, 0x0098, 6, 0x087C, 0, MX6SL_USDHC_PAD_CTRL)
+#define MX6SL_PAD_EPDC_D10__MMDC_MMDC_DEBUG_29 \
+ IOMUX_PAD(0x0388, 0x0098, 7, 0x0000, 0, NO_PAD_CTRL)
+
+#define MX6SL_PAD_EPDC_D11__EPDC_SDDO_11 \
+ IOMUX_PAD(0x038C, 0x009C, 0, 0x0000, 0, NO_PAD_CTRL)
+#define MX6SL_PAD_EPDC_D11__ECSPI3_SCLK \
+ IOMUX_PAD(0x038C, 0x009C, 1, 0x06B0, 1, NO_PAD_CTRL)
+#define MX6SL_PAD_EPDC_D11__EPDC_PWRCTRL_3 \
+ IOMUX_PAD(0x038C, 0x009C, 2, 0x0000, 0, NO_PAD_CTRL)
+#define MX6SL_PAD_EPDC_D11__WEIM_WEIM_A_19 \
+ IOMUX_PAD(0x038C, 0x009C, 3, 0x0000, 0, NO_PAD_CTRL)
+#define MX6SL_PAD_EPDC_D11__TCON_E_DATA_11 \
+ IOMUX_PAD(0x038C, 0x009C, 4, 0x0000, 0, NO_PAD_CTRL)
+#define MX6SL_PAD_EPDC_D11__GPIO_1_18 \
+ IOMUX_PAD(0x038C, 0x009C, 5, 0x0000, 0, NO_PAD_CTRL)
+#define MX6SL_PAD_EPDC_D11__USDHC4_CD \
+ IOMUX_PAD(0x038C, 0x009C, 6, 0x0854, 0, MX6SL_USDHC_PAD_CTRL)
+#define MX6SL_PAD_EPDC_D11__MMDC_MMDC_DEBUG_28 \
+ IOMUX_PAD(0x038C, 0x009C, 7, 0x0000, 0, NO_PAD_CTRL)
+
+#define MX6SL_PAD_EPDC_D12__EPDC_SDDO_12 \
+ IOMUX_PAD(0x0390, 0x00A0, 0, 0x0000, 0, NO_PAD_CTRL)
+#define MX6SL_PAD_EPDC_D12__UART2_TXD \
+ IOMUX_PAD(0x0390, 0x00A0, 1, 0x0000, 0, MX6SL_UART_PAD_CTRL)
+#define MX6SL_PAD_EPDC_D12__UART2_RXD \
+ IOMUX_PAD(0x0390, 0x00A0, 1, 0x0804, 0, MX6SL_UART_PAD_CTRL)
+#define MX6SL_PAD_EPDC_D12__EPDC_PWRCOM \
+ IOMUX_PAD(0x0390, 0x00A0, 2, 0x0000, 0, NO_PAD_CTRL)
+#define MX6SL_PAD_EPDC_D12__WEIM_WEIM_A_20 \
+ IOMUX_PAD(0x0390, 0x00A0, 3, 0x0000, 0, NO_PAD_CTRL)
+#define MX6SL_PAD_EPDC_D12__TCON_E_DATA_12 \
+ IOMUX_PAD(0x0390, 0x00A0, 4, 0x0000, 0, NO_PAD_CTRL)
+#define MX6SL_PAD_EPDC_D12__GPIO_1_19 \
+ IOMUX_PAD(0x0390, 0x00A0, 5, 0x0000, 0, NO_PAD_CTRL)
+#define MX6SL_PAD_EPDC_D12__ECSPI3_SS1 \
+ IOMUX_PAD(0x0390, 0x00A0, 6, 0x06C4, 1, NO_PAD_CTRL)
+#define MX6SL_PAD_EPDC_D12__MMDC_MMDC_DEBUG_27 \
+ IOMUX_PAD(0x0390, 0x00A0, 7, 0x0000, 0, NO_PAD_CTRL)
+
+#define MX6SL_PAD_EPDC_D13__EPDC_SDDO_13 \
+ IOMUX_PAD(0x0394, 0x00A4, 0, 0x0000, 0, NO_PAD_CTRL)
+#define MX6SL_PAD_EPDC_D13__UART2_TXD \
+ IOMUX_PAD(0x0394, 0x00A4, 1, 0x0000, 0, MX6SL_UART_PAD_CTRL)
+#define MX6SL_PAD_EPDC_D13__UART2_RXD \
+ IOMUX_PAD(0x0394, 0x00A4, 1, 0x0804, 1, MX6SL_UART_PAD_CTRL)
+#define MX6SL_PAD_EPDC_D13__EPDC_PWRIRQ \
+ IOMUX_PAD(0x0394, 0x00A4, 2, 0x06E8, 0, NO_PAD_CTRL)
+#define MX6SL_PAD_EPDC_D13__WEIM_WEIM_A_21 \
+ IOMUX_PAD(0x0394, 0x00A4, 3, 0x0000, 0, NO_PAD_CTRL)
+#define MX6SL_PAD_EPDC_D13__TCON_E_DATA_13 \
+ IOMUX_PAD(0x0394, 0x00A4, 4, 0x0000, 0, NO_PAD_CTRL)
+#define MX6SL_PAD_EPDC_D13__GPIO_1_20 \
+ IOMUX_PAD(0x0394, 0x00A4, 5, 0x0000, 0, NO_PAD_CTRL)
+#define MX6SL_PAD_EPDC_D13__ECSPI3_SS2 \
+ IOMUX_PAD(0x0394, 0x00A4, 6, 0x06C8, 0, NO_PAD_CTRL)
+#define MX6SL_PAD_EPDC_D13__MMDC_MMDC_DEBUG_26 \
+ IOMUX_PAD(0x0394, 0x00A4, 7, 0x0000, 0, NO_PAD_CTRL)
+
+#define MX6SL_PAD_EPDC_D14__EPDC_SDDO_14 \
+ IOMUX_PAD(0x0398, 0x00A8, 0, 0x0000, 0, NO_PAD_CTRL)
+#define MX6SL_PAD_EPDC_D14__UART2_CTS \
+ IOMUX_PAD(0x0398, 0x00A8, 1, 0x0000, 0, MX6SL_UART_PAD_CTRL)
+#define MX6SL_PAD_EPDC_D14__UART2_RTS \
+ IOMUX_PAD(0x0398, 0x00A8, 1, 0x0800, 0, MX6SL_UART_PAD_CTRL)
+#define MX6SL_PAD_EPDC_D14__EPDC_PWRSTAT \
+ IOMUX_PAD(0x0398, 0x00A8, 2, 0x06EC, 0, NO_PAD_CTRL)
+#define MX6SL_PAD_EPDC_D14__WEIM_WEIM_A_22 \
+ IOMUX_PAD(0x0398, 0x00A8, 3, 0x0000, 0, NO_PAD_CTRL)
+#define MX6SL_PAD_EPDC_D14__TCON_E_DATA_14 \
+ IOMUX_PAD(0x0398, 0x00A8, 4, 0x0000, 0, NO_PAD_CTRL)
+#define MX6SL_PAD_EPDC_D14__GPIO_1_21 \
+ IOMUX_PAD(0x0398, 0x00A8, 5, 0x0000, 0, NO_PAD_CTRL)
+#define MX6SL_PAD_EPDC_D14__ECSPI3_SS3 \
+ IOMUX_PAD(0x0398, 0x00A8, 6, 0x06CC, 0, NO_PAD_CTRL)
+#define MX6SL_PAD_EPDC_D14__MMDC_MMDC_DEBUG_25 \
+ IOMUX_PAD(0x0398, 0x00A8, 7, 0x0000, 0, NO_PAD_CTRL)
+
+#define MX6SL_PAD_EPDC_D15__EPDC_SDDO_15 \
+ IOMUX_PAD(0x039C, 0x00AC, 0, 0x0000, 0, NO_PAD_CTRL)
+#define MX6SL_PAD_EPDC_D15__UART2_CTS \
+ IOMUX_PAD(0x039C, 0x00AC, 1, 0x0000, 0, MX6SL_UART_PAD_CTRL)
+#define MX6SL_PAD_EPDC_D15__UART2_RTS \
+ IOMUX_PAD(0x039C, 0x00AC, 1, 0x0800, 1, MX6SL_UART_PAD_CTRL)
+#define MX6SL_PAD_EPDC_D15__EPDC_PWRWAKE \
+ IOMUX_PAD(0x039C, 0x00AC, 2, 0x0000, 0, NO_PAD_CTRL)
+#define MX6SL_PAD_EPDC_D15__WEIM_WEIM_A_23 \
+ IOMUX_PAD(0x039C, 0x00AC, 3, 0x0000, 0, NO_PAD_CTRL)
+#define MX6SL_PAD_EPDC_D15__TCON_E_DATA_15 \
+ IOMUX_PAD(0x039C, 0x00AC, 4, 0x0000, 0, NO_PAD_CTRL)
+#define MX6SL_PAD_EPDC_D15__GPIO_1_22 \
+ IOMUX_PAD(0x039C, 0x00AC, 5, 0x0000, 0, NO_PAD_CTRL)
+#define MX6SL_PAD_EPDC_D15__ECSPI3_RDY \
+ IOMUX_PAD(0x039C, 0x00AC, 6, 0x06B4, 1, NO_PAD_CTRL)
+#define MX6SL_PAD_EPDC_D15__MMDC_MMDC_DEBUG_24 \
+ IOMUX_PAD(0x039C, 0x00AC, 7, 0x0000, 0, NO_PAD_CTRL)
+
+#define MX6SL_PAD_EPDC_D2__EPDC_SDDO_2 \
+ IOMUX_PAD(0x03A0, 0x00B0, 0, 0x0000, 0, NO_PAD_CTRL)
+#define MX6SL_PAD_EPDC_D2__ECSPI4_SS0 \
+ IOMUX_PAD(0x03A0, 0x00B0, 1, 0x06DC, 0, NO_PAD_CTRL)
+#define MX6SL_PAD_EPDC_D2__LCDIF_DAT_26 \
+ IOMUX_PAD(0x03A0, 0x00B0, 2, 0x0000, 0, NO_PAD_CTRL)
+#define MX6SL_PAD_EPDC_D2__CSI_D_2 \
+ IOMUX_PAD(0x03A0, 0x00B0, 3, 0x0638, 0, NO_PAD_CTRL)
+#define MX6SL_PAD_EPDC_D2__TCON_E_DATA_2 \
+ IOMUX_PAD(0x03A0, 0x00B0, 4, 0x0000, 0, NO_PAD_CTRL)
+#define MX6SL_PAD_EPDC_D2__GPIO_1_9 \
+ IOMUX_PAD(0x03A0, 0x00B0, 5, 0x0000, 0, NO_PAD_CTRL)
+#define MX6SL_PAD_EPDC_D2__ANATOP_USBPHY1_TSTI_TX_DN \
+ IOMUX_PAD(0x03A0, 0x00B0, 6, 0x0000, 0, NO_PAD_CTRL)
+#define MX6SL_PAD_EPDC_D2__TPSMP_HDATA_28 \
+ IOMUX_PAD(0x03A0, 0x00B0, 7, 0x0000, 0, NO_PAD_CTRL)
+
+#define MX6SL_PAD_EPDC_D3__EPDC_SDDO_3 \
+ IOMUX_PAD(0x03A4, 0x00B4, 0, 0x0000, 0, NO_PAD_CTRL)
+#define MX6SL_PAD_EPDC_D3__ECSPI4_SCLK \
+ IOMUX_PAD(0x03A4, 0x00B4, 1, 0x06D0, 0, NO_PAD_CTRL)
+#define MX6SL_PAD_EPDC_D3__LCDIF_DAT_27 \
+ IOMUX_PAD(0x03A4, 0x00B4, 2, 0x0000, 0, NO_PAD_CTRL)
+#define MX6SL_PAD_EPDC_D3__CSI_D_3 \
+ IOMUX_PAD(0x03A4, 0x00B4, 3, 0x063C, 0, NO_PAD_CTRL)
+#define MX6SL_PAD_EPDC_D3__TCON_E_DATA_3 \
+ IOMUX_PAD(0x03A4, 0x00B4, 4, 0x0000, 0, NO_PAD_CTRL)
+#define MX6SL_PAD_EPDC_D3__GPIO_1_10 \
+ IOMUX_PAD(0x03A4, 0x00B4, 5, 0x0000, 0, NO_PAD_CTRL)
+#define MX6SL_PAD_EPDC_D3__ANATOP_USBPHY1_TSTI_TX_DP \
+ IOMUX_PAD(0x03A4, 0x00B4, 6, 0x0000, 0, NO_PAD_CTRL)
+#define MX6SL_PAD_EPDC_D3__TPSMP_HDATA_29 \
+ IOMUX_PAD(0x03A4, 0x00B4, 7, 0x0000, 0, NO_PAD_CTRL)
+
+#define MX6SL_PAD_EPDC_D4__EPDC_SDDO_4 \
+ IOMUX_PAD(0x03A8, 0x00B8, 0, 0x0000, 0, NO_PAD_CTRL)
+#define MX6SL_PAD_EPDC_D4__ECSPI4_SS1 \
+ IOMUX_PAD(0x03A8, 0x00B8, 1, 0x06E0, 0, NO_PAD_CTRL)
+#define MX6SL_PAD_EPDC_D4__LCDIF_DAT_28 \
+ IOMUX_PAD(0x03A8, 0x00B8, 2, 0x0000, 0, NO_PAD_CTRL)
+#define MX6SL_PAD_EPDC_D4__CSI_D_4 \
+ IOMUX_PAD(0x03A8, 0x00B8, 3, 0x0640, 0, NO_PAD_CTRL)
+#define MX6SL_PAD_EPDC_D4__TCON_E_DATA_4 \
+ IOMUX_PAD(0x03A8, 0x00B8, 4, 0x0000, 0, NO_PAD_CTRL)
+#define MX6SL_PAD_EPDC_D4__GPIO_1_11 \
+ IOMUX_PAD(0x03A8, 0x00B8, 5, 0x0000, 0, NO_PAD_CTRL)
+#define MX6SL_PAD_EPDC_D4__ANATOP_USBPHY1_TSTI_TX_EN \
+ IOMUX_PAD(0x03A8, 0x00B8, 6, 0x0000, 0, NO_PAD_CTRL)
+#define MX6SL_PAD_EPDC_D4__TPSMP_HDATA_30 \
+ IOMUX_PAD(0x03A8, 0x00B8, 7, 0x0000, 0, NO_PAD_CTRL)
+
+#define MX6SL_PAD_EPDC_D5__EPDC_SDDO_5 \
+ IOMUX_PAD(0x03AC, 0x00BC, 0, 0x0000, 0, NO_PAD_CTRL)
+#define MX6SL_PAD_EPDC_D5__ECSPI4_SS2 \
+ IOMUX_PAD(0x03AC, 0x00BC, 1, 0x06E4, 0, NO_PAD_CTRL)
+#define MX6SL_PAD_EPDC_D5__LCDIF_DAT_29 \
+ IOMUX_PAD(0x03AC, 0x00BC, 2, 0x0000, 0, NO_PAD_CTRL)
+#define MX6SL_PAD_EPDC_D5__CSI_D_5 \
+ IOMUX_PAD(0x03AC, 0x00BC, 3, 0x0644, 0, NO_PAD_CTRL)
+#define MX6SL_PAD_EPDC_D5__TCON_E_DATA_5 \
+ IOMUX_PAD(0x03AC, 0x00BC, 4, 0x0000, 0, NO_PAD_CTRL)
+#define MX6SL_PAD_EPDC_D5__GPIO_1_12 \
+ IOMUX_PAD(0x03AC, 0x00BC, 5, 0x0000, 0, NO_PAD_CTRL)
+#define MX6SL_PAD_EPDC_D5__ANATOP_USBPHY1_TSTI_TX_HIZ \
+ IOMUX_PAD(0x03AC, 0x00BC, 6, 0x0000, 0, NO_PAD_CTRL)
+#define MX6SL_PAD_EPDC_D5__TPSMP_HDATA_31 \
+ IOMUX_PAD(0x03AC, 0x00BC, 7, 0x0000, 0, NO_PAD_CTRL)
+
+#define MX6SL_PAD_EPDC_D6__EPDC_SDDO_6 \
+ IOMUX_PAD(0x03B0, 0x00C0, 0, 0x0000, 0, NO_PAD_CTRL)
+#define MX6SL_PAD_EPDC_D6__ECSPI4_SS3 \
+ IOMUX_PAD(0x03B0, 0x00C0, 1, 0x0000, 0, NO_PAD_CTRL)
+#define MX6SL_PAD_EPDC_D6__LCDIF_DAT_30 \
+ IOMUX_PAD(0x03B0, 0x00C0, 2, 0x0000, 0, NO_PAD_CTRL)
+#define MX6SL_PAD_EPDC_D6__CSI_D_6 \
+ IOMUX_PAD(0x03B0, 0x00C0, 3, 0x0648, 0, NO_PAD_CTRL)
+#define MX6SL_PAD_EPDC_D6__TCON_E_DATA_6 \
+ IOMUX_PAD(0x03B0, 0x00C0, 4, 0x0000, 0, NO_PAD_CTRL)
+#define MX6SL_PAD_EPDC_D6__GPIO_1_13 \
+ IOMUX_PAD(0x03B0, 0x00C0, 5, 0x0000, 0, NO_PAD_CTRL)
+#define MX6SL_PAD_EPDC_D6__ANATOP_USBPHY2_TSTO_RX_DISCON_DET \
+ IOMUX_PAD(0x03B0, 0x00C0, 6, 0x0000, 0, NO_PAD_CTRL)
+#define MX6SL_PAD_EPDC_D6__TPSMP_HDATA_20 \
+ IOMUX_PAD(0x03B0, 0x00C0, 7, 0x0000, 0, NO_PAD_CTRL)
+
+#define MX6SL_PAD_EPDC_D7__EPDC_SDDO_7 \
+ IOMUX_PAD(0x03B4, 0x00C4, 0, 0x0000, 0, NO_PAD_CTRL)
+#define MX6SL_PAD_EPDC_D7__ECSPI4_RDY \
+ IOMUX_PAD(0x03B4, 0x00C4, 1, 0x0000, 0, NO_PAD_CTRL)
+#define MX6SL_PAD_EPDC_D7__LCDIF_DAT_31 \
+ IOMUX_PAD(0x03B4, 0x00C4, 2, 0x0000, 0, NO_PAD_CTRL)
+#define MX6SL_PAD_EPDC_D7__CSI_D_7 \
+ IOMUX_PAD(0x03B4, 0x00C4, 3, 0x064C, 0, NO_PAD_CTRL)
+#define MX6SL_PAD_EPDC_D7__TCON_E_DATA_7 \
+ IOMUX_PAD(0x03B4, 0x00C4, 4, 0x0000, 0, NO_PAD_CTRL)
+#define MX6SL_PAD_EPDC_D7__GPIO_1_14 \
+ IOMUX_PAD(0x03B4, 0x00C4, 5, 0x0000, 0, NO_PAD_CTRL)
+#define MX6SL_PAD_EPDC_D7__ANATOP_USBPHY2_TSTO_RX_FS_RXD \
+ IOMUX_PAD(0x03B4, 0x00C4, 6, 0x0000, 0, NO_PAD_CTRL)
+#define MX6SL_PAD_EPDC_D7__MMDC_MMDC_DEBUG_32 \
+ IOMUX_PAD(0x03B4, 0x00C4, 7, 0x0000, 0, NO_PAD_CTRL)
+
+#define MX6SL_PAD_EPDC_D8__EPDC_SDDO_8 \
+ IOMUX_PAD(0x03B8, 0x00C8, 0, 0x0000, 0, NO_PAD_CTRL)
+#define MX6SL_PAD_EPDC_D8__ECSPI3_MOSI \
+ IOMUX_PAD(0x03B8, 0x00C8, 1, 0x06BC, 1, NO_PAD_CTRL)
+#define MX6SL_PAD_EPDC_D8__EPDC_PWRCTRL_0 \
+ IOMUX_PAD(0x03B8, 0x00C8, 2, 0x0000, 0, NO_PAD_CTRL)
+#define MX6SL_PAD_EPDC_D8__WEIM_WEIM_A_16 \
+ IOMUX_PAD(0x03B8, 0x00C8, 3, 0x0000, 0, NO_PAD_CTRL)
+#define MX6SL_PAD_EPDC_D8__TCON_E_DATA_8 \
+ IOMUX_PAD(0x03B8, 0x00C8, 4, 0x0000, 0, NO_PAD_CTRL)
+#define MX6SL_PAD_EPDC_D8__GPIO_1_15 \
+ IOMUX_PAD(0x03B8, 0x00C8, 5, 0x0000, 0, NO_PAD_CTRL)
+#define MX6SL_PAD_EPDC_D8__USDHC4_RST \
+ IOMUX_PAD(0x03B8, 0x00C8, 6, 0x0000, 0, MX6SL_USDHC_PAD_CTRL)
+#define MX6SL_PAD_EPDC_D8__MMDC_MMDC_DEBUG_31 \
+ IOMUX_PAD(0x03B8, 0x00C8, 7, 0x0000, 0, NO_PAD_CTRL)
+
+#define MX6SL_PAD_EPDC_D9__EPDC_SDDO_9 \
+ IOMUX_PAD(0x03BC, 0x00CC, 0, 0x0000, 0, NO_PAD_CTRL)
+#define MX6SL_PAD_EPDC_D9__ECSPI3_MISO \
+ IOMUX_PAD(0x03BC, 0x00CC, 1, 0x06B8, 1, NO_PAD_CTRL)
+#define MX6SL_PAD_EPDC_D9__EPDC_PWRCTRL_1 \
+ IOMUX_PAD(0x03BC, 0x00CC, 2, 0x0000, 0, NO_PAD_CTRL)
+#define MX6SL_PAD_EPDC_D9__WEIM_WEIM_A_17 \
+ IOMUX_PAD(0x03BC, 0x00CC, 3, 0x0000, 0, NO_PAD_CTRL)
+#define MX6SL_PAD_EPDC_D9__TCON_E_DATA_9 \
+ IOMUX_PAD(0x03BC, 0x00CC, 4, 0x0000, 0, NO_PAD_CTRL)
+#define MX6SL_PAD_EPDC_D9__GPIO_1_16 \
+ IOMUX_PAD(0x03BC, 0x00CC, 5, 0x0000, 0, NO_PAD_CTRL)
+#define MX6SL_PAD_EPDC_D9__USDHC4_VSELECT \
+ IOMUX_PAD(0x03BC, 0x00CC, 6, 0x0000, 0, MX6SL_USDHC_PAD_CTRL)
+#define MX6SL_PAD_EPDC_D9__MMDC_MMDC_DEBUG_30 \
+ IOMUX_PAD(0x03BC, 0x00CC, 7, 0x0000, 0, NO_PAD_CTRL)
+
+#define MX6SL_PAD_EPDC_GDCLK__EPDC_GDCLK \
+ IOMUX_PAD(0x03C0, 0x00D0, 0, 0x0000, 0, NO_PAD_CTRL)
+#define MX6SL_PAD_EPDC_GDCLK__ECSPI2_SS2 \
+ IOMUX_PAD(0x03C0, 0x00D0, 1, 0x0000, 0, NO_PAD_CTRL)
+#define MX6SL_PAD_EPDC_GDCLK__TCON_YCKR \
+ IOMUX_PAD(0x03C0, 0x00D0, 2, 0x0000, 0, NO_PAD_CTRL)
+#define MX6SL_PAD_EPDC_GDCLK__CSI_PIXCLK \
+ IOMUX_PAD(0x03C0, 0x00D0, 3, 0x0674, 1, NO_PAD_CTRL)
+#define MX6SL_PAD_EPDC_GDCLK__TCON_YCKL \
+ IOMUX_PAD(0x03C0, 0x00D0, 4, 0x0000, 0, NO_PAD_CTRL)
+#define MX6SL_PAD_EPDC_GDCLK__GPIO_1_31 \
+ IOMUX_PAD(0x03C0, 0x00D0, 5, 0x0000, 0, NO_PAD_CTRL)
+#define MX6SL_PAD_EPDC_GDCLK__USDHC2_RST \
+ IOMUX_PAD(0x03C0, 0x00D0, 6, 0x0000, 0, MX6SL_USDHC_PAD_CTRL)
+#define MX6SL_PAD_EPDC_GDCLK__MMDC_MMDC_DEBUG_15 \
+ IOMUX_PAD(0x03C0, 0x00D0, 7, 0x0000, 0, NO_PAD_CTRL)
+
+#define MX6SL_PAD_EPDC_GDOE__EPDC_GDOE \
+ IOMUX_PAD(0x03C4, 0x00D4, 0, 0x0000, 0, NO_PAD_CTRL)
+#define MX6SL_PAD_EPDC_GDOE__ECSPI2_SS3 \
+ IOMUX_PAD(0x03C4, 0x00D4, 1, 0x0000, 0, NO_PAD_CTRL)
+#define MX6SL_PAD_EPDC_GDOE__TCON_YOER \
+ IOMUX_PAD(0x03C4, 0x00D4, 2, 0x0000, 0, NO_PAD_CTRL)
+#define MX6SL_PAD_EPDC_GDOE__CSI_HSYNC \
+ IOMUX_PAD(0x03C4, 0x00D4, 3, 0x0670, 1, NO_PAD_CTRL)
+#define MX6SL_PAD_EPDC_GDOE__TCON_YOEL \
+ IOMUX_PAD(0x03C4, 0x00D4, 4, 0x0000, 0, NO_PAD_CTRL)
+#define MX6SL_PAD_EPDC_GDOE__GPIO_2_0 \
+ IOMUX_PAD(0x03C4, 0x00D4, 5, 0x0000, 0, NO_PAD_CTRL)
+#define MX6SL_PAD_EPDC_GDOE__USDHC2_VSELECT \
+ IOMUX_PAD(0x03C4, 0x00D4, 6, 0x0000, 0, MX6SL_USDHC_PAD_CTRL)
+#define MX6SL_PAD_EPDC_GDOE__MMDC_MMDC_DEBUG_14 \
+ IOMUX_PAD(0x03C4, 0x00D4, 7, 0x0000, 0, NO_PAD_CTRL)
+
+#define MX6SL_PAD_EPDC_GDRL__EPDC_GDRL \
+ IOMUX_PAD(0x03C8, 0x00D8, 0, 0x0000, 0, NO_PAD_CTRL)
+#define MX6SL_PAD_EPDC_GDRL__ECSPI2_RDY \
+ IOMUX_PAD(0x03C8, 0x00D8, 1, 0x0000, 0, NO_PAD_CTRL)
+#define MX6SL_PAD_EPDC_GDRL__TCON_YDIOUR \
+ IOMUX_PAD(0x03C8, 0x00D8, 2, 0x0000, 0, NO_PAD_CTRL)
+#define MX6SL_PAD_EPDC_GDRL__CSI_MCLK \
+ IOMUX_PAD(0x03C8, 0x00D8, 3, 0x0000, 0, NO_PAD_CTRL)
+#define MX6SL_PAD_EPDC_GDRL__TCON_YDIOUL \
+ IOMUX_PAD(0x03C8, 0x00D8, 4, 0x0000, 0, NO_PAD_CTRL)
+#define MX6SL_PAD_EPDC_GDRL__GPIO_2_1 \
+ IOMUX_PAD(0x03C8, 0x00D8, 5, 0x0000, 0, NO_PAD_CTRL)
+#define MX6SL_PAD_EPDC_GDRL__USDHC2_WP \
+ IOMUX_PAD(0x03C8, 0x00D8, 6, 0x0834, 1, MX6SL_USDHC_PAD_CTRL)
+#define MX6SL_PAD_EPDC_GDRL__MMDC_MMDC_DEBUG_13 \
+ IOMUX_PAD(0x03C8, 0x00D8, 7, 0x0000, 0, NO_PAD_CTRL)
+
+#define MX6SL_PAD_EPDC_GDSP__EPDC_GDSP \
+ IOMUX_PAD(0x03CC, 0x00DC, 0, 0x0000, 0, NO_PAD_CTRL)
+#define MX6SL_PAD_EPDC_GDSP__PWM4_PWMO \
+ IOMUX_PAD(0x03CC, 0x00DC, 1, 0x0000, 0, NO_PAD_CTRL)
+#define MX6SL_PAD_EPDC_GDSP__TCON_YDIODR \
+ IOMUX_PAD(0x03CC, 0x00DC, 2, 0x0000, 0, NO_PAD_CTRL)
+#define MX6SL_PAD_EPDC_GDSP__CSI_VSYNC \
+ IOMUX_PAD(0x03CC, 0x00DC, 3, 0x0678, 1, NO_PAD_CTRL)
+#define MX6SL_PAD_EPDC_GDSP__TCON_YDIODL \
+ IOMUX_PAD(0x03CC, 0x00DC, 4, 0x0000, 0, NO_PAD_CTRL)
+#define MX6SL_PAD_EPDC_GDSP__GPIO_2_2 \
+ IOMUX_PAD(0x03CC, 0x00DC, 5, 0x0000, 0, NO_PAD_CTRL)
+#define MX6SL_PAD_EPDC_GDSP__USDHC2_CD \
+ IOMUX_PAD(0x03CC, 0x00DC, 6, 0x0830, 1, MX6SL_USDHC_PAD_CTRL)
+#define MX6SL_PAD_EPDC_GDSP__MMDC_MMDC_DEBUG_12 \
+ IOMUX_PAD(0x03CC, 0x00DC, 7, 0x0000, 0, NO_PAD_CTRL)
+
+#define MX6SL_PAD_EPDC_PWRCOM__EPDC_PWRCOM \
+ IOMUX_PAD(0x03D0, 0x00E0, 0, 0x0000, 0, NO_PAD_CTRL)
+#define MX6SL_PAD_EPDC_PWRCOM__USDHC4_DAT0 \
+ IOMUX_PAD(0x03D0, 0x00E0, 1, 0x085C, 0, MX6SL_USDHC_PAD_CTRL)
+#define MX6SL_PAD_EPDC_PWRCOM__LCDIF_DAT_20 \
+ IOMUX_PAD(0x03D0, 0x00E0, 2, 0x07C8, 0, NO_PAD_CTRL)
+#define MX6SL_PAD_EPDC_PWRCOM__WEIM_WEIM_BCLK \
+ IOMUX_PAD(0x03D0, 0x00E0, 3, 0x0000, 0, NO_PAD_CTRL)
+#define MX6SL_PAD_EPDC_PWRCOM__ANATOP_USBOTG1_ID \
+ IOMUX_PAD(0x03D0, 0x00E0, 4, 0x05DC, 0, MX6SL_USDHC_PAD_CTRL)
+#define MX6SL_PAD_EPDC_PWRCOM__GPIO_2_11 \
+ IOMUX_PAD(0x03D0, 0x00E0, 5, 0x0000, 0, NO_PAD_CTRL)
+#define MX6SL_PAD_EPDC_PWRCOM__USDHC3_RST \
+ IOMUX_PAD(0x03D0, 0x00E0, 6, 0x0000, 0, MX6SL_USDHC_PAD_CTRL)
+#define MX6SL_PAD_EPDC_PWRCOM__MMDC_MMDC_DEBUG_3 \
+ IOMUX_PAD(0x03D0, 0x00E0, 7, 0x0000, 0, NO_PAD_CTRL)
+
+#define MX6SL_PAD_EPDC_PWRCTRL0__EPDC_PWRCTRL_0 \
+ IOMUX_PAD(0x03D4, 0x00E4, 0, 0x0000, 0, NO_PAD_CTRL)
+#define MX6SL_PAD_EPDC_PWRCTRL0__AUDMUX_AUD5_RXC \
+ IOMUX_PAD(0x03D4, 0x00E4, 1, 0x0604, 0, NO_PAD_CTRL)
+#define MX6SL_PAD_EPDC_PWRCTRL0__LCDIF_DAT_16 \
+ IOMUX_PAD(0x03D4, 0x00E4, 2, 0x07B8, 0, NO_PAD_CTRL)
+#define MX6SL_PAD_EPDC_PWRCTRL0__WEIM_WEIM_RW \
+ IOMUX_PAD(0x03D4, 0x00E4, 3, 0x0000, 0, NO_PAD_CTRL)
+#define MX6SL_PAD_EPDC_PWRCTRL0__TCON_YCKL \
+ IOMUX_PAD(0x03D4, 0x00E4, 4, 0x0000, 0, NO_PAD_CTRL)
+#define MX6SL_PAD_EPDC_PWRCTRL0__GPIO_2_7 \
+ IOMUX_PAD(0x03D4, 0x00E4, 5, 0x0000, 0, NO_PAD_CTRL)
+#define MX6SL_PAD_EPDC_PWRCTRL0__USDHC4_RST \
+ IOMUX_PAD(0x03D4, 0x00E4, 6, 0x0000, 0, MX6SL_USDHC_PAD_CTRL)
+#define MX6SL_PAD_EPDC_PWRCTRL0__MMDC_MMDC_DEBUG_7 \
+ IOMUX_PAD(0x03D4, 0x00E4, 7, 0x0000, 0, NO_PAD_CTRL)
+
+#define MX6SL_PAD_EPDC_PWRCTRL1__EPDC_PWRCTRL_1 \
+ IOMUX_PAD(0x03D8, 0x00E8, 0, 0x0000, 0, NO_PAD_CTRL)
+#define MX6SL_PAD_EPDC_PWRCTRL1__AUDMUX_AUD5_TXFS \
+ IOMUX_PAD(0x03D8, 0x00E8, 1, 0x0610, 0, NO_PAD_CTRL)
+#define MX6SL_PAD_EPDC_PWRCTRL1__LCDIF_DAT_17 \
+ IOMUX_PAD(0x03D8, 0x00E8, 2, 0x07BC, 0, NO_PAD_CTRL)
+#define MX6SL_PAD_EPDC_PWRCTRL1__WEIM_WEIM_OE \
+ IOMUX_PAD(0x03D8, 0x00E8, 3, 0x0000, 0, NO_PAD_CTRL)
+#define MX6SL_PAD_EPDC_PWRCTRL1__TCON_YOEL \
+ IOMUX_PAD(0x03D8, 0x00E8, 4, 0x0000, 0, NO_PAD_CTRL)
+#define MX6SL_PAD_EPDC_PWRCTRL1__GPIO_2_8 \
+ IOMUX_PAD(0x03D8, 0x00E8, 5, 0x0000, 0, NO_PAD_CTRL)
+#define MX6SL_PAD_EPDC_PWRCTRL1__USDHC4_VSELECT \
+ IOMUX_PAD(0x03D8, 0x00E8, 6, 0x0000, 0, MX6SL_USDHC_PAD_CTRL)
+#define MX6SL_PAD_EPDC_PWRCTRL1__MMDC_MMDC_DEBUG_6 \
+ IOMUX_PAD(0x03D8, 0x00E8, 7, 0x0000, 0, NO_PAD_CTRL)
+
+#define MX6SL_PAD_EPDC_PWRCTRL2__EPDC_PWRCTRL_2 \
+ IOMUX_PAD(0x03DC, 0x00EC, 0, 0x0000, 0, NO_PAD_CTRL)
+#define MX6SL_PAD_EPDC_PWRCTRL2__AUDMUX_AUD5_TXD \
+ IOMUX_PAD(0x03DC, 0x00EC, 1, 0x0600, 0, NO_PAD_CTRL)
+#define MX6SL_PAD_EPDC_PWRCTRL2__LCDIF_DAT_18 \
+ IOMUX_PAD(0x03DC, 0x00EC, 2, 0x07C0, 0, NO_PAD_CTRL)
+#define MX6SL_PAD_EPDC_PWRCTRL2__WEIM_WEIM_CS_0 \
+ IOMUX_PAD(0x03DC, 0x00EC, 3, 0x0000, 0, NO_PAD_CTRL)
+#define MX6SL_PAD_EPDC_PWRCTRL2__TCON_YDIOUL \
+ IOMUX_PAD(0x03DC, 0x00EC, 4, 0x0000, 0, NO_PAD_CTRL)
+#define MX6SL_PAD_EPDC_PWRCTRL2__GPIO_2_9 \
+ IOMUX_PAD(0x03DC, 0x00EC, 5, 0x0000, 0, NO_PAD_CTRL)
+#define MX6SL_PAD_EPDC_PWRCTRL2__USDHC4_WP \
+ IOMUX_PAD(0x03DC, 0x00EC, 6, 0x087C, 1, MX6SL_USDHC_PAD_CTRL)
+#define MX6SL_PAD_EPDC_PWRCTRL2__MMDC_MMDC_DEBUG_5 \
+ IOMUX_PAD(0x03DC, 0x00EC, 7, 0x0000, 0, NO_PAD_CTRL)
+
+#define MX6SL_PAD_EPDC_PWRCTRL3__EPDC_PWRCTRL_3 \
+ IOMUX_PAD(0x03E0, 0x00F0, 0, 0x0000, 0, NO_PAD_CTRL)
+#define MX6SL_PAD_EPDC_PWRCTRL3__AUDMUX_AUD5_TXC \
+ IOMUX_PAD(0x03E0, 0x00F0, 1, 0x060C, 0, NO_PAD_CTRL)
+#define MX6SL_PAD_EPDC_PWRCTRL3__LCDIF_DAT_19 \
+ IOMUX_PAD(0x03E0, 0x00F0, 2, 0x07C4, 0, NO_PAD_CTRL)
+#define MX6SL_PAD_EPDC_PWRCTRL3__WEIM_WEIM_CS_1 \
+ IOMUX_PAD(0x03E0, 0x00F0, 3, 0x0000, 0, NO_PAD_CTRL)
+#define MX6SL_PAD_EPDC_PWRCTRL3__TCON_YDIODL \
+ IOMUX_PAD(0x03E0, 0x00F0, 4, 0x0000, 0, NO_PAD_CTRL)
+#define MX6SL_PAD_EPDC_PWRCTRL3__GPIO_2_10 \
+ IOMUX_PAD(0x03E0, 0x00F0, 5, 0x0000, 0, NO_PAD_CTRL)
+#define MX6SL_PAD_EPDC_PWRCTRL3__USDHC4_CD \
+ IOMUX_PAD(0x03E0, 0x00F0, 6, 0x0854, 1, MX6SL_USDHC_PAD_CTRL)
+#define MX6SL_PAD_EPDC_PWRCTRL3__MMDC_MMDC_DEBUG_4 \
+ IOMUX_PAD(0x03E0, 0x00F0, 7, 0x0000, 0, NO_PAD_CTRL)
+
+#define MX6SL_PAD_EPDC_PWRINT__EPDC_PWRIRQ \
+ IOMUX_PAD(0x03E4, 0x00F4, 0, 0x06E8, 1, NO_PAD_CTRL)
+#define MX6SL_PAD_EPDC_PWRINT__USDHC4_DAT1 \
+ IOMUX_PAD(0x03E4, 0x00F4, 1, 0x0860, 0, MX6SL_USDHC_PAD_CTRL)
+#define MX6SL_PAD_EPDC_PWRINT__LCDIF_DAT_21 \
+ IOMUX_PAD(0x03E4, 0x00F4, 2, 0x07CC, 0, NO_PAD_CTRL)
+#define MX6SL_PAD_EPDC_PWRINT__WEIM_ACLK_FREERUN \
+ IOMUX_PAD(0x03E4, 0x00F4, 3, 0x0000, 0, NO_PAD_CTRL)
+#define MX6SL_PAD_EPDC_PWRINT__ANATOP_USBOTG2_ID \
+ IOMUX_PAD(0x03E4, 0x00F4, 4, 0x05E0, 0, NO_PAD_CTRL)
+#define MX6SL_PAD_EPDC_PWRINT__GPIO_2_12 \
+ IOMUX_PAD(0x03E4, 0x00F4, 5, 0x0000, 0, NO_PAD_CTRL)
+#define MX6SL_PAD_EPDC_PWRINT__USDHC3_VSELECT \
+ IOMUX_PAD(0x03E4, 0x00F4, 6, 0x0000, 0, MX6SL_USDHC_PAD_CTRL)
+#define MX6SL_PAD_EPDC_PWRINT__MMDC_MMDC_DEBUG_2 \
+ IOMUX_PAD(0x03E4, 0x00F4, 7, 0x0000, 0, NO_PAD_CTRL)
+
+#define MX6SL_PAD_EPDC_PWRSTAT__EPDC_PWRSTAT \
+ IOMUX_PAD(0x03E8, 0x00F8, 0, 0x06EC, 1, NO_PAD_CTRL)
+#define MX6SL_PAD_EPDC_PWRSTAT__USDHC4_DAT2 \
+ IOMUX_PAD(0x03E8, 0x00F8, 1, 0x0864, 0, MX6SL_USDHC_PAD_CTRL)
+#define MX6SL_PAD_EPDC_PWRSTAT__LCDIF_DAT_22 \
+ IOMUX_PAD(0x03E8, 0x00F8, 2, 0x07D0, 0, NO_PAD_CTRL)
+#define MX6SL_PAD_EPDC_PWRSTAT__WEIM_WEIM_WAIT \
+ IOMUX_PAD(0x03E8, 0x00F8, 3, 0x0884, 0, NO_PAD_CTRL)
+#define MX6SL_PAD_EPDC_PWRSTAT__KITTEN_EVENTI \
+ IOMUX_PAD(0x03E8, 0x00F8, 4, 0x0000, 0, NO_PAD_CTRL)
+#define MX6SL_PAD_EPDC_PWRSTAT__GPIO_2_13 \
+ IOMUX_PAD(0x03E8, 0x00F8, 5, 0x0000, 0, NO_PAD_CTRL)
+#define MX6SL_PAD_EPDC_PWRSTAT__USDHC3_WP \
+ IOMUX_PAD(0x03E8, 0x00F8, 6, 0x084C, 0, MX6SL_USDHC_PAD_CTRL)
+#define MX6SL_PAD_EPDC_PWRSTAT__MMDC_MMDC_DEBUG_1 \
+ IOMUX_PAD(0x03E8, 0x00F8, 7, 0x0000, 0, NO_PAD_CTRL)
+
+#define MX6SL_PAD_EPDC_PWRWAKEUP__EPDC_PWRWAKE \
+ IOMUX_PAD(0x03EC, 0x00FC, 0, 0x0000, 0, NO_PAD_CTRL)
+#define MX6SL_PAD_EPDC_PWRWAKEUP__USDHC4_DAT3 \
+ IOMUX_PAD(0x03EC, 0x00FC, 1, 0x0868, 0, MX6SL_USDHC_PAD_CTRL)
+#define MX6SL_PAD_EPDC_PWRWAKEUP__LCDIF_DAT_23 \
+ IOMUX_PAD(0x03EC, 0x00FC, 2, 0x07D4, 0, NO_PAD_CTRL)
+#define MX6SL_PAD_EPDC_PWRWAKEUP__WEIM_WEIM_DTACK_B \
+ IOMUX_PAD(0x03EC, 0x00FC, 3, 0x0880, 0, NO_PAD_CTRL)
+#define MX6SL_PAD_EPDC_PWRWAKEUP__KITTEN_EVENTO \
+ IOMUX_PAD(0x03EC, 0x00FC, 4, 0x0000, 0, NO_PAD_CTRL)
+#define MX6SL_PAD_EPDC_PWRWAKEUP__GPIO_2_14 \
+ IOMUX_PAD(0x03EC, 0x00FC, 5, 0x0000, 0, NO_PAD_CTRL)
+#define MX6SL_PAD_EPDC_PWRWAKEUP__USDHC3_CD \
+ IOMUX_PAD(0x03EC, 0x00FC, 6, 0x0838, 0, MX6SL_USDHC_PAD_CTRL)
+#define MX6SL_PAD_EPDC_PWRWAKEUP__MMDC_MMDC_DEBUG_0 \
+ IOMUX_PAD(0x03EC, 0x00FC, 7, 0x0000, 0, NO_PAD_CTRL)
+
+#define MX6SL_PAD_EPDC_SDCE0__EPDC_SDCE_0 \
+ IOMUX_PAD(0x03F0, 0x0100, 0, 0x0000, 0, NO_PAD_CTRL)
+#define MX6SL_PAD_EPDC_SDCE0__ECSPI2_SS1 \
+ IOMUX_PAD(0x03F0, 0x0100, 1, 0x06AC, 0, NO_PAD_CTRL)
+#define MX6SL_PAD_EPDC_SDCE0__PWM3_PWMO \
+ IOMUX_PAD(0x03F0, 0x0100, 2, 0x0000, 0, NO_PAD_CTRL)
+#define MX6SL_PAD_EPDC_SDCE0__WEIM_WEIM_CS_2 \
+ IOMUX_PAD(0x03F0, 0x0100, 3, 0x0000, 0, NO_PAD_CTRL)
+#define MX6SL_PAD_EPDC_SDCE0__TCON_YCKR \
+ IOMUX_PAD(0x03F0, 0x0100, 4, 0x0000, 0, NO_PAD_CTRL)
+#define MX6SL_PAD_EPDC_SDCE0__GPIO_1_27 \
+ IOMUX_PAD(0x03F0, 0x0100, 5, 0x0000, 0, NO_PAD_CTRL)
+#define MX6SL_PAD_EPDC_SDCE0__ANATOP_USBPHY1_TSTO_PLL_CLK20DIV \
+ IOMUX_PAD(0x03F0, 0x0100, 6, 0x0000, 0, NO_PAD_CTRL)
+#define MX6SL_PAD_EPDC_SDCE0__MMDC_MMDC_DEBUG_19 \
+ IOMUX_PAD(0x03F0, 0x0100, 7, 0x0000, 0, NO_PAD_CTRL)
+
+#define MX6SL_PAD_EPDC_SDCE1__EPDC_SDCE_1 \
+ IOMUX_PAD(0x03F4, 0x0104, 0, 0x0000, 0, NO_PAD_CTRL)
+#define MX6SL_PAD_EPDC_SDCE1__WDOG2_WDOG_B \
+ IOMUX_PAD(0x03F4, 0x0104, 1, 0x0000, 0, NO_PAD_CTRL)
+#define MX6SL_PAD_EPDC_SDCE1__PWM4_PWMO \
+ IOMUX_PAD(0x03F4, 0x0104, 2, 0x0000, 0, NO_PAD_CTRL)
+#define MX6SL_PAD_EPDC_SDCE1__WEIM_WEIM_LBA \
+ IOMUX_PAD(0x03F4, 0x0104, 3, 0x0000, 0, NO_PAD_CTRL)
+#define MX6SL_PAD_EPDC_SDCE1__TCON_YOER \
+ IOMUX_PAD(0x03F4, 0x0104, 4, 0x0000, 0, NO_PAD_CTRL)
+#define MX6SL_PAD_EPDC_SDCE1__GPIO_1_28 \
+ IOMUX_PAD(0x03F4, 0x0104, 5, 0x0000, 0, NO_PAD_CTRL)
+#define MX6SL_PAD_EPDC_SDCE1__ANATOP_USBPHY1_TSTO_RX_FS_RXD \
+ IOMUX_PAD(0x03F4, 0x0104, 6, 0x0000, 0, NO_PAD_CTRL)
+#define MX6SL_PAD_EPDC_SDCE1__MMDC_MMDC_DEBUG_18 \
+ IOMUX_PAD(0x03F4, 0x0104, 7, 0x0000, 0, NO_PAD_CTRL)
+
+#define MX6SL_PAD_EPDC_SDCE2__EPDC_SDCE_2 \
+ IOMUX_PAD(0x03F8, 0x0108, 0, 0x0000, 0, NO_PAD_CTRL)
+#define MX6SL_PAD_EPDC_SDCE2__I2C3_SCL \
+ IOMUX_PAD(0x03F8, 0x0108, 1 | IOMUX_CONFIG_SION, 0x072C, 1, MX6SL_I2C_PAD_CTRL)
+#define MX6SL_PAD_EPDC_SDCE2__PWM1_PWMO \
+ IOMUX_PAD(0x03F8, 0x0108, 2, 0x0000, 0, NO_PAD_CTRL)
+#define MX6SL_PAD_EPDC_SDCE2__WEIM_WEIM_EB_0 \
+ IOMUX_PAD(0x03F8, 0x0108, 3, 0x0000, 0, NO_PAD_CTRL)
+#define MX6SL_PAD_EPDC_SDCE2__TCON_YDIOUR \
+ IOMUX_PAD(0x03F8, 0x0108, 4, 0x0000, 0, NO_PAD_CTRL)
+#define MX6SL_PAD_EPDC_SDCE2__GPIO_1_29 \
+ IOMUX_PAD(0x03F8, 0x0108, 5, 0x0000, 0, NO_PAD_CTRL)
+#define MX6SL_PAD_EPDC_SDCE2__ANATOP_USBPHY1_TSTO_RX_HS_RXD \
+ IOMUX_PAD(0x03F8, 0x0108, 6, 0x0000, 0, NO_PAD_CTRL)
+#define MX6SL_PAD_EPDC_SDCE2__MMDC_MMDC_DEBUG_17 \
+ IOMUX_PAD(0x03F8, 0x0108, 7, 0x0000, 0, NO_PAD_CTRL)
+
+#define MX6SL_PAD_EPDC_SDCE3__EPDC_SDCE_3 \
+ IOMUX_PAD(0x03FC, 0x010C, 0, 0x0000, 0, NO_PAD_CTRL)
+#define MX6SL_PAD_EPDC_SDCE3__I2C3_SDA \
+ IOMUX_PAD(0x03FC, 0x010C, 1 | IOMUX_CONFIG_SION, 0x0730, 1, MX6SL_I2C_PAD_CTRL)
+#define MX6SL_PAD_EPDC_SDCE3__PWM2_PWMO \
+ IOMUX_PAD(0x03FC, 0x010C, 2, 0x0000, 0, NO_PAD_CTRL)
+#define MX6SL_PAD_EPDC_SDCE3__WEIM_WEIM_EB_1 \
+ IOMUX_PAD(0x03FC, 0x010C, 3, 0x0000, 0, NO_PAD_CTRL)
+#define MX6SL_PAD_EPDC_SDCE3__TCON_YDIODR \
+ IOMUX_PAD(0x03FC, 0x010C, 4, 0x0000, 0, NO_PAD_CTRL)
+#define MX6SL_PAD_EPDC_SDCE3__GPIO_1_30 \
+ IOMUX_PAD(0x03FC, 0x010C, 5, 0x0000, 0, NO_PAD_CTRL)
+#define MX6SL_PAD_EPDC_SDCE3__ANATOP_USBPHY1_TSTO_RX_SQUELCH \
+ IOMUX_PAD(0x03FC, 0x010C, 6, 0x0000, 0, NO_PAD_CTRL)
+#define MX6SL_PAD_EPDC_SDCE3__MMDC_MMDC_DEBUG_16 \
+ IOMUX_PAD(0x03FC, 0x010C, 7, 0x0000, 0, NO_PAD_CTRL)
+
+#define MX6SL_PAD_EPDC_SDCLK__EPDC_SDCLK \
+ IOMUX_PAD(0x0400, 0x0110, 0, 0x0000, 0, NO_PAD_CTRL)
+#define MX6SL_PAD_EPDC_SDCLK__ECSPI2_MOSI \
+ IOMUX_PAD(0x0400, 0x0110, 1, 0x06A4, 1, NO_PAD_CTRL)
+#define MX6SL_PAD_EPDC_SDCLK__I2C2_SCL \
+ IOMUX_PAD(0x0400, 0x0110, 2 | IOMUX_CONFIG_SION, 0x0724, 0, MX6SL_I2C_PAD_CTRL)
+#define MX6SL_PAD_EPDC_SDCLK__CSI_D_8 \
+ IOMUX_PAD(0x0400, 0x0110, 3, 0x0650, 0, NO_PAD_CTRL)
+#define MX6SL_PAD_EPDC_SDCLK__TCON_CL \
+ IOMUX_PAD(0x0400, 0x0110, 4, 0x0000, 0, NO_PAD_CTRL)
+#define MX6SL_PAD_EPDC_SDCLK__GPIO_1_23 \
+ IOMUX_PAD(0x0400, 0x0110, 5, 0x0000, 0, NO_PAD_CTRL)
+#define MX6SL_PAD_EPDC_SDCLK__ANATOP_USBPHY2_TSTO_RX_HS_RXD \
+ IOMUX_PAD(0x0400, 0x0110, 6, 0x0000, 0, NO_PAD_CTRL)
+#define MX6SL_PAD_EPDC_SDCLK__MMDC_MMDC_DEBUG_23 \
+ IOMUX_PAD(0x0400, 0x0110, 7, 0x0000, 0, NO_PAD_CTRL)
+
+#define MX6SL_PAD_EPDC_SDLE__EPDC_SDLE \
+ IOMUX_PAD(0x0404, 0x0114, 0, 0x0000, 0, NO_PAD_CTRL)
+#define MX6SL_PAD_EPDC_SDLE__ECSPI2_MISO \
+ IOMUX_PAD(0x0404, 0x0114, 1, 0x06A0, 1, NO_PAD_CTRL)
+#define MX6SL_PAD_EPDC_SDLE__I2C2_SDA \
+ IOMUX_PAD(0x0404, 0x0114, 2 | IOMUX_CONFIG_SION, 0x0728, 0, MX6SL_I2C_PAD_CTRL)
+#define MX6SL_PAD_EPDC_SDLE__CSI_D_9 \
+ IOMUX_PAD(0x0404, 0x0114, 3, 0x0654, 0, NO_PAD_CTRL)
+#define MX6SL_PAD_EPDC_SDLE__TCON_LD \
+ IOMUX_PAD(0x0404, 0x0114, 4, 0x0000, 0, NO_PAD_CTRL)
+#define MX6SL_PAD_EPDC_SDLE__GPIO_1_24 \
+ IOMUX_PAD(0x0404, 0x0114, 5, 0x0000, 0, NO_PAD_CTRL)
+#define MX6SL_PAD_EPDC_SDLE__ANATOP_USBPHY2_TSTO_RX_SQUELCH \
+ IOMUX_PAD(0x0404, 0x0114, 6, 0x0000, 0, NO_PAD_CTRL)
+#define MX6SL_PAD_EPDC_SDLE__MMDC_MMDC_DEBUG_22 \
+ IOMUX_PAD(0x0404, 0x0114, 7, 0x0000, 0, NO_PAD_CTRL)
+
+#define MX6SL_PAD_EPDC_SDOE__EPDC_SDOE \
+ IOMUX_PAD(0x0408, 0x0118, 0, 0x0000, 0, NO_PAD_CTRL)
+#define MX6SL_PAD_EPDC_SDOE__ECSPI2_SS0 \
+ IOMUX_PAD(0x0408, 0x0118, 1, 0x06A8, 1, NO_PAD_CTRL)
+#define MX6SL_PAD_EPDC_SDOE__TCON_XDIOR \
+ IOMUX_PAD(0x0408, 0x0118, 2, 0x0000, 0, NO_PAD_CTRL)
+#define MX6SL_PAD_EPDC_SDOE__CSI_D_10 \
+ IOMUX_PAD(0x0408, 0x0118, 3, 0x0658, 0, NO_PAD_CTRL)
+#define MX6SL_PAD_EPDC_SDOE__TCON_XDIOL \
+ IOMUX_PAD(0x0408, 0x0118, 4, 0x0000, 0, NO_PAD_CTRL)
+#define MX6SL_PAD_EPDC_SDOE__GPIO_1_25 \
+ IOMUX_PAD(0x0408, 0x0118, 5, 0x0000, 0, NO_PAD_CTRL)
+#define MX6SL_PAD_EPDC_SDOE__ANATOP_USBPHY2_TSTO_PLL_CLK20DIV \
+ IOMUX_PAD(0x0408, 0x0118, 6, 0x0000, 0, NO_PAD_CTRL)
+#define MX6SL_PAD_EPDC_SDOE__MMDC_MMDC_DEBUG_21 \
+ IOMUX_PAD(0x0408, 0x0118, 7, 0x0000, 0, NO_PAD_CTRL)
+
+#define MX6SL_PAD_EPDC_SDSHR__EPDC_SDSHR \
+ IOMUX_PAD(0x040C, 0x011C, 0, 0x0000, 0, NO_PAD_CTRL)
+#define MX6SL_PAD_EPDC_SDSHR__ECSPI2_SCLK \
+ IOMUX_PAD(0x040C, 0x011C, 1, 0x069C, 1, NO_PAD_CTRL)
+#define MX6SL_PAD_EPDC_SDSHR__EPDC_SDCE_4 \
+ IOMUX_PAD(0x040C, 0x011C, 2, 0x0000, 0, NO_PAD_CTRL)
+#define MX6SL_PAD_EPDC_SDSHR__CSI_D_11 \
+ IOMUX_PAD(0x040C, 0x011C, 3, 0x065C, 0, NO_PAD_CTRL)
+#define MX6SL_PAD_EPDC_SDSHR__TCON_XDIOR \
+ IOMUX_PAD(0x040C, 0x011C, 4, 0x0000, 0, NO_PAD_CTRL)
+#define MX6SL_PAD_EPDC_SDSHR__GPIO_1_26 \
+ IOMUX_PAD(0x040C, 0x011C, 5, 0x0000, 0, NO_PAD_CTRL)
+#define MX6SL_PAD_EPDC_SDSHR__ANATOP_USBPHY1_TSTO_RX_DISCON_DET \
+ IOMUX_PAD(0x040C, 0x011C, 6, 0x0000, 0, NO_PAD_CTRL)
+#define MX6SL_PAD_EPDC_SDSHR__MMDC_MMDC_DEBUG_20 \
+ IOMUX_PAD(0x040C, 0x011C, 7, 0x0000, 0, NO_PAD_CTRL)
+
+#define MX6SL_PAD_EPDC_VCOM0__EPDC_VCOM_0 \
+ IOMUX_PAD(0x0410, 0x0120, 0, 0x0000, 0, NO_PAD_CTRL)
+#define MX6SL_PAD_EPDC_VCOM0__AUDMUX_AUD5_RXFS \
+ IOMUX_PAD(0x0410, 0x0120, 1, 0x0608, 0, NO_PAD_CTRL)
+#define MX6SL_PAD_EPDC_VCOM0__UART3_TXD \
+ IOMUX_PAD(0x0410, 0x0120, 2, 0x0000, 0, MX6SL_UART_PAD_CTRL)
+#define MX6SL_PAD_EPDC_VCOM0__UART3_RXD \
+ IOMUX_PAD(0x0410, 0x0120, 2, 0x080C, 4, MX6SL_UART_PAD_CTRL)
+#define MX6SL_PAD_EPDC_VCOM0__WEIM_WEIM_A_24 \
+ IOMUX_PAD(0x0410, 0x0120, 3, 0x0000, 0, NO_PAD_CTRL)
+#define MX6SL_PAD_EPDC_VCOM0__TCON_VCOM_0 \
+ IOMUX_PAD(0x0410, 0x0120, 4, 0x0000, 0, NO_PAD_CTRL)
+#define MX6SL_PAD_EPDC_VCOM0__GPIO_2_3 \
+ IOMUX_PAD(0x0410, 0x0120, 5, 0x0000, 0, NO_PAD_CTRL)
+#define MX6SL_PAD_EPDC_VCOM0__EPDC_SDCE_5 \
+ IOMUX_PAD(0x0410, 0x0120, 6, 0x0000, 0, NO_PAD_CTRL)
+#define MX6SL_PAD_EPDC_VCOM0__MMDC_MMDC_DEBUG_11 \
+ IOMUX_PAD(0x0410, 0x0120, 7, 0x0000, 0, NO_PAD_CTRL)
+
+#define MX6SL_PAD_EPDC_VCOM1__EPDC_VCOM_1 \
+ IOMUX_PAD(0x0414, 0x0124, 0, 0x0000, 0, NO_PAD_CTRL)
+#define MX6SL_PAD_EPDC_VCOM1__AUDMUX_AUD5_RXD \
+ IOMUX_PAD(0x0414, 0x0124, 1, 0x05FC, 0, NO_PAD_CTRL)
+#define MX6SL_PAD_EPDC_VCOM1__UART3_TXD \
+ IOMUX_PAD(0x0414, 0x0124, 2, 0x0000, 0, MX6SL_UART_PAD_CTRL)
+#define MX6SL_PAD_EPDC_VCOM1__UART3_RXD \
+ IOMUX_PAD(0x0414, 0x0124, 2, 0x080C, 5, MX6SL_UART_PAD_CTRL)
+#define MX6SL_PAD_EPDC_VCOM1__WEIM_WEIM_A_25 \
+ IOMUX_PAD(0x0414, 0x0124, 3, 0x0000, 0, NO_PAD_CTRL)
+#define MX6SL_PAD_EPDC_VCOM1__TCON_VCOM_1 \
+ IOMUX_PAD(0x0414, 0x0124, 4, 0x0000, 0, NO_PAD_CTRL)
+#define MX6SL_PAD_EPDC_VCOM1__GPIO_2_4 \
+ IOMUX_PAD(0x0414, 0x0124, 5, 0x0000, 0, NO_PAD_CTRL)
+#define MX6SL_PAD_EPDC_VCOM1__EPDC_SDCE_6 \
+ IOMUX_PAD(0x0414, 0x0124, 6, 0x0000, 0, NO_PAD_CTRL)
+#define MX6SL_PAD_EPDC_VCOM1__MMDC_MMDC_DEBUG_10 \
+ IOMUX_PAD(0x0414, 0x0124, 7, 0x0000, 0, NO_PAD_CTRL)
+
+#define MX6SL_PAD_FEC_CRS_DV__FEC_RX_DV \
+ IOMUX_PAD(0x0418, 0x0128, 0, 0x0704, 1, MX6SL_ENET_PAD_CTRL)
+#define MX6SL_PAD_FEC_CRS_DV__USDHC4_DAT1 \
+ IOMUX_PAD(0x0418, 0x0128, 1, 0x0860, 1, MX6SL_USDHC_PAD_CTRL)
+#define MX6SL_PAD_FEC_CRS_DV__AUDMUX_AUD6_TXC \
+ IOMUX_PAD(0x0418, 0x0128, 2, 0x0624, 0, NO_PAD_CTRL)
+#define MX6SL_PAD_FEC_CRS_DV__ECSPI4_MISO \
+ IOMUX_PAD(0x0418, 0x0128, 3, 0x06D4, 1, NO_PAD_CTRL)
+#define MX6SL_PAD_FEC_CRS_DV__GPT_CMPOUT2 \
+ IOMUX_PAD(0x0418, 0x0128, 4, 0x0000, 0, NO_PAD_CTRL)
+#define MX6SL_PAD_FEC_CRS_DV__GPIO_4_25 \
+ IOMUX_PAD(0x0418, 0x0128, 5, 0x0000, 0, NO_PAD_CTRL)
+#define MX6SL_PAD_FEC_CRS_DV__KITTEN_TRACE_31 \
+ IOMUX_PAD(0x0418, 0x0128, 6, 0x0000, 0, NO_PAD_CTRL)
+#define MX6SL_PAD_FEC_CRS_DV__PL301_SIM_MX6SL_PER1_HADDR_3 \
+ IOMUX_PAD(0x0418, 0x0128, 7, 0x0000, 0, NO_PAD_CTRL)
+
+#define MX6SL_PAD_FEC_MDC__FEC_MDC \
+ IOMUX_PAD(0x041C, 0x012C, 0, 0x0000, 0, MX6SL_ENET_PAD_CTRL)
+#define MX6SL_PAD_FEC_MDC__USDHC4_DAT4 \
+ IOMUX_PAD(0x041C, 0x012C, 1, 0x086C, 0, MX6SL_USDHC_PAD_CTRL)
+#define MX6SL_PAD_FEC_MDC__AUDMUX_AUDIO_CLK_OUT \
+ IOMUX_PAD(0x041C, 0x012C, 2, 0x0000, 0, NO_PAD_CTRL)
+#define MX6SL_PAD_FEC_MDC__USDHC1_RST \
+ IOMUX_PAD(0x041C, 0x012C, 3, 0x0000, 0, MX6SL_USDHC_PAD_CTRL)
+#define MX6SL_PAD_FEC_MDC__USDHC3_RST \
+ IOMUX_PAD(0x041C, 0x012C, 4, 0x0000, 0, MX6SL_USDHC_PAD_CTRL)
+#define MX6SL_PAD_FEC_MDC__GPIO_4_23 \
+ IOMUX_PAD(0x041C, 0x012C, 5, 0x0000, 0, NO_PAD_CTRL)
+#define MX6SL_PAD_FEC_MDC__KITTEN_TRACE_29 \
+ IOMUX_PAD(0x041C, 0x012C, 6, 0x0000, 0, NO_PAD_CTRL)
+#define MX6SL_PAD_FEC_MDC__PL301_SIM_MX6SL_PER1_HADDR_8 \
+ IOMUX_PAD(0x041C, 0x012C, 7, 0x0000, 0, NO_PAD_CTRL)
+
+#define MX6SL_PAD_FEC_MDIO__FEC_MDIO \
+ IOMUX_PAD(0x0420, 0x0130, 0, 0x06F4, 1, MX6SL_ENET_PAD_CTRL)
+#define MX6SL_PAD_FEC_MDIO__USDHC4_CLK \
+ IOMUX_PAD(0x0420, 0x0130, 1, 0x0850, 1, MX6SL_USDHC_PAD_CTRL)
+#define MX6SL_PAD_FEC_MDIO__AUDMUX_AUD6_RXFS \
+ IOMUX_PAD(0x0420, 0x0130, 2, 0x0620, 0, NO_PAD_CTRL)
+#define MX6SL_PAD_FEC_MDIO__ECSPI4_SS0 \
+ IOMUX_PAD(0x0420, 0x0130, 3, 0x06DC, 1, NO_PAD_CTRL)
+#define MX6SL_PAD_FEC_MDIO__GPT_CAPIN1 \
+ IOMUX_PAD(0x0420, 0x0130, 4, 0x0710, 0, NO_PAD_CTRL)
+#define MX6SL_PAD_FEC_MDIO__GPIO_4_20 \
+ IOMUX_PAD(0x0420, 0x0130, 5, 0x0000, 0, NO_PAD_CTRL)
+#define MX6SL_PAD_FEC_MDIO__KITTEN_TRACE_26 \
+ IOMUX_PAD(0x0420, 0x0130, 6, 0x0000, 0, NO_PAD_CTRL)
+#define MX6SL_PAD_FEC_MDIO__PL301_SIM_MX6SL_PER1_HADDR_15 \
+ IOMUX_PAD(0x0420, 0x0130, 7, 0x0000, 0, NO_PAD_CTRL)
+
+#define MX6SL_PAD_FEC_REF_CLK__FEC_REF_OUT \
+ IOMUX_PAD(0x0424, 0x0134, 0x10, 0x0000, 0, MX6SL_ENET_PAD_CTRL)
+#define MX6SL_PAD_FEC_REF_CLK__USDHC4_RST \
+ IOMUX_PAD(0x0424, 0x0134, 1, 0x0000, 0, MX6SL_USDHC_PAD_CTRL)
+#define MX6SL_PAD_FEC_REF_CLK__WDOG1_WDOG_B \
+ IOMUX_PAD(0x0424, 0x0134, 2, 0x0000, 0, NO_PAD_CTRL)
+#define MX6SL_PAD_FEC_REF_CLK__PWM4_PWMO \
+ IOMUX_PAD(0x0424, 0x0134, 3, 0x0000, 0, NO_PAD_CTRL)
+#define MX6SL_PAD_FEC_REF_CLK__CCM_PMIC_RDY \
+ IOMUX_PAD(0x0424, 0x0134, 4, 0x062C, 0, NO_PAD_CTRL)
+#define MX6SL_PAD_FEC_REF_CLK__GPIO_4_26 \
+ IOMUX_PAD(0x0424, 0x0134, 5, 0x0000, 0, NO_PAD_CTRL)
+#define MX6SL_PAD_FEC_REF_CLK__SPDIF_SPDIF_EXT_CLK \
+ IOMUX_PAD(0x0424, 0x0134, 6, 0x07F4, 2, NO_PAD_CTRL)
+#define MX6SL_PAD_FEC_REF_CLK__PL301_SIM_MX6SL_PER1_HADDR_0 \
+ IOMUX_PAD(0x0424, 0x0134, 7, 0x0000, 0, NO_PAD_CTRL)
+
+#define MX6SL_PAD_FEC_RX_ER__GPIO_4_19 \
+ IOMUX_PAD(0x0428, 0x0138, 5, 0x0000, 0, MX6SL_HP_DET_PAD_CTRL)
+#define MX6SL_PAD_FEC_RX_ER__KITTEN_TRACE_25 \
+ IOMUX_PAD(0x0428, 0x0138, 6, 0x0000, 0, NO_PAD_CTRL)
+#define MX6SL_PAD_FEC_RX_ER__PL301_SIM_MX6SL_PER1_HADDR_5 \
+ IOMUX_PAD(0x0428, 0x0138, 7, 0x0000, 0, NO_PAD_CTRL)
+#define MX6SL_PAD_FEC_RX_ER__FEC_RX_ER \
+ IOMUX_PAD(0x0428, 0x0138, 0, 0x0708, 1, MX6SL_ENET_PAD_CTRL)
+#define MX6SL_PAD_FEC_RX_ER__USDHC4_DAT0 \
+ IOMUX_PAD(0x0428, 0x0138, 1, 0x085C, 1, MX6SL_USDHC_PAD_CTRL)
+#define MX6SL_PAD_FEC_RX_ER__AUDMUX_AUD6_RXD \
+ IOMUX_PAD(0x0428, 0x0138, 2, 0x0614, 0, NO_PAD_CTRL)
+#define MX6SL_PAD_FEC_RX_ER__ECSPI4_MOSI \
+ IOMUX_PAD(0x0428, 0x0138, 3, 0x06D8, 1, NO_PAD_CTRL)
+#define MX6SL_PAD_FEC_RX_ER__GPT_CMPOUT1 \
+ IOMUX_PAD(0x0428, 0x0138, 4, 0x0000, 0, NO_PAD_CTRL)
+
+#define MX6SL_PAD_FEC_RXD0__FEC_RDATA_0 \
+ IOMUX_PAD(0x042C, 0x013C, 0, 0x06F8, 0, MX6SL_ENET_PAD_CTRL)
+#define MX6SL_PAD_FEC_RXD0__USDHC4_DAT5 \
+ IOMUX_PAD(0x042C, 0x013C, 1, 0x0870, 0, MX6SL_USDHC_PAD_CTRL)
+#define MX6SL_PAD_FEC_RXD0__ANATOP_USBOTG1_ID \
+ IOMUX_PAD(0x042C, 0x013C, 2, 0x05DC, 1, NO_PAD_CTRL)
+#define MX6SL_PAD_FEC_RXD0__USDHC1_VSELECT \
+ IOMUX_PAD(0x042C, 0x013C, 3, 0x0000, 0, MX6SL_USDHC_PAD_CTRL)
+#define MX6SL_PAD_FEC_RXD0__USDHC3_VSELECT \
+ IOMUX_PAD(0x042C, 0x013C, 4, 0x0000, 0, MX6SL_USDHC_PAD_CTRL)
+#define MX6SL_PAD_FEC_RXD0__GPIO_4_17 \
+ IOMUX_PAD(0x042C, 0x013C, 5, 0x0000, 0, NO_PAD_CTRL)
+#define MX6SL_PAD_FEC_RXD0__KITTEN_TRACE_24 \
+ IOMUX_PAD(0x042C, 0x013C, 6, 0x0000, 0, NO_PAD_CTRL)
+#define MX6SL_PAD_FEC_RXD0__PL301_SIM_MX6SL_PER1_HADDR_7 \
+ IOMUX_PAD(0x042C, 0x013C, 7, 0x0000, 0, NO_PAD_CTRL)
+
+#define MX6SL_PAD_FEC_RXD1__FEC_RDATA_1 \
+ IOMUX_PAD(0x0430, 0x0140, 0, 0x06FC, 1, MX6SL_ENET_PAD_CTRL)
+#define MX6SL_PAD_FEC_RXD1__USDHC4_DAT2 \
+ IOMUX_PAD(0x0430, 0x0140, 1, 0x0864, 1, MX6SL_USDHC_PAD_CTRL)
+#define MX6SL_PAD_FEC_RXD1__AUDMUX_AUD6_TXFS \
+ IOMUX_PAD(0x0430, 0x0140, 2, 0x0628, 0, NO_PAD_CTRL)
+#define MX6SL_PAD_FEC_RXD1__ECSPI4_SS1 \
+ IOMUX_PAD(0x0430, 0x0140, 3, 0x06E0, 1, NO_PAD_CTRL)
+#define MX6SL_PAD_FEC_RXD1__GPT_CMPOUT3 \
+ IOMUX_PAD(0x0430, 0x0140, 4, 0x0000, 0, NO_PAD_CTRL)
+#define MX6SL_PAD_FEC_RXD1__GPIO_4_18 \
+ IOMUX_PAD(0x0430, 0x0140, 5, 0x0000, 0, NO_PAD_CTRL)
+#define MX6SL_PAD_FEC_RXD1__FEC_COL \
+ IOMUX_PAD(0x0430, 0x0140, 6, 0x06F0, 0, NO_PAD_CTRL)
+#define MX6SL_PAD_FEC_RXD1__PL301_SIM_MX6SL_PER1_HADDR_9 \
+ IOMUX_PAD(0x0430, 0x0140, 7, 0x0000, 0, NO_PAD_CTRL)
+
+#define MX6SL_PAD_FEC_TX_CLK__FEC_TX_CLK \
+ IOMUX_PAD(0x0434, 0x0144, 0, 0x070C, 1, NO_PAD_CTRL)
+#define MX6SL_PAD_FEC_TX_CLK__USDHC4_CMD \
+ IOMUX_PAD(0x0434, 0x0144, 1, 0x0858, 1, MX6SL_USDHC_PAD_CTRL)
+#define MX6SL_PAD_FEC_TX_CLK__AUDMUX_AUD6_RXC \
+ IOMUX_PAD(0x0434, 0x0144, 2, 0x061C, 0, NO_PAD_CTRL)
+#define MX6SL_PAD_FEC_TX_CLK__ECSPI4_SCLK \
+ IOMUX_PAD(0x0434, 0x0144, 3, 0x06D0, 1, NO_PAD_CTRL)
+#define MX6SL_PAD_FEC_TX_CLK__GPT_CAPIN2 \
+ IOMUX_PAD(0x0434, 0x0144, 4, 0x0714, 0, NO_PAD_CTRL)
+#define MX6SL_PAD_FEC_TX_CLK__GPIO_4_21 \
+ IOMUX_PAD(0x0434, 0x0144, 5, 0x0000, 0, NO_PAD_CTRL)
+#define MX6SL_PAD_FEC_TX_CLK__KITTEN_TRACE_27 \
+ IOMUX_PAD(0x0434, 0x0144, 6, 0x0000, 0, NO_PAD_CTRL)
+#define MX6SL_PAD_FEC_TX_CLK__PL301_SIM_MX6SL_PER1_HADDR_4 \
+ IOMUX_PAD(0x0434, 0x0144, 7, 0x0000, 0, NO_PAD_CTRL)
+
+#define MX6SL_PAD_FEC_TX_EN__FEC_TX_EN \
+ IOMUX_PAD(0x0438, 0x0148, 0, 0x0000, 0, MX6SL_ENET_PAD_CTRL)
+#define MX6SL_PAD_FEC_TX_EN__USDHC4_DAT6 \
+ IOMUX_PAD(0x0438, 0x0148, 1, 0x0874, 0, MX6SL_USDHC_PAD_CTRL)
+#define MX6SL_PAD_FEC_TX_EN__SPDIF_IN1 \
+ IOMUX_PAD(0x0438, 0x0148, 2, 0x07F0, 0, NO_PAD_CTRL)
+#define MX6SL_PAD_FEC_TX_EN__USDHC1_WP \
+ IOMUX_PAD(0x0438, 0x0148, 3, 0x082C, 1, MX6SL_USDHC_PAD_CTRL)
+#define MX6SL_PAD_FEC_TX_EN__USDHC3_WP \
+ IOMUX_PAD(0x0438, 0x0148, 4, 0x084C, 1, MX6SL_USDHC_PAD_CTRL)
+#define MX6SL_PAD_FEC_TX_EN__GPIO_4_22 \
+ IOMUX_PAD(0x0438, 0x0148, 5, 0x0000, 0, NO_PAD_CTRL)
+#define MX6SL_PAD_FEC_TX_EN__KITTEN_TRACE_28 \
+ IOMUX_PAD(0x0438, 0x0148, 6, 0x0000, 0, NO_PAD_CTRL)
+#define MX6SL_PAD_FEC_TX_EN__PL301_SIM_MX6SL_PER1_HADDR_1 \
+ IOMUX_PAD(0x0438, 0x0148, 7, 0x0000, 0, NO_PAD_CTRL)
+
+#define MX6SL_PAD_FEC_TXD0__FEC_TDATA_0 \
+ IOMUX_PAD(0x043C, 0x014C, 0, 0x0000, 0, MX6SL_ENET_PAD_CTRL)
+#define MX6SL_PAD_FEC_TXD0__USDHC4_DAT3 \
+ IOMUX_PAD(0x043C, 0x014C, 1, 0x0868, 1, MX6SL_USDHC_PAD_CTRL)
+#define MX6SL_PAD_FEC_TXD0__AUDMUX_AUD6_TXD \
+ IOMUX_PAD(0x043C, 0x014C, 2, 0x0618, 0, NO_PAD_CTRL)
+#define MX6SL_PAD_FEC_TXD0__ECSPI4_SS2 \
+ IOMUX_PAD(0x043C, 0x014C, 3, 0x06E4, 1, NO_PAD_CTRL)
+#define MX6SL_PAD_FEC_TXD0__GPT_CLKIN \
+ IOMUX_PAD(0x043C, 0x014C, 4, 0x0718, 0, NO_PAD_CTRL)
+#define MX6SL_PAD_FEC_TXD0__GPIO_4_24 \
+ IOMUX_PAD(0x043C, 0x014C, 5, 0x0000, 0, NO_PAD_CTRL)
+#define MX6SL_PAD_FEC_TXD0__KITTEN_TRACE_30 \
+ IOMUX_PAD(0x043C, 0x014C, 6, 0x0000, 0, NO_PAD_CTRL)
+#define MX6SL_PAD_FEC_TXD0__PL301_SIM_MX6SL_PER1_HADDR_2 \
+ IOMUX_PAD(0x043C, 0x014C, 7, 0x0000, 0, NO_PAD_CTRL)
+
+#define MX6SL_PAD_FEC_TXD1__FEC_TDATA_1 \
+ IOMUX_PAD(0x0440, 0x0150, 0, 0x0000, 0, MX6SL_ENET_PAD_CTRL)
+#define MX6SL_PAD_FEC_TXD1__USDHC4_DAT7 \
+ IOMUX_PAD(0x0440, 0x0150, 1, 0x0878, 0, MX6SL_USDHC_PAD_CTRL)
+#define MX6SL_PAD_FEC_TXD1__SPDIF_OUT1 \
+ IOMUX_PAD(0x0440, 0x0150, 2, 0x0000, 0, NO_PAD_CTRL)
+#define MX6SL_PAD_FEC_TXD1__USDHC1_CD \
+ IOMUX_PAD(0x0440, 0x0150, 3, 0x0828, 1, MX6SL_USDHC_PAD_CTRL)
+#define MX6SL_PAD_FEC_TXD1__USDHC3_CD \
+ IOMUX_PAD(0x0440, 0x0150, 4, 0x0838, 1, MX6SL_USDHC_PAD_CTRL)
+#define MX6SL_PAD_FEC_TXD1__GPIO_4_16 \
+ IOMUX_PAD(0x0440, 0x0150, 5, 0x0000, 0, NO_PAD_CTRL)
+#define MX6SL_PAD_FEC_TXD1__FEC_RX_CLK \
+ IOMUX_PAD(0x0440, 0x0150, 6, 0x0700, 0, NO_PAD_CTRL)
+#define MX6SL_PAD_FEC_TXD1__PL301_SIM_MX6SL_PER1_HADDR_6 \
+ IOMUX_PAD(0x0440, 0x0150, 7, 0x0000, 0, NO_PAD_CTRL)
+
+#define MX6SL_PAD_HSIC_DAT__USB_H_DATA \
+ IOMUX_PAD(0x0444, 0x0154, 0, 0x0000, 0, MX6SL_USB_HSIC_PAD_CTRL)
+#define MX6SL_PAD_HSIC_DAT__I2C1_SCL \
+ IOMUX_PAD(0x0444, 0x0154, 1 | IOMUX_CONFIG_SION, 0x071C, 1, MX6SL_I2C_PAD_CTRL)
+#define MX6SL_PAD_HSIC_DAT__PWM1_PWMO \
+ IOMUX_PAD(0x0444, 0x0154, 2, 0x0000, 0, NO_PAD_CTRL)
+#define MX6SL_PAD_HSIC_DAT__ANATOP_ANATOP_24M_OUT \
+ IOMUX_PAD(0x0444, 0x0154, 3, 0x0000, 0, NO_PAD_CTRL)
+#define MX6SL_PAD_HSIC_DAT__OSC32K_32K_OUT \
+ IOMUX_PAD(0x0444, 0x0154, 4, 0x0000, 0, NO_PAD_CTRL)
+#define MX6SL_PAD_HSIC_DAT__GPIO_3_19 \
+ IOMUX_PAD(0x0444, 0x0154, 5, 0x0000, 0, NO_PAD_CTRL)
+
+#define MX6SL_PAD_HSIC_STROBE__USB_H_STROBE \
+ IOMUX_PAD(0x0448, 0x0158, 0, 0x0000, 0, MX6SL_USB_HSIC_PAD_CTRL)
+#define MX6SL_PAD_HSIC_STROBE__USB_H_STROBE_START \
+ IOMUX_PAD(0x0448, 0x0158, 0, 0x0000, 0, MX6SL_USB_HSIC_PAD_CTRL | PAD_CTL_PUS_47K_UP)
+#define MX6SL_PAD_HSIC_STROBE__I2C1_SDA \
+ IOMUX_PAD(0x0448, 0x0158, 1 | IOMUX_CONFIG_SION, 0x0720, 1, MX6SL_I2C_PAD_CTRL)
+#define MX6SL_PAD_HSIC_STROBE__PWM2_PWMO \
+ IOMUX_PAD(0x0448, 0x0158, 2, 0x0000, 0, NO_PAD_CTRL)
+#define MX6SL_PAD_HSIC_STROBE__ANATOP_ANATOP_32K_OUT \
+ IOMUX_PAD(0x0448, 0x0158, 3, 0x0000, 0, NO_PAD_CTRL)
+#define MX6SL_PAD_HSIC_STROBE__GPIO_3_20 \
+ IOMUX_PAD(0x0448, 0x0158, 5, 0x0000, 0, NO_PAD_CTRL)
+
+#define MX6SL_PAD_I2C1_SCL__I2C1_SCL \
+ IOMUX_PAD(0x044C, 0x015C, 0 | IOMUX_CONFIG_SION, 0x071C, 2, MX6SL_I2C_PAD_CTRL)
+#define MX6SL_PAD_I2C1_SCL__UART1_CTS \
+ IOMUX_PAD(0x044C, 0x015C, 1, 0x0000, 0, MX6SL_UART_PAD_CTRL)
+#define MX6SL_PAD_I2C1_SCL__UART1_RTS \
+ IOMUX_PAD(0x044C, 0x015C, 1, 0x07F8, 0, MX6SL_UART_PAD_CTRL)
+#define MX6SL_PAD_I2C1_SCL__ECSPI3_SS2 \
+ IOMUX_PAD(0x044C, 0x015C, 2, 0x06C8, 1, NO_PAD_CTRL)
+#define MX6SL_PAD_I2C1_SCL__FEC_RDATA_0 \
+ IOMUX_PAD(0x044C, 0x015C, 3, 0x06F8, 1, NO_PAD_CTRL)
+#define MX6SL_PAD_I2C1_SCL__USDHC3_RST \
+ IOMUX_PAD(0x044C, 0x015C, 4, 0x0000, 0, MX6SL_USDHC_PAD_CTRL)
+#define MX6SL_PAD_I2C1_SCL__GPIO_3_12 \
+ IOMUX_PAD(0x044C, 0x015C, 5, 0x0000, 0, NO_PAD_CTRL)
+#define MX6SL_PAD_I2C1_SCL__ECSPI1_SS1 \
+ IOMUX_PAD(0x044C, 0x015C, 6, 0x0690, 0, NO_PAD_CTRL)
+#define MX6SL_PAD_I2C1_SCL__PL301_SIM_MX6SL_PER1_HSIZE_0 \
+ IOMUX_PAD(0x044C, 0x015C, 7, 0x0000, 0, NO_PAD_CTRL)
+
+#define MX6SL_PAD_I2C1_SDA__I2C1_SDA \
+ IOMUX_PAD(0x0450, 0x0160, 0 | IOMUX_CONFIG_SION, 0x0720, 2, MX6SL_I2C_PAD_CTRL)
+#define MX6SL_PAD_I2C1_SDA__UART1_CTS \
+ IOMUX_PAD(0x0450, 0x0160, 1, 0x0000, 0, MX6SL_UART_PAD_CTRL)
+#define MX6SL_PAD_I2C1_SDA__UART1_RTS \
+ IOMUX_PAD(0x0450, 0x0160, 1, 0x07F8, 1, MX6SL_UART_PAD_CTRL)
+#define MX6SL_PAD_I2C1_SDA__ECSPI3_SS3 \
+ IOMUX_PAD(0x0450, 0x0160, 2, 0x06CC, 1, NO_PAD_CTRL)
+#define MX6SL_PAD_I2C1_SDA__FEC_TX_EN \
+ IOMUX_PAD(0x0450, 0x0160, 3, 0x0000, 0, NO_PAD_CTRL)
+#define MX6SL_PAD_I2C1_SDA__USDHC3_VSELECT \
+ IOMUX_PAD(0x0450, 0x0160, 4, 0x0000, 0, MX6SL_USDHC_PAD_CTRL)
+#define MX6SL_PAD_I2C1_SDA__GPIO_3_13 \
+ IOMUX_PAD(0x0450, 0x0160, 5, 0x0000, 0, NO_PAD_CTRL)
+#define MX6SL_PAD_I2C1_SDA__ECSPI1_SS2 \
+ IOMUX_PAD(0x0450, 0x0160, 6, 0x0694, 0, NO_PAD_CTRL)
+#define MX6SL_PAD_I2C1_SDA__PL301_SIM_MX6SL_PER1_HSIZE_1 \
+ IOMUX_PAD(0x0450, 0x0160, 7, 0x0000, 0, NO_PAD_CTRL)
+
+#define MX6SL_PAD_I2C2_SCL__I2C2_SCL \
+ IOMUX_PAD(0x0454, 0x0164, 0 | IOMUX_CONFIG_SION, 0x0724, 1, MX6SL_I2C_PAD_CTRL)
+#define MX6SL_PAD_I2C2_SCL__AUDMUX_AUD4_RXFS \
+ IOMUX_PAD(0x0454, 0x0164, 1, 0x05F0, 0, NO_PAD_CTRL)
+#define MX6SL_PAD_I2C2_SCL__SPDIF_IN1 \
+ IOMUX_PAD(0x0454, 0x0164, 2, 0x07F0, 1, NO_PAD_CTRL)
+#define MX6SL_PAD_I2C2_SCL__FEC_TDATA_1 \
+ IOMUX_PAD(0x0454, 0x0164, 3, 0x0000, 0, NO_PAD_CTRL)
+#define MX6SL_PAD_I2C2_SCL__USDHC3_WP \
+ IOMUX_PAD(0x0454, 0x0164, 4, 0x084C, 2, MX6SL_USDHC_PAD_CTRL)
+#define MX6SL_PAD_I2C2_SCL__GPIO_3_14 \
+ IOMUX_PAD(0x0454, 0x0164, 5, 0x0000, 0, NO_PAD_CTRL)
+#define MX6SL_PAD_I2C2_SCL__ECSPI1_RDY \
+ IOMUX_PAD(0x0454, 0x0164, 6, 0x0680, 0, NO_PAD_CTRL)
+#define MX6SL_PAD_I2C2_SCL__PL301_SIM_MX6SL_PER1_HSIZE_2 \
+ IOMUX_PAD(0x0454, 0x0164, 7, 0x0000, 0, NO_PAD_CTRL)
+
+#define MX6SL_PAD_I2C2_SDA__I2C2_SDA \
+ IOMUX_PAD(0x0458, 0x0168, 0 | IOMUX_CONFIG_SION, 0x0728, 1, MX6SL_I2C_PAD_CTRL)
+#define MX6SL_PAD_I2C2_SDA__AUDMUX_AUD4_RXC \
+ IOMUX_PAD(0x0458, 0x0168, 1, 0x05EC, 0, NO_PAD_CTRL)
+#define MX6SL_PAD_I2C2_SDA__SPDIF_OUT1 \
+ IOMUX_PAD(0x0458, 0x0168, 2, 0x0000, 0, NO_PAD_CTRL)
+#define MX6SL_PAD_I2C2_SDA__FEC_REF_OUT \
+ IOMUX_PAD(0x0458, 0x0168, 3, 0x0000, 0, NO_PAD_CTRL)
+#define MX6SL_PAD_I2C2_SDA__USDHC3_CD \
+ IOMUX_PAD(0x0458, 0x0168, 4, 0x0838, 2, MX6SL_USDHC_PAD_CTRL)
+#define MX6SL_PAD_I2C2_SDA__GPIO_3_15 \
+ IOMUX_PAD(0x0458, 0x0168, 5, 0x0000, 0, NO_PAD_CTRL)
+#define MX6SL_PAD_I2C2_SDA__ANATOP_ANATOP_TESTO_0 \
+ IOMUX_PAD(0x0458, 0x0168, 6, 0x0000, 0, NO_PAD_CTRL)
+#define MX6SL_PAD_I2C2_SDA__PL301_SIM_MX6SL_PER1_HWRITE \
+ IOMUX_PAD(0x0458, 0x0168, 7, 0x0000, 0, NO_PAD_CTRL)
+
+#define MX6SL_PAD_JTAG_MOD__SJC_MOD \
+ IOMUX_PAD(0x045C, NO_MUX_I, 0, 0x0000, 0, NO_PAD_CTRL)
+
+#define MX6SL_PAD_JTAG_TCK__SJC_TCK \
+ IOMUX_PAD(0x0460, NO_MUX_I, 0, 0x0000, 0, NO_PAD_CTRL)
+
+#define MX6SL_PAD_JTAG_TDI__SJC_TDI \
+ IOMUX_PAD(0x0464, NO_MUX_I, 0, 0x0000, 0, NO_PAD_CTRL)
+
+#define MX6SL_PAD_JTAG_TDO__SJC_TDO \
+ IOMUX_PAD(0x0468, NO_MUX_I, 0, 0x0000, 0, NO_PAD_CTRL)
+
+#define MX6SL_PAD_JTAG_TMS__SJC_TMS \
+ IOMUX_PAD(0x046C, NO_MUX_I, 0, 0x0000, 0, NO_PAD_CTRL)
+
+#define MX6SL_PAD_JTAG_TRSTB__SJC_TRSTB \
+ IOMUX_PAD(0x0470, NO_MUX_I, 0, 0x0000, 0, NO_PAD_CTRL)
+
+#define MX6SL_PAD_KEY_COL0__KPP_COL_0 \
+ IOMUX_PAD(0x0474, 0x016C, 0, 0x0734, 0, NO_PAD_CTRL)
+#define MX6SL_PAD_KEY_COL0__I2C2_SCL \
+ IOMUX_PAD(0x0474, 0x016C, 1 | IOMUX_CONFIG_SION, 0x0724, 2, MX6SL_I2C_PAD_CTRL)
+#define MX6SL_PAD_KEY_COL0__LCDIF_DAT_0 \
+ IOMUX_PAD(0x0474, 0x016C, 2, 0x0778, 0, NO_PAD_CTRL)
+#define MX6SL_PAD_KEY_COL0__WEIM_WEIM_DA_A_0 \
+ IOMUX_PAD(0x0474, 0x016C, 3, 0x0000, 0, NO_PAD_CTRL)
+#define MX6SL_PAD_KEY_COL0__USDHC1_CD \
+ IOMUX_PAD(0x0474, 0x016C, 4, 0x0828, 2, MX6SL_USDHC_PAD_CTRL)
+#define MX6SL_PAD_KEY_COL0__GPIO_3_24 \
+ IOMUX_PAD(0x0474, 0x016C, 5, 0x0000, 0, NO_PAD_CTRL)
+#define MX6SL_PAD_KEY_COL0__MSHC_SCLK \
+ IOMUX_PAD(0x0474, 0x016C, 6, 0x07E8, 0, NO_PAD_CTRL)
+#define MX6SL_PAD_KEY_COL0__TPSMP_HDATA_0 \
+ IOMUX_PAD(0x0474, 0x016C, 7, 0x0000, 0, NO_PAD_CTRL)
+
+#define MX6SL_PAD_KEY_COL1__KPP_COL_1 \
+ IOMUX_PAD(0x0478, 0x0170, 0, 0x0738, 0, NO_PAD_CTRL)
+#define MX6SL_PAD_KEY_COL1__ECSPI4_MOSI \
+ IOMUX_PAD(0x0478, 0x0170, 1, 0x06D8, 2, NO_PAD_CTRL)
+#define MX6SL_PAD_KEY_COL1__LCDIF_DAT_2 \
+ IOMUX_PAD(0x0478, 0x0170, 2, 0x0780, 0, NO_PAD_CTRL)
+#define MX6SL_PAD_KEY_COL1__WEIM_WEIM_DA_A_2 \
+ IOMUX_PAD(0x0478, 0x0170, 3, 0x0000, 0, NO_PAD_CTRL)
+#define MX6SL_PAD_KEY_COL1__USDHC3_DAT4 \
+ IOMUX_PAD(0x0478, 0x0170, 4, 0x083C, 0, MX6SL_USDHC_PAD_CTRL)
+#define MX6SL_PAD_KEY_COL1__GPIO_3_26 \
+ IOMUX_PAD(0x0478, 0x0170, 5, 0x0000, 0, NO_PAD_CTRL)
+#define MX6SL_PAD_KEY_COL1__MSHC_DATA_0 \
+ IOMUX_PAD(0x0478, 0x0170, 6, 0x07D8, 0, NO_PAD_CTRL)
+#define MX6SL_PAD_KEY_COL1__TPSMP_HDATA_2 \
+ IOMUX_PAD(0x0478, 0x0170, 7, 0x0000, 0, NO_PAD_CTRL)
+
+#define MX6SL_PAD_KEY_COL2__KPP_COL_2 \
+ IOMUX_PAD(0x047C, 0x0174, 0, 0x073C, 0, NO_PAD_CTRL)
+#define MX6SL_PAD_KEY_COL2__ECSPI4_SS0 \
+ IOMUX_PAD(0x047C, 0x0174, 1, 0x06DC, 2, NO_PAD_CTRL)
+#define MX6SL_PAD_KEY_COL2__LCDIF_DAT_4 \
+ IOMUX_PAD(0x047C, 0x0174, 2, 0x0788, 0, NO_PAD_CTRL)
+#define MX6SL_PAD_KEY_COL2__WEIM_WEIM_DA_A_4 \
+ IOMUX_PAD(0x047C, 0x0174, 3, 0x0000, 0, NO_PAD_CTRL)
+#define MX6SL_PAD_KEY_COL2__USDHC3_DAT6 \
+ IOMUX_PAD(0x047C, 0x0174, 4, 0x0844, 0, MX6SL_USDHC_PAD_CTRL)
+#define MX6SL_PAD_KEY_COL2__GPIO_3_28 \
+ IOMUX_PAD(0x047C, 0x0174, 5, 0x0000, 0, NO_PAD_CTRL)
+#define MX6SL_PAD_KEY_COL2__MSHC_DATA_2 \
+ IOMUX_PAD(0x047C, 0x0174, 6, 0x07E0, 0, NO_PAD_CTRL)
+#define MX6SL_PAD_KEY_COL2__TPSMP_HDATA_4 \
+ IOMUX_PAD(0x047C, 0x0174, 7, 0x0000, 0, NO_PAD_CTRL)
+
+#define MX6SL_PAD_KEY_COL3__KPP_COL_3 \
+ IOMUX_PAD(0x0480, 0x0178, 0, 0x0740, 0, NO_PAD_CTRL)
+#define MX6SL_PAD_KEY_COL3__AUDMUX_AUD6_RXFS \
+ IOMUX_PAD(0x0480, 0x0178, 1, 0x0620, 1, NO_PAD_CTRL)
+#define MX6SL_PAD_KEY_COL3__LCDIF_DAT_6 \
+ IOMUX_PAD(0x0480, 0x0178, 2, 0x0790, 0, NO_PAD_CTRL)
+#define MX6SL_PAD_KEY_COL3__WEIM_WEIM_DA_A_6 \
+ IOMUX_PAD(0x0480, 0x0178, 3, 0x0000, 0, NO_PAD_CTRL)
+#define MX6SL_PAD_KEY_COL3__USDHC4_DAT6 \
+ IOMUX_PAD(0x0480, 0x0178, 4, 0x0874, 1, MX6SL_USDHC_PAD_CTRL)
+#define MX6SL_PAD_KEY_COL3__GPIO_3_30 \
+ IOMUX_PAD(0x0480, 0x0178, 5, 0x0000, 0, NO_PAD_CTRL)
+#define MX6SL_PAD_KEY_COL3__USDHC1_RST \
+ IOMUX_PAD(0x0480, 0x0178, 6, 0x0000, 0, MX6SL_USDHC_PAD_CTRL)
+#define MX6SL_PAD_KEY_COL3__TPSMP_HDATA_6 \
+ IOMUX_PAD(0x0480, 0x0178, 7, 0x0000, 0, NO_PAD_CTRL)
+
+#define MX6SL_PAD_KEY_COL4__KPP_COL_4 \
+ IOMUX_PAD(0x0484, 0x017C, 0, 0x0744, 0, NO_PAD_CTRL)
+#define MX6SL_PAD_KEY_COL4__AUDMUX_AUD6_RXD \
+ IOMUX_PAD(0x0484, 0x017C, 1, 0x0614, 1, NO_PAD_CTRL)
+#define MX6SL_PAD_KEY_COL4__LCDIF_DAT_8 \
+ IOMUX_PAD(0x0484, 0x017C, 2, 0x0798, 0, NO_PAD_CTRL)
+#define MX6SL_PAD_KEY_COL4__WEIM_WEIM_DA_A_8 \
+ IOMUX_PAD(0x0484, 0x017C, 3, 0x0000, 0, NO_PAD_CTRL)
+#define MX6SL_PAD_KEY_COL4__USDHC4_CLK \
+ IOMUX_PAD(0x0484, 0x017C, 4, 0x0850, 2, MX6SL_USDHC_PAD_CTRL)
+#define MX6SL_PAD_KEY_COL4__GPIO_4_0 \
+ IOMUX_PAD(0x0484, 0x017C, 5, 0x0000, 0, NO_PAD_CTRL)
+#define MX6SL_PAD_KEY_COL4__USB_USBOTG1_PWR \
+ IOMUX_PAD(0x0484, 0x017C, 6, 0x0000, 0, NO_PAD_CTRL)
+#define MX6SL_PAD_KEY_COL4__TPSMP_HDATA_8 \
+ IOMUX_PAD(0x0484, 0x017C, 7, 0x0000, 0, NO_PAD_CTRL)
+
+#define MX6SL_PAD_KEY_COL5__KPP_COL_5 \
+ IOMUX_PAD(0x0488, 0x0180, 0, 0x0748, 0, NO_PAD_CTRL)
+#define MX6SL_PAD_KEY_COL5__AUDMUX_AUD6_TXFS \
+ IOMUX_PAD(0x0488, 0x0180, 1, 0x0628, 1, NO_PAD_CTRL)
+#define MX6SL_PAD_KEY_COL5__LCDIF_DAT_10 \
+ IOMUX_PAD(0x0488, 0x0180, 2, 0x07A0, 0, NO_PAD_CTRL)
+#define MX6SL_PAD_KEY_COL5__WEIM_WEIM_DA_A_10 \
+ IOMUX_PAD(0x0488, 0x0180, 3, 0x0000, 0, NO_PAD_CTRL)
+#define MX6SL_PAD_KEY_COL5__USDHC4_DAT0 \
+ IOMUX_PAD(0x0488, 0x0180, 4, 0x085C, 2, MX6SL_USDHC_PAD_CTRL)
+#define MX6SL_PAD_KEY_COL5__GPIO_4_2 \
+ IOMUX_PAD(0x0488, 0x0180, 5, 0x0000, 0, NO_PAD_CTRL)
+#define MX6SL_PAD_KEY_COL5__USB_USBOTG2_PWR \
+ IOMUX_PAD(0x0488, 0x0180, 6, 0x0000, 0, NO_PAD_CTRL)
+#define MX6SL_PAD_KEY_COL5__TPSMP_HDATA_10 \
+ IOMUX_PAD(0x0488, 0x0180, 7, 0x0000, 0, NO_PAD_CTRL)
+
+#define MX6SL_PAD_KEY_COL6__KPP_COL_6 \
+ IOMUX_PAD(0x048C, 0x0184, 0, 0x074C, 0, NO_PAD_CTRL)
+#define MX6SL_PAD_KEY_COL6__UART4_TXD \
+ IOMUX_PAD(0x048C, 0x0184, 1, 0x0000, 0, MX6SL_UART_PAD_CTRL)
+#define MX6SL_PAD_KEY_COL6__UART4_RXD \
+ IOMUX_PAD(0x048C, 0x0184, 1, 0x0814, 2, MX6SL_UART_PAD_CTRL)
+#define MX6SL_PAD_KEY_COL6__LCDIF_DAT_12 \
+ IOMUX_PAD(0x048C, 0x0184, 2, 0x07A8, 0, NO_PAD_CTRL)
+#define MX6SL_PAD_KEY_COL6__WEIM_WEIM_DA_A_12 \
+ IOMUX_PAD(0x048C, 0x0184, 3, 0x0000, 0, NO_PAD_CTRL)
+#define MX6SL_PAD_KEY_COL6__USDHC4_DAT2 \
+ IOMUX_PAD(0x048C, 0x0184, 4, 0x0864, 2, MX6SL_USDHC_PAD_CTRL)
+#define MX6SL_PAD_KEY_COL6__GPIO_4_4 \
+ IOMUX_PAD(0x048C, 0x0184, 5, 0x0000, 0, NO_PAD_CTRL)
+#define MX6SL_PAD_KEY_COL6__USDHC3_RST \
+ IOMUX_PAD(0x048C, 0x0184, 6, 0x0000, 0, MX6SL_USDHC_PAD_CTRL)
+#define MX6SL_PAD_KEY_COL6__TPSMP_HDATA_12 \
+ IOMUX_PAD(0x048C, 0x0184, 7, 0x0000, 0, NO_PAD_CTRL)
+
+#define MX6SL_PAD_KEY_COL7__KPP_COL_7 \
+ IOMUX_PAD(0x0490, 0x0188, 0, 0x0750, 0, NO_PAD_CTRL)
+#define MX6SL_PAD_KEY_COL7__UART4_CTS \
+ IOMUX_PAD(0x0490, 0x0188, 1, 0x0000, 0, MX6SL_UART_PAD_CTRL)
+#define MX6SL_PAD_KEY_COL7__UART4_RTS \
+ IOMUX_PAD(0x0490, 0x0188, 1, 0x0810, 2, MX6SL_UART_PAD_CTRL)
+#define MX6SL_PAD_KEY_COL7__LCDIF_DAT_14 \
+ IOMUX_PAD(0x0490, 0x0188, 2, 0x07B0, 0, NO_PAD_CTRL)
+#define MX6SL_PAD_KEY_COL7__WEIM_WEIM_DA_A_14 \
+ IOMUX_PAD(0x0490, 0x0188, 3, 0x0000, 0, NO_PAD_CTRL)
+#define MX6SL_PAD_KEY_COL7__USDHC4_DAT4 \
+ IOMUX_PAD(0x0490, 0x0188, 4, 0x086C, 1, MX6SL_USDHC_PAD_CTRL)
+#define MX6SL_PAD_KEY_COL7__GPIO_4_6 \
+ IOMUX_PAD(0x0490, 0x0188, 5, 0x0000, 0, MX6SL_USDHC_PAD_CTRL)
+#define MX6SL_PAD_KEY_COL7__USDHC1_WP \
+ IOMUX_PAD(0x0490, 0x0188, 6, 0x082C, 2, MX6SL_USDHC_PAD_CTRL)
+#define MX6SL_PAD_KEY_COL7__TPSMP_HDATA_14 \
+ IOMUX_PAD(0x0490, 0x0188, 7, 0x0000, 0, NO_PAD_CTRL)
+
+#define MX6SL_PAD_KEY_ROW0__KPP_ROW_0 \
+ IOMUX_PAD(0x0494, 0x018C, 0, 0x0754, 0, NO_PAD_CTRL)
+#define MX6SL_PAD_KEY_ROW0__I2C2_SDA \
+ IOMUX_PAD(0x0494, 0x018C, 1 | IOMUX_CONFIG_SION, 0x0728, 2, MX6SL_I2C_PAD_CTRL)
+#define MX6SL_PAD_KEY_ROW0__LCDIF_DAT_1 \
+ IOMUX_PAD(0x0494, 0x018C, 2, 0x077C, 0, NO_PAD_CTRL)
+#define MX6SL_PAD_KEY_ROW0__WEIM_WEIM_DA_A_1 \
+ IOMUX_PAD(0x0494, 0x018C, 3, 0x0000, 0, NO_PAD_CTRL)
+#define MX6SL_PAD_KEY_ROW0__USDHC1_WP \
+ IOMUX_PAD(0x0494, 0x018C, 4, 0x082C, 3, MX6SL_USDHC_PAD_CTRL)
+#define MX6SL_PAD_KEY_ROW0__GPIO_3_25 \
+ IOMUX_PAD(0x0494, 0x018C, 5, 0x0000, 0, NO_PAD_CTRL)
+#define MX6SL_PAD_KEY_ROW0__MSHC_BS \
+ IOMUX_PAD(0x0494, 0x018C, 6, 0x0000, 0, NO_PAD_CTRL)
+#define MX6SL_PAD_KEY_ROW0__TPSMP_HDATA_1 \
+ IOMUX_PAD(0x0494, 0x018C, 7, 0x0000, 0, NO_PAD_CTRL)
+
+#define MX6SL_PAD_KEY_ROW1__KPP_ROW_1 \
+ IOMUX_PAD(0x0498, 0x0190, 0, 0x0758, 0, NO_PAD_CTRL)
+#define MX6SL_PAD_KEY_ROW1__ECSPI4_MISO \
+ IOMUX_PAD(0x0498, 0x0190, 1, 0x06D4, 2, NO_PAD_CTRL)
+#define MX6SL_PAD_KEY_ROW1__LCDIF_DAT_3 \
+ IOMUX_PAD(0x0498, 0x0190, 2, 0x0784, 0, NO_PAD_CTRL)
+#define MX6SL_PAD_KEY_ROW1__WEIM_WEIM_DA_A_3 \
+ IOMUX_PAD(0x0498, 0x0190, 3, 0x0000, 0, NO_PAD_CTRL)
+#define MX6SL_PAD_KEY_ROW1__USDHC3_DAT5 \
+ IOMUX_PAD(0x0498, 0x0190, 4, 0x0840, 0, MX6SL_USDHC_PAD_CTRL)
+#define MX6SL_PAD_KEY_ROW1__GPIO_3_27 \
+ IOMUX_PAD(0x0498, 0x0190, 5, 0x0000, 0, NO_PAD_CTRL)
+#define MX6SL_PAD_KEY_ROW1__MSHC_DATA_1 \
+ IOMUX_PAD(0x0498, 0x0190, 6, 0x07DC, 0, NO_PAD_CTRL)
+#define MX6SL_PAD_KEY_ROW1__TPSMP_HDATA_3 \
+ IOMUX_PAD(0x0498, 0x0190, 7, 0x0000, 0, NO_PAD_CTRL)
+
+#define MX6SL_PAD_KEY_ROW2__KPP_ROW_2 \
+ IOMUX_PAD(0x049C, 0x0194, 0, 0x075C, 0, NO_PAD_CTRL)
+#define MX6SL_PAD_KEY_ROW2__ECSPI4_SCLK \
+ IOMUX_PAD(0x049C, 0x0194, 1, 0x06D0, 2, NO_PAD_CTRL)
+#define MX6SL_PAD_KEY_ROW2__LCDIF_DAT_5 \
+ IOMUX_PAD(0x049C, 0x0194, 2, 0x078C, 0, NO_PAD_CTRL)
+#define MX6SL_PAD_KEY_ROW2__WEIM_WEIM_DA_A_5 \
+ IOMUX_PAD(0x049C, 0x0194, 3, 0x0000, 0, NO_PAD_CTRL)
+#define MX6SL_PAD_KEY_ROW2__USDHC3_DAT7 \
+ IOMUX_PAD(0x049C, 0x0194, 4, 0x0848, 0, MX6SL_USDHC_PAD_CTRL)
+#define MX6SL_PAD_KEY_ROW2__GPIO_3_29 \
+ IOMUX_PAD(0x049C, 0x0194, 5, 0x0000, 0, NO_PAD_CTRL)
+#define MX6SL_PAD_KEY_ROW2__MSHC_DATA_3 \
+ IOMUX_PAD(0x049C, 0x0194, 6, 0x07E4, 0, NO_PAD_CTRL)
+#define MX6SL_PAD_KEY_ROW2__TPSMP_HDATA_5 \
+ IOMUX_PAD(0x049C, 0x0194, 7, 0x0000, 0, NO_PAD_CTRL)
+
+#define MX6SL_PAD_KEY_ROW3__KPP_ROW_3 \
+ IOMUX_PAD(0x04A0, 0x0198, 0, 0x0760, 0, NO_PAD_CTRL)
+#define MX6SL_PAD_KEY_ROW3__AUDMUX_AUD6_RXC \
+ IOMUX_PAD(0x04A0, 0x0198, 1, 0x061C, 1, NO_PAD_CTRL)
+#define MX6SL_PAD_KEY_ROW3__LCDIF_DAT_7 \
+ IOMUX_PAD(0x04A0, 0x0198, 2, 0x0794, 0, NO_PAD_CTRL)
+#define MX6SL_PAD_KEY_ROW3__WEIM_WEIM_DA_A_7 \
+ IOMUX_PAD(0x04A0, 0x0198, 3, 0x0000, 0, NO_PAD_CTRL)
+#define MX6SL_PAD_KEY_ROW3__USDHC4_DAT7 \
+ IOMUX_PAD(0x04A0, 0x0198, 4, 0x0878, 1, MX6SL_USDHC_PAD_CTRL)
+#define MX6SL_PAD_KEY_ROW3__GPIO_3_31 \
+ IOMUX_PAD(0x04A0, 0x0198, 5, 0x0000, 0, NO_PAD_CTRL)
+#define MX6SL_PAD_KEY_ROW3__USDHC1_VSELECT \
+ IOMUX_PAD(0x04A0, 0x0198, 6, 0x0000, 0, MX6SL_USDHC_PAD_CTRL)
+#define MX6SL_PAD_KEY_ROW3__TPSMP_HDATA_7 \
+ IOMUX_PAD(0x04A0, 0x0198, 7, 0x0000, 0, NO_PAD_CTRL)
+
+#define MX6SL_PAD_KEY_ROW4__KPP_ROW_4 \
+ IOMUX_PAD(0x04A4, 0x019C, 0, 0x0764, 0, NO_PAD_CTRL)
+#define MX6SL_PAD_KEY_ROW4__AUDMUX_AUD6_TXC \
+ IOMUX_PAD(0x04A4, 0x019C, 1, 0x0624, 1, NO_PAD_CTRL)
+#define MX6SL_PAD_KEY_ROW4__LCDIF_DAT_9 \
+ IOMUX_PAD(0x04A4, 0x019C, 2, 0x079C, 0, NO_PAD_CTRL)
+#define MX6SL_PAD_KEY_ROW4__WEIM_WEIM_DA_A_9 \
+ IOMUX_PAD(0x04A4, 0x019C, 3, 0x0000, 0, NO_PAD_CTRL)
+#define MX6SL_PAD_KEY_ROW4__USDHC4_CMD \
+ IOMUX_PAD(0x04A4, 0x019C, 4, 0x0858, 2, MX6SL_USDHC_PAD_CTRL)
+#define MX6SL_PAD_KEY_ROW4__GPIO_4_1 \
+ IOMUX_PAD(0x04A4, 0x019C, 5, 0x0000, 0, NO_PAD_CTRL)
+#define MX6SL_PAD_KEY_ROW4__USB_USBOTG1_OC \
+ IOMUX_PAD(0x04A4, 0x019C, 6, 0x0824, 1, NO_PAD_CTRL)
+#define MX6SL_PAD_KEY_ROW4__TPSMP_HDATA_9 \
+ IOMUX_PAD(0x04A4, 0x019C, 7, 0x0000, 0, NO_PAD_CTRL)
+
+#define MX6SL_PAD_KEY_ROW5__KPP_ROW_5 \
+ IOMUX_PAD(0x04A8, 0x01A0, 0, 0x0768, 0, NO_PAD_CTRL)
+#define MX6SL_PAD_KEY_ROW5__AUDMUX_AUD6_TXD \
+ IOMUX_PAD(0x04A8, 0x01A0, 1, 0x0618, 1, NO_PAD_CTRL)
+#define MX6SL_PAD_KEY_ROW5__LCDIF_DAT_11 \
+ IOMUX_PAD(0x04A8, 0x01A0, 2, 0x07A4, 0, NO_PAD_CTRL)
+#define MX6SL_PAD_KEY_ROW5__WEIM_WEIM_DA_A_11 \
+ IOMUX_PAD(0x04A8, 0x01A0, 3, 0x0000, 0, NO_PAD_CTRL)
+#define MX6SL_PAD_KEY_ROW5__USDHC4_DAT1 \
+ IOMUX_PAD(0x04A8, 0x01A0, 4, 0x0860, 2, MX6SL_USDHC_PAD_CTRL)
+#define MX6SL_PAD_KEY_ROW5__GPIO_4_3 \
+ IOMUX_PAD(0x04A8, 0x01A0, 5, 0x0000, 0, NO_PAD_CTRL)
+#define MX6SL_PAD_KEY_ROW5__USB_USBOTG2_OC \
+ IOMUX_PAD(0x04A8, 0x01A0, 6, 0x0820, 2, NO_PAD_CTRL)
+#define MX6SL_PAD_KEY_ROW5__TPSMP_HDATA_11 \
+ IOMUX_PAD(0x04A8, 0x01A0, 7, 0x0000, 0, NO_PAD_CTRL)
+
+#define MX6SL_PAD_KEY_ROW6__KPP_ROW_6 \
+ IOMUX_PAD(0x04AC, 0x01A4, 0, 0x076C, 0, NO_PAD_CTRL)
+#define MX6SL_PAD_KEY_ROW6__UART4_TXD \
+ IOMUX_PAD(0x04AC, 0x01A4, 1, 0x0000, 0, MX6SL_UART_PAD_CTRL)
+#define MX6SL_PAD_KEY_ROW6__UART4_RXD \
+ IOMUX_PAD(0x04AC, 0x01A4, 1, 0x0814, 3, MX6SL_UART_PAD_CTRL)
+#define MX6SL_PAD_KEY_ROW6__LCDIF_DAT_13 \
+ IOMUX_PAD(0x04AC, 0x01A4, 2, 0x07AC, 0, NO_PAD_CTRL)
+#define MX6SL_PAD_KEY_ROW6__WEIM_WEIM_DA_A_13 \
+ IOMUX_PAD(0x04AC, 0x01A4, 3, 0x0000, 0, NO_PAD_CTRL)
+#define MX6SL_PAD_KEY_ROW6__USDHC4_DAT3 \
+ IOMUX_PAD(0x04AC, 0x01A4, 4, 0x0868, 2, MX6SL_USDHC_PAD_CTRL)
+#define MX6SL_PAD_KEY_ROW6__GPIO_4_5 \
+ IOMUX_PAD(0x04AC, 0x01A4, 5, 0x0000, 0, NO_PAD_CTRL)
+#define MX6SL_PAD_KEY_ROW6__USDHC3_VSELECT \
+ IOMUX_PAD(0x04AC, 0x01A4, 6, 0x0000, 0, MX6SL_USDHC_PAD_CTRL)
+#define MX6SL_PAD_KEY_ROW6__TPSMP_HDATA_13 \
+ IOMUX_PAD(0x04AC, 0x01A4, 7, 0x0000, 0, NO_PAD_CTRL)
+
+#define MX6SL_PAD_KEY_ROW7__KPP_ROW_7 \
+ IOMUX_PAD(0x04B0, 0x01A8, 0, 0x0770, 0, NO_PAD_CTRL)
+#define MX6SL_PAD_KEY_ROW7__UART4_CTS \
+ IOMUX_PAD(0x04B0, 0x01A8, 1, 0x0000, 0, MX6SL_UART_PAD_CTRL)
+#define MX6SL_PAD_KEY_ROW7__UART4_RTS \
+ IOMUX_PAD(0x04B0, 0x01A8, 1, 0x0810, 3, MX6SL_UART_PAD_CTRL)
+#define MX6SL_PAD_KEY_ROW7__LCDIF_DAT_15 \
+ IOMUX_PAD(0x04B0, 0x01A8, 2, 0x07B4, 0, NO_PAD_CTRL)
+#define MX6SL_PAD_KEY_ROW7__WEIM_WEIM_DA_A_15 \
+ IOMUX_PAD(0x04B0, 0x01A8, 3, 0x0000, 0, NO_PAD_CTRL)
+#define MX6SL_PAD_KEY_ROW7__USDHC4_DAT5 \
+ IOMUX_PAD(0x04B0, 0x01A8, 4, 0x0870, 1, MX6SL_USDHC_PAD_CTRL)
+#define MX6SL_PAD_KEY_ROW7__GPIO_4_7 \
+ IOMUX_PAD(0x04B0, 0x01A8, 5, 0x0000, 0, MX6SL_USDHC_PAD_CTRL)
+#define MX6SL_PAD_KEY_ROW7__USDHC1_CD \
+ IOMUX_PAD(0x04B0, 0x01A8, 6, 0x0828, 3, MX6SL_USDHC_PAD_CTRL)
+#define MX6SL_PAD_KEY_ROW7__TPSMP_HDATA_15 \
+ IOMUX_PAD(0x04B0, 0x01A8, 7, 0x0000, 0, NO_PAD_CTRL)
+
+#define MX6SL_PAD_LCD_CLK__LCDIF_CLK \
+ IOMUX_PAD(0x04B4, 0x01AC, 0, 0x0000, 0, MX6SL_LCDIF_PAD_CTRL)
+#define MX6SL_PAD_LCD_CLK__USDHC4_DAT4 \
+ IOMUX_PAD(0x04B4, 0x01AC, 1, 0x086C, 2, MX6SL_USDHC_PAD_CTRL)
+#define MX6SL_PAD_LCD_CLK__LCDIF_WR_RWN \
+ IOMUX_PAD(0x04B4, 0x01AC, 2, 0x0000, 0, NO_PAD_CTRL)
+#define MX6SL_PAD_LCD_CLK__WEIM_WEIM_RW \
+ IOMUX_PAD(0x04B4, 0x01AC, 3, 0x0000, 0, NO_PAD_CTRL)
+#define MX6SL_PAD_LCD_CLK__PWM4_PWMO \
+ IOMUX_PAD(0x04B4, 0x01AC, 4, 0x0000, 0, NO_PAD_CTRL)
+#define MX6SL_PAD_LCD_CLK__GPIO_2_15 \
+ IOMUX_PAD(0x04B4, 0x01AC, 5, 0x0000, 0, NO_PAD_CTRL)
+#define MX6SL_PAD_LCD_CLK__SRC_EARLY_RST \
+ IOMUX_PAD(0x04B4, 0x01AC, 6, 0x0000, 0, NO_PAD_CTRL)
+#define MX6SL_PAD_LCD_CLK__TPSMP_HTRANS_0 \
+ IOMUX_PAD(0x04B4, 0x01AC, 7, 0x0000, 0, NO_PAD_CTRL)
+
+#define MX6SL_PAD_LCD_DAT0__LCDIF_DAT_0 \
+ IOMUX_PAD(0x04B8, 0x01B0, 0, 0x0778, 1, MX6SL_LCDIF_PAD_CTRL)
+#define MX6SL_PAD_LCD_DAT0__ECSPI1_MOSI \
+ IOMUX_PAD(0x04B8, 0x01B0, 1, 0x0688, 1, NO_PAD_CTRL)
+#define MX6SL_PAD_LCD_DAT0__ANATOP_USBOTG2_ID \
+ IOMUX_PAD(0x04B8, 0x01B0, 2, 0x05E0, 1, NO_PAD_CTRL)
+#define MX6SL_PAD_LCD_DAT0__PWM1_PWMO \
+ IOMUX_PAD(0x04B8, 0x01B0, 3, 0x0000, 0, NO_PAD_CTRL)
+#define MX6SL_PAD_LCD_DAT0__UART5_DTR \
+ IOMUX_PAD(0x04B8, 0x01B0, 4, 0x0000, 0, MX6SL_UART_PAD_CTRL)
+#define MX6SL_PAD_LCD_DAT0__GPIO_2_20 \
+ IOMUX_PAD(0x04B8, 0x01B0, 5, 0x0000, 0, NO_PAD_CTRL)
+#define MX6SL_PAD_LCD_DAT0__KITTEN_TRACE_0 \
+ IOMUX_PAD(0x04B8, 0x01B0, 6, 0x0000, 0, NO_PAD_CTRL)
+#define MX6SL_PAD_LCD_DAT0__SRC_BT_CFG_0 \
+ IOMUX_PAD(0x04B8, 0x01B0, 7, 0x0000, 0, NO_PAD_CTRL)
+
+#define MX6SL_PAD_LCD_DAT1__LCDIF_DAT_1 \
+ IOMUX_PAD(0x04BC, 0x01B4, 0, 0x077C, 1, MX6SL_LCDIF_PAD_CTRL)
+#define MX6SL_PAD_LCD_DAT1__ECSPI1_MISO \
+ IOMUX_PAD(0x04BC, 0x01B4, 1, 0x0684, 1, NO_PAD_CTRL)
+#define MX6SL_PAD_LCD_DAT1__ANATOP_USBOTG1_ID \
+ IOMUX_PAD(0x04BC, 0x01B4, 2, 0x05DC, 2, NO_PAD_CTRL)
+#define MX6SL_PAD_LCD_DAT1__PWM2_PWMO \
+ IOMUX_PAD(0x04BC, 0x01B4, 3, 0x0000, 0, NO_PAD_CTRL)
+#define MX6SL_PAD_LCD_DAT1__AUDMUX_AUD4_RXFS \
+ IOMUX_PAD(0x04BC, 0x01B4, 4, 0x05F0, 1, NO_PAD_CTRL)
+#define MX6SL_PAD_LCD_DAT1__GPIO_2_21 \
+ IOMUX_PAD(0x04BC, 0x01B4, 5, 0x0000, 0, NO_PAD_CTRL)
+#define MX6SL_PAD_LCD_DAT1__KITTEN_TRACE_1 \
+ IOMUX_PAD(0x04BC, 0x01B4, 6, 0x0000, 0, NO_PAD_CTRL)
+#define MX6SL_PAD_LCD_DAT1__SRC_BT_CFG_1 \
+ IOMUX_PAD(0x04BC, 0x01B4, 7, 0x0000, 0, NO_PAD_CTRL)
+
+#define MX6SL_PAD_LCD_DAT10__LCDIF_DAT_10 \
+ IOMUX_PAD(0x04C0, 0x01B8, 0, 0x07A0, 1, MX6SL_LCDIF_PAD_CTRL)
+#define MX6SL_PAD_LCD_DAT10__KPP_COL_1 \
+ IOMUX_PAD(0x04C0, 0x01B8, 1, 0x0738, 1, NO_PAD_CTRL)
+#define MX6SL_PAD_LCD_DAT10__CSI_D_7 \
+ IOMUX_PAD(0x04C0, 0x01B8, 2, 0x064C, 1, NO_PAD_CTRL)
+#define MX6SL_PAD_LCD_DAT10__WEIM_WEIM_D_4 \
+ IOMUX_PAD(0x04C0, 0x01B8, 3, 0x0000, 0, NO_PAD_CTRL)
+#define MX6SL_PAD_LCD_DAT10__ECSPI2_MISO \
+ IOMUX_PAD(0x04C0, 0x01B8, 4, 0x06A0, 2, NO_PAD_CTRL)
+#define MX6SL_PAD_LCD_DAT10__GPIO_2_30 \
+ IOMUX_PAD(0x04C0, 0x01B8, 5, 0x0000, 0, NO_PAD_CTRL)
+#define MX6SL_PAD_LCD_DAT10__KITTEN_TRACE_10 \
+ IOMUX_PAD(0x04C0, 0x01B8, 6, 0x0000, 0, NO_PAD_CTRL)
+#define MX6SL_PAD_LCD_DAT10__SRC_BT_CFG_10 \
+ IOMUX_PAD(0x04C0, 0x01B8, 7, 0x0000, 0, NO_PAD_CTRL)
+
+#define MX6SL_PAD_LCD_DAT11__LCDIF_DAT_11 \
+ IOMUX_PAD(0x04C4, 0x01BC, 0, 0x07A4, 1, MX6SL_LCDIF_PAD_CTRL)
+#define MX6SL_PAD_LCD_DAT11__KPP_ROW_1 \
+ IOMUX_PAD(0x04C4, 0x01BC, 1, 0x0758, 1, NO_PAD_CTRL)
+#define MX6SL_PAD_LCD_DAT11__CSI_D_6 \
+ IOMUX_PAD(0x04C4, 0x01BC, 2, 0x0648, 1, NO_PAD_CTRL)
+#define MX6SL_PAD_LCD_DAT11__WEIM_WEIM_D_5 \
+ IOMUX_PAD(0x04C4, 0x01BC, 3, 0x0000, 0, NO_PAD_CTRL)
+#define MX6SL_PAD_LCD_DAT11__ECSPI2_SS1 \
+ IOMUX_PAD(0x04C4, 0x01BC, 4, 0x06AC, 1, NO_PAD_CTRL)
+#define MX6SL_PAD_LCD_DAT11__GPIO_2_31 \
+ IOMUX_PAD(0x04C4, 0x01BC, 5, 0x0000, 0, NO_PAD_CTRL)
+#define MX6SL_PAD_LCD_DAT11__KITTEN_TRACE_11 \
+ IOMUX_PAD(0x04C4, 0x01BC, 6, 0x0000, 0, NO_PAD_CTRL)
+#define MX6SL_PAD_LCD_DAT11__SRC_BT_CFG_11 \
+ IOMUX_PAD(0x04C4, 0x01BC, 7, 0x0000, 0, NO_PAD_CTRL)
+
+#define MX6SL_PAD_LCD_DAT12__LCDIF_DAT_12 \
+ IOMUX_PAD(0x04C8, 0x01C0, 0, 0x07A8, 1, MX6SL_LCDIF_PAD_CTRL)
+#define MX6SL_PAD_LCD_DAT12__KPP_COL_2 \
+ IOMUX_PAD(0x04C8, 0x01C0, 1, 0x073C, 1, NO_PAD_CTRL)
+#define MX6SL_PAD_LCD_DAT12__CSI_D_5 \
+ IOMUX_PAD(0x04C8, 0x01C0, 2, 0x0644, 1, NO_PAD_CTRL)
+#define MX6SL_PAD_LCD_DAT12__WEIM_WEIM_D_6 \
+ IOMUX_PAD(0x04C8, 0x01C0, 3, 0x0000, 0, NO_PAD_CTRL)
+#define MX6SL_PAD_LCD_DAT12__UART5_CTS \
+ IOMUX_PAD(0x04C8, 0x01C0, 4, 0x0000, 0, MX6SL_UART_PAD_CTRL)
+#define MX6SL_PAD_LCD_DAT12__UART5_RTS \
+ IOMUX_PAD(0x04C8, 0x01C0, 4, 0x0818, 2, MX6SL_UART_PAD_CTRL)
+#define MX6SL_PAD_LCD_DAT12__GPIO_3_0 \
+ IOMUX_PAD(0x04C8, 0x01C0, 5, 0x0000, 0, NO_PAD_CTRL)
+#define MX6SL_PAD_LCD_DAT12__KITTEN_TRACE_12 \
+ IOMUX_PAD(0x04C8, 0x01C0, 6, 0x0000, 0, NO_PAD_CTRL)
+#define MX6SL_PAD_LCD_DAT12__SRC_BT_CFG_12 \
+ IOMUX_PAD(0x04C8, 0x01C0, 7, 0x0000, 0, NO_PAD_CTRL)
+
+#define MX6SL_PAD_LCD_DAT13__LCDIF_DAT_13 \
+ IOMUX_PAD(0x04CC, 0x01C4, 0, 0x07AC, 1, MX6SL_LCDIF_PAD_CTRL)
+#define MX6SL_PAD_LCD_DAT13__KPP_ROW_2 \
+ IOMUX_PAD(0x04CC, 0x01C4, 1, 0x075C, 1, NO_PAD_CTRL)
+#define MX6SL_PAD_LCD_DAT13__CSI_D_4 \
+ IOMUX_PAD(0x04CC, 0x01C4, 2, 0x0640, 1, NO_PAD_CTRL)
+#define MX6SL_PAD_LCD_DAT13__WEIM_WEIM_D_7 \
+ IOMUX_PAD(0x04CC, 0x01C4, 3, 0x0000, 0, NO_PAD_CTRL)
+#define MX6SL_PAD_LCD_DAT13__UART5_CTS \
+ IOMUX_PAD(0x04CC, 0x01C4, 4, 0x0000, 0, MX6SL_UART_PAD_CTRL)
+#define MX6SL_PAD_LCD_DAT13__UART5_RTS \
+ IOMUX_PAD(0x04CC, 0x01C4, 4, 0x0818, 3, MX6SL_UART_PAD_CTRL)
+#define MX6SL_PAD_LCD_DAT13__GPIO_3_1 \
+ IOMUX_PAD(0x04CC, 0x01C4, 5, 0x0000, 0, NO_PAD_CTRL)
+#define MX6SL_PAD_LCD_DAT13__KITTEN_TRACE_13 \
+ IOMUX_PAD(0x04CC, 0x01C4, 6, 0x0000, 0, NO_PAD_CTRL)
+#define MX6SL_PAD_LCD_DAT13__SRC_BT_CFG_13 \
+ IOMUX_PAD(0x04CC, 0x01C4, 7, 0x0000, 0, NO_PAD_CTRL)
+
+#define MX6SL_PAD_LCD_DAT14__LCDIF_DAT_14 \
+ IOMUX_PAD(0x04D0, 0x01C8, 0, 0x07B0, 1, MX6SL_LCDIF_PAD_CTRL)
+#define MX6SL_PAD_LCD_DAT14__KPP_COL_3 \
+ IOMUX_PAD(0x04D0, 0x01C8, 1, 0x0740, 1, NO_PAD_CTRL)
+#define MX6SL_PAD_LCD_DAT14__CSI_D_3 \
+ IOMUX_PAD(0x04D0, 0x01C8, 2, 0x063C, 1, NO_PAD_CTRL)
+#define MX6SL_PAD_LCD_DAT14__WEIM_WEIM_D_8 \
+ IOMUX_PAD(0x04D0, 0x01C8, 3, 0x0000, 0, NO_PAD_CTRL)
+#define MX6SL_PAD_LCD_DAT14__UART5_TXD \
+ IOMUX_PAD(0x04D0, 0x01C8, 4, 0x0000, 0, MX6SL_UART_PAD_CTRL)
+#define MX6SL_PAD_LCD_DAT14__UART5_RXD \
+ IOMUX_PAD(0x04D0, 0x01C8, 4, 0x081C, 2, MX6SL_UART_PAD_CTRL)
+#define MX6SL_PAD_LCD_DAT14__GPIO_3_2 \
+ IOMUX_PAD(0x04D0, 0x01C8, 5, 0x0000, 0, NO_PAD_CTRL)
+#define MX6SL_PAD_LCD_DAT14__KITTEN_TRACE_14 \
+ IOMUX_PAD(0x04D0, 0x01C8, 6, 0x0000, 0, NO_PAD_CTRL)
+#define MX6SL_PAD_LCD_DAT14__SRC_BT_CFG_14 \
+ IOMUX_PAD(0x04D0, 0x01C8, 7, 0x0000, 0, NO_PAD_CTRL)
+
+#define MX6SL_PAD_LCD_DAT15__LCDIF_DAT_15 \
+ IOMUX_PAD(0x04D4, 0x01CC, 0, 0x07B4, 1, MX6SL_LCDIF_PAD_CTRL)
+#define MX6SL_PAD_LCD_DAT15__KPP_ROW_3 \
+ IOMUX_PAD(0x04D4, 0x01CC, 1, 0x0760, 1, NO_PAD_CTRL)
+#define MX6SL_PAD_LCD_DAT15__CSI_D_2 \
+ IOMUX_PAD(0x04D4, 0x01CC, 2, 0x0638, 1, NO_PAD_CTRL)
+#define MX6SL_PAD_LCD_DAT15__WEIM_WEIM_D_9 \
+ IOMUX_PAD(0x04D4, 0x01CC, 3, 0x0000, 0, NO_PAD_CTRL)
+#define MX6SL_PAD_LCD_DAT15__UART5_TXD \
+ IOMUX_PAD(0x04D4, 0x01CC, 4, 0x0000, 0, MX6SL_UART_PAD_CTRL)
+#define MX6SL_PAD_LCD_DAT15__UART5_RXD \
+ IOMUX_PAD(0x04D4, 0x01CC, 4, 0x081C, 3, MX6SL_UART_PAD_CTRL)
+#define MX6SL_PAD_LCD_DAT15__GPIO_3_3 \
+ IOMUX_PAD(0x04D4, 0x01CC, 5, 0x0000, 0, NO_PAD_CTRL)
+#define MX6SL_PAD_LCD_DAT15__KITTEN_TRACE_15 \
+ IOMUX_PAD(0x04D4, 0x01CC, 6, 0x0000, 0, NO_PAD_CTRL)
+#define MX6SL_PAD_LCD_DAT15__SRC_BT_CFG_15 \
+ IOMUX_PAD(0x04D4, 0x01CC, 7, 0x0000, 0, NO_PAD_CTRL)
+
+#define MX6SL_PAD_LCD_DAT16__LCDIF_DAT_16 \
+ IOMUX_PAD(0x04D8, 0x01D0, 0, 0x07B8, 1, MX6SL_LCDIF_PAD_CTRL)
+#define MX6SL_PAD_LCD_DAT16__KPP_COL_4 \
+ IOMUX_PAD(0x04D8, 0x01D0, 1, 0x0744, 1, NO_PAD_CTRL)
+#define MX6SL_PAD_LCD_DAT16__CSI_D_1 \
+ IOMUX_PAD(0x04D8, 0x01D0, 2, 0x0634, 1, NO_PAD_CTRL)
+#define MX6SL_PAD_LCD_DAT16__WEIM_WEIM_D_10 \
+ IOMUX_PAD(0x04D8, 0x01D0, 3, 0x0000, 0, NO_PAD_CTRL)
+#define MX6SL_PAD_LCD_DAT16__I2C2_SCL \
+ IOMUX_PAD(0x04D8, 0x01D0, 4 | IOMUX_CONFIG_SION, 0x0724, 3, MX6SL_I2C_PAD_CTRL)
+#define MX6SL_PAD_LCD_DAT16__GPIO_3_4 \
+ IOMUX_PAD(0x04D8, 0x01D0, 5, 0x0000, 0, NO_PAD_CTRL)
+#define MX6SL_PAD_LCD_DAT16__KITTEN_TRACE_16 \
+ IOMUX_PAD(0x04D8, 0x01D0, 6, 0x0000, 0, NO_PAD_CTRL)
+#define MX6SL_PAD_LCD_DAT16__SRC_BT_CFG_24 \
+ IOMUX_PAD(0x04D8, 0x01D0, 7, 0x0000, 0, NO_PAD_CTRL)
+
+#define MX6SL_PAD_LCD_DAT17__LCDIF_DAT_17 \
+ IOMUX_PAD(0x04DC, 0x01D4, 0, 0x07BC, 1, MX6SL_LCDIF_PAD_CTRL)
+#define MX6SL_PAD_LCD_DAT17__KPP_ROW_4 \
+ IOMUX_PAD(0x04DC, 0x01D4, 1, 0x0764, 1, NO_PAD_CTRL)
+#define MX6SL_PAD_LCD_DAT17__CSI_D_0 \
+ IOMUX_PAD(0x04DC, 0x01D4, 2, 0x0630, 1, NO_PAD_CTRL)
+#define MX6SL_PAD_LCD_DAT17__WEIM_WEIM_D_11 \
+ IOMUX_PAD(0x04DC, 0x01D4, 3, 0x0000, 0, NO_PAD_CTRL)
+#define MX6SL_PAD_LCD_DAT17__I2C2_SDA \
+ IOMUX_PAD(0x04DC, 0x01D4, 4 | IOMUX_CONFIG_SION, 0x0728, 3, MX6SL_I2C_PAD_CTRL)
+#define MX6SL_PAD_LCD_DAT17__GPIO_3_5 \
+ IOMUX_PAD(0x04DC, 0x01D4, 5, 0x0000, 0, NO_PAD_CTRL)
+#define MX6SL_PAD_LCD_DAT17__KITTEN_TRACE_17 \
+ IOMUX_PAD(0x04DC, 0x01D4, 6, 0x0000, 0, NO_PAD_CTRL)
+#define MX6SL_PAD_LCD_DAT17__SRC_BT_CFG_25 \
+ IOMUX_PAD(0x04DC, 0x01D4, 7, 0x0000, 0, NO_PAD_CTRL)
+
+#define MX6SL_PAD_LCD_DAT18__LCDIF_DAT_18 \
+ IOMUX_PAD(0x04E0, 0x01D8, 0, 0x07C0, 1, MX6SL_LCDIF_PAD_CTRL)
+#define MX6SL_PAD_LCD_DAT18__KPP_COL_5 \
+ IOMUX_PAD(0x04E0, 0x01D8, 1, 0x0748, 1, NO_PAD_CTRL)
+#define MX6SL_PAD_LCD_DAT18__CSI_D_15 \
+ IOMUX_PAD(0x04E0, 0x01D8, 2, 0x066C, 0, NO_PAD_CTRL)
+#define MX6SL_PAD_LCD_DAT18__WEIM_WEIM_D_12 \
+ IOMUX_PAD(0x04E0, 0x01D8, 3, 0x0000, 0, NO_PAD_CTRL)
+#define MX6SL_PAD_LCD_DAT18__GPT_CAPIN1 \
+ IOMUX_PAD(0x04E0, 0x01D8, 4, 0x0710, 1, NO_PAD_CTRL)
+#define MX6SL_PAD_LCD_DAT18__GPIO_3_6 \
+ IOMUX_PAD(0x04E0, 0x01D8, 5, 0x0000, 0, NO_PAD_CTRL)
+#define MX6SL_PAD_LCD_DAT18__KITTEN_TRACE_18 \
+ IOMUX_PAD(0x04E0, 0x01D8, 6, 0x0000, 0, NO_PAD_CTRL)
+#define MX6SL_PAD_LCD_DAT18__SRC_BT_CFG_26 \
+ IOMUX_PAD(0x04E0, 0x01D8, 7, 0x0000, 0, NO_PAD_CTRL)
+
+#define MX6SL_PAD_LCD_DAT19__LCDIF_DAT_19 \
+ IOMUX_PAD(0x04E4, 0x01DC, 0, 0x07C4, 1, MX6SL_LCDIF_PAD_CTRL)
+#define MX6SL_PAD_LCD_DAT19__KPP_ROW_5 \
+ IOMUX_PAD(0x04E4, 0x01DC, 1, 0x0768, 1, NO_PAD_CTRL)
+#define MX6SL_PAD_LCD_DAT19__CSI_D_14 \
+ IOMUX_PAD(0x04E4, 0x01DC, 2, 0x0668, 0, NO_PAD_CTRL)
+#define MX6SL_PAD_LCD_DAT19__WEIM_WEIM_D_13 \
+ IOMUX_PAD(0x04E4, 0x01DC, 3, 0x0000, 0, NO_PAD_CTRL)
+#define MX6SL_PAD_LCD_DAT19__GPT_CAPIN2 \
+ IOMUX_PAD(0x04E4, 0x01DC, 4, 0x0714, 1, NO_PAD_CTRL)
+#define MX6SL_PAD_LCD_DAT19__GPIO_3_7 \
+ IOMUX_PAD(0x04E4, 0x01DC, 5, 0x0000, 0, NO_PAD_CTRL)
+#define MX6SL_PAD_LCD_DAT19__KITTEN_TRACE_19 \
+ IOMUX_PAD(0x04E4, 0x01DC, 6, 0x0000, 0, NO_PAD_CTRL)
+#define MX6SL_PAD_LCD_DAT19__SRC_BT_CFG_27 \
+ IOMUX_PAD(0x04E4, 0x01DC, 7, 0x0000, 0, NO_PAD_CTRL)
+
+#define MX6SL_PAD_LCD_DAT2__LCDIF_DAT_2 \
+ IOMUX_PAD(0x04E8, 0x01E0, 0, 0x0780, 1, NO_PAD_CTRL)
+#define MX6SL_PAD_LCD_DAT2__ECSPI1_SS0 \
+ IOMUX_PAD(0x04E8, 0x01E0, 1, 0x068C, 1, NO_PAD_CTRL)
+#define MX6SL_PAD_LCD_DAT2__EPIT2_EPITO \
+ IOMUX_PAD(0x04E8, 0x01E0, 2, 0x0000, 0, NO_PAD_CTRL)
+#define MX6SL_PAD_LCD_DAT2__PWM3_PWMO \
+ IOMUX_PAD(0x04E8, 0x01E0, 3, 0x0000, 0, NO_PAD_CTRL)
+#define MX6SL_PAD_LCD_DAT2__AUDMUX_AUD4_RXC \
+ IOMUX_PAD(0x04E8, 0x01E0, 4, 0x05EC, 1, NO_PAD_CTRL)
+#define MX6SL_PAD_LCD_DAT2__GPIO_2_22 \
+ IOMUX_PAD(0x04E8, 0x01E0, 5, 0x0000, 0, NO_PAD_CTRL)
+#define MX6SL_PAD_LCD_DAT2__KITTEN_TRACE_2 \
+ IOMUX_PAD(0x04E8, 0x01E0, 6, 0x0000, 0, NO_PAD_CTRL)
+#define MX6SL_PAD_LCD_DAT2__SRC_BT_CFG_2 \
+ IOMUX_PAD(0x04E8, 0x01E0, 7, 0x0000, 0, NO_PAD_CTRL)
+
+#define MX6SL_PAD_LCD_DAT20__LCDIF_DAT_20 \
+ IOMUX_PAD(0x04EC, 0x01E4, 0, 0x07C8, 1, MX6SL_LCDIF_PAD_CTRL)
+#define MX6SL_PAD_LCD_DAT20__KPP_COL_6 \
+ IOMUX_PAD(0x04EC, 0x01E4, 1, 0x074C, 1, NO_PAD_CTRL)
+#define MX6SL_PAD_LCD_DAT20__CSI_D_13 \
+ IOMUX_PAD(0x04EC, 0x01E4, 2, 0x0664, 0, NO_PAD_CTRL)
+#define MX6SL_PAD_LCD_DAT20__WEIM_WEIM_D_14 \
+ IOMUX_PAD(0x04EC, 0x01E4, 3, 0x0000, 0, NO_PAD_CTRL)
+#define MX6SL_PAD_LCD_DAT20__GPT_CMPOUT1 \
+ IOMUX_PAD(0x04EC, 0x01E4, 4, 0x0000, 0, NO_PAD_CTRL)
+#define MX6SL_PAD_LCD_DAT20__GPIO_3_8 \
+ IOMUX_PAD(0x04EC, 0x01E4, 5, 0x0000, 0, NO_PAD_CTRL)
+#define MX6SL_PAD_LCD_DAT20__KITTEN_TRACE_20 \
+ IOMUX_PAD(0x04EC, 0x01E4, 6, 0x0000, 0, NO_PAD_CTRL)
+#define MX6SL_PAD_LCD_DAT20__SRC_BT_CFG_28 \
+ IOMUX_PAD(0x04EC, 0x01E4, 7, 0x0000, 0, NO_PAD_CTRL)
+
+#define MX6SL_PAD_LCD_DAT21__LCDIF_DAT_21 \
+ IOMUX_PAD(0x04F0, 0x01E8, 0, 0x07CC, 1, MX6SL_LCDIF_PAD_CTRL)
+#define MX6SL_PAD_LCD_DAT21__KPP_ROW_6 \
+ IOMUX_PAD(0x04F0, 0x01E8, 1, 0x076C, 1, NO_PAD_CTRL)
+#define MX6SL_PAD_LCD_DAT21__CSI_D_12 \
+ IOMUX_PAD(0x04F0, 0x01E8, 2, 0x0660, 0, NO_PAD_CTRL)
+#define MX6SL_PAD_LCD_DAT21__WEIM_WEIM_D_15 \
+ IOMUX_PAD(0x04F0, 0x01E8, 3, 0x0000, 0, NO_PAD_CTRL)
+#define MX6SL_PAD_LCD_DAT21__GPT_CMPOUT2 \
+ IOMUX_PAD(0x04F0, 0x01E8, 4, 0x0000, 0, NO_PAD_CTRL)
+#define MX6SL_PAD_LCD_DAT21__GPIO_3_9 \
+ IOMUX_PAD(0x04F0, 0x01E8, 5, 0x0000, 0, NO_PAD_CTRL)
+#define MX6SL_PAD_LCD_DAT21__KITTEN_TRACE_21 \
+ IOMUX_PAD(0x04F0, 0x01E8, 6, 0x0000, 0, NO_PAD_CTRL)
+#define MX6SL_PAD_LCD_DAT21__SRC_BT_CFG_29 \
+ IOMUX_PAD(0x04F0, 0x01E8, 7, 0x0000, 0, NO_PAD_CTRL)
+
+#define MX6SL_PAD_LCD_DAT22__LCDIF_DAT_22 \
+ IOMUX_PAD(0x04F4, 0x01EC, 0, 0x07D0, 1, MX6SL_LCDIF_PAD_CTRL)
+#define MX6SL_PAD_LCD_DAT22__KPP_COL_7 \
+ IOMUX_PAD(0x04F4, 0x01EC, 1, 0x0750, 1, NO_PAD_CTRL)
+#define MX6SL_PAD_LCD_DAT22__CSI_D_11 \
+ IOMUX_PAD(0x04F4, 0x01EC, 2, 0x065C, 1, NO_PAD_CTRL)
+#define MX6SL_PAD_LCD_DAT22__WEIM_WEIM_EB_3 \
+ IOMUX_PAD(0x04F4, 0x01EC, 3, 0x0000, 0, NO_PAD_CTRL)
+#define MX6SL_PAD_LCD_DAT22__GPT_CMPOUT3 \
+ IOMUX_PAD(0x04F4, 0x01EC, 4, 0x0000, 0, NO_PAD_CTRL)
+#define MX6SL_PAD_LCD_DAT22__GPIO_3_10 \
+ IOMUX_PAD(0x04F4, 0x01EC, 5, 0x0000, 0, NO_PAD_CTRL)
+#define MX6SL_PAD_LCD_DAT22__KITTEN_TRACE_22 \
+ IOMUX_PAD(0x04F4, 0x01EC, 6, 0x0000, 0, NO_PAD_CTRL)
+#define MX6SL_PAD_LCD_DAT22__SRC_BT_CFG_30 \
+ IOMUX_PAD(0x04F4, 0x01EC, 7, 0x0000, 0, NO_PAD_CTRL)
+
+#define MX6SL_PAD_LCD_DAT23__LCDIF_DAT_23 \
+ IOMUX_PAD(0x04F8, 0x01F0, 0, 0x07D4, 1, MX6SL_LCDIF_PAD_CTRL)
+#define MX6SL_PAD_LCD_DAT23__KPP_ROW_7 \
+ IOMUX_PAD(0x04F8, 0x01F0, 1, 0x0770, 1, NO_PAD_CTRL)
+#define MX6SL_PAD_LCD_DAT23__CSI_D_10 \
+ IOMUX_PAD(0x04F8, 0x01F0, 2, 0x0658, 1, NO_PAD_CTRL)
+#define MX6SL_PAD_LCD_DAT23__WEIM_WEIM_EB_2 \
+ IOMUX_PAD(0x04F8, 0x01F0, 3, 0x0000, 0, NO_PAD_CTRL)
+#define MX6SL_PAD_LCD_DAT23__GPT_CLKIN \
+ IOMUX_PAD(0x04F8, 0x01F0, 4, 0x0718, 1, NO_PAD_CTRL)
+#define MX6SL_PAD_LCD_DAT23__GPIO_3_11 \
+ IOMUX_PAD(0x04F8, 0x01F0, 5, 0x0000, 0, NO_PAD_CTRL)
+#define MX6SL_PAD_LCD_DAT23__KITTEN_TRACE_23 \
+ IOMUX_PAD(0x04F8, 0x01F0, 6, 0x0000, 0, NO_PAD_CTRL)
+#define MX6SL_PAD_LCD_DAT23__SRC_BT_CFG_31 \
+ IOMUX_PAD(0x04F8, 0x01F0, 7, 0x0000, 0, NO_PAD_CTRL)
+
+#define MX6SL_PAD_LCD_DAT3__LCDIF_DAT_3 \
+ IOMUX_PAD(0x04FC, 0x01F4, 0, 0x0784, 1, NO_PAD_CTRL)
+#define MX6SL_PAD_LCD_DAT3__ECSPI1_SCLK \
+ IOMUX_PAD(0x04FC, 0x01F4, 1, 0x067C, 1, NO_PAD_CTRL)
+#define MX6SL_PAD_LCD_DAT3__UART5_DSR \
+ IOMUX_PAD(0x04FC, 0x01F4, 2, 0x0000, 0, MX6SL_UART_PAD_CTRL)
+#define MX6SL_PAD_LCD_DAT3__PWM4_PWMO \
+ IOMUX_PAD(0x04FC, 0x01F4, 3, 0x0000, 0, NO_PAD_CTRL)
+#define MX6SL_PAD_LCD_DAT3__AUDMUX_AUD4_RXD \
+ IOMUX_PAD(0x04FC, 0x01F4, 4, 0x05E4, 1, NO_PAD_CTRL)
+#define MX6SL_PAD_LCD_DAT3__GPIO_2_23 \
+ IOMUX_PAD(0x04FC, 0x01F4, 5, 0x0000, 0, NO_PAD_CTRL)
+#define MX6SL_PAD_LCD_DAT3__KITTEN_TRACE_3 \
+ IOMUX_PAD(0x04FC, 0x01F4, 6, 0x0000, 0, NO_PAD_CTRL)
+#define MX6SL_PAD_LCD_DAT3__SRC_BT_CFG_3 \
+ IOMUX_PAD(0x04FC, 0x01F4, 7, 0x0000, 0, NO_PAD_CTRL)
+
+#define MX6SL_PAD_LCD_DAT4__LCDIF_DAT_4 \
+ IOMUX_PAD(0x0500, 0x01F8, 0, 0x0788, 1, NO_PAD_CTRL)
+#define MX6SL_PAD_LCD_DAT4__ECSPI1_SS1 \
+ IOMUX_PAD(0x0500, 0x01F8, 1, 0x0690, 1, NO_PAD_CTRL)
+#define MX6SL_PAD_LCD_DAT4__CSI_VSYNC \
+ IOMUX_PAD(0x0500, 0x01F8, 2, 0x0678, 2, NO_PAD_CTRL)
+#define MX6SL_PAD_LCD_DAT4__WDOG2_WDOG_RST_B_DEB \
+ IOMUX_PAD(0x0500, 0x01F8, 3, 0x0000, 0, NO_PAD_CTRL)
+#define MX6SL_PAD_LCD_DAT4__AUDMUX_AUD4_TXC \
+ IOMUX_PAD(0x0500, 0x01F8, 4, 0x05F4, 1, NO_PAD_CTRL)
+#define MX6SL_PAD_LCD_DAT4__GPIO_2_24 \
+ IOMUX_PAD(0x0500, 0x01F8, 5, 0x0000, 0, NO_PAD_CTRL)
+#define MX6SL_PAD_LCD_DAT4__KITTEN_TRACE_4 \
+ IOMUX_PAD(0x0500, 0x01F8, 6, 0x0000, 0, NO_PAD_CTRL)
+#define MX6SL_PAD_LCD_DAT4__SRC_BT_CFG_4 \
+ IOMUX_PAD(0x0500, 0x01F8, 7, 0x0000, 0, NO_PAD_CTRL)
+
+#define MX6SL_PAD_LCD_DAT5__LCDIF_DAT_5 \
+ IOMUX_PAD(0x0504, 0x01FC, 0, 0x078C, 1, NO_PAD_CTRL)
+#define MX6SL_PAD_LCD_DAT5__ECSPI1_SS2 \
+ IOMUX_PAD(0x0504, 0x01FC, 1, 0x0694, 1, NO_PAD_CTRL)
+#define MX6SL_PAD_LCD_DAT5__CSI_HSYNC \
+ IOMUX_PAD(0x0504, 0x01FC, 2, 0x0670, 2, NO_PAD_CTRL)
+#define MX6SL_PAD_LCD_DAT5__WEIM_WEIM_CS_3 \
+ IOMUX_PAD(0x0504, 0x01FC, 3, 0x0000, 0, NO_PAD_CTRL)
+#define MX6SL_PAD_LCD_DAT5__AUDMUX_AUD4_TXFS \
+ IOMUX_PAD(0x0504, 0x01FC, 4, 0x05F8, 1, NO_PAD_CTRL)
+#define MX6SL_PAD_LCD_DAT5__GPIO_2_25 \
+ IOMUX_PAD(0x0504, 0x01FC, 5, 0x0000, 0, NO_PAD_CTRL)
+#define MX6SL_PAD_LCD_DAT5__KITTEN_TRACE_5 \
+ IOMUX_PAD(0x0504, 0x01FC, 6, 0x0000, 0, NO_PAD_CTRL)
+#define MX6SL_PAD_LCD_DAT5__SRC_BT_CFG_5 \
+ IOMUX_PAD(0x0504, 0x01FC, 7, 0x0000, 0, NO_PAD_CTRL)
+
+#define MX6SL_PAD_LCD_DAT6__LCDIF_DAT_6 \
+ IOMUX_PAD(0x0508, 0x0200, 0, 0x0790, 1, NO_PAD_CTRL)
+#define MX6SL_PAD_LCD_DAT6__ECSPI1_SS3 \
+ IOMUX_PAD(0x0508, 0x0200, 1, 0x0698, 1, NO_PAD_CTRL)
+#define MX6SL_PAD_LCD_DAT6__CSI_PIXCLK \
+ IOMUX_PAD(0x0508, 0x0200, 2, 0x0674, 2, NO_PAD_CTRL)
+#define MX6SL_PAD_LCD_DAT6__WEIM_WEIM_D_0 \
+ IOMUX_PAD(0x0508, 0x0200, 3, 0x0000, 0, NO_PAD_CTRL)
+#define MX6SL_PAD_LCD_DAT6__AUDMUX_AUD4_TXD \
+ IOMUX_PAD(0x0508, 0x0200, 4, 0x05E8, 1, NO_PAD_CTRL)
+#define MX6SL_PAD_LCD_DAT6__GPIO_2_26 \
+ IOMUX_PAD(0x0508, 0x0200, 5, 0x0000, 0, NO_PAD_CTRL)
+#define MX6SL_PAD_LCD_DAT6__KITTEN_TRACE_6 \
+ IOMUX_PAD(0x0508, 0x0200, 6, 0x0000, 0, NO_PAD_CTRL)
+#define MX6SL_PAD_LCD_DAT6__SRC_BT_CFG_6 \
+ IOMUX_PAD(0x0508, 0x0200, 7, 0x0000, 0, NO_PAD_CTRL)
+
+#define MX6SL_PAD_LCD_DAT7__LCDIF_DAT_7 \
+ IOMUX_PAD(0x050C, 0x0204, 0, 0x0794, 1, NO_PAD_CTRL)
+#define MX6SL_PAD_LCD_DAT7__ECSPI1_RDY \
+ IOMUX_PAD(0x050C, 0x0204, 1, 0x0680, 1, NO_PAD_CTRL)
+#define MX6SL_PAD_LCD_DAT7__CSI_MCLK \
+ IOMUX_PAD(0x050C, 0x0204, 2, 0x0000, 0, NO_PAD_CTRL)
+#define MX6SL_PAD_LCD_DAT7__WEIM_WEIM_D_1 \
+ IOMUX_PAD(0x050C, 0x0204, 3, 0x0000, 0, NO_PAD_CTRL)
+#define MX6SL_PAD_LCD_DAT7__AUDMUX_AUDIO_CLK_OUT \
+ IOMUX_PAD(0x050C, 0x0204, 4, 0x0000, 0, NO_PAD_CTRL)
+#define MX6SL_PAD_LCD_DAT7__GPIO_2_27 \
+ IOMUX_PAD(0x050C, 0x0204, 5, 0x0000, 0, NO_PAD_CTRL)
+#define MX6SL_PAD_LCD_DAT7__KITTEN_TRACE_7 \
+ IOMUX_PAD(0x050C, 0x0204, 6, 0x0000, 0, NO_PAD_CTRL)
+#define MX6SL_PAD_LCD_DAT7__SRC_BT_CFG_7 \
+ IOMUX_PAD(0x050C, 0x0204, 7, 0x0000, 0, NO_PAD_CTRL)
+
+#define MX6SL_PAD_LCD_DAT8__LCDIF_DAT_8 \
+ IOMUX_PAD(0x0510, 0x0208, 0, 0x0798, 1, NO_PAD_CTRL)
+#define MX6SL_PAD_LCD_DAT8__KPP_COL_0 \
+ IOMUX_PAD(0x0510, 0x0208, 1, 0x0734, 1, NO_PAD_CTRL)
+#define MX6SL_PAD_LCD_DAT8__CSI_D_9 \
+ IOMUX_PAD(0x0510, 0x0208, 2, 0x0654, 1, NO_PAD_CTRL)
+#define MX6SL_PAD_LCD_DAT8__WEIM_WEIM_D_2 \
+ IOMUX_PAD(0x0510, 0x0208, 3, 0x0000, 0, NO_PAD_CTRL)
+#define MX6SL_PAD_LCD_DAT8__ECSPI2_SCLK \
+ IOMUX_PAD(0x0510, 0x0208, 4, 0x069C, 2, NO_PAD_CTRL)
+#define MX6SL_PAD_LCD_DAT8__GPIO_2_28 \
+ IOMUX_PAD(0x0510, 0x0208, 5, 0x0000, 0, NO_PAD_CTRL)
+#define MX6SL_PAD_LCD_DAT8__KITTEN_TRACE_8 \
+ IOMUX_PAD(0x0510, 0x0208, 6, 0x0000, 0, NO_PAD_CTRL)
+#define MX6SL_PAD_LCD_DAT8__SRC_BT_CFG_8 \
+ IOMUX_PAD(0x0510, 0x0208, 7, 0x0000, 0, NO_PAD_CTRL)
+
+#define MX6SL_PAD_LCD_DAT9__LCDIF_DAT_9 \
+ IOMUX_PAD(0x0514, 0x020C, 0, 0x079C, 1, NO_PAD_CTRL)
+#define MX6SL_PAD_LCD_DAT9__KPP_ROW_0 \
+ IOMUX_PAD(0x0514, 0x020C, 1, 0x0754, 1, NO_PAD_CTRL)
+#define MX6SL_PAD_LCD_DAT9__CSI_D_8 \
+ IOMUX_PAD(0x0514, 0x020C, 2, 0x0650, 1, NO_PAD_CTRL)
+#define MX6SL_PAD_LCD_DAT9__WEIM_WEIM_D_3 \
+ IOMUX_PAD(0x0514, 0x020C, 3, 0x0000, 0, NO_PAD_CTRL)
+#define MX6SL_PAD_LCD_DAT9__ECSPI2_MOSI \
+ IOMUX_PAD(0x0514, 0x020C, 4, 0x06A4, 2, NO_PAD_CTRL)
+#define MX6SL_PAD_LCD_DAT9__GPIO_2_29 \
+ IOMUX_PAD(0x0514, 0x020C, 5, 0x0000, 0, NO_PAD_CTRL)
+#define MX6SL_PAD_LCD_DAT9__KITTEN_TRACE_9 \
+ IOMUX_PAD(0x0514, 0x020C, 6, 0x0000, 0, NO_PAD_CTRL)
+#define MX6SL_PAD_LCD_DAT9__SRC_BT_CFG_9 \
+ IOMUX_PAD(0x0514, 0x020C, 7, 0x0000, 0, NO_PAD_CTRL)
+
+#define MX6SL_PAD_LCD_ENABLE__LCDIF_ENABLE \
+ IOMUX_PAD(0x0518, 0x0210, 0, 0x0000, 0, MX6SL_LCDIF_PAD_CTRL)
+#define MX6SL_PAD_LCD_ENABLE__USDHC4_DAT5 \
+ IOMUX_PAD(0x0518, 0x0210, 1, 0x0870, 2, MX6SL_USDHC_PAD_CTRL)
+#define MX6SL_PAD_LCD_ENABLE__LCDIF_RD_E \
+ IOMUX_PAD(0x0518, 0x0210, 2, 0x0000, 0, NO_PAD_CTRL)
+#define MX6SL_PAD_LCD_ENABLE__WEIM_WEIM_OE \
+ IOMUX_PAD(0x0518, 0x0210, 3, 0x0000, 0, NO_PAD_CTRL)
+#define MX6SL_PAD_LCD_ENABLE__UART2_TXD \
+ IOMUX_PAD(0x0518, 0x0210, 4, 0x0000, 0, MX6SL_UART_PAD_CTRL)
+#define MX6SL_PAD_LCD_ENABLE__UART2_RXD \
+ IOMUX_PAD(0x0518, 0x0210, 4, 0x0804, 2, MX6SL_UART_PAD_CTRL)
+#define MX6SL_PAD_LCD_ENABLE__GPIO_2_16 \
+ IOMUX_PAD(0x0518, 0x0210, 5, 0x0000, 0, NO_PAD_CTRL)
+#define MX6SL_PAD_LCD_ENABLE__OCOTP_CTRL_WRAPPER_FUSE_LATCHED \
+ IOMUX_PAD(0x0518, 0x0210, 6, 0x0000, 0, NO_PAD_CTRL)
+#define MX6SL_PAD_LCD_ENABLE__TPSMP_HTRANS_1 \
+ IOMUX_PAD(0x0518, 0x0210, 7, 0x0000, 0, NO_PAD_CTRL)
+
+#define MX6SL_PAD_LCD_HSYNC__LCDIF_HSYNC \
+ IOMUX_PAD(0x051C, 0x0214, 0, 0x0774, 0, MX6SL_LCDIF_PAD_CTRL)
+#define MX6SL_PAD_LCD_HSYNC__USDHC4_DAT6 \
+ IOMUX_PAD(0x051C, 0x0214, 1, 0x0874, 2, MX6SL_USDHC_PAD_CTRL)
+#define MX6SL_PAD_LCD_HSYNC__LCDIF_CS \
+ IOMUX_PAD(0x051C, 0x0214, 2, 0x0000, 0, NO_PAD_CTRL)
+#define MX6SL_PAD_LCD_HSYNC__WEIM_WEIM_CS_0 \
+ IOMUX_PAD(0x051C, 0x0214, 3, 0x0000, 0, NO_PAD_CTRL)
+#define MX6SL_PAD_LCD_HSYNC__UART2_TXD \
+ IOMUX_PAD(0x051C, 0x0214, 4, 0x0000, 0, MX6SL_UART_PAD_CTRL)
+#define MX6SL_PAD_LCD_HSYNC__UART2_RXD \
+ IOMUX_PAD(0x051C, 0x0214, 4, 0x0804, 3, MX6SL_UART_PAD_CTRL)
+#define MX6SL_PAD_LCD_HSYNC__GPIO_2_17 \
+ IOMUX_PAD(0x051C, 0x0214, 5, 0x0000, 0, NO_PAD_CTRL)
+#define MX6SL_PAD_LCD_HSYNC__KITTEN_TRCLK \
+ IOMUX_PAD(0x051C, 0x0214, 6, 0x0000, 0, NO_PAD_CTRL)
+#define MX6SL_PAD_LCD_HSYNC__TPSMP_HDATA_16 \
+ IOMUX_PAD(0x051C, 0x0214, 7, 0x0000, 0, NO_PAD_CTRL)
+
+#define MX6SL_PAD_LCD_RESET__LCDIF_RESET \
+ IOMUX_PAD(0x0520, 0x0218, 0, 0x0000, 0, MX6SL_LCDIF_PAD_CTRL)
+#define MX6SL_PAD_LCD_RESET__WEIM_WEIM_DTACK_B \
+ IOMUX_PAD(0x0520, 0x0218, 1, 0x0880, 1, NO_PAD_CTRL)
+#define MX6SL_PAD_LCD_RESET__LCDIF_BUSY \
+ IOMUX_PAD(0x0520, 0x0218, 2, 0x0774, 1, NO_PAD_CTRL)
+#define MX6SL_PAD_LCD_RESET__WEIM_WEIM_WAIT \
+ IOMUX_PAD(0x0520, 0x0218, 3, 0x0884, 1, NO_PAD_CTRL)
+#define MX6SL_PAD_LCD_RESET__UART2_CTS \
+ IOMUX_PAD(0x0520, 0x0218, 4, 0x0000, 0, MX6SL_UART_PAD_CTRL)
+#define MX6SL_PAD_LCD_RESET__UART2_RTS \
+ IOMUX_PAD(0x0520, 0x0218, 4, 0x0800, 2, MX6SL_UART_PAD_CTRL)
+#define MX6SL_PAD_LCD_RESET__GPIO_2_19 \
+ IOMUX_PAD(0x0520, 0x0218, 5, 0x0000, 0, NO_PAD_CTRL)
+#define MX6SL_PAD_LCD_RESET__CCM_PMIC_RDY \
+ IOMUX_PAD(0x0520, 0x0218, 6, 0x062C, 1, NO_PAD_CTRL)
+#define MX6SL_PAD_LCD_RESET__TPSMP_HDATA_DIR \
+ IOMUX_PAD(0x0520, 0x0218, 7, 0x0000, 0, NO_PAD_CTRL)
+
+#define MX6SL_PAD_LCD_VSYNC__LCDIF_VSYNC \
+ IOMUX_PAD(0x0524, 0x021C, 0, 0x0000, 0, MX6SL_LCDIF_PAD_CTRL)
+#define MX6SL_PAD_LCD_VSYNC__USDHC4_DAT7 \
+ IOMUX_PAD(0x0524, 0x021C, 1, 0x0878, 2, MX6SL_USDHC_PAD_CTRL)
+#define MX6SL_PAD_LCD_VSYNC__LCDIF_RS \
+ IOMUX_PAD(0x0524, 0x021C, 2, 0x0000, 0, NO_PAD_CTRL)
+#define MX6SL_PAD_LCD_VSYNC__WEIM_WEIM_CS_1 \
+ IOMUX_PAD(0x0524, 0x021C, 3, 0x0000, 0, NO_PAD_CTRL)
+#define MX6SL_PAD_LCD_VSYNC__UART2_CTS \
+ IOMUX_PAD(0x0524, 0x021C, 4, 0x0000, 0, MX6SL_UART_PAD_CTRL)
+#define MX6SL_PAD_LCD_VSYNC__UART2_RTS \
+ IOMUX_PAD(0x0524, 0x021C, 4, 0x0800, 3, MX6SL_UART_PAD_CTRL)
+#define MX6SL_PAD_LCD_VSYNC__GPIO_2_18 \
+ IOMUX_PAD(0x0524, 0x021C, 5, 0x0000, 0, NO_PAD_CTRL)
+#define MX6SL_PAD_LCD_VSYNC__KITTEN_TRCTL \
+ IOMUX_PAD(0x0524, 0x021C, 6, 0x0000, 0, NO_PAD_CTRL)
+#define MX6SL_PAD_LCD_VSYNC__TPSMP_HDATA_17 \
+ IOMUX_PAD(0x0524, 0x021C, 7, 0x0000, 0, NO_PAD_CTRL)
+
+#define MX6SL_PAD_PMIC_ON_REQ__SNVS_LP_WRAPPER_SNVS_WAKEUP_ALARM \
+ IOMUX_PAD(NO_PAD_I, NO_MUX_I, 0, 0x0000, 0, NO_PAD_CTRL)
+
+#define MX6SL_PAD_PMIC_STBY_REQ__CCM_PMIC_VSTBY_REQ \
+ IOMUX_PAD(NO_PAD_I, NO_MUX_I, 0, 0x0000, 0, NO_PAD_CTRL)
+
+#define MX6SL_PAD_POR_B__SRC_POR_B \
+ IOMUX_PAD(NO_PAD_I, NO_MUX_I, 0, 0x0000, 0, NO_PAD_CTRL)
+
+#define MX6SL_PAD_PWM1__PWM1_PWMO \
+ IOMUX_PAD(0x0528, 0x0220, 0, 0x0000, 0, NO_PAD_CTRL)
+#define MX6SL_PAD_PWM1__CCM_CLKO \
+ IOMUX_PAD(0x0528, 0x0220, 1, 0x0000, 0, NO_PAD_CTRL)
+#define MX6SL_PAD_PWM1__AUDMUX_AUDIO_CLK_OUT \
+ IOMUX_PAD(0x0528, 0x0220, 2, 0x0000, 0, NO_PAD_CTRL)
+#define MX6SL_PAD_PWM1__FEC_REF_OUT \
+ IOMUX_PAD(0x0528, 0x0220, 3, 0x0000, 0, NO_PAD_CTRL)
+#define MX6SL_PAD_PWM1__CSI_MCLK \
+ IOMUX_PAD(0x0528, 0x0220, 4, 0x0000, 0, NO_PAD_CTRL)
+#define MX6SL_PAD_PWM1__GPIO_3_23 \
+ IOMUX_PAD(0x0528, 0x0220, 5, 0x0000, 0, NO_PAD_CTRL)
+#define MX6SL_PAD_PWM1__EPIT1_EPITO \
+ IOMUX_PAD(0x0528, 0x0220, 6, 0x0000, 0, NO_PAD_CTRL)
+#define MX6SL_PAD_PWM1__OBSERVE_MUX_OUT_4 \
+ IOMUX_PAD(0x0528, 0x0220, 7, 0x0000, 0, NO_PAD_CTRL)
+
+#define MX6SL_PAD_REF_CLK_24M__ANATOP_ANATOP_24M_OUT \
+ IOMUX_PAD(0x052C, 0x0224, 0, 0x0000, 0, NO_PAD_CTRL)
+#define MX6SL_PAD_REF_CLK_24M__I2C3_SCL \
+ IOMUX_PAD(0x052C, 0x0224, 1 | IOMUX_CONFIG_SION, 0x072C, 2, MX6SL_I2C_PAD_CTRL)
+#define MX6SL_PAD_REF_CLK_24M__PWM3_PWMO \
+ IOMUX_PAD(0x052C, 0x0224, 2, 0x0000, 0, NO_PAD_CTRL)
+#define MX6SL_PAD_REF_CLK_24M__ANATOP_USBOTG2_ID \
+ IOMUX_PAD(0x052C, 0x0224, 3, 0x05E0, 2, NO_PAD_CTRL)
+#define MX6SL_PAD_REF_CLK_24M__CCM_PMIC_RDY \
+ IOMUX_PAD(0x052C, 0x0224, 4, 0x062C, 2, NO_PAD_CTRL)
+#define MX6SL_PAD_REF_CLK_24M__GPIO_3_21 \
+ IOMUX_PAD(0x052C, 0x0224, 5, 0x0000, 0, NO_PAD_CTRL)
+#define MX6SL_PAD_REF_CLK_24M__USDHC3_WP \
+ IOMUX_PAD(0x052C, 0x0224, 6, 0x084C, 3, MX6SL_USDHC_PAD_CTRL)
+#define MX6SL_PAD_REF_CLK_24M__TPSMP_HDATA_19 \
+ IOMUX_PAD(0x052C, 0x0224, 7, 0x0000, 0, NO_PAD_CTRL)
+
+#define MX6SL_PAD_REF_CLK_32K__ANATOP_ANATOP_32K_OUT \
+ IOMUX_PAD(0x0530, 0x0228, 0, 0x0000, 0, NO_PAD_CTRL)
+#define MX6SL_PAD_REF_CLK_32K__I2C3_SDA \
+ IOMUX_PAD(0x0530, 0x0228, 1 | IOMUX_CONFIG_SION, 0x0730, 2, MX6SL_I2C_PAD_CTRL)
+#define MX6SL_PAD_REF_CLK_32K__PWM4_PWMO \
+ IOMUX_PAD(0x0530, 0x0228, 2, 0x0000, 0, NO_PAD_CTRL)
+#define MX6SL_PAD_REF_CLK_32K__ANATOP_USBOTG1_ID \
+ IOMUX_PAD(0x0530, 0x0228, 3, 0x05DC, 3, NO_PAD_CTRL)
+#define MX6SL_PAD_REF_CLK_32K__USDHC1_LCTL \
+ IOMUX_PAD(0x0530, 0x0228, 4, 0x0000, 0, MX6SL_USDHC_PAD_CTRL)
+#define MX6SL_PAD_REF_CLK_32K__GPIO_3_22 \
+ IOMUX_PAD(0x0530, 0x0228, 5, 0x0000, 0, MX6SL_USDHC_PAD_CTRL)
+#define MX6SL_PAD_REF_CLK_32K__USDHC3_CD \
+ IOMUX_PAD(0x0530, 0x0228, 6, 0x0838, 3, MX6SL_USDHC_PAD_CTRL)
+#define MX6SL_PAD_REF_CLK_32K__OBSERVE_MUX_OUT_3 \
+ IOMUX_PAD(0x0530, 0x0228, 7, 0x0000, 0, NO_PAD_CTRL)
+
+#define MX6SL_PAD_RESET_IN_B__SRC_RESET_B \
+ IOMUX_PAD(NO_PAD_I, NO_MUX_I, 0, 0x0000, 0, NO_PAD_CTRL)
+
+#define MX6SL_PAD_SD1_CLK__USDHC1_CLK \
+ IOMUX_PAD(0x0534, 0x022C, 0, 0x0000, 0, MX6SL_USDHC_PAD_CTRL)
+#define MX6SL_PAD_SD1_CLK__FEC_MDIO \
+ IOMUX_PAD(0x0534, 0x022C, 1, 0x06F4, 2, NO_PAD_CTRL)
+#define MX6SL_PAD_SD1_CLK__KPP_COL_0 \
+ IOMUX_PAD(0x0534, 0x022C, 2, 0x0734, 2, NO_PAD_CTRL)
+#define MX6SL_PAD_SD1_CLK__EPDC_SDCE_4 \
+ IOMUX_PAD(0x0534, 0x022C, 3, 0x0000, 0, NO_PAD_CTRL)
+#define MX6SL_PAD_SD1_CLK__MSHC_SCLK \
+ IOMUX_PAD(0x0534, 0x022C, 4, 0x07E8, 1, NO_PAD_CTRL)
+#define MX6SL_PAD_SD1_CLK__GPIO_5_15 \
+ IOMUX_PAD(0x0534, 0x022C, 5, 0x0000, 0, NO_PAD_CTRL)
+#define MX6SL_PAD_SD1_CLK__ANATOP_ANATOP_TESTO_2 \
+ IOMUX_PAD(0x0534, 0x022C, 6, 0x0000, 0, NO_PAD_CTRL)
+#define MX6SL_PAD_SD1_CLK__PL301_SIM_MX6SL_PER1_HADDR_25 \
+ IOMUX_PAD(0x0534, 0x022C, 7, 0x0000, 0, NO_PAD_CTRL)
+
+#define MX6SL_PAD_SD1_CMD__USDHC1_CMD \
+ IOMUX_PAD(0x0538, 0x0230, 0, 0x0000, 0, MX6SL_USDHC_PAD_CTRL)
+#define MX6SL_PAD_SD1_CMD__FEC_TX_CLK \
+ IOMUX_PAD(0x0538, 0x0230, 1, 0x070C, 2, NO_PAD_CTRL)
+#define MX6SL_PAD_SD1_CMD__KPP_ROW_0 \
+ IOMUX_PAD(0x0538, 0x0230, 2, 0x0754, 2, NO_PAD_CTRL)
+#define MX6SL_PAD_SD1_CMD__EPDC_SDCE_5 \
+ IOMUX_PAD(0x0538, 0x0230, 3, 0x0000, 0, NO_PAD_CTRL)
+#define MX6SL_PAD_SD1_CMD__MSHC_BS \
+ IOMUX_PAD(0x0538, 0x0230, 4, 0x0000, 0, NO_PAD_CTRL)
+#define MX6SL_PAD_SD1_CMD__GPIO_5_14 \
+ IOMUX_PAD(0x0538, 0x0230, 5, 0x0000, 0, NO_PAD_CTRL)
+#define MX6SL_PAD_SD1_CMD__ANATOP_ANATOP_TESTO_3 \
+ IOMUX_PAD(0x0538, 0x0230, 6, 0x0000, 0, NO_PAD_CTRL)
+#define MX6SL_PAD_SD1_CMD__PL301_SIM_MX6SL_PER1_HADDR_26 \
+ IOMUX_PAD(0x0538, 0x0230, 7, 0x0000, 0, NO_PAD_CTRL)
+
+#define MX6SL_PAD_SD1_DAT0__USDHC1_DAT0 \
+ IOMUX_PAD(0x053C, 0x0234, 0, 0x0000, 0, MX6SL_USDHC_PAD_CTRL)
+#define MX6SL_PAD_SD1_DAT0__FEC_RX_ER \
+ IOMUX_PAD(0x053C, 0x0234, 1, 0x0708, 2, NO_PAD_CTRL)
+#define MX6SL_PAD_SD1_DAT0__KPP_COL_1 \
+ IOMUX_PAD(0x053C, 0x0234, 2, 0x0738, 2, NO_PAD_CTRL)
+#define MX6SL_PAD_SD1_DAT0__EPDC_SDCE_6 \
+ IOMUX_PAD(0x053C, 0x0234, 3, 0x0000, 0, NO_PAD_CTRL)
+#define MX6SL_PAD_SD1_DAT0__MSHC_DATA_0 \
+ IOMUX_PAD(0x053C, 0x0234, 4, 0x07D8, 1, NO_PAD_CTRL)
+#define MX6SL_PAD_SD1_DAT0__GPIO_5_11 \
+ IOMUX_PAD(0x053C, 0x0234, 5, 0x0000, 0, NO_PAD_CTRL)
+#define MX6SL_PAD_SD1_DAT0__ANATOP_ANATOP_TESTO_4 \
+ IOMUX_PAD(0x053C, 0x0234, 6, 0x0000, 0, NO_PAD_CTRL)
+#define MX6SL_PAD_SD1_DAT0__PL301_SIM_MX6SL_PER1_HADDR_27 \
+ IOMUX_PAD(0x053C, 0x0234, 7, 0x0000, 0, NO_PAD_CTRL)
+
+#define MX6SL_PAD_SD1_DAT1__USDHC1_DAT1 \
+ IOMUX_PAD(0x0540, 0x0238, 0, 0x0000, 0, MX6SL_USDHC_PAD_CTRL)
+#define MX6SL_PAD_SD1_DAT1__FEC_RX_DV \
+ IOMUX_PAD(0x0540, 0x0238, 1, 0x0704, 2, NO_PAD_CTRL)
+#define MX6SL_PAD_SD1_DAT1__KPP_ROW_1 \
+ IOMUX_PAD(0x0540, 0x0238, 2, 0x0758, 2, NO_PAD_CTRL)
+#define MX6SL_PAD_SD1_DAT1__EPDC_SDCE_7 \
+ IOMUX_PAD(0x0540, 0x0238, 3, 0x0000, 0, NO_PAD_CTRL)
+#define MX6SL_PAD_SD1_DAT1__MSHC_DATA_1 \
+ IOMUX_PAD(0x0540, 0x0238, 4, 0x07DC, 1, NO_PAD_CTRL)
+#define MX6SL_PAD_SD1_DAT1__GPIO_5_8 \
+ IOMUX_PAD(0x0540, 0x0238, 5, 0x0000, 0, NO_PAD_CTRL)
+#define MX6SL_PAD_SD1_DAT1__ANATOP_ANATOP_TESTO_5 \
+ IOMUX_PAD(0x0540, 0x0238, 6, 0x0000, 0, NO_PAD_CTRL)
+#define MX6SL_PAD_SD1_DAT1__PL301_SIM_MX6SL_PER1_HADDR_28 \
+ IOMUX_PAD(0x0540, 0x0238, 7, 0x0000, 0, NO_PAD_CTRL)
+
+#define MX6SL_PAD_SD1_DAT2__USDHC1_DAT2 \
+ IOMUX_PAD(0x0544, 0x023C, 0, 0x0000, 0, MX6SL_USDHC_PAD_CTRL)
+#define MX6SL_PAD_SD1_DAT2__FEC_RDATA_1 \
+ IOMUX_PAD(0x0544, 0x023C, 1, 0x06FC, 2, NO_PAD_CTRL)
+#define MX6SL_PAD_SD1_DAT2__KPP_COL_2 \
+ IOMUX_PAD(0x0544, 0x023C, 2, 0x073C, 2, NO_PAD_CTRL)
+#define MX6SL_PAD_SD1_DAT2__EPDC_SDCE_8 \
+ IOMUX_PAD(0x0544, 0x023C, 3, 0x0000, 0, NO_PAD_CTRL)
+#define MX6SL_PAD_SD1_DAT2__MSHC_DATA_2 \
+ IOMUX_PAD(0x0544, 0x023C, 4, 0x07E0, 1, NO_PAD_CTRL)
+#define MX6SL_PAD_SD1_DAT2__GPIO_5_13 \
+ IOMUX_PAD(0x0544, 0x023C, 5, 0x0000, 0, NO_PAD_CTRL)
+#define MX6SL_PAD_SD1_DAT2__ANATOP_ANATOP_TESTO_6 \
+ IOMUX_PAD(0x0544, 0x023C, 6, 0x0000, 0, NO_PAD_CTRL)
+#define MX6SL_PAD_SD1_DAT2__PL301_SIM_MX6SL_PER1_HADDR_29 \
+ IOMUX_PAD(0x0544, 0x023C, 7, 0x0000, 0, NO_PAD_CTRL)
+
+#define MX6SL_PAD_SD1_DAT3__USDHC1_DAT3 \
+ IOMUX_PAD(0x0548, 0x0240, 0, 0x0000, 0, MX6SL_USDHC_PAD_CTRL)
+#define MX6SL_PAD_SD1_DAT3__FEC_TDATA_0 \
+ IOMUX_PAD(0x0548, 0x0240, 1, 0x0000, 0, NO_PAD_CTRL)
+#define MX6SL_PAD_SD1_DAT3__KPP_ROW_2 \
+ IOMUX_PAD(0x0548, 0x0240, 2, 0x075C, 2, NO_PAD_CTRL)
+#define MX6SL_PAD_SD1_DAT3__EPDC_SDCE_9 \
+ IOMUX_PAD(0x0548, 0x0240, 3, 0x0000, 0, NO_PAD_CTRL)
+#define MX6SL_PAD_SD1_DAT3__MSHC_DATA_3 \
+ IOMUX_PAD(0x0548, 0x0240, 4, 0x07E4, 1, NO_PAD_CTRL)
+#define MX6SL_PAD_SD1_DAT3__GPIO_5_6 \
+ IOMUX_PAD(0x0548, 0x0240, 5, 0x0000, 0, NO_PAD_CTRL)
+#define MX6SL_PAD_SD1_DAT3__ANATOP_ANATOP_TESTO_7 \
+ IOMUX_PAD(0x0548, 0x0240, 6, 0x0000, 0, NO_PAD_CTRL)
+#define MX6SL_PAD_SD1_DAT3__PL301_SIM_MX6SL_PER1_HADDR_30 \
+ IOMUX_PAD(0x0548, 0x0240, 7, 0x0000, 0, NO_PAD_CTRL)
+
+#define MX6SL_PAD_SD1_DAT4__USDHC1_DAT4 \
+ IOMUX_PAD(0x054C, 0x0244, 0, 0x0000, 0, MX6SL_USDHC_PAD_CTRL)
+#define MX6SL_PAD_SD1_DAT4__FEC_MDC \
+ IOMUX_PAD(0x054C, 0x0244, 1, 0x0000, 0, NO_PAD_CTRL)
+#define MX6SL_PAD_SD1_DAT4__KPP_COL_3 \
+ IOMUX_PAD(0x054C, 0x0244, 2, 0x0740, 2, NO_PAD_CTRL)
+#define MX6SL_PAD_SD1_DAT4__EPDC_SDCLKN \
+ IOMUX_PAD(0x054C, 0x0244, 3, 0x0000, 0, NO_PAD_CTRL)
+#define MX6SL_PAD_SD1_DAT4__UART4_TXD \
+ IOMUX_PAD(0x054C, 0x0244, 4, 0x0000, 0, MX6SL_UART_PAD_CTRL)
+#define MX6SL_PAD_SD1_DAT4__UART4_RXD \
+ IOMUX_PAD(0x054C, 0x0244, 4, 0x0814, 4, MX6SL_UART_PAD_CTRL)
+#define MX6SL_PAD_SD1_DAT4__GPIO_5_12 \
+ IOMUX_PAD(0x054C, 0x0244, 5, 0x0000, 0, NO_PAD_CTRL)
+#define MX6SL_PAD_SD1_DAT4__ANATOP_ANATOP_TESTO_8 \
+ IOMUX_PAD(0x054C, 0x0244, 6, 0x0000, 0, NO_PAD_CTRL)
+#define MX6SL_PAD_SD1_DAT4__PL301_SIM_MX6SL_PER1_HADDR_31 \
+ IOMUX_PAD(0x054C, 0x0244, 7, 0x0000, 0, NO_PAD_CTRL)
+
+#define MX6SL_PAD_SD1_DAT5__USDHC1_DAT5 \
+ IOMUX_PAD(0x0550, 0x0248, 0, 0x0000, 0, MX6SL_USDHC_PAD_CTRL)
+#define MX6SL_PAD_SD1_DAT5__FEC_RDATA_0 \
+ IOMUX_PAD(0x0550, 0x0248, 1, 0x06F8, 2, NO_PAD_CTRL)
+#define MX6SL_PAD_SD1_DAT5__KPP_ROW_3 \
+ IOMUX_PAD(0x0550, 0x0248, 2, 0x0760, 2, NO_PAD_CTRL)
+#define MX6SL_PAD_SD1_DAT5__EPDC_SDOED \
+ IOMUX_PAD(0x0550, 0x0248, 3, 0x0000, 0, NO_PAD_CTRL)
+#define MX6SL_PAD_SD1_DAT5__UART4_TXD \
+ IOMUX_PAD(0x0550, 0x0248, 4, 0x0000, 0, MX6SL_UART_PAD_CTRL)
+#define MX6SL_PAD_SD1_DAT5__UART4_RXD \
+ IOMUX_PAD(0x0550, 0x0248, 4, 0x0814, 5, MX6SL_UART_PAD_CTRL)
+#define MX6SL_PAD_SD1_DAT5__GPIO_5_9 \
+ IOMUX_PAD(0x0550, 0x0248, 5, 0x0000, 0, NO_PAD_CTRL)
+#define MX6SL_PAD_SD1_DAT5__ANATOP_ANATOP_TESTO_9 \
+ IOMUX_PAD(0x0550, 0x0248, 6, 0x0000, 0, NO_PAD_CTRL)
+#define MX6SL_PAD_SD1_DAT5__PL301_SIM_MX6SL_PER1_HPROT_3 \
+ IOMUX_PAD(0x0550, 0x0248, 7, 0x0000, 0, NO_PAD_CTRL)
+
+#define MX6SL_PAD_SD1_DAT6__USDHC1_DAT6 \
+ IOMUX_PAD(0x0554, 0x024C, 0, 0x0000, 0, MX6SL_USDHC_PAD_CTRL)
+#define MX6SL_PAD_SD1_DAT6__FEC_TX_EN \
+ IOMUX_PAD(0x0554, 0x024C, 1, 0x0000, 0, NO_PAD_CTRL)
+#define MX6SL_PAD_SD1_DAT6__KPP_COL_4 \
+ IOMUX_PAD(0x0554, 0x024C, 2, 0x0744, 2, NO_PAD_CTRL)
+#define MX6SL_PAD_SD1_DAT6__EPDC_SDOEZ \
+ IOMUX_PAD(0x0554, 0x024C, 3, 0x0000, 0, NO_PAD_CTRL)
+#define MX6SL_PAD_SD1_DAT6__UART4_CTS \
+ IOMUX_PAD(0x0554, 0x024C, 4, 0x0000, 0, MX6SL_UART_PAD_CTRL)
+#define MX6SL_PAD_SD1_DAT6__UART4_RTS \
+ IOMUX_PAD(0x0554, 0x024C, 4, 0x0810, 4, MX6SL_UART_PAD_CTRL)
+#define MX6SL_PAD_SD1_DAT6__GPIO_5_7 \
+ IOMUX_PAD(0x0554, 0x024C, 5, 0x0000, 0, NO_PAD_CTRL)
+#define MX6SL_PAD_SD1_DAT6__ANATOP_ANATOP_TESTO_10 \
+ IOMUX_PAD(0x0554, 0x024C, 6, 0x0000, 0, NO_PAD_CTRL)
+#define MX6SL_PAD_SD1_DAT6__PL301_SIM_MX6SL_PER1_HPROT_2 \
+ IOMUX_PAD(0x0554, 0x024C, 7, 0x0000, 0, NO_PAD_CTRL)
+
+#define MX6SL_PAD_SD1_DAT7__USDHC1_DAT7 \
+ IOMUX_PAD(0x0558, 0x0250, 0, 0x0000, 0, MX6SL_USDHC_PAD_CTRL)
+#define MX6SL_PAD_SD1_DAT7__FEC_TDATA_1 \
+ IOMUX_PAD(0x0558, 0x0250, 1, 0x0000, 0, NO_PAD_CTRL)
+#define MX6SL_PAD_SD1_DAT7__KPP_ROW_4 \
+ IOMUX_PAD(0x0558, 0x0250, 2, 0x0764, 2, NO_PAD_CTRL)
+#define MX6SL_PAD_SD1_DAT7__CCM_PMIC_RDY \
+ IOMUX_PAD(0x0558, 0x0250, 3, 0x062C, 3, NO_PAD_CTRL)
+#define MX6SL_PAD_SD1_DAT7__UART4_CTS \
+ IOMUX_PAD(0x0558, 0x0250, 4, 0x0000, 0, MX6SL_UART_PAD_CTRL)
+#define MX6SL_PAD_SD1_DAT7__UART4_RTS \
+ IOMUX_PAD(0x0558, 0x0250, 4, 0x0810, 5, MX6SL_UART_PAD_CTRL)
+#define MX6SL_PAD_SD1_DAT7__GPIO_5_10 \
+ IOMUX_PAD(0x0558, 0x0250, 5, 0x0000, 0, NO_PAD_CTRL)
+#define MX6SL_PAD_SD1_DAT7__ANATOP_ANATOP_TESTO_11 \
+ IOMUX_PAD(0x0558, 0x0250, 6, 0x0000, 0, NO_PAD_CTRL)
+#define MX6SL_PAD_SD1_DAT7__PL301_SIM_MX6SL_PER1_HMASTLOCK \
+ IOMUX_PAD(0x0558, 0x0250, 7, 0x0000, 0, NO_PAD_CTRL)
+
+#define MX6SL_PAD_SD2_CLK__USDHC2_CLK \
+ IOMUX_PAD(0x055C, 0x0254, 0, 0x0000, 0, MX6SL_USDHC_PAD_CTRL)
+#define MX6SL_PAD_SD2_CLK__AUDMUX_AUD4_RXFS \
+ IOMUX_PAD(0x055C, 0x0254, 1, 0x05F0, 2, NO_PAD_CTRL)
+#define MX6SL_PAD_SD2_CLK__ECSPI3_SCLK \
+ IOMUX_PAD(0x055C, 0x0254, 2, 0x06B0, 2, NO_PAD_CTRL)
+#define MX6SL_PAD_SD2_CLK__CSI_D_0 \
+ IOMUX_PAD(0x055C, 0x0254, 3, 0x0630, 2, NO_PAD_CTRL)
+#define MX6SL_PAD_SD2_CLK__OSC32K_32K_OUT \
+ IOMUX_PAD(0x055C, 0x0254, 4, 0x0000, 0, NO_PAD_CTRL)
+#define MX6SL_PAD_SD2_CLK__GPIO_5_5 \
+ IOMUX_PAD(0x055C, 0x0254, 5, 0x0000, 0, NO_PAD_CTRL)
+#define MX6SL_PAD_SD2_CLK__ANATOP_ANATOP_TESTO_13 \
+ IOMUX_PAD(0x055C, 0x0254, 6, 0x0000, 0, NO_PAD_CTRL)
+#define MX6SL_PAD_SD2_CLK__PL301_SIM_MX6SL_PER1_HPROT_1 \
+ IOMUX_PAD(0x055C, 0x0254, 7, 0x07EC, 1, NO_PAD_CTRL)
+
+#define MX6SL_PAD_SD2_CMD__USDHC2_CMD \
+ IOMUX_PAD(0x0560, 0x0258, 0, 0x0000, 0, MX6SL_USDHC_PAD_CTRL)
+#define MX6SL_PAD_SD2_CMD__AUDMUX_AUD4_RXC \
+ IOMUX_PAD(0x0560, 0x0258, 1, 0x05EC, 2, NO_PAD_CTRL)
+#define MX6SL_PAD_SD2_CMD__ECSPI3_SS0 \
+ IOMUX_PAD(0x0560, 0x0258, 2, 0x06C0, 2, NO_PAD_CTRL)
+#define MX6SL_PAD_SD2_CMD__CSI_D_1 \
+ IOMUX_PAD(0x0560, 0x0258, 3, 0x0634, 2, NO_PAD_CTRL)
+#define MX6SL_PAD_SD2_CMD__EPIT1_EPITO \
+ IOMUX_PAD(0x0560, 0x0258, 4, 0x0000, 0, NO_PAD_CTRL)
+#define MX6SL_PAD_SD2_CMD__GPIO_5_4 \
+ IOMUX_PAD(0x0560, 0x0258, 5, 0x0000, 0, NO_PAD_CTRL)
+#define MX6SL_PAD_SD2_CMD__ANATOP_ANATOP_TESTO_14 \
+ IOMUX_PAD(0x0560, 0x0258, 6, 0x0000, 0, NO_PAD_CTRL)
+#define MX6SL_PAD_SD2_CMD__PL301_SIM_MX6SL_PER1_HADDR_21 \
+ IOMUX_PAD(0x0560, 0x0258, 7, 0x0000, 0, NO_PAD_CTRL)
+
+#define MX6SL_PAD_SD2_DAT0__USDHC2_DAT0 \
+ IOMUX_PAD(0x0564, 0x025C, 0, 0x0000, 0, MX6SL_USDHC_PAD_CTRL)
+#define MX6SL_PAD_SD2_DAT0__AUDMUX_AUD4_RXD \
+ IOMUX_PAD(0x0564, 0x025C, 1, 0x05E4, 2, NO_PAD_CTRL)
+#define MX6SL_PAD_SD2_DAT0__ECSPI3_MOSI \
+ IOMUX_PAD(0x0564, 0x025C, 2, 0x06BC, 2, NO_PAD_CTRL)
+#define MX6SL_PAD_SD2_DAT0__CSI_D_2 \
+ IOMUX_PAD(0x0564, 0x025C, 3, 0x0638, 2, NO_PAD_CTRL)
+#define MX6SL_PAD_SD2_DAT0__UART5_CTS \
+ IOMUX_PAD(0x0564, 0x025C, 4, 0x0000, 0, MX6SL_UART_PAD_CTRL)
+#define MX6SL_PAD_SD2_DAT0__UART5_RTS \
+ IOMUX_PAD(0x0564, 0x025C, 4, 0x0818, 4, MX6SL_UART_PAD_CTRL)
+#define MX6SL_PAD_SD2_DAT0__GPIO_5_1 \
+ IOMUX_PAD(0x0564, 0x025C, 5, 0x0000, 0, NO_PAD_CTRL)
+#define MX6SL_PAD_SD2_DAT0__ANATOP_ANATOP_TESTO_15 \
+ IOMUX_PAD(0x0564, 0x025C, 6, 0x0000, 0, NO_PAD_CTRL)
+#define MX6SL_PAD_SD2_DAT0__PL301_SIM_MX6SL_PER1_HPROT_0 \
+ IOMUX_PAD(0x0564, 0x025C, 7, 0x0000, 0, NO_PAD_CTRL)
+
+#define MX6SL_PAD_SD2_DAT1__USDHC2_DAT1 \
+ IOMUX_PAD(0x0568, 0x0260, 0, 0x0000, 0, MX6SL_USDHC_PAD_CTRL)
+#define MX6SL_PAD_SD2_DAT1__AUDMUX_AUD4_TXC \
+ IOMUX_PAD(0x0568, 0x0260, 1, 0x05F4, 2, NO_PAD_CTRL)
+#define MX6SL_PAD_SD2_DAT1__ECSPI3_MISO \
+ IOMUX_PAD(0x0568, 0x0260, 2, 0x06B8, 2, NO_PAD_CTRL)
+#define MX6SL_PAD_SD2_DAT1__CSI_D_3 \
+ IOMUX_PAD(0x0568, 0x0260, 3, 0x063C, 2, NO_PAD_CTRL)
+#define MX6SL_PAD_SD2_DAT1__UART5_CTS \
+ IOMUX_PAD(0x0568, 0x0260, 4, 0x0000, 0, MX6SL_UART_PAD_CTRL)
+#define MX6SL_PAD_SD2_DAT1__UART5_RTS \
+ IOMUX_PAD(0x0568, 0x0260, 4, 0x0818, 5, MX6SL_UART_PAD_CTRL)
+#define MX6SL_PAD_SD2_DAT1__GPIO_4_30 \
+ IOMUX_PAD(0x0568, 0x0260, 5, 0x0000, 0, NO_PAD_CTRL)
+#define MX6SL_PAD_SD2_DAT1__MMDC_MMDC_DEBUG_39 \
+ IOMUX_PAD(0x0568, 0x0260, 6, 0x0000, 0, NO_PAD_CTRL)
+#define MX6SL_PAD_SD2_DAT1__PL301_SIM_MX6SL_PER1_HBURST_1 \
+ IOMUX_PAD(0x0568, 0x0260, 7, 0x0000, 0, NO_PAD_CTRL)
+
+#define MX6SL_PAD_SD2_DAT2__USDHC2_DAT2 \
+ IOMUX_PAD(0x056C, 0x0264, 0, 0x0000, 0, MX6SL_USDHC_PAD_CTRL)
+#define MX6SL_PAD_SD2_DAT2__AUDMUX_AUD4_TXFS \
+ IOMUX_PAD(0x056C, 0x0264, 1, 0x05F8, 2, NO_PAD_CTRL)
+#define MX6SL_PAD_SD2_DAT2__FEC_COL \
+ IOMUX_PAD(0x056C, 0x0264, 2, 0x06F0, 1, NO_PAD_CTRL)
+#define MX6SL_PAD_SD2_DAT2__CSI_D_4 \
+ IOMUX_PAD(0x056C, 0x0264, 3, 0x0640, 2, NO_PAD_CTRL)
+#define MX6SL_PAD_SD2_DAT2__UART5_TXD \
+ IOMUX_PAD(0x056C, 0x0264, 4, 0x0000, 0, MX6SL_UART_PAD_CTRL)
+#define MX6SL_PAD_SD2_DAT2__UART5_RXD \
+ IOMUX_PAD(0x056C, 0x0264, 4, 0x081C, 4, MX6SL_UART_PAD_CTRL)
+#define MX6SL_PAD_SD2_DAT2__GPIO_5_3 \
+ IOMUX_PAD(0x056C, 0x0264, 5, 0x0000, 0, NO_PAD_CTRL)
+#define MX6SL_PAD_SD2_DAT2__MMDC_MMDC_DEBUG_38 \
+ IOMUX_PAD(0x056C, 0x0264, 6, 0x0000, 0, NO_PAD_CTRL)
+#define MX6SL_PAD_SD2_DAT2__PL301_SIM_MX6SL_PER1_HADDR_22 \
+ IOMUX_PAD(0x056C, 0x0264, 7, 0x0000, 0, NO_PAD_CTRL)
+
+#define MX6SL_PAD_SD2_DAT3__USDHC2_DAT3 \
+ IOMUX_PAD(0x0570, 0x0268, 0, 0x0000, 0, MX6SL_USDHC_PAD_CTRL)
+#define MX6SL_PAD_SD2_DAT3__AUDMUX_AUD4_TXD \
+ IOMUX_PAD(0x0570, 0x0268, 1, 0x05E8, 2, NO_PAD_CTRL)
+#define MX6SL_PAD_SD2_DAT3__FEC_RX_CLK \
+ IOMUX_PAD(0x0570, 0x0268, 2, 0x0700, 1, NO_PAD_CTRL)
+#define MX6SL_PAD_SD2_DAT3__CSI_D_5 \
+ IOMUX_PAD(0x0570, 0x0268, 3, 0x0644, 2, NO_PAD_CTRL)
+#define MX6SL_PAD_SD2_DAT3__UART5_TXD \
+ IOMUX_PAD(0x0570, 0x0268, 4, 0x0000, 0, MX6SL_UART_PAD_CTRL)
+#define MX6SL_PAD_SD2_DAT3__UART5_RXD \
+ IOMUX_PAD(0x0570, 0x0268, 4, 0x081C, 5, MX6SL_UART_PAD_CTRL)
+#define MX6SL_PAD_SD2_DAT3__GPIO_4_28 \
+ IOMUX_PAD(0x0570, 0x0268, 5, 0x0000, 0, NO_PAD_CTRL)
+#define MX6SL_PAD_SD2_DAT3__MMDC_MMDC_DEBUG_37 \
+ IOMUX_PAD(0x0570, 0x0268, 6, 0x0000, 0, NO_PAD_CTRL)
+#define MX6SL_PAD_SD2_DAT3__PL301_SIM_MX6SL_PER1_HBURST_0 \
+ IOMUX_PAD(0x0570, 0x0268, 7, 0x0000, 0, NO_PAD_CTRL)
+
+#define MX6SL_PAD_SD2_DAT4__USDHC2_DAT4 \
+ IOMUX_PAD(0x0574, 0x026C, 0, 0x0000, 0, MX6SL_USDHC_PAD_CTRL)
+#define MX6SL_PAD_SD2_DAT4__USDHC3_DAT4 \
+ IOMUX_PAD(0x0574, 0x026C, 1, 0x083C, 1, MX6SL_USDHC_PAD_CTRL)
+#define MX6SL_PAD_SD2_DAT4__UART2_TXD \
+ IOMUX_PAD(0x0574, 0x026C, 2, 0x0000, 0, MX6SL_UART_PAD_CTRL)
+#define MX6SL_PAD_SD2_DAT4__UART2_RXD \
+ IOMUX_PAD(0x0574, 0x026C, 2, 0x0804, 4, MX6SL_UART_PAD_CTRL)
+#define MX6SL_PAD_SD2_DAT4__CSI_D_6 \
+ IOMUX_PAD(0x0574, 0x026C, 3, 0x0648, 2, NO_PAD_CTRL)
+#define MX6SL_PAD_SD2_DAT4__SPDIF_OUT1 \
+ IOMUX_PAD(0x0574, 0x026C, 4, 0x0000, 0, NO_PAD_CTRL)
+#define MX6SL_PAD_SD2_DAT4__GPIO_5_2 \
+ IOMUX_PAD(0x0574, 0x026C, 5, 0x0000, 0, NO_PAD_CTRL)
+#define MX6SL_PAD_SD2_DAT4__MMDC_MMDC_DEBUG_36 \
+ IOMUX_PAD(0x0574, 0x026C, 6, 0x0000, 0, NO_PAD_CTRL)
+#define MX6SL_PAD_SD2_DAT4__PL301_SIM_MX6SL_PER1_HADDR_10 \
+ IOMUX_PAD(0x0574, 0x026C, 7, 0x0000, 0, NO_PAD_CTRL)
+
+#define MX6SL_PAD_SD2_DAT5__USDHC2_DAT5 \
+ IOMUX_PAD(0x0578, 0x0270, 0, 0x0000, 0, MX6SL_USDHC_PAD_CTRL)
+#define MX6SL_PAD_SD2_DAT5__USDHC3_DAT5 \
+ IOMUX_PAD(0x0578, 0x0270, 1, 0x0840, 1, MX6SL_USDHC_PAD_CTRL)
+#define MX6SL_PAD_SD2_DAT5__UART2_TXD \
+ IOMUX_PAD(0x0578, 0x0270, 2, 0x0000, 0, MX6SL_UART_PAD_CTRL)
+#define MX6SL_PAD_SD2_DAT5__UART2_RXD \
+ IOMUX_PAD(0x0578, 0x0270, 2, 0x0804, 5, MX6SL_UART_PAD_CTRL)
+#define MX6SL_PAD_SD2_DAT5__CSI_D_7 \
+ IOMUX_PAD(0x0578, 0x0270, 3, 0x064C, 2, NO_PAD_CTRL)
+#define MX6SL_PAD_SD2_DAT5__SPDIF_IN1 \
+ IOMUX_PAD(0x0578, 0x0270, 4, 0x07F0, 2, NO_PAD_CTRL)
+#define MX6SL_PAD_SD2_DAT5__GPIO_4_31 \
+ IOMUX_PAD(0x0578, 0x0270, 5, 0x0000, 0, NO_PAD_CTRL)
+#define MX6SL_PAD_SD2_DAT5__MMDC_MMDC_DEBUG_35 \
+ IOMUX_PAD(0x0578, 0x0270, 6, 0x0000, 0, NO_PAD_CTRL)
+#define MX6SL_PAD_SD2_DAT5__PL301_SIM_MX6SL_PER1_HADDR_20 \
+ IOMUX_PAD(0x0578, 0x0270, 7, 0x0000, 0, NO_PAD_CTRL)
+
+#define MX6SL_PAD_SD2_DAT6__USDHC2_DAT6 \
+ IOMUX_PAD(0x057C, 0x0274, 0, 0x0000, 0, MX6SL_USDHC_PAD_CTRL)
+#define MX6SL_PAD_SD2_DAT6__USDHC3_DAT6 \
+ IOMUX_PAD(0x057C, 0x0274, 1, 0x0844, 1, MX6SL_USDHC_PAD_CTRL)
+#define MX6SL_PAD_SD2_DAT6__UART2_CTS \
+ IOMUX_PAD(0x057C, 0x0274, 2, 0x0000, 0, MX6SL_UART_PAD_CTRL)
+#define MX6SL_PAD_SD2_DAT6__UART2_RTS \
+ IOMUX_PAD(0x057C, 0x0274, 2, 0x0800, 4, MX6SL_UART_PAD_CTRL)
+#define MX6SL_PAD_SD2_DAT6__CSI_D_8 \
+ IOMUX_PAD(0x057C, 0x0274, 3, 0x0650, 2, NO_PAD_CTRL)
+#define MX6SL_PAD_SD2_DAT6__USDHC2_WP \
+ IOMUX_PAD(0x057C, 0x0274, 4, 0x0834, 2, MX6SL_USDHC_PAD_CTRL)
+#define MX6SL_PAD_SD2_DAT6__GPIO_4_29 \
+ IOMUX_PAD(0x057C, 0x0274, 5, 0x0000, 0, MX6SL_USDHC_PAD_CTRL)
+#define MX6SL_PAD_SD2_DAT6__MMDC_MMDC_DEBUG_34 \
+ IOMUX_PAD(0x057C, 0x0274, 6, 0x0000, 0, NO_PAD_CTRL)
+#define MX6SL_PAD_SD2_DAT6__PL301_SIM_MX6SL_PER1_HADDR_19 \
+ IOMUX_PAD(0x057C, 0x0274, 7, 0x0000, 0, NO_PAD_CTRL)
+
+#define MX6SL_PAD_SD2_DAT7__USDHC2_DAT7 \
+ IOMUX_PAD(0x0580, 0x0278, 0, 0x0000, 0, MX6SL_USDHC_PAD_CTRL)
+#define MX6SL_PAD_SD2_DAT7__USDHC3_DAT7 \
+ IOMUX_PAD(0x0580, 0x0278, 1, 0x0848, 1, MX6SL_USDHC_PAD_CTRL)
+#define MX6SL_PAD_SD2_DAT7__UART2_CTS \
+ IOMUX_PAD(0x0580, 0x0278, 2, 0x0000, 0, MX6SL_UART_PAD_CTRL)
+#define MX6SL_PAD_SD2_DAT7__UART2_RTS \
+ IOMUX_PAD(0x0580, 0x0278, 2, 0x0800, 5, MX6SL_UART_PAD_CTRL)
+#define MX6SL_PAD_SD2_DAT7__CSI_D_9 \
+ IOMUX_PAD(0x0580, 0x0278, 3, 0x0654, 2, NO_PAD_CTRL)
+#define MX6SL_PAD_SD2_DAT7__USDHC2_CD \
+ IOMUX_PAD(0x0580, 0x0278, 4, 0x0830, 2, MX6SL_USDHC_PAD_CTRL)
+#define MX6SL_PAD_SD2_DAT7__GPIO_5_0 \
+ IOMUX_PAD(0x0580, 0x0278, 5, 0x0000, 0, MX6SL_USDHC_PAD_CTRL)
+#define MX6SL_PAD_SD2_DAT7__MMDC_MMDC_DEBUG_33 \
+ IOMUX_PAD(0x0580, 0x0278, 6, 0x0000, 0, NO_PAD_CTRL)
+#define MX6SL_PAD_SD2_DAT7__PL301_SIM_MX6SL_PER1_HADDR_16 \
+ IOMUX_PAD(0x0580, 0x0278, 7, 0x0000, 0, NO_PAD_CTRL)
+
+#define MX6SL_PAD_SD2_RST__USDHC2_RST \
+ IOMUX_PAD(0x0584, 0x027C, 0, 0x0000, 0, MX6SL_USDHC_PAD_CTRL)
+#define MX6SL_PAD_SD2_RST__FEC_REF_OUT \
+ IOMUX_PAD(0x0584, 0x027C, 1, 0x0000, 0, NO_PAD_CTRL)
+#define MX6SL_PAD_SD2_RST__WDOG2_WDOG_B \
+ IOMUX_PAD(0x0584, 0x027C, 2, 0x0000, 0, NO_PAD_CTRL)
+#define MX6SL_PAD_SD2_RST__SPDIF_OUT1 \
+ IOMUX_PAD(0x0584, 0x027C, 3, 0x0000, 0, NO_PAD_CTRL)
+#define MX6SL_PAD_SD2_RST__CSI_MCLK \
+ IOMUX_PAD(0x0584, 0x027C, 4, 0x0000, 0, NO_PAD_CTRL)
+#define MX6SL_PAD_SD2_RST__GPIO_4_27 \
+ IOMUX_PAD(0x0584, 0x027C, 5, 0x0000, 0, NO_PAD_CTRL)
+#define MX6SL_PAD_SD2_RST__ANATOP_ANATOP_TESTO_12 \
+ IOMUX_PAD(0x0584, 0x027C, 6, 0x0000, 0, NO_PAD_CTRL)
+#define MX6SL_PAD_SD2_RST__PL301_SIM_MX6SL_PER1_HBURST_2 \
+ IOMUX_PAD(0x0584, 0x027C, 7, 0x0000, 0, NO_PAD_CTRL)
+
+#define MX6SL_PAD_SD3_CLK__USDHC3_CLK \
+ IOMUX_PAD(0x0588, 0x0280, 0, 0x0000, 0, MX6SL_USDHC_PAD_CTRL)
+#define MX6SL_PAD_SD3_CLK__AUDMUX_AUD5_RXFS \
+ IOMUX_PAD(0x0588, 0x0280, 1, 0x0608, 1, NO_PAD_CTRL)
+#define MX6SL_PAD_SD3_CLK__KPP_COL_5 \
+ IOMUX_PAD(0x0588, 0x0280, 2, 0x0748, 2, NO_PAD_CTRL)
+#define MX6SL_PAD_SD3_CLK__CSI_D_10 \
+ IOMUX_PAD(0x0588, 0x0280, 3, 0x0658, 2, NO_PAD_CTRL)
+#define MX6SL_PAD_SD3_CLK__WDOG1_WDOG_RST_B_DEB \
+ IOMUX_PAD(0x0588, 0x0280, 4, 0x0000, 0, NO_PAD_CTRL)
+#define MX6SL_PAD_SD3_CLK__GPIO_5_18 \
+ IOMUX_PAD(0x0588, 0x0280, 5, 0x0000, 0, NO_PAD_CTRL)
+#define MX6SL_PAD_SD3_CLK__USB_USBOTG1_PWR \
+ IOMUX_PAD(0x0588, 0x0280, 6, 0x0000, 0, NO_PAD_CTRL)
+#define MX6SL_PAD_SD3_CLK__PL301_SIM_MX6SL_PER1_HADDR_13 \
+ IOMUX_PAD(0x0588, 0x0280, 7, 0x0000, 0, NO_PAD_CTRL)
+
+#define MX6SL_PAD_SD3_CMD__USDHC3_CMD \
+ IOMUX_PAD(0x058C, 0x0284, 0, 0x0000, 0, MX6SL_USDHC_PAD_CTRL)
+#define MX6SL_PAD_SD3_CMD__AUDMUX_AUD5_RXC \
+ IOMUX_PAD(0x058C, 0x0284, 1, 0x0604, 1, NO_PAD_CTRL)
+#define MX6SL_PAD_SD3_CMD__KPP_ROW_5 \
+ IOMUX_PAD(0x058C, 0x0284, 2, 0x0768, 2, NO_PAD_CTRL)
+#define MX6SL_PAD_SD3_CMD__CSI_D_11 \
+ IOMUX_PAD(0x058C, 0x0284, 3, 0x065C, 2, NO_PAD_CTRL)
+#define MX6SL_PAD_SD3_CMD__ANATOP_USBOTG2_ID \
+ IOMUX_PAD(0x058C, 0x0284, 4, 0x05E0, 3, NO_PAD_CTRL)
+#define MX6SL_PAD_SD3_CMD__GPIO_5_21 \
+ IOMUX_PAD(0x058C, 0x0284, 5, 0x0000, 0, NO_PAD_CTRL)
+#define MX6SL_PAD_SD3_CMD__USB_USBOTG2_PWR \
+ IOMUX_PAD(0x058C, 0x0284, 6, 0x0000, 0, NO_PAD_CTRL)
+#define MX6SL_PAD_SD3_CMD__PL301_SIM_MX6SL_PER1_HADDR_18 \
+ IOMUX_PAD(0x058C, 0x0284, 7, 0x0000, 0, NO_PAD_CTRL)
+
+#define MX6SL_PAD_SD3_DAT0__USDHC3_DAT0 \
+ IOMUX_PAD(0x0590, 0x0288, 0, 0x0000, 0, MX6SL_USDHC_PAD_CTRL)
+#define MX6SL_PAD_SD3_DAT0__AUDMUX_AUD5_RXD \
+ IOMUX_PAD(0x0590, 0x0288, 1, 0x05FC, 1, NO_PAD_CTRL)
+#define MX6SL_PAD_SD3_DAT0__KPP_COL_6 \
+ IOMUX_PAD(0x0590, 0x0288, 2, 0x074C, 2, NO_PAD_CTRL)
+#define MX6SL_PAD_SD3_DAT0__CSI_D_12 \
+ IOMUX_PAD(0x0590, 0x0288, 3, 0x0660, 1, NO_PAD_CTRL)
+#define MX6SL_PAD_SD3_DAT0__ANATOP_USBOTG1_ID \
+ IOMUX_PAD(0x0590, 0x0288, 4, 0x05DC, 4, NO_PAD_CTRL)
+#define MX6SL_PAD_SD3_DAT0__GPIO_5_19 \
+ IOMUX_PAD(0x0590, 0x0288, 5, 0x0000, 0, NO_PAD_CTRL)
+#define MX6SL_PAD_SD3_DAT0__SJC_JTAG_ACT \
+ IOMUX_PAD(0x0590, 0x0288, 6, 0x0000, 0, NO_PAD_CTRL)
+#define MX6SL_PAD_SD3_DAT0__PL301_SIM_MX6SL_PER1_HADDR_11 \
+ IOMUX_PAD(0x0590, 0x0288, 7, 0x0000, 0, NO_PAD_CTRL)
+
+#define MX6SL_PAD_SD3_DAT1__USDHC3_DAT1 \
+ IOMUX_PAD(0x0594, 0x028C, 0, 0x0000, 0, MX6SL_USDHC_PAD_CTRL)
+#define MX6SL_PAD_SD3_DAT1__AUDMUX_AUD5_TXC \
+ IOMUX_PAD(0x0594, 0x028C, 1, 0x060C, 1, NO_PAD_CTRL)
+#define MX6SL_PAD_SD3_DAT1__KPP_ROW_6 \
+ IOMUX_PAD(0x0594, 0x028C, 2, 0x076C, 2, NO_PAD_CTRL)
+#define MX6SL_PAD_SD3_DAT1__CSI_D_13 \
+ IOMUX_PAD(0x0594, 0x028C, 3, 0x0664, 1, NO_PAD_CTRL)
+#define MX6SL_PAD_SD3_DAT1__USDHC1_VSELECT \
+ IOMUX_PAD(0x0594, 0x028C, 4, 0x0000, 0, MX6SL_USDHC_PAD_CTRL)
+#define MX6SL_PAD_SD3_DAT1__GPIO_5_20 \
+ IOMUX_PAD(0x0594, 0x028C, 5, 0x0000, 0, NO_PAD_CTRL)
+#define MX6SL_PAD_SD3_DAT1__SJC_DE_B \
+ IOMUX_PAD(0x0594, 0x028C, 6, 0x0000, 0, NO_PAD_CTRL)
+#define MX6SL_PAD_SD3_DAT1__PL301_SIM_MX6SL_PER1_HADDR_17 \
+ IOMUX_PAD(0x0594, 0x028C, 7, 0x0000, 0, NO_PAD_CTRL)
+
+#define MX6SL_PAD_SD3_DAT2__USDHC3_DAT2 \
+ IOMUX_PAD(0x0598, 0x0290, 0, 0x0000, 0, MX6SL_USDHC_PAD_CTRL)
+#define MX6SL_PAD_SD3_DAT2__AUDMUX_AUD5_TXFS \
+ IOMUX_PAD(0x0598, 0x0290, 1, 0x0610, 1, NO_PAD_CTRL)
+#define MX6SL_PAD_SD3_DAT2__KPP_COL_7 \
+ IOMUX_PAD(0x0598, 0x0290, 2, 0x0750, 2, NO_PAD_CTRL)
+#define MX6SL_PAD_SD3_DAT2__CSI_D_14 \
+ IOMUX_PAD(0x0598, 0x0290, 3, 0x0668, 1, NO_PAD_CTRL)
+#define MX6SL_PAD_SD3_DAT2__EPIT1_EPITO \
+ IOMUX_PAD(0x0598, 0x0290, 4, 0x0000, 0, NO_PAD_CTRL)
+#define MX6SL_PAD_SD3_DAT2__GPIO_5_16 \
+ IOMUX_PAD(0x0598, 0x0290, 5, 0x0000, 0, NO_PAD_CTRL)
+#define MX6SL_PAD_SD3_DAT2__USB_USBOTG2_OC \
+ IOMUX_PAD(0x0598, 0x0290, 6, 0x0820, 3, NO_PAD_CTRL)
+#define MX6SL_PAD_SD3_DAT2__PL301_SIM_MX6SL_PER1_HADDR_14 \
+ IOMUX_PAD(0x0598, 0x0290, 7, 0x0000, 0, NO_PAD_CTRL)
+
+#define MX6SL_PAD_SD3_DAT3__USDHC3_DAT3 \
+ IOMUX_PAD(0x059C, 0x0294, 0, 0x0000, 0, MX6SL_USDHC_PAD_CTRL)
+#define MX6SL_PAD_SD3_DAT3__AUDMUX_AUD5_TXD \
+ IOMUX_PAD(0x059C, 0x0294, 1, 0x0600, 1, NO_PAD_CTRL)
+#define MX6SL_PAD_SD3_DAT3__KPP_ROW_7 \
+ IOMUX_PAD(0x059C, 0x0294, 2, 0x0770, 2, NO_PAD_CTRL)
+#define MX6SL_PAD_SD3_DAT3__CSI_D_15 \
+ IOMUX_PAD(0x059C, 0x0294, 3, 0x066C, 1, NO_PAD_CTRL)
+#define MX6SL_PAD_SD3_DAT3__EPIT2_EPITO \
+ IOMUX_PAD(0x059C, 0x0294, 4, 0x0000, 0, NO_PAD_CTRL)
+#define MX6SL_PAD_SD3_DAT3__GPIO_5_17 \
+ IOMUX_PAD(0x059C, 0x0294, 5, 0x0000, 0, NO_PAD_CTRL)
+#define MX6SL_PAD_SD3_DAT3__USB_USBOTG1_OC \
+ IOMUX_PAD(0x059C, 0x0294, 6, 0x0824, 2, NO_PAD_CTRL)
+#define MX6SL_PAD_SD3_DAT3__PL301_SIM_MX6SL_PER1_HADDR_12 \
+ IOMUX_PAD(0x059C, 0x0294, 7, 0x0000, 0, NO_PAD_CTRL)
+
+#define MX6SL_PAD_TAMPER__SNVS_LP_WRAPPER_SNVS_TD1 \
+ IOMUX_PAD(NO_PAD_I, NO_MUX_I, 0, 0x0000, 0, NO_PAD_CTRL)
+
+#define MX6SL_PAD_TEST_MODE__TCU_TEST_MODE \
+ IOMUX_PAD(NO_PAD_I, NO_MUX_I, 0, 0x0000, 0, NO_PAD_CTRL)
+
+#define MX6SL_PAD_UART1_RXD__UART1_TXD \
+ IOMUX_PAD(0x05A0, 0x0298, 0, 0x0000, 0, MX6SL_UART_PAD_CTRL)
+#define MX6SL_PAD_UART1_RXD__UART1_RXD \
+ IOMUX_PAD(0x05A0, 0x0298, 0, 0x07FC, 0, MX6SL_UART_PAD_CTRL)
+#define MX6SL_PAD_UART1_RXD__PWM1_PWMO \
+ IOMUX_PAD(0x05A0, 0x0298, 1, 0x0000, 0, NO_PAD_CTRL)
+#define MX6SL_PAD_UART1_RXD__UART4_TXD \
+ IOMUX_PAD(0x05A0, 0x0298, 2, 0x0000, 0, MX6SL_UART_PAD_CTRL)
+#define MX6SL_PAD_UART1_RXD__UART4_RXD \
+ IOMUX_PAD(0x05A0, 0x0298, 2, 0x0814, 6, NO_PAD_CTRL)
+#define MX6SL_PAD_UART1_RXD__FEC_COL \
+ IOMUX_PAD(0x05A0, 0x0298, 3, 0x06F0, 2, NO_PAD_CTRL)
+#define MX6SL_PAD_UART1_RXD__UART5_TXD \
+ IOMUX_PAD(0x05A0, 0x0298, 4, 0x0000, 0, MX6SL_UART_PAD_CTRL)
+#define MX6SL_PAD_UART1_RXD__UART5_RXD \
+ IOMUX_PAD(0x05A0, 0x0298, 4, 0x081C, 6, MX6SL_UART_PAD_CTRL)
+#define MX6SL_PAD_UART1_RXD__GPIO_3_16 \
+ IOMUX_PAD(0x05A0, 0x0298, 5, 0x0000, 0, NO_PAD_CTRL)
+#define MX6SL_PAD_UART1_RXD__ANATOP_ANATOP_TESTI_2 \
+ IOMUX_PAD(0x05A0, 0x0298, 6, 0x0000, 0, NO_PAD_CTRL)
+#define MX6SL_PAD_UART1_RXD__TPSMP_CLK \
+ IOMUX_PAD(0x05A0, 0x0298, 7, 0x0000, 0, NO_PAD_CTRL)
+
+#define MX6SL_PAD_UART1_TXD__UART1_TXD \
+ IOMUX_PAD(0x05A4, 0x029C, 0, 0x0000, 0, MX6SL_UART_PAD_CTRL)
+#define MX6SL_PAD_UART1_TXD__UART1_RXD \
+ IOMUX_PAD(0x05A4, 0x029C, 0, 0x07FC, 1, MX6SL_UART_PAD_CTRL)
+#define MX6SL_PAD_UART1_TXD__PWM2_PWMO \
+ IOMUX_PAD(0x05A4, 0x029C, 1, 0x0000, 0, NO_PAD_CTRL)
+#define MX6SL_PAD_UART1_TXD__UART4_TXD \
+ IOMUX_PAD(0x05A4, 0x029C, 2, 0x0000, 0, MX6SL_UART_PAD_CTRL)
+#define MX6SL_PAD_UART1_TXD__UART4_RXD \
+ IOMUX_PAD(0x05A4, 0x029C, 2, 0x0814, 7, MX6SL_UART_PAD_CTRL)
+#define MX6SL_PAD_UART1_TXD__FEC_RX_CLK \
+ IOMUX_PAD(0x05A4, 0x029C, 3, 0x0700, 2, NO_PAD_CTRL)
+#define MX6SL_PAD_UART1_TXD__UART5_TXD \
+ IOMUX_PAD(0x05A4, 0x029C, 4, 0x0000, 0, MX6SL_UART_PAD_CTRL)
+#define MX6SL_PAD_UART1_TXD__UART5_RXD \
+ IOMUX_PAD(0x05A4, 0x029C, 4, 0x081C, 7, MX6SL_UART_PAD_CTRL)
+#define MX6SL_PAD_UART1_TXD__GPIO_3_17 \
+ IOMUX_PAD(0x05A4, 0x029C, 5, 0x0000, 0, NO_PAD_CTRL)
+#define MX6SL_PAD_UART1_TXD__ANATOP_ANATOP_TESTI_3 \
+ IOMUX_PAD(0x05A4, 0x029C, 6, 0x0000, 0, NO_PAD_CTRL)
+#define MX6SL_PAD_UART1_TXD__UART5_DCD \
+ IOMUX_PAD(0x05A4, 0x029C, 7, 0x0000, 0, MX6SL_UART_PAD_CTRL)
+
+#define MX6SL_PAD_WDOG_B__WDOG1_WDOG_B \
+ IOMUX_PAD(0x05A8, 0x02A0, 0, 0x0000, 0, NO_PAD_CTRL)
+#define MX6SL_PAD_WDOG_B__WDOG1_WDOG_RST_B_DEB \
+ IOMUX_PAD(0x05A8, 0x02A0, 1, 0x0000, 0, NO_PAD_CTRL)
+#define MX6SL_PAD_WDOG_B__UART5_RI \
+ IOMUX_PAD(0x05A8, 0x02A0, 2, 0x0000, 0, MX6SL_UART_PAD_CTRL)
+#define MX6SL_PAD_WDOG_B__GPIO_3_18 \
+ IOMUX_PAD(0x05A8, 0x02A0, 5, 0x0000, 0, NO_PAD_CTRL)
+#define MX6SL_PAD_WDOG_B__OBSERVE_MUX_OUT_2 \
+ IOMUX_PAD(0x05A8, 0x02A0, 7, 0x0000, 0, NO_PAD_CTRL)
+
+#endif /* __MACH_IOMUX_MX6SL_H__*/
diff --git a/arch/arm/plat-mxc/include/mach/iomux-v3.h b/arch/arm/plat-mxc/include/mach/iomux-v3.h
index 60fb82ecbc1b..1ff80f9fff55 100644
--- a/arch/arm/plat-mxc/include/mach/iomux-v3.h
+++ b/arch/arm/plat-mxc/include/mach/iomux-v3.h
@@ -86,6 +86,8 @@ typedef u64 iomux_v3_cfg_t;
* Use to set PAD control
*/
#define NO_PAD_CTRL (1 << 17)
+#define NO_PAD_I 0
+#define NO_MUX_I 0
#ifdef CONFIG_SOC_IMX6Q
#define PAD_CTL_HYS (1 << 16)
diff --git a/arch/arm/plat-mxc/include/mach/memory.h b/arch/arm/plat-mxc/include/mach/memory.h
index 8f22b7010bab..350ae0f9fce5 100755
--- a/arch/arm/plat-mxc/include/mach/memory.h
+++ b/arch/arm/plat-mxc/include/mach/memory.h
@@ -23,6 +23,7 @@
#define MX51_PHYS_OFFSET UL(0x90000000)
#define MX53_PHYS_OFFSET UL(0x70000000)
#define MX6_PHYS_OFFSET UL(0x10000000)
+#define MX6SL_PHYS_OFFSET UL(0x80000000)
#if !defined(CONFIG_RUNTIME_PHYS_OFFSET)
# if defined CONFIG_ARCH_MX1
diff --git a/arch/arm/plat-mxc/include/mach/mx6.h b/arch/arm/plat-mxc/include/mach/mx6.h
index b28b5ee2ca2e..51c047acf8bc 100644
--- a/arch/arm/plat-mxc/include/mach/mx6.h
+++ b/arch/arm/plat-mxc/include/mach/mx6.h
@@ -64,6 +64,8 @@
#define MMDC0_ARB_END_ADDR 0x7FFFFFFF
#define MMDC1_ARB_BASE_ADDR 0x80000000
#define MMDC1_ARB_END_ADDR 0xFFFFFFFF
+#define MX6SL_MMDC0_ARB_BASE_ADDR 0x80000000 /* only MX6SL */
+#define MX6SL_MMDC0_ARB_END_ADDR 0xFFFFFFFF
#define OCRAM_ARB_BASE_ADDR 0x00900000
#define OCRAM_ARB_END_ADDR 0x009FFFFF
#define IRAM_BASE_ADDR OCRAM_ARB_BASE_ADDR
@@ -91,6 +93,8 @@
#define GPU_3D_ARB_END_ADDR 0x00133FFF
#define GPU_2D_ARB_BASE_ADDR 0x00134000
#define GPU_2D_ARB_END_ADDR 0x00137FFF
+#define MX6SL_GPU_2D_ARB_BASE_ADDR 0x02200000 /* MX6SL */
+#define MX6SL_GPU_2D_ARB_END_ADDR 0x02203FFF /* MX6SL */
#define DTCP_ARB_BASE_ADDR 0x00138000
#define DTCP_ARB_END_ADDR 0x0013BFFF
@@ -98,6 +102,7 @@
#define GPV0_BASE_ADDR 0x00B00000
#define GPV1_BASE_ADDR 0x00C00000
#define GPV2_BASE_ADDR 0x00200000
+#define MX6SL_GPV2_BASE_ADDR 0x00D00000 /* GPV0-2 for MX6SL */
#define GPV3_BASE_ADDR 0x00300000
#define GPV4_BASE_ADDR 0x00800000
@@ -137,12 +142,16 @@
#define MX6Q_ECSPI3_BASE_ADDR (ATZ1_BASE_ADDR + 0x10000) /* slot 4 */
#define MX6Q_ECSPI4_BASE_ADDR (ATZ1_BASE_ADDR + 0x14000) /* slot 5 */
#define MX6Q_ECSPI5_BASE_ADDR (ATZ1_BASE_ADDR + 0x18000) /* slot 6 */
+#define MX6SL_UART5_BASE_ADDR (ATZ1_BASE_ADDR + 0x18000) /* MX6SL */
#define UART1_BASE_ADDR (ATZ1_BASE_ADDR + 0x20000) /* slot 8 */
#define ESAI1_BASE_ADDR (ATZ1_BASE_ADDR + 0x24000) /* slot 9 */
+#define MX6SL_UART2_BASE_ADDR (ATZ1_BASE_ADDR + 0x24000) /* MX6SL */
#define MX6Q_SSI1_BASE_ADDR (ATZ1_BASE_ADDR + 0x28000) /* slot 10 */
#define MX6Q_SSI2_BASE_ADDR (ATZ1_BASE_ADDR + 0x2C000) /* slot 11 */
#define MX6Q_SSI3_BASE_ADDR (ATZ1_BASE_ADDR + 0x30000) /* slot 12 */
#define MX6Q_ASRC_BASE_ADDR (ATZ1_BASE_ADDR + 0x34000) /* slot 13 */
+#define MX6SL_UART3_BASE_ADDR (ATZ1_BASE_ADDR + 0x34000) /* MX6SL */
+#define MX6SL_UART4_BASE_ADDR (ATZ1_BASE_ADDR + 0x38000) /* MX6SL */
#define SPBA_BASE_ADDR (ATZ1_BASE_ADDR + 0x3C000) /* slot 15 */
#define MX6Q_VPU_BASE_ADDR (ATZ1_BASE_ADDR + 0x40000) /* slot 33,
global en[1], til 0x7BFFF */
@@ -158,7 +167,9 @@
#define MX6Q_PWM3_BASE_ADDR (AIPS1_OFF_BASE_ADDR + 0x8000)
#define MX6Q_PWM4_BASE_ADDR (AIPS1_OFF_BASE_ADDR + 0xC000)
#define MX6Q_CAN1_BASE_ADDR (AIPS1_OFF_BASE_ADDR + 0x10000)
+#define MX6SL_DBGMON_BASE_ADDR (AIPS1_OFF_BASE_ADDR + 0x10000)
#define MX6Q_CAN2_BASE_ADDR (AIPS1_OFF_BASE_ADDR + 0x14000)
+#define MX6SL_QOSC_BASE_ADDR (AIPS1_OFF_BASE_ADDR + 0x14000)
#define GPT_BASE_ADDR (AIPS1_OFF_BASE_ADDR + 0x18000)
#define GPIO1_BASE_ADDR (AIPS1_OFF_BASE_ADDR + 0x1C000)
#define GPIO2_BASE_ADDR (AIPS1_OFF_BASE_ADDR + 0x20000)
@@ -181,11 +192,14 @@
#define GPC_BASE_ADDR (AIPS1_OFF_BASE_ADDR + 0x5C000)
#define MX6Q_IOMUXC_BASE_ADDR (AIPS1_OFF_BASE_ADDR + 0x60000)
#define DCIC1_BASE_ADDR (AIPS1_OFF_BASE_ADDR + 0x64000)
+#define MX6SL_CSI_BASE_ADDR (AIPS1_OFF_BASE_ADDR + 0x64000)
#define DCIC2_BASE_ADDR (AIPS1_OFF_BASE_ADDR + 0x68000)
+#define MX6SL_SIPIX_BASE_ADDR (AIPS1_OFF_BASE_ADDR + 0x68000)
#define MX6Q_SDMA_BASE_ADDR (AIPS1_OFF_BASE_ADDR + 0x6C000)
#define MX6DL_EPXP_BASE_ADDR (AIPS1_OFF_BASE_ADDR + 0x70000)
#define MX6DL_EPDC_BASE_ADDR (AIPS1_OFF_BASE_ADDR + 0x74000)
-#define MX6DL_LCDIF_BASE_ADDR (AIPS1_OFF_BASE_ADDR + 0x78000)
+#define MX6DL_ELCDIF_BASE_ADDR (AIPS1_OFF_BASE_ADDR + 0x78000)
+#define MX6SL_DCP_BASE_ADDR (AIPS1_OFF_BASE_ADDR + 0x7C000)
#define MX6Q_DVFSCORE_BASE_ADDR (GPC_BASE_ADDR + 0x180)
/* ATZ#2- On Platform */
@@ -206,8 +220,14 @@
#define MX6Q_USB_HS1_BASE_ADDR (AIPS2_OFF_BASE_ADDR + 0x4200)
#define MX6Q_USB_HS2_BASE_ADDR (AIPS2_OFF_BASE_ADDR + 0x4400)
#define MX6Q_USB_HS3_BASE_ADDR (AIPS2_OFF_BASE_ADDR + 0x4600)
+#define MX6SL_USB_HS1_BASE_ADDR (AIPS2_OFF_BASE_ADDR + 0x4200)
+#define MX6SL_USB_HS2_BASE_ADDR (AIPS2_OFF_BASE_ADDR + 0x4400)
+#define MX6SL_USB_HS3_BASE_ADDR (AIPS2_OFF_BASE_ADDR + 0x4600)
#define ENET_BASE_ADDR (AIPS2_OFF_BASE_ADDR+0x8000)
#define MLB_BASE_ADDR (AIPS2_OFF_BASE_ADDR+0xC000)
+#define MX6SL_MSHC_BASE_ADDR (AIPS2_OFF_BASE_ADDR+0xC000)
+
+#define MXC_CAAM_BASE_ADDR (AIPS2_ARB_BASE_ADDR + 0x00000)
#define MX6Q_USDHC1_BASE_ADDR (AIPS2_OFF_BASE_ADDR + 0x10000)
#define MX6Q_USDHC2_BASE_ADDR (AIPS2_OFF_BASE_ADDR + 0x14000)
@@ -216,9 +236,11 @@
#define MX6Q_I2C1_BASE_ADDR (AIPS2_OFF_BASE_ADDR + 0x20000)
#define MX6Q_I2C2_BASE_ADDR (AIPS2_OFF_BASE_ADDR + 0x24000)
#define MX6Q_I2C3_BASE_ADDR (AIPS2_OFF_BASE_ADDR + 0x28000)
+#define MX6SL_I2C4_BASE_ADDR (AIPS2_OFF_BASE_ADDR + 0x78000)
#define ROMCP_BASE_ADDR (AIPS2_OFF_BASE_ADDR + 0x2C000)
#define MMDC_P0_BASE_ADDR (AIPS2_OFF_BASE_ADDR + 0x30000)
#define MMDC_P1_BASE_ADDR (AIPS2_OFF_BASE_ADDR + 0x34000)
+#define MX6SL_RNGB_BASE_ADDR (AIPS2_OFF_BASE_ADDR + 0x34000)
#define WEIM_BASE_ADDR (AIPS2_OFF_BASE_ADDR + 0x38000)
#define OCOTP_BASE_ADDR (AIPS2_OFF_BASE_ADDR + 0x3C000)
#define CSU_BASE_ADDR (AIPS2_OFF_BASE_ADDR + 0x40000)
@@ -253,6 +275,7 @@
#define MX6Q_UART3_BASE_ADDR UART3_BASE_ADDR
#define MX6Q_UART4_BASE_ADDR UART4_BASE_ADDR
#define MX6Q_FEC_BASE_ADDR ENET_BASE_ADDR
+#define MX6DL_FEC_BASE_ADDR ENET_BASE_ADDR
#define MX6Q_MIPI_DSI_BASE_ADDR MIPI_DSI_BASE_ADDR
#define MX6Q_MIPI_CSI2_BASE_ADDR MIPI_CSI2_BASE_ADDR
@@ -296,10 +319,14 @@
#define MXC_INT_CHEETAH_CSYSPWRUPREQ 33
#define MX6Q_INT_SDMA 34
#define MX6Q_INT_VPU_JPG 35
+#define MX6DL_INT_MSHC 35
#define MXC_INT_INTERRUPT_36_NUM 36
#define MX6Q_INT_IPU1_ERR 37
+#define MX6DL_INT_RNGB 37
#define MX6Q_INT_IPU1_SYN 38
+#define MX6SL_INT_SPDC 38
#define MX6Q_INT_IPU2_ERR 39
+#define MX6DL_INT_CSI 39
#define MX6Q_INT_IPU2_SYN 40
#define MXC_INT_GPU3D_IRQ 41
#define MXC_INT_GPU2D_IRQ 42
@@ -333,19 +360,26 @@
#define MX6Q_INT_I2C2 69
#define MX6Q_INT_I2C3 70
#define MX6Q_INT_SATA 71
-#define MX6DL_INT_LCDIF 71
+#define MX6DL_INT_ELCDIF 71
#define MX6Q_INT_USB_HS1 72
+#define MX6SL_INT_USB_HS1 74
#define MX6Q_INT_USB_HS2 73
+#define MX6SL_INT_USB_HS2 72
#define MX6Q_INT_USB_HS3 74
+#define MX6SL_INT_USB_HS3 73
#define MX6Q_INT_USB_OTG 75
#define MX6Q_INT_USB_PHY0 76
#define MX6Q_INT_USB_PHY1 77
+#define MX6SL_INT_USB_PHY0 76
+#define MX6SL_INT_USB_PHY1 77
/*
* MX6Q_INT_USB_PHY2, MX6Q_INT_USB_PHY3 are dummy interrupts
* In order to compile pass for platform device's definition
*/
#define MX6Q_INT_USB_PHY2 73
#define MX6Q_INT_USB_PHY3 74
+#define MX6SL_INT_USB_PHY2 72
+#define MX6SL_INT_USB_PHY3 73
#define MX6Q_INT_SSI1 78
#define MX6Q_INT_SSI2 79
#define MX6Q_INT_SSI3 80
@@ -355,6 +389,7 @@
#define MX6Q_INT_SPDIF 84
#define MXC_INT_MLB 85
#define MXC_INT_ANATOP_ANA1 86
+#define MXDL_INT_PMU 86
#define MXC_INT_GPT 87
#define MXC_INT_EPIT1 88
#define MXC_INT_EPIT2 89
@@ -400,6 +435,9 @@
#define MX6DL_INT_EPDC 129
#define MX6DL_INT_EPXP 130
#define MXC_INT_INTERRUPT_131_NUM 131
+#define MX6DL_INT_DCP_GEN 131
+#define MX6DL_INT_DCP_CH0 132
+#define MX6DL_INT_DCP_SEC 133
#define MXC_INT_CSI_INTR1 132
#define MXC_INT_CSI_INTR2 133
#define MXC_INT_DSI 134
@@ -415,6 +453,7 @@
#define MX6Q_INT_PERFMON1 144
#define MX6Q_INT_PERFMON2 145
#define MX6Q_INT_PERFMON3 146
+#define MX6DL_INT_FEC 146
#define MX6Q_INT_HDMI_TX 147
#define MX6Q_INT_HDMI_TX_WAKEUP 148
#define MXC_INT_MLB_AHB0 149
@@ -509,4 +548,10 @@
#define MX6Q_DMA_REQ_SSI3_TX0 46
#define MX6Q_DMA_REQ_DTCP 47
+#if !defined(__ASSEMBLY__) && !defined(__MXC_BOOT_UNCOMPRESS)
+extern int mx6q_revision(void);
+extern int mx6dl_revision(void);
+extern int mx6sl_revision(void);
+#endif
+
#endif /* __ASM_ARCH_MXC_MX6_H__ */
diff --git a/arch/arm/plat-mxc/include/mach/mxc.h b/arch/arm/plat-mxc/include/mach/mxc.h
index 6e7dfcc6e3b3..2f23c725a971 100755
--- a/arch/arm/plat-mxc/include/mach/mxc.h
+++ b/arch/arm/plat-mxc/include/mach/mxc.h
@@ -38,6 +38,7 @@
#define MXC_CPU_MX53 53
#define MXC_CPU_MX6Q 63
#define MXC_CPU_MX6DL 61
+#define MXC_CPU_MX6SL 60
#define IMX_CHIP_REVISION_1_0 0x10
#define IMX_CHIP_REVISION_1_1 0x11
@@ -234,17 +235,14 @@ extern unsigned int __mxc_cpu_type;
# define mxc_cpu_type __mxc_cpu_type
# define cpu_is_mx6q() (mxc_cpu_type == MXC_CPU_MX6Q)
# define cpu_is_mx6dl() (mxc_cpu_type == MXC_CPU_MX6DL)
+# define cpu_is_mx6sl() (mxc_cpu_type == MXC_CPU_MX6SL)
#else
# define cpu_is_mx6q() (0)
# define cpu_is_mx6dl() (0)
+# define cpu_is_mx6sl() (0)
#endif
#ifndef __ASSEMBLY__
-#ifdef CONFIG_SOC_IMX6Q
-extern int mx6q_revision(void);
-#else
-#define mx6q_revision(void) (0)
-#endif
struct cpu_op {
u32 pll_reg;
@@ -284,7 +282,7 @@ extern int tzic_enable_wake(int is_idle);
#define cpu_is_mx5() (cpu_is_mx51() || cpu_is_mx53() || cpu_is_mx50())
#define cpu_is_mx3() (cpu_is_mx31() || cpu_is_mx35())
#define cpu_is_mx2() (cpu_is_mx21() || cpu_is_mx27())
-#define cpu_is_mx6() (cpu_is_mx6q() || cpu_is_mx6dl())
+#define cpu_is_mx6() (cpu_is_mx6q() || cpu_is_mx6dl() || cpu_is_mx6sl())
#define MXC_PGCR_PCR 1
#define MXC_SRPGCR_PCR 1
diff --git a/arch/arm/plat-mxc/include/mach/mxc_edid.h b/arch/arm/plat-mxc/include/mach/mxc_edid.h
index 10baa01bf9b1..7385c2710db8 100755
--- a/arch/arm/plat-mxc/include/mach/mxc_edid.h
+++ b/arch/arm/plat-mxc/include/mach/mxc_edid.h
@@ -68,6 +68,7 @@ struct mxc_edid_cfg {
u8 max_channels;
u8 sample_sizes;
u8 sample_rates;
+ u8 speaker_alloc;
};
int mxc_edid_var_to_vic(struct fb_var_screeninfo *var);
diff --git a/arch/arm/plat-mxc/include/mach/system.h b/arch/arm/plat-mxc/include/mach/system.h
index 7021c85d1b59..c1dfe258a477 100755
--- a/arch/arm/plat-mxc/include/mach/system.h
+++ b/arch/arm/plat-mxc/include/mach/system.h
@@ -25,4 +25,21 @@ extern void mx5_cpu_lp_set(enum mxc_cpu_pwr_mode mode);
void arch_idle(void);
void arch_reset(char mode, const char *cmd);
+
+#ifdef CONFIG_MXC_REBOOT_MFGMODE
+void do_switch_mfgmode(void);
+void mxc_clear_mfgmode(void);
+#else
+#define do_switch_mfgmode() do {} while (0)
+#define mxc_clear_mfgmode() do {} while (0)
+#endif
+
+#ifdef CONFIG_MXC_REBOOT_ANDROID_CMD
+void do_switch_recovery(void);
+void do_switch_fastboot(void);
+#else
+#define do_switch_recovery() do {} while (0)
+#define do_switch_fastboot() do {} while (0)
+#endif
+
#endif /* __ASM_ARCH_MXC_SYSTEM_H__ */
diff --git a/arch/arm/plat-mxc/system.c b/arch/arm/plat-mxc/system.c
index 99449b48f0fd..5a022321802f 100644
--- a/arch/arm/plat-mxc/system.c
+++ b/arch/arm/plat-mxc/system.c
@@ -21,8 +21,10 @@
#include <linux/io.h>
#include <linux/err.h>
#include <linux/delay.h>
+#include <linux/string.h>
#include <mach/hardware.h>
#include <mach/common.h>
+#include <mach/system.h>
#include <asm/proc-fns.h>
#include <asm/system.h>
#ifdef CONFIG_SMP
@@ -32,22 +34,6 @@
static void __iomem *wdog_base;
-#ifdef CONFIG_MXC_REBOOT_MFGMODE
-void do_switch_mfgmode(void);
-void mxc_clear_mfgmode(void);
-#else
-void do_switch_mfgmode() {}
-void mxc_clear_mfgmode() {}
-#endif
-
-#ifdef CONFIG_MXC_REBOOT_ANDROID_CMD
-void do_switch_recovery(void);
-void do_switch_fastboot(void);
-#else
-void do_switch_recovery() {}
-void do_switch_fastboot() {}
-#endif
-
static void arch_reset_special_mode(char mode, const char *cmd)
{
if (strcmp(cmd, "download") == 0)
@@ -69,7 +55,11 @@ void arch_reset(char mode, const char *cmd)
#ifdef CONFIG_ARCH_MX6
/* wait for reset to assert... */
+ #ifdef CONFIG_MX6_INTER_LDO_BYPASS
+ wcr_enable = 0x14; /*reset system by extern pmic*/
+ #else
wcr_enable = (1 << 2);
+ #endif
__raw_writew(wcr_enable, wdog_base);
/* errata TKT039676, SRS bit may be missed when
SRC sample it, need to write the wdog controller
diff --git a/arch/arm/plat-mxc/time.c b/arch/arm/plat-mxc/time.c
index 2cb78f6b9d5e..3f99628a410e 100644
--- a/arch/arm/plat-mxc/time.c
+++ b/arch/arm/plat-mxc/time.c
@@ -79,10 +79,6 @@ static enum clock_event_mode clockevent_mode = CLOCK_EVT_MODE_UNUSED;
static void __iomem *timer_base;
-#ifdef CONFIG_ARCH_MX6
-extern int mx6q_revision(void);
-#endif
-
static inline void gpt_irq_disable(void)
{
unsigned int tmp;
@@ -343,7 +339,7 @@ void __init mxc_timer_init(struct clk *timer_clk, void __iomem *base, int irq)
__raw_writel(0, timer_base + MXC_TPRER); /* see datasheet note */
if (timer_is_v2()) {
- if (cpu_is_mx5() ||
+ if (cpu_is_mx5() || cpu_is_mx6sl() ||
mx6q_revision() == IMX_CHIP_REVISION_1_0)
tctl_val = V2_TCTL_CLK_PER | V2_TCTL_FRR |
V2_TCTL_WAITEN | MXC_TCTL_TEN;
diff --git a/arch/arm/plat-mxc/usb_common.c b/arch/arm/plat-mxc/usb_common.c
index a4a3721246f8..b18f5239c8b9 100755
--- a/arch/arm/plat-mxc/usb_common.c
+++ b/arch/arm/plat-mxc/usb_common.c
@@ -55,6 +55,14 @@ void __iomem *imx_otg_base;
#define MXC_NUMBER_USB_TRANSCEIVER 6
struct fsl_xcvr_ops *g_xc_ops[MXC_NUMBER_USB_TRANSCEIVER] = { NULL };
+bool usb_icbug_swfix_need(void)
+{
+ if (cpu_is_mx6sl())
+ return false;
+ else
+ return true;
+}
+
enum fsl_usb2_modes get_usb_mode(struct fsl_usb2_platform_data *pdata)
{
enum fsl_usb2_modes mode;
@@ -88,7 +96,7 @@ static int fsl_check_usbclk(void)
usb_ahb_clk = clk_get(NULL, "usb_ahb_clk");
if (clk_enable(usb_ahb_clk)) {
- if (cpu_is_mx6q() || cpu_is_mx6dl())
+ if (cpu_is_mx6())
return 0; /* there is no ahb clock at mx6 */
printk(KERN_ERR "clk_enable(usb_ahb_clk) failed\n");
return -EINVAL;
@@ -97,7 +105,7 @@ static int fsl_check_usbclk(void)
usb_clk = clk_get(NULL, "usb_clk");
if (clk_enable(usb_clk)) {
- if (cpu_is_mx6q() || cpu_is_mx6dl())
+ if (cpu_is_mx6())
return 0; /* there is usb_clk at mx6 */
printk(KERN_ERR "clk_enable(usb_clk) failed\n");
return -EINVAL;
@@ -502,7 +510,7 @@ int fsl_usb_host_init(struct platform_device *pdev)
if (usb_register_remote_wakeup(pdev))
pr_debug("%s port is not a wakeup source.\n", pdata->name);
- if (!(cpu_is_mx6q() || cpu_is_mx6dl())) {
+ if (!(cpu_is_mx6())) {
if (xops->xcvr_type == PORTSC_PTS_SERIAL) {
if (cpu_is_mx35()) {
usbh2_set_serial_xcvr();
@@ -814,7 +822,7 @@ int usbotg_init(struct platform_device *pdev)
return -EINVAL;
if (xops->init)
xops->init(xops);
- if (!((cpu_is_mx6q() || cpu_is_mx6dl()))) {
+ if (!(cpu_is_mx6())) {
UOG_PORTSC1 = UOG_PORTSC1 & ~PORTSC_PHCD;
diff --git a/arch/arm/tools/mach-types b/arch/arm/tools/mach-types
index 4a344c289602..5b48a6bdc8f6 100644
--- a/arch/arm/tools/mach-types
+++ b/arch/arm/tools/mach-types
@@ -1117,4 +1117,5 @@ mx6q_sabreauto MACH_MX6Q_SABREAUTO MX6Q_SABREAUTO 3529
mx6q_sabrelite MACH_MX6Q_SABRELITE MX6Q_SABRELITE 3769
mx6q_sabresd MACH_MX6Q_SABRESD MX6Q_SABRESD 3980
mx6q_arm2 MACH_MX6Q_ARM2 MX6Q_ARM2 3837
+mx6sl_arm2 MACH_MX6SL_ARM2 MX6SL_ARM2 4091
diff --git a/drivers/cpufreq/cpufreq_interactive.c b/drivers/cpufreq/cpufreq_interactive.c
index 123c86409ec1..2fc2f5f49e54 100644
--- a/drivers/cpufreq/cpufreq_interactive.c
+++ b/drivers/cpufreq/cpufreq_interactive.c
@@ -827,7 +827,7 @@ int cpufreq_gov_irq_tuner_register(struct irq_tuner dbs_irq_tuner)
}
EXPORT_SYMBOL_GPL(cpufreq_gov_irq_tuner_register);
#ifdef CONFIG_CPU_FREQ_DEFAULT_GOV_INTERACTIVE
-fs_initcall(cpufreq_interactive_init);
+late_initcall(cpufreq_interactive_init);
#else
module_init(cpufreq_interactive_init);
#endif
diff --git a/drivers/crypto/caam/Kconfig b/drivers/crypto/caam/Kconfig
index 2d876bb98ff4..82a1011978d8 100644
--- a/drivers/crypto/caam/Kconfig
+++ b/drivers/crypto/caam/Kconfig
@@ -1,6 +1,6 @@
config CRYPTO_DEV_FSL_CAAM
tristate "Freescale CAAM-Multicore driver backend"
- depends on FSL_SOC
+ depends on FSL_SOC || ARCH_MXC
help
Enables the driver module for Freescale's Cryptographic Accelerator
and Assurance Module (CAAM), also known as the SEC version 4 (SEC4).
diff --git a/drivers/crypto/caam/caamalg.c b/drivers/crypto/caam/caamalg.c
index 676d957c22b0..3c3e76b6ee1f 100644
--- a/drivers/crypto/caam/caamalg.c
+++ b/drivers/crypto/caam/caamalg.c
@@ -1,7 +1,7 @@
/*
* caam - Freescale FSL CAAM support for crypto API
*
- * Copyright 2008-2011 Freescale Semiconductor, Inc.
+ * Copyright (C) 2008-2012 Freescale Semiconductor, Inc.
*
* Based on talitos crypto API driver.
*
@@ -62,10 +62,22 @@
#define CAAM_MAX_IV_LENGTH 16
/* length of descriptors text */
-#define DESC_AEAD_SHARED_TEXT_LEN 4
-#define DESC_AEAD_ENCRYPT_TEXT_LEN 21
-#define DESC_AEAD_DECRYPT_TEXT_LEN 24
-#define DESC_AEAD_GIVENCRYPT_TEXT_LEN 27
+#define DESC_JOB_IO_LEN (CAAM_CMD_SZ * 3 + CAAM_PTR_SZ * 3)
+
+#define DESC_AEAD_BASE (4 * CAAM_CMD_SZ)
+#define DESC_AEAD_ENC_LEN (DESC_AEAD_BASE + 16 * CAAM_CMD_SZ)
+#define DESC_AEAD_DEC_LEN (DESC_AEAD_BASE + 21 * CAAM_CMD_SZ)
+#define DESC_AEAD_GIVENC_LEN (DESC_AEAD_ENC_LEN + 7 * CAAM_CMD_SZ)
+
+#define DESC_ABLKCIPHER_BASE (3 * CAAM_CMD_SZ)
+#define DESC_ABLKCIPHER_ENC_LEN (DESC_ABLKCIPHER_BASE + \
+ 20 * CAAM_CMD_SZ)
+#define DESC_ABLKCIPHER_DEC_LEN (DESC_ABLKCIPHER_BASE + \
+ 15 * CAAM_CMD_SZ)
+
+#define DESC_MAX_USED_BYTES (DESC_AEAD_GIVENC_LEN + \
+ CAAM_MAX_KEY_SIZE)
+#define DESC_MAX_USED_LEN (DESC_MAX_USED_BYTES / CAAM_CMD_SZ)
#ifdef DEBUG
/* for print_hex_dumps with line references */
@@ -76,30 +88,372 @@
#define debug(format, arg...)
#endif
+/* Set DK bit in class 1 operation if shared */
+static inline void append_dec_op1(u32 *desc, u32 type)
+{
+ u32 *jump_cmd, *uncond_jump_cmd;
+
+ jump_cmd = append_jump(desc, JUMP_TEST_ALL | JUMP_COND_SHRD);
+ append_operation(desc, type | OP_ALG_AS_INITFINAL |
+ OP_ALG_DECRYPT);
+ uncond_jump_cmd = append_jump(desc, JUMP_TEST_ALL);
+ set_jump_tgt_here(desc, jump_cmd);
+ append_operation(desc, type | OP_ALG_AS_INITFINAL |
+ OP_ALG_DECRYPT | OP_ALG_AAI_DK);
+ set_jump_tgt_here(desc, uncond_jump_cmd);
+}
+
+/*
+ * Wait for completion of class 1 key loading before allowing
+ * error propagation
+ */
+static inline void append_dec_shr_done(u32 *desc)
+{
+ u32 *jump_cmd;
+
+ jump_cmd = append_jump(desc, JUMP_CLASS_CLASS1 | JUMP_TEST_ALL);
+ set_jump_tgt_here(desc, jump_cmd);
+ append_cmd(desc, SET_OK_PROP_ERRORS | CMD_LOAD);
+}
+
+/*
+ * For aead functions, read payload and write payload,
+ * both of which are specified in req->src and req->dst
+ */
+static inline void aead_append_src_dst(u32 *desc, u32 msg_type)
+{
+ append_seq_fifo_load(desc, 0, FIFOLD_CLASS_BOTH |
+ KEY_VLF | msg_type | FIFOLD_TYPE_LASTBOTH);
+ append_seq_fifo_store(desc, 0, FIFOST_TYPE_MESSAGE_DATA | KEY_VLF);
+}
+
+/*
+ * For aead encrypt and decrypt, read iv for both classes
+ */
+static inline void aead_append_ld_iv(u32 *desc, int ivsize)
+{
+ append_cmd(desc, CMD_SEQ_LOAD | LDST_SRCDST_BYTE_CONTEXT |
+ LDST_CLASS_1_CCB | ivsize);
+ append_move(desc, MOVE_SRC_CLASS1CTX | MOVE_DEST_CLASS2INFIFO | ivsize);
+}
+
+/*
+ * For ablkcipher encrypt and decrypt, read from req->src and
+ * write to req->dst
+ */
+static inline void ablkcipher_append_src_dst(u32 *desc)
+{
+ append_math_add(desc, VARSEQOUTLEN, SEQINLEN, REG0, CAAM_CMD_SZ); \
+ append_math_add(desc, VARSEQINLEN, SEQINLEN, REG0, CAAM_CMD_SZ); \
+ append_seq_fifo_load(desc, 0, FIFOLD_CLASS_CLASS1 | \
+ KEY_VLF | FIFOLD_TYPE_MSG | FIFOLD_TYPE_LAST1); \
+ append_seq_fifo_store(desc, 0, FIFOST_TYPE_MESSAGE_DATA | KEY_VLF); \
+}
+
+/*
+ * If all data, including src (with assoc and iv) or dst (with iv only) are
+ * contiguous
+ */
+#define GIV_SRC_CONTIG 1
+#define GIV_DST_CONTIG (1 << 1)
+
/*
* per-session context
*/
struct caam_ctx {
struct device *jrdev;
- u32 *sh_desc;
- dma_addr_t shared_desc_phys;
+ u32 sh_desc_enc[DESC_MAX_USED_LEN];
+ u32 sh_desc_dec[DESC_MAX_USED_LEN];
+ u32 sh_desc_givenc[DESC_MAX_USED_LEN];
+ dma_addr_t sh_desc_enc_dma;
+ dma_addr_t sh_desc_dec_dma;
+ dma_addr_t sh_desc_givenc_dma;
u32 class1_alg_type;
u32 class2_alg_type;
u32 alg_op;
- u8 *key;
- dma_addr_t key_phys;
+ u8 key[CAAM_MAX_KEY_SIZE];
+ dma_addr_t key_dma;
unsigned int enckeylen;
unsigned int split_key_len;
unsigned int split_key_pad_len;
unsigned int authsize;
};
-static int aead_authenc_setauthsize(struct crypto_aead *authenc,
+static void append_key_aead(u32 *desc, struct caam_ctx *ctx,
+ int keys_fit_inline)
+{
+ if (keys_fit_inline) {
+ append_key_as_imm(desc, ctx->key, ctx->split_key_pad_len,
+ ctx->split_key_len, CLASS_2 |
+ KEY_DEST_MDHA_SPLIT | KEY_ENC);
+ append_key_as_imm(desc, (void *)ctx->key +
+ ctx->split_key_pad_len, ctx->enckeylen,
+ ctx->enckeylen, CLASS_1 | KEY_DEST_CLASS_REG);
+ } else {
+ append_key(desc, ctx->key_dma, ctx->split_key_len, CLASS_2 |
+ KEY_DEST_MDHA_SPLIT | KEY_ENC);
+ append_key(desc, ctx->key_dma + ctx->split_key_pad_len,
+ ctx->enckeylen, CLASS_1 | KEY_DEST_CLASS_REG);
+ }
+}
+
+static void init_sh_desc_key_aead(u32 *desc, struct caam_ctx *ctx,
+ int keys_fit_inline)
+{
+ u32 *key_jump_cmd;
+
+ init_sh_desc(desc, HDR_SHARE_WAIT);
+
+ /* Skip if already shared */
+ key_jump_cmd = append_jump(desc, JUMP_JSL | JUMP_TEST_ALL |
+ JUMP_COND_SHRD);
+
+ append_key_aead(desc, ctx, keys_fit_inline);
+
+ set_jump_tgt_here(desc, key_jump_cmd);
+
+ /* Propagate errors from shared to job descriptor */
+ append_cmd(desc, SET_OK_PROP_ERRORS | CMD_LOAD);
+}
+
+static int aead_set_sh_desc(struct crypto_aead *aead)
+{
+ struct aead_tfm *tfm = &aead->base.crt_aead;
+ struct caam_ctx *ctx = crypto_aead_ctx(aead);
+ struct device *jrdev = ctx->jrdev;
+ bool keys_fit_inline = 0;
+ u32 *key_jump_cmd, *jump_cmd;
+ u32 geniv, moveiv;
+ u32 *desc;
+
+ if (!ctx->enckeylen || !ctx->authsize)
+ return 0;
+
+ /*
+ * Job Descriptor and Shared Descriptors
+ * must all fit into the 64-word Descriptor h/w Buffer
+ */
+ if (DESC_AEAD_ENC_LEN + DESC_JOB_IO_LEN +
+ ctx->split_key_pad_len + ctx->enckeylen <=
+ CAAM_DESC_BYTES_MAX)
+ keys_fit_inline = 1;
+
+ /* aead_encrypt shared descriptor */
+ desc = ctx->sh_desc_enc;
+
+ init_sh_desc_key_aead(desc, ctx, keys_fit_inline);
+
+ /* Class 2 operation */
+ append_operation(desc, ctx->class2_alg_type |
+ OP_ALG_AS_INITFINAL | OP_ALG_ENCRYPT);
+
+ /* cryptlen = seqoutlen - authsize */
+ append_math_sub_imm_u32(desc, REG3, SEQOUTLEN, IMM, ctx->authsize);
+
+ /* assoclen + cryptlen = seqinlen - ivsize */
+ append_math_sub_imm_u32(desc, REG2, SEQINLEN, IMM, tfm->ivsize);
+
+ /* assoclen + cryptlen = (assoclen + cryptlen) - cryptlen */
+ append_math_sub(desc, VARSEQINLEN, REG2, REG3, CAAM_CMD_SZ);
+
+ /* read assoc before reading payload */
+ append_seq_fifo_load(desc, 0, FIFOLD_CLASS_CLASS2 | FIFOLD_TYPE_MSG |
+ KEY_VLF);
+ aead_append_ld_iv(desc, tfm->ivsize);
+
+ /* Class 1 operation */
+ append_operation(desc, ctx->class1_alg_type |
+ OP_ALG_AS_INITFINAL | OP_ALG_ENCRYPT);
+
+ /* Read and write cryptlen bytes */
+ append_math_add(desc, VARSEQINLEN, ZERO, REG3, CAAM_CMD_SZ);
+ append_math_add(desc, VARSEQOUTLEN, ZERO, REG3, CAAM_CMD_SZ);
+ aead_append_src_dst(desc, FIFOLD_TYPE_MSG1OUT2);
+
+ /* Write ICV */
+ append_seq_store(desc, ctx->authsize, LDST_CLASS_2_CCB |
+ LDST_SRCDST_BYTE_CONTEXT);
+
+ ctx->sh_desc_enc_dma = dma_map_single(jrdev, desc,
+ desc_bytes(desc),
+ DMA_TO_DEVICE);
+ if (dma_mapping_error(jrdev, ctx->sh_desc_enc_dma)) {
+ dev_err(jrdev, "unable to map shared descriptor\n");
+ return -ENOMEM;
+ }
+#ifdef DEBUG
+ print_hex_dump(KERN_ERR, "aead enc shdesc@"xstr(__LINE__)": ",
+ DUMP_PREFIX_ADDRESS, 16, 4, desc,
+ desc_bytes(desc), 1);
+#endif
+
+ dma_sync_single_for_cpu(jrdev, ctx->sh_desc_enc_dma, desc_bytes(desc),
+ DMA_TO_DEVICE);
+ /*
+ * Job Descriptor and Shared Descriptors
+ * must all fit into the 64-word Descriptor h/w Buffer
+ */
+ if (DESC_AEAD_DEC_LEN + DESC_JOB_IO_LEN +
+ ctx->split_key_pad_len + ctx->enckeylen <=
+ CAAM_DESC_BYTES_MAX)
+ keys_fit_inline = 1;
+
+ desc = ctx->sh_desc_dec;
+
+ /* aead_decrypt shared descriptor */
+ init_sh_desc(desc, HDR_SHARE_WAIT);
+
+ /* Skip if already shared */
+ key_jump_cmd = append_jump(desc, JUMP_JSL | JUMP_TEST_ALL |
+ JUMP_COND_SHRD);
+
+ append_key_aead(desc, ctx, keys_fit_inline);
+
+ /* Only propagate error immediately if shared */
+ jump_cmd = append_jump(desc, JUMP_TEST_ALL);
+ set_jump_tgt_here(desc, key_jump_cmd);
+ append_cmd(desc, SET_OK_PROP_ERRORS | CMD_LOAD);
+ set_jump_tgt_here(desc, jump_cmd);
+
+ /* Class 2 operation */
+ append_operation(desc, ctx->class2_alg_type |
+ OP_ALG_AS_INITFINAL | OP_ALG_DECRYPT | OP_ALG_ICV_ON);
+
+ /* assoclen + cryptlen = seqinlen - ivsize */
+ append_math_sub_imm_u32(desc, REG3, SEQINLEN, IMM,
+ ctx->authsize + tfm->ivsize)
+ /* assoclen = (assoclen + cryptlen) - cryptlen */
+ append_math_sub(desc, REG2, SEQOUTLEN, REG0, CAAM_CMD_SZ);
+ append_math_sub(desc, VARSEQINLEN, REG3, REG2, CAAM_CMD_SZ);
+
+ /* read assoc before reading payload */
+ append_seq_fifo_load(desc, 0, FIFOLD_CLASS_CLASS2 | FIFOLD_TYPE_MSG |
+ KEY_VLF);
+
+ aead_append_ld_iv(desc, tfm->ivsize);
+
+ append_dec_op1(desc, ctx->class1_alg_type);
+
+ /* Read and write cryptlen bytes */
+ append_math_add(desc, VARSEQINLEN, ZERO, REG2, CAAM_CMD_SZ);
+ append_math_add(desc, VARSEQOUTLEN, ZERO, REG2, CAAM_CMD_SZ);
+ aead_append_src_dst(desc, FIFOLD_TYPE_MSG);
+
+ /* Load ICV */
+ append_seq_fifo_load(desc, ctx->authsize, FIFOLD_CLASS_CLASS2 |
+ FIFOLD_TYPE_LAST2 | FIFOLD_TYPE_ICV);
+ append_dec_shr_done(desc);
+
+ ctx->sh_desc_dec_dma = dma_map_single(jrdev, desc,
+ desc_bytes(desc),
+ DMA_TO_DEVICE);
+ if (dma_mapping_error(jrdev, ctx->sh_desc_dec_dma)) {
+ dev_err(jrdev, "unable to map shared descriptor\n");
+ return -ENOMEM;
+ }
+#ifdef DEBUG
+ print_hex_dump(KERN_ERR, "aead dec shdesc@"xstr(__LINE__)": ",
+ DUMP_PREFIX_ADDRESS, 16, 4, desc,
+ desc_bytes(desc), 1);
+#endif
+ dma_sync_single_for_cpu(jrdev, ctx->sh_desc_dec_dma, desc_bytes(desc),
+ DMA_TO_DEVICE);
+
+ /*
+ * Job Descriptor and Shared Descriptors
+ * must all fit into the 64-word Descriptor h/w Buffer
+ */
+ if (DESC_AEAD_GIVENC_LEN + DESC_JOB_IO_LEN +
+ ctx->split_key_pad_len + ctx->enckeylen <=
+ CAAM_DESC_BYTES_MAX)
+ keys_fit_inline = 1;
+
+ /* aead_givencrypt shared descriptor */
+ desc = ctx->sh_desc_givenc;
+
+ init_sh_desc_key_aead(desc, ctx, keys_fit_inline);
+
+ /* Generate IV */
+ geniv = NFIFOENTRY_STYPE_PAD | NFIFOENTRY_DEST_DECO |
+ NFIFOENTRY_DTYPE_MSG | NFIFOENTRY_LC1 |
+ NFIFOENTRY_PTYPE_RND | (tfm->ivsize << NFIFOENTRY_DLEN_SHIFT);
+ append_load_imm_u32(desc, geniv, LDST_CLASS_IND_CCB |
+ LDST_SRCDST_WORD_INFO_FIFO | LDST_IMM);
+ append_cmd(desc, CMD_LOAD | DISABLE_AUTO_INFO_FIFO);
+ append_move(desc, MOVE_SRC_INFIFO |
+ MOVE_DEST_CLASS1CTX | (tfm->ivsize << MOVE_LEN_SHIFT));
+ append_cmd(desc, CMD_LOAD | ENABLE_AUTO_INFO_FIFO);
+
+ /* Copy IV to class 1 context */
+ append_move(desc, MOVE_SRC_CLASS1CTX |
+ MOVE_DEST_OUTFIFO | (tfm->ivsize << MOVE_LEN_SHIFT));
+
+ /* Return to encryption */
+ append_operation(desc, ctx->class2_alg_type |
+ OP_ALG_AS_INITFINAL | OP_ALG_ENCRYPT);
+
+ /* ivsize + cryptlen = seqoutlen - authsize */
+ append_math_sub_imm_u32(desc, REG3, SEQOUTLEN, IMM, ctx->authsize);
+
+ /* assoclen = seqinlen - (ivsize + cryptlen) */
+ append_math_sub(desc, VARSEQINLEN, SEQINLEN, REG3, CAAM_CMD_SZ);
+
+ /* read assoc before reading payload */
+ append_seq_fifo_load(desc, 0, FIFOLD_CLASS_CLASS2 | FIFOLD_TYPE_MSG |
+ KEY_VLF);
+
+ /* Copy iv from class 1 ctx to class 2 fifo*/
+ moveiv = NFIFOENTRY_STYPE_OFIFO | NFIFOENTRY_DEST_CLASS2 |
+ NFIFOENTRY_DTYPE_MSG | (tfm->ivsize << NFIFOENTRY_DLEN_SHIFT);
+ append_load_imm_u32(desc, moveiv, LDST_CLASS_IND_CCB |
+ LDST_SRCDST_WORD_INFO_FIFO | LDST_IMM);
+ append_load_imm_u32(desc, tfm->ivsize, LDST_CLASS_2_CCB |
+ LDST_SRCDST_WORD_DATASZ_REG | LDST_IMM);
+
+ /* Class 1 operation */
+ append_operation(desc, ctx->class1_alg_type |
+ OP_ALG_AS_INITFINAL | OP_ALG_ENCRYPT);
+
+ /* Will write ivsize + cryptlen */
+ append_math_add(desc, VARSEQOUTLEN, SEQINLEN, REG0, CAAM_CMD_SZ);
+
+ /* Not need to reload iv */
+ append_seq_fifo_load(desc, tfm->ivsize,
+ FIFOLD_CLASS_SKIP);
+
+ /* Will read cryptlen */
+ append_math_add(desc, VARSEQINLEN, SEQINLEN, REG0, CAAM_CMD_SZ);
+ aead_append_src_dst(desc, FIFOLD_TYPE_MSG1OUT2);
+
+ /* Write ICV */
+ append_seq_store(desc, ctx->authsize, LDST_CLASS_2_CCB |
+ LDST_SRCDST_BYTE_CONTEXT);
+
+ ctx->sh_desc_givenc_dma = dma_map_single(jrdev, desc,
+ desc_bytes(desc),
+ DMA_TO_DEVICE);
+ if (dma_mapping_error(jrdev, ctx->sh_desc_givenc_dma)) {
+ dev_err(jrdev, "unable to map shared descriptor\n");
+ return -ENOMEM;
+ }
+#ifdef DEBUG
+ print_hex_dump(KERN_ERR, "aead givenc shdesc@"xstr(__LINE__)": ",
+ DUMP_PREFIX_ADDRESS, 16, 4, desc,
+ desc_bytes(desc), 1);
+#endif
+ dma_sync_single_for_cpu(jrdev, ctx->sh_desc_givenc_dma,
+ desc_bytes(desc), DMA_TO_DEVICE);
+
+ return 0;
+}
+
+static int aead_setauthsize(struct crypto_aead *authenc,
unsigned int authsize)
{
struct caam_ctx *ctx = crypto_aead_ctx(authenc);
ctx->authsize = authsize;
+ aead_set_sh_desc(authenc);
return 0;
}
@@ -117,6 +471,7 @@ static void split_key_done(struct device *dev, u32 *desc, u32 err,
#ifdef DEBUG
dev_err(dev, "%s %d: err 0x%x\n", __func__, __LINE__, err);
#endif
+
if (err) {
char tmp[CAAM_ERROR_STR_MAX];
@@ -161,6 +516,9 @@ static u32 gen_split_key(struct caam_ctx *ctx, const u8 *key_in, u32 authkeylen)
kfree(desc);
return -ENOMEM;
}
+ dma_sync_single_for_device(jrdev, dma_addr_in, authkeylen,
+ DMA_TO_DEVICE);
+
append_key(desc, dma_addr_in, authkeylen, CLASS_2 |
KEY_DEST_CLASS_REG);
@@ -211,6 +569,8 @@ static u32 gen_split_key(struct caam_ctx *ctx, const u8 *key_in, u32 authkeylen)
#endif
}
+ dma_sync_single_for_cpu(jrdev, dma_addr_out, ctx->split_key_pad_len,
+ DMA_FROM_DEVICE);
dma_unmap_single(jrdev, dma_addr_out, ctx->split_key_pad_len,
DMA_FROM_DEVICE);
dma_unmap_single(jrdev, dma_addr_in, authkeylen, DMA_TO_DEVICE);
@@ -220,73 +580,7 @@ static u32 gen_split_key(struct caam_ctx *ctx, const u8 *key_in, u32 authkeylen)
return ret;
}
-static int build_sh_desc_ipsec(struct caam_ctx *ctx)
-{
- struct device *jrdev = ctx->jrdev;
- u32 *sh_desc;
- u32 *jump_cmd;
- bool keys_fit_inline = 0;
-
- /*
- * largest Job Descriptor and its Shared Descriptor
- * must both fit into the 64-word Descriptor h/w Buffer
- */
- if ((DESC_AEAD_GIVENCRYPT_TEXT_LEN +
- DESC_AEAD_SHARED_TEXT_LEN) * CAAM_CMD_SZ +
- ctx->split_key_pad_len + ctx->enckeylen <= CAAM_DESC_BYTES_MAX)
- keys_fit_inline = 1;
-
- /* build shared descriptor for this session */
- sh_desc = kmalloc(CAAM_CMD_SZ * DESC_AEAD_SHARED_TEXT_LEN +
- (keys_fit_inline ?
- ctx->split_key_pad_len + ctx->enckeylen :
- CAAM_PTR_SZ * 2), GFP_DMA | GFP_KERNEL);
- if (!sh_desc) {
- dev_err(jrdev, "could not allocate shared descriptor\n");
- return -ENOMEM;
- }
-
- init_sh_desc(sh_desc, HDR_SAVECTX | HDR_SHARE_SERIAL);
-
- jump_cmd = append_jump(sh_desc, CLASS_BOTH | JUMP_TEST_ALL |
- JUMP_COND_SHRD | JUMP_COND_SELF);
-
- /*
- * process keys, starting with class 2/authentication.
- */
- if (keys_fit_inline) {
- append_key_as_imm(sh_desc, ctx->key, ctx->split_key_pad_len,
- ctx->split_key_len,
- CLASS_2 | KEY_DEST_MDHA_SPLIT | KEY_ENC);
-
- append_key_as_imm(sh_desc, (void *)ctx->key +
- ctx->split_key_pad_len, ctx->enckeylen,
- ctx->enckeylen, CLASS_1 | KEY_DEST_CLASS_REG);
- } else {
- append_key(sh_desc, ctx->key_phys, ctx->split_key_len, CLASS_2 |
- KEY_DEST_MDHA_SPLIT | KEY_ENC);
- append_key(sh_desc, ctx->key_phys + ctx->split_key_pad_len,
- ctx->enckeylen, CLASS_1 | KEY_DEST_CLASS_REG);
- }
-
- /* update jump cmd now that we are at the jump target */
- set_jump_tgt_here(sh_desc, jump_cmd);
-
- ctx->shared_desc_phys = dma_map_single(jrdev, sh_desc,
- desc_bytes(sh_desc),
- DMA_TO_DEVICE);
- if (dma_mapping_error(jrdev, ctx->shared_desc_phys)) {
- dev_err(jrdev, "unable to map shared descriptor\n");
- kfree(sh_desc);
- return -ENOMEM;
- }
-
- ctx->sh_desc = sh_desc;
-
- return 0;
-}
-
-static int aead_authenc_setkey(struct crypto_aead *aead,
+static int aead_setkey(struct crypto_aead *aead,
const u8 *key, unsigned int keylen)
{
/* Sizes for MDHA pads (*not* keys): MD5, SHA1, 224, 256, 384, 512 */
@@ -326,27 +620,19 @@ static int aead_authenc_setkey(struct crypto_aead *aead,
print_hex_dump(KERN_ERR, "key in @"xstr(__LINE__)": ",
DUMP_PREFIX_ADDRESS, 16, 4, key, keylen, 1);
#endif
- ctx->key = kmalloc(ctx->split_key_pad_len + enckeylen,
- GFP_KERNEL | GFP_DMA);
- if (!ctx->key) {
- dev_err(jrdev, "could not allocate key output memory\n");
- return -ENOMEM;
- }
ret = gen_split_key(ctx, key, authkeylen);
if (ret) {
- kfree(ctx->key);
goto badkey;
}
/* postpend encryption key to auth split key */
memcpy(ctx->key + ctx->split_key_pad_len, key + authkeylen, enckeylen);
- ctx->key_phys = dma_map_single(jrdev, ctx->key, ctx->split_key_pad_len +
+ ctx->key_dma = dma_map_single(jrdev, ctx->key, ctx->split_key_pad_len +
enckeylen, DMA_TO_DEVICE);
- if (dma_mapping_error(jrdev, ctx->key_phys)) {
+ if (dma_mapping_error(jrdev, ctx->key_dma)) {
dev_err(jrdev, "unable to map key i/o memory\n");
- kfree(ctx->key);
return -ENOMEM;
}
#ifdef DEBUG
@@ -354,14 +640,16 @@ static int aead_authenc_setkey(struct crypto_aead *aead,
DUMP_PREFIX_ADDRESS, 16, 4, ctx->key,
ctx->split_key_pad_len + enckeylen, 1);
#endif
+ dma_sync_single_for_device(jrdev, ctx->key_dma,
+ ctx->split_key_pad_len + enckeylen,
+ DMA_TO_DEVICE);
ctx->enckeylen = enckeylen;
- ret = build_sh_desc_ipsec(ctx);
+ ret = aead_set_sh_desc(aead);
if (ret) {
- dma_unmap_single(jrdev, ctx->key_phys, ctx->split_key_pad_len +
+ dma_unmap_single(jrdev, ctx->key_dma, ctx->split_key_pad_len +
enckeylen, DMA_TO_DEVICE);
- kfree(ctx->key);
}
return ret;
@@ -370,73 +658,257 @@ badkey:
return -EINVAL;
}
+static int ablkcipher_setkey(struct crypto_ablkcipher *ablkcipher,
+ const u8 *key, unsigned int keylen)
+{
+ struct caam_ctx *ctx = crypto_ablkcipher_ctx(ablkcipher);
+ struct ablkcipher_tfm *tfm = &ablkcipher->base.crt_ablkcipher;
+ struct device *jrdev = ctx->jrdev;
+ int ret = 0;
+ u32 *key_jump_cmd, *jump_cmd;
+ u32 *desc;
+
+#ifdef DEBUG
+ print_hex_dump(KERN_ERR, "key in @"xstr(__LINE__)": ",
+ DUMP_PREFIX_ADDRESS, 16, 4, key, keylen, 1);
+#endif
+
+ memcpy(ctx->key, key, keylen);
+ ctx->key_dma = dma_map_single(jrdev, ctx->key, keylen,
+ DMA_TO_DEVICE);
+ if (dma_mapping_error(jrdev, ctx->key_dma)) {
+ dev_err(jrdev, "unable to map key i/o memory\n");
+ return -ENOMEM;
+ }
+ ctx->enckeylen = keylen;
+ dma_sync_single_for_device(jrdev, ctx->key_dma, keylen, DMA_TO_DEVICE);
+
+ /* ablkcipher_encrypt shared descriptor */
+ desc = ctx->sh_desc_enc;
+ init_sh_desc(desc, HDR_SHARE_WAIT);
+ /* Skip if already shared */
+ key_jump_cmd = append_jump(desc, JUMP_JSL | JUMP_TEST_ALL |
+ JUMP_COND_SHRD);
+
+ /* Load class1 key only */
+ append_key_as_imm(desc, (void *)ctx->key, ctx->enckeylen,
+ ctx->enckeylen, CLASS_1 |
+ KEY_DEST_CLASS_REG);
+
+ set_jump_tgt_here(desc, key_jump_cmd);
+
+ /* Propagate errors from shared to job descriptor */
+ append_cmd(desc, SET_OK_PROP_ERRORS | CMD_LOAD);
+
+ /* Load iv */
+ append_cmd(desc, CMD_SEQ_LOAD | LDST_SRCDST_BYTE_CONTEXT |
+ LDST_CLASS_1_CCB | tfm->ivsize);
+
+ /* Load operation */
+ append_operation(desc, ctx->class1_alg_type |
+ OP_ALG_AS_INITFINAL | OP_ALG_ENCRYPT);
+
+ /* Perform operation */
+ ablkcipher_append_src_dst(desc);
+
+ ctx->sh_desc_enc_dma = dma_map_single(jrdev, desc,
+ desc_bytes(desc),
+ DMA_TO_DEVICE);
+ if (dma_mapping_error(jrdev, ctx->sh_desc_enc_dma)) {
+ dev_err(jrdev, "unable to map shared descriptor\n");
+ return -ENOMEM;
+ }
+#ifdef DEBUG
+ print_hex_dump(KERN_ERR, "ablkcipher enc shdesc@"xstr(__LINE__)": ",
+ DUMP_PREFIX_ADDRESS, 16, 4, desc,
+ desc_bytes(desc), 1);
+#endif
+ dma_sync_single_for_device(jrdev, ctx->sh_desc_enc_dma,
+ desc_bytes(desc), DMA_TO_DEVICE);
+
+ /* ablkcipher_decrypt shared descriptor */
+ desc = ctx->sh_desc_dec;
+
+ init_sh_desc(desc, HDR_SHARE_WAIT);
+ /* Skip if already shared */
+ key_jump_cmd = append_jump(desc, JUMP_JSL | JUMP_TEST_ALL |
+ JUMP_COND_SHRD);
+
+ /* Load class1 key only */
+ append_key_as_imm(desc, (void *)ctx->key, ctx->enckeylen,
+ ctx->enckeylen, CLASS_1 |
+ KEY_DEST_CLASS_REG);
+
+ /* For aead, only propagate error immediately if shared */
+ jump_cmd = append_jump(desc, JUMP_TEST_ALL);
+ set_jump_tgt_here(desc, key_jump_cmd);
+ append_cmd(desc, SET_OK_PROP_ERRORS | CMD_LOAD);
+ set_jump_tgt_here(desc, jump_cmd);
+
+ /* load IV */
+ append_cmd(desc, CMD_SEQ_LOAD | LDST_SRCDST_BYTE_CONTEXT |
+ LDST_CLASS_1_CCB | tfm->ivsize);
+
+ /* Choose operation */
+ append_dec_op1(desc, ctx->class1_alg_type);
+
+ /* Perform operation */
+ ablkcipher_append_src_dst(desc);
+
+ /* Wait for key to load before allowing propagating error */
+ append_dec_shr_done(desc);
+
+ ctx->sh_desc_dec_dma = dma_map_single(jrdev, desc,
+ desc_bytes(desc),
+ DMA_TO_DEVICE);
+ if (dma_mapping_error(jrdev, ctx->sh_desc_enc_dma)) {
+ dev_err(jrdev, "unable to map shared descriptor\n");
+ return -ENOMEM;
+ }
+
+#ifdef DEBUG
+ print_hex_dump(KERN_ERR, "ablkcipher dec shdesc@"xstr(__LINE__)": ",
+ DUMP_PREFIX_ADDRESS, 16, 4, desc,
+ desc_bytes(desc), 1);
+#endif
+ dma_sync_single_for_device(jrdev, ctx->sh_desc_dec_dma,
+ desc_bytes(desc), DMA_TO_DEVICE);
+
+ return ret;
+}
+
+/*
+ * 16-byte hardware scatter/gather table
+ * An 8-byte table exists in the hardware spec, but has never been
+ * implemented to date. The 8/16 option is selected at RTL-compile-time.
+ * and this selection is visible in the Compile Time Parameters Register
+ */
+
+#define LINKTBL_EXT 0x80000000 /* Entry points to table */
+#define LINKTBL_FINAL 0x40000000 /* Last ent in table */
+#define LINKTBL_BPID_MASK 0x000000ff
+#define LINKTBL_BPID_SHIFT 16
+#define LINKTBL_LEN_MASK 0x3fffffff /* Excludes EXT and FINAL */
+#define LINKTBL_OFFS_MASK 0x00001fff
+
struct link_tbl_entry {
+#ifdef CONFIG_64BIT
u64 ptr;
+#else
+ u32 reserved;
+ u32 ptr;
+#endif
u32 len;
- u8 reserved;
- u8 buf_pool_id;
- u16 offset;
+ u32 bpid_offset; /* BPID in high, offset in lowest bits */
};
/*
- * ipsec_esp_edesc - s/w-extended ipsec_esp descriptor
+ * aead_edesc - s/w-extended aead descriptor
+ * @assoc_nents: number of segments in associated data (SPI+Seq) scatterlist
* @src_nents: number of segments in input scatterlist
* @dst_nents: number of segments in output scatterlist
- * @assoc_nents: number of segments in associated data (SPI+Seq) scatterlist
+ * @iv_dma: dma address of iv for checking continuity and link table
* @desc: h/w descriptor (variable length; must not exceed MAX_CAAM_DESCSIZE)
* @link_tbl_bytes: length of dma mapped link_tbl space
* @link_tbl_dma: bus physical mapped address of h/w link table
* @hw_desc: the h/w job descriptor followed by any referenced link tables
*/
-struct ipsec_esp_edesc {
+struct aead_edesc {
int assoc_nents;
int src_nents;
int dst_nents;
+ dma_addr_t iv_dma;
int link_tbl_bytes;
dma_addr_t link_tbl_dma;
struct link_tbl_entry *link_tbl;
u32 hw_desc[0];
};
-static void ipsec_esp_unmap(struct device *dev,
- struct ipsec_esp_edesc *edesc,
- struct aead_request *areq)
-{
- dma_unmap_sg(dev, areq->assoc, edesc->assoc_nents, DMA_TO_DEVICE);
+/*
+ * ablkcipher_edesc - s/w-extended ablkcipher descriptor
+ * @src_nents: number of segments in input scatterlist
+ * @dst_nents: number of segments in output scatterlist
+ * @iv_dma: dma address of iv for checking continuity and link table
+ * @desc: h/w descriptor (variable length; must not exceed MAX_CAAM_DESCSIZE)
+ * @link_tbl_bytes: length of dma mapped link_tbl space
+ * @link_tbl_dma: bus physical mapped address of h/w link table
+ * @hw_desc: the h/w job descriptor followed by any referenced link tables
+ */
+struct ablkcipher_edesc {
+ int src_nents;
+ int dst_nents;
+ dma_addr_t iv_dma;
+ int link_tbl_bytes;
+ dma_addr_t link_tbl_dma;
+ struct link_tbl_entry *link_tbl;
+ u32 hw_desc[0];
+};
- if (unlikely(areq->dst != areq->src)) {
- dma_unmap_sg(dev, areq->src, edesc->src_nents,
- DMA_TO_DEVICE);
- dma_unmap_sg(dev, areq->dst, edesc->dst_nents,
- DMA_FROM_DEVICE);
+static void caam_unmap(struct device *dev, struct scatterlist *src,
+ struct scatterlist *dst, int src_nents, int dst_nents,
+ dma_addr_t iv_dma, int ivsize, dma_addr_t link_tbl_dma,
+ int link_tbl_bytes)
+{
+ if (unlikely(dst != src)) {
+ dma_unmap_sg(dev, src, src_nents, DMA_TO_DEVICE);
+ dma_sync_sg_for_cpu(dev, dst, dst_nents, DMA_FROM_DEVICE);
+ dma_unmap_sg(dev, dst, dst_nents, DMA_FROM_DEVICE);
} else {
- dma_unmap_sg(dev, areq->src, edesc->src_nents,
- DMA_BIDIRECTIONAL);
+ dma_sync_sg_for_cpu(dev, src, src_nents, DMA_BIDIRECTIONAL);
+ dma_unmap_sg(dev, src, src_nents, DMA_BIDIRECTIONAL);
}
- if (edesc->link_tbl_bytes)
- dma_unmap_single(dev, edesc->link_tbl_dma,
- edesc->link_tbl_bytes,
+ if (iv_dma)
+ dma_unmap_single(dev, iv_dma, ivsize, DMA_TO_DEVICE);
+
+ if (link_tbl_bytes)
+ dma_unmap_single(dev, link_tbl_dma, link_tbl_bytes,
DMA_TO_DEVICE);
}
-/*
- * ipsec_esp descriptor callbacks
- */
-static void ipsec_esp_encrypt_done(struct device *jrdev, u32 *desc, u32 err,
+static void aead_unmap(struct device *dev,
+ struct aead_edesc *edesc,
+ struct aead_request *req)
+{
+ struct crypto_aead *aead = crypto_aead_reqtfm(req);
+ int ivsize = crypto_aead_ivsize(aead);
+
+ dma_unmap_sg(dev, req->assoc, edesc->assoc_nents, DMA_TO_DEVICE);
+
+ caam_unmap(dev, req->src, req->dst,
+ edesc->src_nents, edesc->dst_nents,
+ edesc->iv_dma, ivsize, edesc->link_tbl_dma,
+ edesc->link_tbl_bytes);
+}
+
+static void ablkcipher_unmap(struct device *dev,
+ struct ablkcipher_edesc *edesc,
+ struct ablkcipher_request *req)
+{
+ struct crypto_ablkcipher *ablkcipher = crypto_ablkcipher_reqtfm(req);
+ int ivsize = crypto_ablkcipher_ivsize(ablkcipher);
+
+ caam_unmap(dev, req->src, req->dst,
+ edesc->src_nents, edesc->dst_nents,
+ edesc->iv_dma, ivsize, edesc->link_tbl_dma,
+ edesc->link_tbl_bytes);
+}
+
+static void aead_encrypt_done(struct device *jrdev, u32 *desc, u32 err,
void *context)
{
- struct aead_request *areq = context;
- struct ipsec_esp_edesc *edesc;
+ struct aead_request *req = context;
+ struct aead_edesc *edesc;
#ifdef DEBUG
- struct crypto_aead *aead = crypto_aead_reqtfm(areq);
- int ivsize = crypto_aead_ivsize(aead);
+ struct crypto_aead *aead = crypto_aead_reqtfm(req);
struct caam_ctx *ctx = crypto_aead_ctx(aead);
+ int ivsize = crypto_aead_ivsize(aead);
dev_err(jrdev, "%s %d: err 0x%x\n", __func__, __LINE__, err);
#endif
- edesc = (struct ipsec_esp_edesc *)((char *)desc -
- offsetof(struct ipsec_esp_edesc, hw_desc));
+
+ edesc = (struct aead_edesc *)((char *)desc -
+ offsetof(struct aead_edesc, hw_desc));
if (err) {
char tmp[CAAM_ERROR_STR_MAX];
@@ -444,39 +916,50 @@ static void ipsec_esp_encrypt_done(struct device *jrdev, u32 *desc, u32 err,
dev_err(jrdev, "%08x: %s\n", err, caam_jr_strstatus(tmp, err));
}
- ipsec_esp_unmap(jrdev, edesc, areq);
+ aead_unmap(jrdev, edesc, req);
#ifdef DEBUG
print_hex_dump(KERN_ERR, "assoc @"xstr(__LINE__)": ",
- DUMP_PREFIX_ADDRESS, 16, 4, sg_virt(areq->assoc),
- areq->assoclen , 1);
+ DUMP_PREFIX_ADDRESS, 16, 4, sg_virt(req->assoc),
+ req->assoclen , 1);
print_hex_dump(KERN_ERR, "dstiv @"xstr(__LINE__)": ",
- DUMP_PREFIX_ADDRESS, 16, 4, sg_virt(areq->src) - ivsize,
+ DUMP_PREFIX_ADDRESS, 16, 4, sg_virt(req->src) - ivsize,
edesc->src_nents ? 100 : ivsize, 1);
print_hex_dump(KERN_ERR, "dst @"xstr(__LINE__)": ",
- DUMP_PREFIX_ADDRESS, 16, 4, sg_virt(areq->src),
- edesc->src_nents ? 100 : areq->cryptlen +
+ DUMP_PREFIX_ADDRESS, 16, 4, sg_virt(req->src),
+ edesc->src_nents ? 100 : req->cryptlen +
ctx->authsize + 4, 1);
#endif
kfree(edesc);
- aead_request_complete(areq, err);
+ aead_request_complete(req, err);
}
-static void ipsec_esp_decrypt_done(struct device *jrdev, u32 *desc, u32 err,
+static void aead_decrypt_done(struct device *jrdev, u32 *desc, u32 err,
void *context)
{
- struct aead_request *areq = context;
- struct ipsec_esp_edesc *edesc;
+ struct aead_request *req = context;
+ struct aead_edesc *edesc;
#ifdef DEBUG
- struct crypto_aead *aead = crypto_aead_reqtfm(areq);
+ struct crypto_aead *aead = crypto_aead_reqtfm(req);
struct caam_ctx *ctx = crypto_aead_ctx(aead);
+ int ivsize = crypto_aead_ivsize(aead);
dev_err(jrdev, "%s %d: err 0x%x\n", __func__, __LINE__, err);
#endif
- edesc = (struct ipsec_esp_edesc *)((char *)desc -
- offsetof(struct ipsec_esp_edesc, hw_desc));
+
+ edesc = (struct aead_edesc *)((char *)desc -
+ offsetof(struct aead_edesc, hw_desc));
+
+#ifdef DEBUG
+ print_hex_dump(KERN_ERR, "dstiv @"xstr(__LINE__)": ",
+ DUMP_PREFIX_ADDRESS, 16, 4, req->iv,
+ ivsize, 1);
+ print_hex_dump(KERN_ERR, "dst @"xstr(__LINE__)": ",
+ DUMP_PREFIX_ADDRESS, 16, 4, sg_virt(req->dst),
+ req->cryptlen, 1);
+#endif
if (err) {
char tmp[CAAM_ERROR_STR_MAX];
@@ -484,7 +967,7 @@ static void ipsec_esp_decrypt_done(struct device *jrdev, u32 *desc, u32 err,
dev_err(jrdev, "%08x: %s\n", err, caam_jr_strstatus(tmp, err));
}
- ipsec_esp_unmap(jrdev, edesc, areq);
+ aead_unmap(jrdev, edesc, req);
/*
* verify hw auth check passed else return -EBADMSG
@@ -495,255 +978,423 @@ static void ipsec_esp_decrypt_done(struct device *jrdev, u32 *desc, u32 err,
#ifdef DEBUG
print_hex_dump(KERN_ERR, "iphdrout@"xstr(__LINE__)": ",
DUMP_PREFIX_ADDRESS, 16, 4,
- ((char *)sg_virt(areq->assoc) - sizeof(struct iphdr)),
- sizeof(struct iphdr) + areq->assoclen +
- ((areq->cryptlen > 1500) ? 1500 : areq->cryptlen) +
+ ((char *)sg_virt(req->assoc) - sizeof(struct iphdr)),
+ sizeof(struct iphdr) + req->assoclen +
+ ((req->cryptlen > 1500) ? 1500 : req->cryptlen) +
ctx->authsize + 36, 1);
if (!err && edesc->link_tbl_bytes) {
- struct scatterlist *sg = sg_last(areq->src, edesc->src_nents);
+ struct scatterlist *sg = sg_last(req->src, edesc->src_nents);
print_hex_dump(KERN_ERR, "sglastout@"xstr(__LINE__)": ",
DUMP_PREFIX_ADDRESS, 16, 4, sg_virt(sg),
sg->length + ctx->authsize + 16, 1);
}
#endif
+
kfree(edesc);
- aead_request_complete(areq, err);
+ aead_request_complete(req, err);
+}
+
+static void ablkcipher_encrypt_done(struct device *jrdev, u32 *desc, u32 err,
+ void *context)
+{
+ struct ablkcipher_request *req = context;
+ struct ablkcipher_edesc *edesc;
+#ifdef DEBUG
+ struct crypto_ablkcipher *ablkcipher = crypto_ablkcipher_reqtfm(req);
+ int ivsize = crypto_ablkcipher_ivsize(ablkcipher);
+
+ dev_err(jrdev, "%s %d: err 0x%x\n", __func__, __LINE__, err);
+#endif
+
+ edesc = (struct ablkcipher_edesc *)((char *)desc -
+ offsetof(struct ablkcipher_edesc, hw_desc));
+
+ if (err) {
+ char tmp[CAAM_ERROR_STR_MAX];
+
+ dev_err(jrdev, "%08x: %s\n", err, caam_jr_strstatus(tmp, err));
+ }
+
+#ifdef DEBUG
+ print_hex_dump(KERN_ERR, "dstiv @"xstr(__LINE__)": ",
+ DUMP_PREFIX_ADDRESS, 16, 4, req->info,
+ edesc->src_nents > 1 ? 100 : ivsize, 1);
+ print_hex_dump(KERN_ERR, "dst @"xstr(__LINE__)": ",
+ DUMP_PREFIX_ADDRESS, 16, 4, sg_virt(req->src),
+ edesc->dst_nents > 1 ? 100 : req->nbytes, 1);
+#endif
+
+ ablkcipher_unmap(jrdev, edesc, req);
+ kfree(edesc);
+
+ ablkcipher_request_complete(req, err);
+}
+
+static void ablkcipher_decrypt_done(struct device *jrdev, u32 *desc, u32 err,
+ void *context)
+{
+ struct ablkcipher_request *req = context;
+ struct ablkcipher_edesc *edesc;
+#ifdef DEBUG
+ struct crypto_ablkcipher *ablkcipher = crypto_ablkcipher_reqtfm(req);
+ int ivsize = crypto_ablkcipher_ivsize(ablkcipher);
+
+ dev_err(jrdev, "%s %d: err 0x%x\n", __func__, __LINE__, err);
+#endif
+
+ edesc = (struct ablkcipher_edesc *)((char *)desc -
+ offsetof(struct ablkcipher_edesc, hw_desc));
+ if (err) {
+ char tmp[CAAM_ERROR_STR_MAX];
+
+ dev_err(jrdev, "%08x: %s\n", err, caam_jr_strstatus(tmp, err));
+ }
+
+#ifdef DEBUG
+ print_hex_dump(KERN_ERR, "dstiv @"xstr(__LINE__)": ",
+ DUMP_PREFIX_ADDRESS, 16, 4, req->info,
+ ivsize, 1);
+ print_hex_dump(KERN_ERR, "dst @"xstr(__LINE__)": ",
+ DUMP_PREFIX_ADDRESS, 16, 4, sg_virt(req->src),
+ edesc->dst_nents > 1 ? 100 : req->nbytes, 1);
+#endif
+
+ ablkcipher_unmap(jrdev, edesc, req);
+ kfree(edesc);
+
+ ablkcipher_request_complete(req, err);
+}
+
+static void sg_to_link_tbl_one(struct link_tbl_entry *link_tbl_ptr,
+ dma_addr_t dma, u32 len, u32 offset)
+{
+#ifndef CONFIG_64BIT
+ link_tbl_ptr->reserved = 0; /* ensure high half is zero */
+#endif
+ link_tbl_ptr->ptr = dma;
+ link_tbl_ptr->len = (len & LINKTBL_LEN_MASK);
+ /* Does not add in buffer pool ID's at this time */
+ link_tbl_ptr->bpid_offset = (offset & LINKTBL_OFFS_MASK);
+
+#ifdef DEBUG
+ print_hex_dump(KERN_ERR, "link_tbl_ptr@"xstr(__LINE__)": ",
+ DUMP_PREFIX_ADDRESS, 16, 4, link_tbl_ptr,
+ sizeof(struct link_tbl_entry), 1);
+#endif
}
/*
* convert scatterlist to h/w link table format
- * scatterlist must have been previously dma mapped
+ * but does not have final bit; instead, returns last entry
*/
-static void sg_to_link_tbl(struct scatterlist *sg, int sg_count,
- struct link_tbl_entry *link_tbl_ptr, u32 offset)
+static struct link_tbl_entry *sg_to_link_tbl(struct scatterlist *sg,
+ int sg_count, struct link_tbl_entry
+ *link_tbl_ptr, u32 offset)
{
while (sg_count) {
- link_tbl_ptr->ptr = sg_dma_address(sg);
- link_tbl_ptr->len = sg_dma_len(sg);
- link_tbl_ptr->reserved = 0;
- link_tbl_ptr->buf_pool_id = 0;
- link_tbl_ptr->offset = offset;
+ sg_to_link_tbl_one(link_tbl_ptr, sg_dma_address(sg),
+ sg_dma_len(sg), offset);
link_tbl_ptr++;
sg = sg_next(sg);
sg_count--;
}
+ return link_tbl_ptr - 1;
+}
- /* set Final bit (marks end of link table) */
- link_tbl_ptr--;
- link_tbl_ptr->len |= 0x40000000;
+/*
+ * convert scatterlist to h/w link table format
+ * scatterlist must have been previously dma mapped
+ */
+static void sg_to_link_tbl_last(struct scatterlist *sg, int sg_count,
+ struct link_tbl_entry *link_tbl_ptr, u32 offset)
+{
+ link_tbl_ptr = sg_to_link_tbl(sg, sg_count, link_tbl_ptr, offset);
+ link_tbl_ptr->len |= LINKTBL_FINAL;
}
/*
- * fill in and submit ipsec_esp job descriptor
+ * Fill in aead job descriptor
*/
-static int ipsec_esp(struct ipsec_esp_edesc *edesc, struct aead_request *areq,
- u32 encrypt,
- void (*callback) (struct device *dev, u32 *desc,
- u32 err, void *context))
+static void init_aead_job(u32 *sh_desc, dma_addr_t ptr,
+ struct aead_edesc *edesc,
+ struct aead_request *req,
+ bool all_contig, bool encrypt)
{
- struct crypto_aead *aead = crypto_aead_reqtfm(areq);
+ struct crypto_aead *aead = crypto_aead_reqtfm(req);
struct caam_ctx *ctx = crypto_aead_ctx(aead);
- struct device *jrdev = ctx->jrdev;
- u32 *desc = edesc->hw_desc, options;
- int ret, sg_count, assoc_sg_count;
int ivsize = crypto_aead_ivsize(aead);
int authsize = ctx->authsize;
- dma_addr_t ptr, dst_dma, src_dma;
-#ifdef DEBUG
- u32 *sh_desc = ctx->sh_desc;
+ u32 *desc = edesc->hw_desc;
+ u32 out_options = 0, in_options;
+ dma_addr_t dst_dma, src_dma;
+ int len, link_tbl_index = 0;
+#ifdef DEBUG
debug("assoclen %d cryptlen %d authsize %d\n",
- areq->assoclen, areq->cryptlen, authsize);
+ req->assoclen, req->cryptlen, authsize);
print_hex_dump(KERN_ERR, "assoc @"xstr(__LINE__)": ",
- DUMP_PREFIX_ADDRESS, 16, 4, sg_virt(areq->assoc),
- areq->assoclen , 1);
+ DUMP_PREFIX_ADDRESS, 16, 4, sg_virt(req->assoc),
+ req->assoclen , 1);
print_hex_dump(KERN_ERR, "presciv@"xstr(__LINE__)": ",
- DUMP_PREFIX_ADDRESS, 16, 4, sg_virt(areq->src) - ivsize,
+ DUMP_PREFIX_ADDRESS, 16, 4, req->iv,
edesc->src_nents ? 100 : ivsize, 1);
print_hex_dump(KERN_ERR, "src @"xstr(__LINE__)": ",
- DUMP_PREFIX_ADDRESS, 16, 4, sg_virt(areq->src),
- edesc->src_nents ? 100 : areq->cryptlen + authsize, 1);
+ DUMP_PREFIX_ADDRESS, 16, 4, sg_virt(req->src),
+ edesc->src_nents ? 100 : req->cryptlen, 1);
print_hex_dump(KERN_ERR, "shrdesc@"xstr(__LINE__)": ",
DUMP_PREFIX_ADDRESS, 16, 4, sh_desc,
desc_bytes(sh_desc), 1);
#endif
- assoc_sg_count = dma_map_sg(jrdev, areq->assoc, edesc->assoc_nents ?: 1,
- DMA_TO_DEVICE);
- if (areq->src == areq->dst)
- sg_count = dma_map_sg(jrdev, areq->src, edesc->src_nents ? : 1,
- DMA_BIDIRECTIONAL);
- else
- sg_count = dma_map_sg(jrdev, areq->src, edesc->src_nents ? : 1,
- DMA_TO_DEVICE);
- /* start auth operation */
- append_operation(desc, ctx->class2_alg_type | OP_ALG_AS_INITFINAL |
- (encrypt ? : OP_ALG_ICV_ON));
+ len = desc_len(sh_desc);
+ init_job_desc_shared(desc, ptr, len, HDR_SHARE_DEFER | HDR_REVERSE);
- /* Load FIFO with data for Class 2 CHA */
- options = FIFOLD_CLASS_CLASS2 | FIFOLD_TYPE_MSG;
- if (!edesc->assoc_nents) {
- ptr = sg_dma_address(areq->assoc);
+ if (all_contig) {
+ src_dma = sg_dma_address(req->assoc);
+ in_options = 0;
} else {
- sg_to_link_tbl(areq->assoc, edesc->assoc_nents,
- edesc->link_tbl, 0);
- ptr = edesc->link_tbl_dma;
- options |= LDST_SGF;
+ src_dma = edesc->link_tbl_dma;
+ link_tbl_index += (edesc->assoc_nents ? : 1) + 1 +
+ (edesc->src_nents ? : 1);
+ in_options = LDST_SGF;
}
- append_fifo_load(desc, ptr, areq->assoclen, options);
-
- /* copy iv from cipher/class1 input context to class2 infifo */
- append_move(desc, MOVE_SRC_CLASS1CTX | MOVE_DEST_CLASS2INFIFO | ivsize);
-
- if (!encrypt) {
- u32 *jump_cmd, *uncond_jump_cmd;
-
- /* JUMP if shared */
- jump_cmd = append_jump(desc, JUMP_TEST_ALL | JUMP_COND_SHRD);
+ if (encrypt)
+ append_seq_in_ptr(desc, src_dma, req->assoclen + ivsize +
+ req->cryptlen - authsize, in_options);
+ else
+ append_seq_in_ptr(desc, src_dma, req->assoclen + ivsize +
+ req->cryptlen, in_options);
- /* start class 1 (cipher) operation, non-shared version */
- append_operation(desc, ctx->class1_alg_type |
- OP_ALG_AS_INITFINAL);
+ if (likely(req->src == req->dst)) {
+ if (all_contig) {
+ dst_dma = sg_dma_address(req->src);
+ } else {
+ dst_dma = src_dma + sizeof(struct link_tbl_entry) *
+ ((edesc->assoc_nents ? : 1) + 1);
+ out_options = LDST_SGF;
+ }
+ } else {
+ if (!edesc->dst_nents) {
+ dst_dma = sg_dma_address(req->dst);
+ } else {
+ dst_dma = edesc->link_tbl_dma +
+ link_tbl_index *
+ sizeof(struct link_tbl_entry);
+ out_options = LDST_SGF;
+ }
+ }
+ if (encrypt)
+ append_seq_out_ptr(desc, dst_dma, req->cryptlen, out_options);
+ else
+ append_seq_out_ptr(desc, dst_dma, req->cryptlen - authsize,
+ out_options);
+}
- uncond_jump_cmd = append_jump(desc, 0);
+/*
+ * Fill in aead givencrypt job descriptor
+ */
+static void init_aead_giv_job(u32 *sh_desc, dma_addr_t ptr,
+ struct aead_edesc *edesc,
+ struct aead_request *req,
+ int contig)
+{
+ struct crypto_aead *aead = crypto_aead_reqtfm(req);
+ struct caam_ctx *ctx = crypto_aead_ctx(aead);
+ int ivsize = crypto_aead_ivsize(aead);
+ int authsize = ctx->authsize;
+ u32 *desc = edesc->hw_desc;
+ u32 out_options = 0, in_options;
+ dma_addr_t dst_dma, src_dma;
+ int len, link_tbl_index = 0;
- set_jump_tgt_here(desc, jump_cmd);
+#ifdef DEBUG
+ debug("assoclen %d cryptlen %d authsize %d\n",
+ req->assoclen, req->cryptlen, authsize);
+ print_hex_dump(KERN_ERR, "assoc @"xstr(__LINE__)": ",
+ DUMP_PREFIX_ADDRESS, 16, 4, sg_virt(req->assoc),
+ req->assoclen , 1);
+ print_hex_dump(KERN_ERR, "presciv@"xstr(__LINE__)": ",
+ DUMP_PREFIX_ADDRESS, 16, 4, req->iv, ivsize, 1);
+ print_hex_dump(KERN_ERR, "src @"xstr(__LINE__)": ",
+ DUMP_PREFIX_ADDRESS, 16, 4, sg_virt(req->src),
+ edesc->src_nents > 1 ? 100 : req->cryptlen, 1);
+ print_hex_dump(KERN_ERR, "shrdesc@"xstr(__LINE__)": ",
+ DUMP_PREFIX_ADDRESS, 16, 4, sh_desc,
+ desc_bytes(sh_desc), 1);
+#endif
- /* start class 1 (cipher) operation, shared version */
- append_operation(desc, ctx->class1_alg_type |
- OP_ALG_AS_INITFINAL | OP_ALG_AAI_DK);
- set_jump_tgt_here(desc, uncond_jump_cmd);
- } else
- append_operation(desc, ctx->class1_alg_type |
- OP_ALG_AS_INITFINAL | encrypt);
+ len = desc_len(sh_desc);
+ init_job_desc_shared(desc, ptr, len, HDR_SHARE_DEFER | HDR_REVERSE);
- /* load payload & instruct to class2 to snoop class 1 if encrypting */
- options = 0;
- if (!edesc->src_nents) {
- src_dma = sg_dma_address(areq->src);
+ if (contig & GIV_SRC_CONTIG) {
+ src_dma = sg_dma_address(req->assoc);
+ in_options = 0;
} else {
- sg_to_link_tbl(areq->src, edesc->src_nents, edesc->link_tbl +
- edesc->assoc_nents, 0);
- src_dma = edesc->link_tbl_dma + edesc->assoc_nents *
- sizeof(struct link_tbl_entry);
- options |= LDST_SGF;
+ src_dma = edesc->link_tbl_dma;
+ link_tbl_index += edesc->assoc_nents + 1 + edesc->src_nents;
+ in_options = LDST_SGF;
}
- append_seq_in_ptr(desc, src_dma, areq->cryptlen + authsize, options);
- append_seq_fifo_load(desc, areq->cryptlen, FIFOLD_CLASS_BOTH |
- FIFOLD_TYPE_LASTBOTH |
- (encrypt ? FIFOLD_TYPE_MSG1OUT2
- : FIFOLD_TYPE_MSG));
-
- /* specify destination */
- if (areq->src == areq->dst) {
- dst_dma = src_dma;
+ append_seq_in_ptr(desc, src_dma, req->assoclen + ivsize +
+ req->cryptlen - authsize, in_options);
+
+ if (contig & GIV_DST_CONTIG) {
+ dst_dma = edesc->iv_dma;
} else {
- sg_count = dma_map_sg(jrdev, areq->dst, edesc->dst_nents ? : 1,
- DMA_FROM_DEVICE);
- if (!edesc->dst_nents) {
- dst_dma = sg_dma_address(areq->dst);
- options = 0;
+ if (likely(req->src == req->dst)) {
+ dst_dma = src_dma + sizeof(struct link_tbl_entry) *
+ edesc->assoc_nents;
+ out_options = LDST_SGF;
} else {
- sg_to_link_tbl(areq->dst, edesc->dst_nents,
- edesc->link_tbl + edesc->assoc_nents +
- edesc->src_nents, 0);
- dst_dma = edesc->link_tbl_dma + (edesc->assoc_nents +
- edesc->src_nents) *
+ dst_dma = edesc->link_tbl_dma +
+ link_tbl_index *
sizeof(struct link_tbl_entry);
- options = LDST_SGF;
+ out_options = LDST_SGF;
}
}
- append_seq_out_ptr(desc, dst_dma, areq->cryptlen + authsize, options);
- append_seq_fifo_store(desc, areq->cryptlen, FIFOST_TYPE_MESSAGE_DATA);
- /* ICV */
- if (encrypt)
- append_seq_store(desc, authsize, LDST_CLASS_2_CCB |
- LDST_SRCDST_BYTE_CONTEXT);
- else
- append_seq_fifo_load(desc, authsize, FIFOLD_CLASS_CLASS2 |
- FIFOLD_TYPE_LAST2 | FIFOLD_TYPE_ICV);
+ append_seq_out_ptr(desc, dst_dma, ivsize + req->cryptlen, out_options);
+}
+
+/*
+ * Fill in ablkcipher job descriptor
+ */
+static void init_ablkcipher_job(u32 *sh_desc, dma_addr_t ptr,
+ struct ablkcipher_edesc *edesc,
+ struct ablkcipher_request *req,
+ bool iv_contig)
+{
+ struct crypto_ablkcipher *ablkcipher = crypto_ablkcipher_reqtfm(req);
+ int ivsize = crypto_ablkcipher_ivsize(ablkcipher);
+ u32 *desc = edesc->hw_desc;
+ u32 out_options = 0, in_options;
+ dma_addr_t dst_dma, src_dma;
+ int len, link_tbl_index = 0;
#ifdef DEBUG
- debug("job_desc_len %d\n", desc_len(desc));
- print_hex_dump(KERN_ERR, "jobdesc@"xstr(__LINE__)": ",
- DUMP_PREFIX_ADDRESS, 16, 4, desc, desc_bytes(desc) , 1);
- print_hex_dump(KERN_ERR, "jdlinkt@"xstr(__LINE__)": ",
- DUMP_PREFIX_ADDRESS, 16, 4, edesc->link_tbl,
- edesc->link_tbl_bytes, 1);
+ print_hex_dump(KERN_ERR, "presciv@"xstr(__LINE__)": ",
+ DUMP_PREFIX_ADDRESS, 16, 4, req->info,
+ ivsize, 1);
+ print_hex_dump(KERN_ERR, "src @"xstr(__LINE__)": ",
+ DUMP_PREFIX_ADDRESS, 16, 4, sg_virt(req->src),
+ edesc->src_nents ? 100 : req->nbytes, 1);
#endif
- ret = caam_jr_enqueue(jrdev, desc, callback, areq);
- if (!ret)
- ret = -EINPROGRESS;
- else {
- ipsec_esp_unmap(jrdev, edesc, areq);
- kfree(edesc);
+ len = desc_len(sh_desc);
+ init_job_desc_shared(desc, ptr, len, HDR_SHARE_DEFER | HDR_REVERSE);
+
+ if (iv_contig) {
+ src_dma = edesc->iv_dma;
+ in_options = 0;
+ } else {
+ src_dma = edesc->link_tbl_dma;
+ link_tbl_index += (iv_contig ? 0 : 1) + edesc->src_nents;
+ in_options = LDST_SGF;
}
+ append_seq_in_ptr(desc, src_dma, req->nbytes + ivsize, in_options);
- return ret;
+ if (likely(req->src == req->dst)) {
+ if (!edesc->src_nents && iv_contig) {
+ dst_dma = sg_dma_address(req->src);
+ } else {
+ dst_dma = edesc->link_tbl_dma +
+ sizeof(struct link_tbl_entry);
+ out_options = LDST_SGF;
+ }
+ } else {
+ if (!edesc->dst_nents) {
+ dst_dma = sg_dma_address(req->dst);
+ } else {
+ dst_dma = edesc->link_tbl_dma +
+ link_tbl_index * sizeof(struct link_tbl_entry);
+ out_options = LDST_SGF;
+ }
+ }
+ append_seq_out_ptr(desc, dst_dma, req->nbytes, out_options);
}
/*
* derive number of elements in scatterlist
*/
-static int sg_count(struct scatterlist *sg_list, int nbytes, int *chained)
+static int sg_count(struct scatterlist *sg_list, int nbytes)
{
struct scatterlist *sg = sg_list;
int sg_nents = 0;
- *chained = 0;
while (nbytes > 0) {
sg_nents++;
nbytes -= sg->length;
if (!sg_is_last(sg) && (sg + 1)->length == 0)
- *chained = 1;
+ BUG(); /* Not support chaining */
sg = scatterwalk_sg_next(sg);
}
+ if (likely(sg_nents == 1))
+ return 0;
+
return sg_nents;
}
/*
- * allocate and map the ipsec_esp extended descriptor
+ * allocate and map the aead extended descriptor
*/
-static struct ipsec_esp_edesc *ipsec_esp_edesc_alloc(struct aead_request *areq,
- int desc_bytes)
+static struct aead_edesc *aead_edesc_alloc(struct aead_request *req,
+ int desc_bytes, bool *all_contig_ptr)
{
- struct crypto_aead *aead = crypto_aead_reqtfm(areq);
+ struct crypto_aead *aead = crypto_aead_reqtfm(req);
struct caam_ctx *ctx = crypto_aead_ctx(aead);
struct device *jrdev = ctx->jrdev;
- gfp_t flags = areq->base.flags & CRYPTO_TFM_REQ_MAY_SLEEP ? GFP_KERNEL :
- GFP_ATOMIC;
- int assoc_nents, src_nents, dst_nents = 0, chained, link_tbl_bytes;
- struct ipsec_esp_edesc *edesc;
-
- assoc_nents = sg_count(areq->assoc, areq->assoclen, &chained);
- BUG_ON(chained);
- if (likely(assoc_nents == 1))
- assoc_nents = 0;
-
- src_nents = sg_count(areq->src, areq->cryptlen + ctx->authsize,
- &chained);
- BUG_ON(chained);
- if (src_nents == 1)
- src_nents = 0;
-
- if (unlikely(areq->dst != areq->src)) {
- dst_nents = sg_count(areq->dst, areq->cryptlen + ctx->authsize,
- &chained);
- BUG_ON(chained);
- if (dst_nents == 1)
- dst_nents = 0;
+ gfp_t flags = (req->base.flags & (CRYPTO_TFM_REQ_MAY_BACKLOG |
+ CRYPTO_TFM_REQ_MAY_SLEEP)) ? GFP_KERNEL : GFP_ATOMIC;
+ int assoc_nents, src_nents, dst_nents = 0;
+ struct aead_edesc *edesc;
+ dma_addr_t iv_dma = 0;
+ int sgc;
+ bool all_contig = true;
+ int ivsize = crypto_aead_ivsize(aead);
+ int link_tbl_index, link_tbl_len = 0, link_tbl_bytes;
+
+ assoc_nents = sg_count(req->assoc, req->assoclen);
+ src_nents = sg_count(req->src, req->cryptlen);
+
+ if (unlikely(req->dst != req->src))
+ dst_nents = sg_count(req->dst, req->cryptlen);
+
+ sgc = dma_map_sg(jrdev, req->assoc, assoc_nents ? : 1,
+ DMA_BIDIRECTIONAL);
+ dma_sync_sg_for_device(jrdev, req->assoc, sgc,
+ DMA_BIDIRECTIONAL);
+ if (likely(req->src == req->dst)) {
+ sgc = dma_map_sg(jrdev, req->src, src_nents ? : 1,
+ DMA_BIDIRECTIONAL);
+ dma_sync_sg_for_device(jrdev, req->src, sgc,
+ DMA_BIDIRECTIONAL);
+ } else {
+ sgc = dma_map_sg(jrdev, req->src, src_nents ? : 1,
+ DMA_TO_DEVICE);
+ dma_sync_sg_for_device(jrdev, req->src, sgc,
+ DMA_TO_DEVICE);
+ sgc = dma_map_sg(jrdev, req->dst, dst_nents ? : 1,
+ DMA_FROM_DEVICE);
}
- link_tbl_bytes = (assoc_nents + src_nents + dst_nents) *
- sizeof(struct link_tbl_entry);
- debug("link_tbl_bytes %d\n", link_tbl_bytes);
+ /* Check if data are contiguous */
+ iv_dma = dma_map_single(jrdev, req->iv, ivsize, DMA_TO_DEVICE);
+ if (assoc_nents || sg_dma_address(req->assoc) + req->assoclen !=
+ iv_dma || src_nents || iv_dma + ivsize !=
+ sg_dma_address(req->src)) {
+ all_contig = false;
+ assoc_nents = assoc_nents ? : 1;
+ src_nents = src_nents ? : 1;
+ link_tbl_len = assoc_nents + 1 + src_nents;
+ }
+ link_tbl_len += dst_nents;
+
+ link_tbl_bytes = link_tbl_len * sizeof(struct link_tbl_entry);
+ dma_sync_single_for_device(jrdev, iv_dma, ivsize, DMA_TO_DEVICE);
/* allocate space for base edesc and hw desc commands, link tables */
- edesc = kmalloc(sizeof(struct ipsec_esp_edesc) + desc_bytes +
+ edesc = kmalloc(sizeof(struct aead_edesc) + desc_bytes +
link_tbl_bytes, GFP_DMA | flags);
if (!edesc) {
dev_err(jrdev, "could not allocate extended descriptor\n");
@@ -753,142 +1404,470 @@ static struct ipsec_esp_edesc *ipsec_esp_edesc_alloc(struct aead_request *areq,
edesc->assoc_nents = assoc_nents;
edesc->src_nents = src_nents;
edesc->dst_nents = dst_nents;
- edesc->link_tbl = (void *)edesc + sizeof(struct ipsec_esp_edesc) +
+ edesc->iv_dma = iv_dma;
+ edesc->link_tbl_bytes = link_tbl_bytes;
+ edesc->link_tbl = (void *)edesc + sizeof(struct aead_edesc) +
desc_bytes;
edesc->link_tbl_dma = dma_map_single(jrdev, edesc->link_tbl,
link_tbl_bytes, DMA_TO_DEVICE);
- edesc->link_tbl_bytes = link_tbl_bytes;
+ *all_contig_ptr = all_contig;
+
+ link_tbl_index = 0;
+ if (!all_contig) {
+ sg_to_link_tbl(req->assoc,
+ (assoc_nents ? : 1),
+ edesc->link_tbl +
+ link_tbl_index, 0);
+ link_tbl_index += assoc_nents ? : 1;
+ sg_to_link_tbl_one(edesc->link_tbl + link_tbl_index,
+ iv_dma, ivsize, 0);
+ link_tbl_index += 1;
+ sg_to_link_tbl_last(req->src,
+ (src_nents ? : 1),
+ edesc->link_tbl +
+ link_tbl_index, 0);
+ link_tbl_index += src_nents ? : 1;
+ }
+ if (dst_nents) {
+ sg_to_link_tbl_last(req->dst, dst_nents,
+ edesc->link_tbl + link_tbl_index, 0);
+ }
+ dma_sync_single_for_device(jrdev, edesc->link_tbl_dma, link_tbl_bytes,
+ DMA_TO_DEVICE);
return edesc;
}
-static int aead_authenc_encrypt(struct aead_request *areq)
+static int aead_encrypt(struct aead_request *req)
{
- struct ipsec_esp_edesc *edesc;
- struct crypto_aead *aead = crypto_aead_reqtfm(areq);
+ struct aead_edesc *edesc;
+ struct crypto_aead *aead = crypto_aead_reqtfm(req);
struct caam_ctx *ctx = crypto_aead_ctx(aead);
struct device *jrdev = ctx->jrdev;
- int ivsize = crypto_aead_ivsize(aead);
+ bool all_contig;
u32 *desc;
- dma_addr_t iv_dma;
+ int ret = 0;
+
+ req->cryptlen += ctx->authsize;
/* allocate extended descriptor */
- edesc = ipsec_esp_edesc_alloc(areq, DESC_AEAD_ENCRYPT_TEXT_LEN *
- CAAM_CMD_SZ);
+ edesc = aead_edesc_alloc(req, DESC_JOB_IO_LEN *
+ CAAM_CMD_SZ, &all_contig);
if (IS_ERR(edesc))
return PTR_ERR(edesc);
- desc = edesc->hw_desc;
-
- /* insert shared descriptor pointer */
- init_job_desc_shared(desc, ctx->shared_desc_phys,
- desc_len(ctx->sh_desc), HDR_SHARE_DEFER);
-
- iv_dma = dma_map_single(jrdev, areq->iv, ivsize, DMA_TO_DEVICE);
- /* check dma error */
+ /* Create and submit job descriptor */
+ init_aead_job(ctx->sh_desc_enc, ctx->sh_desc_enc_dma, edesc, req,
+ all_contig, true);
+#ifdef DEBUG
+ print_hex_dump(KERN_ERR, "aead jobdesc@"xstr(__LINE__)": ",
+ DUMP_PREFIX_ADDRESS, 16, 4, edesc->hw_desc,
+ desc_bytes(edesc->hw_desc), 1);
+#endif
- append_load(desc, iv_dma, ivsize,
- LDST_CLASS_1_CCB | LDST_SRCDST_BYTE_CONTEXT);
+ desc = edesc->hw_desc;
+ ret = caam_jr_enqueue(jrdev, desc, aead_encrypt_done, req);
+ if (!ret) {
+ ret = -EINPROGRESS;
+ } else {
+ aead_unmap(jrdev, edesc, req);
+ kfree(edesc);
+ }
- return ipsec_esp(edesc, areq, OP_ALG_ENCRYPT, ipsec_esp_encrypt_done);
+ return ret;
}
-static int aead_authenc_decrypt(struct aead_request *req)
+static int aead_decrypt(struct aead_request *req)
{
+ struct aead_edesc *edesc;
struct crypto_aead *aead = crypto_aead_reqtfm(req);
- int ivsize = crypto_aead_ivsize(aead);
struct caam_ctx *ctx = crypto_aead_ctx(aead);
struct device *jrdev = ctx->jrdev;
- struct ipsec_esp_edesc *edesc;
+ bool all_contig;
u32 *desc;
- dma_addr_t iv_dma;
-
- req->cryptlen -= ctx->authsize;
+ int ret = 0;
/* allocate extended descriptor */
- edesc = ipsec_esp_edesc_alloc(req, DESC_AEAD_DECRYPT_TEXT_LEN *
- CAAM_CMD_SZ);
+ edesc = aead_edesc_alloc(req, DESC_JOB_IO_LEN *
+ CAAM_CMD_SZ, &all_contig);
if (IS_ERR(edesc))
return PTR_ERR(edesc);
+#ifdef DEBUG
+ print_hex_dump(KERN_ERR, "dec src@"xstr(__LINE__)": ",
+ DUMP_PREFIX_ADDRESS, 16, 4, sg_virt(req->src),
+ req->cryptlen, 1);
+#endif
+
+ /* Create and submit job descriptor*/
+ init_aead_job(ctx->sh_desc_dec,
+ ctx->sh_desc_dec_dma, edesc, req, all_contig, false);
+#ifdef DEBUG
+ print_hex_dump(KERN_ERR, "aead jobdesc@"xstr(__LINE__)": ",
+ DUMP_PREFIX_ADDRESS, 16, 4, edesc->hw_desc,
+ desc_bytes(edesc->hw_desc), 1);
+#endif
+
desc = edesc->hw_desc;
+ ret = caam_jr_enqueue(jrdev, desc, aead_decrypt_done, req);
+ if (!ret) {
+ ret = -EINPROGRESS;
+ } else {
+ aead_unmap(jrdev, edesc, req);
+ kfree(edesc);
+ }
- /* insert shared descriptor pointer */
- init_job_desc_shared(desc, ctx->shared_desc_phys,
- desc_len(ctx->sh_desc), HDR_SHARE_DEFER);
+ return ret;
+}
- iv_dma = dma_map_single(jrdev, req->iv, ivsize, DMA_TO_DEVICE);
- /* check dma error */
+/*
+ * allocate and map the aead extended descriptor for aead givencrypt
+ */
+static struct aead_edesc *aead_giv_edesc_alloc(struct aead_givcrypt_request
+ *greq, int desc_bytes,
+ u32 *contig_ptr)
+{
+ struct aead_request *req = &greq->areq;
+ struct crypto_aead *aead = crypto_aead_reqtfm(req);
+ struct caam_ctx *ctx = crypto_aead_ctx(aead);
+ struct device *jrdev = ctx->jrdev;
+ gfp_t flags = (req->base.flags & (CRYPTO_TFM_REQ_MAY_BACKLOG |
+ CRYPTO_TFM_REQ_MAY_SLEEP)) ? GFP_KERNEL : GFP_ATOMIC;
+ int assoc_nents, src_nents, dst_nents = 0;
+ struct aead_edesc *edesc;
+ dma_addr_t iv_dma = 0;
+ int sgc;
+ u32 contig = GIV_SRC_CONTIG | GIV_DST_CONTIG;
+ int ivsize = crypto_aead_ivsize(aead);
+ int link_tbl_index, link_tbl_len = 0, link_tbl_bytes;
+
+ assoc_nents = sg_count(req->assoc, req->assoclen);
+ src_nents = sg_count(req->src, req->cryptlen);
+
+ if (unlikely(req->dst != req->src))
+ dst_nents = sg_count(req->dst, req->cryptlen);
+
+ sgc = dma_map_sg(jrdev, req->assoc, assoc_nents ? : 1,
+ DMA_BIDIRECTIONAL);
+ dma_sync_sg_for_device(jrdev, req->assoc, assoc_nents ? : 1,
+ DMA_BIDIRECTIONAL);
+ if (likely(req->src == req->dst)) {
+ sgc = dma_map_sg(jrdev, req->src, src_nents ? : 1,
+ DMA_BIDIRECTIONAL);
+ dma_sync_sg_for_device(jrdev, req->src, src_nents ? : 1,
+ DMA_BIDIRECTIONAL);
+ } else {
+ sgc = dma_map_sg(jrdev, req->src, src_nents ? : 1,
+ DMA_TO_DEVICE);
+ dma_sync_sg_for_device(jrdev, req->src, src_nents ? : 1,
+ DMA_TO_DEVICE);
+ sgc = dma_map_sg(jrdev, req->dst, dst_nents ? : 1,
+ DMA_FROM_DEVICE);
+ }
- append_load(desc, iv_dma, ivsize,
- LDST_CLASS_1_CCB | LDST_SRCDST_BYTE_CONTEXT);
+ /* Check if data are contiguous */
+ iv_dma = dma_map_single(jrdev, greq->giv, ivsize, DMA_TO_DEVICE);
+ if (assoc_nents || sg_dma_address(req->assoc) + req->assoclen !=
+ iv_dma || src_nents || iv_dma + ivsize != sg_dma_address(req->src))
+ contig &= ~GIV_SRC_CONTIG;
+ if (dst_nents || iv_dma + ivsize != sg_dma_address(req->dst))
+ contig &= ~GIV_DST_CONTIG;
+ if (unlikely(req->src != req->dst)) {
+ dst_nents = dst_nents ? : 1;
+ link_tbl_len += 1;
+ }
+ if (!(contig & GIV_SRC_CONTIG)) {
+ assoc_nents = assoc_nents ? : 1;
+ src_nents = src_nents ? : 1;
+ link_tbl_len += assoc_nents + 1 + src_nents;
+ if (likely(req->src == req->dst))
+ contig &= ~GIV_DST_CONTIG;
+ }
+ link_tbl_len += dst_nents;
+
+ link_tbl_bytes = link_tbl_len * sizeof(struct link_tbl_entry);
+
+ dma_sync_single_for_device(jrdev, iv_dma, ivsize, DMA_TO_DEVICE);
+
+ /* allocate space for base edesc and hw desc commands, link tables */
+ edesc = kmalloc(sizeof(struct aead_edesc) + desc_bytes +
+ link_tbl_bytes, GFP_DMA | flags);
+ if (!edesc) {
+ dev_err(jrdev, "could not allocate extended descriptor\n");
+ return ERR_PTR(-ENOMEM);
+ }
+
+ edesc->assoc_nents = assoc_nents;
+ edesc->src_nents = src_nents;
+ edesc->dst_nents = dst_nents;
+ edesc->iv_dma = iv_dma;
+ edesc->link_tbl_bytes = link_tbl_bytes;
+ edesc->link_tbl = (void *)edesc + sizeof(struct aead_edesc) +
+ desc_bytes;
+ edesc->link_tbl_dma = dma_map_single(jrdev, edesc->link_tbl,
+ link_tbl_bytes, DMA_TO_DEVICE);
+ *contig_ptr = contig;
+
+ link_tbl_index = 0;
+ if (!(contig & GIV_SRC_CONTIG)) {
+ sg_to_link_tbl(req->assoc, assoc_nents,
+ edesc->link_tbl +
+ link_tbl_index, 0);
+ link_tbl_index += assoc_nents;
+ sg_to_link_tbl_one(edesc->link_tbl + link_tbl_index,
+ iv_dma, ivsize, 0);
+ link_tbl_index += 1;
+ sg_to_link_tbl_last(req->src, src_nents,
+ edesc->link_tbl +
+ link_tbl_index, 0);
+ link_tbl_index += src_nents;
+ }
+ if (unlikely(req->src != req->dst && !(contig & GIV_DST_CONTIG))) {
+ sg_to_link_tbl_one(edesc->link_tbl + link_tbl_index,
+ iv_dma, ivsize, 0);
+ link_tbl_index += 1;
+ sg_to_link_tbl_last(req->dst, dst_nents,
+ edesc->link_tbl + link_tbl_index, 0);
+ }
+ dma_sync_single_for_device(jrdev, edesc->link_tbl_dma, link_tbl_bytes,
+ DMA_TO_DEVICE);
- return ipsec_esp(edesc, req, !OP_ALG_ENCRYPT, ipsec_esp_decrypt_done);
+ return edesc;
}
-static int aead_authenc_givencrypt(struct aead_givcrypt_request *req)
+static int aead_givencrypt(struct aead_givcrypt_request *areq)
{
- struct aead_request *areq = &req->areq;
- struct ipsec_esp_edesc *edesc;
- struct crypto_aead *aead = crypto_aead_reqtfm(areq);
+ struct aead_request *req = &areq->areq;
+ struct aead_edesc *edesc;
+ struct crypto_aead *aead = crypto_aead_reqtfm(req);
struct caam_ctx *ctx = crypto_aead_ctx(aead);
struct device *jrdev = ctx->jrdev;
- int ivsize = crypto_aead_ivsize(aead);
- dma_addr_t iv_dma;
+ u32 contig;
u32 *desc;
+ int ret = 0;
- iv_dma = dma_map_single(jrdev, req->giv, ivsize, DMA_FROM_DEVICE);
-
- debug("%s: giv %p\n", __func__, req->giv);
+ req->cryptlen += ctx->authsize;
/* allocate extended descriptor */
- edesc = ipsec_esp_edesc_alloc(areq, DESC_AEAD_GIVENCRYPT_TEXT_LEN *
- CAAM_CMD_SZ);
+ edesc = aead_giv_edesc_alloc(areq, DESC_JOB_IO_LEN *
+ CAAM_CMD_SZ, &contig);
+
if (IS_ERR(edesc))
return PTR_ERR(edesc);
+#ifdef DEBUG
+ print_hex_dump(KERN_ERR, "giv src@"xstr(__LINE__)": ",
+ DUMP_PREFIX_ADDRESS, 16, 4, sg_virt(req->src),
+ req->cryptlen, 1);
+#endif
+
+ /* Create and submit job descriptor*/
+ init_aead_giv_job(ctx->sh_desc_givenc,
+ ctx->sh_desc_givenc_dma, edesc, req, contig);
+#ifdef DEBUG
+ print_hex_dump(KERN_ERR, "aead jobdesc@"xstr(__LINE__)": ",
+ DUMP_PREFIX_ADDRESS, 16, 4, edesc->hw_desc,
+ desc_bytes(edesc->hw_desc), 1);
+#endif
+
desc = edesc->hw_desc;
+ ret = caam_jr_enqueue(jrdev, desc, aead_encrypt_done, req);
+ if (!ret) {
+ ret = -EINPROGRESS;
+ } else {
+ aead_unmap(jrdev, edesc, req);
+ kfree(edesc);
+ }
- /* insert shared descriptor pointer */
- init_job_desc_shared(desc, ctx->shared_desc_phys,
- desc_len(ctx->sh_desc), HDR_SHARE_DEFER);
+ return ret;
+}
- /*
- * LOAD IMM Info FIFO
- * to DECO, Last, Padding, Random, Message, 16 bytes
- */
- append_load_imm_u32(desc, NFIFOENTRY_DEST_DECO | NFIFOENTRY_LC1 |
- NFIFOENTRY_STYPE_PAD | NFIFOENTRY_DTYPE_MSG |
- NFIFOENTRY_PTYPE_RND | ivsize,
- LDST_SRCDST_WORD_INFO_FIFO);
+/*
+ * allocate and map the ablkcipher extended descriptor for ablkcipher
+ */
+static struct ablkcipher_edesc *ablkcipher_edesc_alloc(struct ablkcipher_request
+ *req, int desc_bytes,
+ bool *iv_contig_out)
+{
+ struct crypto_ablkcipher *ablkcipher = crypto_ablkcipher_reqtfm(req);
+ struct caam_ctx *ctx = crypto_ablkcipher_ctx(ablkcipher);
+ struct device *jrdev = ctx->jrdev;
+ gfp_t flags = (req->base.flags & (CRYPTO_TFM_REQ_MAY_BACKLOG |
+ CRYPTO_TFM_REQ_MAY_SLEEP)) ?
+ GFP_KERNEL : GFP_ATOMIC;
+ int src_nents, dst_nents = 0, link_tbl_bytes;
+ struct ablkcipher_edesc *edesc;
+ dma_addr_t iv_dma = 0;
+ bool iv_contig = false;
+ int sgc;
+ int ivsize = crypto_ablkcipher_ivsize(ablkcipher);
+ int link_tbl_index;
+
+ src_nents = sg_count(req->src, req->nbytes);
+
+ if (unlikely(req->dst != req->src))
+ dst_nents = sg_count(req->dst, req->nbytes);
+
+ if (likely(req->src == req->dst)) {
+ sgc = dma_map_sg(jrdev, req->src, src_nents ? : 1,
+ DMA_BIDIRECTIONAL);
+ dma_sync_sg_for_device(jrdev, req->src, sgc,
+ DMA_BIDIRECTIONAL);
+ } else {
+ sgc = dma_map_sg(jrdev, req->src, src_nents ? : 1,
+ DMA_TO_DEVICE);
+ dma_sync_sg_for_device(jrdev, req->src, sgc, DMA_TO_DEVICE);
+ sgc = dma_map_sg(jrdev, req->dst, dst_nents ? : 1,
+ DMA_FROM_DEVICE);
+ }
+ /* FIXME: no test for sgc values returned above... */
/*
- * disable info fifo entries since the above serves as the entry
- * this way, the MOVE command won't generate an entry.
- * Note that this isn't required in more recent versions of
- * SEC as a MOVE that doesn't do info FIFO entries is available.
+ * Check if iv can be contiguous with source and destination.
+ * If so, include it. If not, create scatterlist.
*/
- append_cmd(desc, CMD_LOAD | DISABLE_AUTO_INFO_FIFO);
+ iv_dma = dma_map_single(jrdev, req->info, ivsize, DMA_TO_DEVICE);
+ dma_sync_single_for_device(jrdev, iv_dma, ivsize, DMA_TO_DEVICE);
+ if (!src_nents && iv_dma + ivsize == sg_dma_address(req->src))
+ iv_contig = true;
+ else
+ src_nents = src_nents ? : 1;
+ link_tbl_bytes = ((iv_contig ? 0 : 1) + src_nents + dst_nents) *
+ sizeof(struct link_tbl_entry);
- /* MOVE DECO Alignment -> C1 Context 16 bytes */
- append_move(desc, MOVE_SRC_INFIFO | MOVE_DEST_CLASS1CTX | ivsize);
+ /* allocate space for base edesc and hw desc commands, link tables */
+ edesc = kmalloc(sizeof(struct ablkcipher_edesc) + desc_bytes +
+ link_tbl_bytes, GFP_DMA | flags);
+ if (!edesc) {
+ dev_err(jrdev, "could not allocate extended descriptor\n");
+ return ERR_PTR(-ENOMEM);
+ }
- /* re-enable info fifo entries */
- append_cmd(desc, CMD_LOAD | ENABLE_AUTO_INFO_FIFO);
+ edesc->src_nents = src_nents;
+ edesc->dst_nents = dst_nents;
+ edesc->link_tbl_bytes = link_tbl_bytes;
+ edesc->link_tbl = (void *)edesc + sizeof(struct ablkcipher_edesc) +
+ desc_bytes;
+
+ link_tbl_index = 0;
+ if (!iv_contig) {
+ sg_to_link_tbl_one(edesc->link_tbl, iv_dma, ivsize, 0);
+ sg_to_link_tbl_last(req->src, src_nents,
+ edesc->link_tbl + 1, 0);
+ link_tbl_index += 1 + src_nents;
+ }
+
+ if (unlikely(dst_nents)) {
+ sg_to_link_tbl_last(req->dst, dst_nents,
+ edesc->link_tbl + link_tbl_index, 0);
+ }
+
+ edesc->link_tbl_dma = dma_map_single(jrdev, edesc->link_tbl,
+ link_tbl_bytes, DMA_TO_DEVICE);
+ edesc->iv_dma = iv_dma;
- /* MOVE C1 Context -> OFIFO 16 bytes */
- append_move(desc, MOVE_SRC_CLASS1CTX | MOVE_DEST_OUTFIFO | ivsize);
+ dma_sync_single_for_device(jrdev, edesc->link_tbl_dma, link_tbl_bytes,
+ DMA_TO_DEVICE);
- append_fifo_store(desc, iv_dma, ivsize, FIFOST_TYPE_MESSAGE_DATA);
+#ifdef DEBUG
+ print_hex_dump(KERN_ERR, "ablkcipher link_tbl@"xstr(__LINE__)": ",
+ DUMP_PREFIX_ADDRESS, 16, 4, edesc->link_tbl,
+ link_tbl_bytes, 1);
+#endif
- return ipsec_esp(edesc, areq, OP_ALG_ENCRYPT, ipsec_esp_encrypt_done);
+ *iv_contig_out = iv_contig;
+ return edesc;
}
+static int ablkcipher_encrypt(struct ablkcipher_request *req)
+{
+ struct ablkcipher_edesc *edesc;
+ struct crypto_ablkcipher *ablkcipher = crypto_ablkcipher_reqtfm(req);
+ struct caam_ctx *ctx = crypto_ablkcipher_ctx(ablkcipher);
+ struct device *jrdev = ctx->jrdev;
+ bool iv_contig;
+ u32 *desc;
+ int ret = 0;
+
+ /* allocate extended descriptor */
+ edesc = ablkcipher_edesc_alloc(req, DESC_JOB_IO_LEN *
+ CAAM_CMD_SZ, &iv_contig);
+ if (IS_ERR(edesc))
+ return PTR_ERR(edesc);
+
+ /* Create and submit job descriptor*/
+ init_ablkcipher_job(ctx->sh_desc_enc,
+ ctx->sh_desc_enc_dma, edesc, req, iv_contig);
+#ifdef DEBUG
+ print_hex_dump(KERN_ERR, "ablkcipher jobdesc@"xstr(__LINE__)": ",
+ DUMP_PREFIX_ADDRESS, 16, 4, edesc->hw_desc,
+ desc_bytes(edesc->hw_desc), 1);
+#endif
+ desc = edesc->hw_desc;
+ ret = caam_jr_enqueue(jrdev, desc, ablkcipher_encrypt_done, req);
+
+ if (!ret) {
+ ret = -EINPROGRESS;
+ } else {
+ ablkcipher_unmap(jrdev, edesc, req);
+ kfree(edesc);
+ }
+
+ return ret;
+}
+
+static int ablkcipher_decrypt(struct ablkcipher_request *req)
+{
+ struct ablkcipher_edesc *edesc;
+ struct crypto_ablkcipher *ablkcipher = crypto_ablkcipher_reqtfm(req);
+ struct caam_ctx *ctx = crypto_ablkcipher_ctx(ablkcipher);
+ struct device *jrdev = ctx->jrdev;
+ bool iv_contig;
+ u32 *desc;
+ int ret = 0;
+
+ /* allocate extended descriptor */
+ edesc = ablkcipher_edesc_alloc(req, DESC_JOB_IO_LEN *
+ CAAM_CMD_SZ, &iv_contig);
+ if (IS_ERR(edesc))
+ return PTR_ERR(edesc);
+
+ /* Create and submit job descriptor*/
+ init_ablkcipher_job(ctx->sh_desc_dec,
+ ctx->sh_desc_dec_dma, edesc, req, iv_contig);
+ desc = edesc->hw_desc;
+#ifdef DEBUG
+ print_hex_dump(KERN_ERR, "ablkcipher jobdesc@"xstr(__LINE__)": ",
+ DUMP_PREFIX_ADDRESS, 16, 4, edesc->hw_desc,
+ desc_bytes(edesc->hw_desc), 1);
+#endif
+
+ ret = caam_jr_enqueue(jrdev, desc, ablkcipher_decrypt_done, req);
+ if (!ret) {
+ ret = -EINPROGRESS;
+ } else {
+ ablkcipher_unmap(jrdev, edesc, req);
+ kfree(edesc);
+ }
+
+ return ret;
+}
+
+#define template_aead template_u.aead
+#define template_ablkcipher template_u.ablkcipher
struct caam_alg_template {
char name[CRYPTO_MAX_ALG_NAME];
char driver_name[CRYPTO_MAX_ALG_NAME];
unsigned int blocksize;
- struct aead_alg aead;
+ u32 type;
+ union {
+ struct ablkcipher_alg ablkcipher;
+ struct aead_alg aead;
+ struct blkcipher_alg blkcipher;
+ struct cipher_alg cipher;
+ struct compress_alg compress;
+ struct rng_alg rng;
+ } template_u;
u32 class1_alg_type;
u32 class2_alg_type;
u32 alg_op;
@@ -900,12 +1879,13 @@ static struct caam_alg_template driver_algs[] = {
.name = "authenc(hmac(sha1),cbc(aes))",
.driver_name = "authenc-hmac-sha1-cbc-aes-caam",
.blocksize = AES_BLOCK_SIZE,
- .aead = {
- .setkey = aead_authenc_setkey,
- .setauthsize = aead_authenc_setauthsize,
- .encrypt = aead_authenc_encrypt,
- .decrypt = aead_authenc_decrypt,
- .givencrypt = aead_authenc_givencrypt,
+ .type = CRYPTO_ALG_TYPE_AEAD,
+ .template_aead = {
+ .setkey = aead_setkey,
+ .setauthsize = aead_setauthsize,
+ .encrypt = aead_encrypt,
+ .decrypt = aead_decrypt,
+ .givencrypt = aead_givencrypt,
.geniv = "<built-in>",
.ivsize = AES_BLOCK_SIZE,
.maxauthsize = SHA1_DIGEST_SIZE,
@@ -918,12 +1898,13 @@ static struct caam_alg_template driver_algs[] = {
.name = "authenc(hmac(sha256),cbc(aes))",
.driver_name = "authenc-hmac-sha256-cbc-aes-caam",
.blocksize = AES_BLOCK_SIZE,
- .aead = {
- .setkey = aead_authenc_setkey,
- .setauthsize = aead_authenc_setauthsize,
- .encrypt = aead_authenc_encrypt,
- .decrypt = aead_authenc_decrypt,
- .givencrypt = aead_authenc_givencrypt,
+ .type = CRYPTO_ALG_TYPE_AEAD,
+ .template_aead = {
+ .setkey = aead_setkey,
+ .setauthsize = aead_setauthsize,
+ .encrypt = aead_encrypt,
+ .decrypt = aead_decrypt,
+ .givencrypt = aead_givencrypt,
.geniv = "<built-in>",
.ivsize = AES_BLOCK_SIZE,
.maxauthsize = SHA256_DIGEST_SIZE,
@@ -937,12 +1918,13 @@ static struct caam_alg_template driver_algs[] = {
.name = "authenc(hmac(sha512),cbc(aes))",
.driver_name = "authenc-hmac-sha512-cbc-aes-caam",
.blocksize = AES_BLOCK_SIZE,
- .aead = {
- .setkey = aead_authenc_setkey,
- .setauthsize = aead_authenc_setauthsize,
- .encrypt = aead_authenc_encrypt,
- .decrypt = aead_authenc_decrypt,
- .givencrypt = aead_authenc_givencrypt,
+ .type = CRYPTO_ALG_TYPE_AEAD,
+ .template_aead = {
+ .setkey = aead_setkey,
+ .setauthsize = aead_setauthsize,
+ .encrypt = aead_encrypt,
+ .decrypt = aead_decrypt,
+ .givencrypt = aead_givencrypt,
.geniv = "<built-in>",
.ivsize = AES_BLOCK_SIZE,
.maxauthsize = SHA512_DIGEST_SIZE,
@@ -956,12 +1938,13 @@ static struct caam_alg_template driver_algs[] = {
.name = "authenc(hmac(sha1),cbc(des3_ede))",
.driver_name = "authenc-hmac-sha1-cbc-des3_ede-caam",
.blocksize = DES3_EDE_BLOCK_SIZE,
- .aead = {
- .setkey = aead_authenc_setkey,
- .setauthsize = aead_authenc_setauthsize,
- .encrypt = aead_authenc_encrypt,
- .decrypt = aead_authenc_decrypt,
- .givencrypt = aead_authenc_givencrypt,
+ .type = CRYPTO_ALG_TYPE_AEAD,
+ .template_aead = {
+ .setkey = aead_setkey,
+ .setauthsize = aead_setauthsize,
+ .encrypt = aead_encrypt,
+ .decrypt = aead_decrypt,
+ .givencrypt = aead_givencrypt,
.geniv = "<built-in>",
.ivsize = DES3_EDE_BLOCK_SIZE,
.maxauthsize = SHA1_DIGEST_SIZE,
@@ -974,12 +1957,13 @@ static struct caam_alg_template driver_algs[] = {
.name = "authenc(hmac(sha256),cbc(des3_ede))",
.driver_name = "authenc-hmac-sha256-cbc-des3_ede-caam",
.blocksize = DES3_EDE_BLOCK_SIZE,
- .aead = {
- .setkey = aead_authenc_setkey,
- .setauthsize = aead_authenc_setauthsize,
- .encrypt = aead_authenc_encrypt,
- .decrypt = aead_authenc_decrypt,
- .givencrypt = aead_authenc_givencrypt,
+ .type = CRYPTO_ALG_TYPE_AEAD,
+ .template_aead = {
+ .setkey = aead_setkey,
+ .setauthsize = aead_setauthsize,
+ .encrypt = aead_encrypt,
+ .decrypt = aead_decrypt,
+ .givencrypt = aead_givencrypt,
.geniv = "<built-in>",
.ivsize = DES3_EDE_BLOCK_SIZE,
.maxauthsize = SHA256_DIGEST_SIZE,
@@ -993,12 +1977,13 @@ static struct caam_alg_template driver_algs[] = {
.name = "authenc(hmac(sha512),cbc(des3_ede))",
.driver_name = "authenc-hmac-sha512-cbc-des3_ede-caam",
.blocksize = DES3_EDE_BLOCK_SIZE,
- .aead = {
- .setkey = aead_authenc_setkey,
- .setauthsize = aead_authenc_setauthsize,
- .encrypt = aead_authenc_encrypt,
- .decrypt = aead_authenc_decrypt,
- .givencrypt = aead_authenc_givencrypt,
+ .type = CRYPTO_ALG_TYPE_AEAD,
+ .template_aead = {
+ .setkey = aead_setkey,
+ .setauthsize = aead_setauthsize,
+ .encrypt = aead_encrypt,
+ .decrypt = aead_decrypt,
+ .givencrypt = aead_givencrypt,
.geniv = "<built-in>",
.ivsize = DES3_EDE_BLOCK_SIZE,
.maxauthsize = SHA512_DIGEST_SIZE,
@@ -1012,12 +1997,13 @@ static struct caam_alg_template driver_algs[] = {
.name = "authenc(hmac(sha1),cbc(des))",
.driver_name = "authenc-hmac-sha1-cbc-des-caam",
.blocksize = DES_BLOCK_SIZE,
- .aead = {
- .setkey = aead_authenc_setkey,
- .setauthsize = aead_authenc_setauthsize,
- .encrypt = aead_authenc_encrypt,
- .decrypt = aead_authenc_decrypt,
- .givencrypt = aead_authenc_givencrypt,
+ .type = CRYPTO_ALG_TYPE_AEAD,
+ .template_aead = {
+ .setkey = aead_setkey,
+ .setauthsize = aead_setauthsize,
+ .encrypt = aead_encrypt,
+ .decrypt = aead_decrypt,
+ .givencrypt = aead_givencrypt,
.geniv = "<built-in>",
.ivsize = DES_BLOCK_SIZE,
.maxauthsize = SHA1_DIGEST_SIZE,
@@ -1030,12 +2016,13 @@ static struct caam_alg_template driver_algs[] = {
.name = "authenc(hmac(sha256),cbc(des))",
.driver_name = "authenc-hmac-sha256-cbc-des-caam",
.blocksize = DES_BLOCK_SIZE,
- .aead = {
- .setkey = aead_authenc_setkey,
- .setauthsize = aead_authenc_setauthsize,
- .encrypt = aead_authenc_encrypt,
- .decrypt = aead_authenc_decrypt,
- .givencrypt = aead_authenc_givencrypt,
+ .type = CRYPTO_ALG_TYPE_AEAD,
+ .template_aead = {
+ .setkey = aead_setkey,
+ .setauthsize = aead_setauthsize,
+ .encrypt = aead_encrypt,
+ .decrypt = aead_decrypt,
+ .givencrypt = aead_givencrypt,
.geniv = "<built-in>",
.ivsize = DES_BLOCK_SIZE,
.maxauthsize = SHA256_DIGEST_SIZE,
@@ -1049,12 +2036,13 @@ static struct caam_alg_template driver_algs[] = {
.name = "authenc(hmac(sha512),cbc(des))",
.driver_name = "authenc-hmac-sha512-cbc-des-caam",
.blocksize = DES_BLOCK_SIZE,
- .aead = {
- .setkey = aead_authenc_setkey,
- .setauthsize = aead_authenc_setauthsize,
- .encrypt = aead_authenc_encrypt,
- .decrypt = aead_authenc_decrypt,
- .givencrypt = aead_authenc_givencrypt,
+ .type = CRYPTO_ALG_TYPE_AEAD,
+ .template_aead = {
+ .setkey = aead_setkey,
+ .setauthsize = aead_setauthsize,
+ .encrypt = aead_encrypt,
+ .decrypt = aead_decrypt,
+ .givencrypt = aead_givencrypt,
.geniv = "<built-in>",
.ivsize = DES_BLOCK_SIZE,
.maxauthsize = SHA512_DIGEST_SIZE,
@@ -1064,6 +2052,55 @@ static struct caam_alg_template driver_algs[] = {
OP_ALG_AAI_HMAC_PRECOMP,
.alg_op = OP_ALG_ALGSEL_SHA512 | OP_ALG_AAI_HMAC,
},
+ /* ablkcipher descriptor */
+ {
+ .name = "cbc(aes)",
+ .driver_name = "cbc-aes-caam",
+ .blocksize = AES_BLOCK_SIZE,
+ .type = CRYPTO_ALG_TYPE_ABLKCIPHER,
+ .template_ablkcipher = {
+ .setkey = ablkcipher_setkey,
+ .encrypt = ablkcipher_encrypt,
+ .decrypt = ablkcipher_decrypt,
+ .geniv = "eseqiv",
+ .min_keysize = AES_MIN_KEY_SIZE,
+ .max_keysize = AES_MAX_KEY_SIZE,
+ .ivsize = AES_BLOCK_SIZE,
+ },
+ .class1_alg_type = OP_ALG_ALGSEL_AES | OP_ALG_AAI_CBC,
+ },
+ {
+ .name = "cbc(des3_ede)",
+ .driver_name = "cbc-3des-caam",
+ .blocksize = DES3_EDE_BLOCK_SIZE,
+ .type = CRYPTO_ALG_TYPE_ABLKCIPHER,
+ .template_ablkcipher = {
+ .setkey = ablkcipher_setkey,
+ .encrypt = ablkcipher_encrypt,
+ .decrypt = ablkcipher_decrypt,
+ .geniv = "eseqiv",
+ .min_keysize = DES3_EDE_KEY_SIZE,
+ .max_keysize = DES3_EDE_KEY_SIZE,
+ .ivsize = DES3_EDE_BLOCK_SIZE,
+ },
+ .class1_alg_type = OP_ALG_ALGSEL_3DES | OP_ALG_AAI_CBC,
+ },
+ {
+ .name = "cbc(des)",
+ .driver_name = "cbc-des-caam",
+ .blocksize = DES_BLOCK_SIZE,
+ .type = CRYPTO_ALG_TYPE_ABLKCIPHER,
+ .template_ablkcipher = {
+ .setkey = ablkcipher_setkey,
+ .encrypt = ablkcipher_encrypt,
+ .decrypt = ablkcipher_decrypt,
+ .geniv = "eseqiv",
+ .min_keysize = DES_KEY_SIZE,
+ .max_keysize = DES_KEY_SIZE,
+ .ivsize = DES_BLOCK_SIZE,
+ },
+ .class1_alg_type = OP_ALG_ALGSEL_DES | OP_ALG_AAI_CBC,
+ }
};
struct caam_crypto_alg {
@@ -1102,38 +2139,29 @@ static void caam_cra_exit(struct crypto_tfm *tfm)
{
struct caam_ctx *ctx = crypto_tfm_ctx(tfm);
- if (!dma_mapping_error(ctx->jrdev, ctx->shared_desc_phys))
- dma_unmap_single(ctx->jrdev, ctx->shared_desc_phys,
- desc_bytes(ctx->sh_desc), DMA_TO_DEVICE);
- kfree(ctx->sh_desc);
-
- if (!dma_mapping_error(ctx->jrdev, ctx->key_phys))
- dma_unmap_single(ctx->jrdev, ctx->key_phys,
- ctx->split_key_pad_len + ctx->enckeylen,
+ if (ctx->sh_desc_enc_dma &&
+ !dma_mapping_error(ctx->jrdev, ctx->sh_desc_enc_dma))
+ dma_unmap_single(ctx->jrdev, ctx->sh_desc_enc_dma,
+ desc_bytes(ctx->sh_desc_enc), DMA_TO_DEVICE);
+ if (ctx->sh_desc_dec_dma &&
+ !dma_mapping_error(ctx->jrdev, ctx->sh_desc_dec_dma))
+ dma_unmap_single(ctx->jrdev, ctx->sh_desc_dec_dma,
+ desc_bytes(ctx->sh_desc_dec), DMA_TO_DEVICE);
+ if (ctx->sh_desc_givenc_dma &&
+ !dma_mapping_error(ctx->jrdev, ctx->sh_desc_givenc_dma))
+ dma_unmap_single(ctx->jrdev, ctx->sh_desc_givenc_dma,
+ desc_bytes(ctx->sh_desc_givenc),
DMA_TO_DEVICE);
- kfree(ctx->key);
}
-static void __exit caam_algapi_exit(void)
+void caam_algapi_shutdown(struct platform_device *pdev)
{
-
- struct device_node *dev_node;
- struct platform_device *pdev;
struct device *ctrldev;
struct caam_drv_private *priv;
struct caam_crypto_alg *t_alg, *n;
int i, err;
- dev_node = of_find_compatible_node(NULL, NULL, "fsl,sec-v4.0");
- if (!dev_node)
- return;
-
- pdev = of_find_device_by_node(dev_node);
- if (!pdev)
- return;
-
ctrldev = &pdev->dev;
- of_node_put(dev_node);
priv = dev_get_drvdata(ctrldev);
if (!priv->alg_list.next)
@@ -1175,12 +2203,20 @@ static struct caam_crypto_alg *caam_alg_alloc(struct device *ctrldev,
alg->cra_init = caam_cra_init;
alg->cra_exit = caam_cra_exit;
alg->cra_priority = CAAM_CRA_PRIORITY;
- alg->cra_flags = CRYPTO_ALG_TYPE_AEAD | CRYPTO_ALG_ASYNC;
alg->cra_blocksize = template->blocksize;
alg->cra_alignmask = 0;
- alg->cra_type = &crypto_aead_type;
alg->cra_ctxsize = sizeof(struct caam_ctx);
- alg->cra_u.aead = template->aead;
+ alg->cra_flags = CRYPTO_ALG_ASYNC | template->type;
+ switch (template->type) {
+ case CRYPTO_ALG_TYPE_ABLKCIPHER:
+ alg->cra_type = &crypto_ablkcipher_type;
+ alg->cra_ablkcipher = template->template_ablkcipher;
+ break;
+ case CRYPTO_ALG_TYPE_AEAD:
+ alg->cra_type = &crypto_aead_type;
+ alg->cra_aead = template->template_aead;
+ break;
+ }
t_alg->class1_alg_type = template->class1_alg_type;
t_alg->class2_alg_type = template->class2_alg_type;
@@ -1190,26 +2226,14 @@ static struct caam_crypto_alg *caam_alg_alloc(struct device *ctrldev,
return t_alg;
}
-static int __init caam_algapi_init(void)
+int caam_algapi_startup(struct platform_device *pdev)
{
- struct device_node *dev_node;
- struct platform_device *pdev;
struct device *ctrldev, **jrdev;
struct caam_drv_private *priv;
int i = 0, err = 0;
- dev_node = of_find_compatible_node(NULL, NULL, "fsl,sec-v4.0");
- if (!dev_node)
- return -ENODEV;
-
- pdev = of_find_device_by_node(dev_node);
- if (!pdev)
- return -ENODEV;
-
ctrldev = &pdev->dev;
priv = dev_get_drvdata(ctrldev);
- of_node_put(dev_node);
-
INIT_LIST_HEAD(&priv->alg_list);
jrdev = kmalloc(sizeof(*jrdev) * priv->total_jobrs, GFP_KERNEL);
@@ -1260,9 +2284,51 @@ static int __init caam_algapi_init(void)
return err;
}
+#ifdef CONFIG_OF
+static void __exit caam_algapi_exit(void)
+{
+
+ struct device_node *dev_node;
+ struct platform_device *pdev;
+
+ dev_node = of_find_compatible_node(NULL, NULL, "fsl,sec-v4.0");
+ if (!dev_node)
+ return;
+
+ pdev = of_find_device_by_node(dev_node);
+ if (!pdev)
+ return;
+
+ caam_algapi_shutdown(pdev);
+
+ of_node_put(dev_node);
+}
+
+static int __init caam_algapi_init(void)
+{
+ struct device_node *dev_node;
+ struct platform_device *pdev;
+ int stat;
+
+ dev_node = of_find_compatible_node(NULL, NULL, "fsl,sec-v4.0");
+ if (!dev_node)
+ return -ENODEV;
+
+ pdev = of_find_device_by_node(dev_node);
+ if (!pdev)
+ return -ENODEV;
+
+ stat = caam_algapi_startup(pdev);
+
+ of_node_put(dev_node);
+
+ return stat;
+}
+
module_init(caam_algapi_init);
module_exit(caam_algapi_exit);
MODULE_LICENSE("GPL");
MODULE_DESCRIPTION("FSL CAAM support for crypto API");
MODULE_AUTHOR("Freescale Semiconductor - NMG/STC");
+#endif
diff --git a/drivers/crypto/caam/compat.h b/drivers/crypto/caam/compat.h
index 950450346f70..9ad93d4156c2 100644
--- a/drivers/crypto/caam/compat.h
+++ b/drivers/crypto/caam/compat.h
@@ -1,5 +1,5 @@
/*
- * Copyright 2008-2011 Freescale Semiconductor, Inc.
+ * Copyright (C) 2008-2012 Freescale Semiconductor, Inc.
*/
#ifndef CAAM_COMPAT_H
@@ -12,7 +12,6 @@
#include <linux/interrupt.h>
#include <linux/crypto.h>
#include <linux/hw_random.h>
-#include <linux/of_platform.h>
#include <linux/dma-mapping.h>
#include <linux/io.h>
#include <linux/spinlock.h>
@@ -22,6 +21,18 @@
#include <linux/types.h>
#include <linux/debugfs.h>
#include <linux/circ_buf.h>
+
+#ifdef CONFIG_OF
+#include <linux/of_platform.h>
+#else
+#include <linux/platform_device.h>
+#endif
+
+#ifdef CONFIG_ARM /* needs the clock control subsystem */
+#include <linux/clk.h>
+#include <asm/cacheflush.h>
+#endif
+
#include <net/xfrm.h>
#include <crypto/algapi.h>
@@ -31,5 +42,6 @@
#include <crypto/aead.h>
#include <crypto/authenc.h>
#include <crypto/scatterwalk.h>
+#include <crypto/internal/skcipher.h>
#endif /* !defined(CAAM_COMPAT_H) */
diff --git a/drivers/crypto/caam/ctrl.c b/drivers/crypto/caam/ctrl.c
index 9009713a3c2e..7c1132097c0f 100644
--- a/drivers/crypto/caam/ctrl.c
+++ b/drivers/crypto/caam/ctrl.c
@@ -2,7 +2,7 @@
* CAAM control-plane driver backend
* Controller-level driver, kernel property detection, initialization
*
- * Copyright 2008-2011 Freescale Semiconductor, Inc.
+ * Copyright (C) 2008-2012 Freescale Semiconductor, Inc.
*/
#include "compat.h"
@@ -22,6 +22,9 @@ static int caam_remove(struct platform_device *pdev)
ctrlpriv = dev_get_drvdata(ctrldev);
topregs = (struct caam_full __iomem *)ctrlpriv->ctrl;
+#ifndef CONFIG_OF
+ caam_algapi_shutdown(pdev);
+#endif
/* shut down JobRs */
for (ring = 0; ring < ctrlpriv->total_jobrs; ring++) {
ret |= caam_jr_shutdown(ctrlpriv->jrdev[ring]);
@@ -37,6 +40,9 @@ static int caam_remove(struct platform_device *pdev)
/* Unmap controller region */
iounmap(&topregs->ctrl);
+ /* shut clocks off before finalizing shutdown */
+ clk_disable(ctrlpriv->caam_clk);
+
kfree(ctrlpriv->jrdev);
kfree(ctrlpriv);
@@ -48,13 +54,24 @@ static int caam_probe(struct platform_device *pdev)
{
int d, ring, rspec;
struct device *dev;
- struct device_node *nprop, *np;
+ struct device_node *np;
struct caam_ctrl __iomem *ctrl;
struct caam_full __iomem *topregs;
struct caam_drv_private *ctrlpriv;
- struct caam_perfmon *perfmon;
struct caam_deco **deco;
u32 deconum;
+#ifdef CONFIG_DEBUG_FS
+ struct caam_perfmon *perfmon;
+#endif
+#ifdef CONFIG_OF
+ struct device_node *nprop;
+#else
+ struct resource *res;
+ char *rname, inst;
+#endif
+#ifdef CONFIG_ARM
+ int ret = 0;
+#endif
ctrlpriv = kzalloc(sizeof(struct caam_drv_private), GFP_KERNEL);
if (!ctrlpriv)
@@ -63,22 +80,71 @@ static int caam_probe(struct platform_device *pdev)
dev = &pdev->dev;
dev_set_drvdata(dev, ctrlpriv);
ctrlpriv->pdev = pdev;
- nprop = pdev->dev.of_node;
/* Get configuration properties from device tree */
/* First, get register page */
+#ifdef CONFIG_OF
+ nprop = pdev->dev.of_node;
ctrl = of_iomap(nprop, 0);
if (ctrl == NULL) {
dev_err(dev, "caam: of_iomap() failed\n");
return -ENOMEM;
}
+#else
+ /* Get the named resource for the controller base address */
+ res = platform_get_resource_byname(pdev,
+ IORESOURCE_MEM, "iobase_caam");
+ if (!res) {
+ dev_err(dev, "caam: invalid address resource type\n");
+ return -ENODEV;
+ }
+ ctrl = ioremap(res->start, SZ_64K);
+ if (ctrl == NULL) {
+ dev_err(dev, "caam: ioremap() failed\n");
+ return -ENOMEM;
+ }
+#endif
+
ctrlpriv->ctrl = (struct caam_ctrl __force *)ctrl;
/* topregs used to derive pointers to CAAM sub-blocks only */
topregs = (struct caam_full __iomem *)ctrl;
/* Get the IRQ of the controller (for security violations only) */
+#ifdef CONFIG_OF
ctrlpriv->secvio_irq = of_irq_to_resource(nprop, 0, NULL);
+#else
+ res = platform_get_resource_byname(pdev,
+ IORESOURCE_IRQ, "irq_sec_vio");
+ if (!res) {
+ dev_err(dev, "caam: invalid IRQ resource type\n");
+ return -ENODEV;
+ }
+ ctrlpriv->secvio_irq = res->start;
+#endif
+
+/*
+ * ARM targets tend to have clock control subsystems that can
+ * enable/disable clocking to our device. Turn clocking on to proceed
+ */
+#ifdef CONFIG_ARM
+ ctrlpriv->caam_clk = clk_get(&ctrlpriv->pdev->dev, "caam_clk");
+ if (IS_ERR(ctrlpriv->caam_clk)) {
+ ret = PTR_ERR(ctrlpriv->caam_clk);
+ dev_err(&ctrlpriv->pdev->dev,
+ "can't identify CAAM bus clk: %d\n", ret);
+ return -ENODEV;
+ }
+
+ ret = clk_enable(ctrlpriv->caam_clk);
+ if (ret < 0) {
+ dev_err(&pdev->dev, "can't enable CAAM bus clock: %d\n", ret);
+ return -ENODEV;
+ }
+
+ pr_debug("%s caam_clk:%d\n", __func__,
+ (int)clk_get_rate(ctrlpriv->caam_clk));
+#endif
/*
* Enable DECO watchdogs and, if this is a PHYS_ADDR_T_64BIT kernel,
@@ -87,8 +153,11 @@ static int caam_probe(struct platform_device *pdev)
setbits32(&topregs->ctrl.mcr, MCFGR_WDENABLE |
(sizeof(dma_addr_t) == sizeof(u64) ? MCFGR_LONG_PTR : 0));
+ /* Set DMA masks according to platform ranging */
if (sizeof(dma_addr_t) == sizeof(u64))
dma_set_mask(dev, DMA_BIT_MASK(36));
+ else
+ dma_set_mask(dev, DMA_BIT_MASK(32));
/* Find out how many DECOs are present */
deconum = (rd_reg64(&topregs->ctrl.perfmon.cha_num) &
@@ -100,15 +169,41 @@ static int caam_probe(struct platform_device *pdev)
deco = (struct caam_deco __force **)&topregs->deco;
for (d = 0; d < deconum; d++)
ctrlpriv->deco[d] = deco[d];
-
/*
* Detect and enable JobRs
* First, find out how many ring spec'ed, allocate references
* for all, then go probe each one.
*/
rspec = 0;
+#ifdef CONFIG_OF
for_each_compatible_node(np, NULL, "fsl,sec-v4.0-job-ring")
rspec++;
+#else
+ np = NULL;
+
+ /* Build the name of the IRQ platform resources to identify */
+ rname = kzalloc(strlen(JR_IRQRES_NAME_ROOT) + 1, 0);
+ if (rname == NULL) {
+ iounmap(&topregs->ctrl);
+ return -ENOMEM;
+ }
+
+ /*
+ * Emulate behavor of for_each_compatible_node() for non OF targets
+ * Identify all IRQ platform resources present
+ */
+ for (d = 0; d < 4; d++) {
+ rname[0] = 0;
+ inst = '0' + d;
+ strcat(rname, JR_IRQRES_NAME_ROOT);
+ strncat(rname, &inst, 1);
+ res = platform_get_resource_byname(pdev,
+ IORESOURCE_IRQ, rname);
+ if (res)
+ rspec++;
+ }
+ kfree(rname);
+#endif
ctrlpriv->jrdev = kzalloc(sizeof(struct device *) * rspec, GFP_KERNEL);
if (ctrlpriv->jrdev == NULL) {
iounmap(&topregs->ctrl);
@@ -117,7 +212,11 @@ static int caam_probe(struct platform_device *pdev)
ring = 0;
ctrlpriv->total_jobrs = 0;
+#ifdef CONFIG_OF
for_each_compatible_node(np, NULL, "fsl,sec-v4.0-job-ring") {
+#else
+ for (d = 0; d < rspec; d++) {
+#endif
caam_jr_probe(pdev, np, ring);
ctrlpriv->total_jobrs++;
ring++;
@@ -164,52 +263,52 @@ static int caam_probe(struct platform_device *pdev)
/* Controller-level - performance monitor counters */
ctrlpriv->ctl_rq_dequeued =
debugfs_create_u64("rq_dequeued",
- S_IFCHR | S_IRUSR | S_IRGRP | S_IROTH,
+ S_IRUSR | S_IRGRP | S_IROTH,
ctrlpriv->ctl, &perfmon->req_dequeued);
ctrlpriv->ctl_ob_enc_req =
debugfs_create_u64("ob_rq_encrypted",
- S_IFCHR | S_IRUSR | S_IRGRP | S_IROTH,
+ S_IRUSR | S_IRGRP | S_IROTH,
ctrlpriv->ctl, &perfmon->ob_enc_req);
ctrlpriv->ctl_ib_dec_req =
debugfs_create_u64("ib_rq_decrypted",
- S_IFCHR | S_IRUSR | S_IRGRP | S_IROTH,
+ S_IRUSR | S_IRGRP | S_IROTH,
ctrlpriv->ctl, &perfmon->ib_dec_req);
ctrlpriv->ctl_ob_enc_bytes =
debugfs_create_u64("ob_bytes_encrypted",
- S_IFCHR | S_IRUSR | S_IRGRP | S_IROTH,
+ S_IRUSR | S_IRGRP | S_IROTH,
ctrlpriv->ctl, &perfmon->ob_enc_bytes);
ctrlpriv->ctl_ob_prot_bytes =
debugfs_create_u64("ob_bytes_protected",
- S_IFCHR | S_IRUSR | S_IRGRP | S_IROTH,
+ S_IRUSR | S_IRGRP | S_IROTH,
ctrlpriv->ctl, &perfmon->ob_prot_bytes);
ctrlpriv->ctl_ib_dec_bytes =
debugfs_create_u64("ib_bytes_decrypted",
- S_IFCHR | S_IRUSR | S_IRGRP | S_IROTH,
+ S_IRUSR | S_IRGRP | S_IROTH,
ctrlpriv->ctl, &perfmon->ib_dec_bytes);
ctrlpriv->ctl_ib_valid_bytes =
debugfs_create_u64("ib_bytes_validated",
- S_IFCHR | S_IRUSR | S_IRGRP | S_IROTH,
+ S_IRUSR | S_IRGRP | S_IROTH,
ctrlpriv->ctl, &perfmon->ib_valid_bytes);
/* Controller level - global status values */
ctrlpriv->ctl_faultaddr =
debugfs_create_u64("fault_addr",
- S_IFCHR | S_IRUSR | S_IRGRP | S_IROTH,
+ S_IRUSR | S_IRGRP | S_IROTH,
ctrlpriv->ctl, &perfmon->faultaddr);
ctrlpriv->ctl_faultdetail =
debugfs_create_u32("fault_detail",
- S_IFCHR | S_IRUSR | S_IRGRP | S_IROTH,
+ S_IRUSR | S_IRGRP | S_IROTH,
ctrlpriv->ctl, &perfmon->faultdetail);
ctrlpriv->ctl_faultstatus =
debugfs_create_u32("fault_status",
- S_IFCHR | S_IRUSR | S_IRGRP | S_IROTH,
+ S_IRUSR | S_IRGRP | S_IROTH,
ctrlpriv->ctl, &perfmon->status);
/* Internal covering keys (useful in non-secure mode only) */
ctrlpriv->ctl_kek_wrap.data = &ctrlpriv->ctrl->kek[0];
ctrlpriv->ctl_kek_wrap.size = KEK_KEY_SIZE * sizeof(u32);
ctrlpriv->ctl_kek = debugfs_create_blob("kek",
- S_IFCHR | S_IRUSR |
+ S_IRUSR |
S_IRGRP | S_IROTH,
ctrlpriv->ctl,
&ctrlpriv->ctl_kek_wrap);
@@ -217,7 +316,7 @@ static int caam_probe(struct platform_device *pdev)
ctrlpriv->ctl_tkek_wrap.data = &ctrlpriv->ctrl->tkek[0];
ctrlpriv->ctl_tkek_wrap.size = KEK_KEY_SIZE * sizeof(u32);
ctrlpriv->ctl_tkek = debugfs_create_blob("tkek",
- S_IFCHR | S_IRUSR |
+ S_IRUSR |
S_IRGRP | S_IROTH,
ctrlpriv->ctl,
&ctrlpriv->ctl_tkek_wrap);
@@ -225,14 +324,27 @@ static int caam_probe(struct platform_device *pdev)
ctrlpriv->ctl_tdsk_wrap.data = &ctrlpriv->ctrl->tdsk[0];
ctrlpriv->ctl_tdsk_wrap.size = KEK_KEY_SIZE * sizeof(u32);
ctrlpriv->ctl_tdsk = debugfs_create_blob("tdsk",
- S_IFCHR | S_IRUSR |
+ S_IRUSR |
S_IRGRP | S_IROTH,
ctrlpriv->ctl,
&ctrlpriv->ctl_tdsk_wrap);
#endif
+
+/*
+ * Non OF configurations use plaform_device, and therefore cannot simply
+ * go and get a device node by name, which the algapi module startup code
+ * assumes is possible. Therefore, non OF configurations will have to
+ * start up the API code explicitly, and forego modularization
+ */
+#ifndef CONFIG_OF
+ /* FIXME: check status */
+ caam_algapi_startup(pdev);
+#endif
+
return 0;
}
+#ifdef CONFIG_OF
static struct of_device_id caam_match[] = {
{
.compatible = "fsl,sec-v4.0",
@@ -240,12 +352,17 @@ static struct of_device_id caam_match[] = {
{},
};
MODULE_DEVICE_TABLE(of, caam_match);
+#endif /* CONFIG_OF */
static struct platform_driver caam_driver = {
.driver = {
.name = "caam",
.owner = THIS_MODULE,
+#ifdef CONFIG_OF
.of_match_table = caam_match,
+#else
+
+#endif
},
.probe = caam_probe,
.remove = __devexit_p(caam_remove),
@@ -253,12 +370,20 @@ static struct platform_driver caam_driver = {
static int __init caam_base_init(void)
{
+#ifdef CONFIG_OF
+ return of_register_platform_driver(&caam_driver);
+#else
return platform_driver_register(&caam_driver);
+#endif
}
static void __exit caam_base_exit(void)
{
+#ifdef CONFIG_OF
+ return of_unregister_platform_driver(&caam_driver);
+#else
return platform_driver_unregister(&caam_driver);
+#endif
}
module_init(caam_base_init);
diff --git a/drivers/crypto/caam/desc_constr.h b/drivers/crypto/caam/desc_constr.h
index 46915800c26f..1e5d54c72aa8 100644
--- a/drivers/crypto/caam/desc_constr.h
+++ b/drivers/crypto/caam/desc_constr.h
@@ -1,7 +1,7 @@
/*
* caam descriptor construction helper functions
*
- * Copyright 2008-2011 Freescale Semiconductor, Inc.
+ * Copyright (C) 2008-2012 Freescale Semiconductor, Inc.
*/
#include "desc.h"
@@ -9,7 +9,7 @@
#define IMMEDIATE (1 << 23)
#define CAAM_CMD_SZ sizeof(u32)
#define CAAM_PTR_SZ sizeof(dma_addr_t)
-#define CAAM_DESC_BYTES_MAX (CAAM_CMD_SZ * 64)
+#define CAAM_DESC_BYTES_MAX (CAAM_CMD_SZ * MAX_CAAM_DESCSIZE)
#ifdef DEBUG
#define PRINT_POS do { printk(KERN_DEBUG "%02d: %s\n", desc_len(desc),\
@@ -18,6 +18,9 @@
#define PRINT_POS
#endif
+#define SET_OK_PROP_ERRORS (IMMEDIATE | LDST_CLASS_DECO | \
+ LDST_SRCDST_WORD_DECOCTRL | \
+ (LDOFF_CHG_SHARE_OK_PROP << LDST_OFFSET_SHIFT))
#define DISABLE_AUTO_INFO_FIFO (IMMEDIATE | LDST_CLASS_DECO | \
LDST_SRCDST_WORD_DECOCTRL | \
(LDOFF_DISABLE_AUTO_NFIFO << LDST_OFFSET_SHIFT))
@@ -203,3 +206,56 @@ static inline void append_##cmd##_imm_##type(u32 *desc, type immediate, \
append_cmd(desc, immediate); \
}
APPEND_CMD_RAW_IMM(load, LOAD, u32);
+
+/*
+ * Append math command. Only the last part of destination and source need to
+ * be specified
+ */
+#define APPEND_MATH(op, desc, dest, src_0, src_1, len) \
+append_cmd(desc, CMD_MATH | MATH_FUN_##op | MATH_DEST_##dest | \
+ MATH_SRC0_##src_0 | MATH_SRC1_##src_1 | (u32) (len & MATH_LEN_MASK));
+
+#define append_math_add(desc, dest, src0, src1, len) \
+ APPEND_MATH(ADD, desc, dest, src0, src1, len)
+#define append_math_sub(desc, dest, src0, src1, len) \
+ APPEND_MATH(SUB, desc, dest, src0, src1, len)
+#define append_math_add_c(desc, dest, src0, src1, len) \
+ APPEND_MATH(ADDC, desc, dest, src0, src1, len)
+#define append_math_sub_b(desc, dest, src0, src1, len) \
+ APPEND_MATH(SUBB, desc, dest, src0, src1, len)
+#define append_math_and(desc, dest, src0, src1, len) \
+ APPEND_MATH(AND, desc, dest, src0, src1, len)
+#define append_math_or(desc, dest, src0, src1, len) \
+ APPEND_MATH(OR, desc, dest, src0, src1, len)
+#define append_math_xor(desc, dest, src0, src1, len) \
+ APPEND_MATH(XOR, desc, dest, src0, src1, len)
+#define append_math_lshift(desc, dest, src0, src1, len) \
+ APPEND_MATH(LSHIFT, desc, dest, src0, src1, len)
+#define append_math_rshift(desc, dest, src0, src1, len) \
+ APPEND_MATH(RSHIFT, desc, dest, src0, src1, len)
+
+/* Exactly one source is IMM. Data is passed in as u32 value */
+#define APPEND_MATH_IMM_u32(op, desc, dest, src_0, src_1, data) \
+do { \
+ APPEND_MATH(op, desc, dest, src_0, src_1, CAAM_CMD_SZ); \
+ append_cmd(desc, data); \
+} while (0);
+
+#define append_math_add_imm_u32(desc, dest, src0, src1, data) \
+ APPEND_MATH_IMM_u32(ADD, desc, dest, src0, src1, data)
+#define append_math_sub_imm_u32(desc, dest, src0, src1, data) \
+ APPEND_MATH_IMM_u32(SUB, desc, dest, src0, src1, data)
+#define append_math_add_c_imm_u32(desc, dest, src0, src1, data) \
+ APPEND_MATH_IMM_u32(ADDC, desc, dest, src0, src1, data)
+#define append_math_sub_b_imm_u32(desc, dest, src0, src1, data) \
+ APPEND_MATH_IMM_u32(SUBB, desc, dest, src0, src1, data)
+#define append_math_and_imm_u32(desc, dest, src0, src1, data) \
+ APPEND_MATH_IMM_u32(AND, desc, dest, src0, src1, data)
+#define append_math_or_imm_u32(desc, dest, src0, src1, data) \
+ APPEND_MATH_IMM_u32(OR, desc, dest, src0, src1, data)
+#define append_math_xor_imm_u32(desc, dest, src0, src1, data) \
+ APPEND_MATH_IMM_u32(XOR, desc, dest, src0, src1, data)
+#define append_math_lshift_imm_u32(desc, dest, src0, src1, data) \
+ APPEND_MATH_IMM_u32(LSHIFT, desc, dest, src0, src1, data)
+#define append_math_rshift_imm_u32(desc, dest, src0, src1, data) \
+ APPEND_MATH_IMM_u32(RSHIFT, desc, dest, src0, src1, data)
diff --git a/drivers/crypto/caam/intern.h b/drivers/crypto/caam/intern.h
index a34be01b0b29..19e4f25c25a8 100644
--- a/drivers/crypto/caam/intern.h
+++ b/drivers/crypto/caam/intern.h
@@ -2,7 +2,7 @@
* CAAM/SEC 4.x driver backend
* Private/internal definitions between modules
*
- * Copyright 2008-2011 Freescale Semiconductor, Inc.
+ * Copyright (C) 2008-2012 Freescale Semiconductor, Inc.
*
*/
@@ -26,6 +26,23 @@
#define JOBR_INTC_COUNT_THLD 0
#endif
+#ifndef CONFIG_OF
+#define JR_IRQRES_NAME_ROOT "irq_jr"
+#define JR_MEMRES_NAME_ROOT "offset_jr"
+#endif
+
+#ifdef CONFIG_ARM
+/*
+ * FIXME: ARM tree doesn't seem to provide this, ergo it seems to be
+ * in "platform limbo". Find a better place, perhaps.
+ */
+static inline void irq_dispose_mapping(unsigned int virq)
+{
+ return;
+}
+#endif
+
+
/*
* Storage for tracking each in-process entry moving across a ring
* Each entry on an output ring needs one of these
@@ -91,6 +108,10 @@ struct caam_drv_private {
/* list of registered crypto algorithms (mk generic context handle?) */
struct list_head alg_list;
+#ifdef CONFIG_ARM
+ struct clk *caam_clk;
+#endif
+
/*
* debugfs entries for developer view into driver/device
* variables at runtime.
@@ -108,6 +129,7 @@ struct caam_drv_private {
#endif
};
-void caam_jr_algapi_init(struct device *dev);
-void caam_jr_algapi_remove(struct device *dev);
+void caam_algapi_shutdown(struct platform_device *pdev);
+int caam_algapi_startup(struct platform_device *pdev);
+
#endif /* INTERN_H */
diff --git a/drivers/crypto/caam/jr.c b/drivers/crypto/caam/jr.c
index 340fa322c0f0..280aaaa3d4d4 100644
--- a/drivers/crypto/caam/jr.c
+++ b/drivers/crypto/caam/jr.c
@@ -2,7 +2,7 @@
* CAAM/SEC 4.x transport/backend driver
* JobR backend functionality
*
- * Copyright 2008-2011 Freescale Semiconductor, Inc.
+ * Copyright 2008-2012 Freescale Semiconductor, Inc.
*/
#include "compat.h"
@@ -57,9 +57,15 @@ static void caam_jr_dequeue(unsigned long devarg)
struct caam_drv_private_jr *jrp = dev_get_drvdata(dev);
void (*usercall)(struct device *dev, u32 *desc, u32 status, void *arg);
u32 *userdesc, userstatus;
+ dma_addr_t outbusaddr;
void *userarg;
unsigned long flags;
+ outbusaddr = rd_reg64(&jrp->rregs->outring_base);
+ dma_sync_single_for_cpu(dev, outbusaddr,
+ sizeof(struct jr_outentry) * JOBR_DEPTH,
+ DMA_FROM_DEVICE);
+
spin_lock_irqsave(&jrp->outlock, flags);
head = ACCESS_ONCE(jrp->head);
@@ -73,7 +79,6 @@ static void caam_jr_dequeue(unsigned long devarg)
sw_idx = (tail + i) & (JOBR_DEPTH - 1);
smp_read_barrier_depends();
-
if (jrp->outring[hw_idx].desc ==
jrp->entinfo[sw_idx].desc_addr_dma)
break; /* found */
@@ -240,7 +245,7 @@ int caam_jr_enqueue(struct device *dev, u32 *desc,
struct caam_jrentry_info *head_entry;
unsigned long flags;
int head, tail, desc_size;
- dma_addr_t desc_dma;
+ dma_addr_t desc_dma, inpbusaddr;
desc_size = (*desc & HDR_JD_LENGTH_MASK) * sizeof(u32);
desc_dma = dma_map_single(dev, desc, desc_size, DMA_TO_DEVICE);
@@ -249,6 +254,12 @@ int caam_jr_enqueue(struct device *dev, u32 *desc,
return -EIO;
}
+ dma_sync_single_for_device(dev, desc_dma, desc_size, DMA_TO_DEVICE);
+
+ inpbusaddr = rd_reg64(&jrp->rregs->inpring_base);
+ dma_sync_single_for_device(dev, inpbusaddr,
+ sizeof(dma_addr_t) * JOBR_DEPTH,
+ DMA_TO_DEVICE);
spin_lock_irqsave(&jrp->inplock, flags);
head = jrp->head;
@@ -270,6 +281,10 @@ int caam_jr_enqueue(struct device *dev, u32 *desc,
jrp->inpring[jrp->inp_ring_write_index] = desc_dma;
+ dma_sync_single_for_device(dev, inpbusaddr,
+ sizeof(dma_addr_t) * JOBR_DEPTH,
+ DMA_TO_DEVICE);
+
smp_wmb();
jrp->inp_ring_write_index = (jrp->inp_ring_write_index + 1) &
@@ -343,7 +358,7 @@ static int caam_jr_init(struct device *dev)
(unsigned long)dev);
error = request_irq(jrp->irq, caam_jr_interrupt, IRQF_SHARED,
- "caam-jobr", dev);
+ "caam-jr", dev);
if (error) {
dev_err(dev, "can't connect JobR %d interrupt (%d)\n",
jrp->ridx, jrp->irq);
@@ -377,7 +392,7 @@ static int caam_jr_init(struct device *dev)
/* Setup rings */
inpbusaddr = dma_map_single(dev, jrp->inpring,
sizeof(u32 *) * JOBR_DEPTH,
- DMA_BIDIRECTIONAL);
+ DMA_TO_DEVICE);
if (dma_mapping_error(dev, inpbusaddr)) {
dev_err(dev, "caam_jr_init(): can't map input ring\n");
kfree(jrp->inpring);
@@ -388,12 +403,12 @@ static int caam_jr_init(struct device *dev)
outbusaddr = dma_map_single(dev, jrp->outring,
sizeof(struct jr_outentry) * JOBR_DEPTH,
- DMA_BIDIRECTIONAL);
+ DMA_FROM_DEVICE);
if (dma_mapping_error(dev, outbusaddr)) {
dev_err(dev, "caam_jr_init(): can't map output ring\n");
dma_unmap_single(dev, inpbusaddr,
sizeof(u32 *) * JOBR_DEPTH,
- DMA_BIDIRECTIONAL);
+ DMA_TO_DEVICE);
kfree(jrp->inpring);
kfree(jrp->outring);
kfree(jrp->entinfo);
@@ -446,11 +461,9 @@ int caam_jr_shutdown(struct device *dev)
outbusaddr = rd_reg64(&jrp->rregs->outring_base);
dma_unmap_single(dev, outbusaddr,
sizeof(struct jr_outentry) * JOBR_DEPTH,
- DMA_BIDIRECTIONAL);
+ DMA_FROM_DEVICE);
dma_unmap_single(dev, inpbusaddr, sizeof(u32 *) * JOBR_DEPTH,
- DMA_BIDIRECTIONAL);
- kfree(jrp->outring);
- kfree(jrp->inpring);
+ DMA_TO_DEVICE);
kfree(jrp->entinfo);
return ret;
@@ -467,8 +480,12 @@ int caam_jr_probe(struct platform_device *pdev, struct device_node *np,
struct platform_device *jr_pdev;
struct caam_drv_private *ctrlpriv;
struct caam_drv_private_jr *jrpriv;
- u32 *jroffset;
int error;
+ /* FIXME: perhaps "struct resource *" for OF and non? */
+ u32 *jroffset, *irqres;
+#ifndef CONFIG_OF
+ char *rname, rinst;
+#endif
ctrldev = &pdev->dev;
ctrlpriv = dev_get_drvdata(ctrldev);
@@ -489,12 +506,35 @@ int caam_jr_probe(struct platform_device *pdev, struct device_node *np,
* need to add in the offset to this JobR. Don't know if I
* like this long-term, but it'll run
*/
+#ifdef CONFIG_OF
jroffset = (u32 *)of_get_property(np, "reg", NULL);
+#else
+ rname = kmalloc(strlen(JR_MEMRES_NAME_ROOT) + 1, 0);
+ if (rname == NULL) {
+ dev_err(ctrldev, "can't alloc resource detection buffer %d\n",
+ ring);
+ kfree(jrpriv);
+ return -ENOMEM;
+ }
+ rname[0] = 0;
+ rinst = '0' + ring;
+ strcat(rname, JR_MEMRES_NAME_ROOT);
+ strncat(rname, &rinst, 1);
+ jroffset = (u32 *)platform_get_resource_byname(pdev, IORESOURCE_MEM,
+ rname);
+ kfree(rname);
+#endif
jrpriv->rregs = (struct caam_job_ring __iomem *)((void *)ctrlpriv->ctrl
+ *jroffset);
/* Build a local dev for each detected queue */
+#ifdef CONFIG_OF
jr_pdev = of_platform_device_create(np, NULL, ctrldev);
+#else
+ jr_pdev = platform_device_register_data(ctrldev, "caam_jr", ring,
+ jrpriv,
+ sizeof(struct caam_drv_private_jr));
+#endif
if (jr_pdev == NULL) {
kfree(jrpriv);
return -EINVAL;
@@ -504,7 +544,24 @@ int caam_jr_probe(struct platform_device *pdev, struct device_node *np,
ctrlpriv->jrdev[ring] = jrdev;
/* Identify the interrupt */
+#ifdef CONFIG_OF
jrpriv->irq = of_irq_to_resource(np, 0, NULL);
+#else
+ rname = kmalloc(strlen(JR_IRQRES_NAME_ROOT) + 1, 0);
+ if (rname == NULL) {
+ dev_err(ctrldev, "can't alloc resource detection buffer %d\n",
+ ring);
+ kfree(jrpriv);
+ return -ENOMEM;
+ }
+ rname[0] = 0;
+ strcat(rname, JR_IRQRES_NAME_ROOT);
+ strncat(rname, &rinst, 1);
+ irqres = (u32 *)platform_get_resource_byname(pdev, IORESOURCE_IRQ,
+ rname);
+ jrpriv->irq = *irqres;
+ kfree(rname);
+#endif
/* Now do the platform independent part */
error = caam_jr_init(jrdev); /* now turn on hardware */
diff --git a/drivers/crypto/caam/regs.h b/drivers/crypto/caam/regs.h
index aee394e39056..888706d2801c 100644
--- a/drivers/crypto/caam/regs.h
+++ b/drivers/crypto/caam/regs.h
@@ -1,7 +1,7 @@
/*
* CAAM hardware register-level view
*
- * Copyright 2008-2011 Freescale Semiconductor, Inc.
+ * Copyright (C) 2008-2012 Freescale Semiconductor, Inc.
*/
#ifndef REGS_H
@@ -74,15 +74,21 @@
#endif
#else
#ifdef __LITTLE_ENDIAN
-#define wr_reg32(reg, data) __raw_writel(reg, data)
-#define rd_reg32(reg) __raw_readl(reg)
+#define wr_reg32(reg, data) writel(data, reg)
+#define rd_reg32(reg) readl(reg)
#ifdef CONFIG_64BIT
-#define wr_reg64(reg, data) __raw_writeq(reg, data)
-#define rd_reg64(reg) __raw_readq(reg)
+#define wr_reg64(reg, data) writeq(data, reg)
+#define rd_reg64(reg) readq(reg)
#endif
#endif
#endif
+#ifdef CONFIG_ARM
+/* These are common macros for Power, put here for ARMs */
+#define setbits32(_addr, _v) writel((readl(_addr) | (_v)), (_addr))
+#define clrbits32(_addr, _v) writel((readl(_addr) & ~(_v)), (_addr))
+#endif
+
#ifndef CONFIG_64BIT
static inline void wr_reg64(u64 __iomem *reg, u64 data)
{
diff --git a/drivers/dma/imx-sdma.c b/drivers/dma/imx-sdma.c
index 306dcdd0dc38..a4ed05342168 100644
--- a/drivers/dma/imx-sdma.c
+++ b/drivers/dma/imx-sdma.c
@@ -340,9 +340,9 @@ static int sdma_config_ownership(struct sdma_channel *sdmac,
if (event_override && mcu_override && dsp_override)
return -EINVAL;
- evt = __raw_readl(sdma->regs + SDMA_H_EVTOVR);
- mcu = __raw_readl(sdma->regs + SDMA_H_HOSTOVR);
- dsp = __raw_readl(sdma->regs + SDMA_H_DSPOVR);
+ evt = readl_relaxed(sdma->regs + SDMA_H_EVTOVR);
+ mcu = readl_relaxed(sdma->regs + SDMA_H_HOSTOVR);
+ dsp = readl_relaxed(sdma->regs + SDMA_H_DSPOVR);
if (dsp_override)
dsp &= ~(1 << channel);
@@ -359,9 +359,9 @@ static int sdma_config_ownership(struct sdma_channel *sdmac,
else
mcu |= (1 << channel);
- __raw_writel(evt, sdma->regs + SDMA_H_EVTOVR);
- __raw_writel(mcu, sdma->regs + SDMA_H_HOSTOVR);
- __raw_writel(dsp, sdma->regs + SDMA_H_DSPOVR);
+ writel_relaxed(evt, sdma->regs + SDMA_H_EVTOVR);
+ writel_relaxed(mcu, sdma->regs + SDMA_H_HOSTOVR);
+ writel_relaxed(dsp, sdma->regs + SDMA_H_DSPOVR);
return 0;
}
@@ -378,7 +378,7 @@ static int sdma_run_channel(struct sdma_channel *sdmac)
init_completion(&sdmac->done);
wmb();
- __raw_writel(1 << channel, sdma->regs + SDMA_H_START);
+ writel_relaxed(1 << channel, sdma->regs + SDMA_H_START);
ret = wait_for_completion_timeout(&sdmac->done, HZ);
@@ -421,9 +421,9 @@ static void sdma_event_enable(struct sdma_channel *sdmac, unsigned int event)
u32 val;
u32 chnenbl = chnenbl_ofs(sdma, event);
- val = __raw_readl(sdma->regs + chnenbl);
+ val = readl_relaxed(sdma->regs + chnenbl);
val |= (1 << channel);
- __raw_writel(val, sdma->regs + chnenbl);
+ writel_relaxed(val, sdma->regs + chnenbl);
}
static void sdma_event_disable(struct sdma_channel *sdmac, unsigned int event)
@@ -433,9 +433,9 @@ static void sdma_event_disable(struct sdma_channel *sdmac, unsigned int event)
u32 chnenbl = chnenbl_ofs(sdma, event);
u32 val;
- val = __raw_readl(sdma->regs + chnenbl);
+ val = readl_relaxed(sdma->regs + chnenbl);
val &= ~(1 << channel);
- __raw_writel(val, sdma->regs + chnenbl);
+ writel_relaxed(val, sdma->regs + chnenbl);
}
static void sdma_handle_channel_loop(struct sdma_channel *sdmac)
@@ -512,8 +512,8 @@ static irqreturn_t sdma_int_handler(int irq, void *dev_id)
struct sdma_engine *sdma = dev_id;
u32 stat;
- stat = __raw_readl(sdma->regs + SDMA_H_INTR);
- __raw_writel(stat, sdma->regs + SDMA_H_INTR);
+ stat = readl_relaxed(sdma->regs + SDMA_H_INTR);
+ writel_relaxed(stat, sdma->regs + SDMA_H_INTR);
while (stat) {
int channel = fls(stat) - 1;
@@ -673,7 +673,7 @@ static void sdma_disable_channel(struct sdma_channel *sdmac)
struct sdma_engine *sdma = sdmac->sdma;
int channel = sdmac->channel;
- __raw_writel(1 << channel, sdma->regs + SDMA_H_STATSTOP);
+ writel_relaxed(1 << channel, sdma->regs + SDMA_H_STATSTOP);
sdmac->status = DMA_ERROR;
}
@@ -778,7 +778,7 @@ static int sdma_set_channel_priority(struct sdma_channel *sdmac,
return -EINVAL;
}
- __raw_writel(priority, sdma->regs + SDMA_CHNPRI_0 + 4 * channel);
+ writel_relaxed(priority, sdma->regs + SDMA_CHNPRI_0 + 4 * channel);
return 0;
}
@@ -817,7 +817,7 @@ out:
static void sdma_enable_channel(struct sdma_engine *sdma, int channel)
{
wmb();
- __raw_writel(1 << channel, sdma->regs + SDMA_H_START);
+ writel(1 << channel, sdma->regs + SDMA_H_START);
}
static dma_cookie_t sdma_assign_cookie(struct sdma_channel *sdmac)
@@ -1246,7 +1246,7 @@ static int __init sdma_init(struct sdma_engine *sdma)
clk_enable(sdma->clk);
/* Be sure SDMA has not started yet */
- __raw_writel(0, sdma->regs + SDMA_H_C0PTR);
+ writel_relaxed(0, sdma->regs + SDMA_H_C0PTR);
sdma->channel_control = dma_alloc_coherent(NULL,
MAX_DMA_CHANNELS * sizeof (struct sdma_channel_control) +
@@ -1269,11 +1269,11 @@ static int __init sdma_init(struct sdma_engine *sdma)
/* disable all channels */
for (i = 0; i < sdma->num_events; i++)
- __raw_writel(0, sdma->regs + chnenbl_ofs(sdma, i));
+ writel_relaxed(0, sdma->regs + chnenbl_ofs(sdma, i));
/* All channels have priority 0 */
for (i = 0; i < MAX_DMA_CHANNELS; i++)
- __raw_writel(0, sdma->regs + SDMA_CHNPRI_0 + i * 4);
+ writel_relaxed(0, sdma->regs + SDMA_CHNPRI_0 + i * 4);
ret = sdma_request_channel(&sdma->channel[0]);
if (ret)
@@ -1282,16 +1282,16 @@ static int __init sdma_init(struct sdma_engine *sdma)
sdma_config_ownership(&sdma->channel[0], false, true, false);
/* Set Command Channel (Channel Zero) */
- __raw_writel(0x4050, sdma->regs + SDMA_CHN0ADDR);
+ writel_relaxed(0x4050, sdma->regs + SDMA_CHN0ADDR);
/* Set bits of CONFIG register but with static context switching */
/* FIXME: Check whether to set ACR bit depending on clock ratios */
- __raw_writel(0, sdma->regs + SDMA_H_CONFIG);
+ writel_relaxed(0, sdma->regs + SDMA_H_CONFIG);
- __raw_writel(ccb_phys, sdma->regs + SDMA_H_C0PTR);
+ writel_relaxed(ccb_phys, sdma->regs + SDMA_H_C0PTR);
/* Set bits of CONFIG register with given context switching mode */
- __raw_writel(SDMA_H_CONFIG_CSM, sdma->regs + SDMA_H_CONFIG);
+ writel_relaxed(SDMA_H_CONFIG_CSM, sdma->regs + SDMA_H_CONFIG);
/* Initializes channel's priorities */
sdma_set_channel_priority(&sdma->channel[0], 7);
diff --git a/drivers/dma/pxp/pxp_dma.c b/drivers/dma/pxp/pxp_dma.c
index eb5b4fb60306..ddd1c0cd192d 100644
--- a/drivers/dma/pxp/pxp_dma.c
+++ b/drivers/dma/pxp/pxp_dma.c
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2010-2011 Freescale Semiconductor, Inc.
+ * Copyright (C) 2010-2012 Freescale Semiconductor, Inc.
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
@@ -180,6 +180,7 @@ static bool is_yuv(u32 pix_fmt)
(pix_fmt == PXP_PIX_FMT_YUV444) |
(pix_fmt == PXP_PIX_FMT_NV12) |
(pix_fmt == PXP_PIX_FMT_GREY) |
+ (pix_fmt == PXP_PIX_FMT_GY04) |
(pix_fmt == PXP_PIX_FMT_YVU410P) |
(pix_fmt == PXP_PIX_FMT_YUV410P) |
(pix_fmt == PXP_PIX_FMT_YVU420P) |
@@ -215,6 +216,9 @@ static void pxp_set_ctrl(struct pxps *pxp)
case PXP_PIX_FMT_GREY:
fmt_ctrl = BV_PXP_CTRL_S0_FORMAT__YUV420;
break;
+ case PXP_PIX_FMT_GY04:
+ fmt_ctrl = BV_PXP_CTRL_S0_FORMAT__YUV420;
+ break;
case PXP_PIX_FMT_YUV422P:
fmt_ctrl = BV_PXP_CTRL_S0_FORMAT__YUV422;
break;
@@ -243,6 +247,9 @@ static void pxp_set_ctrl(struct pxps *pxp)
case PXP_PIX_FMT_GREY:
fmt_ctrl = BV_PXP_CTRL_OUTBUF_FORMAT__MONOC8;
break;
+ case PXP_PIX_FMT_GY04:
+ fmt_ctrl = BV_PXP_CTRL_OUTBUF_FORMAT__MONOC4;
+ break;
default:
fmt_ctrl = 0;
}
@@ -620,6 +627,14 @@ static void pxp_set_s0buf(struct pxps *pxp)
__raw_writel(U, pxp->base + HW_PXP_S0UBUF);
__raw_writel(V, pxp->base + HW_PXP_S0VBUF);
}
+
+ /* TODO: only support RGB565, Y8 , Y4 */
+ if (s0_params->pixel_fmt == PXP_PIX_FMT_GREY)
+ __raw_writel(s0_params->width, pxp->base + HW_PXP_PS_PITCH);
+ else if (s0_params->pixel_fmt == PXP_PIX_FMT_GY04)
+ __raw_writel(s0_params->width >> 1, pxp->base + HW_PXP_PS_PITCH);
+ else
+ __raw_writel(s0_params->width * 2, pxp->base + HW_PXP_PS_PITCH);
}
/**
diff --git a/drivers/dma/pxp/pxp_dma_v2.c b/drivers/dma/pxp/pxp_dma_v2.c
index 3fadd9a5f762..ceb72edbd39e 100644
--- a/drivers/dma/pxp/pxp_dma_v2.c
+++ b/drivers/dma/pxp/pxp_dma_v2.c
@@ -220,6 +220,7 @@ static bool is_yuv(u32 pix_fmt)
(pix_fmt == PXP_PIX_FMT_YUV444) |
(pix_fmt == PXP_PIX_FMT_NV12) |
(pix_fmt == PXP_PIX_FMT_GREY) |
+ (pix_fmt == PXP_PIX_FMT_GY04) |
(pix_fmt == PXP_PIX_FMT_YVU410P) |
(pix_fmt == PXP_PIX_FMT_YUV410P) |
(pix_fmt == PXP_PIX_FMT_YVU420P) |
@@ -257,6 +258,9 @@ static void pxp_set_ctrl(struct pxps *pxp)
case PXP_PIX_FMT_GREY:
fmt_ctrl = BV_PXP_PS_CTRL_FORMAT__Y8;
break;
+ case PXP_PIX_FMT_GY04:
+ fmt_ctrl = BV_PXP_PS_CTRL_FORMAT__Y4;
+ break;
case PXP_PIX_FMT_YUV422P:
fmt_ctrl = BV_PXP_PS_CTRL_FORMAT__YUV422;
break;
@@ -287,6 +291,9 @@ static void pxp_set_ctrl(struct pxps *pxp)
case PXP_PIX_FMT_GREY:
fmt_ctrl = BV_PXP_OUT_CTRL_FORMAT__Y8;
break;
+ case PXP_PIX_FMT_GY04:
+ fmt_ctrl = BV_PXP_OUT_CTRL_FORMAT__Y4;
+ break;
default:
fmt_ctrl = 0;
}
@@ -697,9 +704,11 @@ static void pxp_set_s0buf(struct pxps *pxp)
__raw_writel(V, pxp->base + HW_PXP_PS_VBUF);
}
- /* TODO: only support RGB565, Y8 */
+ /* TODO: only support RGB565, Y8, Y4 */
if (s0_params->pixel_fmt == PXP_PIX_FMT_GREY)
__raw_writel(s0_params->width, pxp->base + HW_PXP_PS_PITCH);
+ else if (s0_params->pixel_fmt == PXP_PIX_FMT_GY04)
+ __raw_writel(s0_params->width >> 1, pxp->base + HW_PXP_PS_PITCH);
else
__raw_writel(s0_params->width * 2, pxp->base + HW_PXP_PS_PITCH);
}
diff --git a/drivers/input/touchscreen/Kconfig b/drivers/input/touchscreen/Kconfig
index bf8d1797589c..bf002d471b1f 100755
--- a/drivers/input/touchscreen/Kconfig
+++ b/drivers/input/touchscreen/Kconfig
@@ -187,6 +187,18 @@ config TOUCHSCREEN_EGALAX
To compile this driver as a module, choose M here: the
module will be called egalax_ts.
+config TOUCHSCREEN_ELAN
+ tristate "ELAN touchscreen input driver"
+ depends on I2C
+ help
+ Say Y here if you have an I2C ELAN touchscreen
+ attached.
+
+ If unsure, say N.
+
+ To compile this driver as a module, choose M here: the
+ module will be called elan-touch.
+
config TOUCHSCREEN_FUJITSU
tristate "Fujitsu serial touchscreen"
select SERIO
diff --git a/drivers/input/touchscreen/Makefile b/drivers/input/touchscreen/Makefile
index f61dfe88bc62..28ac2d2c81bd 100755
--- a/drivers/input/touchscreen/Makefile
+++ b/drivers/input/touchscreen/Makefile
@@ -66,3 +66,4 @@ obj-$(CONFIG_TOUCHSCREEN_P1003) += p1003_ts.o
obj-$(CONFIG_TOUCHSCREEN_TPS6507X) += tps6507x-ts.o
obj-$(CONFIG_TOUCHSCREEN_MAX11801) += max11801_ts.o
obj-$(CONFIG_TOUCHSCREEN_EGALAX) += egalax_ts.o
+obj-$(CONFIG_TOUCHSCREEN_ELAN) += elan_ts.o
diff --git a/drivers/input/touchscreen/elan_ts.c b/drivers/input/touchscreen/elan_ts.c
new file mode 100644
index 000000000000..7edd87d6cd1b
--- /dev/null
+++ b/drivers/input/touchscreen/elan_ts.c
@@ -0,0 +1,387 @@
+/*
+ * Copyright (C) 2007-2008 HTC Corporation.
+ *
+ * This driver is adapted from elan8232_i2c.c written by Shan-Fu Chiou
+ * <sfchiou@gmail.com> and Jay Tu <jay_tu@htc.com>.
+ * This driver is also adapted from the ELAN Touch Screen driver
+ * written by Stanley Zeng <stanley.zeng@emc.com.tw>
+ *
+ * This software is licensed under the terms of the GNU General Public
+ * License version 2, as published by the Free Software Foundation, and
+ * may be copied, distributed, and modified under those terms.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ */
+
+#include <linux/input.h>
+#include <linux/device.h>
+#include <linux/module.h>
+#include <linux/init.h>
+#include <linux/jiffies.h>
+#include <linux/interrupt.h>
+#include <linux/i2c.h>
+#include <linux/delay.h>
+#include <linux/hrtimer.h>
+#include <linux/gpio.h>
+
+static const char ELAN_TS_NAME[] = "elan-touch";
+
+#define ELAN_TS_X_MAX 1088
+#define ELAN_TS_Y_MAX 768
+#define ELAN_USER_X_MAX 800
+#define ELAN_USER_Y_MAX 600
+#define IDX_PACKET_SIZE 8
+
+enum {
+ hello_packet = 0x55,
+ idx_coordinate_packet = 0x5a,
+};
+
+enum {
+ idx_finger_state = 7,
+};
+
+static struct workqueue_struct *elan_wq;
+
+static struct elan_data {
+ int intr_gpio;
+ int use_irq;
+ struct hrtimer timer;
+ struct work_struct work;
+ struct i2c_client *client;
+ struct input_dev *input;
+ wait_queue_head_t wait;
+} elan_touch_data;
+
+/*--------------------------------------------------------------*/
+static int elan_touch_detect_int_level(void)
+{
+ unsigned v;
+ v = gpio_get_value(elan_touch_data.intr_gpio);
+
+ return v;
+}
+
+static int __elan_touch_poll(struct i2c_client *client)
+{
+ int status = 0, retry = 20;
+
+ do {
+ status = elan_touch_detect_int_level();
+ retry--;
+ mdelay(20);
+ } while (status == 1 && retry > 0);
+
+ return (status == 0 ? 0 : -ETIMEDOUT);
+}
+
+static int elan_touch_poll(struct i2c_client *client)
+{
+ return __elan_touch_poll(client);
+}
+
+static int __hello_packet_handler(struct i2c_client *client)
+{
+ int rc;
+ uint8_t buf_recv[4] = { 0 };
+
+ rc = elan_touch_poll(client);
+
+ if (rc < 0) {
+ return -EINVAL;
+ }
+
+ rc = i2c_master_recv(client, buf_recv, 4);
+
+ if (rc != 4) {
+ return rc;
+ } else {
+ int i;
+ printk("hello packet: [0x%02x 0x%02x 0x%02x 0x%02x]\n",
+ buf_recv[0], buf_recv[1], buf_recv[2], buf_recv[3]);
+
+ for (i = 0; i < 4; i++)
+ if (buf_recv[i] != hello_packet)
+ return -EINVAL;
+ }
+
+ return 0;
+}
+
+static inline int elan_touch_parse_xy(uint8_t *data, uint16_t *x,
+ uint16_t *y)
+{
+ *x = (data[0] & 0xf0);
+ *x <<= 4;
+ *x |= data[1];
+ if (*x >= ELAN_TS_X_MAX)
+ *x = ELAN_TS_X_MAX;
+ *x = ((((ELAN_TS_X_MAX -
+ *x) * 1000) / ELAN_TS_X_MAX) * ELAN_USER_X_MAX) / 1000;
+
+ *y = (data[0] & 0x0f);
+ *y <<= 8;
+ *y |= data[2];
+ if (*y >= ELAN_TS_Y_MAX)
+ *y = ELAN_TS_Y_MAX;
+ *y = ((((ELAN_TS_Y_MAX -
+ *y) * 1000) / ELAN_TS_Y_MAX) * ELAN_USER_Y_MAX) / 1000;
+
+ return 0;
+}
+
+/* __elan_touch_init -- hand shaking with touch panel
+ *
+ * 1.recv hello packet
+ */
+static int __elan_touch_init(struct i2c_client *client)
+{
+ int rc;
+ rc = __hello_packet_handler(client);
+ if (rc < 0)
+ goto hand_shake_failed;
+
+hand_shake_failed:
+ return rc;
+}
+
+static int elan_touch_recv_data(struct i2c_client *client, uint8_t * buf)
+{
+ int rc, bytes_to_recv = IDX_PACKET_SIZE;
+
+ if (buf == NULL)
+ return -EINVAL;
+
+ memset(buf, 0, bytes_to_recv);
+ rc = i2c_master_recv(client, buf, bytes_to_recv);
+ if (rc != bytes_to_recv) {
+ return -EINVAL;
+ }
+
+ return rc;
+}
+
+static void elan_touch_report_data(struct i2c_client *client, uint8_t * buf)
+{
+ switch (buf[0]) {
+ case idx_coordinate_packet:
+ {
+ uint16_t x1, x2, y1, y2;
+ uint8_t finger_stat;
+
+ finger_stat = (buf[idx_finger_state] & 0x06) >> 1;
+
+ if (finger_stat == 0) {
+ input_report_key(elan_touch_data.input, BTN_TOUCH, 0);
+ input_report_key(elan_touch_data.input, BTN_2, 0);
+ } else if (finger_stat == 1) {
+ elan_touch_parse_xy(&buf[1], &x1, &y1);
+ input_report_abs(elan_touch_data.input, ABS_X, x1);
+ input_report_abs(elan_touch_data.input, ABS_Y, y1);
+ input_report_key(elan_touch_data.input, BTN_TOUCH, 1);
+ input_report_key(elan_touch_data.input, BTN_2, 0);
+ } else if (finger_stat == 2) {
+ elan_touch_parse_xy(&buf[1], &x1, &y1);
+ input_report_abs(elan_touch_data.input, ABS_X, x1);
+ input_report_abs(elan_touch_data.input, ABS_Y, y1);
+ input_report_key(elan_touch_data.input, BTN_TOUCH, 1);
+ elan_touch_parse_xy(&buf[4], &x2, &y2);
+ input_report_abs(elan_touch_data.input, ABS_HAT0X, x2);
+ input_report_abs(elan_touch_data.input, ABS_HAT0Y, y2);
+ input_report_key(elan_touch_data.input, BTN_2, 1);
+ }
+ input_sync(elan_touch_data.input);
+ break;
+ }
+
+ default:
+ break;
+ }
+}
+
+static void elan_touch_work_func(struct work_struct *work)
+{
+ int rc;
+ uint8_t buf[IDX_PACKET_SIZE] = { 0 };
+ struct i2c_client *client = elan_touch_data.client;
+
+ if (elan_touch_detect_int_level())
+ return;
+
+ rc = elan_touch_recv_data(client, buf);
+ if (rc < 0)
+ return;
+
+ elan_touch_report_data(client, buf);
+}
+
+static irqreturn_t elan_touch_ts_interrupt(int irq, void *dev_id)
+{
+ queue_work(elan_wq, &elan_touch_data.work);
+
+ return IRQ_HANDLED;
+}
+
+static enum hrtimer_restart elan_touch_timer_func(struct hrtimer *timer)
+{
+ queue_work(elan_wq, &elan_touch_data.work);
+ hrtimer_start(&elan_touch_data.timer, ktime_set(0, 12500000),
+ HRTIMER_MODE_REL);
+
+ return HRTIMER_NORESTART;
+}
+
+static int elan_touch_register_interrupt(struct i2c_client *client)
+{
+ int err = 0;
+
+ if (client->irq) {
+ elan_touch_data.use_irq = 1;
+ err =
+ request_irq(client->irq, elan_touch_ts_interrupt,
+ IRQF_TRIGGER_FALLING, ELAN_TS_NAME,
+ &elan_touch_data);
+
+ if (err < 0) {
+ printk("%s(%s): Can't allocate irq %d\n", __FILE__,
+ __func__, client->irq);
+ elan_touch_data.use_irq = 0;
+ }
+ }
+
+ if (!elan_touch_data.use_irq) {
+ hrtimer_init(&elan_touch_data.timer, CLOCK_MONOTONIC,
+ HRTIMER_MODE_REL);
+ elan_touch_data.timer.function = elan_touch_timer_func;
+ hrtimer_start(&elan_touch_data.timer, ktime_set(1, 0),
+ HRTIMER_MODE_REL);
+ }
+
+ printk("elan ts starts in %s mode.\n",
+ elan_touch_data.use_irq == 1 ? "interrupt" : "polling");
+
+ return 0;
+}
+
+static int elan_touch_probe(struct i2c_client *client,
+ const struct i2c_device_id *id)
+{
+ int err = 0;
+
+ elan_wq = create_singlethread_workqueue("elan_wq");
+ if (!elan_wq) {
+ err = -ENOMEM;
+ goto fail;
+ }
+
+ elan_touch_data.client = client;
+ strlcpy(client->name, ELAN_TS_NAME, I2C_NAME_SIZE);
+
+ INIT_WORK(&elan_touch_data.work, elan_touch_work_func);
+
+ elan_touch_data.intr_gpio = irq_to_gpio(client->irq);
+ pr_debug("irq_to_gpio irq %d, gpio %d\n", client->irq,
+ elan_touch_data.intr_gpio);
+
+ elan_touch_data.input = input_allocate_device();
+ if (elan_touch_data.input == NULL) {
+ err = -ENOMEM;
+ goto fail;
+ }
+
+ err = __elan_touch_init(client);
+ if (err < 0) {
+ printk("elan - Read Hello Packet Failed\n");
+ goto fail;
+ }
+
+ elan_touch_data.input->name = ELAN_TS_NAME;
+ elan_touch_data.input->id.bustype = BUS_I2C;
+
+ set_bit(EV_SYN, elan_touch_data.input->evbit);
+
+ set_bit(EV_KEY, elan_touch_data.input->evbit);
+ set_bit(BTN_TOUCH, elan_touch_data.input->keybit);
+ set_bit(BTN_2, elan_touch_data.input->keybit);
+
+ set_bit(EV_ABS, elan_touch_data.input->evbit);
+ set_bit(ABS_X, elan_touch_data.input->absbit);
+ set_bit(ABS_Y, elan_touch_data.input->absbit);
+ set_bit(ABS_HAT0X, elan_touch_data.input->absbit);
+ set_bit(ABS_HAT0Y, elan_touch_data.input->absbit);
+
+ input_set_abs_params(elan_touch_data.input, ABS_X, 0, ELAN_USER_X_MAX,
+ 0, 0);
+ input_set_abs_params(elan_touch_data.input, ABS_Y, 0, ELAN_USER_Y_MAX,
+ 0, 0);
+ input_set_abs_params(elan_touch_data.input, ABS_HAT0X, 0,
+ ELAN_USER_X_MAX, 0, 0);
+ input_set_abs_params(elan_touch_data.input, ABS_HAT0Y, 0,
+ ELAN_USER_Y_MAX, 0, 0);
+
+ err = input_register_device(elan_touch_data.input);
+ if (err < 0) {
+ goto fail;
+ }
+
+ elan_touch_register_interrupt(elan_touch_data.client);
+
+ return 0;
+
+fail:
+ input_free_device(elan_touch_data.input);
+ if (elan_wq)
+ destroy_workqueue(elan_wq);
+ return err;
+}
+
+static int elan_touch_remove(struct i2c_client *client)
+{
+ if (elan_wq)
+ destroy_workqueue(elan_wq);
+
+ input_unregister_device(elan_touch_data.input);
+
+ if (elan_touch_data.use_irq)
+ free_irq(client->irq, client);
+ else
+ hrtimer_cancel(&elan_touch_data.timer);
+ return 0;
+}
+
+/* -------------------------------------------------------------------- */
+static const struct i2c_device_id elan_touch_id[] = {
+ {"elan-touch", 0},
+ {}
+};
+
+static struct i2c_driver elan_touch_driver = {
+ .probe = elan_touch_probe,
+ .remove = elan_touch_remove,
+ .id_table = elan_touch_id,
+ .driver = {
+ .name = "elan-touch",
+ .owner = THIS_MODULE,
+ },
+};
+
+static int __init elan_touch_init(void)
+{
+ return i2c_add_driver(&elan_touch_driver);
+}
+
+static void __exit elan_touch_exit(void)
+{
+ i2c_del_driver(&elan_touch_driver);
+}
+
+module_init(elan_touch_init);
+module_exit(elan_touch_exit);
+
+MODULE_AUTHOR("Stanley Zeng <stanley.zeng@emc.com.tw>");
+MODULE_DESCRIPTION("ELAN Touch Screen driver");
+MODULE_LICENSE("GPL");
diff --git a/drivers/input/touchscreen/max11801_ts.c b/drivers/input/touchscreen/max11801_ts.c
index ca88d6823a98..48ee3600a03b 100755
--- a/drivers/input/touchscreen/max11801_ts.c
+++ b/drivers/input/touchscreen/max11801_ts.c
@@ -2,7 +2,7 @@
* Driver for MAXI MAX11801 - A Resistive touch screen controller with
* i2c interface
*
- * Copyright (C) 2011 Freescale Semiconductor, Inc.
+ * Copyright (C) 2011-2012 Freescale Semiconductor, Inc.
* Author: Zhang Jiejing <jiejing.zhang@freescale.com>
*
* Based on mcs5000_ts.c
@@ -38,6 +38,8 @@
#include <linux/input.h>
#include <linux/slab.h>
#include <linux/bitops.h>
+#include <linux/delay.h>
+
/* Register Address define */
#define GENERNAL_STATUS_REG 0x00
@@ -53,13 +55,32 @@
#define AUX_MESURE_CONF_REG 0x0a
#define OP_MODE_CONF_REG 0x0b
+#define Panel_Setup_X (0x69 << 1)
+#define Panel_Setup_Y (0x6b << 1)
+
+#define XY_combined_measurement (0x70 << 1)
+#define X_measurement (0x78 << 1)
+#define Y_measurement (0x7a << 1)
+#define AUX_measurement (0x76 << 1)
+
/* FIFO is found only in max11800 and max11801 */
#define FIFO_RD_CMD (0x50 << 1)
#define MAX11801_FIFO_INT (1 << 2)
#define MAX11801_FIFO_OVERFLOW (1 << 3)
+#define MAX11801_EDGE_INT (1 << 1)
+
+#define FIFO_RD_X_MSB (0x52 << 1)
+#define FIFO_RD_X_LSB (0x53 << 1)
+#define FIFO_RD_Y_MSB (0x54 << 1)
+#define FIFO_RD_Y_LSB (0x55 << 1)
+#define FIFO_RD_AUX_MSB (0x5a << 1)
+#define FIFO_RD_AUX_LSB (0x5b << 1)
#define XY_BUFSIZE 4
#define XY_BUF_OFFSET 4
+#define X_BUFSIZE 2
+#define Y_BUFSIZE 2
+#define AUX_BUFSIZE 2
#define MAX11801_MAX_X 0xfff
#define MAX11801_MAX_Y 0xfff
@@ -83,6 +104,54 @@ struct max11801_data {
struct i2c_client *client;
struct input_dev *input_dev;
};
+struct i2c_client *max11801_client;
+unsigned int max11801_workmode;
+
+static int max11801_dcm_write_command(struct i2c_client *client, int command)
+{
+ return i2c_smbus_write_byte(client, command);
+}
+
+static u32 max11801_dcm_sample_aux(struct i2c_client *client)
+{
+ u8 temp_buf;
+ u8 aux_buf[AUX_BUFSIZE];
+ int ret;
+ int aux = 0;
+ u32 sample_data = 0;
+ /* AUX_measurement*/
+ max11801_dcm_write_command(client, AUX_measurement);
+ mdelay(5);
+ ret = i2c_smbus_read_i2c_block_data(client, FIFO_RD_AUX_MSB,
+ 1, &temp_buf);
+ aux_buf[0] = temp_buf;
+ if (ret < 1)
+ printk(KERN_DEBUG "FIFO_RD_AUX_MSB read fails\n");
+ mdelay(5);
+ ret = i2c_smbus_read_i2c_block_data(client, FIFO_RD_AUX_LSB,
+ 1, &temp_buf);
+ aux_buf[1] = temp_buf;
+ if (ret < 1)
+ printk(KERN_DEBUG "FIFO_RD_AUX_LSB read fails\n");
+ aux = (aux_buf[0] << 4) +
+ (aux_buf[1] >> 4);
+ /*
+ voltage = (9170*aux)/7371;
+ voltage is (26.2*3150*aux)/(16.2*0xFFF)
+ V(aux)=3150*sample/0xFFF,V(battery)=212*V(aux)/81
+ sample_data = (14840*aux)/7371-1541;
+ */
+ sample_data = (14840*aux)/7371;
+ return sample_data;
+}
+
+u32 max11801_read_adc(void)
+{
+ u32 adc_data;
+ adc_data = max11801_dcm_sample_aux(max11801_client);
+ return adc_data;
+}
+EXPORT_SYMBOL_GPL(max11801_read_adc);
static u8 read_register(struct i2c_client *client, int addr)
{
@@ -109,76 +178,166 @@ static irqreturn_t max11801_ts_interrupt(int irq, void *dev_id)
struct i2c_client *client = data->client;
int status, i, ret;
u8 buf[XY_BUFSIZE];
+ u8 x_buf[X_BUFSIZE];
+ u8 y_buf[Y_BUFSIZE];
+ u8 temp_buf[1];
int x = -1;
int y = -1;
status = read_register(data->client, GENERNAL_STATUS_REG);
-
- if (status & (MAX11801_FIFO_INT | MAX11801_FIFO_OVERFLOW)) {
- status = read_register(data->client, GENERNAL_STATUS_REG);
-
- ret = i2c_smbus_read_i2c_block_data(client, FIFO_RD_CMD,
- XY_BUFSIZE, buf);
-
- /*
- * We should get 4 bytes buffer that contains X,Y
- * and event tag
- */
- if (ret < XY_BUFSIZE)
- goto out;
-
- for (i = 0; i < XY_BUFSIZE; i += XY_BUFSIZE / 2) {
- if ((buf[i + 1] & MEASURE_TAG_MASK) == MEASURE_X_TAG)
- x = (buf[i] << XY_BUF_OFFSET) +
- (buf[i + 1] >> XY_BUF_OFFSET);
- else if ((buf[i + 1] & MEASURE_TAG_MASK) == MEASURE_Y_TAG)
- y = (buf[i] << XY_BUF_OFFSET) +
- (buf[i + 1] >> XY_BUF_OFFSET);
- }
-
- if ((buf[1] & EVENT_TAG_MASK) != (buf[3] & EVENT_TAG_MASK))
- goto out;
-
- switch (buf[1] & EVENT_TAG_MASK) {
- case EVENT_INIT:
- /* fall through */
- case EVENT_MIDDLE:
- calibration_pointer(&x, &y);
- input_report_abs(data->input_dev, ABS_X, x);
- input_report_abs(data->input_dev, ABS_Y, y);
- input_event(data->input_dev, EV_KEY, BTN_TOUCH, 1);
- input_sync(data->input_dev);
- break;
-
- case EVENT_RELEASE:
- input_event(data->input_dev, EV_KEY, BTN_TOUCH, 0);
- input_sync(data->input_dev);
- break;
-
- case EVENT_FIFO_END:
- break;
- }
- }
+ if (max11801_workmode == 0) {
+ if (status & (MAX11801_FIFO_INT | MAX11801_FIFO_OVERFLOW)) {
+ status = read_register(data->client, GENERNAL_STATUS_REG);
+
+ ret = i2c_smbus_read_i2c_block_data(client, FIFO_RD_CMD,
+ XY_BUFSIZE, buf);
+
+ /*
+ * We should get 4 bytes buffer that contains X,Y
+ * and event tag
+ */
+ if (ret < XY_BUFSIZE)
+ goto out;
+
+ for (i = 0; i < XY_BUFSIZE; i += XY_BUFSIZE / 2) {
+ if ((buf[i + 1] & MEASURE_TAG_MASK) == MEASURE_X_TAG)
+ x = (buf[i] << XY_BUF_OFFSET) +
+ (buf[i + 1] >> XY_BUF_OFFSET);
+ else if ((buf[i + 1] & MEASURE_TAG_MASK) == MEASURE_Y_TAG)
+ y = (buf[i] << XY_BUF_OFFSET) +
+ (buf[i + 1] >> XY_BUF_OFFSET);
+ }
+
+ if ((buf[1] & EVENT_TAG_MASK) != (buf[3] & EVENT_TAG_MASK))
+ goto out;
+
+ switch (buf[1] & EVENT_TAG_MASK) {
+ case EVENT_INIT:
+ /* fall through */
+ case EVENT_MIDDLE:
+ calibration_pointer(&x, &y);
+ input_report_abs(data->input_dev, ABS_X, x);
+ input_report_abs(data->input_dev, ABS_Y, y);
+ input_event(data->input_dev, EV_KEY, BTN_TOUCH, 1);
+ input_sync(data->input_dev);
+ break;
+
+ case EVENT_RELEASE:
+ input_event(data->input_dev, EV_KEY, BTN_TOUCH, 0);
+ input_sync(data->input_dev);
+ break;
+
+ case EVENT_FIFO_END:
+ break;
+ }
+ }
out:
- return IRQ_HANDLED;
+return IRQ_HANDLED;
+ }
+ else if (max11801_workmode == 1) {
+ if (status & (MAX11801_EDGE_INT)) {
+ status = read_register(data->client, GENERNAL_STATUS_REG);
+
+ /* X = panel setup*/
+ max11801_dcm_write_command(client, Panel_Setup_X);
+ /* X_measurement*/
+ max11801_dcm_write_command(client, X_measurement);
+ ret = i2c_smbus_read_i2c_block_data(client, FIFO_RD_X_MSB,
+ 1, temp_buf);
+ x_buf[0] = temp_buf[0];
+ if (ret < 1)
+ goto out2;
+ ret = i2c_smbus_read_i2c_block_data(client, FIFO_RD_X_LSB,
+ 1, temp_buf);
+ x_buf[1] = temp_buf[0];
+ if (ret < 1)
+ goto out2;
+ /* Y = panel setup*/
+ max11801_dcm_write_command(client, Panel_Setup_Y);
+ /* Y_measurement*/
+ max11801_dcm_write_command(client, Y_measurement);
+ ret = i2c_smbus_read_i2c_block_data(client, FIFO_RD_Y_MSB,
+ 1, temp_buf);
+ y_buf[0] = temp_buf[0];
+ if (ret < 1)
+ goto out2;
+ ret = i2c_smbus_read_i2c_block_data(client, FIFO_RD_Y_LSB,
+ 1, temp_buf);
+ y_buf[1] = temp_buf[0];
+ if (ret < 1)
+ goto out2;
+
+ if ((x_buf[1] & MEASURE_TAG_MASK) == MEASURE_X_TAG)
+ x = (x_buf[0] << XY_BUF_OFFSET) +
+ (x_buf[1] >> XY_BUF_OFFSET);
+ if ((y_buf[1] & MEASURE_TAG_MASK) == MEASURE_Y_TAG)
+ y = (y_buf[0] << XY_BUF_OFFSET) +
+ (y_buf[1] >> XY_BUF_OFFSET);
+
+ if ((x_buf[1] & EVENT_TAG_MASK) != (y_buf[1] & EVENT_TAG_MASK))
+ goto out2;
+
+ switch (x_buf[1] & EVENT_TAG_MASK) {
+ case EVENT_INIT:
+ /* fall through */
+ case EVENT_MIDDLE:
+ calibration_pointer(&x, &y);
+ input_report_abs(data->input_dev, ABS_X, x);
+ input_report_abs(data->input_dev, ABS_Y, y);
+ input_event(data->input_dev, EV_KEY, BTN_TOUCH, 1);
+ input_sync(data->input_dev);
+ break;
+
+ case EVENT_RELEASE:
+ input_event(data->input_dev, EV_KEY, BTN_TOUCH, 0);
+ input_sync(data->input_dev);
+ break;
+
+ case EVENT_FIFO_END:
+ break;
+ }
+ }
+ }
+out2:
+return IRQ_HANDLED;
}
static void __devinit max11801_ts_phy_init(struct max11801_data *data)
{
struct i2c_client *client = data->client;
-
- /* Average X,Y, take 16 samples, average eight media sample */
- max11801_write_reg(client, MESURE_AVER_CONF_REG, 0xff);
- /* X,Y panel setup time set to 20us */
- max11801_write_reg(client, PANEL_SETUPTIME_CONF_REG, 0x11);
- /* Rough pullup time (2uS), Fine pullup time (10us) */
- max11801_write_reg(client, TOUCH_DETECT_PULLUP_CONF_REG, 0x10);
- /* Auto mode init period = 5ms , scan period = 5ms*/
- max11801_write_reg(client, AUTO_MODE_TIME_CONF_REG, 0xaa);
- /* Aperture X,Y set to +- 4LSB */
- max11801_write_reg(client, APERTURE_CONF_REG, 0x33);
- /* Enable Power, enable Automode, enable Aperture, enable Average X,Y */
- max11801_write_reg(client, OP_MODE_CONF_REG, 0x36);
+ max11801_client = client;
+ if (max11801_workmode == 0) {
+ /* Average X,Y, take 16 samples, average eight media sample */
+ max11801_write_reg(client, MESURE_AVER_CONF_REG, 0xff);
+ /* X,Y panel setup time set to 20us */
+ max11801_write_reg(client, PANEL_SETUPTIME_CONF_REG, 0x11);
+ /* Rough pullup time (2uS), Fine pullup time (10us) */
+ max11801_write_reg(client, TOUCH_DETECT_PULLUP_CONF_REG, 0x10);
+ /* Auto mode init period = 5ms , scan period = 5ms*/
+ max11801_write_reg(client, AUTO_MODE_TIME_CONF_REG, 0xaa);
+ /* Aperture X,Y set to +- 4LSB */
+ max11801_write_reg(client, APERTURE_CONF_REG, 0x33);
+ /* Enable Power, enable Automode, enable Aperture, enable Average X,Y */
+ max11801_write_reg(client, OP_MODE_CONF_REG, 0x36);
+ }
+ if (max11801_workmode == 1) {
+ /* Average X,Y, take 16 samples, average eight media sample */
+ max11801_write_reg(client, MESURE_AVER_CONF_REG, 0xff);
+ /* X,Y panel setup time set to 20us */
+ max11801_write_reg(client, PANEL_SETUPTIME_CONF_REG, 0x11);
+ /* Rough pullup time (2uS), Fine pullup time (10us) */
+ max11801_write_reg(client, TOUCH_DETECT_PULLUP_CONF_REG, 0x10);
+ /* Auto mode init period = 5ms , scan period = 5ms*/
+ max11801_write_reg(client, AUTO_MODE_TIME_CONF_REG, 0xaa);
+ /* Aperture X,Y set to +- 4LSB */
+ max11801_write_reg(client, APERTURE_CONF_REG, 0x33);
+ /* Enable Power, enable Direct conversion mode , enable Aperture, enable Average X,Y */
+ max11801_write_reg(client, OP_MODE_CONF_REG, 0x16);
+ /* Delay initial=1ms, Sampling time 2us ,Averaging sample depth 2 samples, Resolution 12bit */
+ max11801_write_reg(client, AUX_MESURE_CONF_REG, 0x76);
+ /* Use edge interrupt with direct conversion mode */
+ max11801_write_reg(client, GENERNAL_CONF_REG, 0xf3);
+ }
}
static int __devinit max11801_ts_probe(struct i2c_client *client,
@@ -195,7 +354,7 @@ static int __devinit max11801_ts_probe(struct i2c_client *client,
error = -ENOMEM;
goto err_free_mem;
}
-
+ max11801_workmode = *(int *)(client->dev).platform_data;
data->client = client;
data->input_dev = input_dev;
diff --git a/drivers/media/video/mxc/capture/ipu_prp_enc.c b/drivers/media/video/mxc/capture/ipu_prp_enc.c
index 6710cba5d817..02515b35ba03 100644
--- a/drivers/media/video/mxc/capture/ipu_prp_enc.c
+++ b/drivers/media/video/mxc/capture/ipu_prp_enc.c
@@ -1,5 +1,5 @@
/*
- * Copyright 2004-2011 Freescale Semiconductor, Inc. All Rights Reserved.
+ * Copyright 2004-2012 Freescale Semiconductor, Inc. All Rights Reserved.
*/
/*
@@ -170,7 +170,8 @@ static int prp_enc_setup(cam_data *cam)
return err;
}
- ipu_csi_enable_mclk_if(cam->ipu, CSI_MCLK_ENC, cam->csi, true, true);
+ ipu_csi_enable_mclk_if(cam->ipu, CSI_MCLK_ENC,
+ cam->mclk_source, true, true);
grotation = cam->rotation;
if (cam->rotation >= IPU_ROTATE_90_RIGHT) {
diff --git a/drivers/media/video/mxc/capture/mxc_v4l2_capture.c b/drivers/media/video/mxc/capture/mxc_v4l2_capture.c
index 7713b3d80846..c2bda758a362 100644
--- a/drivers/media/video/mxc/capture/mxc_v4l2_capture.c
+++ b/drivers/media/video/mxc/capture/mxc_v4l2_capture.c
@@ -32,19 +32,19 @@
#include <linux/types.h>
#include <linux/fb.h>
#include <linux/dma-mapping.h>
+#include <linux/delay.h>
#include <linux/mxcfb.h>
#include <media/v4l2-chip-ident.h>
#include <media/v4l2-ioctl.h>
#include <media/v4l2-int-device.h>
+#include <linux/fsl_devices.h>
#include "mxc_v4l2_capture.h"
#include "ipu_prp_sw.h"
#define init_MUTEX(sem) sema_init(sem, 1)
#define MXC_SENSOR_NUM 2
-static int sensor_index;
-static int video_nr = -1, local_buf_num;
-static cam_data *g_cam;
+static int video_nr = -1;
/*! This data is used for the output to the display. */
#define MXC_V4L2_CAPTURE_NUM_OUTPUTS 3
@@ -404,7 +404,7 @@ static int mxc_streamon(cam_data *cam)
}
cam->ping_pong_csi = 0;
- local_buf_num = 0;
+ cam->local_buf_num = 0;
if (cam->enc_update_eba) {
frame =
list_entry(cam->ready_q.next, struct mxc_v4l_frame, queue);
@@ -1229,7 +1229,7 @@ static int mxc_v4l2_s_ctrl(cam_data *cam, struct v4l2_control *c)
case V4L2_CID_MXC_SWITCH_CAM:
if (cam->sensor != cam->all_sensors[c->value]) {
/* power down other cameraes before enable new one */
- for (i = 0; i < sensor_index; i++) {
+ for (i = 0; i < cam->sensor_index; i++) {
if (i != c->value) {
vidioc_int_dev_exit(cam->all_sensors[i]);
vidioc_int_s_power(cam->all_sensors[i], 0);
@@ -1684,12 +1684,13 @@ static int mxc_v4l_open(struct file *file)
cam_fmt.fmt.pix.pixelformat,
csi_param);
- ipu_csi_enable_mclk_if(cam->ipu, CSI_MCLK_I2C, cam->csi,
+ ipu_csi_enable_mclk_if(cam->ipu, CSI_MCLK_I2C, cam->mclk_source,
true, true);
vidioc_int_s_power(cam->sensor, 1);
+ msleep(1);
vidioc_int_init(cam->sensor);
vidioc_int_dev_init(cam->sensor);
-}
+ }
file->private_data = dev;
@@ -2519,7 +2520,7 @@ static void camera_callback(u32 mask, void *dev)
struct mxc_v4l_frame,
queue);
- if (done_frame->ipu_buf_num != local_buf_num)
+ if (done_frame->ipu_buf_num != cam->local_buf_num)
goto next;
/*
@@ -2556,7 +2557,7 @@ next:
list_del(cam->ready_q.next);
list_add_tail(&ready_frame->queue,
&cam->working_q);
- ready_frame->ipu_buf_num = local_buf_num;
+ ready_frame->ipu_buf_num = cam->local_buf_num;
}
} else {
if (cam->enc_update_eba)
@@ -2565,7 +2566,7 @@ next:
&cam->ping_pong_csi);
}
- local_buf_num = (local_buf_num == 0) ? 1 : 0;
+ cam->local_buf_num = (cam->local_buf_num == 0) ? 1 : 0;
return;
}
@@ -2579,11 +2580,13 @@ next:
*/
static void init_camera_struct(cam_data *cam, struct platform_device *pdev)
{
+ struct fsl_mxc_capture_platform_data *pdata = pdev->dev.platform_data;
+
pr_debug("In MVC: init_camera_struct\n");
/* Default everything to 0 */
memset(cam, 0, sizeof(cam_data));
- cam->ipu = ipu_get_soc(0);
+ cam->ipu = ipu_get_soc(pdata->ipu);
if (cam->ipu == NULL)
pr_err("ERROR: v4l2 capture: failed to get ipu\n");
else if (cam->ipu == ERR_PTR(-ENODEV))
@@ -2640,8 +2643,8 @@ static void init_camera_struct(cam_data *cam, struct platform_device *pdev)
cam->win.w.left = 0;
cam->win.w.top = 0;
- cam->csi = 0; /* Need to determine how to set this correctly with
- * multiple video input devices. */
+ cam->csi = pdata->csi;
+ cam->mclk_source = pdata->mclk_source;
cam->enc_callback = camera_callback;
init_waitqueue_head(&cam->power_queue);
@@ -2655,6 +2658,12 @@ static void init_camera_struct(cam_data *cam, struct platform_device *pdev)
pr_err("ERROR: v4l2 capture: Allocate dummy frame "
"failed.\n");
cam->dummy_frame.buffer.length = SZ_8M;
+
+ cam->self = kmalloc(sizeof(struct v4l2_int_device), GFP_KERNEL);
+ cam->self->module = THIS_MODULE;
+ sprintf(cam->self->name, "mxc_v4l2_cap%d", cam->csi);
+ cam->self->type = v4l2_int_type_master;
+ cam->self->u.master = &mxc_v4l2_master;
}
static ssize_t show_streaming(struct device *dev,
@@ -2662,9 +2671,9 @@ static ssize_t show_streaming(struct device *dev,
{
struct video_device *video_dev = container_of(dev,
struct video_device, dev);
- cam_data *g_cam = video_get_drvdata(video_dev);
+ cam_data *cam = video_get_drvdata(video_dev);
- if (g_cam->capture_on)
+ if (cam->capture_on)
return sprintf(buf, "stream on\n");
else
return sprintf(buf, "stream off\n");
@@ -2676,9 +2685,9 @@ static ssize_t show_overlay(struct device *dev,
{
struct video_device *video_dev = container_of(dev,
struct video_device, dev);
- cam_data *g_cam = video_get_drvdata(video_dev);
+ cam_data *cam = video_get_drvdata(video_dev);
- if (g_cam->overlay_on)
+ if (cam->overlay_on)
return sprintf(buf, "overlay on\n");
else
return sprintf(buf, "overlay off\n");
@@ -2695,38 +2704,38 @@ static DEVICE_ATTR(fsl_v4l2_overlay_property, S_IRUGO, show_overlay, NULL);
*/
static int mxc_v4l2_probe(struct platform_device *pdev)
{
- /* Create g_cam and initialize it. */
- g_cam = kmalloc(sizeof(cam_data), GFP_KERNEL);
- if (g_cam == NULL) {
+ /* Create cam and initialize it. */
+ cam_data *cam = kmalloc(sizeof(cam_data), GFP_KERNEL);
+ if (cam == NULL) {
pr_err("ERROR: v4l2 capture: failed to register camera\n");
return -1;
}
- init_camera_struct(g_cam, pdev);
+ init_camera_struct(cam, pdev);
pdev->dev.release = camera_platform_release;
/* Set up the v4l2 device and register it*/
- mxc_v4l2_int_device.priv = g_cam;
+ cam->self->priv = cam;
/* This function contains a bug that won't let this be rmmod'd. */
- v4l2_int_device_register(&mxc_v4l2_int_device);
+ v4l2_int_device_register(cam->self);
/* register v4l video device */
- if (video_register_device(g_cam->video_dev, VFL_TYPE_GRABBER, video_nr)
+ if (video_register_device(cam->video_dev, VFL_TYPE_GRABBER, video_nr)
== -1) {
- kfree(g_cam);
- g_cam = NULL;
+ kfree(cam);
+ cam = NULL;
pr_err("ERROR: v4l2 capture: video_register_device failed\n");
return -1;
}
pr_debug(" Video device registered: %s #%d\n",
- g_cam->video_dev->name, g_cam->video_dev->minor);
+ cam->video_dev->name, cam->video_dev->minor);
- if (device_create_file(&g_cam->video_dev->dev,
+ if (device_create_file(&cam->video_dev->dev,
&dev_attr_fsl_v4l2_capture_property))
dev_err(&pdev->dev, "Error on creating sysfs file"
" for capture\n");
- if (device_create_file(&g_cam->video_dev->dev,
+ if (device_create_file(&cam->video_dev->dev,
&dev_attr_fsl_v4l2_overlay_property))
dev_err(&pdev->dev, "Error on creating sysfs file"
" for overlay\n");
@@ -2744,31 +2753,31 @@ static int mxc_v4l2_probe(struct platform_device *pdev)
*/
static int mxc_v4l2_remove(struct platform_device *pdev)
{
+ cam_data *cam = (cam_data *)platform_get_drvdata(pdev);
- if (g_cam->dummy_frame.vaddress != 0) {
- dma_free_coherent(0, g_cam->dummy_frame.buffer.length,
- g_cam->dummy_frame.vaddress,
- g_cam->dummy_frame.paddress);
- g_cam->dummy_frame.vaddress = 0;
+ if (cam->dummy_frame.vaddress != 0) {
+ dma_free_coherent(0, cam->dummy_frame.buffer.length,
+ cam->dummy_frame.vaddress,
+ cam->dummy_frame.paddress);
+ cam->dummy_frame.vaddress = 0;
}
- if (g_cam->open_count) {
+ if (cam->open_count) {
pr_err("ERROR: v4l2 capture:camera open "
"-- setting ops to NULL\n");
return -EBUSY;
} else {
- device_remove_file(&g_cam->video_dev->dev,
+ device_remove_file(&cam->video_dev->dev,
&dev_attr_fsl_v4l2_capture_property);
- device_remove_file(&g_cam->video_dev->dev,
+ device_remove_file(&cam->video_dev->dev,
&dev_attr_fsl_v4l2_overlay_property);
pr_info("V4L2 freeing image input device\n");
v4l2_int_device_unregister(&mxc_v4l2_int_device);
- video_unregister_device(g_cam->video_dev);
+ video_unregister_device(cam->video_dev);
- mxc_free_frame_buf(g_cam);
- kfree(g_cam);
- g_cam = NULL;
+ mxc_free_frame_buf(cam);
+ kfree(cam);
}
pr_info("V4L2 unregistering video\n");
@@ -2865,6 +2874,7 @@ static int mxc_v4l2_master_attach(struct v4l2_int_device *slave)
cam_data *cam = slave->u.slave->master->priv;
struct v4l2_format cam_fmt;
int i;
+ struct sensor_data *sdata = slave->priv;
pr_debug("In MVC: mxc_v4l2_master_attach\n");
pr_debug(" slave.name = %s\n", slave->name);
@@ -2875,17 +2885,22 @@ static int mxc_v4l2_master_attach(struct v4l2_int_device *slave)
return -1;
}
+ if (sdata->csi != cam->csi) {
+ pr_debug("%s: csi doesn't match\n", __func__);
+ return -1;
+ }
+
cam->sensor = slave;
- if (sensor_index < MXC_SENSOR_NUM) {
- cam->all_sensors[sensor_index] = slave;
- sensor_index++;
+ if (cam->sensor_index < MXC_SENSOR_NUM) {
+ cam->all_sensors[cam->sensor_index] = slave;
+ cam->sensor_index++;
} else {
pr_err("ERROR: v4l2 capture: slave number exceeds the maximum.\n");
return -1;
}
- for (i = 0; i < sensor_index; i++) {
+ for (i = 0; i < cam->sensor_index; i++) {
vidioc_int_dev_exit(cam->all_sensors[i]);
vidioc_int_s_power(cam->all_sensors[i], 0);
}
@@ -2937,23 +2952,23 @@ static void mxc_v4l2_master_detach(struct v4l2_int_device *slave)
pr_debug("In MVC:mxc_v4l2_master_detach\n");
- if (sensor_index > 1) {
- for (i = 0; i < sensor_index; i++) {
+ if (cam->sensor_index > 1) {
+ for (i = 0; i < cam->sensor_index; i++) {
if (cam->all_sensors[i] != slave)
continue;
/* Move all the sensors behind this
* sensor one step forward
*/
- for (; i < sensor_index - 1; i++)
+ for (; i < cam->sensor_index - 1; i++)
cam->all_sensors[i] = cam->all_sensors[i+1];
break;
}
/* Point current sensor to the last one */
- cam->sensor = cam->all_sensors[sensor_index - 2];
+ cam->sensor = cam->all_sensors[cam->sensor_index - 2];
} else
cam->sensor = NULL;
- sensor_index--;
+ cam->sensor_index--;
vidioc_int_dev_exit(slave);
}
diff --git a/drivers/media/video/mxc/capture/mxc_v4l2_capture.h b/drivers/media/video/mxc/capture/mxc_v4l2_capture.h
index 5b7b0bfe7706..dcb90a9f4ce5 100644
--- a/drivers/media/video/mxc/capture/mxc_v4l2_capture.h
+++ b/drivers/media/video/mxc/capture/mxc_v4l2_capture.h
@@ -34,6 +34,8 @@
#include <mach/ipu-v3.h>
#include <media/v4l2-dev.h>
+#include <media/v4l2-int-device.h>
+
#define FRAME_NUM 10
@@ -190,12 +192,17 @@ typedef struct _cam_data {
bool low_power;
wait_queue_head_t power_queue;
unsigned int csi;
+ u8 mclk_source;
int current_input;
+ int local_buf_num;
+
/* camera sensor interface */
struct camera_sensor *cam_sensor; /* old version */
struct v4l2_int_device *all_sensors[2];
struct v4l2_int_device *sensor;
+ struct v4l2_int_device *self;
+ int sensor_index;
void *ipu;
} cam_data;
@@ -218,6 +225,7 @@ struct sensor_data {
int ae_mode;
u32 mclk;
+ u8 mclk_source;
int csi;
void (*io_init)(void);
diff --git a/drivers/media/video/mxc/capture/ov3640.c b/drivers/media/video/mxc/capture/ov3640.c
index b1d1abb884d9..69a3ad43b22c 100644
--- a/drivers/media/video/mxc/capture/ov3640.c
+++ b/drivers/media/video/mxc/capture/ov3640.c
@@ -1354,7 +1354,7 @@ static int ioctl_dev_init(struct v4l2_int_device *s)
ov3640_data.mclk = tgt_xclk;
pr_debug(" Setting mclk to %d MHz\n", tgt_xclk / 1000000);
- set_mclk_rate(&ov3640_data.mclk, ov3640_data.csi);
+ set_mclk_rate(&ov3640_data.mclk, ov3640_data.mclk_source);
/* Default camera frame rate is set in probe */
tgt_fps = sensor->streamcap.timeperframe.denominator /
@@ -1442,6 +1442,7 @@ static int ov3640_probe(struct i2c_client *client,
memset(&ov3640_data, 0, sizeof(ov3640_data));
ov3640_data.mclk = 24000000; /* 6 - 54 MHz, typical 24MHz */
ov3640_data.mclk = plat_data->mclk;
+ ov3640_data.mclk_source = plat_data->mclk_source;
ov3640_data.csi = plat_data->csi;
ov3640_data.io_init = plat_data->io_init;
diff --git a/drivers/media/video/mxc/capture/ov5640.c b/drivers/media/video/mxc/capture/ov5640.c
index f9087499b5f1..c2dfe314c65d 100644
--- a/drivers/media/video/mxc/capture/ov5640.c
+++ b/drivers/media/video/mxc/capture/ov5640.c
@@ -1309,7 +1309,7 @@ static int ioctl_dev_init(struct v4l2_int_device *s)
ov5640_data.mclk = tgt_xclk;
pr_debug(" Setting mclk to %d MHz\n", tgt_xclk / 1000000);
- set_mclk_rate(&ov5640_data.mclk, ov5640_data.csi);
+ set_mclk_rate(&ov5640_data.mclk, ov5640_data.mclk_source);
/* Default camera frame rate is set in probe */
tgt_fps = sensor->streamcap.timeperframe.denominator /
@@ -1397,6 +1397,7 @@ static int ov5640_probe(struct i2c_client *client,
memset(&ov5640_data, 0, sizeof(ov5640_data));
ov5640_data.mclk = 24000000; /* 6 - 54 MHz, typical 24MHz */
ov5640_data.mclk = plat_data->mclk;
+ ov5640_data.mclk_source = plat_data->mclk_source;
ov5640_data.csi = plat_data->csi;
ov5640_data.io_init = plat_data->io_init;
diff --git a/drivers/media/video/mxc/capture/ov5640_mipi.c b/drivers/media/video/mxc/capture/ov5640_mipi.c
index 2d9d83b7b139..9ffca952cc29 100644
--- a/drivers/media/video/mxc/capture/ov5640_mipi.c
+++ b/drivers/media/video/mxc/capture/ov5640_mipi.c
@@ -195,7 +195,7 @@ static struct reg_value ov5640_setting_30fps_VGA_640_480[] = {
};
static struct reg_value ov5640_setting_15fps_VGA_640_480[] = {
- {0x3035, 0x24, 0, 0}, {0x3036, 0x38, 0, 0}, {0x3c07, 0x08, 0, 0},
+ {0x3035, 0x22, 0, 0}, {0x3036, 0x38, 0, 0}, {0x3c07, 0x08, 0, 0},
{0x3c09, 0x1c, 0, 0}, {0x3c0a, 0x9c, 0, 0}, {0x3c0b, 0x40, 0, 0},
{0x3820, 0x41, 0, 0}, {0x3821, 0x07, 0, 0}, {0x3814, 0x31, 0, 0},
{0x3815, 0x31, 0, 0}, {0x3800, 0x00, 0, 0}, {0x3801, 0x00, 0, 0},
@@ -237,7 +237,7 @@ static struct reg_value ov5640_setting_30fps_QVGA_320_240[] = {
};
static struct reg_value ov5640_setting_15fps_QVGA_320_240[] = {
- {0x3035, 0x24, 0, 0}, {0x3036, 0x38, 0, 0}, {0x3c07, 0x08, 0, 0},
+ {0x3035, 0x22, 0, 0}, {0x3036, 0x38, 0, 0}, {0x3c07, 0x08, 0, 0},
{0x3c09, 0x1c, 0, 0}, {0x3c0a, 0x9c, 0, 0}, {0x3c0b, 0x40, 0, 0},
{0x3820, 0x41, 0, 0}, {0x3821, 0x07, 0, 0}, {0x3814, 0x31, 0, 0},
{0x3815, 0x31, 0, 0}, {0x3800, 0x00, 0, 0}, {0x3801, 0x00, 0, 0},
@@ -909,6 +909,15 @@ bool binning_on(void)
return false;
}
+static void ov5640_set_virtual_channel(int channel)
+{
+ u8 channel_id;
+
+ ov5640_read_reg(0x4814, &channel_id);
+ channel_id &= ~(3 << 6);
+ ov5640_write_reg(0x4814, channel_id | (channel << 6));
+}
+
static int ov5640_init_mode(enum ov5640_frame_rate frame_rate,
enum ov5640_mode mode)
{
@@ -1164,6 +1173,7 @@ static int ov5640_init_mode(enum ov5640_frame_rate frame_rate,
OV5640_set_AE_target(AE_Target);
OV5640_get_light_frequency();
OV5640_set_bandingfilter();
+ ov5640_set_virtual_channel(ov5640_data.csi);
if (mipi_csi2_info) {
unsigned int i;
@@ -1604,7 +1614,7 @@ static int ioctl_dev_init(struct v4l2_int_device *s)
ov5640_data.mclk = tgt_xclk;
pr_debug(" Setting mclk to %d MHz\n", tgt_xclk / 1000000);
- set_mclk_rate(&ov5640_data.mclk, ov5640_data.csi);
+ set_mclk_rate(&ov5640_data.mclk, ov5640_data.mclk_source);
/* Default camera frame rate is set in probe */
tgt_fps = sensor->streamcap.timeperframe.denominator /
@@ -1712,6 +1722,7 @@ static int ov5640_probe(struct i2c_client *client,
memset(&ov5640_data, 0, sizeof(ov5640_data));
ov5640_data.mclk = 24000000; /* 6 - 54 MHz, typical 24MHz */
ov5640_data.mclk = plat_data->mclk;
+ ov5640_data.mclk_source = plat_data->mclk_source;
ov5640_data.csi = plat_data->csi;
ov5640_data.io_init = plat_data->io_init;
diff --git a/drivers/media/video/mxc/capture/ov5642.c b/drivers/media/video/mxc/capture/ov5642.c
index f8f8a6c12ab4..58ee92eef678 100644
--- a/drivers/media/video/mxc/capture/ov5642.c
+++ b/drivers/media/video/mxc/capture/ov5642.c
@@ -279,7 +279,7 @@ static struct reg_value ov5642_initial_setting[] = {
{0x5007, 0x00, 0, 0}, {0x5009, 0x00, 0, 0}, {0x5011, 0x00, 0, 0},
{0x5013, 0x00, 0, 0}, {0x519e, 0x00, 0, 0}, {0x5086, 0x00, 0, 0},
{0x5087, 0x00, 0, 0}, {0x5088, 0x00, 0, 0}, {0x5089, 0x00, 0, 0},
- {0x302b, 0x00, 0, 0},
+ {0x302b, 0x00, 0, 300},
};
static struct reg_value ov5642_setting_15fps_QCIF_176_144[] = {
@@ -3255,7 +3255,7 @@ static int ioctl_dev_init(struct v4l2_int_device *s)
ov5642_data.mclk = tgt_xclk;
pr_debug(" Setting mclk to %d MHz\n", tgt_xclk / 1000000);
- set_mclk_rate(&ov5642_data.mclk, ov5642_data.csi);
+ set_mclk_rate(&ov5642_data.mclk, ov5642_data.mclk_source);
/* Default camera frame rate is set in probe */
tgt_fps = sensor->streamcap.timeperframe.denominator /
@@ -3368,6 +3368,7 @@ static int ov5642_probe(struct i2c_client *client,
memset(&ov5642_data, 0, sizeof(ov5642_data));
ov5642_data.mclk = 24000000; /* 6 - 54 MHz, typical 24MHz */
ov5642_data.mclk = plat_data->mclk;
+ ov5642_data.mclk_source = plat_data->mclk_source;
ov5642_data.csi = plat_data->csi;
ov5642_data.io_init = plat_data->io_init;
diff --git a/drivers/media/video/mxc/capture/ov8820_mipi.c b/drivers/media/video/mxc/capture/ov8820_mipi.c
index 4c2a49d8bef5..6fddbb03fc0b 100644
--- a/drivers/media/video/mxc/capture/ov8820_mipi.c
+++ b/drivers/media/video/mxc/capture/ov8820_mipi.c
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2011 Freescale Semiconductor, Inc. All Rights Reserved.
+ * Copyright (C) 2011-2012 Freescale Semiconductor, Inc. All Rights Reserved.
*/
/*
@@ -92,6 +92,7 @@ struct sensor {
int ae_mode;
u32 mclk;
+ u8 mclk_source;
int csi;
} ov8820_data;
@@ -762,7 +763,7 @@ static int ioctl_dev_init(struct v4l2_int_device *s)
ov8820_data.mclk = tgt_xclk;
pr_debug(" Setting mclk to %d MHz\n", tgt_xclk / 1000000);
- set_mclk_rate(&ov8820_data.mclk, ov8820_data.csi);
+ set_mclk_rate(&ov8820_data.mclk, ov8820_data.mclk_source);
/* Default camera frame rate is set in probe */
tgt_fps = sensor->streamcap.timeperframe.denominator /
@@ -871,6 +872,7 @@ static int ov8820_probe(struct i2c_client *client,
memset(&ov8820_data, 0, sizeof(ov8820_data));
ov8820_data.mclk = 24000000; /* 6 - 54 MHz, typical 24MHz */
ov8820_data.mclk = plat_data->mclk;
+ ov8820_data.mclk_source = plat_data->mclk_source;
ov8820_data.csi = plat_data->csi;
ov8820_data.i2c_client = client;
diff --git a/drivers/media/video/mxc/output/mxc_vout.c b/drivers/media/video/mxc/output/mxc_vout.c
index aebe57fda0c5..e3e9483ac70c 100644
--- a/drivers/media/video/mxc/output/mxc_vout.c
+++ b/drivers/media/video/mxc/output/mxc_vout.c
@@ -1675,16 +1675,18 @@ static void release_disp_output(struct mxc_vout_output *vout)
set_window_position(vout, &pos);
if (get_ipu_channel(fbi) == MEM_BG_SYNC) {
- console_lock();
- fbi->fix.smem_start = vout->fb_smem_start;
- fbi->fix.smem_len = vout->fb_smem_len;
- vout->fb_var.activate |= FB_ACTIVATE_FORCE;
- fbi->flags |= FBINFO_MISC_USEREVENT;
- ret = fb_set_var(fbi, &vout->fb_var);
- fbi->flags &= ~FBINFO_MISC_USEREVENT;
- console_unlock();
- if (ret < 0)
- v4l2_err(vout->vfd->v4l2_dev, "ERR: fb_set_var.\n");
+ if ((vout->fb_smem_len != 0) && (vout->fb_smem_start != 0)) {
+ console_lock();
+ fbi->fix.smem_start = vout->fb_smem_start;
+ fbi->fix.smem_len = vout->fb_smem_len;
+ vout->fb_var.activate |= FB_ACTIVATE_FORCE;
+ fbi->flags |= FBINFO_MISC_USEREVENT;
+ ret = fb_set_var(fbi, &vout->fb_var);
+ fbi->flags &= ~FBINFO_MISC_USEREVENT;
+ console_unlock();
+ if (ret < 0)
+ v4l2_err(vout->vfd->v4l2_dev, "ERR: fb_set_var.\n");
+ }
console_lock();
fbi->flags |= FBINFO_MISC_USEREVENT;
fb_blank(fbi, FB_BLANK_UNBLANK);
diff --git a/drivers/mfd/pfuze-core.c b/drivers/mfd/pfuze-core.c
index 96b62924adec..9c7a988cf89b 100644
--- a/drivers/mfd/pfuze-core.c
+++ b/drivers/mfd/pfuze-core.c
@@ -501,9 +501,10 @@ static int pfuze_probe(struct i2c_client *client,
if (ret)
goto err_mask;
}
- ret = request_threaded_irq(client->irq, NULL, pfuze_irq_thread,
- IRQF_ONESHOT | IRQF_TRIGGER_LOW, "pfuze",
- mc_pfuze);
+ if (client->irq)
+ ret = request_threaded_irq(client->irq, NULL, pfuze_irq_thread,
+ IRQF_ONESHOT | IRQF_TRIGGER_LOW, "pfuze",
+ mc_pfuze);
if (ret) {
err_mask:
err_revision:
diff --git a/drivers/mmc/host/sdhci-esdhc-imx.c b/drivers/mmc/host/sdhci-esdhc-imx.c
index 17773740d014..d20fc54eebf0 100644
--- a/drivers/mmc/host/sdhci-esdhc-imx.c
+++ b/drivers/mmc/host/sdhci-esdhc-imx.c
@@ -108,6 +108,8 @@ static u32 esdhc_readl_le(struct sdhci_host *host, int reg)
{
struct sdhci_pltfm_host *pltfm_host = sdhci_priv(host);
struct pltfm_imx_data *imx_data = pltfm_host->priv;
+ struct esdhc_platform_data *boarddata
+ = host->mmc->parent->platform_data;
/* fake CARD_PRESENT flag on mx25/35 */
u32 val = readl(host->ioaddr + reg);
@@ -127,18 +129,18 @@ static u32 esdhc_readl_le(struct sdhci_host *host, int reg)
val |= (fsl_prss & 0x00800000) << 1;
}
- if (unlikely((reg == SDHCI_PRESENT_STATE)
- && (imx_data->flags & ESDHC_FLAG_GPIO_FOR_CD_WP))) {
- struct esdhc_platform_data *boarddata =
- host->mmc->parent->platform_data;
-
- if (boarddata && gpio_is_valid(boarddata->cd_gpio)
- && gpio_get_value(boarddata->cd_gpio))
- /* no card, if a valid gpio says so... */
- val &= ~SDHCI_CARD_PRESENT;
- else
- /* ... in all other cases assume card is present */
+ if (unlikely(reg == SDHCI_PRESENT_STATE)) {
+ if (boarddata && boarddata->always_present)
val |= SDHCI_CARD_PRESENT;
+ else if (imx_data->flags & ESDHC_FLAG_GPIO_FOR_CD_WP) {
+ if (boarddata && gpio_is_valid(boarddata->cd_gpio)
+ && gpio_get_value(boarddata->cd_gpio))
+ /* no card, if a valid gpio says so */
+ val &= ~SDHCI_CARD_PRESENT;
+ else
+ /* in all other cases assume card is present */
+ val |= SDHCI_CARD_PRESENT;
+ }
}
if (reg == SDHCI_INT_STATUS && cpu_is_mx6()
@@ -756,7 +758,7 @@ static int esdhc_pltfm_init(struct sdhci_host *host, struct sdhci_pltfm_data *pd
if (boarddata) {
/* Device is always present, e.x, populated emmc device */
if (boarddata->always_present) {
- imx_data->flags |= ESDHC_FLAG_GPIO_FOR_CD_WP;
+ /* remove BROKEN_CD to disable card polling */
host->quirks &= ~SDHCI_QUIRK_BROKEN_CARD_DETECTION;
if (host->clk_mgr_en)
clk_disable(pltfm_host->clk);
diff --git a/drivers/mmc/host/sdhci.c b/drivers/mmc/host/sdhci.c
index 1aedbe436c25..2f200b8aa49b 100755
--- a/drivers/mmc/host/sdhci.c
+++ b/drivers/mmc/host/sdhci.c
@@ -35,6 +35,11 @@
#define DBG(f, x...) \
pr_debug(DRIVER_NAME " [%s()]: " f, __func__,## x)
+#if defined(CONFIG_LEDS_CLASS) || (defined(CONFIG_LEDS_CLASS_MODULE) && \
+ defined(CONFIG_MMC_SDHCI_MODULE))
+/* FIXME: temp workaround for calling clk_enable in an interrupt context */
+#define SDHCI_USE_LEDS_CLASS_BROKEN
+#endif
#define MAX_TUNING_LOOP 40
diff --git a/drivers/mtd/nand/gpmi-nand/gpmi-lib.c b/drivers/mtd/nand/gpmi-nand/gpmi-lib.c
index 1c273e4eb2b4..75c2e618b28a 100644
--- a/drivers/mtd/nand/gpmi-nand/gpmi-lib.c
+++ b/drivers/mtd/nand/gpmi-nand/gpmi-lib.c
@@ -152,7 +152,7 @@ static int enable_ddr_onfi(struct gpmi_nand_data *this)
struct mtd_info *mtd = &this->mtd;
int saved_chip_number = 0;
uint8_t device_feature[FEATURE_SIZE];
- int mode = 0;/* there is 5 mode available, default is 0 */
+ int mode = 5;/* there is 5 mode available, default is 0 */
saved_chip_number = this->current_chip;
nand->select_chip(mtd, 0);
@@ -178,14 +178,16 @@ static int enable_ddr_onfi(struct gpmi_nand_data *this)
/* [3] about the clock, pay attention! */
nand->select_chip(mtd, saved_chip_number);
{
- struct clk *pll1;
- pll1 = clk_get(NULL, "pll1_main_clk");
- if (IS_ERR(pll1)) {
- printk(KERN_INFO "No PLL1 clock\n");
+ struct clk *enfc_clk;
+ enfc_clk = clk_get(NULL, "enfc_clk");
+ if (IS_ERR(enfc_clk)) {
+ printk(KERN_INFO "No enfc_clk clock\n");
return -EINVAL;
}
- clk_set_parent(resources->clock, pll1);
- clk_set_rate(resources->clock, 20000000);
+ clk_set_parent(resources->clock, enfc_clk);
+ clk_set_rate(enfc_clk, \
+ enfc_clk->round_rate(enfc_clk, 100000000));
+ clk_set_rate(resources->clock, 100000000);
}
nand->select_chip(mtd, 0);
@@ -258,18 +260,20 @@ static int enable_ddr_toggle(struct gpmi_nand_data *this)
/* [3] about the clock, pay attention! */
nand->select_chip(mtd, saved_chip_number);
{
- struct clk *pll1;
+ struct clk *enfc_clk;
unsigned long rate;
- pll1 = clk_get(NULL, "pll1_main_clk");
- if (IS_ERR(pll1)) {
- printk(KERN_INFO "No PLL1 clock\n");
+ enfc_clk = clk_get(NULL, "enfc_clk");
+ if (IS_ERR(enfc_clk)) {
+ printk(KERN_INFO "No enfc_clk clock\n");
return -EINVAL;
}
/* toggle nand : 133/66 MHz */
rate = 33000000;
- clk_set_parent(resources->clock, pll1);
+ clk_set_parent(resources->clock, enfc_clk);
+ clk_set_rate(enfc_clk, \
+ enfc_clk->round_rate(enfc_clk, rate));
clk_set_rate(resources->clock, rate);
}
nand->select_chip(mtd, 0);
diff --git a/drivers/mxc/gpu-viv/arch/GC350/hal/kernel/gc_hal_kernel_hardware_vg.c b/drivers/mxc/gpu-viv/arch/GC350/hal/kernel/gc_hal_kernel_hardware_vg.c
index 25a893cd614c..c24439d1af1e 100644
--- a/drivers/mxc/gpu-viv/arch/GC350/hal/kernel/gc_hal_kernel_hardware_vg.c
+++ b/drivers/mxc/gpu-viv/arch/GC350/hal/kernel/gc_hal_kernel_hardware_vg.c
@@ -1476,7 +1476,7 @@ static gceSTATUS _CommandStall(
gcmkERR_BREAK(gckOS_WaitSignal(
command->os,
command->powerStallSignal,
- gcvINFINITE));
+ gcdGPU_TIMEOUT));
}
@@ -1750,7 +1750,7 @@ gckVGHARDWARE_SetPowerManagementState(
if (flag & (gcvPOWER_FLAG_INITIALIZE | gcvPOWER_FLAG_CLOCK_ON))
{
/* Turn on the power. */
- gcmkONERROR(gckOS_SetGPUPower(os, gcvCORE_VG , gcvTRUE, gcvTRUE));
+ gcmkONERROR(gckOS_SetGPUPower(os, gcvCORE_VG, gcvTRUE, gcvTRUE));
/* Mark clock and power as enabled. */
Hardware->clockState = gcvTRUE;
diff --git a/drivers/mxc/gpu-viv/arch/XAQ2/hal/kernel/gc_hal_kernel_context.c b/drivers/mxc/gpu-viv/arch/XAQ2/hal/kernel/gc_hal_kernel_context.c
index 6ddbcee2bda4..a186bbe3386e 100644
--- a/drivers/mxc/gpu-viv/arch/XAQ2/hal/kernel/gc_hal_kernel_context.c
+++ b/drivers/mxc/gpu-viv/arch/XAQ2/hal/kernel/gc_hal_kernel_context.c
@@ -545,7 +545,8 @@ _InitializeContextBuffer(
index += _State(Context, index, 0x00A38 >> 2, 0x00000000, 1, gcvFALSE, gcvFALSE);
index += _State(Context, index, 0x00A3C >> 2, 0x00000000, 1, gcvFALSE, gcvFALSE);
index += _State(Context, index, 0x00A80 >> 2, 0x00000000, 1, gcvFALSE, gcvFALSE);
- index += _State(Context, index, 0x00A84 >> 2, 0x00000000, 1, gcvFALSE, gcvFALSE);
+ index += _State(Context, index, 0x00A84 >> 2, 0x00000000, 1, gcvTRUE, gcvFALSE);
+ index += _State(Context, index, 0x00A8C >> 2, 0x00000000, 1, gcvFALSE, gcvFALSE);
/* Setup states. */
index += _State(Context, index, 0x00C00 >> 2, 0x00000000, 1, gcvTRUE, gcvFALSE);
diff --git a/drivers/mxc/gpu-viv/arch/XAQ2/hal/kernel/gc_hal_kernel_hardware.c b/drivers/mxc/gpu-viv/arch/XAQ2/hal/kernel/gc_hal_kernel_hardware.c
index 99b699d3a6c8..1578ff2b09c5 100644
--- a/drivers/mxc/gpu-viv/arch/XAQ2/hal/kernel/gc_hal_kernel_hardware.c
+++ b/drivers/mxc/gpu-viv/arch/XAQ2/hal/kernel/gc_hal_kernel_hardware.c
@@ -217,16 +217,23 @@ _IdentifyHardware(
}
}
+ /* If new HZ is available, disable other early z modes. */
+ if (((((gctUINT32) (Identity->chipMinorFeatures3)) >> (0 ? 26:26) & ((gctUINT32) ((((1 ? 26:26) - (0 ? 26:26) + 1) == 32) ? ~0 : (~(~0 << ((1 ? 26:26) - (0 ? 26:26) + 1)))))) == (0x1 & ((gctUINT32) ((((1 ? 26:26) - (0 ? 26:26) + 1) == 32) ? ~0 : (~(~0 << ((1 ? 26:26) - (0 ? 26:26) + 1)))))))
+ || ((((gctUINT32) (Identity->chipMinorFeatures3)) >> (0 ? 8:8) & ((gctUINT32) ((((1 ? 8:8) - (0 ? 8:8) + 1) == 32) ? ~0 : (~(~0 << ((1 ? 8:8) - (0 ? 8:8) + 1)))))) == (0x1 & ((gctUINT32) ((((1 ? 8:8) - (0 ? 8:8) + 1) == 32) ? ~0 : (~(~0 << ((1 ? 8:8) - (0 ? 8:8) + 1))))))))
+ {
+ /* Disable EZ. */
+ Identity->chipFeatures
+ = ((((gctUINT32) (Identity->chipFeatures)) & ~(((gctUINT32) (((gctUINT32) ((((1 ? 16:16) - (0 ? 16:16) + 1) == 32) ? ~0 : (~(~0 << ((1 ? 16:16) - (0 ? 16:16) + 1))))))) << (0 ? 16:16))) | (((gctUINT32) (0x1 & ((gctUINT32) ((((1 ? 16:16) - (0 ? 16:16) + 1) == 32) ? ~0 : (~(~0 << ((1 ? 16:16) - (0 ? 16:16) + 1))))))) << (0 ? 16:16)));
+ }
+
/* Disable HZ when EZ is present for older chips. */
- if (!((((gctUINT32) (Identity->chipMinorFeatures3)) >> (0 ? 8:8) & ((gctUINT32) ((((1 ? 8:8) - (0 ? 8:8) + 1) == 32) ? ~0 : (~(~0 << ((1 ? 8:8) - (0 ? 8:8) + 1)))))) == (0x1 & ((gctUINT32) ((((1 ? 8:8) - (0 ? 8:8) + 1) == 32) ? ~0 : (~(~0 << ((1 ? 8:8) - (0 ? 8:8) + 1)))))))
- &&
- !((((gctUINT32) (Identity->chipFeatures)) >> (0 ? 16:16) & ((gctUINT32) ((((1 ? 16:16) - (0 ? 16:16) + 1) == 32) ? ~0 : (~(~0 << ((1 ? 16:16) - (0 ? 16:16) + 1)))))) == (0x1 & ((gctUINT32) ((((1 ? 16:16) - (0 ? 16:16) + 1) == 32) ? ~0 : (~(~0 << ((1 ? 16:16) - (0 ? 16:16) + 1)))))))
- )
+ else if (!((((gctUINT32) (Identity->chipFeatures)) >> (0 ? 16:16) & ((gctUINT32) ((((1 ? 16:16) - (0 ? 16:16) + 1) == 32) ? ~0 : (~(~0 << ((1 ? 16:16) - (0 ? 16:16) + 1)))))) == (0x1 & ((gctUINT32) ((((1 ? 16:16) - (0 ? 16:16) + 1) == 32) ? ~0 : (~(~0 << ((1 ? 16:16) - (0 ? 16:16) + 1))))))))
{
/* Disable HIERARCHICAL_Z. */
Identity->chipMinorFeatures
= ((((gctUINT32) (Identity->chipMinorFeatures)) & ~(((gctUINT32) (((gctUINT32) ((((1 ? 27:27) - (0 ? 27:27) + 1) == 32) ? ~0 : (~(~0 << ((1 ? 27:27) - (0 ? 27:27) + 1))))))) << (0 ? 27:27))) | (((gctUINT32) (0x0 & ((gctUINT32) ((((1 ? 27:27) - (0 ? 27:27) + 1) == 32) ? ~0 : (~(~0 << ((1 ? 27:27) - (0 ? 27:27) + 1))))))) << (0 ? 27:27)));
}
+
/* Disable rectangle primitive when chip is gc880_5_1_0_rc6*/
if ((Identity->chipModel == gcv880) && (Identity->chipRevision == 0x5106))
{
@@ -234,6 +241,7 @@ _IdentifyHardware(
Identity->chipMinorFeatures2
= ((((gctUINT32) (Identity->chipMinorFeatures2)) & ~(((gctUINT32) (((gctUINT32) ((((1 ? 5:5) - (0 ? 5:5) + 1) == 32) ? ~0 : (~(~0 << ((1 ? 5:5) - (0 ? 5:5) + 1))))))) << (0 ? 5:5))) | (((gctUINT32) (0x0 & ((gctUINT32) ((((1 ? 5:5) - (0 ? 5:5) + 1) == 32) ? ~0 : (~(~0 << ((1 ? 5:5) - (0 ? 5:5) + 1))))))) << (0 ? 5:5)));
}
+
gcmkTRACE_ZONE(gcvLEVEL_INFO, gcvZONE_HARDWARE,
"Identity: chipFeatures=0x%08X",
Identity->chipFeatures);
@@ -494,7 +502,10 @@ gckHARDWARE_Construct(
/* Enable the GPU. */
gcmkONERROR(gckOS_SetGPUPower(Os, Core, gcvTRUE, gcvTRUE));
- gcmkONERROR(gckOS_WriteRegisterEx(Os, Core, 0x00000, 0));
+ gcmkONERROR(gckOS_WriteRegisterEx(Os,
+ Core,
+ 0x00000,
+ 0x00000900));
/* Allocate the gckHARDWARE object. */
gcmkONERROR(gckOS_Allocate(Os,
@@ -609,7 +620,7 @@ OnError:
if (hardware != gcvNULL)
{
/* Turn off the power. */
- gcmkVERIFY_OK(gckOS_SetGPUPower(Os, hardware->core, gcvFALSE, gcvFALSE));
+ gcmkVERIFY_OK(gckOS_SetGPUPower(Os, Core, gcvFALSE, gcvFALSE));
if (hardware->globalSemaphore != gcvNULL)
{
diff --git a/drivers/mxc/gpu-viv/hal/kernel/gc_hal_kernel.c b/drivers/mxc/gpu-viv/hal/kernel/gc_hal_kernel.c
index 187b9cc6d810..773a262562c4 100644
--- a/drivers/mxc/gpu-viv/hal/kernel/gc_hal_kernel.c
+++ b/drivers/mxc/gpu-viv/hal/kernel/gc_hal_kernel.c
@@ -289,7 +289,10 @@ OnError:
if (kernel->hardware != gcvNULL)
{
/* Turn off the power. */
- gcmkVERIFY_OK(gckOS_SetGPUPower(kernel->hardware->os, kernel->hardware->core, gcvFALSE, gcvFALSE));
+ gcmkVERIFY_OK(gckOS_SetGPUPower(kernel->hardware->os,
+ kernel->hardware->core,
+ gcvFALSE,
+ gcvFALSE));
gcmkVERIFY_OK(gckHARDWARE_Destroy(kernel->hardware));
}
}
@@ -1037,7 +1040,7 @@ gckKERNEL_Dispatch(
break;
case gcvHAL_UNMAP_USER_MEMORY:
- address = Interface->u.MapUserMemory.address;
+ address = Interface->u.UnmapUserMemory.address;
/* Unmap user memory. */
gcmkONERROR(
@@ -1169,9 +1172,10 @@ gckKERNEL_Dispatch(
#if gcdREGISTER_ACCESS_FROM_USER
{
gceCHIPPOWERSTATE power;
+
+ gckOS_AcquireMutex(Kernel->os, Kernel->hardware->powerMutex, gcvINFINITE);
gcmkONERROR(gckHARDWARE_QueryPowerManagementState(Kernel->hardware,
&power));
-
if (power == gcvPOWER_ON)
{
/* Read a register. */
@@ -1187,6 +1191,7 @@ gckKERNEL_Dispatch(
Interface->u.ReadRegisterData.data = 0;
status = gcvSTATUS_CHIP_NOT_READY;
}
+ gcmkONERROR(gckOS_ReleaseMutex(Kernel->os, Kernel->hardware->powerMutex));
}
#else
/* No access from user land to read registers. */
@@ -1197,12 +1202,29 @@ gckKERNEL_Dispatch(
case gcvHAL_WRITE_REGISTER:
#if gcdREGISTER_ACCESS_FROM_USER
- /* Write a register. */
- gcmkONERROR(
- gckOS_WriteRegisterEx(Kernel->os,
- Kernel->core,
- Interface->u.WriteRegisterData.address,
- Interface->u.WriteRegisterData.data));
+ {
+ gceCHIPPOWERSTATE power;
+
+ gckOS_AcquireMutex(Kernel->os, Kernel->hardware->powerMutex, gcvINFINITE);
+ gcmkONERROR(gckHARDWARE_QueryPowerManagementState(Kernel->hardware,
+ &power));
+ if (power == gcvPOWER_ON)
+ {
+ /* Write a register. */
+ gcmkONERROR(
+ gckOS_WriteRegisterEx(Kernel->os,
+ Kernel->core,
+ Interface->u.WriteRegisterData.address,
+ Interface->u.WriteRegisterData.data));
+ }
+ else
+ {
+ /* Chip is in power-state. */
+ Interface->u.WriteRegisterData.data = 0;
+ status = gcvSTATUS_CHIP_NOT_READY;
+ }
+ gcmkONERROR(gckOS_ReleaseMutex(Kernel->os, Kernel->hardware->powerMutex));
+ }
#else
/* No access from user land to write registers. */
status = gcvSTATUS_NOT_SUPPORTED;
diff --git a/drivers/mxc/gpu-viv/hal/kernel/gc_hal_kernel.h b/drivers/mxc/gpu-viv/hal/kernel/gc_hal_kernel.h
index bdc94bc088b3..a9697a12c2e2 100644
--- a/drivers/mxc/gpu-viv/hal/kernel/gc_hal_kernel.h
+++ b/drivers/mxc/gpu-viv/hal/kernel/gc_hal_kernel.h
@@ -613,24 +613,24 @@ typedef union _gcuVIDMEM_NODE
gctSIZE_T pageCount;
/* Used only when node is not contiguous */
- gctPOINTER pageTables[gcdCORE_COUNT];
+ gctPOINTER pageTables[gcdGPU_COUNT];
/* Pointer to gckKERNEL object who lock this. */
- gckKERNEL lockKernels[gcdCORE_COUNT];
+ gckKERNEL lockKernels[gcdGPU_COUNT];
/* Actual physical address */
- gctUINT32 addresses[gcdCORE_COUNT];
+ gctUINT32 addresses[gcdGPU_COUNT];
/* Mutex. */
gctPOINTER mutex;
/* Locked counter. */
- gctINT32 lockeds[gcdCORE_COUNT];
+ gctINT32 lockeds[gcdGPU_COUNT];
#ifdef __QNXNTO__
/* Single linked list of nodes. */
gcuVIDMEM_NODE_PTR next;
/* Unlock pending flag. */
- gctBOOL unlockPendings[gcdCORE_COUNT];
+ gctBOOL unlockPendings[gcdGPU_COUNT];
/* Free pending flag. */
gctBOOL freePending;
diff --git a/drivers/mxc/gpu-viv/hal/kernel/gc_hal_kernel_command.c b/drivers/mxc/gpu-viv/hal/kernel/gc_hal_kernel_command.c
index 14ac175a1b2d..7a5e82eef3b4 100644
--- a/drivers/mxc/gpu-viv/hal/kernel/gc_hal_kernel_command.c
+++ b/drivers/mxc/gpu-viv/hal/kernel/gc_hal_kernel_command.c
@@ -2480,8 +2480,6 @@ gckCOMMAND_Stall(
gcmkONERROR(gckOS_Broadcast(
os, hardware, gcvBROADCAST_GPU_STUCK
));
-
- gcmkONERROR(gcvSTATUS_GPU_NOT_RESPONDING);
}
/* Delete the signal. */
diff --git a/drivers/mxc/gpu-viv/hal/kernel/gc_hal_kernel_command_vg.c b/drivers/mxc/gpu-viv/hal/kernel/gc_hal_kernel_command_vg.c
index 3a29f023ff80..227ab683778e 100644
--- a/drivers/mxc/gpu-viv/hal/kernel/gc_hal_kernel_command_vg.c
+++ b/drivers/mxc/gpu-viv/hal/kernel/gc_hal_kernel_command_vg.c
@@ -1236,12 +1236,6 @@ _TaskUnmapUserMemory(
gcsBLOCK_TASK_ENTRY_PTR TaskHeader
);
-static gceSTATUS
-_TaskUnmapMemory(
- gckVGCOMMAND Command,
- gcsBLOCK_TASK_ENTRY_PTR TaskHeader
- );
-
static gctTASKROUTINE _taskRoutine[] =
{
_TaskLink, /* gcvTASK_LINK */
@@ -1254,7 +1248,6 @@ static gctTASKROUTINE _taskRoutine[] =
_TaskFreeVideoMemory, /* gcvTASK_FREE_VIDEO_MEMORY */
_TaskFreeContiguousMemory, /* gcvTASK_FREE_CONTIGUOUS_MEMORY */
_TaskUnmapUserMemory, /* gcvTASK_UNMAP_USER_MEMORY */
- _TaskUnmapMemory, /* gcvTASK_UNMAP_MEMORY */
};
static gceSTATUS
@@ -1676,38 +1669,6 @@ _TaskUnmapUserMemory(
return status;
}
-static gceSTATUS
-_TaskUnmapMemory(
- gckVGCOMMAND Command,
- gcsBLOCK_TASK_ENTRY_PTR TaskHeader
- )
-{
- gceSTATUS status;
-
- do
- {
- /* Cast the task pointer. */
- gcsTASK_UNMAP_MEMORY_PTR task
- = (gcsTASK_UNMAP_MEMORY_PTR) TaskHeader->task;
-
- /* Unmap memory. */
- gcmkERR_BREAK(gckKERNEL_UnmapMemory(
- Command->kernel->kernel, task->physical, task->bytes, task->logical
- ));
-
- /* Update the reference counter. */
- TaskHeader->container->referenceCount -= 1;
-
- /* Update the task pointer. */
- TaskHeader->task = (gcsTASK_HEADER_PTR) (task + 1);
- }
- while (gcvFALSE);
-
- /* Return status. */
- return status;
-}
-
-
/******************************************************************************\
************ Hardware Block Interrupt Handlers For Scheduled Events ************
\******************************************************************************/
diff --git a/drivers/mxc/gpu-viv/hal/kernel/gc_hal_kernel_debug.c b/drivers/mxc/gpu-viv/hal/kernel/gc_hal_kernel_debug.c
index 77ea27a6c31e..00decd9fb09d 100644
--- a/drivers/mxc/gpu-viv/hal/kernel/gc_hal_kernel_debug.c
+++ b/drivers/mxc/gpu-viv/hal/kernel/gc_hal_kernel_debug.c
@@ -1596,7 +1596,7 @@ _GetOutputBuffer(
#if gcdTHREAD_BUFFERS > 1
/* Get the current thread ID. */
- gctUINT32 threadID = gcmkGETTHREADID();
+ gctUINT32 ThreadID = gcmkGETTHREADID();
/* Locate the output buffer for the thread. */
outputBuffer = _outputBufferHead;
@@ -1629,10 +1629,14 @@ _GetOutputBuffer(
/* Reset the buffer. */
outputBuffer->threadID = ThreadID;
+#if gcdBUFFERED_OUTPUT
outputBuffer->start = 0;
outputBuffer->index = 0;
outputBuffer->count = 0;
+#endif
+#if gcdSHOW_LINE_NUMBER
outputBuffer->lineNumber = 0;
+#endif
}
#else
outputBuffer = _outputBufferHead;
diff --git a/drivers/mxc/gpu-viv/hal/kernel/gc_hal_kernel_event.c b/drivers/mxc/gpu-viv/hal/kernel/gc_hal_kernel_event.c
index 4f8628c19946..43363b9e685b 100644
--- a/drivers/mxc/gpu-viv/hal/kernel/gc_hal_kernel_event.c
+++ b/drivers/mxc/gpu-viv/hal/kernel/gc_hal_kernel_event.c
@@ -203,20 +203,54 @@ _TryToIdleGPU(
{
gceSTATUS status;
gctBOOL empty = gcvFALSE, idle = gcvFALSE;
+ gctUINT32 process, thread;
+ gctBOOL powerLocked = gcvFALSE;
+ gckHARDWARE hardware;
+
gcmkHEADER_ARG("Event=0x%x", Event);
/* Verify the arguments. */
gcmkVERIFY_OBJECT(Event, gcvOBJ_EVENT);
+ /* Grab gckHARDWARE object. */
+ hardware = Event->kernel->hardware;
+ gcmkVERIFY_OBJECT(hardware, gcvOBJ_HARDWARE);
+
+
/* Check whether the event queue is empty. */
gcmkONERROR(gckEVENT_IsEmpty(Event, &empty));
if (empty)
{
+ status = gckOS_AcquireMutex(hardware->os, hardware->powerMutex, 0);
+ if (status == gcvSTATUS_TIMEOUT)
+ {
+ gcmkONERROR(gckOS_GetProcessID(&process));
+ gcmkONERROR(gckOS_GetThreadID(&thread));
+
+ /* Just return to prevent deadlock. */
+ if ((hardware->powerProcess != process)
+ || (hardware->powerThread != thread))
+ {
+ gcmkFOOTER_NO();
+ return gcvSTATUS_OK;
+ }
+ }
+ else
+ {
+ powerLocked = gcvTRUE;
+ }
+
/* Query whether the hardware is idle. */
gcmkONERROR(gckHARDWARE_QueryIdle(Event->kernel->hardware, &idle));
+ if (powerLocked)
+ {
+ gcmkONERROR(gckOS_ReleaseMutex(hardware->os, hardware->powerMutex));
+ powerLocked = gcvFALSE;
+ }
+
if (idle)
{
/* Inform the system of idle GPU. */
@@ -230,6 +264,13 @@ _TryToIdleGPU(
return gcvSTATUS_OK;
OnError:
+
+ if (powerLocked)
+ {
+ gcmkONERROR(gckOS_ReleaseMutex(hardware->os, hardware->powerMutex));
+ powerLocked = gcvFALSE;
+ }
+
gcmkFOOTER();
return status;
}
diff --git a/drivers/mxc/gpu-viv/hal/kernel/gc_hal_kernel_mmu.c b/drivers/mxc/gpu-viv/hal/kernel/gc_hal_kernel_mmu.c
index deb658d98568..7062dd9a1b27 100644
--- a/drivers/mxc/gpu-viv/hal/kernel/gc_hal_kernel_mmu.c
+++ b/drivers/mxc/gpu-viv/hal/kernel/gc_hal_kernel_mmu.c
@@ -68,7 +68,7 @@ typedef struct _gcsSharedPageTable
gckMMU mmu;
/* Hardwares which use this shared pagetable. */
- gckHARDWARE hardwares[gcdCORE_COUNT];
+ gckHARDWARE hardwares[gcdGPU_COUNT];
/* Number of cores use this shared pagetable. */
gctUINT32 reference;
@@ -1201,7 +1201,7 @@ gckMMU_Enable(
gcmkONERROR(_SetupDynamicSpace(Mmu));
#if gcdSHARED_PAGETABLE
- for(i = 0; i < gcdCORE_COUNT; i++)
+ for(i = 0; i < gcdGPU_COUNT; i++)
{
hardware = sharedPageTable->hardwares[i];
if (hardware != gcvNULL)
@@ -1402,7 +1402,7 @@ gckMMU_Flush(
gckHARDWARE hardware;
#if gcdSHARED_PAGETABLE
gctINT i;
- for (i = 0; i < gcdCORE_COUNT; i++)
+ for (i = 0; i < gcdGPU_COUNT; i++)
{
#if gcdENABLE_VG
if (i == gcvCORE_VG)
diff --git a/drivers/mxc/gpu-viv/hal/kernel/gc_hal_kernel_video_memory.c b/drivers/mxc/gpu-viv/hal/kernel/gc_hal_kernel_video_memory.c
index 88e4d7705bd8..89a86a8486a7 100644
--- a/drivers/mxc/gpu-viv/hal/kernel/gc_hal_kernel_video_memory.c
+++ b/drivers/mxc/gpu-viv/hal/kernel/gc_hal_kernel_video_memory.c
@@ -245,7 +245,7 @@ gckVIDMEM_ConstructVirtual(
node->Virtual.contiguous = Contiguous;
node->Virtual.logical = gcvNULL;
- for (i = 0; i < gcdCORE_COUNT; i++)
+ for (i = 0; i < gcdGPU_COUNT; i++)
{
node->Virtual.lockeds[i] = 0;
node->Virtual.pageTables[i] = gcvNULL;
@@ -259,7 +259,7 @@ gckVIDMEM_ConstructVirtual(
#ifdef __QNXNTO__
node->Virtual.next = gcvNULL;
node->Virtual.freePending = gcvFALSE;
- for (i = 0; i < gcdCORE_COUNT; i++)
+ for (i = 0; i < gcdGPU_COUNT; i++)
{
node->Virtual.unlockPendings[i] = gcvFALSE;
}
@@ -366,7 +366,7 @@ gckVIDMEM_DestroyVirtual(
/* Delete the mutex. */
gcmkVERIFY_OK(gckOS_DeleteMutex(os, Node->Virtual.mutex));
- for (i = 0; i < gcdCORE_COUNT; i++)
+ for (i = 0; i < gcdGPU_COUNT; i++)
{
if (Node->Virtual.pageTables[i] != gcvNULL)
{
@@ -1392,7 +1392,7 @@ gckVIDMEM_Free(
acquired = gcvTRUE;
- for (i = 0, totalLocked = 0; i < gcdCORE_COUNT; i++)
+ for (i = 0, totalLocked = 0; i < gcdGPU_COUNT; i++)
{
totalLocked += Node->Virtual.lockeds[i];
}
@@ -1590,7 +1590,7 @@ _NeedVirtualMapping(
gcmkVERIFY_ARGUMENT(Kernel != gcvNULL);
gcmkVERIFY_ARGUMENT(Node != gcvNULL);
gcmkVERIFY_ARGUMENT(NeedMapping != gcvNULL);
- gcmkVERIFY_ARGUMENT(Core < gcdCORE_COUNT);
+ gcmkVERIFY_ARGUMENT(Core < gcdGPU_COUNT);
if (Node->Virtual.contiguous)
{
@@ -2052,7 +2052,7 @@ gckVIDMEM_Unlock(
#endif
}
- for (i = 0, totalLocked = 0; i < gcdCORE_COUNT; i++)
+ for (i = 0, totalLocked = 0; i < gcdGPU_COUNT; i++)
{
totalLocked += Node->Virtual.lockeds[i];
}
diff --git a/drivers/mxc/gpu-viv/hal/kernel/inc/gc_hal.h b/drivers/mxc/gpu-viv/hal/kernel/inc/gc_hal.h
index 87b811d8dfaf..f986e4e4e009 100644
--- a/drivers/mxc/gpu-viv/hal/kernel/inc/gc_hal.h
+++ b/drivers/mxc/gpu-viv/hal/kernel/inc/gc_hal.h
@@ -137,7 +137,7 @@ typedef enum _gceCORE
}
gceCORE;
-#define gcdCORE_COUNT 3
+#define gcdGPU_COUNT 3
/*******************************************************************************
**
@@ -1226,8 +1226,8 @@ gckOS_BroadcastCalibrateSpeed(
** gckOS Os
** Pointer to a gckOS object.ß
**
-** gceCORE Core
-** Core type.
+** gckCORE Core
+** GPU whose power is set.
**
** gctBOOL Clock
** gcvTRUE to turn on the clock, or gcvFALSE to turn off the clock.
diff --git a/drivers/mxc/gpu-viv/hal/kernel/inc/gc_hal_base.h b/drivers/mxc/gpu-viv/hal/kernel/inc/gc_hal_base.h
index 5fafefbe058e..b1e6b488f0af 100644
--- a/drivers/mxc/gpu-viv/hal/kernel/inc/gc_hal_base.h
+++ b/drivers/mxc/gpu-viv/hal/kernel/inc/gc_hal_base.h
@@ -129,6 +129,7 @@ typedef struct _gcsTLS
gco3D engine3D;
#endif
gco2D engine2D;
+ gctBOOL copied;
}
gcsTLS;
@@ -642,6 +643,9 @@ gcoOS_GetTLS(
OUT gcsTLS_PTR * TLS
);
+ /* Copy the TLS from a source thread. */
+ gceSTATUS gcoOS_CopyTLS(IN gcsTLS_PTR Source);
+
/* Destroy the objects associated with the current thread. */
void
gcoOS_FreeThreadData(
@@ -2061,6 +2065,11 @@ gcoDUMP_Delete(
IN gctUINT32 Address
);
+/* Enable dump or not. */
+gceSTATUS
+gcoDUMP_SetDumpFlag(
+ IN gctBOOL DumpState
+ );
/******************************************************************************\
******************************* gcsRECT Structure ******************************
diff --git a/drivers/mxc/gpu-viv/hal/kernel/inc/gc_hal_driver_vg.h b/drivers/mxc/gpu-viv/hal/kernel/inc/gc_hal_driver_vg.h
index fe57968ba423..447663f964bd 100644
--- a/drivers/mxc/gpu-viv/hal/kernel/inc/gc_hal_driver_vg.h
+++ b/drivers/mxc/gpu-viv/hal/kernel/inc/gc_hal_driver_vg.h
@@ -109,8 +109,7 @@ typedef enum _gceTASK
gcvTASK_UNLOCK_VIDEO_MEMORY,
gcvTASK_FREE_VIDEO_MEMORY,
gcvTASK_FREE_CONTIGUOUS_MEMORY,
- gcvTASK_UNMAP_USER_MEMORY,
- gcvTASK_UNMAP_MEMORY
+ gcvTASK_UNMAP_USER_MEMORY
}
gceTASK;
@@ -268,23 +267,6 @@ typedef struct _gcsTASK_UNMAP_USER_MEMORY
}
gcsTASK_UNMAP_USER_MEMORY;
-typedef struct _gcsTASK_UNMAP_MEMORY * gcsTASK_UNMAP_MEMORY_PTR;
-typedef struct _gcsTASK_UNMAP_MEMORY
-{
- /* Task ID (gcvTASK_UNMAP_MEMORY). */
- IN gceTASK id;
-
- /* Physical memory address to unmap. */
- IN gctPHYS_ADDR physical;
-
- /* Number of bytes in physical memory to unmap. */
- IN gctSIZE_T bytes;
-
- /* Address of mapped memory to unmap. */
- IN gctPOINTER logical;
-}
-gcsTASK_UNMAP_MEMORY;
-
#ifdef __cplusplus
}
#endif
diff --git a/drivers/mxc/gpu-viv/hal/kernel/inc/gc_hal_eglplatform.h b/drivers/mxc/gpu-viv/hal/kernel/inc/gc_hal_eglplatform.h
index f4b7d2886e8e..b9bf7c8f916e 100644
--- a/drivers/mxc/gpu-viv/hal/kernel/inc/gc_hal_eglplatform.h
+++ b/drivers/mxc/gpu-viv/hal/kernel/inc/gc_hal_eglplatform.h
@@ -251,11 +251,63 @@ typedef struct __BITFIELDINFO{
} BITFIELDINFO;
#elif defined(LINUX) && defined(EGL_API_FB) && !defined(__APPLE__)
+
+#if defined(EGL_API_WL)
+/* Wayland platform. */
+
+#include <wayland-egl.h>
+
+#define WL_EGL_NUM_BACKBUFFERS 2
+
+struct wl_egl_buffer_info
+{
+ gctINT32 width;
+ gctINT32 height;
+ gctINT32 stride;
+ gctUINT32 physical;
+ gctPOINTER logical;
+ gceSURF_FORMAT format;
+ gcoSURF surface;
+};
+
+struct wl_egl_buffer
+{
+ struct wl_buffer* wl_buffer;
+ struct wl_egl_buffer_info info;
+};
+
+struct wl_egl_window_info
+{
+ gctUINT width;
+ gctUINT height;
+ gceSURF_FORMAT format;
+ gctUINT bpp;
+};
+
+struct wl_egl_window
+{
+/* struct wl_egl_display *display;*/
+ struct wl_surface* surface;
+ struct wl_egl_window_info info;
+ struct wl_egl_buffer backbuffers[WL_EGL_NUM_BACKBUFFERS];
+ gctUINT current;
+ /*
+ int backbuffer;
+ int dx;
+ int dy;
+*/
+};
+
+
+typedef void* HALNativeDisplayType;
+typedef void* HALNativeWindowType;
+typedef void* HALNativePixmapType;
+#else
/* Linux platform for FBDEV. */
typedef struct _FBDisplay * HALNativeDisplayType;
typedef struct _FBWindow * HALNativeWindowType;
typedef struct _FBPixmap * HALNativePixmapType;
-
+#endif
#elif defined(__ANDROID__) || defined(ANDROID)
struct egl_native_pixmap_t;
@@ -370,6 +422,8 @@ typedef struct _halDISPLAY_INFO
** if the address is not known for the specified display. */
gctSIZE_T physical;
+ gctBOOL isCompositor; /* true if compositor, false otherwise. */
+
#ifndef __QNXNTO__
/* 355_FB_MULTI_BUFFER */
gctINT multiBuffer;
diff --git a/drivers/mxc/gpu-viv/hal/kernel/inc/gc_hal_engine.h b/drivers/mxc/gpu-viv/hal/kernel/inc/gc_hal_engine.h
index f77cf5826a6a..7ad46da0b40e 100644
--- a/drivers/mxc/gpu-viv/hal/kernel/inc/gc_hal_engine.h
+++ b/drivers/mxc/gpu-viv/hal/kernel/inc/gc_hal_engine.h
@@ -1173,6 +1173,27 @@ gco3D_InvokeThreadWalker(
IN gcsTHREAD_WALKER_INFO_PTR Info
);
+#if gcdUSE_WCLIP_PATCH
+/* Set w clip and w plane limit value. */
+gceSTATUS
+gco3D_SetWClipEnable(
+ IN gco3D Engine,
+ IN gctBOOL Enable
+ );
+
+gceSTATUS
+gco3D_SetWPlaneLimitF(
+ IN gco3D Engine,
+ IN gctFLOAT Value
+ );
+
+gceSTATUS
+gco3D_SetWPlaneLimitX(
+ IN gco3D Engine,
+ IN gctFIXED_POINT Value
+ );
+#endif
+
/*----------------------------------------------------------------------------*/
/*-------------------------- gco3D Fragment Processor ------------------------*/
@@ -1437,6 +1458,7 @@ gceSTATUS
gcoTEXTURE_AddMipMap(
IN gcoTEXTURE Texture,
IN gctINT Level,
+ IN gctINT imageFormat,
IN gceSURF_FORMAT Format,
IN gctUINT Width,
IN gctUINT Height,
diff --git a/drivers/mxc/gpu-viv/hal/kernel/inc/gc_hal_enum.h b/drivers/mxc/gpu-viv/hal/kernel/inc/gc_hal_enum.h
index d10686a259c3..18ddf5bff754 100644
--- a/drivers/mxc/gpu-viv/hal/kernel/inc/gc_hal_enum.h
+++ b/drivers/mxc/gpu-viv/hal/kernel/inc/gc_hal_enum.h
@@ -144,6 +144,7 @@ typedef enum _gceFEATURE
gcvFEATURE_RS_YUV_TARGET,
gcvFEATURE_2D_FC_SOURCE,
gcvFEATURE_PE_DITHER_FIX,
+ gcvFEATURE_2D_YUV_SEPARATE_STRIDE,
}
gceFEATURE;
@@ -263,6 +264,13 @@ typedef enum _gceSURF_ROTATION
}
gceSURF_ROTATION;
+typedef enum _gceMIPMAP_IMAGE_FORMAT
+{
+ gcvUNKNOWN_MIPMAP_IMAGE_FORMAT = -2
+}
+gceMIPMAP_IMAGE_FORMAT;
+
+
/* Surface formats. */
typedef enum _gceSURF_FORMAT
{
diff --git a/drivers/mxc/gpu-viv/hal/kernel/inc/gc_hal_options.h b/drivers/mxc/gpu-viv/hal/kernel/inc/gc_hal_options.h
index 73b666a37570..35743c62f2a2 100644
--- a/drivers/mxc/gpu-viv/hal/kernel/inc/gc_hal_options.h
+++ b/drivers/mxc/gpu-viv/hal/kernel/inc/gc_hal_options.h
@@ -258,7 +258,7 @@
virtual data.
*/
#ifndef gcdMMU_SIZE
-# define gcdMMU_SIZE (128 << 10)
+# define gcdMMU_SIZE (2048 << 10)
#endif
/*
@@ -778,4 +778,8 @@
# define gcdHIGH_PRECISION_DELAY_ENABLE 1
#endif
+#ifndef gcdUSE_WCLIP_PATCH
+# define gcdUSE_WCLIP_PATCH 0
+#endif
+
#endif /* __gc_hal_options_h_ */
diff --git a/drivers/mxc/gpu-viv/hal/kernel/inc/gc_hal_version.h b/drivers/mxc/gpu-viv/hal/kernel/inc/gc_hal_version.h
index 132832c9224d..0bc1ffc46943 100644
--- a/drivers/mxc/gpu-viv/hal/kernel/inc/gc_hal_version.h
+++ b/drivers/mxc/gpu-viv/hal/kernel/inc/gc_hal_version.h
@@ -28,9 +28,9 @@
#define gcvVERSION_MINOR 6
-#define gcvVERSION_PATCH 7
+#define gcvVERSION_PATCH 8
-#define gcvVERSION_BUILD 1422
+#define gcvVERSION_BUILD 1443
#define gcvVERSION_DATE __DATE__
diff --git a/drivers/mxc/gpu-viv/hal/os/linux/kernel/gc_hal_kernel_device.c b/drivers/mxc/gpu-viv/hal/os/linux/kernel/gc_hal_kernel_device.c
index df75a8b3c65c..305b1cc9acb6 100644
--- a/drivers/mxc/gpu-viv/hal/os/linux/kernel/gc_hal_kernel_device.c
+++ b/drivers/mxc/gpu-viv/hal/os/linux/kernel/gc_hal_kernel_device.c
@@ -404,7 +404,7 @@ gckGALDEVICE_Construct(
device->requestedContiguousSize = 0;
- for (i = 0; i < gcdCORE_COUNT; i++)
+ for (i = 0; i < gcdGPU_COUNT; i++)
{
physical = device->requestedRegisterMemBases[i];
@@ -582,19 +582,19 @@ gckGALDEVICE_Construct(
device->irqLines[gcvCORE_VG] = IrqLineVG;
/* Initialize the kernel thread semaphores. */
- for (i = 0; i < gcdCORE_COUNT; i++)
+ for (i = 0; i < gcdGPU_COUNT; i++)
{
if (device->irqLines[i] != -1) sema_init(&device->semas[i], 0);
}
device->signal = Signal;
- for (i = 0; i < gcdCORE_COUNT; i++)
+ for (i = 0; i < gcdGPU_COUNT; i++)
{
if (device->kernels[i] != gcvNULL) break;
}
- if (i == gcdCORE_COUNT) gcmkONERROR(gcvSTATUS_INVALID_ARGUMENT);
+ if (i == gcdGPU_COUNT) gcmkONERROR(gcvSTATUS_INVALID_ARGUMENT);
#if gcdENABLE_VG
if (i == gcvCORE_VG)
@@ -854,7 +854,7 @@ gckGALDEVICE_Destroy(
if (Device != gcvNULL)
{
- for (i = 0; i < gcdCORE_COUNT; i++)
+ for (i = 0; i < gcdGPU_COUNT; i++)
{
if (Device->kernels[i] != gcvNULL)
{
@@ -937,7 +937,7 @@ gckGALDEVICE_Destroy(
}
}
- for (i = 0; i < gcdCORE_COUNT; i++)
+ for (i = 0; i < gcdGPU_COUNT; i++)
{
if (Device->registerBases[i] != gcvNULL)
{
@@ -1428,7 +1428,7 @@ gckGALDEVICE_Stop_Threads(
gcmkVERIFY_ARGUMENT(Device != NULL);
- for (i = 0; i < gcdCORE_COUNT; i++)
+ for (i = 0; i < gcdGPU_COUNT; i++)
{
/* Stop the kernel threads. */
if (Device->threadInitializeds[i])
diff --git a/drivers/mxc/gpu-viv/hal/os/linux/kernel/gc_hal_kernel_device.h b/drivers/mxc/gpu-viv/hal/os/linux/kernel/gc_hal_kernel_device.h
index 69c985c90ff3..9e4f5b48e78f 100644
--- a/drivers/mxc/gpu-viv/hal/os/linux/kernel/gc_hal_kernel_device.h
+++ b/drivers/mxc/gpu-viv/hal/os/linux/kernel/gc_hal_kernel_device.h
@@ -38,7 +38,7 @@ typedef struct _gckGALDEVICE
{
/* Objects. */
gckOS os;
- gckKERNEL kernels[gcdCORE_COUNT];
+ gckKERNEL kernels[gcdGPU_COUNT];
/* Attributes. */
gctSIZE_T internalSize;
@@ -57,23 +57,23 @@ typedef struct _gckGALDEVICE
gctPOINTER contiguousMappedUser;
gctSIZE_T systemMemorySize;
gctUINT32 systemMemoryBaseAddress;
- gctPOINTER registerBases[gcdCORE_COUNT];
- gctSIZE_T registerSizes[gcdCORE_COUNT];
+ gctPOINTER registerBases[gcdGPU_COUNT];
+ gctSIZE_T registerSizes[gcdGPU_COUNT];
gctUINT32 baseAddress;
- gctUINT32 requestedRegisterMemBases[gcdCORE_COUNT];
- gctSIZE_T requestedRegisterMemSizes[gcdCORE_COUNT];
+ gctUINT32 requestedRegisterMemBases[gcdGPU_COUNT];
+ gctSIZE_T requestedRegisterMemSizes[gcdGPU_COUNT];
gctUINT32 requestedContiguousBase;
gctSIZE_T requestedContiguousSize;
/* IRQ management. */
- gctINT irqLines[gcdCORE_COUNT];
- gctBOOL isrInitializeds[gcdCORE_COUNT];
- gctBOOL dataReadys[gcdCORE_COUNT];
+ gctINT irqLines[gcdGPU_COUNT];
+ gctBOOL isrInitializeds[gcdGPU_COUNT];
+ gctBOOL dataReadys[gcdGPU_COUNT];
/* Thread management. */
- struct task_struct *threadCtxts[gcdCORE_COUNT];
- struct semaphore semas[gcdCORE_COUNT];
- gctBOOL threadInitializeds[gcdCORE_COUNT];
+ struct task_struct *threadCtxts[gcdGPU_COUNT];
+ struct semaphore semas[gcdGPU_COUNT];
+ gctBOOL threadInitializeds[gcdGPU_COUNT];
gctBOOL killThread;
/* Signal management. */
@@ -83,7 +83,7 @@ typedef struct _gckGALDEVICE
gceCORE coreMapping[8];
/* States before suspend. */
- gceCHIPPOWERSTATE statesStored[gcdCORE_COUNT];
+ gceCHIPPOWERSTATE statesStored[gcdGPU_COUNT];
/* Clock management.*/
struct clk *clk_3d_core;
diff --git a/drivers/mxc/gpu-viv/hal/os/linux/kernel/gc_hal_kernel_driver.c b/drivers/mxc/gpu-viv/hal/os/linux/kernel/gc_hal_kernel_driver.c
index 0daf9a1cb149..c5ce248e77ba 100644
--- a/drivers/mxc/gpu-viv/hal/os/linux/kernel/gc_hal_kernel_driver.c
+++ b/drivers/mxc/gpu-viv/hal/os/linux/kernel/gc_hal_kernel_driver.c
@@ -85,7 +85,7 @@ module_param(contiguousSize, ulong, 0644);
static ulong contiguousBase = 0;
module_param(contiguousBase, ulong, 0644);
-static ulong bankSize = 32 << 20;
+static ulong bankSize = 0;
module_param(bankSize, ulong, 0644);
static int fastClear = -1;
@@ -182,7 +182,7 @@ int drv_open(
gcmkONERROR(gckOS_GetProcessID(&data->pidOpen));
/* Attached the process. */
- for (i = 0; i < gcdCORE_COUNT; i++)
+ for (i = 0; i < gcdGPU_COUNT; i++)
{
if (galDevice->kernels[i] != gcvNULL)
{
@@ -225,7 +225,7 @@ OnError:
if (attached)
{
- for (i = 0; i < gcdCORE_COUNT; i++)
+ for (i = 0; i < gcdGPU_COUNT; i++)
{
if (galDevice->kernels[i] != gcvNULL)
{
@@ -304,7 +304,7 @@ int drv_release(
}
/* A process gets detached. */
- for (i = 0; i < gcdCORE_COUNT; i++)
+ for (i = 0; i < gcdGPU_COUNT; i++)
{
if (galDevice->kernels[i] != gcvNULL)
{
@@ -442,7 +442,7 @@ long drv_ioctl(
if (iface.command == gcvHAL_CHIP_INFO)
{
count = 0;
- for (i = 0; i < gcdCORE_COUNT; i++)
+ for (i = 0; i < gcdGPU_COUNT; i++)
{
if (device->kernels[i] != gcvNULL)
{
@@ -959,7 +959,7 @@ static int __devinit gpu_suspend(struct platform_device *dev, pm_message_t state
device = platform_get_drvdata(dev);
- for (i = 0; i < gcdCORE_COUNT; i++)
+ for (i = 0; i < gcdGPU_COUNT; i++)
{
if (device->kernels[i] != gcvNULL)
{
@@ -990,8 +990,6 @@ static int __devinit gpu_suspend(struct platform_device *dev, pm_message_t state
{
status = gckHARDWARE_SetPowerManagementState(device->kernels[i]->hardware, gcvPOWER_OFF);
}
- /*gpu clock must be turned on before power down*/
- gckOS_SetGPUPower(device->os, i, gcvTRUE, gcvFALSE);
if (gcmIS_ERROR(status))
{
return -1;
@@ -1012,7 +1010,7 @@ static int __devinit gpu_resume(struct platform_device *dev)
device = platform_get_drvdata(dev);
- for (i = 0; i < gcdCORE_COUNT; i++)
+ for (i = 0; i < gcdGPU_COUNT; i++)
{
if (device->kernels[i] != gcvNULL)
{
diff --git a/drivers/mxc/gpu-viv/hal/os/linux/kernel/gc_hal_kernel_os.c b/drivers/mxc/gpu-viv/hal/os/linux/kernel/gc_hal_kernel_os.c
index cf0ccc2d4e2b..63ac50912833 100644
--- a/drivers/mxc/gpu-viv/hal/os/linux/kernel/gc_hal_kernel_os.c
+++ b/drivers/mxc/gpu-viv/hal/os/linux/kernel/gc_hal_kernel_os.c
@@ -197,7 +197,6 @@ typedef struct _gcsSIGNAL
/* ID. */
gctUINT32 id;
-
}
gcsSIGNAL;
@@ -1150,6 +1149,52 @@ _DestroyIntegerId(
return gcvSTATUS_OK;
}
+static void
+_UnmapUserLogical(
+ IN gctINT Pid,
+ IN gctPOINTER Logical,
+ IN gctUINT32 Size
+)
+{
+ struct task_struct *task;
+ struct mm_struct *mm;
+
+ /* Get the task_struct of the task with stored pid. */
+ rcu_read_lock();
+
+ task = FIND_TASK_BY_PID(Pid);
+
+ if (task == gcvNULL)
+ {
+ rcu_read_unlock();
+ return;
+ }
+
+ /* Get the mm_struct. */
+ mm = get_task_mm(task);
+
+ rcu_read_unlock();
+
+ if (mm == gcvNULL)
+ {
+ return;
+ }
+
+ down_write(&mm->mmap_sem);
+ if (do_munmap(mm, (unsigned long)Logical, Size) < 0)
+ {
+ gcmkTRACE_ZONE(
+ gcvLEVEL_WARNING, gcvZONE_OS,
+ "%s(%d): do_munmap failed",
+ __FUNCTION__, __LINE__
+ );
+ }
+ up_write(&mm->mmap_sem);
+
+ /* Dereference. */
+ mmput(mm);
+}
+
/*******************************************************************************
**
** gckOS_Construct
@@ -1329,7 +1374,6 @@ gckOS_Destroy(
*/
/* Destroy the mutex. */
-
gcmkVERIFY_OK(gckOS_DeleteMutex(Os, Os->signalMutex));
if (Os->heap != gcvNULL)
@@ -1898,7 +1942,6 @@ gckOS_UnmapMemoryEx(
{
PLINUX_MDL_MAP mdlMap;
PLINUX_MDL mdl = (PLINUX_MDL)Physical;
- struct task_struct * task;
gcmkHEADER_ARG("Os=0x%X Physical=0x%X Bytes=%lu Logical=0x%X PID=%d",
Os, Physical, Bytes, Logical, PID);
@@ -1924,24 +1967,7 @@ gckOS_UnmapMemoryEx(
return gcvSTATUS_INVALID_ARGUMENT;
}
- /* Get the current pointer for the task with stored pid. */
- task = FIND_TASK_BY_PID(mdlMap->pid);
-
- if (task != gcvNULL && task->mm != gcvNULL)
- {
- down_write(&task->mm->mmap_sem);
- do_munmap(task->mm, (unsigned long)Logical, mdl->numPages*PAGE_SIZE);
- up_write(&task->mm->mmap_sem);
- }
- else
- {
- gcmkTRACE_ZONE(
- gcvLEVEL_INFO, gcvZONE_OS,
- "%s(%d): can't find the task with pid->%d. No unmapping",
- __FUNCTION__, __LINE__,
- mdlMap->pid
- );
- }
+ _UnmapUserLogical(PID, mdlMap->vmaAddr, mdl->numPages * PAGE_SIZE);
gcmkVERIFY_OK(_DestroyMdlMap(mdl, mdlMap));
}
@@ -2287,7 +2313,6 @@ gceSTATUS gckOS_FreeNonPagedMemory(
{
PLINUX_MDL mdl;
PLINUX_MDL_MAP mdlMap;
- struct task_struct * task;
#ifdef NO_DMA_COHERENT
unsigned size;
gctPOINTER vaddr;
@@ -2350,27 +2375,7 @@ gceSTATUS gckOS_FreeNonPagedMemory(
{
if (mdlMap->vmaAddr != gcvNULL)
{
- /* Get the current pointer for the task with stored pid. */
- task = FIND_TASK_BY_PID(mdlMap->pid);
-
- if (task != gcvNULL && task->mm != gcvNULL)
- {
- down_write(&task->mm->mmap_sem);
-
- if (do_munmap(task->mm,
- (unsigned long)mdlMap->vmaAddr,
- mdl->numPages * PAGE_SIZE) < 0)
- {
- gcmkTRACE_ZONE(
- gcvLEVEL_WARNING, gcvZONE_OS,
- "%s(%d): do_munmap failed",
- __FUNCTION__, __LINE__
- );
- }
-
- up_write(&task->mm->mmap_sem);
- }
-
+ _UnmapUserLogical(mdlMap->pid, mdlMap->vmaAddr, mdl->numPages * PAGE_SIZE);
mdlMap->vmaAddr = gcvNULL;
}
@@ -4687,7 +4692,6 @@ gckOS_UnlockPages(
{
PLINUX_MDL_MAP mdlMap;
PLINUX_MDL mdl = (PLINUX_MDL)Physical;
- struct task_struct * task;
gcmkHEADER_ARG("Os=0x%X Physical=0x%X Bytes=%u Logical=0x%X",
Os, Physical, Bytes, Logical);
@@ -4709,16 +4713,7 @@ gckOS_UnlockPages(
{
if ((mdlMap->vmaAddr != gcvNULL) && (_GetProcessID() == mdlMap->pid))
{
- /* Get the current pointer for the task with stored pid. */
- task = FIND_TASK_BY_PID(mdlMap->pid);
-
- if (task != gcvNULL && task->mm != gcvNULL)
- {
- down_write(&task->mm->mmap_sem);
- do_munmap(task->mm, (unsigned long)mdlMap->vmaAddr, mdl->numPages * PAGE_SIZE);
- up_write(&task->mm->mmap_sem);
- }
-
+ _UnmapUserLogical(mdlMap->pid, mdlMap->vmaAddr, mdl->numPages * PAGE_SIZE);
mdlMap->vmaAddr = gcvNULL;
}
@@ -6914,8 +6909,8 @@ gckOS_GetThreadID(
** gckOS Os
** Pointer to a gckOS object.
**
-** gceCORE Core
-** Core type.
+** gckCORE Core
+** GPU whose power is set.
**
** gctBOOL Clock
** gcvTRUE to turn on the clock, or gcvFALSE to turn off the clock.
@@ -7597,7 +7592,6 @@ gckOS_MapSignal(
{
gceSTATUS status;
gcsSIGNAL_PTR signal;
-
gcmkHEADER_ARG("Os=0x%X Signal=0x%X Process=0x%X", Os, Signal, Process);
gcmkVERIFY_ARGUMENT(Signal != gcvNULL);
@@ -7605,7 +7599,7 @@ gckOS_MapSignal(
gcmkONERROR(_QueryIntegerId(&Os->signalDB, (gctUINT32)Signal, (gctPOINTER)&signal));
- if (atomic_inc_return(&signal->ref) <= 1)
+ if(atomic_inc_return(&signal->ref) <= 1)
{
/* The previous value is 0, it has been deleted. */
gcmkONERROR(gcvSTATUS_INVALID_ARGUMENT);
@@ -7674,6 +7668,7 @@ gckOS_CreateUserSignal(
OUT gctINT * SignalID
)
{
+ /* Create a new signal. */
return gckOS_CreateSignal(Os, ManualReset, (gctSIGNAL *) SignalID);
}
diff --git a/drivers/mxc/ipu3/ipu_common.c b/drivers/mxc/ipu3/ipu_common.c
index 61687ad1411c..db22753e8276 100644
--- a/drivers/mxc/ipu3/ipu_common.c
+++ b/drivers/mxc/ipu3/ipu_common.c
@@ -40,6 +40,7 @@
#include "ipu_regs.h"
#include "ipu_param_mem.h"
+static DEFINE_MUTEX(ipu_clk_lock);
static struct ipu_soc ipu_array[MXC_IPU_MAX_NUM];
int g_ipu_hw_rev;
@@ -149,8 +150,8 @@ static int __devinit ipu_clk_setup_enable(struct ipu_soc *ipu,
}
dev_dbg(ipu->dev, "ipu_clk = %lu\n", clk_get_rate(ipu->ipu_clk));
- ipu->pixel_clk[0] = ipu_pixel_clk[0];
- ipu->pixel_clk[1] = ipu_pixel_clk[1];
+ ipu->pixel_clk[0] = ipu_pixel_clk[pdev->id][0];
+ ipu->pixel_clk[1] = ipu_pixel_clk[pdev->id][1];
ipu_lookups[pdev->id][0].clk = &ipu->pixel_clk[0];
ipu_lookups[pdev->id][1].clk = &ipu->pixel_clk[1];
@@ -371,14 +372,24 @@ void _ipu_unlock(struct ipu_soc *ipu)
void _ipu_get(struct ipu_soc *ipu)
{
- if (atomic_inc_return(&ipu->ipu_use_count) == 1)
- clk_enable(ipu->ipu_clk);
+ int ret;
+
+ if (in_interrupt())
+ return;
+ mutex_lock(&ipu_clk_lock);
+ ret = clk_enable(ipu->ipu_clk);
+ if (ret < 0)
+ BUG();
+ mutex_unlock(&ipu_clk_lock);
}
void _ipu_put(struct ipu_soc *ipu)
{
- if (atomic_dec_return(&ipu->ipu_use_count) == 0)
- clk_disable(ipu->ipu_clk);
+ if (in_interrupt())
+ return;
+ mutex_lock(&ipu_clk_lock);
+ clk_disable(ipu->ipu_clk);
+ mutex_unlock(&ipu_clk_lock);
}
/*!
@@ -406,7 +417,6 @@ static int __devinit ipu_probe(struct platform_device *pdev)
spin_lock_init(&ipu->spin_lock);
mutex_init(&ipu->mutex_lock);
- atomic_set(&ipu->ipu_use_count, 0);
g_ipu_hw_rev = plat_data->rev;
@@ -2683,10 +2693,13 @@ EXPORT_SYMBOL(ipu_clear_irq);
bool ipu_get_irq_status(struct ipu_soc *ipu, uint32_t irq)
{
uint32_t reg;
+ unsigned long lock_flags;
_ipu_get(ipu);
+ spin_lock_irqsave(&ipu->spin_lock, lock_flags);
reg = ipu_cm_read(ipu, IPUIRQ_2_STATREG(irq));
+ spin_unlock_irqrestore(&ipu->spin_lock, lock_flags);
_ipu_put(ipu);
@@ -2722,6 +2735,7 @@ int ipu_request_irq(struct ipu_soc *ipu, uint32_t irq,
irqreturn_t(*handler) (int, void *),
uint32_t irq_flags, const char *devname, void *dev_id)
{
+ uint32_t reg;
unsigned long lock_flags;
BUG_ON(irq >= IPU_IRQ_COUNT);
@@ -2744,13 +2758,15 @@ int ipu_request_irq(struct ipu_soc *ipu, uint32_t irq,
/* clear irq stat for previous use */
ipu_cm_write(ipu, IPUIRQ_2_MASK(irq), IPUIRQ_2_STATREG(irq));
+ /* enable the interrupt */
+ reg = ipu_cm_read(ipu, IPUIRQ_2_CTRLREG(irq));
+ reg |= IPUIRQ_2_MASK(irq);
+ ipu_cm_write(ipu, reg, IPUIRQ_2_CTRLREG(irq));
spin_unlock_irqrestore(&ipu->spin_lock, lock_flags);
_ipu_put(ipu);
- ipu_enable_irq(ipu, irq); /* enable the interrupt */
-
return 0;
}
EXPORT_SYMBOL(ipu_request_irq);
@@ -2769,14 +2785,23 @@ EXPORT_SYMBOL(ipu_request_irq);
*/
void ipu_free_irq(struct ipu_soc *ipu, uint32_t irq, void *dev_id)
{
+ uint32_t reg;
unsigned long lock_flags;
- ipu_disable_irq(ipu, irq); /* disable the interrupt */
+ _ipu_get(ipu);
spin_lock_irqsave(&ipu->spin_lock, lock_flags);
+
+ /* disable the interrupt */
+ reg = ipu_cm_read(ipu, IPUIRQ_2_CTRLREG(irq));
+ reg &= ~IPUIRQ_2_MASK(irq);
+ ipu_cm_write(ipu, reg, IPUIRQ_2_CTRLREG(irq));
if (ipu->irq_list[irq].dev_id == dev_id)
ipu->irq_list[irq].handler = NULL;
+
spin_unlock_irqrestore(&ipu->spin_lock, lock_flags);
+
+ _ipu_put(ipu);
}
EXPORT_SYMBOL(ipu_free_irq);
@@ -2855,11 +2880,11 @@ uint32_t ipu_channel_status(struct ipu_soc *ipu, ipu_channel_t channel)
{
uint32_t dma_status;
- _ipu_lock(ipu);
_ipu_get(ipu);
+ _ipu_lock(ipu);
dma_status = ipu_is_channel_busy(ipu, channel);
- _ipu_put(ipu);
_ipu_unlock(ipu);
+ _ipu_put(ipu);
dev_dbg(ipu->dev, "%s, dma_status:%d.\n", __func__, dma_status);
@@ -2979,13 +3004,16 @@ bool ipu_pixel_format_has_alpha(uint32_t fmt)
return false;
}
-static int ipu_suspend_noirq(struct device *dev)
+static int ipu_suspend(struct platform_device *pdev, pm_message_t state)
{
- struct platform_device *pdev = to_platform_device(dev);
struct imx_ipuv3_platform_data *plat_data = pdev->dev.platform_data;
struct ipu_soc *ipu = platform_get_drvdata(pdev);
+ int i;
- if (atomic_read(&ipu->ipu_use_count)) {
+ mutex_lock(&ipu_clk_lock);
+ ipu->ipu_use_count = clk_get_usecount(ipu->ipu_clk);
+ dev_dbg(ipu->dev, "%s, ipu_use_cnt:%d\n", __func__, ipu->ipu_use_count);
+ if (ipu->ipu_use_count) {
/* save and disable enabled channels*/
ipu->idma_enable_reg[0] = ipu_idmac_read(ipu, IDMAC_CHA_EN(0));
ipu->idma_enable_reg[1] = ipu_idmac_read(ipu, IDMAC_CHA_EN(32));
@@ -3009,7 +3037,7 @@ static int ipu_suspend_noirq(struct device *dev)
msleep(2);
time += 2;
if (time >= timeout)
- return -1;
+ goto err;
}
ipu_idmac_write(ipu, 0, IDMAC_CHA_EN(0));
ipu_idmac_write(ipu, 0, IDMAC_CHA_EN(32));
@@ -3051,26 +3079,34 @@ static int ipu_suspend_noirq(struct device *dev)
ipu->buf_ready_reg[8] = ipu_cm_read(ipu, IPU_CHA_BUF2_RDY(0));
ipu->buf_ready_reg[9] = ipu_cm_read(ipu, IPU_CHA_BUF2_RDY(32));
- clk_disable(ipu->ipu_clk);
+ for (i = 0; i < ipu->ipu_use_count; i++)
+ clk_disable(ipu->ipu_clk);
}
+ mutex_unlock(&ipu_clk_lock);
if (plat_data->pg)
plat_data->pg(1);
return 0;
+
+err:
+ mutex_unlock(&ipu_clk_lock);
+ return -1;
}
-static int ipu_resume_noirq(struct device *dev)
+static int ipu_resume(struct platform_device *pdev)
{
- struct platform_device *pdev = to_platform_device(dev);
struct imx_ipuv3_platform_data *plat_data = pdev->dev.platform_data;
struct ipu_soc *ipu = platform_get_drvdata(pdev);
+ int i;
if (plat_data->pg)
plat_data->pg(0);
- if (atomic_read(&ipu->ipu_use_count)) {
- clk_enable(ipu->ipu_clk);
+ dev_dbg(ipu->dev, "%s, ipu_use_cnt:%d\n", __func__, ipu->ipu_use_count);
+ if (ipu->ipu_use_count) {
+ for (i = 0; i < ipu->ipu_use_count; i++)
+ _ipu_get(ipu);
/* restore buf ready regs */
ipu_cm_write(ipu, ipu->buf_ready_reg[0], IPU_CHA_BUF0_RDY(0));
@@ -3122,20 +3158,16 @@ static int ipu_resume_noirq(struct device *dev)
return 0;
}
-static const struct dev_pm_ops mxcipu_pm_ops = {
- .suspend_noirq = ipu_suspend_noirq,
- .resume_noirq = ipu_resume_noirq,
-};
-
/*!
* This structure contains pointers to the power management callback functions.
*/
static struct platform_driver mxcipu_driver = {
.driver = {
.name = "imx-ipuv3",
- .pm = &mxcipu_pm_ops,
},
.probe = ipu_probe,
+ .suspend = ipu_suspend,
+ .resume = ipu_resume,
.remove = ipu_remove,
};
diff --git a/drivers/mxc/ipu3/ipu_device.c b/drivers/mxc/ipu3/ipu_device.c
index 6810cea8f503..8de791bbd118 100644
--- a/drivers/mxc/ipu3/ipu_device.c
+++ b/drivers/mxc/ipu3/ipu_device.c
@@ -351,6 +351,7 @@ static DECLARE_WAIT_QUEUE_HEAD(thread_waitq);
static DECLARE_WAIT_QUEUE_HEAD(res_waitq);
static atomic_t req_cnt;
static int major;
+static int max_ipu_no;
static int thread_id;
static atomic_t frame_no;
static struct class *ipu_class;
@@ -1147,7 +1148,7 @@ static int _get_vdoa_ipu_res(struct ipu_task_entry *t)
}
}
- for (i = 0; i < MXC_IPU_MAX_NUM; i++) {
+ for (i = 0; i < max_ipu_no; i++) {
ipu = ipu_get_soc(i);
if (IS_ERR(ipu))
BUG();
@@ -1176,7 +1177,7 @@ static int _get_vdoa_ipu_res(struct ipu_task_entry *t)
if (found_ipu)
goto next;
- for (i = 0; i < MXC_IPU_MAX_NUM; i++) {
+ for (i = 0; i < max_ipu_no; i++) {
ipu = ipu_get_soc(i);
if (IS_ERR(ipu))
BUG();
@@ -1704,7 +1705,7 @@ static int init_tiled_buf(struct ipu_soc *ipu, struct ipu_task_entry *t,
return -EINVAL;
else if (param.band_mode)
param.band_lines = (1 << t->set.band_lines);
- for (i = 0; i < MXC_IPU_MAX_NUM; i++) {
+ for (i = 0; i < max_ipu_no; i++) {
ipu_idx = ipu_get_soc(i);
if (!IS_ERR(ipu_idx) && ipu_idx == ipu)
break;
@@ -1712,7 +1713,7 @@ static int init_tiled_buf(struct ipu_soc *ipu, struct ipu_task_entry *t,
if (t->set.task & VDOA_ONLY)
/* dummy, didn't need ipu res */
i = 0;
- if (MXC_IPU_MAX_NUM == i) {
+ if (max_ipu_no == i) {
dev_err(t->dev, "ERR:[0x%p] get ipu num\n", t);
return -EINVAL;
}
@@ -1749,7 +1750,9 @@ static int init_tiled_buf(struct ipu_soc *ipu, struct ipu_task_entry *t,
return -EINVAL;
}
}
- vdoa_setup(t->vdoa_handle, &param);
+ ret = vdoa_setup(t->vdoa_handle, &param);
+ if (ret)
+ goto done;
vdoa_get_output_buf(t->vdoa_handle, &buf);
if (t->set.task & VDOA_ONLY)
goto done;
@@ -2883,7 +2886,7 @@ static void wait_split_task_complete(struct ipu_task_entry *parent,
out:
if (ret == -ETIMEDOUT) {
/* debug */
- for (k = 0; k < MXC_IPU_MAX_NUM; k++) {
+ for (k = 0; k < max_ipu_no; k++) {
ipu = ipu_get_soc(k);
if (IS_ERR(ipu)) {
BUG();
@@ -3407,6 +3410,7 @@ int register_ipu_device(struct ipu_soc *ipu, int id)
mutex_init(&ipu_ch_tbl.lock);
}
+ max_ipu_no = ++id;
ipu->rot_dma[0].size = 0;
ipu->rot_dma[1].size = 0;
diff --git a/drivers/mxc/ipu3/ipu_disp.c b/drivers/mxc/ipu3/ipu_disp.c
index d2fa65dd774e..4a774396ee99 100644
--- a/drivers/mxc/ipu3/ipu_disp.c
+++ b/drivers/mxc/ipu3/ipu_disp.c
@@ -174,44 +174,68 @@ static int _ipu_pixel_clk_set_parent(struct clk *clk, struct clk *parent)
#else
#define __INIT_CLK_DEBUG(n)
#endif
-struct clk ipu_pixel_clk[] = {
+struct clk ipu_pixel_clk[MXC_IPU_MAX_NUM][MXC_DI_NUM_PER_IPU] = {
{
- __INIT_CLK_DEBUG(pixel_clk_0)
- .id = 0,
- .get_rate = _ipu_pixel_clk_get_rate,
- .set_rate = _ipu_pixel_clk_set_rate,
- .round_rate = _ipu_pixel_clk_round_rate,
- .set_parent = _ipu_pixel_clk_set_parent,
- .enable = _ipu_pixel_clk_enable,
- .disable = _ipu_pixel_clk_disable,
+ {
+ __INIT_CLK_DEBUG(ipu1_pixel_clk_0)
+ .id = 0,
+ .get_rate = _ipu_pixel_clk_get_rate,
+ .set_rate = _ipu_pixel_clk_set_rate,
+ .round_rate = _ipu_pixel_clk_round_rate,
+ .set_parent = _ipu_pixel_clk_set_parent,
+ .enable = _ipu_pixel_clk_enable,
+ .disable = _ipu_pixel_clk_disable,
+ },
+ {
+ __INIT_CLK_DEBUG(ipu1_pixel_clk_1)
+ .id = 1,
+ .get_rate = _ipu_pixel_clk_get_rate,
+ .set_rate = _ipu_pixel_clk_set_rate,
+ .round_rate = _ipu_pixel_clk_round_rate,
+ .set_parent = _ipu_pixel_clk_set_parent,
+ .enable = _ipu_pixel_clk_enable,
+ .disable = _ipu_pixel_clk_disable,
+ },
},
{
- __INIT_CLK_DEBUG(pixel_clk_1)
- .id = 1,
- .get_rate = _ipu_pixel_clk_get_rate,
- .set_rate = _ipu_pixel_clk_set_rate,
- .round_rate = _ipu_pixel_clk_round_rate,
- .set_parent = _ipu_pixel_clk_set_parent,
- .enable = _ipu_pixel_clk_enable,
- .disable = _ipu_pixel_clk_disable,
+ {
+ __INIT_CLK_DEBUG(ipu2_pixel_clk_0)
+ .id = 0,
+ .get_rate = _ipu_pixel_clk_get_rate,
+ .set_rate = _ipu_pixel_clk_set_rate,
+ .round_rate = _ipu_pixel_clk_round_rate,
+ .set_parent = _ipu_pixel_clk_set_parent,
+ .enable = _ipu_pixel_clk_enable,
+ .disable = _ipu_pixel_clk_disable,
+ },
+ {
+ __INIT_CLK_DEBUG(ipu2_pixel_clk_1)
+ .id = 1,
+ .get_rate = _ipu_pixel_clk_get_rate,
+ .set_rate = _ipu_pixel_clk_set_rate,
+ .round_rate = _ipu_pixel_clk_round_rate,
+ .set_parent = _ipu_pixel_clk_set_parent,
+ .enable = _ipu_pixel_clk_enable,
+ .disable = _ipu_pixel_clk_disable,
+ },
},
};
-struct clk_lookup ipu_lookups[MXC_IPU_MAX_NUM][2] = {
+struct clk_lookup ipu_lookups[MXC_IPU_MAX_NUM][MXC_DI_NUM_PER_IPU] = {
{
{
- .con_id = "pixel_clk_0",
+ .con_id = "ipu1_pixel_clk_0",
},
{
- .con_id = "pixel_clk_1",
+ .con_id = "ipu1_pixel_clk_1",
},
},
{
{
- .con_id = "pixel_clk_0",
+ .con_id = "ipu2_pixel_clk_0",
},
{
- .con_id = "pixel_clk_1",
+ .con_id = "ipu2_pixel_clk_1",
},
},
};
diff --git a/drivers/mxc/ipu3/ipu_ic.c b/drivers/mxc/ipu3/ipu_ic.c
index e21d6134c84a..84dcbb145f6f 100644
--- a/drivers/mxc/ipu3/ipu_ic.c
+++ b/drivers/mxc/ipu3/ipu_ic.c
@@ -841,7 +841,7 @@ static bool _calc_resize_coeffs(struct ipu_soc *ipu,
where M = 2^13, SI - input size, SO - output size */
*resizeCoeff = (8192L * (tempSize - 1)) / (outSize - 1);
if (*resizeCoeff >= 16384L) {
- dev_err(ipu->dev, "Warning! Overflow on resize coeff.\n");
+ dev_dbg(ipu->dev, "Warning! Overflow on resize coeff.\n");
*resizeCoeff = 0x3FFF;
}
diff --git a/drivers/mxc/ipu3/ipu_prv.h b/drivers/mxc/ipu3/ipu_prv.h
index 526a2c0a36f0..7280dbaf00a8 100644
--- a/drivers/mxc/ipu3/ipu_prv.h
+++ b/drivers/mxc/ipu3/ipu_prv.h
@@ -20,16 +20,13 @@
#include <linux/interrupt.h>
#include <linux/fsl_devices.h>
-#ifdef CONFIG_MXC_IPU_V3H
-#define MXC_IPU_MAX_NUM 2
-#else
-#define MXC_IPU_MAX_NUM 1
-#endif
+#define MXC_IPU_MAX_NUM 2
+#define MXC_DI_NUM_PER_IPU 2
/* Globals */
extern int dmfc_type_setup;
-extern struct clk ipu_pixel_clk[];
-extern struct clk_lookup ipu_lookups[MXC_IPU_MAX_NUM][2];
+extern struct clk ipu_pixel_clk[MXC_IPU_MAX_NUM][MXC_DI_NUM_PER_IPU];
+extern struct clk_lookup ipu_lookups[MXC_IPU_MAX_NUM][MXC_DI_NUM_PER_IPU];
#define IDMA_CHAN_INVALID 0xFF
#define HIGH_RESOLUTION_WIDTH 1024
@@ -92,7 +89,7 @@ struct ipu_soc {
uint32_t channel_enable_mask;
/*use count*/
- atomic_t ipu_use_count;
+ int ipu_use_count;
int dc_use_count;
int dp_use_count;
int dmfc_use_count;
diff --git a/drivers/mxc/ipu3/vdoa.c b/drivers/mxc/ipu3/vdoa.c
index 5800fc606f8c..f9cba78e27b4 100644
--- a/drivers/mxc/ipu3/vdoa.c
+++ b/drivers/mxc/ipu3/vdoa.c
@@ -25,10 +25,10 @@
#include <linux/iram_alloc.h>
#include "vdoa.h"
-/* FIXME: use cmdline to specify the iram size */
/* 6band(3field* double buffer) * (width*2) * bandline(8)
= 6x1024x2x8 = 96k or 72k(1.5byte) */
-#define VDOA_IRAM_SIZE (1024*96)
+#define MAX_VDOA_IRAM_SIZE (1024*96)
+#define VDOA_IRAM_SIZE (1024*72)
#define VDOAC_BAND_HEIGHT_32LINES (32)
#define VDOAC_BAND_HEIGHT_16LINES (16)
@@ -123,6 +123,7 @@ struct vdoa_info {
};
static struct vdoa_info *g_vdoa;
+static unsigned long iram_size;
static DEFINE_MUTEX(vdoa_lock);
static inline void vdoa_read_register(struct vdoa_info *vdoa,
@@ -148,15 +149,16 @@ static void dump_registers(struct vdoa_info *vdoa)
vdoa_read_register(vdoa, i, &data);
}
-void vdoa_setup(vdoa_handle_t handle, struct vdoa_params *params)
+int vdoa_setup(vdoa_handle_t handle, struct vdoa_params *params)
{
int band_size;
+ int total_band_size = 0;
int ipu_stride;
u32 data;
struct vdoa_info *vdoa = (struct vdoa_info *)handle;
CHECK_NULL_PTR(vdoa);
- CHECK_STATE(VDOA_GET | VDOA_GET_OBUF | VDOA_STOP, return);
+ CHECK_STATE(VDOA_GET | VDOA_GET_OBUF | VDOA_STOP, return -EINVAL);
if (VDOA_GET == vdoa->state) {
dev_dbg(vdoa->dev, "w:%d, h:%d.\n",
params->width, params->height);
@@ -193,6 +195,12 @@ void vdoa_setup(vdoa_handle_t handle, struct vdoa_params *params)
band_size = ((params->width * 3) >> 1) *
params->band_lines;
if (params->interlaced) {
+ total_band_size = 6 * band_size; /* 3 frames*double buffer */
+ if (iram_size < total_band_size) {
+ dev_err(vdoa->dev, "iram_size:0x%lx is smaller than "
+ "request:0x%x!\n", iram_size, total_band_size);
+ return -EINVAL;
+ }
if (params->vfield_buf.prev_veba) {
if (params->band_mode) {
vdoa_write_register(vdoa, VDOAIEBA00,
@@ -265,6 +273,7 @@ void vdoa_setup(vdoa_handle_t handle, struct vdoa_params *params)
params->width * params->height);
}
vdoa->state = VDOA_SETUP;
+ return 0;
}
void vdoa_get_output_buf(vdoa_handle_t handle, struct vdoa_ipu_buf *buf)
@@ -330,7 +339,7 @@ void vdoa_stop(vdoa_handle_t handle)
struct vdoa_info *vdoa = (struct vdoa_info *)handle;
CHECK_NULL_PTR(vdoa);
- CHECK_STATE(VDOA_START | VDOA_INIRQ, return);
+ CHECK_STATE(VDOA_GET | VDOA_START | VDOA_INIRQ, return);
vdoa->state = VDOA_STOP;
disable_irq(vdoa->irq);
@@ -394,6 +403,21 @@ static irqreturn_t vdoa_irq_handler(int irq, void *data)
return IRQ_HANDLED;
}
+/* IRAM Size in Kbytes, example:vdoa_iram_size=64, 64KBytes */
+static int __init vdoa_iram_size_setup(char *options)
+{
+ int ret;
+
+ ret = strict_strtoul(options, 0, &iram_size);
+ if (ret)
+ iram_size = 0;
+ else
+ iram_size *= SZ_1K;
+
+ return 1;
+}
+__setup("vdoa_iram_size=", vdoa_iram_size_setup);
+
static int vdoa_probe(struct platform_device *pdev)
{
int ret;
@@ -451,16 +475,16 @@ static int vdoa_probe(struct platform_device *pdev)
ret = PTR_ERR(vdoa->clk);
goto err_clk;
}
-
- vdoa->iram_base = iram_alloc(VDOA_IRAM_SIZE, &vdoa->iram_paddr);
+ if ((iram_size == 0) || (iram_size > MAX_VDOA_IRAM_SIZE))
+ iram_size = VDOA_IRAM_SIZE;
+ vdoa->iram_base = iram_alloc(iram_size, &vdoa->iram_paddr);
if (!vdoa->iram_base) {
- dev_err(dev, "failed to get iram memory:0x%x\n",
- VDOA_IRAM_SIZE);
+ dev_err(dev, "failed to get iram memory:0x%lx\n", iram_size);
ret = -ENOMEM;
goto err_iram_alloc;
}
- dev_dbg(dev, "iram_base:0x%p,iram_paddr:0x%lx,size:0x%x\n",
- vdoa->iram_base, vdoa->iram_paddr, VDOA_IRAM_SIZE);
+ dev_dbg(dev, "iram_base:0x%p,iram_paddr:0x%lx,size:0x%lx\n",
+ vdoa->iram_base, vdoa->iram_paddr, iram_size);
vdoa->state = VDOA_INIT;
dev_set_drvdata(dev, vdoa);
@@ -491,7 +515,7 @@ static int __devexit vdoa_remove(struct platform_device *pdev)
clk_put(vdoa->clk);
clk_disable(vdoa->clk);
- iram_free(vdoa->iram_paddr, VDOA_IRAM_SIZE);
+ iram_free(vdoa->iram_paddr, iram_size);
iounmap(vdoa->reg_base);
res = platform_get_resource(pdev, IORESOURCE_MEM, 0);
if (!res) {
diff --git a/drivers/mxc/ipu3/vdoa.h b/drivers/mxc/ipu3/vdoa.h
index 82b0ee1f2c3c..23d72497a0a7 100644
--- a/drivers/mxc/ipu3/vdoa.h
+++ b/drivers/mxc/ipu3/vdoa.h
@@ -60,7 +60,7 @@ struct vdoa_ipu_buf {
struct vdoa_info;
typedef void *vdoa_handle_t;
-void vdoa_setup(vdoa_handle_t handle, struct vdoa_params *params);
+int vdoa_setup(vdoa_handle_t handle, struct vdoa_params *params);
void vdoa_get_output_buf(vdoa_handle_t handle, struct vdoa_ipu_buf *buf);
int vdoa_start(vdoa_handle_t handle, int timeout_ms);
void vdoa_stop(vdoa_handle_t handle);
diff --git a/drivers/net/can/flexcan.c b/drivers/net/can/flexcan.c
index 27dcf755debc..467b5355de89 100644
--- a/drivers/net/can/flexcan.c
+++ b/drivers/net/can/flexcan.c
@@ -195,6 +195,7 @@ struct flexcan_priv {
struct clk *clk;
struct flexcan_platform_data *pdata;
enum flexcan_ip_version version;
+ int id;
};
static struct can_bittiming_const flexcan_bittiming_const = {
@@ -580,7 +581,8 @@ static irqreturn_t flexcan_irq(int irq, void *dev_id)
if (reg_esr & FLEXCAN_ESR_WAK_INT) {
/* first clear stop request then wakeup irq status */
if (priv->version >= FLEXCAN_VER_10_0_12)
- mxc_iomux_set_gpr_register(13, 28, 1, 0);
+ /* CAN1/CAN2_STOP_REQ bit 28/29 in group 13 */
+ mxc_iomux_set_gpr_register(13, 28 + priv->id, 1, 0);
writel(FLEXCAN_ESR_WAK_INT, &regs->esr);
}
@@ -960,6 +962,9 @@ static int __devinit flexcan_probe(struct platform_device *pdev)
resource_size_t mem_size;
int err, irq;
+ if (pdev->id < 0)
+ return -ENODEV;
+
clk = clk_get(&pdev->dev, NULL);
if (IS_ERR(clk)) {
dev_err(&pdev->dev, "no clock defined\n");
@@ -1007,6 +1012,7 @@ static int __devinit flexcan_probe(struct platform_device *pdev)
priv->base = base;
priv->dev = dev;
priv->clk = clk;
+ priv->id = pdev->id;
priv->pdata = pdev->dev.platform_data;
priv->version = pdev->id_entry->driver_data;
@@ -1074,7 +1080,8 @@ static int flexcan_suspend(struct platform_device *pdev, pm_message_t state)
/* enable stop request for wakeup */
if (priv->version >= FLEXCAN_VER_10_0_12)
- mxc_iomux_set_gpr_register(13, 28, 1, 1);
+ /* CAN1/CAN2_STOP_REQ bit 28/29 in group 13 */
+ mxc_iomux_set_gpr_register(13, 28 + priv->id, 1, 1);
ret = irq_set_irq_wake(dev->irq, 1);
if (ret)
diff --git a/drivers/net/fec.c b/drivers/net/fec.c
index 6e710e11f1a4..acb2965ae77d 100755
--- a/drivers/net/fec.c
+++ b/drivers/net/fec.c
@@ -71,17 +71,14 @@
#define FEC_QUIRK_SWAP_FRAME (1 << 1)
static struct platform_device_id fec_devtype[] = {
-#ifdef CONFIG_SOC_IMX6Q
{
- .name = DRIVER_NAME,
+ .name = "enet",
.driver_data = FEC_QUIRK_ENET_MAC,
},
-#else
{
- .name = DRIVER_NAME,
+ .name = "fec",
.driver_data = 0,
},
-#endif
{
.name = "imx28-fec",
.driver_data = FEC_QUIRK_ENET_MAC | FEC_QUIRK_SWAP_FRAME,
@@ -146,12 +143,11 @@ MODULE_PARM_DESC(macaddr, "FEC Ethernet MAC address");
#define FEC_ENET_MII_CLK ((uint)2500000)
#define FEC_ENET_HOLD_TIME ((uint)0x100) /* 2 internal clock cycle*/
-#if defined(CONFIG_FEC_1588) && (defined(CONFIG_ARCH_MX28) || \
- defined(CONFIG_ARCH_MX6))
-#define FEC_DEFAULT_IMASK (FEC_ENET_TXF | FEC_ENET_RXF | FEC_ENET_MII | \
- FEC_ENET_TS_AVAIL | FEC_ENET_TS_TIMER)
-#else
#define FEC_DEFAULT_IMASK (FEC_ENET_TXF | FEC_ENET_RXF | FEC_ENET_MII)
+#if defined(CONFIG_FEC_1588)
+#define FEC_1588_IMASK (FEC_ENET_TS_AVAIL | FEC_ENET_TS_TIMER)
+#else
+#define FEC_1588_IMASK 0
#endif
/* The FEC stores dest/src/type, data, and checksum for receive packets.
@@ -1032,7 +1028,7 @@ static int fec_enet_mii_probe(struct net_device *ndev)
}
/* mask with MAC supported features */
- if (cpu_is_mx6())
+ if (cpu_is_mx6q() || cpu_is_mx6dl())
phy_dev->supported &= PHY_GBIT_FEATURES;
else
phy_dev->supported &= PHY_BASIC_FEATURES;
@@ -1091,7 +1087,7 @@ static int fec_enet_mii_init(struct platform_device *pdev)
(FEC_ENET_MII_CLK << 2)) << 1;
/* set hold time to 2 internal clock cycle */
- if (cpu_is_mx6())
+ if (cpu_is_mx6q() || cpu_is_mx6dl())
fep->phy_speed |= FEC_ENET_HOLD_TIME;
writel(fep->phy_speed, fep->hwp + FEC_MII_SPEED);
@@ -1546,14 +1542,14 @@ fec_restart(struct net_device *dev, int duplex)
udelay(10);
/*
- * enet-mac reset will reset mac address registers too,
- * so need to reconfigure it.
+ /* if uboot don't set MAC address, get MAC address
+ * from command line; if command line don't set MAC
+ * address, get from OCOTP; otherwise, allocate random
+ * address.
*/
- if (id_entry->driver_data & FEC_QUIRK_ENET_MAC) {
- memcpy(&temp_mac, dev->dev_addr, ETH_ALEN);
- writel(cpu_to_be32(temp_mac[0]), fep->hwp + FEC_ADDR_LOW);
- writel(cpu_to_be32(temp_mac[1]), fep->hwp + FEC_ADDR_HIGH);
- }
+ memcpy(&temp_mac, dev->dev_addr, ETH_ALEN);
+ writel(cpu_to_be32(temp_mac[0]), fep->hwp + FEC_ADDR_LOW);
+ writel(cpu_to_be32(temp_mac[1]), fep->hwp + FEC_ADDR_HIGH);
/* Clear any outstanding interrupt. */
writel(0xffc00000, fep->hwp + FEC_IEVENT);
@@ -1623,23 +1619,24 @@ fec_restart(struct net_device *dev, int duplex)
val |= (1 << 9);
writel(val, fep->hwp + FEC_R_CNTRL);
+ }
- if (fep->ptimer_present) {
- /* Set Timer count */
- ret = fec_ptp_start(fep->ptp_priv);
- if (ret) {
- fep->ptimer_present = 0;
- reg = 0x0;
- } else
+ if (fep->ptimer_present) {
+ /* Set Timer count */
+ ret = fec_ptp_start(fep->ptp_priv);
+ if (ret) {
+ fep->ptimer_present = 0;
+ reg = 0x0;
+ } else
#if defined(CONFIG_SOC_IMX28) || defined(CONFIG_ARCH_MX6)
- reg = 0x00000010;
+ reg = 0x00000010;
#else
- reg = 0x0;
+ reg = 0x0;
#endif
} else
reg = 0x0;
-#ifdef FEC_MIIGSK_ENR
+ if (cpu_is_mx25() || cpu_is_mx53() || cpu_is_mx6sl()) {
if (fep->phy_interface == PHY_INTERFACE_MODE_RMII) {
/* disable the gasket and wait */
writel(0, fep->hwp + FEC_MIIGSK_ENR);
@@ -1654,8 +1651,14 @@ fec_restart(struct net_device *dev, int duplex)
/* re-enable the gasket */
writel(2, fep->hwp + FEC_MIIGSK_ENR);
+ udelay(10);
+ if (!(readl(fep->hwp + FEC_MIIGSK_ENR) & 4)) {
+ udelay(100);
+ if (!(readl(fep->hwp + FEC_MIIGSK_ENR) & 4))
+ dev_err(&fep->pdev->dev,
+ "switch to RMII failed!\n");
+ }
}
-#endif
}
/* ENET enable */
@@ -1668,7 +1671,7 @@ fec_restart(struct net_device *dev, int duplex)
fep->phy_dev->speed == SPEED_1000)
val |= (0x1 << 5);
- if (cpu_is_mx6()) {
+ if (cpu_is_mx6q() || cpu_is_mx6dl()) {
/* enable endian swap */
val |= (0x1 << 8);
/* enable ENET store and forward mode */
@@ -1679,7 +1682,11 @@ fec_restart(struct net_device *dev, int duplex)
writel(0, fep->hwp + FEC_R_DES_ACTIVE);
/* Enable interrupts we wish to service */
- writel(FEC_DEFAULT_IMASK, fep->hwp + FEC_IMASK);
+ if (cpu_is_mx6q() || cpu_is_mx6dl() || cpu_is_mx2() || cpu_is_mx3())
+ val = (FEC_1588_IMASK | FEC_DEFAULT_IMASK);
+ else
+ val = FEC_DEFAULT_IMASK;
+ writel(val, fep->hwp + FEC_IMASK);
}
static void
@@ -1699,7 +1706,7 @@ fec_stop(struct net_device *dev)
writel(1, fep->hwp + FEC_ECNTRL);
udelay(10);
- if (cpu_is_mx6())
+ if (cpu_is_mx6q() || cpu_is_mx6dl())
/* FIXME: we have to enable enet to keep mii interrupt works. */
writel(2, fep->hwp + FEC_ECNTRL);
@@ -1707,6 +1714,8 @@ fec_stop(struct net_device *dev)
if (fep->ptimer_present)
fec_ptp_stop(fep->ptp_priv);
writel(FEC_DEFAULT_IMASK, fep->hwp + FEC_IMASK);
+ netif_stop_queue(dev);
+ fep->link = 0;
}
static int __devinit
diff --git a/drivers/power/Kconfig b/drivers/power/Kconfig
index 8145ff85c8ab..6e53cce3c7fd 100755
--- a/drivers/power/Kconfig
+++ b/drivers/power/Kconfig
@@ -219,6 +219,15 @@ config CHARGER_MAX8903
pins based on the status of charger connections with interrupt
handlers.
+config SABRESD_MAX8903
+ tristate "Sabresd Board Battery DC-DC Charger for USB and Adapter Power"
+ depends on GENERIC_HARDIRQS
+ depends on TOUCHSCREEN_MAX11801
+ help
+ Say Y to enable support for the MAX8903 DC-DC charger and sysfs on
+ sabresd board.The driver supports controlling charger and battery
+ based on the status of charger connections with interrupt handlers.
+
config CHARGER_TWL4030
tristate "OMAP TWL4030 BCI charger driver"
depends on TWL4030_CORE
diff --git a/drivers/power/Makefile b/drivers/power/Makefile
index ad6493affec8..1f359ba8a03c 100755
--- a/drivers/power/Makefile
+++ b/drivers/power/Makefile
@@ -37,3 +37,4 @@ obj-$(CONFIG_CHARGER_MAX8903) += max8903_charger.o
obj-$(CONFIG_CHARGER_TWL4030) += twl4030_charger.o
obj-$(CONFIG_CHARGER_GPIO) += gpio-charger.o
obj-$(CONFIG_BATTERY_DA9052) += da9052-battery.o
+obj-$(CONFIG_SABRESD_MAX8903) += sabresd_battery.o
diff --git a/drivers/power/max8903_battery.c b/drivers/power/max8903_battery.c
new file mode 100755
index 000000000000..84b5373cbb2f
--- /dev/null
+++ b/drivers/power/max8903_battery.c
@@ -0,0 +1,748 @@
+/*
+ * max8903_battery.c - Maxim 8903 USB/Adapter Charger Driver
+ *
+ * Copyright (C) 2011 Samsung Electronics
+ * Copyright (C) 2011-2012 Freescale Semiconductor, Inc.
+ * Based on max8903_charger.c
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+ *
+ */
+
+#include <linux/gpio.h>
+#include <linux/interrupt.h>
+#include <linux/slab.h>
+#include <linux/power_supply.h>
+#include <linux/platform_device.h>
+#include <linux/power/max8903_battery.h>
+#include <linux/sort.h>
+
+
+#define BATTERY_UPDATE_INTERVAL 5 /*seconds*/
+#define LOW_VOLT_THRESHOLD 2800000
+#define HIGH_VOLT_THRESHOLD 4200000
+#define ADC_SAMPLE_COUNT 4
+
+struct max8903_data {
+ struct max8903_pdata *pdata;
+ struct device *dev;
+ struct power_supply psy;
+ bool fault;
+ bool usb_in;
+ bool ta_in;
+ bool chg_state;
+ struct delayed_work work;
+ unsigned int interval;
+ unsigned short thermal_raw;
+ int voltage_uV;
+ int current_uA;
+ int battery_status;
+ int charger_online;
+ int charger_voltage_uV;
+ int real_capacity;
+ int percent;
+ int old_percent;
+ struct power_supply bat;
+ struct mutex work_lock;
+};
+
+typedef struct {
+ u32 voltage;
+ u32 percent;
+} battery_capacity , *pbattery_capacity;
+
+static bool capacity_changed_flag;
+
+static battery_capacity chargingTable[] = {
+ {4148, 100},
+ {4126, 99},
+ {4123, 98},
+ {4120, 97},
+ {4105, 96},
+ {4090, 96},
+ {4075, 95},
+ {4060, 94},
+ {4045, 93},
+ {4030, 92},
+ {4015, 91},
+ {4000, 90},
+ {3900, 85},
+ {3790, 80},
+ {3760, 75},
+ {3730, 70},
+ {3700, 65},
+ {3680, 60},
+ {3660, 55},
+ {3640, 50},
+ {3600, 45},
+ {3550, 40},
+ {3510, 35},
+ {3450, 30},
+ {3310, 25},
+ {3240, 20},
+ {3180, 15},
+ {3030, 10},
+ {2820, 5},
+ {2800, 0},
+ {0, 0}
+};
+static battery_capacity dischargingTable[] = {
+ {4100, 100},
+ {4090, 99},
+ {4080, 98},
+ {4060, 97},
+ {4040, 96},
+ {3920, 96},
+ {3900, 95},
+ {3970, 94},
+ {3940, 93},
+ {3910, 92},
+ {3890, 91},
+ {3860, 90},
+ {3790, 85},
+ {3690, 80},
+ {3660, 75},
+ {3630, 70},
+ {3600, 65},
+ {3580, 60},
+ {3560, 55},
+ {3540, 50},
+ {3500, 45},
+ {3450, 40},
+ {3410, 35},
+ {3350, 30},
+ {3310, 25},
+ {3240, 20},
+ {3180, 15},
+ {3030, 10},
+ {2820, 5},
+ {2800, 0},
+ {0, 0}
+};
+
+u32 calibrate_battery_capability_percent(struct max8903_data *data)
+{
+ u8 i;
+ pbattery_capacity pTable;
+ u32 tableSize;
+ if (data->battery_status == POWER_SUPPLY_STATUS_DISCHARGING) {
+ pTable = dischargingTable;
+ tableSize = sizeof(dischargingTable)/sizeof(dischargingTable[0]);
+ } else {
+ pTable = chargingTable;
+ tableSize = sizeof(chargingTable)/sizeof(chargingTable[0]);
+ }
+ for (i = 0; i < tableSize; i++) {
+ if (data->voltage_uV >= pTable[i].voltage)
+ return pTable[i].percent;
+ }
+
+ return 0;
+}
+
+static enum power_supply_property max8903_charger_props[] = {
+ POWER_SUPPLY_PROP_STATUS,
+ POWER_SUPPLY_PROP_ONLINE,
+ POWER_SUPPLY_PROP_HEALTH,
+};
+
+static enum power_supply_property max8903_battery_props[] = {
+ POWER_SUPPLY_PROP_VOLTAGE_NOW,
+ POWER_SUPPLY_PROP_STATUS,
+ POWER_SUPPLY_PROP_PRESENT,
+ POWER_SUPPLY_PROP_CAPACITY,
+ POWER_SUPPLY_PROP_ONLINE,
+ POWER_SUPPLY_PROP_VOLTAGE_MAX_DESIGN,
+ POWER_SUPPLY_PROP_VOLTAGE_MIN_DESIGN,
+};
+
+extern u32 max11801_read_adc(void);
+
+static void max8903_charger_update_status(struct max8903_data *data)
+{
+ if (data->usb_in || data->ta_in) {
+ data->charger_online = 1;
+ } else {
+ data->charger_online = 0;
+ }
+ if (data->charger_online == 0) {
+ data->battery_status = POWER_SUPPLY_STATUS_DISCHARGING;
+ } else {
+ if (data->pdata->chg) {
+ if (gpio_get_value(data->pdata->chg) == 0) {
+ data->battery_status = POWER_SUPPLY_STATUS_CHARGING;
+ } else if ((data->usb_in || data->ta_in) &&
+ gpio_get_value(data->pdata->chg) == 1) {
+ data->battery_status = POWER_SUPPLY_STATUS_NOT_CHARGING;
+ }
+ }
+ }
+ pr_debug("chg: %d \n", gpio_get_value(data->pdata->chg));
+}
+static int cmp_func(const void *_a, const void *_b)
+{
+ const int *a = _a, *b = _b;
+
+ if (*a > *b)
+ return 1;
+ if (*a < *b)
+ return -1;
+ return 0;
+}
+u32 calibration_voltage(struct max8903_data *data)
+{
+ int volt[ADC_SAMPLE_COUNT];
+ u32 voltage_data;
+ int i;
+ for (i = 0; i < ADC_SAMPLE_COUNT; i++) {
+ if (data->charger_online == 0) {
+ /* ADC offset when battery is discharger*/
+ volt[i] = max11801_read_adc()-1880;
+ } else {
+ volt[i] = max11801_read_adc()-1960;
+ }
+ }
+ sort(volt, i, 4, cmp_func, NULL);
+ for (i = 0; i < ADC_SAMPLE_COUNT; i++)
+ pr_debug("volt_sorted[%2d]: %d\n", i, volt[i]);
+ /* get the average of second max/min of remained. */
+ voltage_data = (volt[1] + volt[i - 2]) / 2;
+ return voltage_data;
+}
+
+static void max8903_battery_update_status(struct max8903_data *data)
+{
+ static int counter;
+#if 0
+ data->voltage_uV = max11801_read_adc();
+#endif
+ mutex_lock(&data->work_lock);
+ data->voltage_uV = calibration_voltage(data);
+ data->percent = calibrate_battery_capability_percent(data);
+ if (data->percent != data->old_percent) {
+ data->old_percent = data->percent;
+ capacity_changed_flag = true;
+ }
+ if ((capacity_changed_flag == true) && (data->charger_online)) {
+ counter++;
+ if (counter > 2) {
+ counter = 0;
+ capacity_changed_flag = false;
+ power_supply_changed(&data->bat);
+ }
+ }
+ mutex_unlock(&data->work_lock);
+}
+
+static int max8903_battery_get_property(struct power_supply *bat,
+ enum power_supply_property psp,
+ union power_supply_propval *val)
+{
+ struct max8903_data *di = container_of(bat,
+ struct max8903_data, bat);
+ static unsigned long last;
+ switch (psp) {
+ case POWER_SUPPLY_PROP_STATUS:
+ val->intval = POWER_SUPPLY_STATUS_UNKNOWN;
+ if (di->pdata->chg) {
+ if (gpio_get_value(di->pdata->chg) == 0) {
+ val->intval = POWER_SUPPLY_STATUS_CHARGING;
+ } else if ((di->usb_in || di->ta_in) && gpio_get_value(di->pdata->chg) == 1) {
+ val->intval = POWER_SUPPLY_STATUS_NOT_CHARGING;
+ } else {
+ val->intval = POWER_SUPPLY_STATUS_DISCHARGING;
+ }
+ }
+ di->battery_status = val->intval;
+ return 0;
+ default:
+ break;
+ }
+ if (!last || time_after(jiffies, last + HZ / 2)) {
+ last = jiffies;
+ max8903_charger_update_status(di);
+ max8903_battery_update_status(di);
+ }
+ switch (psp) {
+ case POWER_SUPPLY_PROP_VOLTAGE_NOW:
+ val->intval = di->voltage_uV;
+ break;
+#if 0
+ case POWER_SUPPLY_PROP_CURRENT_NOW:
+ val->intval = di->current_uA;
+ break;
+#endif
+ case POWER_SUPPLY_PROP_CHARGE_NOW:
+ val->intval = 0;
+ break;
+ case POWER_SUPPLY_PROP_VOLTAGE_MAX_DESIGN:
+ val->intval = HIGH_VOLT_THRESHOLD;
+ break;
+ case POWER_SUPPLY_PROP_VOLTAGE_MIN_DESIGN:
+ val->intval = LOW_VOLT_THRESHOLD;
+ break;
+ case POWER_SUPPLY_PROP_PRESENT:
+ val->intval = 1;
+ break;
+ case POWER_SUPPLY_PROP_CAPACITY:
+ val->intval = di->percent < 0 ? 0 :
+ (di->percent > 100 ? 100 : di->percent);
+ break;
+ case POWER_SUPPLY_PROP_ONLINE:
+ val->intval = 0;
+ if (di->usb_in || di->ta_in)
+ val->intval = 1;
+ di->charger_online = val->intval;
+ break;
+ default:
+ return -EINVAL;
+ }
+
+ return 0;
+}
+static int max8903_get_property(struct power_supply *psy,
+ enum power_supply_property psp,
+ union power_supply_propval *val)
+{
+ struct max8903_data *data = container_of(psy,
+ struct max8903_data, psy);
+
+ switch (psp) {
+ case POWER_SUPPLY_PROP_STATUS:
+ val->intval = POWER_SUPPLY_STATUS_UNKNOWN;
+ if (data->pdata->chg) {
+ if (gpio_get_value(data->pdata->chg) == 0) {
+ val->intval = POWER_SUPPLY_STATUS_CHARGING;
+ }
+ else if ((data->usb_in || data->ta_in) &&
+ gpio_get_value(data->pdata->chg) == 1) {
+ val->intval = POWER_SUPPLY_STATUS_NOT_CHARGING;
+ } else {
+ val->intval = POWER_SUPPLY_STATUS_DISCHARGING;
+ }
+ }
+ data->battery_status = val->intval;
+ break;
+ case POWER_SUPPLY_PROP_ONLINE:
+ val->intval = 0;
+ if (data->usb_in || data->ta_in)
+ val->intval = 1;
+ data->charger_online = val->intval;
+ break;
+ case POWER_SUPPLY_PROP_HEALTH:
+ val->intval = POWER_SUPPLY_HEALTH_GOOD;
+ if (data->fault)
+ val->intval = POWER_SUPPLY_HEALTH_UNSPEC_FAILURE;
+ break;
+ default:
+ return -EINVAL;
+ }
+ return 0;
+}
+
+static irqreturn_t max8903_dcin(int irq, void *_data)
+{
+ struct max8903_data *data = _data;
+ struct max8903_pdata *pdata = data->pdata;
+ bool ta_in;
+ enum power_supply_type old_type;
+
+ ta_in = gpio_get_value(pdata->dok) ? false : true;
+
+ if (ta_in == data->ta_in)
+ return IRQ_HANDLED;
+
+ data->ta_in = ta_in;
+#if 0
+ /* Set Current-Limit-Mode 1:DC 0:USB */
+ if (pdata->dcm)
+ gpio_set_value(pdata->dcm, ta_in ? 1 : 0);
+ /* Charger Enable / Disable (cen is negated) */
+ if (pdata->cen)
+ gpio_set_value(pdata->cen, ta_in ? 0 :
+ (data->usb_in ? 0 : 1));
+#endif
+ pr_info("TA(DC-IN) Charger %s.\n", ta_in ?
+ "Connected" : "Disconnected");
+
+ old_type = data->psy.type;
+
+ if (data->ta_in)
+ data->psy.type = POWER_SUPPLY_TYPE_MAINS;
+ else if (data->usb_in)
+ data->psy.type = POWER_SUPPLY_TYPE_USB;
+ else
+ data->psy.type = POWER_SUPPLY_TYPE_BATTERY;
+
+ if (old_type != data->psy.type) {
+ power_supply_changed(&data->psy);
+ power_supply_changed(&data->bat);
+ }
+ return IRQ_HANDLED;
+}
+
+static irqreturn_t max8903_usbin(int irq, void *_data)
+{
+ struct max8903_data *data = _data;
+ struct max8903_pdata *pdata = data->pdata;
+ bool usb_in;
+ enum power_supply_type old_type;
+
+ usb_in = gpio_get_value(pdata->uok) ? false : true;
+
+ if (usb_in == data->usb_in)
+ return IRQ_HANDLED;
+
+ data->usb_in = usb_in;
+
+#if 0
+ /* Do not touch Current-Limit-Mode */
+
+ /* Charger Enable / Disable (cen is negated) */
+ if (pdata->cen)
+ gpio_set_value(pdata->cen, usb_in ? 0 :
+ (data->ta_in ? 0 : 1));
+#endif
+ pr_info("USB Charger %s.\n", usb_in ?
+ "Connected" : "Disconnected");
+
+ old_type = data->psy.type;
+
+ if (data->ta_in)
+ data->psy.type = POWER_SUPPLY_TYPE_MAINS;
+ else if (data->usb_in)
+ data->psy.type = POWER_SUPPLY_TYPE_USB;
+ else
+ data->psy.type = POWER_SUPPLY_TYPE_BATTERY;
+
+ if (old_type != data->psy.type) {
+ power_supply_changed(&data->psy);
+ power_supply_changed(&data->bat);
+ }
+ return IRQ_HANDLED;
+}
+
+static irqreturn_t max8903_fault(int irq, void *_data)
+{
+ struct max8903_data *data = _data;
+ struct max8903_pdata *pdata = data->pdata;
+ bool fault;
+
+ fault = gpio_get_value(pdata->flt) ? false : true;
+
+ if (fault == data->fault)
+ return IRQ_HANDLED;
+
+ data->fault = fault;
+
+ if (fault)
+ dev_err(data->dev, "Charger suffers a fault and stops.\n");
+ else
+ dev_err(data->dev, "Charger recovered from a fault.\n");
+ return IRQ_HANDLED;
+}
+
+static irqreturn_t max8903_chg(int irq, void *_data)
+{
+ struct max8903_data *data = _data;
+ struct max8903_pdata *pdata = data->pdata;
+ int chg_state;
+
+ chg_state = gpio_get_value(pdata->chg) ? false : true;
+
+ if (chg_state == data->chg_state)
+ return IRQ_HANDLED;
+
+ data->chg_state = chg_state;
+#if 0
+ if (chg_state)
+ pr_info("Charger stop.\n ");
+ else
+ pr_info("Charger start.\n ");
+#endif
+ return IRQ_HANDLED;
+}
+
+static void max8903_battery_work(struct work_struct *work)
+{
+ struct max8903_data *data;
+ data = container_of(work, struct max8903_data, work.work);
+ data->interval = HZ * BATTERY_UPDATE_INTERVAL;
+
+ max8903_charger_update_status(data);
+ max8903_battery_update_status(data);
+
+ pr_debug("battery voltage: %4d mV\n" , data->voltage_uV);
+ pr_debug("charger online status: %d\n" , data->charger_online);
+ pr_debug("battery status : %d\n" , data->battery_status);
+ pr_debug("battery capacity percent: %3d\n" , data->percent);
+ pr_debug("data->usb_in: %x , data->ta_in: %x \n" , data->usb_in, data->ta_in);
+ /* reschedule for the next time */
+ schedule_delayed_work(&data->work, data->interval);
+}
+static __devinit int max8903_probe(struct platform_device *pdev)
+{
+ struct max8903_data *data;
+ struct device *dev = &pdev->dev;
+ struct max8903_pdata *pdata = pdev->dev.platform_data;
+ int ret = 0;
+ int gpio = 0;
+ int ta_in = 0;
+ int usb_in = 0;
+ int retval;
+
+ data = kzalloc(sizeof(struct max8903_data), GFP_KERNEL);
+ if (data == NULL) {
+ dev_err(dev, "Cannot allocate memory.\n");
+ return -ENOMEM;
+ }
+ data->pdata = pdata;
+ data->dev = dev;
+
+ platform_set_drvdata(pdev, data);
+ capacity_changed_flag = false;
+ data->usb_in = 0;
+ data->ta_in = 0;
+
+ if (pdata->dc_valid == false && pdata->usb_valid == false) {
+ dev_err(dev, "No valid power sources.\n");
+ printk(KERN_INFO "No valid power sources.\n");
+ ret = -EINVAL;
+ goto err;
+ }
+ if (pdata->dc_valid) {
+#if 0
+ if (pdata->dok && gpio_is_valid(pdata->dok) &&
+ pdata->dcm && gpio_is_valid(pdata->dcm)) {
+#endif
+ if (pdata->dok && gpio_is_valid(pdata->dok)) {
+ gpio = pdata->dok; /* PULL_UPed Interrupt */
+ ta_in = gpio_get_value(gpio) ? 0 : 1;
+#if 0
+ gpio = pdata->dcm; /* Output */
+ gpio_set_value(gpio, ta_in);
+#endif
+ } else if (pdata->dok && gpio_is_valid(pdata->dok) && pdata->dcm_always_high) {
+ ta_in = pdata->dok; /* PULL_UPed Interrupt */
+ ta_in = gpio_get_value(gpio) ? 0 : 1;
+ } else {
+ dev_err(dev, "When DC is wired, DOK and DCM should"
+ " be wired as well."
+ " or set dcm always high\n");
+ ret = -EINVAL;
+ goto err;
+ }
+ }
+ if (pdata->usb_valid) {
+ if (pdata->uok && gpio_is_valid(pdata->uok)) {
+ gpio = pdata->uok;
+ usb_in = gpio_get_value(gpio) ? 0 : 1;
+ } else {
+ dev_err(dev, "When USB is wired, UOK should be wired."
+ "as well.\n");
+ ret = -EINVAL;
+ goto err;
+ }
+ }
+ if (pdata->chg) {
+ if (!gpio_is_valid(pdata->chg)) {
+ dev_err(dev, "Invalid pin: chg.\n");
+ ret = -EINVAL;
+ goto err;
+ }
+ }
+
+ if (pdata->flt) {
+ if (!gpio_is_valid(pdata->flt)) {
+ dev_err(dev, "Invalid pin: flt.\n");
+ ret = -EINVAL;
+ goto err;
+ }
+ }
+
+ if (pdata->usus) {
+ if (!gpio_is_valid(pdata->usus)) {
+ dev_err(dev, "Invalid pin: usus.\n");
+ ret = -EINVAL;
+ goto err;
+ }
+ }
+ mutex_init(&data->work_lock);
+ data->fault = false;
+ data->ta_in = ta_in;
+ data->usb_in = usb_in;
+ data->psy.name = "max8903-ac";
+ data->psy.type = (ta_in) ? POWER_SUPPLY_TYPE_MAINS :
+ ((usb_in) ? POWER_SUPPLY_TYPE_USB :
+ POWER_SUPPLY_TYPE_BATTERY);
+ data->psy.get_property = max8903_get_property;
+ data->psy.properties = max8903_charger_props;
+ data->psy.num_properties = ARRAY_SIZE(max8903_charger_props);
+ ret = power_supply_register(dev, &data->psy);
+ if (ret) {
+ dev_err(dev, "failed: power supply register.\n");
+ goto err_psy;
+ }
+ data->bat.name = "max8903-charger";
+ data->bat.type = POWER_SUPPLY_TYPE_BATTERY;
+ data->bat.properties = max8903_battery_props;
+ data->bat.num_properties = ARRAY_SIZE(max8903_battery_props);
+ data->bat.get_property = max8903_battery_get_property;
+ data->bat.use_for_apm = 1;
+ retval = power_supply_register(&pdev->dev, &data->bat);
+ if (retval) {
+ dev_err(data->dev, "failed to register battery\n");
+ goto battery_failed;
+ }
+ INIT_DELAYED_WORK(&data->work, max8903_battery_work);
+ schedule_delayed_work(&data->work, data->interval);
+ if (pdata->dc_valid) {
+ ret = request_threaded_irq(gpio_to_irq(pdata->dok),
+ NULL, max8903_dcin,
+ IRQF_TRIGGER_FALLING | IRQF_TRIGGER_RISING,
+ "MAX8903 DC IN", data);
+ if (ret) {
+ dev_err(dev, "Cannot request irq %d for DC (%d)\n",
+ gpio_to_irq(pdata->dok), ret);
+ goto err_usb_irq;
+ }
+ }
+
+ if (pdata->usb_valid) {
+ ret = request_threaded_irq(gpio_to_irq(pdata->uok),
+ NULL, max8903_usbin,
+ IRQF_TRIGGER_FALLING | IRQF_TRIGGER_RISING,
+ "MAX8903 USB IN", data);
+ if (ret) {
+ dev_err(dev, "Cannot request irq %d for USB (%d)\n",
+ gpio_to_irq(pdata->uok), ret);
+ goto err_dc_irq;
+ }
+ }
+
+ if (pdata->flt) {
+ ret = request_threaded_irq(gpio_to_irq(pdata->flt),
+ NULL, max8903_fault,
+ IRQF_TRIGGER_FALLING | IRQF_TRIGGER_RISING,
+ "MAX8903 Fault", data);
+ if (ret) {
+ dev_err(dev, "Cannot request irq %d for Fault (%d)\n",
+ gpio_to_irq(pdata->flt), ret);
+ goto err_flt_irq;
+ }
+ }
+
+ if (pdata->chg) {
+ ret = request_threaded_irq(gpio_to_irq(pdata->chg),
+ NULL, max8903_chg,
+ IRQF_TRIGGER_FALLING | IRQF_TRIGGER_RISING,
+ "MAX8903 Fault", data);
+ if (ret) {
+ dev_err(dev, "Cannot request irq %d for Fault (%d)\n",
+ gpio_to_irq(pdata->flt), ret);
+ goto err_chg_irq;
+ }
+ }
+ return 0;
+err_psy:
+ power_supply_unregister(&data->psy);
+battery_failed:
+ power_supply_unregister(&data->bat);
+err_usb_irq:
+ if (pdata->usb_valid)
+ free_irq(gpio_to_irq(pdata->uok), data);
+ cancel_delayed_work(&data->work);
+err_dc_irq:
+ if (pdata->dc_valid)
+ free_irq(gpio_to_irq(pdata->dok), data);
+ cancel_delayed_work(&data->work);
+err_flt_irq:
+ if (pdata->usb_valid)
+ free_irq(gpio_to_irq(pdata->uok), data);
+ cancel_delayed_work(&data->work);
+err_chg_irq:
+ if (pdata->dc_valid)
+ free_irq(gpio_to_irq(pdata->dok), data);
+ cancel_delayed_work(&data->work);
+err:
+ kfree(data);
+ return ret;
+}
+
+static __devexit int max8903_remove(struct platform_device *pdev)
+{
+ struct max8903_data *data = platform_get_drvdata(pdev);
+ if (data) {
+ struct max8903_pdata *pdata = data->pdata;
+ if (pdata->flt)
+ free_irq(gpio_to_irq(pdata->flt), data);
+ if (pdata->usb_valid)
+ free_irq(gpio_to_irq(pdata->uok), data);
+ if (pdata->dc_valid)
+ free_irq(gpio_to_irq(pdata->dok), data);
+ if (pdata->dc_valid)
+ free_irq(gpio_to_irq(pdata->chg), data);
+ cancel_delayed_work_sync(&data->work);
+ power_supply_unregister(&data->psy);
+ power_supply_unregister(&data->bat);
+ kfree(data);
+ }
+ return 0;
+}
+
+static int max8903_suspend(struct platform_device *pdev,
+ pm_message_t state)
+{
+ struct max8903_data *data = platform_get_drvdata(pdev);
+
+ cancel_delayed_work(&data->work);
+ return 0;
+}
+
+static int max8903_resume(struct platform_device *pdev)
+{
+ struct max8903_data *data = platform_get_drvdata(pdev);
+
+ schedule_delayed_work(&data->work, BATTERY_UPDATE_INTERVAL);
+ return 0;
+
+}
+
+static struct platform_driver max8903_driver = {
+ .probe = max8903_probe,
+ .remove = __devexit_p(max8903_remove),
+ .suspend = max8903_suspend,
+ .resume = max8903_resume,
+ .driver = {
+ .name = "max8903-charger",
+ .owner = THIS_MODULE,
+ },
+};
+
+static int __init max8903_init(void)
+{
+ return platform_driver_register(&max8903_driver);
+}
+module_init(max8903_init);
+
+static void __exit max8903_exit(void)
+{
+ platform_driver_unregister(&max8903_driver);
+}
+module_exit(max8903_exit);
+
+MODULE_LICENSE("GPL v2");
+MODULE_AUTHOR("Freescale Semiconductor, Inc.");
+MODULE_DESCRIPTION("MAX8903 Battery Driver");
+MODULE_ALIAS("max8903_battery");
diff --git a/drivers/power/max8903_charger.c b/drivers/power/max8903_charger.c
index 492df4310228..fee8191767f0 100644
--- a/drivers/power/max8903_charger.c
+++ b/drivers/power/max8903_charger.c
@@ -246,13 +246,13 @@ static __devinit int max8903_probe(struct platform_device *pdev)
gpio = pdata->dok; /* PULL_UPed Interrupt */
error = gpio_request(gpio, "chg_dc");
- error = gpio_direction_input(gpio);
if (error < 0) {
dev_err(dev, "failed to configure"
" request/direction for GPIO %d, error %d\n",
gpio, error);
goto err;
}
+ gpio_direction_input(gpio);
ta_in = gpio_get_value(gpio) ? 0 : 1;
@@ -283,15 +283,15 @@ static __devinit int max8903_probe(struct platform_device *pdev)
if (pdata->uok && gpio_is_valid(pdata->uok)) {
gpio = pdata->uok;
error = gpio_request(gpio, "chg_usb");
- error = gpio_direction_input(gpio);
if (error < 0) {
dev_err(dev, "failed to configure"
" request/direction for GPIO %d, error %d\n",
gpio, error);
goto err;
}
- usb_in = gpio_get_value(gpio) ? 0 : 1;
+ gpio_direction_input(gpio);
+ usb_in = gpio_get_value(gpio) ? 0 : 1;
if (usb_in)
data->usb_in = true;
else
@@ -321,13 +321,13 @@ static __devinit int max8903_probe(struct platform_device *pdev)
goto err;
}
error = gpio_request(pdata->chg, "chg_status");
- error = gpio_direction_input(pdata->chg);
if (error < 0) {
dev_err(dev, "failed to configure"
" request/direction for GPIO %d, error %d\n",
pdata->chg, error);
goto err;
}
+ error = gpio_direction_input(pdata->chg);
}
if (pdata->flt) {
@@ -337,13 +337,13 @@ static __devinit int max8903_probe(struct platform_device *pdev)
goto err;
}
error = gpio_request(pdata->flt, "chg_fault");
- error = gpio_direction_input(pdata->flt);
if (error < 0) {
dev_err(dev, "failed to configure"
" request/direction for GPIO %d, error %d\n",
pdata->flt, error);
goto err;
}
+ error = gpio_direction_input(pdata->flt);
}
if (pdata->usus) {
diff --git a/drivers/power/sabresd_battery.c b/drivers/power/sabresd_battery.c
new file mode 100755
index 000000000000..75d07b178083
--- /dev/null
+++ b/drivers/power/sabresd_battery.c
@@ -0,0 +1,701 @@
+/*
+ * sabresd_battery.c - Maxim 8903 USB/Adapter Charger Driver
+ *
+ * Copyright (C) 2011 Samsung Electronics
+ * Copyright (C) 2011-2012 Freescale Semiconductor, Inc.
+ * Based on max8903_charger.c
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+ *
+ */
+
+#include <linux/gpio.h>
+#include <linux/interrupt.h>
+#include <linux/slab.h>
+#include <linux/power_supply.h>
+#include <linux/platform_device.h>
+#include <linux/power/sabresd_battery.h>
+#include <linux/sort.h>
+
+
+#define BATTERY_UPDATE_INTERVAL 5 /*seconds*/
+#define LOW_VOLT_THRESHOLD 2800000
+#define HIGH_VOLT_THRESHOLD 4200000
+#define ADC_SAMPLE_COUNT 6
+
+struct max8903_data {
+ struct max8903_pdata *pdata;
+ struct device *dev;
+ struct power_supply psy;
+ bool fault;
+ bool usb_in;
+ bool ta_in;
+ bool chg_state;
+ struct delayed_work work;
+ unsigned int interval;
+ unsigned short thermal_raw;
+ int voltage_uV;
+ int current_uA;
+ int battery_status;
+ int charger_online;
+ int charger_voltage_uV;
+ int real_capacity;
+ int percent;
+ int old_percent;
+ struct power_supply bat;
+ struct mutex work_lock;
+};
+
+typedef struct {
+ u32 voltage;
+ u32 percent;
+} battery_capacity , *pbattery_capacity;
+
+static bool capacity_changed_flag;
+
+static battery_capacity chargingTable[] = {
+ {4146, 100},
+ {4133, 99},
+ {4123, 98},
+ {4115, 97},
+ {4090, 96},
+ {4075, 95},
+ {4060, 94},
+ {4045, 93},
+ {4030, 92},
+ {4015, 91},
+ {4000, 90},
+ {3900, 85},
+ {3790, 80},
+ {3760, 75},
+ {3730, 70},
+ {3700, 65},
+ {3680, 60},
+ {3660, 55},
+ {3640, 50},
+ {3600, 45},
+ {3550, 40},
+ {3510, 35},
+ {3450, 30},
+ {3310, 25},
+ {3240, 20},
+ {3180, 15},
+ {3030, 10},
+ {2820, 5},
+ {2800, 0},
+ {0, 0}
+};
+static battery_capacity dischargingTable[] = {
+ {4110, 100},
+ {4020, 99},
+ {3950, 98},
+ {3920, 97},
+ {3890, 96},
+ {3860, 96},
+ {3830, 95},
+ {3800, 94},
+ {3760, 93},
+ {3730, 92},
+ {3700, 91},
+ {3670, 90},
+ {3630, 85},
+ {3600, 80},
+ {3570, 75},
+ {3545, 70},
+ {3515, 65},
+ {3480, 60},
+ {3445, 55},
+ {3410, 50},
+ {3375, 45},
+ {3340, 40},
+ {3300, 35},
+ {3250, 30},
+ {3200, 25},
+ {3150, 20},
+ {3090, 15},
+ {3020, 10},
+ {2820, 5},
+ {2800, 0},
+ {0, 0}
+};
+
+u32 calibrate_battery_capability_percent(struct max8903_data *data)
+{
+ u8 i;
+ pbattery_capacity pTable;
+ u32 tableSize;
+ if (data->battery_status == POWER_SUPPLY_STATUS_DISCHARGING) {
+ pTable = dischargingTable;
+ tableSize = sizeof(dischargingTable)/sizeof(dischargingTable[0]);
+ } else {
+ pTable = chargingTable;
+ tableSize = sizeof(chargingTable)/sizeof(chargingTable[0]);
+ }
+ for (i = 0; i < tableSize; i++) {
+ if (data->voltage_uV >= pTable[i].voltage)
+ return pTable[i].percent;
+ }
+
+ return 0;
+}
+
+static enum power_supply_property max8903_charger_props[] = {
+ POWER_SUPPLY_PROP_ONLINE,
+};
+
+static enum power_supply_property max8903_battery_props[] = {
+ POWER_SUPPLY_PROP_VOLTAGE_NOW,
+ POWER_SUPPLY_PROP_STATUS,
+ POWER_SUPPLY_PROP_PRESENT,
+ POWER_SUPPLY_PROP_CAPACITY,
+ POWER_SUPPLY_PROP_VOLTAGE_MAX_DESIGN,
+ POWER_SUPPLY_PROP_VOLTAGE_MIN_DESIGN,
+ POWER_SUPPLY_PROP_HEALTH,
+};
+
+extern u32 max11801_read_adc(void);
+
+static void max8903_charger_update_status(struct max8903_data *data)
+{
+ if (data->usb_in || data->ta_in)
+ data->charger_online = 1;
+ else
+ data->charger_online = 0;
+ if (data->charger_online == 0) {
+ data->battery_status = POWER_SUPPLY_STATUS_DISCHARGING;
+ } else {
+ if (data->pdata->chg) {
+ if (gpio_get_value(data->pdata->chg) == 0) {
+ data->battery_status = POWER_SUPPLY_STATUS_CHARGING;
+ } else if ((data->usb_in || data->ta_in) &&
+ gpio_get_value(data->pdata->chg) == 1) {
+ if (data->percent == 100)
+ data->battery_status = POWER_SUPPLY_STATUS_FULL;
+ else
+ data->battery_status = POWER_SUPPLY_STATUS_NOT_CHARGING;
+ }
+ }
+ }
+ pr_debug("chg: %d \n", gpio_get_value(data->pdata->chg));
+}
+static int cmp_func(const void *_a, const void *_b)
+{
+ const int *a = _a, *b = _b;
+
+ if (*a > *b)
+ return 1;
+ if (*a < *b)
+ return -1;
+ return 0;
+}
+u32 calibration_voltage(struct max8903_data *data)
+{
+ int volt[ADC_SAMPLE_COUNT];
+ u32 voltage_data;
+ int i;
+ for (i = 0; i < ADC_SAMPLE_COUNT; i++) {
+ if (data->charger_online == 0) {
+ /* ADC offset when battery is discharger*/
+ volt[i] = max11801_read_adc()-1494;
+ } else {
+ volt[i] = max11801_read_adc()-1545;
+ }
+ }
+ sort(volt, i, 4, cmp_func, NULL);
+ for (i = 0; i < ADC_SAMPLE_COUNT; i++)
+ pr_debug("volt_sorted[%2d]: %d\n", i, volt[i]);
+ /* get the average of second max/min of remained. */
+ voltage_data = (volt[2] + volt[ADC_SAMPLE_COUNT - 3]) / 2;
+ return voltage_data;
+}
+
+static void max8903_battery_update_status(struct max8903_data *data)
+{
+ static int counter;
+ mutex_lock(&data->work_lock);
+ data->voltage_uV = calibration_voltage(data);
+ data->percent = calibrate_battery_capability_percent(data);
+ if (data->percent != data->old_percent) {
+ data->old_percent = data->percent;
+ capacity_changed_flag = true;
+ }
+ if ((capacity_changed_flag == true) && (data->charger_online)) {
+ counter++;
+ if (counter > 2) {
+ counter = 0;
+ capacity_changed_flag = false;
+ power_supply_changed(&data->bat);
+ }
+ }
+ mutex_unlock(&data->work_lock);
+}
+
+static int max8903_battery_get_property(struct power_supply *bat,
+ enum power_supply_property psp,
+ union power_supply_propval *val)
+{
+ struct max8903_data *di = container_of(bat,
+ struct max8903_data, bat);
+ static unsigned long last;
+ switch (psp) {
+ case POWER_SUPPLY_PROP_STATUS:
+ val->intval = POWER_SUPPLY_STATUS_UNKNOWN;
+ if (di->pdata->chg) {
+ if ((di->usb_in || di->ta_in) && gpio_get_value(di->pdata->chg) == 0) {
+ val->intval = POWER_SUPPLY_STATUS_CHARGING;
+ } else if ((di->usb_in || di->ta_in) && gpio_get_value(di->pdata->chg) == 1) {
+ if (di->percent == 100)
+ di->battery_status = POWER_SUPPLY_STATUS_FULL;
+ else
+ di->battery_status = POWER_SUPPLY_STATUS_NOT_CHARGING;
+ }
+ else {
+ val->intval = POWER_SUPPLY_STATUS_DISCHARGING;
+ }
+ }
+ di->battery_status = val->intval;
+ return 0;
+ default:
+ break;
+ }
+ if (!last || time_after(jiffies, last + HZ / 2)) {
+ last = jiffies;
+ max8903_charger_update_status(di);
+ max8903_battery_update_status(di);
+ }
+ switch (psp) {
+ case POWER_SUPPLY_PROP_VOLTAGE_NOW:
+ val->intval = di->voltage_uV;
+ break;
+ case POWER_SUPPLY_PROP_CHARGE_NOW:
+ val->intval = 0;
+ break;
+ case POWER_SUPPLY_PROP_VOLTAGE_MAX_DESIGN:
+ val->intval = HIGH_VOLT_THRESHOLD;
+ break;
+ case POWER_SUPPLY_PROP_VOLTAGE_MIN_DESIGN:
+ val->intval = LOW_VOLT_THRESHOLD;
+ break;
+ case POWER_SUPPLY_PROP_PRESENT:
+ val->intval = 1;
+ break;
+ case POWER_SUPPLY_PROP_CAPACITY:
+ val->intval = di->percent < 0 ? 0 :
+ (di->percent > 100 ? 100 : di->percent);
+ break;
+ case POWER_SUPPLY_PROP_HEALTH:
+ val->intval = POWER_SUPPLY_HEALTH_GOOD;
+ if (di->fault)
+ val->intval = POWER_SUPPLY_HEALTH_UNSPEC_FAILURE;
+ break;
+ default:
+ return -EINVAL;
+ }
+
+ return 0;
+}
+static int max8903_get_property(struct power_supply *psy,
+ enum power_supply_property psp,
+ union power_supply_propval *val)
+{
+ struct max8903_data *data = container_of(psy,
+ struct max8903_data, psy);
+
+ switch (psp) {
+ case POWER_SUPPLY_PROP_ONLINE:
+ val->intval = 0;
+ if (data->usb_in || data->ta_in)
+ val->intval = 1;
+ data->charger_online = val->intval;
+ break;
+ default:
+ return -EINVAL;
+ }
+ return 0;
+}
+
+static irqreturn_t max8903_dcin(int irq, void *_data)
+{
+ struct max8903_data *data = _data;
+ struct max8903_pdata *pdata = data->pdata;
+ bool ta_in;
+
+ ta_in = gpio_get_value(pdata->dok) ? false : true;
+
+ if (ta_in == data->ta_in)
+ return IRQ_HANDLED;
+
+ data->ta_in = ta_in;
+ pr_info("TA(DC-IN) Charger %s.\n", ta_in ?
+ "Connected" : "Disconnected");
+ power_supply_changed(&data->psy);
+ power_supply_changed(&data->bat);
+ return IRQ_HANDLED;
+}
+
+static irqreturn_t max8903_usbin(int irq, void *_data)
+{
+ struct max8903_data *data = _data;
+ struct max8903_pdata *pdata = data->pdata;
+ bool usb_in;
+
+ usb_in = gpio_get_value(pdata->uok) ? false : true;
+
+ if (usb_in == data->usb_in)
+ return IRQ_HANDLED;
+
+ data->usb_in = usb_in;
+
+ pr_info("USB Charger %s.\n", usb_in ?
+ "Connected" : "Disconnected");
+ power_supply_changed(&data->psy);
+ power_supply_changed(&data->bat);
+ return IRQ_HANDLED;
+}
+
+static irqreturn_t max8903_fault(int irq, void *_data)
+{
+ struct max8903_data *data = _data;
+ struct max8903_pdata *pdata = data->pdata;
+ bool fault;
+
+ fault = gpio_get_value(pdata->flt) ? false : true;
+
+ if (fault == data->fault)
+ return IRQ_HANDLED;
+
+ data->fault = fault;
+
+ if (fault)
+ dev_err(data->dev, "Charger suffers a fault and stops.\n");
+ else
+ dev_err(data->dev, "Charger recovered from a fault.\n");
+ return IRQ_HANDLED;
+}
+
+static irqreturn_t max8903_chg(int irq, void *_data)
+{
+ struct max8903_data *data = _data;
+ struct max8903_pdata *pdata = data->pdata;
+ int chg_state;
+
+ chg_state = gpio_get_value(pdata->chg) ? false : true;
+
+ if (chg_state == data->chg_state)
+ return IRQ_HANDLED;
+
+ data->chg_state = chg_state;
+ return IRQ_HANDLED;
+}
+
+static void max8903_battery_work(struct work_struct *work)
+{
+ struct max8903_data *data;
+ data = container_of(work, struct max8903_data, work.work);
+ data->interval = HZ * BATTERY_UPDATE_INTERVAL;
+
+ max8903_charger_update_status(data);
+ max8903_battery_update_status(data);
+
+ pr_debug("battery voltage: %4d mV\n" , data->voltage_uV);
+ pr_debug("charger online status: %d\n" , data->charger_online);
+ pr_debug("battery status : %d\n" , data->battery_status);
+ pr_debug("battery capacity percent: %3d\n" , data->percent);
+ pr_debug("data->usb_in: %x , data->ta_in: %x \n" , data->usb_in, data->ta_in);
+ /* reschedule for the next time */
+ schedule_delayed_work(&data->work, data->interval);
+}
+static __devinit int max8903_probe(struct platform_device *pdev)
+{
+ struct max8903_data *data;
+ struct device *dev = &pdev->dev;
+ struct max8903_pdata *pdata = pdev->dev.platform_data;
+ int ret = 0;
+ int gpio = 0;
+ int ta_in = 0;
+ int usb_in = 0;
+ int retval;
+
+ data = kzalloc(sizeof(struct max8903_data), GFP_KERNEL);
+ if (data == NULL) {
+ dev_err(dev, "Cannot allocate memory.\n");
+ return -ENOMEM;
+ }
+ data->pdata = pdata;
+ data->dev = dev;
+
+ platform_set_drvdata(pdev, data);
+ capacity_changed_flag = false;
+ data->usb_in = 0;
+ data->ta_in = 0;
+
+ if (pdata->dc_valid == false && pdata->usb_valid == false) {
+ dev_err(dev, "No valid power sources.\n");
+ printk(KERN_INFO "No valid power sources.\n");
+ ret = -EINVAL;
+ goto err;
+ }
+ if (pdata->dc_valid) {
+ if (pdata->dok && gpio_is_valid(pdata->dok)) {
+ gpio = pdata->dok; /* PULL_UPed Interrupt */
+ /* set DOK gpio input */
+ ret = gpio_request(gpio, "max8903-DOK");
+ if (ret) {
+ printk(KERN_ERR"request max8903-DOK error!!\n");
+ goto err;
+ } else {
+ gpio_direction_input(gpio);
+ }
+ ta_in = gpio_get_value(gpio) ? 0 : 1;
+ } else if (pdata->dok && gpio_is_valid(pdata->dok) && pdata->dcm_always_high) {
+ ta_in = pdata->dok; /* PULL_UPed Interrupt */
+ ta_in = gpio_get_value(gpio) ? 0 : 1;
+ } else {
+ dev_err(dev, "When DC is wired, DOK and DCM should"
+ " be wired as well."
+ " or set dcm always high\n");
+ ret = -EINVAL;
+ goto err;
+ }
+ }
+ if (pdata->usb_valid) {
+ if (pdata->uok && gpio_is_valid(pdata->uok)) {
+ gpio = pdata->uok;
+ /* set UOK gpio input */
+ ret = gpio_request(gpio, "max8903-UOK");
+ if (ret) {
+ printk(KERN_ERR"request max8903-UOK error!!\n");
+ goto err;
+ } else {
+ gpio_direction_input(gpio);
+ }
+ usb_in = gpio_get_value(gpio) ? 0 : 1;
+ } else {
+ dev_err(dev, "When USB is wired, UOK should be wired."
+ "as well.\n");
+ ret = -EINVAL;
+ goto err;
+ }
+ }
+ if (pdata->chg) {
+ if (!gpio_is_valid(pdata->chg)) {
+ dev_err(dev, "Invalid pin: chg.\n");
+ ret = -EINVAL;
+ goto err;
+ }
+ /* set CHG gpio input */
+ ret = gpio_request(pdata->chg, "max8903-CHG");
+ if (ret) {
+ printk(KERN_ERR"request max8903-CHG error!!\n");
+ goto err;
+ } else {
+ gpio_direction_input(pdata->chg);
+ }
+ }
+ if (pdata->flt) {
+ if (!gpio_is_valid(pdata->flt)) {
+ dev_err(dev, "Invalid pin: flt.\n");
+ ret = -EINVAL;
+ goto err;
+ }
+ /* set FLT gpio input */
+ ret = gpio_request(pdata->flt, "max8903-FLT");
+ if (ret) {
+ printk(KERN_ERR"request max8903-FLT error!!\n");
+ goto err;
+ } else {
+ gpio_direction_input(pdata->flt);
+ }
+ }
+ if (pdata->usus) {
+ if (!gpio_is_valid(pdata->usus)) {
+ dev_err(dev, "Invalid pin: usus.\n");
+ ret = -EINVAL;
+ goto err;
+ }
+ }
+ mutex_init(&data->work_lock);
+ data->fault = false;
+ data->ta_in = ta_in;
+ data->usb_in = usb_in;
+ data->psy.name = "max8903-ac";
+ data->psy.type = POWER_SUPPLY_TYPE_MAINS;
+ data->psy.get_property = max8903_get_property;
+ data->psy.properties = max8903_charger_props;
+ data->psy.num_properties = ARRAY_SIZE(max8903_charger_props);
+ ret = power_supply_register(dev, &data->psy);
+ if (ret) {
+ dev_err(dev, "failed: power supply register.\n");
+ goto err_psy;
+ }
+ data->bat.name = "max8903-charger";
+ data->bat.type = POWER_SUPPLY_TYPE_BATTERY;
+ data->bat.properties = max8903_battery_props;
+ data->bat.num_properties = ARRAY_SIZE(max8903_battery_props);
+ data->bat.get_property = max8903_battery_get_property;
+ data->bat.use_for_apm = 1;
+ retval = power_supply_register(&pdev->dev, &data->bat);
+ if (retval) {
+ dev_err(data->dev, "failed to register battery\n");
+ goto battery_failed;
+ }
+ INIT_DELAYED_WORK(&data->work, max8903_battery_work);
+ schedule_delayed_work(&data->work, data->interval);
+ if (pdata->dc_valid) {
+ ret = request_threaded_irq(gpio_to_irq(pdata->dok),
+ NULL, max8903_dcin,
+ IRQF_TRIGGER_FALLING | IRQF_TRIGGER_RISING,
+ "MAX8903 DC IN", data);
+ if (ret) {
+ dev_err(dev, "Cannot request irq %d for DC (%d)\n",
+ gpio_to_irq(pdata->dok), ret);
+ goto err_usb_irq;
+ }
+ }
+
+ if (pdata->usb_valid) {
+ ret = request_threaded_irq(gpio_to_irq(pdata->uok),
+ NULL, max8903_usbin,
+ IRQF_TRIGGER_FALLING | IRQF_TRIGGER_RISING,
+ "MAX8903 USB IN", data);
+ if (ret) {
+ dev_err(dev, "Cannot request irq %d for USB (%d)\n",
+ gpio_to_irq(pdata->uok), ret);
+ goto err_dc_irq;
+ }
+ }
+
+ if (pdata->flt) {
+ ret = request_threaded_irq(gpio_to_irq(pdata->flt),
+ NULL, max8903_fault,
+ IRQF_TRIGGER_FALLING | IRQF_TRIGGER_RISING,
+ "MAX8903 Fault", data);
+ if (ret) {
+ dev_err(dev, "Cannot request irq %d for Fault (%d)\n",
+ gpio_to_irq(pdata->flt), ret);
+ goto err_flt_irq;
+ }
+ }
+
+ if (pdata->chg) {
+ ret = request_threaded_irq(gpio_to_irq(pdata->chg),
+ NULL, max8903_chg,
+ IRQF_TRIGGER_FALLING | IRQF_TRIGGER_RISING,
+ "MAX8903 Fault", data);
+ if (ret) {
+ dev_err(dev, "Cannot request irq %d for Fault (%d)\n",
+ gpio_to_irq(pdata->flt), ret);
+ goto err_chg_irq;
+ }
+ }
+ return 0;
+err_psy:
+ power_supply_unregister(&data->psy);
+battery_failed:
+ power_supply_unregister(&data->bat);
+err_usb_irq:
+ if (pdata->usb_valid)
+ free_irq(gpio_to_irq(pdata->uok), data);
+ cancel_delayed_work(&data->work);
+err_dc_irq:
+ if (pdata->dc_valid)
+ free_irq(gpio_to_irq(pdata->dok), data);
+ cancel_delayed_work(&data->work);
+err_flt_irq:
+ if (pdata->usb_valid)
+ free_irq(gpio_to_irq(pdata->uok), data);
+ cancel_delayed_work(&data->work);
+err_chg_irq:
+ if (pdata->dc_valid)
+ free_irq(gpio_to_irq(pdata->dok), data);
+ cancel_delayed_work(&data->work);
+err:
+ if (pdata->uok)
+ gpio_free(pdata->uok);
+ if (pdata->dok)
+ gpio_free(pdata->dok);
+ if (pdata->flt)
+ gpio_free(pdata->flt);
+ if (pdata->chg)
+ gpio_free(pdata->chg);
+ kfree(data);
+ return ret;
+}
+
+static __devexit int max8903_remove(struct platform_device *pdev)
+{
+ struct max8903_data *data = platform_get_drvdata(pdev);
+ if (data) {
+ struct max8903_pdata *pdata = data->pdata;
+ if (pdata->flt)
+ free_irq(gpio_to_irq(pdata->flt), data);
+ if (pdata->usb_valid)
+ free_irq(gpio_to_irq(pdata->uok), data);
+ if (pdata->dc_valid)
+ free_irq(gpio_to_irq(pdata->dok), data);
+ if (pdata->dc_valid)
+ free_irq(gpio_to_irq(pdata->chg), data);
+ cancel_delayed_work_sync(&data->work);
+ power_supply_unregister(&data->psy);
+ power_supply_unregister(&data->bat);
+ kfree(data);
+ }
+ return 0;
+}
+
+static int max8903_suspend(struct platform_device *pdev,
+ pm_message_t state)
+{
+ struct max8903_data *data = platform_get_drvdata(pdev);
+
+ cancel_delayed_work(&data->work);
+ return 0;
+}
+
+static int max8903_resume(struct platform_device *pdev)
+{
+ struct max8903_data *data = platform_get_drvdata(pdev);
+
+ schedule_delayed_work(&data->work, BATTERY_UPDATE_INTERVAL);
+ return 0;
+
+}
+
+static struct platform_driver max8903_driver = {
+ .probe = max8903_probe,
+ .remove = __devexit_p(max8903_remove),
+ .suspend = max8903_suspend,
+ .resume = max8903_resume,
+ .driver = {
+ .name = "max8903-charger",
+ .owner = THIS_MODULE,
+ },
+};
+
+static int __init max8903_init(void)
+{
+ return platform_driver_register(&max8903_driver);
+}
+module_init(max8903_init);
+
+static void __exit max8903_exit(void)
+{
+ platform_driver_unregister(&max8903_driver);
+}
+module_exit(max8903_exit);
+
+MODULE_LICENSE("GPL v2");
+MODULE_AUTHOR("Freescale Semiconductor, Inc.");
+MODULE_DESCRIPTION("Sabresd Battery Driver");
+MODULE_ALIAS("sabresd_battery");
diff --git a/drivers/regulator/core.c b/drivers/regulator/core.c
index 0a6deb268b38..a79163f0ae40 100644
--- a/drivers/regulator/core.c
+++ b/drivers/regulator/core.c
@@ -276,7 +276,7 @@ static ssize_t regulator_uV_show(struct device *dev,
return ret;
}
static ssize_t regulator_uV_store(struct device *dev,
- struct device_attribute *attr, char *buf,
+ struct device_attribute *attr, const char *buf,
size_t count)
{
struct regulator_dev *rdev = dev_get_drvdata(dev);
diff --git a/drivers/regulator/pfuze100-regulator.c b/drivers/regulator/pfuze100-regulator.c
index 34ca0fb45961..e2aaa2d4e889 100644
--- a/drivers/regulator/pfuze100-regulator.c
+++ b/drivers/regulator/pfuze100-regulator.c
@@ -657,6 +657,21 @@ static int __devexit pfuze100_regulator_remove(struct platform_device *pdev)
return 0;
}
+#ifdef CONFIG_MX6_INTER_LDO_BYPASS
+int cpu_freq_suspend_in; /*judge for in suspend or not*/
+static int pfuze100_regulator_suspend(struct platform_device *pdev,
+ pm_message_t state)
+{
+ cpu_freq_suspend_in = 1;
+ return 0;
+}
+
+static int pfuze100_regulator_resume(struct platform_device *pdev)
+{
+ cpu_freq_suspend_in = 0;
+ return 0;
+}
+#endif
static struct platform_driver pfuze100_regulator_driver = {
.driver = {
.name = "pfuze100-regulator",
@@ -664,6 +679,10 @@ static struct platform_driver pfuze100_regulator_driver = {
},
.remove = __devexit_p(pfuze100_regulator_remove),
.probe = pfuze100_regulator_probe,
+#ifdef CONFIG_MX6_INTER_LDO_BYPASS
+ .suspend = pfuze100_regulator_suspend,
+ .resume = pfuze100_regulator_resume,
+#endif
};
static int __init pfuze100_regulator_init(void)
diff --git a/drivers/tty/serial/imx.c b/drivers/tty/serial/imx.c
index 781e11f5cf34..beba18533371 100644
--- a/drivers/tty/serial/imx.c
+++ b/drivers/tty/serial/imx.c
@@ -215,6 +215,12 @@ struct imx_port {
wait_queue_head_t dma_wait;
};
+struct imx_port_ucrs {
+ unsigned int ucr1;
+ unsigned int ucr2;
+ unsigned int ucr3;
+};
+
#ifdef CONFIG_IRDA
#define USE_IRDA(sport) ((sport)->use_irda)
#else
@@ -222,6 +228,27 @@ struct imx_port {
#endif
/*
+ * Save and restore functions for UCR1, UCR2 and UCR3 registers
+ */
+static void imx_port_ucrs_save(struct uart_port *port,
+ struct imx_port_ucrs *ucr)
+{
+ /* save control registers */
+ ucr->ucr1 = readl(port->membase + UCR1);
+ ucr->ucr2 = readl(port->membase + UCR2);
+ ucr->ucr3 = readl(port->membase + UCR3);
+}
+
+static void imx_port_ucrs_restore(struct uart_port *port,
+ struct imx_port_ucrs *ucr)
+{
+ /* restore control registers */
+ writel(ucr->ucr1, port->membase + UCR1);
+ writel(ucr->ucr2, port->membase + UCR2);
+ writel(ucr->ucr3, port->membase + UCR3);
+}
+
+/*
* Handle any change of modem status signal since we were last called.
*/
static void imx_mctrl_check(struct imx_port *sport)
@@ -553,10 +580,8 @@ static irqreturn_t imx_rxint(int irq, void *dev_id)
continue;
}
- spin_unlock_irqrestore(&sport->port.lock, flags);
if (uart_handle_sysrq_char(&sport->port, (unsigned char)rx))
continue;
- spin_lock_irqsave(&sport->port.lock, flags);
if (unlikely(rx & URXD_ERR)) {
if (rx & URXD_BRK)
@@ -1406,6 +1431,70 @@ imx_verify_port(struct uart_port *port, struct serial_struct *ser)
return ret;
}
+#if defined(CONFIG_CONSOLE_POLL)
+static int imx_poll_get_char(struct uart_port *port)
+{
+ struct imx_port_ucrs old_ucr;
+ unsigned int status;
+ unsigned char c;
+
+ /* save control registers */
+ imx_port_ucrs_save(port, &old_ucr);
+
+ /* disable interrupts */
+ writel(UCR1_UARTEN, port->membase + UCR1);
+ writel(old_ucr.ucr2 & ~(UCR2_ATEN | UCR2_RTSEN | UCR2_ESCI),
+ port->membase + UCR2);
+ writel(old_ucr.ucr3 & ~(UCR3_DCD | UCR3_RI | UCR3_DTREN),
+ port->membase + UCR3);
+
+ /* poll */
+ do {
+ status = readl(port->membase + USR2);
+ } while (~status & USR2_RDR);
+
+ /* read */
+ c = readl(port->membase + URXD0);
+
+ /* restore control registers */
+ imx_port_ucrs_restore(port, &old_ucr);
+
+ return c;
+}
+
+static void imx_poll_put_char(struct uart_port *port, unsigned char c)
+{
+ struct imx_port_ucrs old_ucr;
+ unsigned int status;
+
+ /* save control registers */
+ imx_port_ucrs_save(port, &old_ucr);
+
+ /* disable interrupts */
+ writel(UCR1_UARTEN, port->membase + UCR1);
+ writel(old_ucr.ucr2 & ~(UCR2_ATEN | UCR2_RTSEN | UCR2_ESCI),
+ port->membase + UCR2);
+ writel(old_ucr.ucr3 & ~(UCR3_DCD | UCR3_RI | UCR3_DTREN),
+ port->membase + UCR3);
+
+ /* drain */
+ do {
+ status = readl(port->membase + USR1);
+ } while (~status & USR1_TRDY);
+
+ /* write */
+ writel(c, port->membase + URTX0);
+
+ /* flush */
+ do {
+ status = readl(port->membase + USR2);
+ } while (~status & USR2_TXDC);
+
+ /* restore control registers */
+ imx_port_ucrs_restore(port, &old_ucr);
+}
+#endif
+
static struct uart_ops imx_pops = {
.tx_empty = imx_tx_empty,
.set_mctrl = imx_set_mctrl,
@@ -1423,6 +1512,10 @@ static struct uart_ops imx_pops = {
.request_port = imx_request_port,
.config_port = imx_config_port,
.verify_port = imx_verify_port,
+#if defined(CONFIG_CONSOLE_POLL)
+ .poll_get_char = imx_poll_get_char,
+ .poll_put_char = imx_poll_put_char,
+#endif
};
static struct imx_port *imx_ports[UART_NR];
@@ -1445,15 +1538,22 @@ static void
imx_console_write(struct console *co, const char *s, unsigned int count)
{
struct imx_port *sport = imx_ports[co->index];
- unsigned int old_ucr1, old_ucr2, ucr1;
+ struct imx_port_ucrs old_ucr;
+ unsigned int ucr1;
unsigned long flags;
+ int locked = 1;
+
+ local_irq_save(flags);
+ if (sport->port.sysrq)
+ locked = 0;
+ else
+ spin_lock(&sport->port.lock);
- spin_lock_irqsave(&sport->port.lock, flags);
/*
- * First, save UCR1/2 and then disable interrupts
+ * First, save UCR1/2/3 and then disable interrupts
*/
- ucr1 = old_ucr1 = readl(sport->port.membase + UCR1);
- old_ucr2 = readl(sport->port.membase + UCR2);
+ imx_port_ucrs_save(&sport->port, &old_ucr);
+ ucr1 = old_ucr.ucr1;
if (cpu_is_mx1())
ucr1 |= MX1_UCR1_UARTCLKEN;
@@ -1462,19 +1562,21 @@ imx_console_write(struct console *co, const char *s, unsigned int count)
writel(ucr1, sport->port.membase + UCR1);
- writel(old_ucr2 | UCR2_TXEN, sport->port.membase + UCR2);
+ writel(old_ucr.ucr2 | UCR2_TXEN, sport->port.membase + UCR2);
uart_console_write(&sport->port, s, count, imx_console_putchar);
/*
* Finally, wait for transmitter to become empty
- * and restore UCR1/2
+ * and restore UCR1/2/3
*/
while (!(readl(sport->port.membase + USR2) & USR2_TXDC));
- writel(old_ucr1, sport->port.membase + UCR1);
- writel(old_ucr2, sport->port.membase + UCR2);
- spin_unlock_irqrestore(&sport->port.lock, flags);
+ imx_port_ucrs_restore(&sport->port, &old_ucr);
+
+ if (locked)
+ spin_unlock(&sport->port.lock);
+ local_irq_restore(flags);
}
/*
diff --git a/drivers/usb/gadget/zero.c b/drivers/usb/gadget/zero.c
index 5440b0eb71ac..c6e5d054b8bc 100644
--- a/drivers/usb/gadget/zero.c
+++ b/drivers/usb/gadget/zero.c
@@ -107,16 +107,26 @@ module_param(loopdefault, bool, S_IRUGO|S_IWUSR);
#else
#define DRIVER_VENDOR_NUM 0x1a0a /* OTG test device IDs */
#define DRIVER_PRODUCT_NUM 0xbadd
-#define DEFAULT_AUTORESUME 5
+#define DEFAULT_AUTORESUME 5000
#endif
+static unsigned startms;
+
/* If the optional "autoresume" mode is enabled, it provides good
* functional coverage for the "USBCV" test harness from USB-IF.
* It's always set if OTG mode is enabled.
*/
-unsigned autoresume = DEFAULT_AUTORESUME;
+static unsigned autoresume = DEFAULT_AUTORESUME;
module_param(autoresume, uint, S_IRUGO);
-MODULE_PARM_DESC(autoresume, "zero, or seconds before remote wakeup");
+MODULE_PARM_DESC(autoresume, "minimum milliseconds before sending remote wakeup");
+
+static unsigned interval;
+module_param(interval, uint, S_IRUGO);
+MODULE_PARM_DESC(interval, "zero, or milliseconds for interval remote wakeup time");
+
+static unsigned endms = 5000;
+module_param(endms, uint, S_IRUGO);
+MODULE_PARM_DESC(endms, "max milliseconds before sending remote wakeup");
/*-------------------------------------------------------------------------*/
@@ -250,8 +260,11 @@ static void zero_suspend(struct usb_composite_dev *cdev)
return;
if (autoresume) {
- mod_timer(&autoresume_timer, jiffies + (HZ * autoresume));
- DBG(cdev, "suspend, wakeup in %d seconds\n", autoresume);
+ mod_timer(&autoresume_timer, jiffies + msecs_to_jiffies(startms));
+ DBG(cdev, "suspend, wakeup in %d milliseconds\n", startms);
+ startms += interval;
+ if (startms == endms)
+ startms = autoresume;
} else
DBG(cdev, "%s\n", __func__);
}
@@ -327,6 +340,10 @@ static int __ref zero_bind(struct usb_composite_dev *cdev)
init_utsname()->sysname, init_utsname()->release,
gadget->name);
+ startms = autoresume;
+ if (autoresume > 0 && autoresume < 5)
+ pr_warning("%s: time before sending remote wakeup is less than 5ms, should not send resume signal.\n",
+ longname);
return 0;
}
@@ -336,6 +353,11 @@ static int zero_unbind(struct usb_composite_dev *cdev)
return 0;
}
+static void zero_disconnect(struct usb_composite_dev *cdev)
+{
+ startms = autoresume;
+}
+
static struct usb_composite_driver zero_driver = {
.name = "zero",
.dev = &device_desc,
@@ -343,6 +365,7 @@ static struct usb_composite_driver zero_driver = {
.unbind = zero_unbind,
.suspend = zero_suspend,
.resume = zero_resume,
+ .disconnect = zero_disconnect,
};
MODULE_AUTHOR("David Brownell");
diff --git a/drivers/video/mxc/Kconfig b/drivers/video/mxc/Kconfig
index fe9de7362544..f0afddc95bd3 100644
--- a/drivers/video/mxc/Kconfig
+++ b/drivers/video/mxc/Kconfig
@@ -104,6 +104,17 @@ config FB_MXC_EINK_AUTO_UPDATE_MODE
default n
depends on FB_MXC_EINK_PANEL
+config FB_MXC_SIPIX_PANEL
+ depends on FB_MXC
+ depends on DMA_ENGINE
+ select FB_DEFERRED_IO
+ tristate "SIPIX Panel Framebuffer"
+
+config FB_MXC_SIPIX_AUTO_UPDATE_MODE
+ bool "SIPIX Auto-update Mode Support"
+ default n
+ depends on FB_MXC_SIPIX_PANEL
+
config FB_MXC_ELCDIF_FB
depends on FB && ARCH_MXC
tristate "Support MXC ELCDIF framebuffer"
diff --git a/drivers/video/mxc/Makefile b/drivers/video/mxc/Makefile
index 084837c70929..21aef052ecd6 100644
--- a/drivers/video/mxc/Makefile
+++ b/drivers/video/mxc/Makefile
@@ -25,4 +25,5 @@ obj-$(CONFIG_FB_MXC_SEIKO_WVGA_SYNC_PANEL) += mxcfb_seiko_wvga.o
obj-$(CONFIG_FB_MXC_TVOUT_CH7024) += ch7024.o
obj-$(CONFIG_FB_MXC_CH7026) += mxcfb_ch7026.o
obj-$(CONFIG_FB_MXC_EINK_PANEL) += mxc_epdc_fb.o
+obj-$(CONFIG_FB_MXC_SIPIX_PANEL) += mxc_spdc_fb.o
obj-$(CONFIG_FB_MXC_ELCDIF_FB) += mxc_elcdif_fb.o
diff --git a/drivers/video/mxc/epdc_regs.h b/drivers/video/mxc/epdc_regs.h
index 50d352e7a212..cc7b5000db18 100644
--- a/drivers/video/mxc/epdc_regs.h
+++ b/drivers/video/mxc/epdc_regs.h
@@ -163,9 +163,7 @@ extern void __iomem *epdc_base;
#define EPDC_PIGEON_15_0 (epdc_base + 0xBC0)
#define EPDC_PIGEON_15_1 (epdc_base + 0xBD0)
#define EPDC_PIGEON_15_2 (epdc_base + 0xBE0)
-#define EPDC_PIGEON_16_0 (epdc_base + 0xC00)
-#define EPDC_PIGEON_16_1 (epdc_base + 0xC10)
-#define EPDC_PIGEON_16_2 (epdc_base + 0xC20)
+#define EPDC_WB_ADDR_TCE (epdc_base + 0xC10)
/*
* Register field definitions
diff --git a/drivers/video/mxc/ldb.c b/drivers/video/mxc/ldb.c
index 493abd662036..8b84498fd285 100644
--- a/drivers/video/mxc/ldb.c
+++ b/drivers/video/mxc/ldb.c
@@ -457,6 +457,17 @@ static int ldb_disp_init(struct mxc_dispdrv_handle *disp,
else
ldb->mode = plat_data->mode;
+ if ((ldb->mode == LDB_SIN0) || (ldb->mode == LDB_SIN1)) {
+ ret = ldb->mode - LDB_SIN0;
+ if (plat_data->disp_id != ret) {
+ dev_warn(&ldb->pdev->dev,
+ "change IPU DI%d to IPU DI%d for LDB "
+ "channel%d.\n",
+ plat_data->disp_id, ret, ret);
+ plat_data->disp_id = ret;
+ }
+ }
+
if (ldb->mode == LDB_SPL_DI0) {
reg |= LDB_SPLIT_MODE_EN | LDB_CH0_MODE_EN_TO_DI0
| LDB_CH1_MODE_EN_TO_DI0;
diff --git a/drivers/video/mxc/mxc_edid.c b/drivers/video/mxc/mxc_edid.c
index e8a2b9761b65..f86313df7dea 100644
--- a/drivers/video/mxc/mxc_edid.c
+++ b/drivers/video/mxc/mxc_edid.c
@@ -350,6 +350,16 @@ int mxc_edid_parse_ext_blk(unsigned char *edid,
break;
}
case 0x4: /*Speaker allocation block*/
+ {
+ i = 0;
+ while (i < blklen) {
+ cfg->speaker_alloc = edid[index + 1];
+ index += 3;
+ i += 3;
+ DPRINTK("Speaker Alloc : %02x\n", cfg->speaker_alloc);
+ }
+ break;
+ }
case 0x7: /*User extended block*/
default:
/* skip */
diff --git a/drivers/video/mxc/mxc_elcdif_fb.c b/drivers/video/mxc/mxc_elcdif_fb.c
index 7a5fa6d1900c..2c96eecc111f 100644
--- a/drivers/video/mxc/mxc_elcdif_fb.c
+++ b/drivers/video/mxc/mxc_elcdif_fb.c
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2010-2011 Freescale Semiconductor, Inc.
+ * Copyright (C) 2010-2012 Freescale Semiconductor, Inc.
*/
/*
@@ -128,8 +128,10 @@ static inline void setup_dotclk_panel(u32 pixel_clk,
__raw_writel(BM_ELCDIF_CTRL_SHIFT_NUM_BITS,
elcdif_base + HW_ELCDIF_CTRL_CLR);
+ __raw_writel(BM_ELCDIF_CTRL2_OUTSTANDING_REQS,
+ elcdif_base + HW_ELCDIF_CTRL2_CLR);
__raw_writel(BF_ELCDIF_CTRL2_OUTSTANDING_REQS
- (BV_ELCDIF_CTRL2_OUTSTANDING_REQS__REQ_8),
+ (BV_ELCDIF_CTRL2_OUTSTANDING_REQS__REQ_16),
elcdif_base + HW_ELCDIF_CTRL2_SET);
/* Recover on underflow */
@@ -824,7 +826,7 @@ static int mxc_elcdif_fb_set_par(struct fb_info *fbi)
mxc_init_elcdif();
mxc_elcdif_init_panel();
- dev_dbg(fbi->device, "pixclock = %ul Hz\n",
+ dev_dbg(fbi->device, "pixclock = %lu Hz\n",
(u32) (PICOS2KHZ(fbi->var.pixclock) * 1000UL));
memset(&sig_cfg, 0, sizeof(sig_cfg));
@@ -1369,7 +1371,7 @@ static int mxc_elcdif_fb_suspend(struct platform_device *pdev,
struct mxc_elcdif_fb_data *data = (struct mxc_elcdif_fb_data *)fbi->par;
int saved_blank;
- acquire_console_sem();
+ console_lock();
fb_set_suspend(fbi, 1);
saved_blank = data->cur_blank;
mxc_elcdif_fb_blank(FB_BLANK_POWERDOWN, fbi);
@@ -1388,7 +1390,7 @@ static int mxc_elcdif_fb_suspend(struct platform_device *pdev,
clk_disable(g_elcdif_axi_clk);
g_elcdif_axi_clk_enable = false;
}
- release_console_sem();
+ console_unlock();
return 0;
}
@@ -1397,10 +1399,10 @@ static int mxc_elcdif_fb_resume(struct platform_device *pdev)
struct fb_info *fbi = platform_get_drvdata(pdev);
struct mxc_elcdif_fb_data *data = (struct mxc_elcdif_fb_data *)fbi->par;
- acquire_console_sem();
+ console_lock();
mxc_elcdif_fb_blank(data->next_blank, fbi);
fb_set_suspend(fbi, 0);
- release_console_sem();
+ console_unlock();
return 0;
}
diff --git a/drivers/video/mxc/mxc_epdc_fb.c b/drivers/video/mxc/mxc_epdc_fb.c
index da77373e03a6..ef4916db0436 100644
--- a/drivers/video/mxc/mxc_epdc_fb.c
+++ b/drivers/video/mxc/mxc_epdc_fb.c
@@ -1130,6 +1130,7 @@ static void epdc_init_sequence(struct mxc_epdc_fb_data *fb_data)
epdc_init_settings(fb_data);
__raw_writel(fb_data->waveform_buffer_phys, EPDC_WVADDR);
__raw_writel(fb_data->working_buffer_phys, EPDC_WB_ADDR);
+ __raw_writel(fb_data->working_buffer_phys, EPDC_WB_ADDR_TCE);
fb_data->in_init = true;
epdc_powerup(fb_data);
draw_mode0(fb_data);
@@ -4006,8 +4007,8 @@ static void mxc_epdc_fb_fw_handler(const struct firmware *fw,
clk_enable(fb_data->epdc_clk_pix);
rounded_pix_clk = clk_round_rate(fb_data->epdc_clk_pix, target_pix_clk);
- if (((rounded_pix_clk >= target_pix_clk + target_pix_clk/200) ||
- (rounded_pix_clk <= target_pix_clk - target_pix_clk/200))) {
+ if (((rounded_pix_clk >= target_pix_clk + target_pix_clk/100) ||
+ (rounded_pix_clk <= target_pix_clk - target_pix_clk/100))) {
/* Can't get close enough without changing parent clk */
epdc_parent = clk_get_parent(fb_data->epdc_clk_pix);
rounded_parent_rate = clk_round_rate(epdc_parent, target_pix_clk);
@@ -4018,8 +4019,8 @@ static void mxc_epdc_fb_fw_handler(const struct firmware *fw,
clk_set_rate(epdc_parent, epdc_pix_rate);
rounded_pix_clk = clk_round_rate(fb_data->epdc_clk_pix, target_pix_clk);
- if (((rounded_pix_clk >= target_pix_clk + target_pix_clk/200) ||
- (rounded_pix_clk <= target_pix_clk - target_pix_clk/200)))
+ if (((rounded_pix_clk >= target_pix_clk + target_pix_clk/100) ||
+ (rounded_pix_clk <= target_pix_clk - target_pix_clk/100)))
/* Still can't get a good clock, provide warning */
dev_err(fb_data->dev, "Unable to get an accurate EPDC pix clk"
"desired = %lu, actual = %lu\n", target_pix_clk,
diff --git a/drivers/video/mxc/mxc_ipuv3_fb.c b/drivers/video/mxc/mxc_ipuv3_fb.c
index 11bccff413a8..348bd818ee69 100644
--- a/drivers/video/mxc/mxc_ipuv3_fb.c
+++ b/drivers/video/mxc/mxc_ipuv3_fb.c
@@ -316,15 +316,6 @@ static int mxcfb_set_par(struct fb_info *fbi)
dev_dbg(fbi->device, "Reconfiguring framebuffer\n");
- if (mxc_fbi->dispdrv && mxc_fbi->dispdrv->drv->setup) {
- retval = mxc_fbi->dispdrv->drv->setup(mxc_fbi->dispdrv, fbi);
- if (retval < 0) {
- dev_err(fbi->device, "setup error, dispdrv:%s.\n",
- mxc_fbi->dispdrv->drv->name);
- return -EINVAL;
- }
- }
-
ipu_clear_irq(mxc_fbi->ipu, mxc_fbi->ipu_ch_irq);
ipu_disable_irq(mxc_fbi->ipu, mxc_fbi->ipu_ch_irq);
ipu_clear_irq(mxc_fbi->ipu, mxc_fbi->ipu_ch_nf_irq);
@@ -391,6 +382,15 @@ static int mxcfb_set_par(struct fb_info *fbi)
if (mxc_fbi->next_blank != FB_BLANK_UNBLANK)
return retval;
+ if (mxc_fbi->dispdrv && mxc_fbi->dispdrv->drv->setup) {
+ retval = mxc_fbi->dispdrv->drv->setup(mxc_fbi->dispdrv, fbi);
+ if (retval < 0) {
+ dev_err(fbi->device, "setup error, dispdrv:%s.\n",
+ mxc_fbi->dispdrv->drv->name);
+ return -EINVAL;
+ }
+ }
+
_setup_disp_channel1(fbi);
if (!mxc_fbi->overlay) {
diff --git a/drivers/video/mxc/mxc_spdc_fb.c b/drivers/video/mxc/mxc_spdc_fb.c
new file mode 100644
index 000000000000..37938b9db712
--- /dev/null
+++ b/drivers/video/mxc/mxc_spdc_fb.c
@@ -0,0 +1,4168 @@
+/*
+ * Copyright (C) 2012 Freescale Semiconductor, Inc. All Rights Reserved.
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+ *
+ */
+/*
+ * Based on MXC EPDC Driver, Freescale Solutions, Inc All Rights Reserved.
+ */
+
+#include "mxc_spdc_fb.h"
+
+#define MERGE_OK 0
+#define MERGE_FAIL 1
+#define MERGE_BLOCK 2
+
+#define SPDC_DEFAULT_TEMP 30
+#define TEMP_NO_SET 0xFF
+#define POWER_STATE_OFF 0
+#define POWER_STATE_ON 1
+#define POWER_READY_OFF false
+#define POWER_READY_ON true
+
+#define INIT_UPDATE_MARKER 0x12345678
+#define PAN_UPDATE_MARKER 0x12345679
+
+#define SPDC_MAX_NUM_UPDATES 32
+#define SPDC_MAX_NUM_BUFFERS 2
+#define SPDC_MAX_NUM_PREPROCESS 15
+#define NUM_SCREENS_MIN 2
+#define SPDC_DEFAULT_BPP 16
+
+mxc_spdc_t *g_fb_data;
+
+static int mxc_spdc_fb_send_update(struct mxcfb_update_data *upd_data,
+ struct fb_info *info);
+static int mxc_spdc_fb_wait_update_complete(struct mxcfb_update_marker_data
+ *marker_data, struct fb_info *info);
+
+static const struct mxc_spdc_resolution_map_para spdc_gray_res_map[] = {
+/*define Gray Mode resolution mapping*/
+ {0x18, 600, 800, PORTRAIT},
+ {0x19, 768, 1024, PORTRAIT},
+ {0x1a, 0, 0, RESERVED},
+ {0x1b, 600, 1024, PORTRAIT},
+ {0x1c, 825, 1200, PORTRAIT},
+ {0x1d, 1024, 1280, PORTRAIT},
+ {0x1e, 1200, 1600, PORTRAIT},
+ {0x10, 800, 1024, PORTRAIT},
+ {0x11, 825, 1280, PORTRAIT},
+ {0x12, 800, 1280, PORTRAIT},
+ {0x13, 768, 1280, PORTRAIT},
+ {0x14, 960, 1280, PORTRAIT},
+ {0x0, 800, 600, LANDSCAPE},
+ {0x1, 1024, 768, LANDSCAPE},
+ {0x2, 0, 0, RESERVED},
+ {0x3, 1024, 600, LANDSCAPE},
+ {0x4, 1200, 825, LANDSCAPE},
+ {0x5, 1280, 1024, LANDSCAPE},
+ {0x6, 1600, 1200, LANDSCAPE},
+ {0x7, 1024, 800, LANDSCAPE},
+ {0x8, 1280, 825, LANDSCAPE},
+ {0x9, 1280, 800, LANDSCAPE},
+ {0xa, 1280, 768, LANDSCAPE},
+ {0xb, 1280, 960, LANDSCAPE},
+ {0xFFFF, 800, 600, LANDSCAPE},
+};
+
+static const struct mxc_spdc_resolution_map_para spdc_rgbw_res_map[] = {
+/*define RGBW Mode resolution mapping*/
+ {0x18, 300, 400, PORTRAIT},
+ {0x19, 384, 512, PORTRAIT},
+ {0x1a, 0, 0, RESERVED},
+ {0x1b, 300, 512, PORTRAIT},
+ {0x1c, 0, 0, RESERVED},
+ {0x1d, 512, 640, PORTRAIT},
+ {0x1e, 600, 800, PORTRAIT},
+ {0x10, 400, 512, PORTRAIT},
+ {0x11, 0, 0, RESERVED},
+ {0x12, 400, 640, PORTRAIT},
+ {0x13, 384, 640, PORTRAIT},
+ {0x14, 480, 640, PORTRAIT},
+ {0x0, 400, 300, LANDSCAPE},
+ {0x1, 512, 384, LANDSCAPE},
+ {0x2, 0, 0, RESERVED},
+ {0x3, 512, 300, LANDSCAPE},
+ {0x4, 0, 0, RESERVED},
+ {0x5, 640, 512, LANDSCAPE},
+ {0x6, 800, 600, LANDSCAPE},
+ {0x7, 512, 400, LANDSCAPE},
+ {0x8, 0, 0, RESERVED},
+ {0x9, 640, 400, LANDSCAPE},
+ {0xa, 640, 384, LANDSCAPE},
+ {0xb, 640, 480, LANDSCAPE},
+ {0xFFFF, 400, 300, LANDSCAPE},
+};
+
+static void get_panel_init_set(struct imx_spdc_panel_init_set*
+ panel_set, u32 *val)
+{
+ *val = panel_set->yoe_pol |
+ (panel_set->dual_gate << 1) |
+ (panel_set->ud << 7) |
+ (panel_set->rl << 8) |
+ (panel_set->data_filter_n << 9) |
+ (panel_set->power_ready << 10) |
+ (panel_set->rgbw_mode_enable << 11) |
+ (panel_set->hburst_len_en << 13) |
+ ((panel_set->resolution & 0x1F) << 2);
+}
+
+static inline void spdc_intr_enable(mxc_spdc_t *fb_data, u32 int_type)
+{
+ u32 status;
+
+ status = __raw_readl(fb_data->hwp + SPDC_INT_ENABLE);
+ status |= (int_type & SPDC_IRQ_ALL_MASK);
+ __raw_writel(status, fb_data->hwp + SPDC_INT_ENABLE);
+}
+
+static bool spdc_is_update_finish(mxc_spdc_t *fb_data)
+{
+ u32 val = __raw_readl(fb_data->hwp + SPDC_INT_STA_CLR);
+ bool is_finish = (val & SPDC_IRQ_STA_FRAME_UPDATE) ? true : false;
+
+ return is_finish;
+}
+
+static int spdc_get_intr_stat(mxc_spdc_t *fb_data)
+{
+ u32 status = __raw_readl(fb_data->hwp + SPDC_INT_STA_CLR);
+ return status & 0xF;
+}
+
+static inline void
+spdc_intr_stat_clear(mxc_spdc_t *fb_data, u32 int_type)
+{
+ /* write 1 to clear status */
+ u32 status = (int_type & SPDC_IRQ_STA_ALL_MASK);
+ __raw_writel(status, fb_data->hwp + SPDC_INT_STA_CLR);
+}
+
+static inline void spdc_set_nextbuf_addr(mxc_spdc_t *fb_data)
+{
+ u32 addr = fb_data->fresh_param.buf_addr.next_buf_phys_addr;
+ __raw_writel(addr, fb_data->hwp + SPDC_NEXT_BUF);
+ dev_dbg(fb_data->dev, "add: 0x%x\n", addr);
+}
+
+static inline void spdc_set_curbuf_addr(mxc_spdc_t *fb_data)
+{
+ u32 addr = fb_data->fresh_param.buf_addr.cur_buf_phys_addr;
+ __raw_writel(addr, fb_data->hwp + SPDC_CURRENT_BUF);
+}
+
+static inline void spdc_set_prebuf_addr(mxc_spdc_t *fb_data)
+{
+ u32 addr = fb_data->fresh_param.buf_addr.pre_buf_phys_addr;
+ __raw_writel(addr, fb_data->hwp + SPDC_PRE_BUF);
+}
+
+static inline void spdc_set_cntbuf_addr(mxc_spdc_t *fb_data)
+{
+ u32 addr = fb_data->fresh_param.buf_addr.frm_cnt_buf_phys_addr;
+ __raw_writel(addr, fb_data->hwp + SPDC_CNT_BUF);
+}
+
+static inline void spdc_set_lutbuf_addr(mxc_spdc_t *fb_data)
+{
+ u32 addr = fb_data->fresh_param.buf_addr.lut_buf_phys_addr;
+ __raw_writel(addr, fb_data->hwp + SPDC_LUT_BUF);
+}
+
+static inline void spdc_set_update_coord(mxc_spdc_t *fb_data)
+{
+ u32 x = fb_data->fresh_param.update_region.left;
+ u32 y = fb_data->fresh_param.update_region.top;
+
+ if (!x)
+ x++;
+ if (!y)
+ y++;
+
+ dev_dbg(fb_data->dev, "x:%d, y:%d\n", x, y);
+ x = (u32)(((x & SPDC_UPDATE_X_Y_MAX_SIZE) << 16) |
+ (y & SPDC_UPDATE_X_Y_MAX_SIZE));
+ __raw_writel(x, fb_data->hwp + SPDC_UPDATA_X_Y);
+}
+
+static inline void spdc_set_update_dimensions(mxc_spdc_t *fb_data)
+{
+ u32 w = fb_data->fresh_param.update_region.width;
+ u32 h = fb_data->fresh_param.update_region.height;
+
+ if (!w)
+ w++;
+ if (!h)
+ h++;
+
+ dev_dbg(fb_data->dev, "w:%d, h:%d\n", w, h);
+ w = (u32)(((w & SPDC_UPDATE_W_H_MAX_SIZE) << 16) |
+ (h & SPDC_UPDATE_W_H_MAX_SIZE));
+ __raw_writel(w, fb_data->hwp + SPDC_UPDATE_W_H);
+}
+
+static inline void spdc_set_update_temper(mxc_spdc_t *fb_data)
+{
+ s8 temper = (s8)(fb_data->fresh_param.temper & 0xFF) << 1;
+
+ if (temper > -110 && temper < 200)
+ __raw_writel(temper, fb_data->hwp + SPDC_TEMP_INFO);
+ else
+ __raw_writel(SPDC_DEFAULT_TEMP, fb_data->hwp + SPDC_TEMP_INFO);
+}
+
+static inline void spdc_trigger_update(mxc_spdc_t *fb_data)
+{
+ u32 val;
+ struct partial_refresh_param *fresh_param = &fb_data->fresh_param;
+
+ if ((fresh_param->wave_mode & SPDC_WAV_MODE_MASK) && fresh_param->flash)
+ val = SPDC_DISP_TRIGGER_FLASH;
+ else
+ val = 0;
+
+ val |= fresh_param->wave_mode << 1;
+ val |= SPDC_DISP_TRIGGER_ENABLE;
+ dev_dbg(fb_data->dev, "wave:%d\n", fresh_param->wave_mode);
+ __raw_writel(val, fb_data->hwp + SPDC_DISP_TRIGGER);
+}
+
+static bool is_lut_checksum_ok(mxc_spdc_t *fb_data)
+{
+ u32 status;
+
+ status = __raw_readl(fb_data->hwp + SPDC_STATUS);
+ status &= SPDC_IRQ_STA_ERR;
+
+ return status ? true : false;
+}
+
+static void spdc_clk_gate(mxc_spdc_t *fb_data, bool enable)
+{
+ if (enable)
+ __raw_writel(SPDC_SW_GATE_CLK_ENABLE,
+ fb_data->hwp + SPDC_SW_GATE_CLK);
+ else
+ __raw_writel(~SPDC_SW_GATE_CLK_ENABLE,
+ fb_data->hwp + SPDC_SW_GATE_CLK);
+}
+
+static int update_panel_init_set(mxc_spdc_t *fb_data)
+{
+ int ret = 0;
+ u32 init_val;
+
+ get_panel_init_set(&fb_data->panel_set, &init_val);
+ dev_dbg(fb_data->dev, "panel init setting:%x\n", init_val);
+
+ __raw_writel(init_val, fb_data->hwp + SPDC_PANEL_INIT_SET);
+
+ /*wait init setting update finish*/
+ ret = wait_for_completion_timeout(&fb_data->init_finish,
+ msecs_to_jiffies(4000));
+ if (!ret)
+ dev_err(fb_data->dev, "Timed out for init setting!\n");
+
+ return ret;
+}
+
+static void spdc_panel_pwr_on(mxc_spdc_t *fb_data)
+{
+ fb_data->panel_set.power_ready = POWER_READY_ON;
+}
+
+static void spdc_panel_pwr_down(mxc_spdc_t *fb_data)
+{
+ fb_data->panel_set.power_ready = POWER_READY_OFF;
+}
+
+static void spdc_powerdown(mxc_spdc_t *fb_data)
+{
+ mutex_lock(&fb_data->power_mutex);
+
+ /* If powering_down has been cleared, a powerup
+ * request is pre-empting this powerdown request.
+ */
+ if (!fb_data->powering_down
+ || (fb_data->power_state == POWER_STATE_OFF)) {
+ mutex_unlock(&fb_data->power_mutex);
+ return;
+ }
+
+ dev_dbg(fb_data->dev, "spdc Powerdown\n");
+
+ /* Disable power to the AUO panel */
+ regulator_disable(fb_data->vcom_regulator);
+ regulator_disable(fb_data->display_regulator);
+
+ /*enable spdc clock gating*/
+ spdc_clk_gate(fb_data, true);
+ clk_disable(fb_data->spdc_clk_pix);
+ clk_disable(fb_data->spdc_clk_axi);
+
+ /* Disable pins used by SPDC (to prevent leakage current) */
+ if (fb_data->pdata->disable_pins)
+ fb_data->pdata->disable_pins();
+
+ /* turn off the V3p3 */
+ regulator_disable(fb_data->v3p3_regulator);
+
+ fb_data->power_state = POWER_STATE_OFF;
+ fb_data->powering_down = false;
+ spdc_panel_pwr_down(fb_data);
+
+ if (fb_data->wait_for_powerdown) {
+ fb_data->wait_for_powerdown = false;
+ complete(&fb_data->powerdown_compl);
+ }
+
+ mutex_unlock(&fb_data->power_mutex);
+}
+
+static void spdc_powerup(mxc_spdc_t *fb_data)
+{
+ int ret = 0;
+ mutex_lock(&fb_data->power_mutex);
+
+ /*
+ * If power down request is pending, clear
+ * powering_down to cancel the request.
+ */
+ if (fb_data->powering_down)
+ fb_data->powering_down = false;
+
+ if (fb_data->power_state == POWER_STATE_ON) {
+ mutex_unlock(&fb_data->power_mutex);
+ return;
+ }
+
+ dev_dbg(fb_data->dev, "spdc Powerup\n");
+
+ /* Enable the v3p3 regulator */
+ ret = regulator_enable(fb_data->v3p3_regulator);
+ if (IS_ERR((void *)ret)) {
+ dev_err(fb_data->dev, "Unable to enable V3P3 regulator."
+ "err = 0x%x\n", ret);
+ mutex_unlock(&fb_data->power_mutex);
+ return;
+ }
+
+ msleep(1);
+
+ /* Enable pins used by SPDC */
+ if (fb_data->pdata->enable_pins)
+ fb_data->pdata->enable_pins();
+
+ /* Enable clocks to SPDC */
+ clk_enable(fb_data->spdc_clk_axi);
+ clk_enable(fb_data->spdc_clk_pix);
+
+ /*disable spdc gate*/
+ spdc_clk_gate(fb_data, false);
+
+ /* Enable power to the EPD panel */
+ ret = regulator_enable(fb_data->display_regulator);
+ if (IS_ERR((void *)ret)) {
+ dev_err(fb_data->dev, "Unable to enable DISPLAY regulator."
+ "err = 0x%x\n", ret);
+ mutex_unlock(&fb_data->power_mutex);
+ return;
+ }
+ ret = regulator_enable(fb_data->vcom_regulator);
+ if (IS_ERR((void *)ret)) {
+ dev_err(fb_data->dev, "Unable to enable VCOM regulator."
+ "err = 0x%x\n", ret);
+ mutex_unlock(&fb_data->power_mutex);
+ return;
+ }
+
+ fb_data->power_state = POWER_STATE_ON;
+ spdc_panel_pwr_on(fb_data);
+
+ mutex_unlock(&fb_data->power_mutex);
+}
+
+#ifdef DEBUG
+static void
+check_waveform(u32 *wv_buf_orig, u32 *wv_buf_cur, u32 wv_buf_size)
+{
+ int i;
+ bool is_mismatch = false;
+ for (i = 0; i < wv_buf_size; i++) {
+ if (wv_buf_orig[i] != wv_buf_cur[i]) {
+ is_mismatch = true;
+ printk(KERN_ERR "Waveform mismatch!\n");
+ }
+ }
+
+ if (!is_mismatch)
+ printk(KERN_DEBUG "No mismatches!\n");
+}
+#else
+static void
+check_waveform(u32 *wv_buf_orig, u32 *wv_buf_cur, u32 wv_buf_size) {}
+#endif
+
+static void get_spdc_version(mxc_spdc_t *fb_data)
+{
+ struct mxc_spdc_version *spdc_ver = &fb_data->spdc_ver;
+ u32 disp_id, tcon_id;
+
+ disp_id = __raw_readl(fb_data->hwp + SPDC_DISP_VER);
+ tcon_id = __raw_readl(fb_data->hwp + SPDC_TCON_VER);
+
+ spdc_ver->disp_ver.product_id = disp_id & 0xFFFF;
+ spdc_ver->disp_ver.lut_ver = (disp_id >> 16) & 0xFF;
+ spdc_ver->disp_ver.epd_type = (disp_id >> 24) & 0xFF;
+ spdc_ver->tcon_ver = tcon_id & 0xFF;
+
+ dev_info(fb_data->dev, "EPD type ID:%x, Tcon ID:%x\n",
+ spdc_ver->disp_ver.product_id, spdc_ver->tcon_ver);
+}
+
+static void spdc_set_update_concurrency(mxc_spdc_t *fb_data)
+{
+ u32 concur_mode;
+
+ concur_mode = fb_data->fresh_param.concur & 0xFF;
+ concur_mode |= (SPDC_LUT_MODE_OFFSET << 8);
+
+ __raw_writel(concur_mode, fb_data->hwp + SPDC_LUT_PARA_UPDATE);
+}
+
+static bool is_preprocess_list_full(mxc_spdc_t *fb_data)
+{
+ /* Check to see if preprocess are full in this list */
+ if (fb_data->upd_preprocess_num >= SPDC_MAX_NUM_PREPROCESS)
+ return true;
+ else
+ return false;
+}
+
+static void spdc_submit_update(mxc_spdc_t *fb_data)
+{
+ fb_data->updates_active = true;
+
+ spdc_set_nextbuf_addr(fb_data);
+ spdc_set_update_coord(fb_data);
+ spdc_set_update_dimensions(fb_data);
+ spdc_set_update_temper(fb_data);
+ spdc_trigger_update(fb_data);
+}
+
+static int spdc_init_sequence(mxc_spdc_t *fb_data)
+{
+ struct fb_var_screeninfo *screeninfo = &fb_data->spdc_fb_var;
+ struct spdc_buffer_addr *buf_addr = &fb_data->fresh_param.buf_addr;
+ struct imx_spdc_panel_init_set *init_set =
+ fb_data->pdata->spdc_mode->init_set;
+ u32 xres, yres;
+ int ret = -EFAULT;
+
+ /*init spdc power*/
+ spdc_powerup(fb_data);
+
+ /* enable all interrupt */
+ spdc_intr_stat_clear(fb_data, SPDC_INT_STA_CLR);
+ spdc_intr_enable(fb_data, SPDC_IRQ_ALL_MASK);
+ /* set ACC concurrency update mode */
+ if (fb_data->fresh_param.concur)
+ spdc_set_update_concurrency(fb_data);
+
+ /* program SPDC register and trigger to process buffer*/
+ buf_addr->next_buf_phys_addr = fb_data->phy_next_buf;
+ buf_addr->cur_buf_phys_addr = fb_data->phy_current_buf;
+ buf_addr->pre_buf_phys_addr = fb_data->phy_pre_buf;
+ buf_addr->frm_cnt_buf_phys_addr = fb_data->phy_cnt_buf;
+ buf_addr->lut_buf_phys_addr = fb_data->phy_lut_buf;
+
+ /* Use unrotated (native) width/height */
+ if ((screeninfo->rotate == FB_ROTATE_CW) ||
+ (screeninfo->rotate == FB_ROTATE_CCW)) {
+ xres = screeninfo->yres;
+ yres = screeninfo->xres;
+ } else {
+ xres = screeninfo->xres;
+ yres = screeninfo->yres;
+ }
+ fb_data->fresh_param.update_region.left = 0;
+ fb_data->fresh_param.update_region.top = 0;
+ fb_data->fresh_param.update_region.width = xres;
+ fb_data->fresh_param.update_region.height = yres;
+
+ /* set panel temperature as environment temperature */
+ fb_data->fresh_param.temper = SPDC_DEFAULT_TEMP;
+ /* set waveform mode */
+ fb_data->fresh_param.wave_mode = SPDC_WAV_MODE_DEFAULT;
+
+ spdc_set_update_coord(fb_data);
+ spdc_set_update_dimensions(fb_data);
+
+ spdc_set_update_temper(fb_data);
+
+ spdc_set_nextbuf_addr(fb_data);
+ spdc_set_curbuf_addr(fb_data);
+ spdc_set_prebuf_addr(fb_data);
+ spdc_set_cntbuf_addr(fb_data);
+
+ /* load waveform*/
+ spdc_set_lutbuf_addr(fb_data);
+ ret = wait_for_completion_timeout(&fb_data->lut_down,
+ msecs_to_jiffies(4000));
+ if (!ret) {
+ dev_err(fb_data->dev,
+ "Timed out for lut!\n");
+ return ret;
+ }
+
+ /* init SPDC setting, the setting get from platform data */
+ fb_data->panel_set.yoe_pol = init_set->yoe_pol;
+ fb_data->panel_set.dual_gate = init_set->dual_gate;
+ fb_data->panel_set.ud = init_set->ud;
+ fb_data->panel_set.rl = init_set->rl;
+ fb_data->panel_set.data_filter_n = init_set->data_filter_n;
+ fb_data->panel_set.rgbw_mode_enable = init_set->rgbw_mode_enable;
+ fb_data->panel_set.hburst_len_en = init_set->hburst_len_en;
+ ret = update_panel_init_set(fb_data);
+
+ return ret;
+}
+
+static u32 mxc_spdc_partial_refresh_low(mxc_spdc_t *fb_data, void *buffer)
+{
+ u8 *fresh_addr;
+ void *pattern = buffer;
+ struct partial_refresh_param *fresh_param = &fb_data->fresh_param;
+ u32 fresh_size;
+ int ret = 0;
+
+ fb_data->updates_active = true;
+
+ fresh_addr = (u8 *)(fb_data->virt_start) +
+ (fresh_param->update_region.top * fresh_param->stride) +
+ ((fresh_param->update_region.left * fb_data->default_bpp) >> 3);
+ fresh_size = (u32)((fresh_param->update_region.width *
+ fresh_param->update_region.height * fb_data->default_bpp) >> 3);
+
+ if (buffer != NULL) {
+ while (fresh_size > 0) {
+ memcpy((void *)fresh_addr, pattern,
+ fresh_param->update_region.width);
+ fresh_size -= fresh_param->update_region.width;
+ fresh_addr += fresh_param->update_region.top *
+ fresh_param->stride;
+ pattern += fresh_param->update_region.width;
+ }
+ }
+
+ /* program SPDC register and trigger to process buffer*/
+ fb_data->fresh_param.buf_addr.next_buf_phys_addr =
+ fb_data->info.fix.smem_start + fb_data->fb_offset;
+ fb_data->fresh_param.wave_mode = fb_data->wv_modes.mode_init;
+ spdc_submit_update(fb_data);
+
+ ret = wait_for_completion_timeout(&fb_data->update_finish,
+ msecs_to_jiffies(3000));
+ if (!ret) {
+ dev_err(fb_data->dev,
+ "display update timeout!\n");
+ return -ETIMEDOUT;
+ }
+
+ return ret;
+}
+
+static u32 spdc_fb_dev_init(mxc_spdc_t *fb_data)
+{
+ fb_data->auto_mode = AUTO_UPDATE_MODE_REGION_MODE;
+ fb_data->fresh_param.wave_mode = SPDC_WAV_MODE_0;
+ fb_data->operation_mode = SPDC_NO_OPERATION;
+ fb_data->is_deep_fresh = false;
+
+ /* Init the concurrency update */
+ fb_data->fresh_param.concur = 0;
+ fb_data->upd_preprocess_num = 0;
+ fb_data->submit_upd_sta = 0;
+
+ fb_data->fresh_param.temper = SPDC_DEFAULT_TEMP;
+
+ return 0;
+}
+
+/**
+ * mxc_spdc_device_is_busy - check spdc device busy status.
+ * Returns 0 if spdc device is idle.
+ */
+static int mxc_spdc_device_is_busy(mxc_spdc_t *fb_data)
+{
+ u32 status;
+ u32 orig_jiffies = jiffies;
+
+ while (1) {
+ status = __raw_readl(fb_data->hwp + SPDC_STATUS);
+ if ((status & SPDC_PANEL_STAUTS_BUSY) &&
+ ((status & 0xF0) == SPDC_TCON_STATUS_IDLE))
+ break;
+
+ if (signal_pending(current)) {
+ dev_dbg(fb_data->dev, "SPDC Interrupted\n");
+ return -EINTR;
+ }
+
+ if (time_after(jiffies, orig_jiffies +
+ msecs_to_jiffies(3000))) {
+ dev_dbg(fb_data->dev, "SPDC is busy\n");
+ return -ETIMEDOUT;
+ }
+
+ schedule();
+ }
+
+ return 0;
+}
+
+static bool is_free_list_full(mxc_spdc_t *fb_data)
+{
+ int count = 0;
+ struct update_data_list *plist;
+
+ /* Count buffers in free buffer list */
+ list_for_each_entry(plist, &fb_data->upd_buf_free_list, list)
+ count++;
+
+ /* Check to see if all buffers are in this list */
+ if (count == fb_data->max_num_updates)
+ return true;
+ else
+ return false;
+}
+
+static void spdc_draw_mode0(mxc_spdc_t *fb_data)
+{
+ struct mxcfb_update_data update;
+ struct mxcfb_update_marker_data upd_marker_data;
+ struct fb_var_screeninfo *screeninfo = &fb_data->spdc_fb_var;
+ u32 xres, yres;
+ int ret;
+
+ fb_data->fresh_param.buf_addr.next_buf_phys_addr =
+ fb_data->phys_start;
+
+ fb_data->hw_ready = true;
+ fb_data->hw_initializing = false;
+
+ /* Use unrotated (native) width/height */
+ if ((screeninfo->rotate == FB_ROTATE_CW) ||
+ (screeninfo->rotate == FB_ROTATE_CCW)) {
+ xres = screeninfo->yres;
+ yres = screeninfo->xres;
+ } else {
+ xres = screeninfo->xres;
+ yres = screeninfo->yres;
+ }
+
+ update.update_region.left = 0;
+ update.update_region.width = xres;
+ update.update_region.top = 0;
+ update.update_region.height = yres;
+ update.update_mode = UPDATE_MODE_FULL;
+ update.waveform_mode = fb_data->wv_modes.mode_init;
+ update.update_marker = INIT_UPDATE_MARKER;
+ update.temp = SPDC_DEFAULT_TEMP;
+ update.flags = 0;
+
+ upd_marker_data.update_marker = update.update_marker;
+
+ mxc_spdc_fb_send_update(&update, &fb_data->info);
+
+ /* Block on initial update */
+ ret = mxc_spdc_fb_wait_update_complete(&upd_marker_data,
+ &fb_data->info);
+ if (ret < 0)
+ dev_err(fb_data->dev,
+ "Wait for update complete failed, Err:%d", ret);
+}
+
+static void
+spdc_fb_fw_handler(const struct firmware *fw, void *context)
+{
+ mxc_spdc_t *fb_data = (mxc_spdc_t *)context;
+ struct clk *spdc_parent;
+ unsigned long rounded_parent_rate, spdc_pix_rate,
+ rounded_pix_clk, target_pix_clk;
+ u8 *wv_file;
+ int ret;
+
+ if (fw == NULL) {
+ /* If default FW file load failed, we give up */
+ if (fb_data->fw_default_load)
+ return;
+
+ /* Try to load default waveform */
+ fb_data->fw_default_load = true;
+
+ ret = request_firmware_nowait(THIS_MODULE, FW_ACTION_HOTPLUG,
+ fb_data->fw_str, fb_data->dev, GFP_KERNEL,
+ fb_data, spdc_fb_fw_handler);
+ if (ret) {
+ dev_err(fb_data->dev,
+ "Failed to load waveform image with err %d\n", ret);
+ return;
+ }
+ }
+
+ wv_file = (u8 *)fw->data;
+ memcpy(fb_data->virt_lut_buf, wv_file, fw->size);
+
+ check_waveform((u32 *)wv_file, (u32 *)fb_data->virt_lut_buf,
+ fw->size / 4);
+ release_firmware(fw);
+
+ /* Enable clocks to access SPDC regs */
+ clk_enable(fb_data->spdc_clk_axi);
+
+ target_pix_clk = fb_data->cur_mode->vmode->pixclock;
+ /* Enable pix clk for SPDC */
+ clk_enable(fb_data->spdc_clk_pix);
+ rounded_pix_clk = clk_round_rate(fb_data->spdc_clk_pix, target_pix_clk);
+
+ if (((rounded_pix_clk >= target_pix_clk + target_pix_clk/100) ||
+ (rounded_pix_clk <= target_pix_clk - target_pix_clk/100))) {
+ /* Can't get close enough without changing parent clk */
+ spdc_parent = clk_get_parent(fb_data->spdc_clk_pix);
+ rounded_parent_rate =
+ clk_round_rate(spdc_parent, target_pix_clk);
+
+ spdc_pix_rate = target_pix_clk;
+ while (spdc_pix_rate < rounded_parent_rate)
+ spdc_pix_rate *= 2;
+ clk_set_rate(spdc_parent, spdc_pix_rate);
+
+ rounded_pix_clk =
+ clk_round_rate(fb_data->spdc_clk_pix, target_pix_clk);
+ if (((rounded_pix_clk >= target_pix_clk + target_pix_clk/100) ||
+ (rounded_pix_clk <= target_pix_clk - target_pix_clk/100)))
+ /* Still can't get a good clock, provide warning */
+ dev_err(fb_data->dev,
+ "Unable to get an accurate SPDC pix clk"
+ "desired = %lu, actual = %lu\n", target_pix_clk,
+ rounded_pix_clk);
+ }
+
+ clk_set_rate(fb_data->spdc_clk_pix, rounded_pix_clk);
+
+ if (!spdc_init_sequence(fb_data))
+ return;
+
+ /* display log on picture */
+ spdc_draw_mode0(fb_data);
+}
+
+
+static int spdc_fb_init_hw(struct fb_info *info)
+{
+ mxc_spdc_t *fb_data = (mxc_spdc_t *)info;
+ int ret;
+
+ fb_data->fw_default_load = false;
+ /*
+ * Create fw search string based on ID string in selected videomode.
+ * Format is "imx/spdc_[wave_timing].fw: spdc_pvi.fw, spdc_auo.fw"
+ */
+ if (fb_data->cur_mode) {
+ memset(fb_data->fw_str, 0, sizeof(fb_data->fw_str));
+ strcat(fb_data->fw_str, "imx/spdc_");
+ strcat(fb_data->fw_str, fb_data->cur_mode->wave_timing);
+ strcat(fb_data->fw_str, ".fw");
+ } else
+ strcat(fb_data->fw_str, "imx/spdc_pvi.fw");
+
+ ret = request_firmware_nowait(THIS_MODULE, FW_ACTION_HOTPLUG,
+ fb_data->fw_str, fb_data->dev, GFP_KERNEL,
+ fb_data, spdc_fb_fw_handler);
+ if (ret) {
+ dev_err(fb_data->dev,
+ "Failed to load waveform image with err %d\n", ret);
+ return ret;
+ }
+
+ return ret;
+}
+
+static int mxc_spdc_partial_refresh(mxc_spdc_t *fb_data, void *buffer)
+{
+ int ret = 0;
+ struct partial_refresh_param *fresh_param = &fb_data->fresh_param;
+
+ if (!fb_data->panel_set.power_ready)
+ spdc_powerup(fb_data);
+
+ if (!fresh_param->blocking) {
+ if (mxc_spdc_device_is_busy(fb_data)) {
+ dev_err(fb_data->dev, "spdc busy!\n");
+ return (u32) -1;
+ }
+ } else {
+ while (mxc_spdc_device_is_busy(fb_data)) {
+ dev_err(fb_data->dev, "Waiting for spdc idle..\n");
+ msleep(500);
+ }
+ }
+
+ ret = mxc_spdc_partial_refresh_low(fb_data, buffer);
+
+ return ret;
+}
+
+static int mxc_operaton_update(mxc_spdc_t *fb_data)
+{
+ int ret = 0;
+ struct partial_refresh_param *fresh_param = &fb_data->fresh_param;
+ u32 operation_mode = fb_data->operation_mode;
+
+ if (!fb_data->panel_set.power_ready)
+ spdc_powerup(fb_data);
+
+ if (operation_mode != SPDC_SW_TCON_RESET) {
+ if (!fresh_param->blocking) {
+ if (mxc_spdc_device_is_busy(fb_data)) {
+ dev_err(fb_data->dev, "spdc busy\n");
+ return (u32) -1;
+ }
+ } else {
+ while (mxc_spdc_device_is_busy(fb_data)) {
+ dev_err(fb_data->dev, "Waiting spdc idle...\n");
+ msleep(500);
+ }
+ }
+ } else
+ operation_mode = SPDC_SW_TCON_RESET_SET;
+
+ /* don't add to queue list */
+ mutex_lock(&fb_data->queue_mutex);
+ __raw_writel(operation_mode, fb_data->hwp + SPDC_OPERATE);
+ mutex_unlock(&fb_data->queue_mutex);
+
+ if (operation_mode == SPDC_SW_TCON_RESET_SET) {
+ dev_dbg(fb_data->dev, "reinit hw\n");
+ mdelay(500);
+
+ fb_data->hw_ready = false;
+ fb_data->operation_mode = SPDC_NO_OPERATION;
+ ret = spdc_fb_init_hw(&fb_data->info);
+ if (ret && !fb_data->hw_ready)
+ dev_err(fb_data->dev, "Failed to init HW!\n");
+ }
+
+ return ret;
+}
+
+static int mxc_spdc_refresh_display(mxc_spdc_t *fb_data)
+{
+ struct partial_refresh_param *fresh_param = &fb_data->fresh_param;
+ u32 operation_mode = fb_data->operation_mode;
+ int ret = 0;
+
+ fresh_param->update_region.left = 0;
+ fresh_param->update_region.top = 0;
+ fresh_param->update_region.width = fb_data->spdc_fb_var.xres;
+ fresh_param->update_region.height = fb_data->spdc_fb_var.yres;
+ fresh_param->stride = (fb_data->spdc_fb_var.xres *
+ fb_data->spdc_fb_var.bits_per_pixel) >> 3;
+
+ if (operation_mode && operation_mode < SPDC_FULL_REFRESH)
+ ret = mxc_operaton_update(fb_data);
+ else
+ ret = mxc_spdc_partial_refresh(fb_data, NULL);
+
+ return ret;
+}
+
+static void mxc_spdc_find_match_mode(mxc_spdc_t *fb_data)
+{
+ struct imx_spdc_fb_mode *spdc_mode =
+ &fb_data->pdata->spdc_mode[0];
+ const struct mxc_spdc_resolution_map_para *spdc_res_map;
+ u32 i = 0;
+ u32 j = 0;
+ u32 default_mode = 0xFF;
+
+ if (fb_data->panel_set.rgbw_mode_enable)
+ spdc_res_map = &spdc_rgbw_res_map[0];
+ else
+ spdc_res_map = &spdc_gray_res_map[0];
+
+ while (spdc_mode != NULL) {
+ while (spdc_res_map[j].resolution != 0xFFFF) {
+ if (spdc_mode->vmode->xres == spdc_res_map[j].res_x
+ && spdc_mode->vmode->yres == spdc_res_map[j].res_y) {
+ fb_data->panel_set.resolution =
+ spdc_res_map[j].resolution;
+ default_mode = i;
+ break;
+ }
+ j++;
+ }
+
+ if (default_mode != 0xFF)
+ break;
+ j = 0;
+ i++;
+ spdc_mode = &fb_data->pdata->spdc_mode[i];
+ }
+
+ fb_data->cur_mode = spdc_mode;
+}
+
+static int mxc_spdc_fb_mmap(struct fb_info *info, struct vm_area_struct *vma)
+{
+ unsigned long start = vma->vm_start;
+ unsigned long size = vma->vm_end - vma->vm_start;
+ unsigned long offset = vma->vm_pgoff << PAGE_SHIFT;
+ unsigned long page, pos;
+
+ if (offset + size > info->fix.smem_len)
+ return -EINVAL;
+
+ pos = (unsigned long)info->fix.smem_start + offset;
+
+ /* make buffers bufferable */
+ vma->vm_page_prot = pgprot_writecombine(vma->vm_page_prot);
+ vma->vm_flags |= VM_RESERVED | VM_IO;
+
+ while (size > 0) {
+ page = pos;
+ if (io_remap_pfn_range(vma, start, page >> PAGE_SHIFT,
+ PAGE_SIZE, vma->vm_page_prot))
+ return -EAGAIN;
+
+ start += PAGE_SIZE;
+ pos += PAGE_SIZE;
+ if (size > PAGE_SIZE)
+ size -= PAGE_SIZE;
+ else
+ size = 0;
+ }
+
+ return 0;
+}
+
+static inline u_int _chan_to_field(u_int chan, struct fb_bitfield *bf)
+{
+ chan &= 0xffff;
+ chan >>= 16 - bf->length;
+ return chan << bf->offset;
+}
+
+static int mxc_spdc_fb_setcolreg(u_int regno, u_int red, u_int green,
+ u_int blue, u_int transp, struct fb_info *info)
+{
+ if (regno >= 256) /* no. of hw registers */
+ return 1;
+
+ /* grayscale works only partially under directcolor */
+ if (info->var.grayscale) {
+ /* grayscale = 0.30*R + 0.59*G + 0.11*B */
+ red = green = blue = (red * 77 + green * 151 + blue * 28) >> 8;
+ }
+
+#define CNVT_TOHW(val, width) ((((val)<<(width))+0x7FFF-(val))>>16)
+ switch (info->fix.visual) {
+ case FB_VISUAL_TRUECOLOR:
+ case FB_VISUAL_PSEUDOCOLOR:
+ red = CNVT_TOHW(red, info->var.red.length);
+ green = CNVT_TOHW(green, info->var.green.length);
+ blue = CNVT_TOHW(blue, info->var.blue.length);
+ transp = CNVT_TOHW(transp, info->var.transp.length);
+ break;
+ case FB_VISUAL_DIRECTCOLOR:
+ red = CNVT_TOHW(red, 8); /* expect 8 bit DAC */
+ green = CNVT_TOHW(green, 8);
+ blue = CNVT_TOHW(blue, 8);
+ /* hey, there is bug in transp handling... */
+ transp = CNVT_TOHW(transp, 8);
+ break;
+ }
+#undef CNVT_TOHW
+ /* Truecolor has hardware independent palette */
+ if (info->fix.visual == FB_VISUAL_TRUECOLOR) {
+ if (regno >= 16)
+ return 1;
+
+ ((u32 *) (info->pseudo_palette))[regno] =
+ (red << info->var.red.offset) |
+ (green << info->var.green.offset) |
+ (blue << info->var.blue.offset) |
+ (transp << info->var.transp.offset);
+ }
+
+ return 0;
+}
+
+void mxc_spdc_fb_flush_updates(mxc_spdc_t *fb_data)
+{
+ int ret;
+
+ /* Grab queue lock to prevent any new updates from being submitted */
+ mutex_lock(&fb_data->queue_mutex);
+
+ /*
+ * 3 places to check for updates that are active or pending:
+ * 1) Updates in the pending list
+ * 2) Update buffers in use (e.g., PxP processing)
+ * 3) Active updates to panel - We can key off of SPDC
+ * power state to know if we have active updates.
+ */
+ if (!list_empty(&fb_data->upd_pending_list) ||
+ !is_free_list_full(fb_data) ||
+ (fb_data->updates_active == true)) {
+ /* Initialize event signalling updates are done */
+ init_completion(&fb_data->updates_done);
+ fb_data->waiting_for_idle = true;
+
+ mutex_unlock(&fb_data->queue_mutex);
+ /* Wait for any currently active updates to complete */
+ ret = wait_for_completion_timeout(&fb_data->updates_done,
+ msecs_to_jiffies(8000));
+ if (!ret)
+ dev_err(fb_data->dev,
+ "Flush updates timeout! ret = 0x%x\n", ret);
+
+ mutex_lock(&fb_data->queue_mutex);
+ fb_data->waiting_for_idle = false;
+ }
+
+ mutex_unlock(&fb_data->queue_mutex);
+}
+
+static int mxc_spdc_fb_setcmap(struct fb_cmap *cmap, struct fb_info *info)
+{
+ int count, index, r;
+ u16 *red, *green, *blue, *transp;
+ u16 trans = 0xffff;
+ mxc_spdc_t *fb_data = (mxc_spdc_t *)info;
+ int i;
+
+ dev_dbg(fb_data->dev, "setcmap\n");
+
+ if (info->fix.visual == FB_VISUAL_STATIC_PSEUDOCOLOR) {
+ /* Only support an 8-bit, 256 entry lookup */
+ if (cmap->len != 256)
+ return 1;
+
+ mxc_spdc_fb_flush_updates(fb_data);
+
+ mutex_lock(&fb_data->pxp_mutex);
+ /*
+ * Store colormap in pxp_conf structure for later transmit
+ * to PxP during update process to convert gray pixels.
+ *
+ * Since red=blue=green for pseudocolor visuals, we can
+ * just use red values.
+ */
+ for (i = 0; i < 256; i++)
+ fb_data->pxp_conf.proc_data.lut_map[i] =
+ cmap->red[i] & 0xFF;
+
+ fb_data->pxp_conf.proc_data.lut_map_updated = true;
+
+ mutex_unlock(&fb_data->pxp_mutex);
+ } else {
+ red = cmap->red;
+ green = cmap->green;
+ blue = cmap->blue;
+ transp = cmap->transp;
+ index = cmap->start;
+
+ for (count = 0; count < cmap->len; count++) {
+ if (transp)
+ trans = *transp++;
+ r = mxc_spdc_fb_setcolreg(index++, *red++,
+ *green++, *blue++, trans, info);
+ if (r != 0)
+ return r;
+ }
+ }
+
+ return 0;
+}
+
+static void adjust_coordinates(u32 xres, u32 yres, u32 rotation,
+ struct mxcfb_rect *update_region, struct mxcfb_rect *adj_update_region)
+{
+ u32 temp;
+
+ /* If adj_update_region == NULL, pass result back in update_region */
+ /* If adj_update_region == valid, use it to pass back result */
+ if (adj_update_region)
+ switch (rotation) {
+ case FB_ROTATE_UR:
+ adj_update_region->top = update_region->top;
+ adj_update_region->left = update_region->left;
+ adj_update_region->width = update_region->width;
+ adj_update_region->height = update_region->height;
+ break;
+ case FB_ROTATE_CW:
+ adj_update_region->top = update_region->left;
+ adj_update_region->left = yres -
+ (update_region->top + update_region->height);
+ adj_update_region->width = update_region->height;
+ adj_update_region->height = update_region->width;
+ break;
+ case FB_ROTATE_UD:
+ adj_update_region->width = update_region->width;
+ adj_update_region->height = update_region->height;
+ adj_update_region->top = yres -
+ (update_region->top + update_region->height);
+ adj_update_region->left = xres -
+ (update_region->left + update_region->width);
+ break;
+ case FB_ROTATE_CCW:
+ adj_update_region->left = update_region->top;
+ adj_update_region->top = xres -
+ (update_region->left + update_region->width);
+ adj_update_region->width = update_region->height;
+ adj_update_region->height = update_region->width;
+ break;
+ }
+ else
+ switch (rotation) {
+ case FB_ROTATE_UR:
+ /* No adjustment needed */
+ break;
+ case FB_ROTATE_CW:
+ temp = update_region->top;
+ update_region->top = update_region->left;
+ update_region->left = yres -
+ (temp + update_region->height);
+ temp = update_region->width;
+ update_region->width = update_region->height;
+ update_region->height = temp;
+ break;
+ case FB_ROTATE_UD:
+ update_region->top = yres -
+ (update_region->top + update_region->height);
+ update_region->left = xres -
+ (update_region->left + update_region->width);
+ break;
+ case FB_ROTATE_CCW:
+ temp = update_region->left;
+ update_region->left = update_region->top;
+ update_region->top = xres -
+ (temp + update_region->width);
+ temp = update_region->width;
+ update_region->width = update_region->height;
+ update_region->height = temp;
+ break;
+ }
+}
+
+static int mxc_spdc_fb_set_fix(struct fb_info *info)
+{
+ struct fb_fix_screeninfo *fix = &info->fix;
+ struct fb_var_screeninfo *var = &info->var;
+
+ fix->line_length = var->xres_virtual * var->bits_per_pixel / 8;
+
+ fix->type = FB_TYPE_PACKED_PIXELS;
+ fix->accel = FB_ACCEL_NONE;
+ if (var->grayscale)
+ fix->visual = FB_VISUAL_STATIC_PSEUDOCOLOR;
+ else
+ fix->visual = FB_VISUAL_TRUECOLOR;
+ fix->xpanstep = 1;
+ fix->ypanstep = 1;
+
+ return 0;
+}
+
+static int mxc_spdc_fb_set_par(struct fb_info *info)
+{
+ mxc_spdc_t *fb_data = (mxc_spdc_t *)info;
+ struct fb_var_screeninfo *screeninfo = &fb_data->info.var;
+ struct imx_spdc_fb_mode *spdc_modes = fb_data->pdata->spdc_mode;
+ struct pxp_config_data *pxp_conf = &fb_data->pxp_conf;
+ struct pxp_proc_data *proc_data = &pxp_conf->proc_data;
+ int i, ret;
+ __u32 xoffset_old, yoffset_old;
+
+ /*
+ * Can't change the FB parameters until current updates have completed.
+ * This function returns when all active updates are done.
+ */
+ mxc_spdc_fb_flush_updates(fb_data);
+
+ mutex_lock(&fb_data->queue_mutex);
+ /*
+ * Set all screeninfo except for xoffset/yoffset
+ * Subsequent call to pan_display will handle those.
+ */
+ xoffset_old = fb_data->spdc_fb_var.xoffset;
+ yoffset_old = fb_data->spdc_fb_var.yoffset;
+ fb_data->spdc_fb_var = *screeninfo;
+ fb_data->spdc_fb_var.xoffset = xoffset_old;
+ fb_data->spdc_fb_var.yoffset = yoffset_old;
+ mutex_unlock(&fb_data->queue_mutex);
+
+ mutex_lock(&fb_data->pxp_mutex);
+
+ /*
+ * Update PxP config data (used to process FB regions for updates)
+ * based on FB info and processing tasks required
+ */
+ /* Initialize non-channel-specific PxP parameters */
+ proc_data->drect.left = proc_data->srect.left = 0;
+ proc_data->drect.top = proc_data->srect.top = 0;
+ proc_data->drect.width = proc_data->srect.width = screeninfo->xres;
+ proc_data->drect.height = proc_data->srect.height = screeninfo->yres;
+ proc_data->scaling = 0;
+ proc_data->hflip = 0;
+ proc_data->vflip = 0;
+ proc_data->rotate = screeninfo->rotate;
+ proc_data->bgcolor = 0;
+ proc_data->overlay_state = 0;
+ proc_data->lut_transform = PXP_LUT_NONE;
+
+ /*
+ * configure S0 channel parameters
+ * Parameters should match FB format/width/height
+ */
+ if (screeninfo->grayscale)
+ pxp_conf->s0_param.pixel_fmt = PXP_PIX_FMT_GY04;
+ else {
+ switch (screeninfo->bits_per_pixel) {
+ case 16:
+ pxp_conf->s0_param.pixel_fmt = PXP_PIX_FMT_RGB565;
+ break;
+ case 24:
+ pxp_conf->s0_param.pixel_fmt = PXP_PIX_FMT_RGB24;
+ break;
+ case 32:
+ pxp_conf->s0_param.pixel_fmt = PXP_PIX_FMT_RGB32;
+ break;
+ default:
+ pxp_conf->s0_param.pixel_fmt = PXP_PIX_FMT_RGB565;
+ break;
+ }
+ }
+ pxp_conf->s0_param.width = screeninfo->xres_virtual;
+ pxp_conf->s0_param.height = screeninfo->yres;
+ pxp_conf->s0_param.color_key = -1;
+ pxp_conf->s0_param.color_key_enable = false;
+
+ /*
+ * Initialize Output channel parameters
+ * Output is Y-only greyscale
+ * Output width/height will vary based on update region size
+ */
+ pxp_conf->out_param.width = screeninfo->xres;
+ pxp_conf->out_param.height = screeninfo->yres;
+ pxp_conf->out_param.pixel_fmt = PXP_PIX_FMT_GY04;
+
+ mutex_unlock(&fb_data->pxp_mutex);
+
+ /* active new config, If HW not yet initialized,
+ * check to see if we are being sent
+ * an initialization request.
+ */
+ if (!fb_data->hw_ready) {
+ struct fb_videomode mode;
+ bool found_match = false;
+ u32 xres_temp;
+
+ fb_var_to_videomode(&mode, screeninfo);
+
+ /* When comparing requested fb mode,
+ * we need to use unrotated dimensions
+ */
+ if ((screeninfo->rotate == FB_ROTATE_CW) ||
+ (screeninfo->rotate == FB_ROTATE_CCW)) {
+ xres_temp = mode.xres;
+ mode.xres = mode.yres;
+ mode.yres = xres_temp;
+ }
+
+ /* Match videomode against spdc modes */
+ for (i = 0; i < fb_data->pdata->num_modes; i++) {
+ if (!fb_mode_is_equal(spdc_modes[i].vmode, &mode))
+ continue;
+ fb_data->cur_mode = &spdc_modes[i];
+ found_match = true;
+ break;
+ }
+
+ if (!found_match) {
+ dev_err(fb_data->dev,
+ "Failed to match requested video mode\n");
+ return EINVAL;
+ }
+
+ /* Initialize SPDC settings and init panel */
+ ret =
+ spdc_fb_init_hw((struct fb_info *)fb_data);
+ if (ret) {
+ dev_err(fb_data->dev,
+ "Failed to load panel waveform data\n");
+ return ret;
+ }
+ }
+
+ mxc_spdc_fb_set_fix(info);
+
+ return 0;
+}
+
+static int
+mxc_spdc_fb_check_var(struct fb_var_screeninfo *var, struct fb_info *info)
+{
+ mxc_spdc_t *fb_data = (mxc_spdc_t *)info;
+
+ if (!var->xres)
+ var->xres = 1;
+ if (!var->yres)
+ var->yres = 1;
+
+ if (var->xres_virtual < var->xoffset + var->xres)
+ var->xres_virtual = var->xoffset + var->xres;
+ if (var->yres_virtual < var->yoffset + var->yres)
+ var->yres_virtual = var->yoffset + var->yres;
+
+ if ((var->bits_per_pixel != 32) && (var->bits_per_pixel != 24) &&
+ (var->bits_per_pixel != 16) && (var->bits_per_pixel != 8) &&
+ (var->bits_per_pixel != 4))
+ var->bits_per_pixel = SPDC_DEFAULT_BPP;
+
+ switch (var->bits_per_pixel) {
+ case 4:
+ var->red.offset = 0;
+ var->red.length = var->bits_per_pixel;
+ var->green = var->red;
+ var->blue = var->red;
+ var->transp.offset = 0;
+ var->transp.length = 0;
+ break;
+ case 8:
+ if (var->grayscale != 0) {
+ var->red.length = 8;
+ var->red.offset = 0;
+ var->red.msb_right = 0;
+
+ var->green = var->red;
+ var->blue = var->red;
+ var->transp.length = 0;
+ var->transp.offset = 0;
+ var->transp.msb_right = 0;
+ } else {
+ var->red.length = 3;
+ var->red.offset = 5;
+ var->red.msb_right = 0;
+
+ var->green.length = 3;
+ var->green.offset = 2;
+ var->green.msb_right = 0;
+
+ var->blue.length = 2;
+ var->blue.offset = 0;
+ var->blue.msb_right = 0;
+
+ var->transp.length = 0;
+ var->transp.offset = 0;
+ var->transp.msb_right = 0;
+ }
+ break;
+ case 16:
+ var->red.length = 5;
+ var->red.offset = 11;
+ var->red.msb_right = 0;
+
+ var->green.length = 6;
+ var->green.offset = 5;
+ var->green.msb_right = 0;
+
+ var->blue.length = 5;
+ var->blue.offset = 0;
+ var->blue.msb_right = 0;
+
+ var->transp.length = 0;
+ var->transp.offset = 0;
+ var->transp.msb_right = 0;
+ break;
+ case 24:
+ var->red.length = 8;
+ var->red.offset = 16;
+ var->red.msb_right = 0;
+
+ var->green.length = 8;
+ var->green.offset = 8;
+ var->green.msb_right = 0;
+
+ var->blue.length = 8;
+ var->blue.offset = 0;
+ var->blue.msb_right = 0;
+
+ var->transp.length = 0;
+ var->transp.offset = 0;
+ var->transp.msb_right = 0;
+ break;
+ case 32:
+ var->red.length = 8;
+ var->red.offset = 16;
+ var->red.msb_right = 0;
+
+ var->green.length = 8;
+ var->green.offset = 8;
+ var->green.msb_right = 0;
+
+ var->blue.length = 8;
+ var->blue.offset = 0;
+ var->blue.msb_right = 0;
+
+ var->transp.length = 8;
+ var->transp.offset = 24;
+ var->transp.msb_right = 0;
+ break;
+ }
+
+ switch (var->rotate) {
+ case FB_ROTATE_UR:
+ case FB_ROTATE_UD:
+ var->xres = fb_data->native_width;
+ var->yres = fb_data->native_height;
+ break;
+ case FB_ROTATE_CW:
+ case FB_ROTATE_CCW:
+ var->xres = fb_data->native_height;
+ var->yres = fb_data->native_width;
+ break;
+ default:
+ /* Invalid rotation value */
+ var->rotate = 0;
+ dev_dbg(fb_data->dev, "Invalid rotation request\n");
+ return -EINVAL;
+ }
+
+ var->xres_virtual = ALIGN(var->xres, 32);
+ var->yres_virtual = ALIGN(var->yres, 128) * fb_data->num_screens;
+
+ var->height = -1;
+ var->width = -1;
+
+ return 0;
+}
+
+void mxc_spdc_fb_set_waveform_modes(struct mxcfb_waveform_modes *modes,
+ struct fb_info *info)
+{
+ mxc_spdc_t *fb_data = info ?
+ (mxc_spdc_t *)info:g_fb_data;
+
+ mutex_lock(&fb_data->queue_mutex);
+
+ memcpy(&fb_data->wv_modes, modes, sizeof(struct mxcfb_waveform_modes));
+
+ mutex_unlock(&fb_data->queue_mutex);
+}
+EXPORT_SYMBOL(mxc_spdc_fb_set_waveform_modes);
+
+/* To stick with non-fractional degrees for the sake
+ * of API consistency with EPDC.
+ */
+int mxc_spdc_fb_set_temperature(int temperature, struct fb_info *info)
+{
+ mxc_spdc_t *fb_data = info ?
+ (mxc_spdc_t *)info:g_fb_data;
+ s8 temper = (s8)(temperature & 0xFF) << 1;
+
+ mutex_lock(&fb_data->queue_mutex);
+
+ if (temper > -110 && temper < 200)
+ __raw_writel(temper, fb_data->hwp + SPDC_TEMP_INFO);
+ else
+ __raw_writel(SPDC_DEFAULT_TEMP, fb_data->hwp + SPDC_TEMP_INFO);
+
+ mutex_unlock(&fb_data->queue_mutex);
+
+ return 0;
+}
+EXPORT_SYMBOL(mxc_spdc_fb_set_temperature);
+
+
+int mxc_spdc_fb_set_auto_update(u32 auto_mode, struct fb_info *info)
+{
+ mxc_spdc_t *fb_data = info ?
+ (mxc_spdc_t *)info:g_fb_data;
+
+ dev_dbg(fb_data->dev, "Setting auto update mode to %d\n", auto_mode);
+
+ if ((auto_mode == AUTO_UPDATE_MODE_AUTOMATIC_MODE)
+ || (auto_mode == AUTO_UPDATE_MODE_REGION_MODE))
+ fb_data->auto_mode = auto_mode;
+ else {
+ dev_err(fb_data->dev, "Invalid auto update mode parameter.\n");
+ return -EINVAL;
+ }
+
+ return 0;
+}
+EXPORT_SYMBOL(mxc_spdc_fb_set_auto_update);
+
+
+int mxc_spdc_fb_set_upd_scheme(u32 upd_scheme, struct fb_info *info)
+{
+ mxc_spdc_t *fb_data = info ?
+ (mxc_spdc_t *)info:g_fb_data;
+
+ dev_dbg(fb_data->dev, "Setting optimization level to %d\n", upd_scheme);
+
+ /*
+ * Can't change the scheme until current updates have completed.
+ * This function returns when all active updates are done.
+ */
+ mxc_spdc_fb_flush_updates(fb_data);
+
+ if ((upd_scheme == UPDATE_SCHEME_SNAPSHOT)
+ || (upd_scheme == UPDATE_SCHEME_QUEUE)
+ || (upd_scheme == UPDATE_SCHEME_QUEUE_AND_MERGE))
+ fb_data->upd_scheme = upd_scheme;
+ else {
+ dev_err(fb_data->dev, "Invalid update scheme specified.\n");
+ return -EINVAL;
+ }
+
+ return 0;
+}
+EXPORT_SYMBOL(mxc_spdc_fb_set_upd_scheme);
+
+/* Callback function triggered after PxP receives an EOF interrupt */
+static void pxp_dma_done(void *arg)
+{
+ struct pxp_tx_desc *tx_desc = to_tx_desc(arg);
+ struct dma_chan *chan = tx_desc->txd.chan;
+ struct pxp_channel *pxp_chan = to_pxp_channel(chan);
+ mxc_spdc_t *fb_data = pxp_chan->client;
+
+ /* This call will signal wait_for_completion_timeout()
+ * in send_buffer_to_pxp
+ */
+ complete(&fb_data->pxp_tx_cmpl);
+}
+
+static bool chan_filter(struct dma_chan *chan, void *arg)
+{
+ if (imx_dma_is_pxp(chan))
+ return true;
+ else
+ return false;
+}
+
+/* Function to request PXP DMA channel */
+static int pxp_chan_init(mxc_spdc_t *fb_data)
+{
+ dma_cap_mask_t mask;
+ struct dma_chan *chan;
+
+ /*
+ * Request a free channel
+ */
+ dma_cap_zero(mask);
+ dma_cap_set(DMA_SLAVE, mask);
+ dma_cap_set(DMA_PRIVATE, mask);
+ chan = dma_request_channel(mask, chan_filter, NULL);
+ if (!chan) {
+ dev_err(fb_data->dev, "Unsuccessfully received channel!!!!\n");
+ return -EBUSY;
+ }
+
+ fb_data->pxp_chan = to_pxp_channel(chan);
+ fb_data->pxp_chan->client = fb_data;
+
+ init_completion(&fb_data->pxp_tx_cmpl);
+
+ return 0;
+}
+
+/*
+ * Function to call PxP DMA driver and send our latest FB update region
+ * through the PxP and out to an intermediate buffer.
+ * Note: This is a blocking call, so upon return the PxP tx should be complete.
+ */
+static int pxp_process_update(mxc_spdc_t *fb_data,
+ u32 src_width, u32 src_height,
+ struct mxcfb_rect *update_region)
+{
+ dma_cookie_t cookie;
+ struct scatterlist *sg = fb_data->sg;
+ struct dma_chan *dma_chan;
+ struct pxp_tx_desc *desc;
+ struct dma_async_tx_descriptor *txd;
+ struct pxp_config_data *pxp_conf = &fb_data->pxp_conf;
+ struct pxp_proc_data *proc_data = &fb_data->pxp_conf.proc_data;
+ int i, ret;
+ int length;
+
+ /* First, check to see that we have acquired a PxP Channel object */
+ if (fb_data->pxp_chan == NULL) {
+ /*
+ * PxP Channel has not yet been created and initialized,
+ * so let's go ahead and try
+ */
+ ret = pxp_chan_init(fb_data);
+ if (ret) {
+ /*
+ * PxP channel init failed, and we can't use the
+ * PxP until the PxP DMA driver has loaded, so we abort
+ */
+ dev_err(fb_data->dev, "PxP chan init failed\n");
+ return -ENODEV;
+ }
+ }
+
+ /*
+ * Init completion, so that we
+ * can be properly informed of the completion
+ * of the PxP task when it is done.
+ */
+ init_completion(&fb_data->pxp_tx_cmpl);
+
+ dma_chan = &fb_data->pxp_chan->dma_chan;
+
+ txd = dma_chan->device->device_prep_slave_sg(dma_chan, sg, 2,
+ DMA_TO_DEVICE,
+ DMA_PREP_INTERRUPT);
+ if (!txd) {
+ dev_err(fb_data->info.device,
+ "Error preparing a DMA transaction descriptor.\n");
+ return -EIO;
+ }
+
+ txd->callback_param = txd;
+ txd->callback = pxp_dma_done;
+
+ /*
+ * Configure PxP for processing of new update region
+ * The rest of our config params were set up in
+ * probe() and should not need to be changed.
+ */
+ pxp_conf->s0_param.width = src_width;
+ pxp_conf->s0_param.height = src_height;
+ proc_data->srect.top = update_region->top;
+ proc_data->srect.left = update_region->left;
+ proc_data->srect.width = update_region->width;
+ proc_data->srect.height = update_region->height;
+
+ /*
+ * Because only YUV/YCbCr image can be scaled, configure
+ * drect equivalent to srect, as such do not perform scaling.
+ */
+ proc_data->drect.top = 0;
+ proc_data->drect.left = 0;
+ proc_data->drect.width = proc_data->srect.width;
+ proc_data->drect.height = proc_data->srect.height;
+
+ /* PXP expects rotation in terms of degrees */
+ proc_data->rotate = fb_data->spdc_fb_var.rotate * 90;
+ if (proc_data->rotate > 270)
+ proc_data->rotate = 0;
+
+ pxp_conf->out_param.width = update_region->width;
+ pxp_conf->out_param.height = update_region->height;
+
+ if ((proc_data->rotate == 90) || (proc_data->rotate == 270))
+ pxp_conf->out_param.stride = update_region->height;
+ else
+ pxp_conf->out_param.stride = update_region->width;
+
+ desc = to_tx_desc(txd);
+ length = desc->len;
+ for (i = 0; i < length; i++) {
+ if (i == 0) {/* S0 */
+ memcpy(&desc->proc_data, proc_data,
+ sizeof(struct pxp_proc_data));
+ pxp_conf->s0_param.paddr = sg_dma_address(&sg[0]);
+ memcpy(&desc->layer_param.s0_param, &pxp_conf->s0_param,
+ sizeof(struct pxp_layer_param));
+ } else if (i == 1) {
+ pxp_conf->out_param.paddr = sg_dma_address(&sg[1]);
+ memcpy(&desc->layer_param.out_param,
+ &pxp_conf->out_param,
+ sizeof(struct pxp_layer_param));
+ }
+ /* TODO: OverLay */
+
+ desc = desc->next;
+ }
+
+ /* Submitting our TX starts the PxP processing task */
+ cookie = txd->tx_submit(txd);
+ if (cookie < 0) {
+ dev_err(fb_data->info.device, "Error sending FB through PxP\n");
+ return -EIO;
+ }
+
+ fb_data->txd = txd;
+
+ /* trigger ePxP */
+ dma_async_issue_pending(dma_chan);
+
+ return 0;
+}
+
+static int pxp_complete_update(mxc_spdc_t *fb_data, u32 *hist_stat)
+{
+ int ret;
+ /*
+ * Wait for completion event, which will be set
+ * through our TX callback function.
+ */
+ ret = wait_for_completion_timeout(&fb_data->pxp_tx_cmpl, HZ / 10);
+ if (ret <= 0) {
+ dev_info(fb_data->info.device,
+ "PxP operation failed due to %s\n",
+ ret < 0 ? "user interrupt" : "timeout");
+ dma_release_channel(&fb_data->pxp_chan->dma_chan);
+ fb_data->pxp_chan = NULL;
+ return ret ? : -ETIMEDOUT;
+ }
+
+ if ((fb_data->pxp_conf.proc_data.lut_transform & EPDC_FLAG_USE_CMAP) &&
+ fb_data->pxp_conf.proc_data.lut_map_updated)
+ fb_data->pxp_conf.proc_data.lut_map_updated = false;
+
+ *hist_stat = to_tx_desc(fb_data->txd)->hist_status;
+ dma_release_channel(&fb_data->pxp_chan->dma_chan);
+ fb_data->pxp_chan = NULL;
+
+ dev_dbg(fb_data->dev, "TX completed\n");
+
+ return 0;
+}
+
+static void copy_to_next_buffer(mxc_spdc_t *fb_data,
+ struct update_data_list *upd_data_list)
+{
+ struct mxcfb_update_data *upd_data =
+ &upd_data_list->update_desc->upd_data;
+ unsigned char *temp_buf_ptr = fb_data->virt_addr_copybuf;
+ unsigned char *dst_ptr = upd_data_list->virt_addr;
+ struct mxcfb_rect adj_update_region;
+ int dst_stride, left_offs, line_width;
+ int i;
+
+ switch (fb_data->spdc_fb_var.rotate) {
+ case FB_ROTATE_UR:
+ adj_update_region.top = upd_data->update_region.top;
+ adj_update_region.left = upd_data->update_region.left;
+ adj_update_region.width = upd_data->update_region.width;
+ adj_update_region.height = upd_data->update_region.height;
+ dst_stride = fb_data->spdc_fb_var.xres_virtual / 2;
+ break;
+ case FB_ROTATE_CW:
+ adj_update_region.top = upd_data->update_region.left;
+ adj_update_region.left = fb_data->spdc_fb_var.yres -
+ (upd_data->update_region.top +
+ upd_data->update_region.height);
+ adj_update_region.width = upd_data->update_region.height;
+ adj_update_region.height = upd_data->update_region.width;
+ dst_stride = fb_data->spdc_fb_var.yres / 2;
+ break;
+ case FB_ROTATE_UD:
+ adj_update_region.width = upd_data->update_region.width;
+ adj_update_region.height = upd_data->update_region.height;
+ adj_update_region.top = fb_data->spdc_fb_var.yres -
+ (upd_data->update_region.top + upd_data->update_region.height);
+ adj_update_region.left = fb_data->spdc_fb_var.xres -
+ (upd_data->update_region.left +
+ upd_data->update_region.width);
+ dst_stride = fb_data->spdc_fb_var.xres_virtual / 2;
+ break;
+ case FB_ROTATE_CCW:
+ adj_update_region.left = upd_data->update_region.top;
+ adj_update_region.top = fb_data->spdc_fb_var.xres -
+ (upd_data->update_region.left +
+ upd_data->update_region.width);
+ adj_update_region.width = upd_data->update_region.height;
+ adj_update_region.height = upd_data->update_region.width;
+ dst_stride = fb_data->spdc_fb_var.yres / 2;
+ break;
+ }
+
+ /* pxp output Y4 data.
+ * Copy the raw data to related region in next buffer.
+ */
+ left_offs = adj_update_region.left / 2;
+ line_width = adj_update_region.width / 2;
+
+ dst_ptr += (adj_update_region.top * dst_stride + left_offs);
+ for (i = 0; i < adj_update_region.height; i++) {
+ /* Copy the full line */
+ memcpy(dst_ptr, temp_buf_ptr, line_width);
+
+ dst_ptr += dst_stride;
+ temp_buf_ptr += line_width;
+ }
+}
+
+static int spdc_process_update(struct update_data_list *upd_data_list,
+ mxc_spdc_t *fb_data)
+{
+ /* Region of src buffer for update */
+ struct mxcfb_rect *src_upd_region;
+ struct mxcfb_rect pxp_upd_region;
+ struct update_desc_list *upd_desc_list = upd_data_list->update_desc;
+ u32 src_width, src_height;
+ u32 offset_from_4, bytes_per_pixel;
+ u32 post_rotation_xcoord, post_rotation_ycoord, width_pxp_blocks;
+ u32 pxp_input_offs, pxp_output_offs, pxp_output_shift;
+ bool input_unaligned = false;
+ u32 hist_stat = 0;
+ bool use_temp_buf = false;
+ int ret;
+
+ /*
+ * Are we using FB or an alternate (overlay)
+ * buffer for source of update?
+ */
+ if (upd_desc_list->upd_data.flags & EPDC_FLAG_USE_ALT_BUFFER) {
+ src_width = upd_desc_list->upd_data.alt_buffer_data.width;
+ src_height = upd_desc_list->upd_data.alt_buffer_data.height;
+ src_upd_region =
+ &upd_desc_list->upd_data.alt_buffer_data.alt_update_region;
+ } else {
+ src_width = fb_data->spdc_fb_var.xres_virtual;
+ src_height = fb_data->spdc_fb_var.yres;
+ src_upd_region = &upd_desc_list->upd_data.update_region;
+ }
+
+ if (!(src_upd_region->width == fb_data->spdc_fb_var.xres_virtual &&
+ fb_data->spdc_fb_var.rotate == FB_ROTATE_UR))
+ use_temp_buf = true;
+
+ bytes_per_pixel = fb_data->spdc_fb_var.bits_per_pixel / 8;
+
+ /* Grab pxp_mutex here so that we protect access
+ * to copybuf in addition to the PxP structures */
+ mutex_lock(&fb_data->pxp_mutex);
+
+ offset_from_4 = src_upd_region->left & 0x3;
+ input_unaligned = ((offset_from_4 * bytes_per_pixel % 4) != 0) ?
+ true : false;
+
+ if (input_unaligned) {
+ /* Leave a gap between PxP input addr
+ * and update region pixels
+ */
+ pxp_input_offs =
+ (src_upd_region->top * src_width + src_upd_region->left)
+ * bytes_per_pixel & 0xFFFFFFFC;
+ /* Update region left changes to reflect
+ * relative position to input ptr
+ */
+ pxp_upd_region.left = (offset_from_4 * bytes_per_pixel % 4)
+ / bytes_per_pixel;
+ } else {
+ pxp_input_offs =
+ (src_upd_region->top * src_width + src_upd_region->left)
+ * bytes_per_pixel;
+ pxp_upd_region.left = 0;
+ }
+ pxp_upd_region.top = 0;
+
+ /* Update region dimensions to meet 8x8 pixel requirement */
+ if (fb_data->spdc_fb_var.rotate == 0) {
+ pxp_upd_region.width = ALIGN(src_upd_region->width, 8);
+ pxp_upd_region.height = ALIGN(src_upd_region->height, 8);
+ } else {
+ pxp_upd_region.width =
+ ALIGN(src_upd_region->width + pxp_upd_region.left, 8);
+ pxp_upd_region.height = ALIGN(src_upd_region->height, 8);
+ }
+
+ switch (fb_data->spdc_fb_var.rotate) {
+ case FB_ROTATE_UR:
+ default:
+ post_rotation_xcoord = pxp_upd_region.left;
+ post_rotation_ycoord = pxp_upd_region.top;
+ width_pxp_blocks = pxp_upd_region.width;
+ break;
+ case FB_ROTATE_CW:
+ width_pxp_blocks = pxp_upd_region.height;
+ post_rotation_xcoord = width_pxp_blocks -
+ src_upd_region->height;
+ post_rotation_ycoord = pxp_upd_region.left;
+ break;
+ case FB_ROTATE_UD:
+ width_pxp_blocks = pxp_upd_region.width;
+ post_rotation_xcoord = width_pxp_blocks -
+ src_upd_region->width - pxp_upd_region.left;
+ post_rotation_ycoord = pxp_upd_region.height -
+ src_upd_region->height - pxp_upd_region.top;
+ break;
+ case FB_ROTATE_CCW:
+ width_pxp_blocks = pxp_upd_region.height;
+ post_rotation_xcoord = pxp_upd_region.top;
+ post_rotation_ycoord = pxp_upd_region.width -
+ src_upd_region->width - pxp_upd_region.left;
+ break;
+ }
+
+ /* Update region start coord to force PxP to
+ * process full 8x8 regions
+ */
+ pxp_upd_region.top &= ~0x7;
+ pxp_upd_region.left &= ~0x7;
+
+ pxp_output_shift = ALIGN(post_rotation_xcoord, 8)
+ - post_rotation_xcoord;
+ pxp_output_offs = post_rotation_ycoord * width_pxp_blocks
+ + pxp_output_shift;
+ upd_desc_list->spdc_offs = ALIGN(pxp_output_offs, 8);
+
+ /* Source address either comes from alternate buffer
+ provided in update data, or from the framebuffer. */
+ if (upd_desc_list->upd_data.flags & EPDC_FLAG_USE_ALT_BUFFER)
+ sg_dma_address(&fb_data->sg[0]) =
+ upd_desc_list->upd_data.alt_buffer_data.phys_addr
+ + pxp_input_offs;
+ else {
+ sg_dma_address(&fb_data->sg[0]) =
+ fb_data->info.fix.smem_start + fb_data->fb_offset
+ + pxp_input_offs;
+ sg_set_page(&fb_data->sg[0],
+ virt_to_page(fb_data->info.screen_base),
+ fb_data->info.fix.smem_len,
+ offset_in_page(fb_data->info.screen_base));
+ }
+
+ /* Update sg[1] to point to output of PxP proc task */
+ if (!use_temp_buf) {
+ sg_dma_address(&fb_data->sg[1]) = upd_data_list->phys_addr;
+ sg_set_page(&fb_data->sg[1],
+ virt_to_page(upd_data_list->virt_addr),
+ fb_data->max_pix_size,
+ offset_in_page(upd_data_list->virt_addr));
+ } else {
+ sg_dma_address(&fb_data->sg[1]) = fb_data->phys_addr_copybuf;
+ sg_set_page(&fb_data->sg[1],
+ virt_to_page(fb_data->virt_addr_copybuf),
+ fb_data->max_pix_size,
+ offset_in_page(fb_data->virt_addr_copybuf));
+ }
+
+ /*
+ * Set PxP LUT transform type based on update flags.
+ */
+ fb_data->pxp_conf.proc_data.lut_transform = 0;
+ if (upd_desc_list->upd_data.flags & EPDC_FLAG_ENABLE_INVERSION)
+ fb_data->pxp_conf.proc_data.lut_transform |= PXP_LUT_INVERT;
+ if (upd_desc_list->upd_data.flags & EPDC_FLAG_FORCE_MONOCHROME)
+ fb_data->pxp_conf.proc_data.lut_transform |=
+ PXP_LUT_BLACK_WHITE;
+ if (upd_desc_list->upd_data.flags & EPDC_FLAG_USE_CMAP)
+ fb_data->pxp_conf.proc_data.lut_transform |=
+ PXP_LUT_USE_CMAP;
+
+ /*
+ * Toggle inversion processing if 8-bit
+ * inverted is the current pixel format.
+ */
+ if (fb_data->spdc_fb_var.grayscale == GRAYSCALE_4BIT_INVERTED)
+ fb_data->pxp_conf.proc_data.lut_transform ^= PXP_LUT_INVERT;
+
+ /* This is a blocking call, so upon return PxP tx should be done */
+ ret = pxp_process_update(fb_data, src_width, src_height,
+ &pxp_upd_region);
+ if (ret) {
+ dev_err(fb_data->dev, "Unable to submit PxP update task.\n");
+ mutex_unlock(&fb_data->pxp_mutex);
+ return ret;
+ }
+
+ /* If needed, enable SPDC HW while ePxP is processing */
+ if ((fb_data->power_state == POWER_STATE_OFF)
+ || fb_data->powering_down) {
+ spdc_powerup(fb_data);
+ }
+
+ /* This is a blocking call, so upon return PxP tx should be done */
+ ret = pxp_complete_update(fb_data, &hist_stat);
+ if (ret) {
+ dev_err(fb_data->dev, "Unable to complete PxP update task.\n");
+ mutex_unlock(&fb_data->pxp_mutex);
+ return ret;
+ }
+
+ if (use_temp_buf)
+ copy_to_next_buffer(fb_data, upd_data_list);
+
+ mutex_unlock(&fb_data->pxp_mutex);
+
+ /* Update waveform mode from PxP histogram results */
+ if (upd_desc_list->upd_data.waveform_mode == WAVEFORM_MODE_AUTO) {
+ if (hist_stat & 0x1)
+ upd_desc_list->upd_data.waveform_mode =
+ fb_data->wv_modes.mode_du;
+ else if (hist_stat & 0x2)
+ upd_desc_list->upd_data.waveform_mode =
+ fb_data->wv_modes.mode_gc4;
+ else if (hist_stat & 0x4)
+ upd_desc_list->upd_data.waveform_mode =
+ fb_data->wv_modes.mode_gc8;
+ else if (hist_stat & 0x8)
+ upd_desc_list->upd_data.waveform_mode =
+ fb_data->wv_modes.mode_gc16;
+ else
+ upd_desc_list->upd_data.waveform_mode =
+ fb_data->wv_modes.mode_gc32;
+
+ dev_dbg(fb_data->dev, "hist_stat = 0x%x, new waveform = 0x%x\n",
+ hist_stat, upd_desc_list->upd_data.waveform_mode);
+ }
+
+ return 0;
+}
+
+static bool spdc_submit_concur(mxc_spdc_t *fb_data,
+ struct update_desc_list *update_to_concur)
+{
+ struct mxcfb_update_data *a, *b;
+ struct mxcfb_rect *arect, *brect;
+ struct update_data_list *next_upd;
+ int i = 0;
+
+ a = &update_to_concur->upd_data;
+ arect = &update_to_concur->upd_data.update_region;
+
+ list_for_each_entry(next_upd,
+ &fb_data->upd_buf_preprocess_list, list) {
+ b = &next_upd->update_desc->upd_data;
+ brect = &next_upd->update_desc->upd_data.update_region;
+
+ /* Updates with different waveform
+ * must be executed sequentially.
+ */
+ if (a->waveform_mode != b->waveform_mode)
+ break;
+
+ /*
+ * Concurrency update must has no overlay
+ */
+ if (!(arect->left > (brect->left + brect->width) ||
+ brect->left > (arect->left + arect->width) ||
+ arect->top > (brect->top + brect->height) ||
+ brect->top > (arect->top + arect->height)))
+ break;
+
+ i++;
+ }
+
+ if (i != fb_data->upd_preprocess_num)
+ return false;
+
+ return true;
+}
+
+static int spdc_submit_merge(struct update_desc_list *upd_desc_list,
+ struct update_desc_list *update_to_merge)
+{
+ struct mxcfb_update_data *a, *b;
+ struct mxcfb_rect *arect, *brect;
+ struct mxcfb_rect combine;
+ bool use_flags = false;
+
+ a = &upd_desc_list->upd_data;
+ b = &update_to_merge->upd_data;
+ arect = &upd_desc_list->upd_data.update_region;
+ brect = &update_to_merge->upd_data.update_region;
+
+ /*
+ * Updates with different flags must be executed sequentially.
+ * Halt the merge process to ensure this.
+ */
+ if (a->flags != b->flags) {
+ /*
+ * Special exception: if update regions are identical,
+ * we may be able to merge them.
+ */
+ if ((arect->left != brect->left) ||
+ (arect->top != brect->top) ||
+ (arect->width != brect->width) ||
+ (arect->height != brect->height))
+ return MERGE_BLOCK;
+
+ use_flags = true;
+ }
+
+ if (a->waveform_mode != b->waveform_mode)
+ a->waveform_mode = WAVEFORM_MODE_AUTO;
+
+ if (arect->left > (brect->left + brect->width) ||
+ brect->left > (arect->left + arect->width) ||
+ arect->top > (brect->top + brect->height) ||
+ brect->top > (arect->top + arect->height))
+ return MERGE_FAIL;
+
+ combine.left = arect->left < brect->left ? arect->left : brect->left;
+ combine.top = arect->top < brect->top ? arect->top : brect->top;
+ combine.width = (arect->left + arect->width) >
+ (brect->left + brect->width) ?
+ (arect->left + arect->width - combine.left) :
+ (brect->left + brect->width - combine.left);
+ combine.height = (arect->top + arect->height) >
+ (brect->top + brect->height) ?
+ (arect->top + arect->height - combine.top) :
+ (brect->top + brect->height - combine.top);
+
+ *arect = combine;
+
+ /* Use flags of the later update */
+ if (use_flags)
+ a->flags = b->flags;
+
+ /* Merge markers */
+ list_splice_tail(&update_to_merge->upd_marker_list,
+ &upd_desc_list->upd_marker_list);
+
+ return MERGE_OK;
+
+}
+
+static void spdc_submit_work_func(struct work_struct *work)
+{
+ struct update_desc_list *next_desc, *temp_desc;
+ mxc_spdc_t *fb_data =
+ container_of(work, mxc_spdc_t, spdc_submit_work);
+ struct update_data_list *upd_data_list = NULL;
+ struct mxcfb_rect adj_update_region, *upd_region;
+ struct update_marker_data *current_marker;
+ bool end_merge = false;
+ bool is_transform;
+ u32 update_addr;
+
+ /* Protect access to buffer queues and to update HW */
+ mutex_lock(&fb_data->queue_mutex);
+
+ /* get a buffer from free list */
+ if (list_empty(&fb_data->upd_buf_free_list)) {
+ mutex_unlock(&fb_data->queue_mutex);
+ return;
+ }
+
+ if (fb_data->fresh_param.concur == SPDC_LUT_ACC_MODE) {
+ list_for_each_entry_safe(next_desc, temp_desc,
+ &fb_data->upd_pending_list, list) {
+
+ current_marker =
+ list_entry((&next_desc->upd_marker_list)->next,
+ struct update_marker_data, upd_list);
+
+ if (current_marker->update_marker) {
+ fb_data->submit_upd_sta = 0;
+ break;
+ }
+
+ /* require free buffer list */
+ if (list_empty(&fb_data->upd_buf_free_list)) {
+ dev_dbg(fb_data->dev,
+ "buf free list is empty\n");
+ break;
+ }
+
+ upd_data_list =
+ list_entry(fb_data->upd_buf_free_list.next,
+ struct update_data_list, list);
+ upd_data_list->update_desc = next_desc;
+
+ if (!is_preprocess_list_full(fb_data)) {
+ if (fb_data->cur_update == NULL &&
+ !fb_data->upd_preprocess_num)
+ list_del_init(&next_desc->list);
+ else if (spdc_submit_concur(fb_data,
+ next_desc)) {
+ list_del_init(&next_desc->list);
+ list_add_tail(&upd_data_list->list,
+ &fb_data->upd_buf_preprocess_list);
+ fb_data->upd_preprocess_num++;
+ fb_data->submit_upd_sta =
+ SPDC_CONCUR_UPD;
+ } else
+ break;
+ } else
+ break;
+
+ /* submit to pxp process */
+ list_del_init(&upd_data_list->list);
+ goto pxp_process;
+ }
+
+ upd_data_list = NULL;
+ if (fb_data->submit_upd_sta == SPDC_CONCUR_UPD)
+ fb_data->submit_upd_sta |= SPDC_QUEUE_UPD;
+ else
+ fb_data->submit_upd_sta = SPDC_QUEUE_UPD;
+ }
+
+ list_for_each_entry_safe(next_desc, temp_desc,
+ &fb_data->upd_pending_list, list) {
+
+ if (!upd_data_list) {
+
+ if (list_empty(&fb_data->upd_buf_free_list)) {
+ dev_dbg(fb_data->dev,
+ "buf_free_list is empty\n");
+ break;
+ }
+ upd_data_list =
+ list_entry(fb_data->upd_buf_free_list.next,
+ struct update_data_list, list);
+ list_del_init(&upd_data_list->list);
+ upd_data_list->update_desc = next_desc;
+ list_del_init(&next_desc->list);
+
+ if (fb_data->upd_scheme == UPDATE_SCHEME_QUEUE)
+ break;
+ } else {
+ switch (spdc_submit_merge(upd_data_list->update_desc,
+ next_desc)) {
+ case MERGE_OK:
+ dev_dbg(fb_data->dev,
+ "Update merged [queue]\n");
+ list_del_init(&next_desc->list);
+ kfree(next_desc);
+ break;
+ case MERGE_FAIL:
+ dev_dbg(fb_data->dev,
+ "Update not merged [queue]\n");
+ break;
+ case MERGE_BLOCK:
+ dev_dbg(fb_data->dev,
+ "Merge blocked [collision]\n");
+ end_merge = true;
+ break;
+ }
+
+ if (end_merge)
+ break;
+ }
+ }
+
+ /* Is update list empty? */
+ if (!upd_data_list) {
+ mutex_unlock(&fb_data->queue_mutex);
+ return;
+ }
+
+pxp_process:
+ /*
+ * If no processing required, skip update processing
+ * No processing means:
+ * - FB unrotated
+ * - FB pixel format = 4-bit grayscale
+ * - No look-up transformations (inversion, posterization, etc.)
+ */
+ is_transform = upd_data_list->update_desc->upd_data.flags &
+ (EPDC_FLAG_ENABLE_INVERSION |
+ EPDC_FLAG_FORCE_MONOCHROME | EPDC_FLAG_USE_CMAP) ?
+ true : false;
+ if ((fb_data->spdc_fb_var.rotate == FB_ROTATE_UR) &&
+ (fb_data->spdc_fb_var.grayscale == GRAYSCALE_4BIT) &&
+ !is_transform) {
+
+ /* If needed, enable SPDC HW while ePxP is processing */
+ if ((fb_data->power_state == POWER_STATE_OFF)
+ || fb_data->powering_down)
+ spdc_powerup(fb_data);
+
+ /*
+ * Set update buffer pointer to the start of
+ * the update region in the frame buffer.
+ */
+ upd_region =
+ &upd_data_list->update_desc->upd_data.update_region;
+ update_addr = fb_data->info.fix.smem_start +
+ ((upd_region->top * fb_data->info.var.xres_virtual) +
+ upd_region->left) * fb_data->info.var.bits_per_pixel/8;
+ } else {
+
+ /* Select from PxP output buffers */
+ upd_data_list->phys_addr =
+ fb_data->phys_addr_updbuf[fb_data->upd_buffer_num];
+ upd_data_list->virt_addr =
+ fb_data->virt_addr_updbuf[fb_data->upd_buffer_num];
+ fb_data->upd_buffer_num++;
+ if (fb_data->upd_buffer_num > fb_data->max_num_buffers-1)
+ fb_data->upd_buffer_num = 0;
+ dev_dbg(fb_data->dev,
+ "pxp out addr:0x%x\n", upd_data_list->phys_addr);
+
+ /* Release buffer queues */
+ mutex_unlock(&fb_data->queue_mutex);
+
+ /* Perform PXP processing - SPDC power will also be enabled */
+ if (spdc_process_update(upd_data_list, fb_data)) {
+
+ dev_dbg(fb_data->dev, "PXP processing error.\n");
+ /* Protect access to buffer queues and to update HW */
+ mutex_lock(&fb_data->queue_mutex);
+ list_del_init(&upd_data_list->update_desc->list);
+ kfree(upd_data_list->update_desc);
+ upd_data_list->update_desc = NULL;
+
+ /* Add to free buffer list */
+ list_add_tail(&upd_data_list->list,
+ &fb_data->upd_buf_free_list);
+ /* Release buffer queues */
+ mutex_unlock(&fb_data->queue_mutex);
+ return;
+ }
+
+ /* Protect access to buffer queues and to update HW */
+ mutex_lock(&fb_data->queue_mutex);
+
+ /* output Y4 format */
+ update_addr = upd_data_list->phys_addr +
+ + (upd_data_list->update_desc->spdc_offs / 2);
+ }
+
+ /* Get rotation-adjusted coordinates */
+ adjust_coordinates(fb_data->spdc_fb_var.xres,
+ fb_data->spdc_fb_var.yres, fb_data->spdc_fb_var.rotate,
+ &upd_data_list->update_desc->upd_data.update_region,
+ &adj_update_region);
+
+ /*
+ * Is the working buffer idle?
+ * If the working buffer is busy, we must wait for the resource
+ * to become free.
+ */
+ if (fb_data->cur_update != NULL &&
+ fb_data->submit_upd_sta != SPDC_CONCUR_UPD) {
+ /* Initialize event signalling an update resource is free */
+ init_completion(&fb_data->update_res_free);
+
+ fb_data->waiting_for_wb = true;
+
+ /* Leave spinlock while waiting for WB to complete */
+ mutex_unlock(&fb_data->queue_mutex);
+ wait_for_completion(&fb_data->update_res_free);
+ mutex_lock(&fb_data->queue_mutex);
+ }
+
+ if (fb_data->submit_upd_sta != SPDC_CONCUR_UPD)
+ fb_data->cur_update = upd_data_list;
+
+ /* program SPDC register and trigger to process buffer*/
+ fb_data->fresh_param.buf_addr.next_buf_phys_addr = update_addr;
+
+ fb_data->fresh_param.update_region.left = adj_update_region.left;
+ fb_data->fresh_param.update_region.top = adj_update_region.top;
+ fb_data->fresh_param.update_region.width = adj_update_region.width;
+ fb_data->fresh_param.update_region.height = adj_update_region.height;
+ fb_data->fresh_param.temper = upd_data_list->update_desc->upd_data.temp;
+ fb_data->fresh_param.wave_mode =
+ upd_data_list->update_desc->upd_data.waveform_mode;
+
+ spdc_submit_update(fb_data);
+
+ /* Release buffer queues */
+ mutex_unlock(&fb_data->queue_mutex);
+}
+
+int mxc_spdc_fb_send_update(struct mxcfb_update_data *upd_data,
+ struct fb_info *info)
+{
+ mxc_spdc_t *fb_data = info ?
+ (mxc_spdc_t *)info:g_fb_data;
+ struct update_data_list *upd_data_list = NULL;
+ struct mxcfb_rect *screen_upd_region; /* Region on screen to update */
+ struct update_desc_list *upd_desc;
+ struct update_marker_data *marker_data;
+ int ret;
+
+ /* Has SPDC HW been initialized? */
+ if (!fb_data->hw_ready) {
+ /* Throw message if we are not mid-initialization */
+ if (!fb_data->hw_initializing)
+ dev_err(fb_data->dev, "Display HW not properly"
+ "initialized. Aborting update.\n");
+ return -EPERM;
+ }
+
+ if ((upd_data->waveform_mode > SPDC_WAV_MODE_5) &&
+ (upd_data->waveform_mode != WAVEFORM_MODE_AUTO)) {
+ dev_err(fb_data->dev,
+ "Update waveform mode 0x%x is invalid."
+ " Aborting update.\n",
+ upd_data->waveform_mode);
+ return -EINVAL;
+ }
+ if ((upd_data->update_region.left + upd_data->update_region.width >
+ fb_data->spdc_fb_var.xres + 1) ||
+ (upd_data->update_region.top + upd_data->update_region.height >
+ fb_data->spdc_fb_var.yres + 1)) {
+ dev_err(fb_data->dev,
+ "Update region is outside bounds of framebuffer."
+ "Aborting update.\n");
+ return -EINVAL;
+ }
+ if (upd_data->flags & EPDC_FLAG_USE_ALT_BUFFER) {
+ if ((upd_data->update_region.width !=
+ upd_data->alt_buffer_data.alt_update_region.width) ||
+ (upd_data->update_region.height !=
+ upd_data->alt_buffer_data.alt_update_region.height)) {
+ dev_err(fb_data->dev,
+ "Alternate update region dimensions must "
+ "match screen update region dimensions.\n");
+ return -EINVAL;
+ }
+ /* Validate physical address parameter */
+ if ((upd_data->alt_buffer_data.phys_addr <
+ fb_data->info.fix.smem_start) ||
+ (upd_data->alt_buffer_data.phys_addr >
+ fb_data->info.fix.smem_start + fb_data->map_size)) {
+ dev_err(fb_data->dev,
+ "Invalid physical address for alternate "
+ "buffer. Aborting update...\n");
+ return -EINVAL;
+ }
+ }
+
+ mutex_lock(&fb_data->queue_mutex);
+
+ /*
+ * If we are waiting to go into suspend, or the FB is blanked,
+ * we do not accept new updates
+ */
+ if (fb_data->waiting_for_idle) {
+ dev_dbg(fb_data->dev, "SPDC not active."
+ "Update request abort.\n");
+ mutex_unlock(&fb_data->queue_mutex);
+ return -EPERM;
+ }
+
+ if (fb_data->upd_scheme == UPDATE_SCHEME_SNAPSHOT) {
+ int count = 0;
+ struct update_data_list *plist;
+
+ /* Count buffers in free buffer list */
+ list_for_each_entry(plist, &fb_data->upd_buf_free_list, list)
+ count++;
+
+ /* Use count to determine if we have enough
+ * free buffers to handle this update request */
+ if (count + fb_data->max_num_buffers
+ <= fb_data->max_num_updates) {
+ dev_err(fb_data->dev,
+ "No free intermediate buffers available.\n");
+ mutex_unlock(&fb_data->queue_mutex);
+ return -ENOMEM;
+ }
+
+ /* Grab first available buffer and delete from the free list */
+ upd_data_list =
+ list_entry(fb_data->upd_buf_free_list.next,
+ struct update_data_list, list);
+
+ list_del_init(&upd_data_list->list);
+ }
+
+ /*
+ * Create new update data structure, fill it with new update
+ * data and add it to the list of pending updates
+ */
+ upd_desc = kzalloc(sizeof(struct update_desc_list), GFP_KERNEL);
+ if (!upd_desc) {
+ dev_err(fb_data->dev,
+ "Insufficient system memory for update! Aborting.\n");
+ if (fb_data->upd_scheme == UPDATE_SCHEME_SNAPSHOT) {
+ list_add(&upd_data_list->list,
+ &fb_data->upd_buf_free_list);
+ }
+ mutex_unlock(&fb_data->queue_mutex);
+ return -EPERM;
+ }
+ /* Initialize per-update marker list */
+ INIT_LIST_HEAD(&upd_desc->upd_marker_list);
+ upd_desc->upd_data = *upd_data;
+ list_add_tail(&upd_desc->list, &fb_data->upd_pending_list);
+
+ /* If marker specified, associate it with a completion */
+ if (upd_data->update_marker != 0) {
+
+ /* Allocate new update marker and set it up */
+ marker_data = kzalloc(sizeof(struct update_marker_data),
+ GFP_KERNEL);
+ if (!marker_data) {
+ dev_err(fb_data->dev, "No memory for marker!\n");
+ mutex_unlock(&fb_data->queue_mutex);
+ return -ENOMEM;
+ }
+ list_add_tail(&marker_data->upd_list,
+ &upd_desc->upd_marker_list);
+ marker_data->update_marker = upd_data->update_marker;
+ init_completion(&marker_data->update_completion);
+
+ /* Add marker to master marker list */
+ list_add_tail(&marker_data->full_list,
+ &fb_data->full_marker_list);
+ }
+
+ if (fb_data->upd_scheme != UPDATE_SCHEME_SNAPSHOT) {
+ /* Queued update scheme processing */
+
+ mutex_unlock(&fb_data->queue_mutex);
+
+ /* Signal workqueue to handle new update */
+ queue_work(fb_data->spdc_submit_workqueue,
+ &fb_data->spdc_submit_work);
+
+ return 0;
+ }
+
+ /* Set descriptor for current update, delete from pending list */
+ upd_data_list->update_desc = upd_desc;
+ list_del_init(&upd_desc->list);
+
+ mutex_unlock(&fb_data->queue_mutex);
+
+ /*
+ * Hold on to original screen update region, which we
+ * will ultimately use when telling SPDC where to update on panel
+ */
+ screen_upd_region = &upd_desc->upd_data.update_region;
+
+ /* Select from PxP output buffers */
+ upd_data_list->phys_addr =
+ fb_data->phys_addr_updbuf[fb_data->upd_buffer_num];
+ upd_data_list->virt_addr =
+ fb_data->virt_addr_updbuf[fb_data->upd_buffer_num];
+ fb_data->upd_buffer_num++;
+ if (fb_data->upd_buffer_num > fb_data->max_num_buffers-1)
+ fb_data->upd_buffer_num = 0;
+
+ ret = spdc_process_update(upd_data_list, fb_data);
+ if (ret) {
+ mutex_unlock(&fb_data->pxp_mutex);
+ return ret;
+ }
+
+ /* Pass selected waveform mode back to user */
+ upd_data->waveform_mode = upd_desc->upd_data.waveform_mode;
+
+ /* Get rotation-adjusted coordinates */
+ adjust_coordinates(fb_data->spdc_fb_var.xres,
+ fb_data->spdc_fb_var.yres, fb_data->spdc_fb_var.rotate,
+ &upd_desc->upd_data.update_region, NULL);
+
+ /* Grab lock for queue manipulation and update submission */
+ mutex_lock(&fb_data->queue_mutex);
+
+ /*
+ * Is the working buffer idle?
+ * If either the working buffer is busy, or there are no LUTs available,
+ * then we return and let the ISR handle the update later
+ */
+ if (fb_data->cur_update != NULL) {
+
+ /* Add processed Y buffer to update list */
+ list_add_tail(&upd_data_list->list, &fb_data->upd_buf_queue);
+
+ /* Return and allow the update to be submitted by the ISR. */
+ mutex_unlock(&fb_data->queue_mutex);
+ return 0;
+ }
+
+ /* Save current update */
+ fb_data->cur_update = upd_data_list;
+
+ /* program SPDC register and trigger to process buffer*/
+ fb_data->fresh_param.buf_addr.next_buf_phys_addr =
+ upd_data_list->phys_addr + (upd_data_list->update_desc->spdc_offs / 2);
+
+ fb_data->fresh_param.update_region.left = screen_upd_region->left;
+ fb_data->fresh_param.update_region.top = screen_upd_region->top;
+ fb_data->fresh_param.update_region.width = screen_upd_region->width;
+ fb_data->fresh_param.update_region.height = screen_upd_region->height;
+ fb_data->fresh_param.temper = upd_desc->upd_data.temp;
+ fb_data->fresh_param.wave_mode = upd_desc->upd_data.waveform_mode;
+ spdc_submit_update(fb_data);
+
+ mutex_unlock(&fb_data->queue_mutex);
+ return 0;
+}
+EXPORT_SYMBOL(mxc_spdc_fb_send_update);
+
+/*
+ * return 0 : spdc update is update
+ */
+int
+mxc_spdc_fb_wait_update_complete(struct mxcfb_update_marker_data *marker_data,
+ struct fb_info *info)
+{
+ mxc_spdc_t *fb_data = info ?
+ (mxc_spdc_t *)info:g_fb_data;
+ struct update_marker_data *next_marker;
+ struct update_marker_data *temp;
+ bool marker_found = false;
+ int ret = 0;
+
+ /* 0 is an invalid update_marker value */
+ if (marker_data->update_marker == 0)
+ return -EINVAL;
+
+ /*
+ * Find completion associated with update_marker requested.
+ * Note: If update completed already, marker will have been
+ * cleared, it won't be found, and function will just return.
+ */
+
+ /* Grab queue lock to protect access to marker list */
+ mutex_lock(&fb_data->queue_mutex);
+
+ list_for_each_entry_safe(next_marker, temp,
+ &fb_data->full_marker_list, full_list) {
+ if (next_marker->update_marker == marker_data->update_marker) {
+ dev_dbg(fb_data->dev, "Waiting for marker %d\n",
+ marker_data->update_marker);
+ next_marker->waiting = true;
+ marker_found = true;
+ break;
+ }
+ }
+
+ mutex_unlock(&fb_data->queue_mutex);
+
+ /*
+ * If marker not found, it has either been signalled already
+ * or the update request failed. In either case, just return.
+ */
+ if (!marker_found)
+ return ret;
+
+ ret = wait_for_completion_timeout(&next_marker->update_completion,
+ msecs_to_jiffies(8000));
+ if (!ret) {
+ dev_err(fb_data->dev,
+ "Timed out waiting for update completion\n");
+ return -ETIMEDOUT;
+ }
+
+ /** since SPDC don't support auto collision detect,
+ * there alway returns no collision
+ */
+ marker_data->collision_test = false;
+
+ /* Free update marker object */
+ kfree(next_marker);
+
+ return ret;
+}
+EXPORT_SYMBOL(mxc_spdc_fb_wait_update_complete);
+
+int mxc_spdc_fb_set_pwrdown_delay(u32 pwrdown_delay,
+ struct fb_info *info)
+{
+ mxc_spdc_t *fb_data = info ?
+ (mxc_spdc_t *)info:g_fb_data;
+
+ fb_data->pwrdown_delay = pwrdown_delay;
+
+ return 0;
+}
+EXPORT_SYMBOL(mxc_spdc_fb_set_pwrdown_delay);
+
+int mxc_spdc_get_pwrdown_delay(struct fb_info *info)
+{
+ mxc_spdc_t *fb_data = info ?
+ (mxc_spdc_t *)info:g_fb_data;
+
+ return fb_data->pwrdown_delay;
+}
+EXPORT_SYMBOL(mxc_spdc_get_pwrdown_delay);
+
+static int
+mxc_spdc_fb_ioctl(struct fb_info *info, unsigned int cmd, unsigned long arg)
+{
+ mxc_spdc_t *fb_data = (mxc_spdc_t *)info;
+ void __user *argp = (void __user *)arg;
+ int ret = -EINVAL;
+
+ dev_dbg(fb_data->dev, "cmd = %08X, arg = %08X\n", cmd, (u32)arg);
+
+ switch (cmd) {
+ case MXCFB_SET_WAVEFORM_MODES:
+ {
+ struct mxcfb_waveform_modes modes;
+ if (!copy_from_user(&modes, argp, sizeof(modes))) {
+ mxc_spdc_fb_set_waveform_modes(&modes, info);
+ ret = 0;
+ }
+ break;
+ }
+ case MXCFB_SET_TEMPERATURE:
+ {
+ int temperature;
+ if (!get_user(temperature, (int32_t __user *) arg))
+ ret = mxc_spdc_fb_set_temperature(temperature,
+ info);
+ break;
+ }
+ case MXCFB_SET_AUTO_UPDATE_MODE:
+ {
+ u32 auto_mode = 0;
+ if (!get_user(auto_mode, (__u32 __user *) arg))
+ ret = mxc_spdc_fb_set_auto_update(auto_mode,
+ info);
+ break;
+ }
+ case MXCFB_SET_UPDATE_SCHEME:
+ {
+ u32 upd_scheme = 0;
+ if (!get_user(upd_scheme, (__u32 __user *) arg))
+ ret = mxc_spdc_fb_set_upd_scheme(upd_scheme,
+ info);
+ break;
+ }
+ case MXCFB_SEND_UPDATE:
+ {
+ struct mxcfb_update_data upd_data;
+ if (!copy_from_user(&upd_data, argp,
+ sizeof(upd_data))) {
+ ret = mxc_spdc_fb_send_update(&upd_data, info);
+ if (ret == 0 && copy_to_user(argp, &upd_data,
+ sizeof(upd_data)))
+ ret = -EFAULT;
+ } else {
+ ret = -EFAULT;
+ }
+
+ break;
+ }
+ case MXCFB_WAIT_FOR_UPDATE_COMPLETE:
+ {
+ struct mxcfb_update_marker_data upd_marker_data;
+ if (!copy_from_user(&upd_marker_data, argp,
+ sizeof(upd_marker_data))) {
+ ret = mxc_spdc_fb_wait_update_complete(
+ &upd_marker_data, info);
+ if (copy_to_user(argp, &upd_marker_data,
+ sizeof(upd_marker_data)))
+ ret = -EFAULT;
+ } else {
+ ret = -EFAULT;
+ }
+
+ break;
+ }
+ case MXCFB_SET_PWRDOWN_DELAY:
+ {
+ int delay = 0;
+ if (!get_user(delay, (__u32 __user *) arg))
+ ret =
+ mxc_spdc_fb_set_pwrdown_delay(delay, info);
+ break;
+ }
+ case MXCFB_GET_PWRDOWN_DELAY:
+ {
+ int pwrdown_delay = mxc_spdc_get_pwrdown_delay(info);
+ if (put_user(pwrdown_delay, (int __user *)arg))
+ ret = -EFAULT;
+ break;
+ }
+ default:
+ dev_err(fb_data->dev, "IOCTL_CMD: not such command\n");
+ return -ENOTTY;
+ }
+
+ return ret;
+}
+
+static void mxc_spdc_fb_update_pages(mxc_spdc_t *fb_data, u16 y1, u16 y2)
+{
+ struct mxcfb_update_data update;
+
+ /* Do partial screen update, Update full horizontal lines */
+ update.update_region.left = 0;
+ update.update_region.width = fb_data->spdc_fb_var.xres;
+ update.update_region.top = y1;
+ update.update_region.height = y2 - y1;
+ update.waveform_mode = WAVEFORM_MODE_AUTO;
+ update.update_mode = UPDATE_MODE_FULL;
+ update.update_marker = 0;
+ update.temp = SPDC_DEFAULT_TEMP;
+ update.flags = 0;
+
+ mxc_spdc_fb_send_update(&update, &fb_data->info);
+}
+
+/* this is called back from the deferred io workqueue */
+static void mxc_spdc_fb_deferred_io(struct fb_info *info,
+ struct list_head *pagelist)
+{
+ mxc_spdc_t *fb_data = (mxc_spdc_t *)info;
+ struct page *page;
+ unsigned long beg, end;
+ int y1, y2, miny, maxy;
+
+ if (fb_data->auto_mode != AUTO_UPDATE_MODE_AUTOMATIC_MODE)
+ return;
+
+ miny = INT_MAX;
+ maxy = 0;
+ list_for_each_entry(page, pagelist, lru) {
+ beg = page->index << PAGE_SHIFT;
+ end = beg + PAGE_SIZE - 1;
+ y1 = beg / info->fix.line_length;
+ y2 = end / info->fix.line_length;
+ if (y2 >= fb_data->spdc_fb_var.yres)
+ y2 = fb_data->spdc_fb_var.yres - 1;
+ if (miny > y1)
+ miny = y1;
+ if (maxy < y2)
+ maxy = y2;
+ }
+
+ mxc_spdc_fb_update_pages(fb_data, miny, maxy);
+}
+
+static int mxc_spdc_fb_blank(int blank, struct fb_info *info)
+{
+ mxc_spdc_t *fb_data = (mxc_spdc_t *)info;
+ int ret = 0;
+
+ dev_dbg(fb_data->dev, "blank = %d\n", blank);
+
+ if (fb_data->blank == blank)
+ return 0;
+
+ fb_data->blank = blank;
+ switch (blank) {
+ case FB_BLANK_POWERDOWN:
+ mxc_spdc_fb_flush_updates(fb_data);
+ /* Wait for powerdown */
+ mutex_lock(&fb_data->power_mutex);
+ if ((fb_data->power_state == POWER_STATE_ON) &&
+ (fb_data->pwrdown_delay == FB_POWERDOWN_DISABLE)) {
+
+ /* Powerdown disabled, so we disable SPDC manually */
+ int count = 0;
+ int sleep_ms = 10;
+
+ mutex_unlock(&fb_data->power_mutex);
+
+ /* If any active updates, wait for them to complete */
+ while (fb_data->updates_active) {
+ /* Timeout after 1 sec */
+ if ((count * sleep_ms) > 1000)
+ break;
+ msleep(sleep_ms);
+ count++;
+ }
+
+ fb_data->powering_down = true;
+ spdc_powerdown(fb_data);
+ } else if (fb_data->power_state != POWER_STATE_OFF) {
+ fb_data->wait_for_powerdown = true;
+ init_completion(&fb_data->powerdown_compl);
+ mutex_unlock(&fb_data->power_mutex);
+ ret =
+ wait_for_completion_timeout(&fb_data->powerdown_compl,
+ msecs_to_jiffies(5000));
+ if (!ret) {
+ dev_err(fb_data->dev,
+ "No powerdown received!\n");
+ return -ETIMEDOUT;
+ }
+ } else
+ mutex_unlock(&fb_data->power_mutex);
+ break;
+ case FB_BLANK_VSYNC_SUSPEND:
+ case FB_BLANK_HSYNC_SUSPEND:
+ case FB_BLANK_NORMAL:
+ mxc_spdc_fb_flush_updates(fb_data);
+ break;
+ }
+
+ return ret;
+}
+
+static int mxc_spdc_fb_pan_display(struct fb_var_screeninfo *var,
+ struct fb_info *info)
+{
+ mxc_spdc_t *fb_data = info ?
+ (mxc_spdc_t *)info:g_fb_data;
+ u_int y_bottom;
+
+ dev_dbg(info->device, "%s: var->yoffset %d, info->var.yoffset %d\n",
+ __func__, var->yoffset, info->var.yoffset);
+ /* check if var is valid; also, xpan is not supported */
+ if (!var || (var->xoffset != info->var.xoffset) ||
+ (var->yoffset + var->yres > var->yres_virtual)) {
+ dev_dbg(info->device, "x panning not supported\n");
+ return -EINVAL;
+ }
+
+ if ((fb_data->spdc_fb_var.xoffset == var->xoffset) &&
+ (fb_data->spdc_fb_var.yoffset == var->yoffset))
+ return 0; /* No change, do nothing */
+
+ y_bottom = var->yoffset;
+
+ if (!(var->vmode & FB_VMODE_YWRAP))
+ y_bottom += var->yres;
+
+ if (y_bottom > info->var.yres_virtual)
+ return -EINVAL;
+
+ mutex_lock(&fb_data->queue_mutex);
+
+ fb_data->fb_offset = (var->yoffset * var->xres_virtual + var->xoffset)
+ * (var->bits_per_pixel) / 8;
+
+ fb_data->spdc_fb_var.xoffset = var->xoffset;
+ fb_data->spdc_fb_var.yoffset = var->yoffset;
+
+ if (var->vmode & FB_VMODE_YWRAP)
+ info->var.vmode |= FB_VMODE_YWRAP;
+ else
+ info->var.vmode &= ~FB_VMODE_YWRAP;
+
+ mutex_unlock(&fb_data->queue_mutex);
+
+ return 0;
+}
+
+static struct fb_ops mxc_spdc_fb_ops = {
+ .owner = THIS_MODULE,
+ .fb_check_var = mxc_spdc_fb_check_var,
+ .fb_set_par = mxc_spdc_fb_set_par,
+ .fb_setcmap = mxc_spdc_fb_setcmap,
+ .fb_setcolreg = mxc_spdc_fb_setcolreg,
+ .fb_pan_display = mxc_spdc_fb_pan_display,
+ .fb_ioctl = mxc_spdc_fb_ioctl,
+ .fb_mmap = mxc_spdc_fb_mmap,
+ .fb_blank = mxc_spdc_fb_blank,
+ .fb_fillrect = cfb_fillrect,
+ .fb_copyarea = cfb_copyarea,
+ .fb_imageblit = cfb_imageblit,
+};
+
+static struct fb_deferred_io mxc_spdc_fb_defio = {
+ .delay = HZ,
+ .deferred_io = mxc_spdc_fb_deferred_io,
+};
+
+static void spdc_done_work_func(struct work_struct *work)
+{
+ mxc_spdc_t *fb_data =
+ container_of(work, mxc_spdc_t, spdc_done_work.work);
+ spdc_powerdown(fb_data);
+}
+
+static irqreturn_t mxc_spdc_irq_handler(int irq, void *dev_id)
+{
+ mxc_spdc_t *fb_data = (mxc_spdc_t *)dev_id;
+ ulong flags;
+ u32 int_events;
+ irqreturn_t ret = IRQ_NONE;
+
+ spin_lock_irqsave(&fb_data->lock, flags);
+
+ int_events = spdc_get_intr_stat(fb_data);
+ dev_dbg(fb_data->dev, "spdc int:%x\n", int_events);
+
+ if (int_events & SPDC_IRQ_STA_ERR) {
+ ret = IRQ_HANDLED;
+ spdc_intr_stat_clear(fb_data, SPDC_IRQ_STA_ERR);
+ dev_err(fb_data->dev, "Error IRQ\n");
+ return ret;
+ }
+
+ /*
+ * If we just completed one-time panel init, bypass
+ * queue handling, clear interrupt and return
+ */
+ if (fb_data->operation_mode &&
+ (int_events & SPDC_IRQ_STA_FRAME_UPDATE)) {
+ mutex_lock(&fb_data->queue_mutex);
+ fb_data->updates_active = false;
+ complete(&fb_data->update_finish);
+ spdc_intr_stat_clear(fb_data, SPDC_IRQ_STA_FRAME_UPDATE);
+
+ if ((fb_data->operation_mode == SPDC_DEEP_REFRESH) ||
+ fb_data->is_deep_fresh)
+ fb_data->is_deep_fresh = false;
+ else
+ fb_data->operation_mode = SPDC_NO_OPERATION;
+
+ mutex_unlock(&fb_data->queue_mutex);
+
+ return IRQ_HANDLED;
+ }
+
+ /* waveform loading to SPDC from memory */
+ if (int_events & SPDC_IRQ_STA_LUT_DOWNLOAD) {
+ if (is_lut_checksum_ok(fb_data)) {
+ complete(&fb_data->lut_down);
+ spdc_intr_stat_clear(fb_data,
+ SPDC_IRQ_STA_LUT_DOWNLOAD);
+ } else
+ dev_dbg(fb_data->dev, "Lut checksum is err!\n");
+
+ return IRQ_HANDLED;
+ }
+
+ /* SPDC init setting IRQ */
+ if (int_events & SPDC_IRQ_STA_TCON_INIT) {
+ complete(&fb_data->init_finish);
+ spdc_intr_stat_clear(fb_data, SPDC_IRQ_STA_TCON_INIT);
+
+ return IRQ_HANDLED;
+ }
+
+ spin_unlock_irqrestore(&fb_data->lock, flags);
+
+ if (spdc_is_update_finish(fb_data)) {
+ /* clear interrupt status */
+ spdc_intr_stat_clear(fb_data, SPDC_IRQ_STA_FRAME_UPDATE);
+ queue_work(fb_data->spdc_intr_workqueue,
+ &fb_data->spdc_intr_work);
+ }
+
+ return ret;
+}
+
+static void spdc_intr_work_func(struct work_struct *work)
+{
+ mxc_spdc_t *fb_data =
+ container_of(work, mxc_spdc_t, spdc_intr_work);
+ struct mxcfb_rect *next_upd_region;
+ struct update_marker_data *next_marker;
+ struct update_marker_data *temp;
+ struct update_data_list *next_upd, *temp_upd;
+
+ /* Protect access to buffer queues and to update HW */
+ mutex_lock(&fb_data->queue_mutex);
+
+ /* Check to see if all updates have completed */
+ if (list_empty(&fb_data->upd_pending_list) &&
+ is_free_list_full(fb_data) &&
+ (fb_data->cur_update == NULL)) {
+
+ fb_data->updates_active = false;
+
+ if (fb_data->pwrdown_delay != FB_POWERDOWN_DISABLE) {
+ /*
+ * Set variable to prevent overlapping
+ * enable/disable requests
+ */
+ fb_data->powering_down = true;
+
+ /* Schedule task to disable SPDC HW until next update */
+ schedule_delayed_work(&fb_data->spdc_done_work,
+ msecs_to_jiffies(fb_data->pwrdown_delay));
+
+ /* Reset counter to reduce chance of overflow */
+ fb_data->order_cnt = 0;
+ }
+
+ if (fb_data->waiting_for_idle)
+ complete(&fb_data->updates_done);
+ }
+
+ if (mxc_spdc_device_is_busy(fb_data)) {
+ /* Can't submit another update until SPDC is idle */
+ mutex_unlock(&fb_data->queue_mutex);
+ return;
+ }
+
+ /*
+ * Were we waiting on working buffer?
+ * If so, update queues and check for collisions
+ */
+ if (fb_data->cur_update != NULL) {
+ list_for_each_entry_safe(next_marker, temp,
+ &fb_data->cur_update->update_desc->upd_marker_list,
+ upd_list) {
+
+ /* Del from per-update & full list */
+ list_del_init(&next_marker->upd_list);
+ list_del_init(&next_marker->full_list);
+
+ /* Signal completion of update */
+ dev_dbg(fb_data->dev,
+ "Signaling marker %d\n",
+ next_marker->update_marker);
+ if (next_marker->waiting)
+ complete(&next_marker->update_completion);
+ else
+ kfree(next_marker);
+ }
+
+ /* Free marker list and update descriptor */
+ kfree(fb_data->cur_update->update_desc);
+
+ /* Add to free buffer list */
+ list_add_tail(&fb_data->cur_update->list,
+ &fb_data->upd_buf_free_list);
+
+ if (fb_data->submit_upd_sta & SPDC_CONCUR_UPD) {
+ fb_data->upd_preprocess_num = 0;
+ fb_data->submit_upd_sta &= (~SPDC_CONCUR_UPD);
+ }
+
+ /* free ACC update list */
+ list_for_each_entry_safe(next_upd, temp_upd,
+ &fb_data->upd_buf_preprocess_list, list) {
+ next_marker = list_entry(
+ (&next_upd->update_desc->upd_marker_list)->next,
+ struct update_marker_data, upd_list);
+
+ list_del_init(&next_marker->upd_list);
+ list_del_init(&next_marker->full_list);
+
+ /* Signal completion of update */
+ dev_dbg(fb_data->dev,
+ "Signaling marker %d\n",
+ next_marker->update_marker);
+
+ if (next_marker->waiting)
+ complete(&next_marker->update_completion);
+ else
+ kfree(next_marker);
+
+
+ list_del_init(&next_upd->list);
+ /* Add to free buffer list */
+ list_add_tail(&next_upd->list,
+ &fb_data->upd_buf_free_list);
+ kfree(next_upd->update_desc);
+ }
+
+ /* Check to see if all updates have completed */
+ if (list_empty(&fb_data->upd_pending_list) &&
+ is_free_list_full(fb_data)) {
+
+ fb_data->updates_active = false;
+
+ if (fb_data->pwrdown_delay !=
+ FB_POWERDOWN_DISABLE) {
+ /*
+ * Set variable to prevent overlapping
+ * enable/disable requests
+ */
+ fb_data->powering_down = true;
+
+ /* Schedule SPDC disable */
+ schedule_delayed_work(&fb_data->spdc_done_work,
+ msecs_to_jiffies(fb_data->pwrdown_delay));
+
+ /* Reset counter to reduce chance of overflow */
+ fb_data->order_cnt = 0;
+ }
+
+ if (fb_data->waiting_for_idle)
+ complete(&fb_data->updates_done);
+ }
+
+ /* Signal completion if submit workqueue was waiting on WB */
+ if (fb_data->waiting_for_wb) {
+ dev_dbg(fb_data->dev, "free update_res_free\n");
+ complete(&fb_data->update_res_free);
+ fb_data->waiting_for_wb = false;
+ }
+
+ /* Clear current update */
+ fb_data->cur_update = NULL;
+ }
+
+ if (fb_data->upd_scheme != UPDATE_SCHEME_SNAPSHOT) {
+ /* Queued update scheme processing */
+ /* Schedule task to submit collision and pending update */
+ if (!fb_data->powering_down)
+ queue_work(fb_data->spdc_submit_workqueue,
+ &fb_data->spdc_submit_work);
+
+ /* Release buffer queues */
+ mutex_unlock(&fb_data->queue_mutex);
+ return;
+ }
+
+ /* Snapshot update scheme processing */
+ if (list_empty(&fb_data->upd_buf_queue)) {
+ dev_dbg(fb_data->dev, "No pending updates.\n");
+
+ /* No updates pending, so we are done */
+ mutex_unlock(&fb_data->queue_mutex);
+ return;
+ } else {
+ dev_dbg(fb_data->dev, "Found a pending update!\n");
+
+ /* Process next item in update list */
+ fb_data->cur_update =
+ list_entry(fb_data->upd_buf_queue.next,
+ struct update_data_list, list);
+ list_del_init(&fb_data->cur_update->list);
+ }
+
+ /* program SPDC register and trigger to process buffer*/
+ next_upd_region =
+ &fb_data->cur_update->update_desc->upd_data.update_region;
+ fb_data->fresh_param.buf_addr.next_buf_phys_addr =
+ fb_data->cur_update->phys_addr +
+ (fb_data->cur_update->update_desc->spdc_offs / 2);
+
+ fb_data->fresh_param.update_region.left = next_upd_region->left;
+ fb_data->fresh_param.update_region.top = next_upd_region->top;
+ fb_data->fresh_param.update_region.width = next_upd_region->width;
+ fb_data->fresh_param.update_region.height = next_upd_region->height;
+ fb_data->fresh_param.temper =
+ fb_data->cur_update->update_desc->upd_data.temp;
+ fb_data->fresh_param.wave_mode =
+ fb_data->cur_update->update_desc->upd_data.waveform_mode;
+ spdc_submit_update(fb_data);
+
+ mutex_unlock(&fb_data->queue_mutex);
+
+ return;
+}
+
+/*
+ * Sysfs functions
+ */
+static ssize_t show_update(struct device *device,
+ struct device_attribute *attr, char *buf) {
+ struct fb_info *info = dev_get_drvdata(device);
+ mxc_spdc_t *fb_data = (mxc_spdc_t *)info;
+
+ return sprintf(buf, "mode%d\n", fb_data->fresh_param.wave_mode);
+}
+
+static ssize_t store_update(struct device *device,
+ struct device_attribute *attr,
+ const char *buf, size_t count)
+{
+ struct mxcfb_update_data update;
+ struct fb_info *info = dev_get_drvdata(device);
+ mxc_spdc_t *fb_data = (mxc_spdc_t *)info;
+ if (strncmp(buf, "direct", 6) == 0)
+ update.waveform_mode = fb_data->wv_modes.mode_du;
+ else if (strncmp(buf, "gc16", 4) == 0)
+ update.waveform_mode = fb_data->wv_modes.mode_gc16;
+ else if (strncmp(buf, "gc4", 3) == 0)
+ update.waveform_mode = fb_data->wv_modes.mode_gc4;
+ else if (strncmp(buf, "init", 4) == 0)
+ update.waveform_mode = fb_data->wv_modes.mode_init;
+ else if (strncmp(buf, "gu", 2) == 0)
+ update.waveform_mode = SPDC_WAV_MODE_3;
+ else if (strncmp(buf, "auto", 4) == 0)
+ update.waveform_mode = WAVEFORM_MODE_AUTO;
+
+ /* Now, request full screen update */
+ update.update_region.left = 0;
+ update.update_region.width = fb_data->spdc_fb_var.xres;
+ update.update_region.top = 0;
+ update.update_region.height = fb_data->spdc_fb_var.yres;
+ update.update_mode = UPDATE_MODE_FULL;
+ update.temp = SPDC_DEFAULT_TEMP;
+ update.update_marker = 0;
+ update.flags = 0;
+ dev_dbg(fb_data->dev, "rotation:%d, gray:%d\n",
+ fb_data->spdc_fb_var.rotate, fb_data->spdc_fb_var.grayscale);
+
+ mxc_spdc_fb_send_update(&update, info);
+
+ return count;
+}
+
+static ssize_t fresh_show(struct device *device, struct device_attribute *attr,
+ char *buf)
+{
+ struct fb_info *info = dev_get_drvdata(device);
+ mxc_spdc_t *fb_data = (mxc_spdc_t *)info;
+
+ return sprintf(buf, "%d\n", fb_data->operation_mode);
+}
+
+static ssize_t fresh_store(struct device *device, struct device_attribute *attr,
+ const char *buf, size_t count)
+{
+ struct fb_info *info = dev_get_drvdata(device);
+ mxc_spdc_t *fb_data = (mxc_spdc_t *)info;
+ int ret, operation;
+
+ ret = kstrtoint(buf, 10, &operation);
+ if (ret)
+ return ret;
+
+ if (operation == SPDC_DEEP_REFRESH)
+ fb_data->is_deep_fresh = true;
+ fb_data->operation_mode = operation;
+ if (operation > SPDC_NO_OPERATION &&
+ operation < SPDC_FULL_REFRESH)
+ mxc_operaton_update(fb_data);
+ else
+ mxc_spdc_refresh_display(fb_data);
+
+ return count;
+}
+
+static ssize_t temp_show(struct device *device,
+ struct device_attribute *attr, char *buf)
+{
+ struct fb_info *info = dev_get_drvdata(device);
+ mxc_spdc_t *fb_data = (mxc_spdc_t *)info;
+ int temp;
+
+ temp = fb_data->fresh_param.temper >> 1;
+ return sprintf(buf, "%d\n", temp);
+}
+
+static ssize_t initset_show(struct device *device,
+ struct device_attribute *attr, char *buf)
+{
+ struct fb_info *info = dev_get_drvdata(device);
+ mxc_spdc_t *fb_data = (mxc_spdc_t *)info;
+ u32 init_val;
+
+ get_panel_init_set(&fb_data->panel_set, &init_val);
+ return sprintf(buf, "%x\n", init_val);
+}
+
+static ssize_t concurrency_show(struct device *device,
+ struct device_attribute *attr, char *buf)
+{
+ struct fb_info *info = dev_get_drvdata(device);
+ mxc_spdc_t *fb_data = (mxc_spdc_t *)info;
+ bool temp;
+
+ temp = (fb_data->fresh_param.concur ? 1 : 0);
+ return sprintf(buf, "%d\n", temp);
+}
+
+static ssize_t concurrency_update(struct device *device,
+ struct device_attribute *attr, const char *buf, size_t count)
+{
+ struct fb_info *info = dev_get_drvdata(device);
+ mxc_spdc_t *fb_data = (mxc_spdc_t *)info;
+ int ret, concur;
+
+ ret = kstrtoint(buf, 10, &concur);
+ if (ret)
+ return ret;
+
+ if (fb_data->fresh_param.concur != concur) {
+ fb_data->fresh_param.concur = concur;
+ spdc_set_update_concurrency(fb_data);
+ }
+
+ return count;
+}
+
+static DEVICE_ATTR(store_update, 0644, show_update, store_update);
+static DEVICE_ATTR(fresh, 0644, fresh_show, fresh_store);
+static DEVICE_ATTR(temp, 0644, temp_show, NULL);
+static DEVICE_ATTR(initset, 0644, initset_show, NULL);
+static DEVICE_ATTR(concurrency, 0644, concurrency_show, concurrency_update);
+
+static struct attribute *spdc_attributes[] = {
+ &dev_attr_store_update.attr,
+ &dev_attr_fresh.attr,
+ &dev_attr_temp.attr,
+ &dev_attr_initset.attr,
+ &dev_attr_concurrency.attr,
+ NULL
+};
+
+static const struct attribute_group spdc_attr_group = {
+ .attrs = spdc_attributes,
+};
+
+static int __devinit mxc_spdc_fb_probe(struct platform_device *pdev)
+{
+ struct fb_info *info;
+ mxc_spdc_t *fb_data;
+ struct resource *res, *mem;
+ struct fb_videomode *vmode;
+ int xres_virt, yres_virt, buf_size;
+ int xres_virt_rot, yres_virt_rot, pix_size_rot;
+ struct fb_var_screeninfo *var_info;
+ struct fb_fix_screeninfo *fix_info;
+ struct pxp_config_data *pxp_conf;
+ struct pxp_proc_data *proc_data;
+ struct scatterlist *sg;
+ struct update_data_list *upd_list;
+ struct update_data_list *plist, *temp_list;
+ char *options, *opt;
+ char *panel_str = NULL;
+ char name[] = "mxcspdcfb";
+ unsigned long x_mem_size = 0;
+ u32 i, cmap_size;
+ int ret = 0;
+
+ fb_data = (mxc_spdc_t *)framebuffer_alloc(sizeof(mxc_spdc_t),
+ &pdev->dev);
+ if (!fb_data) {
+ ret = -ENOMEM;
+ goto out;
+ }
+
+ info = &fb_data->info;
+ fb_data->dev = &pdev->dev;
+ platform_set_drvdata(pdev, fb_data);
+
+ fb_data->pdata = pdev->dev.platform_data;
+ if ((fb_data->pdata == NULL) || (fb_data->pdata->num_modes < 1)
+ || (fb_data->pdata->spdc_mode == NULL)
+ || (fb_data->pdata->spdc_mode->vmode == NULL)) {
+ ret = -EINVAL;
+ goto dealloc_fb;
+ }
+
+ /*get panel para from command*/
+ if (fb_get_options(name, &options)) {
+ ret = -ENODEV;
+ goto dealloc_fb;
+ }
+ if (options)
+ while ((opt = strsep(&options, ",")) != NULL) {
+ if (!*opt)
+ continue;
+ if (!strncmp(opt, "bpp=", 4)) {
+ if (kstrtoint(opt + 4, 0,
+ &fb_data->default_bpp) < 0)
+ fb_data->default_bpp = 0;
+ } else if (!strncmp(opt, "x_mem=", 6))
+ x_mem_size = memparse(opt + 6, NULL);
+ else
+ panel_str = opt;
+ }
+
+ if (!fb_data->default_bpp)
+ fb_data->default_bpp = SPDC_DEFAULT_BPP;
+
+ /* Set default (first defined mode) for a match */
+ mxc_spdc_find_match_mode(fb_data);
+
+ if (panel_str)
+ for (i = 0; i < fb_data->pdata->num_modes; i++)
+ if (!strcmp(fb_data->pdata->spdc_mode[i].vmode->name,
+ panel_str)) {
+ fb_data->cur_mode =
+ &fb_data->pdata->spdc_mode[i];
+ break;
+ }
+ vmode = fb_data->cur_mode->vmode;
+
+ /* Allocate color map for the FB */
+ cmap_size = 256;
+ ret = fb_alloc_cmap(&info->cmap, cmap_size, 0);
+ if (ret)
+ goto dealloc_fb;
+
+ /*
+ * GPU alignment restrictions dictate framebuffer parameters:
+ * - 32-byte alignment for buffer width
+ * - 128-byte alignment for buffer height
+ * => 4K buffer alignment for buffer start
+ */
+ xres_virt = ALIGN(vmode->xres, 32);
+ yres_virt = ALIGN(vmode->yres, 128);
+ fb_data->max_pix_size = PAGE_ALIGN(xres_virt * yres_virt);
+
+ /*
+ * Have to check to see if aligned buffer size when rotated
+ * is bigger than when not rotated, and use the max
+ */
+ xres_virt_rot = ALIGN(vmode->yres, 32);
+ yres_virt_rot = ALIGN(vmode->xres, 128);
+ pix_size_rot = PAGE_ALIGN(xres_virt_rot * yres_virt_rot);
+ fb_data->max_pix_size = (fb_data->max_pix_size > pix_size_rot) ?
+ fb_data->max_pix_size : pix_size_rot;
+ buf_size = fb_data->max_pix_size * fb_data->default_bpp/8;
+
+ /* Compute the number of screens needed based on X memory requested */
+ if (x_mem_size > 0) {
+ fb_data->num_screens = DIV_ROUND_UP(x_mem_size, buf_size);
+ if (fb_data->num_screens < NUM_SCREENS_MIN)
+ fb_data->num_screens = NUM_SCREENS_MIN;
+ else if (buf_size * fb_data->num_screens > SZ_16M)
+ fb_data->num_screens = SZ_16M / buf_size;
+ } else
+ fb_data->num_screens = NUM_SCREENS_MIN;
+
+ fb_data->map_size = buf_size * fb_data->num_screens;
+ dev_dbg(&pdev->dev, "memory allocate: %d\n", fb_data->map_size);
+
+ /* get IO memory*/
+ res = platform_get_resource(pdev, IORESOURCE_MEM, 0);
+ if (res == NULL) {
+ dev_err(&pdev->dev, "failed to get memory register\n");
+ ret = -ENXIO;
+ goto release_cmap;
+ }
+
+ mem = request_mem_region(res->start, resource_size(res), pdev->name);
+ if (res == NULL) {
+ dev_err(&pdev->dev, "failed to get memory region\n");
+ ret = -ENOENT;
+ goto release_cmap;
+ }
+
+ fb_data->hwp = ioremap(res->start, SZ_4K);
+ if (fb_data->hwp == NULL) {
+ dev_err(&pdev->dev, "ioremap registers failed\n");
+ ret = -ENOENT;
+ goto release_mem;
+ }
+
+ /* Allocate FB memory */
+ fb_data->virt_start = dma_alloc_writecombine(&pdev->dev,
+ fb_data->map_size, &fb_data->phys_start, GFP_DMA);
+ if (fb_data->virt_start == NULL) {
+ dev_err(&pdev->dev, "probe err - dma_alloc for framebuffer\n");
+ ret = -ENOMEM;
+ goto release_hwp;
+ }
+
+ var_info = &info->var;
+ var_info->activate = FB_ACTIVATE_TEST;
+ var_info->bits_per_pixel = fb_data->default_bpp;
+ var_info->xres = vmode->xres;
+ var_info->yres = vmode->yres;
+ var_info->xres_virtual = xres_virt;
+ var_info->yres_virtual = yres_virt * fb_data->num_screens;
+ var_info->pixclock = vmode->pixclock;
+ var_info->left_margin = vmode->left_margin;
+ var_info->right_margin = vmode->right_margin;
+ var_info->upper_margin = vmode->upper_margin;
+ var_info->lower_margin = vmode->lower_margin;
+ var_info->hsync_len = vmode->hsync_len;
+ var_info->vsync_len = vmode->vsync_len;
+ var_info->vmode = FB_VMODE_NONINTERLACED;
+
+ switch (fb_data->default_bpp) {
+ case 32:
+ case 24:
+ var_info->red.offset = 16;
+ var_info->red.length = 8;
+ var_info->green.offset = 8;
+ var_info->green.length = 8;
+ var_info->blue.offset = 0;
+ var_info->blue.length = 8;
+ break;
+ case 16:
+ var_info->red.offset = 11;
+ var_info->red.length = 5;
+ var_info->green.offset = 5;
+ var_info->green.length = 6;
+ var_info->blue.offset = 0;
+ var_info->blue.length = 5;
+ break;
+ case 8:
+ var_info->grayscale = GRAYSCALE_8BIT;
+
+ var_info->red.length = 8;
+ var_info->red.offset = 0;
+ var_info->red.msb_right = 0;
+ var_info->green.length = 8;
+ var_info->green.offset = 0;
+ var_info->green.msb_right = 0;
+ var_info->blue.length = 8;
+ var_info->blue.offset = 0;
+ var_info->blue.msb_right = 0;
+ break;
+ case 4:
+ var_info->grayscale = GRAYSCALE_4BIT;
+
+ var_info->red.length = 4;
+ var_info->red.offset = 0;
+ var_info->red.msb_right = 0;
+ var_info->green.length = 4;
+ var_info->green.offset = 0;
+ var_info->green.msb_right = 0;
+ var_info->blue.length = 4;
+ var_info->blue.offset = 0;
+ var_info->blue.msb_right = 0;
+ break;
+ default:
+ dev_err(&pdev->dev, "unsupported bit-width:%d\n",
+ fb_data->default_bpp);
+ ret = -EINVAL;
+ goto release_dma_fb;
+ }
+
+ fix_info = &info->fix;
+ strcpy(fix_info->id, SPDC_DRIVER_NAME);
+ fix_info->type = FB_TYPE_PACKED_PIXELS;
+ fix_info->visual = FB_VISUAL_TRUECOLOR;
+ fix_info->xpanstep = 0;
+ fix_info->ypanstep = 0;
+ fix_info->ywrapstep = 0;
+ fix_info->accel = FB_ACCEL_NONE;
+ fix_info->smem_start = fb_data->phys_start;
+ fix_info->smem_len = fb_data->map_size;
+ fix_info->ypanstep = 0;
+
+ /* Set up FB info */
+ fb_data->native_width = vmode->xres;
+ fb_data->native_height = vmode->yres;
+ info->screen_base = fb_data->virt_start;
+ info->screen_size = info->fix.smem_len;
+ info->fbops = &mxc_spdc_fb_ops;
+ info->var.activate = FB_ACTIVATE_NOW;
+ info->pseudo_palette = fb_data->pseudo_palette;
+ info->flags = FBINFO_FLAG_DEFAULT;
+
+ mxc_spdc_fb_set_fix(info);
+
+ /* use the same AXI and PIX clock source */
+ fb_data->spdc_clk_axi = clk_get(fb_data->dev, "epdc_axi");
+ if (IS_ERR(fb_data->spdc_clk_axi)) {
+ dev_err(&pdev->dev, "Unable to get AXI clk."
+ "err = 0x%x\n", (int)fb_data->spdc_clk_axi);
+ ret = -ENODEV;
+ goto release_dma_fb;
+ }
+ fb_data->spdc_clk_pix = clk_get(fb_data->dev, "epdc_pix");
+ if (IS_ERR(fb_data->spdc_clk_pix)) {
+ dev_err(&pdev->dev, "Unable to get pix clk."
+ "err = 0x%x\n", (int)fb_data->spdc_clk_pix);
+ ret = -ENODEV;
+ goto release_dma_fb;
+ }
+
+ /*
+ * Initialize update list and allocate buffer.
+ */
+ INIT_LIST_HEAD(&fb_data->upd_pending_list);
+ INIT_LIST_HEAD(&fb_data->upd_buf_queue);
+ INIT_LIST_HEAD(&fb_data->upd_buf_free_list);
+ INIT_LIST_HEAD(&fb_data->upd_buf_preprocess_list);
+ INIT_LIST_HEAD(&fb_data->full_marker_list);
+
+ fb_data->max_num_updates = SPDC_MAX_NUM_UPDATES;
+ fb_data->max_num_buffers = SPDC_MAX_NUM_BUFFERS;
+
+ /* Allocate free buffers */
+ for (i = 0; i < fb_data->max_num_updates; i++) {
+ upd_list = kzalloc(sizeof(*upd_list), GFP_KERNEL);
+ if (upd_list == NULL) {
+ ret = -ENOMEM;
+ goto release_dma_fb;
+ }
+
+ /* Add newly allocated buffer to free list */
+ list_add(&upd_list->list, &fb_data->upd_buf_free_list);
+ }
+
+ /* Allocate PXP output buffer */
+ fb_data->virt_addr_updbuf =
+ kzalloc(sizeof(void *) * fb_data->max_num_buffers, GFP_KERNEL);
+ fb_data->phys_addr_updbuf =
+ kzalloc(sizeof(dma_addr_t) * fb_data->max_num_buffers,
+ GFP_KERNEL);
+ for (i = 0; i < fb_data->max_num_buffers; i++) {
+ /*
+ * Allocate memory for PxP output buffer.
+ * Output raw data is Y4 format.
+ * Each update buffer is 1/2 byte per pixel, and can
+ * be as big as the full-screen frame buffer
+ */
+ fb_data->virt_addr_updbuf[i] =
+ dma_alloc_coherent(fb_data->info.device,
+ fb_data->max_pix_size / 2,
+ &fb_data->phys_addr_updbuf[i], GFP_DMA);
+ if (fb_data->virt_addr_updbuf[i] == NULL) {
+ ret = -ENOMEM;
+ goto release_freebuf_lists;
+ }
+ }
+ /* Counter indicating which update buffer should be used next. */
+ fb_data->upd_buffer_num = 0;
+
+ /* Allocate memory for partical process region buffer.
+ * Output raw data is Y4 format.
+ */
+ fb_data->virt_addr_copybuf =
+ dma_alloc_coherent(fb_data->info.device,
+ fb_data->max_pix_size / 2,
+ &fb_data->phys_addr_copybuf, GFP_DMA);
+ if (fb_data->virt_addr_copybuf == NULL) {
+ ret = -ENOMEM;
+ goto release_output_buf;
+ }
+
+ /* Allocate next & current & privious & count & lut buffers.
+ * next buffer size is Y4 raw data
+ */
+ fb_data->next_buf_size =
+ (fb_data->map_size / fb_data->num_screens) >> 1;
+ fb_data->virt_next_buf =
+ dma_alloc_coherent(&pdev->dev, fb_data->next_buf_size,
+ &fb_data->phy_next_buf, GFP_DMA);
+ if (fb_data->virt_next_buf == NULL) {
+ dev_err(&pdev->dev, "Can't allocate mem for next buf!\n");
+ ret = -ENOMEM;
+ goto release_copy_buf;
+ }
+
+ fb_data->current_buf_size =
+ (fb_data->map_size / fb_data->num_screens) >> 1;
+ fb_data->virt_current_buf =
+ dma_alloc_coherent(&pdev->dev, fb_data->current_buf_size,
+ &fb_data->phy_current_buf, GFP_DMA);
+ if (fb_data->virt_current_buf == NULL) {
+ dev_err(&pdev->dev, "Can't allocate mem for current buf!\n");
+ ret = -ENOMEM;
+ goto release_next_buf;
+ }
+
+ fb_data->pre_buf_size =
+ (fb_data->map_size / fb_data->num_screens) >> 1;
+ fb_data->virt_pre_buf =
+ dma_alloc_coherent(&pdev->dev, fb_data->pre_buf_size,
+ &fb_data->phy_pre_buf, GFP_DMA);
+ if (fb_data->virt_pre_buf == NULL) {
+ dev_err(&pdev->dev, "Can't allocate mem for current buf!\n");
+ ret = -ENOMEM;
+ goto release_current_buf;
+ }
+
+ fb_data->cnt_buf_size = info->var.xres * info->var.yres;
+ fb_data->virt_cnt_buf =
+ dma_alloc_coherent(&pdev->dev, fb_data->cnt_buf_size,
+ &fb_data->phy_cnt_buf, GFP_DMA);
+ if (fb_data->virt_cnt_buf == NULL) {
+ dev_err(&pdev->dev, "Can't allocate mem for current buf!\n");
+ ret = -ENOMEM;
+ goto release_pre_buf;
+ }
+
+ fb_data->lut_buf_size = SZ_1M;
+ fb_data->virt_lut_buf =
+ dma_alloc_coherent(&pdev->dev, fb_data->lut_buf_size,
+ &fb_data->phy_lut_buf, GFP_DMA);
+ if (fb_data->virt_lut_buf == NULL) {
+ dev_err(&pdev->dev, "Can't allocate mem for current buf!\n");
+ ret = -ENOMEM;
+ goto release_cnt_buf;
+ }
+
+ /* Initialize SPDC pins */
+ if (fb_data->pdata->get_pins)
+ fb_data->pdata->get_pins();
+
+ fb_data->hw_ready = false;
+ fb_data->hw_initializing = false;
+
+ /*
+ * Set default waveform mode values.
+ * Should be overwritten via ioctl.
+ */
+ fb_data->wv_modes.mode_init = SPDC_WAV_MODE_DEFAULT;
+ fb_data->wv_modes.mode_du = SPDC_WAV_MODE_4;
+ fb_data->wv_modes.mode_gc4 = SPDC_WAV_MODE_2;
+ fb_data->wv_modes.mode_gc8 = SPDC_WAV_MODE_1;
+ fb_data->wv_modes.mode_gc16 = SPDC_WAV_MODE_1;
+ fb_data->wv_modes.mode_gc32 = SPDC_WAV_MODE_1;
+
+ fb_data->auto_mode = AUTO_UPDATE_MODE_REGION_MODE;
+ fb_data->upd_scheme = UPDATE_SCHEME_QUEUE_AND_MERGE;
+ fb_data->spdc_fb_var = *var_info;
+ fb_data->fb_offset = 0;
+
+ fb_data->blank = FB_BLANK_UNBLANK;
+ fb_data->powering_down = false;
+ fb_data->power_state = POWER_STATE_OFF;
+ fb_data->pwrdown_delay = 0;
+ fb_data->cur_update = NULL;
+ fb_data->waiting_for_idle = false;
+ fb_data->order_cnt = 0;
+ fb_data->waiting_for_wb = false;
+ fb_data->wait_for_powerdown = false;
+ fb_data->updates_active = false;
+
+ spin_lock_init(&fb_data->lock);
+ mutex_init(&fb_data->queue_mutex);
+ mutex_init(&fb_data->pxp_mutex);
+ mutex_init(&fb_data->power_mutex);
+ init_completion(&fb_data->lut_down);
+ init_completion(&fb_data->init_finish);
+ init_completion(&fb_data->update_finish);
+ INIT_DELAYED_WORK(&fb_data->spdc_done_work, spdc_done_work_func);
+
+ fb_data->spdc_submit_workqueue = alloc_workqueue("SPDC Submit",
+ WQ_MEM_RECLAIM | WQ_HIGHPRI |
+ WQ_CPU_INTENSIVE | WQ_UNBOUND, 1);
+ INIT_WORK(&fb_data->spdc_submit_work, spdc_submit_work_func);
+ fb_data->spdc_intr_workqueue = alloc_workqueue("SPDC Interrupt",
+ WQ_MEM_RECLAIM | WQ_HIGHPRI |
+ WQ_CPU_INTENSIVE | WQ_UNBOUND, 1);
+ INIT_WORK(&fb_data->spdc_intr_work, spdc_intr_work_func);
+
+ /* Retrieve spdc IRQ num */
+ res = platform_get_resource(pdev, IORESOURCE_IRQ, 0);
+ if (res == NULL) {
+ dev_err(&pdev->dev, "cannot get IRQ resource\n");
+ ret = -ENODEV;
+ goto release_lut_buf;
+ }
+ fb_data->spdc_irq = res->start;
+ ret = request_irq(fb_data->spdc_irq, mxc_spdc_irq_handler, 0,
+ "fb_dma", fb_data);
+ if (ret) {
+ dev_err(&pdev->dev, "request_irq (%d) failed with error %d\n",
+ fb_data->spdc_irq, ret);
+ ret = -ENODEV;
+ goto release_lut_buf;
+ }
+
+ /* define deferred io */
+ info->fbdefio = &mxc_spdc_fb_defio;
+#ifdef CONFIG_FB_MXC_SIPIX_AUTO_UPDATE_MODE
+ fb_deferred_io_init(info);
+#endif
+
+ /* get pmic regulators */
+ fb_data->display_regulator = regulator_get(NULL, "DISPLAY");
+ if (IS_ERR(fb_data->display_regulator)) {
+ dev_err(&pdev->dev, "Unable to get display PMIC regulator."
+ "err = 0x%x\n", (int)fb_data->display_regulator);
+ ret = -ENODEV;
+ goto release_irq;
+ }
+ fb_data->vcom_regulator = regulator_get(NULL, "VCOM");
+ if (IS_ERR(fb_data->vcom_regulator)) {
+ regulator_put(fb_data->display_regulator);
+ dev_err(&pdev->dev, "Unable to get VCOM regulator."
+ "err = 0x%x\n", (int)fb_data->vcom_regulator);
+ ret = -ENODEV;
+ goto release_regulator1;
+ }
+ fb_data->v3p3_regulator = regulator_get(NULL, "V3P3");
+ if (IS_ERR(fb_data->v3p3_regulator)) {
+ regulator_put(fb_data->vcom_regulator);
+ regulator_put(fb_data->display_regulator);
+ dev_err(&pdev->dev, "Unable to get V3P3 regulator."
+ "err = 0x%x\n", (int)fb_data->vcom_regulator);
+ ret = -ENODEV;
+ goto release_regulator2;
+ }
+
+ /*
+ * Fill out PxP config data structure based on FB info and
+ * processing tasks required
+ */
+ pxp_conf = &fb_data->pxp_conf;
+ proc_data = &pxp_conf->proc_data;
+
+ /* Initialize non-channel-specific PxP parameters */
+ proc_data->drect.left = proc_data->srect.left = 0;
+ proc_data->drect.top = proc_data->srect.top = 0;
+ proc_data->drect.width = fb_data->info.var.xres;
+ proc_data->srect.width = fb_data->info.var.xres;
+ proc_data->drect.height = fb_data->info.var.yres;
+ proc_data->srect.height = fb_data->info.var.yres;
+ proc_data->scaling = 0;
+ proc_data->hflip = 0;
+ proc_data->vflip = 0;
+ proc_data->rotate = 0;
+ proc_data->bgcolor = 0;
+ proc_data->overlay_state = 0;
+ proc_data->lut_transform = PXP_LUT_NONE;
+ proc_data->lut_map = NULL;
+
+ /*
+ * We initially configure PxP for RGB->YUV conversion,
+ * and only write out Y component of the result.
+ */
+
+ /*
+ * Initialize S0 channel parameters
+ * Parameters should match FB format/width/height
+ */
+ pxp_conf->s0_param.pixel_fmt = PXP_PIX_FMT_RGB565;
+ pxp_conf->s0_param.width = fb_data->info.var.xres_virtual;
+ pxp_conf->s0_param.height = fb_data->info.var.yres;
+ pxp_conf->s0_param.color_key = -1;
+ pxp_conf->s0_param.color_key_enable = false;
+
+ /*
+ * Initialize OL0 channel parameters
+ * No overlay will be used for PxP operation
+ */
+ for (i = 0; i < 8; i++) {
+ pxp_conf->ol_param[i].combine_enable = false;
+ pxp_conf->ol_param[i].width = 0;
+ pxp_conf->ol_param[i].height = 0;
+ pxp_conf->ol_param[i].pixel_fmt = PXP_PIX_FMT_RGB565;
+ pxp_conf->ol_param[i].color_key_enable = false;
+ pxp_conf->ol_param[i].color_key = -1;
+ pxp_conf->ol_param[i].global_alpha_enable = false;
+ pxp_conf->ol_param[i].global_alpha = 0;
+ pxp_conf->ol_param[i].local_alpha_enable = false;
+ }
+
+ /*
+ * Initialize Output channel parameters
+ * Output is Y-only greyscale
+ * Output width/height will vary based on update region size
+ */
+ pxp_conf->out_param.width = fb_data->info.var.xres;
+ pxp_conf->out_param.height = fb_data->info.var.yres;
+ pxp_conf->out_param.pixel_fmt = PXP_PIX_FMT_GY04;
+ pxp_conf->out_param.stride = pxp_conf->out_param.width;
+
+ /* Initialize color map for conversion of 8-bit gray pixels */
+ fb_data->pxp_conf.proc_data.lut_map = kmalloc(256, GFP_KERNEL);
+ if (fb_data->pxp_conf.proc_data.lut_map == NULL) {
+ dev_err(&pdev->dev, "Can't allocate mem for lut map!\n");
+ ret = -ENOMEM;
+ goto release_regulator3;
+ }
+ for (i = 0; i < 256; i++)
+ fb_data->pxp_conf.proc_data.lut_map[i] = i;
+
+ fb_data->pxp_conf.proc_data.lut_map_updated = true;
+
+ /*
+ * Ensure this is set to NULL here...we will initialize pxp_chan
+ * later in our thread.
+ */
+ fb_data->pxp_chan = NULL;
+
+ /* Initialize Scatter-gather list containing 2 buffer addresses. */
+ sg = fb_data->sg;
+ sg_init_table(sg, 2);
+
+ /*
+ * For use in PxP transfers:
+ * sg[0] holds the FB buffer pointer
+ * sg[1] holds the Output buffer pointer (configured before TX request)
+ */
+ sg_dma_address(&sg[0]) = info->fix.smem_start;
+ sg_set_page(&sg[0], virt_to_page(info->screen_base),
+ info->fix.smem_len, offset_in_page(info->screen_base));
+
+ /* Register FB */
+ ret = register_framebuffer(info);
+ if (ret) {
+ dev_err(&pdev->dev,
+ "register framebuffer failed\n");
+ goto release_lutmap;
+ }
+
+ ret = sysfs_create_group(&info->device->kobj, &spdc_attr_group);
+ if (ret)
+ dev_err(&pdev->dev, "Unable to create file from fb_attrs\n");
+
+ /* use for spdc test */
+ g_fb_data = fb_data;
+
+ /* hw init */
+ spdc_fb_dev_init(fb_data);
+
+ /*detect spdc epd disp & tcon version*/
+ get_spdc_version(fb_data);
+
+ goto out;
+
+release_lutmap:
+ kfree(fb_data->pxp_conf.proc_data.lut_map);
+release_regulator3:
+ regulator_put(fb_data->v3p3_regulator);
+release_regulator2:
+ regulator_put(fb_data->vcom_regulator);
+release_regulator1:
+ regulator_put(fb_data->display_regulator);
+release_irq:
+ free_irq(fb_data->spdc_irq, fb_data);
+release_lut_buf:
+ dma_free_coherent(&pdev->dev, fb_data->pre_buf_size,
+ fb_data->virt_lut_buf, fb_data->phy_lut_buf);
+release_cnt_buf:
+ dma_free_coherent(&pdev->dev, fb_data->cnt_buf_size,
+ fb_data->virt_cnt_buf, fb_data->phy_cnt_buf);
+release_pre_buf:
+ dma_free_coherent(&pdev->dev, fb_data->pre_buf_size,
+ fb_data->virt_pre_buf, fb_data->phy_pre_buf);
+release_current_buf:
+ dma_free_coherent(&pdev->dev, fb_data->current_buf_size,
+ fb_data->virt_current_buf, fb_data->phy_current_buf);
+release_next_buf:
+ dma_free_coherent(&pdev->dev, fb_data->next_buf_size,
+ fb_data->virt_next_buf, fb_data->phy_next_buf);
+release_copy_buf:
+ dma_free_writecombine(&pdev->dev, fb_data->max_pix_size / 2,
+ fb_data->virt_addr_copybuf, fb_data->phys_addr_copybuf);
+release_output_buf:
+ for (i = 0; i < fb_data->max_num_buffers; i++)
+ if (fb_data->virt_addr_updbuf[i] != NULL)
+ dma_free_writecombine(&pdev->dev,
+ fb_data->max_pix_size / 2, fb_data->virt_addr_updbuf[i],
+ fb_data->phys_addr_updbuf[i]);
+ if (fb_data->virt_addr_updbuf != NULL)
+ kfree(fb_data->virt_addr_updbuf);
+ if (fb_data->phys_addr_updbuf != NULL)
+ kfree(fb_data->phys_addr_updbuf);
+release_freebuf_lists:
+ list_for_each_entry_safe(plist, temp_list, &fb_data->upd_buf_free_list,
+ list) {
+ list_del(&plist->list);
+ kfree(plist);
+ }
+release_dma_fb:
+ dma_free_writecombine(&pdev->dev,
+ fb_data->map_size, fb_data->virt_start, fb_data->phys_start);
+release_hwp:
+ iounmap(fb_data->hwp);
+release_mem:
+ release_resource(mem);
+release_cmap:
+ fb_dealloc_cmap(&info->cmap);
+dealloc_fb:
+ framebuffer_release(info);
+out:
+ return ret;
+}
+
+static int mxc_spdc_fb_remove(struct platform_device *pdev)
+{
+ struct update_data_list *plist, *temp_list;
+ mxc_spdc_t *fb_data = platform_get_drvdata(pdev);
+ struct fb_info *info = &fb_data->info;
+ int i;
+
+ mxc_spdc_fb_blank(FB_BLANK_POWERDOWN, &fb_data->info);
+
+ flush_workqueue(fb_data->spdc_submit_workqueue);
+ destroy_workqueue(fb_data->spdc_submit_workqueue);
+
+ regulator_put(fb_data->display_regulator);
+ regulator_put(fb_data->vcom_regulator);
+ regulator_put(fb_data->v3p3_regulator);
+
+ for (i = 0; i < fb_data->max_num_buffers; i++)
+ if (fb_data->virt_addr_updbuf[i] != NULL)
+ dma_free_writecombine(&pdev->dev,
+ fb_data->max_pix_size,
+ fb_data->virt_addr_updbuf[i],
+ fb_data->phys_addr_updbuf[i]);
+ if (fb_data->virt_addr_updbuf != NULL)
+ kfree(fb_data->virt_addr_updbuf);
+ if (fb_data->phys_addr_updbuf != NULL)
+ kfree(fb_data->phys_addr_updbuf);
+
+ /* free output temporary buffer */
+ dma_free_writecombine(&pdev->dev, fb_data->max_pix_size / 2,
+ fb_data->virt_addr_copybuf, fb_data->phys_addr_copybuf);
+
+ list_for_each_entry_safe(plist, temp_list,
+ &fb_data->upd_buf_free_list,
+ list) {
+ list_del(&plist->list);
+ kfree(plist);
+ }
+
+#if defined(CONFIG_FB_MXC_SIPIX_AUTO_UPDATE_MODE)
+ fb_deferred_io_cleanup(&fb_data->info);
+#endif
+
+ /* free frame buffer */
+ dma_free_writecombine(&pdev->dev, fb_data->map_size,
+ info->screen_base, fb_data->phys_start);
+
+ /* free SPDC hw allocate buffer */
+ dma_free_coherent(&pdev->dev, fb_data->next_buf_size,
+ fb_data->virt_next_buf, fb_data->phy_next_buf);
+ dma_free_coherent(&pdev->dev, fb_data->current_buf_size,
+ fb_data->virt_current_buf, fb_data->phy_current_buf);
+ dma_free_coherent(&pdev->dev, fb_data->pre_buf_size,
+ fb_data->virt_pre_buf, fb_data->phy_pre_buf);
+ dma_free_coherent(&pdev->dev, fb_data->cnt_buf_size,
+ fb_data->virt_cnt_buf, fb_data->phy_cnt_buf);
+ dma_free_coherent(&pdev->dev, fb_data->pre_buf_size,
+ fb_data->virt_lut_buf, fb_data->phy_lut_buf);
+
+ sysfs_remove_group(&info->device->kobj, &spdc_attr_group);
+ unregister_framebuffer(info);
+
+ if (fb_data->pdata->put_pins)
+ fb_data->pdata->put_pins();
+
+ free_irq(fb_data->spdc_irq, fb_data);
+ iounmap(fb_data->hwp);
+
+ fb_dealloc_cmap(&info->cmap);
+
+ framebuffer_release(info);
+ platform_set_drvdata(pdev, NULL);
+
+ return 0;
+}
+
+#ifdef CONFIG_PM
+static int mxc_spdc_fb_suspend(struct platform_device *pdev,
+ pm_message_t state)
+{
+ mxc_spdc_t *data = platform_get_drvdata(pdev);
+ int ret;
+
+ ret = mxc_spdc_fb_blank(FB_BLANK_POWERDOWN, &data->info);
+
+ return ret;
+}
+
+static int mxc_spdc_fb_resume(struct platform_device *pdev)
+{
+ mxc_spdc_t *data = platform_get_drvdata(pdev);
+
+ mxc_spdc_fb_blank(FB_BLANK_UNBLANK, &data->info);
+ return 0;
+}
+#else
+#define mxc_spdc_fb_suspend NULL
+#define mxc_spdc_fb_resume NULL
+#endif
+
+static struct platform_driver mxc_spdc_fb_driver = {
+ .probe = mxc_spdc_fb_probe,
+ .remove = mxc_spdc_fb_remove,
+ .suspend = mxc_spdc_fb_suspend,
+ .resume = mxc_spdc_fb_resume,
+ .driver = {
+ .name = SPDC_DRIVER_NAME,
+ .owner = THIS_MODULE,
+ },
+};
+
+static int __init mxc_spdc_fb_init(void)
+{
+ return platform_driver_register(&mxc_spdc_fb_driver);
+}
+late_initcall(mxc_spdc_fb_init);
+
+static void __exit mxc_spdc_fb_exit(void)
+{
+ platform_driver_unregister(&mxc_spdc_fb_driver);
+}
+module_exit(mxc_spdc_fb_exit);
+
+MODULE_AUTHOR("Freescale Semiconductor, Inc.");
+MODULE_DESCRIPTION("MXC SPDC framebuffer driver");
+MODULE_LICENSE("GPL");
+MODULE_SUPPORTED_DEVICE("fb");
diff --git a/drivers/video/mxc/mxc_spdc_fb.h b/drivers/video/mxc/mxc_spdc_fb.h
new file mode 100644
index 000000000000..34373788e83e
--- /dev/null
+++ b/drivers/video/mxc/mxc_spdc_fb.h
@@ -0,0 +1,352 @@
+/*
+ * Copyright (C) 2012 Freescale Semiconductor, Inc. All Rights Reserved.
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+ *
+ */
+
+#ifndef __MXC_SPDC_FB_H__
+#define __MXC_SPDC_FB_H__
+
+#include <linux/module.h>
+#include <linux/kernel.h>
+#include <linux/errno.h>
+#include <linux/string.h>
+#include <linux/mm.h>
+#include <linux/irq.h>
+#include <linux/slab.h>
+#include <linux/vmalloc.h>
+#include <linux/delay.h>
+#include <linux/interrupt.h>
+#include <linux/fb.h>
+#include <linux/init.h>
+#include <linux/list.h>
+#include <linux/mutex.h>
+#include <linux/delay.h>
+#include <linux/firmware.h>
+#include <linux/dmaengine.h>
+#include <linux/pxp_dma.h>
+#include <linux/mxcfb.h>
+#include <linux/list.h>
+#include <linux/uaccess.h>
+#include <linux/dma-mapping.h>
+#include <linux/err.h>
+#include <linux/clk.h>
+#include <linux/regulator/driver.h>
+#include <linux/dmaengine.h>
+#include <linux/gpio.h>
+#include <linux/kthread.h>
+#include <mach/epdc.h>
+#include <mach/dma.h>
+#include <linux/platform_device.h>
+
+#include <linux/fsl_devices.h>
+#include <linux/mxcfb.h>
+
+/*************************************
+*Register addresses
+*************************************/
+#define SPDC_DISP_TRIGGER (0x000)
+#define SPDC_UPDATA_X_Y (0x004)
+#define SPDC_UPDATE_W_H (0x008)
+#define SPDC_LUT_PARA_UPDATE (0x00C)
+#define SPDC_OPERATE (0x010)
+#define SPDC_PANEL_INIT_SET (0x014)
+#define SPDC_TEMP_INFO (0x018)
+#define SPDC_NEXT_BUF (0x01C)
+#define SPDC_CURRENT_BUF (0x020)
+#define SPDC_PRE_BUF (0x024)
+#define SPDC_CNT_BUF (0x028)
+#define SPDC_LUT_BUF (0x02C)
+#define SPDC_INT_ENABLE (0x030)
+#define SPDC_INT_STA_CLR (0x034)
+#define SPDC_INIT_STA_CLR (0x038)
+#define SPDC_STATUS (0x03C)
+#define SPDC_DISP_VER (0x040)
+#define SPDC_TCON_VER (0x044)
+#define SPDC_SW_GATE_CLK (0x048)
+
+/*
+ * Register field definitions
+ */
+enum {
+ SPDC_DISP_TRIGGER_ENABLE = 0x1,
+ SPDC_DISP_TRIGGER_FLASH = 0x10,
+
+ /*SPDC clock gate*/
+ SPDC_SW_GATE_CLK_ENABLE = 0x1,
+
+ /* waveform mode mask */
+ SPDC_WAV_MODE_MASK = (0x7 << 1),
+
+ /* SPDC interrupt IRQ mask define */
+ SPDC_IRQ_FRAME_UPDATE = (0x1 << 0),
+ SPDC_IRQ_TCON_INIT = (0x1 << 1),
+ SPDC_IRQ_LUT_DOWNLOAD = (0x1 << 2),
+ SPDC_IRQ_ERR = (0x1 << 3),
+ SPDC_IRQ_ALL_MASK = 0xF,
+
+ /* SPDC interrupt status */
+ SPDC_IRQ_STA_FRAME_UPDATE = (0x1 << 0),
+ SPDC_IRQ_STA_TCON_INIT = (0x1 << 1),
+ SPDC_IRQ_STA_LUT_DOWNLOAD = (0x1 << 2),
+ SPDC_IRQ_STA_ERR = (0x1 << 3),
+ SPDC_IRQ_STA_ALL_MASK = 0xF,
+
+ /* SPDC update coordinate angle */
+ SPDC_UPDATE_W_H_MAX_SIZE = ((0x1 << 12) - 1),
+ SPDC_UPDATE_X_Y_MAX_SIZE = ((0x1 << 12) - 1),
+
+ /* SPDC TCON status */
+ SPDC_PANEL_STAUTS_BUSY = 0x1,
+ SPDC_TCON_STATUS_IDLE = (0x4 << 4),
+
+ /* SPDC EPD Operation mode */
+ SPDC_NO_OPERATION = 0,
+ SPDC_DISP_REFRESH = 1,
+ SPDC_DEEP_REFRESH = 0x2,
+ SPDC_DISP_RESET = 0x4,
+ SPDC_SW_TCON_RESET = 0x5,
+ SPDC_SW_TCON_RESET_SET = 0x80000000,
+ SPDC_FULL_REFRESH = 0x6,
+
+ /* SPDC Concurrency mechanism: ACC */
+ SPDC_LUT_MODE_OFFSET = 0xb3,
+ SPDC_LUT_ACC_MODE = 0x4,
+
+ /* SPDC waveform */
+ SPDC_WAVEFORM_LUT_OFFSET_ADDR = 0x7600,
+ SPDC_LUT_PARA_LENTH = 0x100,
+ SPDC_LUT_FROM_MEM = 1,
+ SPDC_LUT_TO_MEM = 0,
+
+ /* SPDC submit update status */
+ SPDC_CONCUR_UPD = 0x4,
+ SPDC_QUEUE_UPD = 0x8,
+ SPDC_CONCUR_QUEUE = 0xc,
+};
+
+#define SPDC_DRIVER_NAME "imx_spdc_fb"
+
+/**
+ * SPDC EPD waveform display trigger mode
+ */
+enum {
+ SPDC_WAV_MODE_0 = 0,
+ SPDC_WAV_MODE_1,
+ SPDC_WAV_MODE_2,
+ SPDC_WAV_MODE_3,
+ SPDC_WAV_MODE_4,
+ SPDC_WAV_MODE_5,
+ SPDC_WAV_MODE_DEFAULT = SPDC_WAV_MODE_0,
+};
+
+/**
+ * SPDC controller ip version
+ */
+struct mxc_epd_disp_version {
+ u8 epd_type;
+ u8 lut_ver;
+ u16 product_id;
+};
+
+struct mxc_spdc_version {
+ struct mxc_epd_disp_version disp_ver;
+ u8 tcon_ver;
+};
+
+struct spdc_buffer_addr {
+ u32 next_buf_phys_addr;
+ u32 cur_buf_phys_addr;
+ u32 pre_buf_phys_addr;
+ u32 frm_cnt_buf_phys_addr;
+ u32 lut_buf_phys_addr;
+};
+
+struct partial_refresh_param {
+ struct spdc_buffer_addr buf_addr;
+ struct mxcfb_rect update_region;
+ int temper;
+ u32 blocking;
+ u32 wave_mode;
+ u32 stride;
+ u32 flash; /* only for waveform mode7 */
+ u32 concur; /* Concurrency mechanism: ACC */
+};
+
+/**
+ * SPDC lut data
+ */
+struct mxc_spdc_lut_para {
+ u8 lut_data[SPDC_LUT_PARA_LENTH];
+ u8 lut_addr[SPDC_LUT_PARA_LENTH];
+ bool lut_para_update_sta;
+};
+
+#define PORTRAIT "portrait"
+#define LANDSCAPE "Landscape"
+#define RESERVED "Reserved"
+struct mxc_spdc_resolution_map_para {
+ u16 resolution;
+ u16 res_x;
+ u16 res_y;
+ char res_name[12];
+};
+
+struct update_marker_data {
+ struct list_head full_list;
+ struct list_head upd_list;
+ u32 update_marker;
+ struct completion update_completion;
+ int lut_num;
+ bool collision_test;
+ bool waiting;
+};
+
+struct update_desc_list {
+ struct list_head list;
+ struct mxcfb_update_data upd_data;
+ u32 spdc_offs;
+ u32 spdc_stride;
+ struct list_head upd_marker_list;
+ u32 update_order;
+};
+
+/* This structure represents a list node containing both
+ * a memory region allocated as an output buffer for the PxP
+ * update processing task, and the update
+ * description (mode, region, etc.)
+ */
+struct update_data_list {
+ struct list_head list;
+ dma_addr_t phys_addr;/* Pointer to phys address of processed Y buf */
+ void *virt_addr;
+ struct update_desc_list *update_desc;
+ int lut_num;
+ u64 collision_mask; /* SPDC cannot support collision detect,
+ * align with EPDC driver struct */
+};
+
+typedef struct mxc_spdc_fb_param {
+ struct fb_info info;
+ struct fb_var_screeninfo spdc_fb_var;
+
+ char fw_str[24];
+ u32 pseudo_palette[16];
+ struct mxc_spdc_version spdc_ver;
+ struct imx_spdc_fb_mode *cur_mode;
+ struct imx_spdc_fb_platform_data *pdata;
+ struct partial_refresh_param fresh_param;
+ int blank;
+ bool updates_active;
+
+ u32 fb_offset;
+ u32 max_pix_size;
+ ssize_t map_size;
+ int native_width;
+ int native_height;
+ int default_bpp;
+
+ dma_addr_t phys_start;
+ void *virt_start;
+ struct device *dev;
+
+ int num_screens;
+ u32 order_cnt;
+ int max_num_updates;
+ u32 auto_mode;
+ u32 upd_scheme;
+ u32 operation_mode;
+ bool is_deep_fresh;
+ struct list_head full_marker_list;
+ struct list_head upd_pending_list;
+ struct list_head upd_buf_queue;
+ struct list_head upd_buf_free_list;
+ struct list_head upd_buf_preprocess_list;
+ u32 upd_preprocess_num;
+ int submit_upd_sta;
+ struct update_data_list *cur_update;
+ struct mutex queue_mutex;
+ struct imx_spdc_panel_init_set panel_set;
+ struct mxc_spdc_lut_para lut_para;
+ struct mxcfb_waveform_modes wv_modes;
+
+ dma_addr_t phy_next_buf;
+ dma_addr_t phy_pre_buf;
+ dma_addr_t phy_current_buf;
+ dma_addr_t phy_cnt_buf;
+ dma_addr_t phy_lut_buf;
+ void *virt_next_buf;
+ void *virt_current_buf;
+ void *virt_pre_buf;
+ void *virt_cnt_buf;
+ void *virt_lut_buf;
+ u32 next_buf_size;
+ u32 current_buf_size;
+ u32 pre_buf_size;
+ u32 cnt_buf_size;
+ u32 lut_buf_size;
+
+ dma_addr_t *phys_addr_updbuf;
+ void **virt_addr_updbuf;
+ u32 upd_buffer_num;
+ u32 max_num_buffers;
+
+ /* copy the processed data to next buffer relative region */
+ dma_addr_t phys_addr_copybuf;
+ void *virt_addr_copybuf;
+
+ int spdc_irq;
+ char __iomem *hwp;
+ struct clk *spdc_clk_axi;
+ struct clk *spdc_clk_pix;
+ struct regulator *display_regulator;
+ struct regulator *vcom_regulator;
+ struct regulator *v3p3_regulator;
+
+ spinlock_t lock;
+ int power_state;
+ bool powering_down;
+ int pwrdown_delay;
+ int wait_for_powerdown;
+ struct completion powerdown_compl;
+ struct mutex power_mutex;
+ bool fw_default_load;
+ bool hw_ready;
+ bool hw_initializing;
+ bool waiting_for_idle;
+ bool waiting_for_wb;
+ struct completion update_res_free;
+ struct completion lut_down;
+ struct completion init_finish;
+ struct completion update_finish;
+ struct completion updates_done;
+ struct delayed_work spdc_done_work;
+ struct workqueue_struct *spdc_submit_workqueue;
+ struct work_struct spdc_submit_work;
+ struct workqueue_struct *spdc_intr_workqueue;
+ struct work_struct spdc_intr_work;
+
+ /* FB elements related to PxP DMA */
+ struct completion pxp_tx_cmpl;
+ struct pxp_channel *pxp_chan;
+ struct pxp_config_data pxp_conf;
+ struct dma_async_tx_descriptor *txd;
+ dma_cookie_t cookie;
+ struct scatterlist sg[2];
+ struct mutex pxp_mutex; /* protects access to PxP */
+} mxc_spdc_t;
+
+#endif
diff --git a/drivers/video/mxc/mxcfb_seiko_wvga.c b/drivers/video/mxc/mxcfb_seiko_wvga.c
index 0ba4d9ed064f..c96238d80cb2 100644
--- a/drivers/video/mxc/mxcfb_seiko_wvga.c
+++ b/drivers/video/mxc/mxcfb_seiko_wvga.c
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2011 Freescale Semiconductor, Inc. All Rights Reserved.
+ * Copyright (C) 2011-2012 Freescale Semiconductor, Inc. All Rights Reserved.
*/
/*
@@ -122,7 +122,7 @@ static struct notifier_block nb = {
static int __devinit lcd_probe(struct platform_device *pdev)
{
int i;
- struct mxc_lcd_platform_data *plat = pdev->dev.platform_data;
+ struct fsl_mxc_lcd_platform_data *plat = pdev->dev.platform_data;
if (plat) {
if (plat->reset)
diff --git a/firmware/Makefile b/firmware/Makefile
index 459d5b08473b..b1d024df873c 100644
--- a/firmware/Makefile
+++ b/firmware/Makefile
@@ -147,6 +147,7 @@ fw-shipped-$(CONFIG_SOC_IMX51) += imx/sdma/sdma-imx51-to3.bin
fw-shipped-$(CONFIG_SOC_IMX53) += imx/sdma/sdma-imx53-to1.bin
fw-shipped-$(CONFIG_SOC_IMX6Q) += imx/sdma/sdma-imx6q-to1.bin
endif
+fw-shipped-$(CONFIG_FB_MXC_SIPIX_PANEL) += imx/spdc_pvi.fw
fw-shipped-$(CONFIG_FB_MXC_EINK_PANEL) += imx/epdc_E60_V110.fw \
imx/epdc_E60_V220.fw \
imx/epdc_E97_V110.fw \
diff --git a/firmware/imx/spdc_pvi.fw.ihex b/firmware/imx/spdc_pvi.fw.ihex
new file mode 100644
index 000000000000..c0c1407d9736
--- /dev/null
+++ b/firmware/imx/spdc_pvi.fw.ihex
@@ -0,0 +1,50046 @@
+:020000040000FA
+:1000000000000000000000000000000000000000F0
+:1000100000000000000000000000000000000000E0
+:1000200000000000000000000000000000000000D0
+:1000300000000000000000000000000000000000C0
+:1000400000000000000000000000000300000000AD
+:10005000000000000000000C000000000000000094
+:1000600000F00000000000000000000000000000A0
+:100070000000000000000000000000000000000080
+:100080000000000000000000000000000000000070
+:100090000000000000000000000000000000000060
+:1000A0000000000000000000000000000000000050
+:1000B0000000000000000000000000000000000040
+:1000C0000000000000000000000000000000000030
+:1000D0000000000000000000000000000000000020
+:1000E0000000000000000000000000000000000010
+:1000F0000000000000000000000000000000000000
+:1001000000000000000000000000000000000000EF
+:1001100000000000000000000000000000000000DF
+:1001200000000000000000000000000000000000CF
+:1001300000000000000000000000000000000000BF
+:1001400000000000000000000000000000000000AF
+:10015000000000000000000000000000000000009F
+:10016000000000000000000000000000000000008F
+:10017000000000000000000000000000000000007F
+:10018000000000000000000000000000000000006F
+:10019000000000000000000000000000000000005F
+:1001A000000000000000000000000000000000004F
+:1001B000000000000000000000000000000000003F
+:1001C000000000000000000000000000000000002F
+:1001D000000000000000000000000000000000001F
+:1001E000000000000000000000000000000000000F
+:1001F00000000000000000000000000000000000FF
+:1002000000000000000000000000000000000000EE
+:1002100000000000000000000000000000000000DE
+:1002200000000000000000000000000000000000CE
+:1002300000000000000000000000000000000000BE
+:1002400000000000000000000000000000000000AE
+:10025000000000000000000000000000000000009E
+:10026000000000000000000000000000000000008E
+:10027000000000000000000000000000000000007E
+:10028000000000000000000000000000000000006E
+:10029000000000000000000000000000000000005E
+:1002A000000000000000000000000000000000004E
+:1002B000000000000000000000000000000000003E
+:1002C000000000000000000000000000000000002E
+:1002D000000000000000000000000000000000001E
+:1002E000000000000000000000000000000000000E
+:1002F00000000000000000000000000000000000FE
+:1003000000000000000000000000000000000000ED
+:1003100000000000000000000000000000000000DD
+:1003200000000000000000000000000000000000CD
+:1003300000000000000000000000000000000000BD
+:1003400000000000000000000000000000000000AD
+:10035000000000000000000000000000000000009D
+:10036000000000000000000000000000000000008D
+:10037000000000000000000000000000000000007D
+:10038000000000000000000000000000000000006D
+:10039000000000000000000000000000000000005D
+:1003A000000000000000000000000000000000004D
+:1003B000000000000000000000000000000000003D
+:1003C000000000000000000000000000000000002D
+:1003D000000000000000000000000000000000001D
+:1003E000000000000000000000000000000000000D
+:1003F00000000000000000000000000000000000FD
+:1004000000000000000000000000000000000000EC
+:1004100000000000000000000000000000000000DC
+:1004200000000000000000000000000000000000CC
+:1004300000000000000000000000000000000000BC
+:1004400000000000000000000000000300000000A9
+:10045000000000000000000C000000000000000090
+:1004600000F000000000000000000000000000009C
+:10047000000000000000000000000000000000007C
+:10048000000000000000000000000000000000006C
+:10049000000000000000000000000000000000005C
+:1004A000000000000000000000000000000000004C
+:1004B000000000000000000000000000000000003C
+:1004C000000000000000000000000000000000002C
+:1004D000000000000000000000000000000000001C
+:1004E000000000000000000000000000000000000C
+:1004F00000000000000000000000000000000000FC
+:1005000000000000000000000000000000000000EB
+:1005100000000000000000000000000000000000DB
+:1005200000000000000000000000000000000000CB
+:1005300000000000000000000000000000000000BB
+:1005400000000000000000000000000000000000AB
+:10055000000000000000000000000000000000009B
+:10056000000000000000000000000000000000008B
+:10057000000000000000000000000000000000007B
+:10058000000000000000000000000000000000006B
+:10059000000000000000000000000000000000005B
+:1005A000000000000000000000000000000000004B
+:1005B000000000000000000000000000000000003B
+:1005C000000000000000000000000000000000002B
+:1005D000000000000000000000000000000000001B
+:1005E000000000000000000000000000000000000B
+:1005F00000000000000000000000000000000000FB
+:1006000000000000000000000000000000000000EA
+:1006100000000000000000000000000000000000DA
+:1006200000000000000000000000000000000000CA
+:1006300000000000000000000000000000000000BA
+:1006400000000000000000000000000000000000AA
+:10065000000000000000000000000000000000009A
+:10066000000000000000000000000000000000008A
+:10067000000000000000000000000000000000007A
+:10068000000000000000000000000000000000006A
+:10069000000000000000000000000000000000005A
+:1006A000000000000000000000000000000000004A
+:1006B000000000000000000000000000000000003A
+:1006C000000000000000000000000000000000002A
+:1006D000000000000000000000000000000000001A
+:1006E000000000000000000000000000000000000A
+:1006F00000000000000000000000000000000000FA
+:1007000000000000000000000000000000000000E9
+:1007100000000000000000000000000000000000D9
+:1007200000000000000000000000000000000000C9
+:1007300000000000000000000000000000000000B9
+:1007400000000000000000000000000000000000A9
+:100750000000000000000000000000000000000099
+:100760000000000000000000000000000000000089
+:100770000000000000000000000000000000000079
+:100780000000000000000000000000000000000069
+:100790000000000000000000000000000000000059
+:1007A0000000000000000000000000000000000049
+:1007B0000000000000000000000000000000000039
+:1007C0000000000000000000000000000000000029
+:1007D0000000000000000000000000000000000019
+:1007E0000000000000000000000000000000000009
+:1007F00000000000000000000000000000000000F9
+:1008000000000000000000000000000000000000E8
+:1008100000000000000000300000C00000000000E8
+:1008200000000000000000000000000000000000C8
+:1008300000000000000000000000000000000000B8
+:1008400000000000000000000000000300000000A5
+:10085000000000000000000C00000000000000008C
+:100860000000000000000000000000000000000088
+:100870000000000000000000000000000000000078
+:100880000000000000000000000000000000000068
+:100890000000000000000000000000000000000058
+:1008A0000000000000000000000000000000000048
+:1008B0000000000000000000000000000000000038
+:1008C0000000000000000000000000000000000028
+:1008D0000000000000000000000000000000000018
+:1008E0000000000000000000000000000000000008
+:1008F00000000000000000000000000000000000F8
+:1009000000000000000000000000000000000000E7
+:1009100000000000000000000000000000000000D7
+:1009200000000000000000000000000000000000C7
+:1009300000000000000000000000000000000000B7
+:1009400000000000000000000000000000000000A7
+:100950000000000000000000000000000000000097
+:100960000000000000000000000000000000000087
+:100970000000000000000000000000000000000077
+:100980000000000000000000000000000000000067
+:100990000000000000000000000000000000000057
+:1009A0000000000000000000000000000000000047
+:1009B0000000000000000000000000000000000037
+:1009C0000000000000000000000000000000000027
+:1009D0000000000000000000000000000000000017
+:1009E0000000000000000000000000000000000007
+:1009F00000000000000000000000000000000000F7
+:100A000000000000000000000000000000000000E6
+:100A100000000000000000000000000000000000D6
+:100A200000000000000000000000000000000000C6
+:100A300000000000000000000000000000000000B6
+:100A400000000000000000000000000000000000A6
+:100A50000000000000000000000000000000000096
+:100A60000000000000000000000000000000000086
+:100A70000000000000000000000000000000000076
+:100A80000000000000000000000000000000000066
+:100A90000000000000000000000000000000000056
+:100AA0000000000000000000000000000000000046
+:100AB0000000000000000000000000000000000036
+:100AC0000000000000000000000000000000000026
+:100AD0000000000000000000000000000000000016
+:100AE0000000000000000000000000000000000006
+:100AF00000000000000000000000000000000000F6
+:100B000000000000000000000000000000000000E5
+:100B100000000000000000000000000000000000D5
+:100B200000000000000000000000000000000000C5
+:100B300000000000000000000000000000000000B5
+:100B400000000000000000000000000000000000A5
+:100B50000000000000000000000000000000000095
+:100B60000000000000000000000000000000000085
+:100B70000000000000000000000000000000000075
+:100B80000000000000000000000000000000000065
+:100B90000000000000000000000000000000000055
+:100BA0000000000000000000000000000000000045
+:100BB0000000000000000000000000000000000035
+:100BC0000000000000000000000000000000000025
+:100BD0000000000000000000000000000000000015
+:100BE0000000000000000000000000000000000005
+:100BF00000000000000000000000000000000000F5
+:100C000000000000000000000000000000000000E4
+:100C100000000000000000000000000000000000D4
+:100C200000000000000000000000000000000000C4
+:100C300000000000000000000000000000000000B4
+:100C400000000000000000000000000300000000A1
+:100C5000000000000000000C000000000000000088
+:100C600000F0000000000000000000000000000094
+:100C70000000000000000000000000000000000074
+:100C80000000000000000000000000000000000064
+:100C90000000000000000000000000000000000054
+:100CA0000000000000000000000000000000000044
+:100CB0000000000000000000000000000000000034
+:100CC0000000000000000000000000000000000024
+:100CD0000000000000000000000000000000000014
+:100CE0000000000000000000000000000000000004
+:100CF00000000000000000000000000000000000F4
+:100D000000000000000000000000000000000000E3
+:100D100000000000000000000000000000000000D3
+:100D200000000000000000000000000000000000C3
+:100D300000000000000000000000000000000000B3
+:100D400000000000000000000000000000000000A3
+:100D50000000000000000000000000000000000093
+:100D60000000000000000000000000000000000083
+:100D70000000000000000000000000000000000073
+:100D80000000000000000000000000000000000063
+:100D90000000000000000000000000000000000053
+:100DA0000000000000000000000000000000000043
+:100DB0000000000000000000000000000000000033
+:100DC0000000000000000000000000000000000023
+:100DD0000000000000000000000000000000000013
+:100DE0000000000000000000000000000000000003
+:100DF00000000000000000000000000000000000F3
+:100E000000000000000000000000000000000000E2
+:100E100000000000000000000000000000000000D2
+:100E200000000000000000000000000000000000C2
+:100E300000000000000000000000000000000000B2
+:100E400000000000000000000000000000000000A2
+:100E50000000000000000000000000000000000092
+:100E60000000000000000000000000000000000082
+:100E70000000000000000000000000000000000072
+:100E80000000000000000000000000000000000062
+:100E90000000000000000000000000000000000052
+:100EA0000000000000000000000000000000000042
+:100EB0000000000000000000000000000000000032
+:100EC0000000000000000000000000000000000022
+:100ED0000000000000000000000000000000000012
+:100EE0000000000000000000000000000000000002
+:100EF00000000000000000000000000000000000F2
+:100F000000000000000000000000000000000000E1
+:100F100000000000000000000000000000000000D1
+:100F200000000000000000000000000000000000C1
+:100F300000000000000000000000000000000000B1
+:100F400000000000000000000000000000000000A1
+:100F50000000000000000000000000000000000091
+:100F60000000000000000000000000000000000081
+:100F70000000000000000000000000000000000071
+:100F80000000000000000000000000000000000061
+:100F90000000000000000000000000000000000051
+:100FA0000000000000000000000000000000000041
+:100FB0000000000000000000000000000000000031
+:100FC0000000000000000000000000000000000021
+:100FD0000000000000000000000000000000000011
+:100FE0000000000000000000000000000000000001
+:100FF00000000000000000000000000000000000F1
+:1010000000000000000000000000000000000000E0
+:1010100000000000000000000000000000000000D0
+:1010200000000000000000000000000000000000C0
+:1010300000000000000000000000000000000000B0
+:1010400000000000000000000000000000000000A0
+:101050000000000000000000000000000000000090
+:1010600000FF000000000000000000000000000081
+:101070000000000000000000000000000000000070
+:101080000000000000000000000000000000000060
+:101090000000000000000000000000000000000050
+:1010A0000000000000000000000000000000000040
+:1010B0000000000000000000000000000000000030
+:1010C0000000000000000000000000000000000020
+:1010D0000000000000000000000000000000000010
+:1010E0000000000000000000000000000000000000
+:1010F00000000000000000000000000000000000F0
+:1011000000000000000000000000000000000000DF
+:1011100000000000000000000000000000000000CF
+:1011200000000000000000000000000000000000BF
+:1011300000000000000000000000000000000000AF
+:10114000000000000000000000000000000000009F
+:10115000000000000000000000000000000000008F
+:10116000000000000000000000000000000000007F
+:10117000000000000000000000000000000000006F
+:10118000000000000000000000000000000000005F
+:10119000000000000000000000000000000000004F
+:1011A000000000000000000000000000000000003F
+:1011B000000000000000000000000000000000002F
+:1011C000000000000000000000000000000000001F
+:1011D000000000000000000000000000000000000F
+:1011E00000000000000000000000000000000000FF
+:1011F00000000000000000000000000000000000EF
+:1012000000000000000000000000000000000000DE
+:1012100000000000000000000000000000000000CE
+:1012200000000000000000000000000000000000BE
+:1012300000000000000000000000000000000000AE
+:10124000000000000000000000000000000000009E
+:10125000000000000000000000000000000000008E
+:10126000000000000000000000000000000000007E
+:10127000000000000000000000000000000000006E
+:10128000000000000000000000000000000000005E
+:10129000000000000000000000000000000000004E
+:1012A000000000000000000000000000000000003E
+:1012B000000000000000000000000000000000002E
+:1012C000000000000000000000000000000000001E
+:1012D000000000000000000000000000000000000E
+:1012E00000000000000000000000000000000000FE
+:1012F00000000000000000000000000000000000EE
+:1013000000000000000000000000000000000000DD
+:1013100000000000000000000000000000000000CD
+:1013200000000000000000000000000000000000BD
+:1013300000000000000000000000000000000000AD
+:10134000000000000000000000000000000000009D
+:10135000000000000000000000000000000000008D
+:10136000000000000000000000000000000000007D
+:10137000000000000000000000000000000000006D
+:10138000000000000000000000000000000000005D
+:10139000000000000000000000000000000000004D
+:1013A000000000000000000000000000000000003D
+:1013B000000000000000000000000000000000002D
+:1013C000000000000000000000000000000000001D
+:1013D000000000000000000000000000000000000D
+:1013E00000000000000000000000000000000000FD
+:1013F00000000000000000000000000000000000ED
+:1014000000000000000000000000000000000000DC
+:1014100000000000000000000000000000000000CC
+:1014200000000000000000000000000000000000BC
+:1014300000000000000000000000000000000000AC
+:10144000000000000000000000000000000000009C
+:10145000000000000000000000000000000000008C
+:101460000003000000000000000C0000000000006D
+:1014700000300000000000000000000000C000007C
+:10148000000000000000000000000000000000005C
+:10149000000000000000000000000000000000004C
+:1014A000000000000000000000000000000000003C
+:1014B000000000000000000000000000000000002C
+:1014C000000000000000000000000000000000001C
+:1014D000000000000000000000000000000000000C
+:1014E00000000000000000000000000000000000FC
+:1014F00000000000000000000000000000000000EC
+:1015000000000000000000000000000000000000DB
+:1015100000000000000000000000000000000000CB
+:1015200000000000000000000000000000000000BB
+:1015300000000000000000000000000000000000AB
+:10154000000000000000000000000000000000009B
+:10155000000000000000000000000000000000008B
+:10156000000000000000000000000000000000007B
+:10157000000000000000000000000000000000006B
+:10158000000000000000000000000000000000005B
+:10159000000000000000000000000000000000004B
+:1015A000000000000000000000000000000000003B
+:1015B000000000000000000000000000000000002B
+:1015C000000000000000000000000000000000001B
+:1015D000000000000000000000000000000000000B
+:1015E00000000000000000000000000000000000FB
+:1015F00000000000000000000000000000000000EB
+:1016000000000000000000000000000000000000DA
+:1016100000000000000000000000000000000000CA
+:1016200000000000000000000000000000000000BA
+:1016300000000000000000000000000000000000AA
+:10164000000000000000000000000000000000009A
+:10165000000000000000000000000000000000008A
+:10166000000000000000000000000000000000007A
+:10167000000000000000000000000000000000006A
+:10168000000000000000000000000000000000005A
+:10169000000000000000000000000000000000004A
+:1016A000000000000000000000000000000000003A
+:1016B000000000000000000000000000000000002A
+:1016C000000000000000000000000000000000001A
+:1016D000000000000000000000000000000000000A
+:1016E00000000000000000000000000000000000FA
+:1016F00000000000000000000000000000000000EA
+:1017000000000000000000000000000000000000D9
+:1017100000000000000000000000000000000000C9
+:1017200000000000000000000000000000000000B9
+:1017300000000000000000000000000000000000A9
+:101740000000000000000000000000000000000099
+:101750000000000000000000000000000000000089
+:101760000000000000000000000000000000000079
+:101770000000000000000000000000000000000069
+:101780000000000000000000000000000000000059
+:101790000000000000000000000000000000000049
+:1017A0000000000000000000000000000000000039
+:1017B0000000000000000000000000000000000029
+:1017C0000000000000000000000000000000000019
+:1017D0000000000000000000000000000000000009
+:1017E00000000000000000000000000000000000F9
+:1017F00000000000000000000000000000000000E9
+:1018000000000000000000000000000000000000D8
+:1018100000000000000000000000000000000000C8
+:1018200000000000000000000000000000000000B8
+:1018300000000000000000000000000000000000A8
+:101840000000000000000000000000000000000098
+:101850000000000000000000000000000000000088
+:101860000003000000000000000C00000000000069
+:1018700000300000000000000000000000C0000078
+:101880000000000000000000000000000000000058
+:101890000000000000000000000000000000000048
+:1018A0000000000000000000000000000000000038
+:1018B0000000000000000000000000000000000028
+:1018C0000000000000000000000000000000000018
+:1018D0000000000000000000000000000000000008
+:1018E00000000000000000000000000000000000F8
+:1018F00000000000000000000000000000000000E8
+:1019000000000000000000000000000000000000D7
+:1019100000000000000000000000000000000000C7
+:1019200000000000000000000000000000000000B7
+:1019300000000000000000000000000000000000A7
+:101940000000000000000000000000000000000097
+:101950000000000000000000000000000000000087
+:101960000000000000000000000000000000000077
+:101970000000000000000000000000000000000067
+:101980000000000000000000000000000000000057
+:101990000000000000000000000000000000000047
+:1019A0000000000000000000000000000000000037
+:1019B0000000000000000000000000000000000027
+:1019C0000000000000000000000000000000000017
+:1019D0000000000000000000000000000000000007
+:1019E00000000000000000000000000000000000F7
+:1019F00000000000000000000000000000000000E7
+:101A000000000000000000000000000000000000D6
+:101A100000000000000000000000000000000000C6
+:101A200000000000000000000000000000000000B6
+:101A300000000000000000000000000000000000A6
+:101A40000000000000000000000000000000000096
+:101A50000000000000000000000000000000000086
+:101A60000000000000000000000000000000000076
+:101A70000000000000000000000000000000000066
+:101A80000000000000000000000000000000000056
+:101A90000000000000000000000000000000000046
+:101AA0000000000000000000000000000000000036
+:101AB0000000000000000000000000000000000026
+:101AC0000000000000000000000000000000000016
+:101AD0000000000000000000000000000000000006
+:101AE00000000000000000000000000000000000F6
+:101AF00000000000000000000000000000000000E6
+:101B000000000000000000000000000000000000D5
+:101B100000000000000000000000000000000000C5
+:101B200000000000000000000000000000000000B5
+:101B300000000000000000000000000000000000A5
+:101B40000000000000000000000000000000000095
+:101B50000000000000000000000000000000000085
+:101B60000000000000000000000000000000000075
+:101B70000000000000000000000000000000000065
+:101B80000000000000000000000000000000000055
+:101B90000000000000000000000000000000000045
+:101BA0000000000000000000000000000000000035
+:101BB0000000000000000000000000000000000025
+:101BC0000000000000000000000000000000000015
+:101BD0000000000000000000000000000000000005
+:101BE00000000000000000000000000000000000F5
+:101BF00000000000000000000000000000000000E5
+:101C000000000000000000000000000000000000D4
+:101C100000000000000000000000000000000000C4
+:101C200000000000000000000000000000000000B4
+:101C300000000000000000000000000000000000A4
+:101C40000000000000000000000000000000000094
+:101C50000000000000000000000000000000000084
+:101C60000003000000000000000C00000000000065
+:101C700000300000000000000000000000C0000074
+:101C80000000000000000000000000000000000054
+:101C90000000000000000000000000000000000044
+:101CA0000000000000000000000000000000000034
+:101CB0000000000000000000000000000000000024
+:101CC0000000000000000000000000000000000014
+:101CD0000000000000000000000000000000000004
+:101CE00000000000000000000000000000000000F4
+:101CF00000000000000000000000000000000000E4
+:101D000000000000000000000000000000000000D3
+:101D100000000000000000000000000000000000C3
+:101D200000000000000000000000000000000000B3
+:101D300000000000000000000000000000000000A3
+:101D40000000000000000000000000000000000093
+:101D50000000000000000000000000000000000083
+:101D60000000000000000000000000000000000073
+:101D70000000000000000000000000000000000063
+:101D80000000000000000000000000000000000053
+:101D90000000000000000000000000000000000043
+:101DA0000000000000000000000000000000000033
+:101DB0000000000000000000000000000000000023
+:101DC0000000000000000000000000000000000013
+:101DD0000000000000000000000000000000000003
+:101DE00000000000000000000000000000000000F3
+:101DF00000000000000000000000000000000000E3
+:101E000000000000000000000000000000000000D2
+:101E100000000000000000000000000000000000C2
+:101E200000000000000000000000000000000000B2
+:101E300000000000000000000000000000000000A2
+:101E40000000000000000000000000000000000092
+:101E50000000000000000000000000000000000082
+:101E60000000000000000000000000000000000072
+:101E70000000000000000000000000000000000062
+:101E80000000000000000000000000000000000052
+:101E90000000000000000000000000000000000042
+:101EA0000000000000000000000000000000000032
+:101EB0000000000000000000000000000000000022
+:101EC0000000000000000000000000000000000012
+:101ED0000000000000000000000000000000000002
+:101EE00000000000000000000000000000000000F2
+:101EF00000000000000000000000000000000000E2
+:101F000000000000000000000000000000000000D1
+:101F100000000000000000000000000000000000C1
+:101F200000000000000000000000000000000000B1
+:101F300000000000000000000000000000000000A1
+:101F40000000000000000000000000000000000091
+:101F50000000000000000000000000000000000081
+:101F60000000000000000000000000000000000071
+:101F70000000000000000000000000000000000061
+:101F80000000000000000000000000000000000051
+:101F90000000000000000000000000000000000041
+:101FA0000000000000000000000000000000000031
+:101FB0000000000000000000000000000000000021
+:101FC0000000000000000000000000000000000011
+:101FD0000000000000000000000000000000000001
+:101FE00000000000000000000000000000000000F1
+:101FF00000000000000000000000000000000000E1
+:1020000000000000000000000000000000000000D0
+:1020100000000000000000000000000000000000C0
+:1020200000000000000000000000000000000000B0
+:1020300000000000000000000000000000000000A0
+:102040000000000000000000000000000000000090
+:102050000000000000000000000000000000000080
+:102060000003000000000000000C00000000000061
+:1020700000300000000000000000000000C0000070
+:102080000000000000000000000000000000000050
+:102090000000000000000000000000000000000040
+:1020A0000000000000000000000000000000000030
+:1020B0000000000000000000000000000000000020
+:1020C0000000000000000000000000000000000010
+:1020D0000000000000000000000000000000000000
+:1020E00000000000000000000000000000000000F0
+:1020F00000000000000000000000000000000000E0
+:1021000000000000000000000000000000000000CF
+:1021100000000000000000000000000000000000BF
+:1021200000000000000000000000000000000000AF
+:10213000000000000000000000000000000000009F
+:10214000000000000000000000000000000000008F
+:10215000000000000000000000000000000000007F
+:10216000000000000000000000000000000000006F
+:10217000000000000000000000000000000000005F
+:10218000000000000000000000000000000000004F
+:10219000000000000000000000000000000000003F
+:1021A000000000000000000000000000000000002F
+:1021B000000000000000000000000000000000001F
+:1021C000000000000000000000000000000000000F
+:1021D00000000000000000000000000000000000FF
+:1021E00000000000000000000000000000000000EF
+:1021F00000000000000000000000000000000000DF
+:1022000000000000000000000000000000000000CE
+:1022100000000000000000000000000000000000BE
+:1022200000000000000000000000000000000000AE
+:10223000000000000000000000000000000000009E
+:10224000000000000000000000000000000000008E
+:10225000000000000000000000000000000000007E
+:10226000000000000000000000000000000000006E
+:10227000000000000000000000000000000000005E
+:10228000000000000000000000000000000000004E
+:10229000000000000000000000000000000000003E
+:1022A000000000000000000000000000000000002E
+:1022B000000000000000000000000000000000001E
+:1022C000000000000000000000000000000000000E
+:1022D00000000000000000000000000000000000FE
+:1022E00000000000000000000000000000000000EE
+:1022F00000000000000000000000000000000000DE
+:1023000000000000000000000000000000000000CD
+:1023100000000000000000000000000000000000BD
+:1023200000000000000000000000000000000000AD
+:10233000000000000000000000000000000000009D
+:10234000000000000000000000000000000000008D
+:10235000000000000000000000000000000000007D
+:10236000000000000000000000000000000000006D
+:10237000000000000000000000000000000000005D
+:10238000000000000000000000000000000000004D
+:10239000000000000000000000000000000000003D
+:1023A000000000000000000000000000000000002D
+:1023B000000000000000000000000000000000001D
+:1023C000000000000000000000000000000000000D
+:1023D00000000000000000000000000000000000FD
+:1023E00000000000000000000000000000000000ED
+:1023F00000000000000000000000000000000000DD
+:10240000AA0055555555555555555555555555557C
+:10241000555555555555555555555555505A5A5A62
+:102420005A5A5A5A4A6A6A6A2AAAAAAAAAAAAAAAEC
+:10243000AAAAAAAAAAAAAAA0A0AFA0A0A0A0A0A047
+:10244000A0A0A0A0A0A0A08080B0808080808000FC
+:1024500000C00000000000000000000000000000BC
+:10246000000000000000000000000000000000006C
+:10247000000000000000000000000000000000005C
+:10248000000000000000000000000000000000004C
+:10249000000000000000000000000000000000003C
+:1024A000000000000000000000000000000000002C
+:1024B000000000000000000000000000000000001C
+:1024C000000000000000000000000000000000000C
+:1024D00000000000000000000000000000000000FC
+:1024E00000000000000000000000000000000000EC
+:1024F00000000000000000000000000000000000DC
+:1025000000000000000000000000000000000000CB
+:1025100000000000000000000000000000000000BB
+:1025200000000000000000000000000000000000AB
+:10253000000000000000000000000000000000009B
+:10254000000000000000000000000000000000008B
+:10255000000000000000000000000000000000007B
+:10256000000000000000000000000000000000006B
+:10257000000000000000000000000000000000005B
+:10258000000000000000000000000000000000004B
+:10259000000000000000000000000000000000003B
+:1025A000000000000000000000000000000000002B
+:1025B000000000000000000000000000000000001B
+:1025C000000000000000000000000000000000000B
+:1025D00000000000000000000000000000000000FB
+:1025E00000000000000000000000000000000000EB
+:1025F00000000000000000000000000000000000DB
+:1026000000000000000000000000000000000000CA
+:1026100000000000000000000000000000000000BA
+:1026200000000000000000000000000000000000AA
+:10263000000000000000000000000000000000009A
+:10264000000000000000000000000000000000008A
+:10265000000000000000000000000000000000007A
+:10266000000000000000000000000000000000006A
+:10267000000000000000000000000000000000005A
+:10268000000000000000000000000000000000004A
+:10269000000000000000000000000000000000003A
+:1026A000000000000000000000000000000000002A
+:1026B000000000000000000000000000000000001A
+:1026C000000000000000000000000000000000000A
+:1026D00000000000000000000000000000000000FA
+:1026E00000000000000000000000000000000000EA
+:1026F00000000000000000000000000000000000DA
+:1027000000000000000000000000000000000000C9
+:1027100000000000000000000000000000000000B9
+:1027200000000000000000000000000000000000A9
+:102730000000000000000000000000000000000099
+:102740000000000000000000000000000000000089
+:102750000000000000000000000000000000000079
+:102760000000000000000000000000000000000069
+:102770000000000000000000000000000000000059
+:102780000000000000000000000000000000000049
+:102790000000000000000000000000000000000039
+:1027A0000000000000000000000000000000000029
+:1027B0000000000000000000000000000000000019
+:1027C0000000000000000000000000000000000009
+:1027D00000000000000000000000000000000000F9
+:1027E00000000000000000000000000000000000E9
+:1027F00000000000000000000000000000000000D9
+:1028000000000000000000000000000000000000C8
+:1028100000000000000000000000000000000000B8
+:1028200000000000000000000000000000000000A8
+:10283000000000000000000000000000000300FC99
+:102840000000000000000000000000000000000088
+:102850000000000000000000000000000000000078
+:102860000000000000000000000000000000000068
+:102870000000000000000000000000000000000058
+:102880000000000000000000000000000000000048
+:102890000000000000000000000000000000000038
+:1028A0000000000000000000000000000000000028
+:1028B0000000000000000000000000000000000018
+:1028C0000000000000000000000000000000000008
+:1028D00000000000000000000000000000000000F8
+:1028E00000000000000000000000000000000000E8
+:1028F00000000000000000000000000000000000D8
+:1029000000000000000000000000000000000000C7
+:1029100000000000000000000000000000000000B7
+:1029200000000000000000000000000000000000A7
+:102930000000000000000000000000000000000097
+:102940000000000000000000000000000000000087
+:102950000000000000000000000000000000000077
+:102960000000000000000000000000000000000067
+:102970000000000000000000000000000000000057
+:102980000000000000000000000000000000000047
+:102990000000000000000000000000000000000037
+:1029A0000000000000000000000000000000000027
+:1029B0000000000000000000000000000000000017
+:1029C0000000000000000000000000000000000007
+:1029D00000000000000000000000000000000000F7
+:1029E00000000000000000000000000000000000E7
+:1029F00000000000000000000000000000000000D7
+:102A000000000000000000000000000000000000C6
+:102A100000000000000000000000000000000000B6
+:102A200000000000000000000000000000000000A6
+:102A30000000000000000000000000000000000096
+:102A40000000000000000000000000000000000086
+:102A50000000000000000000000000000000000076
+:102A60000000000000000000000000000000000066
+:102A70000000000000000000000000000000000056
+:102A80000000000000000000000000000000000046
+:102A90000000000000000000000000000000000036
+:102AA0000000000000000000000000000000000026
+:102AB0000000000000000000000000000000000016
+:102AC0000000000000000000000000000000000006
+:102AD00000000000000000000000000000000000F6
+:102AE00000000000000000000000000000000000E6
+:102AF00000000000000000000000000000000000D6
+:102B000000000000000000000000000000000000C5
+:102B100000000000000000000000000000000000B5
+:102B200000000000000000000000000000000000A5
+:102B30000000000000000000000000000000000095
+:102B40000000000000000000000000000000000085
+:102B50000000000000000000000000000000000075
+:102B60000000000000000000000000000000000065
+:102B70000000000000000000000000000000000055
+:102B80000000000000000000000000000000000045
+:102B90000000000000000000000000000000000035
+:102BA0000000000000000000000000000000000025
+:102BB0000000000000000000000000000000000015
+:102BC0000000000000000000000000000000000005
+:102BD00000000000000000000000000000000000F5
+:102BE00000000000000000000000000000000000E5
+:102BF00000000000000000000000000000000000D5
+:102C000000000000000000000000000000000000C4
+:102C100000000000000000000000000000000000B4
+:102C200000000000000000000000000000000000A4
+:102C3000000000000000000000000000000300FC95
+:102C40000000000000000000000000000000000084
+:102C50000000000000000000000000000000000074
+:102C60000000000000000000000000000000000064
+:102C70000000000000000000000000000000000054
+:102C80000000000000000000000000000000000044
+:102C90000000000000000000000000000000000034
+:102CA0000000000000000000000000000000000024
+:102CB0000000000000000000000000000000000014
+:102CC0000000000000000000000000000000000004
+:102CD00000000000000000000000000000000000F4
+:102CE00000000000000000000000000000000000E4
+:102CF00000000000000000000000000000000000D4
+:102D000000000000000000000000000000000000C3
+:102D100000000000000000000000000000000000B3
+:102D200000000000000000000000000000000000A3
+:102D30000000000000000000000000000000000093
+:102D40000000000000000000000000000000000083
+:102D50000000000000000000000000000000000073
+:102D60000000000000000000000000000000000063
+:102D70000000000000000000000000000000000053
+:102D80000000000000000000000000000000000043
+:102D90000000000000000000000000000000000033
+:102DA0000000000000000000000000000000000023
+:102DB0000000000000000000000000000000000013
+:102DC0000000000000000000000000000000000003
+:102DD00000000000000000000000000000000000F3
+:102DE00000000000000000000000000000000000E3
+:102DF00000000000000000000000000000000000D3
+:102E000000000000000000000000000000000000C2
+:102E100000000000000000000000000000000000B2
+:102E200000000000000000000000000000000000A2
+:102E30000000000000000000000000000000000092
+:102E40000000000000000000000000000000000082
+:102E50000000000000000000000000000000000072
+:102E60000000000000000000000000000000000062
+:102E70000000000000000000000000000000000052
+:102E80000000000000000000000000000000000042
+:102E90000000000000000000000000000000000032
+:102EA0000000000000000000000000000000000022
+:102EB0000000000000000000000000000000000012
+:102EC0000000000000000000000000000000000002
+:102ED00000000000000000000000000000000000F2
+:102EE00000000000000000000000000000000000E2
+:102EF00000000000000000000000000000000000D2
+:102F000000000000000000000000000000000000C1
+:102F100000000000000000000000000000000000B1
+:102F200000000000000000000000000000000000A1
+:102F30000000000000000000000000000000000091
+:102F40000000000000000000000000000000000081
+:102F50000000000000000000000000000000000071
+:102F60000000000000000000000000000000000061
+:102F70000000000000000000000000000000000051
+:102F80000000000000000000000000000000000041
+:102F90000000000000000000000000000000000031
+:102FA0000000000000000000000000000000000021
+:102FB0000000000000000000000000000000000011
+:102FC0000000000000000000000000000000000001
+:102FD00000000000000000000000000000000000F1
+:102FE00000000000000000000000000000000000E1
+:102FF00000000000000000000000000000000000D1
+:1030000000000000000000000000000000000000C0
+:1030100000000000000000000000000000000000B0
+:1030200000000000000000000000000000000000A0
+:10303000000000000000000000000000000300FC91
+:103040000000000000000000000000000000000080
+:103050000000000000000000000000000000000070
+:103060000000000000000000000000000000000060
+:103070000000000000000000000000000000000050
+:103080000000000000000000000000000000000040
+:103090000000000000000000000000000000000030
+:1030A0000000000000000000000000000000000020
+:1030B0000000000000000000000000000000000010
+:1030C0000000000000000000000000000000000000
+:1030D00000000000000000000000000000000000F0
+:1030E00000000000000000000000000000000000E0
+:1030F00000000000000000000000000000000000D0
+:1031000000000000000000000000000000000000BF
+:1031100000000000000000000000000000000000AF
+:10312000000000000000000000000000000000009F
+:10313000000000000000000000000000000000008F
+:10314000000000000000000000000000000000007F
+:10315000000000000000000000000000000000006F
+:10316000000000000000000000000000000000005F
+:10317000000000000000000000000000000000004F
+:10318000000000000000000000000000000000003F
+:10319000000000000000000000000000000000002F
+:1031A000000000000000000000000000000000001F
+:1031B000000000000000000000000000000000000F
+:1031C00000000000000000000000000000000000FF
+:1031D00000000000000000000000000000000000EF
+:1031E00000000000000000000000000000000000DF
+:1031F00000000000000000000000000000000000CF
+:1032000000000000000000000000000000000000BE
+:1032100000000000000000000000000000000000AE
+:10322000000000000000000000000000000000009E
+:10323000000000000000000000000000000000008E
+:10324000000000000000000000000000000000007E
+:10325000000000000000000000000000000000006E
+:10326000000000000000000000000000000000005E
+:10327000000000000000000000000000000000004E
+:10328000000000000000000000000000000000003E
+:10329000000000000000000000000000000000002E
+:1032A000000000000000000000000000000000001E
+:1032B000000000000000000000000000000000000E
+:1032C00000000000000000000000000000000000FE
+:1032D00000000000000000000000000000000000EE
+:1032E00000000000000000000000000000000000DE
+:1032F00000000000000000000000000000000000CE
+:1033000000000000000000000000000000000000BD
+:1033100000000000000000000000000000000000AD
+:10332000000000000000000000000000000000009D
+:10333000000000000000000000000000000000008D
+:10334000000000000000000000000000000000007D
+:10335000000000000000000000000000000000006D
+:10336000000000000000000000000000000000005D
+:10337000000000000000000000000000000000004D
+:10338000000000000000000000000000000000003D
+:10339000000000000000000000000000000000002D
+:1033A000000000000000000000000000000000001D
+:1033B000000000000000000000000000000000000D
+:1033C00000000000000000000000000000000000FD
+:1033D00000000000000000000000000000000000ED
+:1033E00000000000000000000000000000000000DD
+:1033F00000000000000000000000000000000000CD
+:1034000000000000000000000000000000000000BC
+:1034100000000000000000000000000000000000AC
+:10342000000000000000000000000000000000009C
+:10343000000000000000000000000000000300FC8D
+:10344000000000000000000000000000000000007C
+:10345000000000000000000000000000000000006C
+:10346000000000000000000000000000000000005C
+:10347000000000000000000000000000000000004C
+:10348000000000000000000000000000000000003C
+:10349000000000000000000000000000000000002C
+:1034A000000000000000000000000000000000001C
+:1034B000000000000000000000000000000000000C
+:1034C00000000000000000000000000000000000FC
+:1034D00000000000000000000000000000000000EC
+:1034E00000000000000000000000000000000000DC
+:1034F00000000000000000000000000000000000CC
+:1035000000000000000000000000000000000000BB
+:1035100000000000000000000000000000000000AB
+:10352000000000000000000000000000000000009B
+:10353000000000000000000000000000000000008B
+:10354000000000000000000000000000000000007B
+:10355000000000000000000000000000000000006B
+:10356000000000000000000000000000000000005B
+:10357000000000000000000000000000000000004B
+:10358000000000000000000000000000000000003B
+:10359000000000000000000000000000000000002B
+:1035A000000000000000000000000000000000001B
+:1035B000000000000000000000000000000000000B
+:1035C00000000000000000000000000000000000FB
+:1035D00000000000000000000000000000000000EB
+:1035E00000000000000000000000000000000000DB
+:1035F00000000000000000000000000000000000CB
+:1036000000000000000000000000000000000000BA
+:1036100000000000000000000000000000000000AA
+:10362000000000000000000000000000000000009A
+:10363000000000000000000000000000000000008A
+:10364000000000000000000000000000000000007A
+:10365000000000000000000000000000000000006A
+:10366000000000000000000000000000000000005A
+:10367000000000000000000000000000000000004A
+:10368000000000000000000000000000000000003A
+:10369000000000000000000000000000000000002A
+:1036A000000000000000000000000000000000001A
+:1036B000000000000000000000000000000000000A
+:1036C00000000000000000000000000000000000FA
+:1036D00000000000000000000000000000000000EA
+:1036E00000000000000000000000000000000000DA
+:1036F00000000000000000000000000000000000CA
+:1037000000000000000000000000000000000000B9
+:1037100000000000000000000000000000000000A9
+:103720000000000000000000000000000000000099
+:103730000000000000000000000000000000000089
+:103740000000000000000000000000000000000079
+:103750000000000000000000000000000000000069
+:103760000000000000000000000000000000000059
+:103770000000000000000000000000000000000049
+:103780000000000000000000000000000000000039
+:103790000000000000000000000000000000000029
+:1037A0000000000000000000000000000000000019
+:1037B0000000000000000000000000000000000009
+:1037C00000000000000000000000000000000000F9
+:1037D00000000000000000000000000000000000E9
+:1037E00000000000000000000000000000000000D9
+:1037F00000000000000000000000000000000000C9
+:10380000AA00555555555555555555555555505A68
+:103810005A5A0AAAAAAAAAAAAAAAAAA0A0AFA0A06B
+:10382000A0A0A00000F000000000000000000000C8
+:103830000000000000000000000000000000000088
+:103840000000000000000000000000000000000078
+:103850000000000000000000000000000000000068
+:103860000000000000000000000000000000000058
+:103870000000000000000000000000000000000048
+:103880000000000000000000000000000000000038
+:103890000000000000000000000000000000000028
+:1038A0000000000000000000000000000000000018
+:1038B0000000000000000000000000000000000008
+:1038C00000000000000000000000000000000000F8
+:1038D00000000000000000000000000000000000E8
+:1038E00000000000000000000000000000000000D8
+:1038F00000000000000000000000000000000000C8
+:1039000000000000000000000000000000000000B7
+:1039100000000000000000000000000000000000A7
+:103920000000000000000000000000000000000097
+:103930000000000000000000000000000000000087
+:103940000000000000000000000000000000000077
+:103950000000000000000000000000000000000067
+:103960000000000000000000000000000000000057
+:103970000000000000000000000000000000000047
+:103980000000000000000000000000000000000037
+:103990000000000000000000000000000000000027
+:1039A0000000000000000000000000000000000017
+:1039B0000000000000000000000000000000000007
+:1039C00000000000000000000000000000000000F7
+:1039D00000000000000000000000000000000000E7
+:1039E00000000000000000000000000000000000D7
+:1039F00000000000000000000000000000000000C7
+:103A000000000000000000000000000000000000B6
+:103A100000000000000000000000000000000000A6
+:103A20000000000000000000000000000000000096
+:103A30000000000000000000000000000000000086
+:103A40000000000000000000000000000000000076
+:103A50000000000000000000000000000000000066
+:103A60000000000000000000000000000000000056
+:103A70000000000000000000000000000000000046
+:103A80000000000000000000000000000000000036
+:103A90000000000000000000000000000000000026
+:103AA0000000000000000000000000000000000016
+:103AB0000000000000000000000000000000000006
+:103AC00000000000000000000000000000000000F6
+:103AD00000000000000000000000000000000000E6
+:103AE00000000000000000000000000000000000D6
+:103AF00000000000000000000000000000000000C6
+:103B000000000000000000000000000000000000B5
+:103B100000000000000000000000000000000000A5
+:103B20000000000000000000000000000000000095
+:103B30000000000000000000000000000000000085
+:103B40000000000000000000000000000000000075
+:103B50000000000000000000000000000000000065
+:103B60000000000000000000000000000000000055
+:103B70000000000000000000000000000000000045
+:103B80000000000000000000000000000000000035
+:103B90000000000000000000000000000000000025
+:103BA0000000000000000000000000000000000015
+:103BB0000000000000000000000000000000000005
+:103BC00000000000000000000000000000000000F5
+:103BD00000000000000000000000000000000000E5
+:103BE00000000000000000000000000000000000D5
+:103BF00000000000000000000000000000000000C5
+:103C000000000000000000000000000000000000B4
+:103C100000000000000000000000000000000000A4
+:103C20000000000000000000000000000000000094
+:103C3000000000000000000000000000000300FC85
+:103C40000000000000000000000000000000000074
+:103C50000000000000000000000000000000000064
+:103C60000000000000000000000000000000000054
+:103C70000000000000000000000000000000000044
+:103C80000000000000000000000000000000000034
+:103C90000000000000000000000000000000000024
+:103CA0000000000000000000000000000000000014
+:103CB0000000000000000000000000000000000004
+:103CC00000000000000000000000000000000000F4
+:103CD00000000000000000000000000000000000E4
+:103CE00000000000000000000000000000000000D4
+:103CF00000000000000000000000000000000000C4
+:103D000000000000000000000000000000000000B3
+:103D100000000000000000000000000000000000A3
+:103D20000000000000000000000000000000000093
+:103D30000000000000000000000000000000000083
+:103D40000000000000000000000000000000000073
+:103D50000000000000000000000000000000000063
+:103D60000000000000000000000000000000000053
+:103D70000000000000000000000000000000000043
+:103D80000000000000000000000000000000000033
+:103D90000000000000000000000000000000000023
+:103DA0000000000000000000000000000000000013
+:103DB0000000000000000000000000000000000003
+:103DC00000000000000000000000000000000000F3
+:103DD00000000000000000000000000000000000E3
+:103DE00000000000000000000000000000000000D3
+:103DF00000000000000000000000000000000000C3
+:103E000000000000000000000000000000000000B2
+:103E100000000000000000000000000000000000A2
+:103E20000000000000000000000000000000000092
+:103E30000000000000000000000000000000000082
+:103E40000000000000000000000000000000000072
+:103E50000000000000000000000000000000000062
+:103E60000000000000000000000000000000000052
+:103E70000000000000000000000000000000000042
+:103E80000000000000000000000000000000000032
+:103E90000000000000000000000000000000000022
+:103EA0000000000000000000000000000000000012
+:103EB0000000000000000000000000000000000002
+:103EC00000000000000000000000000000000000F2
+:103ED00000000000000000000000000000000000E2
+:103EE00000000000000000000000000000000000D2
+:103EF00000000000000000000000000000000000C2
+:103F000000000000000000000000000000000000B1
+:103F100000000000000000000000000000000000A1
+:103F20000000000000000000000000000000000091
+:103F30000000000000000000000000000000000081
+:103F40000000000000000000000000000000000071
+:103F50000000000000000000000000000000000061
+:103F60000000000000000000000000000000000051
+:103F70000000000000000000000000000000000041
+:103F80000000000000000000000000000000000031
+:103F90000000000000000000000000000000000021
+:103FA0000000000000000000000000000000000011
+:103FB0000000000000000000000000000000000001
+:103FC00000000000000000000000000000000000F1
+:103FD00000000000000000000000000000000000E1
+:103FE00000000000000000000000000000000000D1
+:103FF00000000000000000000000000000000000C1
+:1040000000000000000000000000000000000000B0
+:1040100000000000000000000000000000000000A0
+:104020000000000000000000000000000000000090
+:10403000000000000000000000000000000300FC81
+:104040000000000000000000000000000000000070
+:104050000000000000000000000000000000000060
+:104060000000000000000000000000000000000050
+:104070000000000000000000000000000000000040
+:104080000000000000000000000000000000000030
+:104090000000000000000000000000000000000020
+:1040A0000000000000000000000000000000000010
+:1040B0000000000000000000000000000000000000
+:1040C00000000000000000000000000000000000F0
+:1040D00000000000000000000000000000000000E0
+:1040E00000000000000000000000000000000000D0
+:1040F00000000000000000000000000000000000C0
+:1041000000000000000000000000000000000000AF
+:10411000000000000000000000000000000000009F
+:10412000000000000000000000000000000000008F
+:10413000000000000000000000000000000000007F
+:10414000000000000000000000000000000000006F
+:10415000000000000000000000000000000000005F
+:10416000000000000000000000000000000000004F
+:10417000000000000000000000000000000000003F
+:10418000000000000000000000000000000000002F
+:10419000000000000000000000000000000000001F
+:1041A000000000000000000000000000000000000F
+:1041B00000000000000000000000000000000000FF
+:1041C00000000000000000000000000000000000EF
+:1041D00000000000000000000000000000000000DF
+:1041E00000000000000000000000000000000000CF
+:1041F00000000000000000000000000000000000BF
+:1042000000000000000000000000000000000000AE
+:10421000000000000000000000000000000000009E
+:10422000000000000000000000000000000000008E
+:10423000000000000000000000000000000000007E
+:10424000000000000000000000000000000000006E
+:10425000000000000000000000000000000000005E
+:10426000000000000000000000000000000000004E
+:10427000000000000000000000000000000000003E
+:10428000000000000000000000000000000000002E
+:10429000000000000000000000000000000000001E
+:1042A000000000000000000000000000000000000E
+:1042B00000000000000000000000000000000000FE
+:1042C00000000000000000000000000000000000EE
+:1042D00000000000000000000000000000000000DE
+:1042E00000000000000000000000000000000000CE
+:1042F00000000000000000000000000000000000BE
+:1043000000000000000000000000000000000000AD
+:10431000000000000000000000000000000000009D
+:10432000000000000000000000000000000000008D
+:10433000000000000000000000000000000000007D
+:10434000000000000000000000000000000000006D
+:10435000000000000000000000000000000000005D
+:10436000000000000000000000000000000000004D
+:10437000000000000000000000000000000000003D
+:10438000000000000000000000000000000000002D
+:10439000000000000000000000000000000000001D
+:1043A000000000000000000000000000000000000D
+:1043B00000000000000000000000000000000000FD
+:1043C00000000000000000000000000000000000ED
+:1043D00000000000000000000000000000000000DD
+:1043E00000000000000000000000000000000000CD
+:1043F00000000000000000000000000000000000BD
+:1044000000000000000000000000000000000000AC
+:10441000000000000000000000000000000000009C
+:10442000000000000000000000000000000000008C
+:10443000000000000000000000000000000300FC7D
+:10444000000000000000000000000000000000006C
+:10445000000000000000000000000000000000005C
+:10446000000000000000000000000000000000004C
+:10447000000000000000000000000000000000003C
+:10448000000000000000000000000000000000002C
+:10449000000000000000000000000000000000001C
+:1044A000000000000000000000000000000000000C
+:1044B00000000000000000000000000000000000FC
+:1044C00000000000000000000000000000000000EC
+:1044D00000000000000000000000000000000000DC
+:1044E00000000000000000000000000000000000CC
+:1044F00000000000000000000000000000000000BC
+:1045000000000000000000000000000000000000AB
+:10451000000000000000000000000000000000009B
+:10452000000000000000000000000000000000008B
+:10453000000000000000000000000000000000007B
+:10454000000000000000000000000000000000006B
+:10455000000000000000000000000000000000005B
+:10456000000000000000000000000000000000004B
+:10457000000000000000000000000000000000003B
+:10458000000000000000000000000000000000002B
+:10459000000000000000000000000000000000001B
+:1045A000000000000000000000000000000000000B
+:1045B00000000000000000000000000000000000FB
+:1045C00000000000000000000000000000000000EB
+:1045D00000000000000000000000000000000000DB
+:1045E00000000000000000000000000000000000CB
+:1045F00000000000000000000000000000000000BB
+:1046000000000000000000000000000000000000AA
+:10461000000000000000000000000000000000009A
+:10462000000000000000000000000000000000008A
+:10463000000000000000000000000000000000007A
+:10464000000000000000000000000000000000006A
+:10465000000000000000000000000000000000005A
+:10466000000000000000000000000000000000004A
+:10467000000000000000000000000000000000003A
+:10468000000000000000000000000000000000002A
+:10469000000000000000000000000000000000001A
+:1046A000000000000000000000000000000000000A
+:1046B00000000000000000000000000000000000FA
+:1046C00000000000000000000000000000000000EA
+:1046D00000000000000000000000000000000000DA
+:1046E00000000000000000000000000000000000CA
+:1046F00000000000000000000000000000000000BA
+:1047000000000000000000000000000000000000A9
+:104710000000000000000000000000000000000099
+:104720000000000000000000000000000000000089
+:104730000000000000000000000000000000000079
+:104740000000000000000000000000000000000069
+:104750000000000000000000000000000000000059
+:104760000000000000000000000000000000000049
+:104770000000000000000000000000000000000039
+:104780000000000000000000000000000000000029
+:104790000000000000000000000000000000000019
+:1047A0000000000000000000000000000000000009
+:1047B00000000000000000000000000000000000F9
+:1047C00000000000000000000000000000000000E9
+:1047D00000000000000000000000000000000000D9
+:1047E00000000000000000000000000000000000C9
+:1047F00000000000000000000000000000000000B9
+:1048000000000000000000000000000000000000A8
+:104810000000000000000000000000000000000098
+:104820000000000000000000000000000000000088
+:10483000000000000000000000000000000300FC79
+:104840000000000000000000000000000000000068
+:104850000000000000000000000000000000000058
+:104860000000000000000000000000000000000048
+:104870000000000000000000000000000000000038
+:104880000000000000000000000000000000000028
+:104890000000000000000000000000000000000018
+:1048A0000000000000000000000000000000000008
+:1048B00000000000000000000000000000000000F8
+:1048C00000000000000000000000000000000000E8
+:1048D00000000000000000000000000000000000D8
+:1048E00000000000000000000000000000000000C8
+:1048F00000000000000000000000000000000000B8
+:1049000000000000000000000000000000000000A7
+:104910000000000000000000000000000000000097
+:104920000000000000000000000000000000000087
+:104930000000000000000000000000000000000077
+:104940000000000000000000000000000000000067
+:104950000000000000000000000000000000000057
+:104960000000000000000000000000000000000047
+:104970000000000000000000000000000000000037
+:104980000000000000000000000000000000000027
+:104990000000000000000000000000000000000017
+:1049A0000000000000000000000000000000000007
+:1049B00000000000000000000000000000000000F7
+:1049C00000000000000000000000000000000000E7
+:1049D00000000000000000000000000000000000D7
+:1049E00000000000000000000000000000000000C7
+:1049F00000000000000000000000000000000000B7
+:104A000000000000000000000000000000000000A6
+:104A10000000000000000000000000000000000096
+:104A20000000000000000000000000000000000086
+:104A30000000000000000000000000000000000076
+:104A40000000000000000000000000000000000066
+:104A50000000000000000000000000000000000056
+:104A60000000000000000000000000000000000046
+:104A70000000000000000000000000000000000036
+:104A80000000000000000000000000000000000026
+:104A90000000000000000000000000000000000016
+:104AA0000000000000000000000000000000000006
+:104AB00000000000000000000000000000000000F6
+:104AC00000000000000000000000000000000000E6
+:104AD00000000000000000000000000000000000D6
+:104AE00000000000000000000000000000000000C6
+:104AF00000000000000000000000000000000000B6
+:104B000000000000000000000000000000000000A5
+:104B10000000000000000000000000000000000095
+:104B20000000000000000000000000000000000085
+:104B30000000000000000000000000000000000075
+:104B40000000000000000000000000000000000065
+:104B50000000000000000000000000000000000055
+:104B60000000000000000000000000000000000045
+:104B70000000000000000000000000000000000035
+:104B80000000000000000000000000000000000025
+:104B90000000000000000000000000000000000015
+:104BA0000000000000000000000000000000000005
+:104BB00000000000000000000000000000000000F5
+:104BC00000000000000000000000000000000000E5
+:104BD00000000000000000000000000000000000D5
+:104BE00000000000000000000000000000000000C5
+:104BF00000000000000000000000000000000000B5
+:104C0000AA00555555555555555555555555505A54
+:104C10005A5A0AAAAAAAAAAAAAAAAAA0A0AFA0A057
+:104C2000A0A0A00000F000000000000000000000B4
+:104C30000000000000000000000000000000000074
+:104C40000000000000000000000000000000000064
+:104C50000000000000000000000000000000000054
+:104C60000000000000000000000000000000000044
+:104C70000000000000000000000000000000000034
+:104C80000000000000000000000000000000000024
+:104C90000000000000000000000000000000000014
+:104CA0000000000000000000000000000000000004
+:104CB00000000000000000000000000000000000F4
+:104CC00000000000000000000000000000000000E4
+:104CD00000000000000000000000000000000000D4
+:104CE00000000000000000000000000000000000C4
+:104CF00000000000000000000000000000000000B4
+:104D000000000000000000000000000000000000A3
+:104D10000000000000000000000000000000000093
+:104D20000000000000000000000000000000000083
+:104D30000000000000000000000000000000000073
+:104D40000000000000000000000000000000000063
+:104D50000000000000000000000000000000000053
+:104D60000000000000000000000000000000000043
+:104D70000000000000000000000000000000000033
+:104D80000000000000000000000000000000000023
+:104D90000000000000000000000000000000000013
+:104DA0000000000000000000000000000000000003
+:104DB00000000000000000000000000000000000F3
+:104DC00000000000000000000000000000000000E3
+:104DD00000000000000000000000000000000000D3
+:104DE00000000000000000000000000000000000C3
+:104DF00000000000000000000000000000000000B3
+:104E000000000000000000000000000000000000A2
+:104E10000000000000000000000000000000000092
+:104E20000000000000000000000000000000000082
+:104E30000000000000000000000000000000000072
+:104E40000000000000000000000000000000000062
+:104E50000000000000000000000000000000000052
+:104E60000000000000000000000000000000000042
+:104E70000000000000000000000000000000000032
+:104E80000000000000000000000000000000000022
+:104E90000000000000000000000000000000000012
+:104EA0000000000000000000000000000000000002
+:104EB00000000000000000000000000000000000F2
+:104EC00000000000000000000000000000000000E2
+:104ED00000000000000000000000000000000000D2
+:104EE00000000000000000000000000000000000C2
+:104EF00000000000000000000000000000000000B2
+:104F000000000000000000000000000000000000A1
+:104F10000000000000000000000000000000000091
+:104F20000000000000000000000000000000000081
+:104F30000000000000000000000000000000000071
+:104F40000000000000000000000000000000000061
+:104F50000000000000000000000000000000000051
+:104F60000000000000000000000000000000000041
+:104F70000000000000000000000000000000000031
+:104F80000000000000000000000000000000000021
+:104F90000000000000000000000000000000000011
+:104FA0000000000000000000000000000000000001
+:104FB00000000000000000000000000000000000F1
+:104FC00000000000000000000000000000000000E1
+:104FD00000000000000000000000000000000000D1
+:104FE00000000000000000000000000000000000C1
+:104FF00000000000000000000000000000000000B1
+:1050000055005500550055005500550055005500F8
+:1050100055005500550055005500550055005500E8
+:1050200055005500550055005500550055005500D8
+:105030005500AA00AA00AA00AA00AA00AA00AA0075
+:10504000AA00AA00AA00AA00AA00AA00AA00AA0010
+:10505000AA00AA00AA00AA00AA00AA00AA00AA0000
+:10506000AA00AA00FF0000000000000000000000ED
+:105070000000000000000000000000000000000030
+:105080000000000000000000000000000000000020
+:105090000000000000000000000000000000000010
+:1050A0000000000000000000000000000000000000
+:1050B00000000000000000000000000000000000F0
+:1050C00000000000000000000000000000000000E0
+:1050D00000000000000000000000000000000000D0
+:1050E00000000000000000000000000000000000C0
+:1050F00000000000000000000000000000000000B0
+:10510000000000000000000000000000000000009F
+:10511000000000000000000000000000000000008F
+:10512000000000000000000000000000000000007F
+:10513000000000000000000000000000000000006F
+:10514000000000000000000000000000000000005F
+:10515000000000000000000000000000000000004F
+:10516000000000000000000000000000000000003F
+:10517000000000000000000000000000000000002F
+:10518000000000000000000000000000000000001F
+:10519000000000000000000000000000000000000F
+:1051A00000000000000000000000000000000000FF
+:1051B00000000000000000000000000000000000EF
+:1051C00000000000000000000000000000000000DF
+:1051D00000000000000000000000000000000000CF
+:1051E00000000000000000000000000000000000BF
+:1051F00000000000000000000000000000000000AF
+:10520000000000000000000000000000000000009E
+:10521000000000000000000000000000000000008E
+:10522000000000000000000000000000000000007E
+:10523000000000000000000000000000000000006E
+:10524000000000000000000000000000000000005E
+:10525000000000000000000000000000000000004E
+:10526000000000000000000000000000000000003E
+:10527000000000000000000000000000000000002E
+:10528000000000000000000000000000000000001E
+:10529000000000000000000000000000000000000E
+:1052A00000000000000000000000000000000000FE
+:1052B00000000000000000000000000000000000EE
+:1052C00000000000000000000000000000000000DE
+:1052D00000000000000000000000000000000000CE
+:1052E00000000000000000000000000000000000BE
+:1052F00000000000000000000000000000000000AE
+:10530000000000000000000000000000000000009D
+:10531000000000000000000000000000000000008D
+:10532000000000000000000000000000000000007D
+:10533000000000000000000000000000000000006D
+:10534000000000000000000000000000000000005D
+:10535000000000000000000000000000000000004D
+:10536000000000000000000000000000000000003D
+:10537000000000000000000000000000000000002D
+:10538000000000000000000000000000000000001D
+:10539000000000000000000000000000000000000D
+:1053A00000000000000000000000000000000000FD
+:1053B00000000000000000000000000000000000ED
+:1053C00000000000000000000000000000000000DD
+:1053D00000000000000000000000000000000000CD
+:1053E00000000000000000000000000000000000BD
+:1053F00000000000000000000000000000000000AD
+:10540000000000000000000000000000000000009C
+:10541000000000000000000000000000000000008C
+:10542000000000000000000000000000000000007C
+:10543000000000000000000000000000000000006C
+:10544000000000000000000000000000000000005C
+:10545000000000000000000000000000000000004C
+:1054600000000000FF00000000000000000000003D
+:10547000000000000000000000000000000000002C
+:10548000000000000000000000000000000000001C
+:10549000000000000000000000000000000000000C
+:1054A00000000000000000000000000000000000FC
+:1054B00000000000000000000000000000000000EC
+:1054C00000000000000000000000000000000000DC
+:1054D00000000000000000000000000000000000CC
+:1054E00000000000000000000000000000000000BC
+:1054F00000000000000000000000000000000000AC
+:10550000000000000000000000000000000000009B
+:10551000000000000000000000000000000000008B
+:10552000000000000000000000000000000000007B
+:10553000000000000000000000000000000000006B
+:10554000000000000000000000000000000000005B
+:10555000000000000000000000000000000000004B
+:10556000000000000000000000000000000000003B
+:10557000000000000000000000000000000000002B
+:10558000000000000000000000000000000000001B
+:10559000000000000000000000000000000000000B
+:1055A00000000000000000000000000000000000FB
+:1055B00000000000000000000000000000000000EB
+:1055C00000000000000000000000000000000000DB
+:1055D00000000000000000000000000000000000CB
+:1055E00000000000000000000000000000000000BB
+:1055F00000000000000000000000000000000000AB
+:10560000000000000000000000000000000000009A
+:10561000000000000000000000000000000000008A
+:10562000000000000000000000000000000000007A
+:10563000000000000000000000000000000000006A
+:10564000000000000000000000000000000000005A
+:10565000000000000000000000000000000000004A
+:10566000000000000000000000000000000000003A
+:10567000000000000000000000000000000000002A
+:10568000000000000000000000000000000000001A
+:10569000000000000000000000000000000000000A
+:1056A00000000000000000000000000000000000FA
+:1056B00000000000000000000000000000000000EA
+:1056C00000000000000000000000000000000000DA
+:1056D00000000000000000000000000000000000CA
+:1056E00000000000000000000000000000000000BA
+:1056F00000000000000000000000000000000000AA
+:105700000000000000000000000000000000000099
+:105710000000000000000000000000000000000089
+:105720000000000000000000000000000000000079
+:105730000000000000000000000000000000000069
+:105740000000000000000000000000000000000059
+:105750000000000000000000000000000000000049
+:105760000000000000000000000000000000000039
+:105770000000000000000000000000000000000029
+:105780000000000000000000000000000000000019
+:105790000000000000000000000000000000000009
+:1057A00000000000000000000000000000000000F9
+:1057B00000000000000000000000000000000000E9
+:1057C00000000000000000000000000000000000D9
+:1057D00000000000000000000000000000000000C9
+:1057E00000000000000000000000000000000000B9
+:1057F00000000000000000000000000000000000A9
+:1058000055005500550055005500550055005500F0
+:1058100055005500550055005500550055005500E0
+:1058200055005500550055005500550055005500D0
+:105830005500AA00AA00AA00AA00AA00AA00AA006D
+:10584000AA00AA00AA00AA00AA00AA00AA00AA0008
+:10585000AA00AA00AA00AA00AA00AA00AA00AA00F8
+:10586000AA00AA00FF0000000000000000000000E5
+:105870000000000000000000000000000000000028
+:105880000000000000000000000000000000000018
+:105890000000000000000000000000000000000008
+:1058A00000000000000000000000000000000000F8
+:1058B00000000000000000000000000000000000E8
+:1058C00000000000000000000000000000000000D8
+:1058D00000000000000000000000000000000000C8
+:1058E00000000000000000000000000000000000B8
+:1058F00000000000000000000000000000000000A8
+:105900000000000000000000000000000000000097
+:105910000000000000000000000000000000000087
+:105920000000000000000000000000000000000077
+:105930000000000000000000000000000000000067
+:105940000000000000000000000000000000000057
+:105950000000000000000000000000000000000047
+:105960000000000000000000000000000000000037
+:105970000000000000000000000000000000000027
+:105980000000000000000000000000000000000017
+:105990000000000000000000000000000000000007
+:1059A00000000000000000000000000000000000F7
+:1059B00000000000000000000000000000000000E7
+:1059C00000000000000000000000000000000000D7
+:1059D00000000000000000000000000000000000C7
+:1059E00000000000000000000000000000000000B7
+:1059F00000000000000000000000000000000000A7
+:105A00000000000000000000000000000000000096
+:105A10000000000000000000000000000000000086
+:105A20000000000000000000000000000000000076
+:105A30000000000000000000000000000000000066
+:105A40000000000000000000000000000000000056
+:105A50000000000000000000000000000000000046
+:105A60000000000000000000000000000000000036
+:105A70000000000000000000000000000000000026
+:105A80000000000000000000000000000000000016
+:105A90000000000000000000000000000000000006
+:105AA00000000000000000000000000000000000F6
+:105AB00000000000000000000000000000000000E6
+:105AC00000000000000000000000000000000000D6
+:105AD00000000000000000000000000000000000C6
+:105AE00000000000000000000000000000000000B6
+:105AF00000000000000000000000000000000000A6
+:105B00000000000000000000000000000000000095
+:105B10000000000000000000000000000000000085
+:105B20000000000000000000000000000000000075
+:105B30000000000000000000000000000000000065
+:105B40000000000000000000000000000000000055
+:105B50000000000000000000000000000000000045
+:105B60000000000000000000000000000000000035
+:105B70000000000000000000000000000000000025
+:105B80000000000000000000000000000000000015
+:105B90000000000000000000000000000000000005
+:105BA00000000000000000000000000000000000F5
+:105BB00000000000000000000000000000000000E5
+:105BC00000000000000000000000000000000000D5
+:105BD00000000000000000000000000000000000C5
+:105BE00000000000000000000000000000000000B5
+:105BF00000000000000000000000000000000000A5
+:105C00000000000000000000000000000000000094
+:105C10000000000000000000000000000000000084
+:105C20000000000000000000000000000000000074
+:105C30000000000000000000000000000000000064
+:105C40000000000000000000000000000000000054
+:105C50000000000000000000000000000000000044
+:105C600000000000FF000000000000000000000035
+:105C70000000000000000000000000000000000024
+:105C80000000000000000000000000000000000014
+:105C90000000000000000000000000000000000004
+:105CA00000000000000000000000000000000000F4
+:105CB00000000000000000000000000000000000E4
+:105CC00000000000000000000000000000000000D4
+:105CD00000000000000000000000000000000000C4
+:105CE00000000000000000000000000000000000B4
+:105CF00000000000000000000000000000000000A4
+:105D00000000000000000000000000000000000093
+:105D10000000000000000000000000000000000083
+:105D20000000000000000000000000000000000073
+:105D30000000000000000000000000000000000063
+:105D40000000000000000000000000000000000053
+:105D50000000000000000000000000000000000043
+:105D60000000000000000000000000000000000033
+:105D70000000000000000000000000000000000023
+:105D80000000000000000000000000000000000013
+:105D90000000000000000000000000000000000003
+:105DA00000000000000000000000000000000000F3
+:105DB00000000000000000000000000000000000E3
+:105DC00000000000000000000000000000000000D3
+:105DD00000000000000000000000000000000000C3
+:105DE00000000000000000000000000000000000B3
+:105DF00000000000000000000000000000000000A3
+:105E00000000000000000000000000000000000092
+:105E10000000000000000000000000000000000082
+:105E20000000000000000000000000000000000072
+:105E30000000000000000000000000000000000062
+:105E40000000000000000000000000000000000052
+:105E50000000000000000000000000000000000042
+:105E60000000000000000000000000000000000032
+:105E70000000000000000000000000000000000022
+:105E80000000000000000000000000000000000012
+:105E90000000000000000000000000000000000002
+:105EA00000000000000000000000000000000000F2
+:105EB00000000000000000000000000000000000E2
+:105EC00000000000000000000000000000000000D2
+:105ED00000000000000000000000000000000000C2
+:105EE00000000000000000000000000000000000B2
+:105EF00000000000000000000000000000000000A2
+:105F00000000000000000000000000000000000091
+:105F10000000000000000000000000000000000081
+:105F20000000000000000000000000000000000071
+:105F30000000000000000000000000000000000061
+:105F40000000000000000000000000000000000051
+:105F50000000000000000000000000000000000041
+:105F60000000000000000000000000000000000031
+:105F70000000000000000000000000000000000021
+:105F80000000000000000000000000000000000011
+:105F90000000000000000000000000000000000001
+:105FA00000000000000000000000000000000000F1
+:105FB00000000000000000000000000000000000E1
+:105FC00000000000000000000000000000000000D1
+:105FD00000000000000000000000000000000000C1
+:105FE00000000000000000000000000000000000B1
+:105FF00000000000000000000000000000000000A1
+:1060000055005500550055005500550055005500E8
+:1060100055005500550055005500550055005500D8
+:1060200055005500550055005500550055005500C8
+:106030005500AA00AA00AA00AA00AA00AA00AA0065
+:10604000AA00AA00AA00AA00AA00AA00AA00AA0000
+:10605000AA00AA00AA00AA00AA00AA00AA00AA00F0
+:10606000AA00AA00FF0000000000000000000000DD
+:106070000000000000000000000000000000000020
+:106080000000000000000000000000000000000010
+:106090000000000000000000000000000000000000
+:1060A00000000000000000000000000000000000F0
+:1060B00000000000000000000000000000000000E0
+:1060C00000000000000000000000000000000000D0
+:1060D00000000000000000000000000000000000C0
+:1060E00000000000000000000000000000000000B0
+:1060F00000000000000000000000000000000000A0
+:10610000000000000000000000000000000000008F
+:10611000000000000000000000000000000000007F
+:10612000000000000000000000000000000000006F
+:10613000000000000000000000000000000000005F
+:10614000000000000000000000000000000000004F
+:10615000000000000000000000000000000000003F
+:10616000000000000000000000000000000000002F
+:10617000000000000000000000000000000000001F
+:10618000000000000000000000000000000000000F
+:1061900000000000000000000000000000000000FF
+:1061A00000000000000000000000000000000000EF
+:1061B00000000000000000000000000000000000DF
+:1061C00000000000000000000000000000000000CF
+:1061D00000000000000000000000000000000000BF
+:1061E00000000000000000000000000000000000AF
+:1061F000000000000000000000000000000000009F
+:10620000000000000000000000000000000000008E
+:10621000000000000000000000000000000000007E
+:10622000000000000000000000000000000000006E
+:10623000000000000000000000000000000000005E
+:10624000000000000000000000000000000000004E
+:10625000000000000000000000000000000000003E
+:10626000000000000000000000000000000000002E
+:10627000000000000000000000000000000000001E
+:10628000000000000000000000000000000000000E
+:1062900000000000000000000000000000000000FE
+:1062A00000000000000000000000000000000000EE
+:1062B00000000000000000000000000000000000DE
+:1062C00000000000000000000000000000000000CE
+:1062D00000000000000000000000000000000000BE
+:1062E00000000000000000000000000000000000AE
+:1062F000000000000000000000000000000000009E
+:10630000000000000000000000000000000000008D
+:10631000000000000000000000000000000000007D
+:10632000000000000000000000000000000000006D
+:10633000000000000000000000000000000000005D
+:10634000000000000000000000000000000000004D
+:10635000000000000000000000000000000000003D
+:10636000000000000000000000000000000000002D
+:10637000000000000000000000000000000000001D
+:10638000000000000000000000000000000000000D
+:1063900000000000000000000000000000000000FD
+:1063A00000000000000000000000000000000000ED
+:1063B00000000000000000000000000000000000DD
+:1063C00000000000000000000000000000000000CD
+:1063D00000000000000000000000000000000000BD
+:1063E00000000000000000000000000000000000AD
+:1063F000000000000000000000000000000000009D
+:10640000000000000000000000000000000000008C
+:10641000000000000000000000000000000000007C
+:10642000000000000000000000000000000000006C
+:10643000000000000000000000000000000000005C
+:10644000000000000000000000000000000000004C
+:10645000000000000000000000000000000000003C
+:106460000000000000FF000000000000000000002D
+:10647000000000000000000000000000000000001C
+:10648000000000000000000000000000000000000C
+:1064900000000000000000000000000000000000FC
+:1064A00000000000000000000000000000000000EC
+:1064B00000000000000000000000000000000000DC
+:1064C00000000000000000000000000000000000CC
+:1064D00000000000000000000000000000000000BC
+:1064E00000000000000000000000000000000000AC
+:1064F000000000000000000000000000000000009C
+:10650000000000000000000000000000000000008B
+:10651000000000000000000000000000000000007B
+:10652000000000000000000000000000000000006B
+:10653000000000000000000000000000000000005B
+:10654000000000000000000000000000000000004B
+:10655000000000000000000000000000000000003B
+:10656000000000000000000000000000000000002B
+:10657000000000000000000000000000000000001B
+:10658000000000000000000000000000000000000B
+:1065900000000000000000000000000000000000FB
+:1065A00000000000000000000000000000000000EB
+:1065B00000000000000000000000000000000000DB
+:1065C00000000000000000000000000000000000CB
+:1065D00000000000000000000000000000000000BB
+:1065E00000000000000000000000000000000000AB
+:1065F000000000000000000000000000000000009B
+:10660000000000000000000000000000000000008A
+:10661000000000000000000000000000000000007A
+:10662000000000000000000000000000000000006A
+:10663000000000000000000000000000000000005A
+:10664000000000000000000000000000000000004A
+:10665000000000000000000000000000000000003A
+:10666000000000000000000000000000000000002A
+:10667000000000000000000000000000000000001A
+:10668000000000000000000000000000000000000A
+:1066900000000000000000000000000000000000FA
+:1066A00000000000000000000000000000000000EA
+:1066B00000000000000000000000000000000000DA
+:1066C00000000000000000000000000000000000CA
+:1066D00000000000000000000000000000000000BA
+:1066E00000000000000000000000000000000000AA
+:1066F000000000000000000000000000000000009A
+:106700000000000000000000000000000000000089
+:106710000000000000000000000000000000000079
+:106720000000000000000000000000000000000069
+:106730000000000000000000000000000000000059
+:106740000000000000000000000000000000000049
+:106750000000000000000000000000000000000039
+:106760000000000000000000000000000000000029
+:106770000000000000000000000000000000000019
+:106780000000000000000000000000000000000009
+:1067900000000000000000000000000000000000F9
+:1067A00000000000000000000000000000000000E9
+:1067B00000000000000000000000000000000000D9
+:1067C00000000000000000000000000000000000C9
+:1067D00000000000000000000000000000000000B9
+:1067E00000000000000000000000000000000000A9
+:1067F0000000000000000000000000000000000099
+:1068000055005500550055005500550055005500E0
+:1068100055005500550055005500550055005500D0
+:1068200055005500550055005500550055005500C0
+:106830005500AA00AA00AA00AA00AA00AA00AA005D
+:10684000AA00AA00AA00AA00AA00AA00AA00AA00F8
+:10685000AA00AA00AA00AA00AA00AA00AA00AA00E8
+:10686000AA00AA00FF0000000000000000000000D5
+:106870000000000000000000000000000000000018
+:106880000000000000000000000000000000000008
+:1068900000000000000000000000000000000000F8
+:1068A00000000000000000000000000000000000E8
+:1068B00000000000000000000000000000000000D8
+:1068C00000000000000000000000000000000000C8
+:1068D00000000000000000000000000000000000B8
+:1068E00000000000000000000000000000000000A8
+:1068F0000000000000000000000000000000000098
+:106900000000000000000000000000000000000087
+:106910000000000000000000000000000000000077
+:106920000000000000000000000000000000000067
+:106930000000000000000000000000000000000057
+:106940000000000000000000000000000000000047
+:106950000000000000000000000000000000000037
+:106960000000000000000000000000000000000027
+:106970000000000000000000000000000000000017
+:106980000000000000000000000000000000000007
+:1069900000000000000000000000000000000000F7
+:1069A00000000000000000000000000000000000E7
+:1069B00000000000000000000000000000000000D7
+:1069C00000000000000000000000000000000000C7
+:1069D00000000000000000000000000000000000B7
+:1069E00000000000000000000000000000000000A7
+:1069F0000000000000000000000000000000000097
+:106A00000000000000000000000000000000000086
+:106A10000000000000000000000000000000000076
+:106A20000000000000000000000000000000000066
+:106A30000000000000000000000000000000000056
+:106A40000000000000000000000000000000000046
+:106A50000000000000000000000000000000000036
+:106A60000000000000000000000000000000000026
+:106A70000000000000000000000000000000000016
+:106A80000000000000000000000000000000000006
+:106A900000000000000000000000000000000000F6
+:106AA00000000000000000000000000000000000E6
+:106AB00000000000000000000000000000000000D6
+:106AC00000000000000000000000000000000000C6
+:106AD00000000000000000000000000000000000B6
+:106AE00000000000000000000000000000000000A6
+:106AF0000000000000000000000000000000000096
+:106B00000000000000000000000000000000000085
+:106B10000000000000000000000000000000000075
+:106B20000000000000000000000000000000000065
+:106B30000000000000000000000000000000000055
+:106B40000000000000000000000000000000000045
+:106B50000000000000000000000000000000000035
+:106B60000000000000000000000000000000000025
+:106B70000000000000000000000000000000000015
+:106B80000000000000000000000000000000000005
+:106B900000000000000000000000000000000000F5
+:106BA00000000000000000000000000000000000E5
+:106BB00000000000000000000000000000000000D5
+:106BC00000000000000000000000000000000000C5
+:106BD00000000000000000000000000000000000B5
+:106BE00000000000000000000000000000000000A5
+:106BF0000000000000000000000000000000000095
+:106C00000000000000000000000000000000000084
+:106C10000000000000000000000000000000000074
+:106C20000000000000000000000000000000000064
+:106C30000000000000000000000000000000000054
+:106C40000000000000000000000000000000000044
+:106C50000000000000000000000000000000000034
+:106C60000000000000FF0000000000000000000025
+:106C70000000000000000000000000000000000014
+:106C80000000000000000000000000000000000004
+:106C900000000000000000000000000000000000F4
+:106CA00000000000000000000000000000000000E4
+:106CB00000000000000000000000000000000000D4
+:106CC00000000000000000000000000000000000C4
+:106CD00000000000000000000000000000000000B4
+:106CE00000000000000000000000000000000000A4
+:106CF0000000000000000000000000000000000094
+:106D00000000000000000000000000000000000083
+:106D10000000000000000000000000000000000073
+:106D20000000000000000000000000000000000063
+:106D30000000000000000000000000000000000053
+:106D40000000000000000000000000000000000043
+:106D50000000000000000000000000000000000033
+:106D60000000000000000000000000000000000023
+:106D70000000000000000000000000000000000013
+:106D80000000000000000000000000000000000003
+:106D900000000000000000000000000000000000F3
+:106DA00000000000000000000000000000000000E3
+:106DB00000000000000000000000000000000000D3
+:106DC00000000000000000000000000000000000C3
+:106DD00000000000000000000000000000000000B3
+:106DE00000000000000000000000000000000000A3
+:106DF0000000000000000000000000000000000093
+:106E00000000000000000000000000000000000082
+:106E10000000000000000000000000000000000072
+:106E20000000000000000000000000000000000062
+:106E30000000000000000000000000000000000052
+:106E40000000000000000000000000000000000042
+:106E50000000000000000000000000000000000032
+:106E60000000000000000000000000000000000022
+:106E70000000000000000000000000000000000012
+:106E80000000000000000000000000000000000002
+:106E900000000000000000000000000000000000F2
+:106EA00000000000000000000000000000000000E2
+:106EB00000000000000000000000000000000000D2
+:106EC00000000000000000000000000000000000C2
+:106ED00000000000000000000000000000000000B2
+:106EE00000000000000000000000000000000000A2
+:106EF0000000000000000000000000000000000092
+:106F00000000000000000000000000000000000081
+:106F10000000000000000000000000000000000071
+:106F20000000000000000000000000000000000061
+:106F30000000000000000000000000000000000051
+:106F40000000000000000000000000000000000041
+:106F50000000000000000000000000000000000031
+:106F60000000000000000000000000000000000021
+:106F70000000000000000000000000000000000011
+:106F80000000000000000000000000000000000001
+:106F900000000000000000000000000000000000F1
+:106FA00000000000000000000000000000000000E1
+:106FB00000000000000000000000000000000000D1
+:106FC00000000000000000000000000000000000C1
+:106FD00000000000000000000000000000000000B1
+:106FE00000000000000000000000000000000000A1
+:106FF0000000000000000000000000000000000091
+:107000005A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5AE0
+:107010000000000000000000000000000000000070
+:107020000000000000000000000000000000000060
+:107030000000000000000000000000000000000050
+:107040000000000000000000000000000000000040
+:107050000000000000000000000000000000000030
+:107060000000000000000000000000000000000020
+:107070000000000000000000000000000000000010
+:107080000000000000000000000000000000000000
+:1070900000000000000000000000000000000000F0
+:1070A00000000000000000000000000000000000E0
+:1070B00000000000000000000000000000000000D0
+:1070C00000000000000000000000000000000000C0
+:1070D00000000000000000000000000000000000B0
+:1070E00000000000000000000000000000000000A0
+:1070F0000000000000000000000000000000000090
+:107100005A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5ADF
+:10711000000000000000000000000000000000006F
+:10712000000000000000000000000000000000005F
+:10713000000000000000000000000000000000004F
+:10714000000000000000000000000000000000003F
+:10715000000000000000000000000000000000002F
+:10716000000000000000000000000000000000001F
+:10717000000000000000000000000000000000000F
+:1071800000000000000000000000000000000000FF
+:1071900000000000000000000000000000000000EF
+:1071A00000000000000000000000000000000000DF
+:1071B00000000000000000000000000000000000CF
+:1071C00000000000000000000000000000000000BF
+:1071D00000000000000000000000000000000000AF
+:1071E000000000000000000000000000000000009F
+:1071F000000000000000000000000000000000008F
+:107200005A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5ADE
+:10721000000000000000000000000000000000006E
+:10722000000000000000000000000000000000005E
+:10723000000000000000000000000000000000004E
+:10724000000000000000000000000000000000003E
+:10725000000000000000000000000000000000002E
+:10726000000000000000000000000000000000001E
+:10727000000000000000000000000000000000000E
+:1072800000000000000000000000000000000000FE
+:1072900000000000000000000000000000000000EE
+:1072A00000000000000000000000000000000000DE
+:1072B00000000000000000000000000000000000CE
+:1072C00000000000000000000000000000000000BE
+:1072D00000000000000000000000000000000000AE
+:1072E000000000000000000000000000000000009E
+:1072F000000000000000000000000000000000008E
+:107300005A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5ADD
+:10731000000000000000000000000000000000006D
+:10732000000000000000000000000000000000005D
+:10733000000000000000000000000000000000004D
+:10734000000000000000000000000000000000003D
+:10735000000000000000000000000000000000002D
+:10736000000000000000000000000000000000001D
+:10737000000000000000000000000000000000000D
+:1073800000000000000000000000000000000000FD
+:1073900000000000000000000000000000000000ED
+:1073A00000000000000000000000000000000000DD
+:1073B00000000000000000000000000000000000CD
+:1073C00000000000000000000000000000000000BD
+:1073D00000000000000000000000000000000000AD
+:1073E000000000000000000000000000000000009D
+:1073F000000000000000000000000000000000008D
+:107400005A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5ADC
+:10741000000000000000000000000000000000006C
+:10742000000000000000000000000000000000005C
+:10743000000000000000000000000000000000004C
+:10744000000000000000000000000000000000003C
+:10745000000000000000000000000000000000002C
+:10746000000000000000000000000000000000001C
+:10747000000000000000000000000000000000000C
+:1074800000000000000000000000000000000000FC
+:1074900000000000000000000000000000000000EC
+:1074A00000000000000000000000000000000000DC
+:1074B00000000000000000000000000000000000CC
+:1074C00000000000000000000000000000000000BC
+:1074D00000000000000000000000000000000000AC
+:1074E000000000000000000000000000000000009C
+:1074F000000000000000000000000000000000008C
+:107500007F00007F00007F00007F00007F00007F81
+:1075100000007F00007F00000F00000F00000F0040
+:10752000000F00000F00000F00000F00000F000010
+:10753000000000000000000000000000000000004B
+:10754000000000000000000000000000000000003B
+:10755000000000000000000000000000000000002B
+:10756000000000000000000000000000000000001B
+:10757000000000000000000000000000000000000B
+:1075800000000000000000000000000000000000FB
+:1075900000000000000000000000000000000000EB
+:1075A00000000000000000000000000000000000DB
+:1075B00000000000000000000000000000000000CB
+:1075C00000000000000000000000000000000000BB
+:1075D00000000000000000000000000000000000AB
+:1075E000000000000000000000000000000000009B
+:1075F000000000000000000000000000000000008B
+:107600000092008F6100E5030B043604C3030B04F2
+:107610003604C3030478B004F30078B004F3000127
+:107620000000000000000000020202020206030542
+:10763000030500070000640A056969020002000BE7
+:107640000B02021F4E213100020232640D01010DB6
+:1076500000565681101800006600104000280000F7
+:107660001BA701F60157028E02DD023F037B03F8E0
+:107670000334047004C004ED042C05590586059EEE
+:1076800005CB050A06370664067C0683068A068C47
+:107690000693069A06A206AA06B206BA06C006C451
+:1076A00006C806CC06D006D306D706DB06DF06E3FF
+:1076B000063F05003F050702B0041004B0041004A3
+:1076C0000C010C010801000018022003000000005A
+:1076D00000000000000000000000000000000000AA
+:1076E000000000000000000000000000000000009A
+:1076F00000000000000000000000000000002A015F
+:10770000EAEAEAEAEAEAEAEAEAEAEAEAEAEAEAEAD9
+:10771000EAEAEAEAEAEAEAEAEAEAEAEAEAEAEAEAC9
+:10772000EAEAEAEAEAEAEAEAEAEAEAEAEAEAEAEAB9
+:10773000EAEAEAEAEAEAEAEAEAEAEAEAEAEAEAEAA9
+:10774000EAEAEAEAEAEAEAEAEAEAEAEAEAEAEAEA99
+:10775000EAEAEAEAEAEAEAEAEAEAEAEAEAEAEAEA89
+:10776000EAEA000000000000000000000000000045
+:107770000000000000000000000000000000000009
+:1077800000000000000000000000000000000000F9
+:1077900000000000000000000000000000000000E9
+:1077A00000000000000000000000000000000000D9
+:1077B00000000000000000000000000000000000C9
+:1077C00000000000000000000000000000000000B9
+:1077D00000000000000000000000000000000000A9
+:1077E0000000000000000000000000000000000099
+:1077F0000000000000000000000000000000000089
+:107800000000000000000000000000000000000078
+:107810000000000000000000000000000000000068
+:107820000000000000000000000000000000000058
+:107830000000000000000000000000000000000048
+:107840000000000000000000000000000000000038
+:107850000000000000000000000000000000000028
+:107860000000000000000000000000000000000018
+:107870000000000000000000000000000000000008
+:1078800000000000000000000000000000000000F8
+:1078900000000000000000000000000000000000E8
+:1078A00000000000000000000000000000000000D8
+:1078B00000000000000000000000000000000000C8
+:1078C00000000000000000000000000000000000B8
+:1078D00000000000000000000000000000000000A8
+:1078E0000000000000000000000000000000000098
+:1078F0000000000000000000000000000000000088
+:107900000000000000000000000000000000000077
+:107910000000000000000000000000000000000067
+:107920000000000000000000000000000000000057
+:107930000000000000000000000000000000000047
+:107940000000000000000000000000000000000037
+:107950000000000000000000000000000000000027
+:107960000000000000000000000000000000000017
+:107970000000000000000000000000000000000007
+:1079800000000000000000000000000000000000F7
+:1079900000000000000000000000000000000000E7
+:1079A00000000000000000000000000000000000D7
+:1079B00000000000000000000000000000000000C7
+:1079C00000000000000000000000000000000000B7
+:1079D00000000000000000000000000000000000A7
+:1079E0000000000000000000000000000000000097
+:1079F0000000000000000000000000000000000087
+:107A00000000000000000000000000000000000076
+:107A10000000000000000000000000000000000066
+:107A20000000000000000000000000000000000056
+:107A30000000000000000000000000000000000046
+:107A40000000000000000000000000000000000036
+:107A50000000000000000000000000000000000026
+:107A60000000000000000000000000000000000016
+:107A70000000000000000000000000000000000006
+:107A800000000000000000000000000000000000F6
+:107A900000000000000000000000000000000000E6
+:107AA00000000000000000000000000000000000D6
+:107AB00000000000000000000000000000000000C6
+:107AC00000000000000000000000000000000000B6
+:107AD00000000000000000000000000000000000A6
+:107AE0000000000000000000000000000000000096
+:107AF0000000000000000000000000000000000086
+:107B0000EAEAEAEAEAEAEAEAEAEAEAEAEAEAEAEAD5
+:107B1000EAEAEAEAEAEAEAEAEAEAEAEAEAEAEAEAC5
+:107B2000EAEAEAEAEAEAEAEAEAEAEAEAEAEAEAEAB5
+:107B3000EAEAEAEAEAEAEAEAEAEAEAEAEAEAEAEAA5
+:107B4000EAEAEAEAEAEAEAEAEAEAEAEAEAEAEAEA95
+:107B5000EAEAEAEAEAEAEAEAEAEAEAEAEAEAEAEA85
+:107B6000EAEA000000000000000000000000000041
+:107B70000000000000000000000000000000000005
+:107B800000000000000000000000000000000000F5
+:107B900000000000000000000000000000000000E5
+:107BA00000000000000000000000000000000000D5
+:107BB00000000000000000000000000000000000C5
+:107BC00000000000000000000000000000000000B5
+:107BD00000000000000000000000000000000000A5
+:107BE0000000000000000000000000000000000095
+:107BF0000000000000000000000000000000000085
+:107C00000000000000000000000000000000000074
+:107C10000000000000000000000000000000000064
+:107C20000000000000000000000000000000000054
+:107C30000000000000000000000000000000000044
+:107C40000000000000000000000000000000000034
+:107C50000000000000000000000000000000000024
+:107C60000000000000000000000000000000000014
+:107C70000000000000000000000000000000000004
+:107C800000000000000000000000000000000000F4
+:107C900000000000000000000000000000000000E4
+:107CA00000000000000000000000000000000000D4
+:107CB00000000000000000000000000000000000C4
+:107CC00000000000000000000000000000000000B4
+:107CD00000000000000000000000000000000000A4
+:107CE0000000000000000000000000000000000094
+:107CF0000000000000000000000000000000000084
+:107D00000000000000000000000000000000000073
+:107D10000000000000000000000000000000000063
+:107D20000000000000000000000000000000000053
+:107D30000000000000000000000000000000000043
+:107D40000000000000000000000000000000000033
+:107D50000000000000000000000000000000000023
+:107D60000000000000000000000000000000000013
+:107D70000000000000000000000000000000000003
+:107D800000000000000000000000000000000000F3
+:107D900000000000000000000000000000000000E3
+:107DA00000000000000000000000000000000000D3
+:107DB00000000000000000000000000000000000C3
+:107DC00000000000000000000000000000000000B3
+:107DD00000000000000000000000000000000000A3
+:107DE0000000000000000000000000000000000093
+:107DF0000000000000000000000000000000000083
+:107E00000000000000000000000000000000000072
+:107E10000000000000000000000000000000000062
+:107E20000000000000000000000000000000000052
+:107E30000000000000000000000000000000000042
+:107E40000000000000000000000000000000000032
+:107E50000000000000000000000000000000000022
+:107E60000000000000000000000000000000000012
+:107E70000000000000000000000000000000000002
+:107E800000000000000000000000000000000000F2
+:107E900000000000000000000000000000000000E2
+:107EA00000000000000000000000000000000000D2
+:107EB00000000000000000000000000000000000C2
+:107EC00000000000000000000000000000000000B2
+:107ED00000000000000000000000000000000000A2
+:107EE0000000000000000000000000000000000092
+:107EF0000000000000000000000000000000000082
+:107F0000FAFAFAFAFAFAFAFAFAFAFAFAFAFAFAFAD1
+:107F1000FAFAFAFAFAFAFAFAEAEAEAEAEAEAEAEA41
+:107F2000EAEAEAEAEAEAEAEAEAEAEAEAEAEAEAEAB1
+:107F3000EAEAEAEAEAEAEAEAEAEAEAEAEAEAEAEAA1
+:107F4000EAEAEAEAEAEAEAEAEAEAEAEAEAEAEAEA91
+:107F5000EAEAEAEAEAEAEAEA0000000000000000D1
+:107F60000000000000000000000000000000000011
+:107F70000000000000000000000000000000000001
+:107F800000000000000000000000000000000000F1
+:107F900000000000000000000000000000000000E1
+:107FA00000000000000000000000000000000000D1
+:107FB00000000000000000000000000000000000C1
+:107FC00000000000000000000000000000000000B1
+:107FD00000000000000000000000000000000000A1
+:107FE0000000000000000000000000000000000091
+:107FF0000000000000000000000000000000000081
+:108000000000000000000000000000000000000070
+:108010000000000000000000000000000000000060
+:108020000000000000000000000000000000000050
+:108030000000000000000000000000000000000040
+:108040000000000000000000000000000000000030
+:108050000000000000000000000000000000000020
+:108060000000000000000000000000000000000010
+:108070000000000000000000000000000000000000
+:1080800000000000000000000000000000000000F0
+:1080900000000000000000000000000000000000E0
+:1080A00000000000000000000000000000000000D0
+:1080B00000000000000000000000000000000000C0
+:1080C00000000000000000000000000000000000B0
+:1080D00000000000000000000000000000000000A0
+:1080E0000000000000000000000000000000000090
+:1080F0000000000000000000000000000000000080
+:10810000000000000000000000000000000000006F
+:10811000000000000000000000000000000000005F
+:10812000000000000000000000000000000000004F
+:10813000000000000000000000000000000000003F
+:10814000000000000000000000000000000000002F
+:10815000000000000000000000000000000000001F
+:10816000000000000000000000000000000000000F
+:1081700000000000000000000000000000000000FF
+:1081800000000000000000000000000000000000EF
+:1081900000000000000000000000000000000000DF
+:1081A00000000000000000000000000000000000CF
+:1081B00000000000000000000000000000000000BF
+:1081C00000000000000000000000000000000000AF
+:1081D000000000000000000000000000000000009F
+:1081E000000000000000000000000000000000008F
+:1081F000000000000000000000000000000000007F
+:10820000000000000000000000000000000000006E
+:10821000000000000000000000000000000000005E
+:10822000000000000000000000000000000000004E
+:10823000000000000000000000000000000000003E
+:10824000000000000000000000000000000000002E
+:10825000000000000000000000000000000000001E
+:10826000000000000000000000000000000000000E
+:1082700000000000000000000000000000000000FE
+:1082800000000000000000000000000000000000EE
+:1082900000000000000000000000000000000000DE
+:1082A00000000000000000000000000000000000CE
+:1082B00000000000000000000000000000000000BE
+:1082C00000000000000000000000000000000000AE
+:1082D000000000000000000000000000000000009E
+:1082E000000000000000000000000000000000008E
+:1082F000000000000000000000000000000000007E
+:10830000EAEAEAEAEAEAEAEAEAEAEAEAEAEAEAEACD
+:10831000EAEAEAEAEAEAEAEAEAEAEAEAEAEAEAEABD
+:10832000EAEAEAEAEAEAEAEAEAEAEAEAEAEAEAEAAD
+:10833000EAEAEAEAEAEAEAEAEAEAEAEAEAEAEAEA9D
+:10834000EAEAEAEAEAEAEAEAEAEAEAEAEAEAEAEA8D
+:10835000EAEAEAEAEAEAEAEAEAEAEAEAEAEAEAEA7D
+:10836000EAEA000000000000000000000000000039
+:1083700000000000000000000000000000000000FD
+:1083800000000000000000000000000000000000ED
+:1083900000000000000000000000000000000000DD
+:1083A00000000000000000000000000000000000CD
+:1083B00000000000000000000000000000000000BD
+:1083C00000000000000000000000000000000000AD
+:1083D000000000000000000000000000000000009D
+:1083E000000000000000000000000000000000008D
+:1083F000000000000000000000000000000000007D
+:10840000000000000000000000000000000000006C
+:10841000000000000000000000000000000000005C
+:10842000000000000000000000000000000000004C
+:10843000000000000000000000000000000000003C
+:10844000000000000000000000000000000000002C
+:10845000000000000000000000000000000000001C
+:10846000000000000000000000000000000000000C
+:1084700000000000000000000000000000000000FC
+:1084800000000000000000000000000000000000EC
+:1084900000000000000000000000000000000000DC
+:1084A00000000000000000000000000000000000CC
+:1084B00000000000000000000000000000000000BC
+:1084C00000000000000000000000000000000000AC
+:1084D000000000000000000000000000000000009C
+:1084E000000000000000000000000000000000008C
+:1084F000000000000000000000000000000000007C
+:10850000000000000000000000000000000000006B
+:10851000000000000000000000000000000000005B
+:10852000000000000000000000000000000000004B
+:10853000000000000000000000000000000000003B
+:10854000000000000000000000000000000000002B
+:10855000000000000000000000000000000000001B
+:10856000000000000000000000000000000000000B
+:1085700000000000000000000000000000000000FB
+:1085800000000000000000000000000000000000EB
+:1085900000000000000000000000000000000000DB
+:1085A00000000000000000000000000000000000CB
+:1085B00000000000000000000000000000000000BB
+:1085C00000000000000000000000000000000000AB
+:1085D000000000000000000000000000000000009B
+:1085E000000000000000000000000000000000008B
+:1085F000000000000000000000000000000000007B
+:10860000000000000000000000000000000000006A
+:10861000000000000000000000000000000000005A
+:10862000000000000000000000000000000000004A
+:10863000000000000000000000000000000000003A
+:10864000000000000000000000000000000000002A
+:10865000000000000000000000000000000000001A
+:10866000000000000000000000000000000000000A
+:1086700000000000000000000000000000000000FA
+:1086800000000000000000000000000000000000EA
+:1086900000000000000000000000000000000000DA
+:1086A00000000000000000000000000000000000CA
+:1086B00000000000000000000000000000000000BA
+:1086C00000000000000000000000000000000000AA
+:1086D000000000000000000000000000000000009A
+:1086E000000000000000000000000000000000008A
+:1086F000000000000000000000000000000000007A
+:10870000EAEAEAEAEAEAEAEAEAEAEAEAEAEAEAEAC9
+:10871000EAEAEAEAEAEAEAEAEAEAEAEAEAEAEAEAB9
+:10872000EAEAEAEAEAEAEAEAEAEAEAEAEAEAEAEAA9
+:10873000EAEAEAEAEAEAEAEAEAEAEAEAEAEAEAEA99
+:10874000EAEAEAEAEAEAEAEAEAEAEAEAEAEAEAEA89
+:10875000EAEAEAEAEAEAEAFEFEFEFEFEFEFEFEFEC5
+:10876000FEFE00000000000000000000000000000D
+:1087700000000000000000000000000000000000F9
+:1087800000000000000000000000000000000000E9
+:1087900000000000000000000000000000000000D9
+:1087A00000000000000000000000000000000000C9
+:1087B00000000000000000000000000000000000B9
+:1087C00000000000000000000000000000000000A9
+:1087D0000000000000000000000000000000000099
+:1087E0000000000000000000000000000000000089
+:1087F0000000000000000000000000000000000079
+:108800000000000000000000000000000000000068
+:108810000000000000000000000000000000000058
+:108820000000000000000000000000000000000048
+:108830000000000000000000000000000000000038
+:108840000000000000000000000000000000000028
+:108850000000000000000000000000000000000018
+:108860000000000000000000000000000000000008
+:1088700000000000000000000000000000000000F8
+:1088800000000000000000000000000000000000E8
+:1088900000000000000000000000000000000000D8
+:1088A00000000000000000000000000000000000C8
+:1088B00000000000000000000000000000000000B8
+:1088C00000000000000000000000000000000000A8
+:1088D0000000000000000000000000000000000098
+:1088E0000000000000000000000000000000000088
+:1088F0000000000000000000000000000000000078
+:108900000000000000000000000000000000000067
+:108910000000000000000000000000000000000057
+:108920000000000000000000000000000000000047
+:108930000000000000000000000000000000000037
+:108940000000000000000000000000000000000027
+:108950000000000000000000000000000000000017
+:108960000000000000000000000000000000000007
+:1089700000000000000000000000000000000000F7
+:1089800000000000000000000000000000000000E7
+:1089900000000000000000000000000000000000D7
+:1089A00000000000000000000000000000000000C7
+:1089B00000000000000000000000000000000000B7
+:1089C00000000000000000000000000000000000A7
+:1089D0000000000000000000000000000000000097
+:1089E0000000000000000000000000000000000087
+:1089F0000000000000000000000000000000000077
+:108A00000000000000000000000000000000000066
+:108A10000000000000000000000000000000000056
+:108A20000000000000000000000000000000000046
+:108A30000000000000000000000000000000000036
+:108A40000000000000000000000000000000000026
+:108A50000000000000000000000000000000000016
+:108A60000000000000000000000000000000000006
+:108A700000000000000000000000000000000000F6
+:108A800000000000000000000000000000000000E6
+:108A900000000000000000000000000000000000D6
+:108AA00000000000000000000000000000000000C6
+:108AB00000000000000000000000000000000000B6
+:108AC00000000000000000000000000000000000A6
+:108AD0000000000000000000000000000000000096
+:108AE0000000000000000000000000000000000086
+:108AF0000000000000000000000000000000000076
+:108B0000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF75
+:108B1000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF65
+:108B2000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF55
+:108B3000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF45
+:108B4000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF35
+:108B5000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF25
+:108B6000FFFFFEFEFEFEFEFEFEFEFAFAFAFAFAFA3B
+:108B7000FAFAEAEAEAEAEAEAEAEAEAEAEAEA000009
+:108B800000000000000000000000000000000000E5
+:108B900000000000000000000000000000000000D5
+:108BA00000000000000000000000000000000000C5
+:108BB00000000000000000000000000000000000B5
+:108BC00000000000000000000000000000000000A5
+:108BD0000000000000000000000000000000000095
+:108BE0000000000000000000000000000000000085
+:108BF0000000000000000000000000000000000075
+:108C00000000000000000000000000000000000064
+:108C10000000000000000000000000000000000054
+:108C20000000000000000000000000000000000044
+:108C30000000000000000000000000000000000034
+:108C40000000000000000000000000000000000024
+:108C50000000000000000000000000000000000014
+:108C60000000000000000000000000000000000004
+:108C700000000000000000000000000000000000F4
+:108C800000000000000000000000000000000000E4
+:108C900000000000000000000000000000000000D4
+:108CA00000000000000000000000000000000000C4
+:108CB00000000000000000000000000000000000B4
+:108CC00000000000000000000000000000000000A4
+:108CD0000000000000000000000000000000000094
+:108CE0000000000000000000000000000000000084
+:108CF0000000000000000000000000000000000074
+:108D00000000000000000000000000000000000063
+:108D10000000000000000000000000000000000053
+:108D20000000000000000000000000000000000043
+:108D30000000000000000000000000000000000033
+:108D40000000000000000000000000000000000023
+:108D50000000000000000000000000000000000013
+:108D60000000000000000000000000000000000003
+:108D700000000000000000000000000000000000F3
+:108D800000000000000000000000000000000000E3
+:108D900000000000000000000000000000000000D3
+:108DA00000000000000000000000000000000000C3
+:108DB00000000000000000000000000000000000B3
+:108DC00000000000000000000000000000000000A3
+:108DD0000000000000000000000000000000000093
+:108DE0000000000000000000000000000000000083
+:108DF0000000000000000000000000000000000073
+:108E00000000000000000000000000000000000062
+:108E10000000000000000000000000000000000052
+:108E20000000000000000000000000000000000042
+:108E30000000000000000000000000000000000032
+:108E40000000000000000000000000000000000022
+:108E50000000000000000000000000000000000012
+:108E60000000000000000000000000000000000002
+:108E700000000000000000000000000000000000F2
+:108E800000000000000000000000000000000000E2
+:108E900000000000000000000000000000000000D2
+:108EA00000000000000000000000000000000000C2
+:108EB00000000000000000000000000000000000B2
+:108EC00000000000000000000000000000000000A2
+:108ED0000000000000000000000000000000000092
+:108EE0000000000000000000000000000000000082
+:108EF0000000000000000000000000000000000072
+:108F0000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF71
+:108F1000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF61
+:108F2000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF51
+:108F3000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF41
+:108F4000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF31
+:108F5000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF21
+:108F6000FFFFFEFEFEFEFEFEFEFEFAFAFAFAFAFA37
+:108F7000FAFAEAEAEAEAEAEAEAEAEAEAEAEA000005
+:108F800000000000000000000000000000000000E1
+:108F900000000000000000000000000000000000D1
+:108FA00000000000000000000000000000000000C1
+:108FB00000000000000000000000000000000000B1
+:108FC00000000000000000000000000000000000A1
+:108FD0000000000000000000000000000000000091
+:108FE0000000000000000000000000000000000081
+:108FF0000000000000000000000000000000000071
+:109000000000000000000000000000000000000060
+:109010000000000000000000000000000000000050
+:109020000000000000000000000000000000000040
+:109030000000000000000000000000000000000030
+:109040000000000000000000000000000000000020
+:109050000000000000000000000000000000000010
+:109060000000000000000000000000000000000000
+:1090700000000000000000000000000000000000F0
+:1090800000000000000000000000000000000000E0
+:1090900000000000000000000000000000000000D0
+:1090A00000000000000000000000000000000000C0
+:1090B00000000000000000000000000000000000B0
+:1090C00000000000000000000000000000000000A0
+:1090D0000000000000000000000000000000000090
+:1090E0000000000000000000000000000000000080
+:1090F0000000000000000000000000000000000070
+:10910000000000000000000000000000000000005F
+:10911000000000000000000000000000000000004F
+:10912000000000000000000000000000000000003F
+:10913000000000000000000000000000000000002F
+:10914000000000000000000000000000000000001F
+:10915000000000000000000000000000000000000F
+:1091600000000000000000000000000000000000FF
+:1091700000000000000000000000000000000000EF
+:1091800000000000000000000000000000000000DF
+:1091900000000000000000000000000000000000CF
+:1091A00000000000000000000000000000000000BF
+:1091B00000000000000000000000000000000000AF
+:1091C000000000000000000000000000000000009F
+:1091D000000000000000000000000000000000008F
+:1091E000000000000000000000000000000000007F
+:1091F000000000000000000000000000000000006F
+:10920000000000000000000000000000000000005E
+:10921000000000000000000000000000000000004E
+:10922000000000000000000000000000000000003E
+:10923000000000000000000000000000000000002E
+:10924000000000000000000000000000000000001E
+:10925000000000000000000000000000000000000E
+:1092600000000000000000000000000000000000FE
+:1092700000000000000000000000000000000000EE
+:1092800000000000000000000000000000000000DE
+:1092900000000000000000000000000000000000CE
+:1092A00000000000000000000000000000000000BE
+:1092B00000000000000000000000000000000000AE
+:1092C000000000000000000000000000000000009E
+:1092D000000000000000000000000000000000008E
+:1092E000000000000000000000000000000000007E
+:1092F000000000000000000000000000000000006E
+:10930000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF6D
+:10931000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF5D
+:10932000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF4D
+:10933000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF3D
+:10934000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF2D
+:10935000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF1D
+:10936000FFFFFEFEFEFEFEFEFEFEFAFAFAFAFAFA33
+:10937000FAFAEAEAEAEAEAEAEAEAEAEAEAEA000001
+:1093800000000000000000000000000000000000DD
+:1093900000000000000000000000000000000000CD
+:1093A00000000000000000000000000000000000BD
+:1093B00000000000000000000000000000000000AD
+:1093C000000000000000000000000000000000009D
+:1093D000000000000000000000000000000000008D
+:1093E000000000000000000000000000000000007D
+:1093F000000000000000000000000000000000006D
+:10940000000000000000000000000000000000005C
+:10941000000000000000000000000000000000004C
+:10942000000000000000000000000000000000003C
+:10943000000000000000000000000000000000002C
+:10944000000000000000000000000000000000001C
+:10945000000000000000000000000000000000000C
+:1094600000000000000000000000000000000000FC
+:1094700000000000000000000000000000000000EC
+:1094800000000000000000000000000000000000DC
+:1094900000000000000000000000000000000000CC
+:1094A00000000000000000000000000000000000BC
+:1094B00000000000000000000000000000000000AC
+:1094C000000000000000000000000000000000009C
+:1094D000000000000000000000000000000000008C
+:1094E000000000000000000000000000000000007C
+:1094F000000000000000000000000000000000006C
+:10950000000000000000000000000000000000005B
+:10951000000000000000000000000000000000004B
+:10952000000000000000000000000000000000003B
+:10953000000000000000000000000000000000002B
+:10954000000000000000000000000000000000001B
+:10955000000000000000000000000000000000000B
+:1095600000000000000000000000000000000000FB
+:1095700000000000000000000000000000000000EB
+:1095800000000000000000000000000000000000DB
+:1095900000000000000000000000000000000000CB
+:1095A00000000000000000000000000000000000BB
+:1095B00000000000000000000000000000000000AB
+:1095C000000000000000000000000000000000009B
+:1095D000000000000000000000000000000000008B
+:1095E000000000000000000000000000000000007B
+:1095F000000000000000000000000000000000006B
+:10960000000000000000000000000000000000005A
+:10961000000000000000000000000000000000004A
+:10962000000000000000000000000000000000003A
+:10963000000000000000000000000000000000002A
+:10964000000000000000000000000000000000001A
+:10965000000000000000000000000000000000000A
+:1096600000000000000000000000000000000000FA
+:1096700000000000000000000000000000000000EA
+:1096800000000000000000000000000000000000DA
+:1096900000000000000000000000000000000000CA
+:1096A00000000000000000000000000000000000BA
+:1096B00000000000000000000000000000000000AA
+:1096C000000000000000000000000000000000009A
+:1096D000000000000000000000000000000000008A
+:1096E000000000000000000000000000000000007A
+:1096F000000000000000000000000000000000006A
+:10970000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF69
+:10971000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF59
+:10972000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF49
+:10973000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF39
+:10974000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF29
+:10975000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF19
+:10976000FFFFFEFEFEFEFEFEFEFEFAFAFAFAFAFA2F
+:10977000FAFAEAEAEAEAEAEAEAEAEAEAEAEA0000FD
+:1097800000000000000000000000000000000000D9
+:1097900000000000000000000000000000000000C9
+:1097A00000000000000000000000000000000000B9
+:1097B00000000000000000000000000000000000A9
+:1097C0000000000000000000000000000000000099
+:1097D0000000000000000000000000000000000089
+:1097E0000000000000000000000000000000000079
+:1097F0000000000000000000000000000000000069
+:109800000000000000000000000000000000000058
+:109810000000000000000000000000000000000048
+:109820000000000000000000000000000000000038
+:109830000000000000000000000000000000000028
+:109840000000000000000000000000000000000018
+:109850000000000000000000000000000000000008
+:1098600000000000000000000000000000000000F8
+:1098700000000000000000000000000000000000E8
+:1098800000000000000000000000000000000000D8
+:1098900000000000000000000000000000000000C8
+:1098A00000000000000000000000000000000000B8
+:1098B00000000000000000000000000000000000A8
+:1098C0000000000000000000000000000000000098
+:1098D0000000000000000000000000000000000088
+:1098E0000000000000000000000000000000000078
+:1098F0000000000000000000000000000000000068
+:109900000000000000000000000000000000000057
+:109910000000000000000000000000000000000047
+:109920000000000000000000000000000000000037
+:109930000000000000000000000000000000000027
+:109940000000000000000000000000000000000017
+:109950000000000000000000000000000000000007
+:1099600000000000000000000000000000000000F7
+:1099700000000000000000000000000000000000E7
+:1099800000000000000000000000000000000000D7
+:1099900000000000000000000000000000000000C7
+:1099A00000000000000000000000000000000000B7
+:1099B00000000000000000000000000000000000A7
+:1099C0000000000000000000000000000000000097
+:1099D0000000000000000000000000000000000087
+:1099E0000000000000000000000000000000000077
+:1099F0000000000000000000000000000000000067
+:109A00000000000000000000000000000000000056
+:109A10000000000000000000000000000000000046
+:109A20000000000000000000000000000000000036
+:109A30000000000000000000000000000000000026
+:109A40000000000000000000000000000000000016
+:109A50000000000000000000000000000000000006
+:109A600000000000000000000000000000000000F6
+:109A700000000000000000000000000000000000E6
+:109A800000000000000000000000000000000000D6
+:109A900000000000000000000000000000000000C6
+:109AA00000000000000000000000000000000000B6
+:109AB00000000000000000000000000000000000A6
+:109AC0000000000000000000000000000000000096
+:109AD0000000000000000000000000000000000086
+:109AE0000000000000000000000000000000000076
+:109AF0000000000000000000000000000000000066
+:109B0000AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB5
+:109B1000AAAAAAAAAAAAAAAAAAAAAAAAAAAFAFAF96
+:109B2000AFAFAFAFAFBFBFBFBFFFFFFFFFFFFFFFD5
+:109B3000FFFFFFFFFFFFFFFAFAFAFAFAFAFAFAFA62
+:109B4000FAFAFAFAFAFAFAEAEAEAEAEAEAEAEAAA45
+:109B5000AAAA0000000000000000000000000000B1
+:109B600000000000000000000000000000000000F5
+:109B700000000000000000000000000000000000E5
+:109B800000000000000000000000000000000000D5
+:109B900000000000000000000000000000000000C5
+:109BA00000000000000000000000000000000000B5
+:109BB00000000000000000000000000000000000A5
+:109BC0000000000000000000000000000000000095
+:109BD0000000000000000000000000000000000085
+:109BE0000000000000000000000000000000000075
+:109BF0000000000000000000000000000000000065
+:109C00000000000000000000000000000000000054
+:109C10000000000000000000000000000000000044
+:109C20000000000000000000000000000000000034
+:109C30000000000000000000000000000000000024
+:109C40000000000000000000000000000000000014
+:109C50000000000000000000000000000000000004
+:109C600000000000000000000000000000000000F4
+:109C700000000000000000000000000000000000E4
+:109C800000000000000000000000000000000000D4
+:109C900000000000000000000000000000000000C4
+:109CA00000000000000000000000000000000000B4
+:109CB00000000000000000000000000000000000A4
+:109CC0000000000000000000000000000000000094
+:109CD0000000000000000000000000000000000084
+:109CE0000000000000000000000000000000000074
+:109CF0000000000000000000000000000000000064
+:109D00000000000000000000000000000000000053
+:109D10000000000000000000000000000000000043
+:109D20000000000000000000000000000000000033
+:109D30000000000000000000000000000000000023
+:109D40000000000000000000000000000000000013
+:109D50000000000000000000000000000000000003
+:109D600000000000000000000000000000000000F3
+:109D700000000000000000000000000000000000E3
+:109D800000000000000000000000000000000000D3
+:109D900000000000000000000000000000000000C3
+:109DA00000000000000000000000000000000000B3
+:109DB00000000000000000000000000000000000A3
+:109DC0000000000000000000000000000000000093
+:109DD0000000000000000000000000000000000083
+:109DE0000000000000000000000000000000000073
+:109DF0000000000000000000000000000000000063
+:109E00000000000000000000000000000000000052
+:109E10000000000000000000000000000000000042
+:109E20000000000000000000000000000000000032
+:109E30000000000000000000000000000000000022
+:109E40000000000000000000000000000000000012
+:109E50000000000000000000000000000000000002
+:109E600000000000000000000000000000000000F2
+:109E700000000000000000000000000000000000E2
+:109E800000000000000000000000000000000000D2
+:109E900000000000000000000000000000000000C2
+:109EA00000000000000000000000000000000000B2
+:109EB00000000000000000000000000000000000A2
+:109EC0000000000000000000000000000000000092
+:109ED0000000000000000000000000000000000082
+:109EE0000000000000000000000000000000000072
+:109EF0000000000000000000000000000000000062
+:109F0000ABABABABABABABABFFFFFFFFFFFFFFFF01
+:109F1000FFFFFFFFFEFEFEFEFEFEFEAAAAAAAAAA01
+:109F2000AAAAAAAAAAAAAAAAABABABFFFFFFFFFFE5
+:109F3000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFE33
+:109F40000000000000000000000000000000000011
+:109F50000000000000000000000000000000000001
+:109F600000000000000000000000000000000000F1
+:109F700000000000000000000000000000000000E1
+:109F800000000000000000000000000000000000D1
+:109F900000000000000000000000000000000000C1
+:109FA00000000000000000000000000000000000B1
+:109FB00000000000000000000000000000000000A1
+:109FC0000000000000000000000000000000000091
+:109FD0000000000000000000000000000000000081
+:109FE0000000000000000000000000000000000071
+:109FF0000000000000000000000000000000000061
+:10A000000000000000000000000000000000000050
+:10A010000000000000000000000000000000000040
+:10A020000000000000000000000000000000000030
+:10A030000000000000000000000000000000000020
+:10A040000000000000000000000000000000000010
+:10A050000000000000000000000000000000000000
+:10A0600000000000000000000000000000000000F0
+:10A0700000000000000000000000000000000000E0
+:10A0800000000000000000000000000000000000D0
+:10A0900000000000000000000000000000000000C0
+:10A0A00000000000000000000000000000000000B0
+:10A0B00000000000000000000000000000000000A0
+:10A0C0000000000000000000000000000000000090
+:10A0D0000000000000000000000000000000000080
+:10A0E0000000000000000000000000000000000070
+:10A0F0000000000000000000000000000000000060
+:10A10000000000000000000000000000000000004F
+:10A11000000000000000000000000000000000003F
+:10A12000000000000000000000000000000000002F
+:10A13000000000000000000000000000000000001F
+:10A14000000000000000000000000000000000000F
+:10A1500000000000000000000000000000000000FF
+:10A1600000000000000000000000000000000000EF
+:10A1700000000000000000000000000000000000DF
+:10A1800000000000000000000000000000000000CF
+:10A1900000000000000000000000000000000000BF
+:10A1A00000000000000000000000000000000000AF
+:10A1B000000000000000000000000000000000009F
+:10A1C000000000000000000000000000000000008F
+:10A1D000000000000000000000000000000000007F
+:10A1E000000000000000000000000000000000006F
+:10A1F000000000000000000000000000000000005F
+:10A20000000000000000000000000000000000004E
+:10A21000000000000000000000000000000000003E
+:10A22000000000000000000000000000000000002E
+:10A23000000000000000000000000000000000001E
+:10A24000000000000000000000000000000000000E
+:10A2500000000000000000000000000000000000FE
+:10A2600000000000000000000000000000000000EE
+:10A2700000000000000000000000000000000000DE
+:10A2800000000000000000000000000000000000CE
+:10A2900000000000000000000000000000000000BE
+:10A2A00000000000000000000000000000000000AE
+:10A2B000000000000000000000000000000000009E
+:10A2C000000000000000000000000000000000008E
+:10A2D000000000000000000000000000000000007E
+:10A2E000000000000000000000000000000000006E
+:10A2F000000000000000000000000000000000005E
+:10A30000ABABABABABABABABFFFFFFFFFFFFFFFFFD
+:10A31000FFFFFFFFFEFEFEFEFEFEFEAAAAAAAAAAFD
+:10A32000AAAAAAAAAAAAAAAAABABABFFFFFFFFFFE1
+:10A33000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFE2F
+:10A34000000000000000000000000000000000000D
+:10A3500000000000000000000000000000000000FD
+:10A3600000000000000000000000000000000000ED
+:10A3700000000000000000000000000000000000DD
+:10A3800000000000000000000000000000000000CD
+:10A3900000000000000000000000000000000000BD
+:10A3A00000000000000000000000000000000000AD
+:10A3B000000000000000000000000000000000009D
+:10A3C000000000000000000000000000000000008D
+:10A3D000000000000000000000000000000000007D
+:10A3E000000000000000000000000000000000006D
+:10A3F000000000000000000000000000000000005D
+:10A40000000000000000000000000000000000004C
+:10A41000000000000000000000000000000000003C
+:10A42000000000000000000000000000000000002C
+:10A43000000000000000000000000000000000001C
+:10A44000000000000000000000000000000000000C
+:10A4500000000000000000000000000000000000FC
+:10A4600000000000000000000000000000000000EC
+:10A4700000000000000000000000000000000000DC
+:10A4800000000000000000000000000000000000CC
+:10A4900000000000000000000000000000000000BC
+:10A4A00000000000000000000000000000000000AC
+:10A4B000000000000000000000000000000000009C
+:10A4C000000000000000000000000000000000008C
+:10A4D000000000000000000000000000000000007C
+:10A4E000000000000000000000000000000000006C
+:10A4F000000000000000000000000000000000005C
+:10A50000000000000000000000000000000000004B
+:10A51000000000000000000000000000000000003B
+:10A52000000000000000000000000000000000002B
+:10A53000000000000000000000000000000000001B
+:10A54000000000000000000000000000000000000B
+:10A5500000000000000000000000000000000000FB
+:10A5600000000000000000000000000000000000EB
+:10A5700000000000000000000000000000000000DB
+:10A5800000000000000000000000000000000000CB
+:10A5900000000000000000000000000000000000BB
+:10A5A00000000000000000000000000000000000AB
+:10A5B000000000000000000000000000000000009B
+:10A5C000000000000000000000000000000000008B
+:10A5D000000000000000000000000000000000007B
+:10A5E000000000000000000000000000000000006B
+:10A5F000000000000000000000000000000000005B
+:10A60000000000000000000000000000000000004A
+:10A61000000000000000000000000000000000003A
+:10A62000000000000000000000000000000000002A
+:10A63000000000000000000000000000000000001A
+:10A64000000000000000000000000000000000000A
+:10A6500000000000000000000000000000000000FA
+:10A6600000000000000000000000000000000000EA
+:10A6700000000000000000000000000000000000DA
+:10A6800000000000000000000000000000000000CA
+:10A6900000000000000000000000000000000000BA
+:10A6A00000000000000000000000000000000000AA
+:10A6B000000000000000000000000000000000009A
+:10A6C000000000000000000000000000000000008A
+:10A6D000000000000000000000000000000000007A
+:10A6E000000000000000000000000000000000006A
+:10A6F000000000000000000000000000000000005A
+:10A70000ABABABABABABABABFFFFFFFFFFFFFFFFF9
+:10A71000FFFFFFFFFEFEFEFEFEFEFEAAAAAAAAAAF9
+:10A72000AAAAAAAAAAAAAAAAABABABFFFFFFFFFFDD
+:10A73000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFE2B
+:10A740000000000000000000000000000000000009
+:10A7500000000000000000000000000000000000F9
+:10A7600000000000000000000000000000000000E9
+:10A7700000000000000000000000000000000000D9
+:10A7800000000000000000000000000000000000C9
+:10A7900000000000000000000000000000000000B9
+:10A7A00000000000000000000000000000000000A9
+:10A7B0000000000000000000000000000000000099
+:10A7C0000000000000000000000000000000000089
+:10A7D0000000000000000000000000000000000079
+:10A7E0000000000000000000000000000000000069
+:10A7F0000000000000000000000000000000000059
+:10A800000000000000000000000000000000000048
+:10A810000000000000000000000000000000000038
+:10A820000000000000000000000000000000000028
+:10A830000000000000000000000000000000000018
+:10A840000000000000000000000000000000000008
+:10A8500000000000000000000000000000000000F8
+:10A8600000000000000000000000000000000000E8
+:10A8700000000000000000000000000000000000D8
+:10A8800000000000000000000000000000000000C8
+:10A8900000000000000000000000000000000000B8
+:10A8A00000000000000000000000000000000000A8
+:10A8B0000000000000000000000000000000000098
+:10A8C0000000000000000000000000000000000088
+:10A8D0000000000000000000000000000000000078
+:10A8E0000000000000000000000000000000000068
+:10A8F0000000000000000000000000000000000058
+:10A900000000000000000000000000000000000047
+:10A910000000000000000000000000000000000037
+:10A920000000000000000000000000000000000027
+:10A930000000000000000000000000000000000017
+:10A940000000000000000000000000000000000007
+:10A9500000000000000000000000000000000000F7
+:10A9600000000000000000000000000000000000E7
+:10A9700000000000000000000000000000000000D7
+:10A9800000000000000000000000000000000000C7
+:10A9900000000000000000000000000000000000B7
+:10A9A00000000000000000000000000000000000A7
+:10A9B0000000000000000000000000000000000097
+:10A9C0000000000000000000000000000000000087
+:10A9D0000000000000000000000000000000000077
+:10A9E0000000000000000000000000000000000067
+:10A9F0000000000000000000000000000000000057
+:10AA00000000000000000000000000000000000046
+:10AA10000000000000000000000000000000000036
+:10AA20000000000000000000000000000000000026
+:10AA30000000000000000000000000000000000016
+:10AA40000000000000000000000000000000000006
+:10AA500000000000000000000000000000000000F6
+:10AA600000000000000000000000000000000000E6
+:10AA700000000000000000000000000000000000D6
+:10AA800000000000000000000000000000000000C6
+:10AA900000000000000000000000000000000000B6
+:10AAA00000000000000000000000000000000000A6
+:10AAB0000000000000000000000000000000000096
+:10AAC0000000000000000000000000000000000086
+:10AAD0000000000000000000000000000000000076
+:10AAE0000000000000000000000000000000000066
+:10AAF0000000000000000000000000000000000056
+:10AB0000ABABABABABABABABFFFFFFFFFFFFFFFFF5
+:10AB1000FFFFFFFFFEFEFEFEFEFEFEAAAAAAAAAAF5
+:10AB2000AAAAAAAAAAAAAAAAABABABFFFFFFFFFFD9
+:10AB3000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFE27
+:10AB40000000000000000000000000000000000005
+:10AB500000000000000000000000000000000000F5
+:10AB600000000000000000000000000000000000E5
+:10AB700000000000000000000000000000000000D5
+:10AB800000000000000000000000000000000000C5
+:10AB900000000000000000000000000000000000B5
+:10ABA00000000000000000000000000000000000A5
+:10ABB0000000000000000000000000000000000095
+:10ABC0000000000000000000000000000000000085
+:10ABD0000000000000000000000000000000000075
+:10ABE0000000000000000000000000000000000065
+:10ABF0000000000000000000000000000000000055
+:10AC00000000000000000000000000000000000044
+:10AC10000000000000000000000000000000000034
+:10AC20000000000000000000000000000000000024
+:10AC30000000000000000000000000000000000014
+:10AC40000000000000000000000000000000000004
+:10AC500000000000000000000000000000000000F4
+:10AC600000000000000000000000000000000000E4
+:10AC700000000000000000000000000000000000D4
+:10AC800000000000000000000000000000000000C4
+:10AC900000000000000000000000000000000000B4
+:10ACA00000000000000000000000000000000000A4
+:10ACB0000000000000000000000000000000000094
+:10ACC0000000000000000000000000000000000084
+:10ACD0000000000000000000000000000000000074
+:10ACE0000000000000000000000000000000000064
+:10ACF0000000000000000000000000000000000054
+:10AD00000000000000000000000000000000000043
+:10AD10000000000000000000000000000000000033
+:10AD20000000000000000000000000000000000023
+:10AD30000000000000000000000000000000000013
+:10AD40000000000000000000000000000000000003
+:10AD500000000000000000000000000000000000F3
+:10AD600000000000000000000000000000000000E3
+:10AD700000000000000000000000000000000000D3
+:10AD800000000000000000000000000000000000C3
+:10AD900000000000000000000000000000000000B3
+:10ADA00000000000000000000000000000000000A3
+:10ADB0000000000000000000000000000000000093
+:10ADC0000000000000000000000000000000000083
+:10ADD0000000000000000000000000000000000073
+:10ADE0000000000000000000000000000000000063
+:10ADF0000000000000000000000000000000000053
+:10AE00000000000000000000000000000000000042
+:10AE10000000000000000000000000000000000032
+:10AE20000000000000000000000000000000000022
+:10AE30000000000000000000000000000000000012
+:10AE40000000000000000000000000000000000002
+:10AE500000000000000000000000000000000000F2
+:10AE600000000000000000000000000000000000E2
+:10AE700000000000000000000000000000000000D2
+:10AE800000000000000000000000000000000000C2
+:10AE900000000000000000000000000000000000B2
+:10AEA00000000000000000000000000000000000A2
+:10AEB0000000000000000000000000000000000092
+:10AEC0000000000000000000000000000000000082
+:10AED0000000000000000000000000000000000072
+:10AEE0000000000000000000000000000000000062
+:10AEF0000000000000000000000000000000000052
+:10AF0000AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAF9C
+:10AF1000AFAFAFFFFFFFFFFFFFFFFFFAFAFAFAFA4A
+:10AF2000FAFAFAAAAAAA0000000000000000000035
+:10AF30000000000000000000000000000000000011
+:10AF40000000000000000000000000000000000001
+:10AF500000000000000000000000000000000000F1
+:10AF600000000000000000000000000000000000E1
+:10AF700000000000000000000000000000000000D1
+:10AF800000000000000000000000000000000000C1
+:10AF900000000000000000000000000000000000B1
+:10AFA00000000000000000000000000000000000A1
+:10AFB0000000000000000000000000000000000091
+:10AFC0000000000000000000000000000000000081
+:10AFD0000000000000000000000000000000000071
+:10AFE0000000000000000000000000000000000061
+:10AFF0000000000000000000000000000000000051
+:10B000000000000000000000000000000000000040
+:10B010000000000000000000000000000000000030
+:10B020000000000000000000000000000000000020
+:10B030000000000000000000000000000000000010
+:10B040000000000000000000000000000000000000
+:10B0500000000000000000000000000000000000F0
+:10B0600000000000000000000000000000000000E0
+:10B0700000000000000000000000000000000000D0
+:10B0800000000000000000000000000000000000C0
+:10B0900000000000000000000000000000000000B0
+:10B0A00000000000000000000000000000000000A0
+:10B0B0000000000000000000000000000000000090
+:10B0C0000000000000000000000000000000000080
+:10B0D0000000000000000000000000000000000070
+:10B0E0000000000000000000000000000000000060
+:10B0F0000000000000000000000000000000000050
+:10B10000000000000000000000000000000000003F
+:10B11000000000000000000000000000000000002F
+:10B12000000000000000000000000000000000001F
+:10B13000000000000000000000000000000000000F
+:10B1400000000000000000000000000000000000FF
+:10B1500000000000000000000000000000000000EF
+:10B1600000000000000000000000000000000000DF
+:10B1700000000000000000000000000000000000CF
+:10B1800000000000000000000000000000000000BF
+:10B1900000000000000000000000000000000000AF
+:10B1A000000000000000000000000000000000009F
+:10B1B000000000000000000000000000000000008F
+:10B1C000000000000000000000000000000000007F
+:10B1D000000000000000000000000000000000006F
+:10B1E000000000000000000000000000000000005F
+:10B1F000000000000000000000000000000000004F
+:10B20000000000000000000000000000000000003E
+:10B21000000000000000000000000000000000002E
+:10B22000000000000000000000000000000000001E
+:10B23000000000000000000000000000000000000E
+:10B2400000000000000000000000000000000000FE
+:10B2500000000000000000000000000000000000EE
+:10B2600000000000000000000000000000000000DE
+:10B2700000000000000000000000000000000000CE
+:10B2800000000000000000000000000000000000BE
+:10B2900000000000000000000000000000000000AE
+:10B2A000000000000000000000000000000000009E
+:10B2B000000000000000000000000000000000008E
+:10B2C000000000000000000000000000000000007E
+:10B2D000000000000000000000000000000000006E
+:10B2E000000000000000000000000000000000005E
+:10B2F000000000000000000000000000000000004E
+:10B30000ABABABABABABABABFFFFFFFFFFFFFFFFED
+:10B31000FFFFFFFFFEFEFEFEFEFEFEAAAAAAAAAAED
+:10B32000AAAAAAAAAAAAAAAAABABABFFFFFFFFFFD1
+:10B33000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFE1F
+:10B3400000000000000000000000000000000000FD
+:10B3500000000000000000000000000000000000ED
+:10B3600000000000000000000000000000000000DD
+:10B3700000000000000000000000000000000000CD
+:10B3800000000000000000000000000000000000BD
+:10B3900000000000000000000000000000000000AD
+:10B3A000000000000000000000000000000000009D
+:10B3B000000000000000000000000000000000008D
+:10B3C000000000000000000000000000000000007D
+:10B3D000000000000000000000000000000000006D
+:10B3E000000000000000000000000000000000005D
+:10B3F000000000000000000000000000000000004D
+:10B40000000000000000000000000000000000003C
+:10B41000000000000000000000000000000000002C
+:10B42000000000000000000000000000000000001C
+:10B43000000000000000000000000000000000000C
+:10B4400000000000000000000000000000000000FC
+:10B4500000000000000000000000000000000000EC
+:10B4600000000000000000000000000000000000DC
+:10B4700000000000000000000000000000000000CC
+:10B4800000000000000000000000000000000000BC
+:10B4900000000000000000000000000000000000AC
+:10B4A000000000000000000000000000000000009C
+:10B4B000000000000000000000000000000000008C
+:10B4C000000000000000000000000000000000007C
+:10B4D000000000000000000000000000000000006C
+:10B4E000000000000000000000000000000000005C
+:10B4F000000000000000000000000000000000004C
+:10B50000000000000000000000000000000000003B
+:10B51000000000000000000000000000000000002B
+:10B52000000000000000000000000000000000001B
+:10B53000000000000000000000000000000000000B
+:10B5400000000000000000000000000000000000FB
+:10B5500000000000000000000000000000000000EB
+:10B5600000000000000000000000000000000000DB
+:10B5700000000000000000000000000000000000CB
+:10B5800000000000000000000000000000000000BB
+:10B5900000000000000000000000000000000000AB
+:10B5A000000000000000000000000000000000009B
+:10B5B000000000000000000000000000000000008B
+:10B5C000000000000000000000000000000000007B
+:10B5D000000000000000000000000000000000006B
+:10B5E000000000000000000000000000000000005B
+:10B5F000000000000000000000000000000000004B
+:10B60000000000000000000000000000000000003A
+:10B61000000000000000000000000000000000002A
+:10B62000000000000000000000000000000000001A
+:10B63000000000000000000000000000000000000A
+:10B6400000000000000000000000000000000000FA
+:10B6500000000000000000000000000000000000EA
+:10B6600000000000000000000000000000000000DA
+:10B6700000000000000000000000000000000000CA
+:10B6800000000000000000000000000000000000BA
+:10B6900000000000000000000000000000000000AA
+:10B6A000000000000000000000000000000000009A
+:10B6B000000000000000000000000000000000008A
+:10B6C000000000000000000000000000000000007A
+:10B6D000000000000000000000000000000000006A
+:10B6E000000000000000000000000000000000005A
+:10B6F000000000000000000000000000000000004A
+:10B70000ABABABABABABABABFFFFFFFFFFFFFFFFE9
+:10B71000FFFFFFFFFEFEFEFEFEFEFEAAAAAAAAAAE9
+:10B72000AAAAAAAAAAAAAAAAABABABFFFFFFFFFFCD
+:10B73000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFE1B
+:10B7400000000000000000000000000000000000F9
+:10B7500000000000000000000000000000000000E9
+:10B7600000000000000000000000000000000000D9
+:10B7700000000000000000000000000000000000C9
+:10B7800000000000000000000000000000000000B9
+:10B7900000000000000000000000000000000000A9
+:10B7A0000000000000000000000000000000000099
+:10B7B0000000000000000000000000000000000089
+:10B7C0000000000000000000000000000000000079
+:10B7D0000000000000000000000000000000000069
+:10B7E0000000000000000000000000000000000059
+:10B7F0000000000000000000000000000000000049
+:10B800000000000000000000000000000000000038
+:10B810000000000000000000000000000000000028
+:10B820000000000000000000000000000000000018
+:10B830000000000000000000000000000000000008
+:10B8400000000000000000000000000000000000F8
+:10B8500000000000000000000000000000000000E8
+:10B8600000000000000000000000000000000000D8
+:10B8700000000000000000000000000000000000C8
+:10B8800000000000000000000000000000000000B8
+:10B8900000000000000000000000000000000000A8
+:10B8A0000000000000000000000000000000000098
+:10B8B0000000000000000000000000000000000088
+:10B8C0000000000000000000000000000000000078
+:10B8D0000000000000000000000000000000000068
+:10B8E0000000000000000000000000000000000058
+:10B8F0000000000000000000000000000000000048
+:10B900000000000000000000000000000000000037
+:10B910000000000000000000000000000000000027
+:10B920000000000000000000000000000000000017
+:10B930000000000000000000000000000000000007
+:10B9400000000000000000000000000000000000F7
+:10B9500000000000000000000000000000000000E7
+:10B9600000000000000000000000000000000000D7
+:10B9700000000000000000000000000000000000C7
+:10B9800000000000000000000000000000000000B7
+:10B9900000000000000000000000000000000000A7
+:10B9A0000000000000000000000000000000000097
+:10B9B0000000000000000000000000000000000087
+:10B9C0000000000000000000000000000000000077
+:10B9D0000000000000000000000000000000000067
+:10B9E0000000000000000000000000000000000057
+:10B9F0000000000000000000000000000000000047
+:10BA00000000000000000000000000000000000036
+:10BA10000000000000000000000000000000000026
+:10BA20000000000000000000000000000000000016
+:10BA30000000000000000000000000000000000006
+:10BA400000000000000000000000000000000000F6
+:10BA500000000000000000000000000000000000E6
+:10BA600000000000000000000000000000000000D6
+:10BA700000000000000000000000000000000000C6
+:10BA800000000000000000000000000000000000B6
+:10BA900000000000000000000000000000000000A6
+:10BAA0000000000000000000000000000000000096
+:10BAB0000000000000000000000000000000000086
+:10BAC0000000000000000000000000000000000076
+:10BAD0000000000000000000000000000000000066
+:10BAE0000000000000000000000000000000000056
+:10BAF0000000000000000000000000000000000046
+:10BB0000ABABABABABABABABFFFFFFFFFFFFFFFFE5
+:10BB1000FFFFFFFFFEFEFEFEFEFEFEAAAAAAAAAAE5
+:10BB2000AAAAAAAAAAAAAAAAABABABFFFFFFFFFFC9
+:10BB3000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFE17
+:10BB400000000000000000000000000000000000F5
+:10BB500000000000000000000000000000000000E5
+:10BB600000000000000000000000000000000000D5
+:10BB700000000000000000000000000000000000C5
+:10BB800000000000000000000000000000000000B5
+:10BB900000000000000000000000000000000000A5
+:10BBA0000000000000000000000000000000000095
+:10BBB0000000000000000000000000000000000085
+:10BBC0000000000000000000000000000000000075
+:10BBD0000000000000000000000000000000000065
+:10BBE0000000000000000000000000000000000055
+:10BBF0000000000000000000000000000000000045
+:10BC00000000000000000000000000000000000034
+:10BC10000000000000000000000000000000000024
+:10BC20000000000000000000000000000000000014
+:10BC30000000000000000000000000000000000004
+:10BC400000000000000000000000000000000000F4
+:10BC500000000000000000000000000000000000E4
+:10BC600000000000000000000000000000000000D4
+:10BC700000000000000000000000000000000000C4
+:10BC800000000000000000000000000000000000B4
+:10BC900000000000000000000000000000000000A4
+:10BCA0000000000000000000000000000000000094
+:10BCB0000000000000000000000000000000000084
+:10BCC0000000000000000000000000000000000074
+:10BCD0000000000000000000000000000000000064
+:10BCE0000000000000000000000000000000000054
+:10BCF0000000000000000000000000000000000044
+:10BD00000000000000000000000000000000000033
+:10BD10000000000000000000000000000000000023
+:10BD20000000000000000000000000000000000013
+:10BD30000000000000000000000000000000000003
+:10BD400000000000000000000000000000000000F3
+:10BD500000000000000000000000000000000000E3
+:10BD600000000000000000000000000000000000D3
+:10BD700000000000000000000000000000000000C3
+:10BD800000000000000000000000000000000000B3
+:10BD900000000000000000000000000000000000A3
+:10BDA0000000000000000000000000000000000093
+:10BDB0000000000000000000000000000000000083
+:10BDC0000000000000000000000000000000000073
+:10BDD0000000000000000000000000000000000063
+:10BDE0000000000000000000000000000000000053
+:10BDF0000000000000000000000000000000000043
+:10BE00000000000000000000000000000000000032
+:10BE10000000000000000000000000000000000022
+:10BE20000000000000000000000000000000000012
+:10BE30000000000000000000000000000000000002
+:10BE400000000000000000000000000000000000F2
+:10BE500000000000000000000000000000000000E2
+:10BE600000000000000000000000000000000000D2
+:10BE700000000000000000000000000000000000C2
+:10BE800000000000000000000000000000000000B2
+:10BE900000000000000000000000000000000000A2
+:10BEA0000000000000000000000000000000000092
+:10BEB0000000000000000000000000000000000082
+:10BEC0000000000000000000000000000000000072
+:10BED0000000000000000000000000000000000062
+:10BEE0000000000000000000000000000000000052
+:10BEF0000000000000000000000000000000000042
+:10BF0000ABABABABABABABABFFFFFFFFFFFFFFFFE1
+:10BF1000FFFFFFFFFEFEFEFEFEFEFEAAAAAAAAAAE1
+:10BF2000AAAAAAAAAAAAAAAAABABABFFFFFFFFFFC5
+:10BF3000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFE13
+:10BF400000000000000000000000000000000000F1
+:10BF500000000000000000000000000000000000E1
+:10BF600000000000000000000000000000000000D1
+:10BF700000000000000000000000000000000000C1
+:10BF800000000000000000000000000000000000B1
+:10BF900000000000000000000000000000000000A1
+:10BFA0000000000000000000000000000000000091
+:10BFB0000000000000000000000000000000000081
+:10BFC0000000000000000000000000000000000071
+:10BFD0000000000000000000000000000000000061
+:10BFE0000000000000000000000000000000000051
+:10BFF0000000000000000000000000000000000041
+:10C000000000000000000000000000000000000030
+:10C010000000000000000000000000000000000020
+:10C020000000000000000000000000000000000010
+:10C030000000000000000000000000000000000000
+:10C0400000000000000000000000000000000000F0
+:10C0500000000000000000000000000000000000E0
+:10C0600000000000000000000000000000000000D0
+:10C0700000000000000000000000000000000000C0
+:10C0800000000000000000000000000000000000B0
+:10C0900000000000000000000000000000000000A0
+:10C0A0000000000000000000000000000000000090
+:10C0B0000000000000000000000000000000000080
+:10C0C0000000000000000000000000000000000070
+:10C0D0000000000000000000000000000000000060
+:10C0E0000000000000000000000000000000000050
+:10C0F0000000000000000000000000000000000040
+:10C10000000000000000000000000000000000002F
+:10C11000000000000000000000000000000000001F
+:10C12000000000000000000000000000000000000F
+:10C1300000000000000000000000000000000000FF
+:10C1400000000000000000000000000000000000EF
+:10C1500000000000000000000000000000000000DF
+:10C1600000000000000000000000000000000000CF
+:10C1700000000000000000000000000000000000BF
+:10C1800000000000000000000000000000000000AF
+:10C19000000000000000000000000000000000009F
+:10C1A000000000000000000000000000000000008F
+:10C1B000000000000000000000000000000000007F
+:10C1C000000000000000000000000000000000006F
+:10C1D000000000000000000000000000000000005F
+:10C1E000000000000000000000000000000000004F
+:10C1F000000000000000000000000000000000003F
+:10C20000000000000000000000000000000000002E
+:10C21000000000000000000000000000000000001E
+:10C22000000000000000000000000000000000000E
+:10C2300000000000000000000000000000000000FE
+:10C2400000000000000000000000000000000000EE
+:10C2500000000000000000000000000000000000DE
+:10C2600000000000000000000000000000000000CE
+:10C2700000000000000000000000000000000000BE
+:10C2800000000000000000000000000000000000AE
+:10C29000000000000000000000000000000000009E
+:10C2A000000000000000000000000000000000008E
+:10C2B000000000000000000000000000000000007E
+:10C2C000000000000000000000000000000000006E
+:10C2D000000000000000000000000000000000005E
+:10C2E000000000000000000000000000000000004E
+:10C2F000000000000000000000000000000000003E
+:10C30000AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAF88
+:10C31000AFAFAFFFFFFFFFFFFFFFFFFAFAFAFAFA36
+:10C32000FAFAFAAAAAAA0000000000000000000021
+:10C3300000000000000000000000000000000000FD
+:10C3400000000000000000000000000000000000ED
+:10C3500000000000000000000000000000000000DD
+:10C3600000000000000000000000000000000000CD
+:10C3700000000000000000000000000000000000BD
+:10C3800000000000000000000000000000000000AD
+:10C39000000000000000000000000000000000009D
+:10C3A000000000000000000000000000000000008D
+:10C3B000000000000000000000000000000000007D
+:10C3C000000000000000000000000000000000006D
+:10C3D000000000000000000000000000000000005D
+:10C3E000000000000000000000000000000000004D
+:10C3F000000000000000000000000000000000003D
+:10C40000000000000000000000000000000000002C
+:10C41000000000000000000000000000000000001C
+:10C42000000000000000000000000000000000000C
+:10C4300000000000000000000000000000000000FC
+:10C4400000000000000000000000000000000000EC
+:10C4500000000000000000000000000000000000DC
+:10C4600000000000000000000000000000000000CC
+:10C4700000000000000000000000000000000000BC
+:10C4800000000000000000000000000000000000AC
+:10C49000000000000000000000000000000000009C
+:10C4A000000000000000000000000000000000008C
+:10C4B000000000000000000000000000000000007C
+:10C4C000000000000000000000000000000000006C
+:10C4D000000000000000000000000000000000005C
+:10C4E000000000000000000000000000000000004C
+:10C4F000000000000000000000000000000000003C
+:10C50000000000000000000000000000000000002B
+:10C51000000000000000000000000000000000001B
+:10C52000000000000000000000000000000000000B
+:10C5300000000000000000000000000000000000FB
+:10C5400000000000000000000000000000000000EB
+:10C5500000000000000000000000000000000000DB
+:10C5600000000000000000000000000000000000CB
+:10C5700000000000000000000000000000000000BB
+:10C5800000000000000000000000000000000000AB
+:10C59000000000000000000000000000000000009B
+:10C5A000000000000000000000000000000000008B
+:10C5B000000000000000000000000000000000007B
+:10C5C000000000000000000000000000000000006B
+:10C5D000000000000000000000000000000000005B
+:10C5E000000000000000000000000000000000004B
+:10C5F000000000000000000000000000000000003B
+:10C60000000000000000000000000000000000002A
+:10C61000000000000000000000000000000000001A
+:10C62000000000000000000000000000000000000A
+:10C6300000000000000000000000000000000000FA
+:10C6400000000000000000000000000000000000EA
+:10C6500000000000000000000000000000000000DA
+:10C6600000000000000000000000000000000000CA
+:10C6700000000000000000000000000000000000BA
+:10C6800000000000000000000000000000000000AA
+:10C69000000000000000000000000000000000009A
+:10C6A000000000000000000000000000000000008A
+:10C6B000000000000000000000000000000000007A
+:10C6C000000000000000000000000000000000006A
+:10C6D000000000000000000000000000000000005A
+:10C6E000000000000000000000000000000000004A
+:10C6F000000000000000000000000000000000003A
+:10C70000AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA89
+:10C71000AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA79
+:10C72000AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA69
+:10C73000AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA59
+:10C74000AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA49
+:10C75000AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA39
+:10C76000AAAAAAAAAA000000000000000000000077
+:10C7700000000000000000000000000000000000B9
+:10C7800000000000000000000000000000000000A9
+:10C790000000000000000000000000000000000099
+:10C7A0000000000000000000000000000000000089
+:10C7B0000000000000000000000000000000000079
+:10C7C0000000000000000000000000000000000069
+:10C7D0000000000000000000000000000000000059
+:10C7E0000000000000000000000000000000000049
+:10C7F0000000000000000000000000000000000039
+:10C800000000000000000000000000000000000028
+:10C810000000000000000000000000000000000018
+:10C820000000000000000000000000000000000008
+:10C8300000000000000000000000000000000000F8
+:10C8400000000000000000000000000000000000E8
+:10C8500000000000000000000000000000000000D8
+:10C8600000000000000000000000000000000000C8
+:10C8700000000000000000000000000000000000B8
+:10C8800000000000000000000000000000000000A8
+:10C890000000000000000000000000000000000098
+:10C8A0000000000000000000000000000000000088
+:10C8B0000000000000000000000000000000000078
+:10C8C0000000000000000000000000000000000068
+:10C8D0000000000000000000000000000000000058
+:10C8E0000000000000000000000000000000000048
+:10C8F0000000000000000000000000000000000038
+:10C900000000000000000000000000000000000027
+:10C910000000000000000000000000000000000017
+:10C920000000000000000000000000000000000007
+:10C9300000000000000000000000000000000000F7
+:10C9400000000000000000000000000000000000E7
+:10C9500000000000000000000000000000000000D7
+:10C9600000000000000000000000000000000000C7
+:10C9700000000000000000000000000000000000B7
+:10C9800000000000000000000000000000000000A7
+:10C990000000000000000000000000000000000097
+:10C9A0000000000000000000000000000000000087
+:10C9B0000000000000000000000000000000000077
+:10C9C0000000000000000000000000000000000067
+:10C9D0000000000000000000000000000000000057
+:10C9E0000000000000000000000000000000000047
+:10C9F0000000000000000000000000000000000037
+:10CA00000000000000000000000000000000000026
+:10CA10000000000000000000000000000000000016
+:10CA20000000000000000000000000000000000006
+:10CA300000000000000000000000000000000000F6
+:10CA400000000000000000000000000000000000E6
+:10CA500000000000000000000000000000000000D6
+:10CA600000000000000000000000000000000000C6
+:10CA700000000000000000000000000000000000B6
+:10CA800000000000000000000000000000000000A6
+:10CA90000000000000000000000000000000000096
+:10CAA0000000000000000000000000000000000086
+:10CAB0000000000000000000000000000000000076
+:10CAC0000000000000000000000000000000000066
+:10CAD0000000000000000000000000000000000056
+:10CAE0000000000000000000000000000000000046
+:10CAF0000000000000000000000000000000000036
+:10CB0000AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA85
+:10CB1000AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA75
+:10CB2000AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA65
+:10CB3000AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA55
+:10CB4000AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA45
+:10CB5000AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA35
+:10CB6000AAAAAAAAAA000000000000000000000073
+:10CB700000000000000000000000000000000000B5
+:10CB800000000000000000000000000000000000A5
+:10CB90000000000000000000000000000000000095
+:10CBA0000000000000000000000000000000000085
+:10CBB0000000000000000000000000000000000075
+:10CBC0000000000000000000000000000000000065
+:10CBD0000000000000000000000000000000000055
+:10CBE0000000000000000000000000000000000045
+:10CBF0000000000000000000000000000000000035
+:10CC00000000000000000000000000000000000024
+:10CC10000000000000000000000000000000000014
+:10CC20000000000000000000000000000000000004
+:10CC300000000000000000000000000000000000F4
+:10CC400000000000000000000000000000000000E4
+:10CC500000000000000000000000000000000000D4
+:10CC600000000000000000000000000000000000C4
+:10CC700000000000000000000000000000000000B4
+:10CC800000000000000000000000000000000000A4
+:10CC90000000000000000000000000000000000094
+:10CCA0000000000000000000000000000000000084
+:10CCB0000000000000000000000000000000000074
+:10CCC0000000000000000000000000000000000064
+:10CCD0000000000000000000000000000000000054
+:10CCE0000000000000000000000000000000000044
+:10CCF0000000000000000000000000000000000034
+:10CD00000000000000000000000000000000000023
+:10CD10000000000000000000000000000000000013
+:10CD20000000000000000000000000000000000003
+:10CD300000000000000000000000000000000000F3
+:10CD400000000000000000000000000000000000E3
+:10CD500000000000000000000000000000000000D3
+:10CD600000000000000000000000000000000000C3
+:10CD700000000000000000000000000000000000B3
+:10CD800000000000000000000000000000000000A3
+:10CD90000000000000000000000000000000000093
+:10CDA0000000000000000000000000000000000083
+:10CDB0000000000000000000000000000000000073
+:10CDC0000000000000000000000000000000000063
+:10CDD0000000000000000000000000000000000053
+:10CDE0000000000000000000000000000000000043
+:10CDF0000000000000000000000000000000000033
+:10CE00000000000000000000000000000000000022
+:10CE10000000000000000000000000000000000012
+:10CE20000000000000000000000000000000000002
+:10CE300000000000000000000000000000000000F2
+:10CE400000000000000000000000000000000000E2
+:10CE500000000000000000000000000000000000D2
+:10CE600000000000000000000000000000000000C2
+:10CE700000000000000000000000000000000000B2
+:10CE800000000000000000000000000000000000A2
+:10CE90000000000000000000000000000000000092
+:10CEA0000000000000000000000000000000000082
+:10CEB0000000000000000000000000000000000072
+:10CEC0000000000000000000000000000000000062
+:10CED0000000000000000000000000000000000052
+:10CEE0000000000000000000000000000000000042
+:10CEF0000000000000000000000000000000000032
+:10CF0000AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA81
+:10CF1000AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA71
+:10CF2000AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA61
+:10CF3000AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA51
+:10CF4000AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA41
+:10CF5000AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA31
+:10CF6000AAAAAAAAAAAA00000000000000000000C5
+:10CF700000000000000000000000000000000000B1
+:10CF800000000000000000000000000000000000A1
+:10CF90000000000000000000000000000000000091
+:10CFA0000000000000000000000000000000000081
+:10CFB0000000000000000000000000000000000071
+:10CFC0000000000000000000000000000000000061
+:10CFD0000000000000000000000000000000000051
+:10CFE0000000000000000000000000000000000041
+:10CFF0000000000000000000000000000000000031
+:10D000000000000000000000000000000000000020
+:10D010000000000000000000000000000000000010
+:10D020000000000000000000000000000000000000
+:10D0300000000000000000000000000000000000F0
+:10D0400000000000000000000000000000000000E0
+:10D0500000000000000000000000000000000000D0
+:10D0600000000000000000000000000000000000C0
+:10D0700000000000000000000000000000000000B0
+:10D0800000000000000000000000000000000000A0
+:10D090000000000000000000000000000000000090
+:10D0A0000000000000000000000000000000000080
+:10D0B0000000000000000000000000000000000070
+:10D0C0000000000000000000000000000000000060
+:10D0D0000000000000000000000000000000000050
+:10D0E0000000000000000000000000000000000040
+:10D0F0000000000000000000000000000000000030
+:10D10000000000000000000000000000000000001F
+:10D11000000000000000000000000000000000000F
+:10D1200000000000000000000000000000000000FF
+:10D1300000000000000000000000000000000000EF
+:10D1400000000000000000000000000000000000DF
+:10D1500000000000000000000000000000000000CF
+:10D1600000000000000000000000000000000000BF
+:10D1700000000000000000000000000000000000AF
+:10D18000000000000000000000000000000000009F
+:10D19000000000000000000000000000000000008F
+:10D1A000000000000000000000000000000000007F
+:10D1B000000000000000000000000000000000006F
+:10D1C000000000000000000000000000000000005F
+:10D1D000000000000000000000000000000000004F
+:10D1E000000000000000000000000000000000003F
+:10D1F000000000000000000000000000000000002F
+:10D20000000000000000000000000000000000001E
+:10D21000000000000000000000000000000000000E
+:10D2200000000000000000000000000000000000FE
+:10D2300000000000000000000000000000000000EE
+:10D2400000000000000000000000000000000000DE
+:10D2500000000000000000000000000000000000CE
+:10D2600000000000000000000000000000000000BE
+:10D2700000000000000000000000000000000000AE
+:10D28000000000000000000000000000000000009E
+:10D29000000000000000000000000000000000008E
+:10D2A000000000000000000000000000000000007E
+:10D2B000000000000000000000000000000000006E
+:10D2C000000000000000000000000000000000005E
+:10D2D000000000000000000000000000000000004E
+:10D2E000000000000000000000000000000000003E
+:10D2F000000000000000000000000000000000002E
+:10D30000AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA7D
+:10D31000AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA6D
+:10D32000AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA5D
+:10D33000AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA4D
+:10D34000AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA3D
+:10D35000AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA2D
+:10D36000AAAAAAAAAAAA00000000000000000000C1
+:10D3700000000000000000000000000000000000AD
+:10D38000000000000000000000000000000000009D
+:10D39000000000000000000000000000000000008D
+:10D3A000000000000000000000000000000000007D
+:10D3B000000000000000000000000000000000006D
+:10D3C000000000000000000000000000000000005D
+:10D3D000000000000000000000000000000000004D
+:10D3E000000000000000000000000000000000003D
+:10D3F000000000000000000000000000000000002D
+:10D40000000000000000000000000000000000001C
+:10D41000000000000000000000000000000000000C
+:10D4200000000000000000000000000000000000FC
+:10D4300000000000000000000000000000000000EC
+:10D4400000000000000000000000000000000000DC
+:10D4500000000000000000000000000000000000CC
+:10D4600000000000000000000000000000000000BC
+:10D4700000000000000000000000000000000000AC
+:10D48000000000000000000000000000000000009C
+:10D49000000000000000000000000000000000008C
+:10D4A000000000000000000000000000000000007C
+:10D4B000000000000000000000000000000000006C
+:10D4C000000000000000000000000000000000005C
+:10D4D000000000000000000000000000000000004C
+:10D4E000000000000000000000000000000000003C
+:10D4F000000000000000000000000000000000002C
+:10D50000000000000000000000000000000000001B
+:10D51000000000000000000000000000000000000B
+:10D5200000000000000000000000000000000000FB
+:10D5300000000000000000000000000000000000EB
+:10D5400000000000000000000000000000000000DB
+:10D5500000000000000000000000000000000000CB
+:10D5600000000000000000000000000000000000BB
+:10D5700000000000000000000000000000000000AB
+:10D58000000000000000000000000000000000009B
+:10D59000000000000000000000000000000000008B
+:10D5A000000000000000000000000000000000007B
+:10D5B000000000000000000000000000000000006B
+:10D5C000000000000000000000000000000000005B
+:10D5D000000000000000000000000000000000004B
+:10D5E000000000000000000000000000000000003B
+:10D5F000000000000000000000000000000000002B
+:10D60000000000000000000000000000000000001A
+:10D61000000000000000000000000000000000000A
+:10D6200000000000000000000000000000000000FA
+:10D6300000000000000000000000000000000000EA
+:10D6400000000000000000000000000000000000DA
+:10D6500000000000000000000000000000000000CA
+:10D6600000000000000000000000000000000000BA
+:10D6700000000000000000000000000000000000AA
+:10D68000000000000000000000000000000000009A
+:10D69000000000000000000000000000000000008A
+:10D6A000000000000000000000000000000000007A
+:10D6B000000000000000000000000000000000006A
+:10D6C000000000000000000000000000000000005A
+:10D6D000000000000000000000000000000000004A
+:10D6E000000000000000000000000000000000003A
+:10D6F000000000000000000000000000000000002A
+:10D700005500550055005500550055005500550071
+:10D710005500550055005500550055005500550061
+:10D720005500550055005500550055005500550051
+:10D730005500AA00AA00AA00AA00AA00AA00AA00EE
+:10D74000AA00AA00AA00AA00AA00AA00AA00AA0089
+:10D75000AA00AA00AA00AA00AA00AA00AA00AA0079
+:10D76000AA00AA00FF000000000000000000000066
+:10D7700000000000000000000000000000000000A9
+:10D780000000000000000000000000000000000099
+:10D790000000000000000000000000000000000089
+:10D7A0000000000000000000000000000000000079
+:10D7B0000000000000000000000000000000000069
+:10D7C0000000000000000000000000000000000059
+:10D7D0000000000000000000000000000000000049
+:10D7E0000000000000000000000000000000000039
+:10D7F0000000000000000000000000000000000029
+:10D800000000000000000000000000000000000018
+:10D810000000000000000000000000000000000008
+:10D8200000000000000000000000000000000000F8
+:10D8300000000000000000000000000000000000E8
+:10D8400000000000000000000000000000000000D8
+:10D8500000000000000000000000000000000000C8
+:10D8600000000000000000000000000000000000B8
+:10D8700000000000000000000000000000000000A8
+:10D880000000000000000000000000000000000098
+:10D890000000000000000000000000000000000088
+:10D8A0000000000000000000000000000000000078
+:10D8B0000000000000000000000000000000000068
+:10D8C0000000000000000000000000000000000058
+:10D8D0000000000000000000000000000000000048
+:10D8E0000000000000000000000000000000000038
+:10D8F0000000000000000000000000000000000028
+:10D900000000000000000000000000000000000017
+:10D910000000000000000000000000000000000007
+:10D9200000000000000000000000000000000000F7
+:10D9300000000000000000000000000000000000E7
+:10D9400000000000000000000000000000000000D7
+:10D9500000000000000000000000000000000000C7
+:10D9600000000000000000000000000000000000B7
+:10D9700000000000000000000000000000000000A7
+:10D980000000000000000000000000000000000097
+:10D990000000000000000000000000000000000087
+:10D9A0000000000000000000000000000000000077
+:10D9B0000000000000000000000000000000000067
+:10D9C0000000000000000000000000000000000057
+:10D9D0000000000000000000000000000000000047
+:10D9E0000000000000000000000000000000000037
+:10D9F0000000000000000000000000000000000027
+:10DA00000000000000000000000000000000000016
+:10DA10000000000000000000000000000000000006
+:10DA200000000000000000000000000000000000F6
+:10DA300000000000000000000000000000000000E6
+:10DA400000000000000000000000000000000000D6
+:10DA500000000000000000000000000000000000C6
+:10DA600000000000000000000000000000000000B6
+:10DA700000000000000000000000000000000000A6
+:10DA80000000000000000000000000000000000096
+:10DA90000000000000000000000000000000000086
+:10DAA0000000000000000000000000000000000076
+:10DAB0000000000000000000000000000000000066
+:10DAC0000000000000000000000000000000000056
+:10DAD0000000000000000000000000000000000046
+:10DAE0000000000000000000000000000000000036
+:10DAF0000000000000000000000000000000000026
+:10DB00000000000000000000000000000000000015
+:10DB10000000000000000000000000000000000005
+:10DB200000000000000000000000000000000000F5
+:10DB300000000000000000000000000000000000E5
+:10DB400000000000000000000000000000000000D5
+:10DB500000000000000000000000000000000000C5
+:10DB600000000000FF0000000000000000000000B6
+:10DB700000000000000000000000000000000000A5
+:10DB80000000000000000000000000000000000095
+:10DB90000000000000000000000000000000000085
+:10DBA0000000000000000000000000000000000075
+:10DBB0000000000000000000000000000000000065
+:10DBC0000000000000000000000000000000000055
+:10DBD0000000000000000000000000000000000045
+:10DBE0000000000000000000000000000000000035
+:10DBF0000000000000000000000000000000000025
+:10DC00000000000000000000000000000000000014
+:10DC10000000000000000000000000000000000004
+:10DC200000000000000000000000000000000000F4
+:10DC300000000000000000000000000000000000E4
+:10DC400000000000000000000000000000000000D4
+:10DC500000000000000000000000000000000000C4
+:10DC600000000000000000000000000000000000B4
+:10DC700000000000000000000000000000000000A4
+:10DC80000000000000000000000000000000000094
+:10DC90000000000000000000000000000000000084
+:10DCA0000000000000000000000000000000000074
+:10DCB0000000000000000000000000000000000064
+:10DCC0000000000000000000000000000000000054
+:10DCD0000000000000000000000000000000000044
+:10DCE0000000000000000000000000000000000034
+:10DCF0000000000000000000000000000000000024
+:10DD00000000000000000000000000000000000013
+:10DD10000000000000000000000000000000000003
+:10DD200000000000000000000000000000000000F3
+:10DD300000000000000000000000000000000000E3
+:10DD400000000000000000000000000000000000D3
+:10DD500000000000000000000000000000000000C3
+:10DD600000000000000000000000000000000000B3
+:10DD700000000000000000000000000000000000A3
+:10DD80000000000000000000000000000000000093
+:10DD90000000000000000000000000000000000083
+:10DDA0000000000000000000000000000000000073
+:10DDB0000000000000000000000000000000000063
+:10DDC0000000000000000000000000000000000053
+:10DDD0000000000000000000000000000000000043
+:10DDE0000000000000000000000000000000000033
+:10DDF0000000000000000000000000000000000023
+:10DE00000000000000000000000000000000000012
+:10DE10000000000000000000000000000000000002
+:10DE200000000000000000000000000000000000F2
+:10DE300000000000000000000000000000000000E2
+:10DE400000000000000000000000000000000000D2
+:10DE500000000000000000000000000000000000C2
+:10DE600000000000000000000000000000000000B2
+:10DE700000000000000000000000000000000000A2
+:10DE80000000000000000000000000000000000092
+:10DE90000000000000000000000000000000000082
+:10DEA0000000000000000000000000000000000072
+:10DEB0000000000000000000000000000000000062
+:10DEC0000000000000000000000000000000000052
+:10DED0000000000000000000000000000000000042
+:10DEE0000000000000000000000000000000000032
+:10DEF0000000000000000000000000000000000022
+:10DF00005500550055005500550055005500550069
+:10DF10005500550055005500550055005500550059
+:10DF20005500550055005500550055005500550049
+:10DF30005500AA00AA00AA00AA00AA00AA00AA00E6
+:10DF4000AA00AA00AA00AA00AA00AA00AA00AA0081
+:10DF5000AA00AA00AA00AA00AA00AA00AA00AA0071
+:10DF6000AA00AA00FF00000000000000000000005E
+:10DF700000000000000000000000000000000000A1
+:10DF80000000000000000000000000000000000091
+:10DF90000000000000000000000000000000000081
+:10DFA0000000000000000000000000000000000071
+:10DFB0000000000000000000000000000000000061
+:10DFC0000000000000000000000000000000000051
+:10DFD0000000000000000000000000000000000041
+:10DFE0000000000000000000000000000000000031
+:10DFF0000000000000000000000000000000000021
+:10E000000000000000000000000000000000000010
+:10E010000000000000000000000000000000000000
+:10E0200000000000000000000000000000000000F0
+:10E0300000000000000000000000000000000000E0
+:10E0400000000000000000000000000000000000D0
+:10E0500000000000000000000000000000000000C0
+:10E0600000000000000000000000000000000000B0
+:10E0700000000000000000000000000000000000A0
+:10E080000000000000000000000000000000000090
+:10E090000000000000000000000000000000000080
+:10E0A0000000000000000000000000000000000070
+:10E0B0000000000000000000000000000000000060
+:10E0C0000000000000000000000000000000000050
+:10E0D0000000000000000000000000000000000040
+:10E0E0000000000000000000000000000000000030
+:10E0F0000000000000000000000000000000000020
+:10E10000000000000000000000000000000000000F
+:10E1100000000000000000000000000000000000FF
+:10E1200000000000000000000000000000000000EF
+:10E1300000000000000000000000000000000000DF
+:10E1400000000000000000000000000000000000CF
+:10E1500000000000000000000000000000000000BF
+:10E1600000000000000000000000000000000000AF
+:10E17000000000000000000000000000000000009F
+:10E18000000000000000000000000000000000008F
+:10E19000000000000000000000000000000000007F
+:10E1A000000000000000000000000000000000006F
+:10E1B000000000000000000000000000000000005F
+:10E1C000000000000000000000000000000000004F
+:10E1D000000000000000000000000000000000003F
+:10E1E000000000000000000000000000000000002F
+:10E1F000000000000000000000000000000000001F
+:10E20000000000000000000000000000000000000E
+:10E2100000000000000000000000000000000000FE
+:10E2200000000000000000000000000000000000EE
+:10E2300000000000000000000000000000000000DE
+:10E2400000000000000000000000000000000000CE
+:10E2500000000000000000000000000000000000BE
+:10E2600000000000000000000000000000000000AE
+:10E27000000000000000000000000000000000009E
+:10E28000000000000000000000000000000000008E
+:10E29000000000000000000000000000000000007E
+:10E2A000000000000000000000000000000000006E
+:10E2B000000000000000000000000000000000005E
+:10E2C000000000000000000000000000000000004E
+:10E2D000000000000000000000000000000000003E
+:10E2E000000000000000000000000000000000002E
+:10E2F000000000000000000000000000000000001E
+:10E30000000000000000000000000000000000000D
+:10E3100000000000000000000000000000000000FD
+:10E3200000000000000000000000000000000000ED
+:10E3300000000000000000000000000000000000DD
+:10E3400000000000000000000000000000000000CD
+:10E3500000000000000000000000000000000000BD
+:10E3600000000000FF0000000000000000000000AE
+:10E37000000000000000000000000000000000009D
+:10E38000000000000000000000000000000000008D
+:10E39000000000000000000000000000000000007D
+:10E3A000000000000000000000000000000000006D
+:10E3B000000000000000000000000000000000005D
+:10E3C000000000000000000000000000000000004D
+:10E3D000000000000000000000000000000000003D
+:10E3E000000000000000000000000000000000002D
+:10E3F000000000000000000000000000000000001D
+:10E40000000000000000000000000000000000000C
+:10E4100000000000000000000000000000000000FC
+:10E4200000000000000000000000000000000000EC
+:10E4300000000000000000000000000000000000DC
+:10E4400000000000000000000000000000000000CC
+:10E4500000000000000000000000000000000000BC
+:10E4600000000000000000000000000000000000AC
+:10E47000000000000000000000000000000000009C
+:10E48000000000000000000000000000000000008C
+:10E49000000000000000000000000000000000007C
+:10E4A000000000000000000000000000000000006C
+:10E4B000000000000000000000000000000000005C
+:10E4C000000000000000000000000000000000004C
+:10E4D000000000000000000000000000000000003C
+:10E4E000000000000000000000000000000000002C
+:10E4F000000000000000000000000000000000001C
+:10E50000000000000000000000000000000000000B
+:10E5100000000000000000000000000000000000FB
+:10E5200000000000000000000000000000000000EB
+:10E5300000000000000000000000000000000000DB
+:10E5400000000000000000000000000000000000CB
+:10E5500000000000000000000000000000000000BB
+:10E5600000000000000000000000000000000000AB
+:10E57000000000000000000000000000000000009B
+:10E58000000000000000000000000000000000008B
+:10E59000000000000000000000000000000000007B
+:10E5A000000000000000000000000000000000006B
+:10E5B000000000000000000000000000000000005B
+:10E5C000000000000000000000000000000000004B
+:10E5D000000000000000000000000000000000003B
+:10E5E000000000000000000000000000000000002B
+:10E5F000000000000000000000000000000000001B
+:10E60000000000000000000000000000000000000A
+:10E6100000000000000000000000000000000000FA
+:10E6200000000000000000000000000000000000EA
+:10E6300000000000000000000000000000000000DA
+:10E6400000000000000000000000000000000000CA
+:10E6500000000000000000000000000000000000BA
+:10E6600000000000000000000000000000000000AA
+:10E67000000000000000000000000000000000009A
+:10E68000000000000000000000000000000000008A
+:10E69000000000000000000000000000000000007A
+:10E6A000000000000000000000000000000000006A
+:10E6B000000000000000000000000000000000005A
+:10E6C000000000000000000000000000000000004A
+:10E6D000000000000000000000000000000000003A
+:10E6E000000000000000000000000000000000002A
+:10E6F000000000000000000000000000000000001A
+:10E700005500550055005500550055005500550061
+:10E710005500550055005500550055005500550051
+:10E720005500550055005500550055005500550041
+:10E730005500AA00AA00AA00AA00AA00AA00AA00DE
+:10E74000AA00AA00AA00AA00AA00AA00AA00AA0079
+:10E75000AA00AA00AA00AA00AA00AA00AA00AA0069
+:10E76000AA00AA00FF000000000000000000000056
+:10E770000000000000000000000000000000000099
+:10E780000000000000000000000000000000000089
+:10E790000000000000000000000000000000000079
+:10E7A0000000000000000000000000000000000069
+:10E7B0000000000000000000000000000000000059
+:10E7C0000000000000000000000000000000000049
+:10E7D0000000000000000000000000000000000039
+:10E7E0000000000000000000000000000000000029
+:10E7F0000000000000000000000000000000000019
+:10E800000000000000000000000000000000000008
+:10E8100000000000000000000000000000000000F8
+:10E8200000000000000000000000000000000000E8
+:10E8300000000000000000000000000000000000D8
+:10E8400000000000000000000000000000000000C8
+:10E8500000000000000000000000000000000000B8
+:10E8600000000000000000000000000000000000A8
+:10E870000000000000000000000000000000000098
+:10E880000000000000000000000000000000000088
+:10E890000000000000000000000000000000000078
+:10E8A0000000000000000000000000000000000068
+:10E8B0000000000000000000000000000000000058
+:10E8C0000000000000000000000000000000000048
+:10E8D0000000000000000000000000000000000038
+:10E8E0000000000000000000000000000000000028
+:10E8F0000000000000000000000000000000000018
+:10E900000000000000000000000000000000000007
+:10E9100000000000000000000000000000000000F7
+:10E9200000000000000000000000000000000000E7
+:10E9300000000000000000000000000000000000D7
+:10E9400000000000000000000000000000000000C7
+:10E9500000000000000000000000000000000000B7
+:10E9600000000000000000000000000000000000A7
+:10E970000000000000000000000000000000000097
+:10E980000000000000000000000000000000000087
+:10E990000000000000000000000000000000000077
+:10E9A0000000000000000000000000000000000067
+:10E9B0000000000000000000000000000000000057
+:10E9C0000000000000000000000000000000000047
+:10E9D0000000000000000000000000000000000037
+:10E9E0000000000000000000000000000000000027
+:10E9F0000000000000000000000000000000000017
+:10EA00000000000000000000000000000000000006
+:10EA100000000000000000000000000000000000F6
+:10EA200000000000000000000000000000000000E6
+:10EA300000000000000000000000000000000000D6
+:10EA400000000000000000000000000000000000C6
+:10EA500000000000000000000000000000000000B6
+:10EA600000000000000000000000000000000000A6
+:10EA70000000000000000000000000000000000096
+:10EA80000000000000000000000000000000000086
+:10EA90000000000000000000000000000000000076
+:10EAA0000000000000000000000000000000000066
+:10EAB0000000000000000000000000000000000056
+:10EAC0000000000000000000000000000000000046
+:10EAD0000000000000000000000000000000000036
+:10EAE0000000000000000000000000000000000026
+:10EAF0000000000000000000000000000000000016
+:10EB00000000000000000000000000000000000005
+:10EB100000000000000000000000000000000000F5
+:10EB200000000000000000000000000000000000E5
+:10EB300000000000000000000000000000000000D5
+:10EB400000000000000000000000000000000000C5
+:10EB500000000000000000000000000000000000B5
+:10EB60000000000000FF00000000000000000000A6
+:10EB70000000000000000000000000000000000095
+:10EB80000000000000000000000000000000000085
+:10EB90000000000000000000000000000000000075
+:10EBA0000000000000000000000000000000000065
+:10EBB0000000000000000000000000000000000055
+:10EBC0000000000000000000000000000000000045
+:10EBD0000000000000000000000000000000000035
+:10EBE0000000000000000000000000000000000025
+:10EBF0000000000000000000000000000000000015
+:10EC0000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF14
+:10EC1000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF04
+:10EC2000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF4
+:10EC3000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE4
+:10EC4000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD4
+:10EC5000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC4
+:10EC6000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB4
+:10EC7000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA4
+:10EC8000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF94
+:10EC9000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF84
+:10ECA000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF74
+:10ECB000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF64
+:10ECC000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF54
+:10ECD000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF44
+:10ECE000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF34
+:10ECF000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF24
+:10ED00000000000000000000000000000000000003
+:10ED100000000000000000000000000000000000F3
+:10ED200000000000000000000000000000000000E3
+:10ED300000000000000000000000000000000000D3
+:10ED400000000000000000000000000000000000C3
+:10ED500000000000000000000000000000000000B3
+:10ED600000000000000000000000000000000000A3
+:10ED70000000000000000000000000000000000093
+:10ED80000000000000000000000000000000000083
+:10ED90000000000000000000000000000000000073
+:10EDA0000000000000000000000000000000000063
+:10EDB0000000000000000000000000000000000053
+:10EDC0000000000000000000000000000000000043
+:10EDD0000000000000000000000000000000000033
+:10EDE0000000000000000000000000000000000023
+:10EDF0000000000000000000000000000000000013
+:10EE00000000000000000000000000000000000002
+:10EE100000000000000000000000000000000000F2
+:10EE200000000000000000000000000000000000E2
+:10EE300000000000000000000000000000000000D2
+:10EE400000000000000000000000000000000000C2
+:10EE500000000000000000000000000000000000B2
+:10EE600000000000000000000000000000000000A2
+:10EE70000000000000000000000000000000000092
+:10EE80000000000000000000000000000000000082
+:10EE90000000000000000000000000000000000072
+:10EEA0000000000000000000000000000000000062
+:10EEB0000000000000000000000000000000000052
+:10EEC0000000000000000000000000000000000042
+:10EED0000000000000000000000000000000000032
+:10EEE0000000000000000000000000000000000022
+:10EEF0000000000000000000000000000000000012
+:10EF00005500550055005500550055005500550059
+:10EF10005500550055005500550055005500550049
+:10EF20005500550055005500550055005500550039
+:10EF30005500AA00AA00AA00AA00AA00AA00AA00D6
+:10EF4000AA00AA00AA00AA00AA00AA00AA00AA0071
+:10EF5000AA00AA00AA00AA00AA00AA00AA00AA0061
+:10EF6000AA00AA00FF00000000000000000000004E
+:10EF70000000000000000000000000000000000091
+:10EF80000000000000000000000000000000000081
+:10EF90000000000000000000000000000000000071
+:10EFA0000000000000000000000000000000000061
+:10EFB0000000000000000000000000000000000051
+:10EFC0000000000000000000000000000000000041
+:10EFD0000000000000000000000000000000000031
+:10EFE0000000000000000000000000000000000021
+:10EFF0000000000000000000000000000000000011
+:10F000000000000000000000000000000000000000
+:10F0100000000000000000000000000000000000F0
+:10F0200000000000000000000000000000000000E0
+:10F0300000000000000000000000000000000000D0
+:10F0400000000000000000000000000000000000C0
+:10F0500000000000000000000000000000000000B0
+:10F0600000000000000000000000000000000000A0
+:10F070000000000000000000000000000000000090
+:10F080000000000000000000000000000000000080
+:10F090000000000000000000000000000000000070
+:10F0A0000000000000000000000000000000000060
+:10F0B0000000000000000000000000000000000050
+:10F0C0000000000000000000000000000000000040
+:10F0D0000000000000000000000000000000000030
+:10F0E0000000000000000000000000000000000020
+:10F0F0000000000000000000000000000000000010
+:10F1000000000000000000000000000000000000FF
+:10F1100000000000000000000000000000000000EF
+:10F1200000000000000000000000000000000000DF
+:10F1300000000000000000000000000000000000CF
+:10F1400000000000000000000000000000000000BF
+:10F1500000000000000000000000000000000000AF
+:10F16000000000000000000000000000000000009F
+:10F17000000000000000000000000000000000008F
+:10F18000000000000000000000000000000000007F
+:10F19000000000000000000000000000000000006F
+:10F1A000000000000000000000000000000000005F
+:10F1B000000000000000000000000000000000004F
+:10F1C000000000000000000000000000000000003F
+:10F1D000000000000000000000000000000000002F
+:10F1E000000000000000000000000000000000001F
+:10F1F000000000000000000000000000000000000F
+:10F2000000000000000000000000000000000000FE
+:10F2100000000000000000000000000000000000EE
+:10F2200000000000000000000000000000000000DE
+:10F2300000000000000000000000000000000000CE
+:10F2400000000000000000000000000000000000BE
+:10F2500000000000000000000000000000000000AE
+:10F26000000000000000000000000000000000009E
+:10F27000000000000000000000000000000000008E
+:10F28000000000000000000000000000000000007E
+:10F29000000000000000000000000000000000006E
+:10F2A000000000000000000000000000000000005E
+:10F2B000000000000000000000000000000000004E
+:10F2C000000000000000000000000000000000003E
+:10F2D000000000000000000000000000000000002E
+:10F2E000000000000000000000000000000000001E
+:10F2F000000000000000000000000000000000000E
+:10F3000000000000000000000000000000000000FD
+:10F3100000000000000000000000000000000000ED
+:10F3200000000000000000000000000000000000DD
+:10F3300000000000000000000000000000000000CD
+:10F3400000000000000000000000000000000000BD
+:10F3500000000000000000000000000000000000AD
+:10F360000000000000FF000000000000000000009E
+:10F37000000000000000000000000000000000008D
+:10F38000000000000000000000000000000000007D
+:10F39000000000000000000000000000000000006D
+:10F3A000000000000000000000000000000000005D
+:10F3B000000000000000000000000000000000004D
+:10F3C000000000000000000000000000000000003D
+:10F3D000000000000000000000000000000000002D
+:10F3E000000000000000000000000000000000001D
+:10F3F000000000000000000000000000000000000D
+:10F4000000000000000000000000000000000000FC
+:10F4100000000000000000000000000000000000EC
+:10F4200000000000000000000000000000000000DC
+:10F4300000000000000000000000000000000000CC
+:10F4400000000000000000000000000000000000BC
+:10F4500000000000000000000000000000000000AC
+:10F46000000000000000000000000000000000009C
+:10F47000000000000000000000000000000000008C
+:10F48000000000000000000000000000000000007C
+:10F49000000000000000000000000000000000006C
+:10F4A000000000000000000000000000000000005C
+:10F4B000000000000000000000000000000000004C
+:10F4C000000000000000000000000000000000003C
+:10F4D000000000000000000000000000000000002C
+:10F4E000000000000000000000000000000000001C
+:10F4F000000000000000000000000000000000000C
+:10F5000000000000000000000000000000000000FB
+:10F5100000000000000000000000000000000000EB
+:10F5200000000000000000000000000000000000DB
+:10F5300000000000000000000000000000000000CB
+:10F5400000000000000000000000000000000000BB
+:10F5500000000000000000000000000000000000AB
+:10F56000000000000000000000000000000000009B
+:10F57000000000000000000000000000000000008B
+:10F58000000000000000000000000000000000007B
+:10F59000000000000000000000000000000000006B
+:10F5A000000000000000000000000000000000005B
+:10F5B000000000000000000000000000000000004B
+:10F5C000000000000000000000000000000000003B
+:10F5D000000000000000000000000000000000002B
+:10F5E000000000000000000000000000000000001B
+:10F5F000000000000000000000000000000000000B
+:10F6000000000000000000000000000000000000FA
+:10F6100000000000000000000000000000000000EA
+:10F6200000000000000000000000000000000000DA
+:10F6300000000000000000000000000000000000CA
+:10F6400000000000000000000000000000000000BA
+:10F6500000000000000000000000000000000000AA
+:10F66000000000000000000000000000000000009A
+:10F67000000000000000000000000000000000008A
+:10F68000000000000000000000000000000000007A
+:10F69000000000000000000000000000000000006A
+:10F6A000000000000000000000000000000000005A
+:10F6B000000000000000000000000000000000004A
+:10F6C000000000000000000000000000000000003A
+:10F6D000000000000000000000000000000000002A
+:10F6E000000000000000000000000000000000001A
+:10F6F000000000000000000000000000000000000A
+:10F70000AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA59
+:10F71000AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA49
+:10F72000AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA39
+:10F73000AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA29
+:10F74000AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA19
+:10F75000AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA09
+:10F76000AAAAAAAAAA000000000000000000000047
+:10F770000000000000000000000000000000000089
+:10F780000000000000000000000000000000000079
+:10F790000000000000000000000000000000000069
+:10F7A0000000000000000000000000000000000059
+:10F7B0000000000000000000000000000000000049
+:10F7C0000000000000000000000000000000000039
+:10F7D0000000000000000000000000000000000029
+:10F7E0000000000000000000000000000000000019
+:10F7F0000000000000000000000000000000000009
+:10F8000000000000000000000000000000000000F8
+:10F8100000000000000000000000000000000000E8
+:10F8200000000000000000000000000000000000D8
+:10F8300000000000000000000000000000000000C8
+:10F8400000000000000000000000000000000000B8
+:10F8500000000000000000000000000000000000A8
+:10F860000000000000000000000000000000000098
+:10F870000000000000000000000000000000000088
+:10F880000000000000000000000000000000000078
+:10F890000000000000000000000000000000000068
+:10F8A0000000000000000000000000000000000058
+:10F8B0000000000000000000000000000000000048
+:10F8C0000000000000000000000000000000000038
+:10F8D0000000000000000000000000000000000028
+:10F8E0000000000000000000000000000000000018
+:10F8F0000000000000000000000000000000000008
+:10F9000000000000000000000000000000000000F7
+:10F9100000000000000000000000000000000000E7
+:10F9200000000000000000000000000000000000D7
+:10F9300000000000000000000000000000000000C7
+:10F9400000000000000000000000000000000000B7
+:10F9500000000000000000000000000000000000A7
+:10F960000000000000000000000000000000000097
+:10F970000000000000000000000000000000000087
+:10F980000000000000000000000000000000000077
+:10F990000000000000000000000000000000000067
+:10F9A0000000000000000000000000000000000057
+:10F9B0000000000000000000000000000000000047
+:10F9C0000000000000000000000000000000000037
+:10F9D0000000000000000000000000000000000027
+:10F9E0000000000000000000000000000000000017
+:10F9F0000000000000000000000000000000000007
+:10FA000000000000000000000000000000000000F6
+:10FA100000000000000000000000000000000000E6
+:10FA200000000000000000000000000000000000D6
+:10FA300000000000000000000000000000000000C6
+:10FA400000000000000000000000000000000000B6
+:10FA500000000000000000000000000000000000A6
+:10FA60000000000000000000000000000000000096
+:10FA70000000000000000000000000000000000086
+:10FA80000000000000000000000000000000000076
+:10FA90000000000000000000000000000000000066
+:10FAA0000000000000000000000000000000000056
+:10FAB0000000000000000000000000000000000046
+:10FAC0000000000000000000000000000000000036
+:10FAD0000000000000000000000000000000000026
+:10FAE0000000000000000000000000000000000016
+:10FAF0000000000000000000000000000000000006
+:10FB0000AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA55
+:10FB1000AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA45
+:10FB2000AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA35
+:10FB3000AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA25
+:10FB4000AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA15
+:10FB5000AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA05
+:10FB6000AAAAAAAAAA000000000000000000000043
+:10FB70000000000000000000000000000000000085
+:10FB80000000000000000000000000000000000075
+:10FB90000000000000000000000000000000000065
+:10FBA0000000000000000000000000000000000055
+:10FBB0000000000000000000000000000000000045
+:10FBC0000000000000000000000000000000000035
+:10FBD0000000000000000000000000000000000025
+:10FBE0000000000000000000000000000000000015
+:10FBF0000000000000000000000000000000000005
+:10FC000000000000000000000000000000000000F4
+:10FC100000000000000000000000000000000000E4
+:10FC200000000000000000000000000000000000D4
+:10FC300000000000000000000000000000000000C4
+:10FC400000000000000000000000000000000000B4
+:10FC500000000000000000000000000000000000A4
+:10FC60000000000000000000000000000000000094
+:10FC70000000000000000000000000000000000084
+:10FC80000000000000000000000000000000000074
+:10FC90000000000000000000000000000000000064
+:10FCA0000000000000000000000000000000000054
+:10FCB0000000000000000000000000000000000044
+:10FCC0000000000000000000000000000000000034
+:10FCD0000000000000000000000000000000000024
+:10FCE0000000000000000000000000000000000014
+:10FCF0000000000000000000000000000000000004
+:10FD000000000000000000000000000000000000F3
+:10FD100000000000000000000000000000000000E3
+:10FD200000000000000000000000000000000000D3
+:10FD300000000000000000000000000000000000C3
+:10FD400000000000000000000000000000000000B3
+:10FD500000000000000000000000000000000000A3
+:10FD60000000000000000000000000000000000093
+:10FD70000000000000000000000000000000000083
+:10FD80000000000000000000000000000000000073
+:10FD90000000000000000000000000000000000063
+:10FDA0000000000000000000000000000000000053
+:10FDB0000000000000000000000000000000000043
+:10FDC0000000000000000000000000000000000033
+:10FDD0000000000000000000000000000000000023
+:10FDE0000000000000000000000000000000000013
+:10FDF0000000000000000000000000000000000003
+:10FE000000000000000000000000000000000000F2
+:10FE100000000000000000000000000000000000E2
+:10FE200000000000000000000000000000000000D2
+:10FE300000000000000000000000000000000000C2
+:10FE400000000000000000000000000000000000B2
+:10FE500000000000000000000000000000000000A2
+:10FE60000000000000000000000000000000000092
+:10FE70000000000000000000000000000000000082
+:10FE80000000000000000000000000000000000072
+:10FE90000000000000000000000000000000000062
+:10FEA0000000000000000000000000000000000052
+:10FEB0000000000000000000000000000000000042
+:10FEC0000000000000000000000000000000000032
+:10FED0000000000000000000000000000000000022
+:10FEE0000000000000000000000000000000000012
+:10FEF0000000000000000000000000000000000002
+:10FF0000AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA51
+:10FF1000AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA41
+:10FF2000AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA31
+:10FF3000AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA21
+:10FF4000AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA11
+:10FF5000AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA01
+:10FF6000AAAAAAAAAAAA0000000000000000000095
+:10FF70000000000000000000000000000000000081
+:10FF80000000000000000000000000000000000071
+:10FF90000000000000000000000000000000000061
+:10FFA0000000000000000000000000000000000051
+:10FFB0000000000000000000000000000000000041
+:10FFC0000000000000000000000000000000000031
+:10FFD0000000000000000000000000000000000021
+:10FFE0000000000000000000000000000000000011
+:10FFF0000000000000000000000000000000000001
+:020000040001F9
+:1000000000000000000000000000000000000000F0
+:1000100000000000000000000000000000000000E0
+:1000200000000000000000000000000000000000D0
+:1000300000000000000000000000000000000000C0
+:1000400000000000000000000000000000000000B0
+:1000500000000000000000000000000000000000A0
+:100060000000000000000000000000000000000090
+:100070000000000000000000000000000000000080
+:100080000000000000000000000000000000000070
+:100090000000000000000000000000000000000060
+:1000A0000000000000000000000000000000000050
+:1000B0000000000000000000000000000000000040
+:1000C0000000000000000000000000000000000030
+:1000D0000000000000000000000000000000000020
+:1000E0000000000000000000000000000000000010
+:1000F0000000000000000000000000000000000000
+:1001000000000000000000000000000000000000EF
+:1001100000000000000000000000000000000000DF
+:1001200000000000000000000000000000000000CF
+:1001300000000000000000000000000000000000BF
+:1001400000000000000000000000000000000000AF
+:10015000000000000000000000000000000000009F
+:10016000000000000000000000000000000000008F
+:10017000000000000000000000000000000000007F
+:10018000000000000000000000000000000000006F
+:10019000000000000000000000000000000000005F
+:1001A000000000000000000000000000000000004F
+:1001B000000000000000000000000000000000003F
+:1001C000000000000000000000000000000000002F
+:1001D000000000000000000000000000000000001F
+:1001E000000000000000000000000000000000000F
+:1001F00000000000000000000000000000000000FF
+:1002000000000000000000000000000000000000EE
+:1002100000000000000000000000000000000000DE
+:1002200000000000000000000000000000000000CE
+:1002300000000000000000000000000000000000BE
+:1002400000000000000000000000000000000000AE
+:10025000000000000000000000000000000000009E
+:10026000000000000000000000000000000000008E
+:10027000000000000000000000000000000000007E
+:10028000000000000000000000000000000000006E
+:10029000000000000000000000000000000000005E
+:1002A000000000000000000000000000000000004E
+:1002B000000000000000000000000000000000003E
+:1002C000000000000000000000000000000000002E
+:1002D000000000000000000000000000000000001E
+:1002E000000000000000000000000000000000000E
+:1002F00000000000000000000000000000000000FE
+:10030000AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA4D
+:10031000AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA3D
+:10032000AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA2D
+:10033000AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA1D
+:10034000AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA0D
+:10035000AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFD
+:10036000AAAAAAAAAAAA0000000000000000000091
+:10037000000000000000000000000000000000007D
+:10038000000000000000000000000000000000006D
+:10039000000000000000000000000000000000005D
+:1003A000000000000000000000000000000000004D
+:1003B000000000000000000000000000000000003D
+:1003C000000000000000000000000000000000002D
+:1003D000000000000000000000000000000000001D
+:1003E000000000000000000000000000000000000D
+:1003F00000000000000000000000000000000000FD
+:1004000000000000000000000000000000000000EC
+:1004100000000000000000000000000000000000DC
+:1004200000000000000000000000000000000000CC
+:1004300000000000000000000000000000000000BC
+:1004400000000000000000000000000000000000AC
+:10045000000000000000000000000000000000009C
+:10046000000000000000000000000000000000008C
+:10047000000000000000000000000000000000007C
+:10048000000000000000000000000000000000006C
+:10049000000000000000000000000000000000005C
+:1004A000000000000000000000000000000000004C
+:1004B000000000000000000000000000000000003C
+:1004C000000000000000000000000000000000002C
+:1004D000000000000000000000000000000000001C
+:1004E000000000000000000000000000000000000C
+:1004F00000000000000000000000000000000000FC
+:1005000000000000000000000000000000000000EB
+:1005100000000000000000000000000000000000DB
+:1005200000000000000000000000000000000000CB
+:1005300000000000000000000000000000000000BB
+:1005400000000000000000000000000000000000AB
+:10055000000000000000000000000000000000009B
+:10056000000000000000000000000000000000008B
+:10057000000000000000000000000000000000007B
+:10058000000000000000000000000000000000006B
+:10059000000000000000000000000000000000005B
+:1005A000000000000000000000000000000000004B
+:1005B000000000000000000000000000000000003B
+:1005C000000000000000000000000000000000002B
+:1005D000000000000000000000000000000000001B
+:1005E000000000000000000000000000000000000B
+:1005F00000000000000000000000000000000000FB
+:1006000000000000000000000000000000000000EA
+:1006100000000000000000000000000000000000DA
+:1006200000000000000000000000000000000000CA
+:1006300000000000000000000000000000000000BA
+:1006400000000000000000000000000000000000AA
+:10065000000000000000000000000000000000009A
+:10066000000000000000000000000000000000008A
+:10067000000000000000000000000000000000007A
+:10068000000000000000000000000000000000006A
+:10069000000000000000000000000000000000005A
+:1006A000000000000000000000000000000000004A
+:1006B000000000000000000000000000000000003A
+:1006C000000000000000000000000000000000002A
+:1006D000000000000000000000000000000000001A
+:1006E000000000000000000000000000000000000A
+:1006F00000000000000000000000000000000000FA
+:10070000AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA49
+:10071000AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA39
+:10072000AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA29
+:10073000AAAAAAAAAAAAAAAAAAAA55AAAAAAAAAA6E
+:10074000AAAAAAAAAA5555AAAAAA555555555555B1
+:10075000555555555555AAAA5555AAAA5555AAAA4B
+:1007600055550000000000000000000000000000DF
+:100770000000000000000000000000000000000079
+:100780000000000000000000000000000000000069
+:100790000000000000000000000000000000000059
+:1007A0000000000000000000000000000000000049
+:1007B0000000000000000000000000000000000039
+:1007C0000000000000000000000000000000000029
+:1007D0000000000000000000000000000000000019
+:1007E0000000000000000000000000000000000009
+:1007F00000000000000000000000000000000000F9
+:1008000000000000000000000000000000000000E8
+:1008100000000000000000000000000000000000D8
+:1008200000000000000000000000000000000000C8
+:1008300000000000000000000000000000000000B8
+:1008400000000000000000000000000000000000A8
+:100850000000000000000000000000000000000098
+:100860000000000000000000000000000000000088
+:100870000000000000000000000000000000000078
+:100880000000000000000000000000000000000068
+:100890000000000000000000000000000000000058
+:1008A0000000000000000000000000000000000048
+:1008B0000000000000000000000000000000000038
+:1008C0000000000000000000000000000000000028
+:1008D0000000000000000000000000000000000018
+:1008E0000000000000000000000000000000000008
+:1008F00000000000000000000000000000000000F8
+:1009000000000000000000000000000000000000E7
+:1009100000000000000000000000000000000000D7
+:1009200000000000000000000000000000000000C7
+:1009300000000000000000000000000000000000B7
+:1009400000000000000000000000000000000000A7
+:100950000000000000000000000000000000000097
+:100960000000000000000000000000000000000087
+:100970000000000000000000000000000000000077
+:100980000000000000000000000000000000000067
+:100990000000000000000000000000000000000057
+:1009A0000000000000000000000000000000000047
+:1009B0000000000000000000000000000000000037
+:1009C0000000000000000000000000000000000027
+:1009D0000000000000000000000000000000000017
+:1009E0000000000000000000000000000000000007
+:1009F00000000000000000000000000000000000F7
+:100A000000000000000000000000000000000000E6
+:100A100000000000000000000000000000000000D6
+:100A200000000000000000000000000000000000C6
+:100A300000000000000000000000000000000000B6
+:100A400000000000000000000000000000000000A6
+:100A50000000000000000000000000000000000096
+:100A60000000000000000000000000000000000086
+:100A70000000000000000000000000000000000076
+:100A80000000000000000000000000000000000066
+:100A90000000000000000000000000000000000056
+:100AA0000000000000000000000000000000000046
+:100AB0000000000000000000000000000000000036
+:100AC0000000000000000000000000000000000026
+:100AD0000000000000000000000000000000000016
+:100AE0000000000000000000000000000000000006
+:100AF00000000000000000000000000000000000F6
+:100B0000AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA45
+:100B1000AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA35
+:100B2000AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA25
+:100B3000AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA15
+:100B4000AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA05
+:100B5000AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAF5
+:100B600055550000000000000000000000000000DB
+:100B70000000000000000000000000000000000075
+:100B80000000000000000000000000000000000065
+:100B90000000000000000000000000000000000055
+:100BA0000000000000000000000000000000000045
+:100BB0000000000000000000000000000000000035
+:100BC0000000000000000000000000000000000025
+:100BD0000000000000000000000000000000000015
+:100BE0000000000000000000000000000000000005
+:100BF00000000000000000000000000000000000F5
+:100C000000000000000000000000000000000000E4
+:100C100000000000000000000000000000000000D4
+:100C200000000000000000000000000000000000C4
+:100C300000000000000000000000000000000000B4
+:100C400000000000000000000000000000000000A4
+:100C50000000000000000000000000000000000094
+:100C60000000000000000000000000000000000084
+:100C70000000000000000000000000000000000074
+:100C80000000000000000000000000000000000064
+:100C90000000000000000000000000000000000054
+:100CA0000000000000000000000000000000000044
+:100CB0000000000000000000000000000000000034
+:100CC0000000000000000000000000000000000024
+:100CD0000000000000000000000000000000000014
+:100CE0000000000000000000000000000000000004
+:100CF00000000000000000000000000000000000F4
+:100D000000000000000000000000000000000000E3
+:100D100000000000000000000000000000000000D3
+:100D200000000000000000000000000000000000C3
+:100D300000000000000000000000000000000000B3
+:100D400000000000000000000000000000000000A3
+:100D50000000000000000000000000000000000093
+:100D60000000000000000000000000000000000083
+:100D70000000000000000000000000000000000073
+:100D80000000000000000000000000000000000063
+:100D90000000000000000000000000000000000053
+:100DA0000000000000000000000000000000000043
+:100DB0000000000000000000000000000000000033
+:100DC0000000000000000000000000000000000023
+:100DD0000000000000000000000000000000000013
+:100DE0000000000000000000000000000000000003
+:100DF00000000000000000000000000000000000F3
+:100E000000000000000000000000000000000000E2
+:100E100000000000000000000000000000000000D2
+:100E200000000000000000000000000000000000C2
+:100E300000000000000000000000000000000000B2
+:100E400000000000000000000000000000000000A2
+:100E50000000000000000000000000000000000092
+:100E60000000000000000000000000000000000082
+:100E70000000000000000000000000000000000072
+:100E80000000000000000000000000000000000062
+:100E90000000000000000000000000000000000052
+:100EA0000000000000000000000000000000000042
+:100EB0000000000000000000000000000000000032
+:100EC0000000000000000000000000000000000022
+:100ED0000000000000000000000000000000000012
+:100EE0000000000000000000000000000000000002
+:100EF00000000000000000000000000000000000F2
+:100F0000AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA41
+:100F1000AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA31
+:100F2000AAAAAAAAAAAAAA5555555555555555551E
+:100F30005555555555555555555555AAAAAAAAAAB8
+:100F4000AAAAAAAAAA5555AAAAAA555555555555A9
+:100F500055555555555555550000000000000000E9
+:100F60000000000000000000000000000000000081
+:100F70000000000000000000000000000000000071
+:100F80000000000000000000000000000000000061
+:100F90000000000000000000000000000000000051
+:100FA0000000000000000000000000000000000041
+:100FB0000000000000000000000000000000000031
+:100FC0000000000000000000000000000000000021
+:100FD0000000000000000000000000000000000011
+:100FE0000000000000000000000000000000000001
+:100FF00000000000000000000000000000000000F1
+:1010000000000000000000000000000000000000E0
+:1010100000000000000000000000000000000000D0
+:1010200000000000000000000000000000000000C0
+:1010300000000000000000000000000000000000B0
+:1010400000000000000000000000000000000000A0
+:101050000000000000000000000000000000000090
+:101060000000000000000000000000000000000080
+:101070000000000000000000000000000000000070
+:101080000000000000000000000000000000000060
+:101090000000000000000000000000000000000050
+:1010A0000000000000000000000000000000000040
+:1010B0000000000000000000000000000000000030
+:1010C0000000000000000000000000000000000020
+:1010D0000000000000000000000000000000000010
+:1010E0000000000000000000000000000000000000
+:1010F00000000000000000000000000000000000F0
+:1011000000000000000000000000000000000000DF
+:1011100000000000000000000000000000000000CF
+:1011200000000000000000000000000000000000BF
+:1011300000000000000000000000000000000000AF
+:10114000000000000000000000000000000000009F
+:10115000000000000000000000000000000000008F
+:10116000000000000000000000000000000000007F
+:10117000000000000000000000000000000000006F
+:10118000000000000000000000000000000000005F
+:10119000000000000000000000000000000000004F
+:1011A000000000000000000000000000000000003F
+:1011B000000000000000000000000000000000002F
+:1011C000000000000000000000000000000000001F
+:1011D000000000000000000000000000000000000F
+:1011E00000000000000000000000000000000000FF
+:1011F00000000000000000000000000000000000EF
+:1012000000000000000000000000000000000000DE
+:1012100000000000000000000000000000000000CE
+:1012200000000000000000000000000000000000BE
+:1012300000000000000000000000000000000000AE
+:10124000000000000000000000000000000000009E
+:10125000000000000000000000000000000000008E
+:10126000000000000000000000000000000000007E
+:10127000000000000000000000000000000000006E
+:10128000000000000000000000000000000000005E
+:10129000000000000000000000000000000000004E
+:1012A000000000000000000000000000000000003E
+:1012B000000000000000000000000000000000002E
+:1012C000000000000000000000000000000000001E
+:1012D000000000000000000000000000000000000E
+:1012E00000000000000000000000000000000000FE
+:1012F00000000000000000000000000000000000EE
+:10130000AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA3D
+:10131000AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA2D
+:10132000AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA1D
+:10133000AAAAAAAAAAAAAAAAAAAA55AAAAAAAAAA62
+:10134000AAAAAAAAAA5555AAAAAA555555555555A5
+:10135000555555555555AAAA5555AAAA5555AAAA3F
+:1013600055550000000000000000000000000000D3
+:10137000000000000000000000000000000000006D
+:10138000000000000000000000000000000000005D
+:10139000000000000000000000000000000000004D
+:1013A000000000000000000000000000000000003D
+:1013B000000000000000000000000000000000002D
+:1013C000000000000000000000000000000000001D
+:1013D000000000000000000000000000000000000D
+:1013E00000000000000000000000000000000000FD
+:1013F00000000000000000000000000000000000ED
+:1014000000000000000000000000000000000000DC
+:1014100000000000000000000000000000000000CC
+:1014200000000000000000000000000000000000BC
+:1014300000000000000000000000000000000000AC
+:10144000000000000000000000000000000000009C
+:10145000000000000000000000000000000000008C
+:10146000000000000000000000000000000000007C
+:10147000000000000000000000000000000000006C
+:10148000000000000000000000000000000000005C
+:10149000000000000000000000000000000000004C
+:1014A000000000000000000000000000000000003C
+:1014B000000000000000000000000000000000002C
+:1014C000000000000000000000000000000000001C
+:1014D000000000000000000000000000000000000C
+:1014E00000000000000000000000000000000000FC
+:1014F00000000000000000000000000000000000EC
+:1015000000000000000000000000000000000000DB
+:1015100000000000000000000000000000000000CB
+:1015200000000000000000000000000000000000BB
+:1015300000000000000000000000000000000000AB
+:10154000000000000000000000000000000000009B
+:10155000000000000000000000000000000000008B
+:10156000000000000000000000000000000000007B
+:10157000000000000000000000000000000000006B
+:10158000000000000000000000000000000000005B
+:10159000000000000000000000000000000000004B
+:1015A000000000000000000000000000000000003B
+:1015B000000000000000000000000000000000002B
+:1015C000000000000000000000000000000000001B
+:1015D000000000000000000000000000000000000B
+:1015E00000000000000000000000000000000000FB
+:1015F00000000000000000000000000000000000EB
+:1016000000000000000000000000000000000000DA
+:1016100000000000000000000000000000000000CA
+:1016200000000000000000000000000000000000BA
+:1016300000000000000000000000000000000000AA
+:10164000000000000000000000000000000000009A
+:10165000000000000000000000000000000000008A
+:10166000000000000000000000000000000000007A
+:10167000000000000000000000000000000000006A
+:10168000000000000000000000000000000000005A
+:10169000000000000000000000000000000000004A
+:1016A000000000000000000000000000000000003A
+:1016B000000000000000000000000000000000002A
+:1016C000000000000000000000000000000000001A
+:1016D000000000000000000000000000000000000A
+:1016E00000000000000000000000000000000000FA
+:1016F00000000000000000000000000000000000EA
+:10170000AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA39
+:10171000AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA29
+:10172000AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA19
+:10173000AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA09
+:10174000AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAF9
+:10175000AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAE9
+:10176000AAAA000000000000000000000000000025
+:101770000000000000000000000000000000000069
+:101780000000000000000000000000000000000059
+:101790000000000000000000000000000000000049
+:1017A0000000000000000000000000000000000039
+:1017B0000000000000000000000000000000000029
+:1017C0000000000000000000000000000000000019
+:1017D0000000000000000000000000000000000009
+:1017E00000000000000000000000000000000000F9
+:1017F00000000000000000000000000000000000E9
+:1018000000000000000000000000000000000000D8
+:1018100000000000000000000000000000000000C8
+:1018200000000000000000000000000000000000B8
+:1018300000000000000000000000000000000000A8
+:101840000000000000000000000000000000000098
+:101850000000000000000000000000000000000088
+:101860000000000000000000000000000000000078
+:101870000000000000000000000000000000000068
+:101880000000000000000000000000000000000058
+:101890000000000000000000000000000000000048
+:1018A0000000000000000000000000000000000038
+:1018B0000000000000000000000000000000000028
+:1018C0000000000000000000000000000000000018
+:1018D0000000000000000000000000000000000008
+:1018E00000000000000000000000000000000000F8
+:1018F00000000000000000000000000000000000E8
+:1019000000000000000000000000000000000000D7
+:1019100000000000000000000000000000000000C7
+:1019200000000000000000000000000000000000B7
+:1019300000000000000000000000000000000000A7
+:101940000000000000000000000000000000000097
+:101950000000000000000000000000000000000087
+:101960000000000000000000000000000000000077
+:101970000000000000000000000000000000000067
+:101980000000000000000000000000000000000057
+:101990000000000000000000000000000000000047
+:1019A0000000000000000000000000000000000037
+:1019B0000000000000000000000000000000000027
+:1019C0000000000000000000000000000000000017
+:1019D0000000000000000000000000000000000007
+:1019E00000000000000000000000000000000000F7
+:1019F00000000000000000000000000000000000E7
+:101A000000000000000000000000000000000000D6
+:101A100000000000000000000000000000000000C6
+:101A200000000000000000000000000000000000B6
+:101A300000000000000000000000000000000000A6
+:101A40000000000000000000000000000000000096
+:101A50000000000000000000000000000000000086
+:101A60000000000000000000000000000000000076
+:101A70000000000000000000000000000000000066
+:101A80000000000000000000000000000000000056
+:101A90000000000000000000000000000000000046
+:101AA0000000000000000000000000000000000036
+:101AB0000000000000000000000000000000000026
+:101AC0000000000000000000000000000000000016
+:101AD0000000000000000000000000000000000006
+:101AE00000000000000000000000000000000000F6
+:101AF00000000000000000000000000000000000E6
+:101B0000AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA35
+:101B1000AAAAAAAAAAAAAAAA5555AAAAAAAAAAAACF
+:101B2000AAAAAAAAAAAA555555AAAAAAAAAA5555BE
+:101B30005555555555555555555555555555555555
+:101B40005555555555555555555555555555555545
+:101B5000555555555555AAAA5555AAAA5555AAAA37
+:101B60005555AAAA5555AAAA5555AAAA5555AAAA7D
+:101B700055555555555555555555555555550000BF
+:101B80000000000000000000000000000000000055
+:101B90000000000000000000000000000000000045
+:101BA0000000000000000000000000000000000035
+:101BB0000000000000000000000000000000000025
+:101BC0000000000000000000000000000000000015
+:101BD0000000000000000000000000000000000005
+:101BE00000000000000000000000000000000000F5
+:101BF00000000000000000000000000000000000E5
+:101C000000000000000000000000000000000000D4
+:101C100000000000000000000000000000000000C4
+:101C200000000000000000000000000000000000B4
+:101C300000000000000000000000000000000000A4
+:101C40000000000000000000000000000000000094
+:101C50000000000000000000000000000000000084
+:101C60000000000000000000000000000000000074
+:101C70000000000000000000000000000000000064
+:101C80000000000000000000000000000000000054
+:101C90000000000000000000000000000000000044
+:101CA0000000000000000000000000000000000034
+:101CB0000000000000000000000000000000000024
+:101CC0000000000000000000000000000000000014
+:101CD0000000000000000000000000000000000004
+:101CE00000000000000000000000000000000000F4
+:101CF00000000000000000000000000000000000E4
+:101D000000000000000000000000000000000000D3
+:101D100000000000000000000000000000000000C3
+:101D200000000000000000000000000000000000B3
+:101D300000000000000000000000000000000000A3
+:101D40000000000000000000000000000000000093
+:101D50000000000000000000000000000000000083
+:101D60000000000000000000000000000000000073
+:101D70000000000000000000000000000000000063
+:101D80000000000000000000000000000000000053
+:101D90000000000000000000000000000000000043
+:101DA0000000000000000000000000000000000033
+:101DB0000000000000000000000000000000000023
+:101DC0000000000000000000000000000000000013
+:101DD0000000000000000000000000000000000003
+:101DE00000000000000000000000000000000000F3
+:101DF00000000000000000000000000000000000E3
+:101E000000000000000000000000000000000000D2
+:101E100000000000000000000000000000000000C2
+:101E200000000000000000000000000000000000B2
+:101E300000000000000000000000000000000000A2
+:101E40000000000000000000000000000000000092
+:101E50000000000000000000000000000000000082
+:101E60000000000000000000000000000000000072
+:101E70000000000000000000000000000000000062
+:101E80000000000000000000000000000000000052
+:101E90000000000000000000000000000000000042
+:101EA0000000000000000000000000000000000032
+:101EB0000000000000000000000000000000000022
+:101EC0000000000000000000000000000000000012
+:101ED0000000000000000000000000000000000002
+:101EE00000000000000000000000000000000000F2
+:101EF00000000000000000000000000000000000E2
+:101F0000AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA31
+:101F1000AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA21
+:101F2000AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA11
+:101F3000AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA01
+:101F4000AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAF1
+:101F5000AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAE1
+:101F6000AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD1
+:101F7000AAAAAAAAAAAAAAAAAAAAAAAA55550000BF
+:101F80000000000000000000000000000000000051
+:101F90000000000000000000000000000000000041
+:101FA0000000000000000000000000000000000031
+:101FB0000000000000000000000000000000000021
+:101FC0000000000000000000000000000000000011
+:101FD0000000000000000000000000000000000001
+:101FE00000000000000000000000000000000000F1
+:101FF00000000000000000000000000000000000E1
+:1020000000000000000000000000000000000000D0
+:1020100000000000000000000000000000000000C0
+:1020200000000000000000000000000000000000B0
+:1020300000000000000000000000000000000000A0
+:102040000000000000000000000000000000000090
+:102050000000000000000000000000000000000080
+:102060000000000000000000000000000000000070
+:102070000000000000000000000000000000000060
+:102080000000000000000000000000000000000050
+:102090000000000000000000000000000000000040
+:1020A0000000000000000000000000000000000030
+:1020B0000000000000000000000000000000000020
+:1020C0000000000000000000000000000000000010
+:1020D0000000000000000000000000000000000000
+:1020E00000000000000000000000000000000000F0
+:1020F00000000000000000000000000000000000E0
+:1021000000000000000000000000000000000000CF
+:1021100000000000000000000000000000000000BF
+:1021200000000000000000000000000000000000AF
+:10213000000000000000000000000000000000009F
+:10214000000000000000000000000000000000008F
+:10215000000000000000000000000000000000007F
+:10216000000000000000000000000000000000006F
+:10217000000000000000000000000000000000005F
+:10218000000000000000000000000000000000004F
+:10219000000000000000000000000000000000003F
+:1021A000000000000000000000000000000000002F
+:1021B000000000000000000000000000000000001F
+:1021C000000000000000000000000000000000000F
+:1021D00000000000000000000000000000000000FF
+:1021E00000000000000000000000000000000000EF
+:1021F00000000000000000000000000000000000DF
+:1022000000000000000000000000000000000000CE
+:1022100000000000000000000000000000000000BE
+:1022200000000000000000000000000000000000AE
+:10223000000000000000000000000000000000009E
+:10224000000000000000000000000000000000008E
+:10225000000000000000000000000000000000007E
+:10226000000000000000000000000000000000006E
+:10227000000000000000000000000000000000005E
+:10228000000000000000000000000000000000004E
+:10229000000000000000000000000000000000003E
+:1022A000000000000000000000000000000000002E
+:1022B000000000000000000000000000000000001E
+:1022C000000000000000000000000000000000000E
+:1022D00000000000000000000000000000000000FE
+:1022E00000000000000000000000000000000000EE
+:1022F00000000000000000000000000000000000DE
+:10230000AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA2D
+:10231000AAAAAAAAAAAAAAAA5555AAAAAAAAAAAAC7
+:10232000AAAAAAAAAAAA555555AAAAAAAAAA5555B6
+:10233000555555555555555555555555555555554D
+:10234000555555555555555555555555555555553D
+:10235000555555555555AAAA5555AAAA5555AAAA2F
+:102360005555AAAA5555AAAA5555AAAA5555AAAA75
+:1023700055555555555555555555555555550000B7
+:10238000000000000000000000000000000000004D
+:10239000000000000000000000000000000000003D
+:1023A000000000000000000000000000000000002D
+:1023B000000000000000000000000000000000001D
+:1023C000000000000000000000000000000000000D
+:1023D00000000000000000000000000000000000FD
+:1023E00000000000000000000000000000000000ED
+:1023F00000000000000000000000000000000000DD
+:1024000000000000000000000000000000000000CC
+:1024100000000000000000000000000000000000BC
+:1024200000000000000000000000000000000000AC
+:10243000000000000000000000000000000000009C
+:10244000000000000000000000000000000000008C
+:10245000000000000000000000000000000000007C
+:10246000000000000000000000000000000000006C
+:10247000000000000000000000000000000000005C
+:10248000000000000000000000000000000000004C
+:10249000000000000000000000000000000000003C
+:1024A000000000000000000000000000000000002C
+:1024B000000000000000000000000000000000001C
+:1024C000000000000000000000000000000000000C
+:1024D00000000000000000000000000000000000FC
+:1024E00000000000000000000000000000000000EC
+:1024F00000000000000000000000000000000000DC
+:1025000000000000000000000000000000000000CB
+:1025100000000000000000000000000000000000BB
+:1025200000000000000000000000000000000000AB
+:10253000000000000000000000000000000000009B
+:10254000000000000000000000000000000000008B
+:10255000000000000000000000000000000000007B
+:10256000000000000000000000000000000000006B
+:10257000000000000000000000000000000000005B
+:10258000000000000000000000000000000000004B
+:10259000000000000000000000000000000000003B
+:1025A000000000000000000000000000000000002B
+:1025B000000000000000000000000000000000001B
+:1025C000000000000000000000000000000000000B
+:1025D00000000000000000000000000000000000FB
+:1025E00000000000000000000000000000000000EB
+:1025F00000000000000000000000000000000000DB
+:1026000000000000000000000000000000000000CA
+:1026100000000000000000000000000000000000BA
+:1026200000000000000000000000000000000000AA
+:10263000000000000000000000000000000000009A
+:10264000000000000000000000000000000000008A
+:10265000000000000000000000000000000000007A
+:10266000000000000000000000000000000000006A
+:10267000000000000000000000000000000000005A
+:10268000000000000000000000000000000000004A
+:10269000000000000000000000000000000000003A
+:1026A000000000000000000000000000000000002A
+:1026B000000000000000000000000000000000001A
+:1026C000000000000000000000000000000000000A
+:1026D00000000000000000000000000000000000FA
+:1026E00000000000000000000000000000000000EA
+:1026F00000000000000000000000000000000000DA
+:10270000AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA29
+:10271000AAAAAAAAAAAAAAAA5555AAAAAAAAAAAAC3
+:10272000AAAAAAAAAAAA555555AAAAAAAAAA5555B2
+:102730005555555555555555555555555555555549
+:102740005555555555555555555555555555555539
+:10275000555555555555AAAA5555AAAA5555AAAA2B
+:102760005555AAAA5555AAAA5555AAAA5555AAAA71
+:1027700055555555555555555555555555550000B3
+:102780000000000000000000000000000000000049
+:102790000000000000000000000000000000000039
+:1027A0000000000000000000000000000000000029
+:1027B0000000000000000000000000000000000019
+:1027C0000000000000000000000000000000000009
+:1027D00000000000000000000000000000000000F9
+:1027E00000000000000000000000000000000000E9
+:1027F00000000000000000000000000000000000D9
+:1028000000000000000000000000000000000000C8
+:1028100000000000000000000000000000000000B8
+:1028200000000000000000000000000000000000A8
+:102830000000000000000000000000000000000098
+:102840000000000000000000000000000000000088
+:102850000000000000000000000000000000000078
+:102860000000000000000000000000000000000068
+:102870000000000000000000000000000000000058
+:102880000000000000000000000000000000000048
+:102890000000000000000000000000000000000038
+:1028A0000000000000000000000000000000000028
+:1028B0000000000000000000000000000000000018
+:1028C0000000000000000000000000000000000008
+:1028D00000000000000000000000000000000000F8
+:1028E00000000000000000000000000000000000E8
+:1028F00000000000000000000000000000000000D8
+:1029000000000000000000000000000000000000C7
+:1029100000000000000000000000000000000000B7
+:1029200000000000000000000000000000000000A7
+:102930000000000000000000000000000000000097
+:102940000000000000000000000000000000000087
+:102950000000000000000000000000000000000077
+:102960000000000000000000000000000000000067
+:102970000000000000000000000000000000000057
+:102980000000000000000000000000000000000047
+:102990000000000000000000000000000000000037
+:1029A0000000000000000000000000000000000027
+:1029B0000000000000000000000000000000000017
+:1029C0000000000000000000000000000000000007
+:1029D00000000000000000000000000000000000F7
+:1029E00000000000000000000000000000000000E7
+:1029F00000000000000000000000000000000000D7
+:102A000000000000000000000000000000000000C6
+:102A100000000000000000000000000000000000B6
+:102A200000000000000000000000000000000000A6
+:102A30000000000000000000000000000000000096
+:102A40000000000000000000000000000000000086
+:102A50000000000000000000000000000000000076
+:102A60000000000000000000000000000000000066
+:102A70000000000000000000000000000000000056
+:102A80000000000000000000000000000000000046
+:102A90000000000000000000000000000000000036
+:102AA0000000000000000000000000000000000026
+:102AB0000000000000000000000000000000000016
+:102AC0000000000000000000000000000000000006
+:102AD00000000000000000000000000000000000F6
+:102AE00000000000000000000000000000000000E6
+:102AF00000000000000000000000000000000000D6
+:102B0000AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA25
+:102B1000AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA15
+:102B2000AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA05
+:102B3000AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAF5
+:102B4000AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA553A
+:102B500055550000000000000000000000000000CB
+:102B60000000000000000000000000000000000065
+:102B70000000000000000000000000000000000055
+:102B80000000000000000000000000000000000045
+:102B90000000000000000000000000000000000035
+:102BA0000000000000000000000000000000000025
+:102BB0000000000000000000000000000000000015
+:102BC0000000000000000000000000000000000005
+:102BD00000000000000000000000000000000000F5
+:102BE00000000000000000000000000000000000E5
+:102BF00000000000000000000000000000000000D5
+:102C000000000000000000000000000000000000C4
+:102C100000000000000000000000000000000000B4
+:102C200000000000000000000000000000000000A4
+:102C30000000000000000000000000000000000094
+:102C40000000000000000000000000000000000084
+:102C50000000000000000000000000000000000074
+:102C60000000000000000000000000000000000064
+:102C70000000000000000000000000000000000054
+:102C80000000000000000000000000000000000044
+:102C90000000000000000000000000000000000034
+:102CA0000000000000000000000000000000000024
+:102CB0000000000000000000000000000000000014
+:102CC0000000000000000000000000000000000004
+:102CD00000000000000000000000000000000000F4
+:102CE00000000000000000000000000000000000E4
+:102CF00000000000000000000000000000000000D4
+:102D000000000000000000000000000000000000C3
+:102D100000000000000000000000000000000000B3
+:102D200000000000000000000000000000000000A3
+:102D30000000000000000000000000000000000093
+:102D40000000000000000000000000000000000083
+:102D50000000000000000000000000000000000073
+:102D60000000000000000000000000000000000063
+:102D70000000000000000000000000000000000053
+:102D80000000000000000000000000000000000043
+:102D90000000000000000000000000000000000033
+:102DA0000000000000000000000000000000000023
+:102DB0000000000000000000000000000000000013
+:102DC0000000000000000000000000000000000003
+:102DD00000000000000000000000000000000000F3
+:102DE00000000000000000000000000000000000E3
+:102DF00000000000000000000000000000000000D3
+:102E000000000000000000000000000000000000C2
+:102E100000000000000000000000000000000000B2
+:102E200000000000000000000000000000000000A2
+:102E30000000000000000000000000000000000092
+:102E40000000000000000000000000000000000082
+:102E50000000000000000000000000000000000072
+:102E60000000000000000000000000000000000062
+:102E70000000000000000000000000000000000052
+:102E80000000000000000000000000000000000042
+:102E90000000000000000000000000000000000032
+:102EA0000000000000000000000000000000000022
+:102EB0000000000000000000000000000000000012
+:102EC0000000000000000000000000000000000002
+:102ED00000000000000000000000000000000000F2
+:102EE00000000000000000000000000000000000E2
+:102EF00000000000000000000000000000000000D2
+:102F0000AAAAAAAAAAAAAAAA5555AAAAAAAAAAAACB
+:102F1000AAAAAAAAAAAAAA5555AAAAAAAAAAAAAABB
+:102F200055555555555555AA555555555555AAAA52
+:102F30005555AAAAAAAAAAAAAAAAAAAAAAAA555545
+:102F40000000000000000000000000000000000081
+:102F50000000000000000000000000000000000071
+:102F60000000000000000000000000000000000061
+:102F70000000000000000000000000000000000051
+:102F80000000000000000000000000000000000041
+:102F90000000000000000000000000000000000031
+:102FA0000000000000000000000000000000000021
+:102FB0000000000000000000000000000000000011
+:102FC0000000000000000000000000000000000001
+:102FD00000000000000000000000000000000000F1
+:102FE00000000000000000000000000000000000E1
+:102FF00000000000000000000000000000000000D1
+:1030000000000000000000000000000000000000C0
+:1030100000000000000000000000000000000000B0
+:1030200000000000000000000000000000000000A0
+:103030000000000000000000000000000000000090
+:103040000000000000000000000000000000000080
+:103050000000000000000000000000000000000070
+:103060000000000000000000000000000000000060
+:103070000000000000000000000000000000000050
+:103080000000000000000000000000000000000040
+:103090000000000000000000000000000000000030
+:1030A0000000000000000000000000000000000020
+:1030B0000000000000000000000000000000000010
+:1030C0000000000000000000000000000000000000
+:1030D00000000000000000000000000000000000F0
+:1030E00000000000000000000000000000000000E0
+:1030F00000000000000000000000000000000000D0
+:1031000000000000000000000000000000000000BF
+:1031100000000000000000000000000000000000AF
+:10312000000000000000000000000000000000009F
+:10313000000000000000000000000000000000008F
+:10314000000000000000000000000000000000007F
+:10315000000000000000000000000000000000006F
+:10316000000000000000000000000000000000005F
+:10317000000000000000000000000000000000004F
+:10318000000000000000000000000000000000003F
+:10319000000000000000000000000000000000002F
+:1031A000000000000000000000000000000000001F
+:1031B000000000000000000000000000000000000F
+:1031C00000000000000000000000000000000000FF
+:1031D00000000000000000000000000000000000EF
+:1031E00000000000000000000000000000000000DF
+:1031F00000000000000000000000000000000000CF
+:1032000000000000000000000000000000000000BE
+:1032100000000000000000000000000000000000AE
+:10322000000000000000000000000000000000009E
+:10323000000000000000000000000000000000008E
+:10324000000000000000000000000000000000007E
+:10325000000000000000000000000000000000006E
+:10326000000000000000000000000000000000005E
+:10327000000000000000000000000000000000004E
+:10328000000000000000000000000000000000003E
+:10329000000000000000000000000000000000002E
+:1032A000000000000000000000000000000000001E
+:1032B000000000000000000000000000000000000E
+:1032C00000000000000000000000000000000000FE
+:1032D00000000000000000000000000000000000EE
+:1032E00000000000000000000000000000000000DE
+:1032F00000000000000000000000000000000000CE
+:10330000AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA1D
+:10331000AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA0D
+:10332000AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFD
+:10333000AAAAAAAAAAAAAAAAAAAAAAAAAAAA555597
+:10334000000000000000000000000000000000007D
+:10335000000000000000000000000000000000006D
+:10336000000000000000000000000000000000005D
+:10337000000000000000000000000000000000004D
+:10338000000000000000000000000000000000003D
+:10339000000000000000000000000000000000002D
+:1033A000000000000000000000000000000000001D
+:1033B000000000000000000000000000000000000D
+:1033C00000000000000000000000000000000000FD
+:1033D00000000000000000000000000000000000ED
+:1033E00000000000000000000000000000000000DD
+:1033F00000000000000000000000000000000000CD
+:1034000000000000000000000000000000000000BC
+:1034100000000000000000000000000000000000AC
+:10342000000000000000000000000000000000009C
+:10343000000000000000000000000000000000008C
+:10344000000000000000000000000000000000007C
+:10345000000000000000000000000000000000006C
+:10346000000000000000000000000000000000005C
+:10347000000000000000000000000000000000004C
+:10348000000000000000000000000000000000003C
+:10349000000000000000000000000000000000002C
+:1034A000000000000000000000000000000000001C
+:1034B000000000000000000000000000000000000C
+:1034C00000000000000000000000000000000000FC
+:1034D00000000000000000000000000000000000EC
+:1034E00000000000000000000000000000000000DC
+:1034F00000000000000000000000000000000000CC
+:1035000000000000000000000000000000000000BB
+:1035100000000000000000000000000000000000AB
+:10352000000000000000000000000000000000009B
+:10353000000000000000000000000000000000008B
+:10354000000000000000000000000000000000007B
+:10355000000000000000000000000000000000006B
+:10356000000000000000000000000000000000005B
+:10357000000000000000000000000000000000004B
+:10358000000000000000000000000000000000003B
+:10359000000000000000000000000000000000002B
+:1035A000000000000000000000000000000000001B
+:1035B000000000000000000000000000000000000B
+:1035C00000000000000000000000000000000000FB
+:1035D00000000000000000000000000000000000EB
+:1035E00000000000000000000000000000000000DB
+:1035F00000000000000000000000000000000000CB
+:1036000000000000000000000000000000000000BA
+:1036100000000000000000000000000000000000AA
+:10362000000000000000000000000000000000009A
+:10363000000000000000000000000000000000008A
+:10364000000000000000000000000000000000007A
+:10365000000000000000000000000000000000006A
+:10366000000000000000000000000000000000005A
+:10367000000000000000000000000000000000004A
+:10368000000000000000000000000000000000003A
+:10369000000000000000000000000000000000002A
+:1036A000000000000000000000000000000000001A
+:1036B000000000000000000000000000000000000A
+:1036C00000000000000000000000000000000000FA
+:1036D00000000000000000000000000000000000EA
+:1036E00000000000000000000000000000000000DA
+:1036F00000000000000000000000000000000000CA
+:10370000AAAAAAAAAAAAAAAA5555AAAAAAAAAAAAC3
+:10371000AAAAAAAAAAAAAA5555AAAAAAAAAAAAAAB3
+:1037200055555555555555AA555555555555AAAA4A
+:103730005555AAAAAAAAAAAAAAAAAAAAAAAA55553D
+:103740000000000000000000000000000000000079
+:103750000000000000000000000000000000000069
+:103760000000000000000000000000000000000059
+:103770000000000000000000000000000000000049
+:103780000000000000000000000000000000000039
+:103790000000000000000000000000000000000029
+:1037A0000000000000000000000000000000000019
+:1037B0000000000000000000000000000000000009
+:1037C00000000000000000000000000000000000F9
+:1037D00000000000000000000000000000000000E9
+:1037E00000000000000000000000000000000000D9
+:1037F00000000000000000000000000000000000C9
+:1038000000000000000000000000000000000000B8
+:1038100000000000000000000000000000000000A8
+:103820000000000000000000000000000000000098
+:103830000000000000000000000000000000000088
+:103840000000000000000000000000000000000078
+:103850000000000000000000000000000000000068
+:103860000000000000000000000000000000000058
+:103870000000000000000000000000000000000048
+:103880000000000000000000000000000000000038
+:103890000000000000000000000000000000000028
+:1038A0000000000000000000000000000000000018
+:1038B0000000000000000000000000000000000008
+:1038C00000000000000000000000000000000000F8
+:1038D00000000000000000000000000000000000E8
+:1038E00000000000000000000000000000000000D8
+:1038F00000000000000000000000000000000000C8
+:1039000000000000000000000000000000000000B7
+:1039100000000000000000000000000000000000A7
+:103920000000000000000000000000000000000097
+:103930000000000000000000000000000000000087
+:103940000000000000000000000000000000000077
+:103950000000000000000000000000000000000067
+:103960000000000000000000000000000000000057
+:103970000000000000000000000000000000000047
+:103980000000000000000000000000000000000037
+:103990000000000000000000000000000000000027
+:1039A0000000000000000000000000000000000017
+:1039B0000000000000000000000000000000000007
+:1039C00000000000000000000000000000000000F7
+:1039D00000000000000000000000000000000000E7
+:1039E00000000000000000000000000000000000D7
+:1039F00000000000000000000000000000000000C7
+:103A000000000000000000000000000000000000B6
+:103A100000000000000000000000000000000000A6
+:103A20000000000000000000000000000000000096
+:103A30000000000000000000000000000000000086
+:103A40000000000000000000000000000000000076
+:103A50000000000000000000000000000000000066
+:103A60000000000000000000000000000000000056
+:103A70000000000000000000000000000000000046
+:103A80000000000000000000000000000000000036
+:103A90000000000000000000000000000000000026
+:103AA0000000000000000000000000000000000016
+:103AB0000000000000000000000000000000000006
+:103AC00000000000000000000000000000000000F6
+:103AD00000000000000000000000000000000000E6
+:103AE00000000000000000000000000000000000D6
+:103AF00000000000000000000000000000000000C6
+:103B0000AAAAAAAAAAAAAAAA5555AAAAAAAAAAAABF
+:103B1000AAAAAAAAAAAAAA5555AAAAAAAAAAAAAAAF
+:103B200055555555555555AA555555555555AAAA46
+:103B30005555AAAAAAAAAAAAAAAAAAAAAAAA555539
+:103B40000000000000000000000000000000000075
+:103B50000000000000000000000000000000000065
+:103B60000000000000000000000000000000000055
+:103B70000000000000000000000000000000000045
+:103B80000000000000000000000000000000000035
+:103B90000000000000000000000000000000000025
+:103BA0000000000000000000000000000000000015
+:103BB0000000000000000000000000000000000005
+:103BC00000000000000000000000000000000000F5
+:103BD00000000000000000000000000000000000E5
+:103BE00000000000000000000000000000000000D5
+:103BF00000000000000000000000000000000000C5
+:103C000000000000000000000000000000000000B4
+:103C100000000000000000000000000000000000A4
+:103C20000000000000000000000000000000000094
+:103C30000000000000000000000000000000000084
+:103C40000000000000000000000000000000000074
+:103C50000000000000000000000000000000000064
+:103C60000000000000000000000000000000000054
+:103C70000000000000000000000000000000000044
+:103C80000000000000000000000000000000000034
+:103C90000000000000000000000000000000000024
+:103CA0000000000000000000000000000000000014
+:103CB0000000000000000000000000000000000004
+:103CC00000000000000000000000000000000000F4
+:103CD00000000000000000000000000000000000E4
+:103CE00000000000000000000000000000000000D4
+:103CF00000000000000000000000000000000000C4
+:103D000000000000000000000000000000000000B3
+:103D100000000000000000000000000000000000A3
+:103D20000000000000000000000000000000000093
+:103D30000000000000000000000000000000000083
+:103D40000000000000000000000000000000000073
+:103D50000000000000000000000000000000000063
+:103D60000000000000000000000000000000000053
+:103D70000000000000000000000000000000000043
+:103D80000000000000000000000000000000000033
+:103D90000000000000000000000000000000000023
+:103DA0000000000000000000000000000000000013
+:103DB0000000000000000000000000000000000003
+:103DC00000000000000000000000000000000000F3
+:103DD00000000000000000000000000000000000E3
+:103DE00000000000000000000000000000000000D3
+:103DF00000000000000000000000000000000000C3
+:103E000000000000000000000000000000000000B2
+:103E100000000000000000000000000000000000A2
+:103E20000000000000000000000000000000000092
+:103E30000000000000000000000000000000000082
+:103E40000000000000000000000000000000000072
+:103E50000000000000000000000000000000000062
+:103E60000000000000000000000000000000000052
+:103E70000000000000000000000000000000000042
+:103E80000000000000000000000000000000000032
+:103E90000000000000000000000000000000000022
+:103EA0000000000000000000000000000000000012
+:103EB0000000000000000000000000000000000002
+:103EC00000000000000000000000000000000000F2
+:103ED00000000000000000000000000000000000E2
+:103EE00000000000000000000000000000000000D2
+:103EF00000000000000000000000000000000000C2
+:103F0000AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA11
+:103F1000AAAAAAAAAAAAAA555555555555555555FE
+:103F20005555555555550000000000000000000093
+:103F30000000000000000000000000000000000081
+:103F40000000000000000000000000000000000071
+:103F50000000000000000000000000000000000061
+:103F60000000000000000000000000000000000051
+:103F70000000000000000000000000000000000041
+:103F80000000000000000000000000000000000031
+:103F90000000000000000000000000000000000021
+:103FA0000000000000000000000000000000000011
+:103FB0000000000000000000000000000000000001
+:103FC00000000000000000000000000000000000F1
+:103FD00000000000000000000000000000000000E1
+:103FE00000000000000000000000000000000000D1
+:103FF00000000000000000000000000000000000C1
+:1040000000000000000000000000000000000000B0
+:1040100000000000000000000000000000000000A0
+:104020000000000000000000000000000000000090
+:104030000000000000000000000000000000000080
+:104040000000000000000000000000000000000070
+:104050000000000000000000000000000000000060
+:104060000000000000000000000000000000000050
+:104070000000000000000000000000000000000040
+:104080000000000000000000000000000000000030
+:104090000000000000000000000000000000000020
+:1040A0000000000000000000000000000000000010
+:1040B0000000000000000000000000000000000000
+:1040C00000000000000000000000000000000000F0
+:1040D00000000000000000000000000000000000E0
+:1040E00000000000000000000000000000000000D0
+:1040F00000000000000000000000000000000000C0
+:1041000000000000000000000000000000000000AF
+:10411000000000000000000000000000000000009F
+:10412000000000000000000000000000000000008F
+:10413000000000000000000000000000000000007F
+:10414000000000000000000000000000000000006F
+:10415000000000000000000000000000000000005F
+:10416000000000000000000000000000000000004F
+:10417000000000000000000000000000000000003F
+:10418000000000000000000000000000000000002F
+:10419000000000000000000000000000000000001F
+:1041A000000000000000000000000000000000000F
+:1041B00000000000000000000000000000000000FF
+:1041C00000000000000000000000000000000000EF
+:1041D00000000000000000000000000000000000DF
+:1041E00000000000000000000000000000000000CF
+:1041F00000000000000000000000000000000000BF
+:1042000000000000000000000000000000000000AE
+:10421000000000000000000000000000000000009E
+:10422000000000000000000000000000000000008E
+:10423000000000000000000000000000000000007E
+:10424000000000000000000000000000000000006E
+:10425000000000000000000000000000000000005E
+:10426000000000000000000000000000000000004E
+:10427000000000000000000000000000000000003E
+:10428000000000000000000000000000000000002E
+:10429000000000000000000000000000000000001E
+:1042A000000000000000000000000000000000000E
+:1042B00000000000000000000000000000000000FE
+:1042C00000000000000000000000000000000000EE
+:1042D00000000000000000000000000000000000DE
+:1042E00000000000000000000000000000000000CE
+:1042F00000000000000000000000000000000000BE
+:10430000AAAAAAAAAAAAAAAA5555AAAAAAAAAAAAB7
+:10431000AAAAAAAAAAAAAA5555AAAAAAAAAAAAAAA7
+:1043200055555555555555AA555555555555AAAA3E
+:104330005555AAAAAAAAAAAAAAAAAAAAAAAA555531
+:10434000000000000000000000000000000000006D
+:10435000000000000000000000000000000000005D
+:10436000000000000000000000000000000000004D
+:10437000000000000000000000000000000000003D
+:10438000000000000000000000000000000000002D
+:10439000000000000000000000000000000000001D
+:1043A000000000000000000000000000000000000D
+:1043B00000000000000000000000000000000000FD
+:1043C00000000000000000000000000000000000ED
+:1043D00000000000000000000000000000000000DD
+:1043E00000000000000000000000000000000000CD
+:1043F00000000000000000000000000000000000BD
+:1044000000000000000000000000000000000000AC
+:10441000000000000000000000000000000000009C
+:10442000000000000000000000000000000000008C
+:10443000000000000000000000000000000000007C
+:10444000000000000000000000000000000000006C
+:10445000000000000000000000000000000000005C
+:10446000000000000000000000000000000000004C
+:10447000000000000000000000000000000000003C
+:10448000000000000000000000000000000000002C
+:10449000000000000000000000000000000000001C
+:1044A000000000000000000000000000000000000C
+:1044B00000000000000000000000000000000000FC
+:1044C00000000000000000000000000000000000EC
+:1044D00000000000000000000000000000000000DC
+:1044E00000000000000000000000000000000000CC
+:1044F00000000000000000000000000000000000BC
+:1045000000000000000000000000000000000000AB
+:10451000000000000000000000000000000000009B
+:10452000000000000000000000000000000000008B
+:10453000000000000000000000000000000000007B
+:10454000000000000000000000000000000000006B
+:10455000000000000000000000000000000000005B
+:10456000000000000000000000000000000000004B
+:10457000000000000000000000000000000000003B
+:10458000000000000000000000000000000000002B
+:10459000000000000000000000000000000000001B
+:1045A000000000000000000000000000000000000B
+:1045B00000000000000000000000000000000000FB
+:1045C00000000000000000000000000000000000EB
+:1045D00000000000000000000000000000000000DB
+:1045E00000000000000000000000000000000000CB
+:1045F00000000000000000000000000000000000BB
+:1046000000000000000000000000000000000000AA
+:10461000000000000000000000000000000000009A
+:10462000000000000000000000000000000000008A
+:10463000000000000000000000000000000000007A
+:10464000000000000000000000000000000000006A
+:10465000000000000000000000000000000000005A
+:10466000000000000000000000000000000000004A
+:10467000000000000000000000000000000000003A
+:10468000000000000000000000000000000000002A
+:10469000000000000000000000000000000000001A
+:1046A000000000000000000000000000000000000A
+:1046B00000000000000000000000000000000000FA
+:1046C00000000000000000000000000000000000EA
+:1046D00000000000000000000000000000000000DA
+:1046E00000000000000000000000000000000000CA
+:1046F00000000000000000000000000000000000BA
+:10470000AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA09
+:10471000AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAF9
+:10472000AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAE9
+:10473000AAAAAAAAAAAAAAAAAAAAAAAAAAAA555583
+:104740000000000000000000000000000000000069
+:104750000000000000000000000000000000000059
+:104760000000000000000000000000000000000049
+:104770000000000000000000000000000000000039
+:104780000000000000000000000000000000000029
+:104790000000000000000000000000000000000019
+:1047A0000000000000000000000000000000000009
+:1047B00000000000000000000000000000000000F9
+:1047C00000000000000000000000000000000000E9
+:1047D00000000000000000000000000000000000D9
+:1047E00000000000000000000000000000000000C9
+:1047F00000000000000000000000000000000000B9
+:1048000000000000000000000000000000000000A8
+:104810000000000000000000000000000000000098
+:104820000000000000000000000000000000000088
+:104830000000000000000000000000000000000078
+:104840000000000000000000000000000000000068
+:104850000000000000000000000000000000000058
+:104860000000000000000000000000000000000048
+:104870000000000000000000000000000000000038
+:104880000000000000000000000000000000000028
+:104890000000000000000000000000000000000018
+:1048A0000000000000000000000000000000000008
+:1048B00000000000000000000000000000000000F8
+:1048C00000000000000000000000000000000000E8
+:1048D00000000000000000000000000000000000D8
+:1048E00000000000000000000000000000000000C8
+:1048F00000000000000000000000000000000000B8
+:1049000000000000000000000000000000000000A7
+:104910000000000000000000000000000000000097
+:104920000000000000000000000000000000000087
+:104930000000000000000000000000000000000077
+:104940000000000000000000000000000000000067
+:104950000000000000000000000000000000000057
+:104960000000000000000000000000000000000047
+:104970000000000000000000000000000000000037
+:104980000000000000000000000000000000000027
+:104990000000000000000000000000000000000017
+:1049A0000000000000000000000000000000000007
+:1049B00000000000000000000000000000000000F7
+:1049C00000000000000000000000000000000000E7
+:1049D00000000000000000000000000000000000D7
+:1049E00000000000000000000000000000000000C7
+:1049F00000000000000000000000000000000000B7
+:104A000000000000000000000000000000000000A6
+:104A10000000000000000000000000000000000096
+:104A20000000000000000000000000000000000086
+:104A30000000000000000000000000000000000076
+:104A40000000000000000000000000000000000066
+:104A50000000000000000000000000000000000056
+:104A60000000000000000000000000000000000046
+:104A70000000000000000000000000000000000036
+:104A80000000000000000000000000000000000026
+:104A90000000000000000000000000000000000016
+:104AA0000000000000000000000000000000000006
+:104AB00000000000000000000000000000000000F6
+:104AC00000000000000000000000000000000000E6
+:104AD00000000000000000000000000000000000D6
+:104AE00000000000000000000000000000000000C6
+:104AF00000000000000000000000000000000000B6
+:104B0000AAAAAAAAAAAAAAAA5555AAAAAAAAAAAAAF
+:104B1000AAAAAAAAAAAAAA5555AAAAAAAAAAAAAA9F
+:104B200055555555555555AA555555555555AAAA36
+:104B30005555AAAAAAAAAAAAAAAAAAAAAAAA555529
+:104B40000000000000000000000000000000000065
+:104B50000000000000000000000000000000000055
+:104B60000000000000000000000000000000000045
+:104B70000000000000000000000000000000000035
+:104B80000000000000000000000000000000000025
+:104B90000000000000000000000000000000000015
+:104BA0000000000000000000000000000000000005
+:104BB00000000000000000000000000000000000F5
+:104BC00000000000000000000000000000000000E5
+:104BD00000000000000000000000000000000000D5
+:104BE00000000000000000000000000000000000C5
+:104BF00000000000000000000000000000000000B5
+:104C000000000000000000000000000000000000A4
+:104C10000000000000000000000000000000000094
+:104C20000000000000000000000000000000000084
+:104C30000000000000000000000000000000000074
+:104C40000000000000000000000000000000000064
+:104C50000000000000000000000000000000000054
+:104C60000000000000000000000000000000000044
+:104C70000000000000000000000000000000000034
+:104C80000000000000000000000000000000000024
+:104C90000000000000000000000000000000000014
+:104CA0000000000000000000000000000000000004
+:104CB00000000000000000000000000000000000F4
+:104CC00000000000000000000000000000000000E4
+:104CD00000000000000000000000000000000000D4
+:104CE00000000000000000000000000000000000C4
+:104CF00000000000000000000000000000000000B4
+:104D000000000000000000000000000000000000A3
+:104D10000000000000000000000000000000000093
+:104D20000000000000000000000000000000000083
+:104D30000000000000000000000000000000000073
+:104D40000000000000000000000000000000000063
+:104D50000000000000000000000000000000000053
+:104D60000000000000000000000000000000000043
+:104D70000000000000000000000000000000000033
+:104D80000000000000000000000000000000000023
+:104D90000000000000000000000000000000000013
+:104DA0000000000000000000000000000000000003
+:104DB00000000000000000000000000000000000F3
+:104DC00000000000000000000000000000000000E3
+:104DD00000000000000000000000000000000000D3
+:104DE00000000000000000000000000000000000C3
+:104DF00000000000000000000000000000000000B3
+:104E000000000000000000000000000000000000A2
+:104E10000000000000000000000000000000000092
+:104E20000000000000000000000000000000000082
+:104E30000000000000000000000000000000000072
+:104E40000000000000000000000000000000000062
+:104E50000000000000000000000000000000000052
+:104E60000000000000000000000000000000000042
+:104E70000000000000000000000000000000000032
+:104E80000000000000000000000000000000000022
+:104E90000000000000000000000000000000000012
+:104EA0000000000000000000000000000000000002
+:104EB00000000000000000000000000000000000F2
+:104EC00000000000000000000000000000000000E2
+:104ED00000000000000000000000000000000000D2
+:104EE00000000000000000000000000000000000C2
+:104EF00000000000000000000000000000000000B2
+:104F0000AAAAAAAAAAAAAAAA5555AAAAAAAAAAAAAB
+:104F1000AAAAAAAAAAAAAA5555AAAAAAAAAAAAAA9B
+:104F200055555555555555AA555555555555AAAA32
+:104F30005555AAAAAAAAAAAAAAAAAAAAAAAA555525
+:104F40000000000000000000000000000000000061
+:104F50000000000000000000000000000000000051
+:104F60000000000000000000000000000000000041
+:104F70000000000000000000000000000000000031
+:104F80000000000000000000000000000000000021
+:104F90000000000000000000000000000000000011
+:104FA0000000000000000000000000000000000001
+:104FB00000000000000000000000000000000000F1
+:104FC00000000000000000000000000000000000E1
+:104FD00000000000000000000000000000000000D1
+:104FE00000000000000000000000000000000000C1
+:104FF00000000000000000000000000000000000B1
+:1050000000000000000000000000000000000000A0
+:105010000000000000000000000000000000000090
+:105020000000000000000000000000000000000080
+:105030000000000000000000000000000000000070
+:105040000000000000000000000000000000000060
+:105050000000000000000000000000000000000050
+:105060000000000000000000000000000000000040
+:105070000000000000000000000000000000000030
+:105080000000000000000000000000000000000020
+:105090000000000000000000000000000000000010
+:1050A0000000000000000000000000000000000000
+:1050B00000000000000000000000000000000000F0
+:1050C00000000000000000000000000000000000E0
+:1050D00000000000000000000000000000000000D0
+:1050E00000000000000000000000000000000000C0
+:1050F00000000000000000000000000000000000B0
+:10510000000000000000000000000000000000009F
+:10511000000000000000000000000000000000008F
+:10512000000000000000000000000000000000007F
+:10513000000000000000000000000000000000006F
+:10514000000000000000000000000000000000005F
+:10515000000000000000000000000000000000004F
+:10516000000000000000000000000000000000003F
+:10517000000000000000000000000000000000002F
+:10518000000000000000000000000000000000001F
+:10519000000000000000000000000000000000000F
+:1051A00000000000000000000000000000000000FF
+:1051B00000000000000000000000000000000000EF
+:1051C00000000000000000000000000000000000DF
+:1051D00000000000000000000000000000000000CF
+:1051E00000000000000000000000000000000000BF
+:1051F00000000000000000000000000000000000AF
+:10520000000000000000000000000000000000009E
+:10521000000000000000000000000000000000008E
+:10522000000000000000000000000000000000007E
+:10523000000000000000000000000000000000006E
+:10524000000000000000000000000000000000005E
+:10525000000000000000000000000000000000004E
+:10526000000000000000000000000000000000003E
+:10527000000000000000000000000000000000002E
+:10528000000000000000000000000000000000001E
+:10529000000000000000000000000000000000000E
+:1052A00000000000000000000000000000000000FE
+:1052B00000000000000000000000000000000000EE
+:1052C00000000000000000000000000000000000DE
+:1052D00000000000000000000000000000000000CE
+:1052E00000000000000000000000000000000000BE
+:1052F00000000000000000000000000000000000AE
+:10530000AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFD
+:10531000AAAAAAAAAAAAAA555555555555555555EA
+:10532000555555555555000000000000000000007F
+:10533000000000000000000000000000000000006D
+:10534000000000000000000000000000000000005D
+:10535000000000000000000000000000000000004D
+:10536000000000000000000000000000000000003D
+:10537000000000000000000000000000000000002D
+:10538000000000000000000000000000000000001D
+:10539000000000000000000000000000000000000D
+:1053A00000000000000000000000000000000000FD
+:1053B00000000000000000000000000000000000ED
+:1053C00000000000000000000000000000000000DD
+:1053D00000000000000000000000000000000000CD
+:1053E00000000000000000000000000000000000BD
+:1053F00000000000000000000000000000000000AD
+:10540000000000000000000000000000000000009C
+:10541000000000000000000000000000000000008C
+:10542000000000000000000000000000000000007C
+:10543000000000000000000000000000000000006C
+:10544000000000000000000000000000000000005C
+:10545000000000000000000000000000000000004C
+:10546000000000000000000000000000000000003C
+:10547000000000000000000000000000000000002C
+:10548000000000000000000000000000000000001C
+:10549000000000000000000000000000000000000C
+:1054A00000000000000000000000000000000000FC
+:1054B00000000000000000000000000000000000EC
+:1054C00000000000000000000000000000000000DC
+:1054D00000000000000000000000000000000000CC
+:1054E00000000000000000000000000000000000BC
+:1054F00000000000000000000000000000000000AC
+:10550000000000000000000000000000000000009B
+:10551000000000000000000000000000000000008B
+:10552000000000000000000000000000000000007B
+:10553000000000000000000000000000000000006B
+:10554000000000000000000000000000000000005B
+:10555000000000000000000000000000000000004B
+:10556000000000000000000000000000000000003B
+:10557000000000000000000000000000000000002B
+:10558000000000000000000000000000000000001B
+:10559000000000000000000000000000000000000B
+:1055A00000000000000000000000000000000000FB
+:1055B00000000000000000000000000000000000EB
+:1055C00000000000000000000000000000000000DB
+:1055D00000000000000000000000000000000000CB
+:1055E00000000000000000000000000000000000BB
+:1055F00000000000000000000000000000000000AB
+:10560000000000000000000000000000000000009A
+:10561000000000000000000000000000000000008A
+:10562000000000000000000000000000000000007A
+:10563000000000000000000000000000000000006A
+:10564000000000000000000000000000000000005A
+:10565000000000000000000000000000000000004A
+:10566000000000000000000000000000000000003A
+:10567000000000000000000000000000000000002A
+:10568000000000000000000000000000000000001A
+:10569000000000000000000000000000000000000A
+:1056A00000000000000000000000000000000000FA
+:1056B00000000000000000000000000000000000EA
+:1056C00000000000000000000000000000000000DA
+:1056D00000000000000000000000000000000000CA
+:1056E00000000000000000000000000000000000BA
+:1056F00000000000000000000000000000000000AA
+:10570000AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAF9
+:10571000AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAE9
+:10572000AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD9
+:10573000AAAAAAAAAAAAAAAAAAAA55AAAAAAAAAA1E
+:10574000AAAAAAAAAA5555AAAAAA55555555555561
+:10575000555555555555AAAA5555AAAA5555AAAAFB
+:10576000555500000000000000000000000000008F
+:105770000000000000000000000000000000000029
+:105780000000000000000000000000000000000019
+:105790000000000000000000000000000000000009
+:1057A00000000000000000000000000000000000F9
+:1057B00000000000000000000000000000000000E9
+:1057C00000000000000000000000000000000000D9
+:1057D00000000000000000000000000000000000C9
+:1057E00000000000000000000000000000000000B9
+:1057F00000000000000000000000000000000000A9
+:105800000000000000000000000000000000000098
+:105810000000000000000000000000000000000088
+:105820000000000000000000000000000000000078
+:105830000000000000000000000000000000000068
+:105840000000000000000000000000000000000058
+:105850000000000000000000000000000000000048
+:105860000000000000000000000000000000000038
+:105870000000000000000000000000000000000028
+:105880000000000000000000000000000000000018
+:105890000000000000000000000000000000000008
+:1058A00000000000000000000000000000000000F8
+:1058B00000000000000000000000000000000000E8
+:1058C00000000000000000000000000000000000D8
+:1058D00000000000000000000000000000000000C8
+:1058E00000000000000000000000000000000000B8
+:1058F00000000000000000000000000000000000A8
+:105900000000000000000000000000000000000097
+:105910000000000000000000000000000000000087
+:105920000000000000000000000000000000000077
+:105930000000000000000000000000000000000067
+:105940000000000000000000000000000000000057
+:105950000000000000000000000000000000000047
+:105960000000000000000000000000000000000037
+:105970000000000000000000000000000000000027
+:105980000000000000000000000000000000000017
+:105990000000000000000000000000000000000007
+:1059A00000000000000000000000000000000000F7
+:1059B00000000000000000000000000000000000E7
+:1059C00000000000000000000000000000000000D7
+:1059D00000000000000000000000000000000000C7
+:1059E00000000000000000000000000000000000B7
+:1059F00000000000000000000000000000000000A7
+:105A00000000000000000000000000000000000096
+:105A10000000000000000000000000000000000086
+:105A20000000000000000000000000000000000076
+:105A30000000000000000000000000000000000066
+:105A40000000000000000000000000000000000056
+:105A50000000000000000000000000000000000046
+:105A60000000000000000000000000000000000036
+:105A70000000000000000000000000000000000026
+:105A80000000000000000000000000000000000016
+:105A90000000000000000000000000000000000006
+:105AA00000000000000000000000000000000000F6
+:105AB00000000000000000000000000000000000E6
+:105AC00000000000000000000000000000000000D6
+:105AD00000000000000000000000000000000000C6
+:105AE00000000000000000000000000000000000B6
+:105AF00000000000000000000000000000000000A6
+:105B0000AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAF5
+:105B1000AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAE5
+:105B2000AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD5
+:105B3000AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAC5
+:105B4000AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB5
+:105B5000AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA5
+:105B6000555500000000000000000000000000008B
+:105B70000000000000000000000000000000000025
+:105B80000000000000000000000000000000000015
+:105B90000000000000000000000000000000000005
+:105BA00000000000000000000000000000000000F5
+:105BB00000000000000000000000000000000000E5
+:105BC00000000000000000000000000000000000D5
+:105BD00000000000000000000000000000000000C5
+:105BE00000000000000000000000000000000000B5
+:105BF00000000000000000000000000000000000A5
+:105C00000000000000000000000000000000000094
+:105C10000000000000000000000000000000000084
+:105C20000000000000000000000000000000000074
+:105C30000000000000000000000000000000000064
+:105C40000000000000000000000000000000000054
+:105C50000000000000000000000000000000000044
+:105C60000000000000000000000000000000000034
+:105C70000000000000000000000000000000000024
+:105C80000000000000000000000000000000000014
+:105C90000000000000000000000000000000000004
+:105CA00000000000000000000000000000000000F4
+:105CB00000000000000000000000000000000000E4
+:105CC00000000000000000000000000000000000D4
+:105CD00000000000000000000000000000000000C4
+:105CE00000000000000000000000000000000000B4
+:105CF00000000000000000000000000000000000A4
+:105D00000000000000000000000000000000000093
+:105D10000000000000000000000000000000000083
+:105D20000000000000000000000000000000000073
+:105D30000000000000000000000000000000000063
+:105D40000000000000000000000000000000000053
+:105D50000000000000000000000000000000000043
+:105D60000000000000000000000000000000000033
+:105D70000000000000000000000000000000000023
+:105D80000000000000000000000000000000000013
+:105D90000000000000000000000000000000000003
+:105DA00000000000000000000000000000000000F3
+:105DB00000000000000000000000000000000000E3
+:105DC00000000000000000000000000000000000D3
+:105DD00000000000000000000000000000000000C3
+:105DE00000000000000000000000000000000000B3
+:105DF00000000000000000000000000000000000A3
+:105E00000000000000000000000000000000000092
+:105E10000000000000000000000000000000000082
+:105E20000000000000000000000000000000000072
+:105E30000000000000000000000000000000000062
+:105E40000000000000000000000000000000000052
+:105E50000000000000000000000000000000000042
+:105E60000000000000000000000000000000000032
+:105E70000000000000000000000000000000000022
+:105E80000000000000000000000000000000000012
+:105E90000000000000000000000000000000000002
+:105EA00000000000000000000000000000000000F2
+:105EB00000000000000000000000000000000000E2
+:105EC00000000000000000000000000000000000D2
+:105ED00000000000000000000000000000000000C2
+:105EE00000000000000000000000000000000000B2
+:105EF00000000000000000000000000000000000A2
+:105F0000AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAF1
+:105F1000AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAE1
+:105F2000AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD1
+:105F3000AAAAAAAAAAAAAAAAAAAA55AAAAAAAAAA16
+:105F4000AAAAAAAAAA5555AAAAAA55555555555559
+:105F500055555555555555555555555555555555F1
+:105F60005555000000000000000000000000000087
+:105F70000000000000000000000000000000000021
+:105F80000000000000000000000000000000000011
+:105F90000000000000000000000000000000000001
+:105FA00000000000000000000000000000000000F1
+:105FB00000000000000000000000000000000000E1
+:105FC00000000000000000000000000000000000D1
+:105FD00000000000000000000000000000000000C1
+:105FE00000000000000000000000000000000000B1
+:105FF00000000000000000000000000000000000A1
+:106000000000000000000000000000000000000090
+:106010000000000000000000000000000000000080
+:106020000000000000000000000000000000000070
+:106030000000000000000000000000000000000060
+:106040000000000000000000000000000000000050
+:106050000000000000000000000000000000000040
+:106060000000000000000000000000000000000030
+:106070000000000000000000000000000000000020
+:106080000000000000000000000000000000000010
+:106090000000000000000000000000000000000000
+:1060A00000000000000000000000000000000000F0
+:1060B00000000000000000000000000000000000E0
+:1060C00000000000000000000000000000000000D0
+:1060D00000000000000000000000000000000000C0
+:1060E00000000000000000000000000000000000B0
+:1060F00000000000000000000000000000000000A0
+:10610000000000000000000000000000000000008F
+:10611000000000000000000000000000000000007F
+:10612000000000000000000000000000000000006F
+:10613000000000000000000000000000000000005F
+:10614000000000000000000000000000000000004F
+:10615000000000000000000000000000000000003F
+:10616000000000000000000000000000000000002F
+:10617000000000000000000000000000000000001F
+:10618000000000000000000000000000000000000F
+:1061900000000000000000000000000000000000FF
+:1061A00000000000000000000000000000000000EF
+:1061B00000000000000000000000000000000000DF
+:1061C00000000000000000000000000000000000CF
+:1061D00000000000000000000000000000000000BF
+:1061E00000000000000000000000000000000000AF
+:1061F000000000000000000000000000000000009F
+:10620000000000000000000000000000000000008E
+:10621000000000000000000000000000000000007E
+:10622000000000000000000000000000000000006E
+:10623000000000000000000000000000000000005E
+:10624000000000000000000000000000000000004E
+:10625000000000000000000000000000000000003E
+:10626000000000000000000000000000000000002E
+:10627000000000000000000000000000000000001E
+:10628000000000000000000000000000000000000E
+:1062900000000000000000000000000000000000FE
+:1062A00000000000000000000000000000000000EE
+:1062B00000000000000000000000000000000000DE
+:1062C00000000000000000000000000000000000CE
+:1062D00000000000000000000000000000000000BE
+:1062E00000000000000000000000000000000000AE
+:1062F000000000000000000000000000000000009E
+:10630000AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAED
+:10631000AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADD
+:10632000AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACD
+:10633000AAAAAAAAAAAAAAAAAAAA55AAAAAAAAAA12
+:10634000AAAAAAAAAA5555AAAAAA55555555555555
+:10635000555555555555AAAA5555AAAA5555AAAAEF
+:106360005555000000000000000000000000000083
+:10637000000000000000000000000000000000001D
+:10638000000000000000000000000000000000000D
+:1063900000000000000000000000000000000000FD
+:1063A00000000000000000000000000000000000ED
+:1063B00000000000000000000000000000000000DD
+:1063C00000000000000000000000000000000000CD
+:1063D00000000000000000000000000000000000BD
+:1063E00000000000000000000000000000000000AD
+:1063F000000000000000000000000000000000009D
+:10640000000000000000000000000000000000008C
+:10641000000000000000000000000000000000007C
+:10642000000000000000000000000000000000006C
+:10643000000000000000000000000000000000005C
+:10644000000000000000000000000000000000004C
+:10645000000000000000000000000000000000003C
+:10646000000000000000000000000000000000002C
+:10647000000000000000000000000000000000001C
+:10648000000000000000000000000000000000000C
+:1064900000000000000000000000000000000000FC
+:1064A00000000000000000000000000000000000EC
+:1064B00000000000000000000000000000000000DC
+:1064C00000000000000000000000000000000000CC
+:1064D00000000000000000000000000000000000BC
+:1064E00000000000000000000000000000000000AC
+:1064F000000000000000000000000000000000009C
+:10650000000000000000000000000000000000008B
+:10651000000000000000000000000000000000007B
+:10652000000000000000000000000000000000006B
+:10653000000000000000000000000000000000005B
+:10654000000000000000000000000000000000004B
+:10655000000000000000000000000000000000003B
+:10656000000000000000000000000000000000002B
+:10657000000000000000000000000000000000001B
+:10658000000000000000000000000000000000000B
+:1065900000000000000000000000000000000000FB
+:1065A00000000000000000000000000000000000EB
+:1065B00000000000000000000000000000000000DB
+:1065C00000000000000000000000000000000000CB
+:1065D00000000000000000000000000000000000BB
+:1065E00000000000000000000000000000000000AB
+:1065F000000000000000000000000000000000009B
+:10660000000000000000000000000000000000008A
+:10661000000000000000000000000000000000007A
+:10662000000000000000000000000000000000006A
+:10663000000000000000000000000000000000005A
+:10664000000000000000000000000000000000004A
+:10665000000000000000000000000000000000003A
+:10666000000000000000000000000000000000002A
+:10667000000000000000000000000000000000001A
+:10668000000000000000000000000000000000000A
+:1066900000000000000000000000000000000000FA
+:1066A00000000000000000000000000000000000EA
+:1066B00000000000000000000000000000000000DA
+:1066C00000000000000000000000000000000000CA
+:1066D00000000000000000000000000000000000BA
+:1066E00000000000000000000000000000000000AA
+:1066F000000000000000000000000000000000009A
+:10670000AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAE9
+:10671000AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD9
+:10672000AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAC9
+:10673000AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB9
+:10674000AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA9
+:10675000AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA99
+:10676000AAAA0000000000000000000000000000D5
+:106770000000000000000000000000000000000019
+:106780000000000000000000000000000000000009
+:1067900000000000000000000000000000000000F9
+:1067A00000000000000000000000000000000000E9
+:1067B00000000000000000000000000000000000D9
+:1067C00000000000000000000000000000000000C9
+:1067D00000000000000000000000000000000000B9
+:1067E00000000000000000000000000000000000A9
+:1067F0000000000000000000000000000000000099
+:106800000000000000000000000000000000000088
+:106810000000000000000000000000000000000078
+:106820000000000000000000000000000000000068
+:106830000000000000000000000000000000000058
+:106840000000000000000000000000000000000048
+:106850000000000000000000000000000000000038
+:106860000000000000000000000000000000000028
+:106870000000000000000000000000000000000018
+:106880000000000000000000000000000000000008
+:1068900000000000000000000000000000000000F8
+:1068A00000000000000000000000000000000000E8
+:1068B00000000000000000000000000000000000D8
+:1068C00000000000000000000000000000000000C8
+:1068D00000000000000000000000000000000000B8
+:1068E00000000000000000000000000000000000A8
+:1068F0000000000000000000000000000000000098
+:106900000000000000000000000000000000000087
+:106910000000000000000000000000000000000077
+:106920000000000000000000000000000000000067
+:106930000000000000000000000000000000000057
+:106940000000000000000000000000000000000047
+:106950000000000000000000000000000000000037
+:106960000000000000000000000000000000000027
+:106970000000000000000000000000000000000017
+:106980000000000000000000000000000000000007
+:1069900000000000000000000000000000000000F7
+:1069A00000000000000000000000000000000000E7
+:1069B00000000000000000000000000000000000D7
+:1069C00000000000000000000000000000000000C7
+:1069D00000000000000000000000000000000000B7
+:1069E00000000000000000000000000000000000A7
+:1069F0000000000000000000000000000000000097
+:106A00000000000000000000000000000000000086
+:106A10000000000000000000000000000000000076
+:106A20000000000000000000000000000000000066
+:106A30000000000000000000000000000000000056
+:106A40000000000000000000000000000000000046
+:106A50000000000000000000000000000000000036
+:106A60000000000000000000000000000000000026
+:106A70000000000000000000000000000000000016
+:106A80000000000000000000000000000000000006
+:106A900000000000000000000000000000000000F6
+:106AA00000000000000000000000000000000000E6
+:106AB00000000000000000000000000000000000D6
+:106AC00000000000000000000000000000000000C6
+:106AD00000000000000000000000000000000000B6
+:106AE00000000000000000000000000000000000A6
+:106AF0000000000000000000000000000000000096
+:106B0000AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAE5
+:106B1000AAAAAAAAAAAAAAAA5555AAAAAAAAAAAA7F
+:106B2000AAAAAAAAAAAA555555AAAAAAAAAA55556E
+:106B30005555555555555555555555555555555505
+:106B400055555555555555555555555555555555F5
+:106B5000555555555555AAAA5555AAAA5555AAAAE7
+:106B60005555AAAA5555AAAA5555AAAA5555AAAA2D
+:106B7000555555555555555555555555555500006F
+:106B80000000000000000000000000000000000005
+:106B900000000000000000000000000000000000F5
+:106BA00000000000000000000000000000000000E5
+:106BB00000000000000000000000000000000000D5
+:106BC00000000000000000000000000000000000C5
+:106BD00000000000000000000000000000000000B5
+:106BE00000000000000000000000000000000000A5
+:106BF0000000000000000000000000000000000095
+:106C00000000000000000000000000000000000084
+:106C10000000000000000000000000000000000074
+:106C20000000000000000000000000000000000064
+:106C30000000000000000000000000000000000054
+:106C40000000000000000000000000000000000044
+:106C50000000000000000000000000000000000034
+:106C60000000000000000000000000000000000024
+:106C70000000000000000000000000000000000014
+:106C80000000000000000000000000000000000004
+:106C900000000000000000000000000000000000F4
+:106CA00000000000000000000000000000000000E4
+:106CB00000000000000000000000000000000000D4
+:106CC00000000000000000000000000000000000C4
+:106CD00000000000000000000000000000000000B4
+:106CE00000000000000000000000000000000000A4
+:106CF0000000000000000000000000000000000094
+:106D00000000000000000000000000000000000083
+:106D10000000000000000000000000000000000073
+:106D20000000000000000000000000000000000063
+:106D30000000000000000000000000000000000053
+:106D40000000000000000000000000000000000043
+:106D50000000000000000000000000000000000033
+:106D60000000000000000000000000000000000023
+:106D70000000000000000000000000000000000013
+:106D80000000000000000000000000000000000003
+:106D900000000000000000000000000000000000F3
+:106DA00000000000000000000000000000000000E3
+:106DB00000000000000000000000000000000000D3
+:106DC00000000000000000000000000000000000C3
+:106DD00000000000000000000000000000000000B3
+:106DE00000000000000000000000000000000000A3
+:106DF0000000000000000000000000000000000093
+:106E00000000000000000000000000000000000082
+:106E10000000000000000000000000000000000072
+:106E20000000000000000000000000000000000062
+:106E30000000000000000000000000000000000052
+:106E40000000000000000000000000000000000042
+:106E50000000000000000000000000000000000032
+:106E60000000000000000000000000000000000022
+:106E70000000000000000000000000000000000012
+:106E80000000000000000000000000000000000002
+:106E900000000000000000000000000000000000F2
+:106EA00000000000000000000000000000000000E2
+:106EB00000000000000000000000000000000000D2
+:106EC00000000000000000000000000000000000C2
+:106ED00000000000000000000000000000000000B2
+:106EE00000000000000000000000000000000000A2
+:106EF0000000000000000000000000000000000092
+:106F0000AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAE1
+:106F1000AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD1
+:106F2000AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAC1
+:106F3000AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB1
+:106F4000AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA1
+:106F5000AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA91
+:106F6000AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA81
+:106F7000AAAAAAAAAAAAAAAAAAAAAAAA555500006F
+:106F80000000000000000000000000000000000001
+:106F900000000000000000000000000000000000F1
+:106FA00000000000000000000000000000000000E1
+:106FB00000000000000000000000000000000000D1
+:106FC00000000000000000000000000000000000C1
+:106FD00000000000000000000000000000000000B1
+:106FE00000000000000000000000000000000000A1
+:106FF0000000000000000000000000000000000091
+:107000000000000000000000000000000000000080
+:107010000000000000000000000000000000000070
+:107020000000000000000000000000000000000060
+:107030000000000000000000000000000000000050
+:107040000000000000000000000000000000000040
+:107050000000000000000000000000000000000030
+:107060000000000000000000000000000000000020
+:107070000000000000000000000000000000000010
+:107080000000000000000000000000000000000000
+:1070900000000000000000000000000000000000F0
+:1070A00000000000000000000000000000000000E0
+:1070B00000000000000000000000000000000000D0
+:1070C00000000000000000000000000000000000C0
+:1070D00000000000000000000000000000000000B0
+:1070E00000000000000000000000000000000000A0
+:1070F0000000000000000000000000000000000090
+:10710000000000000000000000000000000000007F
+:10711000000000000000000000000000000000006F
+:10712000000000000000000000000000000000005F
+:10713000000000000000000000000000000000004F
+:10714000000000000000000000000000000000003F
+:10715000000000000000000000000000000000002F
+:10716000000000000000000000000000000000001F
+:10717000000000000000000000000000000000000F
+:1071800000000000000000000000000000000000FF
+:1071900000000000000000000000000000000000EF
+:1071A00000000000000000000000000000000000DF
+:1071B00000000000000000000000000000000000CF
+:1071C00000000000000000000000000000000000BF
+:1071D00000000000000000000000000000000000AF
+:1071E000000000000000000000000000000000009F
+:1071F000000000000000000000000000000000008F
+:10720000000000000000000000000000000000007E
+:10721000000000000000000000000000000000006E
+:10722000000000000000000000000000000000005E
+:10723000000000000000000000000000000000004E
+:10724000000000000000000000000000000000003E
+:10725000000000000000000000000000000000002E
+:10726000000000000000000000000000000000001E
+:10727000000000000000000000000000000000000E
+:1072800000000000000000000000000000000000FE
+:1072900000000000000000000000000000000000EE
+:1072A00000000000000000000000000000000000DE
+:1072B00000000000000000000000000000000000CE
+:1072C00000000000000000000000000000000000BE
+:1072D00000000000000000000000000000000000AE
+:1072E000000000000000000000000000000000009E
+:1072F000000000000000000000000000000000008E
+:10730000AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADD
+:10731000AAAAAAAAAAAAAAAA5555AAAAAAAAAAAA77
+:10732000AAAAAAAAAAAA555555AAAAAAAAAA555566
+:1073300055555555555555555555555555555555FD
+:1073400055555555555555555555555555555555ED
+:10735000555555555555AAAA5555AAAA5555AAAADF
+:107360005555AAAA5555AAAA5555AAAA5555AAAA25
+:107370005555555555555555555555555555000067
+:1073800000000000000000000000000000000000FD
+:1073900000000000000000000000000000000000ED
+:1073A00000000000000000000000000000000000DD
+:1073B00000000000000000000000000000000000CD
+:1073C00000000000000000000000000000000000BD
+:1073D00000000000000000000000000000000000AD
+:1073E000000000000000000000000000000000009D
+:1073F000000000000000000000000000000000008D
+:10740000000000000000000000000000000000007C
+:10741000000000000000000000000000000000006C
+:10742000000000000000000000000000000000005C
+:10743000000000000000000000000000000000004C
+:10744000000000000000000000000000000000003C
+:10745000000000000000000000000000000000002C
+:10746000000000000000000000000000000000001C
+:10747000000000000000000000000000000000000C
+:1074800000000000000000000000000000000000FC
+:1074900000000000000000000000000000000000EC
+:1074A00000000000000000000000000000000000DC
+:1074B00000000000000000000000000000000000CC
+:1074C00000000000000000000000000000000000BC
+:1074D00000000000000000000000000000000000AC
+:1074E000000000000000000000000000000000009C
+:1074F000000000000000000000000000000000008C
+:10750000000000000000000000000000000000007B
+:10751000000000000000000000000000000000006B
+:10752000000000000000000000000000000000005B
+:10753000000000000000000000000000000000004B
+:10754000000000000000000000000000000000003B
+:10755000000000000000000000000000000000002B
+:10756000000000000000000000000000000000001B
+:10757000000000000000000000000000000000000B
+:1075800000000000000000000000000000000000FB
+:1075900000000000000000000000000000000000EB
+:1075A00000000000000000000000000000000000DB
+:1075B00000000000000000000000000000000000CB
+:1075C00000000000000000000000000000000000BB
+:1075D00000000000000000000000000000000000AB
+:1075E000000000000000000000000000000000009B
+:1075F000000000000000000000000000000000008B
+:10760000000000000000000000000000000000007A
+:10761000000000000000000000000000000000006A
+:10762000000000000000000000000000000000005A
+:10763000000000000000000000000000000000004A
+:10764000000000000000000000000000000000003A
+:10765000000000000000000000000000000000002A
+:10766000000000000000000000000000000000001A
+:10767000000000000000000000000000000000000A
+:1076800000000000000000000000000000000000FA
+:1076900000000000000000000000000000000000EA
+:1076A00000000000000000000000000000000000DA
+:1076B00000000000000000000000000000000000CA
+:1076C00000000000000000000000000000000000BA
+:1076D00000000000000000000000000000000000AA
+:1076E000000000000000000000000000000000009A
+:1076F000000000000000000000000000000000008A
+:10770000AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD9
+:10771000AAAAAAAAAAAAAAAA5555AAAAAAAAAAAA73
+:10772000AAAAAAAAAAAA555555AAAAAAAAAA555562
+:1077300055555555555555555555555555555555F9
+:1077400055555555555555555555555555555555E9
+:10775000555555555555AAAA5555AAAA5555AAAADB
+:107760005555AAAA5555AAAA5555AAAA5555AAAA21
+:107770005555555555555555555555555555000063
+:1077800000000000000000000000000000000000F9
+:1077900000000000000000000000000000000000E9
+:1077A00000000000000000000000000000000000D9
+:1077B00000000000000000000000000000000000C9
+:1077C00000000000000000000000000000000000B9
+:1077D00000000000000000000000000000000000A9
+:1077E0000000000000000000000000000000000099
+:1077F0000000000000000000000000000000000089
+:107800000000000000000000000000000000000078
+:107810000000000000000000000000000000000068
+:107820000000000000000000000000000000000058
+:107830000000000000000000000000000000000048
+:107840000000000000000000000000000000000038
+:107850000000000000000000000000000000000028
+:107860000000000000000000000000000000000018
+:107870000000000000000000000000000000000008
+:1078800000000000000000000000000000000000F8
+:1078900000000000000000000000000000000000E8
+:1078A00000000000000000000000000000000000D8
+:1078B00000000000000000000000000000000000C8
+:1078C00000000000000000000000000000000000B8
+:1078D00000000000000000000000000000000000A8
+:1078E0000000000000000000000000000000000098
+:1078F0000000000000000000000000000000000088
+:107900000000000000000000000000000000000077
+:107910000000000000000000000000000000000067
+:107920000000000000000000000000000000000057
+:107930000000000000000000000000000000000047
+:107940000000000000000000000000000000000037
+:107950000000000000000000000000000000000027
+:107960000000000000000000000000000000000017
+:107970000000000000000000000000000000000007
+:1079800000000000000000000000000000000000F7
+:1079900000000000000000000000000000000000E7
+:1079A00000000000000000000000000000000000D7
+:1079B00000000000000000000000000000000000C7
+:1079C00000000000000000000000000000000000B7
+:1079D00000000000000000000000000000000000A7
+:1079E0000000000000000000000000000000000097
+:1079F0000000000000000000000000000000000087
+:107A00000000000000000000000000000000000076
+:107A10000000000000000000000000000000000066
+:107A20000000000000000000000000000000000056
+:107A30000000000000000000000000000000000046
+:107A40000000000000000000000000000000000036
+:107A50000000000000000000000000000000000026
+:107A60000000000000000000000000000000000016
+:107A70000000000000000000000000000000000006
+:107A800000000000000000000000000000000000F6
+:107A900000000000000000000000000000000000E6
+:107AA00000000000000000000000000000000000D6
+:107AB00000000000000000000000000000000000C6
+:107AC00000000000000000000000000000000000B6
+:107AD00000000000000000000000000000000000A6
+:107AE0000000000000000000000000000000000096
+:107AF0000000000000000000000000000000000086
+:107B0000AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD5
+:107B1000AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAC5
+:107B2000AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB5
+:107B3000AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA5
+:107B4000AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA55EA
+:107B5000555500000000000000000000000000007B
+:107B60000000000000000000000000000000000015
+:107B70000000000000000000000000000000000005
+:107B800000000000000000000000000000000000F5
+:107B900000000000000000000000000000000000E5
+:107BA00000000000000000000000000000000000D5
+:107BB00000000000000000000000000000000000C5
+:107BC00000000000000000000000000000000000B5
+:107BD00000000000000000000000000000000000A5
+:107BE0000000000000000000000000000000000095
+:107BF0000000000000000000000000000000000085
+:107C00000000000000000000000000000000000074
+:107C10000000000000000000000000000000000064
+:107C20000000000000000000000000000000000054
+:107C30000000000000000000000000000000000044
+:107C40000000000000000000000000000000000034
+:107C50000000000000000000000000000000000024
+:107C60000000000000000000000000000000000014
+:107C70000000000000000000000000000000000004
+:107C800000000000000000000000000000000000F4
+:107C900000000000000000000000000000000000E4
+:107CA00000000000000000000000000000000000D4
+:107CB00000000000000000000000000000000000C4
+:107CC00000000000000000000000000000000000B4
+:107CD00000000000000000000000000000000000A4
+:107CE0000000000000000000000000000000000094
+:107CF0000000000000000000000000000000000084
+:107D00000000000000000000000000000000000073
+:107D10000000000000000000000000000000000063
+:107D20000000000000000000000000000000000053
+:107D30000000000000000000000000000000000043
+:107D40000000000000000000000000000000000033
+:107D50000000000000000000000000000000000023
+:107D60000000000000000000000000000000000013
+:107D70000000000000000000000000000000000003
+:107D800000000000000000000000000000000000F3
+:107D900000000000000000000000000000000000E3
+:107DA00000000000000000000000000000000000D3
+:107DB00000000000000000000000000000000000C3
+:107DC00000000000000000000000000000000000B3
+:107DD00000000000000000000000000000000000A3
+:107DE0000000000000000000000000000000000093
+:107DF0000000000000000000000000000000000083
+:107E00000000000000000000000000000000000072
+:107E10000000000000000000000000000000000062
+:107E20000000000000000000000000000000000052
+:107E30000000000000000000000000000000000042
+:107E40000000000000000000000000000000000032
+:107E50000000000000000000000000000000000022
+:107E60000000000000000000000000000000000012
+:107E70000000000000000000000000000000000002
+:107E800000000000000000000000000000000000F2
+:107E900000000000000000000000000000000000E2
+:107EA00000000000000000000000000000000000D2
+:107EB00000000000000000000000000000000000C2
+:107EC00000000000000000000000000000000000B2
+:107ED00000000000000000000000000000000000A2
+:107EE0000000000000000000000000000000000092
+:107EF0000000000000000000000000000000000082
+:107F0000AAAAAAAAAAAAAAAA5555AAAAAAAAAAAA7B
+:107F1000AAAAAAAAAAAAAA5555AAAAAAAAAAAAAA6B
+:107F200055555555555555AA555555555555AAAA02
+:107F30005555AAAAAAAAAAAAAAAAAAAAAAAA5555F5
+:107F40000000000000000000000000000000000031
+:107F50000000000000000000000000000000000021
+:107F60000000000000000000000000000000000011
+:107F70000000000000000000000000000000000001
+:107F800000000000000000000000000000000000F1
+:107F900000000000000000000000000000000000E1
+:107FA00000000000000000000000000000000000D1
+:107FB00000000000000000000000000000000000C1
+:107FC00000000000000000000000000000000000B1
+:107FD00000000000000000000000000000000000A1
+:107FE0000000000000000000000000000000000091
+:107FF0000000000000000000000000000000000081
+:108000000000000000000000000000000000000070
+:108010000000000000000000000000000000000060
+:108020000000000000000000000000000000000050
+:108030000000000000000000000000000000000040
+:108040000000000000000000000000000000000030
+:108050000000000000000000000000000000000020
+:108060000000000000000000000000000000000010
+:108070000000000000000000000000000000000000
+:1080800000000000000000000000000000000000F0
+:1080900000000000000000000000000000000000E0
+:1080A00000000000000000000000000000000000D0
+:1080B00000000000000000000000000000000000C0
+:1080C00000000000000000000000000000000000B0
+:1080D00000000000000000000000000000000000A0
+:1080E0000000000000000000000000000000000090
+:1080F0000000000000000000000000000000000080
+:10810000000000000000000000000000000000006F
+:10811000000000000000000000000000000000005F
+:10812000000000000000000000000000000000004F
+:10813000000000000000000000000000000000003F
+:10814000000000000000000000000000000000002F
+:10815000000000000000000000000000000000001F
+:10816000000000000000000000000000000000000F
+:1081700000000000000000000000000000000000FF
+:1081800000000000000000000000000000000000EF
+:1081900000000000000000000000000000000000DF
+:1081A00000000000000000000000000000000000CF
+:1081B00000000000000000000000000000000000BF
+:1081C00000000000000000000000000000000000AF
+:1081D000000000000000000000000000000000009F
+:1081E000000000000000000000000000000000008F
+:1081F000000000000000000000000000000000007F
+:10820000000000000000000000000000000000006E
+:10821000000000000000000000000000000000005E
+:10822000000000000000000000000000000000004E
+:10823000000000000000000000000000000000003E
+:10824000000000000000000000000000000000002E
+:10825000000000000000000000000000000000001E
+:10826000000000000000000000000000000000000E
+:1082700000000000000000000000000000000000FE
+:1082800000000000000000000000000000000000EE
+:1082900000000000000000000000000000000000DE
+:1082A00000000000000000000000000000000000CE
+:1082B00000000000000000000000000000000000BE
+:1082C00000000000000000000000000000000000AE
+:1082D000000000000000000000000000000000009E
+:1082E000000000000000000000000000000000008E
+:1082F000000000000000000000000000000000007E
+:10830000AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACD
+:10831000AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABD
+:10832000AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD
+:10833000AAAAAAAAAAAAAAAAAAAAAAAAAAAA555547
+:10834000000000000000000000000000000000002D
+:10835000000000000000000000000000000000001D
+:10836000000000000000000000000000000000000D
+:1083700000000000000000000000000000000000FD
+:1083800000000000000000000000000000000000ED
+:1083900000000000000000000000000000000000DD
+:1083A00000000000000000000000000000000000CD
+:1083B00000000000000000000000000000000000BD
+:1083C00000000000000000000000000000000000AD
+:1083D000000000000000000000000000000000009D
+:1083E000000000000000000000000000000000008D
+:1083F000000000000000000000000000000000007D
+:10840000000000000000000000000000000000006C
+:10841000000000000000000000000000000000005C
+:10842000000000000000000000000000000000004C
+:10843000000000000000000000000000000000003C
+:10844000000000000000000000000000000000002C
+:10845000000000000000000000000000000000001C
+:10846000000000000000000000000000000000000C
+:1084700000000000000000000000000000000000FC
+:1084800000000000000000000000000000000000EC
+:1084900000000000000000000000000000000000DC
+:1084A00000000000000000000000000000000000CC
+:1084B00000000000000000000000000000000000BC
+:1084C00000000000000000000000000000000000AC
+:1084D000000000000000000000000000000000009C
+:1084E000000000000000000000000000000000008C
+:1084F000000000000000000000000000000000007C
+:10850000000000000000000000000000000000006B
+:10851000000000000000000000000000000000005B
+:10852000000000000000000000000000000000004B
+:10853000000000000000000000000000000000003B
+:10854000000000000000000000000000000000002B
+:10855000000000000000000000000000000000001B
+:10856000000000000000000000000000000000000B
+:1085700000000000000000000000000000000000FB
+:1085800000000000000000000000000000000000EB
+:1085900000000000000000000000000000000000DB
+:1085A00000000000000000000000000000000000CB
+:1085B00000000000000000000000000000000000BB
+:1085C00000000000000000000000000000000000AB
+:1085D000000000000000000000000000000000009B
+:1085E000000000000000000000000000000000008B
+:1085F000000000000000000000000000000000007B
+:10860000000000000000000000000000000000006A
+:10861000000000000000000000000000000000005A
+:10862000000000000000000000000000000000004A
+:10863000000000000000000000000000000000003A
+:10864000000000000000000000000000000000002A
+:10865000000000000000000000000000000000001A
+:10866000000000000000000000000000000000000A
+:1086700000000000000000000000000000000000FA
+:1086800000000000000000000000000000000000EA
+:1086900000000000000000000000000000000000DA
+:1086A00000000000000000000000000000000000CA
+:1086B00000000000000000000000000000000000BA
+:1086C00000000000000000000000000000000000AA
+:1086D000000000000000000000000000000000009A
+:1086E000000000000000000000000000000000008A
+:1086F000000000000000000000000000000000007A
+:10870000AAAAAAAAAAAAAAAA5555AAAAAAAAAAAA73
+:10871000AAAAAAAAAAAAAA5555AAAAAAAAAAAAAA63
+:1087200055555555555555AA555555555555AAAAFA
+:108730005555AAAAAAAAAAAAAAAAAAAAAAAA5555ED
+:108740000000000000000000000000000000000029
+:108750000000000000000000000000000000000019
+:108760000000000000000000000000000000000009
+:1087700000000000000000000000000000000000F9
+:1087800000000000000000000000000000000000E9
+:1087900000000000000000000000000000000000D9
+:1087A00000000000000000000000000000000000C9
+:1087B00000000000000000000000000000000000B9
+:1087C00000000000000000000000000000000000A9
+:1087D0000000000000000000000000000000000099
+:1087E0000000000000000000000000000000000089
+:1087F0000000000000000000000000000000000079
+:108800000000000000000000000000000000000068
+:108810000000000000000000000000000000000058
+:108820000000000000000000000000000000000048
+:108830000000000000000000000000000000000038
+:108840000000000000000000000000000000000028
+:108850000000000000000000000000000000000018
+:108860000000000000000000000000000000000008
+:1088700000000000000000000000000000000000F8
+:1088800000000000000000000000000000000000E8
+:1088900000000000000000000000000000000000D8
+:1088A00000000000000000000000000000000000C8
+:1088B00000000000000000000000000000000000B8
+:1088C00000000000000000000000000000000000A8
+:1088D0000000000000000000000000000000000098
+:1088E0000000000000000000000000000000000088
+:1088F0000000000000000000000000000000000078
+:108900000000000000000000000000000000000067
+:108910000000000000000000000000000000000057
+:108920000000000000000000000000000000000047
+:108930000000000000000000000000000000000037
+:108940000000000000000000000000000000000027
+:108950000000000000000000000000000000000017
+:108960000000000000000000000000000000000007
+:1089700000000000000000000000000000000000F7
+:1089800000000000000000000000000000000000E7
+:1089900000000000000000000000000000000000D7
+:1089A00000000000000000000000000000000000C7
+:1089B00000000000000000000000000000000000B7
+:1089C00000000000000000000000000000000000A7
+:1089D0000000000000000000000000000000000097
+:1089E0000000000000000000000000000000000087
+:1089F0000000000000000000000000000000000077
+:108A00000000000000000000000000000000000066
+:108A10000000000000000000000000000000000056
+:108A20000000000000000000000000000000000046
+:108A30000000000000000000000000000000000036
+:108A40000000000000000000000000000000000026
+:108A50000000000000000000000000000000000016
+:108A60000000000000000000000000000000000006
+:108A700000000000000000000000000000000000F6
+:108A800000000000000000000000000000000000E6
+:108A900000000000000000000000000000000000D6
+:108AA00000000000000000000000000000000000C6
+:108AB00000000000000000000000000000000000B6
+:108AC00000000000000000000000000000000000A6
+:108AD0000000000000000000000000000000000096
+:108AE0000000000000000000000000000000000086
+:108AF0000000000000000000000000000000000076
+:108B0000AAAAAAAAAAAAAAAA5555AAAAAAAAAAAA6F
+:108B1000AAAAAAAAAAAAAA5555AAAAAAAAAAAAAA5F
+:108B200055555555555555AA555555555555AAAAF6
+:108B30005555AAAAAAAAAAAAAAAAAAAAAAAA5555E9
+:108B40000000000000000000000000000000000025
+:108B50000000000000000000000000000000000015
+:108B60000000000000000000000000000000000005
+:108B700000000000000000000000000000000000F5
+:108B800000000000000000000000000000000000E5
+:108B900000000000000000000000000000000000D5
+:108BA00000000000000000000000000000000000C5
+:108BB00000000000000000000000000000000000B5
+:108BC00000000000000000000000000000000000A5
+:108BD0000000000000000000000000000000000095
+:108BE0000000000000000000000000000000000085
+:108BF0000000000000000000000000000000000075
+:108C00000000000000000000000000000000000064
+:108C10000000000000000000000000000000000054
+:108C20000000000000000000000000000000000044
+:108C30000000000000000000000000000000000034
+:108C40000000000000000000000000000000000024
+:108C50000000000000000000000000000000000014
+:108C60000000000000000000000000000000000004
+:108C700000000000000000000000000000000000F4
+:108C800000000000000000000000000000000000E4
+:108C900000000000000000000000000000000000D4
+:108CA00000000000000000000000000000000000C4
+:108CB00000000000000000000000000000000000B4
+:108CC00000000000000000000000000000000000A4
+:108CD0000000000000000000000000000000000094
+:108CE0000000000000000000000000000000000084
+:108CF0000000000000000000000000000000000074
+:108D00000000000000000000000000000000000063
+:108D10000000000000000000000000000000000053
+:108D20000000000000000000000000000000000043
+:108D30000000000000000000000000000000000033
+:108D40000000000000000000000000000000000023
+:108D50000000000000000000000000000000000013
+:108D60000000000000000000000000000000000003
+:108D700000000000000000000000000000000000F3
+:108D800000000000000000000000000000000000E3
+:108D900000000000000000000000000000000000D3
+:108DA00000000000000000000000000000000000C3
+:108DB00000000000000000000000000000000000B3
+:108DC00000000000000000000000000000000000A3
+:108DD0000000000000000000000000000000000093
+:108DE0000000000000000000000000000000000083
+:108DF0000000000000000000000000000000000073
+:108E00000000000000000000000000000000000062
+:108E10000000000000000000000000000000000052
+:108E20000000000000000000000000000000000042
+:108E30000000000000000000000000000000000032
+:108E40000000000000000000000000000000000022
+:108E50000000000000000000000000000000000012
+:108E60000000000000000000000000000000000002
+:108E700000000000000000000000000000000000F2
+:108E800000000000000000000000000000000000E2
+:108E900000000000000000000000000000000000D2
+:108EA00000000000000000000000000000000000C2
+:108EB00000000000000000000000000000000000B2
+:108EC00000000000000000000000000000000000A2
+:108ED0000000000000000000000000000000000092
+:108EE0000000000000000000000000000000000082
+:108EF0000000000000000000000000000000000072
+:108F0000AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAC1
+:108F1000AAAAAAAAAAAAAA555555555555555555AE
+:108F20005555555555550000000000000000000043
+:108F30000000000000000000000000000000000031
+:108F40000000000000000000000000000000000021
+:108F50000000000000000000000000000000000011
+:108F60000000000000000000000000000000000001
+:108F700000000000000000000000000000000000F1
+:108F800000000000000000000000000000000000E1
+:108F900000000000000000000000000000000000D1
+:108FA00000000000000000000000000000000000C1
+:108FB00000000000000000000000000000000000B1
+:108FC00000000000000000000000000000000000A1
+:108FD0000000000000000000000000000000000091
+:108FE0000000000000000000000000000000000081
+:108FF0000000000000000000000000000000000071
+:109000000000000000000000000000000000000060
+:109010000000000000000000000000000000000050
+:109020000000000000000000000000000000000040
+:109030000000000000000000000000000000000030
+:109040000000000000000000000000000000000020
+:109050000000000000000000000000000000000010
+:109060000000000000000000000000000000000000
+:1090700000000000000000000000000000000000F0
+:1090800000000000000000000000000000000000E0
+:1090900000000000000000000000000000000000D0
+:1090A00000000000000000000000000000000000C0
+:1090B00000000000000000000000000000000000B0
+:1090C00000000000000000000000000000000000A0
+:1090D0000000000000000000000000000000000090
+:1090E0000000000000000000000000000000000080
+:1090F0000000000000000000000000000000000070
+:10910000000000000000000000000000000000005F
+:10911000000000000000000000000000000000004F
+:10912000000000000000000000000000000000003F
+:10913000000000000000000000000000000000002F
+:10914000000000000000000000000000000000001F
+:10915000000000000000000000000000000000000F
+:1091600000000000000000000000000000000000FF
+:1091700000000000000000000000000000000000EF
+:1091800000000000000000000000000000000000DF
+:1091900000000000000000000000000000000000CF
+:1091A00000000000000000000000000000000000BF
+:1091B00000000000000000000000000000000000AF
+:1091C000000000000000000000000000000000009F
+:1091D000000000000000000000000000000000008F
+:1091E000000000000000000000000000000000007F
+:1091F000000000000000000000000000000000006F
+:10920000000000000000000000000000000000005E
+:10921000000000000000000000000000000000004E
+:10922000000000000000000000000000000000003E
+:10923000000000000000000000000000000000002E
+:10924000000000000000000000000000000000001E
+:10925000000000000000000000000000000000000E
+:1092600000000000000000000000000000000000FE
+:1092700000000000000000000000000000000000EE
+:1092800000000000000000000000000000000000DE
+:1092900000000000000000000000000000000000CE
+:1092A00000000000000000000000000000000000BE
+:1092B00000000000000000000000000000000000AE
+:1092C000000000000000000000000000000000009E
+:1092D000000000000000000000000000000000008E
+:1092E000000000000000000000000000000000007E
+:1092F000000000000000000000000000000000006E
+:10930000AAAAAAAAAAAAAAAA5555AAAAAAAAAAAA67
+:10931000AAAAAAAAAAAAAA5555AAAAAAAAAAAAAA57
+:1093200055555555555555AA555555555555AAAAEE
+:109330005555AAAAAAAAAAAAAAAAAAAAAAAA5555E1
+:10934000000000000000000000000000000000001D
+:10935000000000000000000000000000000000000D
+:1093600000000000000000000000000000000000FD
+:1093700000000000000000000000000000000000ED
+:1093800000000000000000000000000000000000DD
+:1093900000000000000000000000000000000000CD
+:1093A00000000000000000000000000000000000BD
+:1093B00000000000000000000000000000000000AD
+:1093C000000000000000000000000000000000009D
+:1093D000000000000000000000000000000000008D
+:1093E000000000000000000000000000000000007D
+:1093F000000000000000000000000000000000006D
+:10940000000000000000000000000000000000005C
+:10941000000000000000000000000000000000004C
+:10942000000000000000000000000000000000003C
+:10943000000000000000000000000000000000002C
+:10944000000000000000000000000000000000001C
+:10945000000000000000000000000000000000000C
+:1094600000000000000000000000000000000000FC
+:1094700000000000000000000000000000000000EC
+:1094800000000000000000000000000000000000DC
+:1094900000000000000000000000000000000000CC
+:1094A00000000000000000000000000000000000BC
+:1094B00000000000000000000000000000000000AC
+:1094C000000000000000000000000000000000009C
+:1094D000000000000000000000000000000000008C
+:1094E000000000000000000000000000000000007C
+:1094F000000000000000000000000000000000006C
+:10950000000000000000000000000000000000005B
+:10951000000000000000000000000000000000004B
+:10952000000000000000000000000000000000003B
+:10953000000000000000000000000000000000002B
+:10954000000000000000000000000000000000001B
+:10955000000000000000000000000000000000000B
+:1095600000000000000000000000000000000000FB
+:1095700000000000000000000000000000000000EB
+:1095800000000000000000000000000000000000DB
+:1095900000000000000000000000000000000000CB
+:1095A00000000000000000000000000000000000BB
+:1095B00000000000000000000000000000000000AB
+:1095C000000000000000000000000000000000009B
+:1095D000000000000000000000000000000000008B
+:1095E000000000000000000000000000000000007B
+:1095F000000000000000000000000000000000006B
+:10960000000000000000000000000000000000005A
+:10961000000000000000000000000000000000004A
+:10962000000000000000000000000000000000003A
+:10963000000000000000000000000000000000002A
+:10964000000000000000000000000000000000001A
+:10965000000000000000000000000000000000000A
+:1096600000000000000000000000000000000000FA
+:1096700000000000000000000000000000000000EA
+:1096800000000000000000000000000000000000DA
+:1096900000000000000000000000000000000000CA
+:1096A00000000000000000000000000000000000BA
+:1096B00000000000000000000000000000000000AA
+:1096C000000000000000000000000000000000009A
+:1096D000000000000000000000000000000000008A
+:1096E000000000000000000000000000000000007A
+:1096F000000000000000000000000000000000006A
+:10970000AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB9
+:10971000AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA9
+:10972000AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA99
+:10973000AAAAAAAAAAAAAAAAAAAAAAAAAAAA555533
+:109740000000000000000000000000000000000019
+:109750000000000000000000000000000000000009
+:1097600000000000000000000000000000000000F9
+:1097700000000000000000000000000000000000E9
+:1097800000000000000000000000000000000000D9
+:1097900000000000000000000000000000000000C9
+:1097A00000000000000000000000000000000000B9
+:1097B00000000000000000000000000000000000A9
+:1097C0000000000000000000000000000000000099
+:1097D0000000000000000000000000000000000089
+:1097E0000000000000000000000000000000000079
+:1097F0000000000000000000000000000000000069
+:109800000000000000000000000000000000000058
+:109810000000000000000000000000000000000048
+:109820000000000000000000000000000000000038
+:109830000000000000000000000000000000000028
+:109840000000000000000000000000000000000018
+:109850000000000000000000000000000000000008
+:1098600000000000000000000000000000000000F8
+:1098700000000000000000000000000000000000E8
+:1098800000000000000000000000000000000000D8
+:1098900000000000000000000000000000000000C8
+:1098A00000000000000000000000000000000000B8
+:1098B00000000000000000000000000000000000A8
+:1098C0000000000000000000000000000000000098
+:1098D0000000000000000000000000000000000088
+:1098E0000000000000000000000000000000000078
+:1098F0000000000000000000000000000000000068
+:109900000000000000000000000000000000000057
+:109910000000000000000000000000000000000047
+:109920000000000000000000000000000000000037
+:109930000000000000000000000000000000000027
+:109940000000000000000000000000000000000017
+:109950000000000000000000000000000000000007
+:1099600000000000000000000000000000000000F7
+:1099700000000000000000000000000000000000E7
+:1099800000000000000000000000000000000000D7
+:1099900000000000000000000000000000000000C7
+:1099A00000000000000000000000000000000000B7
+:1099B00000000000000000000000000000000000A7
+:1099C0000000000000000000000000000000000097
+:1099D0000000000000000000000000000000000087
+:1099E0000000000000000000000000000000000077
+:1099F0000000000000000000000000000000000067
+:109A00000000000000000000000000000000000056
+:109A10000000000000000000000000000000000046
+:109A20000000000000000000000000000000000036
+:109A30000000000000000000000000000000000026
+:109A40000000000000000000000000000000000016
+:109A50000000000000000000000000000000000006
+:109A600000000000000000000000000000000000F6
+:109A700000000000000000000000000000000000E6
+:109A800000000000000000000000000000000000D6
+:109A900000000000000000000000000000000000C6
+:109AA00000000000000000000000000000000000B6
+:109AB00000000000000000000000000000000000A6
+:109AC0000000000000000000000000000000000096
+:109AD0000000000000000000000000000000000086
+:109AE0000000000000000000000000000000000076
+:109AF0000000000000000000000000000000000066
+:109B0000AAAAAAAAAAAAAAAA5555AAAAAAAAAAAA5F
+:109B1000AAAAAAAAAAAAAA5555AAAAAAAAAAAAAA4F
+:109B200055555555555555AA555555555555AAAAE6
+:109B30005555AAAAAAAAAAAAAAAAAAAAAAAA5555D9
+:109B40000000000000000000000000000000000015
+:109B50000000000000000000000000000000000005
+:109B600000000000000000000000000000000000F5
+:109B700000000000000000000000000000000000E5
+:109B800000000000000000000000000000000000D5
+:109B900000000000000000000000000000000000C5
+:109BA00000000000000000000000000000000000B5
+:109BB00000000000000000000000000000000000A5
+:109BC0000000000000000000000000000000000095
+:109BD0000000000000000000000000000000000085
+:109BE0000000000000000000000000000000000075
+:109BF0000000000000000000000000000000000065
+:109C00000000000000000000000000000000000054
+:109C10000000000000000000000000000000000044
+:109C20000000000000000000000000000000000034
+:109C30000000000000000000000000000000000024
+:109C40000000000000000000000000000000000014
+:109C50000000000000000000000000000000000004
+:109C600000000000000000000000000000000000F4
+:109C700000000000000000000000000000000000E4
+:109C800000000000000000000000000000000000D4
+:109C900000000000000000000000000000000000C4
+:109CA00000000000000000000000000000000000B4
+:109CB00000000000000000000000000000000000A4
+:109CC0000000000000000000000000000000000094
+:109CD0000000000000000000000000000000000084
+:109CE0000000000000000000000000000000000074
+:109CF0000000000000000000000000000000000064
+:109D00000000000000000000000000000000000053
+:109D10000000000000000000000000000000000043
+:109D20000000000000000000000000000000000033
+:109D30000000000000000000000000000000000023
+:109D40000000000000000000000000000000000013
+:109D50000000000000000000000000000000000003
+:109D600000000000000000000000000000000000F3
+:109D700000000000000000000000000000000000E3
+:109D800000000000000000000000000000000000D3
+:109D900000000000000000000000000000000000C3
+:109DA00000000000000000000000000000000000B3
+:109DB00000000000000000000000000000000000A3
+:109DC0000000000000000000000000000000000093
+:109DD0000000000000000000000000000000000083
+:109DE0000000000000000000000000000000000073
+:109DF0000000000000000000000000000000000063
+:109E00000000000000000000000000000000000052
+:109E10000000000000000000000000000000000042
+:109E20000000000000000000000000000000000032
+:109E30000000000000000000000000000000000022
+:109E40000000000000000000000000000000000012
+:109E50000000000000000000000000000000000002
+:109E600000000000000000000000000000000000F2
+:109E700000000000000000000000000000000000E2
+:109E800000000000000000000000000000000000D2
+:109E900000000000000000000000000000000000C2
+:109EA00000000000000000000000000000000000B2
+:109EB00000000000000000000000000000000000A2
+:109EC0000000000000000000000000000000000092
+:109ED0000000000000000000000000000000000082
+:109EE0000000000000000000000000000000000072
+:109EF0000000000000000000000000000000000062
+:109F0000AAAAAAAAAAAAAAAA5555AAAAAAAAAAAA5B
+:109F1000AAAAAAAAAAAAAA5555AAAAAAAAAAAAAA4B
+:109F200055555555555555AA555555555555AAAAE2
+:109F30005555AAAAAAAAAAAAAAAAAAAAAAAA5555D5
+:109F40000000000000000000000000000000000011
+:109F50000000000000000000000000000000000001
+:109F600000000000000000000000000000000000F1
+:109F700000000000000000000000000000000000E1
+:109F800000000000000000000000000000000000D1
+:109F900000000000000000000000000000000000C1
+:109FA00000000000000000000000000000000000B1
+:109FB00000000000000000000000000000000000A1
+:109FC0000000000000000000000000000000000091
+:109FD0000000000000000000000000000000000081
+:109FE0000000000000000000000000000000000071
+:109FF0000000000000000000000000000000000061
+:10A000000000000000000000000000000000000050
+:10A010000000000000000000000000000000000040
+:10A020000000000000000000000000000000000030
+:10A030000000000000000000000000000000000020
+:10A040000000000000000000000000000000000010
+:10A050000000000000000000000000000000000000
+:10A0600000000000000000000000000000000000F0
+:10A0700000000000000000000000000000000000E0
+:10A0800000000000000000000000000000000000D0
+:10A0900000000000000000000000000000000000C0
+:10A0A00000000000000000000000000000000000B0
+:10A0B00000000000000000000000000000000000A0
+:10A0C0000000000000000000000000000000000090
+:10A0D0000000000000000000000000000000000080
+:10A0E0000000000000000000000000000000000070
+:10A0F0000000000000000000000000000000000060
+:10A10000000000000000000000000000000000004F
+:10A11000000000000000000000000000000000003F
+:10A12000000000000000000000000000000000002F
+:10A13000000000000000000000000000000000001F
+:10A14000000000000000000000000000000000000F
+:10A1500000000000000000000000000000000000FF
+:10A1600000000000000000000000000000000000EF
+:10A1700000000000000000000000000000000000DF
+:10A1800000000000000000000000000000000000CF
+:10A1900000000000000000000000000000000000BF
+:10A1A00000000000000000000000000000000000AF
+:10A1B000000000000000000000000000000000009F
+:10A1C000000000000000000000000000000000008F
+:10A1D000000000000000000000000000000000007F
+:10A1E000000000000000000000000000000000006F
+:10A1F000000000000000000000000000000000005F
+:10A20000000000000000000000000000000000004E
+:10A21000000000000000000000000000000000003E
+:10A22000000000000000000000000000000000002E
+:10A23000000000000000000000000000000000001E
+:10A24000000000000000000000000000000000000E
+:10A2500000000000000000000000000000000000FE
+:10A2600000000000000000000000000000000000EE
+:10A2700000000000000000000000000000000000DE
+:10A2800000000000000000000000000000000000CE
+:10A2900000000000000000000000000000000000BE
+:10A2A00000000000000000000000000000000000AE
+:10A2B000000000000000000000000000000000009E
+:10A2C000000000000000000000000000000000008E
+:10A2D000000000000000000000000000000000007E
+:10A2E000000000000000000000000000000000006E
+:10A2F000000000000000000000000000000000005E
+:10A30000AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD
+:10A31000AAAAAAAAAAAAAA5555555555555555559A
+:10A32000555555555555000000000000000000002F
+:10A33000000000000000000000000000000000001D
+:10A34000000000000000000000000000000000000D
+:10A3500000000000000000000000000000000000FD
+:10A3600000000000000000000000000000000000ED
+:10A3700000000000000000000000000000000000DD
+:10A3800000000000000000000000000000000000CD
+:10A3900000000000000000000000000000000000BD
+:10A3A00000000000000000000000000000000000AD
+:10A3B000000000000000000000000000000000009D
+:10A3C000000000000000000000000000000000008D
+:10A3D000000000000000000000000000000000007D
+:10A3E000000000000000000000000000000000006D
+:10A3F000000000000000000000000000000000005D
+:10A40000000000000000000000000000000000004C
+:10A41000000000000000000000000000000000003C
+:10A42000000000000000000000000000000000002C
+:10A43000000000000000000000000000000000001C
+:10A44000000000000000000000000000000000000C
+:10A4500000000000000000000000000000000000FC
+:10A4600000000000000000000000000000000000EC
+:10A4700000000000000000000000000000000000DC
+:10A4800000000000000000000000000000000000CC
+:10A4900000000000000000000000000000000000BC
+:10A4A00000000000000000000000000000000000AC
+:10A4B000000000000000000000000000000000009C
+:10A4C000000000000000000000000000000000008C
+:10A4D000000000000000000000000000000000007C
+:10A4E000000000000000000000000000000000006C
+:10A4F000000000000000000000000000000000005C
+:10A50000000000000000000000000000000000004B
+:10A51000000000000000000000000000000000003B
+:10A52000000000000000000000000000000000002B
+:10A53000000000000000000000000000000000001B
+:10A54000000000000000000000000000000000000B
+:10A5500000000000000000000000000000000000FB
+:10A5600000000000000000000000000000000000EB
+:10A5700000000000000000000000000000000000DB
+:10A5800000000000000000000000000000000000CB
+:10A5900000000000000000000000000000000000BB
+:10A5A00000000000000000000000000000000000AB
+:10A5B000000000000000000000000000000000009B
+:10A5C000000000000000000000000000000000008B
+:10A5D000000000000000000000000000000000007B
+:10A5E000000000000000000000000000000000006B
+:10A5F000000000000000000000000000000000005B
+:10A60000000000000000000000000000000000004A
+:10A61000000000000000000000000000000000003A
+:10A62000000000000000000000000000000000002A
+:10A63000000000000000000000000000000000001A
+:10A64000000000000000000000000000000000000A
+:10A6500000000000000000000000000000000000FA
+:10A6600000000000000000000000000000000000EA
+:10A6700000000000000000000000000000000000DA
+:10A6800000000000000000000000000000000000CA
+:10A6900000000000000000000000000000000000BA
+:10A6A00000000000000000000000000000000000AA
+:10A6B000000000000000000000000000000000009A
+:10A6C000000000000000000000000000000000008A
+:10A6D000000000000000000000000000000000007A
+:10A6E000000000000000000000000000000000006A
+:10A6F000000000000000000000000000000000005A
+:10A70000AA96969695959595959595959595AA65FC
+:10A710009A25252625252525252525252525256533
+:10A720009A25252625252525252525252525256523
+:10A730009A25252525252525252525252525256514
+:10A740009A25252525252525252525252525256504
+:10A750009A252525252525252525252525252565F4
+:10A760009A252525252525252525252525252565E4
+:10A770009A252525252525252525252525252565D4
+:10A780009A252525252525252525252525252565C4
+:10A790009A252525252525252525252525252565B4
+:10A7A0009A252525252525252525252525252565A4
+:10A7B0009A25252525252525252525252525256594
+:10A7C0009A25252525252525252525252525256584
+:10A7D0009A25252525252525252525252525256574
+:10A7E0009A25252525252525252525252525256564
+:10A7F0009A252525252525252525252525252515A4
+:10A80000AA96969695959595959595959595AA65FB
+:10A810009AA5A5A6A5A5A5A5A5A5A5A5A5A5A56532
+:10A820009A25252625252525252525252525256522
+:10A830009A25252525252525252525252525256513
+:10A840009A25252525252525252525252525256503
+:10A850009A252525252525252525252525252565F3
+:10A860009A252525252525252525252525252565E3
+:10A870009A252525252525252525252525252565D3
+:10A880009A252525252525252525252525252565C3
+:10A890009A252525252525252525252525252565B3
+:10A8A0009A252525252525252525252525252565A3
+:10A8B0009A25252525252525252525252525256593
+:10A8C0009A25252525252525252525252525256583
+:10A8D0009A25252525252525252525252525256573
+:10A8E0009A25252525252525252525252525256563
+:10A8F0009A252525252525252525252525252515A3
+:10A900000096969A95959595959595959595AA0005
+:10A9100000A5A6A6A5A5A5A5A5A5A5A5A5A5A5002F
+:10A920000025252625252525252525252525250020
+:10A930000025252525252525252525252525250011
+:10A940000025252525252525252525252525250001
+:10A9500000252525252525252525252525252500F1
+:10A9600000252525252525252525252525252500E1
+:10A9700000252525252525252525252525252500D1
+:10A9800000252525252525252525252525252500C1
+:10A9900000252525252525252525252525252500B1
+:10A9A00000252525252525252525252525252500A1
+:10A9B0000025252525252525252525252525250091
+:10A9C0000025252525252525252525252525250081
+:10A9D0000025252525252525252525252525250071
+:10A9E0000025252525252525252525252525250061
+:10A9F0000025252525252525252525252525250051
+:10AA00000096969A95959595959595959595AA0004
+:10AA100000A5A6A6A5A5A5A5A5A5A5A5A5A5A5002E
+:10AA200000A5A5A6A5A5A5A5A5A5A5A5A5A5A5001F
+:10AA300000A5A5A6A5A5A5A5A5A5A5A5A5A5A5000F
+:10AA40000025252525252525252525252525250000
+:10AA500000252525252525252525252525252500F0
+:10AA600000252525252525252525252525252500E0
+:10AA700000252525252525252525252525252500D0
+:10AA800000252525252525252525252525252500C0
+:10AA900000252525252525252525252525252500B0
+:10AAA00000252525252525252525252525252500A0
+:10AAB0000025252525252525252525252525250090
+:10AAC0000025252525252525252525252525250080
+:10AAD0000025252525252525252525252525250070
+:10AAE0000025252525252525252525252525250060
+:10AAF0000025252525252525252525252525250050
+:10AB0000AA96969A95959595959595959595AA65F4
+:10AB10009AA5A6A6A5A5A5A5A5A5A5A5A5A5A6652D
+:10AB20009AA5A6A6A5A5A5A5A5A5A5A5A5A5A5651E
+:10AB30009AA5A5A6A5A5A5A5A5A5A5A5A5A5A5650F
+:10AB40009A25252525252525252525252525256500
+:10AB50009A252525252525252525252525252565F0
+:10AB60009A252525252525252525252525252565E0
+:10AB70009A252525252525252525252525252565D0
+:10AB80009A252525252525252525252525252565C0
+:10AB90009A252525252525252525252525252565B0
+:10ABA0009A252525252525252525252525252565A0
+:10ABB0009A25252525252525252525252525256590
+:10ABC0009A25252525252525252525252525256580
+:10ABD0009A25252525252525252525252525256570
+:10ABE0009A25252525252525252525252525256560
+:10ABF0009A252525252525252525252525252515A0
+:10AC0000AA96969A95959595959595959595AA65F3
+:10AC10009AA5A6A6A5A5A5A5A5A5A5A5A5A5A6652C
+:10AC20009AA5A6A6A5A5A5A5A5A5A5A5A5A5A5651D
+:10AC30009AA5A5A6A5A5A5A5A5A5A5A5A5A5A5650E
+:10AC40009AA5A5A6A5A5A5A5A5A5A5A5A5A5A565FE
+:10AC50009AA5A5A5A5A5A5A5A5A5A5A5A5A5A565EF
+:10AC60009A252525252525252525252525252565DF
+:10AC70009A252525252525252525252525252565CF
+:10AC80009A252525252525252525252525252565BF
+:10AC90009A252525252525252525252525252565AF
+:10ACA0009A2525252525252525252525252525659F
+:10ACB0009A2525252525252525252525252525658F
+:10ACC0009A2525252525252525252525252525657F
+:10ACD0009A2525252525252525252525252525656F
+:10ACE0009A2525252525252525252525252525655F
+:10ACF0009A2525252525252525252525252525159F
+:10AD00000096969A95959595959595959595AA0001
+:10AD100000A6A6A6A5A5A5A5A5A5A5A5A5A5A60029
+:10AD200000A5A6A6A5A5A5A5A5A5A5A5A5A5A6001A
+:10AD300000A5A5A6A5A5A5A5A5A5A5A5A5A5A5000C
+:10AD400000A5A5A6A5A5A5A5A5A5A5A5A5A5A500FC
+:10AD500000A5A5A6A5A5A5A5A5A5A5A5A5A5A500EC
+:10AD600000252525252525252525252525252500DD
+:10AD700000252525252525252525252525252500CD
+:10AD800000252525252525252525252525252500BD
+:10AD900000252525252525252525252525252500AD
+:10ADA000002525252525252525252525252525009D
+:10ADB000002525252525252525252525252525008D
+:10ADC000002525252525252525252525252525007D
+:10ADD000002525252525252525252525252525006D
+:10ADE000002525252525252525252525252525005D
+:10ADF000002525252525252525252525252525004D
+:10AE00000096969A95959595959595959595AA0000
+:10AE100000A6A6A6A5A5A5A5A5A5A5A5A5A5A60028
+:10AE200000A5A6A6A5A5A5A5A5A5A5A5A5A5A60019
+:10AE300000A5A6A6A5A5A5A5A5A5A5A5A5A5A5000A
+:10AE400000A5A5A6A5A5A5A5A5A5A5A5A5A5A500FB
+:10AE500000A5A5A6A5A5A5A5A5A5A5A5A5A5A500EB
+:10AE600000A5A5A6A5A5A5A5A5A5A5A5A5A5A500DB
+:10AE700000252525252525252525252525252500CC
+:10AE800000252525252525252525252525252500BC
+:10AE900000252525252525252525252525252500AC
+:10AEA000002525252525252525252525252525009C
+:10AEB000002525252525252525252525252525008C
+:10AEC000002525252525252525252525252525007C
+:10AED000002525252525252525252525252525006C
+:10AEE000002525252525252525252525252525005C
+:10AEF000002525252525252525252525252525004C
+:10AF0000AA969A9A95959595959595959595AA65EC
+:10AF10009AA6A6A6A5A5A5A5A5A5A5A5A5A5A66528
+:10AF20009AA6A6A6A5A5A5A5A5A5A5A5A5A5A66518
+:10AF30009AA5A6A6A5A5A5A5A5A5A5A5A5A5A5650A
+:10AF40009AA5A5A6A5A5A5A5A5A5A5A5A5A5A565FB
+:10AF50009AA5A5A6A5A5A5A5A5A5A5A5A5A5A565EB
+:10AF60009AA5A5A6A5A5A5A5A5A5A5A5A5A5A565DB
+:10AF70009A252526252525252525252525252565CB
+:10AF80009A252525252525252525252525252565BC
+:10AF90009A252525252525252525252525252565AC
+:10AFA0009A2525252525252525252525252525659C
+:10AFB0009A2525252525252525252525252525658C
+:10AFC0009A2525252525252525252525252525657C
+:10AFD0009A2525252525252525252525252525656C
+:10AFE0009A2525252525252525252525252525655C
+:10AFF0009A2525252525252525252525252525159C
+:10B00000AA969AAA95959595959595959595AA65DB
+:10B010009AA6A6A6A5A5A5A5A5A5A5A5A5A5A66527
+:10B020009AA6A6A6A5A5A5A5A5A5A5A5A5A5A66517
+:10B030009AA5A6A6A5A5A5A5A5A5A5A5A5A5A66508
+:10B040009AA5A6A6A5A5A5A5A5A5A5A5A5A5A565F9
+:10B050009AA5A5A6A5A5A5A5A5A5A5A5A5A5A565EA
+:10B060009AA5A5A6A5A5A5A5A5A5A5A5A5A5A565DA
+:10B070009AA5A5A6A5A5A5A5A5A5A5A5A5A5A565CA
+:10B080009A252526252525252525252525252565BA
+:10B090009A252525252525252525252525252565AB
+:10B0A0009A2525252525252525252525252525659B
+:10B0B0009A2525252525252525252525252525658B
+:10B0C0009A2525252525252525252525252525657B
+:10B0D0009A2525252525252525252525252525656B
+:10B0E0009A2525252525252525252525252525655B
+:10B0F0009A2525252525252525252525252525159B
+:10B1000000969AAA95959595969696959595AA00E6
+:10B1100000A6A6A6A5A5A5A5A5A5A5A5A5A5A60025
+:10B1200000A6A6A6A5A5A5A5A5A5A5A5A5A5A60015
+:10B1300000A5A6A6A5A5A5A5A5A5A5A5A5A5A60006
+:10B1400000A5A6A6A5A5A5A5A5A5A5A5A5A5A500F7
+:10B1500000A5A6A6A5A5A5A5A5A5A5A5A5A5A500E7
+:10B1600000A5A5A6A5A5A5A5A5A5A5A5A5A5A500D8
+:10B1700000A5A5A6A5A5A5A5A5A5A5A5A5A5A500C8
+:10B1800000252526252525252525252525252500B8
+:10B1900000252526252525252525252525252500A8
+:10B1A0000025252525252525252525252525250099
+:10B1B0000025252525252525252525252525250089
+:10B1C0000025252525252525252525252525250079
+:10B1D0000025252525252525252525252525250069
+:10B1E0000025252525252525252525252525250059
+:10B1F0000025252525252525252525252525250049
+:10B2000000969AAA95959596969696969595AA00E3
+:10B2100000A6A6A6A5A5A5A5A5A5A5A5A5A5A60024
+:10B2200000A6A6A6A5A5A5A5A5A5A5A5A5A5A60014
+:10B2300000A6A6A6A5A5A5A5A5A5A5A5A5A5A60004
+:10B2400000A5A6A6A5A5A5A5A5A5A5A5A5A5A600F5
+:10B2500000A5A6A6A5A5A5A5A5A5A5A5A5A5A500E6
+:10B2600000A5A6A6A5A5A5A5A5A5A5A5A5A5A500D6
+:10B2700000A5A5A6A5A5A5A5A5A5A5A5A5A5A500C7
+:10B2800000A5A5A6A5A5A5A5A5A5A5A5A5A5A500B7
+:10B2900000252526252525252525252525252500A7
+:10B2A0000025252625252525252525252525250097
+:10B2B0000025252525252525252525252525250088
+:10B2C0000025252525252525252525252525250078
+:10B2D0000025252525252525252525252525250068
+:10B2E0000025252525252525252525252525250058
+:10B2F0000025252525252525252525252525250048
+:10B300009A969AAA95959696969696969595AA65E2
+:10B3100095A6A6A6A5A5A5A5A5A5A5A5A5A5A66529
+:10B3200095A6A6A6A5A5A5A5A5A5A5A5A5A5A66519
+:10B3300095A6A6A6A5A5A5A5A5A5A5A5A5A5A66509
+:10B3400095A5A6A6A5A5A5A5A5A5A5A5A5A5A665FA
+:10B3500095A5A6A6A5A5A5A5A5A5A5A5A5A5A665EA
+:10B3600095A5A6A6A5A5A5A5A5A5A5A5A5A5A565DB
+:10B3700095A5A6A6A5A5A5A5A5A5A5A5A5A5A565CB
+:10B3800095A5A5A6A5A5A5A5A5A5A5A5A5A5A565BC
+:10B3900095252526252525252525252525252565AC
+:10B3A000952525262525252525252525252525659C
+:10B3B000952525262525252525252525252525658C
+:10B3C000952525252525252525252525252525657D
+:10B3D000952525252525252525252525252525656D
+:10B3E000952525252525252525252525252525655D
+:10B3F000952525252525252525252525252525555D
+:10B400009A96AAAA96969696969696969595AA65CF
+:10B4100095A6A6A6A5A5A5A5A5A5A5A5A5A5A66528
+:10B4200095A6A6A6A5A5A5A5A5A5A5A5A5A5A66518
+:10B4300095A6A6A6A5A5A5A5A5A5A5A5A5A5A66508
+:10B4400095A6A6A6A5A5A5A5A5A5A5A5A5A5A665F8
+:10B4500095A5A6A6A5A5A5A5A5A5A5A5A5A5A665E9
+:10B4600095A5A6A6A5A5A5A5A5A5A5A5A5A5A665D9
+:10B4700095A5A6A6A5A5A5A5A5A5A5A5A5A5A565CA
+:10B4800095A5A6A6A5A5A5A5A5A5A5A5A5A5A565BA
+:10B4900095A5A5A6A5A5A5A5A5A5A5A5A5A5A565AB
+:10B4A000952525262525252525252525252525659B
+:10B4B000952525262525252525252525252525658B
+:10B4C000952525262525252525252525252525657B
+:10B4D000952525262525252525252525252525656B
+:10B4E000952525262525252525252525252525655B
+:10B4F000952525252525252525252525252525555C
+:10B500000096AAAA96969696969696969695AA00CC
+:10B5100000A6A6A6A5A5A5A5A5A5A5A5A5A5A60021
+:10B5200000A6A6A6A5A5A5A5A5A5A5A5A5A5A60011
+:10B5300000A6A6A6A5A5A5A5A5A5A5A5A5A5A60001
+:10B5400000A6A6A6A5A5A5A5A5A5A5A5A5A5A600F1
+:10B5500000A6A6A6A5A5A5A5A5A5A5A5A5A5A600E1
+:10B5600000A5A6A6A5A5A5A5A5A5A5A5A5A5A600D2
+:10B5700000A5A6A6A5A5A5A5A5A5A5A5A5A5A600C2
+:10B5800000A5A6A6A5A5A5A5A5A5A5A5A5A5A500B3
+:10B5900000A5A6A6A5A5A5A5A5A5A5A5A5A5A500A3
+:10B5A0000025252625252525252525252525250094
+:10B5B0000025252625252525252525252525250084
+:10B5C0000025252625252525252525252525250074
+:10B5D0000025252625252525252525252525250064
+:10B5E0000025252625252525252525252525250054
+:10B5F0000025252525252525252525252525250045
+:10B600000096AAAA96969696969696969696AA00CA
+:10B6100000A6A6A6A5A5A5A5A5A5A5A5A5A5A60020
+:10B6200000A6A6A6A5A5A5A5A5A5A5A5A5A5A60010
+:10B6300000A6A6A6A5A5A5A5A5A5A5A5A5A5A60000
+:10B6400000A6A6A6A5A5A5A5A5A5A5A5A5A5A600F0
+:10B6500000A6A6A6A5A5A5A5A5A5A5A5A5A5A600E0
+:10B6600000A6A6A6A5A5A5A5A5A5A5A5A5A5A600D0
+:10B6700000A5A6A6A5A5A5A5A5A5A5A5A5A5A600C1
+:10B6800000A5A6A6A5A5A5A5A5A5A5A5A5A5A600B1
+:10B6900000A5A6A6A5A5A5A5A5A5A5A5A5A5A500A2
+:10B6A00000A5A6A6A5A5A5A5A5A5A5A5A5A5A50092
+:10B6B0000025252625252525252525252525250083
+:10B6C0000025252625252525252525252525250073
+:10B6D0000025252625252525252525252525250063
+:10B6E0000025252625252525252525252525250053
+:10B6F0000025252625252525252525252525250043
+:10B700009A9AAAAA969696969696969696A6AA6AB1
+:10B7100095A6A6A6A5A5A5A5A5A5A5A5A5A5A66624
+:10B7200095A6A6A6A5A5A5A5A5A5A5A5A5A5A66614
+:10B7300095A6A6A6A5A5A5A5A5A5A5A5A5A5A66604
+:10B7400095A6A6A6A5A5A5A5A5A5A5A5A5A5A666F4
+:10B7500095A6A6A6A5A5A5A5A5A5A5A5A5A5A666E4
+:10B7600095A6A6A6A5A5A5A5A5A5A5A5A5A5A666D4
+:10B7700095A6A6A6A5A5A5A5A5A5A5A5A5A5A666C4
+:10B7800095A5A6A6A5A5A5A5A5A5A5A5A5A5A666B5
+:10B7900095A5A6A6A5A5A5A5A5A5A5A5A5A5A666A5
+:10B7A00095A5A6A6A5A5A5A5A5A5A5A5A5A5A56696
+:10B7B0009525262625252525252525252525256686
+:10B7C0009525252625252525252525252525256677
+:10B7D0009525252625252525252525252525256667
+:10B7E0009525252625252525252525252525256657
+:10B7F0009525252625252525252525252525255558
+:10B800009A9AAAAA9696969696969A8696A6AA6ABC
+:10B8100095A6A6A6A5A5A5A5A5A5A5A5A5A5A66623
+:10B8200095A6A6A6A5A5A5A5A5A5A5A5A5A5A66613
+:10B8300095A6A6A6A5A5A5A5A5A5A5A5A5A5A66603
+:10B8400095A6A6A6A5A5A5A5A5A5A5A5A5A5A666F3
+:10B8500095A6A6A6A5A5A5A5A5A5A5A5A5A5A666E3
+:10B8600095A6A6A6A5A5A5A5A5A5A5A5A5A5A666D3
+:10B8700095A6A6A6A5A5A5A5A5A5A5A5A5A5A666C3
+:10B8800095A6A6A6A5A5A5A5A5A5A5A5A5A5A666B3
+:10B8900095A5A6A6A5A5A5A5A5A5A5A5A5A5A666A4
+:10B8A00095A5A6A6A5A5A5A5A5A5A5A5A5A5A66694
+:10B8B00095A5A6A6A5A5A5A5A5A5A5A5A5A5A56685
+:10B8C0009525262625252525252525252525256675
+:10B8D0009525262625252525252525252525256665
+:10B8E0009525262625252525252525252525256655
+:10B8F0009525262625252525252525252525255556
+:10B9000000AAAAAA969696969A9AAAA6A6A6AA0067
+:10B9100000A6A6A6A5A5A5A5A5A5A5A5A5A5A6001D
+:10B9200000A6A6A6A5A5A5A5A5A5A5A5A5A5A6000D
+:10B9300000A6A6A6A5A5A5A5A5A5A5A5A5A5A600FD
+:10B9400000A6A6A6A5A5A5A5A5A5A5A5A5A5A600ED
+:10B9500000A6A6A6A5A5A5A5A5A5A5A5A5A5A600DD
+:10B9600000A6A6A6A5A5A5A5A5A5A5A5A5A5A600CD
+:10B9700000A6A6A6A5A5A5A5A5A5A5A5A5A5A600BD
+:10B9800000A6A6A6A5A5A5A5A5A5A5A5A5A5A600AD
+:10B9900000A6A6A6A5A5A5A5A5A5A5A5A5A5A6009D
+:10B9A00000A5A6A6A5A5A5A5A5A5A5A5A5A5A6008E
+:10B9B00000A5A6A6A5A5A5A5A5A5A5A5A5A5A6007E
+:10B9C000002526262525252525252525252525006F
+:10B9D000002526262525252525252525252525005F
+:10B9E000002526262525252525252525252525004F
+:10B9F000002526262525252525252525252525003F
+:10BA000000AAAAAA969696969A8AAAA6A6A6AA0076
+:10BA100000A6A6A6A6A6A6A6A6A6A6A6A6A6A60012
+:10BA200000A6A6A6A6A6A6A6A6A6A6A6A6A6A60002
+:10BA300000A6A6A6A6A6A6A6A6A6A6A6A6A6A600F2
+:10BA400000A6A6A6A6A6A6A6A6A6A6A6A6A6A600E2
+:10BA500000A6A6A6A6A6A6A6A6A6A6A6A6A6A600D2
+:10BA600000A6A6A6A6A6A6A6A6A6A6A6A6A6A600C2
+:10BA700000A6A6A6A6A6A6A6A6A6A6A6A6A6A600B2
+:10BA800000A6A6A6A6A6A6A6A6A6A6A6A6A6A600A2
+:10BA900000A6A6A6A6A6A6A6A6A6A6A6A6A6A60092
+:10BAA00000A6A6A6A6A6A6A6A6A6A6A6A6A6A60082
+:10BAB00000A5A6A6A6A6A6A6A6A6A6A6A6A6A60073
+:10BAC00000A5A6A6A6A6A6A6A6A6A6A6A6A6A60063
+:10BAD0000025262626262626262626262626260053
+:10BAE0000025262626262626262626262626260043
+:10BAF000002626262525252525252525252525003D
+:10BB00009AAAAAAA96969696AAAAAAAAA6A6AA6A3D
+:10BB100095A6A6A6A6A6A6A6A6A6A6A6A6A6A66616
+:10BB200095A6A6A6A6A6A6A6A6A6A6A6A6A6A66606
+:10BB300095A6A6A6A6A6A6A6A6A6A6A6A6A6A666F6
+:10BB400095A6A6A6A6A6A6A6A6A6A6A6A6A6A666E6
+:10BB500095A6A6A6A6A6A6A6A6A6A6A6A6A6A666D6
+:10BB600095A6A6A6A6A6A6A6A6A6A6A6A6A6A666C6
+:10BB700095A6A6A6A6A6A6A6A6A6A6A6A6A6A666B6
+:10BB800095A6A6A6A6A6A6A6A6A6A6A6A6A6A666A6
+:10BB900095A6A6A6A6A6A6A6A6A6A6A6A6A6A66696
+:10BBA00095A6A6A6A6A6A6A6A6A6A6A6A6A6A66686
+:10BBB00095A6A6A6A6A6A6A6A6A6A6A6A6A6A66676
+:10BBC00095A5A6A6A6A6A6A6A6A6A6A6A6A6A66667
+:10BBD0009525262626262626262626262626266657
+:10BBE0009525262626262626262626262626266647
+:10BBF0009526262625252525252525252525255552
+:10BC00009AAAAAAA969696AAAAAAAAAAA6A6AA6A28
+:10BC100095A6A6AAA6A6A6A6A6A6A6A6A6A6A66611
+:10BC200095A6A6AAA6A6A6A6A6A6A6A6A6A6A66601
+:10BC300095A6A6AAA6A6A6A6A6A6A6A6A6A6A666F1
+:10BC400095A6A6AAA6A6A6A6A6A6A6A6A6A6A666E1
+:10BC500095A6A6AAA6A6A6A6A6A6A6A6A6A6A666D1
+:10BC600095A6A6AAA6A6A6A6A6A6A6A6A6A6A666C1
+:10BC700095A6A6AAA6A6A6A6A6A6A6A6A6A6A666B1
+:10BC800095A6A6AAA6A6A6A6A6A6A6A6A6A6A666A1
+:10BC900095A6A6AAA6A6A6A6A6A6A6A6A6A6A66691
+:10BCA00095A6A6AAA6A6A6A6A6A6A6A6A6A6A66681
+:10BCB00095A6A6AAA6A6A6A6A6A6A6A6A6A6A66671
+:10BCC00095A6A6AAA6A6A6A6A6A6A6A6A6A6A66661
+:10BCD00095A6A6AAA6A6A6A6A6A6A6A6A6A6A66651
+:10BCE0009526262A26262626262626262626266641
+:10BCF0009526262A2525252525252525252526554C
+:10BD000000AAAAAA969696AAAAAAAAAAAAA6AA0027
+:10BD100000A6A6AAA6A6A6A6A6A6A6A6A6A6A6000B
+:10BD200000A6A6AAA6A6A6A6A6A6A6A6A6A6A600FB
+:10BD300000A6A6AAA6A6A6A6A6A6A6A6A6A6A600EB
+:10BD400000A6A6AAA6A6A6A6A6A6A6A6A6A6A600DB
+:10BD500000A6A6AAA6A6A6A6A6A6A6A6A6A6A600CB
+:10BD600000A6A6AAA6A6A6A6A6A6A6A6A6A6A600BB
+:10BD700000A6A6AAA6A6A6A6A6A6A6A6A6A6A600AB
+:10BD800000A6A6AAA6A6A6A6A6A6A6A6A6A6A6009B
+:10BD900000A6A6AAA6A6A6A6A6A6A6A6A6A6A6008B
+:10BDA00000A6A6AAA6A6A6A6A6A6A6A6A6A6A6007B
+:10BDB00000A6A6AAA6A6A6A6A6A6A6A6A6A6A6006B
+:10BDC00000A6A6AAA6A6A6A6A6A6A6A6A6A6A6005B
+:10BDD00000A6A6AAA6A6A6A6A6A6A6A6A6A6A6004B
+:10BDE00000A6A6AA96A6A6A6A6A6A6A6A6A6A6004B
+:10BDF0000026262A25252525252525252525260035
+:10BE000000AAAAAA9696AAAAAAAAAAAAAAAAAA000E
+:10BE100000A6A6AAA6A6A6A6A6A6AAA6A6A6A60006
+:10BE200000A6A6AAA6A6A6A6A6A6A6A6A6A6A600FA
+:10BE300000A6A6AAA6A6A6A6A6A6A6A6A6A6A600EA
+:10BE400000A6A6AAA6A6A6A6A6A6A6A6A6A6A600DA
+:10BE500000A6A6AAA6A6A6A6A6A6A6A6A6A6A600CA
+:10BE600000A6A6AAA6A6A6A6A6A6A6A6A6A6A600BA
+:10BE700000A6A6AAA6A6A6A6A6A6A6A6A6A6A600AA
+:10BE800000A6A6AAA6A6A6A6A6A6A6A6A6A6A6009A
+:10BE900000A6A6AAA6A6A6A6A6A6A6A6A6A6A6008A
+:10BEA00000A6A6AAA6A6A6A6A6A6A6A6A6A6A6007A
+:10BEB00000A6A6AAA6A6A6A6A6A6A6A6A6A6A6006A
+:10BEC00000A6A6AAA6A6A6A6A6A6A6A6A6A6A6005A
+:10BED00000A6A6AA96A6A6A6A6A6A6A6A6A6A6005A
+:10BEE00000A6A6AA96A6A6A6A6A6A6A6A6A6A6004A
+:10BEF00000A6A6AAA5A5A5A5A5A6A6A6A6A5A60030
+:10BF00009AAAAA2A161A2A2A2A2A2A2A2A2A2A6A05
+:10BF100095A6A62A2626262626262A26262626660A
+:10BF200095A6A62A262626262626262626262666FE
+:10BF300095A6A62A262626262626262626262666EE
+:10BF400095A6A62A262626262626262626262666DE
+:10BF500095A6A62A262626262626262626262666CE
+:10BF600095A6A62A262626262626262626262666BE
+:10BF700095A6A62A262626262626262626262666AE
+:10BF800095A6A62A2626262626262626262626669E
+:10BF900095A6A62A2626262626262626262626668E
+:10BFA00095A6A62A2626262626262626262626667E
+:10BFB00095A6A62A2626262626262626262626666E
+:10BFC00095A6A62A2626262626262626262626665E
+:10BFD00095A6A62A1626262626262626262626665E
+:10BFE00095A6A62A1626262626262626262626664E
+:10BFF00095A6A62A25252525262626262625265544
+:10C000009AAAAA2A1A1A2A2A2A2A2A2A2A2A2A6A00
+:10C0100095A6AA2A26262626262A2A2A2A262A66F5
+:10C0200095A6AA2A2626262626262A2626262666F5
+:10C0300095A6AA2A262626262626262626262666E9
+:10C0400095A6AA2A262626262626262626262666D9
+:10C0500095A6AA2A262626262626262626262666C9
+:10C0600095A6AA2A162626262626262626262666C9
+:10C0700095A6AA2A162626262626262626262666B9
+:10C0800095A6AA2A162626262626262626262666A9
+:10C0900095A6AA2A16262626262626262626266699
+:10C0A00095A6AA2A16262626262626262626266689
+:10C0B00095A6AA2A16262626262626262626266679
+:10C0C00095A6AA2A16262626262626262626266669
+:10C0D00095A6AA2A16262626262626262626266659
+:10C0E00095A6AA2A16262626262626262626266649
+:10C0F00095A6AA2A1525262626262626262626554C
+:10C1000000AAAA2A1A2A2A2A2A2A2A2A2A2A2A00F3
+:10C1100000A6AA2A262626262A2A2A2A2A262A00EB
+:10C1200000A6AA2A2626262626262A2626262600EF
+:10C1300000A6AA2A262626262626262626262600E3
+:10C1400000A6AA2A262626262626262626262600D3
+:10C1500000A6AA2A162626262626262626262600D3
+:10C1600000A6AA2A162626262626262626262600C3
+:10C1700000A6AA2A162626262626262626262600B3
+:10C1800000A6AA2A162626262626262626262600A3
+:10C1900000A6AA2A16262626262626262626260093
+:10C1A00000A6AA2A16262626262626262626260083
+:10C1B00000A6AA2A16262626262626262626260073
+:10C1C00000A6AA2A16262626262626262626260063
+:10C1D00000A6AA2A1626262626262A26262626004F
+:10C1E00000A6AA2A16262626262626262626260043
+:10C1F00040A6AA2A152626262626262626262600F4
+:10C2000000AAAAAA1A2A2A2A2A2A2A2A2A2A2A0072
+:10C2100000A6AAAA262626262A2A2A2A2A2A2A0066
+:10C2200000A6AAAA26262626262A2A2A2A262A005E
+:10C2300000A6AAAA2626262626262A2626262A005A
+:10C2400000A6AAAA1626262626262A2626262A005A
+:10C2500000A6AAAA1626262626262A2626262A004A
+:10C2600000A6AAAA1626262626262A2626262A003A
+:10C2700000A6AAAA1626262626262A2626262A002A
+:10C2800000A6AAAA162626262626262626262A001E
+:10C2900000A6AAAA162626262626262626262A000E
+:10C2A00000A6AAAA162626262626262626262A00FE
+:10C2B00000A6AAAA162626262626262626262A00EE
+:10C2C00000A6AAAA162626262626262626262A00DE
+:10C2D00000A6AAAA1626262626262A2626262A00CA
+:10C2E00000A6AAAA1616262626262A2626262A00CA
+:10C2F00040A6AAAA162626262626262626262A006E
+:10C300009AAAAAAA1A2A2A2A2A2A2A2A2A2A2A6A6D
+:10C3100095A6AAAA2626262A2A2A2A2A2A2A2A6666
+:10C3200095A6AAAA262626262A2A2A2A2A262A665E
+:10C3300095A6AAAA1626262626262A2626262A666E
+:10C3400095A6AAAA1626262626262A2626262A665E
+:10C3500095A6AAAA1626262626262A2626262A664E
+:10C3600095A6AAAA1626262626262A2626262A663E
+:10C3700095A6AAAA1626262626262A2626262A662E
+:10C3800095A6AAAA1626262626262A2626262A661E
+:10C3900095A6AAAA1626262626262A2626262A660E
+:10C3A00095A6AAAA1626262626262A2626262A66FE
+:10C3B00095A6AAAA1626262626262A2626262A66EE
+:10C3C00095A6AAAA1626262626262A2626262A66DE
+:10C3D00095A6AAAA16162626262A2A2A2A262A66D2
+:10C3E00095A6AAAA1616262626262A2626262A66CE
+:10C3F00015A6AAAA162626262626262626262A5543
+:10C400009AAAAAAA2A2A2A2A2A2A2A2A2A2A2A6A5C
+:10C4100095AAAAAA2626262A2A2A2A2A2A2A2A6661
+:10C4200095AAAAAA262626262A2A2A2A2A2A2A6655
+:10C4300095AAAAAA16262626262A2A2A2A262A665D
+:10C4400095AAAAAA16262626262A2A2A2A262A664D
+:10C4500095AAAAAA16262626262A2A2A2A262A663D
+:10C4600095AAAAAA16262626262A2A2A2A262A662D
+:10C4700095AAAAAA16262626262A2A2A2A262A661D
+:10C4800095AAAAAA1626262626262A2626262A6619
+:10C4900095AAAAAA1626262626262A2626262A6609
+:10C4A00095AAAAAA1626262626262A2626262A66F9
+:10C4B00095AAAAAA1626262626262A2626262A66E9
+:10C4C00095AAAAAA1626262626262A2626262A66D9
+:10C4D00095AAAAAA161626262A2A2A2A2A262A66C9
+:10C4E00095AAAAAA16162626262A2A2A2A262A66BD
+:10C4F00015AAAAAA1626262626262A2626262A553A
+:10C5000000AAAAAA2A2A2A2A2A2A2A2A2A2A2A005F
+:10C5100000AAAAAA26262A2A2A2A2A2A2A2A2A0057
+:10C5200000AAAAAA1626262A2A2A2A2A2A2A2A005B
+:10C5300000AAAAAA162626262A2A2A2A2A262A0053
+:10C5400000AAAAAA162626262A2A2A2A2A262A0043
+:10C5500000AAAAAA162626262A2A2A2A2A262A0033
+:10C5600000AAAAAA161626262A2A2A2A2A262A0033
+:10C5700000AAAAAA161626262A2A2A2A2A262A0023
+:10C5800000AAAAAA16162626262A2A2A2A262A0017
+:10C5900000AAAAAA16162626262A2A2A2A262A0007
+:10C5A00000AAAAAA16162626262A2A2A2A262A00F7
+:10C5B00000AAAAAA16162626262A2A2A2A262A00E7
+:10C5C00000AAAAAA16162626262A2A2A2A262A00D7
+:10C5D00000AAAAAA161626262A2A2A2A2A2A2A00BF
+:10C5E00000AAAAAA161616262A2A2A2A2A262A00C3
+:10C5F00040AAAAAA1616262626262A2626262A0073
+:10C6000000AAAAAAAA2A2A2A2A2A2A2A2A2A2A00DE
+:10C61000009AAAAAA62A2A2A2A2A2A2A2A2A2A00E2
+:10C62000009AAAAA9626262A2A2A2A2A2A2A2A00EA
+:10C63000009AAAAA962626262A2A2A2A2A2A2A00DE
+:10C64000009AAAAA962626262A2A2A2A2A2A2A00CE
+:10C65000009AAAAA961626262A2A2A2A2A2A2A00CE
+:10C66000009AAAAA961626262A2A2A2A2A2A2A00BE
+:10C67000009AAAAA961626262A2A2A2A2A262A00B2
+:10C68000009AAAAA961626262A2A2A2A2A262A00A2
+:10C69000009AAAAA961626262A2A2A2A2A262A0092
+:10C6A000009AAAAA961626262A2A2A2A2A262A0082
+:10C6B000009AAAAA961626262A2A2A2A2A262A0072
+:10C6C000009AAAAA961626262A2A2A2A2A262A0062
+:10C6D000009AAAAA9616162A2A2A2A2A2A2A2A005A
+:10C6E000009AAAAA961616262A2A2A2A2A2A2A004E
+:10C6F000409AAAAA96162626262A2A2A2A262A00F6
+:10C7000095AAAAAAAA2A2A2A2A2A2A2A2A2A2A6ADE
+:10C71000959AAAAA962A2A2A2A2A2A2A2A2A2A66F6
+:10C72000959AAAAA96262A2A2A2A2A2A2A2A2A66EA
+:10C73000959AAAAA9626262A2A2A2A2A2A2A2A66DE
+:10C74000959AAAAA9616262A2A2A2A2A2A2A2A66DE
+:10C75000959AAAAA9616262A2A2A2A2A2A2A2A66CE
+:10C76000959AAAAA9616262A2A2A2A2A2A2A2A66BE
+:10C77000959AAAAA9616262A2A2A2A2A2A2A2A66AE
+:10C78000959AAAAA961626262A2A2A2A2A2A2A66A2
+:10C79000959AAAAA961626262A2A2A2A2A2A2A6692
+:10C7A000959AAAAA961626262A2A2A2A2A2A2A6682
+:10C7B000959AAAAA961626262A2A2A2A2A2A2A6672
+:10C7C000959AAAAA961626262A2A2A2A2A2A2A6662
+:10C7D000959AAAAA9616162A2A2A2A2A2A2A2A665E
+:10C7E000959AAAAA9616162A2A2A2A2A2A2A2A664E
+:10C7F000159AAAAA961626262A2A2A2A2A262A56C6
+:10C8000095AAAAAAAAAA2A2A2A2A2A2A2A2A2A6A5D
+:10C81000959AAAAA9AAA2A2A2A2A2A2A2A2A2A6671
+:10C82000959AAAAA96AA2A2A2A2A2A2A2A2A2A6665
+:10C83000959AAAAA9696262A2A2A2A2A2A2A2A666D
+:10C84000959AAAAA9696262A2A2A2A2A2A2A2A665D
+:10C85000959AAAAA9696262A2A2A2A2A2A2A2A664D
+:10C86000959AAAAA9696162A2A2A2A2A2A2A2A664D
+:10C87000959AAAAA9696162A2A2A2A2A2A2A2A663D
+:10C88000959AAAAA9696162A2A2A2A2A2A2A2A662D
+:10C89000959AAAAA9696162A2A2A2A2A2A2A2A661D
+:10C8A000959AAAAA9696162A2A2A2A2A2A2A2A660D
+:10C8B000959AAAAA9696162A2A2A2A2A2A2A2A66FD
+:10C8C000959AAAAA9696162A2A2A2A2A2A2A2A66ED
+:10C8D000959AAAAA96961A2A2A2A2A2A2A2A2A66D9
+:10C8E000959AAAAA9696161A2A2A2A2A2A2A2A66DD
+:10C8F000159AAAAA969616262A2A2A2A2A2A2A5651
+:10C9000000AAAAAAAAAA2A2A2A2A2A2A2A2A2A005B
+:10C91000009AAAAA9AAA2A2A2A2A2A2A2A2A2A006B
+:10C92000009AAAAA96AA2A2A2A2A2A2A2A2A2A005F
+:10C93000009AAAAA96962A2A2A2A2A2A2A2A2A0063
+:10C94000009AAAAA96962A2A2A2A2A2A2A2A2A0053
+:10C95000009AAAAA96961A2A2A2A2A2A2A2A2A0053
+:10C96000009AAAAA96961A2A2A2A2A2A2A2A2A0043
+:10C97000009AAAAA96961A2A2A2A2A2A2A2A2A0033
+:10C98000009AAAAA9696162A2A2A2A2A2A2A2A0027
+:10C99000009AAAAA9696162A2A2A2A2A2A2A2A0017
+:10C9A000009AAAAA9696162A2A2A2A2A2A2A2A0007
+:10C9B000009AAAAA9696162A2A2A2A2A2A2A2A00F7
+:10C9C000009AAAAA9696162A2A2A2A2A2A2A2A00E7
+:10C9D000009AAAAA969A1A1A2A2A2A2A2A2A2A00DF
+:10C9E000009AAAAA96961A1A2A2A2A2A2A2A2A00D3
+:10C9F000409AAAAA9696162A2A2A2A2A2A2A2A0077
+:10CA000000AAAAAAAAAAAA2A2A2A2A2A2A2A2A00DA
+:10CA1000009A9AAA9AAAAA2A2A2A2A2A2A2A2A00FA
+:10CA2000009A9AAA9A9AAA2A2A2A2A2A2A2A2A00FA
+:10CA3000009A9AAA969AAA2A2A2A2A2A2A2A2A00EE
+:10CA4000009A9AAA969A9A2A2A2A2A2A2A2A2A00EE
+:10CA5000009A9AAA969A9A2A2A2A2A2A2A2A2A00DE
+:10CA6000009A9AAA969A9A2A2A2A2A2A2A2A2A00CE
+:10CA7000009A9AAA969A9A2A2A2A2A2A2A2A2A00BE
+:10CA8000009A9AAA96969A2A2A2A2A2A2A2A2A00B2
+:10CA9000009A9AAA96969A2A2A2A2A2A2A2A2A00A2
+:10CAA000009A9AAA96969A2A2A2A2A2A2A2A2A0092
+:10CAB000009A9AAA96969A2A2A2A2A2A2A2A2A0082
+:10CAC000009A9AAA96969A2A2A2A2A2A2A2A2A0072
+:10CAD000009A9AAA969A9A1A2A2A2A2A2A2A2A006E
+:10CAE000009A9AAA969A9A1A2A2A2A2A2A2A2A005E
+:10CAF000409A9AAA9696962A2A2A2A2A2A2A2A0006
+:10CB000095AAAAAAAAAAAAAA2A2A2A2A2A2A2A6A5A
+:10CB1000959A9AAA9AAAAAAA2A2A2A2A2A2A2A6A7A
+:10CB2000959A9AAA9A9AAAAA2A2A2A2A2A2A2A6A7A
+:10CB3000959A9AAA969A9AAA2A2A2A2A2A2A2A6A7E
+:10CB4000959A9AAA969A9AAA2A2A2A2A2A2A2A6A6E
+:10CB5000959A9AAA969A9AAA2A2A2A2A2A2A2A6A5E
+:10CB6000959A9AAA969A9A9A2A2A2A2A2A2A2A6A5E
+:10CB7000959A9AAA969A9A9A2A2A2A2A2A2A2A6A4E
+:10CB8000959A9AAA969A9A9A2A2A2A2A2A2A2A6A3E
+:10CB9000959A9AAA969A9A9A2A2A2A2A2A2A2A6A2E
+:10CBA000959A9AAA969A9A9A2A2A2A2A2A2A2A6A1E
+:10CBB000959A9AAA969A9A9A2A2A2A2A2A2A2A6A0E
+:10CBC000959A9AAA969A9A9A2A2A2A2A2A2A2A6AFE
+:10CBD000959A9AAA9A9A9A9A2A2A2A2A2A2A2A6AEA
+:10CBE000959A9AAA969A9A9A1A2A2A2A2A2A2A6AEE
+:10CBF000159A9AAA96969A9A2A2A2A2A2A2A2A5A62
+:10CC000095AAAAAAAAAAAAAAAA2A2A2A2A2A2A6AD9
+:10CC1000959A9AAA9A9AAAAAAA2A2A2A2A2A2A6A09
+:10CC2000959A9AAA9A9AAAAAAA2A2A2A2A2A2A6AF9
+:10CC3000959A9AAA9A9A9AAAAA2A2A2A2A2A2A6AF9
+:10CC4000959A9AAA9A9A9AAAAA2A2A2A2A2A2A6AE9
+:10CC5000959A9AAA9A9A9A9AAA2A2A2A2A2A2A6AE9
+:10CC6000959A9AAA9A9A9A9AAA2A2A2A2A2A2A6AD9
+:10CC7000959A9AAA9A9A9A9AAA2A2A2A2A2A2A6AC9
+:10CC8000959A9AAA969A9A9AAA2A2A2A2A2A2A6ABD
+:10CC9000959A9AAA969A9A9AAA2A2A2A2A2A2A6AAD
+:10CCA000959A9AAA969A9A9AAA2A2A2A2A2A2A6A9D
+:10CCB000959A9AAA969A9A9AAA2A2A2A2A2A2A6A8D
+:10CCC000959A9AAA969A9A9AAA2A2A2A2A2A2A6A7D
+:10CCD000959A9AAA9A9A9A9A9A2A2A2A2A2A2A6A79
+:10CCE000959A9AAA9A9A9A9A9A2A2A2A2A2A2A6A69
+:10CCF000159A9AAA969A9A9AAA2A2A2A2A2A2A5ADD
+:10CD000040A9A9A9AAA8A8A8A828282828282800AE
+:10CD1000409999A99A98A8A8A828282828282800DE
+:10CD2000409999A99A9898A8A828282828282800DE
+:10CD3000409999A99A9898A8A828282828282800CE
+:10CD4000409999A99A989898A828282828282800CE
+:10CD5000409999A99A989898A828282828282800BE
+:10CD6000409999A99A989898A828282828282800AE
+:10CD7000409999A99A989898A8282828282828009E
+:10CD8000409999A99A989898A8282828282828008E
+:10CD9000409999A99A989898A8282828282828007E
+:10CDA000409999A99A989898A8282828282828006E
+:10CDB000409999A99A989898A8282828282828005E
+:10CDC000409999A99A989898A8282828282828004E
+:10CDD000409999A99A98989898282828282828004E
+:10CDE000409999A99A98989898182828282828004E
+:10CDF000409999A996989898A82828282828280022
+:10CE000040A9A9A9AAA8A8A8A8A82828A8282800AD
+:10CE1000409999A99A98A8A8A8A82828A8282800DD
+:10CE2000409999A99A9898A8A8A82828A8282800DD
+:10CE3000409999A99A989898A8A82828A8282800DD
+:10CE4000409999A99A989898A8A82828A8282800CD
+:10CE5000409999A99A989898A8A82828A8282800BD
+:10CE6000409999A99A98989898A82828A8282800BD
+:10CE7000409999A99A98989898A82828A8282800AD
+:10CE8000409999A99A98989898A82828A82828009D
+:10CE9000409999A99A98989898A82828A82828008D
+:10CEA000409999A99A98989898A82828A82828007D
+:10CEB000409999A99A98989898A82828A82828006D
+:10CEC000409999A99A98989898A82828A82828005D
+:10CED000409999A99A98989898982828A82828005D
+:10CEE000409999A99A98989898982828A82828004D
+:10CEF000409999A99A98989898A82828A82828002D
+:10CF000015A9A9A9AAAAA8A8A8A8A8282828286A6B
+:10CF1000159999A99A9A98A8A8A8A8282828286AAB
+:10CF2000159999A99A9A98A8A8A8A8282828286A9B
+:10CF3000159999A99A9A9898A8A8A8282828286A9B
+:10CF4000159999A99A9A9898A8A8A8282828286A8B
+:10CF5000159999A99A9A989898A8A8282828286A8B
+:10CF6000159999A99A9A989898A8A8282828286A7B
+:10CF7000159999A99A9A989898A8A8282828286A6B
+:10CF8000159999A99A9A989898A8A8282828286A5B
+:10CF9000159999A99A9A989898A8A8282828286A4B
+:10CFA000159999A99A9A989898A8A8282828286A3B
+:10CFB000159999A99A9A989898A8A8282828286A2B
+:10CFC000159999A99A9A989898A8A8282828286A1B
+:10CFD000159999A99A9A98989898A8282828286A1B
+:10CFE000159999A99A9A9898989888282828286A2B
+:10CFF000159999A99A9A989898A8A8282828286AEB
+:10D0000015A9A9A9AAAAA8A8A8A8A8A82828286AEA
+:10D01000159999999A9A98A8A8A8A8A82828286A3A
+:10D02000159999999A9A9898A8A8A8A82828286A3A
+:10D03000159999999A9A9898A8A8A8A82828286A2A
+:10D04000159999999A9A989898A8A8A82828286A2A
+:10D05000159999999A9A989898A8A8A82828286A1A
+:10D06000159999999A9A98989898A8A82828286A1A
+:10D07000159999999A9A98989898A8A82828286A0A
+:10D08000159999999A9A98989898A8A82828286AFA
+:10D09000159999999A9A98989898A8A82828286AEA
+:10D0A000159999999A9A98989898A8A82828286ADA
+:10D0B000159999999A9A98989898A8A82828286ACA
+:10D0C000159999999A9A98989898A8A82828286ABA
+:10D0D000159999999A9A9898989888A82828286ACA
+:10D0E000159999999A9A9898989898A82828286AAA
+:10D0F000159999999A9A98989898A8A82828286A8A
+:10D1000040A9A9A9AAAAAAA8A8A8A8A8A8A8280026
+:10D11000409999999A9A9AA8A8A8A8A8A8A8280076
+:10D12000409999999A9A9A98A8A8A8A8A8A8280076
+:10D13000409999999A9A9A9898A8A8A8A8A8280076
+:10D14000409999999A9A9A9898A8A8A8A8A8280066
+:10D15000409999999A9A9A989898A8A8A8A8280066
+:10D16000409999999A9A9A989898A8A8A8A8280056
+:10D17000409999999A9A9A989898A8A8A8A8280046
+:10D18000409999999A9A9A989898A8A8A8A8280036
+:10D19000409999999A9A9A989898A8A8A8A8280026
+:10D1A000409999999A9A9A989898A8A8A8A8280016
+:10D1B000409999999A9A9A989898A8A8A8A8280006
+:10D1C000409999999A9A9A989898A8A8A8A82800F6
+:10D1D000409999999A9A9A98989898A8A8A82800F6
+:10D1E000409999999A9A9A9898989898A8A82800F6
+:10D1F000409999999A9A9A989898A8A8A8A82800C6
+:10D20000406969696A6A6A68686868686868680025
+:10D21000405959595A5A5A58686868686868680085
+:10D22000405959595A5A5A58686868686868680075
+:10D23000405959595A5A5A58586868686868680075
+:10D24000405959595A5A5A58585868686868680075
+:10D25000405959595A5A5A58585868686868680065
+:10D26000405959595A5A5A58585848686868680075
+:10D27000405959595A5A5A58585848686868680065
+:10D28000405959595A5A5A58585848686868680055
+:10D29000405959595A5A5A58585848686868680045
+:10D2A000405959595A5A5A58585848686868680035
+:10D2B000405959595A5A5A58585848686868680025
+:10D2C000405959595A5A5A58585848686868680015
+:10D2D000405959595A5A5A58585858586868680005
+:10D2E000405959595A5A5A585858585868686800F5
+:10D2F000405959595A5A5A585858486868686800E5
+:10D30000156969696A6A6A6A686868686868686AE3
+:10D31000155959595A5A5A5A686868686868686A43
+:10D32000155959595A5A5A5A586868686868686A43
+:10D33000155959595A5A5A5A585868686868686A43
+:10D34000155959595A5A5A5A585868686868686A33
+:10D35000155959595A5A5A5A585848686868686A43
+:10D36000155959595A5A5A5A585858686868686A23
+:10D37000155959595A5A5A5A585858686868686A13
+:10D38000155959595A5A5A5A585858686868686A03
+:10D39000155959595A5A5A5A585858686868686AF3
+:10D3A000155959595A5A5A5A585858686868686AE3
+:10D3B000155959595A5A5A5A585858686868686AD3
+:10D3C000155959595A5A5A5A585858686868686AC3
+:10D3D000155959595A5A5A5A585858586868686AC3
+:10D3E000155959595A5A5A5A585858585868686AC3
+:10D3F000155959595A5A5A5A585858686868686A93
+:10D40000156969696A6A6A6A6A6868686868686AE0
+:10D41000155959595A5A5A5A6A6868686868686A40
+:10D42000155959595A5A5A5A5A6868686868686A40
+:10D43000155959595A5A5A5A5A5868686868686A40
+:10D44000155959595A5A5A5A5A5848686868686A50
+:10D45000155959595A5A5A5A5A5858686868686A30
+:10D46000155959595A5A5A5A5A5858586868686A30
+:10D47000155959595A5A5A5A5A5858586868686A20
+:10D48000155959595A5A5A5A5A5858586868686A10
+:10D49000155959595A5A5A5A5A5858586868686A00
+:10D4A000155959595A5A5A5A5A5858586868686AF0
+:10D4B000155959595A5A5A5A5A5858586868686AE0
+:10D4C000155959595A5A5A5A5A5858586868686AD0
+:10D4D000155959595A5A5A5A5A5858585868686AD0
+:10D4E000155959595A5A5A5A5A5858585868686AC0
+:10D4F000155959595A5A5A5A5A5858586868686AA0
+:10D50000406969696A6A6A6A6A68686868686840DE
+:10D51000405959595A5A5A5A5A686868686868404E
+:10D52000405959595A5A5A5A5A586868686868404E
+:10D53000405959595A5A5A5A5A584868686868405E
+:10D54000405959595A5A5A5A5A585868686868403E
+:10D55000405959595A5A5A5A5A585858686868403E
+:10D56000405959595A5A5A5A5A585858686868402E
+:10D57000405959595A5A5A5A5A585858686868401E
+:10D58000405959595A5A5A5A5A585858686868400E
+:10D59000405959595A5A5A5A5A58585868686840FE
+:10D5A000405959595A5A5A5A5A58585868686840EE
+:10D5B000405959595A5A5A5A5A58585868686840DE
+:10D5C000405959595A5A5A5A5A58585868686840CE
+:10D5D000405959595A5A5A5A5A58585858686840CE
+:10D5E000405959595A5A5A5A5A58585858686840BE
+:10D5F000405959595A5A5A5A5A585858686868409E
+:10D60000406969696A6A6A6A6A6A686868686840DB
+:10D61000405959595A5A5A5A5A6A6868686868404B
+:10D62000405959595A5A5A5A5A5A6868686868404B
+:10D63000405959595A5A5A5A5A5A5868686868404B
+:10D64000405959595A5A5A5A5A5A5858686868404B
+:10D65000405959595A5A5A5A5A5A5858686868403B
+:10D66000405959595A5A5A5A5A5A5858586868403B
+:10D67000405959595A5A5A5A5A5A5858586868402B
+:10D68000405959595A5A5A5A5A5A5858586868401B
+:10D69000405959595A5A5A5A5A5A5858586868400B
+:10D6A000405959595A5A5A5A5A5A585858686840FB
+:10D6B000405959595A5A5A5A5A5A585858686840EB
+:10D6C000405959595A5A5A5A5A5A585858686840DB
+:10D6D000405959595A5A5A5A5A5A585858686840CB
+:10D6E000405959595A5A5A5A5A5A585858686840BB
+:10D6F000405959595A5A5A5A5A5A585858686840AB
+:10D70000156969696A6A6A6A6A6A6868686868AA9B
+:10D71000155959595A5A5A5A5A5A6868686868AA1B
+:10D72000155959595A5A5A5A5A5A4868686868AA2B
+:10D73000155959595A5A5A5A5A5A5858686868AA1B
+:10D74000155959595A5A5A5A5A5A5858686868AA0B
+:10D75000155959595A5A5A5A5A5A5858586868AA0B
+:10D76000155959595A5A5A5A5A5A5858586868AAFB
+:10D77000155959595A5A5A5A5A5A5858586868AAEB
+:10D78000155959595A5A5A5A5A5A5858586868AADB
+:10D79000155959595A5A5A5A5A5A5858586868AACB
+:10D7A000155959595A5A5A5A5A5A5858586868AABB
+:10D7B000155959595A5A5A5A5A5A5858586868AAAB
+:10D7C000155959595A5A5A5A5A5A5858586868AA9B
+:10D7D000155959595A5A5A5A5A5A5858586868AA8B
+:10D7E000155959595A5A5A5A5A5A5858585868AA8B
+:10D7F000155959595A5A5A5A5A5A5858586868AA6B
+:10D80000156969696A6A6A6A6A6A6A68686868AA98
+:10D81000155959595A5A5A5A5A5A6A68686868AA18
+:10D82000155959595A5A5A5A5A5A5A68686868AA18
+:10D83000155959595A5A5A5A5A5A5A58686868AA18
+:10D84000155959595A5A5A5A5A5A5A58586868AA18
+:10D85000155959595A5A5A5A5A5A5A58586868AA08
+:10D86000155959595A5A5A5A5A5A5A58586868AAF8
+:10D87000155959595A5A5A5A5A5A5A58586868AAE8
+:10D88000155959595A5A5A5A5A5A5A58586868AAD8
+:10D89000155959595A5A5A5A5A5A5A58586868AAC8
+:10D8A000155959595A5A5A5A5A5A5A58586868AAB8
+:10D8B000155959595A5A5A5A5A5A5A58586868AAA8
+:10D8C000155959595A5A5A5A5A5A5A58586868AA98
+:10D8D000155959595A5A5A5A5A5A5A58585868AA98
+:10D8E000155959595A5A5A5A5A5A5A58585868AA88
+:10D8F000155959595A5A5A5A5A5A5A58586868AA68
+:10D90000406565656A6262626262626060606080F2
+:10D91000405555555A525252525242606060608092
+:10D92000405555555A525252525252506060608082
+:10D93000405555555A525252525252505060608082
+:10D94000405555555A525252525252505060608072
+:10D95000405555555A525252525252505060608062
+:10D96000405555555A525252525252505060608052
+:10D97000405555555A525252525252505060608042
+:10D98000405555555A525252525252505060608032
+:10D99000405555555A525252525252505060608022
+:10D9A000405555555A525252525252505060608012
+:10D9B000405555555A525252525252505060608002
+:10D9C000405555555A5252525252525050606080F2
+:10D9D000405555555A5252525252525050506080F2
+:10D9E000405555555A5252525252525050506080E2
+:10D9F000405555555A5252525252525050606080C2
+:10DA0000406565656A6262626262626260606080EF
+:10DA1000405555555A52525252525262606060807F
+:10DA2000405555555A52525252525252606060807F
+:10DA3000405555555A52525252525252506060807F
+:10DA4000405555555A52525252525252506060806F
+:10DA5000405555555A52525252525252506060805F
+:10DA6000405555555A52525252525252505060805F
+:10DA7000405555555A52525252525252505060804F
+:10DA8000405555555A52525252525252505060803F
+:10DA9000405555555A52525252525252505060802F
+:10DAA000405555555A52525252525252505060801F
+:10DAB000405555555A52525252525252505060800F
+:10DAC000405555555A5252525252525250506080FF
+:10DAD000405555555A5252525252525250506080EF
+:10DAE000405555555A5252525252525250506080DF
+:10DAF000405555555A5252525252525250506080CF
+:10DB0000156565656A6A6262626262626060602A67
+:10DB1000155555555A5A5252525252526060602A07
+:10DB2000155555555A5A5252525252525060602A07
+:10DB3000155555555A5A5252525252525060602AF7
+:10DB4000155555555A5A5252525252525060602AE7
+:10DB5000155555555A5A5252525252525050602AE7
+:10DB6000155555555A5A5252525252525050602AD7
+:10DB7000155555555A5A5252525252525050602AC7
+:10DB8000155555555A5A5252525252525050602AB7
+:10DB9000155555555A5A5252525252525050602AA7
+:10DBA000155555555A5A5252525252525050602A97
+:10DBB000155555555A5A5252525252525050602A87
+:10DBC000155555555A5A5252525252525050602A77
+:10DBD000155555555A5A5252525252525050602A67
+:10DBE000155555555A5A5252525252525050602A57
+:10DBF000155555555A5A5252525252525050602A47
+:10DC0000156565656A6A6262626262626260602A64
+:10DC1000155555555A5A5252525252526260602A04
+:10DC2000155555555A5A5252525252525260602A04
+:10DC3000155555555A5A5252525252525260602AF4
+:10DC4000155555555A5A5252525252525250602AF4
+:10DC5000155555555A5A5252525252525250602AE4
+:10DC6000155555555A5A5252525252525250602AD4
+:10DC7000155555555A5A5252525252525250602AC4
+:10DC8000155555555A5A5252525252525250602AB4
+:10DC9000155555555A5A5252525252525250602AA4
+:10DCA000155555555A5A5252525252525250602A94
+:10DCB000155555555A5A5252525252525250602A84
+:10DCC000155555555A5A5252525252525250602A74
+:10DCD000155555555A5A5252525252525250602A64
+:10DCE000155555555A5A5252525252525250602A54
+:10DCF000155555555A5A5252525252525250602A44
+:10DD0000406565656A6A6A626262626262606080DA
+:10DD1000405555555A5A5A5252525252526060808A
+:10DD2000405555555A5A5A5252525252526060807A
+:10DD3000405555555A5A5A5252525252525060807A
+:10DD4000405555555A5A5A5252525252525060806A
+:10DD5000405555555A5A5A5252525252525060805A
+:10DD6000405555555A5A5A5252525252525060804A
+:10DD7000405555555A5A5A5252525252525060803A
+:10DD8000405555555A5A5A5252525252525060802A
+:10DD9000405555555A5A5A5252525252525060801A
+:10DDA000405555555A5A5A5252525252525060800A
+:10DDB000405555555A5A5A525252525252506080FA
+:10DDC000405555555A5A5A525252525252506080EA
+:10DDD000405555555A5A5A525252525252506080DA
+:10DDE000405555555A5A5A525252525252506080CA
+:10DDF000405555555A5A5A525252525252506080BA
+:10DE0000406565656A6A6A626262626262626080D7
+:10DE1000405555555A5A5A52525252525262608087
+:10DE2000405555555A5A5A52525252525262608077
+:10DE3000405555555A5A5A52525252525252608077
+:10DE4000405555555A5A5A52525252525252608067
+:10DE5000405555555A5A5A52525252525252608057
+:10DE6000405555555A5A5A52525252525252608047
+:10DE7000405555555A5A5A52525252525252608037
+:10DE8000405555555A5A5A52525252525252608027
+:10DE9000405555555A5A5A52525252525252608017
+:10DEA000405555555A5A5A52525252525252608007
+:10DEB000405555555A5A5A525252525252526080F7
+:10DEC000405555555A5A5A525252525252526080E7
+:10DED000405555555A5A5A525252525252526080D7
+:10DEE000405555555A5A5A525252525252526080C7
+:10DEF000405555555A5A5A525252525252526080B7
+:10DF00001565656569696969616161616161602A59
+:10DF10001555555559595959515151515161602A09
+:10DF20001555555559595959515151515151602A09
+:10DF30001555555559595959515151515151602AF9
+:10DF40001555555559595959515151515151502AF9
+:10DF50001555555559595959515151515151502AE9
+:10DF60001555555559595959515151515151502AD9
+:10DF70001555555559595959515151515151502AC9
+:10DF80001555555559595959515151515151502AB9
+:10DF90001555555559595959515151515151502AA9
+:10DFA0001555555559595959515151515151502A99
+:10DFB0001555555559595959515151515151502A89
+:10DFC0001555555559595959515151515151502A79
+:10DFD0001555555559595959515151515151502A69
+:10DFE0001555555559595959515151515151502A59
+:10DFF0001555555559595959515151515151502A49
+:10E000001565656569696969696161616160602A51
+:10E010001555555559595959595151515160502A11
+:10E020001555555559595959595151515150502A11
+:10E030001555555559595959595151515150502A01
+:10E040001555555559595959595151515150502AF1
+:10E050001555555559595959595151515150502AE1
+:10E060001555555559595959595151515150502AD1
+:10E070001555555559595959595151515150502AC1
+:10E080001555555559595959595151515150502AB1
+:10E090001555555559595959595151515150502AA1
+:10E0A0001555555559595959595151515150502A91
+:10E0B0001555555559595959595151515150502A81
+:10E0C0001555555559595959595151515150502A71
+:10E0D0001555555559595959595151515150502A61
+:10E0E0001555555559595959595151515150502A51
+:10E0F0001555555559595959595151515150502A41
+:10E10000405555556949494949414141414040803F
+:10E110004055555469494949494941414040408029
+:10E120004055555569494949494941414040408018
+:10E130004055555569494949494941414040408008
+:10E1400040555555694949494949414140404080F8
+:10E1500040555555694949494949414140404080E8
+:10E1600040555555694949494949414140404080D8
+:10E1700040555555694949494949414140404080C8
+:10E1800040555555694949494949414140404080B8
+:10E1900040555555694949494949414140404080A8
+:10E1A0004055555569494949494941414040408098
+:10E1B0004055555569494949494941414040408088
+:10E1C0004055555569494949494941414040408078
+:10E1D0004055555569494949494941414040408068
+:10E1E0004055555569494949494941414040408058
+:10E1F0004055555569494949494941414040408048
+:10E200004055555569494949494941414040408037
+:10E2100015959594A9A98989898981818080802A09
+:10E2200015959595A9A98989898981818080802AF8
+:10E2300015959595A9A98989898981818080802AE8
+:10E2400015959595A9A98989898981818080802AD8
+:10E2500015959595A9A98989898981818080802AC8
+:10E2600015959595A9A98989898981818080802AB8
+:10E2700015959595A9A98989898981818080802AA8
+:10E2800015959595A9A98989898981818080802A98
+:10E2900015959595A9A98989898981818080802A88
+:10E2A00015959595A9A98989898981818080802A78
+:10E2B00015959595A9A98989898981818080802A68
+:10E2C00015959595A9A98989898981818080802A58
+:10E2D00015959595A9A98989898981818080802A48
+:10E2E00015959595A9A98989898981818080802A38
+:10E2F00015959595A9A98989898981818080802A28
+:10E3000015959595A9A98989898981818080802A17
+:10E3100015959594A9A98989898989808080802A01
+:10E3200015959595A9A98989898989808080802AF0
+:10E3300015959595A9A98989898989808080802AE0
+:10E3400015959595A9A98989898989808080802AD0
+:10E3500015959595A9A98989898989808080802AC0
+:10E3600015959595A9A98989898989808080802AB0
+:10E3700015959595A9A98989898989808080802AA0
+:10E3800015959595A9A98989898989808080802A90
+:10E3900015959595A9A98989898989808080802A80
+:10E3A00015959595A9A98989898989808080802A70
+:10E3B00015959595A9A98989898989808080802A60
+:10E3C00015959595A9A98989898989808080802A50
+:10E3D00015959595A9A98989898989808080802A40
+:10E3E00015959595A9A98989898989808080802A30
+:10E3F00015959595A9A98989898989808080802A20
+:10E4000015959595A9A98989898989808080802A0F
+:10E4100040959594A9A9A98989898980808080805F
+:10E4200040959595A9A9A98989898980808080804E
+:10E4300040959595A9A9A98989898980808080803E
+:10E4400040959595A9A9A98989898980808080802E
+:10E4500040959595A9A9A98989898980808080801E
+:10E4600040959595A9A9A98989898980808080800E
+:10E4700040959595A9A9A9898989898080808080FE
+:10E4800040959595A9A9A9898989898080808080EE
+:10E4900040959595A9A9A9898989898080808080DE
+:10E4A00040959595A9A9A9898989898080808080CE
+:10E4B00040959595A9A9A9898989898080808080BE
+:10E4C00040959595A9A9A9898989898080808080AE
+:10E4D00040959595A9A9A98989898980808080809E
+:10E4E00040959595A9A9A98989898980808080808E
+:10E4F00040959595A9A9A98989898980808080807E
+:10E5000040959595A9A9A98989898980808080806D
+:10E5100040959594A9A9A989898988888080808057
+:10E5200040959595A9A9A989898988888080808046
+:10E5300040959595A9A9A989898988888080808036
+:10E5400040959595A9A9A989898988888080808026
+:10E5500040959595A9A9A989898988888080808016
+:10E5600040959595A9A9A989898988888080808006
+:10E5700040959595A9A9A9898989888880808080F6
+:10E5800040959595A9A9A9898989888880808080E6
+:10E5900040959595A9A9A9898989888880808080D6
+:10E5A00040959595A9A9A9898989888880808080C6
+:10E5B00040959595A9A9A9898989888880808080B6
+:10E5C00040959595A9A9A9898989888880808080A6
+:10E5D00040959595A9A9A989898988888080808096
+:10E5E00040959595A9A9A989898988888080808086
+:10E5F00040959595A9A9A989898988888080808076
+:10E6000040959595A9A9A989898988888080808065
+:10E6100015959494A9A9A9A9898988888080802AB8
+:10E6200015959594A9A9A9A9898988888080802AA7
+:10E6300015959594A9A9A9A9898988888080802A97
+:10E6400015959594A9A9A9A9898988888080802A87
+:10E6500015959594A9A9A9A9898988888080802A77
+:10E6600015959594A9A9A9A9898988888080802A67
+:10E6700015959594A9A9A9A9898988888080802A57
+:10E6800015959594A9A9A9A9898988888080802A47
+:10E6900015959594A9A9A9A9898988888080802A37
+:10E6A00015959594A9A9A9A9898988888080802A27
+:10E6B00015959594A9A9A9A9898988888080802A17
+:10E6C00015959594A9A9A9A9898988888080802A07
+:10E6D00015959594A9A9A9A9898988888080802AF7
+:10E6E00015959594A9A9A9A9898988888080802AE7
+:10E6F00015959594A9A9A9A9898988888080802AD7
+:10E7000015959594A9A9A9A9898988888080802AC6
+:10E7100015959494A9A9A9A9898888888880802AB0
+:10E7200015959594A9A9A9A9898888888880802A9F
+:10E7300015959594A9A9A9A9898888888880802A8F
+:10E7400015959594A9A9A9A9898888888880802A7F
+:10E7500015959594A9A9A9A9898888888880802A6F
+:10E7600015959594A9A9A9A9898888888880802A5F
+:10E7700015959594A9A9A9A9898888888880802A4F
+:10E7800015959594A9A9A9A9898888888880802A3F
+:10E7900015959594A9A9A9A9898888888880802A2F
+:10E7A00015959594A9A9A9A9898888888880802A1F
+:10E7B00015959594A9A9A9A9898888888880802A0F
+:10E7C00015959594A9A9A9A9898888888880802AFF
+:10E7D00015959594A9A9A9A9898888888880802AEF
+:10E7E00015959594A9A9A9A9898888888880802ADF
+:10E7F00015959594A9A9A9A9898888888880802ACF
+:10E8000015959594A9A9A9A9898888888880802ABE
+:10E8100040959494A9A9A9A9A9888888888080800E
+:10E8200040959594A9A9A9A9A988888888808080FD
+:10E8300040959594A9A9A9A9A988888888808080ED
+:10E8400040959594A9A9A9A9A988888888808080DD
+:10E8500040959594A9A9A9A9A988888888808080CD
+:10E8600040959594A9A9A9A9A988888888808080BD
+:10E8700040959594A9A9A9A9A988888888808080AD
+:10E8800040959594A9A9A9A9A9888888888080809D
+:10E8900040959594A9A9A9A9A9888888888080808D
+:10E8A00040959594A9A9A9A9A9888888888080807D
+:10E8B00040959594A9A9A9A9A9888888888080806D
+:10E8C00040959594A9A9A9A9A9888888888080805D
+:10E8D00040959594A9A9A9A9A9888888888080804D
+:10E8E00040959594A9A9A9A9A9888888888080803D
+:10E8F00040959594A9A9A9A9A9888888888080802D
+:10E9000040959594A9A9A9A9A9888888888080801C
+:10E9100040959494A9A9A9A9A88888888888808006
+:10E9200040959594A9A9A9A9A888888888888080F5
+:10E9300040959594A9A9A9A9A888888888888080E5
+:10E9400040959594A9A9A9A9A888888888888080D5
+:10E9500040959594A9A9A9A9A888888888888080C5
+:10E9600040959594A9A9A9A9A888888888888080B5
+:10E9700040959594A9A9A9A9A888888888888080A5
+:10E9800040959594A9A9A9A9A88888888888808095
+:10E9900040959594A9A9A9A9A88888888888808085
+:10E9A00040959594A9A9A9A9A88888888888808075
+:10E9B00040959594A9A9A9A9A88888888888808065
+:10E9C00040959594A9A9A9A9A88888888888808055
+:10E9D00040959594A9A9A9A9A88888888888808045
+:10E9E00040959594A9A9A9A9A88888888888808035
+:10E9F00040959594A9A9A9A9A88888888888808025
+:10EA000040959594A9A9A9A9A88888888888808014
+:10EA100015959494A5A5A5A4A4A484848484802A8F
+:10EA200015959594A5A5A5A4A4A484848484802A7E
+:10EA300015959594A5A5A5A4A4A484848484802A6E
+:10EA400015959594A5A5A5A4A4A484848484802A5E
+:10EA500015959594A5A5A5A4A4A484848484802A4E
+:10EA600015959594A5A5A5A4A4A484848484802A3E
+:10EA700015959594A5A5A5A4A4A484848484802A2E
+:10EA800015959594A5A5A5A4A4A484848484802A1E
+:10EA900015959594A5A5A5A4A4A484848484802A0E
+:10EAA00015959594A5A5A5A4A4A484848484802AFE
+:10EAB00015959594A5A5A5A4A4A484848484802AEE
+:10EAC00015959594A5A5A5A4A4A484848484802ADE
+:10EAD00015959594A5A5A5A4A4A484848484802ACE
+:10EAE00015959594A5A5A5A4A4A484848484802ABE
+:10EAF00015959594A5A5A5A4A4A484848484802AAE
+:10EB000015959594A5A5A5A4A4A484848484802A9D
+:10EB100015959494A5A5A5A4A4A484848480802A92
+:10EB200040959494A5A5A4A4A4A4A48484808080E2
+:10EB300040949494A5A5A4A4A4A4A48480808080D7
+:10EB400040959494A5A5A4A4A4A4A48480808080C6
+:10EB500040959494A5A5A4A4A4A4A48480808080B6
+:10EB600040959494A5A5A4A4A4A4A48480808080A6
+:10EB700040959494A5A5A4A4A4A4A4848080808096
+:10EB800040959494A5A5A4A4A4A4A4848080808086
+:10EB900040959494A5A5A4A4A4A4A4848080808076
+:10EBA00040959494A5A5A4A4A4A4A4848080808066
+:10EBB00040959494A5A5A4A4A4A4A4848080808056
+:10EBC00040959494A5A5A4A4A4A4A4848080808046
+:10EBD00040959494A5A5A4A4A4A4A4848080808036
+:10EBE00040959494A5A5A4A4A4A4A4848080808026
+:10EBF00040959494A5A5A4A4A4A4A4848080808016
+:10EC000040959494A5A5A4A4A4A4A4848080808005
+:10EC100040959494A5A5A4A4A4A4A48480808080F5
+:10EC200040959494A5A5A4A4A4A4A48480808080E5
+:10EC300015949494A5A4A4A4A4A4A4A48080802A38
+:10EC400015959494A5A4A4A4A4A4A4A48080802A27
+:10EC500015959494A5A4A4A4A4A4A4A48080802A17
+:10EC600015959494A5A4A4A4A4A4A4A48080802A07
+:10EC700015959494A5A4A4A4A4A4A4A48080802AF7
+:10EC800015959494A5A4A4A4A4A4A4A48080802AE7
+:10EC900015959494A5A4A4A4A4A4A4A48080802AD7
+:10ECA00015959494A5A4A4A4A4A4A4A48080802AC7
+:10ECB00015959494A5A4A4A4A4A4A4A48080802AB7
+:10ECC00015959494A5A4A4A4A4A4A4A48080802AA7
+:10ECD00015959494A5A4A4A4A4A4A4A48080802A97
+:10ECE00015959494A5A4A4A4A4A4A4A48080802A87
+:10ECF00015959494A5A4A4A4A4A4A4A48080802A77
+:10ED000015959494A5A4A4A4A4A4A4A48080802A66
+:10ED100015959494A5A4A4A4A4A4A4A48080802A56
+:10ED200015959494A5A4A4A4A4A4A4A48080802A46
+:10ED300015949494A5A4A4A4A4A4A4A08080802A3B
+:10ED400015959494A5A4A4A4A4A4A4A08080802A2A
+:10ED500015959494A5A4A4A4A4A4A4A08080802A1A
+:10ED600015959494A5A4A4A4A4A4A4A08080802A0A
+:10ED700015959494A5A4A4A4A4A4A4A08080802AFA
+:10ED800015959494A5A4A4A4A4A4A4A08080802AEA
+:10ED900015959494A5A4A4A4A4A4A4A08080802ADA
+:10EDA00015959494A5A4A4A4A4A4A4A08080802ACA
+:10EDB00015959494A5A4A4A4A4A4A4A08080802ABA
+:10EDC00015959494A5A4A4A4A4A4A4A08080802AAA
+:10EDD00015959494A5A4A4A4A4A4A4A08080802A9A
+:10EDE00015959494A5A4A4A4A4A4A4A08080802A8A
+:10EDF00015959494A5A4A4A4A4A4A4A08080802A7A
+:10EE000015959494A5A4A4A4A4A4A4A08080802A69
+:10EE100015959494A5A4A4A4A4A4A4A08080802A59
+:10EE200015959494A5A4A4A4A4A4A4A08080802A49
+:10EE300040949494A4A4A4A4A4A4A4A0A08080809A
+:10EE400043979797A7A7A7A7A7A7A3A3A38383835E
+:10EE500014949494A4A4A4A4A4A4A0A0A0A08028E2
+:10EE60001454545454545454545050505050002836
+:10EE70004054545454545454545050501000008032
+:10EE8000405454505454545450505010100000806A
+:10EE900014545450545454505050101040000028F2
+:10EEA0001454545054545450501010100000002862
+:10EEB00040545450545450505010100000000080E2
+:10EEC0004054505054545050101010000000008016
+:10EED00014545050545050101010000000000028DE
+:10EEE000145450505450101010100000000000280E
+:10EEF0004050505050501010100000000000008092
+:10EF00004050505050501010100000000000008081
+:10EF10004050505050501010100000000000008071
+:10EF20004050505050501010100000000000008061
+:10EF30004050505050501010100000000000008051
+:10EF40004050505050501010100000000000008041
+:10EF50004050505050501010100000000000008031
+:10EF60004050505050501010100000000000008021
+:10EF70004050505050501010100000000000008011
+:10EF80004050505050501010100000000000008001
+:10EF900040505050505010101000000000000080F1
+:10EFA00040505050505010101000000000000080E1
+:10EFB00040505050505010101000000000000080D1
+:10EFC00040505050505010101000000000000080C1
+:10EFD00040505050505010101000000000000080B1
+:10EFE0004050505050501010100000000000000021
+:10EFF0004C5C5C4C5C1C1C1C1C0C0C0C0C0C0C8C21
+:10F000004C5C5C4C5C1C1C1C1C0C0C0C0C0C0C8C10
+:10F010004C5C5C4C5C1C1C1C1C0C0C0C0C0C0C8C00
+:10F020004C5C5C4C5C1C1C1C1C0C0C0C0C0C0C8CF0
+:10F030004C5C5C4C5C1C1C1C1C0C0C0C0C0C0C8CE0
+:10F040004C5C5C4C5C1C1C1C1C0C0C0C0C0C0C8CD0
+:10F050004C5C5C4C5C1C1C1C1C0C0C0C0C0C0C8CC0
+:10F060004C5C5C4C5C1C1C1C1C0C0C0C0C0C0C8CB0
+:10F070004C5C5C4C5C1C1C1C1C0C0C0C0C0C0C8CA0
+:10F080004C5C5C4C5C1C1C1C1C0C0C0C0C0C0C8C90
+:10F090004C5C5C4C5C1C1C1C1C0C0C0C0C0C0C8C80
+:10F0A0004C5C5C4C5C1C1C1C1C0C0C0C0C0C0C8C70
+:10F0B0004C5C5C4C5C1C1C1C1C0C0C0C0C0C0C8C60
+:10F0C0004C5C5C4C5C1C1C1C1C0C0C0C0C0C0C8C50
+:10F0D0004C5C5C4C5C1C1C1C1C0C0C0C0C0C0C8C40
+:10F0E0004C5C5C4C5C1C1C1C1C0C0C0C0C0C0C0CB0
+:10F0F0001050504050101010000000000000002080
+:10F1000010505040101010100000000000000020AF
+:10F11000405050401010100000000000000000801F
+:10F12000405050401010100000000000000000800F
+:10F1300040505040101010000000000000000080FF
+:10F1400040505040101010000000000000000080EF
+:10F1500040505040101010000000000000000080DF
+:10F1600040505040101010000000000000000080CF
+:10F1700040505040101010000000000000000080BF
+:10F1800040505040101010000000000000000080AF
+:10F19000405050401010100000000000000000809F
+:10F1A000405050401010100000000000000000808F
+:10F1B000405050401010100000000000000000807F
+:10F1C000405050401010100000000000000000806F
+:10F1D000405050401010100000000000000000805F
+:10F1E000405050401010100000000000000000804F
+:10F1F000405050401010100000000000000000803F
+:10F2000040505040101010000000000000000000AE
+:10F21000405040401010100000000000000000802E
+:10F22000405040401010100000000000000000801E
+:10F23000405040401010100000000000000000800E
+:10F2400040504040101010000000000000000080FE
+:10F2500040504040101010000000000000000080EE
+:10F2600040504040101010000000000000000080DE
+:10F2700040504040101010000000000000000080CE
+:10F2800040504040101010000000000000000080BE
+:10F2900040504040101010000000000000000080AE
+:10F2A000405040401010100000000000000000809E
+:10F2B000405040401010100000000000000000808E
+:10F2C000405040401010100000000000000000807E
+:10F2D000405040401010100000000000000000806E
+:10F2E000405040401010100000000000000000805E
+:10F2F000405040401010100000000000000000804E
+:10F3000040504040101010000000000000000000BD
+:10F3100010504040101000000000000000000020CD
+:10F3200010504000101000000000000000000020FD
+:10F3300040500000100000000000000000000080AD
+:10F34000405000001000000000000000000000809D
+:10F35000405000001000000000000000000000808D
+:10F36000405000001000000000000000000000807D
+:10F37000405000001000000000000000000000806D
+:10F38000405000001000000000000000000000805D
+:10F39000405000001000000000000000000000804D
+:10F3A000405000001000000000000000000000803D
+:10F3B000405000001000000000000000000000802D
+:10F3C000405000001000000000000000000000801D
+:10F3D000405000001000000000000000000000800D
+:10F3E00040500000100000000000000000000080FD
+:10F3F00040500000100000000000000000000080ED
+:10F4000040500000100000000000000000000080DC
+:10F4100040500000100000000000000000000080CC
+:10F42000405000001000000000000000000000003C
+:10F4300040500000100000000000000000000080AC
+:10F44000405000001000000000000000000000809C
+:10F45000405000001000000000000000000000808C
+:10F46000405000001000000000000000000000807C
+:10F47000405000001000000000000000000000806C
+:10F48000405000001000000000000000000000805C
+:10F49000405000001000000000000000000000804C
+:10F4A000405000001000000000000000000000803C
+:10F4B000405000001000000000000000000000802C
+:10F4C000405000001000000000000000000000801C
+:10F4D000405000001000000000000000000000800C
+:10F4E00040500000100000000000000000000080FC
+:10F4F00040500000100000000000000000000080EC
+:10F5000040500000100000000000000000000080DB
+:10F5100040500000100000000000000000000080CB
+:10F52000405000001000000000000000000000003B
+:10F5300000000000000000000000000000000000CB
+:10F5400030303030303030303030303030303030BB
+:10F5500000000000000000000000000000000000AB
+:10F56000000000000000000000000000000000009B
+:10F57000000000000000000000000000000000008B
+:10F58000000000000000000000000000000000007B
+:10F59000000000000000000000000000000000006B
+:10F5A000000000000000000000000000000000005B
+:10F5B000000000000000000000000000000000004B
+:10F5C000000000000000000000000000000000003B
+:10F5D000000000000000000000000000000000002B
+:10F5E000000000000000000000000000000000001B
+:10F5F000000000000000000000000000000000000B
+:10F600000096969695959595959595959595AA6557
+:10F610009A00252625252525252525252525256509
+:10F620009A250026252525252525252525252565F9
+:10F630009A252500252525252525252525252565EA
+:10F640009A252525002525252525252525252565DA
+:10F650009A252525250025252525252525252565CA
+:10F660009A252525252500252525252525252565BA
+:10F670009A252525252525002525252525252565AA
+:10F680009A2525252525252500252525252525659A
+:10F690009A2525252525252525002525252525658A
+:10F6A0009A2525252525252525250025252525657A
+:10F6B0009A2525252525252525252500252525656A
+:10F6C0009A2525252525252525252525002525655A
+:10F6D0009A2525252525252525252525250025654A
+:10F6E0009A2525252525252525252525252500653A
+:10F6F0009A2525252525252525252525252525006A
+:10F700000096969695959595959595959595AA6556
+:10F710009A00A5A6A5A5A5A5A5A5A5A5A5A5A56588
+:10F720009A250026252525252525252525252565F8
+:10F730009A252500252525252525252525252565E9
+:10F740009A252525002525252525252525252565D9
+:10F750009A252525250025252525252525252565C9
+:10F760009A252525252500252525252525252565B9
+:10F770009A252525252525002525252525252565A9
+:10F780009A25252525252525002525252525256599
+:10F790009A25252525252525250025252525256589
+:10F7A0009A25252525252525252500252525256579
+:10F7B0009A25252525252525252525002525256569
+:10F7C0009A25252525252525252525250025256559
+:10F7D0009A25252525252525252525252500256549
+:10F7E0009A25252525252525252525252525006539
+:10F7F0009A25252525252525252525252525250069
+:10F800000096969A95959595959595959595AA00B6
+:10F810000000A6A6A5A5A5A5A5A5A5A5A5A5A50085
+:10F8200000250026252525252525252525252500F6
+:10F8300000252500252525252525252525252500E7
+:10F8400000252525002525252525252525252500D7
+:10F8500000252525250025252525252525252500C7
+:10F8600000252525252500252525252525252500B7
+:10F8700000252525252525002525252525252500A7
+:10F880000025252525252525002525252525250097
+:10F890000025252525252525250025252525250087
+:10F8A0000025252525252525252500252525250077
+:10F8B0000025252525252525252525002525250067
+:10F8C0000025252525252525252525250025250057
+:10F8D0000025252525252525252525252500250047
+:10F8E0000025252525252525252525252525000037
+:10F8F0000025252525252525252525252525250002
+:10F900000096969A95959595959595959595AA00B5
+:10F910000000A6A6A5A5A5A5A5A5A5A5A5A5A50084
+:10F9200000A500A6A5A5A5A5A5A5A5A5A5A5A50075
+:10F9300000A5A500A5A5A5A5A5A5A5A5A5A5A50066
+:10F9400000252525002525252525252525252500D6
+:10F9500000252525250025252525252525252500C6
+:10F9600000252525252500252525252525252500B6
+:10F9700000252525252525002525252525252500A6
+:10F980000025252525252525002525252525250096
+:10F990000025252525252525250025252525250086
+:10F9A0000025252525252525252500252525250076
+:10F9B0000025252525252525252525002525250066
+:10F9C0000025252525252525252525250025250056
+:10F9D0000025252525252525252525252500250046
+:10F9E0000025252525252525252525252525000036
+:10F9F0000025252525252525252525252525250001
+:10FA00000096969A95959595959595959595AA654F
+:10FA10009A00A6A6A5A5A5A5A5A5A5A5A5A5A66583
+:10FA20009AA500A6A5A5A5A5A5A5A5A5A5A5A56575
+:10FA30009AA5A500A5A5A5A5A5A5A5A5A5A5A56566
+:10FA40009A252525002525252525252525252565D6
+:10FA50009A252525250025252525252525252565C6
+:10FA60009A252525252500252525252525252565B6
+:10FA70009A252525252525002525252525252565A6
+:10FA80009A25252525252525002525252525256596
+:10FA90009A25252525252525250025252525256586
+:10FAA0009A25252525252525252500252525256576
+:10FAB0009A25252525252525252525002525256566
+:10FAC0009A25252525252525252525250025256556
+:10FAD0009A25252525252525252525252500256546
+:10FAE0009A25252525252525252525252525006536
+:10FAF0009A25252525252525252525252525250066
+:10FB00000096969A95959595959595959595AA654E
+:10FB10009A00A6A6A5A5A5A5A5A5A5A5A5A5A66582
+:10FB20009AA500A6A5A5A5A5A5A5A5A5A5A5A56574
+:10FB30009AA5A500A5A5A5A5A5A5A5A5A5A5A56565
+:10FB40009AA5A5A600A5A5A5A5A5A5A5A5A5A56554
+:10FB50009AA5A5A5A500A5A5A5A5A5A5A5A5A56545
+:10FB60009A252525252500252525252525252565B5
+:10FB70009A252525252525002525252525252565A5
+:10FB80009A25252525252525002525252525256595
+:10FB90009A25252525252525250025252525256585
+:10FBA0009A25252525252525252500252525256575
+:10FBB0009A25252525252525252525002525256565
+:10FBC0009A25252525252525252525250025256555
+:10FBD0009A25252525252525252525252500256545
+:10FBE0009A25252525252525252525252525006535
+:10FBF0009A25252525252525252525252525250065
+:10FC00000096969A95959595959595959595AA00B2
+:10FC10000000A6A6A5A5A5A5A5A5A5A5A5A5A60080
+:10FC200000A500A6A5A5A5A5A5A5A5A5A5A5A60071
+:10FC300000A5A500A5A5A5A5A5A5A5A5A5A5A50063
+:10FC400000A5A5A600A5A5A5A5A5A5A5A5A5A50052
+:10FC500000A5A5A6A500A5A5A5A5A5A5A5A5A50042
+:10FC600000252525252500252525252525252500B3
+:10FC700000252525252525002525252525252500A3
+:10FC80000025252525252525002525252525250093
+:10FC90000025252525252525250025252525250083
+:10FCA0000025252525252525252500252525250073
+:10FCB0000025252525252525252525002525250063
+:10FCC0000025252525252525252525250025250053
+:10FCD0000025252525252525252525252500250043
+:10FCE0000025252525252525252525252525000033
+:10FCF00000252525252525252525252525252500FE
+:10FD00000096969A95959595959595959595AA00B1
+:10FD10000000A6A6A5A5A5A5A5A5A5A5A5A5A6007F
+:10FD200000A500A6A5A5A5A5A5A5A5A5A5A5A60070
+:10FD300000A5A600A5A5A5A5A5A5A5A5A5A5A50061
+:10FD400000A5A5A600A5A5A5A5A5A5A5A5A5A50051
+:10FD500000A5A5A6A500A5A5A5A5A5A5A5A5A50041
+:10FD600000A5A5A6A5A500A5A5A5A5A5A5A5A50031
+:10FD700000252525252525002525252525252500A2
+:10FD80000025252525252525002525252525250092
+:10FD90000025252525252525250025252525250082
+:10FDA0000025252525252525252500252525250072
+:10FDB0000025252525252525252525002525250062
+:10FDC0000025252525252525252525250025250052
+:10FDD0000025252525252525252525252500250042
+:10FDE0000025252525252525252525252525000032
+:10FDF00000252525252525252525252525252500FD
+:10FE000000969A9A95959595959595959595AA6547
+:10FE10009A00A6A6A5A5A5A5A5A5A5A5A5A5A6657F
+:10FE20009AA600A6A5A5A5A5A5A5A5A5A5A5A6656F
+:10FE30009AA5A600A5A5A5A5A5A5A5A5A5A5A56561
+:10FE40009AA5A5A600A5A5A5A5A5A5A5A5A5A56551
+:10FE50009AA5A5A6A500A5A5A5A5A5A5A5A5A56541
+:10FE60009AA5A5A6A5A500A5A5A5A5A5A5A5A56531
+:10FE70009A252526252525002525252525252565A1
+:10FE80009A25252525252525002525252525256592
+:10FE90009A25252525252525250025252525256582
+:10FEA0009A25252525252525252500252525256572
+:10FEB0009A25252525252525252525002525256562
+:10FEC0009A25252525252525252525250025256552
+:10FED0009A25252525252525252525252500256542
+:10FEE0009A25252525252525252525252525006532
+:10FEF0009A25252525252525252525252525250062
+:10FF000000969AAA95959595959595959595AA6536
+:10FF10009A00A6A6A5A5A5A5A5A5A5A5A5A5A6657E
+:10FF20009AA600A6A5A5A5A5A5A5A5A5A5A5A6656E
+:10FF30009AA5A600A5A5A5A5A5A5A5A5A5A5A6655F
+:10FF40009AA5A6A600A5A5A5A5A5A5A5A5A5A5654F
+:10FF50009AA5A5A6A500A5A5A5A5A5A5A5A5A56540
+:10FF60009AA5A5A6A5A500A5A5A5A5A5A5A5A56530
+:10FF70009AA5A5A6A5A5A500A5A5A5A5A5A5A56520
+:10FF80009A25252625252525002525252525256590
+:10FF90009A25252525252525250025252525256581
+:10FFA0009A25252525252525252500252525256571
+:10FFB0009A25252525252525252525002525256561
+:10FFC0009A25252525252525252525250025256551
+:10FFD0009A25252525252525252525252500256541
+:10FFE0009A25252525252525252525252525006531
+:10FFF0009A25252525252525252525252525250061
+:020000040002F8
+:1000000000969AAA95959595969696959595AA0097
+:100010000000A6A6A5A5A5A5A5A5A5A5A5A5A6007C
+:1000200000A600A6A5A5A5A5A5A5A5A5A5A5A6006C
+:1000300000A5A600A5A5A5A5A5A5A5A5A5A5A6005D
+:1000400000A5A6A600A5A5A5A5A5A5A5A5A5A5004D
+:1000500000A5A6A6A500A5A5A5A5A5A5A5A5A5003D
+:1000600000A5A5A6A5A500A5A5A5A5A5A5A5A5002E
+:1000700000A5A5A6A5A5A500A5A5A5A5A5A5A5001E
+:10008000002525262525252500252525252525008E
+:10009000002525262525252525002525252525007E
+:1000A000002525252525252525250025252525006F
+:1000B000002525252525252525252500252525005F
+:1000C000002525252525252525252525002525004F
+:1000D000002525252525252525252525250025003F
+:1000E000002525252525252525252525252500002F
+:1000F00000252525252525252525252525252500FA
+:1001000000969AAA95959596969696969595AA0094
+:100110000000A6A6A5A5A5A5A5A5A5A5A5A5A6007B
+:1001200000A600A6A5A5A5A5A5A5A5A5A5A5A6006B
+:1001300000A6A600A5A5A5A5A5A5A5A5A5A5A6005B
+:1001400000A5A6A600A5A5A5A5A5A5A5A5A5A6004B
+:1001500000A5A6A6A500A5A5A5A5A5A5A5A5A5003C
+:1001600000A5A6A6A5A500A5A5A5A5A5A5A5A5002C
+:1001700000A5A5A6A5A5A500A5A5A5A5A5A5A5001D
+:1001800000A5A5A6A5A5A5A500A5A5A5A5A5A5000D
+:10019000002525262525252525002525252525007D
+:1001A000002525262525252525250025252525006D
+:1001B000002525252525252525252500252525005E
+:1001C000002525252525252525252525002525004E
+:1001D000002525252525252525252525250025003E
+:1001E000002525252525252525252525252500002E
+:1001F00000252525252525252525252525252500F9
+:1002000000969AAA95959696969696969595AA652D
+:100210009500A6A6A5A5A5A5A5A5A5A5A5A5A66580
+:1002200095A600A6A5A5A5A5A5A5A5A5A5A5A66570
+:1002300095A6A600A5A5A5A5A5A5A5A5A5A5A66560
+:1002400095A5A6A600A5A5A5A5A5A5A5A5A5A66550
+:1002500095A5A6A6A500A5A5A5A5A5A5A5A5A66540
+:1002600095A5A6A6A5A500A5A5A5A5A5A5A5A56531
+:1002700095A5A6A6A5A5A500A5A5A5A5A5A5A56521
+:1002800095A5A5A6A5A5A5A500A5A5A5A5A5A56512
+:100290009525252625252525250025252525256582
+:1002A0009525252625252525252500252525256572
+:1002B0009525252625252525252525002525256562
+:1002C0009525252525252525252525250025256553
+:1002D0009525252525252525252525252500256543
+:1002E0009525252525252525252525252525006533
+:1002F0009525252525252525252525252525250063
+:100300000096AAAA96969696969696969595AA651A
+:100310009500A6A6A5A5A5A5A5A5A5A5A5A5A6657F
+:1003200095A600A6A5A5A5A5A5A5A5A5A5A5A6656F
+:1003300095A6A600A5A5A5A5A5A5A5A5A5A5A6655F
+:1003400095A6A6A600A5A5A5A5A5A5A5A5A5A6654E
+:1003500095A5A6A6A500A5A5A5A5A5A5A5A5A6653F
+:1003600095A5A6A6A5A500A5A5A5A5A5A5A5A6652F
+:1003700095A5A6A6A5A5A500A5A5A5A5A5A5A56520
+:1003800095A5A6A6A5A5A5A500A5A5A5A5A5A56510
+:1003900095A5A5A6A5A5A5A5A500A5A5A5A5A56501
+:1003A0009525252625252525252500252525256571
+:1003B0009525252625252525252525002525256561
+:1003C0009525252625252525252525250025256551
+:1003D0009525252625252525252525252500256541
+:1003E0009525252625252525252525252525006531
+:1003F0009525252525252525252525252525250062
+:100400000096AAAA96969696969696969695AA007D
+:100410000000A6A6A5A5A5A5A5A5A5A5A5A5A60078
+:1004200000A600A6A5A5A5A5A5A5A5A5A5A5A60068
+:1004300000A6A600A5A5A5A5A5A5A5A5A5A5A60058
+:1004400000A6A6A600A5A5A5A5A5A5A5A5A5A60047
+:1004500000A6A6A6A500A5A5A5A5A5A5A5A5A60037
+:1004600000A5A6A6A5A500A5A5A5A5A5A5A5A60028
+:1004700000A5A6A6A5A5A500A5A5A5A5A5A5A60018
+:1004800000A5A6A6A5A5A5A500A5A5A5A5A5A50009
+:1004900000A5A6A6A5A5A5A5A500A5A5A5A5A500F9
+:1004A000002525262525252525250025252525006A
+:1004B000002525262525252525252500252525005A
+:1004C000002525262525252525252525002525004A
+:1004D000002525262525252525252525250025003A
+:1004E000002525262525252525252525252500002A
+:1004F00000252525252525252525252525252500F6
+:100500000096AAAA96969696969696969696AA007B
+:100510000000A6A6A5A5A5A5A5A5A5A5A5A5A60077
+:1005200000A600A6A5A5A5A5A5A5A5A5A5A5A60067
+:1005300000A6A600A5A5A5A5A5A5A5A5A5A5A60057
+:1005400000A6A6A600A5A5A5A5A5A5A5A5A5A60046
+:1005500000A6A6A6A500A5A5A5A5A5A5A5A5A60036
+:1005600000A6A6A6A5A500A5A5A5A5A5A5A5A60026
+:1005700000A5A6A6A5A5A500A5A5A5A5A5A5A60017
+:1005800000A5A6A6A5A5A5A500A5A5A5A5A5A60007
+:1005900000A5A6A6A5A5A5A5A500A5A5A5A5A500F8
+:1005A00000A5A6A6A5A5A5A5A5A500A5A5A5A500E8
+:1005B0000025252625252525252525002525250059
+:1005C0000025252625252525252525250025250049
+:1005D0000025252625252525252525252500250039
+:1005E0000025252625252525252525252525000029
+:1005F00000252526252525252525252525252500F4
+:10060000009AAAAA969696969696969696A6AA6AFC
+:100610009500A6A6A5A5A5A5A5A5A5A5A5A5A6667B
+:1006200095A600A6A5A5A5A5A5A5A5A5A5A5A6666B
+:1006300095A6A600A5A5A5A5A5A5A5A5A5A5A6665B
+:1006400095A6A6A600A5A5A5A5A5A5A5A5A5A6664A
+:1006500095A6A6A6A500A5A5A5A5A5A5A5A5A6663A
+:1006600095A6A6A6A5A500A5A5A5A5A5A5A5A6662A
+:1006700095A6A6A6A5A5A500A5A5A5A5A5A5A6661A
+:1006800095A5A6A6A5A5A5A500A5A5A5A5A5A6660B
+:1006900095A5A6A6A5A5A5A5A500A5A5A5A5A666FB
+:1006A00095A5A6A6A5A5A5A5A5A500A5A5A5A566EC
+:1006B000952526262525252525252500252525665C
+:1006C000952525262525252525252525002525664D
+:1006D000952525262525252525252525250025663D
+:1006E000952525262525252525252525252500662D
+:1006F000952525262525252525252525252525005E
+:10070000009AAAAA9696969696969A8696A6AA6A07
+:100710009500A6A6A5A5A5A5A5A5A5A5A5A5A6667A
+:1007200095A600A6A5A5A5A5A5A5A5A5A5A5A6666A
+:1007300095A6A600A5A5A5A5A5A5A5A5A5A5A6665A
+:1007400095A6A6A600A5A5A5A5A5A5A5A5A5A66649
+:1007500095A6A6A6A500A5A5A5A5A5A5A5A5A66639
+:1007600095A6A6A6A5A500A5A5A5A5A5A5A5A66629
+:1007700095A6A6A6A5A5A500A5A5A5A5A5A5A66619
+:1007800095A6A6A6A5A5A5A500A5A5A5A5A5A66609
+:1007900095A5A6A6A5A5A5A5A500A5A5A5A5A666FA
+:1007A00095A5A6A6A5A5A5A5A5A500A5A5A5A666EA
+:1007B00095A5A6A6A5A5A5A5A5A5A500A5A5A566DB
+:1007C000952526262525252525252525002525664B
+:1007D000952526262525252525252525250025663B
+:1007E000952526262525252525252525252500662B
+:1007F000952526262525252525252525252525005C
+:1008000000AAAAAA969696969A9AAAA6A6A6AA0018
+:100810000000A6A6A5A5A5A5A5A5A5A5A5A5A60074
+:1008200000A600A6A5A5A5A5A5A5A5A5A5A5A60064
+:1008300000A6A600A5A5A5A5A5A5A5A5A5A5A60054
+:1008400000A6A6A600A5A5A5A5A5A5A5A5A5A60043
+:1008500000A6A6A6A500A5A5A5A5A5A5A5A5A60033
+:1008600000A6A6A6A5A500A5A5A5A5A5A5A5A60023
+:1008700000A6A6A6A5A5A500A5A5A5A5A5A5A60013
+:1008800000A6A6A6A5A5A5A500A5A5A5A5A5A60003
+:1008900000A6A6A6A5A5A5A5A500A5A5A5A5A600F3
+:1008A00000A5A6A6A5A5A5A5A5A500A5A5A5A600E4
+:1008B00000A5A6A6A5A5A5A5A5A5A500A5A5A600D4
+:1008C0000025262625252525252525250025250045
+:1008D0000025262625252525252525252500250035
+:1008E0000025262625252525252525252525000025
+:1008F00000252626252525252525252525252500F0
+:1009000000AAAAAA969696969A8AAAA6A6A6AA0027
+:100910000000A6A6A6A6A6A6A6A6A6A6A6A6A60069
+:1009200000A600A6A6A6A6A6A6A6A6A6A6A6A60059
+:1009300000A6A600A6A6A6A6A6A6A6A6A6A6A60049
+:1009400000A6A6A600A6A6A6A6A6A6A6A6A6A60039
+:1009500000A6A6A6A600A6A6A6A6A6A6A6A6A60029
+:1009600000A6A6A6A6A600A6A6A6A6A6A6A6A60019
+:1009700000A6A6A6A6A6A600A6A6A6A6A6A6A60009
+:1009800000A6A6A6A6A6A6A600A6A6A6A6A6A600F9
+:1009900000A6A6A6A6A6A6A6A600A6A6A6A6A600E9
+:1009A00000A6A6A6A6A6A6A6A6A600A6A6A6A600D9
+:1009B00000A5A6A6A6A6A6A6A6A6A600A6A6A600CA
+:1009C00000A5A6A6A6A6A6A6A6A6A6A600A6A600BA
+:1009D000002526262626262626262626260026002A
+:1009E000002526262626262626262626262600001A
+:1009F00000262626252525252525252525252500EE
+:100A000000AAAAAA96969696AAAAAAAAA6A6AA6A88
+:100A10009500A6A6A6A6A6A6A6A6A6A6A6A6A6666D
+:100A200095A600A6A6A6A6A6A6A6A6A6A6A6A6665D
+:100A300095A6A600A6A6A6A6A6A6A6A6A6A6A6664D
+:100A400095A6A6A600A6A6A6A6A6A6A6A6A6A6663D
+:100A500095A6A6A6A600A6A6A6A6A6A6A6A6A6662D
+:100A600095A6A6A6A6A600A6A6A6A6A6A6A6A6661D
+:100A700095A6A6A6A6A6A600A6A6A6A6A6A6A6660D
+:100A800095A6A6A6A6A6A6A600A6A6A6A6A6A666FD
+:100A900095A6A6A6A6A6A6A6A600A6A6A6A6A666ED
+:100AA00095A6A6A6A6A6A6A6A6A600A6A6A6A666DD
+:100AB00095A6A6A6A6A6A6A6A6A6A600A6A6A666CD
+:100AC00095A5A6A6A6A6A6A6A6A6A6A600A6A666BE
+:100AD000952526262626262626262626260026662E
+:100AE000952526262626262626262626262600661E
+:100AF0009526262625252525252525252525250058
+:100B000000AAAAAA969696AAAAAAAAAAA6A6AA6A73
+:100B10009500A6AAA6A6A6A6A6A6A6A6A6A6A66668
+:100B200095A600AAA6A6A6A6A6A6A6A6A6A6A66658
+:100B300095A6A600A6A6A6A6A6A6A6A6A6A6A6664C
+:100B400095A6A6AA00A6A6A6A6A6A6A6A6A6A66638
+:100B500095A6A6AAA600A6A6A6A6A6A6A6A6A66628
+:100B600095A6A6AAA6A600A6A6A6A6A6A6A6A66618
+:100B700095A6A6AAA6A6A600A6A6A6A6A6A6A66608
+:100B800095A6A6AAA6A6A6A600A6A6A6A6A6A666F8
+:100B900095A6A6AAA6A6A6A6A600A6A6A6A6A666E8
+:100BA00095A6A6AAA6A6A6A6A6A600A6A6A6A666D8
+:100BB00095A6A6AAA6A6A6A6A6A6A600A6A6A666C8
+:100BC00095A6A6AAA6A6A6A6A6A6A6A600A6A666B8
+:100BD00095A6A6AAA6A6A6A6A6A6A6A6A600A666A8
+:100BE0009526262A26262626262626262626006618
+:100BF0009526262A25252525252525252525260052
+:100C000000AAAAAA969696AAAAAAAAAAAAA6AA00D8
+:100C10000000A6AAA6A6A6A6A6A6A6A6A6A6A60062
+:100C200000A600AAA6A6A6A6A6A6A6A6A6A6A60052
+:100C300000A6A600A6A6A6A6A6A6A6A6A6A6A60046
+:100C400000A6A6AA00A6A6A6A6A6A6A6A6A6A60032
+:100C500000A6A6AAA600A6A6A6A6A6A6A6A6A60022
+:100C600000A6A6AAA6A600A6A6A6A6A6A6A6A60012
+:100C700000A6A6AAA6A6A600A6A6A6A6A6A6A60002
+:100C800000A6A6AAA6A6A6A600A6A6A6A6A6A600F2
+:100C900000A6A6AAA6A6A6A6A600A6A6A6A6A600E2
+:100CA00000A6A6AAA6A6A6A6A6A600A6A6A6A600D2
+:100CB00000A6A6AAA6A6A6A6A6A6A600A6A6A600C2
+:100CC00000A6A6AAA6A6A6A6A6A6A6A600A6A600B2
+:100CD00000A6A6AAA6A6A6A6A6A6A6A6A600A600A2
+:100CE00000A6A6AA96A6A6A6A6A6A6A6A6A60000A2
+:100CF0000026262A252525252525252525252600E6
+:100D000000AAAAAA9696AAAAAAAAAAAAAAAAAA00BF
+:100D10000000A6AAA6A6A6A6A6A6AAA6A6A6A6005D
+:100D200000A600AAA6A6A6A6A6A6A6A6A6A6A60051
+:100D300000A6A600A6A6A6A6A6A6A6A6A6A6A60045
+:100D400000A6A6AA00A6A6A6A6A6A6A6A6A6A60031
+:100D500000A6A6AAA600A6A6A6A6A6A6A6A6A60021
+:100D600000A6A6AAA6A600A6A6A6A6A6A6A6A60011
+:100D700000A6A6AAA6A6A600A6A6A6A6A6A6A60001
+:100D800000A6A6AAA6A6A6A600A6A6A6A6A6A600F1
+:100D900000A6A6AAA6A6A6A6A600A6A6A6A6A600E1
+:100DA00000A6A6AAA6A6A6A6A6A600A6A6A6A600D1
+:100DB00000A6A6AAA6A6A6A6A6A6A600A6A6A600C1
+:100DC00000A6A6AAA6A6A6A6A6A6A6A600A6A600B1
+:100DD00000A6A6AA96A6A6A6A6A6A6A6A600A600B1
+:100DE00000A6A6AA96A6A6A6A6A6A6A6A6A60000A1
+:100DF00000A6A6AAA5A5A5A5A5A6A6A6A6A5A600E1
+:100E000000AAAA2A161A2A2A2A2A2A2A2A2A2A6A50
+:100E10009500A62A2626262626262A262626266661
+:100E200095A6002A26262626262626262626266655
+:100E300095A6A600262626262626262626262666C9
+:100E400095A6A62A002626262626262626262666B5
+:100E500095A6A62A260026262626262626262666A5
+:100E600095A6A62A26260026262626262626266695
+:100E700095A6A62A26262600262626262626266685
+:100E800095A6A62A26262626002626262626266675
+:100E900095A6A62A26262626260026262626266665
+:100EA00095A6A62A26262626262600262626266655
+:100EB00095A6A62A26262626262626002626266645
+:100EC00095A6A62A26262626262626260026266635
+:100ED00095A6A62A16262626262626262600266635
+:100EE00095A6A62A16262626262626262626006625
+:100EF00095A6A62A2525252526262626262526004A
+:100F000000AAAA2A1A1A2A2A2A2A2A2A2A2A2A6A4B
+:100F10009500AA2A26262626262A2A2A2A262A664C
+:100F200095A6002A2626262626262A262626266650
+:100F300095A6AA00262626262626262626262666C4
+:100F400095A6AA2A002626262626262626262666B0
+:100F500095A6AA2A260026262626262626262666A0
+:100F600095A6AA2A162600262626262626262666A0
+:100F700095A6AA2A16262600262626262626266690
+:100F800095A6AA2A16262626002626262626266680
+:100F900095A6AA2A16262626260026262626266670
+:100FA00095A6AA2A16262626262600262626266660
+:100FB00095A6AA2A16262626262626002626266650
+:100FC00095A6AA2A16262626262626260026266640
+:100FD00095A6AA2A16262626262626262600266630
+:100FE00095A6AA2A16262626262626262626006620
+:100FF00095A6AA2A15252626262626262626260052
+:1010000000AAAA2A1A2A2A2A2A2A2A2A2A2A2A00A4
+:101010000000AA2A262626262A2A2A2A2A262A0042
+:1010200000A6002A2626262626262A26262626004A
+:1010300000A6AA00262626262626262626262600BE
+:1010400000A6AA2A002626262626262626262600AA
+:1010500000A6AA2A160026262626262626262600AA
+:1010600000A6AA2A1626002626262626262626009A
+:1010700000A6AA2A1626260026262626262626008A
+:1010800000A6AA2A1626262600262626262626007A
+:1010900000A6AA2A1626262626002626262626006A
+:1010A00000A6AA2A1626262626260026262626005A
+:1010B00000A6AA2A1626262626262600262626004A
+:1010C00000A6AA2A1626262626262626002626003A
+:1010D00000A6AA2A1626262626262A262600260026
+:1010E00000A6AA2A1626262626262626262600001A
+:1010F00040A6AA2A152626262626262626262600A5
+:1011000000AAAAAA1A2A2A2A2A2A2A2A2A2A2A0023
+:101110000000AAAA262626262A2A2A2A2A2A2A00BD
+:1011200000A600AA26262626262A2A2A2A262A00B9
+:1011300000A6AA002626262626262A2626262A00B5
+:1011400000A6AAAA0026262626262A2626262A0021
+:1011500000A6AAAA1600262626262A2626262A0021
+:1011600000A6AAAA1626002626262A2626262A0011
+:1011700000A6AAAA1626260026262A2626262A0001
+:1011800000A6AAAA162626260026262626262A00F5
+:1011900000A6AAAA162626262600262626262A00E5
+:1011A00000A6AAAA162626262626002626262A00D5
+:1011B00000A6AAAA162626262626260026262A00C5
+:1011C00000A6AAAA162626262626262600262A00B5
+:1011D00000A6AAAA1626262626262A2626002A00A1
+:1011E00000A6AAAA1616262626262A2626260000A5
+:1011F00040A6AAAA162626262626262626262A001F
+:1012000000AAAAAA1A2A2A2A2A2A2A2A2A2A2A6AB8
+:101210009500AAAA2626262A2A2A2A2A2A2A2A66BD
+:1012200095A600AA262626262A2A2A2A2A262A66B9
+:1012300095A6AA001626262626262A2626262A66C9
+:1012400095A6AAAA0026262626262A2626262A6625
+:1012500095A6AAAA1600262626262A2626262A6625
+:1012600095A6AAAA1626002626262A2626262A6615
+:1012700095A6AAAA1626260026262A2626262A6605
+:1012800095A6AAAA1626262600262A2626262A66F5
+:1012900095A6AAAA1626262626002A2626262A66E5
+:1012A00095A6AAAA162626262626002626262A66D9
+:1012B00095A6AAAA1626262626262A0026262A66C5
+:1012C00095A6AAAA1626262626262A2600262A66B5
+:1012D00095A6AAAA16162626262A2A2A2A002A66A9
+:1012E00095A6AAAA1616262626262A2626260066A9
+:1012F00015A6AAAA162626262626262626262A0049
+:1013000000AAAAAA2A2A2A2A2A2A2A2A2A2A2A6AA7
+:101310009500AAAA2626262A2A2A2A2A2A2A2A66BC
+:1013200095AA00AA262626262A2A2A2A2A2A2A66B0
+:1013300095AAAA0016262626262A2A2A2A262A66B8
+:1013400095AAAAAA00262626262A2A2A2A262A6614
+:1013500095AAAAAA16002626262A2A2A2A262A6614
+:1013600095AAAAAA16260026262A2A2A2A262A6604
+:1013700095AAAAAA16262600262A2A2A2A262A66F4
+:1013800095AAAAAA1626262600262A2626262A66F0
+:1013900095AAAAAA1626262626002A2626262A66E0
+:1013A00095AAAAAA162626262626002626262A66D4
+:1013B00095AAAAAA1626262626262A0026262A66C0
+:1013C00095AAAAAA1626262626262A2600262A66B0
+:1013D00095AAAAAA161626262A2A2A2A2A002A66A0
+:1013E00095AAAAAA16162626262A2A2A2A26006698
+:1013F00015AAAAAA1626262626262A2626262A0040
+:1014000000AAAAAA2A2A2A2A2A2A2A2A2A2A2A0010
+:101410000000AAAA26262A2A2A2A2A2A2A2A2A00B2
+:1014200000AA00AA1626262A2A2A2A2A2A2A2A00B6
+:1014300000AAAA00162626262A2A2A2A2A262A00AE
+:1014400000AAAAAA002626262A2A2A2A2A262A000A
+:1014500000AAAAAA160026262A2A2A2A2A262A000A
+:1014600000AAAAAA161600262A2A2A2A2A262A000A
+:1014700000AAAAAA161626002A2A2A2A2A262A00FA
+:1014800000AAAAAA16162626002A2A2A2A262A00EE
+:1014900000AAAAAA1616262626002A2A2A262A00E2
+:1014A00000AAAAAA16162626262A002A2A262A00D2
+:1014B00000AAAAAA16162626262A2A002A262A00C2
+:1014C00000AAAAAA16162626262A2A2A00262A00B2
+:1014D00000AAAAAA161626262A2A2A2A2A002A009A
+:1014E00000AAAAAA161616262A2A2A2A2A2600009E
+:1014F00040AAAAAA1616262626262A2626262A0024
+:1015000000AAAAAAAA2A2A2A2A2A2A2A2A2A2A008F
+:101510000000AAAAA62A2A2A2A2A2A2A2A2A2A002D
+:10152000009A00AA9626262A2A2A2A2A2A2A2A0045
+:10153000009AAA00962626262A2A2A2A2A2A2A0039
+:10154000009AAAAA002626262A2A2A2A2A2A2A0015
+:10155000009AAAAA960026262A2A2A2A2A2A2A0095
+:10156000009AAAAA961600262A2A2A2A2A2A2A0095
+:10157000009AAAAA961626002A2A2A2A2A262A0089
+:10158000009AAAAA96162626002A2A2A2A262A007D
+:10159000009AAAAA961626262A002A2A2A262A006D
+:1015A000009AAAAA961626262A2A002A2A262A005D
+:1015B000009AAAAA961626262A2A2A002A262A004D
+:1015C000009AAAAA961626262A2A2A2A00262A003D
+:1015D000009AAAAA9616162A2A2A2A2A2A002A0035
+:1015E000009AAAAA961616262A2A2A2A2A2A000029
+:1015F000409AAAAA96162626262A2A2A2A262A00A7
+:1016000000AAAAAAAA2A2A2A2A2A2A2A2A2A2A6A24
+:101610009500AAAA962A2A2A2A2A2A2A2A2A2A6641
+:10162000959A00AA96262A2A2A2A2A2A2A2A2A6645
+:10163000959AAA009626262A2A2A2A2A2A2A2A6639
+:10164000959AAAAA0016262A2A2A2A2A2A2A2A6625
+:10165000959AAAAA9600262A2A2A2A2A2A2A2A6695
+:10166000959AAAAA9616002A2A2A2A2A2A2A2A6695
+:10167000959AAAAA961626002A2A2A2A2A2A2A6689
+:10168000959AAAAA96162626002A2A2A2A2A2A667D
+:10169000959AAAAA961626262A002A2A2A2A2A666D
+:1016A000959AAAAA961626262A2A002A2A2A2A665D
+:1016B000959AAAAA961626262A2A2A002A2A2A664D
+:1016C000959AAAAA961626262A2A2A2A002A2A663D
+:1016D000959AAAAA9616162A2A2A2A2A2A002A6639
+:1016E000959AAAAA9616162A2A2A2A2A2A2A006629
+:1016F000159AAAAA961626262A2A2A2A2A262A00CD
+:1017000000AAAAAAAAAA2A2A2A2A2A2A2A2A2A6AA3
+:101710009500AAAA9AAA2A2A2A2A2A2A2A2A2A66BC
+:10172000959A00AA96AA2A2A2A2A2A2A2A2A2A66C0
+:10173000959AAA009696262A2A2A2A2A2A2A2A66C8
+:10174000959AAAAA0096262A2A2A2A2A2A2A2A66A4
+:10175000959AAAAA9600262A2A2A2A2A2A2A2A6694
+:10176000959AAAAA9696002A2A2A2A2A2A2A2A6614
+:10177000959AAAAA969616002A2A2A2A2A2A2A6618
+:10178000959AAAAA9696162A002A2A2A2A2A2A6608
+:10179000959AAAAA9696162A2A002A2A2A2A2A66F8
+:1017A000959AAAAA9696162A2A2A002A2A2A2A66E8
+:1017B000959AAAAA9696162A2A2A2A002A2A2A66D8
+:1017C000959AAAAA9696162A2A2A2A2A002A2A66C8
+:1017D000959AAAAA96961A2A2A2A2A2A2A002A66B4
+:1017E000959AAAAA9696161A2A2A2A2A2A2A0066B8
+:1017F000159AAAAA969616262A2A2A2A2A2A2A0058
+:1018000000AAAAAAAAAA2A2A2A2A2A2A2A2A2A000C
+:101810000000AAAA9AAA2A2A2A2A2A2A2A2A2A00B6
+:10182000009A00AA96AA2A2A2A2A2A2A2A2A2A00BA
+:10183000009AAA0096962A2A2A2A2A2A2A2A2A00BE
+:10184000009AAAAA00962A2A2A2A2A2A2A2A2A009A
+:10185000009AAAAA96001A2A2A2A2A2A2A2A2A009A
+:10186000009AAAAA9696002A2A2A2A2A2A2A2A000E
+:10187000009AAAAA96961A002A2A2A2A2A2A2A000E
+:10188000009AAAAA9696162A002A2A2A2A2A2A0002
+:10189000009AAAAA9696162A2A002A2A2A2A2A00F2
+:1018A000009AAAAA9696162A2A2A002A2A2A2A00E2
+:1018B000009AAAAA9696162A2A2A2A002A2A2A00D2
+:1018C000009AAAAA9696162A2A2A2A2A002A2A00C2
+:1018D000009AAAAA969A1A1A2A2A2A2A2A002A00BA
+:1018E000009AAAAA96961A1A2A2A2A2A2A2A0000AE
+:1018F000409AAAAA9696162A2A2A2A2A2A2A2A0028
+:1019000000AAAAAAAAAAAA2A2A2A2A2A2A2A2A008B
+:1019100000009AAA9AAAAA2A2A2A2A2A2A2A2A0045
+:10192000009A00AA9A9AAA2A2A2A2A2A2A2A2A0045
+:10193000009A9A00969AAA2A2A2A2A2A2A2A2A0049
+:10194000009A9AAA009A9A2A2A2A2A2A2A2A2A0035
+:10195000009A9AAA96009A2A2A2A2A2A2A2A2A0029
+:10196000009A9AAA969A002A2A2A2A2A2A2A2A0019
+:10197000009A9AAA969A9A002A2A2A2A2A2A2A0099
+:10198000009A9AAA96969A2A002A2A2A2A2A2A008D
+:10199000009A9AAA96969A2A2A002A2A2A2A2A007D
+:1019A000009A9AAA96969A2A2A2A002A2A2A2A006D
+:1019B000009A9AAA96969A2A2A2A2A002A2A2A005D
+:1019C000009A9AAA96969A2A2A2A2A2A002A2A004D
+:1019D000009A9AAA969A9A1A2A2A2A2A2A002A0049
+:1019E000009A9AAA969A9A1A2A2A2A2A2A2A000039
+:1019F000409A9AAA9696962A2A2A2A2A2A2A2A00B7
+:101A000000AAAAAAAAAAAAAA2A2A2A2A2A2A2A6AA0
+:101A100095009AAA9AAAAAAA2A2A2A2A2A2A2A6AC5
+:101A2000959A00AA9A9AAAAA2A2A2A2A2A2A2A6AC5
+:101A3000959A9A00969A9AAA2A2A2A2A2A2A2A6AD9
+:101A4000959A9AAA009A9AAA2A2A2A2A2A2A2A6AB5
+:101A5000959A9AAA96009AAA2A2A2A2A2A2A2A6AA9
+:101A6000959A9AAA969A009A2A2A2A2A2A2A2A6AA9
+:101A7000959A9AAA969A9A002A2A2A2A2A2A2A6A99
+:101A8000959A9AAA969A9A9A002A2A2A2A2A2A6A19
+:101A9000959A9AAA969A9A9A2A002A2A2A2A2A6A09
+:101AA000959A9AAA969A9A9A2A2A002A2A2A2A6AF9
+:101AB000959A9AAA969A9A9A2A2A2A002A2A2A6AE9
+:101AC000959A9AAA969A9A9A2A2A2A2A002A2A6AD9
+:101AD000959A9AAA9A9A9A9A2A2A2A2A2A002A6AC5
+:101AE000959A9AAA969A9A9A1A2A2A2A2A2A006AC9
+:101AF000159A9AAA96969A9A2A2A2A2A2A2A2A006D
+:101B000000AAAAAAAAAAAAAAAA2A2A2A2A2A2A6A1F
+:101B100095009AAA9A9AAAAAAA2A2A2A2A2A2A6A54
+:101B2000959A00AA9A9AAAAAAA2A2A2A2A2A2A6A44
+:101B3000959A9A009A9A9AAAAA2A2A2A2A2A2A6A54
+:101B4000959A9AAA009A9AAAAA2A2A2A2A2A2A6A34
+:101B5000959A9AAA9A009A9AAA2A2A2A2A2A2A6A34
+:101B6000959A9AAA9A9A009AAA2A2A2A2A2A2A6A24
+:101B7000959A9AAA9A9A9A00AA2A2A2A2A2A2A6A14
+:101B8000959A9AAA969A9A9A002A2A2A2A2A2A6A18
+:101B9000959A9AAA969A9A9AAA002A2A2A2A2A6A88
+:101BA000959A9AAA969A9A9AAA2A002A2A2A2A6A78
+:101BB000959A9AAA969A9A9AAA2A2A002A2A2A6A68
+:101BC000959A9AAA969A9A9AAA2A2A2A002A2A6A58
+:101BD000959A9AAA9A9A9A9A9A2A2A2A2A002A6A54
+:101BE000959A9AAA9A9A9A9A9A2A2A2A2A2A006A44
+:101BF000159A9AAA969A9A9AAA2A2A2A2A2A2A00E8
+:101C000000A9A9A9AAA8A8A8A8282828282828009F
+:101C1000400099A99A98A8A8A82828282828280028
+:101C2000409900A99A9898A8A82828282828280028
+:101C3000409999009A9898A8A82828282828280028
+:101C4000409999A900989898A82828282828280019
+:101C5000409999A99A009898A82828282828280007
+:101C6000409999A99A980098A828282828282800F7
+:101C7000409999A99A989800A828282828282800E7
+:101C8000409999A99A9898980028282828282800E7
+:101C9000409999A99A989898A80028282828280057
+:101CA000409999A99A989898A82800282828280047
+:101CB000409999A99A989898A82828002828280037
+:101CC000409999A99A989898A82828280028280027
+:101CD000409999A99A989898982828282800280027
+:101CE000409999A99A989898981828282828000027
+:101CF000409999A996989898A828282828282800D3
+:101D000000A9A9A9AAA8A8A8A8A82828A82828009E
+:101D1000400099A99A98A8A8A8A82828A828280027
+:101D2000409900A99A9898A8A8A82828A828280027
+:101D3000409999009A989898A8A82828A828280037
+:101D4000409999A900989898A8A82828A828280018
+:101D5000409999A99A009898A8A82828A828280006
+:101D6000409999A99A98009898A82828A828280006
+:101D7000409999A99A98980098A82828A8282800F6
+:101D8000409999A99A98989800A82828A8282800E6
+:101D9000409999A99A98989898002828A8282800E6
+:101DA000409999A99A98989898A80028A828280056
+:101DB000409999A99A98989898A82800A828280046
+:101DC000409999A99A98989898A8282800282800B6
+:101DD000409999A99A98989898982828A800280036
+:101DE000409999A99A98989898982828A828000026
+:101DF000409999A99A98989898A82828A8282800DE
+:101E000000A9A9A9AAAAA8A8A8A8A8282828286A31
+:101E1000150099A99A9A98A8A8A8A8282828286AF5
+:101E2000159900A99A9A98A8A8A8A8282828286AE5
+:101E3000159999009A9A9898A8A8A8282828286AF5
+:101E4000159999A9009A9898A8A8A8282828286AD6
+:101E5000159999A99A00989898A8A8282828286AD6
+:101E6000159999A99A9A009898A8A8282828286AC4
+:101E7000159999A99A9A980098A8A8282828286AB4
+:101E8000159999A99A9A989800A8A8282828286AA4
+:101E9000159999A99A9A98989800A8282828286AA4
+:101EA000159999A99A9A989898A800282828286A94
+:101EB000159999A99A9A989898A8A8002828286A04
+:101EC000159999A99A9A989898A8A8280028286AF4
+:101ED000159999A99A9A98989898A8282800286AF4
+:101EE000159999A99A9A9898989888282828006A04
+:101EF000159999A99A9A989898A8A8282828280006
+:101F000000A9A9A9AAAAA8A8A8A8A8A82828286AB0
+:101F1000150099999A9A98A8A8A8A8A82828286A84
+:101F2000159900999A9A9898A8A8A8A82828286A84
+:101F3000159999009A9A9898A8A8A8A82828286A74
+:101F400015999999009A989898A8A8A82828286A75
+:101F5000159999999A00989898A8A8A82828286A65
+:101F6000159999999A9A00989898A8A82828286A63
+:101F7000159999999A9A98009898A8A82828286A53
+:101F8000159999999A9A98980098A8A82828286A43
+:101F9000159999999A9A98989800A8A82828286A33
+:101FA000159999999A9A9898989800A82828286A33
+:101FB000159999999A9A98989898A8002828286A23
+:101FC000159999999A9A98989898A8A80028286A93
+:101FD000159999999A9A9898989888A82800286AA3
+:101FE000159999999A9A9898989898A82828006A83
+:101FF000159999999A9A98989898A8A828282800A5
+:1020000000A9A9A9AAAAAAA8A8A8A8A8A8A8280017
+:10201000400099999A9A9AA8A8A8A8A8A8A82800C0
+:10202000409900999A9A9A98A8A8A8A8A8A82800C0
+:10203000409999009A9A9A9898A8A8A8A8A82800C0
+:1020400040999999009A9A9898A8A8A8A8A82800B1
+:10205000409999999A009A989898A8A8A8A82800B1
+:10206000409999999A9A00989898A8A8A8A82800A1
+:10207000409999999A9A9A009898A8A8A8A828008F
+:10208000409999999A9A9A980098A8A8A8A828007F
+:10209000409999999A9A9A989800A8A8A8A828006F
+:1020A000409999999A9A9A98989800A8A8A828006F
+:1020B000409999999A9A9A989898A800A8A828005F
+:1020C000409999999A9A9A989898A8A800A828004F
+:1020D000409999999A9A9A98989898A8A80028004F
+:1020E000409999999A9A9A9898989898A8A80000CF
+:1020F000409999999A9A9A989898A8A8A8A8280077
+:10210000006969696A6A6A68686868686868680016
+:10211000400059595A5A5A5868686868686868008F
+:10212000405900595A5A5A5868686868686868007F
+:10213000405959005A5A5A5858686868686868007F
+:1021400040595959005A5A58585868686868680080
+:10215000405959595A005A58585868686868680070
+:10216000405959595A5A0058585848686868680080
+:10217000405959595A5A5A0058584868686868006E
+:10218000405959595A5A5A5800584868686868005E
+:10219000405959595A5A5A5858004868686868004E
+:1021A000405959595A5A5A5858580068686868002E
+:1021B000405959595A5A5A5858584800686868003E
+:1021C000405959595A5A5A5858584868006868002E
+:1021D000405959595A5A5A5858585858680068001E
+:1021E000405959595A5A5A5858585858686800000E
+:1021F000405959595A5A5A58585848686868680096
+:10220000006969696A6A6A6A686868686868686AA9
+:10221000150059595A5A5A5A686868686868686A4D
+:10222000155900595A5A5A5A586868686868686A4D
+:10223000155959005A5A5A5A585868686868686A4D
+:1022400015595959005A5A5A585868686868686A3E
+:10225000155959595A005A5A585848686868686A4E
+:10226000155959595A5A005A585858686868686A2E
+:10227000155959595A5A5A00585858686868686A1E
+:10228000155959595A5A5A5A005858686868686A0C
+:10229000155959595A5A5A5A580058686868686AFC
+:1022A000155959595A5A5A5A585800686868686AEC
+:1022B000155959595A5A5A5A585858006868686AEC
+:1022C000155959595A5A5A5A585858680068686ADC
+:1022D000155959595A5A5A5A585858586800686ADC
+:1022E000155959595A5A5A5A585858585868006ADC
+:1022F000155959595A5A5A5A5858586868686800AE
+:10230000006969696A6A6A6A6A6868686868686AA6
+:10231000150059595A5A5A5A6A6868686868686A4A
+:10232000155900595A5A5A5A5A6868686868686A4A
+:10233000155959005A5A5A5A5A5868686868686A4A
+:1023400015595959005A5A5A5A5848686868686A5B
+:10235000155959595A005A5A5A5858686868686A3B
+:10236000155959595A5A005A5A5858586868686A3B
+:10237000155959595A5A5A005A5858586868686A2B
+:10238000155959595A5A5A5A005858586868686A1B
+:10239000155959595A5A5A5A5A0058586868686A09
+:1023A000155959595A5A5A5A5A5800586868686AF9
+:1023B000155959595A5A5A5A5A5858006868686AE9
+:1023C000155959595A5A5A5A5A5858580068686AE9
+:1023D000155959595A5A5A5A5A5858585800686AE9
+:1023E000155959595A5A5A5A5A5858585868006AD9
+:1023F000155959595A5A5A5A5A58585868686800BB
+:10240000006969696A6A6A6A6A68686868686840CF
+:10241000400059595A5A5A5A5A6868686868684058
+:10242000405900595A5A5A5A5A5868686868684058
+:10243000405959005A5A5A5A5A5848686868684068
+:1024400040595959005A5A5A5A5858686868684049
+:10245000405959595A005A5A5A5858586868684049
+:10246000405959595A5A005A5A5858586868684039
+:10247000405959595A5A5A005A5858586868684029
+:10248000405959595A5A5A5A005858586868684019
+:10249000405959595A5A5A5A5A0058586868684007
+:1024A000405959595A5A5A5A5A58005868686840F7
+:1024B000405959595A5A5A5A5A58580068686840E7
+:1024C000405959595A5A5A5A5A58585800686840E7
+:1024D000405959595A5A5A5A5A58585858006840E7
+:1024E000405959595A5A5A5A5A58585858680040D7
+:1024F000405959595A5A5A5A5A585858686868008F
+:10250000006969696A6A6A6A6A6A686868686840CC
+:10251000400059595A5A5A5A5A6A68686868684055
+:10252000405900595A5A5A5A5A5A68686868684055
+:10253000405959005A5A5A5A5A5A58686868684055
+:1025400040595959005A5A5A5A5A58586868684056
+:10255000405959595A005A5A5A5A58586868684046
+:10256000405959595A5A005A5A5A58585868684046
+:10257000405959595A5A5A005A5A58585868684036
+:10258000405959595A5A5A5A005A58585868684026
+:10259000405959595A5A5A5A5A0058585868684016
+:1025A000405959595A5A5A5A5A5A00585868684004
+:1025B000405959595A5A5A5A5A5A580058686840F4
+:1025C000405959595A5A5A5A5A5A585800686840E4
+:1025D000405959595A5A5A5A5A5A585858006840E4
+:1025E000405959595A5A5A5A5A5A585858680040D4
+:1025F000405959595A5A5A5A5A5A5858586868009C
+:10260000006969696A6A6A6A6A6A6868686868AA61
+:10261000150059595A5A5A5A5A5A6868686868AA25
+:10262000155900595A5A5A5A5A5A4868686868AA35
+:10263000155959005A5A5A5A5A5A5858686868AA25
+:1026400015595959005A5A5A5A5A5858686868AA16
+:10265000155959595A005A5A5A5A5858586868AA16
+:10266000155959595A5A005A5A5A5858586868AA06
+:10267000155959595A5A5A005A5A5858586868AAF6
+:10268000155959595A5A5A5A005A5858586868AAE6
+:10269000155959595A5A5A5A5A005858586868AAD6
+:1026A000155959595A5A5A5A5A5A0058586868AAC4
+:1026B000155959595A5A5A5A5A5A5800586868AAB4
+:1026C000155959595A5A5A5A5A5A5858006868AAA4
+:1026D000155959595A5A5A5A5A5A5858580068AAA4
+:1026E000155959595A5A5A5A5A5A5858585800AAA4
+:1026F000155959595A5A5A5A5A5A585858686800C6
+:10270000006969696A6A6A6A6A6A6A68686868AA5E
+:10271000150059595A5A5A5A5A5A6A68686868AA22
+:10272000155900595A5A5A5A5A5A5A68686868AA22
+:10273000155959005A5A5A5A5A5A5A58686868AA22
+:1027400015595959005A5A5A5A5A5A58586868AA23
+:10275000155959595A005A5A5A5A5A58586868AA13
+:10276000155959595A5A005A5A5A5A58586868AA03
+:10277000155959595A5A5A005A5A5A58586868AAF3
+:10278000155959595A5A5A5A005A5A58586868AAE3
+:10279000155959595A5A5A5A5A005A58586868AAD3
+:1027A000155959595A5A5A5A5A5A0058586868AAC3
+:1027B000155959595A5A5A5A5A5A5A00586868AAB1
+:1027C000155959595A5A5A5A5A5A5A58006868AAA1
+:1027D000155959595A5A5A5A5A5A5A58580068AAA1
+:1027E000155959595A5A5A5A5A5A5A58585800AAA1
+:1027F000155959595A5A5A5A5A5A5A5858686800C3
+:10280000006565656A6262626262626060606080E3
+:10281000400055555A525252525242606060608098
+:10282000405500555A525252525252506060608088
+:10283000405555005A525252525252505060608088
+:10284000405555550052525252525250506060807D
+:10285000405555555A005252525252505060608065
+:10286000405555555A520052525252505060608055
+:10287000405555555A525200525252505060608045
+:10288000405555555A525252005252505060608035
+:10289000405555555A525252520052505060608025
+:1028A000405555555A525252525200505060608015
+:1028B000405555555A525252525252005060608003
+:1028C000405555555A5252525252525000606080F3
+:1028D000405555555A5252525252525050006080F3
+:1028E000405555555A5252525252525050500080F3
+:1028F000405555555A5252525252525050606000F3
+:10290000006565656A6262626262626260606080E0
+:10291000400055555A525252525252626060608085
+:10292000405500555A525252525252526060608085
+:10293000405555005A525252525252525060608085
+:10294000405555550052525252525252506060807A
+:10295000405555555A005252525252525060608062
+:10296000405555555A520052525252525050608062
+:10297000405555555A525200525252525050608052
+:10298000405555555A525252005252525050608042
+:10299000405555555A525252520052525050608032
+:1029A000405555555A525252525200525050608022
+:1029B000405555555A525252525252005050608012
+:1029C000405555555A525252525252520050608000
+:1029D000405555555A5252525252525250006080F0
+:1029E000405555555A5252525252525250500080F0
+:1029F000405555555A525252525252525050600000
+:102A0000006565656A6A6262626262626060602A2D
+:102A1000150055555A5A5252525252526060602A0D
+:102A2000155500555A5A5252525252525060602A0D
+:102A3000155555005A5A5252525252525060602AFD
+:102A400015555555005A5252525252525060602AF2
+:102A5000155555555A005252525252525050602AF2
+:102A6000155555555A5A0052525252525050602ADA
+:102A7000155555555A5A5200525252525050602ACA
+:102A8000155555555A5A5252005252525050602ABA
+:102A9000155555555A5A5252520052525050602AAA
+:102AA000155555555A5A5252525200525050602A9A
+:102AB000155555555A5A5252525252005050602A8A
+:102AC000155555555A5A5252525252520050602A78
+:102AD000155555555A5A5252525252525000602A68
+:102AE000155555555A5A5252525252525050002A68
+:102AF000155555555A5A5252525252525050600022
+:102B0000006565656A6A6262626262626260602A2A
+:102B1000150055555A5A5252525252526260602A0A
+:102B2000155500555A5A5252525252525260602A0A
+:102B3000155555005A5A5252525252525260602AFA
+:102B400015555555005A5252525252525250602AFF
+:102B5000155555555A005252525252525250602AEF
+:102B6000155555555A5A0052525252525250602AD7
+:102B7000155555555A5A5200525252525250602AC7
+:102B8000155555555A5A5252005252525250602AB7
+:102B9000155555555A5A5252520052525250602AA7
+:102BA000155555555A5A5252525200525250602A97
+:102BB000155555555A5A5252525252005250602A87
+:102BC000155555555A5A5252525252520050602A77
+:102BD000155555555A5A5252525252525200602A65
+:102BE000155555555A5A5252525252525250002A65
+:102BF000155555555A5A525252525252525060001F
+:102C0000006565656A6A6A626262626262606080CB
+:102C1000400055555A5A5A52525252525260608090
+:102C2000405500555A5A5A52525252525260608080
+:102C3000405555005A5A5A52525252525250608080
+:102C400040555555005A5A52525252525250608075
+:102C5000405555555A005A52525252525250608065
+:102C6000405555555A5A0052525252525250608055
+:102C7000405555555A5A5A0052525252525060803D
+:102C8000405555555A5A5A5200525252525060802D
+:102C9000405555555A5A5A5252005252525060801D
+:102CA000405555555A5A5A5252520052525060800D
+:102CB000405555555A5A5A525252520052506080FD
+:102CC000405555555A5A5A525252525200506080ED
+:102CD000405555555A5A5A525252525252006080DB
+:102CE000405555555A5A5A525252525252500080DB
+:102CF000405555555A5A5A525252525252506000EB
+:102D0000006565656A6A6A626262626262626080C8
+:102D1000400055555A5A5A5252525252526260808D
+:102D2000405500555A5A5A5252525252526260807D
+:102D3000405555005A5A5A5252525252525260807D
+:102D400040555555005A5A52525252525252608072
+:102D5000405555555A005A52525252525252608062
+:102D6000405555555A5A0052525252525252608052
+:102D7000405555555A5A5A0052525252525260803A
+:102D8000405555555A5A5A5200525252525260802A
+:102D9000405555555A5A5A5252005252525260801A
+:102DA000405555555A5A5A5252520052525260800A
+:102DB000405555555A5A5A525252520052526080FA
+:102DC000405555555A5A5A525252525200526080EA
+:102DD000405555555A5A5A525252525252006080DA
+:102DE000405555555A5A5A525252525252520080D8
+:102DF000405555555A5A5A525252525252526000E8
+:102E00000065656569696969616161616161602A1F
+:102E10001500555559595959515151515161602A0F
+:102E20001555005559595959515151515151602A0F
+:102E30001555550059595959515151515151602AFF
+:102E40001555555500595959515151515151502A03
+:102E50001555555559005959515151515151502AF3
+:102E60001555555559590059515151515151502AE3
+:102E70001555555559595900515151515151502AD3
+:102E80001555555559595959005151515151502ABB
+:102E90001555555559595959510051515151502AAB
+:102EA0001555555559595959515100515151502A9B
+:102EB0001555555559595959515151005151502A8B
+:102EC0001555555559595959515151510051502A7B
+:102ED0001555555559595959515151515100502A6B
+:102EE0001555555559595959515151515151002A5A
+:102EF0001555555559595959515151515151500024
+:102F00000065656569696969696161616160602A17
+:102F10001500555559595959595151515160502A17
+:102F20001555005559595959595151515150502A17
+:102F30001555550059595959595151515150502A07
+:102F40001555555500595959595151515150502AFB
+:102F50001555555559005959595151515150502AEB
+:102F60001555555559590059595151515150502ADB
+:102F70001555555559595900595151515150502ACB
+:102F80001555555559595959005151515150502ABB
+:102F90001555555559595959590051515150502AA3
+:102FA0001555555559595959595100515150502A93
+:102FB0001555555559595959595151005150502A83
+:102FC0001555555559595959595151510050502A73
+:102FD0001555555559595959595151515100502A62
+:102FE0001555555559595959595151515150002A52
+:102FF000155555555959595959515151515050001C
+:103000000055555569494949494141414140408030
+:103010004000555569494949494141414140408035
+:103020004055005569494949494141414140408025
+:103030004055550069494949494141414140408015
+:103040004055555500494949494141414140408019
+:1030500040555555690049494941414141404080E9
+:1030600040555555694900494941414141404080D9
+:1030700040555555694949004941414141404080C9
+:1030800040555555694949490041414141404080B9
+:1030900040555555694949494900414141404080A1
+:1030A0004055555569494949494100414140408091
+:1030B0004055555569494949494141004140408081
+:1030C0004055555569494949494141410040408071
+:1030D0004055555569494949494141414100408060
+:1030E0004055555569494949494141414140008050
+:1030F0004055555569494949494141414140400080
+:103100000055555469494949494941414040408029
+:10311000400055556949494949494141404040802D
+:10312000405500556949494949494141404040801D
+:10313000405555006949494949494141404040800D
+:103140004055555500494949494941414040408011
+:1031500040555555690049494949414140404080E1
+:1031600040555555694900494949414140404080D1
+:1031700040555555694949004949414140404080C1
+:1031800040555555694949490049414140404080B1
+:1031900040555555694949494900414140404080A1
+:1031A0004055555569494949494900414040408089
+:1031B0004055555569494949494941004040408079
+:1031C0004055555569494949494941410040408068
+:1031D0004055555569494949494941414000408058
+:1031E0004055555569494949494941414040008048
+:1031F0004055555569494949494941414040400078
+:1032000000959594A9A98989898981818080802ADE
+:1032100015009595A9A98989898981818080802A4D
+:1032200015950095A9A98989898981818080802A3D
+:1032300015959500A9A98989898981818080802A2D
+:103240001595959500A98989898981818080802A31
+:1032500015959595A9008989898981818080802A21
+:1032600015959595A9A90089898981818080802AF1
+:1032700015959595A9A98900898981818080802AE1
+:1032800015959595A9A98989008981818080802AD1
+:1032900015959595A9A98989890081818080802AC1
+:1032A00015959595A9A98989898900818080802AA9
+:1032B00015959595A9A98989898981008080802A99
+:1032C00015959595A9A98989898981810080802A88
+:1032D00015959595A9A98989898981818000802A78
+:1032E00015959595A9A98989898981818080002A68
+:1032F00015959595A9A98989898981818080800002
+:1033000000959594A9A98989898989808080802AD6
+:1033100015009595A9A98989898989808080802A45
+:1033200015950095A9A98989898989808080802A35
+:1033300015959500A9A98989898989808080802A25
+:103340001595959500A98989898989808080802A29
+:1033500015959595A9008989898989808080802A19
+:1033600015959595A9A90089898989808080802AE9
+:1033700015959595A9A98900898989808080802AD9
+:1033800015959595A9A98989008989808080802AC9
+:1033900015959595A9A98989890089808080802AB9
+:1033A00015959595A9A98989898900808080802AA9
+:1033B00015959595A9A98989898989008080802A90
+:1033C00015959595A9A98989898989800080802A80
+:1033D00015959595A9A98989898989808000802A70
+:1033E00015959595A9A98989898989808080002A60
+:1033F00015959595A9A989898989898080808000FA
+:1034000000959594A9A9A98989898980808080805F
+:1034100040009595A9A9A9898989898080808080A3
+:1034200040950095A9A9A989898989808080808093
+:1034300040959500A9A9A989898989808080808083
+:103440004095959500A9A989898989808080808087
+:1034500040959595A900A989898989808080808077
+:1034600040959595A9A90089898989808080808067
+:1034700040959595A9A9A900898989808080808037
+:1034800040959595A9A9A989008989808080808027
+:1034900040959595A9A9A989890089808080808017
+:1034A00040959595A9A9A989898900808080808007
+:1034B00040959595A9A9A9898989890080808080EE
+:1034C00040959595A9A9A9898989898000808080DE
+:1034D00040959595A9A9A9898989898080008080CE
+:1034E00040959595A9A9A9898989898080800080BE
+:1034F00040959595A9A9A9898989898080808000AE
+:1035000000959594A9A9A989898988888080808057
+:1035100040009595A9A9A98989898888808080809B
+:1035200040950095A9A9A98989898888808080808B
+:1035300040959500A9A9A98989898888808080807B
+:103540004095959500A9A98989898888808080807F
+:1035500040959595A900A98989898888808080806F
+:1035600040959595A9A9008989898888808080805F
+:1035700040959595A9A9A90089898888808080802F
+:1035800040959595A9A9A98900898888808080801F
+:1035900040959595A9A9A98989008888808080800F
+:1035A00040959595A9A9A9898989008880808080FE
+:1035B00040959595A9A9A9898989880080808080EE
+:1035C00040959595A9A9A9898989888800808080D6
+:1035D00040959595A9A9A9898989888880008080C6
+:1035E00040959595A9A9A9898989888880800080B6
+:1035F00040959595A9A9A9898989888880808000A6
+:1036000000959494A9A9A9A9898988888080802A8D
+:1036100015009594A9A9A9A9898988888080802AFC
+:1036200015950094A9A9A9A9898988888080802AEC
+:1036300015959500A9A9A9A9898988888080802ADB
+:103640001595959400A9A9A9898988888080802AE0
+:1036500015959594A900A9A9898988888080802AD0
+:1036600015959594A9A900A9898988888080802AC0
+:1036700015959594A9A9A900898988888080802AB0
+:1036800015959594A9A9A9A9008988888080802A80
+:1036900015959594A9A9A9A9890088888080802A70
+:1036A00015959594A9A9A9A9898900888080802A5F
+:1036B00015959594A9A9A9A9898988008080802A4F
+:1036C00015959594A9A9A9A9898988880080802A37
+:1036D00015959594A9A9A9A9898988888000802A27
+:1036E00015959594A9A9A9A9898988888080002A17
+:1036F00015959594A9A9A9A98989888880808000B1
+:1037000000959494A9A9A9A9898888888880802A85
+:1037100015009594A9A9A9A9898888888880802AF4
+:1037200015950094A9A9A9A9898888888880802AE4
+:1037300015959500A9A9A9A9898888888880802AD3
+:103740001595959400A9A9A9898888888880802AD8
+:1037500015959594A900A9A9898888888880802AC8
+:1037600015959594A9A900A9898888888880802AB8
+:1037700015959594A9A9A900898888888880802AA8
+:1037800015959594A9A9A9A9008888888880802A78
+:1037900015959594A9A9A9A9890088888880802A67
+:1037A00015959594A9A9A9A9898800888880802A57
+:1037B00015959594A9A9A9A9898888008880802A47
+:1037C00015959594A9A9A9A9898888880080802A37
+:1037D00015959594A9A9A9A9898888888800802A1F
+:1037E00015959594A9A9A9A9898888888880002A0F
+:1037F00015959594A9A9A9A98988888888808000A9
+:1038000000959494A9A9A9A9A9888888888080800E
+:1038100040009594A9A9A9A9A98888888880808052
+:1038200040950094A9A9A9A9A98888888880808042
+:1038300040959500A9A9A9A9A98888888880808031
+:103840004095959400A9A9A9A98888888880808036
+:1038500040959594A900A9A9A98888888880808026
+:1038600040959594A9A900A9A98888888880808016
+:1038700040959594A9A9A900A98888888880808006
+:1038800040959594A9A9A9A90088888888808080F6
+:1038900040959594A9A9A9A9A900888888808080C5
+:1038A00040959594A9A9A9A9A988008888808080B5
+:1038B00040959594A9A9A9A9A988880088808080A5
+:1038C00040959594A9A9A9A9A98888880080808095
+:1038D00040959594A9A9A9A9A9888888880080807D
+:1038E00040959594A9A9A9A9A9888888888000806D
+:1038F00040959594A9A9A9A9A9888888888080005D
+:1039000000959494A9A9A9A9A88888888888808006
+:1039100040009594A9A9A9A9A8888888888880804A
+:1039200040950094A9A9A9A9A8888888888880803A
+:1039300040959500A9A9A9A9A88888888888808029
+:103940004095959400A9A9A9A8888888888880802E
+:1039500040959594A900A9A9A8888888888880801E
+:1039600040959594A9A900A9A8888888888880800E
+:1039700040959594A9A9A900A888888888888080FE
+:1039800040959594A9A9A9A90088888888888080ED
+:1039900040959594A9A9A9A9A800888888888080BD
+:1039A00040959594A9A9A9A9A888008888888080AD
+:1039B00040959594A9A9A9A9A8888800888880809D
+:1039C00040959594A9A9A9A9A8888888008880808D
+:1039D00040959594A9A9A9A9A8888888880080807D
+:1039E00040959594A9A9A9A9A88888888888008065
+:1039F00040959594A9A9A9A9A88888888888800055
+:103A000000959494A5A5A5A4A4A484848484802A64
+:103A100015009594A5A5A5A4A4A484848484802AD3
+:103A200015950094A5A5A5A4A4A484848484802AC3
+:103A300015959500A5A5A5A4A4A484848484802AB2
+:103A40001595959400A5A5A4A4A484848484802AB3
+:103A500015959594A500A5A4A4A484848484802AA3
+:103A600015959594A5A500A4A4A484848484802A93
+:103A700015959594A5A5A500A4A484848484802A82
+:103A800015959594A5A5A5A400A484848484802A72
+:103A900015959594A5A5A5A4A40084848484802A62
+:103AA00015959594A5A5A5A4A4A400848484802A32
+:103AB00015959594A5A5A5A4A4A484008484802A22
+:103AC00015959594A5A5A5A4A4A484840084802A12
+:103AD00015959594A5A5A5A4A4A484848400802A02
+:103AE00015959594A5A5A5A4A4A484848484002AEE
+:103AF00015959594A5A5A5A4A4A484848484800088
+:103B000000959494A5A5A5A4A4A484848480802A67
+:103B100015009494A5A5A5A4A4A484848480802AD7
+:103B200015950094A5A5A5A4A4A484848480802AC6
+:103B300015959400A5A5A5A4A4A484848480802AB6
+:103B40001595949400A5A5A4A4A484848480802AB7
+:103B500015959494A500A5A4A4A484848480802AA7
+:103B600015959494A5A500A4A4A484848480802A97
+:103B700015959494A5A5A500A4A484848480802A86
+:103B800015959494A5A5A5A400A484848480802A76
+:103B900015959494A5A5A5A4A40084848480802A66
+:103BA00015959494A5A5A5A4A4A400848480802A36
+:103BB00015959494A5A5A5A4A4A484008480802A26
+:103BC00015959494A5A5A5A4A4A484840080802A16
+:103BD00015959494A5A5A5A4A4A484848400802A02
+:103BE00015959494A5A5A5A4A4A484848480002AF2
+:103BF00015959494A5A5A5A4A4A48484848080008C
+:103C000000959494A5A5A4A4A4A4A48484808080F1
+:103C100040009494A5A5A4A4A4A4A4848480808036
+:103C200040950094A5A5A4A4A4A4A4848480808025
+:103C300040959400A5A5A4A4A4A4A4848480808015
+:103C40004095949400A5A4A4A4A4A4848480808016
+:103C500040959494A500A4A4A4A4A4848480808006
+:103C600040959494A5A500A4A4A4A48484808080F5
+:103C700040959494A5A5A400A4A4A48484808080E5
+:103C800040959494A5A5A4A400A4A48484808080D5
+:103C900040959494A5A5A4A4A400A48484808080C5
+:103CA00040959494A5A5A4A4A4A4008484808080B5
+:103CB00040959494A5A5A4A4A4A4A4008480808085
+:103CC00040959494A5A5A4A4A4A4A4840080808075
+:103CD00040959494A5A5A4A4A4A4A4848400808061
+:103CE00040959494A5A5A4A4A4A4A4848480008051
+:103CF00040959494A5A5A4A4A4A4A4848480800041
+:103D000000949494A5A5A4A4A4A4A48480808080F5
+:103D100040009494A5A5A4A4A4A4A4848080808039
+:103D200040950094A5A5A4A4A4A4A4848080808028
+:103D300040959400A5A5A4A4A4A4A4848080808018
+:103D40004095949400A5A4A4A4A4A4848080808019
+:103D500040959494A500A4A4A4A4A4848080808009
+:103D600040959494A5A500A4A4A4A48480808080F8
+:103D700040959494A5A5A400A4A4A48480808080E8
+:103D800040959494A5A5A4A400A4A48480808080D8
+:103D900040959494A5A5A4A4A400A48480808080C8
+:103DA00040959494A5A5A4A4A4A4008480808080B8
+:103DB00040959494A5A5A4A4A4A4A4008080808088
+:103DC00040959494A5A5A4A4A4A4A4840080808074
+:103DD00040959494A5A5A4A4A4A4A4848000808064
+:103DE00040959494A5A5A4A4A4A4A4848080008054
+:103DF00040959494A5A5A4A4A4A4A4848080800044
+:103E000000949494A5A4A4A4A4A4A4A48080802A2B
+:103E100015009494A5A4A4A4A4A4A4A48080802A9A
+:103E200015950094A5A4A4A4A4A4A4A48080802A89
+:103E300015959400A5A4A4A4A4A4A4A48080802A79
+:103E40001595949400A4A4A4A4A4A4A48080802A7A
+:103E500015959494A500A4A4A4A4A4A48080802A69
+:103E600015959494A5A400A4A4A4A4A48080802A59
+:103E700015959494A5A4A400A4A4A4A48080802A49
+:103E800015959494A5A4A4A400A4A4A48080802A39
+:103E900015959494A5A4A4A4A400A4A48080802A29
+:103EA00015959494A5A4A4A4A4A400A48080802A19
+:103EB00015959494A5A4A4A4A4A4A4008080802A09
+:103EC00015959494A5A4A4A4A4A4A4A40080802AD5
+:103ED00015959494A5A4A4A4A4A4A4A48000802AC5
+:103EE00015959494A5A4A4A4A4A4A4A48080002AB5
+:103EF00015959494A5A4A4A4A4A4A4A4808080004F
+:103F000000949494A5A4A4A4A4A4A4A08080802A2E
+:103F100015009494A5A4A4A4A4A4A4A08080802A9D
+:103F200015950094A5A4A4A4A4A4A4A08080802A8C
+:103F300015959400A5A4A4A4A4A4A4A08080802A7C
+:103F40001595949400A4A4A4A4A4A4A08080802A7D
+:103F500015959494A500A4A4A4A4A4A08080802A6C
+:103F600015959494A5A400A4A4A4A4A08080802A5C
+:103F700015959494A5A4A400A4A4A4A08080802A4C
+:103F800015959494A5A4A4A400A4A4A08080802A3C
+:103F900015959494A5A4A4A4A400A4A08080802A2C
+:103FA00015959494A5A4A4A4A4A400A08080802A1C
+:103FB00015959494A5A4A4A4A4A4A4008080802A08
+:103FC00015959494A5A4A4A4A4A4A4A00080802AD8
+:103FD00015959494A5A4A4A4A4A4A4A08000802AC8
+:103FE00015959494A5A4A4A4A4A4A4A08080002AB8
+:103FF00015959494A5A4A4A4A4A4A4A08080800052
+:1040000000949494A4A4A4A4A4A4A4A0A0808080B8
+:1040100040009494A4A4A4A4A4A4A4A0A0808080FC
+:1040200040940094A4A4A4A4A4A4A4A0A0808080EC
+:1040300040949400A4A4A4A4A4A4A4A0A0808080DC
+:104040004094949400A4A4A4A4A4A4A0A0808080DC
+:1040500040949494A400A4A4A4A4A4A0A0808080CC
+:1040600040949494A4A400A4A4A4A4A0A0808080BC
+:1040700040949494A4A4A400A4A4A4A0A0808080AC
+:1040800040949494A4A4A4A400A4A4A0A08080809C
+:1040900040949494A4A4A4A4A400A4A0A08080808C
+:1040A00040949494A4A4A4A4A4A400A0A08080807C
+:1040B00040949494A4A4A4A4A4A4A400A080808068
+:1040C00040949494A4A4A4A4A4A4A4A00080808058
+:1040D00040949494A4A4A4A4A4A4A4A0A000808028
+:1040E00040949494A4A4A4A4A4A4A4A0A080008018
+:1040F00040949494A4A4A4A4A4A4A4A0A080800008
+:1041000003979797A7A7A7A7A7A7A3A3A38383838B
+:1041100043039797A7A7A7A7A7A7A3A3A3838383CF
+:1041200043970397A7A7A7A7A7A7A3A3A3838383BF
+:1041300043979703A7A7A7A7A7A7A3A3A3838383AF
+:104140004397979703A7A7A7A7A7A3A3A3838383AF
+:1041500043979797A703A7A7A7A7A3A3A38383839F
+:1041600043979797A7A703A7A7A7A3A3A38383838F
+:1041700043979797A7A7A703A7A7A3A3A38383837F
+:1041800043979797A7A7A7A703A7A3A3A38383836F
+:1041900043979797A7A7A7A7A703A3A3A38383835F
+:1041A00043979797A7A7A7A7A7A703A3A38383834B
+:1041B00043979797A7A7A7A7A7A7A303A38383833B
+:1041C00043979797A7A7A7A7A7A7A3A3038383832B
+:1041D00043979797A7A7A7A7A7A7A3A3A3038383FB
+:1041E00043979797A7A7A7A7A7A7A3A3A3830383EB
+:1041F00043979797A7A7A7A7A7A7A3A3A3838303DB
+:1042000000949494A4A4A4A4A4A4A0A0A0A08028F2
+:1042100014009494A4A4A4A4A4A4A0A0A0A0802862
+:1042200014940094A4A4A4A4A4A4A0A0A0A0802852
+:1042300014949400A4A4A4A4A4A4A0A0A0A0802842
+:104240001494949400A4A4A4A4A4A0A0A0A0802842
+:1042500014949494A400A4A4A4A4A0A0A0A0802832
+:1042600014949494A4A400A4A4A4A0A0A0A0802822
+:1042700014949494A4A4A400A4A4A0A0A0A0802812
+:1042800014949494A4A4A4A400A4A0A0A0A0802802
+:1042900014949494A4A4A4A4A400A0A0A0A08028F2
+:1042A00014949494A4A4A4A4A4A400A0A0A08028DE
+:1042B00014949494A4A4A4A4A4A4A000A0A08028CE
+:1042C00014949494A4A4A4A4A4A4A0A000A08028BE
+:1042D00014949494A4A4A4A4A4A4A0A0A0008028AE
+:1042E00014949494A4A4A4A4A4A4A0A0A0A000287E
+:1042F00014949494A4A4A4A4A4A4A0A0A0A0800016
+:104300000054545454545454545050505050002855
+:104310001400545454545454545050505050002885
+:104320001454005454545454545050505050002875
+:104330001454540054545454545050505050002865
+:104340001454545400545454545050505050002855
+:104350001454545454005454545050505050002845
+:104360001454545454540054545050505050002835
+:104370001454545454545400545050505050002825
+:104380001454545454545454005050505050002815
+:104390001454545454545454540050505050002801
+:1043A00014545454545454545450005050500028F1
+:1043B00014545454545454545450500050500028E1
+:1043C00014545454545454545450505000500028D1
+:1043D00014545454545454545450505050000028C1
+:1043E0001454545454545454545050505050002861
+:1043F0001454545454545454545050505050000079
+:10440000005454545454545454505050100000808C
+:104410004000545454545454545050501000008090
+:104420004054005454545454545050501000008080
+:104430004054540054545454545050501000008070
+:104440004054545400545454545050501000008060
+:104450004054545454005454545050501000008050
+:104460004054545454540054545050501000008040
+:104470004054545454545400545050501000008030
+:104480004054545454545454005050501000008020
+:10449000405454545454545454005050100000800C
+:1044A00040545454545454545450005010000080FC
+:1044B00040545454545454545450500010000080EC
+:1044C000405454545454545454505050000000809C
+:1044D000405454545454545454505050100000807C
+:1044E000405454545454545454505050100000806C
+:1044F00040545454545454545450505010000000DC
+:1045000000545450545454545050501010000080D3
+:1045100040005450545454545050501010000080D7
+:1045200040540050545454545050501010000080C7
+:1045300040545400545454545050501010000080B3
+:1045400040545450005454545050501010000080A7
+:104550004054545054005454505050101000008097
+:104560004054545054540054505050101000008087
+:104570004054545054545400505050101000008077
+:104580004054545054545454005050101000008063
+:104590004054545054545454500050101000008053
+:1045A0004054545054545454505000101000008043
+:1045B00040545450545454545050500010000080F3
+:1045C00040545450545454545050501000000080E3
+:1045D00040545450545454545050501010000080C3
+:1045E00040545450545454545050501010000080B3
+:1045F0004054545054545454505050101000000023
+:10460000005454505454545050501010400000283E
+:10461000140054505454545050501010400000286E
+:10462000145400505454545050501010400000285E
+:10463000145454005454545050501010400000284A
+:10464000145454500054545050501010400000283E
+:10465000145454505400545050501010400000282E
+:10466000145454505454005050501010400000281E
+:10467000145454505454540050501010400000280A
+:1046800014545450545454500050101040000028FA
+:1046900014545450545454505000101040000028EA
+:1046A000145454505454545050500010400000289A
+:1046B000145454505454545050501000400000288A
+:1046C00014545450545454505050101000000028AA
+:1046D000145454505454545050501010400000285A
+:1046E000145454505454545050501010400000284A
+:1046F0001454545054545450505010104000000062
+:1047000000545450545454505010101000000028BD
+:1047100014005450545454505010101000000028ED
+:1047200014540050545454505010101000000028DD
+:1047300014545400545454505010101000000028C9
+:1047400014545450005454505010101000000028BD
+:1047500014545450540054505010101000000028AD
+:10476000145454505454005050101010000000289D
+:104770001454545054545400501010100000002889
+:104780001454545054545450001010100000002879
+:104790001454545054545450500010100000002829
+:1047A0001454545054545450501000100000002819
+:1047B0001454545054545450501010000000002809
+:1047C00014545450545454505010101000000028E9
+:1047D00014545450545454505010101000000028D9
+:1047E00014545450545454505010101000000028C9
+:1047F00014545450545454505010101000000000E1
+:104800000054545054545050501010000000008078
+:10481000400054505454505050101000000000807C
+:10482000405400505454505050101000000000806C
+:104830004054540054545050501010000000008058
+:10484000405454500054505050101000000000804C
+:10485000405454505400505050101000000000803C
+:104860004054545054540050501010000000008028
+:104870004054545054545000501010000000008018
+:104880004054545054545050001010000000008008
+:1048900040545450545450505000100000000080B8
+:1048A00040545450545450505010000000000080A8
+:1048B0004054545054545050501010000000008088
+:1048C0004054545054545050501010000000008078
+:1048D0004054545054545050501010000000008068
+:1048E0004054545054545050501010000000008058
+:1048F00040545450545450505010100000000000C8
+:1049000000545050545450501010100000000080BB
+:1049100040005050545450501010100000000080BF
+:1049200040540050545450501010100000000080AB
+:10493000405450005454505010101000000000809B
+:10494000405450500054505010101000000000808F
+:10495000405450505400505010101000000000807F
+:10496000405450505454005010101000000000806B
+:10497000405450505454500010101000000000805B
+:10498000405450505454505000101000000000800B
+:1049900040545050545450501000100000000080FB
+:1049A00040545050545450501010000000000080EB
+:1049B00040545050545450501010100000000080CB
+:1049C00040545050545450501010100000000080BB
+:1049D00040545050545450501010100000000080AB
+:1049E000405450505454505010101000000000809B
+:1049F000405450505454505010101000000000000B
+:104A00000054505054505010101000000000002866
+:104A10001400505054505010101000000000002896
+:104A20001454005054505010101000000000002882
+:104A30001454500054505010101000000000002872
+:104A40001454505000505010101000000000002866
+:104A50001454505054005010101000000000002852
+:104A60001454505054500010101000000000002842
+:104A700014545050545050001010000000000028F2
+:104A800014545050545050100010000000000028E2
+:104A900014545050545050101000000000000028D2
+:104AA00014545050545050101010000000000028B2
+:104AB00014545050545050101010000000000028A2
+:104AC0001454505054505010101000000000002892
+:104AD0001454505054505010101000000000002882
+:104AE0001454505054505010101000000000002872
+:104AF000145450505450501010100000000000008A
+:104B000000545050545010101010000000000028A5
+:104B100014005050545010101010000000000028D5
+:104B200014540050545010101010000000000028C1
+:104B300014545000545010101010000000000028B1
+:104B400014545050005010101010000000000028A5
+:104B50001454505054001010101000000000002891
+:104B60001454505054500010101000000000002841
+:104B70001454505054501000101000000000002831
+:104B80001454505054501010001000000000002821
+:104B90001454505054501010100000000000002811
+:104BA00014545050545010101010000000000028F1
+:104BB00014545050545010101010000000000028E1
+:104BC00014545050545010101010000000000028D1
+:104BD00014545050545010101010000000000028C1
+:104BE00014545050545010101010000000000028B1
+:104BF00014545050545010101010000000000000C9
+:104C00000050505050501010100000000000008064
+:104C10004000505050501010100000000000008064
+:104C20004050005050501010100000000000008054
+:104C30004050500050501010100000000000008044
+:104C40004050505000501010100000000000008034
+:104C50004050505050001010100000000000008024
+:104C600040505050505000101000000000000080D4
+:104C700040505050505010001000000000000080C4
+:104C800040505050505010100000000000000080B4
+:104C90004050505050501010100000000000008094
+:104CA0004050505050501010100000000000008084
+:104CB0004050505050501010100000000000008074
+:104CC0004050505050501010100000000000008064
+:104CD0004050505050501010100000000000008054
+:104CE0004050505050501010100000000000008044
+:104CF00040505050505010101000000000000000B4
+:104D00000C5C5C4C5C1C1C1C1C0C0C0C0C0C0C8CF3
+:104D10004C0C5C4C5C1C1C1C1C0C0C0C0C0C0C8CF3
+:104D20004C5C0C4C5C1C1C1C1C0C0C0C0C0C0C8CE3
+:104D30004C5C5C0C5C1C1C1C1C0C0C0C0C0C0C8CC3
+:104D40004C5C5C4C0C1C1C1C1C0C0C0C0C0C0C8CC3
+:104D50004C5C5C4C5C0C1C1C1C0C0C0C0C0C0C8C73
+:104D60004C5C5C4C5C1C0C1C1C0C0C0C0C0C0C8C63
+:104D70004C5C5C4C5C1C1C0C1C0C0C0C0C0C0C8C53
+:104D80004C5C5C4C5C1C1C1C0C0C0C0C0C0C0C8C43
+:104D90004C5C5C4C5C1C1C1C1C0C0C0C0C0C0C8C23
+:104DA0004C5C5C4C5C1C1C1C1C0C0C0C0C0C0C8C13
+:104DB0004C5C5C4C5C1C1C1C1C0C0C0C0C0C0C8C03
+:104DC0004C5C5C4C5C1C1C1C1C0C0C0C0C0C0C8CF3
+:104DD0004C5C5C4C5C1C1C1C1C0C0C0C0C0C0C8CE3
+:104DE0004C5C5C4C5C1C1C1C1C0C0C0C0C0C0C8CD3
+:104DF0004C5C5C4C5C1C1C1C1C0C0C0C0C0C0C0C43
+:104E00000050504050101010000000000000002022
+:104E10001000504050101010000000000000002052
+:104E20001050004050101010000000000000002042
+:104E30001050500050101010000000000000002022
+:104E40001050504000101010000000000000002022
+:104E500010505040500010100000000000000020D2
+:104E600010505040501000100000000000000020C2
+:104E700010505040501010000000000000000020B2
+:104E80001050504050101010000000000000002092
+:104E90001050504050101010000000000000002082
+:104EA0001050504050101010000000000000002072
+:104EB0001050504050101010000000000000002062
+:104EC0001050504050101010000000000000002052
+:104ED0001050504050101010000000000000002042
+:104EE0001050504050101010000000000000002032
+:104EF0001050504050101010000000000000000042
+:104F00000050504010101010000000000000002061
+:104F10001000504010101010000000000000002091
+:104F20001050004010101010000000000000002081
+:104F30001050500010101010000000000000002061
+:104F40001050504000101010000000000000002021
+:104F50001050504010001010000000000000002011
+:104F60001050504010100010000000000000002001
+:104F700010505040101010000000000000000020F1
+:104F800010505040101010100000000000000020D1
+:104F900010505040101010100000000000000020C1
+:104FA00010505040101010100000000000000020B1
+:104FB00010505040101010100000000000000020A1
+:104FC0001050504010101010000000000000002091
+:104FD0001050504010101010000000000000002081
+:104FE0001050504010101010000000000000002071
+:104FF0001050504010101010000000000000000081
+:105000000050504010101000000000000000008010
+:105010004000504010101000000000000000008010
+:105020004050004010101000000000000000008000
+:1050300040505000101010000000000000000080E0
+:1050400040505040001010000000000000000080A0
+:105050004050504010001000000000000000008090
+:105060004050504010100000000000000000008080
+:105070004050504010101000000000000000008060
+:105080004050504010101000000000000000008050
+:105090004050504010101000000000000000008040
+:1050A0004050504010101000000000000000008030
+:1050B0004050504010101000000000000000008020
+:1050C0004050504010101000000000000000008010
+:1050D0004050504010101000000000000000008000
+:1050E00040505040101010000000000000000080F0
+:1050F0004050504010101000000000000000000060
+:10510000005040401010100000000000000000801F
+:10511000400040401010100000000000000000801F
+:1051200040500040101010000000000000000080FF
+:1051300040504000101010000000000000000080EF
+:1051400040504040001010000000000000000080AF
+:10515000405040401000100000000000000000809F
+:10516000405040401010000000000000000000808F
+:10517000405040401010100000000000000000806F
+:10518000405040401010100000000000000000805F
+:10519000405040401010100000000000000000804F
+:1051A000405040401010100000000000000000803F
+:1051B000405040401010100000000000000000802F
+:1051C000405040401010100000000000000000801F
+:1051D000405040401010100000000000000000800F
+:1051E00040504040101010000000000000000080FF
+:1051F000405040401010100000000000000000006F
+:10520000005040401010000000000000000000208E
+:1052100010004040101000000000000000000020BE
+:10522000105000401010000000000000000000209E
+:10523000105040001010000000000000000000208E
+:10524000105040400010000000000000000000204E
+:10525000105040401000000000000000000000203E
+:10526000105040401010000000000000000000201E
+:10527000105040401010000000000000000000200E
+:1052800010504040101000000000000000000020FE
+:1052900010504040101000000000000000000020EE
+:1052A00010504040101000000000000000000020DE
+:1052B00010504040101000000000000000000020CE
+:1052C00010504040101000000000000000000020BE
+:1052D00010504040101000000000000000000020AE
+:1052E000105040401010000000000000000000209E
+:1052F00010504040101000000000000000000000AE
+:1053000000504000101000000000000000000020CD
+:1053100010004000101000000000000000000020FD
+:1053200010500000101000000000000000000020DD
+:10533000105040001010000000000000000000208D
+:10534000105040000010000000000000000000208D
+:10535000105040001000000000000000000000207D
+:10536000105040001010000000000000000000205D
+:10537000105040001010000000000000000000204D
+:10538000105040001010000000000000000000203D
+:10539000105040001010000000000000000000202D
+:1053A000105040001010000000000000000000201D
+:1053B000105040001010000000000000000000200D
+:1053C00010504000101000000000000000000020FD
+:1053D00010504000101000000000000000000020ED
+:1053E00010504000101000000000000000000020DD
+:1053F00010504000101000000000000000000000ED
+:1054000000500000100000000000000000000080BC
+:1054100040000000100000000000000000000080BC
+:10542000405000001000000000000000000000805C
+:10543000405000001000000000000000000000804C
+:10544000405000000000000000000000000000804C
+:10545000405000001000000000000000000000802C
+:10546000405000001000000000000000000000801C
+:10547000405000001000000000000000000000800C
+:1054800040500000100000000000000000000080FC
+:1054900040500000100000000000000000000080EC
+:1054A00040500000100000000000000000000080DC
+:1054B00040500000100000000000000000000080CC
+:1054C00040500000100000000000000000000080BC
+:1054D00040500000100000000000000000000080AC
+:1054E000405000001000000000000000000000809C
+:1054F000405000001000000000000000000000000C
+:1055000000500000100000000000000000000080BB
+:1055100040000000100000000000000000000080BB
+:10552000405000001000000000000000000000805B
+:10553000405000001000000000000000000000804B
+:10554000405000000000000000000000000000804B
+:10555000405000001000000000000000000000802B
+:10556000405000001000000000000000000000801B
+:10557000405000001000000000000000000000800B
+:1055800040500000100000000000000000000080FB
+:1055900040500000100000000000000000000080EB
+:1055A00040500000100000000000000000000080DB
+:1055B00040500000100000000000000000000080CB
+:1055C00040500000100000000000000000000080BB
+:1055D00040500000100000000000000000000080AB
+:1055E000405000001000000000000000000000809B
+:1055F000405000001000000000000000000000000B
+:10560000000000000000000000000000000000009A
+:10561000303030303030303030303030303030308A
+:10562000000000000000000000000000000000007A
+:10563000000000000000000000000000000000006A
+:10564000000000000000000000000000000000005A
+:10565000000000000000000000000000000000004A
+:10566000000000000000000000000000000000003A
+:10567000000000000000000000000000000000002A
+:10568000000000000000000000000000000000001A
+:10569000000000000000000000000000000000000A
+:1056A00000000000000000000000000000000000FA
+:1056B00000000000000000000000000000000000EA
+:1056C00000000000000000000000000000000000DA
+:1056D00000000000000000000000000000000000CA
+:1056E00000000000000000000000000000000000BA
+:1056F00000000000000000000000000000000000AA
+:105700000A060606A5A5A5A5A5A5A5A5A5A5AAA5BC
+:105710000A050506A5A5A5A5A5A5A5A5A5A5A5A5B3
+:105720000A050506A5A5A5A5A5A5A5A5A5A5A5A5A3
+:105730000A050505A5A5A5A5A5A5A5A5A5A5A5A594
+:105740005A55555505050505A5A5A5A5A5A5A5A5C4
+:105750005A55555505050505A5A5A5A5A5A5A5A5B4
+:105760005A55555505050505A5A5A5A5A5A5A5A5A4
+:105770005A55555505050505A5A5A5A5A5A5A5A594
+:105780005A5555555555555505050505A5A5A5A5C4
+:105790005A5555555555555505050505A5A5A5A5B4
+:1057A0005A5555555555555505050505A5A5A5A5A4
+:1057B0005A5555555555555505050505A5A5A5A594
+:1057C0005A555555555555555555555505050505C4
+:1057D0005A555555555555555555555505050505B4
+:1057E0005A555555555555555555555505050505A4
+:1057F0005A55555555555555555555550505050594
+:105800000A060606A5A5A5A5A5A5A5A5A5A5AAA5BB
+:105810000A050506A5A5A5A5A5A5A5A5A5A5A5A5B2
+:105820000A050506A5A5A5A5A5A5A5A5A5A5A5A5A2
+:105830000A050505A5A5A5A5A5A5A5A5A5A5A5A593
+:105840005A55555505050505A5A5A5A5A5A5A5A5C3
+:105850005A55555505050505A5A5A5A5A5A5A5A5B3
+:105860005A55555505050505A5A5A5A5A5A5A5A5A3
+:105870005A55555505050505A5A5A5A5A5A5A5A593
+:105880005A5555555555555505050505A5A5A5A5C3
+:105890005A5555555555555505050505A5A5A5A5B3
+:1058A0005A5555555555555505050505A5A5A5A5A3
+:1058B0005A5555555555555505050505A5A5A5A593
+:1058C0005A555555555555555555555505050505C3
+:1058D0005A555555555555555555555505050505B3
+:1058E0005A555555555555555555555505050505A3
+:1058F0005A55555555555555555555550505050593
+:105900000006060AA5A5A5A5A5A5A5A5A5A5AAA0C5
+:1059100000050606A5A5A5A5A5A5A5A5A5A5A5A0BF
+:1059200000050506A5A5A5A5A5A5A5A5A5A5A5A0B0
+:1059300000050505A5A5A5A5A5A5A5A5A5A5A5A0A1
+:105940005055555505050505A5A5A5A5A5A5A5A0D1
+:105950005055555505050505A5A5A5A5A5A5A5A0C1
+:105960005055555505050505A5A5A5A5A5A5A5A0B1
+:105970005055555505050505A5A5A5A5A5A5A5A0A1
+:10598000505555551515151505050505A5A5A5A0D1
+:10599000505555551515151505050505A5A5A5A0C1
+:1059A000505555551515151505050505A5A5A5A0B1
+:1059B000505555551515151505050505A5A5A5A0A1
+:1059C00050555555555555555555555505050500D1
+:1059D00050555555555555555555555505050500C1
+:1059E00050555555555555555555555505050500B1
+:1059F00050555555555555555555555505050500A1
+:105A00000006060AA5A5A5A5A5A5A5A5A5A5AAA0C4
+:105A100000050606A5A5A5A5A5A5A5A5A5A5A5A0BE
+:105A200000050506A5A5A5A5A5A5A5A5A5A5A5A0AF
+:105A300000050506A5A5A5A5A5A5A5A5A5A5A5A09F
+:105A40005055555505050505A5A5A5A5A5A5A5A0D0
+:105A50005055555505050505A5A5A5A5A5A5A5A0C0
+:105A60005055555505050505A5A5A5A5A5A5A5A0B0
+:105A70005055555505050505A5A5A5A5A5A5A5A0A0
+:105A8000505555550505050505050505A5A5A5A010
+:105A9000505555550505050505050505A5A5A5A000
+:105AA000505555550505050505050505A5A5A5A0F0
+:105AB000505555550505050505050505A5A5A5A0E0
+:105AC0005055555555555555454545450505050010
+:105AD0005055555555555555454545450505050000
+:105AE00050555555555555554545454505050500F0
+:105AF00050555555555555554545454505050500E0
+:105B00000A06060AA5A5A5A5A5A5A5A5A5A5AAA5B4
+:105B10000A050606A5A5A5A5A5A5A5A5A5A5A6A5AD
+:105B20000A050606A5A5A5A5A5A5A5A5A5A5A5A59E
+:105B30000A050506A5A5A5A5A5A5A5A5A5A5A5A58F
+:105B40005A55555505050505A5A5A5A5A5A5A5A5C0
+:105B50005A55555505050505A5A5A5A5A5A5A5A5B0
+:105B60005A55555505050505A5A5A5A5A5A5A5A5A0
+:105B70005A55555505050505A5A5A5A5A5A5A5A590
+:105B80005A5555550505050505050505A5A5A5A500
+:105B90005A5555550505050505050505A5A5A5A5F0
+:105BA0005A5555550505050505050505A5A5A5A5E0
+:105BB0005A5555550505050505050505A5A5A5A5D0
+:105BC0005A55555555555555050505050505050500
+:105BD0005A555555555555550505050505050505F0
+:105BE0005A555555555555550505050505050505E0
+:105BF0005A555555555555550505050505050505D0
+:105C00000A06060AA5A5A5A5A5A5A5A5A5A5AAA5B3
+:105C10000A050606A5A5A5A5A5A5A5A5A5A5A6A5AC
+:105C20000A050606A5A5A5A5A5A5A5A5A5A5A5A59D
+:105C30000A050506A5A5A5A5A5A5A5A5A5A5A5A58E
+:105C40005A55555605050505A5A5A5A5A5A5A5A5BE
+:105C50005A55555505050505A5A5A5A5A5A5A5A5AF
+:105C60005A55555505050505A5A5A5A5A5A5A5A59F
+:105C70005A55555505050505A5A5A5A5A5A5A5A58F
+:105C80005A5555550505050505050505A5A5A5A5FF
+:105C90005A5555550505050505050505A5A5A5A5EF
+:105CA0005A5555550505050505050505A5A5A5A5DF
+:105CB0005A5555550505050505050505A5A5A5A5CF
+:105CC0005A555555555555550505050505050505FF
+:105CD0005A555555555555550505050505050505EF
+:105CE0005A555555555555550505050505050505DF
+:105CF0005A555555555555550505050505050505CF
+:105D00000006060A95959595A5A5A5A5A5A5AAA001
+:105D10000006060695959595A5A5A5A5A5A5A6A0F9
+:105D20000005060695959595A5A5A5A5A5A5A6A0EA
+:105D30000005050695959595A5A5A5A5A5A5A5A0DC
+:105D40005055555605050505A5A5A5A5A5A5A5A0CC
+:105D50005055555605050505A5A5A5A5A5A5A5A0BC
+:105D60005055555505050505A5A5A5A5A5A5A5A0AD
+:105D70005055555505050505A5A5A5A5A5A5A5A09D
+:105D8000505555550505050505050505A5A5A5A00D
+:105D9000505555550505050505050505A5A5A5A0FD
+:105DA000505555550505050505050505A5A5A5A0ED
+:105DB000505555550505050505050505A5A5A5A0DD
+:105DC000505555550505050505050505050505004D
+:105DD000505555550505050505050505050505003D
+:105DE000505555550505050505050505050505002D
+:105DF000505555550505050505050505050505001D
+:105E00000006060A55555555A5A5A5A5A5A5AAA000
+:105E10000006060655555555A5A5A5A5A5A5A6A0F8
+:105E20000005060655555555A5A5A5A5A5A5A6A0E9
+:105E30000005060655555555A5A5A5A5A5A5A5A0DA
+:105E40005055555605050505A5A5A5A5A5A5A5A0CB
+:105E50005055555605050505A5A5A5A5A5A5A5A0BB
+:105E60005055555605050505A5A5A5A5A5A5A5A0AB
+:105E70005055555505050505A5A5A5A5A5A5A5A09C
+:105E8000505555550505050505050505A5A5A5A00C
+:105E9000505555550505050505050505A5A5A5A0FC
+:105EA000505555550505050505050505A5A5A5A0EC
+:105EB000505555550505050505050505A5A5A5A0DC
+:105EC000505555550505050505050505050505004C
+:105ED000505555550505050505050505050505003C
+:105EE000505555550505050505050505050505002C
+:105EF000505555550505050505050505050505001C
+:105F00000A060A0A45454545A5A5A5A5A5A5AAA52C
+:105F10000A06060645454545A5A5A5A5A5A5A6A528
+:105F20000A06060645454545A5A5A5A5A5A5A6A518
+:105F30000A05060645454545A5A5A5A5A5A5A5A50A
+:105F40005A5555560505050595959595A5A5A5A5FB
+:105F50005A5555560505050595959595A5A5A5A5EB
+:105F60005A5555560505050595959595A5A5A5A5DB
+:105F70005A5555560505050595959595A5A5A5A5CB
+:105F80005A5555550505050505050505858585857C
+:105F90005A5555550505050505050505858585856C
+:105FA0005A5555550505050505050505858585855C
+:105FB0005A5555550505050505050505858585854C
+:105FC0005A5555550505050505050505050505053C
+:105FD0005A5555550505050505050505050505052C
+:105FE0005A5555550505050505050505050505051C
+:105FF0005A5555550505050505050505050505050C
+:106000000A060A0A05050505A5A5A5A5A5A5AAA52B
+:106010000A06060605050505A5A5A5A5A5A5A6A527
+:106020000A06060605050505A5A5A5A5A5A5A6A517
+:106030000A05060605050505A5A5A5A5A5A5A6A508
+:106040000A0506060505050555555555A5A5A5A539
+:106050000A0505060505050555555555A5A5A5A52A
+:106060000A0505060505050555555555A5A5A5A51A
+:106070000A0505060505050555555555A5A5A5A50A
+:106080005A5555560505050505050505050505057A
+:106090005A5555550505050505050505050505056B
+:1060A0005A5555550505050505050505050505055B
+:1060B0005A5555550505050505050505050505054B
+:1060C0005A5555550505050505050505050505053B
+:1060D0005A5555550505050505050505050505052B
+:1060E0005A5555550505050505050505050505051B
+:1060F0005A5555550505050505050505050505050B
+:1061000000060A0A45454545A6A6A6A5A5A5AAA036
+:106110000006060645454545A5A5A5A5A5A5A6A035
+:106120000006060645454545A5A5A5A5A5A5A6A025
+:106130000005060645454545A5A5A5A5A5A5A6A016
+:10614000000506060505050545454545A5A5A5A087
+:10615000000506060505050545454545A5A5A5A077
+:10616000000505060505050545454545A5A5A5A068
+:10617000000505060505050545454545A5A5A5A058
+:1061800000050506050505050505050505050500C8
+:1061900000050506050505050505050505050500B8
+:1061A00000050505050505050505050505050500A9
+:1061B0000005050505050505050505050505050099
+:1061C0000005050505050505050505050505050089
+:1061D0000005050505050505050505050505050079
+:1061E0000005050505050505050505050505050069
+:1061F0000005050505050505050505050505050059
+:1062000000060A0A05050506A6A6A6A6A5A5AAA033
+:106210000006060605050505A5A5A5A5A5A5A6A034
+:106220000006060605050505A5A5A5A5A5A5A6A024
+:106230000006060605050505A5A5A5A5A5A5A6A014
+:10624000000506060505050505050505A5A5A6A085
+:10625000000506060505050505050505A5A5A5A076
+:10626000000506060505050505050505A5A5A5A066
+:10627000000505060505050505050505A5A5A5A057
+:1062800000050506050505050505050505050500C7
+:1062900000050506050505050505050505050500B7
+:1062A00000050506050505050505050505050500A7
+:1062B0000005050505050505050505050505050098
+:1062C0000005050505050505050505050505050088
+:1062D0000005050505050505050505050505050078
+:1062E0000005050505050505050505050505050068
+:1062F0000005050505050505050505050505050058
+:106300000A060A0A05050606A6A6A6A6A5A5AAA522
+:106310000506060605050505A5A5A5A5A5A5A6A529
+:106320000506060605050505A5A5A5A5A5A5A6A519
+:106330000506060605050505A5A5A5A5A5A5A6A509
+:10634000050506060505050545454545A5A5A6A57A
+:10635000050506060505050545454545A5A5A6A56A
+:10636000050506060505050545454545A5A5A5A55B
+:10637000050506060505050545454545A5A5A5A54B
+:1063800005050506050505050505050505050505BC
+:1063900005050506050505050505050505050505AC
+:1063A000050505060505050505050505050505059C
+:1063B000050505060505050505050505050505058C
+:1063C000050505050505050505050505050505057D
+:1063D000050505050505050505050505050505056D
+:1063E000050505050505050505050505050505055D
+:1063F000050505050505050505050505050505054D
+:106400000A060A0A06060606A6A6A6A6A5A5AAA51F
+:106410000506060605050505A5A5A5A5A5A5A6A528
+:106420000506060605050505A5A5A5A5A5A5A6A518
+:106430000506060605050505A5A5A5A5A5A5A6A508
+:10644000050606060505050505050505A5A5A6A578
+:10645000050506060505050505050505A5A5A6A569
+:10646000050506060505050505050505A5A5A6A559
+:10647000050506060505050505050505A5A5A5A54A
+:1064800005050606050505050505050505050505BA
+:1064900005050506050505050505050505050505AB
+:1064A000050505060505050505050505050505059B
+:1064B000050505060505050505050505050505058B
+:1064C000050505060505050505050505050505057B
+:1064D000050505060505050505050505050505056B
+:1064E000050505060505050505050505050505055B
+:1064F000050505050505050505050505050505054C
+:1065000000060A0A0606060696969696A6A5AAA06C
+:10651000000606060505050595959595A5A5A6A071
+:10652000000606060505050595959595A5A5A6A061
+:10653000000606060505050595959595A5A5A6A051
+:10654000000606060505050505050505A5A5A6A081
+:10655000000606060505050505050505A5A5A6A071
+:10656000000506060505050505050505A5A5A6A062
+:10657000000506060505050505050505A5A5A6A052
+:1065800000050606050505050505050505050500C3
+:1065900000050606050505050505050505050500B3
+:1065A00000050506050505050505050505050500A4
+:1065B0000005050605050505050505050505050094
+:1065C0000005050605050505050505050505050084
+:1065D0000005050605050505050505050505050074
+:1065E0000005050605050505050505050505050064
+:1065F0000005050505050505050505050505050055
+:1066000000060A0A0606060696969696A6A6AAA06A
+:10661000000606060505050595959595A5A5A6A070
+:10662000000606060505050595959595A5A5A6A060
+:10663000000606060505050595959595A5A5A6A050
+:10664000000606060505050505050505A5A5A6A080
+:10665000000606060505050505050505A5A5A6A070
+:10666000000606060505050505050505A5A5A6A060
+:10667000000506060505050505050505A5A5A6A051
+:106680005055565605050505050505050505060081
+:106690005055565605050505050505050505050072
+:1066A0005055565605050505050505050505050062
+:1066B0005055555605050505050505050505050053
+:1066C0005055555605050505050505050505050043
+:1066D0005055555605050505050505050505050033
+:1066E0005055555605050505050505050505050023
+:1066F0005055555605050505050505050505050013
+:106700000A0A0A0A0606060656565656A6A6AAAA51
+:10671000050606060505050555555555A5A5A6A664
+:10672000050606060505050555555555A5A5A6A654
+:10673000050606060505050555555555A5A5A6A644
+:1067400005060606050505050505050585858686F4
+:1067500005060606050505050505050585858686E4
+:1067600005060606050505050505050585858686D4
+:1067700005060606050505050505050585858686C4
+:106780001515161605050505050505050505060675
+:106790001515161605050505050505050505060665
+:1067A0001515161605050505050505050505050656
+:1067B0001515161605050505050505050505050646
+:1067C0005555555605050505050505050505050637
+:1067D0005555555605050505050505050505050627
+:1067E0005555555605050505050505050505050617
+:1067F0005555555605050505050505050505050508
+:106800000A0A0A0A0606060656565A56A6A6AAAA4C
+:10681000050606060505050555555555A5A5A6A663
+:10682000050606060505050555555555A5A5A6A653
+:10683000050606060505050555555555A5A5A6A643
+:1068400005060606050505050505050585858686F3
+:1068500005060606050505050505050585858686E3
+:1068600005060606050505050505050585858686D3
+:1068700005060606050505050505050585858686C3
+:1068800005060606050505050505050505050606B3
+:1068900005050606050505050505050505050606A4
+:1068A0000505060605050505050505050505060694
+:1068B0000505060605050505050505050505050685
+:1068C0005555565605050505050505050505050635
+:1068D0005555565605050505050505050505050625
+:1068E0005555565605050505050505050505050615
+:1068F0005555565605050505050505050505050506
+:10690000000A0A0A060606064A4A4A46A6A6AAA097
+:10691000000606060505050545454545A5A5A6A0AD
+:10692000000606060505050545454545A5A5A6A09D
+:10693000000606060505050545454545A5A5A6A08D
+:1069400000060606050505050505050505050600FD
+:1069500000060606050505050505050505050600ED
+:1069600000060606050505050505050505050600DD
+:1069700000060606050505050505050505050600CD
+:1069800000060606050505050505050505050600BD
+:1069900000060606050505050505050505050600AD
+:1069A000000506060505050505050505050506009E
+:1069B000000506060505050505050505050506008E
+:1069C000505556560505050505050505A5A5A5A0BF
+:1069D000505556560505050505050505A5A5A5A0AF
+:1069E000505556560505050505050505A5A5A5A09F
+:1069F000505556560505050505050505A5A5A5A08F
+:106A0000000A0A0A060606064A4A4A46A6A6AAA096
+:106A1000000606060606060646464646A6A6A6A0A2
+:106A2000000606060606060646464646A6A6A6A092
+:106A3000000606060606060646464646A6A6A6A082
+:106A400000060606060606060606060606060600F2
+:106A500000060606060606060606060606060600E2
+:106A600000060606060606060606060606060600D2
+:106A700000060606060606060606060606060600C2
+:106A800000060606060606060606060606060600B2
+:106A900000060606060606060606060606060600A2
+:106AA0000006060606060606060606060606060092
+:106AB0000005060606060606060606060606060083
+:106AC000505556560606060606060606A6A6A6A0B3
+:106AD000505556560606060606060606A6A6A6A0A3
+:106AE000505556560606060606060606A6A6A6A093
+:106AF000505656560505050505050505A5A5A5A08D
+:106B00000A0A0A0A060606064A4A4A4AA6A6AAAA7D
+:106B1000050606060606060646464646A6A6A6A696
+:106B2000050606060606060646464646A6A6A6A686
+:106B3000050606060606060646464646A6A6A6A676
+:106B400005060606060606060606060606060606E6
+:106B500005060606060606060606060606060606D6
+:106B600005060606060606060606060606060606C6
+:106B700005060606060606060606060606060606B6
+:106B800005060606060606060606060606060606A6
+:106B90000506060606060606060606060606060696
+:106BA0000506060606060606060606060606060686
+:106BB0000506060606060606060606060606060676
+:106BC0000505060606060606060606060606060667
+:106BD0000505060606060606060606060606060657
+:106BE0000505060606060606060606060606060647
+:106BF0000506060605050505050505050505050542
+:106C00000A0A0A0A0606060A0A0A0A0AA6A6AAAA78
+:106C10000506060A0606060606060606A6A6A6A691
+:106C20000506060A0606060606060606A6A6A6A681
+:106C30000506060A0606060606060606A6A6A6A671
+:106C40000506060A060606060606060606060606E1
+:106C50000506060A060606060606060606060606D1
+:106C60000506060A060606060606060606060606C1
+:106C70000506060A060606060606060606060606B1
+:106C80000506060A060606060606060606060606A1
+:106C90000506060A06060606060606060606060691
+:106CA0000506060A06060606060606060606060681
+:106CB0000506060A06060606060606060606060671
+:106CC0000506060A06060606060606060606060661
+:106CD0000506060A06060606060606060606060651
+:106CE0000506060A06060606060606060606060641
+:106CF0000506060A0505050505050505050506053C
+:106D0000000A0A0A0606060A0A0A0A0A8A868A8007
+:106D10000006060A0606060606060606868686801B
+:106D20000006060A0606060606060606868686800B
+:106D30000006060A060606060606060686868680FB
+:106D40000006060A060606060606060606060600EB
+:106D50000006060A060606060606060606060600DB
+:106D60000006060A060606060606060606060600CB
+:106D70000006060A060606060606060606060600BB
+:106D80000006060A060606060606060606060600AB
+:106D90000006060A0606060606060606060606009B
+:106DA0000006060A0606060606060606060606008B
+:106DB0000006060A0606060606060606060606007B
+:106DC0000006060A0606060606060606060606006B
+:106DD0000006060A0606060606060606060606005B
+:106DE0000006060A0606060606060606060606004B
+:106DF0000006060A05050505050505050505060045
+:106E0000000A0A0A06060A0A0A0A0A0A8A8A8A80FE
+:106E10000006060A0606060606060A068686868016
+:106E20000006060A0606060606060606868686800A
+:106E30000006060A060606060606060686868680FA
+:106E40000006060A060606060606060606060600EA
+:106E50000006060A060606060606060606060600DA
+:106E60000006060A060606060606060606060600CA
+:106E70000006060A060606060606060606060600BA
+:106E80000006060A060606060606060606060600AA
+:106E90000006060A0606060606060606060606009A
+:106EA0000006060A0606060606060606060606008A
+:106EB0000006060A0606060606060606060606007A
+:106EC0000006060A0606060606060606060606006A
+:106ED0000006060A0606060606060606060606005A
+:106EE0000006060A0606060606060606060606004A
+:106EF0000006060A05050505050606060605060040
+:106F00003A3A3A3A363A3A3A3A3A3A3ABABABABAE5
+:106F10003536363A3636363636363A36B6B6B6B60A
+:106F20003536363A3636363636363636B6B6B6B6FE
+:106F30003536363A3636363636363636B6B6B6B6EE
+:106F40003536363A363636363636363636363636DE
+:106F50003536363A363636363636363636363636CE
+:106F60003536363A363636363636363636363636BE
+:106F70003536363A363636363636363636363636AE
+:106F80003536363A3636363636363636363636369E
+:106F90003536363A3636363636363636363636368E
+:106FA0003536363A3636363636363636363636367E
+:106FB0003536363A3636363636363636363636366E
+:106FC0003536363A3636363636363636363636365E
+:106FD0003536363A3636363636363636363636364E
+:106FE0003536363A3636363636363636363636363E
+:106FF0003536363A35353535363636363635363534
+:107000000A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0AE0
+:1070100005060A0A06060606060A0A0A0A060A06F5
+:1070200005060A0A0606060606060A0606060606F5
+:1070300005060A0A060606060606060606060606E9
+:1070400005060A0A060606060606060606060606D9
+:1070500005060A0A060606060606060606060606C9
+:1070600005060A0A060606060606060606060606B9
+:1070700005060A0A060606060606060606060606A9
+:1070800005060A0A06060606060606060606060699
+:1070900005060A0A06060606060606060606060689
+:1070A00005060A0A06060606060606060606060679
+:1070B00005060A0A06060606060606060606060669
+:1070C00005060A0A06060606060606060606060659
+:1070D00005060A0A06060606060606060606060649
+:1070E00005060A0A06060606060606060606060639
+:1070F00005060A0A0505060606060606060606052C
+:10710000000A0A0A0A0A0A0A0A0A0A0A0A0A0A00F3
+:1071100000060A0A060606060A0A0A0A0A060A00FB
+:1071200000060A0A0606060606060A0606060600FF
+:1071300000060A0A060606060606060606060600F3
+:1071400000060A0A060606060606060606060600E3
+:1071500000060A0A060606060606060606060600D3
+:1071600000060A0A060606060606060606060600C3
+:1071700000060A0A060606060606060606060600B3
+:1071800000060A0A060606060606060606060600A3
+:1071900000060A0A06060606060606060606060093
+:1071A00000060A0A06060606060606060606060083
+:1071B00000060A0A06060606060606060606060073
+:1071C00000060A0A06060606060606060606060063
+:1071D00000060A0A0606060606060A06060606004F
+:1071E00000060A0A06060606060606060606060043
+:1071F00000060A0A05060606060606060606060034
+:10720000C0CACACACACACACACACACACACACACAC0F2
+:10721000C0C6CACAC6C6C6C6CACACACACACACAC0F6
+:10722000C0C6CACAC6C6C6C6C6CACACACAC6CAC0EE
+:10723000C0C6CACAC6C6C6C6C6C6CAC6C6C6CAC0EA
+:10724000C0C6CACAC6C6C6C6C6C6CAC6C6C6CAC0DA
+:10725000C0C6CACAC6C6C6C6C6C6CAC6C6C6CAC0CA
+:10726000C0C6CACAC6C6C6C6C6C6CAC6C6C6CAC0BA
+:10727000C0C6CACAC6C6C6C6C6C6CAC6C6C6CAC0AA
+:10728000C0C6CACAC6C6C6C6C6C6C6C6C6C6CAC09E
+:10729000C0C6CACAC6C6C6C6C6C6C6C6C6C6CAC08E
+:1072A000C0C6CACAC6C6C6C6C6C6C6C6C6C6CAC07E
+:1072B000C0C6CACAC6C6C6C6C6C6C6C6C6C6CAC06E
+:1072C000C0C6CACAC6C6C6C6C6C6C6C6C6C6CAC05E
+:1072D000C0C6CACAC6C6C6C6C6C6CAC6C6C6CAC04A
+:1072E000C0C6CACAC6C6C6C6C6C6CAC6C6C6CAC03A
+:1072F000C0C6CACAC6C6C6C6C6C6C6C6C6C6CAC02E
+:107300000A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0ADD
+:1073100005060A0A0606060A0A0A0A0A0A0A0A06E6
+:1073200005060A0A060606060A0A0A0A0A060A06DE
+:1073300005060A0A0606060606060A0606060A06DE
+:1073400005060A0A0606060606060A0606060A06CE
+:1073500005060A0A0606060606060A0606060A06BE
+:1073600005060A0A0606060606060A0606060A06AE
+:1073700005060A0A0606060606060A0606060A069E
+:1073800005060A0A0606060606060A0606060A068E
+:1073900005060A0A0606060606060A0606060A067E
+:1073A00005060A0A0606060606060A0606060A066E
+:1073B00005060A0A0606060606060A0606060A065E
+:1073C00005060A0A0606060606060A0606060A064E
+:1073D00005060A0A06060606060A0A0A0A060A0632
+:1073E00005060A0A0606060606060A0606060A062E
+:1073F00005060A0A060606060606060606060A0523
+:107400000A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0ADC
+:10741000050A0A0A0606060A0A0A0A0A0A0A0A06E1
+:10742000050A0A0A060606060A0A0A0A0A0A0A06D5
+:10743000050A0A0A06060606060A0A0A0A060A06CD
+:10744000050A0A0A06060606060A0A0A0A060A06BD
+:10745000050A0A0A06060606060A0A0A0A060A06AD
+:10746000050A0A0A06060606060A0A0A0A060A069D
+:10747000050A0A0A06060606060A0A0A0A060A068D
+:10748000050A0A0A0606060606060A0606060A0689
+:10749000050A0A0A0606060606060A0606060A0679
+:1074A000050A0A0A0606060606060A0606060A0669
+:1074B000050A0A0A0606060606060A0606060A0659
+:1074C000050A0A0A0606060606060A0606060A0649
+:1074D000050A0A0A060606060A0A0A0A0A060A0629
+:1074E000050A0A0A06060606060A0A0A0A060A061D
+:1074F000050A0A0A0606060606060A0606060A051A
+:10750000000A0A0A0A0A0A0A0A0A0A0A0A0A0A00EF
+:10751000000A0A0A06060A0A0A0A0A0A0A0A0A00E7
+:10752000000A0A0A0606060A0A0A0A0A0A0A0A00DB
+:10753000000A0A0A060606060A0A0A0A0A060A00D3
+:10754000000A0A0A060606060A0A0A0A0A060A00C3
+:10755000000A0A0A060606060A0A0A0A0A060A00B3
+:10756000000A0A0A060606060A0A0A0A0A060A00A3
+:10757000000A0A0A060606060A0A0A0A0A060A0093
+:10758000000A0A0A06060606060A0A0A0A060A0087
+:10759000000A0A0A06060606060A0A0A0A060A0077
+:1075A000000A0A0A06060606060A0A0A0A060A0067
+:1075B000000A0A0A06060606060A0A0A0A060A0057
+:1075C000000A0A0A06060606060A0A0A0A060A0047
+:1075D000000A0A0A060606060A0A0A0A0A0A0A002F
+:1075E000000A0A0A060606060A0A0A0A0A060A0023
+:1075F000000A0A0A0606060606060A0606060A0023
+:10760000000A0A0A0A0A0A0A0A0A0A0A0A0A0A00EE
+:10761000000A0A0A060A0A0A0A0A0A0A0A0A0A00E2
+:10762000000A0A0A0606060A0A0A0A0A0A0A0A00DA
+:10763000000A0A0A060606060A0A0A0A0A0A0A00CE
+:10764000000A0A0A060606060A0A0A0A0A0A0A00BE
+:10765000000A0A0A060606060A0A0A0A0A0A0A00AE
+:10766000000A0A0A060606060A0A0A0A0A0A0A009E
+:10767000000A0A0A060606060A0A0A0A0A060A0092
+:10768000000A0A0A060606060A0A0A0A0A060A0082
+:10769000000A0A0A060606060A0A0A0A0A060A0072
+:1076A000000A0A0A060606060A0A0A0A0A060A0062
+:1076B000000A0A0A060606060A0A0A0A0A060A0052
+:1076C000000A0A0A060606060A0A0A0A0A060A0042
+:1076D000000A0A0A0606060A0A0A0A0A0A0A0A002A
+:1076E000000A0A0A060606060A0A0A0A0A0A0A001E
+:1076F000000A0A0A06060606060A0A0A0A060A0016
+:10770000050A0A0A0A0A0A0A0A0A0A0A0A0A0A0ADE
+:10771000050A0A0A060A0A0A0A0A0A0A0A0A0A06D6
+:10772000050A0A0A06060A0A0A0A0A0A0A0A0A06CA
+:10773000050A0A0A0606060A0A0A0A0A0A0A0A06BE
+:10774000050A0A0A0606060A0A0A0A0A0A0A0A06AE
+:10775000050A0A0A0606060A0A0A0A0A0A0A0A069E
+:10776000050A0A0A0606060A0A0A0A0A0A0A0A068E
+:10777000050A0A0A0606060A0A0A0A0A0A0A0A067E
+:10778000050A0A0A060606060A0A0A0A0A0A0A0672
+:10779000050A0A0A060606060A0A0A0A0A0A0A0662
+:1077A000050A0A0A060606060A0A0A0A0A0A0A0652
+:1077B000050A0A0A060606060A0A0A0A0A0A0A0642
+:1077C000050A0A0A060606060A0A0A0A0A0A0A0632
+:1077D000050A0A0A0606060A0A0A0A0A0A0A0A061E
+:1077E000050A0A0A0606060A0A0A0A0A0A0A0A060E
+:1077F000050A0A0A060606060A0A0A0A0A060A0606
+:10780000050A0A0A0A0A0A0A0A0A0A0A0A0A0A0ADD
+:10781000050A0A0A0A0A0A0A0A0A0A0A0A0A0A06D1
+:10782000050A0A0A060A0A0A0A0A0A0A0A0A0A06C5
+:10783000050A0A0A0606060A0A0A0A0A0A0A0A06BD
+:10784000050A0A0A0606060A0A0A0A0A0A0A0A06AD
+:10785000050A0A0A0606060A0A0A0A0A0A0A0A069D
+:10786000050A0A0A0606060A0A0A0A0A0A0A0A068D
+:10787000050A0A0A0606060A0A0A0A0A0A0A0A067D
+:10788000050A0A0A0606060A0A0A0A0A0A0A0A066D
+:10789000050A0A0A0606060A0A0A0A0A0A0A0A065D
+:1078A000050A0A0A0606060A0A0A0A0A0A0A0A064D
+:1078B000050A0A0A0606060A0A0A0A0A0A0A0A063D
+:1078C000050A0A0A0606060A0A0A0A0A0A0A0A062D
+:1078D000050A0A0A06060A0A0A0A0A0A0A0A0A0619
+:1078E000050A0A0A0606060A0A0A0A0A0A0A0A060D
+:1078F000050A0A0A060606060A0A0A0A0A0A0A0601
+:10790000000A0A0A0A0A0A0A0A0A0A0A0A0A0A00EB
+:10791000000A0A0A0A0A0A0A0A0A0A0A0A0A0A00DB
+:10792000000A0A0A060A0A0A0A0A0A0A0A0A0A00CF
+:10793000000A0A0A06060A0A0A0A0A0A0A0A0A00C3
+:10794000000A0A0A06060A0A0A0A0A0A0A0A0A00B3
+:10795000000A0A0A06060A0A0A0A0A0A0A0A0A00A3
+:10796000000A0A0A06060A0A0A0A0A0A0A0A0A0093
+:10797000000A0A0A06060A0A0A0A0A0A0A0A0A0083
+:10798000000A0A0A0606060A0A0A0A0A0A0A0A0077
+:10799000000A0A0A0606060A0A0A0A0A0A0A0A0067
+:1079A000000A0A0A0606060A0A0A0A0A0A0A0A0057
+:1079B000000A0A0A0606060A0A0A0A0A0A0A0A0047
+:1079C000000A0A0A0606060A0A0A0A0A0A0A0A0037
+:1079D000000A0A0A060A0A0A0A0A0A0A0A0A0A001F
+:1079E000000A0A0A06060A0A0A0A0A0A0A0A0A0013
+:1079F000000A0A0A0606060A0A0A0A0A0A0A0A0007
+:107A0000000A0A0A0A0A0A0A0A0A0A0A0A0A0A00EA
+:107A1000000A0A0A0A0A0A0A0A0A0A0A0A0A0A00DA
+:107A2000000A0A0A0A0A0A0A0A0A0A0A0A0A0A00CA
+:107A3000000A0A0A060A0A0A0A0A0A0A0A0A0A00BE
+:107A4000000A0A0A060A0A0A0A0A0A0A0A0A0A00AE
+:107A5000000A0A0A060A0A0A0A0A0A0A0A0A0A009E
+:107A6000000A0A0A060A0A0A0A0A0A0A0A0A0A008E
+:107A7000000A0A0A060A0A0A0A0A0A0A0A0A0A007E
+:107A8000000A0A0A06060A0A0A0A0A0A0A0A0A0072
+:107A9000000A0A0A06060A0A0A0A0A0A0A0A0A0062
+:107AA000000A0A0A06060A0A0A0A0A0A0A0A0A0052
+:107AB000000A0A0A06060A0A0A0A0A0A0A0A0A0042
+:107AC000000A0A0A06060A0A0A0A0A0A0A0A0A0032
+:107AD000000A0A0A060A0A0A0A0A0A0A0A0A0A001E
+:107AE000000A0A0A060A0A0A0A0A0A0A0A0A0A000E
+:107AF000000A0A0A0606060A0A0A0A0A0A0A0A0006
+:107B0000050A0A0A0A0A0A0A0A0A0A0A0A0A0A0ADA
+:107B1000050A0A0A0A0A0A0A0A0A0A0A0A0A0A0ACA
+:107B2000050A0A0A0A0A0A0A0A0A0A0A0A0A0A0ABA
+:107B3000050A0A0A060A0A0A0A0A0A0A0A0A0A0AAE
+:107B4000050A0A0A060A0A0A0A0A0A0A0A0A0A0A9E
+:107B5000050A0A0A060A0A0A0A0A0A0A0A0A0A0A8E
+:107B6000050A0A0A060A0A0A0A0A0A0A0A0A0A0A7E
+:107B7000050A0A0A060A0A0A0A0A0A0A0A0A0A0A6E
+:107B8000050A0A0A060A0A0A0A0A0A0A0A0A0A0A5E
+:107B9000050A0A0A060A0A0A0A0A0A0A0A0A0A0A4E
+:107BA000050A0A0A060A0A0A0A0A0A0A0A0A0A0A3E
+:107BB000050A0A0A060A0A0A0A0A0A0A0A0A0A0A2E
+:107BC000050A0A0A060A0A0A0A0A0A0A0A0A0A0A1E
+:107BD000050A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A
+:107BE000050A0A0A060A0A0A0A0A0A0A0A0A0A0AFE
+:107BF000050A0A0A06060A0A0A0A0A0A0A0A0A0AF2
+:107C0000050A0A0A0A0A0A0A0A0A0A0A0A0A0A0AD9
+:107C1000050A0A0A0A0A0A0A0A0A0A0A0A0A0A0AC9
+:107C2000050A0A0A0A0A0A0A0A0A0A0A0A0A0A0AB9
+:107C3000050A0A0A0A0A0A0A0A0A0A0A0A0A0A0AA9
+:107C4000050A0A0A0A0A0A0A0A0A0A0A0A0A0A0A99
+:107C5000050A0A0A0A0A0A0A0A0A0A0A0A0A0A0A89
+:107C6000050A0A0A0A0A0A0A0A0A0A0A0A0A0A0A79
+:107C7000050A0A0A0A0A0A0A0A0A0A0A0A0A0A0A69
+:107C8000050A0A0A060A0A0A0A0A0A0A0A0A0A0A5D
+:107C9000050A0A0A060A0A0A0A0A0A0A0A0A0A0A4D
+:107CA000050A0A0A060A0A0A0A0A0A0A0A0A0A0A3D
+:107CB000050A0A0A060A0A0A0A0A0A0A0A0A0A0A2D
+:107CC000050A0A0A060A0A0A0A0A0A0A0A0A0A0A1D
+:107CD000050A0A0A0A0A0A0A0A0A0A0A0A0A0A0A09
+:107CE000050A0A0A0A0A0A0A0A0A0A0A0A0A0A0AF9
+:107CF000050A0A0A060A0A0A0A0A0A0A0A0A0A0AED
+:107D0000000909090A0808080808080808080800FE
+:107D1000000909090A0808080808080808080800EE
+:107D2000000909090A0808080808080808080800DE
+:107D3000000909090A0808080808080808080800CE
+:107D4000000909090A0808080808080808080800BE
+:107D5000000909090A0808080808080808080800AE
+:107D6000000909090A08080808080808080808009E
+:107D7000000909090A08080808080808080808008E
+:107D8000000909090A08080808080808080808007E
+:107D9000000909090A08080808080808080808006E
+:107DA000000909090A08080808080808080808005E
+:107DB000000909090A08080808080808080808004E
+:107DC000000909090A08080808080808080808003E
+:107DD000000909090A08080808080808080808002E
+:107DE000000909090A08080808080808080808001E
+:107DF0000009090906080808080808080808080012
+:107E0000000909090A0808080808080808080800FD
+:107E1000050909090A0A0808080808080808080ADC
+:107E2000050909090A0A0808080808080808080ACC
+:107E3000000909090A0A0A080808080808080800C9
+:107E4000000909090A0A0A080808080808080800B9
+:107E5000050909090A0A0A0A080808080808080A98
+:107E6000050909090A0A0A0A0A0808080808080A86
+:107E7000000909090A0A0A0A0A0808080808080085
+:107E8000000909090A0A0A0A0A0A08080808080073
+:107E9000050909090A0A0A0A0A0A08080808080A54
+:107EA000050909090A0A0A0A0A0A0A080808080A42
+:107EB000000505050A02020202020200000000009D
+:107EC000000505050A02020202020202000000008B
+:107ED000050505050A0A0202020202020000000A64
+:107EE000050505050A0A0202020202020200000A52
+:107EF000000505050A0A0A02020202020200000049
+:107F0000000505050A0A0A02020202020202000036
+:107F10000505050509090909010101010101000A19
+:107F20000505050509090909090101010100000A02
+:107F30000005050509090909090101010100000001
+:107F400000050504090909090909010100000000EB
+:107F500000050505090909090909010100000000DA
+:107F600000050505090909090909010100000000CA
+:107F700000050505090909090909010100000000BA
+:107F800000050505090909090909010100000000AA
+:107F9000000505050909090909090101000000009A
+:107FA000000505050909090909090101000000008A
+:107FB000000505050909090909090101000000007A
+:107FC000000505050909090909090101000000006A
+:107FD000000505050909090909090101000000005A
+:107FE000000505050909090909090101000000004A
+:107FF000000505050909090909090101000000003A
+:108000000005050509090909090901010000000029
+:108010000005050509090909090901010000000019
+:108020000005050509090909090901010000000009
+:1080300000050505090909090909010100000000F9
+:108040000505050409090909090901010000000ADB
+:108050000505050509090909090901010000000ACA
+:108060000505050509090909090901010000000ABA
+:108070000505050509090909090901010000000AAA
+:108080000505050509090909090901010000000A9A
+:108090000505050509090909090901010000000A8A
+:1080A0000505050509090909090901010000000A7A
+:1080B0000505050509090909090901010000000A6A
+:1080C0000505050509090909090901010000000A5A
+:1080D0000505050509090909090901010000000A4A
+:1080E0000505050509090909090901010000000A3A
+:1080F0000505050509090909090901010000000A2A
+:108100000505050509090909090901010000000A19
+:108110000505050509090909090901010000000A09
+:108120000505050509090909090901010000000AF9
+:108130000505050509090909090901010000000AE9
+:108140000505050409090909090909000000000AD3
+:108150000505050509090909090909000000000AC2
+:108160000505050509090909090909000000000AB2
+:108170000505050509090909090909000000000AA2
+:108180000505050509090909090909000000000A92
+:108190000505050509090909090909000000000A82
+:1081A0000505050509090909090909000000000A72
+:1081B0000505050509090909090909000000000A62
+:1081C0000505050509090909090909000000000A52
+:1081D0000505050509090909090909000000000A42
+:1081E0000505050509090909090909000000000A32
+:1081F0000505050509090909090909000000000A22
+:108200000505050509090909090909000000000A11
+:108210000505050509090909090909000000000A01
+:108220000505050509090909090909000000000AF1
+:108230000505050509090909090909000000000AE1
+:1082400000050504090909090909090000000000E1
+:1082500000050505090909090909090000000000D0
+:1082600000050505090909090909090000000000C0
+:1082700000050505090909090909090000000000B0
+:1082800000050505090909090909090000000000A0
+:108290000005050509090909090909000000000090
+:1082A0000005050509090909090909000000000080
+:1082B0000005050509090909090909000000000070
+:1082C0000005050509090909090909000000000060
+:1082D0000005050509090909090909000000000050
+:1082E0000005050509090909090909000000000040
+:1082F0000005050509090909090909000000000030
+:10830000000505050909090909090900000000001F
+:10831000000505050909090909090900000000000F
+:1083200000050505090909090909090000000000FF
+:1083300000050505090909090909090000000000EF
+:1083400000050504090909090909080800000000D9
+:1083500000050505090909090909080800000000C8
+:1083600000050505090909090909080800000000B8
+:1083700000050505090909090909080800000000A8
+:108380000005050509090909090908080000000098
+:108390000005050509090909090908080000000088
+:1083A0000005050509090909090908080000000078
+:1083B0000005050509090909090908080000000068
+:1083C0000005050509090909090908080000000058
+:1083D0000005050509090909090908080000000048
+:1083E0000005050509090909090908080000000038
+:1083F0000005050509090909090908080000000028
+:108400000005050509090909090908080000000017
+:108410000005050509090909090908080000000007
+:1084200000050505090909090909080800000000F7
+:1084300000050505090909090909080800000000E7
+:108440000505040409090909090908080000000ACA
+:108450000505050409090909090908080000000AB9
+:108460000505050409090909090908080000000AA9
+:108470000505050409090909090908080000000A99
+:108480000505050409090909090908080000000A89
+:108490000505050409090909090908080000000A79
+:1084A0000505050409090909090908080000000A69
+:1084B0000505050409090909090908080000000A59
+:1084C0000505050409090909090908080000000A49
+:1084D0000505050409090909090908080000000A39
+:1084E0000505050409090909090908080000000A29
+:1084F0000505050409090909090908080000000A19
+:108500000505050409090909090908080000000A08
+:108510000505050409090909090908080000000AF8
+:108520000505050409090909090908080000000AE8
+:108530000505050409090909090908080000000AD8
+:108540000505040409090909090808080800000AC2
+:108550000505050409090909090808080800000AB1
+:108560000505050409090909090808080800000AA1
+:108570000505050409090909090808080800000A91
+:108580000505050409090909090808080800000A81
+:108590000505050409090909090808080800000A71
+:1085A0000505050409090909090808080800000A61
+:1085B0000505050409090909090808080800000A51
+:1085C0000505050409090909090808080800000A41
+:1085D0000505050409090909090808080800000A31
+:1085E0000505050409090909090808080800000A21
+:1085F0000505050409090909090808080800000A11
+:108600000505050409090909090808080800000A00
+:108610000505050409090909090808080800000AF0
+:108620000505050409090909090808080800000AE0
+:108630000505050409090909090808080800000AD0
+:1086400000050404090909090908080808000000D0
+:1086500000050504090909090908080808000000BF
+:1086600000050504090909090908080808000000AF
+:10867000000505040909090909080808080000009F
+:10868000000505040909090909080808080000008F
+:10869000000505040909090909080808080000007F
+:1086A000000505040909090909080808080000006F
+:1086B000000505040909090909080808080000005F
+:1086C000000505040909090909080808080000004F
+:1086D000000505040909090909080808080000003F
+:1086E000000505040909090909080808080000002F
+:1086F000000505040909090909080808080000001F
+:10870000000505040909090909080808080000000E
+:1087100000050504090909090908080808000000FE
+:1087200000050504090909090908080808000000EE
+:1087300000050504090909090908080808000000DE
+:1087400000050404090909090808080808080000C8
+:1087500000050504090909090808080808080000B7
+:1087600000050504090909090808080808080000A7
+:108770000005050409090909080808080808000097
+:108780000005050409090909080808080808000087
+:108790000005050409090909080808080808000077
+:1087A0000005050409090909080808080808000067
+:1087B0000005050409090909080808080808000057
+:1087C0000005050409090909080808080808000047
+:1087D0000005050409090909080808080808000037
+:1087E0000005050409090909080808080808000027
+:1087F0000005050409090909080808080808000017
+:108800000005050409090909080808080808000006
+:1088100000050504090909090808080808080000F6
+:1088200000050504090909090808080808080000E6
+:1088300000050504090909090808080808080000D6
+:108840000505040405050504040404040404000AE1
+:108850000505050405050504040404040404000AD0
+:108860000505050405050504040404040404000AC0
+:108870000505050405050504040404040404000AB0
+:108880000505050405050504040404040404000AA0
+:108890000505050405050504040404040404000A90
+:1088A0000505050405050504040404040404000A80
+:1088B0000505050405050504040404040404000A70
+:1088C0000505050405050504040404040404000A60
+:1088D0000505050405050504040404040404000A50
+:1088E0000505050405050504040404040404000A40
+:1088F0000505050405050504040404040404000A30
+:108900000505050405050504040404040404000A1F
+:108910000505050405050504040404040404000A0F
+:108920000505050405050504040404040404000AFF
+:108930000505050405050504040404040404000AEF
+:108940000505040405050504040404040400000AE4
+:1089500000050404050504040404040404000000E4
+:1089600000040404050504040404040400000000D9
+:1089700000050404050504040404040400000000C8
+:1089800000050404050504040404040400000000B8
+:1089900000050404050504040404040400000000A8
+:1089A0000005040405050404040404040000000098
+:1089B0000005040405050404040404040000000088
+:1089C0000005040405050404040404040000000078
+:1089D0000005040405050404040404040000000068
+:1089E0000005040405050404040404040000000058
+:1089F0000005040405050404040404040000000048
+:108A00000005040405050404040404040000000037
+:108A10000005040405050404040404040000000027
+:108A20000005040405050404040404040000000017
+:108A30000005040405050404040404040000000007
+:108A400000050404050504040404040400000000F7
+:108A500000050404050504040404040400000000E7
+:108A60000504040405040404040404040000000ACA
+:108A70000505040405040404040404040000000AB9
+:108A80000505040405040404040404040000000AA9
+:108A90000505040405040404040404040000000A99
+:108AA0000505040405040404040404040000000A89
+:108AB0000505040405040404040404040000000A79
+:108AC0000505040405040404040404040000000A69
+:108AD0000505040405040404040404040000000A59
+:108AE0000505040405040404040404040000000A49
+:108AF0000505040405040404040404040000000A39
+:108B00000505040405040404040404040000000A28
+:108B10000505040405040404040404040000000A18
+:108B20000505040405040404040404040000000A08
+:108B30000505040405040404040404040000000AF8
+:108B40000505040405040404040404040000000AE8
+:108B50000505040405040404040404040000000AD8
+:108B60000504040405040404040404000000000ACD
+:108B70000505040405040404040404000000000ABC
+:108B80000505040405040404040404000000000AAC
+:108B90000505040405040404040404000000000A9C
+:108BA0000505040405040404040404000000000A8C
+:108BB0000505040405040404040404000000000A7C
+:108BC0000505040405040404040404000000000A6C
+:108BD0000505040405040404040404000000000A5C
+:108BE0000505040405040404040404000000000A4C
+:108BF0000505040405040404040404000000000A3C
+:108C00000505040405040404040404000000000A2B
+:108C10000505040405040404040404000000000A1B
+:108C20000505040405040404040404000000000A0B
+:108C30000505040405040404040404000000000AFB
+:108C40000505040405040404040404000000000AEB
+:108C50000505040405040404040404000000000ADB
+:108C600000040404040404040404040000000000DC
+:108C700003070707070707070707030303030303A0
+:108C800004040404040404040404000000000008B4
+:108C900004040404040404040400000000000008A8
+:108CA00000040404040404040400000000000000A4
+:108CB000000404000404040400000000000000009C
+:108CC0000404040004040400000000000000000884
+:108CD0000404040004040400000000000000000874
+:108CE0000004040004040000000000000000000074
+:108CF0000004000004040000000000000000000068
+:108D0000040400000400000000000000000000084F
+:108D1000040400000400000000000000000000083F
+:108D20000000000000000000000000000000000043
+:108D30000C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C73
+:108D40000000000000000000000000000000000023
+:108D50000000000000000000000000000000000013
+:108D60000000000000000000000000000000000003
+:108D700000000000000000000000000000000000F3
+:108D800000000000000000000000000000000000E3
+:108D900000000000000000000000000000000000D3
+:108DA00000000000000000000000000000000000C3
+:108DB00000000000000000000000000000000000B3
+:108DC00000000000000000000000000000000000A3
+:108DD0000000000000000000000000000000000093
+:108DE0000000000000000000000000000000000083
+:108DF0000000000000000000000000000000000073
+:108E0000AA565656555555555555555555556A6595
+:108E10009A656566656565656565656565656565CC
+:108E20009A656566656565656565656565656565BC
+:108E30009A656565656565656565656565656565AD
+:108E40009A6565656565656565656565656565659D
+:108E50009A6565656565656565656565656565658D
+:108E60009A6565656565656565656565656565657D
+:108E70009A6565656565656565656565656565656D
+:108E80009A6565656565656565656565656565655D
+:108E90009A6565656565656565656565656565654D
+:108EA0009A6565656565656565656565656565653D
+:108EB0009A6565656565656565656565656565652D
+:108EC0009A6565656565656565656565656565651D
+:108ED0009A6565656565656565656565656565650D
+:108EE0009A656565656565656565656565656565FD
+:108EF0009AA5A5A5A5A5A5A5A5A5A5A5A5A5A515BD
+:108F0000AA565656555555555555555555556A6594
+:108F10009A656566656565656565656565656565CB
+:108F20009A656566656565656565656565656565BB
+:108F30009A656565656565656565656565656565AC
+:108F40009A6565656565656565656565656565659C
+:108F50009A6565656565656565656565656565658C
+:108F60009A6565656565656565656565656565657C
+:108F70009A6565656565656565656565656565656C
+:108F80009A6565656565656565656565656565655C
+:108F90009A6565656565656565656565656565654C
+:108FA0009A6565656565656565656565656565653C
+:108FB0009A6565656565656565656565656565652C
+:108FC0009A6565656565656565656565656565651C
+:108FD0009A6565656565656565656565656565650C
+:108FE0009A656565656565656565656565656565FC
+:108FF0009AA5A5A5A5A5A5A5A5A5A5A5A5A5A515BC
+:109000000056565A555555555555555555556A009E
+:1090100000656666656565656565656565656500C8
+:1090200000656566656565656565656565656500B9
+:1090300000656565656565656565656565656500AA
+:10904000006565656565656565656565656565009A
+:10905000006565656565656565656565656565008A
+:10906000006565656565656565656565656565007A
+:10907000006565656565656565656565656565006A
+:10908000006565656565656565656565656565005A
+:10909000006565656565656565656565656565004A
+:1090A000006565656565656565656565656565003A
+:1090B000006565656565656565656565656565002A
+:1090C000006565656565656565656565656565001A
+:1090D000006565656565656565656565656565000A
+:1090E00000656565656565656565656565656500FA
+:1090F00000A5A5A5A5A5A5A5A5A5A5A5A5A5A5006A
+:109100000056565A555555555555555555556A009D
+:1091100000656666656565656565656565656500C7
+:1091200000656566656565656565656565656500B8
+:1091300000656566656565656565656565656500A8
+:109140000065656565656565656565656565650099
+:109150000065656565656565656565656565650089
+:109160000065656565656565656565656565650079
+:109170000065656565656565656565656565650069
+:109180000065656565656565656565656565650059
+:109190000065656565656565656565656565650049
+:1091A0000065656565656565656565656565650039
+:1091B0000065656565656565656565656565650029
+:1091C0000065656565656565656565656565650019
+:1091D0000065656565656565656565656565650009
+:1091E00000656565656565656565656565656500F9
+:1091F00000A5A5A5A5A5A5A5A5A5A5A5A5A5A50069
+:10920000AA56565A555555555555555555556A658D
+:109210009A656666656565656565656565656665C6
+:109220009A656666656565656565656565656565B7
+:109230009A656566656565656565656565656565A8
+:109240009A65656565656565656565656565656599
+:109250009A65656565656565656565656565656589
+:109260009A65656565656565656565656565656579
+:109270009A65656565656565656565656565656569
+:109280009A65656565656565656565656565656559
+:109290009A65656565656565656565656565656549
+:1092A0009A65656565656565656565656565656539
+:1092B0009A65656565656565656565656565656529
+:1092C0009A65656565656565656565656565656519
+:1092D0009A65656565656565656565656565656509
+:1092E0009A656565656565656565656565656565F9
+:1092F0009A6565A5A5A5A5A5A5A5A5A5A5A5A51539
+:10930000AA56565A555555555555555555556A658C
+:109310009A656666656565656565656565656665C5
+:109320009A656666656565656565656565656565B6
+:109330009A656566656565656565656565656565A7
+:109340009A65656665656565656565656565656597
+:109350009A65656565656565656565656565656588
+:109360009A65656565656565656565656565656578
+:109370009A65656565656565656565656565656568
+:109380009A65656565656565656565656565656558
+:109390009A65656565656565656565656565656548
+:1093A0009A65656565656565656565656565656538
+:1093B0009A65656565656565656565656565656528
+:1093C0009A65656565656565656565656565656518
+:1093D0009A65656565656565656565656565656508
+:1093E0009A656565656565656565656565656565F8
+:1093F0009A6565A5A5A5A5A5A5A5A5A5A5A5A51538
+:109400000056565A555555555555555555556A009A
+:1094100000666666656565656565656565656600C2
+:1094200000656666656565656565656565656600B3
+:1094300000656566656565656565656565656500A5
+:109440000065656665656565656565656565650095
+:109450000065656665656565656565656565650085
+:109460000065656565656565656565656565650076
+:109470000065656565656565656565656565650066
+:109480000065656565656565656565656565650056
+:109490000065656565656565656565656565650046
+:1094A0000065656565656565656565656565650036
+:1094B0000065656565656565656565656565650026
+:1094C0000065656565656565656565656565650016
+:1094D0000065656565656565656565656565650006
+:1094E00000656565656565656565656565656500F6
+:1094F000006565A5A5A5A5A5A5A5A5A5A5A5A500E6
+:109500000056565A555555555555555555556A0099
+:1095100000666666656565656565656565656600C1
+:1095200000656666656565656565656565656600B2
+:1095300000656666656565656565656565656500A3
+:109540000065656665656565656565656565650094
+:109550000065656665656565656565656565650084
+:109560000065656665656565656565656565650074
+:109570000065656565656565656565656565650065
+:109580000065656565656565656565656565650055
+:109590000065656565656565656565656565650045
+:1095A0000065656565656565656565656565650035
+:1095B0000065656565656565656565656565650025
+:1095C0000065656565656565656565656565650015
+:1095D0000065656565656565656565656565650005
+:1095E00000656565656565656565656565656500F5
+:1095F000006565A5A5A5A5A5A5A5A5A5A5A5A500E5
+:10960000AA565A5A555555555555555555556A6585
+:109610009A666666656565656565656565656665C1
+:109620009A666666656565656565656565656665B1
+:109630009A656666656565656565656565656565A3
+:109640009A65656665656565656565656565656594
+:109650009A65656665656565656565656565656584
+:109660009A65656665656565656565656565656574
+:109670009A65656665656565656565656565656564
+:109680009A65656565656565656565656565656555
+:109690009A65656565656565656565656565656545
+:1096A0009A65656565656565656565656565656535
+:1096B0009A65656565656565656565656565656525
+:1096C0009A65656565656565656565656565656515
+:1096D0009A65656565656565656565656565656505
+:1096E0009A656565656565656565656565656565F5
+:1096F0009A656565A5A5A5A5A5A5A5A5A5A5A51575
+:10970000AA565A6A555555555555555555556A6574
+:109710009A666666656565656565656565656665C0
+:109720009A666666656565656565656565656665B0
+:109730009A656666656565656565656565656665A1
+:109740009A65666665656565656565656565656592
+:109750009A65656665656565656565656565656583
+:109760009A65656665656565656565656565656573
+:109770009A65656665656565656565656565656563
+:109780009A65656665656565656565656565656553
+:109790009A65656565656565656565656565656544
+:1097A0009A65656565656565656565656565656534
+:1097B0009A65656565656565656565656565656524
+:1097C0009A65656565656565656565656565656514
+:1097D0009A65656565656565656565656565656504
+:1097E0009A656565656565656565656565656565F4
+:1097F0009A656565A5A5A5A5A5A5A5A5A5A5A51574
+:1098000000565A6A555555555656565555556A007F
+:1098100000666666656565656565656565656600BE
+:1098200000666666656565656565656565656600AE
+:10983000006566666565656565656565656566009F
+:109840000065666665656565656565656565650090
+:109850000065666665656565656565656565650080
+:109860000065656665656565656565656565650071
+:109870000065656665656565656565656565650061
+:109880000065656665656565656565656565650051
+:109890000065656665656565656565656565650041
+:1098A0000065656565656565656565656565650032
+:1098B0000065656565656565656565656565650022
+:1098C0000065656565656565656565656565650012
+:1098D0000065656565656565656565656565650002
+:1098E00000656565656565656565656565656500F2
+:1098F000006565656565A5A5A5A5A5A5A5A5A500A2
+:1099000000565A6A555555565656565655556A007C
+:1099100000666666656565656565656565656600BD
+:1099200000666666656565656565656565656600AD
+:10993000006666666565656565656565656566009D
+:10994000006566666565656565656565656566008E
+:10995000006566666565656565656565656565007F
+:10996000006566666565656565656565656565006F
+:109970000065656665656565656565656565650060
+:109980000065656665656565656565656565650050
+:109990000065656665656565656565656565650040
+:1099A0000065656665656565656565656565650030
+:1099B0000065656565656565656565656565650021
+:1099C0000065656565656565656565656565650011
+:1099D0000065656565656565656565656565650001
+:1099E00000656565656565656565656565656500F1
+:1099F000006565656565A5A5A5A5A5A5A5A5A500A1
+:109A00009A969AAA95959696969696969595AA65FB
+:109A100095A6A6A6A5A5A5A5A5A5A5A5A5A5A66542
+:109A200095A6A6A6A5A5A5A5A5A5A5A5A5A5A66532
+:109A300095A6A6A6A5A5A5A5A5A5A5A5A5A5A66522
+:109A400095A5A6A6A5A5A5A5A5A5A5A5A5A5A66513
+:109A500095A5A6A6A5A5A5A5A5A5A5A5A5A5A66503
+:109A600095A5A6A6A5A5A5A5A5A5A5A5A5A5A565F4
+:109A700095A5A6A6A5A5A5A5A5A5A5A5A5A5A565E4
+:109A800095A5A5A6A5A5A5A5A5A5A5A5A5A5A565D5
+:109A900095A5A5A6A5A5A5A5A5A5A5A5A5A5A565C5
+:109AA00095A5A5A6A5A5A5A5A5A5A5A5A5A5A565B5
+:109AB00095A5A5A6A5A5A5A5A5A5A5A5A5A5A565A5
+:109AC00095A5A5A5A5A5A5A5A5A5A5A5A5A5A56596
+:109AD00095A5A5A5A5A5A5A5A5A5A5A5A5A5A56586
+:109AE00095A5A5A5A5A5A5A5A5A5A5A5A5A5A56576
+:109AF00095656565656565656565656565656555F6
+:109B00009A96AAAA96969696969696969595AA65E8
+:109B100095A6A6A6A5A5A5A5A5A5A5A5A5A5A66541
+:109B200095A6A6A6A5A5A5A5A5A5A5A5A5A5A66531
+:109B300095A6A6A6A5A5A5A5A5A5A5A5A5A5A66521
+:109B400095A6A6A6A5A5A5A5A5A5A5A5A5A5A66511
+:109B500095A5A6A6A5A5A5A5A5A5A5A5A5A5A66502
+:109B600095A5A6A6A5A5A5A5A5A5A5A5A5A5A665F2
+:109B700095A5A6A6A5A5A5A5A5A5A5A5A5A5A565E3
+:109B800095A5A6A6A5A5A5A5A5A5A5A5A5A5A565D3
+:109B900095A5A5A6A5A5A5A5A5A5A5A5A5A5A565C4
+:109BA00095A5A5A6A5A5A5A5A5A5A5A5A5A5A565B4
+:109BB00095A5A5A6A5A5A5A5A5A5A5A5A5A5A565A4
+:109BC00095A5A5A6A5A5A5A5A5A5A5A5A5A5A56594
+:109BD00095A5A5A6A5A5A5A5A5A5A5A5A5A5A56584
+:109BE00095A5A5A6A5A5A5A5A5A5A5A5A5A5A56574
+:109BF00095656565656565656565656565656555F5
+:109C00000096AAAA96969696969696969695AA00E5
+:109C100000A6A6A6A5A5A5A5A5A5A5A5A5A5A6003A
+:109C200000A6A6A6A5A5A5A5A5A5A5A5A5A5A6002A
+:109C300000A6A6A6A5A5A5A5A5A5A5A5A5A5A6001A
+:109C400000A6A6A6A5A5A5A5A5A5A5A5A5A5A6000A
+:109C500000A6A6A6A5A5A5A5A5A5A5A5A5A5A600FA
+:109C600000A5A6A6A5A5A5A5A5A5A5A5A5A5A600EB
+:109C700000A5A6A6A5A5A5A5A5A5A5A5A5A5A600DB
+:109C800000A5A6A6A5A5A5A5A5A5A5A5A5A5A500CC
+:109C900000A5A6A6A5A5A5A5A5A5A5A5A5A5A500BC
+:109CA00000A5A5A6A5A5A5A5A5A5A5A5A5A5A500AD
+:109CB00000A5A5A6A5A5A5A5A5A5A5A5A5A5A5009D
+:109CC00000A5A5A6A5A5A5A5A5A5A5A5A5A5A5008D
+:109CD00000A5A5A6A5A5A5A5A5A5A5A5A5A5A5007D
+:109CE00000A5A5A6A5A5A5A5A5A5A5A5A5A5A5006D
+:109CF00000656565656565656565656565656500DE
+:109D00000096AAAA96969696969696969696AA00E3
+:109D100000A6A6A6A5A5A5A5A5A5A5A5A5A5A60039
+:109D200000A6A6A6A5A5A5A5A5A5A5A5A5A5A60029
+:109D300000A6A6A6A5A5A5A5A5A5A5A5A5A5A60019
+:109D400000A6A6A6A5A5A5A5A5A5A5A5A5A5A60009
+:109D500000A6A6A6A5A5A5A5A5A5A5A5A5A5A600F9
+:109D600000A6A6A6A5A5A5A5A5A5A5A5A5A5A600E9
+:109D700000A5A6A6A5A5A5A5A5A5A5A5A5A5A600DA
+:109D800000A5A6A6A5A5A5A5A5A5A5A5A5A5A600CA
+:109D900000A5A6A6A5A5A5A5A5A5A5A5A5A5A500BB
+:109DA00000A5A6A6A5A5A5A5A5A5A5A5A5A5A500AB
+:109DB00000A5A5A6A5A5A5A5A5A5A5A5A5A5A5009C
+:109DC00000A5A5A6A5A5A5A5A5A5A5A5A5A5A5008C
+:109DD00000A5A5A6A5A5A5A5A5A5A5A5A5A5A5007C
+:109DE00000A5A5A6A5A5A5A5A5A5A5A5A5A5A5006C
+:109DF00000656566656565656565656565656500DC
+:109E00009A9AAAAA969696969696969696A6AA6ACA
+:109E100095A6A6A6A5A5A5A5A5A5A5A5A5A5A6663D
+:109E200095A6A6A6A5A5A5A5A5A5A5A5A5A5A6662D
+:109E300095A6A6A6A5A5A5A5A5A5A5A5A5A5A6661D
+:109E400095A6A6A6A5A5A5A5A5A5A5A5A5A5A6660D
+:109E500095A6A6A6A5A5A5A5A5A5A5A5A5A5A666FD
+:109E600095A6A6A6A5A5A5A5A5A5A5A5A5A5A666ED
+:109E700095A6A6A6A5A5A5A5A5A5A5A5A5A5A666DD
+:109E800095A5A6A6A5A5A5A5A5A5A5A5A5A5A666CE
+:109E900095A5A6A6A5A5A5A5A5A5A5A5A5A5A666BE
+:109EA00095A5A6A6A5A5A5A5A5A5A5A5A5A5A566AF
+:109EB00095A5A6A6A5A5A5A5A5A5A5A5A5A5A5669F
+:109EC00095A5A5A6A5A5A5A5A5A5A5A5A5A5A56690
+:109ED00095A5A5A6A5A5A5A5A5A5A5A5A5A5A56680
+:109EE00095A5A5A6A5A5A5A5A5A5A5A5A5A5A56670
+:109EF00095656566656565656565656565656555F1
+:109F00009A9AAAAA9696969696969A8696A6AA6AD5
+:109F100095A6A6A6A5A5A5A5A5A5A5A5A5A5A6663C
+:109F200095A6A6A6A5A5A5A5A5A5A5A5A5A5A6662C
+:109F300095A6A6A6A5A5A5A5A5A5A5A5A5A5A6661C
+:109F400095A6A6A6A5A5A5A5A5A5A5A5A5A5A6660C
+:109F500095A6A6A6A5A5A5A5A5A5A5A5A5A5A666FC
+:109F600095A6A6A6A5A5A5A5A5A5A5A5A5A5A666EC
+:109F700095A6A6A6A5A5A5A5A5A5A5A5A5A5A666DC
+:109F800095A6A6A6A5A5A5A5A5A5A5A5A5A5A666CC
+:109F900095A5A6A6A5A5A5A5A5A5A5A5A5A5A666BD
+:109FA00095A5A6A6A5A5A5A5A5A5A5A5A5A5A666AD
+:109FB00095A5A6A6A5A5A5A5A5A5A5A5A5A5A5669E
+:109FC00095A5A6A6A5A5A5A5A5A5A5A5A5A5A5668E
+:109FD00095A5A6A6A5A5A5A5A5A5A5A5A5A5A5667E
+:109FE00095A5A6A6A5A5A5A5A5A5A5A5A5A5A5666E
+:109FF00095656666656565656565656565656555EF
+:10A0000000AAAAAA969696969A9AAAA6A6A6AA0080
+:10A0100000A6A6A6A5A5A5A5A5A5A5A5A5A5A60036
+:10A0200000A6A6A6A5A5A5A5A5A5A5A5A5A5A60026
+:10A0300000A6A6A6A5A5A5A5A5A5A5A5A5A5A60016
+:10A0400000A6A6A6A5A5A5A5A5A5A5A5A5A5A60006
+:10A0500000A6A6A6A5A5A5A5A5A5A5A5A5A5A600F6
+:10A0600000A6A6A6A5A5A5A5A5A5A5A5A5A5A600E6
+:10A0700000A6A6A6A5A5A5A5A5A5A5A5A5A5A600D6
+:10A0800000A6A6A6A5A5A5A5A5A5A5A5A5A5A600C6
+:10A0900000A6A6A6A5A5A5A5A5A5A5A5A5A5A600B6
+:10A0A00000A5A6A6A5A5A5A5A5A5A5A5A5A5A600A7
+:10A0B00000A5A6A6A5A5A5A5A5A5A5A5A5A5A60097
+:10A0C00000A5A6A6A5A5A5A5A5A5A5A5A5A5A50088
+:10A0D00000A5A6A6A5A5A5A5A5A5A5A5A5A5A50078
+:10A0E00000A5A6A6A5A5A5A5A5A5A5A5A5A5A50068
+:10A0F00000656666656565656565656565656500D8
+:10A1000000AAAAAA969696969A8AAAA6A6A6AA008F
+:10A1100000A6A6A6A6A6A6A6A6A6A6A6A6A6A6002B
+:10A1200000A6A6A6A6A6A6A6A6A6A6A6A6A6A6001B
+:10A1300000A6A6A6A6A6A6A6A6A6A6A6A6A6A6000B
+:10A1400000A6A6A6A6A6A6A6A6A6A6A6A6A6A600FB
+:10A1500000A6A6A6A6A6A6A6A6A6A6A6A6A6A600EB
+:10A1600000A6A6A6A6A6A6A6A6A6A6A6A6A6A600DB
+:10A1700000A6A6A6A6A6A6A6A6A6A6A6A6A6A600CB
+:10A1800000A6A6A6A6A6A6A6A6A6A6A6A6A6A600BB
+:10A1900000A6A6A6A6A6A6A6A6A6A6A6A6A6A600AB
+:10A1A00000A6A6A6A6A6A6A6A6A6A6A6A6A6A6009B
+:10A1B00000A5A6A6A6A6A6A6A6A6A6A6A6A6A6008C
+:10A1C00000A5A6A6A6A6A6A6A6A6A6A6A6A6A6007C
+:10A1D00000A5A6A6A6A6A6A6A6A6A6A6A6A6A6006C
+:10A1E00000A5A6A6A6A6A6A6A6A6A6A6A6A6A6005C
+:10A1F00000666666656565656565656565656500D6
+:10A200009AAAAAAA96969696AAAAAAAAA6A6AA6A56
+:10A2100095A6A6A6A6A6A6A6A6A6A6A6A6A6A6662F
+:10A2200095A6A6A6A6A6A6A6A6A6A6A6A6A6A6661F
+:10A2300095A6A6A6A6A6A6A6A6A6A6A6A6A6A6660F
+:10A2400095A6A6A6A6A6A6A6A6A6A6A6A6A6A666FF
+:10A2500095A6A6A6A6A6A6A6A6A6A6A6A6A6A666EF
+:10A2600095A6A6A6A6A6A6A6A6A6A6A6A6A6A666DF
+:10A2700095A6A6A6A6A6A6A6A6A6A6A6A6A6A666CF
+:10A2800095A6A6A6A6A6A6A6A6A6A6A6A6A6A666BF
+:10A2900095A6A6A6A6A6A6A6A6A6A6A6A6A6A666AF
+:10A2A00095A6A6A6A6A6A6A6A6A6A6A6A6A6A6669F
+:10A2B00095A6A6A6A6A6A6A6A6A6A6A6A6A6A6668F
+:10A2C00095A5A6A6A6A6A6A6A6A6A6A6A6A6A66680
+:10A2D00095A5A6A6A6A6A6A6A6A6A6A6A6A6A66670
+:10A2E00095A5A6A6A6A6A6A6A6A6A6A6A6A6A66660
+:10A2F00095666666656565656565656565656555EB
+:10A300009AAAAAAA969696AAAAAAAAAAA6A6AA6A41
+:10A3100095A6A6AAA6A6A6A6A6A6A6A6A6A6A6662A
+:10A3200095A6A6AAA6A6A6A6A6A6A6A6A6A6A6661A
+:10A3300095A6A6AAA6A6A6A6A6A6A6A6A6A6A6660A
+:10A3400095A6A6AAA6A6A6A6A6A6A6A6A6A6A666FA
+:10A3500095A6A6AAA6A6A6A6A6A6A6A6A6A6A666EA
+:10A3600095A6A6AAA6A6A6A6A6A6A6A6A6A6A666DA
+:10A3700095A6A6AAA6A6A6A6A6A6A6A6A6A6A666CA
+:10A3800095A6A6AAA6A6A6A6A6A6A6A6A6A6A666BA
+:10A3900095A6A6AAA6A6A6A6A6A6A6A6A6A6A666AA
+:10A3A00095A6A6AAA6A6A6A6A6A6A6A6A6A6A6669A
+:10A3B00095A6A6AAA6A6A6A6A6A6A6A6A6A6A6668A
+:10A3C00095A6A6AAA6A6A6A6A6A6A6A6A6A6A6667A
+:10A3D00095A6A6AAA6A6A6A6A6A6A6A6A6A6A6666A
+:10A3E00095A6A6AAA6A6A6A6A6A6A6A6A6A6A6665A
+:10A3F0009566666A656565656565656565656655E5
+:10A4000000AAAAAA969696AAAAAAAAAAAAA6AA0040
+:10A4100000A6A6AAA6A6A6A6A6A6A6A6A6A6A60024
+:10A4200000A6A6AAA6A6A6A6A6A6A6A6A6A6A60014
+:10A4300000A6A6AAA6A6A6A6A6A6A6A6A6A6A60004
+:10A4400000A6A6AAA6A6A6A6A6A6A6A6A6A6A600F4
+:10A4500000A6A6AAA6A6A6A6A6A6A6A6A6A6A600E4
+:10A4600000A6A6AAA6A6A6A6A6A6A6A6A6A6A600D4
+:10A4700000A6A6AAA6A6A6A6A6A6A6A6A6A6A600C4
+:10A4800000A6A6AAA6A6A6A6A6A6A6A6A6A6A600B4
+:10A4900000A6A6AAA6A6A6A6A6A6A6A6A6A6A600A4
+:10A4A00000A6A6AAA6A6A6A6A6A6A6A6A6A6A60094
+:10A4B00000A6A6AAA6A6A6A6A6A6A6A6A6A6A60084
+:10A4C00000A6A6AAA6A6A6A6A6A6A6A6A6A6A60074
+:10A4D00000A6A6AAA6A6A6A6A6A6A6A6A6A6A60064
+:10A4E00000A6A6AA96A6A6A6A6A6A6A6A6A6A60064
+:10A4F0000066666A656565656565656565656600CE
+:10A5000000AAAAAA9696AAAAAAAAAAAAAAAAAA0027
+:10A5100000A6A6AAA6A6A6A6A6A6AAA6A6A6A6001F
+:10A5200000A6A6AAA6A6A6A6A6A6A6A6A6A6A60013
+:10A5300000A6A6AAA6A6A6A6A6A6A6A6A6A6A60003
+:10A5400000A6A6AAA6A6A6A6A6A6A6A6A6A6A600F3
+:10A5500000A6A6AAA6A6A6A6A6A6A6A6A6A6A600E3
+:10A5600000A6A6AAA6A6A6A6A6A6A6A6A6A6A600D3
+:10A5700000A6A6AAA6A6A6A6A6A6A6A6A6A6A600C3
+:10A5800000A6A6AAA6A6A6A6A6A6A6A6A6A6A600B3
+:10A5900000A6A6AAA6A6A6A6A6A6A6A6A6A6A600A3
+:10A5A00000A6A6AAA6A6A6A6A6A6A6A6A6A6A60093
+:10A5B00000A6A6AAA6A6A6A6A6A6A6A6A6A6A60083
+:10A5C00000A6A6AAA6A6A6A6A6A6A6A6A6A6A60073
+:10A5D00000A6A6AA96A6A6A6A6A6A6A6A6A6A60073
+:10A5E00000A6A6AA96A6A6A6A6A6A6A6A6A6A60063
+:10A5F0000066666A656565656566666666656600C9
+:10A600009AAAAA2A161A2A2A2A2A2A2A2A2A2A6A1E
+:10A6100095A6A62A2626262626262A262626266623
+:10A6200095A6A62A26262626262626262626266617
+:10A6300095A6A62A26262626262626262626266607
+:10A6400095A6A62A262626262626262626262666F7
+:10A6500095A6A62A262626262626262626262666E7
+:10A6600095A6A62A262626262626262626262666D7
+:10A6700095A6A62A262626262626262626262666C7
+:10A6800095A6A62A262626262626262626262666B7
+:10A6900095A6A62A262626262626262626262666A7
+:10A6A00095A6A62A26262626262626262626266697
+:10A6B00095A6A62A26262626262626262626266687
+:10A6C00095A6A62A26262626262626262626266677
+:10A6D00095A6A62A16262626262626262626266677
+:10A6E00095A6A62A16262626262626262626266667
+:10A6F00095A6A62A2525252526262626262526555D
+:10A700009AAAAA2A1A1A2A2A2A2A2A2A2A2A2A6A19
+:10A7100095A6AA2A26262626262A2A2A2A262A660E
+:10A7200095A6AA2A2626262626262A26262626660E
+:10A7300095A6AA2A26262626262626262626266602
+:10A7400095A6AA2A262626262626262626262666F2
+:10A7500095A6AA2A262626262626262626262666E2
+:10A7600095A6AA2A162626262626262626262666E2
+:10A7700095A6AA2A162626262626262626262666D2
+:10A7800095A6AA2A162626262626262626262666C2
+:10A7900095A6AA2A162626262626262626262666B2
+:10A7A00095A6AA2A162626262626262626262666A2
+:10A7B00095A6AA2A16262626262626262626266692
+:10A7C00095A6AA2A16262626262626262626266682
+:10A7D00095A6AA2A16262626262626262626266672
+:10A7E00095A6AA2A16262626262626262626266662
+:10A7F00095A6AA2A15252626262626262626265565
+:10A8000000AAAA2A1A2A2A2A2A2A2A2A2A2A2A000C
+:10A8100000A6AA2A262626262A2A2A2A2A262A0004
+:10A8200000A6AA2A2626262626262A262626260008
+:10A8300000A6AA2A262626262626262626262600FC
+:10A8400000A6AA2A262626262626262626262600EC
+:10A8500000A6AA2A162626262626262626262600EC
+:10A8600000A6AA2A162626262626262626262600DC
+:10A8700000A6AA2A162626262626262626262600CC
+:10A8800000A6AA2A162626262626262626262600BC
+:10A8900000A6AA2A162626262626262626262600AC
+:10A8A00000A6AA2A1626262626262626262626009C
+:10A8B00000A6AA2A1626262626262626262626008C
+:10A8C00000A6AA2A1626262626262626262626007C
+:10A8D00000A6AA2A1626262626262A262626260068
+:10A8E00000A6AA2A1626262626262626262626005C
+:10A8F00040A6AA2A1526262626262626262626000D
+:10A9000000AAAAAA1A2A2A2A2A2A2A2A2A2A2A008B
+:10A9100000A6AAAA262626262A2A2A2A2A2A2A007F
+:10A9200000A6AAAA26262626262A2A2A2A262A0077
+:10A9300000A6AAAA2626262626262A2626262A0073
+:10A9400000A6AAAA1626262626262A2626262A0073
+:10A9500000A6AAAA1626262626262A2626262A0063
+:10A9600000A6AAAA1626262626262A2626262A0053
+:10A9700000A6AAAA1626262626262A2626262A0043
+:10A9800000A6AAAA162626262626262626262A0037
+:10A9900000A6AAAA162626262626262626262A0027
+:10A9A00000A6AAAA162626262626262626262A0017
+:10A9B00000A6AAAA162626262626262626262A0007
+:10A9C00000A6AAAA162626262626262626262A00F7
+:10A9D00000A6AAAA1626262626262A2626262A00E3
+:10A9E00000A6AAAA1616262626262A2626262A00E3
+:10A9F00040A6AAAA162626262626262626262A0087
+:10AA00009AAAAAAA1A2A2A2A2A2A2A2A2A2A2A6A86
+:10AA100095A6AAAA2626262A2A2A2A2A2A2A2A667F
+:10AA200095A6AAAA262626262A2A2A2A2A262A6677
+:10AA300095A6AAAA1626262626262A2626262A6687
+:10AA400095A6AAAA1626262626262A2626262A6677
+:10AA500095A6AAAA1626262626262A2626262A6667
+:10AA600095A6AAAA1626262626262A2626262A6657
+:10AA700095A6AAAA1626262626262A2626262A6647
+:10AA800095A6AAAA1626262626262A2626262A6637
+:10AA900095A6AAAA1626262626262A2626262A6627
+:10AAA00095A6AAAA1626262626262A2626262A6617
+:10AAB00095A6AAAA1626262626262A2626262A6607
+:10AAC00095A6AAAA1626262626262A2626262A66F7
+:10AAD00095A6AAAA16162626262A2A2A2A262A66EB
+:10AAE00095A6AAAA1616262626262A2626262A66E7
+:10AAF00015A6AAAA162626262626262626262A555C
+:10AB00009AAAAAAA2A2A2A2A2A2A2A2A2A2A2A6A75
+:10AB100095AAAAAA2626262A2A2A2A2A2A2A2A667A
+:10AB200095AAAAAA262626262A2A2A2A2A2A2A666E
+:10AB300095AAAAAA16262626262A2A2A2A262A6676
+:10AB400095AAAAAA16262626262A2A2A2A262A6666
+:10AB500095AAAAAA16262626262A2A2A2A262A6656
+:10AB600095AAAAAA16262626262A2A2A2A262A6646
+:10AB700095AAAAAA16262626262A2A2A2A262A6636
+:10AB800095AAAAAA1626262626262A2626262A6632
+:10AB900095AAAAAA1626262626262A2626262A6622
+:10ABA00095AAAAAA1626262626262A2626262A6612
+:10ABB00095AAAAAA1626262626262A2626262A6602
+:10ABC00095AAAAAA1626262626262A2626262A66F2
+:10ABD00095AAAAAA161626262A2A2A2A2A262A66E2
+:10ABE00095AAAAAA16162626262A2A2A2A262A66D6
+:10ABF00015AAAAAA1626262626262A2626262A5553
+:10AC000000AAAAAA2A2A2A2A2A2A2A2A2A2A2A0078
+:10AC100000AAAAAA26262A2A2A2A2A2A2A2A2A0070
+:10AC200000AAAAAA1626262A2A2A2A2A2A2A2A0074
+:10AC300000AAAAAA162626262A2A2A2A2A262A006C
+:10AC400000AAAAAA162626262A2A2A2A2A262A005C
+:10AC500000AAAAAA162626262A2A2A2A2A262A004C
+:10AC600000AAAAAA161626262A2A2A2A2A262A004C
+:10AC700000AAAAAA161626262A2A2A2A2A262A003C
+:10AC800000AAAAAA16162626262A2A2A2A262A0030
+:10AC900000AAAAAA16162626262A2A2A2A262A0020
+:10ACA00000AAAAAA16162626262A2A2A2A262A0010
+:10ACB00000AAAAAA16162626262A2A2A2A262A0000
+:10ACC00000AAAAAA16162626262A2A2A2A262A00F0
+:10ACD00000AAAAAA161626262A2A2A2A2A2A2A00D8
+:10ACE00000AAAAAA161616262A2A2A2A2A262A00DC
+:10ACF00040AAAAAA1616262626262A2626262A008C
+:10AD000000AAAAAAAA2A2A2A2A2A2A2A2A2A2A00F7
+:10AD1000009AAAAAA62A2A2A2A2A2A2A2A2A2A00FB
+:10AD2000009AAAAA9626262A2A2A2A2A2A2A2A0003
+:10AD3000009AAAAA962626262A2A2A2A2A2A2A00F7
+:10AD4000009AAAAA962626262A2A2A2A2A2A2A00E7
+:10AD5000009AAAAA961626262A2A2A2A2A2A2A00E7
+:10AD6000009AAAAA961626262A2A2A2A2A2A2A00D7
+:10AD7000009AAAAA961626262A2A2A2A2A262A00CB
+:10AD8000009AAAAA961626262A2A2A2A2A262A00BB
+:10AD9000009AAAAA961626262A2A2A2A2A262A00AB
+:10ADA000009AAAAA961626262A2A2A2A2A262A009B
+:10ADB000009AAAAA961626262A2A2A2A2A262A008B
+:10ADC000009AAAAA961626262A2A2A2A2A262A007B
+:10ADD000009AAAAA9616162A2A2A2A2A2A2A2A0073
+:10ADE000009AAAAA961616262A2A2A2A2A2A2A0067
+:10ADF000409AAAAA96162626262A2A2A2A262A000F
+:10AE000095AAAAAAAA2A2A2A2A2A2A2A2A2A2A6AF7
+:10AE1000959AAAAA962A2A2A2A2A2A2A2A2A2A660F
+:10AE2000959AAAAA96262A2A2A2A2A2A2A2A2A6603
+:10AE3000959AAAAA9626262A2A2A2A2A2A2A2A66F7
+:10AE4000959AAAAA9616262A2A2A2A2A2A2A2A66F7
+:10AE5000959AAAAA9616262A2A2A2A2A2A2A2A66E7
+:10AE6000959AAAAA9616262A2A2A2A2A2A2A2A66D7
+:10AE7000959AAAAA9616262A2A2A2A2A2A2A2A66C7
+:10AE8000959AAAAA961626262A2A2A2A2A2A2A66BB
+:10AE9000959AAAAA961626262A2A2A2A2A2A2A66AB
+:10AEA000959AAAAA961626262A2A2A2A2A2A2A669B
+:10AEB000959AAAAA961626262A2A2A2A2A2A2A668B
+:10AEC000959AAAAA961626262A2A2A2A2A2A2A667B
+:10AED000959AAAAA9616162A2A2A2A2A2A2A2A6677
+:10AEE000959AAAAA9616162A2A2A2A2A2A2A2A6667
+:10AEF000159AAAAA961626262A2A2A2A2A262A56DF
+:10AF000095AAAAAAAAAA2A2A2A2A2A2A2A2A2A6A76
+:10AF1000959AAAAA9AAA2A2A2A2A2A2A2A2A2A668A
+:10AF2000959AAAAA96AA2A2A2A2A2A2A2A2A2A667E
+:10AF3000959AAAAA9696262A2A2A2A2A2A2A2A6686
+:10AF4000959AAAAA9696262A2A2A2A2A2A2A2A6676
+:10AF5000959AAAAA9696262A2A2A2A2A2A2A2A6666
+:10AF6000959AAAAA9696162A2A2A2A2A2A2A2A6666
+:10AF7000959AAAAA9696162A2A2A2A2A2A2A2A6656
+:10AF8000959AAAAA9696162A2A2A2A2A2A2A2A6646
+:10AF9000959AAAAA9696162A2A2A2A2A2A2A2A6636
+:10AFA000959AAAAA9696162A2A2A2A2A2A2A2A6626
+:10AFB000959AAAAA9696162A2A2A2A2A2A2A2A6616
+:10AFC000959AAAAA9696162A2A2A2A2A2A2A2A6606
+:10AFD000959AAAAA96961A2A2A2A2A2A2A2A2A66F2
+:10AFE000959AAAAA9696161A2A2A2A2A2A2A2A66F6
+:10AFF000159AAAAA969616262A2A2A2A2A2A2A566A
+:10B0000000AAAAAAAAAA2A2A2A2A2A2A2A2A2A0074
+:10B01000009AAAAA9AAA2A2A2A2A2A2A2A2A2A0084
+:10B02000009AAAAA96AA2A2A2A2A2A2A2A2A2A0078
+:10B03000009AAAAA96962A2A2A2A2A2A2A2A2A007C
+:10B04000009AAAAA96962A2A2A2A2A2A2A2A2A006C
+:10B05000009AAAAA96961A2A2A2A2A2A2A2A2A006C
+:10B06000009AAAAA96961A2A2A2A2A2A2A2A2A005C
+:10B07000009AAAAA96961A2A2A2A2A2A2A2A2A004C
+:10B08000009AAAAA9696162A2A2A2A2A2A2A2A0040
+:10B09000009AAAAA9696162A2A2A2A2A2A2A2A0030
+:10B0A000009AAAAA9696162A2A2A2A2A2A2A2A0020
+:10B0B000009AAAAA9696162A2A2A2A2A2A2A2A0010
+:10B0C000009AAAAA9696162A2A2A2A2A2A2A2A0000
+:10B0D000009AAAAA969A1A1A2A2A2A2A2A2A2A00F8
+:10B0E000009AAAAA96961A1A2A2A2A2A2A2A2A00EC
+:10B0F000409AAAAA9696162A2A2A2A2A2A2A2A0090
+:10B1000000AAAAAAAAAAAA2A2A2A2A2A2A2A2A00F3
+:10B11000009A9AAA9AAAAA2A2A2A2A2A2A2A2A0013
+:10B12000009A9AAA9A9AAA2A2A2A2A2A2A2A2A0013
+:10B13000009A9AAA969AAA2A2A2A2A2A2A2A2A0007
+:10B14000009A9AAA969A9A2A2A2A2A2A2A2A2A0007
+:10B15000009A9AAA969A9A2A2A2A2A2A2A2A2A00F7
+:10B16000009A9AAA969A9A2A2A2A2A2A2A2A2A00E7
+:10B17000009A9AAA969A9A2A2A2A2A2A2A2A2A00D7
+:10B18000009A9AAA96969A2A2A2A2A2A2A2A2A00CB
+:10B19000009A9AAA96969A2A2A2A2A2A2A2A2A00BB
+:10B1A000009A9AAA96969A2A2A2A2A2A2A2A2A00AB
+:10B1B000009A9AAA96969A2A2A2A2A2A2A2A2A009B
+:10B1C000009A9AAA96969A2A2A2A2A2A2A2A2A008B
+:10B1D000009A9AAA969A9A1A2A2A2A2A2A2A2A0087
+:10B1E000009A9AAA969A9A1A2A2A2A2A2A2A2A0077
+:10B1F000409A9AAA9696962A2A2A2A2A2A2A2A001F
+:10B2000095AAAAAAAAAAAAAA2A2A2A2A2A2A2A6A73
+:10B21000959A9AAA9AAAAAAA2A2A2A2A2A2A2A6A93
+:10B22000959A9AAA9A9AAAAA2A2A2A2A2A2A2A6A93
+:10B23000959A9AAA969A9AAA2A2A2A2A2A2A2A6A97
+:10B24000959A9AAA969A9AAA2A2A2A2A2A2A2A6A87
+:10B25000959A9AAA969A9AAA2A2A2A2A2A2A2A6A77
+:10B26000959A9AAA969A9A9A2A2A2A2A2A2A2A6A77
+:10B27000959A9AAA969A9A9A2A2A2A2A2A2A2A6A67
+:10B28000959A9AAA969A9A9A2A2A2A2A2A2A2A6A57
+:10B29000959A9AAA969A9A9A2A2A2A2A2A2A2A6A47
+:10B2A000959A9AAA969A9A9A2A2A2A2A2A2A2A6A37
+:10B2B000959A9AAA969A9A9A2A2A2A2A2A2A2A6A27
+:10B2C000959A9AAA969A9A9A2A2A2A2A2A2A2A6A17
+:10B2D000959A9AAA9A9A9A9A2A2A2A2A2A2A2A6A03
+:10B2E000959A9AAA969A9A9A1A2A2A2A2A2A2A6A07
+:10B2F000159A9AAA96969A9A2A2A2A2A2A2A2A5A7B
+:10B3000095AAAAAAAAAAAAAAAA2A2A2A2A2A2A6AF2
+:10B31000959A9AAA9A9AAAAAAA2A2A2A2A2A2A6A22
+:10B32000959A9AAA9A9AAAAAAA2A2A2A2A2A2A6A12
+:10B33000959A9AAA9A9A9AAAAA2A2A2A2A2A2A6A12
+:10B34000959A9AAA9A9A9AAAAA2A2A2A2A2A2A6A02
+:10B35000959A9AAA9A9A9A9AAA2A2A2A2A2A2A6A02
+:10B36000959A9AAA9A9A9A9AAA2A2A2A2A2A2A6AF2
+:10B37000959A9AAA9A9A9A9AAA2A2A2A2A2A2A6AE2
+:10B38000959A9AAA969A9A9AAA2A2A2A2A2A2A6AD6
+:10B39000959A9AAA969A9A9AAA2A2A2A2A2A2A6AC6
+:10B3A000959A9AAA969A9A9AAA2A2A2A2A2A2A6AB6
+:10B3B000959A9AAA969A9A9AAA2A2A2A2A2A2A6AA6
+:10B3C000959A9AAA969A9A9AAA2A2A2A2A2A2A6A96
+:10B3D000959A9AAA9A9A9A9A9A2A2A2A2A2A2A6A92
+:10B3E000959A9AAA9A9A9A9A9A2A2A2A2A2A2A6A82
+:10B3F000159A9AAA969A9A9AAA2A2A2A2A2A2A5AF6
+:10B4000040A9A9A9AAA8A8A8A828282828282800C7
+:10B41000409999A99A98A8A8A828282828282800F7
+:10B42000409999A99A9898A8A828282828282800F7
+:10B43000409999A99A9898A8A828282828282800E7
+:10B44000409999A99A989898A828282828282800E7
+:10B45000409999A99A989898A828282828282800D7
+:10B46000409999A99A989898A828282828282800C7
+:10B47000409999A99A989898A828282828282800B7
+:10B48000409999A99A989898A828282828282800A7
+:10B49000409999A99A989898A82828282828280097
+:10B4A000409999A99A989898A82828282828280087
+:10B4B000409999A99A989898A82828282828280077
+:10B4C000409999A99A989898A82828282828280067
+:10B4D000409999A99A989898982828282828280067
+:10B4E000409999A99A989898981828282828280067
+:10B4F000409999A996989898A8282828282828003B
+:10B5000040A9A9A9AAA8A8A8A8A82828A8282800C6
+:10B51000409999A99A98A8A8A8A82828A8282800F6
+:10B52000409999A99A9898A8A8A82828A8282800F6
+:10B53000409999A99A989898A8A82828A8282800F6
+:10B54000409999A99A989898A8A82828A8282800E6
+:10B55000409999A99A989898A8A82828A8282800D6
+:10B56000409999A99A98989898A82828A8282800D6
+:10B57000409999A99A98989898A82828A8282800C6
+:10B58000409999A99A98989898A82828A8282800B6
+:10B59000409999A99A98989898A82828A8282800A6
+:10B5A000409999A99A98989898A82828A828280096
+:10B5B000409999A99A98989898A82828A828280086
+:10B5C000409999A99A98989898A82828A828280076
+:10B5D000409999A99A98989898982828A828280076
+:10B5E000409999A99A98989898982828A828280066
+:10B5F000409999A99A98989898A82828A828280046
+:10B6000015A9A9A9AAAAA8A8A8A8A8282828286A84
+:10B61000159999A99A9A98A8A8A8A8282828286AC4
+:10B62000159999A99A9A98A8A8A8A8282828286AB4
+:10B63000159999A99A9A9898A8A8A8282828286AB4
+:10B64000159999A99A9A9898A8A8A8282828286AA4
+:10B65000159999A99A9A989898A8A8282828286AA4
+:10B66000159999A99A9A989898A8A8282828286A94
+:10B67000159999A99A9A989898A8A8282828286A84
+:10B68000159999A99A9A989898A8A8282828286A74
+:10B69000159999A99A9A989898A8A8282828286A64
+:10B6A000159999A99A9A989898A8A8282828286A54
+:10B6B000159999A99A9A989898A8A8282828286A44
+:10B6C000159999A99A9A989898A8A8282828286A34
+:10B6D000159999A99A9A98989898A8282828286A34
+:10B6E000159999A99A9A9898989888282828286A44
+:10B6F000159999A99A9A989898A8A8282828286A04
+:10B7000015A9A9A9AAAAA8A8A8A8A8A82828286A03
+:10B71000159999999A9A98A8A8A8A8A82828286A53
+:10B72000159999999A9A9898A8A8A8A82828286A53
+:10B73000159999999A9A9898A8A8A8A82828286A43
+:10B74000159999999A9A989898A8A8A82828286A43
+:10B75000159999999A9A989898A8A8A82828286A33
+:10B76000159999999A9A98989898A8A82828286A33
+:10B77000159999999A9A98989898A8A82828286A23
+:10B78000159999999A9A98989898A8A82828286A13
+:10B79000159999999A9A98989898A8A82828286A03
+:10B7A000159999999A9A98989898A8A82828286AF3
+:10B7B000159999999A9A98989898A8A82828286AE3
+:10B7C000159999999A9A98989898A8A82828286AD3
+:10B7D000159999999A9A9898989888A82828286AE3
+:10B7E000159999999A9A9898989898A82828286AC3
+:10B7F000159999999A9A98989898A8A82828286AA3
+:10B8000040A9A9A9AAAAAAA8A8A8A8A8A8A828003F
+:10B81000409999999A9A9AA8A8A8A8A8A8A828008F
+:10B82000409999999A9A9A98A8A8A8A8A8A828008F
+:10B83000409999999A9A9A9898A8A8A8A8A828008F
+:10B84000409999999A9A9A9898A8A8A8A8A828007F
+:10B85000409999999A9A9A989898A8A8A8A828007F
+:10B86000409999999A9A9A989898A8A8A8A828006F
+:10B87000409999999A9A9A989898A8A8A8A828005F
+:10B88000409999999A9A9A989898A8A8A8A828004F
+:10B89000409999999A9A9A989898A8A8A8A828003F
+:10B8A000409999999A9A9A989898A8A8A8A828002F
+:10B8B000409999999A9A9A989898A8A8A8A828001F
+:10B8C000409999999A9A9A989898A8A8A8A828000F
+:10B8D000409999999A9A9A98989898A8A8A828000F
+:10B8E000409999999A9A9A9898989898A8A828000F
+:10B8F000409999999A9A9A989898A8A8A8A82800DF
+:10B90000406969696A6A6A6868686868686868003E
+:10B91000405959595A5A5A5868686868686868009E
+:10B92000405959595A5A5A5868686868686868008E
+:10B93000405959595A5A5A5858686868686868008E
+:10B94000405959595A5A5A5858586868686868008E
+:10B95000405959595A5A5A5858586868686868007E
+:10B96000405959595A5A5A5858584868686868008E
+:10B97000405959595A5A5A5858584868686868007E
+:10B98000405959595A5A5A5858584868686868006E
+:10B99000405959595A5A5A5858584868686868005E
+:10B9A000405959595A5A5A5858584868686868004E
+:10B9B000405959595A5A5A5858584868686868003E
+:10B9C000405959595A5A5A5858584868686868002E
+:10B9D000405959595A5A5A5858585858686868001E
+:10B9E000405959595A5A5A5858585858686868000E
+:10B9F000405959595A5A5A585858486868686800FE
+:10BA0000156969696A6A6A6A686868686868686AFC
+:10BA1000155959595A5A5A5A686868686868686A5C
+:10BA2000155959595A5A5A5A586868686868686A5C
+:10BA3000155959595A5A5A5A585868686868686A5C
+:10BA4000155959595A5A5A5A585868686868686A4C
+:10BA5000155959595A5A5A5A585848686868686A5C
+:10BA6000155959595A5A5A5A585858686868686A3C
+:10BA7000155959595A5A5A5A585858686868686A2C
+:10BA8000155959595A5A5A5A585858686868686A1C
+:10BA9000155959595A5A5A5A585858686868686A0C
+:10BAA000155959595A5A5A5A585858686868686AFC
+:10BAB000155959595A5A5A5A585858686868686AEC
+:10BAC000155959595A5A5A5A585858686868686ADC
+:10BAD000155959595A5A5A5A585858586868686ADC
+:10BAE000155959595A5A5A5A585858585868686ADC
+:10BAF000155959595A5A5A5A585858686868686AAC
+:10BB0000156969696A6A6A6A6A6868686868686AF9
+:10BB1000155959595A5A5A5A6A6868686868686A59
+:10BB2000155959595A5A5A5A5A6868686868686A59
+:10BB3000155959595A5A5A5A5A5868686868686A59
+:10BB4000155959595A5A5A5A5A5848686868686A69
+:10BB5000155959595A5A5A5A5A5858686868686A49
+:10BB6000155959595A5A5A5A5A5858586868686A49
+:10BB7000155959595A5A5A5A5A5858586868686A39
+:10BB8000155959595A5A5A5A5A5858586868686A29
+:10BB9000155959595A5A5A5A5A5858586868686A19
+:10BBA000155959595A5A5A5A5A5858586868686A09
+:10BBB000155959595A5A5A5A5A5858586868686AF9
+:10BBC000155959595A5A5A5A5A5858586868686AE9
+:10BBD000155959595A5A5A5A5A5858585868686AE9
+:10BBE000155959595A5A5A5A5A5858585868686AD9
+:10BBF000155959595A5A5A5A5A5858586868686AB9
+:10BC0000406969696A6A6A6A6A68686868686840F7
+:10BC1000405959595A5A5A5A5A6868686868684067
+:10BC2000405959595A5A5A5A5A5868686868684067
+:10BC3000405959595A5A5A5A5A5848686868684077
+:10BC4000405959595A5A5A5A5A5858686868684057
+:10BC5000405959595A5A5A5A5A5858586868684057
+:10BC6000405959595A5A5A5A5A5858586868684047
+:10BC7000405959595A5A5A5A5A5858586868684037
+:10BC8000405959595A5A5A5A5A5858586868684027
+:10BC9000405959595A5A5A5A5A5858586868684017
+:10BCA000405959595A5A5A5A5A5858586868684007
+:10BCB000405959595A5A5A5A5A58585868686840F7
+:10BCC000405959595A5A5A5A5A58585868686840E7
+:10BCD000405959595A5A5A5A5A58585858686840E7
+:10BCE000405959595A5A5A5A5A58585858686840D7
+:10BCF000405959595A5A5A5A5A58585868686840B7
+:10BD0000406969696A6A6A6A6A6A686868686840F4
+:10BD1000405959595A5A5A5A5A6A68686868684064
+:10BD2000405959595A5A5A5A5A5A68686868684064
+:10BD3000405959595A5A5A5A5A5A58686868684064
+:10BD4000405959595A5A5A5A5A5A58586868684064
+:10BD5000405959595A5A5A5A5A5A58586868684054
+:10BD6000405959595A5A5A5A5A5A58585868684054
+:10BD7000405959595A5A5A5A5A5A58585868684044
+:10BD8000405959595A5A5A5A5A5A58585868684034
+:10BD9000405959595A5A5A5A5A5A58585868684024
+:10BDA000405959595A5A5A5A5A5A58585868684014
+:10BDB000405959595A5A5A5A5A5A58585868684004
+:10BDC000405959595A5A5A5A5A5A585858686840F4
+:10BDD000405959595A5A5A5A5A5A585858686840E4
+:10BDE000405959595A5A5A5A5A5A585858686840D4
+:10BDF000405959595A5A5A5A5A5A585858686840C4
+:10BE0000156969696A6A6A6A6A6A6868686868AAB4
+:10BE1000155959595A5A5A5A5A5A6868686868AA34
+:10BE2000155959595A5A5A5A5A5A4868686868AA44
+:10BE3000155959595A5A5A5A5A5A5858686868AA34
+:10BE4000155959595A5A5A5A5A5A5858686868AA24
+:10BE5000155959595A5A5A5A5A5A5858586868AA24
+:10BE6000155959595A5A5A5A5A5A5858586868AA14
+:10BE7000155959595A5A5A5A5A5A5858586868AA04
+:10BE8000155959595A5A5A5A5A5A5858586868AAF4
+:10BE9000155959595A5A5A5A5A5A5858586868AAE4
+:10BEA000155959595A5A5A5A5A5A5858586868AAD4
+:10BEB000155959595A5A5A5A5A5A5858586868AAC4
+:10BEC000155959595A5A5A5A5A5A5858586868AAB4
+:10BED000155959595A5A5A5A5A5A5858586868AAA4
+:10BEE000155959595A5A5A5A5A5A5858585868AAA4
+:10BEF000155959595A5A5A5A5A5A5858586868AA84
+:10BF0000156969696A6A6A6A6A6A6A68686868AAB1
+:10BF1000155959595A5A5A5A5A5A6A68686868AA31
+:10BF2000155959595A5A5A5A5A5A5A68686868AA31
+:10BF3000155959595A5A5A5A5A5A5A58686868AA31
+:10BF4000155959595A5A5A5A5A5A5A58586868AA31
+:10BF5000155959595A5A5A5A5A5A5A58586868AA21
+:10BF6000155959595A5A5A5A5A5A5A58586868AA11
+:10BF7000155959595A5A5A5A5A5A5A58586868AA01
+:10BF8000155959595A5A5A5A5A5A5A58586868AAF1
+:10BF9000155959595A5A5A5A5A5A5A58586868AAE1
+:10BFA000155959595A5A5A5A5A5A5A58586868AAD1
+:10BFB000155959595A5A5A5A5A5A5A58586868AAC1
+:10BFC000155959595A5A5A5A5A5A5A58586868AAB1
+:10BFD000155959595A5A5A5A5A5A5A58585868AAB1
+:10BFE000155959595A5A5A5A5A5A5A58585868AAA1
+:10BFF000155959595A5A5A5A5A5A5A58586868AA81
+:10C00000406565656A62626262626260606060800B
+:10C01000405555555A5252525252426060606080AB
+:10C02000405555555A52525252525250606060809B
+:10C03000405555555A52525252525250506060809B
+:10C04000405555555A52525252525250506060808B
+:10C05000405555555A52525252525250506060807B
+:10C06000405555555A52525252525250506060806B
+:10C07000405555555A52525252525250506060805B
+:10C08000405555555A52525252525250506060804B
+:10C09000405555555A52525252525250506060803B
+:10C0A000405555555A52525252525250506060802B
+:10C0B000405555555A52525252525250506060801B
+:10C0C000405555555A52525252525250506060800B
+:10C0D000405555555A52525252525250505060800B
+:10C0E000405555555A5252525252525050506080FB
+:10C0F000405555555A5252525252525050606080DB
+:10C10000406565656A626262626262626060608008
+:10C11000405555555A525252525252626060608098
+:10C12000405555555A525252525252526060608098
+:10C13000405555555A525252525252525060608098
+:10C14000405555555A525252525252525060608088
+:10C15000405555555A525252525252525060608078
+:10C16000405555555A525252525252525050608078
+:10C17000405555555A525252525252525050608068
+:10C18000405555555A525252525252525050608058
+:10C19000405555555A525252525252525050608048
+:10C1A000405555555A525252525252525050608038
+:10C1B000405555555A525252525252525050608028
+:10C1C000405555555A525252525252525050608018
+:10C1D000405555555A525252525252525050608008
+:10C1E000405555555A5252525252525250506080F8
+:10C1F000405555555A5252525252525250506080E8
+:10C20000156565656A6A6262626262626060602A80
+:10C21000155555555A5A5252525252526060602A20
+:10C22000155555555A5A5252525252525060602A20
+:10C23000155555555A5A5252525252525060602A10
+:10C24000155555555A5A5252525252525060602A00
+:10C25000155555555A5A5252525252525050602A00
+:10C26000155555555A5A5252525252525050602AF0
+:10C27000155555555A5A5252525252525050602AE0
+:10C28000155555555A5A5252525252525050602AD0
+:10C29000155555555A5A5252525252525050602AC0
+:10C2A000155555555A5A5252525252525050602AB0
+:10C2B000155555555A5A5252525252525050602AA0
+:10C2C000155555555A5A5252525252525050602A90
+:10C2D000155555555A5A5252525252525050602A80
+:10C2E000155555555A5A5252525252525050602A70
+:10C2F000155555555A5A5252525252525050602A60
+:10C30000156565656A6A6262626262626260602A7D
+:10C31000155555555A5A5252525252526260602A1D
+:10C32000155555555A5A5252525252525260602A1D
+:10C33000155555555A5A5252525252525260602A0D
+:10C34000155555555A5A5252525252525250602A0D
+:10C35000155555555A5A5252525252525250602AFD
+:10C36000155555555A5A5252525252525250602AED
+:10C37000155555555A5A5252525252525250602ADD
+:10C38000155555555A5A5252525252525250602ACD
+:10C39000155555555A5A5252525252525250602ABD
+:10C3A000155555555A5A5252525252525250602AAD
+:10C3B000155555555A5A5252525252525250602A9D
+:10C3C000155555555A5A5252525252525250602A8D
+:10C3D000155555555A5A5252525252525250602A7D
+:10C3E000155555555A5A5252525252525250602A6D
+:10C3F000155555555A5A5252525252525250602A5D
+:10C40000406565656A6A6A626262626262606080F3
+:10C41000405555555A5A5A525252525252606080A3
+:10C42000405555555A5A5A52525252525260608093
+:10C43000405555555A5A5A52525252525250608093
+:10C44000405555555A5A5A52525252525250608083
+:10C45000405555555A5A5A52525252525250608073
+:10C46000405555555A5A5A52525252525250608063
+:10C47000405555555A5A5A52525252525250608053
+:10C48000405555555A5A5A52525252525250608043
+:10C49000405555555A5A5A52525252525250608033
+:10C4A000405555555A5A5A52525252525250608023
+:10C4B000405555555A5A5A52525252525250608013
+:10C4C000405555555A5A5A52525252525250608003
+:10C4D000405555555A5A5A525252525252506080F3
+:10C4E000405555555A5A5A525252525252506080E3
+:10C4F000405555555A5A5A525252525252506080D3
+:10C50000406565656A6A6A626262626262626080F0
+:10C51000405555555A5A5A525252525252626080A0
+:10C52000405555555A5A5A52525252525262608090
+:10C53000405555555A5A5A52525252525252608090
+:10C54000405555555A5A5A52525252525252608080
+:10C55000405555555A5A5A52525252525252608070
+:10C56000405555555A5A5A52525252525252608060
+:10C57000405555555A5A5A52525252525252608050
+:10C58000405555555A5A5A52525252525252608040
+:10C59000405555555A5A5A52525252525252608030
+:10C5A000405555555A5A5A52525252525252608020
+:10C5B000405555555A5A5A52525252525252608010
+:10C5C000405555555A5A5A52525252525252608000
+:10C5D000405555555A5A5A525252525252526080F0
+:10C5E000405555555A5A5A525252525252526080E0
+:10C5F000405555555A5A5A525252525252526080D0
+:10C600001565656569696969616161616161602A72
+:10C610001555555559595959515151515161602A22
+:10C620001555555559595959515151515151602A22
+:10C630001555555559595959515151515151602A12
+:10C640001555555559595959515151515151502A12
+:10C650001555555559595959515151515151502A02
+:10C660001555555559595959515151515151502AF2
+:10C670001555555559595959515151515151502AE2
+:10C680001555555559595959515151515151502AD2
+:10C690001555555559595959515151515151502AC2
+:10C6A0001555555559595959515151515151502AB2
+:10C6B0001555555559595959515151515151502AA2
+:10C6C0001555555559595959515151515151502A92
+:10C6D0001555555559595959515151515151502A82
+:10C6E0001555555559595959515151515151502A72
+:10C6F0001555555559595959515151515151502A62
+:10C700001565656569696969696161616160602A6A
+:10C710001555555559595959595151515160502A2A
+:10C720001555555559595959595151515150502A2A
+:10C730001555555559595959595151515150502A1A
+:10C740001555555559595959595151515150502A0A
+:10C750001555555559595959595151515150502AFA
+:10C760001555555559595959595151515150502AEA
+:10C770001555555559595959595151515150502ADA
+:10C780001555555559595959595151515150502ACA
+:10C790001555555559595959595151515150502ABA
+:10C7A0001555555559595959595151515150502AAA
+:10C7B0001555555559595959595151515150502A9A
+:10C7C0001555555559595959595151515150502A8A
+:10C7D0001555555559595959595151515150502A7A
+:10C7E0001555555559595959595151515150502A6A
+:10C7F0001555555559595959595151515150502A5A
+:10C800004055555569494949494141414140408058
+:10C810004055555469494949494941414040408042
+:10C820004055555569494949494941414040408031
+:10C830004055555569494949494941414040408021
+:10C840004055555569494949494941414040408011
+:10C850004055555569494949494941414040408001
+:10C8600040555555694949494949414140404080F1
+:10C8700040555555694949494949414140404080E1
+:10C8800040555555694949494949414140404080D1
+:10C8900040555555694949494949414140404080C1
+:10C8A00040555555694949494949414140404080B1
+:10C8B00040555555694949494949414140404080A1
+:10C8C0004055555569494949494941414040408091
+:10C8D0004055555569494949494941414040408081
+:10C8E0004055555569494949494941414040408071
+:10C8F0004055555569494949494941414040408061
+:10C900004055555569494949494941414040408050
+:10C9100015959594A9A98989898981818080802A22
+:10C9200015959595A9A98989898981818080802A11
+:10C9300015959595A9A98989898981818080802A01
+:10C9400015959595A9A98989898981818080802AF1
+:10C9500015959595A9A98989898981818080802AE1
+:10C9600015959595A9A98989898981818080802AD1
+:10C9700015959595A9A98989898981818080802AC1
+:10C9800015959595A9A98989898981818080802AB1
+:10C9900015959595A9A98989898981818080802AA1
+:10C9A00015959595A9A98989898981818080802A91
+:10C9B00015959595A9A98989898981818080802A81
+:10C9C00015959595A9A98989898981818080802A71
+:10C9D00015959595A9A98989898981818080802A61
+:10C9E00015959595A9A98989898981818080802A51
+:10C9F00015959595A9A98989898981818080802A41
+:10CA000015959595A9A98989898981818080802A30
+:10CA100015959594A9A98989898989808080802A1A
+:10CA200015959595A9A98989898989808080802A09
+:10CA300015959595A9A98989898989808080802AF9
+:10CA400015959595A9A98989898989808080802AE9
+:10CA500015959595A9A98989898989808080802AD9
+:10CA600015959595A9A98989898989808080802AC9
+:10CA700015959595A9A98989898989808080802AB9
+:10CA800015959595A9A98989898989808080802AA9
+:10CA900015959595A9A98989898989808080802A99
+:10CAA00015959595A9A98989898989808080802A89
+:10CAB00015959595A9A98989898989808080802A79
+:10CAC00015959595A9A98989898989808080802A69
+:10CAD00015959595A9A98989898989808080802A59
+:10CAE00015959595A9A98989898989808080802A49
+:10CAF00015959595A9A98989898989808080802A39
+:10CB000015959595A9A98989898989808080802A28
+:10CB100040959594A9A9A989898989808080808078
+:10CB200040959595A9A9A989898989808080808067
+:10CB300040959595A9A9A989898989808080808057
+:10CB400040959595A9A9A989898989808080808047
+:10CB500040959595A9A9A989898989808080808037
+:10CB600040959595A9A9A989898989808080808027
+:10CB700040959595A9A9A989898989808080808017
+:10CB800040959595A9A9A989898989808080808007
+:10CB900040959595A9A9A9898989898080808080F7
+:10CBA00040959595A9A9A9898989898080808080E7
+:10CBB00040959595A9A9A9898989898080808080D7
+:10CBC00040959595A9A9A9898989898080808080C7
+:10CBD00040959595A9A9A9898989898080808080B7
+:10CBE00040959595A9A9A9898989898080808080A7
+:10CBF00040959595A9A9A989898989808080808097
+:10CC000040959595A9A9A989898989808080808086
+:10CC100040959594A9A9A989898988888080808070
+:10CC200040959595A9A9A98989898888808080805F
+:10CC300040959595A9A9A98989898888808080804F
+:10CC400040959595A9A9A98989898888808080803F
+:10CC500040959595A9A9A98989898888808080802F
+:10CC600040959595A9A9A98989898888808080801F
+:10CC700040959595A9A9A98989898888808080800F
+:10CC800040959595A9A9A9898989888880808080FF
+:10CC900040959595A9A9A9898989888880808080EF
+:10CCA00040959595A9A9A9898989888880808080DF
+:10CCB00040959595A9A9A9898989888880808080CF
+:10CCC00040959595A9A9A9898989888880808080BF
+:10CCD00040959595A9A9A9898989888880808080AF
+:10CCE00040959595A9A9A98989898888808080809F
+:10CCF00040959595A9A9A98989898888808080808F
+:10CD000040959595A9A9A98989898888808080807E
+:10CD100015959494A9A9A9A9898988888080802AD1
+:10CD200015959594A9A9A9A9898988888080802AC0
+:10CD300015959594A9A9A9A9898988888080802AB0
+:10CD400015959594A9A9A9A9898988888080802AA0
+:10CD500015959594A9A9A9A9898988888080802A90
+:10CD600015959594A9A9A9A9898988888080802A80
+:10CD700015959594A9A9A9A9898988888080802A70
+:10CD800015959594A9A9A9A9898988888080802A60
+:10CD900015959594A9A9A9A9898988888080802A50
+:10CDA00015959594A9A9A9A9898988888080802A40
+:10CDB00015959594A9A9A9A9898988888080802A30
+:10CDC00015959594A9A9A9A9898988888080802A20
+:10CDD00015959594A9A9A9A9898988888080802A10
+:10CDE00015959594A9A9A9A9898988888080802A00
+:10CDF00015959594A9A9A9A9898988888080802AF0
+:10CE000015959594A9A9A9A9898988888080802ADF
+:10CE100015959494A9A9A9A9898888888880802AC9
+:10CE200015959594A9A9A9A9898888888880802AB8
+:10CE300015959594A9A9A9A9898888888880802AA8
+:10CE400015959594A9A9A9A9898888888880802A98
+:10CE500015959594A9A9A9A9898888888880802A88
+:10CE600015959594A9A9A9A9898888888880802A78
+:10CE700015959594A9A9A9A9898888888880802A68
+:10CE800015959594A9A9A9A9898888888880802A58
+:10CE900015959594A9A9A9A9898888888880802A48
+:10CEA00015959594A9A9A9A9898888888880802A38
+:10CEB00015959594A9A9A9A9898888888880802A28
+:10CEC00015959594A9A9A9A9898888888880802A18
+:10CED00015959594A9A9A9A9898888888880802A08
+:10CEE00015959594A9A9A9A9898888888880802AF8
+:10CEF00015959594A9A9A9A9898888888880802AE8
+:10CF000015959594A9A9A9A9898888888880802AD7
+:10CF100040959494A9A9A9A9A98888888880808027
+:10CF200040959594A9A9A9A9A98888888880808016
+:10CF300040959594A9A9A9A9A98888888880808006
+:10CF400040959594A9A9A9A9A988888888808080F6
+:10CF500040959594A9A9A9A9A988888888808080E6
+:10CF600040959594A9A9A9A9A988888888808080D6
+:10CF700040959594A9A9A9A9A988888888808080C6
+:10CF800040959594A9A9A9A9A988888888808080B6
+:10CF900040959594A9A9A9A9A988888888808080A6
+:10CFA00040959594A9A9A9A9A98888888880808096
+:10CFB00040959594A9A9A9A9A98888888880808086
+:10CFC00040959594A9A9A9A9A98888888880808076
+:10CFD00040959594A9A9A9A9A98888888880808066
+:10CFE00040959594A9A9A9A9A98888888880808056
+:10CFF00040959594A9A9A9A9A98888888880808046
+:10D0000040959594A9A9A9A9A98888888880808035
+:10D0100040959494A9A9A9A9A8888888888880801F
+:10D0200040959594A9A9A9A9A8888888888880800E
+:10D0300040959594A9A9A9A9A888888888888080FE
+:10D0400040959594A9A9A9A9A888888888888080EE
+:10D0500040959594A9A9A9A9A888888888888080DE
+:10D0600040959594A9A9A9A9A888888888888080CE
+:10D0700040959594A9A9A9A9A888888888888080BE
+:10D0800040959594A9A9A9A9A888888888888080AE
+:10D0900040959594A9A9A9A9A8888888888880809E
+:10D0A00040959594A9A9A9A9A8888888888880808E
+:10D0B00040959594A9A9A9A9A8888888888880807E
+:10D0C00040959594A9A9A9A9A8888888888880806E
+:10D0D00040959594A9A9A9A9A8888888888880805E
+:10D0E00040959594A9A9A9A9A8888888888880804E
+:10D0F00040959594A9A9A9A9A8888888888880803E
+:10D1000040959594A9A9A9A9A8888888888880802D
+:10D1100015959494A5A5A5A4A4A484848484802AA8
+:10D1200015959594A5A5A5A4A4A484848484802A97
+:10D1300015959594A5A5A5A4A4A484848484802A87
+:10D1400015959594A5A5A5A4A4A484848484802A77
+:10D1500015959594A5A5A5A4A4A484848484802A67
+:10D1600015959594A5A5A5A4A4A484848484802A57
+:10D1700015959594A5A5A5A4A4A484848484802A47
+:10D1800015959594A5A5A5A4A4A484848484802A37
+:10D1900015959594A5A5A5A4A4A484848484802A27
+:10D1A00015959594A5A5A5A4A4A484848484802A17
+:10D1B00015959594A5A5A5A4A4A484848484802A07
+:10D1C00015959594A5A5A5A4A4A484848484802AF7
+:10D1D00015959594A5A5A5A4A4A484848484802AE7
+:10D1E00015959594A5A5A5A4A4A484848484802AD7
+:10D1F00015959594A5A5A5A4A4A484848484802AC7
+:10D2000015959594A5A5A5A4A4A484848484802AB6
+:10D2100015959494A5A5A5A4A4A484848480802AAB
+:10D2200040959494A5A5A4A4A4A4A48484808080FB
+:10D2300040949494A5A5A4A4A4A4A48480808080F0
+:10D2400040959494A5A5A4A4A4A4A48480808080DF
+:10D2500040959494A5A5A4A4A4A4A48480808080CF
+:10D2600040959494A5A5A4A4A4A4A48480808080BF
+:10D2700040959494A5A5A4A4A4A4A48480808080AF
+:10D2800040959494A5A5A4A4A4A4A484808080809F
+:10D2900040959494A5A5A4A4A4A4A484808080808F
+:10D2A00040959494A5A5A4A4A4A4A484808080807F
+:10D2B00040959494A5A5A4A4A4A4A484808080806F
+:10D2C00040959494A5A5A4A4A4A4A484808080805F
+:10D2D00040959494A5A5A4A4A4A4A484808080804F
+:10D2E00040959494A5A5A4A4A4A4A484808080803F
+:10D2F00040959494A5A5A4A4A4A4A484808080802F
+:10D3000040959494A5A5A4A4A4A4A484808080801E
+:10D3100040959494A5A5A4A4A4A4A484808080800E
+:10D3200040959494A5A5A4A4A4A4A48480808080FE
+:10D3300015949494A5A4A4A4A4A4A4A48080802A51
+:10D3400015959494A5A4A4A4A4A4A4A48080802A40
+:10D3500015959494A5A4A4A4A4A4A4A48080802A30
+:10D3600015959494A5A4A4A4A4A4A4A48080802A20
+:10D3700015959494A5A4A4A4A4A4A4A48080802A10
+:10D3800015959494A5A4A4A4A4A4A4A48080802A00
+:10D3900015959494A5A4A4A4A4A4A4A48080802AF0
+:10D3A00015959494A5A4A4A4A4A4A4A48080802AE0
+:10D3B00015959494A5A4A4A4A4A4A4A48080802AD0
+:10D3C00015959494A5A4A4A4A4A4A4A48080802AC0
+:10D3D00015959494A5A4A4A4A4A4A4A48080802AB0
+:10D3E00015959494A5A4A4A4A4A4A4A48080802AA0
+:10D3F00015959494A5A4A4A4A4A4A4A48080802A90
+:10D4000015959494A5A4A4A4A4A4A4A48080802A7F
+:10D4100015959494A5A4A4A4A4A4A4A48080802A6F
+:10D4200015959494A5A4A4A4A4A4A4A48080802A5F
+:10D4300015949494A5A4A4A4A4A4A4A08080802A54
+:10D4400015959494A5A4A4A4A4A4A4A08080802A43
+:10D4500015959494A5A4A4A4A4A4A4A08080802A33
+:10D4600015959494A5A4A4A4A4A4A4A08080802A23
+:10D4700015959494A5A4A4A4A4A4A4A08080802A13
+:10D4800015959494A5A4A4A4A4A4A4A08080802A03
+:10D4900015959494A5A4A4A4A4A4A4A08080802AF3
+:10D4A00015959494A5A4A4A4A4A4A4A08080802AE3
+:10D4B00015959494A5A4A4A4A4A4A4A08080802AD3
+:10D4C00015959494A5A4A4A4A4A4A4A08080802AC3
+:10D4D00015959494A5A4A4A4A4A4A4A08080802AB3
+:10D4E00015959494A5A4A4A4A4A4A4A08080802AA3
+:10D4F00015959494A5A4A4A4A4A4A4A08080802A93
+:10D5000015959494A5A4A4A4A4A4A4A08080802A82
+:10D5100015959494A5A4A4A4A4A4A4A08080802A72
+:10D5200015959494A5A4A4A4A4A4A4A08080802A62
+:10D5300040949494A4A4A4A4A4A4A4A0A0808080B3
+:10D5400043979797A7A7A7A7A7A7A3A3A383838377
+:10D5500014949494A4A4A4A4A4A4A0A0A0A08028FB
+:10D56000145454545454545454505050505000284F
+:10D57000405454545454545454505050100000804B
+:10D580004054545054545454505050101000008083
+:10D59000145454505454545050501010400000280B
+:10D5A000145454505454545050101010000000287B
+:10D5B00040545450545450505010100000000080FB
+:10D5C000405450505454505010101000000000802F
+:10D5D00014545050545050101010000000000028F7
+:10D5E0001454505054501010101000000000002827
+:10D5F00040505050505010101000000000000080AB
+:10D60000405050505050101010000000000000809A
+:10D61000405050505050101010000000000000808A
+:10D62000405050505050101010000000000000807A
+:10D63000405050505050101010000000000000806A
+:10D64000405050505050101010000000000000805A
+:10D65000405050505050101010000000000000804A
+:10D66000405050505050101010000000000000803A
+:10D67000405050505050101010000000000000802A
+:10D68000405050505050101010000000000000801A
+:10D69000405050505050101010000000000000800A
+:10D6A00040505050505010101000000000000080FA
+:10D6B00040505050505010101000000000000080EA
+:10D6C00040505050505010101000000000000080DA
+:10D6D00040505050505010101000000000000080CA
+:10D6E000405050505050101010000000000000003A
+:10D6F0004C5C5C4C5C1C1C1C1C0C0C0C0C0C0C8C3A
+:10D700004C5C5C4C5C1C1C1C1C0C0C0C0C0C0C8C29
+:10D710004C5C5C4C5C1C1C1C1C0C0C0C0C0C0C8C19
+:10D720004C5C5C4C5C1C1C1C1C0C0C0C0C0C0C8C09
+:10D730004C5C5C4C5C1C1C1C1C0C0C0C0C0C0C8CF9
+:10D740004C5C5C4C5C1C1C1C1C0C0C0C0C0C0C8CE9
+:10D750004C5C5C4C5C1C1C1C1C0C0C0C0C0C0C8CD9
+:10D760004C5C5C4C5C1C1C1C1C0C0C0C0C0C0C8CC9
+:10D770004C5C5C4C5C1C1C1C1C0C0C0C0C0C0C8CB9
+:10D780004C5C5C4C5C1C1C1C1C0C0C0C0C0C0C8CA9
+:10D790004C5C5C4C5C1C1C1C1C0C0C0C0C0C0C8C99
+:10D7A0004C5C5C4C5C1C1C1C1C0C0C0C0C0C0C8C89
+:10D7B0004C5C5C4C5C1C1C1C1C0C0C0C0C0C0C8C79
+:10D7C0004C5C5C4C5C1C1C1C1C0C0C0C0C0C0C8C69
+:10D7D0004C5C5C4C5C1C1C1C1C0C0C0C0C0C0C8C59
+:10D7E0004C5C5C4C5C1C1C1C1C0C0C0C0C0C0C0CC9
+:10D7F0001050504050101010000000000000002099
+:10D8000010505040101010100000000000000020C8
+:10D810004050504010101000000000000000008038
+:10D820004050504010101000000000000000008028
+:10D830004050504010101000000000000000008018
+:10D840004050504010101000000000000000008008
+:10D8500040505040101010000000000000000080F8
+:10D8600040505040101010000000000000000080E8
+:10D8700040505040101010000000000000000080D8
+:10D8800040505040101010000000000000000080C8
+:10D8900040505040101010000000000000000080B8
+:10D8A00040505040101010000000000000000080A8
+:10D8B0004050504010101000000000000000008098
+:10D8C0004050504010101000000000000000008088
+:10D8D0004050504010101000000000000000008078
+:10D8E0004050504010101000000000000000008068
+:10D8F0004050504010101000000000000000008058
+:10D9000040505040101010000000000000000000C7
+:10D910004050404010101000000000000000008047
+:10D920004050404010101000000000000000008037
+:10D930004050404010101000000000000000008027
+:10D940004050404010101000000000000000008017
+:10D950004050404010101000000000000000008007
+:10D9600040504040101010000000000000000080F7
+:10D9700040504040101010000000000000000080E7
+:10D9800040504040101010000000000000000080D7
+:10D9900040504040101010000000000000000080C7
+:10D9A00040504040101010000000000000000080B7
+:10D9B00040504040101010000000000000000080A7
+:10D9C0004050404010101000000000000000008097
+:10D9D0004050404010101000000000000000008087
+:10D9E0004050404010101000000000000000008077
+:10D9F0004050404010101000000000000000008067
+:10DA000040504040101010000000000000000000D6
+:10DA100010504040101000000000000000000020E6
+:10DA20001050400010100000000000000000002016
+:10DA300040500000100000000000000000000080C6
+:10DA400040500000100000000000000000000080B6
+:10DA500040500000100000000000000000000080A6
+:10DA60004050000010000000000000000000008096
+:10DA70004050000010000000000000000000008086
+:10DA80004050000010000000000000000000008076
+:10DA90004050000010000000000000000000008066
+:10DAA0004050000010000000000000000000008056
+:10DAB0004050000010000000000000000000008046
+:10DAC0004050000010000000000000000000008036
+:10DAD0004050000010000000000000000000008026
+:10DAE0004050000010000000000000000000008016
+:10DAF0004050000010000000000000000000008006
+:10DB000040500000100000000000000000000080F5
+:10DB100040500000100000000000000000000080E5
+:10DB20004050000010000000000000000000000055
+:10DB300040500000100000000000000000000080C5
+:10DB400040500000100000000000000000000080B5
+:10DB500040500000100000000000000000000080A5
+:10DB60004050000010000000000000000000008095
+:10DB70004050000010000000000000000000008085
+:10DB80004050000010000000000000000000008075
+:10DB90004050000010000000000000000000008065
+:10DBA0004050000010000000000000000000008055
+:10DBB0004050000010000000000000000000008045
+:10DBC0004050000010000000000000000000008035
+:10DBD0004050000010000000000000000000008025
+:10DBE0004050000010000000000000000000008015
+:10DBF0004050000010000000000000000000008005
+:10DC000040500000100000000000000000000080F4
+:10DC100040500000100000000000000000000080E4
+:10DC20004050000010000000000000000000000054
+:10DC300000000000000000000000000000000000E4
+:10DC400030303030303030303030303030303030D4
+:10DC500000000000000000000000000000000000C4
+:10DC600000000000000000000000000000000000B4
+:10DC700000000000000000000000000000000000A4
+:10DC80000000000000000000000000000000000094
+:10DC90000000000000000000000000000000000084
+:10DCA0000000000000000000000000000000000074
+:10DCB0000000000000000000000000000000000064
+:10DCC0000000000000000000000000000000000054
+:10DCD0000000000000000000000000000000000044
+:10DCE0000000000000000000000000000000000034
+:10DCF0000000000000000000000000000000000024
+:10DD0000AA6A6A6A6A6A6A6A6A6A6A6A6A6A6A6A33
+:10DD1000AA6A6A6A6A6A6A6A6A6A6A6A6A6A6A6A23
+:10DD2000AA6A6A6A6A6A6A6A6A6A6A6A6A6A6A6A13
+:10DD3000AA6A6A6A6A6A6A6A6A6A6A6A6A6A6A6A03
+:10DD4000AA6A6A6A6A6A6A6A6A6A6A6A6A6A6A6AF3
+:10DD5000AA6A6A6A6A6A6A6A6A6A6A6A6A6A6A6AE3
+:10DD6000AA6A6A6A6A6A6A6A6A6A6A6A6A6A6A6AD3
+:10DD7000AA6A6A6A6A6A6A6A6A6A6A6A6A6A6A6AC3
+:10DD800095555555555555556A6A6A6A6A6A6A6A5B
+:10DD900095555555555555556A6A6A6A6A6A6A6A4B
+:10DDA00095555555555555556A6A6A6A6A6A6A6A3B
+:10DDB00095555555555555556A6A6A6A6A6A6A6A2B
+:10DDC00095555555555555556A6A6A6A6A6A6A6A1B
+:10DDD00095555555555555556A6A6A6A6A6A6A6A0B
+:10DDE00095555555555555556A6A6A6A6A6A6A6AFB
+:10DDF0009595959595959595AAAAAAAAAAAAAA2AAB
+:10DE000080404040404040404040404040404040D2
+:10DE100080404040404040404040404040404040C2
+:10DE200080404040404040404040404040404040B2
+:10DE300080404040404040404040404040404040A2
+:10DE40008040404040404040404040404040404092
+:10DE50008040404040404040404040404040404082
+:10DE60008040404040404040404040404040404072
+:10DE70008040404040404040404040404040404062
+:10DE800095555555555555554040404040404040AA
+:10DE9000955555555555555540404040404040409A
+:10DEA000955555555555555540404040404040408A
+:10DEB000955555555555555540404040404040407A
+:10DEC000955555555555555540404040404040406A
+:10DED000955555555555555540404040404040405A
+:10DEE000955555555555555540404040404040404A
+:10DEF00095959595959595958080808080808000FA
+:10DF000015555555555555556A6A6A6A6A6A6A2A99
+:10DF100015555555555555556A6A6A6A6A6A6A2A89
+:10DF200015555555555555556A6A6A6A6A6A6A2A79
+:10DF300015555555555555556A6A6A6A6A6A6A2A69
+:10DF400015555555555555556A6A6A6A6A6A6A2A59
+:10DF500015555555555555556A6A6A6A6A6A6A2A49
+:10DF600015555555555555556A6A6A6A6A6A6A2A39
+:10DF700015555555555555556A6A6A6A6A6A6A2A29
+:10DF80002A6A6A6A6A6A6A6A555555555555551519
+:10DF90002A6A6A6A6A6A6A6A555555555555551509
+:10DFA0002A6A6A6A6A6A6A6A5555555555555515F9
+:10DFB0002A6A6A6A6A6A6A6A5555555555555515E9
+:10DFC0002A6A6A6A6A6A6A6A5555555555555515D9
+:10DFD0002A6A6A6A6A6A6A6A5555555555555515C9
+:10DFE0002A6A6A6A6A6A6A6A5555555555555515B9
+:10DFF0002AAAAAAAAAAAAAAA959595959595951529
+:10E0000015555555555555556A6A6A6A6A6A6A2A98
+:10E0100015555555555555556A6A6A6A6A6A6A2A88
+:10E0200015555555555555556A6A6A6A6A6A6A2A78
+:10E0300015555555555555556A6A6A6A6A6A6A2A68
+:10E0400015555555555555556A6A6A6A6A6A6A2A58
+:10E0500015555555555555556A6A6A6A6A6A6A2A48
+:10E0600015555555555555556A6A6A6A6A6A6A2A38
+:10E0700015555555555555556A6A6A6A6A6A6A2A28
+:10E080002A6A6A6A6A6A6A6A555555555555551518
+:10E090002A6A6A6A6A6A6A6A555555555555551508
+:10E0A0002A6A6A6A6A6A6A6A5555555555555515F8
+:10E0B0002A6A6A6A6A6A6A6A5555555555555515E8
+:10E0C0002A6A6A6A6A6A6A6A5555555555555515D8
+:10E0D0002A6A6A6A6A6A6A6A5555555555555515C8
+:10E0E0002A6A6A6A6A6A6A6A5555555555555515B8
+:10E0F0002AAAAAAAAAAAAAAA959595959595951528
+:10E1000095555555555555556A6A6A6A6A6A6A6AD7
+:10E1100095555555555555556A6A6A6A6A6A6A6AC7
+:10E1200095555555555555556A6A6A6A6A6A6A6AB7
+:10E1300095555555555555556A6A6A6A6A6A6A6AA7
+:10E1400095555555555555556A6A6A6A6A6A6A6A97
+:10E1500095555555555555556A6A6A6A6A6A6A6A87
+:10E1600095555555555555556A6A6A6A6A6A6A6A77
+:10E1700095555555555555556A6A6A6A6A6A6A6A67
+:10E18000AA6A6A6A6A6A6A6A555555555555555557
+:10E19000AA6A6A6A6A6A6A6A555555555555555547
+:10E1A000AA6A6A6A6A6A6A6A555555555555555537
+:10E1B000AA6A6A6A6A6A6A6A555555555555555527
+:10E1C000AA6A6A6A6A6A6A6A555555555555555517
+:10E1D000AA6A6A6A6A6A6A6A555555555555555507
+:10E1E000AA6A6A6A6A6A6A6A5555555555555555F7
+:10E1F000AA6A6AAAAAAAAAAA959595959595951527
+:10E2000095555555555555556A6A6A6A6A6A6A6AD6
+:10E2100095555555555555556A6A6A6A6A6A6A6AC6
+:10E2200095555555555555556A6A6A6A6A6A6A6AB6
+:10E2300095555555555555556A6A6A6A6A6A6A6AA6
+:10E2400095555555555555556A6A6A6A6A6A6A6A96
+:10E2500095555555555555556A6A6A6A6A6A6A6A86
+:10E2600095555555555555556A6A6A6A6A6A6A6A76
+:10E2700095555555555555556A6A6A6A6A6A6A6A66
+:10E28000AA6A6A6A6A6A6A6A555555555555555556
+:10E29000AA6A6A6A6A6A6A6A555555555555555546
+:10E2A000AA6A6A6A6A6A6A6A555555555555555536
+:10E2B000AA6A6A6A6A6A6A6A555555555555555526
+:10E2C000AA6A6A6A6A6A6A6A555555555555555516
+:10E2D000AA6A6A6A6A6A6A6A555555555555555506
+:10E2E000AA6A6A6A6A6A6A6A5555555555555555F6
+:10E2F000AA6A6AAAAAAAAAAA959595959595951526
+:10E3000015555555555555556A6A6A6A6A6A6A2A95
+:10E3100015555555555555556A6A6A6A6A6A6A2A85
+:10E3200015555555555555556A6A6A6A6A6A6A2A75
+:10E3300015555555555555556A6A6A6A6A6A6A2A65
+:10E3400015555555555555556A6A6A6A6A6A6A2A55
+:10E3500015555555555555556A6A6A6A6A6A6A2A45
+:10E3600015555555555555556A6A6A6A6A6A6A2A35
+:10E3700015555555555555556A6A6A6A6A6A6A2A25
+:10E380002A6A6A6A6A6A6A6A555555555555551515
+:10E390002A6A6A6A6A6A6A6A555555555555551505
+:10E3A0002A6A6A6A6A6A6A6A5555555555555515F5
+:10E3B0002A6A6A6A6A6A6A6A5555555555555515E5
+:10E3C0002A6A6A6A6A6A6A6A5555555555555515D5
+:10E3D0002A6A6A6A6A6A6A6A5555555555555515C5
+:10E3E0002A6A6A6A6A6A6A6A5555555555555515B5
+:10E3F0002A6A6AAAAAAAAAAA9595959595959515A5
+:10E4000015555555555555556A6A6A6A6A6A6A2A94
+:10E4100015555555555555556A6A6A6A6A6A6A2A84
+:10E4200015555555555555556A6A6A6A6A6A6A2A74
+:10E4300015555555555555556A6A6A6A6A6A6A2A64
+:10E4400015555555555555556A6A6A6A6A6A6A2A54
+:10E4500015555555555555556A6A6A6A6A6A6A2A44
+:10E4600015555555555555556A6A6A6A6A6A6A2A34
+:10E4700015555555555555556A6A6A6A6A6A6A2A24
+:10E480002A6A6A6A6A6A6A6A555555555555551514
+:10E490002A6A6A6A6A6A6A6A555555555555551504
+:10E4A0002A6A6A6A6A6A6A6A5555555555555515F4
+:10E4B0002A6A6A6A6A6A6A6A5555555555555515E4
+:10E4C0002A6A6A6A6A6A6A6A5555555555555515D4
+:10E4D0002A6A6A6A6A6A6A6A5555555555555515C4
+:10E4E0002A6A6A6A6A6A6A6A5555555555555515B4
+:10E4F0002A6A6AAAAAAAAAAA9595959595959515A4
+:10E5000095555555555555556A6A6A6A6A6A6A6AD3
+:10E5100095555555555555556A6A6A6A6A6A6A6AC3
+:10E5200095555555555555556A6A6A6A6A6A6A6AB3
+:10E5300095555555555555556A6A6A6A6A6A6A6AA3
+:10E5400095555555555555556A6A6A6A6A6A6A6A93
+:10E5500095555555555555556A6A6A6A6A6A6A6A83
+:10E5600095555555555555556A6A6A6A6A6A6A6A73
+:10E5700095555555555555556A6A6A6A6A6A6A6A63
+:10E58000AA6A6A6A6A6A6A6A555555555555555553
+:10E59000AA6A6A6A6A6A6A6A555555555555555543
+:10E5A000AA6A6A6A6A6A6A6A555555555555555533
+:10E5B000AA6A6A6A6A6A6A6A555555555555555523
+:10E5C000AA6A6A6A6A6A6A6A555555555555555513
+:10E5D000AA6A6A6A6A6A6A6A555555555555555503
+:10E5E000AA6A6A6A6A6A6A6A5555555555555555F3
+:10E5F000AA6A6A6AAAAAAAAA959595959595951563
+:10E6000095555555555555556A6A6A6A6A6A6A6AD2
+:10E6100095555555555555556A6A6A6A6A6A6A6AC2
+:10E6200095555555555555556A6A6A6A6A6A6A6AB2
+:10E6300095555555555555556A6A6A6A6A6A6A6AA2
+:10E6400095555555555555556A6A6A6A6A6A6A6A92
+:10E6500095555555555555556A6A6A6A6A6A6A6A82
+:10E6600095555555555555556A6A6A6A6A6A6A6A72
+:10E6700095555555555555556A6A6A6A6A6A6A6A62
+:10E68000AA6A6A6A6A6A6A6A555555555555555552
+:10E69000AA6A6A6A6A6A6A6A555555555555555542
+:10E6A000AA6A6A6A6A6A6A6A555555555555555532
+:10E6B000AA6A6A6A6A6A6A6A555555555555555522
+:10E6C000AA6A6A6A6A6A6A6A555555555555555512
+:10E6D000AA6A6A6A6A6A6A6A555555555555555502
+:10E6E000AA6A6A6A6A6A6A6A5555555555555555F2
+:10E6F000AA6A6A6AAAAAAAAA959595959595951562
+:10E7000015555555555555556A6A6A6A6A6A6A2A91
+:10E7100015555555555555556A6A6A6A6A6A6A2A81
+:10E7200015555555555555556A6A6A6A6A6A6A2A71
+:10E7300015555555555555556A6A6A6A6A6A6A2A61
+:10E7400015555555555555556A6A6A6A6A6A6A2A51
+:10E7500015555555555555556A6A6A6A6A6A6A2A41
+:10E7600015555555555555556A6A6A6A6A6A6A2A31
+:10E7700015555555555555556A6A6A6A6A6A6A2A21
+:10E780002A6A6A6A6A6A6A6A555555555555551511
+:10E790002A6A6A6A6A6A6A6A555555555555551501
+:10E7A0002A6A6A6A6A6A6A6A5555555555555515F1
+:10E7B0002A6A6A6A6A6A6A6A5555555555555515E1
+:10E7C0002A6A6A6A6A6A6A6A5555555555555515D1
+:10E7D0002A6A6A6A6A6A6A6A5555555555555515C1
+:10E7E0002A6A6A6A6A6A6A6A5555555555555515B1
+:10E7F0002A6A6A6A6A6AAAAA959595959595951561
+:10E8000015555555555555556A6A6A6A6A6A6A2A90
+:10E8100015555555555555556A6A6A6A6A6A6A2A80
+:10E8200015555555555555556A6A6A6A6A6A6A2A70
+:10E8300015555555555555556A6A6A6A6A6A6A2A60
+:10E8400015555555555555556A6A6A6A6A6A6A2A50
+:10E8500015555555555555556A6A6A6A6A6A6A2A40
+:10E8600015555555555555556A6A6A6A6A6A6A2A30
+:10E8700015555555555555556A6A6A6A6A6A6A2A20
+:10E880002A6A6A6A6A6A6A6A555555555555551510
+:10E890002A6A6A6A6A6A6A6A555555555555551500
+:10E8A0002A6A6A6A6A6A6A6A5555555555555515F0
+:10E8B0002A6A6A6A6A6A6A6A5555555555555515E0
+:10E8C0002A6A6A6A6A6A6A6A5555555555555515D0
+:10E8D0002A6A6A6A6A6A6A6A5555555555555515C0
+:10E8E0002A6A6A6A6A6A6A6A5555555555555515B0
+:10E8F0002A6A6A6A6A6AAAAA959595959595951560
+:10E900009595959595959595AAAAAAAAAAAAAA6A4F
+:10E910009595959595959595AAAAAAAAAAAAAA6A3F
+:10E920009595959595959595AAAAAAAAAAAAAA6A2F
+:10E930009595959595959595AAAAAAAAAAAAAA6A1F
+:10E940009595959595959595AAAAAAAAAAAAAA6A0F
+:10E950009595959595959595AAAAAAAAAAAAAA6AFF
+:10E960009595959595959595AAAAAAAAAAAAAA6AEF
+:10E970009595959595959595AAAAAAAAAAAAAA6ADF
+:10E98000AAAAAAAAAAAAAAAA9595959595959555CF
+:10E99000AAAAAAAAAAAAAAAA9595959595959555BF
+:10E9A000AAAAAAAAAAAAAAAA9595959595959555AF
+:10E9B000AAAAAAAAAAAAAAAA95959595959595559F
+:10E9C000AAAAAAAAAAAAAAAA95959595959595558F
+:10E9D000AAAAAAAAAAAAAAAA95959595959595557F
+:10E9E000AAAAAAAAAAAAAAAA95959595959595556F
+:10E9F000AA6A6A6A6A6A6A6A5555555555555555DF
+:10EA00009595959595959595AAAAAAAAAAAAAA6A4E
+:10EA10009595959595959595AAAAAAAAAAAAAA6A3E
+:10EA20009595959595959595AAAAAAAAAAAAAA6A2E
+:10EA30009595959595959595AAAAAAAAAAAAAA6A1E
+:10EA40009595959595959595AAAAAAAAAAAAAA6A0E
+:10EA50009595959595959595AAAAAAAAAAAAAA6AFE
+:10EA60009595959595959595AAAAAAAAAAAAAA6AEE
+:10EA70009595959595959595AAAAAAAAAAAAAA6ADE
+:10EA8000AAAAAAAAAAAAAAAA9595959595959555CE
+:10EA9000AAAAAAAAAAAAAAAA9595959595959555BE
+:10EAA000AAAAAAAAAAAAAAAA9595959595959555AE
+:10EAB000AAAAAAAAAAAAAAAA95959595959595559E
+:10EAC000AAAAAAAAAAAAAAAA95959595959595558E
+:10EAD000AAAAAAAAAAAAAAAA95959595959595557E
+:10EAE000AAAAAAAAAAAAAAAA95959595959595556E
+:10EAF000AA6A6A6A6A6A6A6A5555555555555555DE
+:10EB00001595959595959595AAAAAAAAAAAAAA2A0D
+:10EB10001595959595959595AAAAAAAAAAAAAA2AFD
+:10EB20001595959595959595AAAAAAAAAAAAAA2AED
+:10EB30001595959595959595AAAAAAAAAAAAAA2ADD
+:10EB40001595959595959595AAAAAAAAAAAAAA2ACD
+:10EB50001595959595959595AAAAAAAAAAAAAA2ABD
+:10EB60001595959595959595AAAAAAAAAAAAAA2AAD
+:10EB70001595959595959595AAAAAAAAAAAAAA2A9D
+:10EB80002AAAAAAAAAAAAAAA95959595959595158D
+:10EB90002AAAAAAAAAAAAAAA95959595959595157D
+:10EBA0002AAAAAAAAAAAAAAA95959595959595156D
+:10EBB0002AAAAAAAAAAAAAAA95959595959595155D
+:10EBC0002AAAAAAAAAAAAAAA95959595959595154D
+:10EBD0002AAAAAAAAAAAAAAA95959595959595153D
+:10EBE0002AAAAAAAAAAAAAAA95959595959595152D
+:10EBF0002A6A6A6A6A6A6A6A55555555555555159D
+:10EC00001595959595959595AAAAAAAAAAAAAA2A0C
+:10EC10001595959595959595AAAAAAAAAAAAAA2AFC
+:10EC20001595959595959595AAAAAAAAAAAAAA2AEC
+:10EC30001595959595959595AAAAAAAAAAAAAA2ADC
+:10EC40001595959595959595AAAAAAAAAAAAAA2ACC
+:10EC50001595959595959595AAAAAAAAAAAAAA2ABC
+:10EC60001595959595959595AAAAAAAAAAAAAA2AAC
+:10EC70001595959595959595AAAAAAAAAAAAAA2A9C
+:10EC80002AAAAAAAAAAAAAAA95959595959595158C
+:10EC90002AAAAAAAAAAAAAAA95959595959595157C
+:10ECA0002AAAAAAAAAAAAAAA95959595959595156C
+:10ECB0002AAAAAAAAAAAAAAA95959595959595155C
+:10ECC0002AAAAAAAAAAAAAAA95959595959595154C
+:10ECD0002AAAAAAAAAAAAAAA95959595959595153C
+:10ECE0002AAAAAAAAAAAAAAA95959595959595152C
+:10ECF0002A6A6A6A6A6A6A6A55555555555555159C
+:10ED00009595959595959595AAAAAAAAAAAAAA6A4B
+:10ED10009595959595959595AAAAAAAAAAAAAA6A3B
+:10ED20009595959595959595AAAAAAAAAAAAAA6A2B
+:10ED30009595959595959595AAAAAAAAAAAAAA6A1B
+:10ED40009595959595959595AAAAAAAAAAAAAA6A0B
+:10ED50009595959595959595AAAAAAAAAAAAAA6AFB
+:10ED60009595959595959595AAAAAAAAAAAAAA6AEB
+:10ED70009595959595959595AAAAAAAAAAAAAA6ADB
+:10ED8000AAAAAAAAAAAAAAAA9595959595959555CB
+:10ED9000AAAAAAAAAAAAAAAA9595959595959555BB
+:10EDA000AAAAAAAAAAAAAAAA9595959595959555AB
+:10EDB000AAAAAAAAAAAAAAAA95959595959595559B
+:10EDC000AAAAAAAAAAAAAAAA95959595959595558B
+:10EDD000AAAAAAAAAAAAAAAA95959595959595557B
+:10EDE000AAAAAAAAAAAAAAAA95959595959595556B
+:10EDF000AA6A6A6A6A6A6A6A5555555555555555DB
+:10EE00009595959595959595AAAAAAAAAAAAAA6A4A
+:10EE10009595959595959595AAAAAAAAAAAAAA6A3A
+:10EE20009595959595959595AAAAAAAAAAAAAA6A2A
+:10EE30009595959595959595AAAAAAAAAAAAAA6A1A
+:10EE40009595959595959595AAAAAAAAAAAAAA6A0A
+:10EE50009595959595959595AAAAAAAAAAAAAA6AFA
+:10EE60009595959595959595AAAAAAAAAAAAAA6AEA
+:10EE70009595959595959595AAAAAAAAAAAAAA6ADA
+:10EE8000AAAAAAAAAAAAAAAA9595959595959555CA
+:10EE9000AAAAAAAAAAAAAAAA9595959595959555BA
+:10EEA000AAAAAAAAAAAAAAAA9595959595959555AA
+:10EEB000AAAAAAAAAAAAAAAA95959595959595559A
+:10EEC000AAAAAAAAAAAAAAAA95959595959595558A
+:10EED000AAAAAAAAAAAAAAAA95959595959595557A
+:10EEE000AAAAAAAAAAAAAAAA95959595959595556A
+:10EEF000AA6A6A6A6A6A6A6A5555555555555555DA
+:10EF00001595959595959595AAAAAAAAAAAAAA2A09
+:10EF10001595959595959595AAAAAAAAAAAAAA2AF9
+:10EF20001595959595959595AAAAAAAAAAAAAA2AE9
+:10EF30001595959595959595AAAAAAAAAAAAAA2AD9
+:10EF40001595959595959595AAAAAAAAAAAAAA2AC9
+:10EF50001595959595959595AAAAAAAAAAAAAA2AB9
+:10EF60001595959595959595AAAAAAAAAAAAAA2AA9
+:10EF70001595959595959595AAAAAAAAAAAAAA2A99
+:10EF80002AAAAAAAAAAAAAAA959595959595951589
+:10EF90002AAAAAAAAAAAAAAA959595959595951579
+:10EFA0002AAAAAAAAAAAAAAA959595959595951569
+:10EFB0002AAAAAAAAAAAAAAA959595959595951559
+:10EFC0002AAAAAAAAAAAAAAA959595959595951549
+:10EFD0002AAAAAAAAAAAAAAA959595959595951539
+:10EFE0002AAAAAAAAAAAAAAA959595959595951529
+:10EFF0002A6A6A6A6A6A6A6A555555555555551599
+:10F000001595959595959595AAAAAAAAAAAAAA2A08
+:10F010001595959595959595AAAAAAAAAAAAAA2AF8
+:10F020001595959595959595AAAAAAAAAAAAAA2AE8
+:10F030001595959595959595AAAAAAAAAAAAAA2AD8
+:10F040001595959595959595AAAAAAAAAAAAAA2AC8
+:10F050001595959595959595AAAAAAAAAAAAAA2AB8
+:10F060001595959595959595AAAAAAAAAAAAAA2AA8
+:10F070001595959595959595AAAAAAAAAAAAAA2A98
+:10F080002AAAAAAAAAAAAAAA959595959595951588
+:10F090002AAAAAAAAAAAAAAA959595959595951578
+:10F0A0002AAAAAAAAAAAAAAA959595959595951568
+:10F0B0002AAAAAAAAAAAAAAA959595959595951558
+:10F0C0002AAAAAAAAAAAAAAA959595959595951548
+:10F0D0002AAAAAAAAAAAAAAA959595959595951538
+:10F0E0002AAAAAAAAAAAAAAA959595959595951528
+:10F0F0002A6A6A6A6A6A6A6A555555555555551598
+:10F100009595959595959595AAAAAAAAAAAAAA6A47
+:10F110009595959595959595AAAAAAAAAAAAAA6A37
+:10F120009595959595959595AAAAAAAAAAAAAA6A27
+:10F130009595959595959595AAAAAAAAAAAAAA6A17
+:10F140009595959595959595AAAAAAAAAAAAAA6A07
+:10F150009595959595959595AAAAAAAAAAAAAA6AF7
+:10F160009595959595959595AAAAAAAAAAAAAA6AE7
+:10F170009595959595959595AAAAAAAAAAAAAA6AD7
+:10F18000AAAAAAAAAAAAAAAA9595959595959555C7
+:10F19000AAAAAAAAAAAAAAAA9595959595959555B7
+:10F1A000AAAAAAAAAAAAAAAA9595959595959555A7
+:10F1B000AAAAAAAAAAAAAAAA959595959595955597
+:10F1C000AAAAAAAAAAAAAAAA959595959595955587
+:10F1D000AAAAAAAAAAAAAAAA959595959595955577
+:10F1E000AAAAAAAAAAAAAAAA959595959595955567
+:10F1F000AA6A6A6A6A6A6A6A5555555555555555D7
+:10F200009595959595959595AAAAAAAAAAAAAA6A46
+:10F210009595959595959595AAAAAAAAAAAAAA6A36
+:10F220009595959595959595AAAAAAAAAAAAAA6A26
+:10F230009595959595959595AAAAAAAAAAAAAA6A16
+:10F240009595959595959595AAAAAAAAAAAAAA6A06
+:10F250009595959595959595AAAAAAAAAAAAAA6AF6
+:10F260009595959595959595AAAAAAAAAAAAAA6AE6
+:10F270009595959595959595AAAAAAAAAAAAAA6AD6
+:10F28000AAAAAAAAAAAAAAAA9595959595959555C6
+:10F29000AAAAAAAAAAAAAAAA9595959595959555B6
+:10F2A000AAAAAAAAAAAAAAAA9595959595959555A6
+:10F2B000AAAAAAAAAAAAAAAA959595959595955596
+:10F2C000AAAAAAAAAAAAAAAA959595959595955586
+:10F2D000AAAAAAAAAAAAAAAA959595959595955576
+:10F2E000AAAAAAAAAAAAAAAA959595959595955566
+:10F2F000AA6A6A6A6A6A6A6A5555555555555555D6
+:10F300001595959595959595AAAAAAAAAAAAAA2A05
+:10F310001595959595959595AAAAAAAAAAAAAA2AF5
+:10F320001595959595959595AAAAAAAAAAAAAA2AE5
+:10F330001595959595959595AAAAAAAAAAAAAA2AD5
+:10F340001595959595959595AAAAAAAAAAAAAA2AC5
+:10F350001595959595959595AAAAAAAAAAAAAA2AB5
+:10F360001595959595959595AAAAAAAAAAAAAA2AA5
+:10F370001595959595959595AAAAAAAAAAAAAA2A95
+:10F380002AAAAAAAAAAAAAAA959595959595951585
+:10F390002AAAAAAAAAAAAAAA959595959595951575
+:10F3A0002AAAAAAAAAAAAAAA959595959595951565
+:10F3B0002AAAAAAAAAAAAAAA959595959595951555
+:10F3C0002AAAAAAAAAAAAAAA959595959595951545
+:10F3D0002AAAAAAAAAAAAAAA959595959595951535
+:10F3E0002AAAAAAAAAAAAAAA959595959595951525
+:10F3F0002A6A6A6A6A6A6A6A555555555555551595
+:10F400001595959595959595AAAAAAAAAAAAAA2A04
+:10F410001595959595959595AAAAAAAAAAAAAA2AF4
+:10F420001595959595959595AAAAAAAAAAAAAA2AE4
+:10F430001595959595959595AAAAAAAAAAAAAA2AD4
+:10F440001595959595959595AAAAAAAAAAAAAA2AC4
+:10F450001595959595959595AAAAAAAAAAAAAA2AB4
+:10F460001595959595959595AAAAAAAAAAAAAA2AA4
+:10F470001595959595959595AAAAAAAAAAAAAA2A94
+:10F480002AAAAAAAAAAAAAAA959595959595951584
+:10F490002AAAAAAAAAAAAAAA959595959595951574
+:10F4A0002AAAAAAAAAAAAAAA959595959595951564
+:10F4B0002AAAAAAAAAAAAAAA959595959595951554
+:10F4C0002AAAAAAAAAAAAAAA959595959595951544
+:10F4D0002AAAAAAAAAAAAAAA959595959595951534
+:10F4E0002AAAAAAAAAAAAAAA959595959595951524
+:10F4F0002A6A6A6A6A6A6A6A555555555555551594
+:10F5000095959515151515152A2A2A2A2A2A2A6A43
+:10F5100095959515151515152A2A2A2A2A2A2A6A33
+:10F5200095959515151515152A2A2A2A2A2A2A6A23
+:10F5300095959515151515152A2A2A2A2A2A2A6A13
+:10F5400095959515151515152A2A2A2A2A2A2A6A03
+:10F5500095959515151515152A2A2A2A2A2A2A6AF3
+:10F5600095959515151515152A2A2A2A2A2A2A6AE3
+:10F5700095959515151515152A2A2A2A2A2A2A6AD3
+:10F58000AAAAAA2A2A2A2A2A1515151515151555C3
+:10F59000AAAAAA2A2A2A2A2A1515151515151555B3
+:10F5A000AAAAAA2A2A2A2A2A1515151515151555A3
+:10F5B000AAAAAA2A2A2A2A2A151515151515155593
+:10F5C000AAAAAA2A2A2A2A2A151515151515155583
+:10F5D000AAAAAA2A2A2A2A2A151515151515155573
+:10F5E000AAAAAA2A2A2A2A2A151515151515155563
+:10F5F000AAAAAA2A2A2A2A2A151515151515155553
+:10F6000095959515151515152A2A2A2A2A2A2A6A42
+:10F6100095959515151515152A2A2A2A2A2A2A6A32
+:10F6200095959515151515152A2A2A2A2A2A2A6A22
+:10F6300095959515151515152A2A2A2A2A2A2A6A12
+:10F6400095959515151515152A2A2A2A2A2A2A6A02
+:10F6500095959515151515152A2A2A2A2A2A2A6AF2
+:10F6600095959515151515152A2A2A2A2A2A2A6AE2
+:10F6700095959515151515152A2A2A2A2A2A2A6AD2
+:10F68000AAAAAA2A2A2A2A2A1515151515151555C2
+:10F69000AAAAAA2A2A2A2A2A1515151515151555B2
+:10F6A000AAAAAA2A2A2A2A2A1515151515151555A2
+:10F6B000AAAAAA2A2A2A2A2A151515151515155592
+:10F6C000AAAAAA2A2A2A2A2A151515151515155582
+:10F6D000AAAAAA2A2A2A2A2A151515151515155572
+:10F6E000AAAAAA2A2A2A2A2A151515151515155562
+:10F6F000AAAAAA2A2A2A2A2A151515151515155552
+:10F7000015959515151515152A2A2A2A2A2A2A2A01
+:10F7100015959515151515152A2A2A2A2A2A2A2AF1
+:10F7200015959515151515152A2A2A2A2A2A2A2AE1
+:10F7300015959515151515152A2A2A2A2A2A2A2AD1
+:10F7400015959515151515152A2A2A2A2A2A2A2AC1
+:10F7500015959515151515152A2A2A2A2A2A2A2AB1
+:10F7600015959515151515152A2A2A2A2A2A2A2AA1
+:10F7700015959515151515152A2A2A2A2A2A2A2A91
+:10F780002AAAAA2A2A2A2A2A151515151515151581
+:10F790002AAAAA2A2A2A2A2A151515151515151571
+:10F7A0002AAAAA2A2A2A2A2A151515151515151561
+:10F7B0002AAAAA2A2A2A2A2A151515151515151551
+:10F7C0002AAAAA2A2A2A2A2A151515151515151541
+:10F7D0002AAAAA2A2A2A2A2A151515151515151531
+:10F7E0002AAAAA2A2A2A2A2A151515151515151521
+:10F7F0006AAAAA2A2A2A2A2A1515151515151515D1
+:10F8000015959595151515152A2A2A2A2A2A2A2A80
+:10F8100015959595151515152A2A2A2A2A2A2A2A70
+:10F8200015959595151515152A2A2A2A2A2A2A2A60
+:10F8300015959595151515152A2A2A2A2A2A2A2A50
+:10F8400015959595151515152A2A2A2A2A2A2A2A40
+:10F8500015959595151515152A2A2A2A2A2A2A2A30
+:10F8600015959595151515152A2A2A2A2A2A2A2A20
+:10F8700015959595151515152A2A2A2A2A2A2A2A10
+:10F880002AAAAAAA2A2A2A2A151515151515151500
+:10F890002AAAAAAA2A2A2A2A1515151515151515F0
+:10F8A0002AAAAAAA2A2A2A2A1515151515151515E0
+:10F8B0002AAAAAAA2A2A2A2A1515151515151515D0
+:10F8C0002AAAAAAA2A2A2A2A1515151515151515C0
+:10F8D0002AAAAAAA2A2A2A2A1515151515151515B0
+:10F8E0002AAAAAAA2A2A2A2A1515151515151515A0
+:10F8F0006AAAAAAA2A2A2A2A151515151515151550
+:10F9000095959595151515152A2A2A2A2A2A2A6ABF
+:10F9100095959595151515152A2A2A2A2A2A2A6AAF
+:10F9200095959595151515152A2A2A2A2A2A2A6A9F
+:10F9300095959595151515152A2A2A2A2A2A2A6A8F
+:10F9400095959595151515152A2A2A2A2A2A2A6A7F
+:10F9500095959595151515152A2A2A2A2A2A2A6A6F
+:10F9600095959595151515152A2A2A2A2A2A2A6A5F
+:10F9700095959595151515152A2A2A2A2A2A2A6A4F
+:10F98000AAAAAAAA2A2A2A2A15151515151515553F
+:10F99000AAAAAAAA2A2A2A2A15151515151515552F
+:10F9A000AAAAAAAA2A2A2A2A15151515151515551F
+:10F9B000AAAAAAAA2A2A2A2A15151515151515550F
+:10F9C000AAAAAAAA2A2A2A2A1515151515151555FF
+:10F9D000AAAAAAAA2A2A2A2A1515151515151555EF
+:10F9E000AAAAAAAA2A2A2A2A1515151515151555DF
+:10F9F0002AAAAAAA2A2A2A2A15151515151515554F
+:10FA000095959595151515152A2A2A2A2A2A2A6ABE
+:10FA100095959595151515152A2A2A2A2A2A2A6AAE
+:10FA200095959595151515152A2A2A2A2A2A2A6A9E
+:10FA300095959595151515152A2A2A2A2A2A2A6A8E
+:10FA400095959595151515152A2A2A2A2A2A2A6A7E
+:10FA500095959595151515152A2A2A2A2A2A2A6A6E
+:10FA600095959595151515152A2A2A2A2A2A2A6A5E
+:10FA700095959595151515152A2A2A2A2A2A2A6A4E
+:10FA8000AAAAAAAA2A2A2A2A15151515151515553E
+:10FA9000AAAAAAAA2A2A2A2A15151515151515552E
+:10FAA000AAAAAAAA2A2A2A2A15151515151515551E
+:10FAB000AAAAAAAA2A2A2A2A15151515151515550E
+:10FAC000AAAAAAAA2A2A2A2A1515151515151555FE
+:10FAD000AAAAAAAA2A2A2A2A1515151515151555EE
+:10FAE000AAAAAAAA2A2A2A2A1515151515151555DE
+:10FAF0002AAAAAAA2A2A2A2A15151515151515554E
+:10FB000015959595151515152A2A2A2A2A2A2A2A7D
+:10FB100015959595151515152A2A2A2A2A2A2A2A6D
+:10FB200015959595151515152A2A2A2A2A2A2A2A5D
+:10FB300015959595151515152A2A2A2A2A2A2A2A4D
+:10FB400015959595151515152A2A2A2A2A2A2A2A3D
+:10FB500015959595151515152A2A2A2A2A2A2A2A2D
+:10FB600015959595151515152A2A2A2A2A2A2A2A1D
+:10FB700015959595151515152A2A2A2A2A2A2A2A0D
+:10FB80002AAAAAAA2A2A2A2A1515151515151515FD
+:10FB90002AAAAAAA2A2A2A2A1515151515151515ED
+:10FBA0002AAAAAAA2A2A2A2A1515151515151515DD
+:10FBB0002AAAAAAA2A2A2A2A1515151515151515CD
+:10FBC0002AAAAAAA2A2A2A2A1515151515151515BD
+:10FBD0002AAAAAAA2A2A2A2A1515151515151515AD
+:10FBE0002AAAAAAA2A2A2A2A15151515151515159D
+:10FBF0006AAAAAAA2A2A2A2A15151515151515154D
+:10FC000015959595951515152A2A2A2A2A2A2A2AFC
+:10FC100015959595951515152A2A2A2A2A2A2A2AEC
+:10FC200015959595951515152A2A2A2A2A2A2A2ADC
+:10FC300015959595951515152A2A2A2A2A2A2A2ACC
+:10FC400015959595951515152A2A2A2A2A2A2A2ABC
+:10FC500015959595951515152A2A2A2A2A2A2A2AAC
+:10FC600015959595951515152A2A2A2A2A2A2A2A9C
+:10FC700015959595951515152A2A2A2A2A2A2A2A8C
+:10FC80002AAAAAAAAA2A2A2A15151515151515157C
+:10FC90002AAAAAAAAA2A2A2A15151515151515156C
+:10FCA0002AAAAAAAAA2A2A2A15151515151515155C
+:10FCB0002AAAAAAAAA2A2A2A15151515151515154C
+:10FCC0002AAAAAAAAA2A2A2A15151515151515153C
+:10FCD0002AAAAAAAAA2A2A2A15151515151515152C
+:10FCE0002AAAAAAAAA2A2A2A15151515151515151C
+:10FCF0006AAAAAAAAA2A2A2A1515151515151515CC
+:10FD000095959595951515152A2A2A2A2A2A2A6A3B
+:10FD100095959595951515152A2A2A2A2A2A2A6A2B
+:10FD200095959595951515152A2A2A2A2A2A2A6A1B
+:10FD300095959595951515152A2A2A2A2A2A2A6A0B
+:10FD400095959595951515152A2A2A2A2A2A2A6AFB
+:10FD500095959595951515152A2A2A2A2A2A2A6AEB
+:10FD600095959595951515152A2A2A2A2A2A2A6ADB
+:10FD700095959595951515152A2A2A2A2A2A2A6ACB
+:10FD8000AAAAAAAAAA2A2A2A1515151515151555BB
+:10FD9000AAAAAAAAAA2A2A2A1515151515151555AB
+:10FDA000AAAAAAAAAA2A2A2A15151515151515559B
+:10FDB000AAAAAAAAAA2A2A2A15151515151515558B
+:10FDC000AAAAAAAAAA2A2A2A15151515151515557B
+:10FDD000AAAAAAAAAA2A2A2A15151515151515556B
+:10FDE000AAAAAAAAAA2A2A2A15151515151515555B
+:10FDF0002AAAAAAAAA2A2A2A1515151515151555CB
+:10FE000095959595959515152A2A2A2A2A2A2A6ABA
+:10FE100095959595959515152A2A2A2A2A2A2A6AAA
+:10FE200095959595959515152A2A2A2A2A2A2A6A9A
+:10FE300095959595959515152A2A2A2A2A2A2A6A8A
+:10FE400095959595959515152A2A2A2A2A2A2A6A7A
+:10FE500095959595959515152A2A2A2A2A2A2A6A6A
+:10FE600095959595959515152A2A2A2A2A2A2A6A5A
+:10FE700095959595959515152A2A2A2A2A2A2A6A4A
+:10FE8000AAAAAAAAAAAA2A2A15151515151515553A
+:10FE9000AAAAAAAAAAAA2A2A15151515151515552A
+:10FEA000AAAAAAAAAAAA2A2A15151515151515551A
+:10FEB000AAAAAAAAAAAA2A2A15151515151515550A
+:10FEC000AAAAAAAAAAAA2A2A1515151515151555FA
+:10FED000AAAAAAAAAAAA2A2A1515151515151555EA
+:10FEE000AAAAAAAAAAAA2A2A1515151515151555DA
+:10FEF0002AAAAAAAAAAA2A2A15151515151515554A
+:10FF000015959595959515152A2A2A2A2A2A2A2A79
+:10FF100015959595959515152A2A2A2A2A2A2A2A69
+:10FF200015959595959515152A2A2A2A2A2A2A2A59
+:10FF300015959595959515152A2A2A2A2A2A2A2A49
+:10FF400015959595959515152A2A2A2A2A2A2A2A39
+:10FF500015959595959515152A2A2A2A2A2A2A2A29
+:10FF600015959595959515152A2A2A2A2A2A2A2A19
+:10FF700015959595959515152A2A2A2A2A2A2A2A09
+:10FF80002AAAAAAAAAAA2A2A1515151515151515F9
+:10FF90002AAAAAAAAAAA2A2A1515151515151515E9
+:10FFA0002AAAAAAAAAAA2A2A1515151515151515D9
+:10FFB0002AAAAAAAAAAA2A2A1515151515151515C9
+:10FFC0002AAAAAAAAAAA2A2A1515151515151515B9
+:10FFD0002AAAAAAAAAAA2A2A1515151515151515A9
+:10FFE0002AAAAAAAAAAA2A2A151515151515151599
+:10FFF0006AAAAAAAAAAA2A2A151515151515151549
+:020000040003F7
+:1000000015959595959595152A2A2A2A2A2A2A2AF8
+:1000100015959595959595152A2A2A2A2A2A2A2AE8
+:1000200015959595959595152A2A2A2A2A2A2A2AD8
+:1000300015959595959595152A2A2A2A2A2A2A2AC8
+:1000400015959595959595152A2A2A2A2A2A2A2AB8
+:1000500015959595959595152A2A2A2A2A2A2A2AA8
+:1000600015959595959595152A2A2A2A2A2A2A2A98
+:1000700015959595959595152A2A2A2A2A2A2A2A88
+:100080002AAAAAAAAAAAAA2A151515151515151578
+:100090002AAAAAAAAAAAAA2A151515151515151568
+:1000A0002AAAAAAAAAAAAA2A151515151515151558
+:1000B0002AAAAAAAAAAAAA2A151515151515151548
+:1000C0002AAAAAAAAAAAAA2A151515151515151538
+:1000D0002AAAAAAAAAAAAA2A151515151515151528
+:1000E0002AAAAAAAAAAAAA2A151515151515151518
+:1000F0006AAAAAAAAAAAAA2A1515151515151515C8
+:1001000095959595959595952A2A2A2A2A2A2A6AB7
+:1001100095959595959595952A2A2A2A2A2A2A6AA7
+:1001200095959595959595952A2A2A2A2A2A2A6A97
+:1001300095959595959595952A2A2A2A2A2A2A6A87
+:1001400095959595959595952A2A2A2A2A2A2A6A77
+:1001500095959595959595952A2A2A2A2A2A2A6A67
+:1001600095959595959595952A2A2A2A2A2A2A6A57
+:1001700095959595959595952A2A2A2A2A2A2A6A47
+:10018000AAAAAAAAAAAAAAAA151515151515155537
+:10019000AAAAAAAAAAAAAAAA151515151515155527
+:1001A000AAAAAAAAAAAAAAAA151515151515155517
+:1001B000AAAAAAAAAAAAAAAA151515151515155507
+:1001C000AAAAAAAAAAAAAAAA1515151515151555F7
+:1001D000AAAAAAAAAAAAAAAA1515151515151555E7
+:1001E000AAAAAAAAAAAAAAAA1515151515151555D7
+:1001F0002AAAAAAAAAAAAAAA151515151515155547
+:100200009595959595959595AA2A2A2A2A2A2A6A36
+:100210009595959595959595AA2A2A2A2A2A2A6A26
+:100220009595959595959595AA2A2A2A2A2A2A6A16
+:100230009595959595959595AA2A2A2A2A2A2A6A06
+:100240009595959595959595AA2A2A2A2A2A2A6AF6
+:100250009595959595959595AA2A2A2A2A2A2A6AE6
+:100260009595959595959595AA2A2A2A2A2A2A6AD6
+:100270009595959595959595AA2A2A2A2A2A2A6AC6
+:10028000AAAAAAAAAAAAAAAA9515151515151555B6
+:10029000AAAAAAAAAAAAAAAA9515151515151555A6
+:1002A000AAAAAAAAAAAAAAAA951515151515155596
+:1002B000AAAAAAAAAAAAAAAA951515151515155586
+:1002C000AAAAAAAAAAAAAAAA951515151515155576
+:1002D000AAAAAAAAAAAAAAAA951515151515155566
+:1002E000AAAAAAAAAAAAAAAA951515151515155556
+:1002F0002AAAAAAAAAAAAAAA9515151515151555C6
+:100300005595959595959595AA2A2A2A2A2A2A2AB5
+:100310005595959595959595AA2A2A2A2A2A2A2AA5
+:100320005595959595959595AA2A2A2A2A2A2A2A95
+:100330005595959595959595AA2A2A2A2A2A2A2A85
+:100340005595959595959595AA2A2A2A2A2A2A2A75
+:100350005595959595959595AA2A2A2A2A2A2A2A65
+:100360005595959595959595AA2A2A2A2A2A2A2A55
+:100370005595959595959595AA2A2A2A2A2A2A2A45
+:100380006AAAAAAAAAAAAAAA951515151515151535
+:100390006AAAAAAAAAAAAAAA951515151515151525
+:1003A0006AAAAAAAAAAAAAAA951515151515151515
+:1003B0006AAAAAAAAAAAAAAA951515151515151505
+:1003C0006AAAAAAAAAAAAAAA9515151515151515F5
+:1003D0006AAAAAAAAAAAAAAA9515151515151515E5
+:1003E0006AAAAAAAAAAAAAAA9515151515151515D5
+:1003F0006AAAAAAAAAAAAAAA9515151515151515C5
+:100400005595959595959595AAAA2A2AAA2A2A2AB4
+:100410005595959595959595AAAA2A2AAA2A2A2AA4
+:100420005595959595959595AAAA2A2AAA2A2A2A94
+:100430005595959595959595AAAA2A2AAA2A2A2A84
+:100440005595959595959595AAAA2A2AAA2A2A2A74
+:100450005595959595959595AAAA2A2AAA2A2A2A64
+:100460005595959595959595AAAA2A2AAA2A2A2A54
+:100470005595959595959595AAAA2A2AAA2A2A2A44
+:100480006AAAAAAAAAAAAAAA959515159515151534
+:100490006AAAAAAAAAAAAAAA959515159515151524
+:1004A0006AAAAAAAAAAAAAAA959515159515151514
+:1004B0006AAAAAAAAAAAAAAA959515159515151504
+:1004C0006AAAAAAAAAAAAAAA9595151595151515F4
+:1004D0006AAAAAAAAAAAAAAA9595151595151515E4
+:1004E0006AAAAAAAAAAAAAAA9595151595151515D4
+:1004F0006AAAAAAAAAAAAAAA9595151595151515C4
+:100500001595959595959595AAAAAA2A2A2A2A6AB3
+:100510001595959595959595AAAAAA2A2A2A2A6AA3
+:100520001595959595959595AAAAAA2A2A2A2A6A93
+:100530001595959595959595AAAAAA2A2A2A2A6A83
+:100540001595959595959595AAAAAA2A2A2A2A6A73
+:100550001595959595959595AAAAAA2A2A2A2A6A63
+:100560001595959595959595AAAAAA2A2A2A2A6A53
+:100570001595959595959595AAAAAA2A2A2A2A6A43
+:100580002AAAAAAAAAAAAAAA959595151515155533
+:100590002AAAAAAAAAAAAAAA959595151515155523
+:1005A0002AAAAAAAAAAAAAAA959595151515155513
+:1005B0002AAAAAAAAAAAAAAA959595151515155503
+:1005C0002AAAAAAAAAAAAAAA9595951515151555F3
+:1005D0002AAAAAAAAAAAAAAA9595951515151555E3
+:1005E0002AAAAAAAAAAAAAAA9595951515151555D3
+:1005F0002AAAAAAAAAAAAAAA9595951515151555C3
+:100600001595959595959595AAAAAAAA2A2A2A6A32
+:100610001595959595959595AAAAAAAA2A2A2A6A22
+:100620001595959595959595AAAAAAAA2A2A2A6A12
+:100630001595959595959595AAAAAAAA2A2A2A6A02
+:100640001595959595959595AAAAAAAA2A2A2A6AF2
+:100650001595959595959595AAAAAAAA2A2A2A6AE2
+:100660001595959595959595AAAAAAAA2A2A2A6AD2
+:100670001595959595959595AAAAAAAA2A2A2A6AC2
+:100680002AAAAAAAAAAAAAAA9595959515151555B2
+:100690002AAAAAAAAAAAAAAA9595959515151555A2
+:1006A0002AAAAAAAAAAAAAAA959595951515155592
+:1006B0002AAAAAAAAAAAAAAA959595951515155582
+:1006C0002AAAAAAAAAAAAAAA959595951515155572
+:1006D0002AAAAAAAAAAAAAAA959595951515155562
+:1006E0002AAAAAAAAAAAAAAA959595951515155552
+:1006F0002AAAAAAAAAAAAAAA959595951515155542
+:100700005595959595959595AAAAAAAAAAAA2A2A31
+:100710005595959595959595AAAAAAAAAAAA2A2A21
+:100720005595959595959595AAAAAAAAAAAA2A2A11
+:100730005595959595959595AAAAAAAAAAAA2A2A01
+:100740005595959595959595AAAAAAAAAAAA2A2AF1
+:100750005595959595959595AAAAAAAAAAAA2A2AE1
+:100760005595959595959595AAAAAAAAAAAA2A2AD1
+:100770005595959595959595AAAAAAAAAAAA2A2AC1
+:100780006AAAAAAAAAAAAAAA9595959595951515B1
+:100790006AAAAAAAAAAAAAAA9595959595951515A1
+:1007A0006AAAAAAAAAAAAAAA959595959595151591
+:1007B0006AAAAAAAAAAAAAAA959595959595151581
+:1007C0006AAAAAAAAAAAAAAA959595959595151571
+:1007D0006AAAAAAAAAAAAAAA959595959595151561
+:1007E0006AAAAAAAAAAAAAAA959595959595151551
+:1007F0006AAAAAAAAAAAAAAA959595959595151541
+:1008000055555555555555556A6A6A6A6A6A6A2A30
+:1008100055555555555555556A6A6A6A6A6A6A2A20
+:1008200055555555555555556A6A6A6A6A6A6A2A10
+:1008300055555555555555556A6A6A6A6A6A6A2A00
+:1008400055555555555555556A6A6A6A6A6A6A2AF0
+:1008500055555555555555556A6A6A6A6A6A6A2AE0
+:1008600055555555555555556A6A6A6A6A6A6A2AD0
+:1008700055555555555555556A6A6A6A6A6A6A2AC0
+:100880006A6A6A6A6A6A6A6A5555555555555515B0
+:100890006A6A6A6A6A6A6A6A5555555555555515A0
+:1008A0006A6A6A6A6A6A6A6A555555555555551590
+:1008B0006A6A6A6A6A6A6A6A555555555555551580
+:1008C0006A6A6A6A6A6A6A6A555555555555551570
+:1008D0006A6A6A6A6A6A6A6A555555555555551560
+:1008E0006A6A6A6A6A6A6A6A555555555555551550
+:1008F0006A6A6A6A6A6A6A6A555555555555551540
+:1009000015555555555555556A6A6A6A6A6A6A6A2F
+:1009100015555555555555556A6A6A6A6A6A6A6A1F
+:1009200015555555555555556A6A6A6A6A6A6A6A0F
+:1009300015555555555555556A6A6A6A6A6A6A6AFF
+:1009400015555555555555556A6A6A6A6A6A6A6AEF
+:1009500015555555555555556A6A6A6A6A6A6A6ADF
+:1009600015555555555555556A6A6A6A6A6A6A6ACF
+:1009700015555555555555556A6A6A6A6A6A6A6ABF
+:100980002A6A6A6A6A6A6A6A5555555555555555AF
+:100990002A6A6A6A6A6A6A6A55555555555555559F
+:1009A0002A6A6A6A6A6A6A6A55555555555555558F
+:1009B0002A6A6A6A6A6A6A6A55555555555555557F
+:1009C0002A6A6A6A6A6A6A6A55555555555555556F
+:1009D0002A6A6A6A6A6A6A6A55555555555555555F
+:1009E0002A6A6A6A6A6A6A6A55555555555555554F
+:1009F0002A6A6A6A6A6A6A6A55555555555555553F
+:100A000015555555555555556A6A6A6A6A6A6A6A2E
+:100A100015555555555555556A6A6A6A6A6A6A6A1E
+:100A200015555555555555556A6A6A6A6A6A6A6A0E
+:100A300015555555555555556A6A6A6A6A6A6A6AFE
+:100A400015555555555555556A6A6A6A6A6A6A6AEE
+:100A500015555555555555556A6A6A6A6A6A6A6ADE
+:100A600015555555555555556A6A6A6A6A6A6A6ACE
+:100A700015555555555555556A6A6A6A6A6A6A6ABE
+:100A80002A6A6A6A6A6A6A6A5555555555555555AE
+:100A90002A6A6A6A6A6A6A6A55555555555555559E
+:100AA0002A6A6A6A6A6A6A6A55555555555555558E
+:100AB0002A6A6A6A6A6A6A6A55555555555555557E
+:100AC0002A6A6A6A6A6A6A6A55555555555555556E
+:100AD0002A6A6A6A6A6A6A6A55555555555555555E
+:100AE0002A6A6A6A6A6A6A6A55555555555555554E
+:100AF0002A6A6A6A6A6A6A6A55555555555555553E
+:100B000055555555555555556A6A6A6A6A6A6A6AED
+:100B100055555555555555556A6A6A6A6A6A6A6ADD
+:100B200055555555555555556A6A6A6A6A6A6A6ACD
+:100B300055555555555555556A6A6A6A6A6A6A6ABD
+:100B400055555555555555556A6A6A6A6A6A6A6AAD
+:100B500055555555555555556A6A6A6A6A6A6A6A9D
+:100B600055555555555555556A6A6A6A6A6A6A6A8D
+:100B700055555555555555556A6A6A6A6A6A6A6A7D
+:100B80006A6A6A6A6A6A6A6A55555555555555556D
+:100B90006A6A6A6A6A6A6A6A55555555555555555D
+:100BA0006A6A6A6A6A6A6A6A55555555555555554D
+:100BB0006A6A6A6A6A6A6A6A55555555555555553D
+:100BC0006A6A6A6A6A6A6A6A55555555555555552D
+:100BD0006A6A6A6A6A6A6A6A55555555555555551D
+:100BE0006A6A6A6A6A6A6A6A55555555555555550D
+:100BF0006A6A6A6A6A6A6A6A5555555555555555FD
+:100C000055555555555555556A6A6A6A6A6A6A6AEC
+:100C100055555555555555556A6A6A6A6A6A6A6ADC
+:100C200055555555555555556A6A6A6A6A6A6A6ACC
+:100C300055555555555555556A6A6A6A6A6A6A6ABC
+:100C400055555555555555556A6A6A6A6A6A6A6AAC
+:100C500055555555555555556A6A6A6A6A6A6A6A9C
+:100C600055555555555555556A6A6A6A6A6A6A6A8C
+:100C700055555555555555556A6A6A6A6A6A6A6A7C
+:100C80006A6A6A6A6A6A6A6A55555555555555556C
+:100C90006A6A6A6A6A6A6A6A55555555555555555C
+:100CA0006A6A6A6A6A6A6A6A55555555555555554C
+:100CB0006A6A6A6A6A6A6A6A55555555555555553C
+:100CC0006A6A6A6A6A6A6A6A55555555555555552C
+:100CD0006A6A6A6A6A6A6A6A55555555555555551C
+:100CE0006A6A6A6A6A6A6A6A55555555555555550C
+:100CF0006A6A6A6A6A6A6A6A5555555555555555FC
+:100D000015555555555555556A6A6A6A6A6A6AAAEB
+:100D100015555555555555556A6A6A6A6A6A6AAADB
+:100D200015555555555555556A6A6A6A6A6A6AAACB
+:100D300015555555555555556A6A6A6A6A6A6AAABB
+:100D400015555555555555556A6A6A6A6A6A6AAAAB
+:100D500015555555555555556A6A6A6A6A6A6AAA9B
+:100D600015555555555555556A6A6A6A6A6A6AAA8B
+:100D700015555555555555556A6A6A6A6A6A6AAA7B
+:100D80002A6A6A6A6A6A6A6A55555555555555956B
+:100D90002A6A6A6A6A6A6A6A55555555555555955B
+:100DA0002A6A6A6A6A6A6A6A55555555555555954B
+:100DB0002A6A6A6A6A6A6A6A55555555555555953B
+:100DC0002A6A6A6A6A6A6A6A55555555555555952B
+:100DD0002A6A6A6A6A6A6A6A55555555555555951B
+:100DE0002A6A6A6A6A6A6A6A55555555555555950B
+:100DF0002A6A6A6A6A6A6A6A5555555555555595FB
+:100E000015555555555555556A6A6A6A6A6A6AAAEA
+:100E100015555555555555556A6A6A6A6A6A6AAADA
+:100E200015555555555555556A6A6A6A6A6A6AAACA
+:100E300015555555555555556A6A6A6A6A6A6AAABA
+:100E400015555555555555556A6A6A6A6A6A6AAAAA
+:100E500015555555555555556A6A6A6A6A6A6AAA9A
+:100E600015555555555555556A6A6A6A6A6A6AAA8A
+:100E700015555555555555556A6A6A6A6A6A6AAA7A
+:100E80002A6A6A6A6A6A6A6A55555555555555956A
+:100E90002A6A6A6A6A6A6A6A55555555555555955A
+:100EA0002A6A6A6A6A6A6A6A55555555555555954A
+:100EB0002A6A6A6A6A6A6A6A55555555555555953A
+:100EC0002A6A6A6A6A6A6A6A55555555555555952A
+:100ED0002A6A6A6A6A6A6A6A55555555555555951A
+:100EE0002A6A6A6A6A6A6A6A55555555555555950A
+:100EF0002A6A6A6A6A6A6A6A5555555555555595FA
+:100F000055555555555555556A6A6A6A6A6A6AAAA9
+:100F100055555555555555556A6A6A6A6A6A6AAA99
+:100F200055555555555555556A6A6A6A6A6A6AAA89
+:100F300055555555555555556A6A6A6A6A6A6AAA79
+:100F400055555555555555556A6A6A6A6A6A6AAA69
+:100F500055555555555555556A6A6A6A6A6A6AAA59
+:100F600055555555555555556A6A6A6A6A6A6AAA49
+:100F700055555555555555556A6A6A6A6A6A6AAA39
+:100F80006A6A6A6A6A6A6A6A555555555555559529
+:100F90006A6A6A6A6A6A6A6A555555555555559519
+:100FA0006A6A6A6A6A6A6A6A555555555555559509
+:100FB0006A6A6A6A6A6A6A6A5555555555555595F9
+:100FC0006A6A6A6A6A6A6A6A5555555555555595E9
+:100FD0006A6A6A6A6A6A6A6A5555555555555595D9
+:100FE0006A6A6A6A6A6A6A6A5555555555555595C9
+:100FF0006A6A6A6A6A6A6A6A5555555555555595B9
+:1010000055555555555555556A6A6A6A6A6A6AAAA8
+:1010100055555555555555556A6A6A6A6A6A6AAA98
+:1010200055555555555555556A6A6A6A6A6A6AAA88
+:1010300055555555555555556A6A6A6A6A6A6AAA78
+:1010400055555555555555556A6A6A6A6A6A6AAA68
+:1010500055555555555555556A6A6A6A6A6A6AAA58
+:1010600055555555555555556A6A6A6A6A6A6AAA48
+:1010700055555555555555556A6A6A6A6A6A6AAA38
+:101080006A6A6A6A6A6A6A6A555555555555559528
+:101090006A6A6A6A6A6A6A6A555555555555559518
+:1010A0006A6A6A6A6A6A6A6A555555555555559508
+:1010B0006A6A6A6A6A6A6A6A5555555555555595F8
+:1010C0006A6A6A6A6A6A6A6A5555555555555595E8
+:1010D0006A6A6A6A6A6A6A6A5555555555555595D8
+:1010E0006A6A6A6A6A6A6A6A5555555555555595C8
+:1010F0006A6A6A6A6A6A6A6A5555555555555595B8
+:1011000010505050505050506060606060606020DF
+:1011100010505050505050506060606060606020CF
+:1011200010505050505050506060606060606020BF
+:1011300010505050505050506060606060606020AF
+:10114000105050505050505060606060606060209F
+:10115000105050505050505060606060606060208F
+:10116000105050505050505060606060606060207F
+:10117000105050505050505060606060606060206F
+:10118000206060606060606050505050505050105F
+:10119000206060606060606050505050505050104F
+:1011A000206060606060606050505050505050103F
+:1011B000206060606060606050505050505050102F
+:1011C000206060606060606050505050505050101F
+:1011D000206060606060606050505050505050100F
+:1011E00020606060606060605050505050505010FF
+:1011F00020606060606060605050505050505010EF
+:101200001A5A5A5A5A5A5A5A656565656565652566
+:101210001A5A5A5A5A5A5A5A656565656565652556
+:101220001A5A5A5A5A5A5A5A656565656565652546
+:101230001A5A5A5A5A5A5A5A656565656565652536
+:101240001A5A5A5A5A5A5A5A656565656565652526
+:101250001A5A5A5A5A5A5A5A656565656565652516
+:101260001A5A5A5A5A5A5A5A656565656565652506
+:101270001A5A5A5A5A5A5A5A6565656565656525F6
+:101280002A6A6A6A6A6A6A6A5A5A5A5A5A5A5A1ABE
+:101290002A6A6A6A6A6A6A6A5A5A5A5A5A5A5A1AAE
+:1012A0002A6A6A6A6A6A6A6A5A5A5A5A5A5A5A1A9E
+:1012B0002A6A6A6A6A6A6A6A5A5A5A5A5A5A5A1A8E
+:1012C0002A6A6A6A6A6A6A6A5A5A5A5A5A5A5A1A7E
+:1012D0002A6A6A6A6A6A6A6A5A5A5A5A5A5A5A1A6E
+:1012E0002A6A6A6A6A6A6A6A5A5A5A5A5A5A5A1A5E
+:1012F0002A6A6A6A6A6A6A6A5A5A5A5A5A5A5A1A4E
+:101300005A5A5A5A5A5A5A5A65656565656565A5A5
+:101310005A5A5A5A5A5A5A5A65656565656565A595
+:101320005A5A5A5A5A5A5A5A65656565656565A585
+:101330005A5A5A5A5A5A5A5A65656565656565A575
+:101340005A5A5A5A5A5A5A5A65656565656565A565
+:101350005A5A5A5A5A5A5A5A65656565656565A555
+:101360005A5A5A5A5A5A5A5A65656565656565A545
+:101370005A5A5A5A5A5A5A5A65656565656565A535
+:101380006A6A6A6A6A6A6A6A5A5A5A5A5A5A5A9AFD
+:101390006A6A6A6A6A6A6A6A5A5A5A5A5A5A5A9AED
+:1013A0006A6A6A6A6A6A6A6A5A5A5A5A5A5A5A9ADD
+:1013B0006A6A6A6A6A6A6A6A5A5A5A5A5A5A5A9ACD
+:1013C0006A6A6A6A6A6A6A6A5A5A5A5A5A5A5A9ABD
+:1013D0006A6A6A6A6A6A6A6A5A5A5A5A5A5A5A9AAD
+:1013E0006A6A6A6A6A6A6A6A5A5A5A5A5A5A5A9A9D
+:1013F0006A6A6A6A6A6A6A6A5A5A5A5A5A5A5A9A8D
+:101400005A5A5A5A5A5A5A5A65656565656565A5A4
+:101410005A5A5A5A5A5A5A5A65656565656565A594
+:101420005A5A5A5A5A5A5A5A65656565656565A584
+:101430005A5A5A5A5A5A5A5A65656565656565A574
+:101440005A5A5A5A5A5A5A5A65656565656565A564
+:101450005A5A5A5A5A5A5A5A65656565656565A554
+:101460005A5A5A5A5A5A5A5A65656565656565A544
+:101470005A5A5A5A5A5A5A5A65656565656565A534
+:101480006A6A6A6A6A6A6A6A5A5A5A5A5A5A5A9AFC
+:101490006A6A6A6A6A6A6A6A5A5A5A5A5A5A5A9AEC
+:1014A0006A6A6A6A6A6A6A6A5A5A5A5A5A5A5A9ADC
+:1014B0006A6A6A6A6A6A6A6A5A5A5A5A5A5A5A9ACC
+:1014C0006A6A6A6A6A6A6A6A5A5A5A5A5A5A5A9ABC
+:1014D0006A6A6A6A6A6A6A6A5A5A5A5A5A5A5A9AAC
+:1014E0006A6A6A6A6A6A6A6A5A5A5A5A5A5A5A9A9C
+:1014F0006A6A6A6A6A6A6A6A5A5A5A5A5A5A5A9A8C
+:101500001A5A5A5A5A5A5A5A656565656565652563
+:101510001A5A5A5A5A5A5A5A656565656565652553
+:101520001A5A5A5A5A5A5A5A656565656565652543
+:101530001A5A5A5A5A5A5A5A656565656565652533
+:101540001A5A5A5A5A5A5A5A656565656565652523
+:101550001A5A5A5A5A5A5A5A656565656565652513
+:101560001A5A5A5A5A5A5A5A656565656565652503
+:101570001A5A5A5A5A5A5A5A6565656565656525F3
+:101580002A6A6A6A6A6A6A6A5A5A5A5A5A5A5A1ABB
+:101590002A6A6A6A6A6A6A6A5A5A5A5A5A5A5A1AAB
+:1015A0002A6A6A6A6A6A6A6A5A5A5A5A5A5A5A1A9B
+:1015B0002A6A6A6A6A6A6A6A5A5A5A5A5A5A5A1A8B
+:1015C0002A6A6A6A6A6A6A6A5A5A5A5A5A5A5A1A7B
+:1015D0002A6A6A6A6A6A6A6A5A5A5A5A5A5A5A1A6B
+:1015E0002A6A6A6A6A6A6A6A5A5A5A5A5A5A5A1A5B
+:1015F0002A6A6A6A6A6A6A6A5A5A5A5A5A5A5A1A4B
+:101600001A5A5A5A5A5A5A5A656565656565652562
+:101610001A5A5A5A5A5A5A5A656565656565652552
+:101620001A5A5A5A5A5A5A5A656565656565652542
+:101630001A5A5A5A5A5A5A5A656565656565652532
+:101640001A5A5A5A5A5A5A5A656565656565652522
+:101650001A5A5A5A5A5A5A5A656565656565652512
+:101660001A5A5A5A5A5A5A5A656565656565652502
+:101670001A5A5A5A5A5A5A5A6565656565656525F2
+:101680002A6A6A6A6A6A6A6A5A5A5A5A5A5A5A1ABA
+:101690002A6A6A6A6A6A6A6A5A5A5A5A5A5A5A1AAA
+:1016A0002A6A6A6A6A6A6A6A5A5A5A5A5A5A5A1A9A
+:1016B0002A6A6A6A6A6A6A6A5A5A5A5A5A5A5A1A8A
+:1016C0002A6A6A6A6A6A6A6A5A5A5A5A5A5A5A1A7A
+:1016D0002A6A6A6A6A6A6A6A5A5A5A5A5A5A5A1A6A
+:1016E0002A6A6A6A6A6A6A6A5A5A5A5A5A5A5A1A5A
+:1016F0002A6A6A6A6A6A6A6A5A5A5A5A5A5A5A1A4A
+:101700005A5A5A5A5A5A5A5A65656565656565A5A1
+:101710005A5A5A5A5A5A5A5A65656565656565A591
+:101720005A5A5A5A5A5A5A5A65656565656565A581
+:101730005A5A5A5A5A5A5A5A65656565656565A571
+:101740005A5A5A5A5A5A5A5A65656565656565A561
+:101750005A5A5A5A5A5A5A5A65656565656565A551
+:101760005A5A5A5A5A5A5A5A65656565656565A541
+:101770005A5A5A5A5A5A5A5A65656565656565A531
+:101780006A6A6A6A6A6A6A6A5A5A5A5A5A5A5A9AF9
+:101790006A6A6A6A6A6A6A6A5A5A5A5A5A5A5A9AE9
+:1017A0006A6A6A6A6A6A6A6A5A5A5A5A5A5A5A9AD9
+:1017B0006A6A6A6A6A6A6A6A5A5A5A5A5A5A5A9AC9
+:1017C0006A6A6A6A6A6A6A6A5A5A5A5A5A5A5A9AB9
+:1017D0006A6A6A6A6A6A6A6A5A5A5A5A5A5A5A9AA9
+:1017E0006A6A6A6A6A6A6A6A5A5A5A5A5A5A5A9A99
+:1017F0006A6A6A6A6A6A6A6A5A5A5A5A5A5A5A9A89
+:101800005A5A5A5A5A5A5A5A65656565656565A5A0
+:101810005A5A5A5A5A5A5A5A65656565656565A590
+:101820005A5A5A5A5A5A5A5A65656565656565A580
+:101830005A5A5A5A5A5A5A5A65656565656565A570
+:101840005A5A5A5A5A5A5A5A65656565656565A560
+:101850005A5A5A5A5A5A5A5A65656565656565A550
+:101860005A5A5A5A5A5A5A5A65656565656565A540
+:101870005A5A5A5A5A5A5A5A65656565656565A530
+:101880006A6A6A6A6A6A6A6A5A5A5A5A5A5A5A9AF8
+:101890006A6A6A6A6A6A6A6A5A5A5A5A5A5A5A9AE8
+:1018A0006A6A6A6A6A6A6A6A5A5A5A5A5A5A5A9AD8
+:1018B0006A6A6A6A6A6A6A6A5A5A5A5A5A5A5A9AC8
+:1018C0006A6A6A6A6A6A6A6A5A5A5A5A5A5A5A9AB8
+:1018D0006A6A6A6A6A6A6A6A5A5A5A5A5A5A5A9AA8
+:1018E0006A6A6A6A6A6A6A6A5A5A5A5A5A5A5A9A98
+:1018F0006A6A6A6A6A6A6A6A5A5A5A5A5A5A5A9A88
+:101900001A9A9A9A9A9A9A9AA5A5A5A5A5A5A525DF
+:101910001A9A9A9A9A9A9A9AA5A5A5A5A5A5A525CF
+:101920001A9A9A9A9A9A9A9AA5A5A5A5A5A5A525BF
+:101930001A9A9A9A9A9A9A9AA5A5A5A5A5A5A525AF
+:101940001A9A9A9A9A9A9A9AA5A5A5A5A5A5A5259F
+:101950001A9A9A9A9A9A9A9AA5A5A5A5A5A5A5258F
+:101960001A9A9A9A9A9A9A9AA5A5A5A5A5A5A5257F
+:101970001A9A9A9A9A9A9A9AA5A5A5A5A5A5A5256F
+:101980002AAAAAAAAAAAAAAA9A9A9A9A9A9A9A1A37
+:101990002AAAAAAAAAAAAAAA9A9A9A9A9A9A9A1A27
+:1019A0002AAAAAAAAAAAAAAA9A9A9A9A9A9A9A1A17
+:1019B0002AAAAAAAAAAAAAAA9A9A9A9A9A9A9A1A07
+:1019C0002AAAAAAAAAAAAAAA9A9A9A9A9A9A9A1AF7
+:1019D0002AAAAAAAAAAAAAAA9A9A9A9A9A9A9A1AE7
+:1019E0002AAAAAAAAAAAAAAA9A9A9A9A9A9A9A1AD7
+:1019F0002AAAAAAAAAAAAAAA9A9A9A9A9A9A9A1AC7
+:101A00001A9A9A9A9A9A9A9AA5A5A5A5A5A5A525DE
+:101A10001A9A9A9A9A9A9A9AA5A5A5A5A5A5A525CE
+:101A20001A9A9A9A9A9A9A9AA5A5A5A5A5A5A525BE
+:101A30001A9A9A9A9A9A9A9AA5A5A5A5A5A5A525AE
+:101A40001A9A9A9A9A9A9A9AA5A5A5A5A5A5A5259E
+:101A50001A9A9A9A9A9A9A9AA5A5A5A5A5A5A5258E
+:101A60001A9A9A9A9A9A9A9AA5A5A5A5A5A5A5257E
+:101A70001A9A9A9A9A9A9A9AA5A5A5A5A5A5A5256E
+:101A80002AAAAAAAAAAAAAAA9A9A9A9A9A9A9A1A36
+:101A90002AAAAAAAAAAAAAAA9A9A9A9A9A9A9A1A26
+:101AA0002AAAAAAAAAAAAAAA9A9A9A9A9A9A9A1A16
+:101AB0002AAAAAAAAAAAAAAA9A9A9A9A9A9A9A1A06
+:101AC0002AAAAAAAAAAAAAAA9A9A9A9A9A9A9A1AF6
+:101AD0002AAAAAAAAAAAAAAA9A9A9A9A9A9A9A1AE6
+:101AE0002AAAAAAAAAAAAAAA9A9A9A9A9A9A9A1AD6
+:101AF0002AAAAAAAAAAAAAAA9A9A9A9A9A9A9A1AC6
+:101B00005A9A9A9A9A9A9A9AA5A5A5A5A5A5A5A51D
+:101B10005A9A9A9A9A9A9A9AA5A5A5A5A5A5A5A50D
+:101B20005A9A9A9A9A9A9A9AA5A5A5A5A5A5A5A5FD
+:101B30005A9A9A9A9A9A9A9AA5A5A5A5A5A5A5A5ED
+:101B40005A9A9A9A9A9A9A9AA5A5A5A5A5A5A5A5DD
+:101B50005A9A9A9A9A9A9A9AA5A5A5A5A5A5A5A5CD
+:101B60005A9A9A9A9A9A9A9AA5A5A5A5A5A5A5A5BD
+:101B70005A9A9A9A9A9A9A9AA5A5A5A5A5A5A5A5AD
+:101B80006AAAAAAAAAAAAAAA9A9A9A9A9A9A9A9A75
+:101B90006AAAAAAAAAAAAAAA9A9A9A9A9A9A9A9A65
+:101BA0006AAAAAAAAAAAAAAA9A9A9A9A9A9A9A9A55
+:101BB0006AAAAAAAAAAAAAAA9A9A9A9A9A9A9A9A45
+:101BC0006AAAAAAAAAAAAAAA9A9A9A9A9A9A9A9A35
+:101BD0006AAAAAAAAAAAAAAA9A9A9A9A9A9A9A9A25
+:101BE0006AAAAAAAAAAAAAAA9A9A9A9A9A9A9A9A15
+:101BF0006AAAAAAAAAAAAAAA9A9A9A9A9A9A9A9A05
+:101C00005A9A9A9A9A9A9A9AA5A5A5A5A5A5A5A51C
+:101C10005A9A9A9A9A9A9A9AA5A5A5A5A5A5A5A50C
+:101C20005A9A9A9A9A9A9A9AA5A5A5A5A5A5A5A5FC
+:101C30005A9A9A9A9A9A9A9AA5A5A5A5A5A5A5A5EC
+:101C40005A9A9A9A9A9A9A9AA5A5A5A5A5A5A5A5DC
+:101C50005A9A9A9A9A9A9A9AA5A5A5A5A5A5A5A5CC
+:101C60005A9A9A9A9A9A9A9AA5A5A5A5A5A5A5A5BC
+:101C70005A9A9A9A9A9A9A9AA5A5A5A5A5A5A5A5AC
+:101C80006AAAAAAAAAAAAAAA9A9A9A9A9A9A9A9A74
+:101C90006AAAAAAAAAAAAAAA9A9A9A9A9A9A9A9A64
+:101CA0006AAAAAAAAAAAAAAA9A9A9A9A9A9A9A9A54
+:101CB0006AAAAAAAAAAAAAAA9A9A9A9A9A9A9A9A44
+:101CC0006AAAAAAAAAAAAAAA9A9A9A9A9A9A9A9A34
+:101CD0006AAAAAAAAAAAAAAA9A9A9A9A9A9A9A9A24
+:101CE0006AAAAAAAAAAAAAAA9A9A9A9A9A9A9A9A14
+:101CF0006AAAAAAAAAAAAAAA9A9A9A9A9A9A9A9A04
+:101D00001A9A9A9A9A9A9A9AA5A5A5A5A5A5A525DB
+:101D10001A9A9A9A9A9A9A9AA5A5A5A5A5A5A525CB
+:101D20001A9A9A9A9A9A9A9AA5A5A5A5A5A5A525BB
+:101D30001A9A9A9A9A9A9A9AA5A5A5A5A5A5A525AB
+:101D40001A9A9A9A9A9A9A9AA5A5A5A5A5A5A5259B
+:101D50001A9A9A9A9A9A9A9AA5A5A5A5A5A5A5258B
+:101D60001A9A9A9A9A9A9A9AA5A5A5A5A5A5A5257B
+:101D70001A9A9A9A9A9A9A9AA5A5A5A5A5A5A5256B
+:101D80002AAAAAAAAAAAAAAA9A9A9A9A9A9A9A1A33
+:101D90002AAAAAAAAAAAAAAA9A9A9A9A9A9A9A1A23
+:101DA0002AAAAAAAAAAAAAAA9A9A9A9A9A9A9A1A13
+:101DB0002AAAAAAAAAAAAAAA9A9A9A9A9A9A9A1A03
+:101DC0002AAAAAAAAAAAAAAA9A9A9A9A9A9A9A1AF3
+:101DD0002AAAAAAAAAAAAAAA9A9A9A9A9A9A9A1AE3
+:101DE0002AAAAAAAAAAAAAAA9A9A9A9A9A9A9A1AD3
+:101DF0002AAAAAAAAAAAAAAA9A9A9A9A9A9A9A1AC3
+:101E00001A9A9A9A9A9A9A9AA5A5A5A5A5A5A525DA
+:101E10001A9A9A9A9A9A9A9AA5A5A5A5A5A5A525CA
+:101E20001A9A9A9A9A9A9A9AA5A5A5A5A5A5A525BA
+:101E30001A9A9A9A9A9A9A9AA5A5A5A5A5A5A525AA
+:101E40001A9A9A9A9A9A9A9AA5A5A5A5A5A5A5259A
+:101E50001A9A9A9A9A9A9A9AA5A5A5A5A5A5A5258A
+:101E60001A9A9A9A9A9A9A9AA5A5A5A5A5A5A5257A
+:101E70001A9A9A9A9A9A9A9AA5A5A5A5A5A5A5256A
+:101E80002AAAAAAAAAAAAAAA9A9A9A9A9A9A9A1A32
+:101E90002AAAAAAAAAAAAAAA9A9A9A9A9A9A9A1A22
+:101EA0002AAAAAAAAAAAAAAA9A9A9A9A9A9A9A1A12
+:101EB0002AAAAAAAAAAAAAAA9A9A9A9A9A9A9A1A02
+:101EC0002AAAAAAAAAAAAAAA9A9A9A9A9A9A9A1AF2
+:101ED0002AAAAAAAAAAAAAAA9A9A9A9A9A9A9A1AE2
+:101EE0002AAAAAAAAAAAAAAA9A9A9A9A9A9A9A1AD2
+:101EF0002AAAAAAAAAAAAAAA9A9A9A9A9A9A9A1AC2
+:101F00005A9A9A9A9A9A9A9AA5A5A5A5A5A5A5A519
+:101F10005A9A9A9A9A9A9A9AA5A5A5A5A5A5A5A509
+:101F20005A9A9A9A9A9A9A9AA5A5A5A5A5A5A5A5F9
+:101F30005A9A9A9A9A9A9A9AA5A5A5A5A5A5A5A5E9
+:101F40005A9A9A9A9A9A9A9AA5A5A5A5A5A5A5A5D9
+:101F50005A9A9A9A9A9A9A9AA5A5A5A5A5A5A5A5C9
+:101F60005A9A9A9A9A9A9A9AA5A5A5A5A5A5A5A5B9
+:101F70005A9A9A9A9A9A9A9AA5A5A5A5A5A5A5A5A9
+:101F80006AAAAAAAAAAAAAAA9A9A9A9A9A9A9A9A71
+:101F90006AAAAAAAAAAAAAAA9A9A9A9A9A9A9A9A61
+:101FA0006AAAAAAAAAAAAAAA9A9A9A9A9A9A9A9A51
+:101FB0006AAAAAAAAAAAAAAA9A9A9A9A9A9A9A9A41
+:101FC0006AAAAAAAAAAAAAAA9A9A9A9A9A9A9A9A31
+:101FD0006AAAAAAAAAAAAAAA9A9A9A9A9A9A9A9A21
+:101FE0006AAAAAAAAAAAAAAA9A9A9A9A9A9A9A9A11
+:101FF0006AAAAAAAAAAAAAAA9A9A9A9A9A9A9A9A01
+:102000005A9A9A9A9A9A9A9AA5A5A5A5A5A5A5A518
+:102010005A9A9A9A9A9A9A9AA5A5A5A5A5A5A5A508
+:102020005A9A9A9A9A9A9A9AA5A5A5A5A5A5A5A5F8
+:102030005A9A9A9A9A9A9A9AA5A5A5A5A5A5A5A5E8
+:102040005A9A9A9A9A9A9A9AA5A5A5A5A5A5A5A5D8
+:102050005A9A9A9A9A9A9A9AA5A5A5A5A5A5A5A5C8
+:102060005A9A9A9A9A9A9A9AA5A5A5A5A5A5A5A5B8
+:102070005A9A9A9A9A9A9A9AA5A5A5A5A5A5A5A5A8
+:102080006AAAAAAAAAAAAAAA9A9A9A9A9A9A9A9A70
+:102090006AAAAAAAAAAAAAAA9A9A9A9A9A9A9A9A60
+:1020A0006AAAAAAAAAAAAAAA9A9A9A9A9A9A9A9A50
+:1020B0006AAAAAAAAAAAAAAA9A9A9A9A9A9A9A9A40
+:1020C0006AAAAAAAAAAAAAAA9A9A9A9A9A9A9A9A30
+:1020D0006AAAAAAAAAAAAAAA9A9A9A9A9A9A9A9A20
+:1020E0006AAAAAAAAAAAAAAA9A9A9A9A9A9A9A9A10
+:1020F0006AAAAAAAAAAAAAAA9A9A9A9A9A9A9A9A00
+:102100001A9A9A9A9A9A9A9AA5A5A5A5A5A5A525D7
+:102110001A9A9A9A9A9A9A9AA5A5A5A5A5A5A525C7
+:102120001A9A9A9A9A9A9A9AA5A5A5A5A5A5A525B7
+:102130001A9A9A9A9A9A9A9AA5A5A5A5A5A5A525A7
+:102140001A9A9A9A9A9A9A9AA5A5A5A5A5A5A52597
+:102150001A9A9A9A9A9A9A9AA5A5A5A5A5A5A52587
+:102160001A9A9A9A9A9A9A9AA5A5A5A5A5A5A52577
+:102170001A9A9A9A9A9A9A9AA5A5A5A5A5A5A52567
+:102180002AAAAAAAAAAAAAAA9A9A9A9A9A9A9A1A2F
+:102190002AAAAAAAAAAAAAAA9A9A9A9A9A9A9A1A1F
+:1021A0002AAAAAAAAAAAAAAA9A9A9A9A9A9A9A1A0F
+:1021B0002AAAAAAAAAAAAAAA9A9A9A9A9A9A9A1AFF
+:1021C0002AAAAAAAAAAAAAAA9A9A9A9A9A9A9A1AEF
+:1021D0002AAAAAAAAAAAAAAA9A9A9A9A9A9A9A1ADF
+:1021E0002AAAAAAAAAAAAAAA9A9A9A9A9A9A9A1ACF
+:1021F0002AAAAAAAAAAAAAAA9A9A9A9A9A9A9A1ABF
+:102200001A9A9A9A9A9A9A9AA5A5A5A5A5A5A525D6
+:102210001A9A9A9A9A9A9A9AA5A5A5A5A5A5A525C6
+:102220001A9A9A9A9A9A9A9AA5A5A5A5A5A5A525B6
+:102230001A9A9A9A9A9A9A9AA5A5A5A5A5A5A525A6
+:102240001A9A9A9A9A9A9A9AA5A5A5A5A5A5A52596
+:102250001A9A9A9A9A9A9A9AA5A5A5A5A5A5A52586
+:102260001A9A9A9A9A9A9A9AA5A5A5A5A5A5A52576
+:102270001A9A9A9A9A9A9A9AA5A5A5A5A5A5A52566
+:102280002AAAAAAAAAAAAAAA9A9A9A9A9A9A9A1A2E
+:102290002AAAAAAAAAAAAAAA9A9A9A9A9A9A9A1A1E
+:1022A0002AAAAAAAAAAAAAAA9A9A9A9A9A9A9A1A0E
+:1022B0002AAAAAAAAAAAAAAA9A9A9A9A9A9A9A1AFE
+:1022C0002AAAAAAAAAAAAAAA9A9A9A9A9A9A9A1AEE
+:1022D0002AAAAAAAAAAAAAAA9A9A9A9A9A9A9A1ADE
+:1022E0002AAAAAAAAAAAAAAA9A9A9A9A9A9A9A1ACE
+:1022F0002AAAAAAAAAAAAAAA9A9A9A9A9A9A9A1ABE
+:102300005A9A9A9A9A9A9A9AA5A5A5A5A5A5A5A515
+:102310005A9A9A9A9A9A9A9AA5A5A5A5A5A5A5A505
+:102320005A9A9A9A9A9A9A9AA5A5A5A5A5A5A5A5F5
+:102330005A9A9A9A9A9A9A9AA5A5A5A5A5A5A5A5E5
+:102340005A9A9A9A9A9A9A9AA5A5A5A5A5A5A5A5D5
+:102350005A9A9A9A9A9A9A9AA5A5A5A5A5A5A5A5C5
+:102360005A9A9A9A9A9A9A9AA5A5A5A5A5A5A5A5B5
+:102370005A9A9A9A9A9A9A9AA5A5A5A5A5A5A5A5A5
+:102380006AAAAAAAAAAAAAAA9A9A9A9A9A9A9A9A6D
+:102390006AAAAAAAAAAAAAAA9A9A9A9A9A9A9A9A5D
+:1023A0006AAAAAAAAAAAAAAA9A9A9A9A9A9A9A9A4D
+:1023B0006AAAAAAAAAAAAAAA9A9A9A9A9A9A9A9A3D
+:1023C0006AAAAAAAAAAAAAAA9A9A9A9A9A9A9A9A2D
+:1023D0006AAAAAAAAAAAAAAA9A9A9A9A9A9A9A9A1D
+:1023E0006AAAAAAAAAAAAAAA9A9A9A9A9A9A9A9A0D
+:1023F0006AAAAAAAAAAAAAAA9A9A9A9A9A9A9A9AFD
+:102400005A9A9A9A9A9A9A9AA5A5A5A5A5A5A5A514
+:102410005A9A9A9A9A9A9A9AA5A5A5A5A5A5A5A504
+:102420005A9A9A9A9A9A9A9AA5A5A5A5A5A5A5A5F4
+:102430005A9A9A9A9A9A9A9AA5A5A5A5A5A5A5A5E4
+:102440005A9A9A9A9A9A9A9AA5A5A5A5A5A5A5A5D4
+:102450005A9A9A9A9A9A9A9AA5A5A5A5A5A5A5A5C4
+:102460005A9A9A9A9A9A9A9AA5A5A5A5A5A5A5A5B4
+:102470005A9A9A9A9A9A9A9AA5A5A5A5A5A5A5A5A4
+:102480006AAAAAAAAAAAAAAA9A9A9A9A9A9A9A9A6C
+:102490006AAAAAAAAAAAAAAA9A9A9A9A9A9A9A9A5C
+:1024A0006AAAAAAAAAAAAAAA9A9A9A9A9A9A9A9A4C
+:1024B0006AAAAAAAAAAAAAAA9A9A9A9A9A9A9A9A3C
+:1024C0006AAAAAAAAAAAAAAA9A9A9A9A9A9A9A9A2C
+:1024D0006AAAAAAAAAAAAAAA9A9A9A9A9A9A9A9A1C
+:1024E0006AAAAAAAAAAAAAAA9A9A9A9A9A9A9A9A0C
+:1024F0006AAAAAAAAAAAAAAA9A9A9A9A9A9A9A9AFC
+:102500001A9A9A9A9A9A9A9AA5A5A5A5A5A5A525D3
+:102510001A9A9A9A9A9A9A9AA5A5A5A5A5A5A525C3
+:102520001A9A9A9A9A9A9A9AA5A5A5A5A5A5A525B3
+:102530001A9A9A9A9A9A9A9AA5A5A5A5A5A5A525A3
+:102540001A9A9A9A9A9A9A9AA5A5A5A5A5A5A52593
+:102550001A9A9A9A9A9A9A9AA5A5A5A5A5A5A52583
+:102560001A9A9A9A9A9A9A9AA5A5A5A5A5A5A52573
+:102570001A9A9A9A9A9A9A9AA5A5A5A5A5A5A52563
+:102580002AAAAAAAAAAAAAAA9A9A9A9A9A9A9A1A2B
+:102590002AAAAAAAAAAAAAAA9A9A9A9A9A9A9A1A1B
+:1025A0002AAAAAAAAAAAAAAA9A9A9A9A9A9A9A1A0B
+:1025B0002AAAAAAAAAAAAAAA9A9A9A9A9A9A9A1AFB
+:1025C0002AAAAAAAAAAAAAAA9A9A9A9A9A9A9A1AEB
+:1025D0002AAAAAAAAAAAAAAA9A9A9A9A9A9A9A1ADB
+:1025E0002AAAAAAAAAAAAAAA9A9A9A9A9A9A9A1ACB
+:1025F0002AAAAAAAAAAAAAAA9A9A9A9A9A9A9A1ABB
+:102600001A9A9A9A9A9A9A9AA5A5A5A5A5A5A525D2
+:102610001A9A9A9A9A9A9A9AA5A5A5A5A5A5A525C2
+:102620001A9A9A9A9A9A9A9AA5A5A5A5A5A5A525B2
+:102630001A9A9A9A9A9A9A9AA5A5A5A5A5A5A525A2
+:102640001A9A9A9A9A9A9A9AA5A5A5A5A5A5A52592
+:102650001A9A9A9A9A9A9A9AA5A5A5A5A5A5A52582
+:102660001A9A9A9A9A9A9A9AA5A5A5A5A5A5A52572
+:102670001A9A9A9A9A9A9A9AA5A5A5A5A5A5A52562
+:102680002AAAAAAAAAAAAAAA9A9A9A9A9A9A9A1A2A
+:102690002AAAAAAAAAAAAAAA9A9A9A9A9A9A9A1A1A
+:1026A0002AAAAAAAAAAAAAAA9A9A9A9A9A9A9A1A0A
+:1026B0002AAAAAAAAAAAAAAA9A9A9A9A9A9A9A1AFA
+:1026C0002AAAAAAAAAAAAAAA9A9A9A9A9A9A9A1AEA
+:1026D0002AAAAAAAAAAAAAAA9A9A9A9A9A9A9A1ADA
+:1026E0002AAAAAAAAAAAAAAA9A9A9A9A9A9A9A1ACA
+:1026F0002AAAAAAAAAAAAAAA9A9A9A9A9A9A9A1ABA
+:102700005A9A9A9A9A9A9A9AA5A5A5A5A5A5A5A511
+:102710005A9A9A9A9A9A9A9AA5A5A5A5A5A5A5A501
+:102720005A9A9A9A9A9A9A9AA5A5A5A5A5A5A5A5F1
+:102730005A9A9A9A9A9A9A9AA5A5A5A5A5A5A5A5E1
+:102740005A9A9A9A9A9A9A9AA5A5A5A5A5A5A5A5D1
+:102750005A9A9A9A9A9A9A9AA5A5A5A5A5A5A5A5C1
+:102760005A9A9A9A9A9A9A9AA5A5A5A5A5A5A5A5B1
+:102770005A9A9A9A9A9A9A9AA5A5A5A5A5A5A5A5A1
+:102780006AAAAAAAAAAAAAAA9A9A9A9A9A9A9A9A69
+:102790006AAAAAAAAAAAAAAA9A9A9A9A9A9A9A9A59
+:1027A0006AAAAAAAAAAAAAAA9A9A9A9A9A9A9A9A49
+:1027B0006AAAAAAAAAAAAAAA9A9A9A9A9A9A9A9A39
+:1027C0006AAAAAAAAAAAAAAA9A9A9A9A9A9A9A9A29
+:1027D0006AAAAAAAAAAAAAAA9A9A9A9A9A9A9A9A19
+:1027E0006AAAAAAAAAAAAAAA9A9A9A9A9A9A9A9A09
+:1027F0006AAAAAAAAAAAAAAA9A9A9A9A9A9A9A9AF9
+:102800005A9A9A9A9A9A9A9AA5A5A5A5A5A5A5A510
+:102810005A9A9A9A9A9A9A9AA5A5A5A5A5A5A5A500
+:102820005A9A9A9A9A9A9A9AA5A5A5A5A5A5A5A5F0
+:102830005A9A9A9A9A9A9A9AA5A5A5A5A5A5A5A5E0
+:102840005A9A9A9A9A9A9A9AA5A5A5A5A5A5A5A5D0
+:102850005A9A9A9A9A9A9A9AA5A5A5A5A5A5A5A5C0
+:102860005A9A9A9A9A9A9A9AA5A5A5A5A5A5A5A5B0
+:102870005A9A9A9A9A9A9A9AA5A5A5A5A5A5A5A5A0
+:102880006AAAAAAAAAAAAAAA9A9A9A9A9A9A9A9A68
+:102890006AAAAAAAAAAAAAAA9A9A9A9A9A9A9A9A58
+:1028A0006AAAAAAAAAAAAAAA9A9A9A9A9A9A9A9A48
+:1028B0006AAAAAAAAAAAAAAA9A9A9A9A9A9A9A9A38
+:1028C0006AAAAAAAAAAAAAAA9A9A9A9A9A9A9A9A28
+:1028D0006AAAAAAAAAAAAAAA9A9A9A9A9A9A9A9A18
+:1028E0006AAAAAAAAAAAAAAA9A9A9A9A9A9A9A9A08
+:1028F0006AAAAAAAAAAAAAAA9A9A9A9A9A9A9A9AF8
+:102900001A9A9A9A9A9A9A9AA5A5A5A5A5A5A525CF
+:102910001A9A9A9A9A9A9A9AA5A5A5A5A5A5A525BF
+:102920001A9A9A9A9A9A9A9AA5A5A5A5A5A5A525AF
+:102930001A9A9A9A9A9A9A9AA5A5A5A5A5A5A5259F
+:102940001A9A9A9A9A9A9A9AA5A5A5A5A5A5A5258F
+:102950001A9A9A9A9A9A9A9AA5A5A5A5A5A5A5257F
+:102960001A9A9A9A9A9A9A9AA5A5A5A5A5A5A5256F
+:102970001A9A9A9A9A9A9A9AA5A5A5A5A5A5A5255F
+:102980002AAAAAAAAAAAAAAA9A9A9A9A9A9A9A1A27
+:102990002AAAAAAAAAAAAAAA9A9A9A9A9A9A9A1A17
+:1029A0002AAAAAAAAAAAAAAA9A9A9A9A9A9A9A1A07
+:1029B0002AAAAAAAAAAAAAAA9A9A9A9A9A9A9A1AF7
+:1029C0002AAAAAAAAAAAAAAA9A9A9A9A9A9A9A1AE7
+:1029D0002AAAAAAAAAAAAAAA9A9A9A9A9A9A9A1AD7
+:1029E0002AAAAAAAAAAAAAAA9A9A9A9A9A9A9A1AC7
+:1029F0002AAAAAAAAAAAAAAA9A9A9A9A9A9A9A1AB7
+:102A00001A5A5A5A5A5A5A5A65656565656525258E
+:102A10001A5A5A5A5A5A5A5A65656565656525257E
+:102A20001A5A5A5A5A5A5A5A65656565656525256E
+:102A30001A5A5A5A5A5A5A5A65656565656525255E
+:102A40001A5A5A5A5A5A5A5A65656565656525254E
+:102A50001A5A5A5A5A5A5A5A65656565656525253E
+:102A60001A5A5A5A5A5A5A5A65656565656525252E
+:102A70001A5A5A5A5A5A5A5A65656565656525251E
+:102A80002A6A6A6A6A6A6A6A5A5A5A5A5A5A1A1AE6
+:102A90002A6A6A6A6A6A6A6A5A5A5A5A5A5A1A1AD6
+:102AA0002A6A6A6A6A6A6A6A5A5A5A5A5A5A1A1AC6
+:102AB0002A6A6A6A6A6A6A6A5A5A5A5A5A5A1A1AB6
+:102AC0002A6A6A6A6A6A6A6A5A5A5A5A5A5A1A1AA6
+:102AD0002A6A6A6A6A6A6A6A5A5A5A5A5A5A1A1A96
+:102AE0002A6A6A6A6A6A6A6A5A5A5A5A5A5A1A1A86
+:102AF0002A6A6A6A6A6A6A6A5A5A5A5A5A5A1A1A76
+:102B00005A5A5A5A5A5A5A5A65656565252525A54D
+:102B10005A5A5A5A5A5A5A5A65656565252525A53D
+:102B20005A5A5A5A5A5A5A5A65656565252525A52D
+:102B30005A5A5A5A5A5A5A5A65656565252525A51D
+:102B40005A5A5A5A5A5A5A5A65656565252525A50D
+:102B50005A5A5A5A5A5A5A5A65656565252525A5FD
+:102B60005A5A5A5A5A5A5A5A65656565252525A5ED
+:102B70005A5A5A5A5A5A5A5A65656565252525A5DD
+:102B80006A6A6A6A6A6A6A6A5A5A5A5A1A1A1A9AA5
+:102B90006A6A6A6A6A6A6A6A5A5A5A5A1A1A1A9A95
+:102BA0006A6A6A6A6A6A6A6A5A5A5A5A1A1A1A9A85
+:102BB0006A6A6A6A6A6A6A6A5A5A5A5A1A1A1A9A75
+:102BC0006A6A6A6A6A6A6A6A5A5A5A5A1A1A1A9A65
+:102BD0006A6A6A6A6A6A6A6A5A5A5A5A1A1A1A9A55
+:102BE0006A6A6A6A6A6A6A6A5A5A5A5A1A1A1A9A45
+:102BF0006A6A6A6A6A6A6A6A5A5A5A5A1A1A1A9A35
+:102C00005A5A5A5A5A5A5A5A65656525252525A58C
+:102C10005A5A5A5A5A5A5A5A65656525252525A57C
+:102C20005A5A5A5A5A5A5A5A65656525252525A56C
+:102C30005A5A5A5A5A5A5A5A65656525252525A55C
+:102C40005A5A5A5A5A5A5A5A65656525252525A54C
+:102C50005A5A5A5A5A5A5A5A65656525252525A53C
+:102C60005A5A5A5A5A5A5A5A65656525252525A52C
+:102C70005A5A5A5A5A5A5A5A65656525252525A51C
+:102C80006A6A6A6A6A6A6A6A5A5A5A1A1A1A1A9AE4
+:102C90006A6A6A6A6A6A6A6A5A5A5A1A1A1A1A9AD4
+:102CA0006A6A6A6A6A6A6A6A5A5A5A1A1A1A1A9AC4
+:102CB0006A6A6A6A6A6A6A6A5A5A5A1A1A1A1A9AB4
+:102CC0006A6A6A6A6A6A6A6A5A5A5A1A1A1A1A9AA4
+:102CD0006A6A6A6A6A6A6A6A5A5A5A1A1A1A1A9A94
+:102CE0006A6A6A6A6A6A6A6A5A5A5A1A1A1A1A9A84
+:102CF0006A6A6A6A6A6A6A6A5A5A5A1A1A1A1A9A74
+:102D00001A5A5A5A5A5A5A5A65652525652525254B
+:102D10001A5A5A5A5A5A5A5A65652525652525253B
+:102D20001A5A5A5A5A5A5A5A65652525652525252B
+:102D30001A5A5A5A5A5A5A5A65652525652525251B
+:102D40001A5A5A5A5A5A5A5A65652525652525250B
+:102D50001A5A5A5A5A5A5A5A6565252565252525FB
+:102D60001A5A5A5A5A5A5A5A6565252565252525EB
+:102D70001A5A5A5A5A5A5A5A6565252565252525DB
+:102D80002A6A6A6A6A6A6A6A5A5A1A1A5A1A1A1AA3
+:102D90002A6A6A6A6A6A6A6A5A5A1A1A5A1A1A1A93
+:102DA0002A6A6A6A6A6A6A6A5A5A1A1A5A1A1A1A83
+:102DB0002A6A6A6A6A6A6A6A5A5A1A1A5A1A1A1A73
+:102DC0002A6A6A6A6A6A6A6A5A5A1A1A5A1A1A1A63
+:102DD0002A6A6A6A6A6A6A6A5A5A1A1A5A1A1A1A53
+:102DE0002A6A6A6A6A6A6A6A5A5A1A1A5A1A1A1A43
+:102DF0002A6A6A6A6A6A6A6A5A5A1A1A5A1A1A1A33
+:102E00001A5A5A5A5A5A5A5A6525252525252525CA
+:102E10001A5A5A5A5A5A5A5A6525252525252525BA
+:102E20001A5A5A5A5A5A5A5A6525252525252525AA
+:102E30001A5A5A5A5A5A5A5A65252525252525259A
+:102E40001A5A5A5A5A5A5A5A65252525252525258A
+:102E50001A5A5A5A5A5A5A5A65252525252525257A
+:102E60001A5A5A5A5A5A5A5A65252525252525256A
+:102E70001A5A5A5A5A5A5A5A65252525252525255A
+:102E80002A6A6A6A6A6A6A6A5A1A1A1A1A1A1A1A22
+:102E90002A6A6A6A6A6A6A6A5A1A1A1A1A1A1A1A12
+:102EA0002A6A6A6A6A6A6A6A5A1A1A1A1A1A1A1A02
+:102EB0002A6A6A6A6A6A6A6A5A1A1A1A1A1A1A1AF2
+:102EC0002A6A6A6A6A6A6A6A5A1A1A1A1A1A1A1AE2
+:102ED0002A6A6A6A6A6A6A6A5A1A1A1A1A1A1A1AD2
+:102EE0002A6A6A6A6A6A6A6A5A1A1A1A1A1A1A1AC2
+:102EF0002A6A6A6A6A6A6A6A5A1A1A1A1A1A1A1AB2
+:102F00004A4A4A4A4A4A4A4A450505050505058589
+:102F10004A4A4A4A4A4A4A4A450505050505058579
+:102F20004A4A4A4A4A4A4A4A450505050505058569
+:102F30004A4A4A4A4A4A4A4A450505050505058559
+:102F40004A4A4A4A4A4A4A4A450505050505058549
+:102F50004A4A4A4A4A4A4A4A450505050505058539
+:102F60004A4A4A4A4A4A4A4A450505050505058529
+:102F70004A4A4A4A4A4A4A4A450505050505058519
+:102F80004A4A4A4A4A4A4A4A4A0A0A0A0A0A0A8AE1
+:102F90004A4A4A4A4A4A4A4A4A0A0A0A0A0A0A8AD1
+:102FA0004A4A4A4A4A4A4A4A4A0A0A0A0A0A0A8AC1
+:102FB0004A4A4A4A4A4A4A4A4A0A0A0A0A0A0A8AB1
+:102FC0004A4A4A4A4A4A4A4A4A0A0A0A0A0A0A8AA1
+:102FD0004A4A4A4A4A4A4A4A4A0A0A0A0A0A0A8A91
+:102FE0004A4A4A4A4A4A4A4A4A0A0A0A0A0A0A8A81
+:102FF0004A4A4A4A4A4A4A4A4A0A0A0A0A0A0A8A71
+:103000006A6A6A6A6A6A6A6A151515151515159548
+:103010006A6A6A6A6A6A6A6A151515151515159538
+:103020006A6A6A6A6A6A6A6A151515151515159528
+:103030006A6A6A6A6A6A6A6A151515151515159518
+:103040006A6A6A6A6A6A6A6A151515151515159508
+:103050006A6A6A6A6A6A6A6A1515151515151595F8
+:103060006A6A6A6A6A6A6A6A1515151515151595E8
+:103070006A6A6A6A6A6A6A6A1515151515151595D8
+:103080006A6A6A6A6A6A6A6A2A2A2A2A2A2A2AAA20
+:103090006A6A6A6A6A6A6A6A2A2A2A2A2A2A2AAA10
+:1030A0006A6A6A6A6A6A6A6A2A2A2A2A2A2A2AAA00
+:1030B0006A6A6A6A6A6A6A6A2A2A2A2A2A2A2AAAF0
+:1030C0006A6A6A6A6A6A6A6A2A2A2A2A2A2A2AAAE0
+:1030D0006A6A6A6A6A6A6A6A2A2A2A2A2A2A2AAAD0
+:1030E0006A6A6A6A6A6A6A6A2A2A2A2A2A2A2AAAC0
+:1030F0006A6A6A6A6A6A6A6A2A2A2A2A2A2A2AAAB0
+:103100002A6A6A6A6A6A6A2A151515151515151547
+:103110002A6A6A6A6A6A6A2A151515151515151537
+:103120002A6A6A6A6A6A6A2A151515151515151527
+:103130002A6A6A6A6A6A6A2A151515151515151517
+:103140002A6A6A6A6A6A6A2A151515151515151507
+:103150002A6A6A6A6A6A6A2A1515151515151515F7
+:103160002A6A6A6A6A6A6A2A1515151515151515E7
+:103170002A6A6A6A6A6A6A2A1515151515151515D7
+:103180002A6A6A6A6A6A6A2A2A2A2A2A2A2A2A2A1F
+:103190002A6A6A6A6A6A6A2A2A2A2A2A2A2A2A2A0F
+:1031A0002A6A6A6A6A6A6A2A2A2A2A2A2A2A2A2AFF
+:1031B0002A6A6A6A6A6A6A2A2A2A2A2A2A2A2A2AEF
+:1031C0002A6A6A6A6A6A6A2A2A2A2A2A2A2A2A2ADF
+:1031D0002A6A6A6A6A6A6A2A2A2A2A2A2A2A2A2ACF
+:1031E0002A6A6A6A6A6A6A2A2A2A2A2A2A2A2A2ABF
+:1031F0002A6A6A6A6A6A6A2A2A2A2A2A2A2A2A2AAF
+:103200002A6A6A6A6A6A2A2A151515151515151586
+:103210002A6A6A6A6A6A2A2A151515151515151576
+:103220002A6A6A6A6A6A2A2A151515151515151566
+:103230002A6A6A6A6A6A2A2A151515151515151556
+:103240002A6A6A6A6A6A2A2A151515151515151546
+:103250002A6A6A6A6A6A2A2A151515151515151536
+:103260002A6A6A6A6A6A2A2A151515151515151526
+:103270002A6A6A6A6A6A2A2A151515151515151516
+:103280002A6A6A6A6A6A2A2A2A2A2A2A2A2A2A2A5E
+:103290002A6A6A6A6A6A2A2A2A2A2A2A2A2A2A2A4E
+:1032A0002A6A6A6A6A6A2A2A2A2A2A2A2A2A2A2A3E
+:1032B0002A6A6A6A6A6A2A2A2A2A2A2A2A2A2A2A2E
+:1032C0002A6A6A6A6A6A2A2A2A2A2A2A2A2A2A2A1E
+:1032D0002A6A6A6A6A6A2A2A2A2A2A2A2A2A2A2A0E
+:1032E0002A6A6A6A6A6A2A2A2A2A2A2A2A2A2A2AFE
+:1032F0002A6A6A6A6A6A2A2A2A2A2A2A2A2A2A2AEE
+:103300006A6A6A6A6A6A2A2A1515151515151595C5
+:103310006A6A6A6A6A6A2A2A1515151515151595B5
+:103320006A6A6A6A6A6A2A2A1515151515151595A5
+:103330006A6A6A6A6A6A2A2A151515151515159595
+:103340006A6A6A6A6A6A2A2A151515151515159585
+:103350006A6A6A6A6A6A2A2A151515151515159575
+:103360006A6A6A6A6A6A2A2A151515151515159565
+:103370006A6A6A6A6A6A2A2A151515151515159555
+:103380006A6A6A6A6A6A2A2A2A2A2A2A2A2A2AAA9D
+:103390006A6A6A6A6A6A2A2A2A2A2A2A2A2A2AAA8D
+:1033A0006A6A6A6A6A6A2A2A2A2A2A2A2A2A2AAA7D
+:1033B0006A6A6A6A6A6A2A2A2A2A2A2A2A2A2AAA6D
+:1033C0006A6A6A6A6A6A2A2A2A2A2A2A2A2A2AAA5D
+:1033D0006A6A6A6A6A6A2A2A2A2A2A2A2A2A2AAA4D
+:1033E0006A6A6A6A6A6A2A2A2A2A2A2A2A2A2AAA3D
+:1033F0006A6A6A6A6A6A2A2A2A2A2A2A2A2A2A2AAD
+:103400006A6A6A6A6A2A2A2A151515151515159504
+:103410006A6A6A6A6A2A2A2A1515151515151595F4
+:103420006A6A6A6A6A2A2A2A1515151515151595E4
+:103430006A6A6A6A6A2A2A2A1515151515151595D4
+:103440006A6A6A6A6A2A2A2A1515151515151595C4
+:103450006A6A6A6A6A2A2A2A1515151515151595B4
+:103460006A6A6A6A6A2A2A2A1515151515151595A4
+:103470006A6A6A6A6A2A2A2A151515151515159594
+:103480006A6A6A6A6A2A2A2A2A2A2A2A2A2A2AAADC
+:103490006A6A6A6A6A2A2A2A2A2A2A2A2A2A2AAACC
+:1034A0006A6A6A6A6A2A2A2A2A2A2A2A2A2A2AAABC
+:1034B0006A6A6A6A6A2A2A2A2A2A2A2A2A2A2AAAAC
+:1034C0006A6A6A6A6A2A2A2A2A2A2A2A2A2A2AAA9C
+:1034D0006A6A6A6A6A2A2A2A2A2A2A2A2A2A2AAA8C
+:1034E0006A6A6A6A6A2A2A2A2A2A2A2A2A2A2AAA7C
+:1034F0006A6A6A6A6A2A2A2A2A2A2A2A2A2A2A2AEC
+:103500002A6A6A6A6A2A2A2A1515151515151515C3
+:103510002A6A6A6A6A2A2A2A1515151515151515B3
+:103520002A6A6A6A6A2A2A2A1515151515151515A3
+:103530002A6A6A6A6A2A2A2A151515151515151593
+:103540002A6A6A6A6A2A2A2A151515151515151583
+:103550002A6A6A6A6A2A2A2A151515151515151573
+:103560002A6A6A6A6A2A2A2A151515151515151563
+:103570002A6A6A6A6A2A2A2A151515151515151553
+:103580002A6A6A6A6A2A2A2A2A2A2A2A2A2A2A2A9B
+:103590002A6A6A6A6A2A2A2A2A2A2A2A2A2A2A2A8B
+:1035A0002A6A6A6A6A2A2A2A2A2A2A2A2A2A2A2A7B
+:1035B0002A6A6A6A6A2A2A2A2A2A2A2A2A2A2A2A6B
+:1035C0002A6A6A6A6A2A2A2A2A2A2A2A2A2A2A2A5B
+:1035D0002A6A6A6A6A2A2A2A2A2A2A2A2A2A2A2A4B
+:1035E0002A6A6A6A6A2A2A2A2A2A2A2A2A2A2A2A3B
+:1035F0002A6A6A6A6A2A2A2A2A2A2A2A2A2A2A2A2B
+:103600002A6A6A6A2A2A2A2A151515151515151502
+:103610002A6A6A6A2A2A2A2A1515151515151515F2
+:103620002A6A6A6A2A2A2A2A1515151515151515E2
+:103630002A6A6A6A2A2A2A2A1515151515151515D2
+:103640002A6A6A6A2A2A2A2A1515151515151515C2
+:103650002A6A6A6A2A2A2A2A1515151515151515B2
+:103660002A6A6A6A2A2A2A2A1515151515151515A2
+:103670002A6A6A6A2A2A2A2A151515151515151592
+:103680002A6A6A6A2A2A2A2A2A2A2A2A2A2A2A2ADA
+:103690002A6A6A6A2A2A2A2A2A2A2A2A2A2A2A2ACA
+:1036A0002A6A6A6A2A2A2A2A2A2A2A2A2A2A2A2ABA
+:1036B0002A6A6A6A2A2A2A2A2A2A2A2A2A2A2A2AAA
+:1036C0002A6A6A6A2A2A2A2A2A2A2A2A2A2A2A2A9A
+:1036D0002A6A6A6A2A2A2A2A2A2A2A2A2A2A2A2A8A
+:1036E0002A6A6A6A2A2A2A2A2A2A2A2A2A2A2A2A7A
+:1036F0002A6A6A6A2A2A2A2A2A2A2A2A2A2A2A2A6A
+:103700006A6A6A6A2A2A2A2A151515151515159541
+:103710006A6A6A6A2A2A2A2A151515151515159531
+:103720006A6A6A6A2A2A2A2A151515151515159521
+:103730006A6A6A6A2A2A2A2A151515151515159511
+:103740006A6A6A6A2A2A2A2A151515151515159501
+:103750006A6A6A6A2A2A2A2A1515151515151595F1
+:103760006A6A6A6A2A2A2A2A1515151515151595E1
+:103770006A6A6A6A2A2A2A2A1515151515151595D1
+:103780006A6A6A6A2A2A2A2A2A2A2A2A2A2A2AAA19
+:103790006A6A6A6A2A2A2A2A2A2A2A2A2A2A2AAA09
+:1037A0006A6A6A6A2A2A2A2A2A2A2A2A2A2A2AAAF9
+:1037B0006A6A6A6A2A2A2A2A2A2A2A2A2A2A2AAAE9
+:1037C0006A6A6A6A2A2A2A2A2A2A2A2A2A2A2AAAD9
+:1037D0006A6A6A6A2A2A2A2A2A2A2A2A2A2A2AAAC9
+:1037E0006A6A6A6A2A2A2A2A2A2A2A2A2A2A2AAAB9
+:1037F0006A6A6A6A2A2A2A2A2A2A2A2A2A2A2A2A29
+:103800006A6A6A6A2A2A2A2A151515151515159540
+:103810006A6A6A6A2A2A2A2A151515151515159530
+:103820006A6A6A6A2A2A2A2A151515151515159520
+:103830006A6A6A6A2A2A2A2A151515151515159510
+:103840006A6A6A6A2A2A2A2A151515151515159500
+:103850006A6A6A6A2A2A2A2A1515151515151595F0
+:103860006A6A6A6A2A2A2A2A1515151515151595E0
+:103870006A6A6A6A2A2A2A2A1515151515151595D0
+:103880006A6A6A6A2A2A2A2A2A2A2A2A2A2A2AAA18
+:103890006A6A6A6A2A2A2A2A2A2A2A2A2A2A2AAA08
+:1038A0006A6A6A6A2A2A2A2A2A2A2A2A2A2A2AAAF8
+:1038B0006A6A6A6A2A2A2A2A2A2A2A2A2A2A2AAAE8
+:1038C0006A6A6A6A2A2A2A2A2A2A2A2A2A2A2AAAD8
+:1038D0006A6A6A6A2A2A2A2A2A2A2A2A2A2A2AAAC8
+:1038E0006A6A6A6A2A2A2A2A2A2A2A2A2A2A2AAAB8
+:1038F0006A6A6A6A2A2A2A2A2A2A2A2A2A2A2A2A28
+:103900002A6A6A6A2A2A2A2A1515151515151515FF
+:103910002A6A6A6A2A2A2A2A1515151515151515EF
+:103920002A6A6A6A2A2A2A2A1515151515151515DF
+:103930002A6A6A6A2A2A2A2A1515151515151515CF
+:103940002A6A6A6A2A2A2A2A1515151515151515BF
+:103950002A6A6A6A2A2A2A2A1515151515151515AF
+:103960002A6A6A6A2A2A2A2A15151515151515159F
+:103970002A6A6A6A2A2A2A2A15151515151515158F
+:103980002A6A6A6A2A2A2A2A2A2A2A2A2A2A2A2AD7
+:103990002A6A6A6A2A2A2A2A2A2A2A2A2A2A2A2AC7
+:1039A0002A6A6A6A2A2A2A2A2A2A2A2A2A2A2A2AB7
+:1039B0002A6A6A6A2A2A2A2A2A2A2A2A2A2A2A2AA7
+:1039C0002A6A6A6A2A2A2A2A2A2A2A2A2A2A2A2A97
+:1039D0002A6A6A6A2A2A2A2A2A2A2A2A2A2A2A2A87
+:1039E0002A6A6A6A2A2A2A2A2A2A2A2A2A2A2A2A77
+:1039F0002A6A6A6A2A2A2A2A2A2A2A2A2A2A2A2A67
+:103A00002A6A6A2A2A2A2A2A15151515151515153E
+:103A10002A6A6A2A2A2A2A2A15151515151515152E
+:103A20002A6A6A2A2A2A2A2A15151515151515151E
+:103A30002A6A6A2A2A2A2A2A15151515151515150E
+:103A40002A6A6A2A2A2A2A2A1515151515151515FE
+:103A50002A6A6A2A2A2A2A2A1515151515151515EE
+:103A60002A6A6A2A2A2A2A2A1515151515151515DE
+:103A70002A6A6A2A2A2A2A2A1515151515151515CE
+:103A80002A6A6A2A2A2A2A2A2A2A2A2A2A2A2A2A16
+:103A90002A6A6A2A2A2A2A2A2A2A2A2A2A2A2A2A06
+:103AA0002A6A6A2A2A2A2A2A2A2A2A2A2A2A2A2AF6
+:103AB0002A6A6A2A2A2A2A2A2A2A2A2A2A2A2A2AE6
+:103AC0002A6A6A2A2A2A2A2A2A2A2A2A2A2A2A2AD6
+:103AD0002A6A6A2A2A2A2A2A2A2A2A2A2A2A2A2AC6
+:103AE0002A6A6A2A2A2A2A2A2A2A2A2A2A2A2A2AB6
+:103AF0002A6A6A2A2A2A2A2A2A2A2A2A2A2A2A2AA6
+:103B00006A6A2A2A2A2A2A2A1515151515151595BD
+:103B10006A6A2A2A2A2A2A2A1515151515151595AD
+:103B20006A6A2A2A2A2A2A2A15151515151515959D
+:103B30006A6A2A2A2A2A2A2A15151515151515958D
+:103B40006A6A2A2A2A2A2A2A15151515151515957D
+:103B50006A6A2A2A2A2A2A2A15151515151515956D
+:103B60006A6A2A2A2A2A2A2A15151515151515955D
+:103B70006A6A2A2A2A2A2A2A15151515151515954D
+:103B80006A6A2A2A2A2A2A2A2A2A2A2A2A2A2AAA95
+:103B90006A6A2A2A2A2A2A2A2A2A2A2A2A2A2AAA85
+:103BA0006A6A2A2A2A2A2A2A2A2A2A2A2A2A2AAA75
+:103BB0006A6A2A2A2A2A2A2A2A2A2A2A2A2A2AAA65
+:103BC0006A6A2A2A2A2A2A2A2A2A2A2A2A2A2AAA55
+:103BD0006A6A2A2A2A2A2A2A2A2A2A2A2A2A2AAA45
+:103BE0006A6A2A2A2A2A2A2A2A2A2A2A2A2A2AAA35
+:103BF0006A6A2A2A2A2A2A2A2A2A2A2A2A2A2A2AA5
+:103C00006A6A2A2A2A2A2A2A1515151515151595BC
+:103C10006A6A2A2A2A2A2A2A1515151515151595AC
+:103C20006A6A2A2A2A2A2A2A15151515151515959C
+:103C30006A6A2A2A2A2A2A2A15151515151515958C
+:103C40006A6A2A2A2A2A2A2A15151515151515957C
+:103C50006A6A2A2A2A2A2A2A15151515151515956C
+:103C60006A6A2A2A2A2A2A2A15151515151515955C
+:103C70006A6A2A2A2A2A2A2A15151515151515954C
+:103C80006A6A2A2A2A2A2A2A2A2A2A2A2A2A2AAA94
+:103C90006A6A2A2A2A2A2A2A2A2A2A2A2A2A2AAA84
+:103CA0006A6A2A2A2A2A2A2A2A2A2A2A2A2A2AAA74
+:103CB0006A6A2A2A2A2A2A2A2A2A2A2A2A2A2AAA64
+:103CC0006A6A2A2A2A2A2A2A2A2A2A2A2A2A2AAA54
+:103CD0006A6A2A2A2A2A2A2A2A2A2A2A2A2A2AAA44
+:103CE0006A6A2A2A2A2A2A2A2A2A2A2A2A2A2AAA34
+:103CF0006A6A2A2A2A2A2A2A2A2A2A2A2A2A2A2AA4
+:103D00002A2A2A2A2A2A2A2A1515151515151515BB
+:103D10002A2A2A2A2A2A2A2A1515151515151515AB
+:103D20002A2A2A2A2A2A2A2A15151515151515159B
+:103D30002A2A2A2A2A2A2A2A15151515151515158B
+:103D40002A2A2A2A2A2A2A2A15151515151515157B
+:103D50002A2A2A2A2A2A2A2A15151515151515156B
+:103D60002A2A2A2A2A2A2A2A15151515151515155B
+:103D70002A2A2A2A2A2A2A2A15151515151515154B
+:103D80002A2A2A2A2A2A2A2A2A2A2A2A2A2A2A2A93
+:103D90002A2A2A2A2A2A2A2A2A2A2A2A2A2A2A2A83
+:103DA0002A2A2A2A2A2A2A2A2A2A2A2A2A2A2A2A73
+:103DB0002A2A2A2A2A2A2A2A2A2A2A2A2A2A2A2A63
+:103DC0002A2A2A2A2A2A2A2A2A2A2A2A2A2A2A2A53
+:103DD0002A2A2A2A2A2A2A2A2A2A2A2A2A2A2A2A43
+:103DE0002A2A2A2A2A2A2A2A2A2A2A2A2A2A2A2A33
+:103DF0002A2A2A2A2A2A2A2A2A2A2A2A2A2A2A2A23
+:103E00002A2A2A2A2A2A2A2A1515151515151515BA
+:103E10002A2A2A2A2A2A2A2A1515151515151515AA
+:103E20002A2A2A2A2A2A2A2A15151515151515159A
+:103E30002A2A2A2A2A2A2A2A15151515151515158A
+:103E40002A2A2A2A2A2A2A2A15151515151515157A
+:103E50002A2A2A2A2A2A2A2A15151515151515156A
+:103E60002A2A2A2A2A2A2A2A15151515151515155A
+:103E70002A2A2A2A2A2A2A2A15151515151515154A
+:103E80002A2A2A2A2A2A2A2A2A2A2A2A2A2A2A2A92
+:103E90002A2A2A2A2A2A2A2A2A2A2A2A2A2A2A2A82
+:103EA0002A2A2A2A2A2A2A2A2A2A2A2A2A2A2A2A72
+:103EB0002A2A2A2A2A2A2A2A2A2A2A2A2A2A2A2A62
+:103EC0002A2A2A2A2A2A2A2A2A2A2A2A2A2A2A2A52
+:103ED0002A2A2A2A2A2A2A2A2A2A2A2A2A2A2A2A42
+:103EE0002A2A2A2A2A2A2A2A2A2A2A2A2A2A2A2A32
+:103EF0002A2A2A2A2A2A2A2A2A2A2A2A2A2A2A2A22
+:103F0000AA5555A9A9A9A9A9A9A9A9A9A9A9A9551C
+:103F1000AA555555555555555555555555555555FC
+:103F2000AA555555555555555555555555555555EC
+:103F3000AA555555555555555555555555555555DC
+:103F4000AA555555555555555555555555555555CC
+:103F5000AA555555555555555555555555555555BC
+:103F6000AA555555555555555555555555555555AC
+:103F7000AA5555555555555555555555555555559C
+:103F8000AA5555555555555555555555555555558C
+:103F9000AA5555555555555555555555555555557C
+:103FA000AA5555555555555555555555555555556C
+:103FB000AA5555555555555555555555555555555C
+:103FC000AA5555555555555555555555555555554C
+:103FD000AA5555555555555555555555555555553C
+:103FE000AA5555555555555555555555555555552C
+:103FF000AA555A6A6AAAAAAAAAAAAAAAAAAAAA00F0
+:10400000AA5555A9A9A9A9A9A9A9A9A9A9A9A9551B
+:10401000AA555555555555555555555555555555FB
+:10402000AA555555555555555555555555555555EB
+:10403000AA555555555555555555555555555555DB
+:10404000AA555555555555555555555555555555CB
+:10405000AA555555555555555555555555555555BB
+:10406000AA555555555555555555555555555555AB
+:10407000AA5555555555555555555555555555559B
+:10408000AA5555555555555555555555555555558B
+:10409000AA5555555555555555555555555555557B
+:1040A000AA5555555555555555555555555555556B
+:1040B000AA5555555555555555555555555555555B
+:1040C000AA5555555555555555555555555555554B
+:1040D000AA5555555555555555555555555555553B
+:1040E000AA5555555555555555555555555555552B
+:1040F000AA555A5A6A6AAAAAAAAAAAAAAAAAAA003F
+:1041000000555555A9A9A9A9A9A9A9A9A9A9A9006D
+:1041100000555555555555555555555555555500F9
+:1041200000555555555555555555555555555500E9
+:1041300000555555555555555555555555555500D9
+:1041400000555555555555555555555555555500C9
+:1041500000555555555555555555555555555500B9
+:1041600000555555555555555555555555555500A9
+:104170000055555555555555555555555555550099
+:104180000055555555555555555555555555550089
+:104190000055555555555555555555555555550079
+:1041A0000055555555555555555555555555550069
+:1041B0000055555555555555555555555555550059
+:1041C0000055555555555555555555555555550049
+:1041D0000055555555555555555555555555550039
+:1041E0000055555555555555555555555555550029
+:1041F0000055565A5A6AAAAAAAAAAAAAAAAAAA00FC
+:10420000005555556969A9A9A9A9A9A9A9A9A900EC
+:1042100000555555555555555555555555555500F8
+:1042200000555555555555555555555555555500E8
+:1042300000555555555555555555555555555500D8
+:1042400000555555555555555555555555555500C8
+:1042500000555555555555555555555555555500B8
+:1042600000555555555555555555555555555500A8
+:104270000055555555555555555555555555550098
+:104280000055555555555555555555555555550088
+:104290000055555555555555555555555555550078
+:1042A0000055555555555555555555555555550068
+:1042B0000055555555555555555555555555550058
+:1042C0000055555555555555555555555555550048
+:1042D0000055555555555555555555555555550038
+:1042E0000055555555555555555555555555550028
+:1042F0000055565A5A5AAAAAAAAAAAAAAAAAAA000B
+:10430000AA5555555555A9A9A9A9A9A9A9A9A95514
+:10431000AA555555555555555555555555555555F8
+:10432000AA555555555555555555555555555555E8
+:10433000AA555555555555555555555555555555D8
+:10434000AA555555555555555555555555555555C8
+:10435000AA555555555555555555555555555555B8
+:10436000AA555555555555555555555555555555A8
+:10437000AA55555555555555555555555555555598
+:10438000AA55555555555555555555555555555588
+:10439000AA55555555555555555555555555555578
+:1043A000AA55555555555555555555555555555568
+:1043B000AA55555555555555555555555555555558
+:1043C000AA55555555555555555555555555555548
+:1043D000AA55555555555555555555555555555538
+:1043E000AA55555555555555555555555555555528
+:1043F000AA55555A5A5AAAAAAAAAAAAAAAAAAA0061
+:10440000AA5555555555A9A9A9A9A9A9A9A9A95513
+:10441000AA555555555555555555555555555555F7
+:10442000AA555555555555555555555555555555E7
+:10443000AA555555555555555555555555555555D7
+:10444000AA555555555555555555555555555555C7
+:10445000AA555555555555555555555555555555B7
+:10446000AA555555555555555555555555555555A7
+:10447000AA55555555555555555555555555555597
+:10448000AA55555555555555555555555555555587
+:10449000AA55555555555555555555555555555577
+:1044A000AA55555555555555555555555555555567
+:1044B000AA55555555555555555555555555555557
+:1044C000AA55555555555555555555555555555547
+:1044D000AA55555555555555555555555555555537
+:1044E000AA55555555555555555555555555555527
+:1044F000AA55555A5A5AAAAAAAAAAAAAAAAAAA0060
+:1045000000555555555595A9A9A9A9A9A9A9AA0024
+:1045100000555555555555555555555555555600F4
+:1045200000555555555555555555555555555500E5
+:1045300000555555555555555555555555555500D5
+:1045400000555555555555555555555555555500C5
+:1045500000555555555555555555555555555500B5
+:1045600000555555555555555555555555555500A5
+:104570000055555555555555555555555555550095
+:104580000055555555555555555555555555550085
+:104590000055555555555555555555555555550075
+:1045A0000055555555555555555555555555550065
+:1045B0000055555555555555555555555555550055
+:1045C0000055555555555555555555555555550045
+:1045D0000055555555555555555555555555550035
+:1045E0000055555555555555555555555555550025
+:1045F000005555565A5A5AAAAAAAAAAAAAAAAA005D
+:1046000000555555555555A9A9A9A9A9A9A9AA0063
+:1046100000555555555555555555555555555600F3
+:1046200000555555555555555555555555555600E3
+:1046300000555555555555555555555555555500D4
+:1046400000555555555555555555555555555500C4
+:1046500000555555555555555555555555555500B4
+:1046600000555555555555555555555555555500A4
+:104670000055555555555555555555555555550094
+:104680000055555555555555555555555555550084
+:104690000055555555555555555555555555550074
+:1046A0000055555555555555555555555555550064
+:1046B0000055555555555555555555555555550054
+:1046C0000055555555555555555555555555550044
+:1046D0000055555555555555555555555555550034
+:1046E0000055555555555555555555555555550024
+:1046F000005555565A5A5AAAAAAAAAAAAAAAAA005C
+:10470000AA555555555555A5A9A9A9A9A9A9AA5567
+:10471000AA555555555555555555555555555655F3
+:10472000AA555555555555555555555555555655E3
+:10473000AA555555555555555555555555555655D3
+:10474000AA555555555555555555555555555555C4
+:10475000AA555555555555555555555555555555B4
+:10476000AA555555555555555555555555555555A4
+:10477000AA55555555555555555555555555555594
+:10478000AA55555555555555555555555555555584
+:10479000AA55555555555555555555555555555574
+:1047A000AA55555555555555555555555555555564
+:1047B000AA55555555555555555555555555555554
+:1047C000AA55555555555555555555555555555544
+:1047D000AA55555555555555555555555555555534
+:1047E000AA55555555555555555555555555555524
+:1047F000AA555555565A5A5AAAAAAAAAAAAAAA0006
+:10480000AA55555555555595A5A5A5A9A9A9AA5582
+:10481000AA555555555555555555555555555655F2
+:10482000AA555555555555555555555555555655E2
+:10483000AA555555555555555555555555555655D2
+:10484000AA555555555555555555555555555655C2
+:10485000AA555555555555555555555555555655B2
+:10486000AA555555555555555555555555555655A2
+:10487000AA55555555555555555555555555565592
+:10488000AA55555555555555555555555555565582
+:10489000AA55555555555555555555555555565572
+:1048A000AA55555555555555555555555555565562
+:1048B000AA55555555555555555555555555565552
+:1048C000AA55555555555555555555555555565542
+:1048D000AA55555555555555555555555555555533
+:1048E000AA55555555555555555555555555555523
+:1048F000AA55555556565A5AAAAAAAAAAAAAAA0009
+:104900000055555555555555959595A5A9AAAA00F3
+:1049100000555555555555555555555555565600EF
+:1049200000555555555555555555555555555600E0
+:1049300000555555555555555555555555555600D0
+:1049400000555555555555555555555555555600C0
+:1049500000555555555555555555555555555600B0
+:1049600000555555555555555555555555555600A0
+:104970000055555555555555555555555555560090
+:104980000055555555555555555555555555560080
+:104990000055555555555555555555555555560070
+:1049A0000055555555555555555555555555560060
+:1049B0000055555555555555555555555555560050
+:1049C0000055555555555555555555555555560040
+:1049D0000055555555555555555555555555560030
+:1049E0000055555555555555555555555555550021
+:1049F0000055555555555A5AAAAAAAAAAAAAAA00B4
+:104A0000005555555555555595955596A6A6A6004C
+:104A100000555555555555555555555656565600EC
+:104A200000555555555555555555555555565600DE
+:104A300000555555555555555555555555555600CF
+:104A400000555555555555555555555555555600BF
+:104A500000555555555555555555555555555600AF
+:104A6000005555555555555555555555555556009F
+:104A7000005555555555555555555555555556008F
+:104A8000005555555555555555555555555556007F
+:104A9000005555555555555555555555555556006F
+:104AA000005555555555555555555555555556005F
+:104AB000005555555555555555555555555556004F
+:104AC000005555555555555555555555555556003F
+:104AD000005555555555555555555555555556002F
+:104AE000005555555555555555555555555556001F
+:104AF0000055555555555559AAAAAAAAAAAAAA00B9
+:104B0000AA5555AAAAAAAAAAAAAAAAAAAAAAAA5504
+:104B1000AA555556565656565656565656565655E4
+:104B2000AA555555555555555555555656565655DC
+:104B3000AA555555555555555555555555565655CE
+:104B4000AA555555555555555555555555555655BF
+:104B5000AA555555555555555555555555555655AF
+:104B6000AA5555555555555555555555555556559F
+:104B7000AA5555555555555555555555555556558F
+:104B8000AA5555555555555555555555555556557F
+:104B9000AA5555555555555555555555555556556F
+:104BA000AA5555555555555555555555555556555F
+:104BB000AA5555555555555555555555555556554F
+:104BC000AA5555555555555555555555555556553F
+:104BD000AA5555555555555555555555555556552F
+:104BE000AA5555555555555555555555555556551F
+:104BF000AA5555555555555559AAAAAAAAAAAA550E
+:104C0000AA556AAAAAAAAAAAAAAAAAAAAAAAAA55EE
+:104C1000AA5556AAAAAAAAAAAAAAAAAAAAAAAA55F2
+:104C2000AA5555AAAAAAAAAAAAAAAAAAAAAAAA55E3
+:104C3000AA5555A9A9A9A9A9A9A9A9AAAAAAAA55DB
+:104C4000AA5555A9A9A9A9A9A9A9A9A9A9AAAA55CD
+:104C5000AA5555A9A9A9A9A9A9A9A9A9A9AAAA55BD
+:104C6000AA5555A9A9A9A9A9A9A9A9A9A9AAAA55AD
+:104C7000AA5555A9A9A9A9A9A9A9A9A9A9AAAA559D
+:104C8000AA5555A9A9A9A9A9A9A9A9A9A9AAAA558D
+:104C9000AA5555A9A9A9A9A9A9A9A9A9A9AAAA557D
+:104CA000AA5555A9A9A9A9A9A9A9A9A9A9AAAA556D
+:104CB000AA5555555555555555555555555656554D
+:104CC000AA5555555555555555555555555656553D
+:104CD000AA5555555555555555555555555556552E
+:104CE000AA5555555555555555555555555556551E
+:104CF000AA55555555555555556969AAAAAAAA5593
+:104D00000055AAAAAAAAAAAAAAAAAAAAAAAAAA00AC
+:104D10000055AAAAAAAAAAAAAAAAAAAAAAAAAA009C
+:104D20000055AAAAAAAAAAAAAAAAAAAAAAAAAA008C
+:104D30000055A9AAAAAAAAAAAAAAAAAAAAAAAA007D
+:104D40000055A9A9A9A9A9A9A9A9A9AAAAAAAA0075
+:104D50000055A9A9A9A9A9A9A9A9A9AAAAAAAA0065
+:104D60000055A9A9A9A9A9A9A9A9A9AAAAAAAA0055
+:104D70000055A9A9A9A9A9A9A9A9A9AAAAAAAA0045
+:104D80000055A9A9A9A9A9A9A9A9A9AAAAAAAA0035
+:104D90000055A9A9A9A9A9A9A9A9A9AAAAAAAA0025
+:104DA0000055A9A9A9A9A9A9A9A9A9AAAAAAAA0015
+:104DB000005555A9A9A9A9A9A9A9A9AAAAAAAA0059
+:104DC0000055555555555555555555565656560039
+:104DD0000055555555555555555555555556AA00D7
+:104DE000005555555555555555555555555556001C
+:104DF000005555555555555555555569AAAAAA00FA
+:104E00000055AAAAAAAAAAAAAAAAAAAAAAAAAA00AB
+:104E100000A9AAAAAAAAAAAAAAAAAAAAAAAAAA0047
+:104E200000A9AAAAAAAAAAAAAAAAAAAAAAAAAA0037
+:104E300000A9AAAAAAAAAAAAAAAAAAAAAAAAAA0027
+:104E400000A9A9AAAAAAAAAAAAAAAAAAAAAAAA0018
+:104E500000A9A9AAAAAAAAAAAAAAAAAAAAAAAA0008
+:104E600000A9A9AAAAAAAAAAAAAAAAAAAAAAAA00F8
+:104E700000A9A9AAAAAAAAAAAAAAAAAAAAAAAA00E8
+:104E800000A9A9AAAAAAAAAAAAAAAAAAAAAAAA00D8
+:104E900000A9A9AAAAAAAAAAAAAAAAAAAAAAAA00C8
+:104EA00000A9A9AAAAAAAAAAAAAAAAAAAAAAAA00B8
+:104EB0000055A9AAAAAAAAAAAAAAAAAAAAAAAA00FC
+:104EC000005555A9A9A9A9A9A9A9A9AAAAAAAA0048
+:104ED0000055555555555555555555565656AA00D4
+:104EE000005555555555555555555555555656001A
+:104EF000005555555555555555555555A9AA560062
+:104F0000AA55AAAAAAAAAAAAAAAAAAAAAAAAAA55AB
+:104F1000AAA9AAAAAAAAAAAAAAAAAAAAAAAAAA5547
+:104F2000AAA9AAAAAAAAAAAAAAAAAAAAAAAAAA5537
+:104F3000AAA9AAAAAAAAAAAAAAAAAAAAAAAAAA5527
+:104F4000AAA9AAAAAAAAAAAAAAAAAAAAAAAAAA5517
+:104F5000AAA9AAAAAAAAAAAAAAAAAAAAAAAAAA5507
+:104F6000AAA9AAAAAAAAAAAAAAAAAAAAAAAAAA55F7
+:104F7000AAA9AAAAAAAAAAAAAAAAAAAAAAAAAA55E7
+:104F8000AAA9AAAAAAAAAAAAAAAAAAAAAAAAAA55D7
+:104F9000AAA9AAAAAAAAAAAAAAAAAAAAAAAAAA55C7
+:104FA000AAA9AAAAAAAAAAAAAAAAAAAAAAAAAA55B7
+:104FB000AAA9AAAAAAAAAAAAAAAAAAAAAAAAAA55A7
+:104FC000AA55A9AAAAAAAAAAAAAAAAAAAAAAAA55EC
+:104FD000AA5555AAAAAAAAAAAAAAAAAAAAAAAA5530
+:104FE000AA55555555555555555555565656565518
+:104FF000AA5555555555555555555555959556558B
+:10500000AA56AAAAAAAAAAAAAAAAAAAAAAAAAA55A9
+:10501000AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA5545
+:10502000AAA9AAAAAAAAAAAAAAAAAAAAAAAAAA5536
+:10503000AAA9AAAAAAAAAAAAAAAAAAAAAAAAAA5526
+:10504000AAA9AAAAAAAAAAAAAAAAAAAAAAAAAA5516
+:10505000AAA9AAAAAAAAAAAAAAAAAAAAAAAAAA5506
+:10506000AAA9AAAAAAAAAAAAAAAAAAAAAAAAAA55F6
+:10507000AAA9AAAAAAAAAAAAAAAAAAAAAAAAAA55E6
+:10508000AAA9AAAAAAAAAAAAAAAAAAAAAAAAAA55D6
+:10509000AAA9AAAAAAAAAAAAAAAAAAAAAAAAAA55C6
+:1050A000AAA9AAAAAAAAAAAAAAAAAAAAAAAAAA55B6
+:1050B000AAA9AAAAAAAAAAAAAAAAAAAAAAAAAA55A6
+:1050C000AAA9AAAAAAAAAAAAAAAAAAAAAAAAAA5596
+:1050D000AA55AAAAAAAAAAAAAAAAAAAAAAAAAA55DA
+:1050E000AA5555AAAAAAAAAAAAAAAAAAAAAAAA551F
+:1050F000AA5555555555555555555555959555558B
+:1051000000AAAAAAAAAAAAAAAAAAAAAAAAAAAA0053
+:1051100000AAAAAAAAAAAAAAAAAAAAAAAAAAAA0043
+:1051200000AAAAAAAAAAAAAAAAAAAAAAAAAAAA0033
+:1051300000A9AAAAAAAAAAAAAAAAAAAAAAAAAA0024
+:1051400000A9AAAAAAAAAAAAAAAAAAAAAAAAAA0014
+:1051500000A9AAAAAAAAAAAAAAAAAAAAAAAAAA0004
+:1051600000A9AAAAAAAAAAAAAAAAAAAAAAAAAA00F4
+:1051700000A9AAAAAAAAAAAAAAAAAAAAAAAAAA00E4
+:1051800000A9AAAAAAAAAAAAAAAAAAAAAAAAAA00D4
+:1051900000A9AAAAAAAAAAAAAAAAAAAAAAAAAA00C4
+:1051A00000A9AAAAAAAAAAAAAAAAAAAAAAAAAA00B4
+:1051B00000A9AAAAAAAAAAAAAAAAAAAAAAAAAA00A4
+:1051C00000A9AAAAAAAAAAAAAAAAAAAAAAAAAA0094
+:1051D00000A9AAAAAAAAAAAAAAAAAAAAAAAAAA0084
+:1051E0000055AAAAAAAAAAAAAAAAAAAAAAAAAA00C8
+:1051F0000055555555555555555555555555550009
+:1052000000AAAAAAAAAAAAAAAAAAAAAAAAAAAA0052
+:1052100000AAAAAAAAAAAAAAAAAAAAAAAAAAAA0042
+:1052200000AAAAAAAAAAAAAAAAAAAAAAAAAAAA0032
+:1052300000AAAAAAAAAAAAAAAAAAAAAAAAAAAA0022
+:1052400000A9AAAAAAAAAAAAAAAAAAAAAAAAAA0013
+:1052500000A9AAAAAAAAAAAAAAAAAAAAAAAAAA0003
+:1052600000A9AAAAAAAAAAAAAAAAAAAAAAAAAA00F3
+:1052700000A9AAAAAAAAAAAAAAAAAAAAAAAAAA00E3
+:1052800000A9AAAAAAAAAAAAAAAAAAAAAAAAAA00D3
+:1052900000A9AAAAAAAAAAAAAAAAAAAAAAAAAA00C3
+:1052A00000A9AAAAAAAAAAAAAAAAAAAAAAAAAA00B3
+:1052B00000A9AAAAAAAAAAAAAAAAAAAAAAAAAA00A3
+:1052C00000A9AAAAAAAAAAAAAAAAAAAAAAAAAA0093
+:1052D00000A9AAAAAAAAAAAAAAAAAAAAAAAAAA0083
+:1052E00000A9AAAAAAAAAAAAAAAAAAAAAAAAAA0073
+:1052F0000055555555555555555555555555550008
+:10530000AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA5552
+:10531000AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA5542
+:10532000AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA5532
+:10533000AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA5522
+:10534000AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA5512
+:10535000AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA5502
+:10536000AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA55F2
+:10537000AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA55E2
+:10538000AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA55D2
+:10539000AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA55C2
+:1053A000AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA55B2
+:1053B000AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA55A2
+:1053C000AAA9AAAAAAAAAAAAAAAAAAAAAAAAAA5593
+:1053D000AAA9AAAAAAAAAAAAAAAAAAAAAAAAAA5583
+:1053E000AAA9AAAAAAAAAAAAAAAAAAAAAAAAAA5573
+:1053F000AA55555555555555555555555555555508
+:10540000AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA5551
+:10541000AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA5541
+:10542000AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA5531
+:10543000AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA5521
+:10544000AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA5511
+:10545000AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA5501
+:10546000AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA55F1
+:10547000AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA55E1
+:10548000AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA55D1
+:10549000AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA55C1
+:1054A000AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA55B1
+:1054B000AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA55A1
+:1054C000AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA5591
+:1054D000AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA5581
+:1054E000AAA9AAAAAAAAAAAAAAAAAAAAAAAAAA5572
+:1054F000AA55555555555555555555555555555507
+:1055000000AAAAAAAAAAAAAAAAAAAAAAAAAAAA004F
+:1055100000AAAAAAAAAAAAAAAAAAAAAAAAAAAA003F
+:1055200000AAAAAAAAAAAAAAAAAAAAAAAAAAAA002F
+:1055300000AAAAAAAAAAAAAAAAAAAAAAAAAAAA001F
+:1055400000AAAAAAAAAAAAAAAAAAAAAAAAAAAA000F
+:1055500000AAAAAAAAAAAAAAAAAAAAAAAAAAAA00FF
+:1055600000AAAAAAAAAAAAAAAAAAAAAAAAAAAA00EF
+:1055700000AAAAAAAAAAAAAAAAAAAAAAAAAAAA00DF
+:1055800000AAAAAAAAAAAAAAAAAAAAAAAAAAAA00CF
+:1055900000AAAAAAAAAAAAAAAAAAAAAAAAAAAA00BF
+:1055A00000AAAAAAAAAAAAAAAAAAAAAAAAAAAA00AF
+:1055B00000AAAAAAAAAAAAAAAAAAAAAAAAAAAA009F
+:1055C00000AAAAAAAAAAAAAAAAAAAAAAAAAAAA008F
+:1055D00000AAAAAAAAAAAAAAAAAAAAAAAAAAAA007F
+:1055E00000AAAAAAAAAAAAAAAAAAAAAAAAAAAA006F
+:1055F0000055555555555555555555555555550005
+:1056000000AAAAAAAAAAAAAAAAAAAAAAAAAAAA004E
+:1056100000AAAAAAAAAAAAAAAAAAAAAAAAAAAA003E
+:1056200000AAAAAAAAAAAAAAAAAAAAAAAAAAAA002E
+:1056300000AAAAAAAAAAAAAAAAAAAAAAAAAAAA001E
+:1056400000AAAAAAAAAAAAAAAAAAAAAAAAAAAA000E
+:1056500000AAAAAAAAAAAAAAAAAAAAAAAAAAAA00FE
+:1056600000AAAAAAAAAAAAAAAAAAAAAAAAAAAA00EE
+:1056700000AAAAAAAAAAAAAAAAAAAAAAAAAAAA00DE
+:1056800000AAAAAAAAAAAAAAAAAAAAAAAAAAAA00CE
+:1056900000AAAAAAAAAAAAAAAAAAAAAAAAAAAA00BE
+:1056A00000AAAAAAAAAAAAAAAAAAAAAAAAAAAA00AE
+:1056B00000AAAAAAAAAAAAAAAAAAAAAAAAAAAA009E
+:1056C00000AAAAAAAAAAAAAAAAAAAAAAAAAAAA008E
+:1056D00000AAAAAAAAAAAAAAAAAAAAAAAAAAAA007E
+:1056E00000AAAAAAAAAAAAAAAAAAAAAAAAAAAA006E
+:1056F0000055555555555555555555555555550004
+:10570000AAAA0000000000000000000000000055F0
+:10571000AAAAA80000000000000000000000005538
+:1057200000AAAAA80000000000000000000000007D
+:1057300055AAAAA800000000000000000000000018
+:1057400055AAAAA800000000000000000000000008
+:1057500055AAAAA8000000000000000000000000F8
+:1057600055AAAAA8000000000000000000000000E8
+:1057700055AAAAA8000000000000000000000000D8
+:1057800055AAAAA8000000000000000000000000C8
+:1057900055AAAAA8000000000000000000000000B8
+:1057A00055AAAAA8000000000000000000000000A8
+:1057B00055AAAAA800000000000000000000000098
+:1057C00055AAAAA800000000000000000000000088
+:1057D00055AAAAA800000000000000000000000078
+:1057E00055AAAAA800000000000000000000000068
+:1057F00055AAAAA800000000000000000000000058
+:1058000055AAAAA800000000000000000000000047
+:1058100055AAAAA800000000000000000000000037
+:1058200000AAAAAA0000000000000000000000007A
+:1058300055AAAAAA00000000000000000000000015
+:1058400055AAAAAA00000000000000000000000005
+:1058500055AAAAAA000000000000000000000000F5
+:1058600055AAAAAA000000000000000000000000E5
+:1058700055AAAAAA000000000000000000000000D5
+:1058800055AAAAAA000000000000000000000000C5
+:1058900055AAAAAA000000000000000000000000B5
+:1058A00055AAAAAA000000000000000000000000A5
+:1058B00055AAAAAA00000000000000000000000095
+:1058C00055AAAAAA00000000000000000000000085
+:1058D00055AAAAAA00000000000000000000000075
+:1058E00055AAAAAA00000000000000000000000065
+:1058F00055AAAAAA00000000000000000000000055
+:1059000055AAAAAA00000000000000000000000044
+:1059100055AAAAAA00000000000000000000000034
+:10592000AAAAAAA80000000000000000000000557C
+:1059300000AAAAA800000000000000000000005516
+:1059400000AAAAA800000000000000000000005506
+:1059500000AAAAA8000000000000000000000055F6
+:1059600000AAAAA8000000000000000000000055E6
+:1059700000AAAAA8000000000000000000000055D6
+:1059800000AAAAA8000000000000000000000055C6
+:1059900000AAAAA8000000000000000000000055B6
+:1059A00000AAAAA8000000000000000000000055A6
+:1059B00000AAAAA800000000000000000000005596
+:1059C00000AAAAA800000000000000000000005586
+:1059D00000AAAAA800000000000000000000005576
+:1059E00000AAAAA800000000000000000000005566
+:1059F00000AAAAA800000000000000000000005556
+:105A000000AAAAA800000000000000000000005545
+:105A100000AAAAA800000000000000000000005535
+:105A2000AAAAAAAA00000000000000000000005579
+:105A300000AAAAAA00000000000000000000005513
+:105A400000AAAAAA00000000000000000000005503
+:105A500000AAAAAA000000000000000000000055F3
+:105A600000AAAAAA000000000000000000000055E3
+:105A700000AAAAAA000000000000000000000055D3
+:105A800000AAAAAA000000000000000000000055C3
+:105A900000AAAAAA000000000000000000000055B3
+:105AA00000AAAAAA000000000000000000000055A3
+:105AB00000AAAAAA00000000000000000000005593
+:105AC00000AAAAAA00000000000000000000005583
+:105AD00000AAAAAA00000000000000000000005573
+:105AE00000AAAAAA00000000000000000000005563
+:105AF00000AAAAAA00000000000000000000005553
+:105B000000AAAAAA00000000000000000000005542
+:105B100000AAAAAA00000000000000000000005532
+:105B200000AAAAAAA80000000000000000000000CF
+:105B300055AAAAAAA800000000000000000000006A
+:105B400055AAAAAAA800000000000000000000005A
+:105B500055AAAAAAA800000000000000000000004A
+:105B600055AAAAAAA800000000000000000000003A
+:105B700055AAAAAAA800000000000000000000002A
+:105B800055AAAAAAA800000000000000000000001A
+:105B900055AAAAAAA800000000000000000000000A
+:105BA00055AAAAAAA80000000000000000000000FA
+:105BB00055AAAAAAA80000000000000000000000EA
+:105BC00055AAAAAAA80000000000000000000000DA
+:105BD00055AAAAAAA80000000000000000000000CA
+:105BE00055AAAAAAA80000000000000000000000BA
+:105BF00055AAAAAAA80000000000000000000000AA
+:105C000055AAAAAAA8000000000000000000000099
+:105C100055AAAAAAA8000000000000000000000089
+:105C200000AAAAAAAA0000000000000000000000CC
+:105C300055AAAAAAAA000000000000000000000067
+:105C400055AAAAAAAA000000000000000000000057
+:105C500055AAAAAAAA000000000000000000000047
+:105C600055AAAAAAAA000000000000000000000037
+:105C700055AAAAAAAA000000000000000000000027
+:105C800055AAAAAAAA000000000000000000000017
+:105C900055AAAAAAAA000000000000000000000007
+:105CA00055AAAAAAAA0000000000000000000000F7
+:105CB00055AAAAAAAA0000000000000000000000E7
+:105CC00055AAAAAAAA0000000000000000000000D7
+:105CD00055AAAAAAAA0000000000000000000000C7
+:105CE00055AAAAAAAA0000000000000000000000B7
+:105CF00055AAAAAAAA0000000000000000000000A7
+:105D000055AAAAAAAA000000000000000000000096
+:105D100055AAAAAAAA000000000000000000000086
+:105D2000AAAAAAAAAAA80000000000000000005524
+:105D300000AAAAAAAAA800000000000000000055BE
+:105D400000AAAAAAAAA800000000000000000055AE
+:105D500000AAAAAAAAA8000000000000000000559E
+:105D600000AAAAAAAAA8000000000000000000558E
+:105D700000AAAAAAAAA8000000000000000000557E
+:105D800000AAAAAAAAA8000000000000000000556E
+:105D900000AAAAAAAAA8000000000000000000555E
+:105DA00000AAAAAAAAA8000000000000000000554E
+:105DB00000AAAAAAAAA8000000000000000000553E
+:105DC00000AAAAAAAAA8000000000000000000552E
+:105DD00000AAAAAAAAA8000000000000000000551E
+:105DE00000AAAAAAAAA8000000000000000000550E
+:105DF00000AAAAAAAAA800000000000000000055FE
+:105E000000AAAAAAAAA800000000000000000055ED
+:105E100000AAAAAAAAA800000000000000000055DD
+:105E2000AAAAAAAAAAAA020000000000000000551F
+:105E300000AAAAAAAAAA02000000000000000055B9
+:105E400000AAAAAAAAAA02000000000000000055A9
+:105E500000AAAAAAAAAA0200000000000000005599
+:105E600000AAAAAAAAAA0200000000000000005589
+:105E700000AAAAAAAAAA0200000000000000005579
+:105E800000AAAAAAAAAA0200000000000000005569
+:105E900000AAAAAAAAAA0200000000000000005559
+:105EA00000AAAAAAAAAA0200000000000000005549
+:105EB00000AAAAAAAAAA0200000000000000005539
+:105EC00000AAAAAAAAAA0200000000000000005529
+:105ED00000AAAAAAAAAA0200000000000000005519
+:105EE00000AAAAAAAAAA0200000000000000005509
+:105EF00000AAAAAAAAAA02000000000000000055F9
+:105F000000AAAAAAAAAA02000000000000000055E8
+:105F100000AAAAAAAAAA02000000000000000055D8
+:105F200000AAAAAAAAAAA800000000000000000077
+:105F300055AAAAAAAAAAA800000000000000000012
+:105F400055AAAAAAAAAAA800000000000000000002
+:105F500055AAAAAAAAAAA8000000000000000000F2
+:105F600055AAAAAAAAAAA8000000000000000000E2
+:105F700055AAAAAAAAAAA8000000000000000000D2
+:105F800055AAAAAAAAAAA8000000000000000000C2
+:105F900055AAAAAAAAAAA8000000000000000000B2
+:105FA00055AAAAAAAAAAA8000000000000000000A2
+:105FB00055AAAAAAAAAAA800000000000000000092
+:105FC00055AAAAAAAAAAA800000000000000000082
+:105FD00055AAAAAAAAAAA800000000000000000072
+:105FE00055AAAAAAAAAAA800000000000000000062
+:105FF00055AAAAAAAAAAA800000000000000000052
+:1060000055AAAAAAAAAAA800000000000000000041
+:1060100055AAAAAAAAAAA800000000000000000031
+:1060200000AAAAAAAAAAAAA80000000000000000CC
+:1060300055AAAAAAAAAAAAA8000000000000000067
+:1060400055AAAAAAAAAAAAA8000000000000000057
+:1060500055AAAAAAAAAAAAA8000000000000000047
+:1060600055AAAAAAAAAAAAA8000000000000000037
+:1060700055AAAAAAAAAAAAA8000000000000000027
+:1060800055AAAAAAAAAAAAA8000000000000000017
+:1060900055AAAAAAAAAAAAA8000000000000000007
+:1060A00055AAAAAAAAAAAAA80000000000000000F7
+:1060B00055AAAAAAAAAAAAA80000000000000000E7
+:1060C00055AAAAAAAAAAAAA80000000000000000D7
+:1060D00055AAAAAAAAAAAAA80000000000000000C7
+:1060E00055AAAAAAAAAAAAA80000000000000000B7
+:1060F00055AAAAAAAAAAAAA80000000000000000A7
+:1061000055AAAAAAAAAAAAA8000000000000000096
+:1061100055AAAAAAAAAAAAA8000000000000000086
+:10612000AAAAAAAAAAAAAAAAA80000000000005522
+:1061300000AAAAAAAAAAAAAAA800000000000055BC
+:1061400000AAAAAAAAAAAAAAA800000000000055AC
+:1061500000AAAAAAAAAAAAAAA8000000000000559C
+:1061600000AAAAAAAAAAAAAAA8000000000000558C
+:1061700000AAAAAAAAAAAAAAA8000000000000557C
+:1061800000AAAAAAAAAAAAAAA8000000000000556C
+:1061900000AAAAAAAAAAAAAAA8000000000000555C
+:1061A00000AAAAAAAAAAAAAAA8000000000000554C
+:1061B00000AAAAAAAAAAAAAAA8000000000000553C
+:1061C00000AAAAAAAAAAAAAAA8000000000000552C
+:1061D00000AAAAAAAAAAAAAAA8000000000000551C
+:1061E00000AAAAAAAAAAAAAAA8000000000000550C
+:1061F00000AAAAAAAAAAAAAAA800000000000055FC
+:1062000000AAAAAAAAAAAAAAA800000000000055EB
+:1062100000AAAAAAAAAAAAAAA800000000000055DB
+:10622000AAAAAAAAAAAAAAAAAA000000000000551F
+:1062300000AAAAAAAAAAAAAAAA00000000000055B9
+:1062400000AAAAAAAAAAAAAAAA00000000000055A9
+:1062500000AAAAAAAAAAAAAAAA0000000000005599
+:1062600000AAAAAAAAAAAAAAAA0000000000005589
+:1062700000AAAAAAAAAAAAAAAA0000000000005579
+:1062800000AAAAAAAAAAAAAAAA0000000000005569
+:1062900000AAAAAAAAAAAAAAAA0000000000005559
+:1062A00000AAAAAAAAAAAAAAAA0000000000005549
+:1062B00000AAAAAAAAAAAAAAAA0000000000005539
+:1062C00000AAAAAAAAAAAAAAAA0000000000005529
+:1062D00000AAAAAAAAAAAAAAAA0000000000005519
+:1062E00000AAAAAAAAAAAAAAAA0000000000005509
+:1062F00000AAAAAAAAAAAAAAAA00000000000055F9
+:1063000000AAAAAAAAAAAAAAAA00000000000055E8
+:1063100000AAAAAAAAAAAAAAAA00000000000055D8
+:1063200055AAAAAAAAAAAAAAAAAA0200000000001C
+:1063300055AAAAAAAAAAAAAAAAAA0000020000000C
+:1063400000AAAAAAAAAAAAAAAAAAAA020000005552
+:1063500000AAAAAAAAAAAAAAAAAAAA2A000000551A
+:1063600000AAAAAAAAAAAAAAAAAAAA2A000000550A
+:1063700000AAAAAAAAAAAAAAAAAAAA2A00000055FA
+:1063800000AAAAAAAAAAAAAAAAAAAA2A00000055EA
+:1063900000AAAAAAAAAAAAAAAAAAAA2A00000055DA
+:1063A00000AAAAAAAAAAAAAAAAAAAA2A00000055CA
+:1063B00000AAAAAAAAAAAAAAAAAAAA2A00000055BA
+:1063C00000AAAAAAAAAAAAAAAAAAAA2A00000055AA
+:1063D00000AAAAAAAAAAAAAAAAAAAA2A000000559A
+:1063E00000AAAAAAAAAAAAAAAAAAAA2A000000558A
+:1063F00000AAAAAAAAAAAAAAAAAAAA2A000000557A
+:1064000000AAAAAAAAAAAAAAAAAAAA2A0000005569
+:1064100000AAAAAAAAAAAAAAAAAAAA2A0000005559
+:1064200000AAAAAAAAAAAAAAAAAAAA2A0000005549
+:1064300000AAAAAAAAAAAAAAAAAAAA2A0000005539
+:1064400000AAAAAAAAAAAAAAAAAAAAAA00000055A9
+:1064500055AAAAAAAAAAAAAAAAAAAA2A2A020000ED
+:1064600055AAAAAAAAAAAAAAAAAAAA2A2A020000DD
+:1064700055AAAAAAAAAAAAAAAAAAAA2A2A020000CD
+:1064800055AAAAAAAAAAAAAAAAAAAA2A2A020000BD
+:1064900055AAAAAAAAAAAAAAAAAAAA2A2A020000AD
+:1064A00055AAAAAAAAAAAAAAAAAAAA2A2A0200009D
+:1064B00055AAAAAAAAAAAAAAAAAAAA2A2A0200008D
+:1064C00055AAAAAAAAAAAAAAAAAAAA2A2A0200007D
+:1064D00055AAAAAAAAAAAAAAAAAAAA2A2A0200006D
+:1064E00055AAAAAAAAAAAAAAAAAAAA2A2A0200005D
+:1064F00055AAAAAAAAAAAAAAAAAAAA2A2A0200004D
+:1065000055AAAAAAAAAAAAAAAAAAAA2A2A0200003C
+:1065100055AAAAAAAAAAAAAAAAAAAA2A2A0200002C
+:1065200055AAAAAAAAAAAAAAAAAAAA2A2A0200001C
+:1065300055AAAAAAAAAAAAAAAAAAAA2A2A0200000C
+:1065400055AAAAAAAAAAAAAAAAAAAAAAAA020000FC
+:1065500055A9A9A9A9A9A9A9A9A9A9A92901010078
+:1065600055A9A9A9A9A9A9A9A9A9A9A92901010068
+:1065700055A9A9A9A9A9A9A9A9A9A9A92901010058
+:1065800055A9A9A9A9A9A9A9A9A9A9A92901010048
+:1065900055A9A9A9A9A9A9A9A9A9A9A92901010038
+:1065A00055A9A9A9A9A9A9A9A9A9A9A92901010028
+:1065B00055A9A9A9A9A9A9A9A9A9A9A92901010018
+:1065C00055A9A9A9A9A9A9A9A9A9A9A92901010008
+:1065D00055A9A9A9A9A9A9A9A9A9A9A929010100F8
+:1065E00055A9A9A9A9A9A9A9A9A9A9A929010100E8
+:1065F00055A9A9A9A9A9A9A9A9A9A9A929010100D8
+:1066000055A9A9A9A9A9A9A9A9A9A9A929010100C7
+:1066100055A9A9A9A9A9A9A9A9A9A9A929010100B7
+:1066200055A9A9A9A9A9A9A9A9A9A9A929010100A7
+:1066300055A9A9A9A9A9A9A9A9A9A9A92901010097
+:1066400055A9A9A9A9A9A9A9A9A9A9A9A901010007
+:1066500000A9A9A9A9A9A9A9A9A9A9A9292901554F
+:1066600000A9A9A9A9A9A9A9A9A9A9A9292901553F
+:1066700000A9A9A9A9A9A9A9A9A9A9A9292901552F
+:1066800000A9A9A9A9A9A9A9A9A9A9A9292901551F
+:1066900000A9A9A9A9A9A9A9A9A9A9A9292901550F
+:1066A00000A9A9A9A9A9A9A9A9A9A9A929290155FF
+:1066B00000A9A9A9A9A9A9A9A9A9A9A929290155EF
+:1066C00000A9A9A9A9A9A9A9A9A9A9A929290155DF
+:1066D00000A9A9A9A9A9A9A9A9A9A9A929290155CF
+:1066E00000A9A9A9A9A9A9A9A9A9A9A929290155BF
+:1066F00000A9A9A9A9A9A9A9A9A9A9A929290155AF
+:1067000000A9A9A9A9A9A9A9A9A9A9A9292901559E
+:1067100000A9A9A9A9A9A9A9A9A9A9A9292901558E
+:1067200000A9A9A9A9A9A9A9A9A9A9A9292901557E
+:1067300000A9A9A9A9A9A9A9A9A9A9A9292901556E
+:1067400000A9A9A9A9A9A9A9A9A9A9A9A9A901555E
+:1067500000A9A9A9A9A9A9A9A9A9A9A9A9290155CE
+:1067600000A9A9A9A9A9A9A9A9A9A9A9A9290155BE
+:1067700000A9A9A9A9A9A9A9A9A9A9A9A9290155AE
+:1067800000A9A9A9A9A9A9A9A9A9A9A9A92901559E
+:1067900000A9A9A9A9A9A9A9A9A9A9A9A92901558E
+:1067A00000A9A9A9A9A9A9A9A9A9A9A9A92901557E
+:1067B00000A9A9A9A9A9A9A9A9A9A9A9A92901556E
+:1067C00000A9A9A9A9A9A9A9A9A9A9A9A92901555E
+:1067D00000A9A9A9A9A9A9A9A9A9A9A9A92901554E
+:1067E00000A9A9A9A9A9A9A9A9A9A9A9A92901553E
+:1067F00000A9A9A9A9A9A9A9A9A9A9A9A92901552E
+:1068000000A9A9A9A9A9A9A9A9A9A9A9A92901551D
+:1068100000A9A9A9A9A9A9A9A9A9A9A9A92901550D
+:1068200000A9A9A9A9A9A9A9A9A9A9A9A9290155FD
+:1068300000A9A9A9A9A9A9A9A9A9A9A9A9290155ED
+:1068400000A9A9A9A9A9A9A9A9A9A9A9A9A901555D
+:10685000559595959595959595959595959515013C
+:10686000559595959595959595959595959515012C
+:10687000005555555555555555555555555555561C
+:10688000005555555555555555555555555555560C
+:1068900055555555555555555555555555555516E7
+:1068A00055555555555555555555555555555516D7
+:1068B00000555555555555555555555555555568CA
+:1068C00000555555555555555555555555555568BA
+:1068D0005555555555555555555555555555556A53
+:1068E0005555555555555555555555555555556A43
+:1068F0000055555555555555555555555555558072
+:106900000055555555555555555555555555558061
+:10691000555555555555555555555555555555AAD2
+:10692000555555555555555555555555555555AAC2
+:1069300000565656565656565656565656565600A3
+:106940000056565656565656565656565656560093
+:10695000555656565656565656565656565656AA84
+:10696000555656565656565656565656565656AA74
+:10697000005A5A5A5A5A5A5A5A5A5A5A5A5A5A002B
+:10698000005A5A5A5A5A5A5A5A5A5A5A5A5A5A001B
+:10699000555A5A5A5A5A5A5A5A5A5A5A5A5A5AAA0C
+:1069A000555A5A5A5A5A5A5A5A5A5A5A5A5A5AAAFC
+:1069B000006A6A6A6A6A6A6A6A6A6A6A6A6A6A000B
+:1069C000006A6A6A6A6A6A6A6A6A6A6A6A6A6A00FB
+:1069D000556A6A6A6A6A6A6A6A6A6A6A6A6A6AAAEC
+:1069E000556A6A6A6A6A6A6A6A6A6A6A6A6A6AAADC
+:1069F000006A6A6A6A6A6A6A6A6A6A6A6A6A6A00CB
+:106A0000006A6A6A6A6A6A6A6A6A6A6A6A6A6A00BA
+:106A100055AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA2B
+:106A200055AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA1B
+:106A300000AAAAAAAAAAAAAAAAAAAAAAAAAAAA000A
+:106A400000A9A9A9A9A9A9A9A9A9A9A9A9A9A80009
+:106A500055A9A9A9A9A9A9A9A9A9A9A9A8A8A8AAFC
+:106A600055A9A9A9A9A9A9A9A9A9A9A9A8A8A8AAEC
+:106A700000A9A9A9A9A9A9A9A9A9A8A8A9A8A800DC
+:106A800000A9A9A9A9A9A9A9A9A9A9A8A8A8A800CC
+:106A900055A5A5A5A5A5A5A5A5A4A4A4A4A4A0AAFB
+:106AA00055A5A5A5A5A5A5A5A4A4A4A4A4A4A0AAEC
+:106AB00000A5A5A5A5A5A5A4A4A4A4A4A4A0A000E0
+:106AC00000A5A5A5A5A5A4A4A4A4A4A4A4A0A000D1
+:106AD00055A5A5A5A5A5A5A4A4A4A4A4A0A0A0AAC5
+:106AE00055A5A5A5A5A5A5A4A4A4A4A4A0A0A0AAB5
+:106AF00055A5A5A5A5A5A5A4A4A4A4A4A0A0A0AAA5
+:106B000055A5A5A5A5A5A5A4A4A4A4A4A0A0A0AA94
+:106B100055A5A5A5A5A5A5A4A4A4A4A4A0A0A0AA84
+:106B200055A5A5A5A5A5A5A4A4A4A4A4A0A0A0AA74
+:106B300055A5A5A5A5A5A5A4A4A4A4A4A0A0A0AA64
+:106B400055A5A5A5A5A5A5A4A4A4A4A4A0A0A0AA54
+:106B500055A5A5A5A5A5A5A4A4A4A4A4A0A0A0AA44
+:106B600055A5A5A5A5A5A5A4A4A4A4A4A0A0A0AA34
+:106B700055A5A5A5A5A5A5A4A4A4A4A4A0A0A0AA24
+:106B800055A5A5A5A5A5A5A4A4A4A4A4A0A0A0AA14
+:106B900055A5A5A5A5A5A5A4A4A4A4A4A0A0A0AA04
+:106BA00055A5A5A5A5A5A5A4A4A4A4A4A0A0A0AAF4
+:106BB00055A5A5A5A5A5A5A4A4A4A4A4A0A0A0AAE4
+:106BC00055A5A5A5A5A5A5A4A4A4A4A4A0A0A0A8D6
+:106BD00055A5A5A5A5A4A4A4A4A4A4A0A0A0A0AACA
+:106BE00055A5A5A5A5A4A4A4A4A4A4A0A0A0A0AABA
+:106BF00055A5A5A5A5A4A4A4A4A4A4A0A0A0A0AAAA
+:106C000055A5A5A5A5A4A4A4A4A4A4A0A0A0A0AA99
+:106C100055A5A5A5A5A4A4A4A4A4A4A0A0A0A0AA89
+:106C200055A5A5A5A5A4A4A4A4A4A4A0A0A0A0AA79
+:106C300055A5A5A5A5A4A4A4A4A4A4A0A0A0A0AA69
+:106C400055A5A5A5A5A4A4A4A4A4A4A0A0A0A0AA59
+:106C500055A5A5A5A5A4A4A4A4A4A4A0A0A0A0AA49
+:106C600055A5A5A5A5A4A4A4A4A4A4A0A0A0A0AA39
+:106C700055A5A5A5A5A4A4A4A4A4A4A0A0A0A0AA29
+:106C800055A5A5A5A5A4A4A4A4A4A4A0A0A0A0AA19
+:106C900055A5A5A5A5A4A4A4A4A4A4A0A0A0A0AA09
+:106CA00055A5A5A5A5A4A4A4A4A4A4A0A0A0A0AAF9
+:106CB00055A5A5A5A5A4A4A4A4A4A4A0A0A0A0AAE9
+:106CC00055A5A5A5A5A4A4A4A4A4A4A0A0A0A0A8DB
+:106CD00000A5A5A5A5A4A4A4A4A4A0A0A0A0A000CC
+:106CE00000A5A5A5A4A4A4A4A4A4A0A0A0A0A000BD
+:106CF000559595959494949494909090909080AAA2
+:106D0000559595959494949494909090909080AA91
+:106D1000559595959494949494909090909080AA81
+:106D2000559595959494949494909090909080AA71
+:106D3000559595959494949494909090909080AA61
+:106D4000559595959494949494909090909080AA51
+:106D5000559595959494949494909090909080AA41
+:106D6000559595959494949494909090909080AA31
+:106D7000559595959494949494909090909080AA21
+:106D8000559595959494949494909090909080AA11
+:106D9000559595959494949494909090909080AA01
+:106DA000559595959494949494909090909080AAF1
+:106DB000559595959494949494909090909080AAE1
+:106DC000559595959494949494909090909080AAD1
+:106DD000559595959494949494909090909080AAC1
+:106DE000559595959494949494909090909080A8B3
+:106DF000559595949494949494909090909080AAA2
+:106E0000559595949494949494909090909080AA91
+:106E1000559595949494949494909090909080AA81
+:106E2000559595949494949494909090909080AA71
+:106E3000559595949494949494909090909080AA61
+:106E4000559595949494949494909090909080AA51
+:106E5000559595949494949494909090909080AA41
+:106E6000559595949494949494909090909080AA31
+:106E7000559595949494949494909090909080AA21
+:106E8000559595949494949494909090909080AA11
+:106E9000559595949494949494909090909080AA01
+:106EA000559595949494949494909090909080AAF1
+:106EB000559595949494949494909090909080AAE1
+:106EC000559595949494949494909090909080AAD1
+:106ED000559595949494949494909090909080AAC1
+:106EE000559595949494949494909090909080A8B3
+:106EF00000959595949494949090909090808000B3
+:106F000000959594949494909090909090808000A7
+:106F1000559594949494909090909090808080AAAD
+:106F2000559594949494909090909090808080AA9D
+:106F3000559594949494909090909090808080AA8D
+:106F4000559594949494909090909090808080AA7D
+:106F5000559594949494909090909090808080AA6D
+:106F6000559594949494909090909090808080AA5D
+:106F7000559594949494909090909090808080AA4D
+:106F8000559594949494909090909090808080AA3D
+:106F9000559594949494909090909090808080AA2D
+:106FA000559594949494909090909090808080AA1D
+:106FB000559594949494909090909090808080AA0D
+:106FC000559594949494909090909090808080AAFD
+:106FD000559594949494909090909090808080AAED
+:106FE000559594949494909090909090808080AADD
+:106FF000559594949494909090909090808080AACD
+:10700000559594949494909090909090808080A0C6
+:10701000559594949494909090909080808080AABC
+:10702000559594949494909090909080808080AAAC
+:10703000559594949494909090909080808080AA9C
+:10704000559594949494909090909080808080AA8C
+:10705000559594949494909090909080808080AA7C
+:10706000559594949494909090909080808080AA6C
+:10707000559594949494909090909080808080AA5C
+:10708000559594949494909090909080808080AA4C
+:10709000559594949494909090909080808080AA3C
+:1070A000559594949494909090909080808080AA2C
+:1070B000559594949494909090909080808080AA1C
+:1070C000559594949494909090909080808080AA0C
+:1070D000559594949494909090909080808080AAFC
+:1070E000559594949494909090909080808080AAEC
+:1070F000559594949494909090909080808080AADC
+:10710000559594949494909090909080808080A0D5
+:1071100000949494949090909090808080808000CF
+:1071200000949494949090909090808080808000BF
+:10713000549494949090909090808080808080A8C7
+:10714000549494949090909090808080808080A8B7
+:10715000549494949090909090808080808080A8A7
+:10716000549494949090909090808080808080A897
+:10717000549494949090909090808080808080A887
+:10718000549494949090909090808080808080A877
+:10719000549494949090909090808080808080A867
+:1071A000549494949090909090808080808080A857
+:1071B000549494949090909090808080808080A847
+:1071C000549494949090909090808080808080A837
+:1071D000549494949090909090808080808080A827
+:1071E000549494949090909090808080808080A817
+:1071F000549494949090909090808080808080A807
+:10720000549494949090909090808080808080A8F6
+:10721000549494949090909090808080808080A8E6
+:10722000549494949090909090808080808080A0DE
+:10723000549494949090909090808080808080A8C6
+:10724000549494949090909090808080808080A8B6
+:10725000549494949090909090808080808080A8A6
+:10726000549494949090909090808080808080A896
+:10727000549494949090909090808080808080A886
+:10728000549494949090909090808080808080A876
+:10729000549494949090909090808080808080A866
+:1072A000549494949090909090808080808080A856
+:1072B000549494949090909090808080808080A846
+:1072C000549494949090909090808080808080A836
+:1072D000549494949090909090808080808080A826
+:1072E000549494949090909090808080808080A816
+:1072F000549494949090909090808080808080A806
+:10730000549494949090909090808080808080A8F5
+:10731000549494949090909090808080808080A8E5
+:10732000549494949090909090808080808080A0DD
+:107330000054545450505050404040404040000091
+:107340000054545450505040404040404040000091
+:10735000545454505050404040404040400000A8D9
+:10736000545454505050404040404040400000A8C9
+:10737000545454505050404040404040400000A8B9
+:10738000545454505050404040404040400000A8A9
+:10739000545454505050404040404040400000A899
+:1073A000545454505050404040404040400000A889
+:1073B000545454505050404040404040400000A879
+:1073C000545454505050404040404040400000A869
+:1073D000545454505050404040404040400000A859
+:1073E000545454505050404040404040400000A849
+:1073F000545454505050404040404040400000A839
+:10740000545454505050404040404040400000A828
+:10741000545454505050404040404040400000A818
+:10742000545454505050404040404040400000A808
+:10743000545454505050404040404040400000A8F8
+:107440005454545050504040404040404000008010
+:10745000545450505050404040404040000000A81C
+:10746000545450505050404040404040000000A80C
+:10747000545450505050404040404040000000A8FC
+:10748000545450505050404040404040000000A8EC
+:10749000545450505050404040404040000000A8DC
+:1074A000545450505050404040404040000000A8CC
+:1074B000545450505050404040404040000000A8BC
+:1074C000545450505050404040404040000000A8AC
+:1074D000545450505050404040404040000000A89C
+:1074E000545450505050404040404040000000A88C
+:1074F000545450505050404040404040000000A87C
+:10750000545450505050404040404040000000A86B
+:10751000545450505050404040404040000000A85B
+:10752000545450505050404040404040000000A84B
+:10753000545450505050404040404040000000A83B
+:107540005454505050504040404040400000008053
+:10755000005050505040404040404000000000006B
+:107560000C5C5C5C5C4C4C4C4C4C4C0C0C0C0C0C9B
+:10757000505050504040404040400000000000A0AB
+:10758000505050504040404040400000000000A09B
+:10759000505050504040404040400000000000A08B
+:1075A000505050504040404040400000000000A07B
+:1075B000505050504040404040400000000000A06B
+:1075C000505050504040404040400000000000A05B
+:1075D000505050504040404040400000000000A04B
+:1075E000505050504040404040400000000000A03B
+:1075F000505050504040404040400000000000A02B
+:10760000505050504040404040400000000000A01A
+:10761000505050504040404040400000000000A00A
+:10762000505050504040404040400000000000A0FA
+:10763000505050504040404040400000000000A0EA
+:10764000505050504040404040400000000000A0DA
+:10765000505050504040404040400000000000A0CA
+:1076600050505050404040404040000000000080DA
+:10767000505050504040404040400000000000A0AA
+:10768000505050504040404040400000000000A09A
+:10769000505050504040404040400000000000A08A
+:1076A000505050504040404040400000000000A07A
+:1076B000505050504040404040400000000000A06A
+:1076C000505050504040404040400000000000A05A
+:1076D000505050504040404040400000000000A04A
+:1076E000505050504040404040400000000000A03A
+:1076F000505050504040404040400000000000A02A
+:10770000505050504040404040400000000000A019
+:10771000505050504040404040400000000000A009
+:10772000505050504040404040400000000000A0F9
+:10773000505050504040404040400000000000A0E9
+:10774000505050504040404040400000000000A0D9
+:10775000505050504040404040400000000000A0C9
+:1077600050505050404040404040000000000080D9
+:107770000050505040404040404000000000000099
+:107780000050505040404040404000000000000089
+:10779000505050404040404040000000000000A0D9
+:1077A000505050404040404040000000000000A0C9
+:1077B000505050404040404040000000000000A0B9
+:1077C000505050404040404040000000000000A0A9
+:1077D000505050404040404040000000000000A099
+:1077E000505050404040404040000000000000A089
+:1077F000505050404040404040000000000000A079
+:10780000505050404040404040000000000000A068
+:10781000505050404040404040000000000000A058
+:10782000505050404040404040000000000000A048
+:10783000505050404040404040000000000000A038
+:10784000505050404040404040000000000000A028
+:10785000505050404040404040000000000000A018
+:10786000505050404040404040000000000000A008
+:10787000505050404040404040000000000000A0F8
+:107880005050504040404040400000000000008008
+:10789000505040404040404040000000000000A0E8
+:1078A000505040404040404040000000000000A0D8
+:1078B000505040404040404040000000000000A0C8
+:1078C000505040404040404040000000000000A0B8
+:1078D000505040404040404040000000000000A0A8
+:1078E000505040404040404040000000000000A098
+:1078F000505040404040404040000000000000A088
+:10790000505040404040404040000000000000A077
+:10791000505040404040404040000000000000A067
+:10792000505040404040404040000000000000A057
+:10793000505040404040404040000000000000A047
+:10794000505040404040404040000000000000A037
+:10795000505040404040404040000000000000A027
+:10796000505040404040404040000000000000A017
+:10797000505040404040404040000000000000A007
+:107980005050404040404040400000000000008017
+:107990000040404040404040000000000000000027
+:1079A0003070707070707030303030303030303057
+:1079B00040404040404000000000000000000080C7
+:1079C00040404040404000000000000000000080B7
+:1079D00000404040400000000000000000000000A7
+:1079E0000040404040000000000000000000000097
+:1079F0004040404000000000000000000000008007
+:107A000040404040000000000000000000000080F6
+:107A100000404040000000000000000000000000A6
+:107A20000040404000000000000000000000000096
+:107A30004040400000000000000000000000008006
+:107A40004040000000000000000000000000008036
+:107A50000000000000000000000000000000000026
+:107A6000C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C016
+:107A70000000000000000000000000000000000006
+:107A800000000000000000000000000000000000F6
+:107A900000000000000000000000000000000000E6
+:107AA00000000000000000000000000000000000D6
+:107AB00000000000000000000000000000000000C6
+:107AC00000000000000000000000000000000000B6
+:107AD00000000000000000000000000000000000A6
+:107AE0000000000000000000000000000000000096
+:107AF0000000000000000000000000000000000086
+:107B0000005555A9A9A9A9A9A9A9A9A9A9A9A9558A
+:107B1000AA00555555555555555555555555555515
+:107B2000AA55005555555555555555555555555505
+:107B3000AA555500555555555555555555555555F5
+:107B4000AA555555005555555555555555555555E5
+:107B5000AA555555550055555555555555555555D5
+:107B6000AA555555555500555555555555555555C5
+:107B7000AA555555555555005555555555555555B5
+:107B8000AA555555555555550055555555555555A5
+:107B9000AA55555555555555550055555555555595
+:107BA000AA55555555555555555500555555555585
+:107BB000AA55555555555555555555005555555575
+:107BC000AA55555555555555555555550055555565
+:107BD000AA55555555555555555555555500555555
+:107BE000AA55555555555555555555555555005545
+:107BF000AA555A6A6AAAAAAAAAAAAAAAAAAAAA00B4
+:107C0000005555A9A9A9A9A9A9A9A9A9A9A9A95589
+:107C1000AA00555555555555555555555555555514
+:107C2000AA55005555555555555555555555555504
+:107C3000AA555500555555555555555555555555F4
+:107C4000AA555555005555555555555555555555E4
+:107C5000AA555555550055555555555555555555D4
+:107C6000AA555555555500555555555555555555C4
+:107C7000AA555555555555005555555555555555B4
+:107C8000AA555555555555550055555555555555A4
+:107C9000AA55555555555555550055555555555594
+:107CA000AA55555555555555555500555555555584
+:107CB000AA55555555555555555555005555555574
+:107CC000AA55555555555555555555550055555564
+:107CD000AA55555555555555555555555500555554
+:107CE000AA55555555555555555555555555005544
+:107CF000AA555A5A6A6AAAAAAAAAAAAAAAAAAA0003
+:107D000000555555A9A9A9A9A9A9A9A9A9A9A90031
+:107D10000000555555555555555555555555550012
+:107D20000055005555555555555555555555550002
+:107D300000555500555555555555555555555500F2
+:107D400000555555005555555555555555555500E2
+:107D500000555555550055555555555555555500D2
+:107D600000555555555500555555555555555500C2
+:107D700000555555555555005555555555555500B2
+:107D800000555555555555550055555555555500A2
+:107D90000055555555555555550055555555550092
+:107DA0000055555555555555555500555555550082
+:107DB0000055555555555555555555005555550072
+:107DC0000055555555555555555555550055550062
+:107DD0000055555555555555555555555500550052
+:107DE0000055555555555555555555555555000042
+:107DF0000055565A5A6AAAAAAAAAAAAAAAAAAA00C0
+:107E0000005555556969A9A9A9A9A9A9A9A9A900B0
+:107E10000000555555555555555555555555550011
+:107E20000055005555555555555555555555550001
+:107E300000555500555555555555555555555500F1
+:107E400000555555005555555555555555555500E1
+:107E500000555555550055555555555555555500D1
+:107E600000555555555500555555555555555500C1
+:107E700000555555555555005555555555555500B1
+:107E800000555555555555550055555555555500A1
+:107E90000055555555555555550055555555550091
+:107EA0000055555555555555555500555555550081
+:107EB0000055555555555555555555005555550071
+:107EC0000055555555555555555555550055550061
+:107ED0000055555555555555555555555500550051
+:107EE0000055555555555555555555555555000041
+:107EF0000055565A5A5AAAAAAAAAAAAAAAAAAA00CF
+:107F0000005555555555A9A9A9A9A9A9A9A9A95582
+:107F1000AA00555555555555555555555555555511
+:107F2000AA55005555555555555555555555555501
+:107F3000AA555500555555555555555555555555F1
+:107F4000AA555555005555555555555555555555E1
+:107F5000AA555555550055555555555555555555D1
+:107F6000AA555555555500555555555555555555C1
+:107F7000AA555555555555005555555555555555B1
+:107F8000AA555555555555550055555555555555A1
+:107F9000AA55555555555555550055555555555591
+:107FA000AA55555555555555555500555555555581
+:107FB000AA55555555555555555555005555555571
+:107FC000AA55555555555555555555550055555561
+:107FD000AA55555555555555555555555500555551
+:107FE000AA55555555555555555555555555005541
+:107FF000AA55555A5A5AAAAAAAAAAAAAAAAAAA0025
+:10800000005555555555A9A9A9A9A9A9A9A9A95581
+:10801000AA00555555555555555555555555555510
+:10802000AA55005555555555555555555555555500
+:10803000AA555500555555555555555555555555F0
+:10804000AA555555005555555555555555555555E0
+:10805000AA555555550055555555555555555555D0
+:10806000AA555555555500555555555555555555C0
+:10807000AA555555555555005555555555555555B0
+:10808000AA555555555555550055555555555555A0
+:10809000AA55555555555555550055555555555590
+:1080A000AA55555555555555555500555555555580
+:1080B000AA55555555555555555555005555555570
+:1080C000AA55555555555555555555550055555560
+:1080D000AA55555555555555555555555500555550
+:1080E000AA55555555555555555555555555005540
+:1080F000AA55555A5A5AAAAAAAAAAAAAAAAAAA0024
+:1081000000555555555595A9A9A9A9A9A9A9AA00E8
+:10811000000055555555555555555555555556000D
+:1081200000550055555555555555555555555500FE
+:1081300000555500555555555555555555555500EE
+:1081400000555555005555555555555555555500DE
+:1081500000555555550055555555555555555500CE
+:1081600000555555555500555555555555555500BE
+:1081700000555555555555005555555555555500AE
+:10818000005555555555555500555555555555009E
+:10819000005555555555555555005555555555008E
+:1081A000005555555555555555550055555555007E
+:1081B000005555555555555555555500555555006E
+:1081C000005555555555555555555555005555005E
+:1081D000005555555555555555555555550055004E
+:1081E000005555555555555555555555555500003E
+:1081F000005555565A5A5AAAAAAAAAAAAAAAAA0021
+:1082000000555555555555A9A9A9A9A9A9A9AA0027
+:10821000000055555555555555555555555556000C
+:1082200000550055555555555555555555555600FC
+:1082300000555500555555555555555555555500ED
+:1082400000555555005555555555555555555500DD
+:1082500000555555550055555555555555555500CD
+:1082600000555555555500555555555555555500BD
+:1082700000555555555555005555555555555500AD
+:10828000005555555555555500555555555555009D
+:10829000005555555555555555005555555555008D
+:1082A000005555555555555555550055555555007D
+:1082B000005555555555555555555500555555006D
+:1082C000005555555555555555555555005555005D
+:1082D000005555555555555555555555550055004D
+:1082E000005555555555555555555555555500003D
+:1082F000005555565A5A5AAAAAAAAAAAAAAAAA0020
+:1083000000555555555555A5A9A9A9A9A9A9AA55D5
+:10831000AA0055555555555555555555555556550C
+:10832000AA550055555555555555555555555655FC
+:10833000AA555500555555555555555555555655EC
+:10834000AA555555005555555555555555555555DD
+:10835000AA555555550055555555555555555555CD
+:10836000AA555555555500555555555555555555BD
+:10837000AA555555555555005555555555555555AD
+:10838000AA5555555555555500555555555555559D
+:10839000AA5555555555555555005555555555558D
+:1083A000AA5555555555555555550055555555557D
+:1083B000AA5555555555555555555500555555556D
+:1083C000AA5555555555555555555555005555555D
+:1083D000AA5555555555555555555555550055554D
+:1083E000AA5555555555555555555555555500553D
+:1083F000AA555555565A5A5AAAAAAAAAAAAAAA00CA
+:108400000055555555555595A5A5A5A9A9A9AA55F0
+:10841000AA0055555555555555555555555556550B
+:10842000AA550055555555555555555555555655FB
+:10843000AA555500555555555555555555555655EB
+:10844000AA555555005555555555555555555655DB
+:10845000AA555555550055555555555555555655CB
+:10846000AA555555555500555555555555555655BB
+:10847000AA555555555555005555555555555655AB
+:10848000AA5555555555555500555555555556559B
+:10849000AA5555555555555555005555555556558B
+:1084A000AA5555555555555555550055555556557B
+:1084B000AA5555555555555555555500555556556B
+:1084C000AA5555555555555555555555005556555B
+:1084D000AA5555555555555555555555550055554C
+:1084E000AA5555555555555555555555555500553C
+:1084F000AA55555556565A5AAAAAAAAAAAAAAA00CD
+:108500000055555555555555959595A5A9AAAA00B7
+:108510000000555555555555555555555556560008
+:1085200000550055555555555555555555555600F9
+:1085300000555500555555555555555555555600E9
+:1085400000555555005555555555555555555600D9
+:1085500000555555550055555555555555555600C9
+:1085600000555555555500555555555555555600B9
+:1085700000555555555555005555555555555600A9
+:108580000055555555555555005555555555560099
+:108590000055555555555555550055555555560089
+:1085A0000055555555555555555500555555560079
+:1085B0000055555555555555555555005555560069
+:1085C0000055555555555555555555550055560059
+:1085D0000055555555555555555555555500560049
+:1085E000005555555555555555555555555500003A
+:1085F0000055555555555A5AAAAAAAAAAAAAAA0078
+:10860000005555555555555595955596A6A6A60010
+:108610000000555555555555555555565656560005
+:1086200000550055555555555555555555565600F7
+:1086300000555500555555555555555555555600E8
+:1086400000555555005555555555555555555600D8
+:1086500000555555550055555555555555555600C8
+:1086600000555555555500555555555555555600B8
+:1086700000555555555555005555555555555600A8
+:108680000055555555555555005555555555560098
+:108690000055555555555555550055555555560088
+:1086A0000055555555555555555500555555560078
+:1086B0000055555555555555555555005555560068
+:1086C0000055555555555555555555550055560058
+:1086D0000055555555555555555555555500560048
+:1086E0000055555555555555555555555555000039
+:1086F0000055555555555559AAAAAAAAAAAAAA007D
+:10870000005555AAAAAAAAAAAAAAAAAAAAAAAA5572
+:10871000AA005556565656565656565656565655FD
+:10872000AA550055555555555555555656565655F5
+:10873000AA555500555555555555555555565655E7
+:10874000AA555555005555555555555555555655D8
+:10875000AA555555550055555555555555555655C8
+:10876000AA555555555500555555555555555655B8
+:10877000AA555555555555005555555555555655A8
+:10878000AA55555555555555005555555555565598
+:10879000AA55555555555555550055555555565588
+:1087A000AA55555555555555555500555555565578
+:1087B000AA55555555555555555555005555565568
+:1087C000AA55555555555555555555550055565558
+:1087D000AA55555555555555555555555500565548
+:1087E000AA55555555555555555555555555005539
+:1087F000AA5555555555555559AAAAAAAAAAAA0027
+:1088000000556AAAAAAAAAAAAAAAAAAAAAAAAA555C
+:10881000AA0056AAAAAAAAAAAAAAAAAAAAAAAA550B
+:10882000AA5500AAAAAAAAAAAAAAAAAAAAAAAA55FC
+:10883000AA555500A9A9A9A9A9A9A9AAAAAAAA5548
+:10884000AA5555A900A9A9A9A9A9A9A9A9AAAA553A
+:10885000AA5555A9A900A9A9A9A9A9A9A9AAAA552A
+:10886000AA5555A9A9A900A9A9A9A9A9A9AAAA551A
+:10887000AA5555A9A9A9A900A9A9A9A9A9AAAA550A
+:10888000AA5555A9A9A9A9A900A9A9A9A9AAAA55FA
+:10889000AA5555A9A9A9A9A9A900A9A9A9AAAA55EA
+:1088A000AA5555A9A9A9A9A9A9A900A9A9AAAA55DA
+:1088B000AA55555555555555555555005556565566
+:1088C000AA55555555555555555555550056565556
+:1088D000AA55555555555555555555555500565547
+:1088E000AA55555555555555555555555555005538
+:1088F000AA55555555555555556969AAAAAAAA00AC
+:108900000055AAAAAAAAAAAAAAAAAAAAAAAAAA0070
+:108910000000AAAAAAAAAAAAAAAAAAAAAAAAAA00B5
+:10892000005500AAAAAAAAAAAAAAAAAAAAAAAA00FA
+:108930000055A900AAAAAAAAAAAAAAAAAAAAAA00EB
+:108940000055A9A900A9A9A9A9A9A9AAAAAAAA00E2
+:108950000055A9A9A900A9A9A9A9A9AAAAAAAA00D2
+:108960000055A9A9A9A900A9A9A9A9AAAAAAAA00C2
+:108970000055A9A9A9A9A900A9A9A9AAAAAAAA00B2
+:108980000055A9A9A9A9A9A900A9A9AAAAAAAA00A2
+:108990000055A9A9A9A9A9A9A900A9AAAAAAAA0092
+:1089A0000055A9A9A9A9A9A9A9A900AAAAAAAA0082
+:1089B000005555A9A9A9A9A9A9A9A900AAAAAA00C7
+:1089C0000055555555555555555555560056560053
+:1089D0000055555555555555555555555500AA00F1
+:1089E0000055555555555555555555555555000036
+:1089F000005555555555555555555569AAAAAA00BE
+:108A00000055AAAAAAAAAAAAAAAAAAAAAAAAAA006F
+:108A10000000AAAAAAAAAAAAAAAAAAAAAAAAAA00B4
+:108A200000A900AAAAAAAAAAAAAAAAAAAAAAAA00A5
+:108A300000A9AA00AAAAAAAAAAAAAAAAAAAAAA0095
+:108A400000A9A9AA00AAAAAAAAAAAAAAAAAAAA0086
+:108A500000A9A9AAAA00AAAAAAAAAAAAAAAAAA0076
+:108A600000A9A9AAAAAA00AAAAAAAAAAAAAAAA0066
+:108A700000A9A9AAAAAAAA00AAAAAAAAAAAAAA0056
+:108A800000A9A9AAAAAAAAAA00AAAAAAAAAAAA0046
+:108A900000A9A9AAAAAAAAAAAA00AAAAAAAAAA0036
+:108AA00000A9A9AAAAAAAAAAAAAA00AAAAAAAA0026
+:108AB0000055A9AAAAAAAAAAAAAAAA00AAAAAA006A
+:108AC000005555A9A9A9A9A9A9A9A9AA00AAAA00B6
+:108AD0000055555555555555555555565600AA00EE
+:108AE0000055555555555555555555555556000034
+:108AF000005555555555555555555555A9AA560026
+:108B00000055AAAAAAAAAAAAAAAAAAAAAAAAAA5519
+:108B1000AA00AAAAAAAAAAAAAAAAAAAAAAAAAA55B4
+:108B2000AAA900AAAAAAAAAAAAAAAAAAAAAAAA55A5
+:108B3000AAA9AA00AAAAAAAAAAAAAAAAAAAAAA5595
+:108B4000AAA9AAAA00AAAAAAAAAAAAAAAAAAAA5585
+:108B5000AAA9AAAAAA00AAAAAAAAAAAAAAAAAA5575
+:108B6000AAA9AAAAAAAA00AAAAAAAAAAAAAAAA5565
+:108B7000AAA9AAAAAAAAAA00AAAAAAAAAAAAAA5555
+:108B8000AAA9AAAAAAAAAAAA00AAAAAAAAAAAA5545
+:108B9000AAA9AAAAAAAAAAAAAA00AAAAAAAAAA5535
+:108BA000AAA9AAAAAAAAAAAAAAAA00AAAAAAAA5525
+:108BB000AAA9AAAAAAAAAAAAAAAAAA00AAAAAA5515
+:108BC000AA55A9AAAAAAAAAAAAAAAAAA00AAAA555A
+:108BD000AA5555AAAAAAAAAAAAAAAAAAAA00AA559E
+:108BE000AA55555555555555555555565656005532
+:108BF000AA555555555555555555555595955600A4
+:108C00000056AAAAAAAAAAAAAAAAAAAAAAAAAA5517
+:108C1000AA00AAAAAAAAAAAAAAAAAAAAAAAAAA55B3
+:108C2000AAA900AAAAAAAAAAAAAAAAAAAAAAAA55A4
+:108C3000AAA9AA00AAAAAAAAAAAAAAAAAAAAAA5594
+:108C4000AAA9AAAA00AAAAAAAAAAAAAAAAAAAA5584
+:108C5000AAA9AAAAAA00AAAAAAAAAAAAAAAAAA5574
+:108C6000AAA9AAAAAAAA00AAAAAAAAAAAAAAAA5564
+:108C7000AAA9AAAAAAAAAA00AAAAAAAAAAAAAA5554
+:108C8000AAA9AAAAAAAAAAAA00AAAAAAAAAAAA5544
+:108C9000AAA9AAAAAAAAAAAAAA00AAAAAAAAAA5534
+:108CA000AAA9AAAAAAAAAAAAAAAA00AAAAAAAA5524
+:108CB000AAA9AAAAAAAAAAAAAAAAAA00AAAAAA5514
+:108CC000AAA9AAAAAAAAAAAAAAAAAAAA00AAAA5504
+:108CD000AA55AAAAAAAAAAAAAAAAAAAAAA00AA5548
+:108CE000AA5555AAAAAAAAAAAAAAAAAAAAAA00558D
+:108CF000AA555555555555555555555595955500A4
+:108D000000AAAAAAAAAAAAAAAAAAAAAAAAAAAA0017
+:108D10000000AAAAAAAAAAAAAAAAAAAAAAAAAA00B1
+:108D200000AA00AAAAAAAAAAAAAAAAAAAAAAAA00A1
+:108D300000A9AA00AAAAAAAAAAAAAAAAAAAAAA0092
+:108D400000A9AAAA00AAAAAAAAAAAAAAAAAAAA0082
+:108D500000A9AAAAAA00AAAAAAAAAAAAAAAAAA0072
+:108D600000A9AAAAAAAA00AAAAAAAAAAAAAAAA0062
+:108D700000A9AAAAAAAAAA00AAAAAAAAAAAAAA0052
+:108D800000A9AAAAAAAAAAAA00AAAAAAAAAAAA0042
+:108D900000A9AAAAAAAAAAAAAA00AAAAAAAAAA0032
+:108DA00000A9AAAAAAAAAAAAAAAA00AAAAAAAA0022
+:108DB00000A9AAAAAAAAAAAAAAAAAA00AAAAAA0012
+:108DC00000A9AAAAAAAAAAAAAAAAAAAA00AAAA0002
+:108DD00000A9AAAAAAAAAAAAAAAAAAAAAA00AA00F2
+:108DE0000055AAAAAAAAAAAAAAAAAAAAAAAA000036
+:108DF00000555555555555555555555555555500CD
+:108E000000AAAAAAAAAAAAAAAAAAAAAAAAAAAA0016
+:108E10000000AAAAAAAAAAAAAAAAAAAAAAAAAA00B0
+:108E200000AA00AAAAAAAAAAAAAAAAAAAAAAAA00A0
+:108E300000AAAA00AAAAAAAAAAAAAAAAAAAAAA0090
+:108E400000A9AAAA00AAAAAAAAAAAAAAAAAAAA0081
+:108E500000A9AAAAAA00AAAAAAAAAAAAAAAAAA0071
+:108E600000A9AAAAAAAA00AAAAAAAAAAAAAAAA0061
+:108E700000A9AAAAAAAAAA00AAAAAAAAAAAAAA0051
+:108E800000A9AAAAAAAAAAAA00AAAAAAAAAAAA0041
+:108E900000A9AAAAAAAAAAAAAA00AAAAAAAAAA0031
+:108EA00000A9AAAAAAAAAAAAAAAA00AAAAAAAA0021
+:108EB00000A9AAAAAAAAAAAAAAAAAA00AAAAAA0011
+:108EC00000A9AAAAAAAAAAAAAAAAAAAA00AAAA0001
+:108ED00000A9AAAAAAAAAAAAAAAAAAAAAA00AA00F1
+:108EE00000A9AAAAAAAAAAAAAAAAAAAAAAAA0000E1
+:108EF00000555555555555555555555555555500CC
+:108F000000AAAAAAAAAAAAAAAAAAAAAAAAAAAA55C0
+:108F1000AA00AAAAAAAAAAAAAAAAAAAAAAAAAA55B0
+:108F2000AAAA00AAAAAAAAAAAAAAAAAAAAAAAA55A0
+:108F3000AAAAAA00AAAAAAAAAAAAAAAAAAAAAA5590
+:108F4000AAAAAAAA00AAAAAAAAAAAAAAAAAAAA5580
+:108F5000AAAAAAAAAA00AAAAAAAAAAAAAAAAAA5570
+:108F6000AAAAAAAAAAAA00AAAAAAAAAAAAAAAA5560
+:108F7000AAAAAAAAAAAAAA00AAAAAAAAAAAAAA5550
+:108F8000AAAAAAAAAAAAAAAA00AAAAAAAAAAAA5540
+:108F9000AAAAAAAAAAAAAAAAAA00AAAAAAAAAA5530
+:108FA000AAAAAAAAAAAAAAAAAAAA00AAAAAAAA5520
+:108FB000AAAAAAAAAAAAAAAAAAAAAA00AAAAAA5510
+:108FC000AAA9AAAAAAAAAAAAAAAAAAAA00AAAA5501
+:108FD000AAA9AAAAAAAAAAAAAAAAAAAAAA00AA55F1
+:108FE000AAA9AAAAAAAAAAAAAAAAAAAAAAAA0055E1
+:108FF000AA55555555555555555555555555550021
+:1090000000AAAAAAAAAAAAAAAAAAAAAAAAAAAA55BF
+:10901000AA00AAAAAAAAAAAAAAAAAAAAAAAAAA55AF
+:10902000AAAA00AAAAAAAAAAAAAAAAAAAAAAAA559F
+:10903000AAAAAA00AAAAAAAAAAAAAAAAAAAAAA558F
+:10904000AAAAAAAA00AAAAAAAAAAAAAAAAAAAA557F
+:10905000AAAAAAAAAA00AAAAAAAAAAAAAAAAAA556F
+:10906000AAAAAAAAAAAA00AAAAAAAAAAAAAAAA555F
+:10907000AAAAAAAAAAAAAA00AAAAAAAAAAAAAA554F
+:10908000AAAAAAAAAAAAAAAA00AAAAAAAAAAAA553F
+:10909000AAAAAAAAAAAAAAAAAA00AAAAAAAAAA552F
+:1090A000AAAAAAAAAAAAAAAAAAAA00AAAAAAAA551F
+:1090B000AAAAAAAAAAAAAAAAAAAAAA00AAAAAA550F
+:1090C000AAAAAAAAAAAAAAAAAAAAAAAA00AAAA55FF
+:1090D000AAAAAAAAAAAAAAAAAAAAAAAAAA00AA55EF
+:1090E000AAA9AAAAAAAAAAAAAAAAAAAAAAAA0055E0
+:1090F000AA55555555555555555555555555550020
+:1091000000AAAAAAAAAAAAAAAAAAAAAAAAAAAA0013
+:109110000000AAAAAAAAAAAAAAAAAAAAAAAAAA00AD
+:1091200000AA00AAAAAAAAAAAAAAAAAAAAAAAA009D
+:1091300000AAAA00AAAAAAAAAAAAAAAAAAAAAA008D
+:1091400000AAAAAA00AAAAAAAAAAAAAAAAAAAA007D
+:1091500000AAAAAAAA00AAAAAAAAAAAAAAAAAA006D
+:1091600000AAAAAAAAAA00AAAAAAAAAAAAAAAA005D
+:1091700000AAAAAAAAAAAA00AAAAAAAAAAAAAA004D
+:1091800000AAAAAAAAAAAAAA00AAAAAAAAAAAA003D
+:1091900000AAAAAAAAAAAAAAAA00AAAAAAAAAA002D
+:1091A00000AAAAAAAAAAAAAAAAAA00AAAAAAAA001D
+:1091B00000AAAAAAAAAAAAAAAAAAAA00AAAAAA000D
+:1091C00000AAAAAAAAAAAAAAAAAAAAAA00AAAA00FD
+:1091D00000AAAAAAAAAAAAAAAAAAAAAAAA00AA00ED
+:1091E00000AAAAAAAAAAAAAAAAAAAAAAAAAA0000DD
+:1091F00000555555555555555555555555555500C9
+:1092000000AAAAAAAAAAAAAAAAAAAAAAAAAAAA0012
+:109210000000AAAAAAAAAAAAAAAAAAAAAAAAAA00AC
+:1092200000AA00AAAAAAAAAAAAAAAAAAAAAAAA009C
+:1092300000AAAA00AAAAAAAAAAAAAAAAAAAAAA008C
+:1092400000AAAAAA00AAAAAAAAAAAAAAAAAAAA007C
+:1092500000AAAAAAAA00AAAAAAAAAAAAAAAAAA006C
+:1092600000AAAAAAAAAA00AAAAAAAAAAAAAAAA005C
+:1092700000AAAAAAAAAAAA00AAAAAAAAAAAAAA004C
+:1092800000AAAAAAAAAAAAAA00AAAAAAAAAAAA003C
+:1092900000AAAAAAAAAAAAAAAA00AAAAAAAAAA002C
+:1092A00000AAAAAAAAAAAAAAAAAA00AAAAAAAA001C
+:1092B00000AAAAAAAAAAAAAAAAAAAA00AAAAAA000C
+:1092C00000AAAAAAAAAAAAAAAAAAAAAA00AAAA00FC
+:1092D00000AAAAAAAAAAAAAAAAAAAAAAAA00AA00EC
+:1092E00000AAAAAAAAAAAAAAAAAAAAAAAAAA0000DC
+:1092F00000555555555555555555555555555500C8
+:1093000000AA00000000000000000000000000555E
+:10931000AA0000000000000000000000000000554E
+:10932000AAAA000000000000000000000000005594
+:10933000AAAA000000000000000000000000005584
+:10934000AAAA000000000000000000000000005574
+:10935000AAAA000000000000000000000000005564
+:10936000AAAA000000000000000000000000005554
+:10937000AAAA000000000000000000000000005544
+:10938000AAAA000000000000000000000000005534
+:10939000AAAA000000000000000000000000005524
+:1093A000AAAA000000000000000000000000005514
+:1093B000AAAA000000000000000000000000005504
+:1093C000AAAA0000000000000000000000000055F4
+:1093D000AAAA0000000000000000000000000055E4
+:1093E000AAAA0000000000000000000000000055D4
+:1093F000AAAA000000000000000000000000000019
+:1094000000AAA800000000000000000000000055B5
+:10941000AA00A800000000000000000000000055A5
+:10942000AAAA000000000000000000000000005593
+:10943000AAAAA800000000000000000000000055DB
+:10944000AAAAA800000000000000000000000055CB
+:10945000AAAAA800000000000000000000000055BB
+:10946000AAAAA800000000000000000000000055AB
+:10947000AAAAA8000000000000000000000000559B
+:10948000AAAAA8000000000000000000000000558B
+:10949000AAAAA8000000000000000000000000557B
+:1094A000AAAAA8000000000000000000000000556B
+:1094B000AAAAA8000000000000000000000000555B
+:1094C000AAAAA8000000000000000000000000554B
+:1094D000AAAAA8000000000000000000000000553B
+:1094E000AAAAA8000000000000000000000000552B
+:1094F000AAAAA80000000000000000000000000070
+:1095000000AAAAA80000000000000000000000005F
+:109510005500AAA8000000000000000000000000A4
+:1095200055AA00A800000000000000000000000094
+:1095300055AAAA0000000000000000000000000082
+:1095400055AAAAA8000000000000000000000000CA
+:1095500055AAAAA8000000000000000000000000BA
+:1095600055AAAAA8000000000000000000000000AA
+:1095700055AAAAA80000000000000000000000009A
+:1095800055AAAAA80000000000000000000000008A
+:1095900055AAAAA80000000000000000000000007A
+:1095A00055AAAAA80000000000000000000000006A
+:1095B00055AAAAA80000000000000000000000005A
+:1095C00055AAAAA80000000000000000000000004A
+:1095D00055AAAAA80000000000000000000000003A
+:1095E00055AAAAA80000000000000000000000002A
+:1095F00055AAAAA80000000000000000000000001A
+:1096000000AAAAAA0000000000000000000000005C
+:109610005500AAAA000000000000000000000000A1
+:1096200055AA00AA00000000000000000000000091
+:1096300055AAAA0000000000000000000000000081
+:1096400055AAAAAA000000000000000000000000C7
+:1096500055AAAAAA000000000000000000000000B7
+:1096600055AAAAAA000000000000000000000000A7
+:1096700055AAAAAA00000000000000000000000097
+:1096800055AAAAAA00000000000000000000000087
+:1096900055AAAAAA00000000000000000000000077
+:1096A00055AAAAAA00000000000000000000000067
+:1096B00055AAAAAA00000000000000000000000057
+:1096C00055AAAAAA00000000000000000000000047
+:1096D00055AAAAAA00000000000000000000000037
+:1096E00055AAAAAA00000000000000000000000027
+:1096F00055AAAAAA00000000000000000000000017
+:1097000000AAAAA800000000000000000000005508
+:109710000000AAA8000000000000000000000055A2
+:1097200000AA00A800000000000000000000005592
+:1097300000AAAA0000000000000000000000005580
+:1097400000AAAAA8000000000000000000000055C8
+:1097500000AAAAA8000000000000000000000055B8
+:1097600000AAAAA8000000000000000000000055A8
+:1097700000AAAAA800000000000000000000005598
+:1097800000AAAAA800000000000000000000005588
+:1097900000AAAAA800000000000000000000005578
+:1097A00000AAAAA800000000000000000000005568
+:1097B00000AAAAA800000000000000000000005558
+:1097C00000AAAAA800000000000000000000005548
+:1097D00000AAAAA800000000000000000000005538
+:1097E00000AAAAA800000000000000000000005528
+:1097F00000AAAAA80000000000000000000000006D
+:1098000000AAAAAA00000000000000000000005505
+:109810000000AAAA0000000000000000000000559F
+:1098200000AA00AA0000000000000000000000558F
+:1098300000AAAA000000000000000000000000557F
+:1098400000AAAAAA000000000000000000000055C5
+:1098500000AAAAAA000000000000000000000055B5
+:1098600000AAAAAA000000000000000000000055A5
+:1098700000AAAAAA00000000000000000000005595
+:1098800000AAAAAA00000000000000000000005585
+:1098900000AAAAAA00000000000000000000005575
+:1098A00000AAAAAA00000000000000000000005565
+:1098B00000AAAAAA00000000000000000000005555
+:1098C00000AAAAAA00000000000000000000005545
+:1098D00000AAAAAA00000000000000000000005535
+:1098E00000AAAAAA00000000000000000000005525
+:1098F00000AAAAAA0000000000000000000000006A
+:1099000000AAAAAAA80000000000000000000000B1
+:109910005500AAAAA80000000000000000000000F6
+:1099200055AA00AAA80000000000000000000000E6
+:1099300055AAAA00A80000000000000000000000D6
+:1099400055AAAAAA000000000000000000000000C4
+:1099500055AAAAAAA800000000000000000000000C
+:1099600055AAAAAAA80000000000000000000000FC
+:1099700055AAAAAAA80000000000000000000000EC
+:1099800055AAAAAAA80000000000000000000000DC
+:1099900055AAAAAAA80000000000000000000000CC
+:1099A00055AAAAAAA80000000000000000000000BC
+:1099B00055AAAAAAA80000000000000000000000AC
+:1099C00055AAAAAAA800000000000000000000009C
+:1099D00055AAAAAAA800000000000000000000008C
+:1099E00055AAAAAAA800000000000000000000007C
+:1099F00055AAAAAAA800000000000000000000006C
+:109A000000AAAAAAAA0000000000000000000000AE
+:109A10005500AAAAAA0000000000000000000000F3
+:109A200055AA00AAAA0000000000000000000000E3
+:109A300055AAAA00AA0000000000000000000000D3
+:109A400055AAAAAA000000000000000000000000C3
+:109A500055AAAAAAAA000000000000000000000009
+:109A600055AAAAAAAA0000000000000000000000F9
+:109A700055AAAAAAAA0000000000000000000000E9
+:109A800055AAAAAAAA0000000000000000000000D9
+:109A900055AAAAAAAA0000000000000000000000C9
+:109AA00055AAAAAAAA0000000000000000000000B9
+:109AB00055AAAAAAAA0000000000000000000000A9
+:109AC00055AAAAAAAA000000000000000000000099
+:109AD00055AAAAAAAA000000000000000000000089
+:109AE00055AAAAAAAA000000000000000000000079
+:109AF00055AAAAAAAA000000000000000000000069
+:109B000000AAAAAAAAA800000000000000000055B0
+:109B10000000AAAAAAA8000000000000000000554A
+:109B200000AA00AAAAA8000000000000000000553A
+:109B300000AAAA00AAA8000000000000000000552A
+:109B400000AAAAAA00A8000000000000000000551A
+:109B500000AAAAAAAA000000000000000000005508
+:109B600000AAAAAAAAA80000000000000000005550
+:109B700000AAAAAAAAA80000000000000000005540
+:109B800000AAAAAAAAA80000000000000000005530
+:109B900000AAAAAAAAA80000000000000000005520
+:109BA00000AAAAAAAAA80000000000000000005510
+:109BB00000AAAAAAAAA80000000000000000005500
+:109BC00000AAAAAAAAA800000000000000000055F0
+:109BD00000AAAAAAAAA800000000000000000055E0
+:109BE00000AAAAAAAAA800000000000000000055D0
+:109BF00000AAAAAAAAA80000000000000000000015
+:109C000000AAAAAAAAAA02000000000000000055AB
+:109C10000000AAAAAAAA0200000000000000005545
+:109C200000AA00AAAAAA0200000000000000005535
+:109C300000AAAA00AAAA0200000000000000005525
+:109C400000AAAAAA00AA0200000000000000005515
+:109C500000AAAAAAAA000200000000000000005505
+:109C600000AAAAAAAAAA000000000000000000554D
+:109C700000AAAAAAAAAA020000000000000000553B
+:109C800000AAAAAAAAAA020000000000000000552B
+:109C900000AAAAAAAAAA020000000000000000551B
+:109CA00000AAAAAAAAAA020000000000000000550B
+:109CB00000AAAAAAAAAA02000000000000000055FB
+:109CC00000AAAAAAAAAA02000000000000000055EB
+:109CD00000AAAAAAAAAA02000000000000000055DB
+:109CE00000AAAAAAAAAA02000000000000000055CB
+:109CF00000AAAAAAAAAA0200000000000000000010
+:109D000000AAAAAAAAAAA800000000000000000059
+:109D10005500AAAAAAAAA80000000000000000009E
+:109D200055AA00AAAAAAA80000000000000000008E
+:109D300055AAAA00AAAAA80000000000000000007E
+:109D400055AAAAAA00AAA80000000000000000006E
+:109D500055AAAAAAAA00A80000000000000000005E
+:109D600055AAAAAAAAAA000000000000000000004C
+:109D700055AAAAAAAAAAA800000000000000000094
+:109D800055AAAAAAAAAAA800000000000000000084
+:109D900055AAAAAAAAAAA800000000000000000074
+:109DA00055AAAAAAAAAAA800000000000000000064
+:109DB00055AAAAAAAAAAA800000000000000000054
+:109DC00055AAAAAAAAAAA800000000000000000044
+:109DD00055AAAAAAAAAAA800000000000000000034
+:109DE00055AAAAAAAAAAA800000000000000000024
+:109DF00055AAAAAAAAAAA800000000000000000014
+:109E000000AAAAAAAAAAAAA80000000000000000AE
+:109E10005500AAAAAAAAAAA80000000000000000F3
+:109E200055AA00AAAAAAAAA80000000000000000E3
+:109E300055AAAA00AAAAAAA80000000000000000D3
+:109E400055AAAAAA00AAAAA80000000000000000C3
+:109E500055AAAAAAAA00AAA80000000000000000B3
+:109E600055AAAAAAAAAA00A80000000000000000A3
+:109E700055AAAAAAAAAAAA00000000000000000091
+:109E800055AAAAAAAAAAAAA80000000000000000D9
+:109E900055AAAAAAAAAAAAA80000000000000000C9
+:109EA00055AAAAAAAAAAAAA80000000000000000B9
+:109EB00055AAAAAAAAAAAAA80000000000000000A9
+:109EC00055AAAAAAAAAAAAA8000000000000000099
+:109ED00055AAAAAAAAAAAAA8000000000000000089
+:109EE00055AAAAAAAAAAAAA8000000000000000079
+:109EF00055AAAAAAAAAAAAA8000000000000000069
+:109F000000AAAAAAAAAAAAAAA800000000000055AE
+:109F10000000AAAAAAAAAAAAA80000000000005548
+:109F200000AA00AAAAAAAAAAA80000000000005538
+:109F300000AAAA00AAAAAAAAA80000000000005528
+:109F400000AAAAAA00AAAAAAA80000000000005518
+:109F500000AAAAAAAA00AAAAA80000000000005508
+:109F600000AAAAAAAAAA00AAA800000000000055F8
+:109F700000AAAAAAAAAAAA00A800000000000055E8
+:109F800000AAAAAAAAAAAAAA0000000000000055D6
+:109F900000AAAAAAAAAAAAAAA8000000000000551E
+:109FA00000AAAAAAAAAAAAAAA8000000000000550E
+:109FB00000AAAAAAAAAAAAAAA800000000000055FE
+:109FC00000AAAAAAAAAAAAAAA800000000000055EE
+:109FD00000AAAAAAAAAAAAAAA800000000000055DE
+:109FE00000AAAAAAAAAAAAAAA800000000000055CE
+:109FF00000AAAAAAAAAAAAAAA80000000000000013
+:10A0000000AAAAAAAAAAAAAAAA00000000000055AB
+:10A010000000AAAAAAAAAAAAAA0000000000005545
+:10A0200000AA00AAAAAAAAAAAA0000000000005535
+:10A0300000AAAA00AAAAAAAAAA0000000000005525
+:10A0400000AAAAAA00AAAAAAAA0000000000005515
+:10A0500000AAAAAAAA00AAAAAA0000000000005505
+:10A0600000AAAAAAAAAA00AAAA00000000000055F5
+:10A0700000AAAAAAAAAAAA00AA00000000000055E5
+:10A0800000AAAAAAAAAAAAAA0000000000000055D5
+:10A0900000AAAAAAAAAAAAAAAA000000000000551B
+:10A0A00000AAAAAAAAAAAAAAAA000000000000550B
+:10A0B00000AAAAAAAAAAAAAAAA00000000000055FB
+:10A0C00000AAAAAAAAAAAAAAAA00000000000055EB
+:10A0D00000AAAAAAAAAAAAAAAA00000000000055DB
+:10A0E00000AAAAAAAAAAAAAAAA00000000000055CB
+:10A0F00000AAAAAAAAAAAAAAAA0000000000000010
+:10A1000000AAAAAAAAAAAAAAAAAA02000000000053
+:10A110005500AAAAAAAAAAAAAAAA02000000000098
+:10A1200055AA00AAAAAAAAAAAAAA02000000000088
+:10A1300055AAAA00AAAAAAAAAAAA02000000000078
+:10A1400055AAAAAA00AAAAAAAAAA02000000000068
+:10A1500055AAAAAAAA00AAAAAAAA02000000000058
+:10A1600055AAAAAAAAAA00AAAAAA02000000000048
+:10A1700055AAAAAAAAAAAA00AAAA02000000000038
+:10A1800055AAAAAAAAAAAAAA00AA02000000000028
+:10A1900055AAAAAAAAAAAAAAAA0002000000000018
+:10A1A00055AAAAAAAAAAAAAAAAAA00000000000060
+:10A1B00055AAAAAAAAAAAAAAAAAA0200000000004E
+:10A1C00055AAAAAAAAAAAAAAAAAA0200000000003E
+:10A1D00055AAAAAAAAAAAAAAAAAA0200000000002E
+:10A1E00055AAAAAAAAAAAAAAAAAA0200000000001E
+:10A1F00055AAAAAAAAAAAAAAAAAA0200000000000E
+:10A2000000AAAAAAAAAAAAAAAAAA00000200000052
+:10A210005500AAAAAAAAAAAAAAAA00000200000097
+:10A2200055AA00AAAAAAAAAAAAAA00000200000087
+:10A2300055AAAA00AAAAAAAAAAAA00000200000077
+:10A2400055AAAAAA00AAAAAAAAAA00000200000067
+:10A2500055AAAAAAAA00AAAAAAAA00000200000057
+:10A2600055AAAAAAAAAA00AAAAAA00000200000047
+:10A2700055AAAAAAAAAAAA00AAAA00000200000037
+:10A2800055AAAAAAAAAAAAAA00AA00000200000027
+:10A2900055AAAAAAAAAAAAAAAA0000000200000017
+:10A2A00055AAAAAAAAAAAAAAAAAA0000020000005D
+:10A2B00055AAAAAAAAAAAAAAAAAA0000020000004D
+:10A2C00055AAAAAAAAAAAAAAAAAA0000000000003F
+:10A2D00055AAAAAAAAAAAAAAAAAA0000020000002D
+:10A2E00055AAAAAAAAAAAAAAAAAA0000020000001D
+:10A2F00055AAAAAAAAAAAAAAAAAA0000020000000D
+:10A3000000AAAAAAAAAAAAAAAAAAAA020000005552
+:10A310000000AAAAAAAAAAAAAAAAAA0200000055EC
+:10A3200000AA00AAAAAAAAAAAAAAAA0200000055DC
+:10A3300000AAAA00AAAAAAAAAAAAAA0200000055CC
+:10A3400000AAAAAA00AAAAAAAAAAAA0200000055BC
+:10A3500000AAAAAAAA00AAAAAAAAAA0200000055AC
+:10A3600000AAAAAAAAAA00AAAAAAAA02000000559C
+:10A3700000AAAAAAAAAAAA00AAAAAA02000000558C
+:10A3800000AAAAAAAAAAAAAA00AAAA02000000557C
+:10A3900000AAAAAAAAAAAAAAAA00AA02000000556C
+:10A3A00000AAAAAAAAAAAAAAAAAA0002000000555C
+:10A3B00000AAAAAAAAAAAAAAAAAAAA0000000055A4
+:10A3C00000AAAAAAAAAAAAAAAAAAAA020000005592
+:10A3D00000AAAAAAAAAAAAAAAAAAAA020000005582
+:10A3E00000AAAAAAAAAAAAAAAAAAAA020000005572
+:10A3F00000AAAAAAAAAAAAAAAAAAAA0200000000B7
+:10A4000000AAAAAAAAAAAAAAAAAAAA2A0000005529
+:10A410000000AAAAAAAAAAAAAAAAAA2A00000055C3
+:10A4200000AA00AAAAAAAAAAAAAAAA2A00000055B3
+:10A4300000AAAA00AAAAAAAAAAAAAA2A00000055A3
+:10A4400000AAAAAA00AAAAAAAAAAAA2A0000005593
+:10A4500000AAAAAAAA00AAAAAAAAAA2A0000005583
+:10A4600000AAAAAAAAAA00AAAAAAAA2A0000005573
+:10A4700000AAAAAAAAAAAA00AAAAAA2A0000005563
+:10A4800000AAAAAAAAAAAAAA00AAAA2A0000005553
+:10A4900000AAAAAAAAAAAAAAAA00AA2A0000005543
+:10A4A00000AAAAAAAAAAAAAAAAAA002A0000005533
+:10A4B00000AAAAAAAAAAAAAAAAAAAA0000000055A3
+:10A4C00000AAAAAAAAAAAAAAAAAAAA2A0000005569
+:10A4D00000AAAAAAAAAAAAAAAAAAAA2A0000005559
+:10A4E00000AAAAAAAAAAAAAAAAAAAA2A0000005549
+:10A4F00000AAAAAAAAAAAAAAAAAAAAAA000000000E
+:10A5000000AAAAAAAAAAAAAAAAAAAA2A2A02000051
+:10A510005500AAAAAAAAAAAAAAAAAA2A2A02000096
+:10A5200055AA00AAAAAAAAAAAAAAAA2A2A02000086
+:10A5300055AAAA00AAAAAAAAAAAAAA2A2A02000076
+:10A5400055AAAAAA00AAAAAAAAAAAA2A2A02000066
+:10A5500055AAAAAAAA00AAAAAAAAAA2A2A02000056
+:10A5600055AAAAAAAAAA00AAAAAAAA2A2A02000046
+:10A5700055AAAAAAAAAAAA00AAAAAA2A2A02000036
+:10A5800055AAAAAAAAAAAAAA00AAAA2A2A02000026
+:10A5900055AAAAAAAAAAAAAAAA00AA2A2A02000016
+:10A5A00055AAAAAAAAAAAAAAAAAA002A2A02000006
+:10A5B00055AAAAAAAAAAAAAAAAAAAA002A02000076
+:10A5C00055AAAAAAAAAAAAAAAAAAAA2A0002000066
+:10A5D00055AAAAAAAAAAAAAAAAAAAA2A2A0000002E
+:10A5E00055AAAAAAAAAAAAAAAAAAAA2A2A0200001C
+:10A5F00055AAAAAAAAAAAAAAAAAAAAAAAA0200000C
+:10A6000000A9A9A9A9A9A9A9A9A9A9A929010100DC
+:10A610005500A9A9A9A9A9A9A9A9A9A92901010020
+:10A6200055A900A9A9A9A9A9A9A9A9A92901010010
+:10A6300055A9A900A9A9A9A9A9A9A9A92901010000
+:10A6400055A9A9A900A9A9A9A9A9A9A929010100F0
+:10A6500055A9A9A9A900A9A9A9A9A9A929010100E0
+:10A6600055A9A9A9A9A900A9A9A9A9A929010100D0
+:10A6700055A9A9A9A9A9A900A9A9A9A929010100C0
+:10A6800055A9A9A9A9A9A9A900A9A9A929010100B0
+:10A6900055A9A9A9A9A9A9A9A900A9A929010100A0
+:10A6A00055A9A9A9A9A9A9A9A9A900A92901010090
+:10A6B00055A9A9A9A9A9A9A9A9A9A9002901010080
+:10A6C00055A9A9A9A9A9A9A9A9A9A9A900010100F0
+:10A6D00055A9A9A9A9A9A9A9A9A9A9A929000100B8
+:10A6E00055A9A9A9A9A9A9A9A9A9A9A929010000A8
+:10A6F00055A9A9A9A9A9A9A9A9A9A9A9A901010017
+:10A7000000A9A9A9A9A9A9A9A9A9A9A9292901555E
+:10A710000000A9A9A9A9A9A9A9A9A9A929290155F7
+:10A7200000A900A9A9A9A9A9A9A9A9A929290155E7
+:10A7300000A9A900A9A9A9A9A9A9A9A929290155D7
+:10A7400000A9A9A900A9A9A9A9A9A9A929290155C7
+:10A7500000A9A9A9A900A9A9A9A9A9A929290155B7
+:10A7600000A9A9A9A9A900A9A9A9A9A929290155A7
+:10A7700000A9A9A9A9A9A900A9A9A9A92929015597
+:10A7800000A9A9A9A9A9A9A900A9A9A92929015587
+:10A7900000A9A9A9A9A9A9A9A900A9A92929015577
+:10A7A00000A9A9A9A9A9A9A9A9A900A92929015567
+:10A7B00000A9A9A9A9A9A9A9A9A9A9002929015557
+:10A7C00000A9A9A9A9A9A9A9A9A9A9A900290155C7
+:10A7D00000A9A9A9A9A9A9A9A9A9A9A929000155B7
+:10A7E00000A9A9A9A9A9A9A9A9A9A9A9292900557F
+:10A7F00000A9A9A9A9A9A9A9A9A9A9A9A9A90100C3
+:10A8000000A9A9A9A9A9A9A9A9A9A9A9A9290155DD
+:10A810000000A9A9A9A9A9A9A9A9A9A9A929015576
+:10A8200000A900A9A9A9A9A9A9A9A9A9A929015566
+:10A8300000A9A900A9A9A9A9A9A9A9A9A929015556
+:10A8400000A9A9A900A9A9A9A9A9A9A9A929015546
+:10A8500000A9A9A9A900A9A9A9A9A9A9A929015536
+:10A8600000A9A9A9A9A900A9A9A9A9A9A929015526
+:10A8700000A9A9A9A9A9A900A9A9A9A9A929015516
+:10A8800000A9A9A9A9A9A9A900A9A9A9A929015506
+:10A8900000A9A9A9A9A9A9A9A900A9A9A9290155F6
+:10A8A00000A9A9A9A9A9A9A9A9A900A9A9290155E6
+:10A8B00000A9A9A9A9A9A9A9A9A9A900A9290155D6
+:10A8C00000A9A9A9A9A9A9A9A9A9A9A900290155C6
+:10A8D00000A9A9A9A9A9A9A9A9A9A9A9A900015536
+:10A8E00000A9A9A9A9A9A9A9A9A9A9A9A9290055FE
+:10A8F00000A9A9A9A9A9A9A9A9A9A9A9A9A90100C2
+:10A9000000959595959595959595959595951501A0
+:10A9100055009595959595959595959595951501D0
+:10A9200055950095959595959595959595951501C0
+:10A9300055959500959595959595959595951501B0
+:10A9400055959595009595959595959595951501A0
+:10A950005595959595009595959595959595150190
+:10A960005595959595950095959595959595150180
+:10A970005595959595959500959595959595150170
+:10A980005595959595959595009595959595150160
+:10A990005595959595959595950095959595150150
+:10A9A0005595959595959595959500959595150140
+:10A9B0005595959595959595959595009595150130
+:10A9C0005595959595959595959595950095150120
+:10A9D0005595959595959595959595959500150110
+:10A9E0005595959595959595959595959595000180
+:10A9F000559595959595959595959595959515005C
+:10AA0000009595959595959595959595959515019F
+:10AA100055009595959595959595959595951501CF
+:10AA200055950095959595959595959595951501BF
+:10AA300055959500959595959595959595951501AF
+:10AA4000559595950095959595959595959515019F
+:10AA5000559595959500959595959595959515018F
+:10AA6000559595959595009595959595959515017F
+:10AA7000559595959595950095959595959515016F
+:10AA8000559595959595959500959595959515015F
+:10AA9000559595959595959595009595959515014F
+:10AAA000559595959595959595950095959515013F
+:10AAB000559595959595959595959500959515012F
+:10AAC000559595959595959595959595009515011F
+:10AAD000559595959595959595959595950015010F
+:10AAE000559595959595959595959595959500017F
+:10AAF000559595959595959595959595959515005B
+:10AB00000055555555555555555555555555555649
+:10AB1000000055555555555555555555555555568E
+:10AB2000005500555555555555555555555555567E
+:10AB3000005555005555555555555555555555566E
+:10AB4000005555550055555555555555555555565E
+:10AB5000005555555500555555555555555555564E
+:10AB6000005555555555005555555555555555563E
+:10AB7000005555555555550055555555555555562E
+:10AB8000005555555555555500555555555555561E
+:10AB9000005555555555555555005555555555560E
+:10ABA00000555555555555555555005555555556FE
+:10ABB00000555555555555555555550055555556EE
+:10ABC00000555555555555555555555500555556DE
+:10ABD00000555555555555555555555555005556CE
+:10ABE00000555555555555555555555555550056BE
+:10ABF00000555555555555555555555555555500AF
+:10AC00000055555555555555555555555555555648
+:10AC1000000055555555555555555555555555568D
+:10AC2000005500555555555555555555555555567D
+:10AC3000005555005555555555555555555555566D
+:10AC4000005555550055555555555555555555565D
+:10AC5000005555555500555555555555555555564D
+:10AC6000005555555555005555555555555555563D
+:10AC7000005555555555550055555555555555562D
+:10AC8000005555555555555500555555555555561D
+:10AC9000005555555555555555005555555555560D
+:10ACA00000555555555555555555005555555556FD
+:10ACB00000555555555555555555550055555556ED
+:10ACC00000555555555555555555555500555556DD
+:10ACD00000555555555555555555555555005556CD
+:10ACE00000555555555555555555555555550056BD
+:10ACF00000555555555555555555555555555500AE
+:10AD00000055555555555555555555555555551687
+:10AD10005500555555555555555555555555551677
+:10AD20005555005555555555555555555555551667
+:10AD30005555550055555555555555555555551657
+:10AD40005555555500555555555555555555551647
+:10AD50005555555555005555555555555555551637
+:10AD60005555555555550055555555555555551627
+:10AD70005555555555555500555555555555551617
+:10AD80005555555555555555005555555555551607
+:10AD900055555555555555555500555555555516F7
+:10ADA00055555555555555555555005555555516E7
+:10ADB00055555555555555555555550055555516D7
+:10ADC00055555555555555555555555500555516C7
+:10ADD00055555555555555555555555555005516B7
+:10ADE00055555555555555555555555555550016A7
+:10ADF0005555555555555555555555555555550058
+:10AE00000055555555555555555555555555551686
+:10AE10005500555555555555555555555555551676
+:10AE20005555005555555555555555555555551666
+:10AE30005555550055555555555555555555551656
+:10AE40005555555500555555555555555555551646
+:10AE50005555555555005555555555555555551636
+:10AE60005555555555550055555555555555551626
+:10AE70005555555555555500555555555555551616
+:10AE80005555555555555555005555555555551606
+:10AE900055555555555555555500555555555516F6
+:10AEA00055555555555555555555005555555516E6
+:10AEB00055555555555555555555550055555516D6
+:10AEC00055555555555555555555555500555516C6
+:10AED00055555555555555555555555555005516B6
+:10AEE00055555555555555555555555555550016A6
+:10AEF0005555555555555555555555555555550057
+:10AF00000055555555555555555555555555556833
+:10AF10000000555555555555555555555555556878
+:10AF20000055005555555555555555555555556868
+:10AF30000055550055555555555555555555556858
+:10AF40000055555500555555555555555555556848
+:10AF50000055555555005555555555555555556838
+:10AF60000055555555550055555555555555556828
+:10AF70000055555555555500555555555555556818
+:10AF80000055555555555555005555555555556808
+:10AF900000555555555555555500555555555568F8
+:10AFA00000555555555555555555005555555568E8
+:10AFB00000555555555555555555550055555568D8
+:10AFC00000555555555555555555555500555568C8
+:10AFD00000555555555555555555555555005568B8
+:10AFE00000555555555555555555555555550068A8
+:10AFF00000555555555555555555555555555500AB
+:10B000000055555555555555555555555555556832
+:10B010000000555555555555555555555555556877
+:10B020000055005555555555555555555555556867
+:10B030000055550055555555555555555555556857
+:10B040000055555500555555555555555555556847
+:10B050000055555555005555555555555555556837
+:10B060000055555555550055555555555555556827
+:10B070000055555555555500555555555555556817
+:10B080000055555555555555005555555555556807
+:10B0900000555555555555555500555555555568F7
+:10B0A00000555555555555555555005555555568E7
+:10B0B00000555555555555555555550055555568D7
+:10B0C00000555555555555555555555500555568C7
+:10B0D00000555555555555555555555555005568B7
+:10B0E00000555555555555555555555555550068A7
+:10B0F00000555555555555555555555555555500AA
+:10B100000055555555555555555555555555556A2F
+:10B110005500555555555555555555555555556A1F
+:10B120005555005555555555555555555555556A0F
+:10B130005555550055555555555555555555556AFF
+:10B140005555555500555555555555555555556AEF
+:10B150005555555555005555555555555555556ADF
+:10B160005555555555550055555555555555556ACF
+:10B170005555555555555500555555555555556ABF
+:10B180005555555555555555005555555555556AAF
+:10B190005555555555555555550055555555556A9F
+:10B1A0005555555555555555555500555555556A8F
+:10B1B0005555555555555555555555005555556A7F
+:10B1C0005555555555555555555555550055556A6F
+:10B1D0005555555555555555555555555500556A5F
+:10B1E0005555555555555555555555555555006A4F
+:10B1F0005555555555555555555555555555550054
+:10B200000055555555555555555555555555556A2E
+:10B210005500555555555555555555555555556A1E
+:10B220005555005555555555555555555555556A0E
+:10B230005555550055555555555555555555556AFE
+:10B240005555555500555555555555555555556AEE
+:10B250005555555555005555555555555555556ADE
+:10B260005555555555550055555555555555556ACE
+:10B270005555555555555500555555555555556ABE
+:10B280005555555555555555005555555555556AAE
+:10B290005555555555555555550055555555556A9E
+:10B2A0005555555555555555555500555555556A8E
+:10B2B0005555555555555555555555005555556A7E
+:10B2C0005555555555555555555555550055556A6E
+:10B2D0005555555555555555555555555500556A5E
+:10B2E0005555555555555555555555555555006A4E
+:10B2F0005555555555555555555555555555550053
+:10B300000055555555555555555555555555558017
+:10B31000000055555555555555555555555555805C
+:10B32000005500555555555555555555555555804C
+:10B33000005555005555555555555555555555803C
+:10B34000005555550055555555555555555555802C
+:10B35000005555555500555555555555555555801C
+:10B36000005555555555005555555555555555800C
+:10B3700000555555555555005555555555555580FC
+:10B3800000555555555555550055555555555580EC
+:10B3900000555555555555555500555555555580DC
+:10B3A00000555555555555555555005555555580CC
+:10B3B00000555555555555555555550055555580BC
+:10B3C00000555555555555555555555500555580AC
+:10B3D000005555555555555555555555550055809C
+:10B3E000005555555555555555555555555500808C
+:10B3F00000555555555555555555555555555500A7
+:10B400000055555555555555555555555555558016
+:10B41000000055555555555555555555555555805B
+:10B42000005500555555555555555555555555804B
+:10B43000005555005555555555555555555555803B
+:10B44000005555550055555555555555555555802B
+:10B45000005555555500555555555555555555801B
+:10B46000005555555555005555555555555555800B
+:10B4700000555555555555005555555555555580FB
+:10B4800000555555555555550055555555555580EB
+:10B4900000555555555555555500555555555580DB
+:10B4A00000555555555555555555005555555580CB
+:10B4B00000555555555555555555550055555580BB
+:10B4C00000555555555555555555555500555580AB
+:10B4D000005555555555555555555555550055809B
+:10B4E000005555555555555555555555555500808B
+:10B4F00000555555555555555555555555555500A6
+:10B50000005555555555555555555555555555AAEB
+:10B51000550055555555555555555555555555AADB
+:10B52000555500555555555555555555555555AACB
+:10B53000555555005555555555555555555555AABB
+:10B54000555555550055555555555555555555AAAB
+:10B55000555555555500555555555555555555AA9B
+:10B56000555555555555005555555555555555AA8B
+:10B57000555555555555550055555555555555AA7B
+:10B58000555555555555555500555555555555AA6B
+:10B59000555555555555555555005555555555AA5B
+:10B5A000555555555555555555550055555555AA4B
+:10B5B000555555555555555555555500555555AA3B
+:10B5C000555555555555555555555555005555AA2B
+:10B5D000555555555555555555555555550055AA1B
+:10B5E000555555555555555555555555555500AA0B
+:10B5F0005555555555555555555555555555550050
+:10B60000005555555555555555555555555555AAEA
+:10B61000550055555555555555555555555555AADA
+:10B62000555500555555555555555555555555AACA
+:10B63000555555005555555555555555555555AABA
+:10B64000555555550055555555555555555555AAAA
+:10B65000555555555500555555555555555555AA9A
+:10B66000555555555555005555555555555555AA8A
+:10B67000555555555555550055555555555555AA7A
+:10B68000555555555555555500555555555555AA6A
+:10B69000555555555555555555005555555555AA5A
+:10B6A000555555555555555555550055555555AA4A
+:10B6B000555555555555555555555500555555AA3A
+:10B6C000555555555555555555555555005555AA2A
+:10B6D000555555555555555555555555550055AA1A
+:10B6E000555555555555555555555555555500AA0A
+:10B6F000555555555555555555555555555555004F
+:10B700000056565656565656565656565656560085
+:10B7100000005656565656565656565656565600CB
+:10B7200000560056565656565656565656565600BB
+:10B7300000565600565656565656565656565600AB
+:10B74000005656560056565656565656565656009B
+:10B75000005656565600565656565656565656008B
+:10B76000005656565656005656565656565656007B
+:10B77000005656565656560056565656565656006B
+:10B78000005656565656565600565656565656005B
+:10B79000005656565656565656005656565656004B
+:10B7A000005656565656565656560056565656003B
+:10B7B000005656565656565656565600565656002B
+:10B7C000005656565656565656565656005656001B
+:10B7D000005656565656565656565656560056000B
+:10B7E00000565656565656565656565656560000FB
+:10B7F0000056565656565656565656565656560095
+:10B800000056565656565656565656565656560084
+:10B8100000005656565656565656565656565600CA
+:10B8200000560056565656565656565656565600BA
+:10B8300000565600565656565656565656565600AA
+:10B84000005656560056565656565656565656009A
+:10B85000005656565600565656565656565656008A
+:10B86000005656565656005656565656565656007A
+:10B87000005656565656560056565656565656006A
+:10B88000005656565656565600565656565656005A
+:10B89000005656565656565656005656565656004A
+:10B8A000005656565656565656560056565656003A
+:10B8B000005656565656565656565600565656002A
+:10B8C000005656565656565656565656005656001A
+:10B8D000005656565656565656565656560056000A
+:10B8E00000565656565656565656565656560000FA
+:10B8F0000056565656565656565656565656560094
+:10B90000005656565656565656565656565656AAD9
+:10B91000550056565656565656565656565656AACA
+:10B92000555600565656565656565656565656AABA
+:10B93000555656005656565656565656565656AAAA
+:10B94000555656560056565656565656565656AA9A
+:10B95000555656565600565656565656565656AA8A
+:10B96000555656565656005656565656565656AA7A
+:10B97000555656565656560056565656565656AA6A
+:10B98000555656565656565600565656565656AA5A
+:10B99000555656565656565656005656565656AA4A
+:10B9A000555656565656565656560056565656AA3A
+:10B9B000555656565656565656565600565656AA2A
+:10B9C000555656565656565656565656005656AA1A
+:10B9D000555656565656565656565656560056AA0A
+:10B9E000555656565656565656565656565600AAFA
+:10B9F000555656565656565656565656565656003E
+:10BA0000005656565656565656565656565656AAD8
+:10BA1000550056565656565656565656565656AAC9
+:10BA2000555600565656565656565656565656AAB9
+:10BA3000555656005656565656565656565656AAA9
+:10BA4000555656560056565656565656565656AA99
+:10BA5000555656565600565656565656565656AA89
+:10BA6000555656565656005656565656565656AA79
+:10BA7000555656565656560056565656565656AA69
+:10BA8000555656565656565600565656565656AA59
+:10BA9000555656565656565656005656565656AA49
+:10BAA000555656565656565656560056565656AA39
+:10BAB000555656565656565656565600565656AA29
+:10BAC000555656565656565656565656005656AA19
+:10BAD000555656565656565656565656560056AA09
+:10BAE000555656565656565656565656565600AAF9
+:10BAF000555656565656565656565656565656003D
+:10BB0000005A5A5A5A5A5A5A5A5A5A5A5A5A5A0049
+:10BB100000005A5A5A5A5A5A5A5A5A5A5A5A5A0093
+:10BB2000005A005A5A5A5A5A5A5A5A5A5A5A5A0083
+:10BB3000005A5A005A5A5A5A5A5A5A5A5A5A5A0073
+:10BB4000005A5A5A005A5A5A5A5A5A5A5A5A5A0063
+:10BB5000005A5A5A5A005A5A5A5A5A5A5A5A5A0053
+:10BB6000005A5A5A5A5A005A5A5A5A5A5A5A5A0043
+:10BB7000005A5A5A5A5A5A005A5A5A5A5A5A5A0033
+:10BB8000005A5A5A5A5A5A5A005A5A5A5A5A5A0023
+:10BB9000005A5A5A5A5A5A5A5A005A5A5A5A5A0013
+:10BBA000005A5A5A5A5A5A5A5A5A005A5A5A5A0003
+:10BBB000005A5A5A5A5A5A5A5A5A5A005A5A5A00F3
+:10BBC000005A5A5A5A5A5A5A5A5A5A5A005A5A00E3
+:10BBD000005A5A5A5A5A5A5A5A5A5A5A5A005A00D3
+:10BBE000005A5A5A5A5A5A5A5A5A5A5A5A5A0000C3
+:10BBF000005A5A5A5A5A5A5A5A5A5A5A5A5A5A0059
+:10BC0000005A5A5A5A5A5A5A5A5A5A5A5A5A5A0048
+:10BC100000005A5A5A5A5A5A5A5A5A5A5A5A5A0092
+:10BC2000005A005A5A5A5A5A5A5A5A5A5A5A5A0082
+:10BC3000005A5A005A5A5A5A5A5A5A5A5A5A5A0072
+:10BC4000005A5A5A005A5A5A5A5A5A5A5A5A5A0062
+:10BC5000005A5A5A5A005A5A5A5A5A5A5A5A5A0052
+:10BC6000005A5A5A5A5A005A5A5A5A5A5A5A5A0042
+:10BC7000005A5A5A5A5A5A005A5A5A5A5A5A5A0032
+:10BC8000005A5A5A5A5A5A5A005A5A5A5A5A5A0022
+:10BC9000005A5A5A5A5A5A5A5A005A5A5A5A5A0012
+:10BCA000005A5A5A5A5A5A5A5A5A005A5A5A5A0002
+:10BCB000005A5A5A5A5A5A5A5A5A5A005A5A5A00F2
+:10BCC000005A5A5A5A5A5A5A5A5A5A5A005A5A00E2
+:10BCD000005A5A5A5A5A5A5A5A5A5A5A5A005A00D2
+:10BCE000005A5A5A5A5A5A5A5A5A5A5A5A5A0000C2
+:10BCF000005A5A5A5A5A5A5A5A5A5A5A5A5A5A0058
+:10BD0000005A5A5A5A5A5A5A5A5A5A5A5A5A5AAA9D
+:10BD100055005A5A5A5A5A5A5A5A5A5A5A5A5AAA92
+:10BD2000555A005A5A5A5A5A5A5A5A5A5A5A5AAA82
+:10BD3000555A5A005A5A5A5A5A5A5A5A5A5A5AAA72
+:10BD4000555A5A5A005A5A5A5A5A5A5A5A5A5AAA62
+:10BD5000555A5A5A5A005A5A5A5A5A5A5A5A5AAA52
+:10BD6000555A5A5A5A5A005A5A5A5A5A5A5A5AAA42
+:10BD7000555A5A5A5A5A5A005A5A5A5A5A5A5AAA32
+:10BD8000555A5A5A5A5A5A5A005A5A5A5A5A5AAA22
+:10BD9000555A5A5A5A5A5A5A5A005A5A5A5A5AAA12
+:10BDA000555A5A5A5A5A5A5A5A5A005A5A5A5AAA02
+:10BDB000555A5A5A5A5A5A5A5A5A5A005A5A5AAAF2
+:10BDC000555A5A5A5A5A5A5A5A5A5A5A005A5AAAE2
+:10BDD000555A5A5A5A5A5A5A5A5A5A5A5A005AAAD2
+:10BDE000555A5A5A5A5A5A5A5A5A5A5A5A5A00AAC2
+:10BDF000555A5A5A5A5A5A5A5A5A5A5A5A5A5A0002
+:10BE0000005A5A5A5A5A5A5A5A5A5A5A5A5A5AAA9C
+:10BE100055005A5A5A5A5A5A5A5A5A5A5A5A5AAA91
+:10BE2000555A005A5A5A5A5A5A5A5A5A5A5A5AAA81
+:10BE3000555A5A005A5A5A5A5A5A5A5A5A5A5AAA71
+:10BE4000555A5A5A005A5A5A5A5A5A5A5A5A5AAA61
+:10BE5000555A5A5A5A005A5A5A5A5A5A5A5A5AAA51
+:10BE6000555A5A5A5A5A005A5A5A5A5A5A5A5AAA41
+:10BE7000555A5A5A5A5A5A005A5A5A5A5A5A5AAA31
+:10BE8000555A5A5A5A5A5A5A005A5A5A5A5A5AAA21
+:10BE9000555A5A5A5A5A5A5A5A005A5A5A5A5AAA11
+:10BEA000555A5A5A5A5A5A5A5A5A005A5A5A5AAA01
+:10BEB000555A5A5A5A5A5A5A5A5A5A005A5A5AAAF1
+:10BEC000555A5A5A5A5A5A5A5A5A5A5A005A5AAAE1
+:10BED000555A5A5A5A5A5A5A5A5A5A5A5A005AAAD1
+:10BEE000555A5A5A5A5A5A5A5A5A5A5A5A5A00AAC1
+:10BEF000555A5A5A5A5A5A5A5A5A5A5A5A5A5A0001
+:10BF0000006A6A6A6A6A6A6A6A6A6A6A6A6A6A0065
+:10BF100000006A6A6A6A6A6A6A6A6A6A6A6A6A00BF
+:10BF2000006A006A6A6A6A6A6A6A6A6A6A6A6A00AF
+:10BF3000006A6A006A6A6A6A6A6A6A6A6A6A6A009F
+:10BF4000006A6A6A006A6A6A6A6A6A6A6A6A6A008F
+:10BF5000006A6A6A6A006A6A6A6A6A6A6A6A6A007F
+:10BF6000006A6A6A6A6A006A6A6A6A6A6A6A6A006F
+:10BF7000006A6A6A6A6A6A006A6A6A6A6A6A6A005F
+:10BF8000006A6A6A6A6A6A6A006A6A6A6A6A6A004F
+:10BF9000006A6A6A6A6A6A6A6A006A6A6A6A6A003F
+:10BFA000006A6A6A6A6A6A6A6A6A006A6A6A6A002F
+:10BFB000006A6A6A6A6A6A6A6A6A6A006A6A6A001F
+:10BFC000006A6A6A6A6A6A6A6A6A6A6A006A6A000F
+:10BFD000006A6A6A6A6A6A6A6A6A6A6A6A006A00FF
+:10BFE000006A6A6A6A6A6A6A6A6A6A6A6A6A0000EF
+:10BFF000006A6A6A6A6A6A6A6A6A6A6A6A6A6A0075
+:10C00000006A6A6A6A6A6A6A6A6A6A6A6A6A6A0064
+:10C0100000006A6A6A6A6A6A6A6A6A6A6A6A6A00BE
+:10C02000006A006A6A6A6A6A6A6A6A6A6A6A6A00AE
+:10C03000006A6A006A6A6A6A6A6A6A6A6A6A6A009E
+:10C04000006A6A6A006A6A6A6A6A6A6A6A6A6A008E
+:10C05000006A6A6A6A006A6A6A6A6A6A6A6A6A007E
+:10C06000006A6A6A6A6A006A6A6A6A6A6A6A6A006E
+:10C07000006A6A6A6A6A6A006A6A6A6A6A6A6A005E
+:10C08000006A6A6A6A6A6A6A006A6A6A6A6A6A004E
+:10C09000006A6A6A6A6A6A6A6A006A6A6A6A6A003E
+:10C0A000006A6A6A6A6A6A6A6A6A006A6A6A6A002E
+:10C0B000006A6A6A6A6A6A6A6A6A6A006A6A6A001E
+:10C0C000006A6A6A6A6A6A6A6A6A6A6A006A6A000E
+:10C0D000006A6A6A6A6A6A6A6A6A6A6A6A006A00FE
+:10C0E000006A6A6A6A6A6A6A6A6A6A6A6A6A0000EE
+:10C0F000006A6A6A6A6A6A6A6A6A6A6A6A6A6A0074
+:10C10000006A6A6A6A6A6A6A6A6A6A6A6A6A6AAAB9
+:10C1100055006A6A6A6A6A6A6A6A6A6A6A6A6AAABE
+:10C12000556A006A6A6A6A6A6A6A6A6A6A6A6AAAAE
+:10C13000556A6A006A6A6A6A6A6A6A6A6A6A6AAA9E
+:10C14000556A6A6A006A6A6A6A6A6A6A6A6A6AAA8E
+:10C15000556A6A6A6A006A6A6A6A6A6A6A6A6AAA7E
+:10C16000556A6A6A6A6A006A6A6A6A6A6A6A6AAA6E
+:10C17000556A6A6A6A6A6A006A6A6A6A6A6A6AAA5E
+:10C18000556A6A6A6A6A6A6A006A6A6A6A6A6AAA4E
+:10C19000556A6A6A6A6A6A6A6A006A6A6A6A6AAA3E
+:10C1A000556A6A6A6A6A6A6A6A6A006A6A6A6AAA2E
+:10C1B000556A6A6A6A6A6A6A6A6A6A006A6A6AAA1E
+:10C1C000556A6A6A6A6A6A6A6A6A6A6A006A6AAA0E
+:10C1D000556A6A6A6A6A6A6A6A6A6A6A6A006AAAFE
+:10C1E000556A6A6A6A6A6A6A6A6A6A6A6A6A00AAEE
+:10C1F000556A6A6A6A6A6A6A6A6A6A6A6A6A6A001E
+:10C20000006A6A6A6A6A6A6A6A6A6A6A6A6A6AAAB8
+:10C2100055006A6A6A6A6A6A6A6A6A6A6A6A6AAABD
+:10C22000556A006A6A6A6A6A6A6A6A6A6A6A6AAAAD
+:10C23000556A6A006A6A6A6A6A6A6A6A6A6A6AAA9D
+:10C24000556A6A6A006A6A6A6A6A6A6A6A6A6AAA8D
+:10C25000556A6A6A6A006A6A6A6A6A6A6A6A6AAA7D
+:10C26000556A6A6A6A6A006A6A6A6A6A6A6A6AAA6D
+:10C27000556A6A6A6A6A6A006A6A6A6A6A6A6AAA5D
+:10C28000556A6A6A6A6A6A6A006A6A6A6A6A6AAA4D
+:10C29000556A6A6A6A6A6A6A6A006A6A6A6A6AAA3D
+:10C2A000556A6A6A6A6A6A6A6A6A006A6A6A6AAA2D
+:10C2B000556A6A6A6A6A6A6A6A6A6A006A6A6AAA1D
+:10C2C000556A6A6A6A6A6A6A6A6A6A6A006A6AAA0D
+:10C2D000556A6A6A6A6A6A6A6A6A6A6A6A006AAAFD
+:10C2E000556A6A6A6A6A6A6A6A6A6A6A6A6A00AAED
+:10C2F000556A6A6A6A6A6A6A6A6A6A6A6A6A6A001D
+:10C30000006A6A6A6A6A6A6A6A6A6A6A6A6A6A0061
+:10C3100000006A6A6A6A6A6A6A6A6A6A6A6A6A00BB
+:10C32000006A006A6A6A6A6A6A6A6A6A6A6A6A00AB
+:10C33000006A6A006A6A6A6A6A6A6A6A6A6A6A009B
+:10C34000006A6A6A006A6A6A6A6A6A6A6A6A6A008B
+:10C35000006A6A6A6A006A6A6A6A6A6A6A6A6A007B
+:10C36000006A6A6A6A6A006A6A6A6A6A6A6A6A006B
+:10C37000006A6A6A6A6A6A006A6A6A6A6A6A6A005B
+:10C38000006A6A6A6A6A6A6A006A6A6A6A6A6A004B
+:10C39000006A6A6A6A6A6A6A6A006A6A6A6A6A003B
+:10C3A000006A6A6A6A6A6A6A6A6A006A6A6A6A002B
+:10C3B000006A6A6A6A6A6A6A6A6A6A006A6A6A001B
+:10C3C000006A6A6A6A6A6A6A6A6A6A6A006A6A000B
+:10C3D000006A6A6A6A6A6A6A6A6A6A6A6A006A00FB
+:10C3E000006A6A6A6A6A6A6A6A6A6A6A6A6A0000EB
+:10C3F000006A6A6A6A6A6A6A6A6A6A6A6A6A6A0071
+:10C40000006A6A6A6A6A6A6A6A6A6A6A6A6A6A0060
+:10C4100000006A6A6A6A6A6A6A6A6A6A6A6A6A00BA
+:10C42000006A006A6A6A6A6A6A6A6A6A6A6A6A00AA
+:10C43000006A6A006A6A6A6A6A6A6A6A6A6A6A009A
+:10C44000006A6A6A006A6A6A6A6A6A6A6A6A6A008A
+:10C45000006A6A6A6A006A6A6A6A6A6A6A6A6A007A
+:10C46000006A6A6A6A6A006A6A6A6A6A6A6A6A006A
+:10C47000006A6A6A6A6A6A006A6A6A6A6A6A6A005A
+:10C48000006A6A6A6A6A6A6A006A6A6A6A6A6A004A
+:10C49000006A6A6A6A6A6A6A6A006A6A6A6A6A003A
+:10C4A000006A6A6A6A6A6A6A6A6A006A6A6A6A002A
+:10C4B000006A6A6A6A6A6A6A6A6A6A006A6A6A001A
+:10C4C000006A6A6A6A6A6A6A6A6A6A6A006A6A000A
+:10C4D000006A6A6A6A6A6A6A6A6A6A6A6A006A00FA
+:10C4E000006A6A6A6A6A6A6A6A6A6A6A6A6A0000EA
+:10C4F000006A6A6A6A6A6A6A6A6A6A6A6A6A6A0070
+:10C5000000AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA35
+:10C510005500AAAAAAAAAAAAAAAAAAAAAAAAAAAA7A
+:10C5200055AA00AAAAAAAAAAAAAAAAAAAAAAAAAA6A
+:10C5300055AAAA00AAAAAAAAAAAAAAAAAAAAAAAA5A
+:10C5400055AAAAAA00AAAAAAAAAAAAAAAAAAAAAA4A
+:10C5500055AAAAAAAA00AAAAAAAAAAAAAAAAAAAA3A
+:10C5600055AAAAAAAAAA00AAAAAAAAAAAAAAAAAA2A
+:10C5700055AAAAAAAAAAAA00AAAAAAAAAAAAAAAA1A
+:10C5800055AAAAAAAAAAAAAA00AAAAAAAAAAAAAA0A
+:10C5900055AAAAAAAAAAAAAAAA00AAAAAAAAAAAAFA
+:10C5A00055AAAAAAAAAAAAAAAAAA00AAAAAAAAAAEA
+:10C5B00055AAAAAAAAAAAAAAAAAAAA00AAAAAAAADA
+:10C5C00055AAAAAAAAAAAAAAAAAAAAAA00AAAAAACA
+:10C5D00055AAAAAAAAAAAAAAAAAAAAAAAA00AAAABA
+:10C5E00055AAAAAAAAAAAAAAAAAAAAAAAAAA00AAAA
+:10C5F00055AAAAAAAAAAAAAAAAAAAAAAAAAAAA009A
+:10C6000000AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA34
+:10C610005500AAAAAAAAAAAAAAAAAAAAAAAAAAAA79
+:10C6200055AA00AAAAAAAAAAAAAAAAAAAAAAAAAA69
+:10C6300055AAAA00AAAAAAAAAAAAAAAAAAAAAAAA59
+:10C6400055AAAAAA00AAAAAAAAAAAAAAAAAAAAAA49
+:10C6500055AAAAAAAA00AAAAAAAAAAAAAAAAAAAA39
+:10C6600055AAAAAAAAAA00AAAAAAAAAAAAAAAAAA29
+:10C6700055AAAAAAAAAAAA00AAAAAAAAAAAAAAAA19
+:10C6800055AAAAAAAAAAAAAA00AAAAAAAAAAAAAA09
+:10C6900055AAAAAAAAAAAAAAAA00AAAAAAAAAAAAF9
+:10C6A00055AAAAAAAAAAAAAAAAAA00AAAAAAAAAAE9
+:10C6B00055AAAAAAAAAAAAAAAAAAAA00AAAAAAAAD9
+:10C6C00055AAAAAAAAAAAAAAAAAAAAAA00AAAAAAC9
+:10C6D00055AAAAAAAAAAAAAAAAAAAAAAAA00AAAAB9
+:10C6E00055AAAAAAAAAAAAAAAAAAAAAAAAAA00AAA9
+:10C6F00055AAAAAAAAAAAAAAAAAAAAAAAAAAAA0099
+:10C7000000AAAAAAAAAAAAAAAAAAAAAAAAAAAA00DD
+:10C710000000AAAAAAAAAAAAAAAAAAAAAAAAAA0077
+:10C7200000AA00AAAAAAAAAAAAAAAAAAAAAAAA0067
+:10C7300000AAAA00AAAAAAAAAAAAAAAAAAAAAA0057
+:10C7400000AAAAAA00AAAAAAAAAAAAAAAAAAAA0047
+:10C7500000AAAAAAAA00AAAAAAAAAAAAAAAAAA0037
+:10C7600000AAAAAAAAAA00AAAAAAAAAAAAAAAA0027
+:10C7700000AAAAAAAAAAAA00AAAAAAAAAAAAAA0017
+:10C7800000AAAAAAAAAAAAAA00AAAAAAAAAAAA0007
+:10C7900000AAAAAAAAAAAAAAAA00AAAAAAAAAA00F7
+:10C7A00000AAAAAAAAAAAAAAAAAA00AAAAAAAA00E7
+:10C7B00000AAAAAAAAAAAAAAAAAAAA00AAAAAA00D7
+:10C7C00000AAAAAAAAAAAAAAAAAAAAAA00AAAA00C7
+:10C7D00000AAAAAAAAAAAAAAAAAAAAAAAA00AA00B7
+:10C7E00000AAAAAAAAAAAAAAAAAAAAAAAAAA0000A7
+:10C7F00000AAAAAAAAAAAAAAAAAAAAAAAAAAAA00ED
+:10C8000000A9A9A9A9A9A9A9A9A9A9A9A9A9A800EB
+:10C810000000A9A9A9A9A9A9A9A9A9A9A9A9A80084
+:10C8200000A900A9A9A9A9A9A9A9A9A9A9A9A80074
+:10C8300000A9A900A9A9A9A9A9A9A9A9A9A9A80064
+:10C8400000A9A9A900A9A9A9A9A9A9A9A9A9A80054
+:10C8500000A9A9A9A900A9A9A9A9A9A9A9A9A80044
+:10C8600000A9A9A9A9A900A9A9A9A9A9A9A9A80034
+:10C8700000A9A9A9A9A9A900A9A9A9A9A9A9A80024
+:10C8800000A9A9A9A9A9A9A900A9A9A9A9A9A80014
+:10C8900000A9A9A9A9A9A9A9A900A9A9A9A9A80004
+:10C8A00000A9A9A9A9A9A9A9A9A900A9A9A9A800F4
+:10C8B00000A9A9A9A9A9A9A9A9A9A900A9A9A800E4
+:10C8C00000A9A9A9A9A9A9A9A9A9A9A900A9A800D4
+:10C8D00000A9A9A9A9A9A9A9A9A9A9A9A900A800C4
+:10C8E00000A9A9A9A9A9A9A9A9A9A9A9A9A90000B3
+:10C8F00000A9A9A9A9A9A9A9A9A9A9A9A9A9A800FB
+:10C9000000A9A9A9A9A9A9A9A9A9A9A9A8A8A8AA42
+:10C910005500A9A9A9A9A9A9A9A9A9A9A8A8A8AA86
+:10C9200055A900A9A9A9A9A9A9A9A9A9A8A8A8AA76
+:10C9300055A9A900A9A9A9A9A9A9A9A9A8A8A8AA66
+:10C9400055A9A9A900A9A9A9A9A9A9A9A8A8A8AA56
+:10C9500055A9A9A9A900A9A9A9A9A9A9A8A8A8AA46
+:10C9600055A9A9A9A9A900A9A9A9A9A9A8A8A8AA36
+:10C9700055A9A9A9A9A9A900A9A9A9A9A8A8A8AA26
+:10C9800055A9A9A9A9A9A9A900A9A9A9A8A8A8AA16
+:10C9900055A9A9A9A9A9A9A9A900A9A9A8A8A8AA06
+:10C9A00055A9A9A9A9A9A9A9A9A900A9A8A8A8AAF6
+:10C9B00055A9A9A9A9A9A9A9A9A9A900A8A8A8AAE6
+:10C9C00055A9A9A9A9A9A9A9A9A9A9A900A8A8AAD5
+:10C9D00055A9A9A9A9A9A9A9A9A9A9A9A800A8AAC5
+:10C9E00055A9A9A9A9A9A9A9A9A9A9A9A8A800AAB5
+:10C9F00055A9A9A9A9A9A9A9A9A9A9A9A8A8A800A7
+:10CA000000A9A9A9A9A9A9A9A9A9A9A9A8A8A8AA41
+:10CA10005500A9A9A9A9A9A9A9A9A9A9A8A8A8AA85
+:10CA200055A900A9A9A9A9A9A9A9A9A9A8A8A8AA75
+:10CA300055A9A900A9A9A9A9A9A9A9A9A8A8A8AA65
+:10CA400055A9A9A900A9A9A9A9A9A9A9A8A8A8AA55
+:10CA500055A9A9A9A900A9A9A9A9A9A9A8A8A8AA45
+:10CA600055A9A9A9A9A900A9A9A9A9A9A8A8A8AA35
+:10CA700055A9A9A9A9A9A900A9A9A9A9A8A8A8AA25
+:10CA800055A9A9A9A9A9A9A900A9A9A9A8A8A8AA15
+:10CA900055A9A9A9A9A9A9A9A900A9A9A8A8A8AA05
+:10CAA00055A9A9A9A9A9A9A9A9A900A9A8A8A8AAF5
+:10CAB00055A9A9A9A9A9A9A9A9A9A900A8A8A8AAE5
+:10CAC00055A9A9A9A9A9A9A9A9A9A9A900A8A8AAD4
+:10CAD00055A9A9A9A9A9A9A9A9A9A9A9A800A8AAC4
+:10CAE00055A9A9A9A9A9A9A9A9A9A9A9A8A800AAB4
+:10CAF00055A9A9A9A9A9A9A9A9A9A9A9A8A8A800A6
+:10CB000000A9A9A9A9A9A9A9A9A9A8A8A9A8A800EB
+:10CB10000000A9A9A9A9A9A9A9A9A8A8A9A8A80084
+:10CB200000A900A9A9A9A9A9A9A9A8A8A9A8A80074
+:10CB300000A9A900A9A9A9A9A9A9A8A8A9A8A80064
+:10CB400000A9A9A900A9A9A9A9A9A8A8A9A8A80054
+:10CB500000A9A9A9A900A9A9A9A9A8A8A9A8A80044
+:10CB600000A9A9A9A9A900A9A9A9A8A8A9A8A80034
+:10CB700000A9A9A9A9A9A900A9A9A8A8A9A8A80024
+:10CB800000A9A9A9A9A9A9A900A9A8A8A9A8A80014
+:10CB900000A9A9A9A9A9A9A9A900A8A8A9A8A80004
+:10CBA00000A9A9A9A9A9A9A9A9A900A8A9A8A800F3
+:10CBB00000A9A9A9A9A9A9A9A9A9A800A9A8A800E3
+:10CBC00000A9A9A9A9A9A9A9A9A9A8A800A8A800D4
+:10CBD00000A9A9A9A9A9A9A9A9A9A8A8A900A800C3
+:10CBE00000A9A9A9A9A9A9A9A9A9A8A8A9A80000B3
+:10CBF00000A9A9A9A9A9A9A9A9A9A8A8A9A8A800FB
+:10CC000000A9A9A9A9A9A9A9A9A9A9A8A8A8A800EA
+:10CC10000000A9A9A9A9A9A9A9A9A9A8A8A8A80083
+:10CC200000A900A9A9A9A9A9A9A9A9A8A8A8A80073
+:10CC300000A9A900A9A9A9A9A9A9A9A8A8A8A80063
+:10CC400000A9A9A900A9A9A9A9A9A9A8A8A8A80053
+:10CC500000A9A9A9A900A9A9A9A9A9A8A8A8A80043
+:10CC600000A9A9A9A9A900A9A9A9A9A8A8A8A80033
+:10CC700000A9A9A9A9A9A900A9A9A9A8A8A8A80023
+:10CC800000A9A9A9A9A9A9A900A9A9A8A8A8A80013
+:10CC900000A9A9A9A9A9A9A9A900A9A8A8A8A80003
+:10CCA00000A9A9A9A9A9A9A9A9A900A8A8A8A800F3
+:10CCB00000A9A9A9A9A9A9A9A9A9A900A8A8A800E2
+:10CCC00000A9A9A9A9A9A9A9A9A9A9A800A8A800D2
+:10CCD00000A9A9A9A9A9A9A9A9A9A9A8A800A800C2
+:10CCE00000A9A9A9A9A9A9A9A9A9A9A8A8A80000B2
+:10CCF00000A9A9A9A9A9A9A9A9A9A9A8A8A8A800FA
+:10CD000000A5A5A5A5A5A5A5A5A4A4A4A4A4A0AA7D
+:10CD10005500A5A5A5A5A5A5A5A4A4A4A4A4A0AABD
+:10CD200055A500A5A5A5A5A5A5A4A4A4A4A4A0AAAD
+:10CD300055A5A500A5A5A5A5A5A4A4A4A4A4A0AA9D
+:10CD400055A5A5A500A5A5A5A5A4A4A4A4A4A0AA8D
+:10CD500055A5A5A5A500A5A5A5A4A4A4A4A4A0AA7D
+:10CD600055A5A5A5A5A500A5A5A4A4A4A4A4A0AA6D
+:10CD700055A5A5A5A5A5A500A5A4A4A4A4A4A0AA5D
+:10CD800055A5A5A5A5A5A5A500A4A4A4A4A4A0AA4D
+:10CD900055A5A5A5A5A5A5A5A500A4A4A4A4A0AA3C
+:10CDA00055A5A5A5A5A5A5A5A5A400A4A4A4A0AA2C
+:10CDB00055A5A5A5A5A5A5A5A5A4A400A4A4A0AA1C
+:10CDC00055A5A5A5A5A5A5A5A5A4A4A400A4A0AA0C
+:10CDD00055A5A5A5A5A5A5A5A5A4A4A4A400A0AAFC
+:10CDE00055A5A5A5A5A5A5A5A5A4A4A4A4A400AAE8
+:10CDF00055A5A5A5A5A5A5A5A5A4A4A4A4A4A000E2
+:10CE000000A5A5A5A5A5A5A5A4A4A4A4A4A4A0AA7D
+:10CE10005500A5A5A5A5A5A5A4A4A4A4A4A4A0AABD
+:10CE200055A500A5A5A5A5A5A4A4A4A4A4A4A0AAAD
+:10CE300055A5A500A5A5A5A5A4A4A4A4A4A4A0AA9D
+:10CE400055A5A5A500A5A5A5A4A4A4A4A4A4A0AA8D
+:10CE500055A5A5A5A500A5A5A4A4A4A4A4A4A0AA7D
+:10CE600055A5A5A5A5A500A5A4A4A4A4A4A4A0AA6D
+:10CE700055A5A5A5A5A5A500A4A4A4A4A4A4A0AA5D
+:10CE800055A5A5A5A5A5A5A500A4A4A4A4A4A0AA4C
+:10CE900055A5A5A5A5A5A5A5A400A4A4A4A4A0AA3C
+:10CEA00055A5A5A5A5A5A5A5A4A400A4A4A4A0AA2C
+:10CEB00055A5A5A5A5A5A5A5A4A4A400A4A4A0AA1C
+:10CEC00055A5A5A5A5A5A5A5A4A4A4A400A4A0AA0C
+:10CED00055A5A5A5A5A5A5A5A4A4A4A4A400A0AAFC
+:10CEE00055A5A5A5A5A5A5A5A4A4A4A4A4A400AAE8
+:10CEF00055A5A5A5A5A5A5A5A4A4A4A4A4A4A000E2
+:10CF000000A5A5A5A5A5A5A4A4A4A4A4A4A0A0002B
+:10CF10000000A5A5A5A5A5A4A4A4A4A4A4A0A000C0
+:10CF200000A500A5A5A5A5A4A4A4A4A4A4A0A000B0
+:10CF300000A5A500A5A5A5A4A4A4A4A4A4A0A000A0
+:10CF400000A5A5A500A5A5A4A4A4A4A4A4A0A00090
+:10CF500000A5A5A5A500A5A4A4A4A4A4A4A0A00080
+:10CF600000A5A5A5A5A500A4A4A4A4A4A4A0A00070
+:10CF700000A5A5A5A5A5A500A4A4A4A4A4A0A0005F
+:10CF800000A5A5A5A5A5A5A400A4A4A4A4A0A0004F
+:10CF900000A5A5A5A5A5A5A4A400A4A4A4A0A0003F
+:10CFA00000A5A5A5A5A5A5A4A4A400A4A4A0A0002F
+:10CFB00000A5A5A5A5A5A5A4A4A4A400A4A0A0001F
+:10CFC00000A5A5A5A5A5A5A4A4A4A4A400A0A0000F
+:10CFD00000A5A5A5A5A5A5A4A4A4A4A4A400A000FB
+:10CFE00000A5A5A5A5A5A5A4A4A4A4A4A4A00000EB
+:10CFF00000A5A5A5A5A5A5A4A4A4A4A4A4A0A0003B
+:10D0000000A5A5A5A5A5A4A4A4A4A4A4A4A0A0002B
+:10D010000000A5A5A5A5A4A4A4A4A4A4A4A0A000C0
+:10D0200000A500A5A5A5A4A4A4A4A4A4A4A0A000B0
+:10D0300000A5A500A5A5A4A4A4A4A4A4A4A0A000A0
+:10D0400000A5A5A500A5A4A4A4A4A4A4A4A0A00090
+:10D0500000A5A5A5A500A4A4A4A4A4A4A4A0A00080
+:10D0600000A5A5A5A5A500A4A4A4A4A4A4A0A0006F
+:10D0700000A5A5A5A5A5A400A4A4A4A4A4A0A0005F
+:10D0800000A5A5A5A5A5A4A400A4A4A4A4A0A0004F
+:10D0900000A5A5A5A5A5A4A4A400A4A4A4A0A0003F
+:10D0A00000A5A5A5A5A5A4A4A4A400A4A4A0A0002F
+:10D0B00000A5A5A5A5A5A4A4A4A4A400A4A0A0001F
+:10D0C00000A5A5A5A5A5A4A4A4A4A4A400A0A0000F
+:10D0D00000A5A5A5A5A5A4A4A4A4A4A4A400A000FB
+:10D0E00000A5A5A5A5A5A4A4A4A4A4A4A4A00000EB
+:10D0F00000A5A5A5A5A5A4A4A4A4A4A4A4A0A0003B
+:10D1000000A5A5A5A5A5A5A4A4A4A4A4A0A0A0AA83
+:10D110005500A5A5A5A5A5A4A4A4A4A4A0A0A0AAC3
+:10D1200055A500A5A5A5A5A4A4A4A4A4A0A0A0AAB3
+:10D1300055A5A500A5A5A5A4A4A4A4A4A0A0A0AAA3
+:10D1400055A5A5A500A5A5A4A4A4A4A4A0A0A0AA93
+:10D1500055A5A5A5A500A5A4A4A4A4A4A0A0A0AA83
+:10D1600055A5A5A5A5A500A4A4A4A4A4A0A0A0AA73
+:10D1700055A5A5A5A5A5A500A4A4A4A4A0A0A0AA62
+:10D1800055A5A5A5A5A5A5A400A4A4A4A0A0A0AA52
+:10D1900055A5A5A5A5A5A5A4A400A4A4A0A0A0AA42
+:10D1A00055A5A5A5A5A5A5A4A4A400A4A0A0A0AA32
+:10D1B00055A5A5A5A5A5A5A4A4A4A400A0A0A0AA22
+:10D1C00055A5A5A5A5A5A5A4A4A4A4A400A0A0AA0E
+:10D1D00055A5A5A5A5A5A5A4A4A4A4A4A000A0AAFE
+:10D1E00055A5A5A5A5A5A5A4A4A4A4A4A0A000AAEE
+:10D1F00055A5A5A5A5A5A5A4A4A4A4A4A0A0A000E8
+:10D2000000A5A5A5A5A4A4A4A4A4A4A0A0A0A0AA88
+:10D210005500A5A5A5A4A4A4A4A4A4A0A0A0A0AAC8
+:10D2200055A500A5A5A4A4A4A4A4A4A0A0A0A0AAB8
+:10D2300055A5A500A5A4A4A4A4A4A4A0A0A0A0AAA8
+:10D2400055A5A5A500A4A4A4A4A4A4A0A0A0A0AA98
+:10D2500055A5A5A5A500A4A4A4A4A4A0A0A0A0AA87
+:10D2600055A5A5A5A5A400A4A4A4A4A0A0A0A0AA77
+:10D2700055A5A5A5A5A4A400A4A4A4A0A0A0A0AA67
+:10D2800055A5A5A5A5A4A4A400A4A4A0A0A0A0AA57
+:10D2900055A5A5A5A5A4A4A4A400A4A0A0A0A0AA47
+:10D2A00055A5A5A5A5A4A4A4A4A400A0A0A0A0AA37
+:10D2B00055A5A5A5A5A4A4A4A4A4A400A0A0A0AA23
+:10D2C00055A5A5A5A5A4A4A4A4A4A4A000A0A0AA13
+:10D2D00055A5A5A5A5A4A4A4A4A4A4A0A000A0AA03
+:10D2E00055A5A5A5A5A4A4A4A4A4A4A0A0A000AAF3
+:10D2F00055A5A5A5A5A4A4A4A4A4A4A0A0A0A000ED
+:10D3000000A5A5A5A5A4A4A4A4A4A0A0A0A0A00035
+:10D310000000A5A5A5A4A4A4A4A4A0A0A0A0A000CA
+:10D3200000A500A5A5A4A4A4A4A4A0A0A0A0A000BA
+:10D3300000A5A500A5A4A4A4A4A4A0A0A0A0A000AA
+:10D3400000A5A5A500A4A4A4A4A4A0A0A0A0A0009A
+:10D3500000A5A5A5A500A4A4A4A4A0A0A0A0A00089
+:10D3600000A5A5A5A5A400A4A4A4A0A0A0A0A00079
+:10D3700000A5A5A5A5A4A400A4A4A0A0A0A0A00069
+:10D3800000A5A5A5A5A4A4A400A4A0A0A0A0A00059
+:10D3900000A5A5A5A5A4A4A4A400A0A0A0A0A00049
+:10D3A00000A5A5A5A5A4A4A4A4A400A0A0A0A00035
+:10D3B00000A5A5A5A5A4A4A4A4A4A000A0A0A00025
+:10D3C00000A5A5A5A5A4A4A4A4A4A0A000A0A00015
+:10D3D00000A5A5A5A5A4A4A4A4A4A0A0A000A00005
+:10D3E00000A5A5A5A5A4A4A4A4A4A0A0A0A00000F5
+:10D3F00000A5A5A5A5A4A4A4A4A4A0A0A0A0A00045
+:10D4000000A5A5A5A4A4A4A4A4A4A0A0A0A0A00035
+:10D410000000A5A5A4A4A4A4A4A4A0A0A0A0A000CA
+:10D4200000A500A5A4A4A4A4A4A4A0A0A0A0A000BA
+:10D4300000A5A500A4A4A4A4A4A4A0A0A0A0A000AA
+:10D4400000A5A5A500A4A4A4A4A4A0A0A0A0A00099
+:10D4500000A5A5A5A400A4A4A4A4A0A0A0A0A00089
+:10D4600000A5A5A5A4A400A4A4A4A0A0A0A0A00079
+:10D4700000A5A5A5A4A4A400A4A4A0A0A0A0A00069
+:10D4800000A5A5A5A4A4A4A400A4A0A0A0A0A00059
+:10D4900000A5A5A5A4A4A4A4A400A0A0A0A0A00049
+:10D4A00000A5A5A5A4A4A4A4A4A400A0A0A0A00035
+:10D4B00000A5A5A5A4A4A4A4A4A4A000A0A0A00025
+:10D4C00000A5A5A5A4A4A4A4A4A4A0A000A0A00015
+:10D4D00000A5A5A5A4A4A4A4A4A4A0A0A000A00005
+:10D4E00000A5A5A5A4A4A4A4A4A4A0A0A0A00000F5
+:10D4F00000A5A5A5A4A4A4A4A4A4A0A0A0A0A00045
+:10D50000009595959494949494909090909080AA7E
+:10D51000550095959494949494909090909080AAAE
+:10D52000559500959494949494909090909080AA9E
+:10D53000559595009494949494909090909080AA8E
+:10D54000559595950094949494909090909080AA7D
+:10D55000559595959400949494909090909080AA6D
+:10D56000559595959494009494909090909080AA5D
+:10D57000559595959494940094909090909080AA4D
+:10D58000559595959494949400909090909080AA3D
+:10D59000559595959494949494009090909080AA29
+:10D5A000559595959494949494900090909080AA19
+:10D5B000559595959494949494909000909080AA09
+:10D5C000559595959494949494909090009080AAF9
+:10D5D000559595959494949494909090900080AAE9
+:10D5E000559595959494949494909090909000AAC9
+:10D5F00055959595949494949490909090908000E3
+:10D60000009595949494949494909090909080AA7E
+:10D61000550095949494949494909090909080AAAE
+:10D62000559500949494949494909090909080AA9E
+:10D63000559595009494949494909090909080AA8D
+:10D64000559595940094949494909090909080AA7D
+:10D65000559595949400949494909090909080AA6D
+:10D66000559595949494009494909090909080AA5D
+:10D67000559595949494940094909090909080AA4D
+:10D68000559595949494949400909090909080AA3D
+:10D69000559595949494949494009090909080AA29
+:10D6A000559595949494949494900090909080AA19
+:10D6B000559595949494949494909000909080AA09
+:10D6C000559595949494949494909090009080AAF9
+:10D6D000559595949494949494909090900080AAE9
+:10D6E000559595949494949494909090909000AAC9
+:10D6F00055959594949494949490909090908000E3
+:10D70000009595959494949490909090908080003A
+:10D7100000009595949494949090909090808000BF
+:10D7200000950095949494949090909090808000AF
+:10D73000009595009494949490909090908080009F
+:10D74000009595950094949490909090908080008E
+:10D75000009595959400949490909090908080007E
+:10D76000009595959494009490909090908080006E
+:10D77000009595959494940090909090908080005E
+:10D78000009595959494949400909090908080004A
+:10D79000009595959494949490009090908080003A
+:10D7A000009595959494949490900090908080002A
+:10D7B000009595959494949490909000908080001A
+:10D7C000009595959494949490909090008080000A
+:10D7D00000959595949494949090909090008000EA
+:10D7E00000959595949494949090909090800000DA
+:10D7F000009595959494949490909090908080004A
+:10D80000009595949494949090909090908080003E
+:10D8100000009594949494909090909090808000C3
+:10D8200000950094949494909090909090808000B3
+:10D8300000959500949494909090909090808000A2
+:10D840000095959400949490909090909080800092
+:10D850000095959494009490909090909080800082
+:10D860000095959494940090909090909080800072
+:10D87000009595949494940090909090908080005E
+:10D88000009595949494949000909090908080004E
+:10D89000009595949494949090009090908080003E
+:10D8A000009595949494949090900090908080002E
+:10D8B000009595949494949090909000908080001E
+:10D8C000009595949494949090909090008080000E
+:10D8D00000959594949494909090909090008000EE
+:10D8E00000959594949494909090909090800000DE
+:10D8F000009595949494949090909090908080004E
+:10D90000009594949494909090909090808080AAA8
+:10D91000550094949494909090909090808080AAD8
+:10D92000559500949494909090909090808080AAC7
+:10D93000559594009494909090909090808080AAB7
+:10D94000559594940094909090909090808080AAA7
+:10D95000559594949400909090909090808080AA97
+:10D96000559594949494009090909090808080AA83
+:10D97000559594949494900090909090808080AA73
+:10D98000559594949494909000909090808080AA63
+:10D99000559594949494909090009090808080AA53
+:10D9A000559594949494909090900090808080AA43
+:10D9B000559594949494909090909000808080AA33
+:10D9C000559594949494909090909090008080AA13
+:10D9D000559594949494909090909090800080AA03
+:10D9E000559594949494909090909090808000AAF3
+:10D9F000559594949494909090909090808080000D
+:10DA0000009594949494909090909080808080AAB7
+:10DA1000550094949494909090909080808080AAE7
+:10DA2000559500949494909090909080808080AAD6
+:10DA3000559594009494909090909080808080AAC6
+:10DA4000559594940094909090909080808080AAB6
+:10DA5000559594949400909090909080808080AAA6
+:10DA6000559594949494009090909080808080AA92
+:10DA7000559594949494900090909080808080AA82
+:10DA8000559594949494909000909080808080AA72
+:10DA9000559594949494909090009080808080AA62
+:10DAA000559594949494909090900080808080AA52
+:10DAB000559594949494909090909000808080AA32
+:10DAC000559594949494909090909080008080AA22
+:10DAD000559594949494909090909080800080AA12
+:10DAE000559594949494909090909080808000AA02
+:10DAF000559594949494909090909080808080001C
+:10DB00000094949494909090909080808080800075
+:10DB100000009494949090909090808080808000F9
+:10DB200000940094949090909090808080808000E9
+:10DB300000949400949090909090808080808000D9
+:10DB400000949494009090909090808080808000C9
+:10DB500000949494940090909090808080808000B5
+:10DB600000949494949000909090808080808000A5
+:10DB70000094949494909000909080808080800095
+:10DB80000094949494909090009080808080800085
+:10DB90000094949494909090900080808080800075
+:10DBA0000094949494909090909000808080800055
+:10DBB0000094949494909090909080008080800045
+:10DBC0000094949494909090909080800080800035
+:10DBD0000094949494909090909080808000800025
+:10DBE0000094949494909090909080808080000015
+:10DBF0000094949494909090909080808080800085
+:10DC00000094949494909090909080808080800074
+:10DC100000009494949090909090808080808000F8
+:10DC200000940094949090909090808080808000E8
+:10DC300000949400949090909090808080808000D8
+:10DC400000949494009090909090808080808000C8
+:10DC500000949494940090909090808080808000B4
+:10DC600000949494949000909090808080808000A4
+:10DC70000094949494909000909080808080800094
+:10DC80000094949494909090009080808080800084
+:10DC90000094949494909090900080808080800074
+:10DCA0000094949494909090909000808080800054
+:10DCB0000094949494909090909080008080800044
+:10DCC0000094949494909090909080800080800034
+:10DCD0000094949494909090909080808000800024
+:10DCE0000094949494909090909080808080000014
+:10DCF0000094949494909090909080808080800084
+:10DD0000009494949090909090808080808080A8DF
+:10DD1000540094949090909090808080808080A80F
+:10DD2000549400949090909090808080808080A8FF
+:10DD3000549494009090909090808080808080A8EF
+:10DD4000549494940090909090808080808080A8DB
+:10DD5000549494949000909090808080808080A8CB
+:10DD6000549494949090009090808080808080A8BB
+:10DD7000549494949090900090808080808080A8AB
+:10DD8000549494949090909000808080808080A89B
+:10DD9000549494949090909090008080808080A87B
+:10DDA000549494949090909090800080808080A86B
+:10DDB000549494949090909090808000808080A85B
+:10DDC000549494949090909090808080008080A84B
+:10DDD000549494949090909090808080800080A83B
+:10DDE000549494949090909090808080808000A82B
+:10DDF0005494949490909090908080808080800043
+:10DE0000009494949090909090808080808080A8DE
+:10DE1000540094949090909090808080808080A80E
+:10DE2000549400949090909090808080808080A8FE
+:10DE3000549494009090909090808080808080A8EE
+:10DE4000549494940090909090808080808080A8DA
+:10DE5000549494949000909090808080808080A8CA
+:10DE6000549494949090009090808080808080A8BA
+:10DE7000549494949090900090808080808080A8AA
+:10DE8000549494949090909000808080808080A89A
+:10DE9000549494949090909090008080808080A87A
+:10DEA000549494949090909090800080808080A86A
+:10DEB000549494949090909090808000808080A85A
+:10DEC000549494949090909090808080008080A84A
+:10DED000549494949090909090808080800080A83A
+:10DEE000549494949090909090808080808000A82A
+:10DEF0005494949490909090908080808080800042
+:10DF00000054545450505050404040404040000055
+:10DF10000000545450505050404040404040000099
+:10DF20000054005450505050404040404040000089
+:10DF30000054540050505050404040404040000079
+:10DF40000054545400505050404040404040000065
+:10DF50000054545450005050404040404040000055
+:10DF60000054545450500050404040404040000045
+:10DF70000054545450505000404040404040000035
+:10DF80000054545450505050004040404040000015
+:10DF90000054545450505050400040404040000005
+:10DFA00000545454505050504040004040400000F5
+:10DFB00000545454505050504040400040400000E5
+:10DFC00000545454505050504040404000400000D5
+:10DFD00000545454505050504040404040000000C5
+:10DFE0000054545450505050404040404040000075
+:10DFF0000054545450505050404040404040000065
+:10E000000054545450505040404040404040000064
+:10E0100000005454505050404040404040400000A8
+:10E020000054005450505040404040404040000098
+:10E030000054540050505040404040404040000088
+:10E040000054545400505040404040404040000074
+:10E050000054545450005040404040404040000064
+:10E060000054545450500040404040404040000054
+:10E070000054545450505000404040404040000034
+:10E080000054545450505040004040404040000024
+:10E090000054545450505040400040404040000014
+:10E0A0000054545450505040404000404040000004
+:10E0B00000545454505050404040400040400000F4
+:10E0C00000545454505050404040404000400000E4
+:10E0D00000545454505050404040404040000000D4
+:10E0E0000054545450505040404040404040000084
+:10E0F0000054545450505040404040404040000074
+:10E10000005454505050404040404040400000A80F
+:10E11000540054505050404040404040400000A8FF
+:10E12000545400505050404040404040400000A8EF
+:10E13000545454005050404040404040400000A8DB
+:10E14000545454500050404040404040400000A8CB
+:10E15000545454505000404040404040400000A8BB
+:10E16000545454505050004040404040400000A89B
+:10E17000545454505050400040404040400000A88B
+:10E18000545454505050404000404040400000A87B
+:10E19000545454505050404040004040400000A86B
+:10E1A000545454505050404040400040400000A85B
+:10E1B000545454505050404040404000400000A84B
+:10E1C000545454505050404040404040000000A83B
+:10E1D000545454505050404040404040400000A8EB
+:10E1E000545454505050404040404040400000A8DB
+:10E1F0005454545050504040404040404000000073
+:10E20000005450505050404040404040000000A852
+:10E21000540050505050404040404040000000A842
+:10E22000545400505050404040404040000000A82E
+:10E23000545450005050404040404040000000A81E
+:10E24000545450500050404040404040000000A80E
+:10E25000545450505000404040404040000000A8FE
+:10E26000545450505050004040404040000000A8DE
+:10E27000545450505050400040404040000000A8CE
+:10E28000545450505050404000404040000000A8BE
+:10E29000545450505050404040004040000000A8AE
+:10E2A000545450505050404040400040000000A89E
+:10E2B000545450505050404040404000000000A88E
+:10E2C000545450505050404040404040000000A83E
+:10E2D000545450505050404040404040000000A82E
+:10E2E000545450505050404040404040000000A81E
+:10E2F00054545050505040404040404000000000B6
+:10E30000005050505040404040404000000000004D
+:10E31000000050505040404040404000000000008D
+:10E32000005000505040404040404000000000007D
+:10E33000005050005040404040404000000000006D
+:10E34000005050500040404040404000000000005D
+:10E35000005050505000404040404000000000003D
+:10E36000005050505040004040404000000000002D
+:10E37000005050505040400040404000000000001D
+:10E38000005050505040404000404000000000000D
+:10E3900000505050504040404000400000000000FD
+:10E3A00000505050504040404040000000000000ED
+:10E3B000005050505040404040404000000000009D
+:10E3C000005050505040404040404000000000008D
+:10E3D000005050505040404040404000000000007D
+:10E3E000005050505040404040404000000000006D
+:10E3F000005050505040404040404000000000005D
+:10E400000C5C5C5C5C4C4C4C4C4C4C0C0C0C0C0C8C
+:10E410000C0C5C5C5C4C4C4C4C4C4C0C0C0C0C0CCC
+:10E420000C5C0C5C5C4C4C4C4C4C4C0C0C0C0C0CBC
+:10E430000C5C5C0C5C4C4C4C4C4C4C0C0C0C0C0CAC
+:10E440000C5C5C5C0C4C4C4C4C4C4C0C0C0C0C0C9C
+:10E450000C5C5C5C5C0C4C4C4C4C4C0C0C0C0C0C7C
+:10E460000C5C5C5C5C4C0C4C4C4C4C0C0C0C0C0C6C
+:10E470000C5C5C5C5C4C4C0C4C4C4C0C0C0C0C0C5C
+:10E480000C5C5C5C5C4C4C4C0C4C4C0C0C0C0C0C4C
+:10E490000C5C5C5C5C4C4C4C4C0C4C0C0C0C0C0C3C
+:10E4A0000C5C5C5C5C4C4C4C4C4C0C0C0C0C0C0C2C
+:10E4B0000C5C5C5C5C4C4C4C4C4C4C0C0C0C0C0CDC
+:10E4C0000C5C5C5C5C4C4C4C4C4C4C0C0C0C0C0CCC
+:10E4D0000C5C5C5C5C4C4C4C4C4C4C0C0C0C0C0CBC
+:10E4E0000C5C5C5C5C4C4C4C4C4C4C0C0C0C0C0CAC
+:10E4F0000C5C5C5C5C4C4C4C4C4C4C0C0C0C0C0C9C
+:10E50000005050504040404040400000000000A0FB
+:10E51000500050504040404040400000000000A0EB
+:10E52000505000504040404040400000000000A0DB
+:10E53000505050004040404040400000000000A0CB
+:10E54000505050500040404040400000000000A0AB
+:10E55000505050504000404040400000000000A09B
+:10E56000505050504040004040400000000000A08B
+:10E57000505050504040400040400000000000A07B
+:10E58000505050504040404000400000000000A06B
+:10E59000505050504040404040000000000000A05B
+:10E5A000505050504040404040400000000000A00B
+:10E5B000505050504040404040400000000000A0FB
+:10E5C000505050504040404040400000000000A0EB
+:10E5D000505050504040404040400000000000A0DB
+:10E5E000505050504040404040400000000000A0CB
+:10E5F000505050504040404040400000000000005B
+:10E60000005050504040404040400000000000A0FA
+:10E61000500050504040404040400000000000A0EA
+:10E62000505000504040404040400000000000A0DA
+:10E63000505050004040404040400000000000A0CA
+:10E64000505050500040404040400000000000A0AA
+:10E65000505050504000404040400000000000A09A
+:10E66000505050504040004040400000000000A08A
+:10E67000505050504040400040400000000000A07A
+:10E68000505050504040404000400000000000A06A
+:10E69000505050504040404040000000000000A05A
+:10E6A000505050504040404040400000000000A00A
+:10E6B000505050504040404040400000000000A0FA
+:10E6C000505050504040404040400000000000A0EA
+:10E6D000505050504040404040400000000000A0DA
+:10E6E000505050504040404040400000000000A0CA
+:10E6F000505050504040404040400000000000005A
+:10E700000050505040404040404000000000000099
+:10E7100000005050404040404040000000000000D9
+:10E7200000500050404040404040000000000000C9
+:10E7300000505000404040404040000000000000B9
+:10E740000050505000404040404000000000000099
+:10E750000050505040004040404000000000000089
+:10E760000050505040400040404000000000000079
+:10E770000050505040404000404000000000000069
+:10E780000050505040404040004000000000000059
+:10E790000050505040404040400000000000000049
+:10E7A00000505050404040404040000000000000F9
+:10E7B00000505050404040404040000000000000E9
+:10E7C00000505050404040404040000000000000D9
+:10E7D00000505050404040404040000000000000C9
+:10E7E00000505050404040404040000000000000B9
+:10E7F00000505050404040404040000000000000A9
+:10E800000050505040404040404000000000000098
+:10E8100000005050404040404040000000000000D8
+:10E8200000500050404040404040000000000000C8
+:10E8300000505000404040404040000000000000B8
+:10E840000050505000404040404000000000000098
+:10E850000050505040004040404000000000000088
+:10E860000050505040400040404000000000000078
+:10E870000050505040404000404000000000000068
+:10E880000050505040404040004000000000000058
+:10E890000050505040404040400000000000000048
+:10E8A00000505050404040404040000000000000F8
+:10E8B00000505050404040404040000000000000E8
+:10E8C00000505050404040404040000000000000D8
+:10E8D00000505050404040404040000000000000C8
+:10E8E00000505050404040404040000000000000B8
+:10E8F00000505050404040404040000000000000A8
+:10E90000005050404040404040000000000000A047
+:10E91000500050404040404040000000000000A037
+:10E92000505000404040404040000000000000A027
+:10E93000505050004040404040000000000000A007
+:10E94000505050400040404040000000000000A0F7
+:10E95000505050404000404040000000000000A0E7
+:10E96000505050404040004040000000000000A0D7
+:10E97000505050404040400040000000000000A0C7
+:10E98000505050404040404000000000000000A0B7
+:10E99000505050404040404040000000000000A067
+:10E9A000505050404040404040000000000000A057
+:10E9B000505050404040404040000000000000A047
+:10E9C000505050404040404040000000000000A037
+:10E9D000505050404040404040000000000000A027
+:10E9E000505050404040404040000000000000A017
+:10E9F00050505040404040404000000000000000A7
+:10EA0000005040404040404040000000000000A056
+:10EA1000500040404040404040000000000000A046
+:10EA2000505000404040404040000000000000A026
+:10EA3000505040004040404040000000000000A016
+:10EA4000505040400040404040000000000000A006
+:10EA5000505040404000404040000000000000A0F6
+:10EA6000505040404040004040000000000000A0E6
+:10EA7000505040404040400040000000000000A0D6
+:10EA8000505040404040404000000000000000A0C6
+:10EA9000505040404040404040000000000000A076
+:10EAA000505040404040404040000000000000A066
+:10EAB000505040404040404040000000000000A056
+:10EAC000505040404040404040000000000000A046
+:10EAD000505040404040404040000000000000A036
+:10EAE000505040404040404040000000000000A026
+:10EAF00050504040404040404000000000000000B6
+:10EB00000040404040404040000000000000000045
+:10EB10000000404040404040000000000000000075
+:10EB20000040004040404040000000000000000065
+:10EB30000040400040404040000000000000000055
+:10EB40000040404000404040000000000000000045
+:10EB50000040404040004040000000000000000035
+:10EB60000040404040400040000000000000000025
+:10EB70000040404040404000000000000000000015
+:10EB800000404040404040400000000000000000C5
+:10EB900000404040404040400000000000000000B5
+:10EBA00000404040404040400000000000000000A5
+:10EBB0000040404040404040000000000000000095
+:10EBC0000040404040404040000000000000000085
+:10EBD0000040404040404040000000000000000075
+:10EBE0000040404040404040000000000000000065
+:10EBF0000040404040404040000000000000000055
+:10EC00003070707070707030303030303030303084
+:10EC100030307070707070303030303030303030B4
+:10EC200030703070707070303030303030303030A4
+:10EC30003070703070707030303030303030303094
+:10EC40003070707030707030303030303030303084
+:10EC50003070707070307030303030303030303074
+:10EC60003070707070703030303030303030303064
+:10EC70003070707070707030303030303030303014
+:10EC80003070707070707030303030303030303004
+:10EC900030707070707070303030303030303030F4
+:10ECA00030707070707070303030303030303030E4
+:10ECB00030707070707070303030303030303030D4
+:10ECC00030707070707070303030303030303030C4
+:10ECD00030707070707070303030303030303030B4
+:10ECE00030707070707070303030303030303030A4
+:10ECF0003070707070707030303030303030303094
+:10ED00000040404040400000000000000000008043
+:10ED10004000404040400000000000000000008033
+:10ED20004040004040400000000000000000008023
+:10ED30004040400040400000000000000000008013
+:10ED40004040404000400000000000000000008003
+:10ED500040404040400000000000000000000080F3
+:10ED600040404040404000000000000000000080A3
+:10ED70004040404040400000000000000000008093
+:10ED80004040404040400000000000000000008083
+:10ED90004040404040400000000000000000008073
+:10EDA0004040404040400000000000000000008063
+:10EDB0004040404040400000000000000000008053
+:10EDC0004040404040400000000000000000008043
+:10EDD0004040404040400000000000000000008033
+:10EDE0004040404040400000000000000000008023
+:10EDF0004040404040400000000000000000000093
+:10EE00000040404040400000000000000000008042
+:10EE10004000404040400000000000000000008032
+:10EE20004040004040400000000000000000008022
+:10EE30004040400040400000000000000000008012
+:10EE40004040404000400000000000000000008002
+:10EE500040404040400000000000000000000080F2
+:10EE600040404040404000000000000000000080A2
+:10EE70004040404040400000000000000000008092
+:10EE80004040404040400000000000000000008082
+:10EE90004040404040400000000000000000008072
+:10EEA0004040404040400000000000000000008062
+:10EEB0004040404040400000000000000000008052
+:10EEC0004040404040400000000000000000008042
+:10EED0004040404040400000000000000000008032
+:10EEE0004040404040400000000000000000008022
+:10EEF0004040404040400000000000000000000092
+:10EF00000040404040000000000000000000000001
+:10EF10000000404040000000000000000000000031
+:10EF20000040004040000000000000000000000021
+:10EF30000040400040000000000000000000000011
+:10EF40000040404000000000000000000000000001
+:10EF500000404040400000000000000000000000B1
+:10EF600000404040400000000000000000000000A1
+:10EF70000040404040000000000000000000000091
+:10EF80000040404040000000000000000000000081
+:10EF90000040404040000000000000000000000071
+:10EFA0000040404040000000000000000000000061
+:10EFB0000040404040000000000000000000000051
+:10EFC0000040404040000000000000000000000041
+:10EFD0000040404040000000000000000000000031
+:10EFE0000040404040000000000000000000000021
+:10EFF0000040404040000000000000000000000011
+:10F000000040404040000000000000000000000000
+:10F010000000404040000000000000000000000030
+:10F020000040004040000000000000000000000020
+:10F030000040400040000000000000000000000010
+:10F040000040404000000000000000000000000000
+:10F0500000404040400000000000000000000000B0
+:10F0600000404040400000000000000000000000A0
+:10F070000040404040000000000000000000000090
+:10F080000040404040000000000000000000000080
+:10F090000040404040000000000000000000000070
+:10F0A0000040404040000000000000000000000060
+:10F0B0000040404040000000000000000000000050
+:10F0C0000040404040000000000000000000000040
+:10F0D0000040404040000000000000000000000030
+:10F0E0000040404040000000000000000000000020
+:10F0F0000040404040000000000000000000000010
+:10F1000000404040000000000000000000000080BF
+:10F1100040004040000000000000000000000080AF
+:10F12000404000400000000000000000000000809F
+:10F13000404040000000000000000000000000808F
+:10F14000404040400000000000000000000000803F
+:10F15000404040400000000000000000000000802F
+:10F16000404040400000000000000000000000801F
+:10F17000404040400000000000000000000000800F
+:10F1800040404040000000000000000000000080FF
+:10F1900040404040000000000000000000000080EF
+:10F1A00040404040000000000000000000000080DF
+:10F1B00040404040000000000000000000000080CF
+:10F1C00040404040000000000000000000000080BF
+:10F1D00040404040000000000000000000000080AF
+:10F1E000404040400000000000000000000000809F
+:10F1F000404040400000000000000000000000000F
+:10F2000000404040000000000000000000000080BE
+:10F2100040004040000000000000000000000080AE
+:10F22000404000400000000000000000000000809E
+:10F23000404040000000000000000000000000808E
+:10F24000404040400000000000000000000000803E
+:10F25000404040400000000000000000000000802E
+:10F26000404040400000000000000000000000801E
+:10F27000404040400000000000000000000000800E
+:10F2800040404040000000000000000000000080FE
+:10F2900040404040000000000000000000000080EE
+:10F2A00040404040000000000000000000000080DE
+:10F2B00040404040000000000000000000000080CE
+:10F2C00040404040000000000000000000000080BE
+:10F2D00040404040000000000000000000000080AE
+:10F2E000404040400000000000000000000000809E
+:10F2F000404040400000000000000000000000000E
+:10F30000004040400000000000000000000000003D
+:10F31000000040400000000000000000000000006D
+:10F32000004000400000000000000000000000005D
+:10F33000004040000000000000000000000000004D
+:10F3400000404040000000000000000000000000FD
+:10F3500000404040000000000000000000000000ED
+:10F3600000404040000000000000000000000000DD
+:10F3700000404040000000000000000000000000CD
+:10F3800000404040000000000000000000000000BD
+:10F3900000404040000000000000000000000000AD
+:10F3A000004040400000000000000000000000009D
+:10F3B000004040400000000000000000000000008D
+:10F3C000004040400000000000000000000000007D
+:10F3D000004040400000000000000000000000006D
+:10F3E000004040400000000000000000000000005D
+:10F3F000004040400000000000000000000000004D
+:10F40000004040400000000000000000000000003C
+:10F41000000040400000000000000000000000006C
+:10F42000004000400000000000000000000000005C
+:10F43000004040000000000000000000000000004C
+:10F4400000404040000000000000000000000000FC
+:10F4500000404040000000000000000000000000EC
+:10F4600000404040000000000000000000000000DC
+:10F4700000404040000000000000000000000000CC
+:10F4800000404040000000000000000000000000BC
+:10F4900000404040000000000000000000000000AC
+:10F4A000004040400000000000000000000000009C
+:10F4B000004040400000000000000000000000008C
+:10F4C000004040400000000000000000000000007C
+:10F4D000004040400000000000000000000000006C
+:10F4E000004040400000000000000000000000005C
+:10F4F000004040400000000000000000000000004C
+:10F5000000404000000000000000000000000080FB
+:10F5100040004000000000000000000000000080EB
+:10F5200040400000000000000000000000000080DB
+:10F53000404040000000000000000000000000808B
+:10F54000404040000000000000000000000000807B
+:10F55000404040000000000000000000000000806B
+:10F56000404040000000000000000000000000805B
+:10F57000404040000000000000000000000000804B
+:10F58000404040000000000000000000000000803B
+:10F59000404040000000000000000000000000802B
+:10F5A000404040000000000000000000000000801B
+:10F5B000404040000000000000000000000000800B
+:10F5C00040404000000000000000000000000080FB
+:10F5D00040404000000000000000000000000080EB
+:10F5E00040404000000000000000000000000080DB
+:10F5F000404040000000000000000000000000004B
+:10F60000004000000000000000000000000000803A
+:10F61000400000000000000000000000000000802A
+:10F6200040400000000000000000000000000080DA
+:10F6300040400000000000000000000000000080CA
+:10F6400040400000000000000000000000000080BA
+:10F6500040400000000000000000000000000080AA
+:10F66000404000000000000000000000000000809A
+:10F67000404000000000000000000000000000808A
+:10F68000404000000000000000000000000000807A
+:10F69000404000000000000000000000000000806A
+:10F6A000404000000000000000000000000000805A
+:10F6B000404000000000000000000000000000804A
+:10F6C000404000000000000000000000000000803A
+:10F6D000404000000000000000000000000000802A
+:10F6E000404000000000000000000000000000801A
+:10F6F000404000000000000000000000000000008A
+:10F7000000000000000000000000000000000000F9
+:10F71000C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0E9
+:10F7200000000000000000000000000000000000D9
+:10F7300000000000000000000000000000000000C9
+:10F7400000000000000000000000000000000000B9
+:10F7500000000000000000000000000000000000A9
+:10F760000000000000000000000000000000000099
+:10F770000000000000000000000000000000000089
+:10F780000000000000000000000000000000000079
+:10F790000000000000000000000000000000000069
+:10F7A0000000000000000000000000000000000059
+:10F7B0000000000000000000000000000000000049
+:10F7C0000000000000000000000000000000000039
+:10F7D0000000000000000000000000000000000029
+:10F7E0000000000000000000000000000000000019
+:10F7F0000000000000000000000000000000000009
+:10F80000AA5555A9A9A9A9A9A9A9A9A9A9A9A95563
+:10F81000AA55555555555555555555555555555543
+:10F82000AA55555555555555555555555555555533
+:10F83000AA55555555555555555555555555555523
+:10F84000AA55555555555555555555555555555513
+:10F85000AA55555555555555555555555555555503
+:10F86000AA555555555555555555555555555555F3
+:10F87000AA555555555555555555555555555555E3
+:10F88000AA555555555555555555555555555555D3
+:10F89000AA555555555555555555555555555555C3
+:10F8A000AA555555555555555555555555555555B3
+:10F8B000AA555555555555555555555555555555A3
+:10F8C000AA55555555555555555555555555555593
+:10F8D000AA55555555555555555555555555555583
+:10F8E000AA55555555555555555555555555555573
+:10F8F000AA555A6A6AAAAAAAAAAAAAAAAAAAAA0037
+:10F90000AA5555A9A9A9A9A9A9A9A9A9A9A9A95562
+:10F91000AA55555555555555555555555555555542
+:10F92000AA55555555555555555555555555555532
+:10F93000AA55555555555555555555555555555522
+:10F94000AA55555555555555555555555555555512
+:10F95000AA55555555555555555555555555555502
+:10F96000AA555555555555555555555555555555F2
+:10F97000AA555555555555555555555555555555E2
+:10F98000AA555555555555555555555555555555D2
+:10F99000AA555555555555555555555555555555C2
+:10F9A000AA555555555555555555555555555555B2
+:10F9B000AA555555555555555555555555555555A2
+:10F9C000AA55555555555555555555555555555592
+:10F9D000AA55555555555555555555555555555582
+:10F9E000AA55555555555555555555555555555572
+:10F9F000AA555A5A6A6AAAAAAAAAAAAAAAAAAA0086
+:10FA000000555555A9A9A9A9A9A9A9A9A9A9A900B4
+:10FA10000055555555555555555555555555550040
+:10FA20000055555555555555555555555555550030
+:10FA30000055555555555555555555555555550020
+:10FA40000055555555555555555555555555550010
+:10FA50000055555555555555555555555555550000
+:10FA600000555555555555555555555555555500F0
+:10FA700000555555555555555555555555555500E0
+:10FA800000555555555555555555555555555500D0
+:10FA900000555555555555555555555555555500C0
+:10FAA00000555555555555555555555555555500B0
+:10FAB00000555555555555555555555555555500A0
+:10FAC0000055555555555555555555555555550090
+:10FAD0000055555555555555555555555555550080
+:10FAE0000055555555555555555555555555550070
+:10FAF0000055565A5A6AAAAAAAAAAAAAAAAAAA0043
+:10FB0000005555556969A9A9A9A9A9A9A9A9A90033
+:10FB1000005555555555555555555555555555003F
+:10FB2000005555555555555555555555555555002F
+:10FB3000005555555555555555555555555555001F
+:10FB4000005555555555555555555555555555000F
+:10FB500000555555555555555555555555555500FF
+:10FB600000555555555555555555555555555500EF
+:10FB700000555555555555555555555555555500DF
+:10FB800000555555555555555555555555555500CF
+:10FB900000555555555555555555555555555500BF
+:10FBA00000555555555555555555555555555500AF
+:10FBB000005555555555555555555555555555009F
+:10FBC000005555555555555555555555555555008F
+:10FBD000005555555555555555555555555555007F
+:10FBE000005555555555555555555555555555006F
+:10FBF0000055565A5A5AAAAAAAAAAAAAAAAAAA0052
+:10FC0000AA5555555555A9A9A9A9A9A9A9A9A9555B
+:10FC1000AA5555555555555555555555555555553F
+:10FC2000AA5555555555555555555555555555552F
+:10FC3000AA5555555555555555555555555555551F
+:10FC4000AA5555555555555555555555555555550F
+:10FC5000AA555555555555555555555555555555FF
+:10FC6000AA555555555555555555555555555555EF
+:10FC7000AA555555555555555555555555555555DF
+:10FC8000AA555555555555555555555555555555CF
+:10FC9000AA555555555555555555555555555555BF
+:10FCA000AA555555555555555555555555555555AF
+:10FCB000AA5555555555555555555555555555559F
+:10FCC000AA5555555555555555555555555555558F
+:10FCD000AA5555555555555555555555555555557F
+:10FCE000AA5555555555555555555555555555556F
+:10FCF000AA55555A5A5AAAAAAAAAAAAAAAAAAA00A8
+:10FD0000AA5555555555A9A9A9A9A9A9A9A9A9555A
+:10FD1000AA5555555555555555555555555555553E
+:10FD2000AA5555555555555555555555555555552E
+:10FD3000AA5555555555555555555555555555551E
+:10FD4000AA5555555555555555555555555555550E
+:10FD5000AA555555555555555555555555555555FE
+:10FD6000AA555555555555555555555555555555EE
+:10FD7000AA555555555555555555555555555555DE
+:10FD8000AA555555555555555555555555555555CE
+:10FD9000AA555555555555555555555555555555BE
+:10FDA000AA555555555555555555555555555555AE
+:10FDB000AA5555555555555555555555555555559E
+:10FDC000AA5555555555555555555555555555558E
+:10FDD000AA5555555555555555555555555555557E
+:10FDE000AA5555555555555555555555555555556E
+:10FDF000AA55555A5A5AAAAAAAAAAAAAAAAAAA00A7
+:10FE000000555555555595A9A9A9A9A9A9A9AA006B
+:10FE1000005555555555555555555555555556003B
+:10FE2000005555555555555555555555555555002C
+:10FE3000005555555555555555555555555555001C
+:10FE4000005555555555555555555555555555000C
+:10FE500000555555555555555555555555555500FC
+:10FE600000555555555555555555555555555500EC
+:10FE700000555555555555555555555555555500DC
+:10FE800000555555555555555555555555555500CC
+:10FE900000555555555555555555555555555500BC
+:10FEA00000555555555555555555555555555500AC
+:10FEB000005555555555555555555555555555009C
+:10FEC000005555555555555555555555555555008C
+:10FED000005555555555555555555555555555007C
+:10FEE000005555555555555555555555555555006C
+:10FEF000005555565A5A5AAAAAAAAAAAAAAAAA00A4
+:10FF000000555555555555A9A9A9A9A9A9A9AA00AA
+:10FF1000005555555555555555555555555556003A
+:10FF2000005555555555555555555555555556002A
+:10FF3000005555555555555555555555555555001B
+:10FF4000005555555555555555555555555555000B
+:10FF500000555555555555555555555555555500FB
+:10FF600000555555555555555555555555555500EB
+:10FF700000555555555555555555555555555500DB
+:10FF800000555555555555555555555555555500CB
+:10FF900000555555555555555555555555555500BB
+:10FFA00000555555555555555555555555555500AB
+:10FFB000005555555555555555555555555555009B
+:10FFC000005555555555555555555555555555008B
+:10FFD000005555555555555555555555555555007B
+:10FFE000005555555555555555555555555555006B
+:10FFF000005555565A5A5AAAAAAAAAAAAAAAAA00A3
+:020000040004F6
+:10000000AA555555555555A5A9A9A9A9A9A9AA55AE
+:10001000AA5555555555555555555555555556553A
+:10002000AA5555555555555555555555555556552A
+:10003000AA5555555555555555555555555556551A
+:10004000AA5555555555555555555555555555550B
+:10005000AA555555555555555555555555555555FB
+:10006000AA555555555555555555555555555555EB
+:10007000AA555555555555555555555555555555DB
+:10008000AA555555555555555555555555555555CB
+:10009000AA555555555555555555555555555555BB
+:1000A000AA555555555555555555555555555555AB
+:1000B000AA5555555555555555555555555555559B
+:1000C000AA5555555555555555555555555555558B
+:1000D000AA5555555555555555555555555555557B
+:1000E000AA5555555555555555555555555555556B
+:1000F000AA555555565A5A5AAAAAAAAAAAAAAA004D
+:10010000AA55555555555595A5A5A5A9A9A9AA55C9
+:10011000AA55555555555555555555555555565539
+:10012000AA55555555555555555555555555565529
+:10013000AA55555555555555555555555555565519
+:10014000AA55555555555555555555555555565509
+:10015000AA555555555555555555555555555655F9
+:10016000AA555555555555555555555555555655E9
+:10017000AA555555555555555555555555555655D9
+:10018000AA555555555555555555555555555655C9
+:10019000AA555555555555555555555555555655B9
+:1001A000AA555555555555555555555555555655A9
+:1001B000AA55555555555555555555555555565599
+:1001C000AA55555555555555555555555555565589
+:1001D000AA5555555555555555555555555555557A
+:1001E000AA5555555555555555555555555555556A
+:1001F000AA55555556565A5AAAAAAAAAAAAAAA0050
+:100200000055555555555555959595A5A9AAAA003A
+:100210000055555555555555555555555556560036
+:100220000055555555555555555555555555560027
+:100230000055555555555555555555555555560017
+:100240000055555555555555555555555555560007
+:1002500000555555555555555555555555555600F7
+:1002600000555555555555555555555555555600E7
+:1002700000555555555555555555555555555600D7
+:1002800000555555555555555555555555555600C7
+:1002900000555555555555555555555555555600B7
+:1002A00000555555555555555555555555555600A7
+:1002B0000055555555555555555555555555560097
+:1002C0000055555555555555555555555555560087
+:1002D0000055555555555555555555555555560077
+:1002E0000055555555555555555555555555550068
+:1002F0000055555555555A5AAAAAAAAAAAAAAA00FB
+:10030000005555555555555595955596A6A6A60093
+:100310000055555555555555555555565656560033
+:100320000055555555555555555555555556560025
+:100330000055555555555555555555555555560016
+:100340000055555555555555555555555555560006
+:1003500000555555555555555555555555555600F6
+:1003600000555555555555555555555555555600E6
+:1003700000555555555555555555555555555600D6
+:1003800000555555555555555555555555555600C6
+:1003900000555555555555555555555555555600B6
+:1003A00000555555555555555555555555555600A6
+:1003B0000055555555555555555555555555560096
+:1003C0000055555555555555555555555555560086
+:1003D0000055555555555555555555555555560076
+:1003E0000055555555555555555555555555560066
+:1003F0000055555555555559AAAAAAAAAAAAAA0000
+:10040000AA5555AAAAAAAAAAAAAAAAAAAAAAAA554B
+:10041000AA5555565656565656565656565656552B
+:10042000AA55555555555555555555565656565523
+:10043000AA55555555555555555555555556565515
+:10044000AA55555555555555555555555555565506
+:10045000AA555555555555555555555555555655F6
+:10046000AA555555555555555555555555555655E6
+:10047000AA555555555555555555555555555655D6
+:10048000AA555555555555555555555555555655C6
+:10049000AA555555555555555555555555555655B6
+:1004A000AA555555555555555555555555555655A6
+:1004B000AA55555555555555555555555555565596
+:1004C000AA55555555555555555555555555565586
+:1004D000AA55555555555555555555555555565576
+:1004E000AA55555555555555555555555555565566
+:1004F000AA5555555555555559AAAAAAAAAAAA5555
+:10050000AA556AAAAAAAAAAAAAAAAAAAAAAAAA5535
+:10051000AA5556AAAAAAAAAAAAAAAAAAAAAAAA5539
+:10052000AA5555AAAAAAAAAAAAAAAAAAAAAAAA552A
+:10053000AA5555A9A9A9A9A9A9A9A9AAAAAAAA5522
+:10054000AA5555A9A9A9A9A9A9A9A9A9A9AAAA5514
+:10055000AA5555A9A9A9A9A9A9A9A9A9A9AAAA5504
+:10056000AA5555A9A9A9A9A9A9A9A9A9A9AAAA55F4
+:10057000AA5555A9A9A9A9A9A9A9A9A9A9AAAA55E4
+:10058000AA5555A9A9A9A9A9A9A9A9A9A9AAAA55D4
+:10059000AA5555A9A9A9A9A9A9A9A9A9A9AAAA55C4
+:1005A000AA5555A9A9A9A9A9A9A9A9A9A9AAAA55B4
+:1005B000AA55555555555555555555555556565594
+:1005C000AA55555555555555555555555556565584
+:1005D000AA55555555555555555555555555565575
+:1005E000AA55555555555555555555555555565565
+:1005F000AA55555555555555556969AAAAAAAA55DA
+:100600000055AAAAAAAAAAAAAAAAAAAAAAAAAA00F3
+:100610000055AAAAAAAAAAAAAAAAAAAAAAAAAA00E3
+:100620000055AAAAAAAAAAAAAAAAAAAAAAAAAA00D3
+:100630000055A9AAAAAAAAAAAAAAAAAAAAAAAA00C4
+:100640000055A9A9A9A9A9A9A9A9A9AAAAAAAA00BC
+:100650000055A9A9A9A9A9A9A9A9A9AAAAAAAA00AC
+:100660000055A9A9A9A9A9A9A9A9A9AAAAAAAA009C
+:100670000055A9A9A9A9A9A9A9A9A9AAAAAAAA008C
+:100680000055A9A9A9A9A9A9A9A9A9AAAAAAAA007C
+:100690000055A9A9A9A9A9A9A9A9A9AAAAAAAA006C
+:1006A0000055A9A9A9A9A9A9A9A9A9AAAAAAAA005C
+:1006B000005555A9A9A9A9A9A9A9A9AAAAAAAA00A0
+:1006C0000055555555555555555555565656560080
+:1006D0000055555555555555555555555556AA001E
+:1006E0000055555555555555555555555555560063
+:1006F000005555555555555555555569AAAAAA0041
+:100700000055AAAAAAAAAAAAAAAAAAAAAAAAAA00F2
+:1007100000A9AAAAAAAAAAAAAAAAAAAAAAAAAA008E
+:1007200000A9AAAAAAAAAAAAAAAAAAAAAAAAAA007E
+:1007300000A9AAAAAAAAAAAAAAAAAAAAAAAAAA006E
+:1007400000A9A9AAAAAAAAAAAAAAAAAAAAAAAA005F
+:1007500000A9A9AAAAAAAAAAAAAAAAAAAAAAAA004F
+:1007600000A9A9AAAAAAAAAAAAAAAAAAAAAAAA003F
+:1007700000A9A9AAAAAAAAAAAAAAAAAAAAAAAA002F
+:1007800000A9A9AAAAAAAAAAAAAAAAAAAAAAAA001F
+:1007900000A9A9AAAAAAAAAAAAAAAAAAAAAAAA000F
+:1007A00000A9A9AAAAAAAAAAAAAAAAAAAAAAAA00FF
+:1007B0000055A9AAAAAAAAAAAAAAAAAAAAAAAA0043
+:1007C000005555A9A9A9A9A9A9A9A9AAAAAAAA008F
+:1007D0000055555555555555555555565656AA001B
+:1007E0000055555555555555555555555556560061
+:1007F000005555555555555555555555A9AA5600A9
+:10080000AA55AAAAAAAAAAAAAAAAAAAAAAAAAA55F2
+:10081000AAA9AAAAAAAAAAAAAAAAAAAAAAAAAA558E
+:10082000AAA9AAAAAAAAAAAAAAAAAAAAAAAAAA557E
+:10083000AAA9AAAAAAAAAAAAAAAAAAAAAAAAAA556E
+:10084000AAA9AAAAAAAAAAAAAAAAAAAAAAAAAA555E
+:10085000AAA9AAAAAAAAAAAAAAAAAAAAAAAAAA554E
+:10086000AAA9AAAAAAAAAAAAAAAAAAAAAAAAAA553E
+:10087000AAA9AAAAAAAAAAAAAAAAAAAAAAAAAA552E
+:10088000AAA9AAAAAAAAAAAAAAAAAAAAAAAAAA551E
+:10089000AAA9AAAAAAAAAAAAAAAAAAAAAAAAAA550E
+:1008A000AAA9AAAAAAAAAAAAAAAAAAAAAAAAAA55FE
+:1008B000AAA9AAAAAAAAAAAAAAAAAAAAAAAAAA55EE
+:1008C000AA55A9AAAAAAAAAAAAAAAAAAAAAAAA5533
+:1008D000AA5555AAAAAAAAAAAAAAAAAAAAAAAA5577
+:1008E000AA5555555555555555555556565656555F
+:1008F000AA555555555555555555555595955655D2
+:10090000AA56AAAAAAAAAAAAAAAAAAAAAAAAAA55F0
+:10091000AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA558C
+:10092000AAA9AAAAAAAAAAAAAAAAAAAAAAAAAA557D
+:10093000AAA9AAAAAAAAAAAAAAAAAAAAAAAAAA556D
+:10094000AAA9AAAAAAAAAAAAAAAAAAAAAAAAAA555D
+:10095000AAA9AAAAAAAAAAAAAAAAAAAAAAAAAA554D
+:10096000AAA9AAAAAAAAAAAAAAAAAAAAAAAAAA553D
+:10097000AAA9AAAAAAAAAAAAAAAAAAAAAAAAAA552D
+:10098000AAA9AAAAAAAAAAAAAAAAAAAAAAAAAA551D
+:10099000AAA9AAAAAAAAAAAAAAAAAAAAAAAAAA550D
+:1009A000AAA9AAAAAAAAAAAAAAAAAAAAAAAAAA55FD
+:1009B000AAA9AAAAAAAAAAAAAAAAAAAAAAAAAA55ED
+:1009C000AAA9AAAAAAAAAAAAAAAAAAAAAAAAAA55DD
+:1009D000AA55AAAAAAAAAAAAAAAAAAAAAAAAAA5521
+:1009E000AA5555AAAAAAAAAAAAAAAAAAAAAAAA5566
+:1009F000AA555555555555555555555595955555D2
+:100A000000AAAAAAAAAAAAAAAAAAAAAAAAAAAA009A
+:100A100000AAAAAAAAAAAAAAAAAAAAAAAAAAAA008A
+:100A200000AAAAAAAAAAAAAAAAAAAAAAAAAAAA007A
+:100A300000A9AAAAAAAAAAAAAAAAAAAAAAAAAA006B
+:100A400000A9AAAAAAAAAAAAAAAAAAAAAAAAAA005B
+:100A500000A9AAAAAAAAAAAAAAAAAAAAAAAAAA004B
+:100A600000A9AAAAAAAAAAAAAAAAAAAAAAAAAA003B
+:100A700000A9AAAAAAAAAAAAAAAAAAAAAAAAAA002B
+:100A800000A9AAAAAAAAAAAAAAAAAAAAAAAAAA001B
+:100A900000A9AAAAAAAAAAAAAAAAAAAAAAAAAA000B
+:100AA00000A9AAAAAAAAAAAAAAAAAAAAAAAAAA00FB
+:100AB00000A9AAAAAAAAAAAAAAAAAAAAAAAAAA00EB
+:100AC00000A9AAAAAAAAAAAAAAAAAAAAAAAAAA00DB
+:100AD00000A9AAAAAAAAAAAAAAAAAAAAAAAAAA00CB
+:100AE0000055AAAAAAAAAAAAAAAAAAAAAAAAAA000F
+:100AF0000055555555555555555555555555550050
+:100B000000AAAAAAAAAAAAAAAAAAAAAAAAAAAA0099
+:100B100000AAAAAAAAAAAAAAAAAAAAAAAAAAAA0089
+:100B200000AAAAAAAAAAAAAAAAAAAAAAAAAAAA0079
+:100B300000AAAAAAAAAAAAAAAAAAAAAAAAAAAA0069
+:100B400000A9AAAAAAAAAAAAAAAAAAAAAAAAAA005A
+:100B500000A9AAAAAAAAAAAAAAAAAAAAAAAAAA004A
+:100B600000A9AAAAAAAAAAAAAAAAAAAAAAAAAA003A
+:100B700000A9AAAAAAAAAAAAAAAAAAAAAAAAAA002A
+:100B800000A9AAAAAAAAAAAAAAAAAAAAAAAAAA001A
+:100B900000A9AAAAAAAAAAAAAAAAAAAAAAAAAA000A
+:100BA00000A9AAAAAAAAAAAAAAAAAAAAAAAAAA00FA
+:100BB00000A9AAAAAAAAAAAAAAAAAAAAAAAAAA00EA
+:100BC00000A9AAAAAAAAAAAAAAAAAAAAAAAAAA00DA
+:100BD00000A9AAAAAAAAAAAAAAAAAAAAAAAAAA00CA
+:100BE00000A9AAAAAAAAAAAAAAAAAAAAAAAAAA00BA
+:100BF000005555555555555555555555555555004F
+:100C0000AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA5599
+:100C1000AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA5589
+:100C2000AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA5579
+:100C3000AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA5569
+:100C4000AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA5559
+:100C5000AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA5549
+:100C6000AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA5539
+:100C7000AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA5529
+:100C8000AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA5519
+:100C9000AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA5509
+:100CA000AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA55F9
+:100CB000AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA55E9
+:100CC000AAA9AAAAAAAAAAAAAAAAAAAAAAAAAA55DA
+:100CD000AAA9AAAAAAAAAAAAAAAAAAAAAAAAAA55CA
+:100CE000AAA9AAAAAAAAAAAAAAAAAAAAAAAAAA55BA
+:100CF000AA5555555555555555555555555555554F
+:100D0000AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA5598
+:100D1000AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA5588
+:100D2000AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA5578
+:100D3000AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA5568
+:100D4000AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA5558
+:100D5000AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA5548
+:100D6000AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA5538
+:100D7000AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA5528
+:100D8000AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA5518
+:100D9000AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA5508
+:100DA000AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA55F8
+:100DB000AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA55E8
+:100DC000AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA55D8
+:100DD000AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA55C8
+:100DE000AAA9AAAAAAAAAAAAAAAAAAAAAAAAAA55B9
+:100DF000AA5555555555555555555555555555554E
+:100E000000AAAAAAAAAAAAAAAAAAAAAAAAAAAA0096
+:100E100000AAAAAAAAAAAAAAAAAAAAAAAAAAAA0086
+:100E200000AAAAAAAAAAAAAAAAAAAAAAAAAAAA0076
+:100E300000AAAAAAAAAAAAAAAAAAAAAAAAAAAA0066
+:100E400000AAAAAAAAAAAAAAAAAAAAAAAAAAAA0056
+:100E500000AAAAAAAAAAAAAAAAAAAAAAAAAAAA0046
+:100E600000AAAAAAAAAAAAAAAAAAAAAAAAAAAA0036
+:100E700000AAAAAAAAAAAAAAAAAAAAAAAAAAAA0026
+:100E800000AAAAAAAAAAAAAAAAAAAAAAAAAAAA0016
+:100E900000AAAAAAAAAAAAAAAAAAAAAAAAAAAA0006
+:100EA00000AAAAAAAAAAAAAAAAAAAAAAAAAAAA00F6
+:100EB00000AAAAAAAAAAAAAAAAAAAAAAAAAAAA00E6
+:100EC00000AAAAAAAAAAAAAAAAAAAAAAAAAAAA00D6
+:100ED00000AAAAAAAAAAAAAAAAAAAAAAAAAAAA00C6
+:100EE00000AAAAAAAAAAAAAAAAAAAAAAAAAAAA00B6
+:100EF000005555555555555555555555555555004C
+:100F000000AAAAAAAAAAAAAAAAAAAAAAAAAAAA0095
+:100F100000AAAAAAAAAAAAAAAAAAAAAAAAAAAA0085
+:100F200000AAAAAAAAAAAAAAAAAAAAAAAAAAAA0075
+:100F300000AAAAAAAAAAAAAAAAAAAAAAAAAAAA0065
+:100F400000AAAAAAAAAAAAAAAAAAAAAAAAAAAA0055
+:100F500000AAAAAAAAAAAAAAAAAAAAAAAAAAAA0045
+:100F600000AAAAAAAAAAAAAAAAAAAAAAAAAAAA0035
+:100F700000AAAAAAAAAAAAAAAAAAAAAAAAAAAA0025
+:100F800000AAAAAAAAAAAAAAAAAAAAAAAAAAAA0015
+:100F900000AAAAAAAAAAAAAAAAAAAAAAAAAAAA0005
+:100FA00000AAAAAAAAAAAAAAAAAAAAAAAAAAAA00F5
+:100FB00000AAAAAAAAAAAAAAAAAAAAAAAAAAAA00E5
+:100FC00000AAAAAAAAAAAAAAAAAAAAAAAAAAAA00D5
+:100FD00000AAAAAAAAAAAAAAAAAAAAAAAAAAAA00C5
+:100FE00000AAAAAAAAAAAAAAAAAAAAAAAAAAAA00B5
+:100FF000005555555555555555555555555555004B
+:10100000AAAA000000000000000000000000005537
+:10101000AAAAA8000000000000000000000000557F
+:1010200000AAAAA8000000000000000000000000C4
+:1010300055AAAAA80000000000000000000000005F
+:1010400055AAAAA80000000000000000000000004F
+:1010500055AAAAA80000000000000000000000003F
+:1010600055AAAAA80000000000000000000000002F
+:1010700055AAAAA80000000000000000000000001F
+:1010800055AAAAA80000000000000000000000000F
+:1010900055AAAAA8000000000000000000000000FF
+:1010A00055AAAAA8000000000000000000000000EF
+:1010B00055AAAAA8000000000000000000000000DF
+:1010C00055AAAAA8000000000000000000000000CF
+:1010D00055AAAAA8000000000000000000000000BF
+:1010E00055AAAAA8000000000000000000000000AF
+:1010F00055AAAAA80000000000000000000000009F
+:1011000055AAAAA80000000000000000000000008E
+:1011100055AAAAA80000000000000000000000007E
+:1011200000AAAAAA000000000000000000000000C1
+:1011300055AAAAAA0000000000000000000000005C
+:1011400055AAAAAA0000000000000000000000004C
+:1011500055AAAAAA0000000000000000000000003C
+:1011600055AAAAAA0000000000000000000000002C
+:1011700055AAAAAA0000000000000000000000001C
+:1011800055AAAAAA0000000000000000000000000C
+:1011900055AAAAAA000000000000000000000000FC
+:1011A00055AAAAAA000000000000000000000000EC
+:1011B00055AAAAAA000000000000000000000000DC
+:1011C00055AAAAAA000000000000000000000000CC
+:1011D00055AAAAAA000000000000000000000000BC
+:1011E00055AAAAAA000000000000000000000000AC
+:1011F00055AAAAAA0000000000000000000000009C
+:1012000055AAAAAA0000000000000000000000008B
+:1012100055AAAAAA0000000000000000000000007B
+:10122000AAAAAAA8000000000000000000000055C3
+:1012300000AAAAA80000000000000000000000555D
+:1012400000AAAAA80000000000000000000000554D
+:1012500000AAAAA80000000000000000000000553D
+:1012600000AAAAA80000000000000000000000552D
+:1012700000AAAAA80000000000000000000000551D
+:1012800000AAAAA80000000000000000000000550D
+:1012900000AAAAA8000000000000000000000055FD
+:1012A00000AAAAA8000000000000000000000055ED
+:1012B00000AAAAA8000000000000000000000055DD
+:1012C00000AAAAA8000000000000000000000055CD
+:1012D00000AAAAA8000000000000000000000055BD
+:1012E00000AAAAA8000000000000000000000055AD
+:1012F00000AAAAA80000000000000000000000559D
+:1013000000AAAAA80000000000000000000000558C
+:1013100000AAAAA80000000000000000000000557C
+:10132000AAAAAAAA000000000000000000000055C0
+:1013300000AAAAAA0000000000000000000000555A
+:1013400000AAAAAA0000000000000000000000554A
+:1013500000AAAAAA0000000000000000000000553A
+:1013600000AAAAAA0000000000000000000000552A
+:1013700000AAAAAA0000000000000000000000551A
+:1013800000AAAAAA0000000000000000000000550A
+:1013900000AAAAAA000000000000000000000055FA
+:1013A00000AAAAAA000000000000000000000055EA
+:1013B00000AAAAAA000000000000000000000055DA
+:1013C00000AAAAAA000000000000000000000055CA
+:1013D00000AAAAAA000000000000000000000055BA
+:1013E00000AAAAAA000000000000000000000055AA
+:1013F00000AAAAAA0000000000000000000000559A
+:1014000000AAAAAA00000000000000000000005589
+:1014100000AAAAAA00000000000000000000005579
+:1014200000AAAAAAA8000000000000000000000016
+:1014300055AAAAAAA80000000000000000000000B1
+:1014400055AAAAAAA80000000000000000000000A1
+:1014500055AAAAAAA8000000000000000000000091
+:1014600055AAAAAAA8000000000000000000000081
+:1014700055AAAAAAA8000000000000000000000071
+:1014800055AAAAAAA8000000000000000000000061
+:1014900055AAAAAAA8000000000000000000000051
+:1014A00055AAAAAAA8000000000000000000000041
+:1014B00055AAAAAAA8000000000000000000000031
+:1014C00055AAAAAAA8000000000000000000000021
+:1014D00055AAAAAAA8000000000000000000000011
+:1014E00055AAAAAAA8000000000000000000000001
+:1014F00055AAAAAAA80000000000000000000000F1
+:1015000055AAAAAAA80000000000000000000000E0
+:1015100055AAAAAAA80000000000000000000000D0
+:1015200000AAAAAAAA000000000000000000000013
+:1015300055AAAAAAAA0000000000000000000000AE
+:1015400055AAAAAAAA00000000000000000000009E
+:1015500055AAAAAAAA00000000000000000000008E
+:1015600055AAAAAAAA00000000000000000000007E
+:1015700055AAAAAAAA00000000000000000000006E
+:1015800055AAAAAAAA00000000000000000000005E
+:1015900055AAAAAAAA00000000000000000000004E
+:1015A00055AAAAAAAA00000000000000000000003E
+:1015B00055AAAAAAAA00000000000000000000002E
+:1015C00055AAAAAAAA00000000000000000000001E
+:1015D00055AAAAAAAA00000000000000000000000E
+:1015E00055AAAAAAAA0000000000000000000000FE
+:1015F00055AAAAAAAA0000000000000000000000EE
+:1016000055AAAAAAAA0000000000000000000000DD
+:1016100055AAAAAAAA0000000000000000000000CD
+:10162000AAAAAAAAAAA8000000000000000000556B
+:1016300000AAAAAAAAA80000000000000000005505
+:1016400000AAAAAAAAA800000000000000000055F5
+:1016500000AAAAAAAAA800000000000000000055E5
+:1016600000AAAAAAAAA800000000000000000055D5
+:1016700000AAAAAAAAA800000000000000000055C5
+:1016800000AAAAAAAAA800000000000000000055B5
+:1016900000AAAAAAAAA800000000000000000055A5
+:1016A00000AAAAAAAAA80000000000000000005595
+:1016B00000AAAAAAAAA80000000000000000005585
+:1016C00000AAAAAAAAA80000000000000000005575
+:1016D00000AAAAAAAAA80000000000000000005565
+:1016E00000AAAAAAAAA80000000000000000005555
+:1016F00000AAAAAAAAA80000000000000000005545
+:1017000000AAAAAAAAA80000000000000000005534
+:1017100000AAAAAAAAA80000000000000000005524
+:10172000AAAAAAAAAAAA0200000000000000005566
+:1017300000AAAAAAAAAA0200000000000000005500
+:1017400000AAAAAAAAAA02000000000000000055F0
+:1017500000AAAAAAAAAA02000000000000000055E0
+:1017600000AAAAAAAAAA02000000000000000055D0
+:1017700000AAAAAAAAAA02000000000000000055C0
+:1017800000AAAAAAAAAA02000000000000000055B0
+:1017900000AAAAAAAAAA02000000000000000055A0
+:1017A00000AAAAAAAAAA0200000000000000005590
+:1017B00000AAAAAAAAAA0200000000000000005580
+:1017C00000AAAAAAAAAA0200000000000000005570
+:1017D00000AAAAAAAAAA0200000000000000005560
+:1017E00000AAAAAAAAAA0200000000000000005550
+:1017F00000AAAAAAAAAA0200000000000000005540
+:1018000000AAAAAAAAAA020000000000000000552F
+:1018100000AAAAAAAAAA020000000000000000551F
+:1018200000AAAAAAAAAAA8000000000000000000BE
+:1018300055AAAAAAAAAAA800000000000000000059
+:1018400055AAAAAAAAAAA800000000000000000049
+:1018500055AAAAAAAAAAA800000000000000000039
+:1018600055AAAAAAAAAAA800000000000000000029
+:1018700055AAAAAAAAAAA800000000000000000019
+:1018800055AAAAAAAAAAA800000000000000000009
+:1018900055AAAAAAAAAAA8000000000000000000F9
+:1018A00055AAAAAAAAAAA8000000000000000000E9
+:1018B00055AAAAAAAAAAA8000000000000000000D9
+:1018C00055AAAAAAAAAAA8000000000000000000C9
+:1018D00055AAAAAAAAAAA8000000000000000000B9
+:1018E00055AAAAAAAAAAA8000000000000000000A9
+:1018F00055AAAAAAAAAAA800000000000000000099
+:1019000055AAAAAAAAAAA800000000000000000088
+:1019100055AAAAAAAAAAA800000000000000000078
+:1019200000AAAAAAAAAAAAA8000000000000000013
+:1019300055AAAAAAAAAAAAA80000000000000000AE
+:1019400055AAAAAAAAAAAAA800000000000000009E
+:1019500055AAAAAAAAAAAAA800000000000000008E
+:1019600055AAAAAAAAAAAAA800000000000000007E
+:1019700055AAAAAAAAAAAAA800000000000000006E
+:1019800055AAAAAAAAAAAAA800000000000000005E
+:1019900055AAAAAAAAAAAAA800000000000000004E
+:1019A00055AAAAAAAAAAAAA800000000000000003E
+:1019B00055AAAAAAAAAAAAA800000000000000002E
+:1019C00055AAAAAAAAAAAAA800000000000000001E
+:1019D00055AAAAAAAAAAAAA800000000000000000E
+:1019E00055AAAAAAAAAAAAA80000000000000000FE
+:1019F00055AAAAAAAAAAAAA80000000000000000EE
+:101A000055AAAAAAAAAAAAA80000000000000000DD
+:101A100055AAAAAAAAAAAAA80000000000000000CD
+:101A2000AAAAAAAAAAAAAAAAA80000000000005569
+:101A300000AAAAAAAAAAAAAAA80000000000005503
+:101A400000AAAAAAAAAAAAAAA800000000000055F3
+:101A500000AAAAAAAAAAAAAAA800000000000055E3
+:101A600000AAAAAAAAAAAAAAA800000000000055D3
+:101A700000AAAAAAAAAAAAAAA800000000000055C3
+:101A800000AAAAAAAAAAAAAAA800000000000055B3
+:101A900000AAAAAAAAAAAAAAA800000000000055A3
+:101AA00000AAAAAAAAAAAAAAA80000000000005593
+:101AB00000AAAAAAAAAAAAAAA80000000000005583
+:101AC00000AAAAAAAAAAAAAAA80000000000005573
+:101AD00000AAAAAAAAAAAAAAA80000000000005563
+:101AE00000AAAAAAAAAAAAAAA80000000000005553
+:101AF00000AAAAAAAAAAAAAAA80000000000005543
+:101B000000AAAAAAAAAAAAAAA80000000000005532
+:101B100000AAAAAAAAAAAAAAA80000000000005522
+:101B2000AAAAAAAAAAAAAAAAAA0000000000005566
+:101B300000AAAAAAAAAAAAAAAA0000000000005500
+:101B400000AAAAAAAAAAAAAAAA00000000000055F0
+:101B500000AAAAAAAAAAAAAAAA00000000000055E0
+:101B600000AAAAAAAAAAAAAAAA00000000000055D0
+:101B700000AAAAAAAAAAAAAAAA00000000000055C0
+:101B800000AAAAAAAAAAAAAAAA00000000000055B0
+:101B900000AAAAAAAAAAAAAAAA00000000000055A0
+:101BA00000AAAAAAAAAAAAAAAA0000000000005590
+:101BB00000AAAAAAAAAAAAAAAA0000000000005580
+:101BC00000AAAAAAAAAAAAAAAA0000000000005570
+:101BD00000AAAAAAAAAAAAAAAA0000000000005560
+:101BE00000AAAAAAAAAAAAAAAA0000000000005550
+:101BF00000AAAAAAAAAAAAAAAA0000000000005540
+:101C000000AAAAAAAAAAAAAAAA000000000000552F
+:101C100000AAAAAAAAAAAAAAAA000000000000551F
+:101C200055AAAAAAAAAAAAAAAAAA02000000000063
+:101C300055AAAAAAAAAAAAAAAAAA00000200000053
+:101C400000AAAAAAAAAAAAAAAAAAAA020000005599
+:101C500000AAAAAAAAAAAAAAAAAAAA2A0000005561
+:101C600000AAAAAAAAAAAAAAAAAAAA2A0000005551
+:101C700000AAAAAAAAAAAAAAAAAAAA2A0000005541
+:101C800000AAAAAAAAAAAAAAAAAAAA2A0000005531
+:101C900000AAAAAAAAAAAAAAAAAAAA2A0000005521
+:101CA00000AAAAAAAAAAAAAAAAAAAA2A0000005511
+:101CB00000AAAAAAAAAAAAAAAAAAAA2A0000005501
+:101CC00000AAAAAAAAAAAAAAAAAAAA2A00000055F1
+:101CD00000AAAAAAAAAAAAAAAAAAAA2A00000055E1
+:101CE00000AAAAAAAAAAAAAAAAAAAA2A00000055D1
+:101CF00000AAAAAAAAAAAAAAAAAAAA2A00000055C1
+:101D000000AAAAAAAAAAAAAAAAAAAA2A00000055B0
+:101D100000AAAAAAAAAAAAAAAAAAAA2A00000055A0
+:101D200000AAAAAAAAAAAAAAAAAAAA2A0000005590
+:101D300000AAAAAAAAAAAAAAAAAAAA2A0000005580
+:101D400000AAAAAAAAAAAAAAAAAAAAAA00000055F0
+:101D500055AAAAAAAAAAAAAAAAAAAA2A2A02000034
+:101D600055AAAAAAAAAAAAAAAAAAAA2A2A02000024
+:101D700055AAAAAAAAAAAAAAAAAAAA2A2A02000014
+:101D800055AAAAAAAAAAAAAAAAAAAA2A2A02000004
+:101D900055AAAAAAAAAAAAAAAAAAAA2A2A020000F4
+:101DA00055AAAAAAAAAAAAAAAAAAAA2A2A020000E4
+:101DB00055AAAAAAAAAAAAAAAAAAAA2A2A020000D4
+:101DC00055AAAAAAAAAAAAAAAAAAAA2A2A020000C4
+:101DD00055AAAAAAAAAAAAAAAAAAAA2A2A020000B4
+:101DE00055AAAAAAAAAAAAAAAAAAAA2A2A020000A4
+:101DF00055AAAAAAAAAAAAAAAAAAAA2A2A02000094
+:101E000055AAAAAAAAAAAAAAAAAAAA2A2A02000083
+:101E100055AAAAAAAAAAAAAAAAAAAA2A2A02000073
+:101E200055AAAAAAAAAAAAAAAAAAAA2A2A02000063
+:101E300055AAAAAAAAAAAAAAAAAAAA2A2A02000053
+:101E400055AAAAAAAAAAAAAAAAAAAAAAAA02000043
+:101E500055A9A9A9A9A9A9A9A9A9A9A929010100BF
+:101E600055A9A9A9A9A9A9A9A9A9A9A929010100AF
+:101E700055A9A9A9A9A9A9A9A9A9A9A9290101009F
+:101E800055A9A9A9A9A9A9A9A9A9A9A9290101008F
+:101E900055A9A9A9A9A9A9A9A9A9A9A9290101007F
+:101EA00055A9A9A9A9A9A9A9A9A9A9A9290101006F
+:101EB00055A9A9A9A9A9A9A9A9A9A9A9290101005F
+:101EC00055A9A9A9A9A9A9A9A9A9A9A9290101004F
+:101ED00055A9A9A9A9A9A9A9A9A9A9A9290101003F
+:101EE00055A9A9A9A9A9A9A9A9A9A9A9290101002F
+:101EF00055A9A9A9A9A9A9A9A9A9A9A9290101001F
+:101F000055A9A9A9A9A9A9A9A9A9A9A9290101000E
+:101F100055A9A9A9A9A9A9A9A9A9A9A929010100FE
+:101F200055A9A9A9A9A9A9A9A9A9A9A929010100EE
+:101F300055A9A9A9A9A9A9A9A9A9A9A929010100DE
+:101F400055A9A9A9A9A9A9A9A9A9A9A9A90101004E
+:101F500000A9A9A9A9A9A9A9A9A9A9A92929015596
+:101F600000A9A9A9A9A9A9A9A9A9A9A92929015586
+:101F700000A9A9A9A9A9A9A9A9A9A9A92929015576
+:101F800000A9A9A9A9A9A9A9A9A9A9A92929015566
+:101F900000A9A9A9A9A9A9A9A9A9A9A92929015556
+:101FA00000A9A9A9A9A9A9A9A9A9A9A92929015546
+:101FB00000A9A9A9A9A9A9A9A9A9A9A92929015536
+:101FC00000A9A9A9A9A9A9A9A9A9A9A92929015526
+:101FD00000A9A9A9A9A9A9A9A9A9A9A92929015516
+:101FE00000A9A9A9A9A9A9A9A9A9A9A92929015506
+:101FF00000A9A9A9A9A9A9A9A9A9A9A929290155F6
+:1020000000A9A9A9A9A9A9A9A9A9A9A929290155E5
+:1020100000A9A9A9A9A9A9A9A9A9A9A929290155D5
+:1020200000A9A9A9A9A9A9A9A9A9A9A929290155C5
+:1020300000A9A9A9A9A9A9A9A9A9A9A929290155B5
+:1020400000A9A9A9A9A9A9A9A9A9A9A9A9A90155A5
+:1020500000A9A9A9A9A9A9A9A9A9A9A9A929015515
+:1020600000A9A9A9A9A9A9A9A9A9A9A9A929015505
+:1020700000A9A9A9A9A9A9A9A9A9A9A9A9290155F5
+:1020800000A9A9A9A9A9A9A9A9A9A9A9A9290155E5
+:1020900000A9A9A9A9A9A9A9A9A9A9A9A9290155D5
+:1020A00000A9A9A9A9A9A9A9A9A9A9A9A9290155C5
+:1020B00000A9A9A9A9A9A9A9A9A9A9A9A9290155B5
+:1020C00000A9A9A9A9A9A9A9A9A9A9A9A9290155A5
+:1020D00000A9A9A9A9A9A9A9A9A9A9A9A929015595
+:1020E00000A9A9A9A9A9A9A9A9A9A9A9A929015585
+:1020F00000A9A9A9A9A9A9A9A9A9A9A9A929015575
+:1021000000A9A9A9A9A9A9A9A9A9A9A9A929015564
+:1021100000A9A9A9A9A9A9A9A9A9A9A9A929015554
+:1021200000A9A9A9A9A9A9A9A9A9A9A9A929015544
+:1021300000A9A9A9A9A9A9A9A9A9A9A9A929015534
+:1021400000A9A9A9A9A9A9A9A9A9A9A9A9A90155A4
+:102150005595959595959595959595959595150183
+:102160005595959595959595959595959595150173
+:102170000055555555555555555555555555555663
+:102180000055555555555555555555555555555653
+:10219000555555555555555555555555555555162E
+:1021A000555555555555555555555555555555161E
+:1021B0000055555555555555555555555555556811
+:1021C0000055555555555555555555555555556801
+:1021D0005555555555555555555555555555556A9A
+:1021E0005555555555555555555555555555556A8A
+:1021F00000555555555555555555555555555580B9
+:1022000000555555555555555555555555555580A8
+:10221000555555555555555555555555555555AA19
+:10222000555555555555555555555555555555AA09
+:1022300000565656565656565656565656565600EA
+:1022400000565656565656565656565656565600DA
+:10225000555656565656565656565656565656AACB
+:10226000555656565656565656565656565656AABB
+:10227000005A5A5A5A5A5A5A5A5A5A5A5A5A5A0072
+:10228000005A5A5A5A5A5A5A5A5A5A5A5A5A5A0062
+:10229000555A5A5A5A5A5A5A5A5A5A5A5A5A5AAA53
+:1022A000555A5A5A5A5A5A5A5A5A5A5A5A5A5AAA43
+:1022B000006A6A6A6A6A6A6A6A6A6A6A6A6A6A0052
+:1022C000006A6A6A6A6A6A6A6A6A6A6A6A6A6A0042
+:1022D000556A6A6A6A6A6A6A6A6A6A6A6A6A6AAA33
+:1022E000556A6A6A6A6A6A6A6A6A6A6A6A6A6AAA23
+:1022F000006A6A6A6A6A6A6A6A6A6A6A6A6A6A0012
+:10230000006A6A6A6A6A6A6A6A6A6A6A6A6A6A0001
+:1023100055AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA72
+:1023200055AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA62
+:1023300000AAAAAAAAAAAAAAAAAAAAAAAAAAAA0051
+:1023400000A9A9A9A9A9A9A9A9A9A9A9A9A9A80050
+:1023500055A9A9A9A9A9A9A9A9A9A9A9A8A8A8AA43
+:1023600055A9A9A9A9A9A9A9A9A9A9A9A8A8A8AA33
+:1023700000A9A9A9A9A9A9A9A9A9A8A8A9A8A80023
+:1023800000A9A9A9A9A9A9A9A9A9A9A8A8A8A80013
+:1023900055A5A5A5A5A5A5A5A5A4A4A4A4A4A0AA42
+:1023A00055A5A5A5A5A5A5A5A4A4A4A4A4A4A0AA33
+:1023B00000A5A5A5A5A5A5A4A4A4A4A4A4A0A00027
+:1023C00000A5A5A5A5A5A4A4A4A4A4A4A4A0A00018
+:1023D00055A5A5A5A5A5A5A4A4A4A4A4A0A0A0AA0C
+:1023E00055A5A5A5A5A5A5A4A4A4A4A4A0A0A0AAFC
+:1023F00055A5A5A5A5A5A5A4A4A4A4A4A0A0A0AAEC
+:1024000055A5A5A5A5A5A5A4A4A4A4A4A0A0A0AADB
+:1024100055A5A5A5A5A5A5A4A4A4A4A4A0A0A0AACB
+:1024200055A5A5A5A5A5A5A4A4A4A4A4A0A0A0AABB
+:1024300055A5A5A5A5A5A5A4A4A4A4A4A0A0A0AAAB
+:1024400055A5A5A5A5A5A5A4A4A4A4A4A0A0A0AA9B
+:1024500055A5A5A5A5A5A5A4A4A4A4A4A0A0A0AA8B
+:1024600055A5A5A5A5A5A5A4A4A4A4A4A0A0A0AA7B
+:1024700055A5A5A5A5A5A5A4A4A4A4A4A0A0A0AA6B
+:1024800055A5A5A5A5A5A5A4A4A4A4A4A0A0A0AA5B
+:1024900055A5A5A5A5A5A5A4A4A4A4A4A0A0A0AA4B
+:1024A00055A5A5A5A5A5A5A4A4A4A4A4A0A0A0AA3B
+:1024B00055A5A5A5A5A5A5A4A4A4A4A4A0A0A0AA2B
+:1024C00055A5A5A5A5A5A5A4A4A4A4A4A0A0A0A81D
+:1024D00055A5A5A5A5A4A4A4A4A4A4A0A0A0A0AA11
+:1024E00055A5A5A5A5A4A4A4A4A4A4A0A0A0A0AA01
+:1024F00055A5A5A5A5A4A4A4A4A4A4A0A0A0A0AAF1
+:1025000055A5A5A5A5A4A4A4A4A4A4A0A0A0A0AAE0
+:1025100055A5A5A5A5A4A4A4A4A4A4A0A0A0A0AAD0
+:1025200055A5A5A5A5A4A4A4A4A4A4A0A0A0A0AAC0
+:1025300055A5A5A5A5A4A4A4A4A4A4A0A0A0A0AAB0
+:1025400055A5A5A5A5A4A4A4A4A4A4A0A0A0A0AAA0
+:1025500055A5A5A5A5A4A4A4A4A4A4A0A0A0A0AA90
+:1025600055A5A5A5A5A4A4A4A4A4A4A0A0A0A0AA80
+:1025700055A5A5A5A5A4A4A4A4A4A4A0A0A0A0AA70
+:1025800055A5A5A5A5A4A4A4A4A4A4A0A0A0A0AA60
+:1025900055A5A5A5A5A4A4A4A4A4A4A0A0A0A0AA50
+:1025A00055A5A5A5A5A4A4A4A4A4A4A0A0A0A0AA40
+:1025B00055A5A5A5A5A4A4A4A4A4A4A0A0A0A0AA30
+:1025C00055A5A5A5A5A4A4A4A4A4A4A0A0A0A0A822
+:1025D00000A5A5A5A5A4A4A4A4A4A0A0A0A0A00013
+:1025E00000A5A5A5A4A4A4A4A4A4A0A0A0A0A00004
+:1025F000559595959494949494909090909080AAE9
+:10260000559595959494949494909090909080AAD8
+:10261000559595959494949494909090909080AAC8
+:10262000559595959494949494909090909080AAB8
+:10263000559595959494949494909090909080AAA8
+:10264000559595959494949494909090909080AA98
+:10265000559595959494949494909090909080AA88
+:10266000559595959494949494909090909080AA78
+:10267000559595959494949494909090909080AA68
+:10268000559595959494949494909090909080AA58
+:10269000559595959494949494909090909080AA48
+:1026A000559595959494949494909090909080AA38
+:1026B000559595959494949494909090909080AA28
+:1026C000559595959494949494909090909080AA18
+:1026D000559595959494949494909090909080AA08
+:1026E000559595959494949494909090909080A8FA
+:1026F000559595949494949494909090909080AAE9
+:10270000559595949494949494909090909080AAD8
+:10271000559595949494949494909090909080AAC8
+:10272000559595949494949494909090909080AAB8
+:10273000559595949494949494909090909080AAA8
+:10274000559595949494949494909090909080AA98
+:10275000559595949494949494909090909080AA88
+:10276000559595949494949494909090909080AA78
+:10277000559595949494949494909090909080AA68
+:10278000559595949494949494909090909080AA58
+:10279000559595949494949494909090909080AA48
+:1027A000559595949494949494909090909080AA38
+:1027B000559595949494949494909090909080AA28
+:1027C000559595949494949494909090909080AA18
+:1027D000559595949494949494909090909080AA08
+:1027E000559595949494949494909090909080A8FA
+:1027F00000959595949494949090909090808000FA
+:1028000000959594949494909090909090808000EE
+:10281000559594949494909090909090808080AAF4
+:10282000559594949494909090909090808080AAE4
+:10283000559594949494909090909090808080AAD4
+:10284000559594949494909090909090808080AAC4
+:10285000559594949494909090909090808080AAB4
+:10286000559594949494909090909090808080AAA4
+:10287000559594949494909090909090808080AA94
+:10288000559594949494909090909090808080AA84
+:10289000559594949494909090909090808080AA74
+:1028A000559594949494909090909090808080AA64
+:1028B000559594949494909090909090808080AA54
+:1028C000559594949494909090909090808080AA44
+:1028D000559594949494909090909090808080AA34
+:1028E000559594949494909090909090808080AA24
+:1028F000559594949494909090909090808080AA14
+:10290000559594949494909090909090808080A00D
+:10291000559594949494909090909080808080AA03
+:10292000559594949494909090909080808080AAF3
+:10293000559594949494909090909080808080AAE3
+:10294000559594949494909090909080808080AAD3
+:10295000559594949494909090909080808080AAC3
+:10296000559594949494909090909080808080AAB3
+:10297000559594949494909090909080808080AAA3
+:10298000559594949494909090909080808080AA93
+:10299000559594949494909090909080808080AA83
+:1029A000559594949494909090909080808080AA73
+:1029B000559594949494909090909080808080AA63
+:1029C000559594949494909090909080808080AA53
+:1029D000559594949494909090909080808080AA43
+:1029E000559594949494909090909080808080AA33
+:1029F000559594949494909090909080808080AA23
+:102A0000559594949494909090909080808080A01C
+:102A10000094949494909090909080808080800016
+:102A20000094949494909090909080808080800006
+:102A3000549494949090909090808080808080A80E
+:102A4000549494949090909090808080808080A8FE
+:102A5000549494949090909090808080808080A8EE
+:102A6000549494949090909090808080808080A8DE
+:102A7000549494949090909090808080808080A8CE
+:102A8000549494949090909090808080808080A8BE
+:102A9000549494949090909090808080808080A8AE
+:102AA000549494949090909090808080808080A89E
+:102AB000549494949090909090808080808080A88E
+:102AC000549494949090909090808080808080A87E
+:102AD000549494949090909090808080808080A86E
+:102AE000549494949090909090808080808080A85E
+:102AF000549494949090909090808080808080A84E
+:102B0000549494949090909090808080808080A83D
+:102B1000549494949090909090808080808080A82D
+:102B2000549494949090909090808080808080A025
+:102B3000549494949090909090808080808080A80D
+:102B4000549494949090909090808080808080A8FD
+:102B5000549494949090909090808080808080A8ED
+:102B6000549494949090909090808080808080A8DD
+:102B7000549494949090909090808080808080A8CD
+:102B8000549494949090909090808080808080A8BD
+:102B9000549494949090909090808080808080A8AD
+:102BA000549494949090909090808080808080A89D
+:102BB000549494949090909090808080808080A88D
+:102BC000549494949090909090808080808080A87D
+:102BD000549494949090909090808080808080A86D
+:102BE000549494949090909090808080808080A85D
+:102BF000549494949090909090808080808080A84D
+:102C0000549494949090909090808080808080A83C
+:102C1000549494949090909090808080808080A82C
+:102C2000549494949090909090808080808080A024
+:102C300000545454505050504040404040400000D8
+:102C400000545454505050404040404040400000D8
+:102C5000545454505050404040404040400000A820
+:102C6000545454505050404040404040400000A810
+:102C7000545454505050404040404040400000A800
+:102C8000545454505050404040404040400000A8F0
+:102C9000545454505050404040404040400000A8E0
+:102CA000545454505050404040404040400000A8D0
+:102CB000545454505050404040404040400000A8C0
+:102CC000545454505050404040404040400000A8B0
+:102CD000545454505050404040404040400000A8A0
+:102CE000545454505050404040404040400000A890
+:102CF000545454505050404040404040400000A880
+:102D0000545454505050404040404040400000A86F
+:102D1000545454505050404040404040400000A85F
+:102D2000545454505050404040404040400000A84F
+:102D3000545454505050404040404040400000A83F
+:102D40005454545050504040404040404000008057
+:102D5000545450505050404040404040000000A863
+:102D6000545450505050404040404040000000A853
+:102D7000545450505050404040404040000000A843
+:102D8000545450505050404040404040000000A833
+:102D9000545450505050404040404040000000A823
+:102DA000545450505050404040404040000000A813
+:102DB000545450505050404040404040000000A803
+:102DC000545450505050404040404040000000A8F3
+:102DD000545450505050404040404040000000A8E3
+:102DE000545450505050404040404040000000A8D3
+:102DF000545450505050404040404040000000A8C3
+:102E0000545450505050404040404040000000A8B2
+:102E1000545450505050404040404040000000A8A2
+:102E2000545450505050404040404040000000A892
+:102E3000545450505050404040404040000000A882
+:102E4000545450505050404040404040000000809A
+:102E500000505050504040404040400000000000B2
+:102E60000C5C5C5C5C4C4C4C4C4C4C0C0C0C0C0CE2
+:102E7000505050504040404040400000000000A0F2
+:102E8000505050504040404040400000000000A0E2
+:102E9000505050504040404040400000000000A0D2
+:102EA000505050504040404040400000000000A0C2
+:102EB000505050504040404040400000000000A0B2
+:102EC000505050504040404040400000000000A0A2
+:102ED000505050504040404040400000000000A092
+:102EE000505050504040404040400000000000A082
+:102EF000505050504040404040400000000000A072
+:102F0000505050504040404040400000000000A061
+:102F1000505050504040404040400000000000A051
+:102F2000505050504040404040400000000000A041
+:102F3000505050504040404040400000000000A031
+:102F4000505050504040404040400000000000A021
+:102F5000505050504040404040400000000000A011
+:102F60005050505040404040404000000000008021
+:102F7000505050504040404040400000000000A0F1
+:102F8000505050504040404040400000000000A0E1
+:102F9000505050504040404040400000000000A0D1
+:102FA000505050504040404040400000000000A0C1
+:102FB000505050504040404040400000000000A0B1
+:102FC000505050504040404040400000000000A0A1
+:102FD000505050504040404040400000000000A091
+:102FE000505050504040404040400000000000A081
+:102FF000505050504040404040400000000000A071
+:10300000505050504040404040400000000000A060
+:10301000505050504040404040400000000000A050
+:10302000505050504040404040400000000000A040
+:10303000505050504040404040400000000000A030
+:10304000505050504040404040400000000000A020
+:10305000505050504040404040400000000000A010
+:103060005050505040404040404000000000008020
+:1030700000505050404040404040000000000000E0
+:1030800000505050404040404040000000000000D0
+:10309000505050404040404040000000000000A020
+:1030A000505050404040404040000000000000A010
+:1030B000505050404040404040000000000000A000
+:1030C000505050404040404040000000000000A0F0
+:1030D000505050404040404040000000000000A0E0
+:1030E000505050404040404040000000000000A0D0
+:1030F000505050404040404040000000000000A0C0
+:10310000505050404040404040000000000000A0AF
+:10311000505050404040404040000000000000A09F
+:10312000505050404040404040000000000000A08F
+:10313000505050404040404040000000000000A07F
+:10314000505050404040404040000000000000A06F
+:10315000505050404040404040000000000000A05F
+:10316000505050404040404040000000000000A04F
+:10317000505050404040404040000000000000A03F
+:10318000505050404040404040000000000000804F
+:10319000505040404040404040000000000000A02F
+:1031A000505040404040404040000000000000A01F
+:1031B000505040404040404040000000000000A00F
+:1031C000505040404040404040000000000000A0FF
+:1031D000505040404040404040000000000000A0EF
+:1031E000505040404040404040000000000000A0DF
+:1031F000505040404040404040000000000000A0CF
+:10320000505040404040404040000000000000A0BE
+:10321000505040404040404040000000000000A0AE
+:10322000505040404040404040000000000000A09E
+:10323000505040404040404040000000000000A08E
+:10324000505040404040404040000000000000A07E
+:10325000505040404040404040000000000000A06E
+:10326000505040404040404040000000000000A05E
+:10327000505040404040404040000000000000A04E
+:10328000505040404040404040000000000000805E
+:10329000004040404040404000000000000000006E
+:1032A000307070707070703030303030303030309E
+:1032B000404040404040000000000000000000800E
+:1032C00040404040404000000000000000000080FE
+:1032D00000404040400000000000000000000000EE
+:1032E00000404040400000000000000000000000DE
+:1032F000404040400000000000000000000000804E
+:10330000404040400000000000000000000000803D
+:1033100000404040000000000000000000000000ED
+:1033200000404040000000000000000000000000DD
+:10333000404040000000000000000000000000804D
+:10334000404000000000000000000000000000807D
+:10335000000000000000000000000000000000006D
+:10336000C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C05D
+:10337000000000000000000000000000000000004D
+:10338000000000000000000000000000000000003D
+:10339000000000000000000000000000000000002D
+:1033A000000000000000000000000000000000001D
+:1033B000000000000000000000000000000000000D
+:1033C00000000000000000000000000000000000FD
+:1033D00000000000000000000000000000000000ED
+:1033E00000000000000000000000000000000000DD
+:1033F00000000000000000000000000000000000CD
+:10340000AA5555A9A9A9A9A9A9A9A9A9A9A9A95527
+:10341000AA55555555555555555555555555555507
+:10342000AA555555555555555555555555555555F7
+:10343000AA555555555555555555555555555555E7
+:10344000AA555555555555555555555555555555D7
+:10345000AA555555555555555555555555555555C7
+:10346000AA555555555555555555555555555555B7
+:10347000AA555555555555555555555555555555A7
+:10348000AA55555555555555555555555555555597
+:10349000AA55555555555555555555555555555587
+:1034A000AA55555555555555555555555555555577
+:1034B000AA55555555555555555555555555555567
+:1034C000AA55555555555555555555555555555557
+:1034D000AA55555555555555555555555555555547
+:1034E000AA55555555555555555555555555555537
+:1034F000AA555A6A6AAAAAAAAAAAAAAAAAAAAA00FB
+:10350000AA5555A9A9A9A9A9A9A9A9A9A9A9A95526
+:10351000AA55555555555555555555555555555506
+:10352000AA555555555555555555555555555555F6
+:10353000AA555555555555555555555555555555E6
+:10354000AA555555555555555555555555555555D6
+:10355000AA555555555555555555555555555555C6
+:10356000AA555555555555555555555555555555B6
+:10357000AA555555555555555555555555555555A6
+:10358000AA55555555555555555555555555555596
+:10359000AA55555555555555555555555555555586
+:1035A000AA55555555555555555555555555555576
+:1035B000AA55555555555555555555555555555566
+:1035C000AA55555555555555555555555555555556
+:1035D000AA55555555555555555555555555555546
+:1035E000AA55555555555555555555555555555536
+:1035F000AA555A5A6A6AAAAAAAAAAAAAAAAAAA004A
+:1036000000555555A9A9A9A9A9A9A9A9A9A9A90078
+:103610000055555555555555555555555555550004
+:1036200000555555555555555555555555555500F4
+:1036300000555555555555555555555555555500E4
+:1036400000555555555555555555555555555500D4
+:1036500000555555555555555555555555555500C4
+:1036600000555555555555555555555555555500B4
+:1036700000555555555555555555555555555500A4
+:103680000055555555555555555555555555550094
+:103690000055555555555555555555555555550084
+:1036A0000055555555555555555555555555550074
+:1036B0000055555555555555555555555555550064
+:1036C0000055555555555555555555555555550054
+:1036D0000055555555555555555555555555550044
+:1036E0000055555555555555555555555555550034
+:1036F0000055565A5A6AAAAAAAAAAAAAAAAAAA0007
+:10370000005555556969A9A9A9A9A9A9A9A9A900F7
+:103710000055555555555555555555555555550003
+:1037200000555555555555555555555555555500F3
+:1037300000555555555555555555555555555500E3
+:1037400000555555555555555555555555555500D3
+:1037500000555555555555555555555555555500C3
+:1037600000555555555555555555555555555500B3
+:1037700000555555555555555555555555555500A3
+:103780000055555555555555555555555555550093
+:103790000055555555555555555555555555550083
+:1037A0000055555555555555555555555555550073
+:1037B0000055555555555555555555555555550063
+:1037C0000055555555555555555555555555550053
+:1037D0000055555555555555555555555555550043
+:1037E0000055555555555555555555555555550033
+:1037F0000055565A5A5AAAAAAAAAAAAAAAAAAA0016
+:10380000AA5555555555A9A9A9A9A9A9A9A9A9551F
+:10381000AA55555555555555555555555555555503
+:10382000AA555555555555555555555555555555F3
+:10383000AA555555555555555555555555555555E3
+:10384000AA555555555555555555555555555555D3
+:10385000AA555555555555555555555555555555C3
+:10386000AA555555555555555555555555555555B3
+:10387000AA555555555555555555555555555555A3
+:10388000AA55555555555555555555555555555593
+:10389000AA55555555555555555555555555555583
+:1038A000AA55555555555555555555555555555573
+:1038B000AA55555555555555555555555555555563
+:1038C000AA55555555555555555555555555555553
+:1038D000AA55555555555555555555555555555543
+:1038E000AA55555555555555555555555555555533
+:1038F000AA55555A5A5AAAAAAAAAAAAAAAAAAA006C
+:10390000AA5555555555A9A9A9A9A9A9A9A9A9551E
+:10391000AA55555555555555555555555555555502
+:10392000AA555555555555555555555555555555F2
+:10393000AA555555555555555555555555555555E2
+:10394000AA555555555555555555555555555555D2
+:10395000AA555555555555555555555555555555C2
+:10396000AA555555555555555555555555555555B2
+:10397000AA555555555555555555555555555555A2
+:10398000AA55555555555555555555555555555592
+:10399000AA55555555555555555555555555555582
+:1039A000AA55555555555555555555555555555572
+:1039B000AA55555555555555555555555555555562
+:1039C000AA55555555555555555555555555555552
+:1039D000AA55555555555555555555555555555542
+:1039E000AA55555555555555555555555555555532
+:1039F000AA55555A5A5AAAAAAAAAAAAAAAAAAA006B
+:103A000000555555555595A9A9A9A9A9A9A9AA002F
+:103A100000555555555555555555555555555600FF
+:103A200000555555555555555555555555555500F0
+:103A300000555555555555555555555555555500E0
+:103A400000555555555555555555555555555500D0
+:103A500000555555555555555555555555555500C0
+:103A600000555555555555555555555555555500B0
+:103A700000555555555555555555555555555500A0
+:103A80000055555555555555555555555555550090
+:103A90000055555555555555555555555555550080
+:103AA0000055555555555555555555555555550070
+:103AB0000055555555555555555555555555550060
+:103AC0000055555555555555555555555555550050
+:103AD0000055555555555555555555555555550040
+:103AE0000055555555555555555555555555550030
+:103AF000005555565A5A5AAAAAAAAAAAAAAAAA0068
+:103B000000555555555555A9A9A9A9A9A9A9AA006E
+:103B100000555555555555555555555555555600FE
+:103B200000555555555555555555555555555600EE
+:103B300000555555555555555555555555555500DF
+:103B400000555555555555555555555555555500CF
+:103B500000555555555555555555555555555500BF
+:103B600000555555555555555555555555555500AF
+:103B7000005555555555555555555555555555009F
+:103B8000005555555555555555555555555555008F
+:103B9000005555555555555555555555555555007F
+:103BA000005555555555555555555555555555006F
+:103BB000005555555555555555555555555555005F
+:103BC000005555555555555555555555555555004F
+:103BD000005555555555555555555555555555003F
+:103BE000005555555555555555555555555555002F
+:103BF000005555565A5A5AAAAAAAAAAAAAAAAA0067
+:103C0000AA555555555555A5A9A9A9A9A9A9AA5572
+:103C1000AA555555555555555555555555555655FE
+:103C2000AA555555555555555555555555555655EE
+:103C3000AA555555555555555555555555555655DE
+:103C4000AA555555555555555555555555555555CF
+:103C5000AA555555555555555555555555555555BF
+:103C6000AA555555555555555555555555555555AF
+:103C7000AA5555555555555555555555555555559F
+:103C8000AA5555555555555555555555555555558F
+:103C9000AA5555555555555555555555555555557F
+:103CA000AA5555555555555555555555555555556F
+:103CB000AA5555555555555555555555555555555F
+:103CC000AA5555555555555555555555555555554F
+:103CD000AA5555555555555555555555555555553F
+:103CE000AA5555555555555555555555555555552F
+:103CF000AA555555565A5A5AAAAAAAAAAAAAAA0011
+:103D0000AA55555555555595A5A5A5A9A9A9AA558D
+:103D1000AA555555555555555555555555555655FD
+:103D2000AA555555555555555555555555555655ED
+:103D3000AA555555555555555555555555555655DD
+:103D4000AA555555555555555555555555555655CD
+:103D5000AA555555555555555555555555555655BD
+:103D6000AA555555555555555555555555555655AD
+:103D7000AA5555555555555555555555555556559D
+:103D8000AA5555555555555555555555555556558D
+:103D9000AA5555555555555555555555555556557D
+:103DA000AA5555555555555555555555555556556D
+:103DB000AA5555555555555555555555555556555D
+:103DC000AA5555555555555555555555555556554D
+:103DD000AA5555555555555555555555555555553E
+:103DE000AA5555555555555555555555555555552E
+:103DF000AA55555556565A5AAAAAAAAAAAAAAA0014
+:103E00000055555555555555959595A5A9AAAA00FE
+:103E100000555555555555555555555555565600FA
+:103E200000555555555555555555555555555600EB
+:103E300000555555555555555555555555555600DB
+:103E400000555555555555555555555555555600CB
+:103E500000555555555555555555555555555600BB
+:103E600000555555555555555555555555555600AB
+:103E7000005555555555555555555555555556009B
+:103E8000005555555555555555555555555556008B
+:103E9000005555555555555555555555555556007B
+:103EA000005555555555555555555555555556006B
+:103EB000005555555555555555555555555556005B
+:103EC000005555555555555555555555555556004B
+:103ED000005555555555555555555555555556003B
+:103EE000005555555555555555555555555555002C
+:103EF0000055555555555A5AAAAAAAAAAAAAAA00BF
+:103F0000005555555555555595955596A6A6A60057
+:103F100000555555555555555555555656565600F7
+:103F200000555555555555555555555555565600E9
+:103F300000555555555555555555555555555600DA
+:103F400000555555555555555555555555555600CA
+:103F500000555555555555555555555555555600BA
+:103F600000555555555555555555555555555600AA
+:103F7000005555555555555555555555555556009A
+:103F8000005555555555555555555555555556008A
+:103F9000005555555555555555555555555556007A
+:103FA000005555555555555555555555555556006A
+:103FB000005555555555555555555555555556005A
+:103FC000005555555555555555555555555556004A
+:103FD000005555555555555555555555555556003A
+:103FE000005555555555555555555555555556002A
+:103FF0000055555555555559AAAAAAAAAAAAAA00C4
+:10400000AA5555AAAAAAAAAAAAAAAAAAAAAAAA550F
+:10401000AA555556565656565656565656565655EF
+:10402000AA555555555555555555555656565655E7
+:10403000AA555555555555555555555555565655D9
+:10404000AA555555555555555555555555555655CA
+:10405000AA555555555555555555555555555655BA
+:10406000AA555555555555555555555555555655AA
+:10407000AA5555555555555555555555555556559A
+:10408000AA5555555555555555555555555556558A
+:10409000AA5555555555555555555555555556557A
+:1040A000AA5555555555555555555555555556556A
+:1040B000AA5555555555555555555555555556555A
+:1040C000AA5555555555555555555555555556554A
+:1040D000AA5555555555555555555555555556553A
+:1040E000AA5555555555555555555555555556552A
+:1040F000AA5555555555555559AAAAAAAAAAAA5519
+:10410000AA556AAAAAAAAAAAAAAAAAAAAAAAAA55F9
+:10411000AA5556AAAAAAAAAAAAAAAAAAAAAAAA55FD
+:10412000AA5555AAAAAAAAAAAAAAAAAAAAAAAA55EE
+:10413000AA5555A9A9A9A9A9A9A9A9AAAAAAAA55E6
+:10414000AA5555A9A9A9A9A9A9A9A9A9A9AAAA55D8
+:10415000AA5555A9A9A9A9A9A9A9A9A9A9AAAA55C8
+:10416000AA5555A9A9A9A9A9A9A9A9A9A9AAAA55B8
+:10417000AA5555A9A9A9A9A9A9A9A9A9A9AAAA55A8
+:10418000AA5555A9A9A9A9A9A9A9A9A9A9AAAA5598
+:10419000AA5555A9A9A9A9A9A9A9A9A9A9AAAA5588
+:1041A000AA5555A9A9A9A9A9A9A9A9A9A9AAAA5578
+:1041B000AA55555555555555555555555556565558
+:1041C000AA55555555555555555555555556565548
+:1041D000AA55555555555555555555555555565539
+:1041E000AA55555555555555555555555555565529
+:1041F000AA55555555555555556969AAAAAAAA559E
+:104200000055AAAAAAAAAAAAAAAAAAAAAAAAAA00B7
+:104210000055AAAAAAAAAAAAAAAAAAAAAAAAAA00A7
+:104220000055AAAAAAAAAAAAAAAAAAAAAAAAAA0097
+:104230000055A9AAAAAAAAAAAAAAAAAAAAAAAA0088
+:104240000055A9A9A9A9A9A9A9A9A9AAAAAAAA0080
+:104250000055A9A9A9A9A9A9A9A9A9AAAAAAAA0070
+:104260000055A9A9A9A9A9A9A9A9A9AAAAAAAA0060
+:104270000055A9A9A9A9A9A9A9A9A9AAAAAAAA0050
+:104280000055A9A9A9A9A9A9A9A9A9AAAAAAAA0040
+:104290000055A9A9A9A9A9A9A9A9A9AAAAAAAA0030
+:1042A0000055A9A9A9A9A9A9A9A9A9AAAAAAAA0020
+:1042B000005555A9A9A9A9A9A9A9A9AAAAAAAA0064
+:1042C0000055555555555555555555565656560044
+:1042D0000055555555555555555555555556AA00E2
+:1042E0000055555555555555555555555555560027
+:1042F000005555555555555555555569AAAAAA0005
+:104300000055AAAAAAAAAAAAAAAAAAAAAAAAAA00B6
+:1043100000A9AAAAAAAAAAAAAAAAAAAAAAAAAA0052
+:1043200000A9AAAAAAAAAAAAAAAAAAAAAAAAAA0042
+:1043300000A9AAAAAAAAAAAAAAAAAAAAAAAAAA0032
+:1043400000A9A9AAAAAAAAAAAAAAAAAAAAAAAA0023
+:1043500000A9A9AAAAAAAAAAAAAAAAAAAAAAAA0013
+:1043600000A9A9AAAAAAAAAAAAAAAAAAAAAAAA0003
+:1043700000A9A9AAAAAAAAAAAAAAAAAAAAAAAA00F3
+:1043800000A9A9AAAAAAAAAAAAAAAAAAAAAAAA00E3
+:1043900000A9A9AAAAAAAAAAAAAAAAAAAAAAAA00D3
+:1043A00000A9A9AAAAAAAAAAAAAAAAAAAAAAAA00C3
+:1043B0000055A9AAAAAAAAAAAAAAAAAAAAAAAA0007
+:1043C000005555A9A9A9A9A9A9A9A9AAAAAAAA0053
+:1043D0000055555555555555555555565656AA00DF
+:1043E0000055555555555555555555555556560025
+:1043F000005555555555555555555555A9AA56006D
+:10440000AA55AAAAAAAAAAAAAAAAAAAAAAAAAA55B6
+:10441000AAA9AAAAAAAAAAAAAAAAAAAAAAAAAA5552
+:10442000AAA9AAAAAAAAAAAAAAAAAAAAAAAAAA5542
+:10443000AAA9AAAAAAAAAAAAAAAAAAAAAAAAAA5532
+:10444000AAA9AAAAAAAAAAAAAAAAAAAAAAAAAA5522
+:10445000AAA9AAAAAAAAAAAAAAAAAAAAAAAAAA5512
+:10446000AAA9AAAAAAAAAAAAAAAAAAAAAAAAAA5502
+:10447000AAA9AAAAAAAAAAAAAAAAAAAAAAAAAA55F2
+:10448000AAA9AAAAAAAAAAAAAAAAAAAAAAAAAA55E2
+:10449000AAA9AAAAAAAAAAAAAAAAAAAAAAAAAA55D2
+:1044A000AAA9AAAAAAAAAAAAAAAAAAAAAAAAAA55C2
+:1044B000AAA9AAAAAAAAAAAAAAAAAAAAAAAAAA55B2
+:1044C000AA55A9AAAAAAAAAAAAAAAAAAAAAAAA55F7
+:1044D000AA5555AAAAAAAAAAAAAAAAAAAAAAAA553B
+:1044E000AA55555555555555555555565656565523
+:1044F000AA55555555555555555555559595565596
+:10450000AA56AAAAAAAAAAAAAAAAAAAAAAAAAA55B4
+:10451000AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA5550
+:10452000AAA9AAAAAAAAAAAAAAAAAAAAAAAAAA5541
+:10453000AAA9AAAAAAAAAAAAAAAAAAAAAAAAAA5531
+:10454000AAA9AAAAAAAAAAAAAAAAAAAAAAAAAA5521
+:10455000AAA9AAAAAAAAAAAAAAAAAAAAAAAAAA5511
+:10456000AAA9AAAAAAAAAAAAAAAAAAAAAAAAAA5501
+:10457000AAA9AAAAAAAAAAAAAAAAAAAAAAAAAA55F1
+:10458000AAA9AAAAAAAAAAAAAAAAAAAAAAAAAA55E1
+:10459000AAA9AAAAAAAAAAAAAAAAAAAAAAAAAA55D1
+:1045A000AAA9AAAAAAAAAAAAAAAAAAAAAAAAAA55C1
+:1045B000AAA9AAAAAAAAAAAAAAAAAAAAAAAAAA55B1
+:1045C000AAA9AAAAAAAAAAAAAAAAAAAAAAAAAA55A1
+:1045D000AA55AAAAAAAAAAAAAAAAAAAAAAAAAA55E5
+:1045E000AA5555AAAAAAAAAAAAAAAAAAAAAAAA552A
+:1045F000AA55555555555555555555559595555596
+:1046000000AAAAAAAAAAAAAAAAAAAAAAAAAAAA005E
+:1046100000AAAAAAAAAAAAAAAAAAAAAAAAAAAA004E
+:1046200000AAAAAAAAAAAAAAAAAAAAAAAAAAAA003E
+:1046300000A9AAAAAAAAAAAAAAAAAAAAAAAAAA002F
+:1046400000A9AAAAAAAAAAAAAAAAAAAAAAAAAA001F
+:1046500000A9AAAAAAAAAAAAAAAAAAAAAAAAAA000F
+:1046600000A9AAAAAAAAAAAAAAAAAAAAAAAAAA00FF
+:1046700000A9AAAAAAAAAAAAAAAAAAAAAAAAAA00EF
+:1046800000A9AAAAAAAAAAAAAAAAAAAAAAAAAA00DF
+:1046900000A9AAAAAAAAAAAAAAAAAAAAAAAAAA00CF
+:1046A00000A9AAAAAAAAAAAAAAAAAAAAAAAAAA00BF
+:1046B00000A9AAAAAAAAAAAAAAAAAAAAAAAAAA00AF
+:1046C00000A9AAAAAAAAAAAAAAAAAAAAAAAAAA009F
+:1046D00000A9AAAAAAAAAAAAAAAAAAAAAAAAAA008F
+:1046E0000055AAAAAAAAAAAAAAAAAAAAAAAAAA00D3
+:1046F0000055555555555555555555555555550014
+:1047000000AAAAAAAAAAAAAAAAAAAAAAAAAAAA005D
+:1047100000AAAAAAAAAAAAAAAAAAAAAAAAAAAA004D
+:1047200000AAAAAAAAAAAAAAAAAAAAAAAAAAAA003D
+:1047300000AAAAAAAAAAAAAAAAAAAAAAAAAAAA002D
+:1047400000A9AAAAAAAAAAAAAAAAAAAAAAAAAA001E
+:1047500000A9AAAAAAAAAAAAAAAAAAAAAAAAAA000E
+:1047600000A9AAAAAAAAAAAAAAAAAAAAAAAAAA00FE
+:1047700000A9AAAAAAAAAAAAAAAAAAAAAAAAAA00EE
+:1047800000A9AAAAAAAAAAAAAAAAAAAAAAAAAA00DE
+:1047900000A9AAAAAAAAAAAAAAAAAAAAAAAAAA00CE
+:1047A00000A9AAAAAAAAAAAAAAAAAAAAAAAAAA00BE
+:1047B00000A9AAAAAAAAAAAAAAAAAAAAAAAAAA00AE
+:1047C00000A9AAAAAAAAAAAAAAAAAAAAAAAAAA009E
+:1047D00000A9AAAAAAAAAAAAAAAAAAAAAAAAAA008E
+:1047E00000A9AAAAAAAAAAAAAAAAAAAAAAAAAA007E
+:1047F0000055555555555555555555555555550013
+:10480000AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA555D
+:10481000AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA554D
+:10482000AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA553D
+:10483000AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA552D
+:10484000AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA551D
+:10485000AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA550D
+:10486000AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA55FD
+:10487000AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA55ED
+:10488000AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA55DD
+:10489000AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA55CD
+:1048A000AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA55BD
+:1048B000AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA55AD
+:1048C000AAA9AAAAAAAAAAAAAAAAAAAAAAAAAA559E
+:1048D000AAA9AAAAAAAAAAAAAAAAAAAAAAAAAA558E
+:1048E000AAA9AAAAAAAAAAAAAAAAAAAAAAAAAA557E
+:1048F000AA55555555555555555555555555555513
+:10490000AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA555C
+:10491000AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA554C
+:10492000AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA553C
+:10493000AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA552C
+:10494000AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA551C
+:10495000AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA550C
+:10496000AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA55FC
+:10497000AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA55EC
+:10498000AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA55DC
+:10499000AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA55CC
+:1049A000AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA55BC
+:1049B000AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA55AC
+:1049C000AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA559C
+:1049D000AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA558C
+:1049E000AAA9AAAAAAAAAAAAAAAAAAAAAAAAAA557D
+:1049F000AA55555555555555555555555555555512
+:104A000000AAAAAAAAAAAAAAAAAAAAAAAAAAAA005A
+:104A100000AAAAAAAAAAAAAAAAAAAAAAAAAAAA004A
+:104A200000AAAAAAAAAAAAAAAAAAAAAAAAAAAA003A
+:104A300000AAAAAAAAAAAAAAAAAAAAAAAAAAAA002A
+:104A400000AAAAAAAAAAAAAAAAAAAAAAAAAAAA001A
+:104A500000AAAAAAAAAAAAAAAAAAAAAAAAAAAA000A
+:104A600000AAAAAAAAAAAAAAAAAAAAAAAAAAAA00FA
+:104A700000AAAAAAAAAAAAAAAAAAAAAAAAAAAA00EA
+:104A800000AAAAAAAAAAAAAAAAAAAAAAAAAAAA00DA
+:104A900000AAAAAAAAAAAAAAAAAAAAAAAAAAAA00CA
+:104AA00000AAAAAAAAAAAAAAAAAAAAAAAAAAAA00BA
+:104AB00000AAAAAAAAAAAAAAAAAAAAAAAAAAAA00AA
+:104AC00000AAAAAAAAAAAAAAAAAAAAAAAAAAAA009A
+:104AD00000AAAAAAAAAAAAAAAAAAAAAAAAAAAA008A
+:104AE00000AAAAAAAAAAAAAAAAAAAAAAAAAAAA007A
+:104AF0000055555555555555555555555555550010
+:104B000000AAAAAAAAAAAAAAAAAAAAAAAAAAAA0059
+:104B100000AAAAAAAAAAAAAAAAAAAAAAAAAAAA0049
+:104B200000AAAAAAAAAAAAAAAAAAAAAAAAAAAA0039
+:104B300000AAAAAAAAAAAAAAAAAAAAAAAAAAAA0029
+:104B400000AAAAAAAAAAAAAAAAAAAAAAAAAAAA0019
+:104B500000AAAAAAAAAAAAAAAAAAAAAAAAAAAA0009
+:104B600000AAAAAAAAAAAAAAAAAAAAAAAAAAAA00F9
+:104B700000AAAAAAAAAAAAAAAAAAAAAAAAAAAA00E9
+:104B800000AAAAAAAAAAAAAAAAAAAAAAAAAAAA00D9
+:104B900000AAAAAAAAAAAAAAAAAAAAAAAAAAAA00C9
+:104BA00000AAAAAAAAAAAAAAAAAAAAAAAAAAAA00B9
+:104BB00000AAAAAAAAAAAAAAAAAAAAAAAAAAAA00A9
+:104BC00000AAAAAAAAAAAAAAAAAAAAAAAAAAAA0099
+:104BD00000AAAAAAAAAAAAAAAAAAAAAAAAAAAA0089
+:104BE00000AAAAAAAAAAAAAAAAAAAAAAAAAAAA0079
+:104BF000005555555555555555555555555555000F
+:104C0000AAAA0000000000000000000000000055FB
+:104C1000AAAAA80000000000000000000000005543
+:104C200000AAAAA800000000000000000000000088
+:104C300055AAAAA800000000000000000000000023
+:104C400055AAAAA800000000000000000000000013
+:104C500055AAAAA800000000000000000000000003
+:104C600055AAAAA8000000000000000000000000F3
+:104C700055AAAAA8000000000000000000000000E3
+:104C800055AAAAA8000000000000000000000000D3
+:104C900055AAAAA8000000000000000000000000C3
+:104CA00055AAAAA8000000000000000000000000B3
+:104CB00055AAAAA8000000000000000000000000A3
+:104CC00055AAAAA800000000000000000000000093
+:104CD00055AAAAA800000000000000000000000083
+:104CE00055AAAAA800000000000000000000000073
+:104CF00055AAAAA800000000000000000000000063
+:104D000055AAAAA800000000000000000000000052
+:104D100055AAAAA800000000000000000000000042
+:104D200000AAAAAA00000000000000000000000085
+:104D300055AAAAAA00000000000000000000000020
+:104D400055AAAAAA00000000000000000000000010
+:104D500055AAAAAA00000000000000000000000000
+:104D600055AAAAAA000000000000000000000000F0
+:104D700055AAAAAA000000000000000000000000E0
+:104D800055AAAAAA000000000000000000000000D0
+:104D900055AAAAAA000000000000000000000000C0
+:104DA00055AAAAAA000000000000000000000000B0
+:104DB00055AAAAAA000000000000000000000000A0
+:104DC00055AAAAAA00000000000000000000000090
+:104DD00055AAAAAA00000000000000000000000080
+:104DE00055AAAAAA00000000000000000000000070
+:104DF00055AAAAAA00000000000000000000000060
+:104E000055AAAAAA0000000000000000000000004F
+:104E100055AAAAAA0000000000000000000000003F
+:104E2000AAAAAAA800000000000000000000005587
+:104E300000AAAAA800000000000000000000005521
+:104E400000AAAAA800000000000000000000005511
+:104E500000AAAAA800000000000000000000005501
+:104E600000AAAAA8000000000000000000000055F1
+:104E700000AAAAA8000000000000000000000055E1
+:104E800000AAAAA8000000000000000000000055D1
+:104E900000AAAAA8000000000000000000000055C1
+:104EA00000AAAAA8000000000000000000000055B1
+:104EB00000AAAAA8000000000000000000000055A1
+:104EC00000AAAAA800000000000000000000005591
+:104ED00000AAAAA800000000000000000000005581
+:104EE00000AAAAA800000000000000000000005571
+:104EF00000AAAAA800000000000000000000005561
+:104F000000AAAAA800000000000000000000005550
+:104F100000AAAAA800000000000000000000005540
+:104F2000AAAAAAAA00000000000000000000005584
+:104F300000AAAAAA0000000000000000000000551E
+:104F400000AAAAAA0000000000000000000000550E
+:104F500000AAAAAA000000000000000000000055FE
+:104F600000AAAAAA000000000000000000000055EE
+:104F700000AAAAAA000000000000000000000055DE
+:104F800000AAAAAA000000000000000000000055CE
+:104F900000AAAAAA000000000000000000000055BE
+:104FA00000AAAAAA000000000000000000000055AE
+:104FB00000AAAAAA0000000000000000000000559E
+:104FC00000AAAAAA0000000000000000000000558E
+:104FD00000AAAAAA0000000000000000000000557E
+:104FE00000AAAAAA0000000000000000000000556E
+:104FF00000AAAAAA0000000000000000000000555E
+:1050000000AAAAAA0000000000000000000000554D
+:1050100000AAAAAA0000000000000000000000553D
+:1050200000AAAAAAA80000000000000000000000DA
+:1050300055AAAAAAA8000000000000000000000075
+:1050400055AAAAAAA8000000000000000000000065
+:1050500055AAAAAAA8000000000000000000000055
+:1050600055AAAAAAA8000000000000000000000045
+:1050700055AAAAAAA8000000000000000000000035
+:1050800055AAAAAAA8000000000000000000000025
+:1050900055AAAAAAA8000000000000000000000015
+:1050A00055AAAAAAA8000000000000000000000005
+:1050B00055AAAAAAA80000000000000000000000F5
+:1050C00055AAAAAAA80000000000000000000000E5
+:1050D00055AAAAAAA80000000000000000000000D5
+:1050E00055AAAAAAA80000000000000000000000C5
+:1050F00055AAAAAAA80000000000000000000000B5
+:1051000055AAAAAAA80000000000000000000000A4
+:1051100055AAAAAAA8000000000000000000000094
+:1051200000AAAAAAAA0000000000000000000000D7
+:1051300055AAAAAAAA000000000000000000000072
+:1051400055AAAAAAAA000000000000000000000062
+:1051500055AAAAAAAA000000000000000000000052
+:1051600055AAAAAAAA000000000000000000000042
+:1051700055AAAAAAAA000000000000000000000032
+:1051800055AAAAAAAA000000000000000000000022
+:1051900055AAAAAAAA000000000000000000000012
+:1051A00055AAAAAAAA000000000000000000000002
+:1051B00055AAAAAAAA0000000000000000000000F2
+:1051C00055AAAAAAAA0000000000000000000000E2
+:1051D00055AAAAAAAA0000000000000000000000D2
+:1051E00055AAAAAAAA0000000000000000000000C2
+:1051F00055AAAAAAAA0000000000000000000000B2
+:1052000055AAAAAAAA0000000000000000000000A1
+:1052100055AAAAAAAA000000000000000000000091
+:10522000AAAAAAAAAAA8000000000000000000552F
+:1052300000AAAAAAAAA800000000000000000055C9
+:1052400000AAAAAAAAA800000000000000000055B9
+:1052500000AAAAAAAAA800000000000000000055A9
+:1052600000AAAAAAAAA80000000000000000005599
+:1052700000AAAAAAAAA80000000000000000005589
+:1052800000AAAAAAAAA80000000000000000005579
+:1052900000AAAAAAAAA80000000000000000005569
+:1052A00000AAAAAAAAA80000000000000000005559
+:1052B00000AAAAAAAAA80000000000000000005549
+:1052C00000AAAAAAAAA80000000000000000005539
+:1052D00000AAAAAAAAA80000000000000000005529
+:1052E00000AAAAAAAAA80000000000000000005519
+:1052F00000AAAAAAAAA80000000000000000005509
+:1053000000AAAAAAAAA800000000000000000055F8
+:1053100000AAAAAAAAA800000000000000000055E8
+:10532000AAAAAAAAAAAA020000000000000000552A
+:1053300000AAAAAAAAAA02000000000000000055C4
+:1053400000AAAAAAAAAA02000000000000000055B4
+:1053500000AAAAAAAAAA02000000000000000055A4
+:1053600000AAAAAAAAAA0200000000000000005594
+:1053700000AAAAAAAAAA0200000000000000005584
+:1053800000AAAAAAAAAA0200000000000000005574
+:1053900000AAAAAAAAAA0200000000000000005564
+:1053A00000AAAAAAAAAA0200000000000000005554
+:1053B00000AAAAAAAAAA0200000000000000005544
+:1053C00000AAAAAAAAAA0200000000000000005534
+:1053D00000AAAAAAAAAA0200000000000000005524
+:1053E00000AAAAAAAAAA0200000000000000005514
+:1053F00000AAAAAAAAAA0200000000000000005504
+:1054000000AAAAAAAAAA02000000000000000055F3
+:1054100000AAAAAAAAAA02000000000000000055E3
+:1054200000AAAAAAAAAAA800000000000000000082
+:1054300055AAAAAAAAAAA80000000000000000001D
+:1054400055AAAAAAAAAAA80000000000000000000D
+:1054500055AAAAAAAAAAA8000000000000000000FD
+:1054600055AAAAAAAAAAA8000000000000000000ED
+:1054700055AAAAAAAAAAA8000000000000000000DD
+:1054800055AAAAAAAAAAA8000000000000000000CD
+:1054900055AAAAAAAAAAA8000000000000000000BD
+:1054A00055AAAAAAAAAAA8000000000000000000AD
+:1054B00055AAAAAAAAAAA80000000000000000009D
+:1054C00055AAAAAAAAAAA80000000000000000008D
+:1054D00055AAAAAAAAAAA80000000000000000007D
+:1054E00055AAAAAAAAAAA80000000000000000006D
+:1054F00055AAAAAAAAAAA80000000000000000005D
+:1055000055AAAAAAAAAAA80000000000000000004C
+:1055100055AAAAAAAAAAA80000000000000000003C
+:1055200000AAAAAAAAAAAAA80000000000000000D7
+:1055300055AAAAAAAAAAAAA8000000000000000072
+:1055400055AAAAAAAAAAAAA8000000000000000062
+:1055500055AAAAAAAAAAAAA8000000000000000052
+:1055600055AAAAAAAAAAAAA8000000000000000042
+:1055700055AAAAAAAAAAAAA8000000000000000032
+:1055800055AAAAAAAAAAAAA8000000000000000022
+:1055900055AAAAAAAAAAAAA8000000000000000012
+:1055A00055AAAAAAAAAAAAA8000000000000000002
+:1055B00055AAAAAAAAAAAAA80000000000000000F2
+:1055C00055AAAAAAAAAAAAA80000000000000000E2
+:1055D00055AAAAAAAAAAAAA80000000000000000D2
+:1055E00055AAAAAAAAAAAAA80000000000000000C2
+:1055F00055AAAAAAAAAAAAA80000000000000000B2
+:1056000055AAAAAAAAAAAAA80000000000000000A1
+:1056100055AAAAAAAAAAAAA8000000000000000091
+:10562000AAAAAAAAAAAAAAAAA8000000000000552D
+:1056300000AAAAAAAAAAAAAAA800000000000055C7
+:1056400000AAAAAAAAAAAAAAA800000000000055B7
+:1056500000AAAAAAAAAAAAAAA800000000000055A7
+:1056600000AAAAAAAAAAAAAAA80000000000005597
+:1056700000AAAAAAAAAAAAAAA80000000000005587
+:1056800000AAAAAAAAAAAAAAA80000000000005577
+:1056900000AAAAAAAAAAAAAAA80000000000005567
+:1056A00000AAAAAAAAAAAAAAA80000000000005557
+:1056B00000AAAAAAAAAAAAAAA80000000000005547
+:1056C00000AAAAAAAAAAAAAAA80000000000005537
+:1056D00000AAAAAAAAAAAAAAA80000000000005527
+:1056E00000AAAAAAAAAAAAAAA80000000000005517
+:1056F00000AAAAAAAAAAAAAAA80000000000005507
+:1057000000AAAAAAAAAAAAAAA800000000000055F6
+:1057100000AAAAAAAAAAAAAAA800000000000055E6
+:10572000AAAAAAAAAAAAAAAAAA000000000000552A
+:1057300000AAAAAAAAAAAAAAAA00000000000055C4
+:1057400000AAAAAAAAAAAAAAAA00000000000055B4
+:1057500000AAAAAAAAAAAAAAAA00000000000055A4
+:1057600000AAAAAAAAAAAAAAAA0000000000005594
+:1057700000AAAAAAAAAAAAAAAA0000000000005584
+:1057800000AAAAAAAAAAAAAAAA0000000000005574
+:1057900000AAAAAAAAAAAAAAAA0000000000005564
+:1057A00000AAAAAAAAAAAAAAAA0000000000005554
+:1057B00000AAAAAAAAAAAAAAAA0000000000005544
+:1057C00000AAAAAAAAAAAAAAAA0000000000005534
+:1057D00000AAAAAAAAAAAAAAAA0000000000005524
+:1057E00000AAAAAAAAAAAAAAAA0000000000005514
+:1057F00000AAAAAAAAAAAAAAAA0000000000005504
+:1058000000AAAAAAAAAAAAAAAA00000000000055F3
+:1058100000AAAAAAAAAAAAAAAA00000000000055E3
+:1058200055AAAAAAAAAAAAAAAAAA02000000000027
+:1058300055AAAAAAAAAAAAAAAAAA00000200000017
+:1058400000AAAAAAAAAAAAAAAAAAAA02000000555D
+:1058500000AAAAAAAAAAAAAAAAAAAA2A0000005525
+:1058600000AAAAAAAAAAAAAAAAAAAA2A0000005515
+:1058700000AAAAAAAAAAAAAAAAAAAA2A0000005505
+:1058800000AAAAAAAAAAAAAAAAAAAA2A00000055F5
+:1058900000AAAAAAAAAAAAAAAAAAAA2A00000055E5
+:1058A00000AAAAAAAAAAAAAAAAAAAA2A00000055D5
+:1058B00000AAAAAAAAAAAAAAAAAAAA2A00000055C5
+:1058C00000AAAAAAAAAAAAAAAAAAAA2A00000055B5
+:1058D00000AAAAAAAAAAAAAAAAAAAA2A00000055A5
+:1058E00000AAAAAAAAAAAAAAAAAAAA2A0000005595
+:1058F00000AAAAAAAAAAAAAAAAAAAA2A0000005585
+:1059000000AAAAAAAAAAAAAAAAAAAA2A0000005574
+:1059100000AAAAAAAAAAAAAAAAAAAA2A0000005564
+:1059200000AAAAAAAAAAAAAAAAAAAA2A0000005554
+:1059300000AAAAAAAAAAAAAAAAAAAA2A0000005544
+:1059400000AAAAAAAAAAAAAAAAAAAAAA00000055B4
+:1059500055AAAAAAAAAAAAAAAAAAAA2A2A020000F8
+:1059600055AAAAAAAAAAAAAAAAAAAA2A2A020000E8
+:1059700055AAAAAAAAAAAAAAAAAAAA2A2A020000D8
+:1059800055AAAAAAAAAAAAAAAAAAAA2A2A020000C8
+:1059900055AAAAAAAAAAAAAAAAAAAA2A2A020000B8
+:1059A00055AAAAAAAAAAAAAAAAAAAA2A2A020000A8
+:1059B00055AAAAAAAAAAAAAAAAAAAA2A2A02000098
+:1059C00055AAAAAAAAAAAAAAAAAAAA2A2A02000088
+:1059D00055AAAAAAAAAAAAAAAAAAAA2A2A02000078
+:1059E00055AAAAAAAAAAAAAAAAAAAA2A2A02000068
+:1059F00055AAAAAAAAAAAAAAAAAAAA2A2A02000058
+:105A000055AAAAAAAAAAAAAAAAAAAA2A2A02000047
+:105A100055AAAAAAAAAAAAAAAAAAAA2A2A02000037
+:105A200055AAAAAAAAAAAAAAAAAAAA2A2A02000027
+:105A300055AAAAAAAAAAAAAAAAAAAA2A2A02000017
+:105A400055AAAAAAAAAAAAAAAAAAAAAAAA02000007
+:105A500055A9A9A9A9A9A9A9A9A9A9A92901010083
+:105A600055A9A9A9A9A9A9A9A9A9A9A92901010073
+:105A700055A9A9A9A9A9A9A9A9A9A9A92901010063
+:105A800055A9A9A9A9A9A9A9A9A9A9A92901010053
+:105A900055A9A9A9A9A9A9A9A9A9A9A92901010043
+:105AA00055A9A9A9A9A9A9A9A9A9A9A92901010033
+:105AB00055A9A9A9A9A9A9A9A9A9A9A92901010023
+:105AC00055A9A9A9A9A9A9A9A9A9A9A92901010013
+:105AD00055A9A9A9A9A9A9A9A9A9A9A92901010003
+:105AE00055A9A9A9A9A9A9A9A9A9A9A929010100F3
+:105AF00055A9A9A9A9A9A9A9A9A9A9A929010100E3
+:105B000055A9A9A9A9A9A9A9A9A9A9A929010100D2
+:105B100055A9A9A9A9A9A9A9A9A9A9A929010100C2
+:105B200055A9A9A9A9A9A9A9A9A9A9A929010100B2
+:105B300055A9A9A9A9A9A9A9A9A9A9A929010100A2
+:105B400055A9A9A9A9A9A9A9A9A9A9A9A901010012
+:105B500000A9A9A9A9A9A9A9A9A9A9A9292901555A
+:105B600000A9A9A9A9A9A9A9A9A9A9A9292901554A
+:105B700000A9A9A9A9A9A9A9A9A9A9A9292901553A
+:105B800000A9A9A9A9A9A9A9A9A9A9A9292901552A
+:105B900000A9A9A9A9A9A9A9A9A9A9A9292901551A
+:105BA00000A9A9A9A9A9A9A9A9A9A9A9292901550A
+:105BB00000A9A9A9A9A9A9A9A9A9A9A929290155FA
+:105BC00000A9A9A9A9A9A9A9A9A9A9A929290155EA
+:105BD00000A9A9A9A9A9A9A9A9A9A9A929290155DA
+:105BE00000A9A9A9A9A9A9A9A9A9A9A929290155CA
+:105BF00000A9A9A9A9A9A9A9A9A9A9A929290155BA
+:105C000000A9A9A9A9A9A9A9A9A9A9A929290155A9
+:105C100000A9A9A9A9A9A9A9A9A9A9A92929015599
+:105C200000A9A9A9A9A9A9A9A9A9A9A92929015589
+:105C300000A9A9A9A9A9A9A9A9A9A9A92929015579
+:105C400000A9A9A9A9A9A9A9A9A9A9A9A9A9015569
+:105C500000A9A9A9A9A9A9A9A9A9A9A9A9290155D9
+:105C600000A9A9A9A9A9A9A9A9A9A9A9A9290155C9
+:105C700000A9A9A9A9A9A9A9A9A9A9A9A9290155B9
+:105C800000A9A9A9A9A9A9A9A9A9A9A9A9290155A9
+:105C900000A9A9A9A9A9A9A9A9A9A9A9A929015599
+:105CA00000A9A9A9A9A9A9A9A9A9A9A9A929015589
+:105CB00000A9A9A9A9A9A9A9A9A9A9A9A929015579
+:105CC00000A9A9A9A9A9A9A9A9A9A9A9A929015569
+:105CD00000A9A9A9A9A9A9A9A9A9A9A9A929015559
+:105CE00000A9A9A9A9A9A9A9A9A9A9A9A929015549
+:105CF00000A9A9A9A9A9A9A9A9A9A9A9A929015539
+:105D000000A9A9A9A9A9A9A9A9A9A9A9A929015528
+:105D100000A9A9A9A9A9A9A9A9A9A9A9A929015518
+:105D200000A9A9A9A9A9A9A9A9A9A9A9A929015508
+:105D300000A9A9A9A9A9A9A9A9A9A9A9A9290155F8
+:105D400000A9A9A9A9A9A9A9A9A9A9A9A9A9015568
+:105D50005595959595959595959595959595150147
+:105D60005595959595959595959595959595150137
+:105D70000055555555555555555555555555555627
+:105D80000055555555555555555555555555555617
+:105D900055555555555555555555555555555516F2
+:105DA00055555555555555555555555555555516E2
+:105DB00000555555555555555555555555555568D5
+:105DC00000555555555555555555555555555568C5
+:105DD0005555555555555555555555555555556A5E
+:105DE0005555555555555555555555555555556A4E
+:105DF000005555555555555555555555555555807D
+:105E0000005555555555555555555555555555806C
+:105E1000555555555555555555555555555555AADD
+:105E2000555555555555555555555555555555AACD
+:105E300000565656565656565656565656565600AE
+:105E4000005656565656565656565656565656009E
+:105E5000555656565656565656565656565656AA8F
+:105E6000555656565656565656565656565656AA7F
+:105E7000005A5A5A5A5A5A5A5A5A5A5A5A5A5A0036
+:105E8000005A5A5A5A5A5A5A5A5A5A5A5A5A5A0026
+:105E9000555A5A5A5A5A5A5A5A5A5A5A5A5A5AAA17
+:105EA000555A5A5A5A5A5A5A5A5A5A5A5A5A5AAA07
+:105EB000006A6A6A6A6A6A6A6A6A6A6A6A6A6A0016
+:105EC000006A6A6A6A6A6A6A6A6A6A6A6A6A6A0006
+:105ED000556A6A6A6A6A6A6A6A6A6A6A6A6A6AAAF7
+:105EE000556A6A6A6A6A6A6A6A6A6A6A6A6A6AAAE7
+:105EF000006A6A6A6A6A6A6A6A6A6A6A6A6A6A00D6
+:105F0000006A6A6A6A6A6A6A6A6A6A6A6A6A6A00C5
+:105F100055AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA36
+:105F200055AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA26
+:105F300000AAAAAAAAAAAAAAAAAAAAAAAAAAAA0015
+:105F400000A9A9A9A9A9A9A9A9A9A9A9A9A9A80014
+:105F500055A9A9A9A9A9A9A9A9A9A9A9A8A8A8AA07
+:105F600055A9A9A9A9A9A9A9A9A9A9A9A8A8A8AAF7
+:105F700000A9A9A9A9A9A9A9A9A9A8A8A9A8A800E7
+:105F800000A9A9A9A9A9A9A9A9A9A9A8A8A8A800D7
+:105F900055A5A5A5A5A5A5A5A5A4A4A4A4A4A0AA06
+:105FA00055A5A5A5A5A5A5A5A4A4A4A4A4A4A0AAF7
+:105FB00000A5A5A5A5A5A5A4A4A4A4A4A4A0A000EB
+:105FC00000A5A5A5A5A5A4A4A4A4A4A4A4A0A000DC
+:105FD00055A5A5A5A5A5A5A4A4A4A4A4A0A0A0AAD0
+:105FE00055A5A5A5A5A5A5A4A4A4A4A4A0A0A0AAC0
+:105FF00055A5A5A5A5A5A5A4A4A4A4A4A0A0A0AAB0
+:1060000055A5A5A5A5A5A5A4A4A4A4A4A0A0A0AA9F
+:1060100055A5A5A5A5A5A5A4A4A4A4A4A0A0A0AA8F
+:1060200055A5A5A5A5A5A5A4A4A4A4A4A0A0A0AA7F
+:1060300055A5A5A5A5A5A5A4A4A4A4A4A0A0A0AA6F
+:1060400055A5A5A5A5A5A5A4A4A4A4A4A0A0A0AA5F
+:1060500055A5A5A5A5A5A5A4A4A4A4A4A0A0A0AA4F
+:1060600055A5A5A5A5A5A5A4A4A4A4A4A0A0A0AA3F
+:1060700055A5A5A5A5A5A5A4A4A4A4A4A0A0A0AA2F
+:1060800055A5A5A5A5A5A5A4A4A4A4A4A0A0A0AA1F
+:1060900055A5A5A5A5A5A5A4A4A4A4A4A0A0A0AA0F
+:1060A00055A5A5A5A5A5A5A4A4A4A4A4A0A0A0AAFF
+:1060B00055A5A5A5A5A5A5A4A4A4A4A4A0A0A0AAEF
+:1060C00055A5A5A5A5A5A5A4A4A4A4A4A0A0A0A8E1
+:1060D00055A5A5A5A5A4A4A4A4A4A4A0A0A0A0AAD5
+:1060E00055A5A5A5A5A4A4A4A4A4A4A0A0A0A0AAC5
+:1060F00055A5A5A5A5A4A4A4A4A4A4A0A0A0A0AAB5
+:1061000055A5A5A5A5A4A4A4A4A4A4A0A0A0A0AAA4
+:1061100055A5A5A5A5A4A4A4A4A4A4A0A0A0A0AA94
+:1061200055A5A5A5A5A4A4A4A4A4A4A0A0A0A0AA84
+:1061300055A5A5A5A5A4A4A4A4A4A4A0A0A0A0AA74
+:1061400055A5A5A5A5A4A4A4A4A4A4A0A0A0A0AA64
+:1061500055A5A5A5A5A4A4A4A4A4A4A0A0A0A0AA54
+:1061600055A5A5A5A5A4A4A4A4A4A4A0A0A0A0AA44
+:1061700055A5A5A5A5A4A4A4A4A4A4A0A0A0A0AA34
+:1061800055A5A5A5A5A4A4A4A4A4A4A0A0A0A0AA24
+:1061900055A5A5A5A5A4A4A4A4A4A4A0A0A0A0AA14
+:1061A00055A5A5A5A5A4A4A4A4A4A4A0A0A0A0AA04
+:1061B00055A5A5A5A5A4A4A4A4A4A4A0A0A0A0AAF4
+:1061C00055A5A5A5A5A4A4A4A4A4A4A0A0A0A0A8E6
+:1061D00000A5A5A5A5A4A4A4A4A4A0A0A0A0A000D7
+:1061E00000A5A5A5A4A4A4A4A4A4A0A0A0A0A000C8
+:1061F000559595959494949494909090909080AAAD
+:10620000559595959494949494909090909080AA9C
+:10621000559595959494949494909090909080AA8C
+:10622000559595959494949494909090909080AA7C
+:10623000559595959494949494909090909080AA6C
+:10624000559595959494949494909090909080AA5C
+:10625000559595959494949494909090909080AA4C
+:10626000559595959494949494909090909080AA3C
+:10627000559595959494949494909090909080AA2C
+:10628000559595959494949494909090909080AA1C
+:10629000559595959494949494909090909080AA0C
+:1062A000559595959494949494909090909080AAFC
+:1062B000559595959494949494909090909080AAEC
+:1062C000559595959494949494909090909080AADC
+:1062D000559595959494949494909090909080AACC
+:1062E000559595959494949494909090909080A8BE
+:1062F000559595949494949494909090909080AAAD
+:10630000559595949494949494909090909080AA9C
+:10631000559595949494949494909090909080AA8C
+:10632000559595949494949494909090909080AA7C
+:10633000559595949494949494909090909080AA6C
+:10634000559595949494949494909090909080AA5C
+:10635000559595949494949494909090909080AA4C
+:10636000559595949494949494909090909080AA3C
+:10637000559595949494949494909090909080AA2C
+:10638000559595949494949494909090909080AA1C
+:10639000559595949494949494909090909080AA0C
+:1063A000559595949494949494909090909080AAFC
+:1063B000559595949494949494909090909080AAEC
+:1063C000559595949494949494909090909080AADC
+:1063D000559595949494949494909090909080AACC
+:1063E000559595949494949494909090909080A8BE
+:1063F00000959595949494949090909090808000BE
+:1064000000959594949494909090909090808000B2
+:10641000559594949494909090909090808080AAB8
+:10642000559594949494909090909090808080AAA8
+:10643000559594949494909090909090808080AA98
+:10644000559594949494909090909090808080AA88
+:10645000559594949494909090909090808080AA78
+:10646000559594949494909090909090808080AA68
+:10647000559594949494909090909090808080AA58
+:10648000559594949494909090909090808080AA48
+:10649000559594949494909090909090808080AA38
+:1064A000559594949494909090909090808080AA28
+:1064B000559594949494909090909090808080AA18
+:1064C000559594949494909090909090808080AA08
+:1064D000559594949494909090909090808080AAF8
+:1064E000559594949494909090909090808080AAE8
+:1064F000559594949494909090909090808080AAD8
+:10650000559594949494909090909090808080A0D1
+:10651000559594949494909090909080808080AAC7
+:10652000559594949494909090909080808080AAB7
+:10653000559594949494909090909080808080AAA7
+:10654000559594949494909090909080808080AA97
+:10655000559594949494909090909080808080AA87
+:10656000559594949494909090909080808080AA77
+:10657000559594949494909090909080808080AA67
+:10658000559594949494909090909080808080AA57
+:10659000559594949494909090909080808080AA47
+:1065A000559594949494909090909080808080AA37
+:1065B000559594949494909090909080808080AA27
+:1065C000559594949494909090909080808080AA17
+:1065D000559594949494909090909080808080AA07
+:1065E000559594949494909090909080808080AAF7
+:1065F000559594949494909090909080808080AAE7
+:10660000559594949494909090909080808080A0E0
+:1066100000949494949090909090808080808000DA
+:1066200000949494949090909090808080808000CA
+:10663000549494949090909090808080808080A8D2
+:10664000549494949090909090808080808080A8C2
+:10665000549494949090909090808080808080A8B2
+:10666000549494949090909090808080808080A8A2
+:10667000549494949090909090808080808080A892
+:10668000549494949090909090808080808080A882
+:10669000549494949090909090808080808080A872
+:1066A000549494949090909090808080808080A862
+:1066B000549494949090909090808080808080A852
+:1066C000549494949090909090808080808080A842
+:1066D000549494949090909090808080808080A832
+:1066E000549494949090909090808080808080A822
+:1066F000549494949090909090808080808080A812
+:10670000549494949090909090808080808080A801
+:10671000549494949090909090808080808080A8F1
+:10672000549494949090909090808080808080A0E9
+:10673000549494949090909090808080808080A8D1
+:10674000549494949090909090808080808080A8C1
+:10675000549494949090909090808080808080A8B1
+:10676000549494949090909090808080808080A8A1
+:10677000549494949090909090808080808080A891
+:10678000549494949090909090808080808080A881
+:10679000549494949090909090808080808080A871
+:1067A000549494949090909090808080808080A861
+:1067B000549494949090909090808080808080A851
+:1067C000549494949090909090808080808080A841
+:1067D000549494949090909090808080808080A831
+:1067E000549494949090909090808080808080A821
+:1067F000549494949090909090808080808080A811
+:10680000549494949090909090808080808080A800
+:10681000549494949090909090808080808080A8F0
+:10682000549494949090909090808080808080A0E8
+:10683000005454545050505040404040404000009C
+:10684000005454545050504040404040404000009C
+:10685000545454505050404040404040400000A8E4
+:10686000545454505050404040404040400000A8D4
+:10687000545454505050404040404040400000A8C4
+:10688000545454505050404040404040400000A8B4
+:10689000545454505050404040404040400000A8A4
+:1068A000545454505050404040404040400000A894
+:1068B000545454505050404040404040400000A884
+:1068C000545454505050404040404040400000A874
+:1068D000545454505050404040404040400000A864
+:1068E000545454505050404040404040400000A854
+:1068F000545454505050404040404040400000A844
+:10690000545454505050404040404040400000A833
+:10691000545454505050404040404040400000A823
+:10692000545454505050404040404040400000A813
+:10693000545454505050404040404040400000A803
+:10694000545454505050404040404040400000801B
+:10695000545450505050404040404040000000A827
+:10696000545450505050404040404040000000A817
+:10697000545450505050404040404040000000A807
+:10698000545450505050404040404040000000A8F7
+:10699000545450505050404040404040000000A8E7
+:1069A000545450505050404040404040000000A8D7
+:1069B000545450505050404040404040000000A8C7
+:1069C000545450505050404040404040000000A8B7
+:1069D000545450505050404040404040000000A8A7
+:1069E000545450505050404040404040000000A897
+:1069F000545450505050404040404040000000A887
+:106A0000545450505050404040404040000000A876
+:106A1000545450505050404040404040000000A866
+:106A2000545450505050404040404040000000A856
+:106A3000545450505050404040404040000000A846
+:106A4000545450505050404040404040000000805E
+:106A50000050505050404040404040000000000076
+:106A60000C5C5C5C5C4C4C4C4C4C4C0C0C0C0C0CA6
+:106A7000505050504040404040400000000000A0B6
+:106A8000505050504040404040400000000000A0A6
+:106A9000505050504040404040400000000000A096
+:106AA000505050504040404040400000000000A086
+:106AB000505050504040404040400000000000A076
+:106AC000505050504040404040400000000000A066
+:106AD000505050504040404040400000000000A056
+:106AE000505050504040404040400000000000A046
+:106AF000505050504040404040400000000000A036
+:106B0000505050504040404040400000000000A025
+:106B1000505050504040404040400000000000A015
+:106B2000505050504040404040400000000000A005
+:106B3000505050504040404040400000000000A0F5
+:106B4000505050504040404040400000000000A0E5
+:106B5000505050504040404040400000000000A0D5
+:106B600050505050404040404040000000000080E5
+:106B7000505050504040404040400000000000A0B5
+:106B8000505050504040404040400000000000A0A5
+:106B9000505050504040404040400000000000A095
+:106BA000505050504040404040400000000000A085
+:106BB000505050504040404040400000000000A075
+:106BC000505050504040404040400000000000A065
+:106BD000505050504040404040400000000000A055
+:106BE000505050504040404040400000000000A045
+:106BF000505050504040404040400000000000A035
+:106C0000505050504040404040400000000000A024
+:106C1000505050504040404040400000000000A014
+:106C2000505050504040404040400000000000A004
+:106C3000505050504040404040400000000000A0F4
+:106C4000505050504040404040400000000000A0E4
+:106C5000505050504040404040400000000000A0D4
+:106C600050505050404040404040000000000080E4
+:106C700000505050404040404040000000000000A4
+:106C80000050505040404040404000000000000094
+:106C9000505050404040404040000000000000A0E4
+:106CA000505050404040404040000000000000A0D4
+:106CB000505050404040404040000000000000A0C4
+:106CC000505050404040404040000000000000A0B4
+:106CD000505050404040404040000000000000A0A4
+:106CE000505050404040404040000000000000A094
+:106CF000505050404040404040000000000000A084
+:106D0000505050404040404040000000000000A073
+:106D1000505050404040404040000000000000A063
+:106D2000505050404040404040000000000000A053
+:106D3000505050404040404040000000000000A043
+:106D4000505050404040404040000000000000A033
+:106D5000505050404040404040000000000000A023
+:106D6000505050404040404040000000000000A013
+:106D7000505050404040404040000000000000A003
+:106D80005050504040404040400000000000008013
+:106D9000505040404040404040000000000000A0F3
+:106DA000505040404040404040000000000000A0E3
+:106DB000505040404040404040000000000000A0D3
+:106DC000505040404040404040000000000000A0C3
+:106DD000505040404040404040000000000000A0B3
+:106DE000505040404040404040000000000000A0A3
+:106DF000505040404040404040000000000000A093
+:106E0000505040404040404040000000000000A082
+:106E1000505040404040404040000000000000A072
+:106E2000505040404040404040000000000000A062
+:106E3000505040404040404040000000000000A052
+:106E4000505040404040404040000000000000A042
+:106E5000505040404040404040000000000000A032
+:106E6000505040404040404040000000000000A022
+:106E7000505040404040404040000000000000A012
+:106E80005050404040404040400000000000008022
+:106E90000040404040404040000000000000000032
+:106EA0003070707070707030303030303030303062
+:106EB00040404040404000000000000000000080D2
+:106EC00040404040404000000000000000000080C2
+:106ED00000404040400000000000000000000000B2
+:106EE00000404040400000000000000000000000A2
+:106EF0004040404000000000000000000000008012
+:106F00004040404000000000000000000000008001
+:106F100000404040000000000000000000000000B1
+:106F200000404040000000000000000000000000A1
+:106F30004040400000000000000000000000008011
+:106F40004040000000000000000000000000008041
+:106F50000000000000000000000000000000000031
+:106F6000C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C021
+:106F70000000000000000000000000000000000011
+:106F80000000000000000000000000000000000001
+:106F900000000000000000000000000000000000F1
+:106FA00000000000000000000000000000000000E1
+:106FB00000000000000000000000000000000000D1
+:106FC00000000000000000000000000000000000C1
+:106FD00000000000000000000000000000000000B1
+:106FE00000000000000000000000000000000000A1
+:106FF0000000000000000000000000000000000091
+:10700000AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAE0
+:10701000AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD0
+:10702000AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAC0
+:10703000AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB0
+:10704000AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA0
+:10705000AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA90
+:10706000AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA80
+:10707000AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA70
+:107080005555555555555555AAAAAAAAAAAAAAAA08
+:107090005555555555555555AAAAAAAAAAAAAAAAF8
+:1070A0005555555555555555AAAAAAAAAAAAAAAAE8
+:1070B0005555555555555555AAAAAAAAAAAAAAAAD8
+:1070C0005555555555555555AAAAAAAAAAAAAAAAC8
+:1070D0005555555555555555AAAAAAAAAAAAAAAAB8
+:1070E0005555555555555555AAAAAAAAAAAAAAAAA8
+:1070F0005555555555555555AAAAAAAAAAAAAAAA98
+:10710000000000000000000000000000000000007F
+:10711000000000000000000000000000000000006F
+:10712000000000000000000000000000000000005F
+:10713000000000000000000000000000000000004F
+:10714000000000000000000000000000000000003F
+:10715000000000000000000000000000000000002F
+:10716000000000000000000000000000000000001F
+:10717000000000000000000000000000000000000F
+:107180005555555555555555000000000000000057
+:107190005555555555555555000000000000000047
+:1071A0005555555555555555000000000000000037
+:1071B0005555555555555555000000000000000027
+:1071C0005555555555555555000000000000000017
+:1071D0005555555555555555000000000000000007
+:1071E00055555555555555550000000000000000F7
+:1071F00055555555555555550000000000000000E7
+:107200005555555555555555AAAAAAAAAAAAAAAA86
+:107210005555555555555555AAAAAAAAAAAAAAAA76
+:107220005555555555555555AAAAAAAAAAAAAAAA66
+:107230005555555555555555AAAAAAAAAAAAAAAA56
+:107240005555555555555555AAAAAAAAAAAAAAAA46
+:107250005555555555555555AAAAAAAAAAAAAAAA36
+:107260005555555555555555AAAAAAAAAAAAAAAA26
+:107270005555555555555555AAAAAAAAAAAAAAAA16
+:10728000AAAAAAAAAAAAAAAA555555555555555506
+:10729000AAAAAAAAAAAAAAAA5555555555555555F6
+:1072A000AAAAAAAAAAAAAAAA5555555555555555E6
+:1072B000AAAAAAAAAAAAAAAA5555555555555555D6
+:1072C000AAAAAAAAAAAAAAAA5555555555555555C6
+:1072D000AAAAAAAAAAAAAAAA5555555555555555B6
+:1072E000AAAAAAAAAAAAAAAA5555555555555555A6
+:1072F000AAAAAAAAAAAAAAAA555555555555555596
+:107300005555555555555555AAAAAAAAAAAAAAAA85
+:107310005555555555555555AAAAAAAAAAAAAAAA75
+:107320005555555555555555AAAAAAAAAAAAAAAA65
+:107330005555555555555555AAAAAAAAAAAAAAAA55
+:107340005555555555555555AAAAAAAAAAAAAAAA45
+:107350005555555555555555AAAAAAAAAAAAAAAA35
+:107360005555555555555555AAAAAAAAAAAAAAAA25
+:107370005555555555555555AAAAAAAAAAAAAAAA15
+:10738000AAAAAAAAAAAAAAAA555555555555555505
+:10739000AAAAAAAAAAAAAAAA5555555555555555F5
+:1073A000AAAAAAAAAAAAAAAA5555555555555555E5
+:1073B000AAAAAAAAAAAAAAAA5555555555555555D5
+:1073C000AAAAAAAAAAAAAAAA5555555555555555C5
+:1073D000AAAAAAAAAAAAAAAA5555555555555555B5
+:1073E000AAAAAAAAAAAAAAAA5555555555555555A5
+:1073F000AAAAAAAAAAAAAAAA555555555555555595
+:107400005555555555555555AAAAAAAAAAAAAAAA84
+:107410005555555555555555AAAAAAAAAAAAAAAA74
+:107420005555555555555555AAAAAAAAAAAAAAAA64
+:107430005555555555555555AAAAAAAAAAAAAAAA54
+:107440005555555555555555AAAAAAAAAAAAAAAA44
+:107450005555555555555555AAAAAAAAAAAAAAAA34
+:107460005555555555555555AAAAAAAAAAAAAAAA24
+:107470005555555555555555AAAAAAAAAAAAAAAA14
+:10748000AAAAAAAAAAAAAAAA555555555555555504
+:10749000AAAAAAAAAAAAAAAA5555555555555555F4
+:1074A000AAAAAAAAAAAAAAAA5555555555555555E4
+:1074B000AAAAAAAAAAAAAAAA5555555555555555D4
+:1074C000AAAAAAAAAAAAAAAA5555555555555555C4
+:1074D000AAAAAAAAAAAAAAAA5555555555555555B4
+:1074E000AAAAAAAAAAAAAAAA5555555555555555A4
+:1074F000AAAAAAAAAAAAAAAA555555555555555594
+:107500005555555555555555AAAAAAAAAAAAAAAA83
+:107510005555555555555555AAAAAAAAAAAAAAAA73
+:107520005555555555555555AAAAAAAAAAAAAAAA63
+:107530005555555555555555AAAAAAAAAAAAAAAA53
+:107540005555555555555555AAAAAAAAAAAAAAAA43
+:107550005555555555555555AAAAAAAAAAAAAAAA33
+:107560005555555555555555AAAAAAAAAAAAAAAA23
+:107570005555555555555555AAAAAAAAAAAAAAAA13
+:10758000AAAAAAAAAAAAAAAA555555555555555503
+:10759000AAAAAAAAAAAAAAAA5555555555555555F3
+:1075A000AAAAAAAAAAAAAAAA5555555555555555E3
+:1075B000AAAAAAAAAAAAAAAA5555555555555555D3
+:1075C000AAAAAAAAAAAAAAAA5555555555555555C3
+:1075D000AAAAAAAAAAAAAAAA5555555555555555B3
+:1075E000AAAAAAAAAAAAAAAA5555555555555555A3
+:1075F000AAAAAAAAAAAAAAAA555555555555555593
+:107600005555555555555555AAAAAAAAAAAAAAAA82
+:107610005555555555555555AAAAAAAAAAAAAAAA72
+:107620005555555555555555AAAAAAAAAAAAAAAA62
+:107630005555555555555555AAAAAAAAAAAAAAAA52
+:107640005555555555555555AAAAAAAAAAAAAAAA42
+:107650005555555555555555AAAAAAAAAAAAAAAA32
+:107660005555555555555555AAAAAAAAAAAAAAAA22
+:107670005555555555555555AAAAAAAAAAAAAAAA12
+:10768000AAAAAAAAAAAAAAAA555555555555555502
+:10769000AAAAAAAAAAAAAAAA5555555555555555F2
+:1076A000AAAAAAAAAAAAAAAA5555555555555555E2
+:1076B000AAAAAAAAAAAAAAAA5555555555555555D2
+:1076C000AAAAAAAAAAAAAAAA5555555555555555C2
+:1076D000AAAAAAAAAAAAAAAA5555555555555555B2
+:1076E000AAAAAAAAAAAAAAAA5555555555555555A2
+:1076F000AAAAAAAAAAAAAAAA555555555555555592
+:107700005555555555555555AAAAAAAAAAAAAAAA81
+:107710005555555555555555AAAAAAAAAAAAAAAA71
+:107720005555555555555555AAAAAAAAAAAAAAAA61
+:107730005555555555555555AAAAAAAAAAAAAAAA51
+:107740005555555555555555AAAAAAAAAAAAAAAA41
+:107750005555555555555555AAAAAAAAAAAAAAAA31
+:107760005555555555555555AAAAAAAAAAAAAAAA21
+:107770005555555555555555AAAAAAAAAAAAAAAA11
+:10778000AAAAAAAAAAAAAAAA555555555555555501
+:10779000AAAAAAAAAAAAAAAA5555555555555555F1
+:1077A000AAAAAAAAAAAAAAAA5555555555555555E1
+:1077B000AAAAAAAAAAAAAAAA5555555555555555D1
+:1077C000AAAAAAAAAAAAAAAA5555555555555555C1
+:1077D000AAAAAAAAAAAAAAAA5555555555555555B1
+:1077E000AAAAAAAAAAAAAAAA5555555555555555A1
+:1077F000AAAAAAAAAAAAAAAA555555555555555591
+:107800005555555555555555AAAAAAAAAAAAAAAA80
+:107810005555555555555555AAAAAAAAAAAAAAAA70
+:107820005555555555555555AAAAAAAAAAAAAAAA60
+:107830005555555555555555AAAAAAAAAAAAAAAA50
+:107840005555555555555555AAAAAAAAAAAAAAAA40
+:107850005555555555555555AAAAAAAAAAAAAAAA30
+:107860005555555555555555AAAAAAAAAAAAAAAA20
+:107870005555555555555555AAAAAAAAAAAAAAAA10
+:10788000AAAAAAAAAAAAAAAA555555555555555500
+:10789000AAAAAAAAAAAAAAAA5555555555555555F0
+:1078A000AAAAAAAAAAAAAAAA5555555555555555E0
+:1078B000AAAAAAAAAAAAAAAA5555555555555555D0
+:1078C000AAAAAAAAAAAAAAAA5555555555555555C0
+:1078D000AAAAAAAAAAAAAAAA5555555555555555B0
+:1078E000AAAAAAAAAAAAAAAA5555555555555555A0
+:1078F000AAAAAAAAAAAAAAAA555555555555555590
+:107900005555555555555555AAAAAAAAAAAAAAAA7F
+:107910005555555555555555AAAAAAAAAAAAAAAA6F
+:107920005555555555555555AAAAAAAAAAAAAAAA5F
+:107930005555555555555555AAAAAAAAAAAAAAAA4F
+:107940005555555555555555AAAAAAAAAAAAAAAA3F
+:107950005555555555555555AAAAAAAAAAAAAAAA2F
+:107960005555555555555555AAAAAAAAAAAAAAAA1F
+:107970005555555555555555AAAAAAAAAAAAAAAA0F
+:10798000AAAAAAAAAAAAAAAA5555555555555555FF
+:10799000AAAAAAAAAAAAAAAA5555555555555555EF
+:1079A000AAAAAAAAAAAAAAAA5555555555555555DF
+:1079B000AAAAAAAAAAAAAAAA5555555555555555CF
+:1079C000AAAAAAAAAAAAAAAA5555555555555555BF
+:1079D000AAAAAAAAAAAAAAAA5555555555555555AF
+:1079E000AAAAAAAAAAAAAAAA55555555555555559F
+:1079F000AAAAAAAAAAAAAAAA55555555555555558F
+:107A00005555555555555555AAAAAAAAAAAAAAAA7E
+:107A10005555555555555555AAAAAAAAAAAAAAAA6E
+:107A20005555555555555555AAAAAAAAAAAAAAAA5E
+:107A30005555555555555555AAAAAAAAAAAAAAAA4E
+:107A40005555555555555555AAAAAAAAAAAAAAAA3E
+:107A50005555555555555555AAAAAAAAAAAAAAAA2E
+:107A60005555555555555555AAAAAAAAAAAAAAAA1E
+:107A70005555555555555555AAAAAAAAAAAAAAAA0E
+:107A8000AAAAAAAAAAAAAAAA5555555555555555FE
+:107A9000AAAAAAAAAAAAAAAA5555555555555555EE
+:107AA000AAAAAAAAAAAAAAAA5555555555555555DE
+:107AB000AAAAAAAAAAAAAAAA5555555555555555CE
+:107AC000AAAAAAAAAAAAAAAA5555555555555555BE
+:107AD000AAAAAAAAAAAAAAAA5555555555555555AE
+:107AE000AAAAAAAAAAAAAAAA55555555555555559E
+:107AF000AAAAAAAAAAAAAAAA55555555555555558E
+:107B00005555555555555555AAAAAAAAAAAAAAAA7D
+:107B10005555555555555555AAAAAAAAAAAAAAAA6D
+:107B20005555555555555555AAAAAAAAAAAAAAAA5D
+:107B30005555555555555555AAAAAAAAAAAAAAAA4D
+:107B40005555555555555555AAAAAAAAAAAAAAAA3D
+:107B50005555555555555555AAAAAAAAAAAAAAAA2D
+:107B60005555555555555555AAAAAAAAAAAAAAAA1D
+:107B70005555555555555555AAAAAAAAAAAAAAAA0D
+:107B8000AAAAAAAAAAAAAAAA5555555555555555FD
+:107B9000AAAAAAAAAAAAAAAA5555555555555555ED
+:107BA000AAAAAAAAAAAAAAAA5555555555555555DD
+:107BB000AAAAAAAAAAAAAAAA5555555555555555CD
+:107BC000AAAAAAAAAAAAAAAA5555555555555555BD
+:107BD000AAAAAAAAAAAAAAAA5555555555555555AD
+:107BE000AAAAAAAAAAAAAAAA55555555555555559D
+:107BF000AAAAAAAAAAAAAAAA55555555555555558D
+:107C00005555555555555555AAAAAAAAAAAAAAAA7C
+:107C10005555555555555555AAAAAAAAAAAAAAAA6C
+:107C20005555555555555555AAAAAAAAAAAAAAAA5C
+:107C30005555555555555555AAAAAAAAAAAAAAAA4C
+:107C40005555555555555555AAAAAAAAAAAAAAAA3C
+:107C50005555555555555555AAAAAAAAAAAAAAAA2C
+:107C60005555555555555555AAAAAAAAAAAAAAAA1C
+:107C70005555555555555555AAAAAAAAAAAAAAAA0C
+:107C8000AAAAAAAAAAAAAAAA5555555555555555FC
+:107C9000AAAAAAAAAAAAAAAA5555555555555555EC
+:107CA000AAAAAAAAAAAAAAAA5555555555555555DC
+:107CB000AAAAAAAAAAAAAAAA5555555555555555CC
+:107CC000AAAAAAAAAAAAAAAA5555555555555555BC
+:107CD000AAAAAAAAAAAAAAAA5555555555555555AC
+:107CE000AAAAAAAAAAAAAAAA55555555555555559C
+:107CF000AAAAAAAAAAAAAAAA55555555555555558C
+:107D00005555555555555555AAAAAAAAAAAAAAAA7B
+:107D10005555555555555555AAAAAAAAAAAAAAAA6B
+:107D20005555555555555555AAAAAAAAAAAAAAAA5B
+:107D30005555555555555555AAAAAAAAAAAAAAAA4B
+:107D40005555555555555555AAAAAAAAAAAAAAAA3B
+:107D50005555555555555555AAAAAAAAAAAAAAAA2B
+:107D60005555555555555555AAAAAAAAAAAAAAAA1B
+:107D70005555555555555555AAAAAAAAAAAAAAAA0B
+:107D8000AAAAAAAAAAAAAAAA5555555555555555FB
+:107D9000AAAAAAAAAAAAAAAA5555555555555555EB
+:107DA000AAAAAAAAAAAAAAAA5555555555555555DB
+:107DB000AAAAAAAAAAAAAAAA5555555555555555CB
+:107DC000AAAAAAAAAAAAAAAA5555555555555555BB
+:107DD000AAAAAAAAAAAAAAAA5555555555555555AB
+:107DE000AAAAAAAAAAAAAAAA55555555555555559B
+:107DF000AAAAAAAAAAAAAAAA55555555555555558B
+:107E00005555555555555555AAAAAAAAAAAAAAAA7A
+:107E10005555555555555555AAAAAAAAAAAAAAAA6A
+:107E20005555555555555555AAAAAAAAAAAAAAAA5A
+:107E30005555555555555555AAAAAAAAAAAAAAAA4A
+:107E40005555555555555555AAAAAAAAAAAAAAAA3A
+:107E50005555555555555555AAAAAAAAAAAAAAAA2A
+:107E60005555555555555555AAAAAAAAAAAAAAAA1A
+:107E70005555555555555555AAAAAAAAAAAAAAAA0A
+:107E8000AAAAAAAAAAAAAAAA5555555555555555FA
+:107E9000AAAAAAAAAAAAAAAA5555555555555555EA
+:107EA000AAAAAAAAAAAAAAAA5555555555555555DA
+:107EB000AAAAAAAAAAAAAAAA5555555555555555CA
+:107EC000AAAAAAAAAAAAAAAA5555555555555555BA
+:107ED000AAAAAAAAAAAAAAAA5555555555555555AA
+:107EE000AAAAAAAAAAAAAAAA55555555555555559A
+:107EF000AAAAAAAAAAAAAAAA55555555555555558A
+:107F00005555555555555555AAAAAAAAAAAAAAAA79
+:107F10005555555555555555AAAAAAAAAAAAAAAA69
+:107F20005555555555555555AAAAAAAAAAAAAAAA59
+:107F30005555555555555555AAAAAAAAAAAAAAAA49
+:107F40005555555555555555AAAAAAAAAAAAAAAA39
+:107F50005555555555555555AAAAAAAAAAAAAAAA29
+:107F60005555555555555555AAAAAAAAAAAAAAAA19
+:107F70005555555555555555AAAAAAAAAAAAAAAA09
+:107F8000AAAAAAAAAAAAAAAA5555555555555555F9
+:107F9000AAAAAAAAAAAAAAAA5555555555555555E9
+:107FA000AAAAAAAAAAAAAAAA5555555555555555D9
+:107FB000AAAAAAAAAAAAAAAA5555555555555555C9
+:107FC000AAAAAAAAAAAAAAAA5555555555555555B9
+:107FD000AAAAAAAAAAAAAAAA5555555555555555A9
+:107FE000AAAAAAAAAAAAAAAA555555555555555599
+:107FF000AAAAAAAAAAAAAAAA555555555555555589
+:108000005555555555555555AAAAAAAAAAAAAAAA78
+:108010005555555555555555AAAAAAAAAAAAAAAA68
+:108020005555555555555555AAAAAAAAAAAAAAAA58
+:108030005555555555555555AAAAAAAAAAAAAAAA48
+:108040005555555555555555AAAAAAAAAAAAAAAA38
+:108050005555555555555555AAAAAAAAAAAAAAAA28
+:108060005555555555555555AAAAAAAAAAAAAAAA18
+:108070005555555555555555AAAAAAAAAAAAAAAA08
+:10808000AAAAAAAAAAAAAAAA5555555555555555F8
+:10809000AAAAAAAAAAAAAAAA5555555555555555E8
+:1080A000AAAAAAAAAAAAAAAA5555555555555555D8
+:1080B000AAAAAAAAAAAAAAAA5555555555555555C8
+:1080C000AAAAAAAAAAAAAAAA5555555555555555B8
+:1080D000AAAAAAAAAAAAAAAA5555555555555555A8
+:1080E000AAAAAAAAAAAAAAAA555555555555555598
+:1080F000AAAAAAAAAAAAAAAA555555555555555588
+:108100005555555555555555AAAAAAAAAAAAAAAA77
+:108110005555555555555555AAAAAAAAAAAAAAAA67
+:108120005555555555555555AAAAAAAAAAAAAAAA57
+:108130005555555555555555AAAAAAAAAAAAAAAA47
+:108140005555555555555555AAAAAAAAAAAAAAAA37
+:108150005555555555555555AAAAAAAAAAAAAAAA27
+:108160005555555555555555AAAAAAAAAAAAAAAA17
+:108170005555555555555555AAAAAAAAAAAAAAAA07
+:10818000AAAAAAAAAAAAAAAA5555555555555555F7
+:10819000AAAAAAAAAAAAAAAA5555555555555555E7
+:1081A000AAAAAAAAAAAAAAAA5555555555555555D7
+:1081B000AAAAAAAAAAAAAAAA5555555555555555C7
+:1081C000AAAAAAAAAAAAAAAA5555555555555555B7
+:1081D000AAAAAAAAAAAAAAAA5555555555555555A7
+:1081E000AAAAAAAAAAAAAAAA555555555555555597
+:1081F000AAAAAAAAAAAAAAAA555555555555555587
+:108200005555555555555555AAAAAAAAAAAAAAAA76
+:108210005555555555555555AAAAAAAAAAAAAAAA66
+:108220005555555555555555AAAAAAAAAAAAAAAA56
+:108230005555555555555555AAAAAAAAAAAAAAAA46
+:108240005555555555555555AAAAAAAAAAAAAAAA36
+:108250005555555555555555AAAAAAAAAAAAAAAA26
+:108260005555555555555555AAAAAAAAAAAAAAAA16
+:108270005555555555555555AAAAAAAAAAAAAAAA06
+:10828000AAAAAAAAAAAAAAAA5555555555555555F6
+:10829000AAAAAAAAAAAAAAAA5555555555555555E6
+:1082A000AAAAAAAAAAAAAAAA5555555555555555D6
+:1082B000AAAAAAAAAAAAAAAA5555555555555555C6
+:1082C000AAAAAAAAAAAAAAAA5555555555555555B6
+:1082D000AAAAAAAAAAAAAAAA5555555555555555A6
+:1082E000AAAAAAAAAAAAAAAA555555555555555596
+:1082F000AAAAAAAAAAAAAAAA555555555555555586
+:108300005555555555555555AAAAAAAAAAAAAAAA75
+:108310005555555555555555AAAAAAAAAAAAAAAA65
+:108320005555555555555555AAAAAAAAAAAAAAAA55
+:108330005555555555555555AAAAAAAAAAAAAAAA45
+:108340005555555555555555AAAAAAAAAAAAAAAA35
+:108350005555555555555555AAAAAAAAAAAAAAAA25
+:108360005555555555555555AAAAAAAAAAAAAAAA15
+:108370005555555555555555AAAAAAAAAAAAAAAA05
+:10838000AAAAAAAAAAAAAAAA5555555555555555F5
+:10839000AAAAAAAAAAAAAAAA5555555555555555E5
+:1083A000AAAAAAAAAAAAAAAA5555555555555555D5
+:1083B000AAAAAAAAAAAAAAAA5555555555555555C5
+:1083C000AAAAAAAAAAAAAAAA5555555555555555B5
+:1083D000AAAAAAAAAAAAAAAA5555555555555555A5
+:1083E000AAAAAAAAAAAAAAAA555555555555555595
+:1083F000AAAAAAAAAAAAAAAA555555555555555585
+:108400005555555555555555AAAAAAAAAAAAAAAA74
+:108410005555555555555555AAAAAAAAAAAAAAAA64
+:108420005555555555555555AAAAAAAAAAAAAAAA54
+:108430005555555555555555AAAAAAAAAAAAAAAA44
+:108440005555555555555555AAAAAAAAAAAAAAAA34
+:108450005555555555555555AAAAAAAAAAAAAAAA24
+:108460005555555555555555AAAAAAAAAAAAAAAA14
+:108470005555555555555555AAAAAAAAAAAAAAAA04
+:10848000AAAAAAAAAAAAAAAA5555555555555555F4
+:10849000AAAAAAAAAAAAAAAA5555555555555555E4
+:1084A000AAAAAAAAAAAAAAAA5555555555555555D4
+:1084B000AAAAAAAAAAAAAAAA5555555555555555C4
+:1084C000AAAAAAAAAAAAAAAA5555555555555555B4
+:1084D000AAAAAAAAAAAAAAAA5555555555555555A4
+:1084E000AAAAAAAAAAAAAAAA555555555555555594
+:1084F000AAAAAAAAAAAAAAAA555555555555555584
+:108500005555555555555555AAAAAAAAAAAAAAAA73
+:108510005555555555555555AAAAAAAAAAAAAAAA63
+:108520005555555555555555AAAAAAAAAAAAAAAA53
+:108530005555555555555555AAAAAAAAAAAAAAAA43
+:108540005555555555555555AAAAAAAAAAAAAAAA33
+:108550005555555555555555AAAAAAAAAAAAAAAA23
+:108560005555555555555555AAAAAAAAAAAAAAAA13
+:108570005555555555555555AAAAAAAAAAAAAAAA03
+:10858000AAAAAAAAAAAAAAAA5555555555555555F3
+:10859000AAAAAAAAAAAAAAAA5555555555555555E3
+:1085A000AAAAAAAAAAAAAAAA5555555555555555D3
+:1085B000AAAAAAAAAAAAAAAA5555555555555555C3
+:1085C000AAAAAAAAAAAAAAAA5555555555555555B3
+:1085D000AAAAAAAAAAAAAAAA5555555555555555A3
+:1085E000AAAAAAAAAAAAAAAA555555555555555593
+:1085F000AAAAAAAAAAAAAAAA555555555555555583
+:108600005555555555555555AAAAAAAAAAAAAAAA72
+:108610005555555555555555AAAAAAAAAAAAAAAA62
+:108620005555555555555555AAAAAAAAAAAAAAAA52
+:108630005555555555555555AAAAAAAAAAAAAAAA42
+:108640005555555555555555AAAAAAAAAAAAAAAA32
+:108650005555555555555555AAAAAAAAAAAAAAAA22
+:108660005555555555555555AAAAAAAAAAAAAAAA12
+:108670005555555555555555AAAAAAAAAAAAAAAA02
+:10868000AAAAAAAAAAAAAAAA5555555555555555F2
+:10869000AAAAAAAAAAAAAAAA5555555555555555E2
+:1086A000AAAAAAAAAAAAAAAA5555555555555555D2
+:1086B000AAAAAAAAAAAAAAAA5555555555555555C2
+:1086C000AAAAAAAAAAAAAAAA5555555555555555B2
+:1086D000AAAAAAAAAAAAAAAA5555555555555555A2
+:1086E000AAAAAAAAAAAAAAAA555555555555555592
+:1086F000AAAAAAAAAAAAAAAA555555555555555582
+:108700005555555555555555AAAAAAAAAAAAAAAA71
+:108710005555555555555555AAAAAAAAAAAAAAAA61
+:108720005555555555555555AAAAAAAAAAAAAAAA51
+:108730005555555555555555AAAAAAAAAAAAAAAA41
+:108740005555555555555555AAAAAAAAAAAAAAAA31
+:108750005555555555555555AAAAAAAAAAAAAAAA21
+:108760005555555555555555AAAAAAAAAAAAAAAA11
+:108770005555555555555555AAAAAAAAAAAAAAAA01
+:10878000AAAAAAAAAAAAAAAA5555555555555555F1
+:10879000AAAAAAAAAAAAAAAA5555555555555555E1
+:1087A000AAAAAAAAAAAAAAAA5555555555555555D1
+:1087B000AAAAAAAAAAAAAAAA5555555555555555C1
+:1087C000AAAAAAAAAAAAAAAA5555555555555555B1
+:1087D000AAAAAAAAAAAAAAAA5555555555555555A1
+:1087E000AAAAAAAAAAAAAAAA555555555555555591
+:1087F000AAAAAAAAAAAAAAAA555555555555555581
+:108800005555555555555555AAAAAAAAAAAAAAAA70
+:108810005555555555555555AAAAAAAAAAAAAAAA60
+:108820005555555555555555AAAAAAAAAAAAAAAA50
+:108830005555555555555555AAAAAAAAAAAAAAAA40
+:108840005555555555555555AAAAAAAAAAAAAAAA30
+:108850005555555555555555AAAAAAAAAAAAAAAA20
+:108860005555555555555555AAAAAAAAAAAAAAAA10
+:108870005555555555555555AAAAAAAAAAAAAAAA00
+:10888000AAAAAAAAAAAAAAAA5555555555555555F0
+:10889000AAAAAAAAAAAAAAAA5555555555555555E0
+:1088A000AAAAAAAAAAAAAAAA5555555555555555D0
+:1088B000AAAAAAAAAAAAAAAA5555555555555555C0
+:1088C000AAAAAAAAAAAAAAAA5555555555555555B0
+:1088D000AAAAAAAAAAAAAAAA5555555555555555A0
+:1088E000AAAAAAAAAAAAAAAA555555555555555590
+:1088F000AAAAAAAAAAAAAAAA555555555555555580
+:108900005555555555555555AAAAAAAAAAAAAAAA6F
+:108910005555555555555555AAAAAAAAAAAAAAAA5F
+:108920005555555555555555AAAAAAAAAAAAAAAA4F
+:108930005555555555555555AAAAAAAAAAAAAAAA3F
+:108940005555555555555555AAAAAAAAAAAAAAAA2F
+:108950005555555555555555AAAAAAAAAAAAAAAA1F
+:108960005555555555555555AAAAAAAAAAAAAAAA0F
+:108970005555555555555555AAAAAAAAAAAAAAAAFF
+:10898000AAAAAAAAAAAAAAAA5555555555555555EF
+:10899000AAAAAAAAAAAAAAAA5555555555555555DF
+:1089A000AAAAAAAAAAAAAAAA5555555555555555CF
+:1089B000AAAAAAAAAAAAAAAA5555555555555555BF
+:1089C000AAAAAAAAAAAAAAAA5555555555555555AF
+:1089D000AAAAAAAAAAAAAAAA55555555555555559F
+:1089E000AAAAAAAAAAAAAAAA55555555555555558F
+:1089F000AAAAAAAAAAAAAAAA55555555555555557F
+:108A00005555555555555555AAAAAAAAAAAAAAAA6E
+:108A10005555555555555555AAAAAAAAAAAAAAAA5E
+:108A20005555555555555555AAAAAAAAAAAAAAAA4E
+:108A30005555555555555555AAAAAAAAAAAAAAAA3E
+:108A40005555555555555555AAAAAAAAAAAAAAAA2E
+:108A50005555555555555555AAAAAAAAAAAAAAAA1E
+:108A60005555555555555555AAAAAAAAAAAAAAAA0E
+:108A70005555555555555555AAAAAAAAAAAAAAAAFE
+:108A8000AAAAAAAAAAAAAAAA5555555555555555EE
+:108A9000AAAAAAAAAAAAAAAA5555555555555555DE
+:108AA000AAAAAAAAAAAAAAAA5555555555555555CE
+:108AB000AAAAAAAAAAAAAAAA5555555555555555BE
+:108AC000AAAAAAAAAAAAAAAA5555555555555555AE
+:108AD000AAAAAAAAAAAAAAAA55555555555555559E
+:108AE000AAAAAAAAAAAAAAAA55555555555555558E
+:108AF000AAAAAAAAAAAAAAAA55555555555555557E
+:108B00005555555555555555AAAAAAAAAAAAAAAA6D
+:108B10005555555555555555AAAAAAAAAAAAAAAA5D
+:108B20005555555555555555AAAAAAAAAAAAAAAA4D
+:108B30005555555555555555AAAAAAAAAAAAAAAA3D
+:108B40005555555555555555AAAAAAAAAAAAAAAA2D
+:108B50005555555555555555AAAAAAAAAAAAAAAA1D
+:108B60005555555555555555AAAAAAAAAAAAAAAA0D
+:108B70005555555555555555AAAAAAAAAAAAAAAAFD
+:108B8000AAAAAAAAAAAAAAAA5555555555555555ED
+:108B9000AAAAAAAAAAAAAAAA5555555555555555DD
+:108BA000AAAAAAAAAAAAAAAA5555555555555555CD
+:108BB000AAAAAAAAAAAAAAAA5555555555555555BD
+:108BC000AAAAAAAAAAAAAAAA5555555555555555AD
+:108BD000AAAAAAAAAAAAAAAA55555555555555559D
+:108BE000AAAAAAAAAAAAAAAA55555555555555558D
+:108BF000AAAAAAAAAAAAAAAA55555555555555557D
+:108C00005050505050505050A0A0A0A0A0A0A0A0E4
+:108C10005050505050505050A0A0A0A0A0A0A0A0D4
+:108C20005050505050505050A0A0A0A0A0A0A0A0C4
+:108C30005050505050505050A0A0A0A0A0A0A0A0B4
+:108C40005050505050505050A0A0A0A0A0A0A0A0A4
+:108C50005050505050505050A0A0A0A0A0A0A0A094
+:108C60005050505050505050A0A0A0A0A0A0A0A084
+:108C70005050505050505050A0A0A0A0A0A0A0A074
+:108C8000A0A0A0A0A0A0A0A0505050505050505064
+:108C9000A0A0A0A0A0A0A0A0505050505050505054
+:108CA000A0A0A0A0A0A0A0A0505050505050505044
+:108CB000A0A0A0A0A0A0A0A0505050505050505034
+:108CC000A0A0A0A0A0A0A0A0505050505050505024
+:108CD000A0A0A0A0A0A0A0A0505050505050505014
+:108CE000A0A0A0A0A0A0A0A0505050505050505004
+:108CF000A0A0A0A0A0A0A0A05050505050505050F4
+:108D00005A5A5A5A5A5A5A5AA5A5A5A5A5A5A5A56B
+:108D10005A5A5A5A5A5A5A5AA5A5A5A5A5A5A5A55B
+:108D20005A5A5A5A5A5A5A5AA5A5A5A5A5A5A5A54B
+:108D30005A5A5A5A5A5A5A5AA5A5A5A5A5A5A5A53B
+:108D40005A5A5A5A5A5A5A5AA5A5A5A5A5A5A5A52B
+:108D50005A5A5A5A5A5A5A5AA5A5A5A5A5A5A5A51B
+:108D60005A5A5A5A5A5A5A5AA5A5A5A5A5A5A5A50B
+:108D70005A5A5A5A5A5A5A5AA5A5A5A5A5A5A5A5FB
+:108D8000AAAAAAAAAAAAAAAA5A5A5A5A5A5A5A5AC3
+:108D9000AAAAAAAAAAAAAAAA5A5A5A5A5A5A5A5AB3
+:108DA000AAAAAAAAAAAAAAAA5A5A5A5A5A5A5A5AA3
+:108DB000AAAAAAAAAAAAAAAA5A5A5A5A5A5A5A5A93
+:108DC000AAAAAAAAAAAAAAAA5A5A5A5A5A5A5A5A83
+:108DD000AAAAAAAAAAAAAAAA5A5A5A5A5A5A5A5A73
+:108DE000AAAAAAAAAAAAAAAA5A5A5A5A5A5A5A5A63
+:108DF000AAAAAAAAAAAAAAAA5A5A5A5A5A5A5A5A53
+:108E00005A5A5A5A5A5A5A5AA5A5A5A5A5A5A5A56A
+:108E10005A5A5A5A5A5A5A5AA5A5A5A5A5A5A5A55A
+:108E20005A5A5A5A5A5A5A5AA5A5A5A5A5A5A5A54A
+:108E30005A5A5A5A5A5A5A5AA5A5A5A5A5A5A5A53A
+:108E40005A5A5A5A5A5A5A5AA5A5A5A5A5A5A5A52A
+:108E50005A5A5A5A5A5A5A5AA5A5A5A5A5A5A5A51A
+:108E60005A5A5A5A5A5A5A5AA5A5A5A5A5A5A5A50A
+:108E70005A5A5A5A5A5A5A5AA5A5A5A5A5A5A5A5FA
+:108E8000AAAAAAAAAAAAAAAA5A5A5A5A5A5A5A5AC2
+:108E9000AAAAAAAAAAAAAAAA5A5A5A5A5A5A5A5AB2
+:108EA000AAAAAAAAAAAAAAAA5A5A5A5A5A5A5A5AA2
+:108EB000AAAAAAAAAAAAAAAA5A5A5A5A5A5A5A5A92
+:108EC000AAAAAAAAAAAAAAAA5A5A5A5A5A5A5A5A82
+:108ED000AAAAAAAAAAAAAAAA5A5A5A5A5A5A5A5A72
+:108EE000AAAAAAAAAAAAAAAA5A5A5A5A5A5A5A5A62
+:108EF000AAAAAAAAAAAAAAAA5A5A5A5A5A5A5A5A52
+:108F00005A5A5A5A5A5A5A5AA5A5A5A5A5A5A5A569
+:108F10005A5A5A5A5A5A5A5AA5A5A5A5A5A5A5A559
+:108F20005A5A5A5A5A5A5A5AA5A5A5A5A5A5A5A549
+:108F30005A5A5A5A5A5A5A5AA5A5A5A5A5A5A5A539
+:108F40005A5A5A5A5A5A5A5AA5A5A5A5A5A5A5A529
+:108F50005A5A5A5A5A5A5A5AA5A5A5A5A5A5A5A519
+:108F60005A5A5A5A5A5A5A5AA5A5A5A5A5A5A5A509
+:108F70005A5A5A5A5A5A5A5AA5A5A5A5A5A5A5A5F9
+:108F8000AAAAAAAAAAAAAAAA5A5A5A5A5A5A5A5AC1
+:108F9000AAAAAAAAAAAAAAAA5A5A5A5A5A5A5A5AB1
+:108FA000AAAAAAAAAAAAAAAA5A5A5A5A5A5A5A5AA1
+:108FB000AAAAAAAAAAAAAAAA5A5A5A5A5A5A5A5A91
+:108FC000AAAAAAAAAAAAAAAA5A5A5A5A5A5A5A5A81
+:108FD000AAAAAAAAAAAAAAAA5A5A5A5A5A5A5A5A71
+:108FE000AAAAAAAAAAAAAAAA5A5A5A5A5A5A5A5A61
+:108FF000AAAAAAAAAAAAAAAA5A5A5A5A5A5A5A5A51
+:109000005A5A5A5A5A5A5A5AA5A5A5A5A5A5A5A568
+:109010005A5A5A5A5A5A5A5AA5A5A5A5A5A5A5A558
+:109020005A5A5A5A5A5A5A5AA5A5A5A5A5A5A5A548
+:109030005A5A5A5A5A5A5A5AA5A5A5A5A5A5A5A538
+:109040005A5A5A5A5A5A5A5AA5A5A5A5A5A5A5A528
+:109050005A5A5A5A5A5A5A5AA5A5A5A5A5A5A5A518
+:109060005A5A5A5A5A5A5A5AA5A5A5A5A5A5A5A508
+:109070005A5A5A5A5A5A5A5AA5A5A5A5A5A5A5A5F8
+:10908000AAAAAAAAAAAAAAAA5A5A5A5A5A5A5A5AC0
+:10909000AAAAAAAAAAAAAAAA5A5A5A5A5A5A5A5AB0
+:1090A000AAAAAAAAAAAAAAAA5A5A5A5A5A5A5A5AA0
+:1090B000AAAAAAAAAAAAAAAA5A5A5A5A5A5A5A5A90
+:1090C000AAAAAAAAAAAAAAAA5A5A5A5A5A5A5A5A80
+:1090D000AAAAAAAAAAAAAAAA5A5A5A5A5A5A5A5A70
+:1090E000AAAAAAAAAAAAAAAA5A5A5A5A5A5A5A5A60
+:1090F000AAAAAAAAAAAAAAAA5A5A5A5A5A5A5A5A50
+:109100005A5A5A5A5A5A5A5AA5A5A5A5A5A5A5A567
+:109110005A5A5A5A5A5A5A5AA5A5A5A5A5A5A5A557
+:109120005A5A5A5A5A5A5A5AA5A5A5A5A5A5A5A547
+:109130005A5A5A5A5A5A5A5AA5A5A5A5A5A5A5A537
+:109140005A5A5A5A5A5A5A5AA5A5A5A5A5A5A5A527
+:109150005A5A5A5A5A5A5A5AA5A5A5A5A5A5A5A517
+:109160005A5A5A5A5A5A5A5AA5A5A5A5A5A5A5A507
+:109170005A5A5A5A5A5A5A5AA5A5A5A5A5A5A5A5F7
+:10918000AAAAAAAAAAAAAAAA5A5A5A5A5A5A5A5ABF
+:10919000AAAAAAAAAAAAAAAA5A5A5A5A5A5A5A5AAF
+:1091A000AAAAAAAAAAAAAAAA5A5A5A5A5A5A5A5A9F
+:1091B000AAAAAAAAAAAAAAAA5A5A5A5A5A5A5A5A8F
+:1091C000AAAAAAAAAAAAAAAA5A5A5A5A5A5A5A5A7F
+:1091D000AAAAAAAAAAAAAAAA5A5A5A5A5A5A5A5A6F
+:1091E000AAAAAAAAAAAAAAAA5A5A5A5A5A5A5A5A5F
+:1091F000AAAAAAAAAAAAAAAA5A5A5A5A5A5A5A5A4F
+:109200005A5A5A5A5A5A5A5AA5A5A5A5A5A5A5A566
+:109210005A5A5A5A5A5A5A5AA5A5A5A5A5A5A5A556
+:109220005A5A5A5A5A5A5A5AA5A5A5A5A5A5A5A546
+:109230005A5A5A5A5A5A5A5AA5A5A5A5A5A5A5A536
+:109240005A5A5A5A5A5A5A5AA5A5A5A5A5A5A5A526
+:109250005A5A5A5A5A5A5A5AA5A5A5A5A5A5A5A516
+:109260005A5A5A5A5A5A5A5AA5A5A5A5A5A5A5A506
+:109270005A5A5A5A5A5A5A5AA5A5A5A5A5A5A5A5F6
+:10928000AAAAAAAAAAAAAAAA5A5A5A5A5A5A5A5ABE
+:10929000AAAAAAAAAAAAAAAA5A5A5A5A5A5A5A5AAE
+:1092A000AAAAAAAAAAAAAAAA5A5A5A5A5A5A5A5A9E
+:1092B000AAAAAAAAAAAAAAAA5A5A5A5A5A5A5A5A8E
+:1092C000AAAAAAAAAAAAAAAA5A5A5A5A5A5A5A5A7E
+:1092D000AAAAAAAAAAAAAAAA5A5A5A5A5A5A5A5A6E
+:1092E000AAAAAAAAAAAAAAAA5A5A5A5A5A5A5A5A5E
+:1092F000AAAAAAAAAAAAAAAA5A5A5A5A5A5A5A5A4E
+:109300005A5A5A5A5A5A5A5AA5A5A5A5A5A5A5A565
+:109310005A5A5A5A5A5A5A5AA5A5A5A5A5A5A5A555
+:109320005A5A5A5A5A5A5A5AA5A5A5A5A5A5A5A545
+:109330005A5A5A5A5A5A5A5AA5A5A5A5A5A5A5A535
+:109340005A5A5A5A5A5A5A5AA5A5A5A5A5A5A5A525
+:109350005A5A5A5A5A5A5A5AA5A5A5A5A5A5A5A515
+:109360005A5A5A5A5A5A5A5AA5A5A5A5A5A5A5A505
+:109370005A5A5A5A5A5A5A5AA5A5A5A5A5A5A5A5F5
+:10938000AAAAAAAAAAAAAAAA5A5A5A5A5A5A5A5ABD
+:10939000AAAAAAAAAAAAAAAA5A5A5A5A5A5A5A5AAD
+:1093A000AAAAAAAAAAAAAAAA5A5A5A5A5A5A5A5A9D
+:1093B000AAAAAAAAAAAAAAAA5A5A5A5A5A5A5A5A8D
+:1093C000AAAAAAAAAAAAAAAA5A5A5A5A5A5A5A5A7D
+:1093D000AAAAAAAAAAAAAAAA5A5A5A5A5A5A5A5A6D
+:1093E000AAAAAAAAAAAAAAAA5A5A5A5A5A5A5A5A5D
+:1093F000AAAAAAAAAAAAAAAA5A5A5A5A5A5A5A5A4D
+:109400004A4A4A4A4A4A4A4A8585858585858585E4
+:109410004A4A4A4A4A4A4A4A8585858585858585D4
+:109420004A4A4A4A4A4A4A4A8585858585858585C4
+:109430004A4A4A4A4A4A4A4A8585858585858585B4
+:109440004A4A4A4A4A4A4A4A8585858585858585A4
+:109450004A4A4A4A4A4A4A4A858585858585858594
+:109460004A4A4A4A4A4A4A4A858585858585858584
+:109470004A4A4A4A4A4A4A4A858585858585858574
+:109480008A8A8A8A8A8A8A8A4A4A4A4A4A4A4A4A3C
+:109490008A8A8A8A8A8A8A8A4A4A4A4A4A4A4A4A2C
+:1094A0008A8A8A8A8A8A8A8A4A4A4A4A4A4A4A4A1C
+:1094B0008A8A8A8A8A8A8A8A4A4A4A4A4A4A4A4A0C
+:1094C0008A8A8A8A8A8A8A8A4A4A4A4A4A4A4A4AFC
+:1094D0008A8A8A8A8A8A8A8A4A4A4A4A4A4A4A4AEC
+:1094E0008A8A8A8A8A8A8A8A4A4A4A4A4A4A4A4ADC
+:1094F0008A8A8A8A8A8A8A8A4A4A4A4A4A4A4A4ACC
+:109500006A6A6A6A6A6A6A6A959595959595959563
+:109510006A6A6A6A6A6A6A6A959595959595959553
+:109520006A6A6A6A6A6A6A6A959595959595959543
+:109530006A6A6A6A6A6A6A6A959595959595959533
+:109540006A6A6A6A6A6A6A6A959595959595959523
+:109550006A6A6A6A6A6A6A6A959595959595959513
+:109560006A6A6A6A6A6A6A6A959595959595959503
+:109570006A6A6A6A6A6A6A6A9595959595959595F3
+:10958000AAAAAAAAAAAAAAAA6A6A6A6A6A6A6A6A3B
+:10959000AAAAAAAAAAAAAAAA6A6A6A6A6A6A6A6A2B
+:1095A000AAAAAAAAAAAAAAAA6A6A6A6A6A6A6A6A1B
+:1095B000AAAAAAAAAAAAAAAA6A6A6A6A6A6A6A6A0B
+:1095C000AAAAAAAAAAAAAAAA6A6A6A6A6A6A6A6AFB
+:1095D000AAAAAAAAAAAAAAAA6A6A6A6A6A6A6A6AEB
+:1095E000AAAAAAAAAAAAAAAA6A6A6A6A6A6A6A6ADB
+:1095F000AAAAAAAAAAAAAAAA6A6A6A6A6A6A6A6ACB
+:109600006A6A6A6A6A6A6A6A959595959595959562
+:109610006A6A6A6A6A6A6A6A959595959595959552
+:109620006A6A6A6A6A6A6A6A959595959595959542
+:109630006A6A6A6A6A6A6A6A959595959595959532
+:109640006A6A6A6A6A6A6A6A959595959595959522
+:109650006A6A6A6A6A6A6A6A959595959595959512
+:109660006A6A6A6A6A6A6A6A959595959595959502
+:109670006A6A6A6A6A6A6A6A9595959595959595F2
+:10968000AAAAAAAAAAAAAAAA6A6A6A6A6A6A6A6A3A
+:10969000AAAAAAAAAAAAAAAA6A6A6A6A6A6A6A6A2A
+:1096A000AAAAAAAAAAAAAAAA6A6A6A6A6A6A6A6A1A
+:1096B000AAAAAAAAAAAAAAAA6A6A6A6A6A6A6A6A0A
+:1096C000AAAAAAAAAAAAAAAA6A6A6A6A6A6A6A6AFA
+:1096D000AAAAAAAAAAAAAAAA6A6A6A6A6A6A6A6AEA
+:1096E000AAAAAAAAAAAAAAAA6A6A6A6A6A6A6A6ADA
+:1096F000AAAAAAAAAAAAAAAA6A6A6A6A6A6A6A6ACA
+:109700006A6A6A6A6A6A6A6A959595959595959561
+:109710006A6A6A6A6A6A6A6A959595959595959551
+:109720006A6A6A6A6A6A6A6A959595959595959541
+:109730006A6A6A6A6A6A6A6A959595959595959531
+:109740006A6A6A6A6A6A6A6A959595959595959521
+:109750006A6A6A6A6A6A6A6A959595959595959511
+:109760006A6A6A6A6A6A6A6A959595959595959501
+:109770006A6A6A6A6A6A6A6A9595959595959595F1
+:10978000AAAAAAAAAAAAAAAA6A6A6A6A6A6A6A6A39
+:10979000AAAAAAAAAAAAAAAA6A6A6A6A6A6A6A6A29
+:1097A000AAAAAAAAAAAAAAAA6A6A6A6A6A6A6A6A19
+:1097B000AAAAAAAAAAAAAAAA6A6A6A6A6A6A6A6A09
+:1097C000AAAAAAAAAAAAAAAA6A6A6A6A6A6A6A6AF9
+:1097D000AAAAAAAAAAAAAAAA6A6A6A6A6A6A6A6AE9
+:1097E000AAAAAAAAAAAAAAAA6A6A6A6A6A6A6A6AD9
+:1097F000AAAAAAAAAAAAAAAA6A6A6A6A6A6A6A6AC9
+:109800002A2A2A2A2A2A2A2A151515151515151560
+:109810002A2A2A2A2A2A2A2A151515151515151550
+:109820002A2A2A2A2A2A2A2A151515151515151540
+:109830002A2A2A2A2A2A2A2A151515151515151530
+:109840002A2A2A2A2A2A2A2A151515151515151520
+:109850002A2A2A2A2A2A2A2A151515151515151510
+:109860002A2A2A2A2A2A2A2A151515151515151500
+:109870002A2A2A2A2A2A2A2A1515151515151515F0
+:109880002A2A2A2A2A2A2A2A2A2A2A2A2A2A2A2A38
+:109890002A2A2A2A2A2A2A2A2A2A2A2A2A2A2A2A28
+:1098A0002A2A2A2A2A2A2A2A2A2A2A2A2A2A2A2A18
+:1098B0002A2A2A2A2A2A2A2A2A2A2A2A2A2A2A2A08
+:1098C0002A2A2A2A2A2A2A2A2A2A2A2A2A2A2A2AF8
+:1098D0002A2A2A2A2A2A2A2A2A2A2A2A2A2A2A2AE8
+:1098E0002A2A2A2A2A2A2A2A2A2A2A2A2A2A2A2AD8
+:1098F0002A2A2A2A2A2A2A2A2A2A2A2A2A2A2A2AC8
+:10990000AAAAAAAAAAAAAAAA55555555555555555F
+:10991000AAAAAAAAAAAAAAAA55555555555555554F
+:10992000AAAAAAAAAAAAAAAA55555555555555553F
+:10993000AAAAAAAAAAAAAAAA55555555555555552F
+:10994000AAAAAAAAAAAAAAAA55555555555555551F
+:10995000AAAAAAAAAAAAAAAA55555555555555550F
+:10996000AAAAAAAAAAAAAAAA5555555555555555FF
+:10997000AAAAAAAAAAAAAAAA5555555555555555EF
+:10998000AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA37
+:10999000AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA27
+:1099A000AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA17
+:1099B000AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA07
+:1099C000AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAF7
+:1099D000AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAE7
+:1099E000AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD7
+:1099F000AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAC7
+:109A0000AAAAAAAAAAAAAAAA55555555555555555E
+:109A1000AAAAAAAAAAAAAAAA55555555555555554E
+:109A2000AAAAAAAAAAAAAAAA55555555555555553E
+:109A3000AAAAAAAAAAAAAAAA55555555555555552E
+:109A4000AAAAAAAAAAAAAAAA55555555555555551E
+:109A5000AAAAAAAAAAAAAAAA55555555555555550E
+:109A6000AAAAAAAAAAAAAAAA5555555555555555FE
+:109A7000AAAAAAAAAAAAAAAA5555555555555555EE
+:109A8000AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA36
+:109A9000AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA26
+:109AA000AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA16
+:109AB000AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA06
+:109AC000AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAF6
+:109AD000AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAE6
+:109AE000AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD6
+:109AF000AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAC6
+:109B0000AAAAAAAAAAAAAAAA55555555555555555D
+:109B1000AAAAAAAAAAAAAAAA55555555555555554D
+:109B2000AAAAAAAAAAAAAAAA55555555555555553D
+:109B3000AAAAAAAAAAAAAAAA55555555555555552D
+:109B4000AAAAAAAAAAAAAAAA55555555555555551D
+:109B5000AAAAAAAAAAAAAAAA55555555555555550D
+:109B6000AAAAAAAAAAAAAAAA5555555555555555FD
+:109B7000AAAAAAAAAAAAAAAA5555555555555555ED
+:109B8000AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA35
+:109B9000AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA25
+:109BA000AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA15
+:109BB000AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA05
+:109BC000AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAF5
+:109BD000AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAE5
+:109BE000AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD5
+:109BF000AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAC5
+:109C0000AAAAAAAAAAAAAAAA55555555555555555C
+:109C1000AAAAAAAAAAAAAAAA55555555555555554C
+:109C2000AAAAAAAAAAAAAAAA55555555555555553C
+:109C3000AAAAAAAAAAAAAAAA55555555555555552C
+:109C4000AAAAAAAAAAAAAAAA55555555555555551C
+:109C5000AAAAAAAAAAAAAAAA55555555555555550C
+:109C6000AAAAAAAAAAAAAAAA5555555555555555FC
+:109C7000AAAAAAAAAAAAAAAA5555555555555555EC
+:109C8000AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA34
+:109C9000AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA24
+:109CA000AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA14
+:109CB000AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA04
+:109CC000AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAF4
+:109CD000AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAE4
+:109CE000AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD4
+:109CF000AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAC4
+:109D0000AAAAAAAAAAAAAAAA55555555555555555B
+:109D1000AAAAAAAAAAAAAAAA55555555555555554B
+:109D2000AAAAAAAAAAAAAAAA55555555555555553B
+:109D3000AAAAAAAAAAAAAAAA55555555555555552B
+:109D4000AAAAAAAAAAAAAAAA55555555555555551B
+:109D5000AAAAAAAAAAAAAAAA55555555555555550B
+:109D6000AAAAAAAAAAAAAAAA5555555555555555FB
+:109D7000AAAAAAAAAAAAAAAA5555555555555555EB
+:109D8000AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA33
+:109D9000AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA23
+:109DA000AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA13
+:109DB000AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA03
+:109DC000AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAF3
+:109DD000AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAE3
+:109DE000AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD3
+:109DF000AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAC3
+:109E0000AAAAAAAAAAAAAAAA55555555555555555A
+:109E1000AAAAAAAAAAAAAAAA55555555555555554A
+:109E2000AAAAAAAAAAAAAAAA55555555555555553A
+:109E3000AAAAAAAAAAAAAAAA55555555555555552A
+:109E4000AAAAAAAAAAAAAAAA55555555555555551A
+:109E5000AAAAAAAAAAAAAAAA55555555555555550A
+:109E6000AAAAAAAAAAAAAAAA5555555555555555FA
+:109E7000AAAAAAAAAAAAAAAA5555555555555555EA
+:109E8000AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA32
+:109E9000AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA22
+:109EA000AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA12
+:109EB000AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA02
+:109EC000AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAF2
+:109ED000AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAE2
+:109EE000AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2
+:109EF000AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAC2
+:109F0000AAAAAAAAAAAAAAAA555555555555555559
+:109F1000AAAAAAAAAAAAAAAA555555555555555549
+:109F2000AAAAAAAAAAAAAAAA555555555555555539
+:109F3000AAAAAAAAAAAAAAAA555555555555555529
+:109F4000AAAAAAAAAAAAAAAA555555555555555519
+:109F5000AAAAAAAAAAAAAAAA555555555555555509
+:109F6000AAAAAAAAAAAAAAAA5555555555555555F9
+:109F7000AAAAAAAAAAAAAAAA5555555555555555E9
+:109F8000AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA31
+:109F9000AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA21
+:109FA000AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA11
+:109FB000AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA01
+:109FC000AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAF1
+:109FD000AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAE1
+:109FE000AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD1
+:109FF000AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAC1
+:10A00000AAAAAAAAAAAAAAAA555555555555555558
+:10A01000AAAAAAAAAAAAAAAA555555555555555548
+:10A02000AAAAAAAAAAAAAAAA555555555555555538
+:10A03000AAAAAAAAAAAAAAAA555555555555555528
+:10A04000AAAAAAAAAAAAAAAA555555555555555518
+:10A05000AAAAAAAAAAAAAAAA555555555555555508
+:10A06000AAAAAAAAAAAAAAAA5555555555555555F8
+:10A07000AAAAAAAAAAAAAAAA5555555555555555E8
+:10A08000AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA30
+:10A09000AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA20
+:10A0A000AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA10
+:10A0B000AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA00
+:10A0C000AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAF0
+:10A0D000AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAE0
+:10A0E000AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD0
+:10A0F000AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAC0
+:10A10000AAAAAAAAAAAAAAAA555555555555555557
+:10A11000AAAAAAAAAAAAAAAA555555555555555547
+:10A12000AAAAAAAAAAAAAAAA555555555555555537
+:10A13000AAAAAAAAAAAAAAAA555555555555555527
+:10A14000AAAAAAAAAAAAAAAA555555555555555517
+:10A15000AAAAAAAAAAAAAAAA555555555555555507
+:10A16000AAAAAAAAAAAAAAAA5555555555555555F7
+:10A17000AAAAAAAAAAAAAAAA5555555555555555E7
+:10A18000AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA2F
+:10A19000AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA1F
+:10A1A000AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA0F
+:10A1B000AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFF
+:10A1C000AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEF
+:10A1D000AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADF
+:10A1E000AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACF
+:10A1F000AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABF
+:10A20000AAAAAAAAAAAAAAAA555555555555555556
+:10A21000AAAAAAAAAAAAAAAA555555555555555546
+:10A22000AAAAAAAAAAAAAAAA555555555555555536
+:10A23000AAAAAAAAAAAAAAAA555555555555555526
+:10A24000AAAAAAAAAAAAAAAA555555555555555516
+:10A25000AAAAAAAAAAAAAAAA555555555555555506
+:10A26000AAAAAAAAAAAAAAAA5555555555555555F6
+:10A27000AAAAAAAAAAAAAAAA5555555555555555E6
+:10A28000AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA2E
+:10A29000AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA1E
+:10A2A000AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA0E
+:10A2B000AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFE
+:10A2C000AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEE
+:10A2D000AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADE
+:10A2E000AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACE
+:10A2F000AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABE
+:10A30000AAAAAAAAAAAAAAAA555555555555555555
+:10A31000AAAAAAAAAAAAAAAA555555555555555545
+:10A32000AAAAAAAAAAAAAAAA555555555555555535
+:10A33000AAAAAAAAAAAAAAAA555555555555555525
+:10A34000AAAAAAAAAAAAAAAA555555555555555515
+:10A35000AAAAAAAAAAAAAAAA555555555555555505
+:10A36000AAAAAAAAAAAAAAAA5555555555555555F5
+:10A37000AAAAAAAAAAAAAAAA5555555555555555E5
+:10A38000AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA2D
+:10A39000AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA1D
+:10A3A000AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA0D
+:10A3B000AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFD
+:10A3C000AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAED
+:10A3D000AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADD
+:10A3E000AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACD
+:10A3F000AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABD
+:10A40000AAAAAAAAAAAAAAAA555555555555555554
+:10A41000AAAAAAAAAAAAAAAA555555555555555544
+:10A42000AAAAAAAAAAAAAAAA555555555555555534
+:10A43000AAAAAAAAAAAAAAAA555555555555555524
+:10A44000AAAAAAAAAAAAAAAA555555555555555514
+:10A45000AAAAAAAAAAAAAAAA555555555555555504
+:10A46000AAAAAAAAAAAAAAAA5555555555555555F4
+:10A47000AAAAAAAAAAAAAAAA5555555555555555E4
+:10A48000AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA2C
+:10A49000AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA1C
+:10A4A000AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA0C
+:10A4B000AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFC
+:10A4C000AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEC
+:10A4D000AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADC
+:10A4E000AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACC
+:10A4F000AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABC
+:10A50000AAAAAAAAAAAAAAAA555555555555555553
+:10A51000AAAAAAAAAAAAAAAA555555555555555543
+:10A52000AAAAAAAAAAAAAAAA555555555555555533
+:10A53000AAAAAAAAAAAAAAAA555555555555555523
+:10A54000AAAAAAAAAAAAAAAA555555555555555513
+:10A55000AAAAAAAAAAAAAAAA555555555555555503
+:10A56000AAAAAAAAAAAAAAAA5555555555555555F3
+:10A57000AAAAAAAAAAAAAAAA5555555555555555E3
+:10A58000AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA2B
+:10A59000AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA1B
+:10A5A000AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA0B
+:10A5B000AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFB
+:10A5C000AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEB
+:10A5D000AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADB
+:10A5E000AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACB
+:10A5F000AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABB
+:10A60000AAAAAAAAAAAAAAAA555555555555555552
+:10A61000AAAAAAAAAAAAAAAA555555555555555542
+:10A62000AAAAAAAAAAAAAAAA555555555555555532
+:10A63000AAAAAAAAAAAAAAAA555555555555555522
+:10A64000AAAAAAAAAAAAAAAA555555555555555512
+:10A65000AAAAAAAAAAAAAAAA555555555555555502
+:10A66000AAAAAAAAAAAAAAAA5555555555555555F2
+:10A67000AAAAAAAAAAAAAAAA5555555555555555E2
+:10A68000AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA2A
+:10A69000AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA1A
+:10A6A000AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA0A
+:10A6B000AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFA
+:10A6C000AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEA
+:10A6D000AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADA
+:10A6E000AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACA
+:10A6F000AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABA
+:10A70000A0A0A0A0A0A0A0A05050505050505050C9
+:10A71000A0A0A0A0A0A0A0A05050505050505050B9
+:10A72000A0A0A0A0A0A0A0A05050505050505050A9
+:10A73000A0A0A0A0A0A0A0A0505050505050505099
+:10A74000A0A0A0A0A0A0A0A0505050505050505089
+:10A75000A0A0A0A0A0A0A0A0505050505050505079
+:10A76000A0A0A0A0A0A0A0A0505050505050505069
+:10A77000A0A0A0A0A0A0A0A0505050505050505059
+:10A78000A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0C9
+:10A79000A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0B9
+:10A7A000A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A9
+:10A7B000A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A099
+:10A7C000A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A089
+:10A7D000A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A079
+:10A7E000A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A069
+:10A7F000A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A059
+:10A80000ACACACACACACACAC5C5C5C5C5C5C5C5C08
+:10A81000ACACACACACACACAC5C5C5C5C5C5C5C5CF8
+:10A82000ACACACACACACACAC5C5C5C5C5C5C5C5CE8
+:10A83000ACACACACACACACAC5C5C5C5C5C5C5C5CD8
+:10A84000ACACACACACACACAC5C5C5C5C5C5C5C5CC8
+:10A85000ACACACACACACACAC5C5C5C5C5C5C5C5CB8
+:10A86000ACACACACACACACAC5C5C5C5C5C5C5C5CA8
+:10A87000ACACACACACACACAC5C5C5C5C5C5C5C5C98
+:10A88000ACACACACACACACACACACACACACACACAC08
+:10A89000ACACACACACACACACACACACACACACACACF8
+:10A8A000ACACACACACACACACACACACACACACACACE8
+:10A8B000ACACACACACACACACACACACACACACACACD8
+:10A8C000ACACACACACACACACACACACACACACACACC8
+:10A8D000ACACACACACACACACACACACACACACACACB8
+:10A8E000ACACACACACACACACACACACACACACACACA8
+:10A8F000ACACACACACACACACACACACACACACACAC98
+:10A90000A0A0A0A0A0A0A0A05050505050505050C7
+:10A91000A0A0A0A0A0A0A0A05050505050505050B7
+:10A92000A0A0A0A0A0A0A0A05050505050505050A7
+:10A93000A0A0A0A0A0A0A0A0505050505050505097
+:10A94000A0A0A0A0A0A0A0A0505050505050505087
+:10A95000A0A0A0A0A0A0A0A0505050505050505077
+:10A96000A0A0A0A0A0A0A0A0505050505050505067
+:10A97000A0A0A0A0A0A0A0A0505050505050505057
+:10A98000A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0C7
+:10A99000A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0B7
+:10A9A000A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A7
+:10A9B000A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A097
+:10A9C000A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A087
+:10A9D000A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A077
+:10A9E000A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A067
+:10A9F000A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A057
+:10AA0000A0A0A0A0A0A0A0A05050505050505050C6
+:10AA1000A0A0A0A0A0A0A0A05050505050505050B6
+:10AA2000A0A0A0A0A0A0A0A05050505050505050A6
+:10AA3000A0A0A0A0A0A0A0A0505050505050505096
+:10AA4000A0A0A0A0A0A0A0A0505050505050505086
+:10AA5000A0A0A0A0A0A0A0A0505050505050505076
+:10AA6000A0A0A0A0A0A0A0A0505050505050505066
+:10AA7000A0A0A0A0A0A0A0A0505050505050505056
+:10AA8000A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0C6
+:10AA9000A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0B6
+:10AAA000A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A6
+:10AAB000A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A096
+:10AAC000A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A086
+:10AAD000A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A076
+:10AAE000A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A066
+:10AAF000A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A056
+:10AB0000A0A0A0A0A0A0A0A05050505050505050C5
+:10AB1000A0A0A0A0A0A0A0A05050505050505050B5
+:10AB2000A0A0A0A0A0A0A0A05050505050505050A5
+:10AB3000A0A0A0A0A0A0A0A0505050505050505095
+:10AB4000A0A0A0A0A0A0A0A0505050505050505085
+:10AB5000A0A0A0A0A0A0A0A0505050505050505075
+:10AB6000A0A0A0A0A0A0A0A0505050505050505065
+:10AB7000A0A0A0A0A0A0A0A0505050505050505055
+:10AB8000A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0C5
+:10AB9000A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0B5
+:10ABA000A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A5
+:10ABB000A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A095
+:10ABC000A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A085
+:10ABD000A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A075
+:10ABE000A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A065
+:10ABF000A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A055
+:10AC0000A0A0A0A0A0A0A0A05050505050505050C4
+:10AC1000A0A0A0A0A0A0A0A05050505050505050B4
+:10AC2000A0A0A0A0A0A0A0A05050505050505050A4
+:10AC3000A0A0A0A0A0A0A0A0505050505050505094
+:10AC4000A0A0A0A0A0A0A0A0505050505050505084
+:10AC5000A0A0A0A0A0A0A0A0505050505050505074
+:10AC6000A0A0A0A0A0A0A0A0505050505050505064
+:10AC7000A0A0A0A0A0A0A0A0505050505050505054
+:10AC8000A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0C4
+:10AC9000A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0B4
+:10ACA000A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A4
+:10ACB000A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A094
+:10ACC000A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A084
+:10ACD000A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A074
+:10ACE000A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A064
+:10ACF000A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A054
+:10AD0000A0A0A0A0A0A0A0A05050505050505050C3
+:10AD1000A0A0A0A0A0A0A0A05050505050505050B3
+:10AD2000A0A0A0A0A0A0A0A05050505050505050A3
+:10AD3000A0A0A0A0A0A0A0A0505050505050505093
+:10AD4000A0A0A0A0A0A0A0A0505050505050505083
+:10AD5000A0A0A0A0A0A0A0A0505050505050505073
+:10AD6000A0A0A0A0A0A0A0A0505050505050505063
+:10AD7000A0A0A0A0A0A0A0A0505050505050505053
+:10AD8000A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0C3
+:10AD9000A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0B3
+:10ADA000A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A3
+:10ADB000A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A093
+:10ADC000A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A083
+:10ADD000A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A073
+:10ADE000A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A063
+:10ADF000A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A053
+:10AE0000A0A0A0A0A0A0A0A05050505050505050C2
+:10AE1000A0A0A0A0A0A0A0A05050505050505050B2
+:10AE2000A0A0A0A0A0A0A0A05050505050505050A2
+:10AE3000A0A0A0A0A0A0A0A0505050505050505092
+:10AE4000A0A0A0A0A0A0A0A0505050505050505082
+:10AE5000A0A0A0A0A0A0A0A0505050505050505072
+:10AE6000A0A0A0A0A0A0A0A0505050505050505062
+:10AE7000A0A0A0A0A0A0A0A0505050505050505052
+:10AE8000A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0C2
+:10AE9000A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0B2
+:10AEA000A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A2
+:10AEB000A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A092
+:10AEC000A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A082
+:10AED000A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A072
+:10AEE000A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A062
+:10AEF000A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A052
+:10AF0000A0A0A0A0A0A0A0A05050505050505050C1
+:10AF1000A0A0A0A0A0A0A0A05050505050505050B1
+:10AF2000A0A0A0A0A0A0A0A05050505050505050A1
+:10AF3000A0A0A0A0A0A0A0A0505050505050505091
+:10AF4000A0A0A0A0A0A0A0A0505050505050505081
+:10AF5000A0A0A0A0A0A0A0A0505050505050505071
+:10AF6000A0A0A0A0A0A0A0A0505050505050505061
+:10AF7000A0A0A0A0A0A0A0A0505050505050505051
+:10AF8000A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0C1
+:10AF9000A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0B1
+:10AFA000A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A1
+:10AFB000A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A091
+:10AFC000A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A081
+:10AFD000A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A071
+:10AFE000A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A061
+:10AFF000A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A051
+:10B00000A0A0A0A0A0A0A0A05050505050505050C0
+:10B01000A0A0A0A0A0A0A0A05050505050505050B0
+:10B02000A0A0A0A0A0A0A0A05050505050505050A0
+:10B03000A0A0A0A0A0A0A0A0505050505050505090
+:10B04000A0A0A0A0A0A0A0A0505050505050505080
+:10B05000A0A0A0A0A0A0A0A0505050505050505070
+:10B06000A0A0A0A0A0A0A0A0505050505050505060
+:10B07000A0A0A0A0A0A0A0A0505050505050505050
+:10B08000A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0C0
+:10B09000A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0B0
+:10B0A000A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0
+:10B0B000A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A090
+:10B0C000A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A080
+:10B0D000A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A070
+:10B0E000A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A060
+:10B0F000A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A050
+:10B10000A0A0A0A0A0A0A0A05050505050505050BF
+:10B11000A0A0A0A0A0A0A0A05050505050505050AF
+:10B12000A0A0A0A0A0A0A0A050505050505050509F
+:10B13000A0A0A0A0A0A0A0A050505050505050508F
+:10B14000A0A0A0A0A0A0A0A050505050505050507F
+:10B15000A0A0A0A0A0A0A0A050505050505050506F
+:10B16000A0A0A0A0A0A0A0A050505050505050505F
+:10B17000A0A0A0A0A0A0A0A050505050505050504F
+:10B18000A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0BF
+:10B19000A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0AF
+:10B1A000A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A09F
+:10B1B000A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A08F
+:10B1C000A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A07F
+:10B1D000A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A06F
+:10B1E000A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A05F
+:10B1F000A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A04F
+:10B20000A0A0A0A0A0A0A0A05050505050505050BE
+:10B21000A0A0A0A0A0A0A0A05050505050505050AE
+:10B22000A0A0A0A0A0A0A0A050505050505050509E
+:10B23000A0A0A0A0A0A0A0A050505050505050508E
+:10B24000A0A0A0A0A0A0A0A050505050505050507E
+:10B25000A0A0A0A0A0A0A0A050505050505050506E
+:10B26000A0A0A0A0A0A0A0A050505050505050505E
+:10B27000A0A0A0A0A0A0A0A050505050505050504E
+:10B28000A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0BE
+:10B29000A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0AE
+:10B2A000A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A09E
+:10B2B000A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A08E
+:10B2C000A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A07E
+:10B2D000A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A06E
+:10B2E000A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A05E
+:10B2F000A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A04E
+:10B30000A0A0A0A0A0A0A0A05050505050505050BD
+:10B31000A0A0A0A0A0A0A0A05050505050505050AD
+:10B32000A0A0A0A0A0A0A0A050505050505050509D
+:10B33000A0A0A0A0A0A0A0A050505050505050508D
+:10B34000A0A0A0A0A0A0A0A050505050505050507D
+:10B35000A0A0A0A0A0A0A0A050505050505050506D
+:10B36000A0A0A0A0A0A0A0A050505050505050505D
+:10B37000A0A0A0A0A0A0A0A050505050505050504D
+:10B38000A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0BD
+:10B39000A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0AD
+:10B3A000A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A09D
+:10B3B000A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A08D
+:10B3C000A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A07D
+:10B3D000A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A06D
+:10B3E000A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A05D
+:10B3F000A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A04D
+:10B40000A0A0A0A0A0A0A0A05050505050505050BC
+:10B41000A0A0A0A0A0A0A0A05050505050505050AC
+:10B42000A0A0A0A0A0A0A0A050505050505050509C
+:10B43000A0A0A0A0A0A0A0A050505050505050508C
+:10B44000A0A0A0A0A0A0A0A050505050505050507C
+:10B45000A0A0A0A0A0A0A0A050505050505050506C
+:10B46000A0A0A0A0A0A0A0A050505050505050505C
+:10B47000A0A0A0A0A0A0A0A050505050505050504C
+:10B48000A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0BC
+:10B49000A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0AC
+:10B4A000A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A09C
+:10B4B000A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A08C
+:10B4C000A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A07C
+:10B4D000A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A06C
+:10B4E000A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A05C
+:10B4F000A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A04C
+:10B50000A0A0A0A0A0A0A0A05050505050505050BB
+:10B51000A0A0A0A0A0A0A0A05050505050505050AB
+:10B52000A0A0A0A0A0A0A0A050505050505050509B
+:10B53000A0A0A0A0A0A0A0A050505050505050508B
+:10B54000A0A0A0A0A0A0A0A050505050505050507B
+:10B55000A0A0A0A0A0A0A0A050505050505050506B
+:10B56000A0A0A0A0A0A0A0A050505050505050505B
+:10B57000A0A0A0A0A0A0A0A050505050505050504B
+:10B58000A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0BB
+:10B59000A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0AB
+:10B5A000A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A09B
+:10B5B000A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A08B
+:10B5C000A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A07B
+:10B5D000A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A06B
+:10B5E000A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A05B
+:10B5F000A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A04B
+:10B60000A0A0A0A0A0A0A0A05050505050505050BA
+:10B61000A0A0A0A0A0A0A0A05050505050505050AA
+:10B62000A0A0A0A0A0A0A0A050505050505050509A
+:10B63000A0A0A0A0A0A0A0A050505050505050508A
+:10B64000A0A0A0A0A0A0A0A050505050505050507A
+:10B65000A0A0A0A0A0A0A0A050505050505050506A
+:10B66000A0A0A0A0A0A0A0A050505050505050505A
+:10B67000A0A0A0A0A0A0A0A050505050505050504A
+:10B68000A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0BA
+:10B69000A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0AA
+:10B6A000A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A09A
+:10B6B000A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A08A
+:10B6C000A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A07A
+:10B6D000A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A06A
+:10B6E000A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A05A
+:10B6F000A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A04A
+:10B700008080808080808080404040404040404039
+:10B710008080808080808080404040404040404029
+:10B720008080808080808080404040404040404019
+:10B730008080808080808080404040404040404009
+:10B7400080808080808080804040404040404040F9
+:10B7500080808080808080804040404040404040E9
+:10B7600080808080808080804040404040404040D9
+:10B7700080808080808080804040404040404040C9
+:10B7800080808080808080808080808080808080B9
+:10B7900080808080808080808080808080808080A9
+:10B7A0008080808080808080808080808080808099
+:10B7B0008080808080808080808080808080808089
+:10B7C0008080808080808080808080808080808079
+:10B7D0008080808080808080808080808080808069
+:10B7E0008080808080808080808080808080808059
+:10B7F0008080808080808080808080808080808049
+:10B80000B0B0B0B0B0B0B0B0707070707070707038
+:10B81000B0B0B0B0B0B0B0B0707070707070707028
+:10B82000B0B0B0B0B0B0B0B0707070707070707018
+:10B83000B0B0B0B0B0B0B0B0707070707070707008
+:10B84000B0B0B0B0B0B0B0B07070707070707070F8
+:10B85000B0B0B0B0B0B0B0B07070707070707070E8
+:10B86000B0B0B0B0B0B0B0B07070707070707070D8
+:10B87000B0B0B0B0B0B0B0B07070707070707070C8
+:10B88000B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B8
+:10B89000B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0A8
+:10B8A000B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B098
+:10B8B000B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B088
+:10B8C000B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B078
+:10B8D000B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B068
+:10B8E000B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B058
+:10B8F000B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B048
+:10B900008080808080808080404040404040404037
+:10B910008080808080808080404040404040404027
+:10B920008080808080808080404040404040404017
+:10B930008080808080808080404040404040404007
+:10B9400080808080808080804040404040404040F7
+:10B9500080808080808080804040404040404040E7
+:10B9600080808080808080804040404040404040D7
+:10B9700080808080808080804040404040404040C7
+:10B9800080808080808080808080808080808080B7
+:10B9900080808080808080808080808080808080A7
+:10B9A0008080808080808080808080808080808097
+:10B9B0008080808080808080808080808080808087
+:10B9C0008080808080808080808080808080808077
+:10B9D0008080808080808080808080808080808067
+:10B9E0008080808080808080808080808080808057
+:10B9F0008080808080808080808080808080808047
+:10BA00008080808080808080404040404040404036
+:10BA10008080808080808080404040404040404026
+:10BA20008080808080808080404040404040404016
+:10BA30008080808080808080404040404040404006
+:10BA400080808080808080804040404040404040F6
+:10BA500080808080808080804040404040404040E6
+:10BA600080808080808080804040404040404040D6
+:10BA700080808080808080804040404040404040C6
+:10BA800080808080808080808080808080808080B6
+:10BA900080808080808080808080808080808080A6
+:10BAA0008080808080808080808080808080808096
+:10BAB0008080808080808080808080808080808086
+:10BAC0008080808080808080808080808080808076
+:10BAD0008080808080808080808080808080808066
+:10BAE0008080808080808080808080808080808056
+:10BAF0008080808080808080808080808080808046
+:10BB00008080808080808080404040404040404035
+:10BB10008080808080808080404040404040404025
+:10BB20008080808080808080404040404040404015
+:10BB30008080808080808080404040404040404005
+:10BB400080808080808080804040404040404040F5
+:10BB500080808080808080804040404040404040E5
+:10BB600080808080808080804040404040404040D5
+:10BB700080808080808080804040404040404040C5
+:10BB800080808080808080808080808080808080B5
+:10BB900080808080808080808080808080808080A5
+:10BBA0008080808080808080808080808080808095
+:10BBB0008080808080808080808080808080808085
+:10BBC0008080808080808080808080808080808075
+:10BBD0008080808080808080808080808080808065
+:10BBE0008080808080808080808080808080808055
+:10BBF0008080808080808080808080808080808045
+:10BC00008080808080808080404040404040404034
+:10BC10008080808080808080404040404040404024
+:10BC20008080808080808080404040404040404014
+:10BC30008080808080808080404040404040404004
+:10BC400080808080808080804040404040404040F4
+:10BC500080808080808080804040404040404040E4
+:10BC600080808080808080804040404040404040D4
+:10BC700080808080808080804040404040404040C4
+:10BC800080808080808080808080808080808080B4
+:10BC900080808080808080808080808080808080A4
+:10BCA0008080808080808080808080808080808094
+:10BCB0008080808080808080808080808080808084
+:10BCC0008080808080808080808080808080808074
+:10BCD0008080808080808080808080808080808064
+:10BCE0008080808080808080808080808080808054
+:10BCF0008080808080808080808080808080808044
+:10BD00008080808080808080404040404040404033
+:10BD10008080808080808080404040404040404023
+:10BD20008080808080808080404040404040404013
+:10BD30008080808080808080404040404040404003
+:10BD400080808080808080804040404040404040F3
+:10BD500080808080808080804040404040404040E3
+:10BD600080808080808080804040404040404040D3
+:10BD700080808080808080804040404040404040C3
+:10BD800080808080808080808080808080808080B3
+:10BD900080808080808080808080808080808080A3
+:10BDA0008080808080808080808080808080808093
+:10BDB0008080808080808080808080808080808083
+:10BDC0008080808080808080808080808080808073
+:10BDD0008080808080808080808080808080808063
+:10BDE0008080808080808080808080808080808053
+:10BDF0008080808080808080808080808080808043
+:10BE00008080808080808080404040404040404032
+:10BE10008080808080808080404040404040404022
+:10BE20008080808080808080404040404040404012
+:10BE30008080808080808080404040404040404002
+:10BE400080808080808080804040404040404040F2
+:10BE500080808080808080804040404040404040E2
+:10BE600080808080808080804040404040404040D2
+:10BE700080808080808080804040404040404040C2
+:10BE800080808080808080808080808080808080B2
+:10BE900080808080808080808080808080808080A2
+:10BEA0008080808080808080808080808080808092
+:10BEB0008080808080808080808080808080808082
+:10BEC0008080808080808080808080808080808072
+:10BED0008080808080808080808080808080808062
+:10BEE0008080808080808080808080808080808052
+:10BEF0008080808080808080808080808080808042
+:10BF00000000000000000000000000000000000031
+:10BF1000C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C021
+:10BF20000000000000000000000000000000000011
+:10BF30000000000000000000000000000000000001
+:10BF400000000000000000000000000000000000F1
+:10BF500000000000000000000000000000000000E1
+:10BF600000000000000000000000000000000000D1
+:10BF700000000000000000000000000000000000C1
+:10BF800000000000000000000000000000000000B1
+:10BF900000000000000000000000000000000000A1
+:10BFA0000000000000000000000000000000000091
+:10BFB0000000000000000000000000000000000081
+:10BFC0000000000000000000000000000000000071
+:10BFD0000000000000000000000000000000000061
+:10BFE0000000000000000000000000000000000051
+:10BFF0000000000000000000000000000000000041
+:10C00000AA56545454545454545454545454A85543
+:10C01000AA56545454545454545454545454545587
+:10C02000AA56545454545454545454545454545577
+:10C03000AA56545454545454545454545454545567
+:10C04000AA56545454545454545454545454545557
+:10C05000AA56545454545454545454545454545547
+:10C06000AA56545454545454545454545454545537
+:10C07000AA56545454545454545454545454545527
+:10C08000AA56545454545454545454545454545517
+:10C09000AA56545454545454545454545454545507
+:10C0A000AA565454545454545454545454545455F7
+:10C0B000AA565454545454545454545454545455E7
+:10C0C000AA565454545454545454545454545455D7
+:10C0D000AA565454545454545454545454545455C7
+:10C0E000AA565454545454545454545454545455B7
+:10C0F000AA56446868A8A8A8A8A8A8A8A8A8A8009C
+:10C100000256545454545454545454545454540192
+:10C110000256545454545454545454545454540182
+:10C120000256545454545454545454545454540172
+:10C130000256545454545454545454545454540162
+:10C140000256545454545454545454545454540152
+:10C150000256545454545454545454545454540142
+:10C160000256545454545454545454545454540132
+:10C170000256545454545454545454545454540122
+:10C180000256545454545454545454545454540112
+:10C190000256545454545454545454545454540102
+:10C1A00002565454545454545454545454545401F2
+:10C1B00002565454545454545454545454545401E2
+:10C1C00002565454545454545454545454545401D2
+:10C1D00002565454545454545454545454545401C2
+:10C1E00002565454545454545454545454545401B2
+:10C1F000025654545868A8A8A8A8A8A8A8A8A80097
+:10C20000A856566464A4A4A4A4A4A4A4A4A4A45456
+:10C21000A856565454545454545454545454545486
+:10C22000A856565454545454545454545454545476
+:10C23000A856565454545454545454545454545466
+:10C24000A856565454545454545454545454545456
+:10C25000A856565454545454545454545454545446
+:10C26000A856565454545454545454545454545436
+:10C27000A856565454545454545454545454545426
+:10C28000A856565454545454545454545454545416
+:10C29000A856565454545454545454545454545406
+:10C2A000A8565654545454545454545454545454F6
+:10C2B000A8565654545454545454545454545454E6
+:10C2C000A8565654545454545454545454545454D6
+:10C2D000A8565654545454545454545454545454C6
+:10C2E000A8565654545454545454545454545454B6
+:10C2F000A8565654545468A8A8A8A8A8A8A8A80046
+:10C30000005666A8A8A8A8A8A8A8A8A8A8A8A80091
+:10C310000056565454545454545454545454540081
+:10C320000056565454545454545454545454540071
+:10C330000056565454545454545454545454540061
+:10C340000056565454545454545454545454540051
+:10C350000056565454545454545454545454540041
+:10C360000056565454545454545454545454540031
+:10C370000056565454545454545454545454540021
+:10C380000056565454545454545454545454540011
+:10C390000056565454545454545454545454540001
+:10C3A00000565654545454545454545454545400F1
+:10C3B00000565654545454545454545454545400E1
+:10C3C00000565654545454545454545454545400D1
+:10C3D0000056565454545454545454545454A8006D
+:10C3E00000565654545454545454545454545400B1
+:10C3F000005656545454545454545454A8A85400F9
+:10C40000AA56AAAAA8A8A8A8A8A8A8A8A8A8A8554B
+:10C41000AAAAAAAAA8A8A8A8A8A8A8A8A8A8A855E7
+:10C42000AAAAAAAAA8A8A8A8A8A8A8A8A8A8A855D7
+:10C43000AAAAAAAAA8A8A8A8A8A8A8A8A8A8A855C7
+:10C44000AAAAAAAAA8A8A8A8A8A8A8A8A8A8A855B7
+:10C45000AAAAAAAAA8A8A8A8A8A8A8A8A8A8A855A7
+:10C46000AAAAAAAAA8A8A8A8A8A8A8A8A8A8A85597
+:10C47000AAAAAAAAA8A8A8A8A8A8A8A8A8A8A85587
+:10C48000AAAAAAAAA8A8A8A8A8A8A8A8A8A8A85577
+:10C49000AAAAAAAAA8A8A8A8A8A8A8A8A8A8A85567
+:10C4A000AAAAAAAAA8A8A8A8A8A8A8A8A8A8A85557
+:10C4B000AAAA56565454545454545454545454558B
+:10C4C000AA565656545454545454545454545455CF
+:10C4D000AA565656545454545454545454545455BF
+:10C4E000AA565656545454545454545454545455AF
+:10C4F000AA565656545454545454545454545454A0
+:10C500000256AAAAA8A8A8A8A8A8A8A8A8A8A80146
+:10C5100002AAAAAAA8A8A8A8A8A8A8A8A8A8A801E2
+:10C5200002AAAAAAA8A8A8A8A8A8A8A8A8A8A801D2
+:10C5300002AAAAAAA8A8A8A8A8A8A8A8A8A8A801C2
+:10C5400002AAAAAAA8A8A8A8A8A8A8A8A8A8A801B2
+:10C5500002AAAAAAA8A8A8A8A8A8A8A8A8A8A801A2
+:10C5600002AAAAAAA8A8A8A8A8A8A8A8A8A8A80192
+:10C5700002AAAAAAA8A8A8A8A8A8A8A8A8A8A80182
+:10C5800002AAAAAAA8A8A8A8A8A8A8A8A8A8A80172
+:10C5900002AAAAAAA8A8A8A8A8A8A8A8A8A8A80162
+:10C5A00002AAAAAAA8A8A8A8A8A8A8A8A8A8A80152
+:10C5B00002AAAAAAA8A8A8A8A8A8A8A8A8A8A80142
+:10C5C00002AAAAAAA8A8A8A8A8A8A8A8A8A8A80132
+:10C5D00002565656545454545454545454545401BA
+:10C5E00002565656545454545454545454545401AA
+:10C5F000025656565454545454545454545454009B
+:10C60000A856AAAAAAA8A8A8A8A8A8A8A8A8A8544A
+:10C61000A8AAAAAAAAA8A8A8A8A8A8A8A8A8A854E6
+:10C62000A8AAAAAAAAA8A8A8A8A8A8A8A8A8A854D6
+:10C63000A8AAAAAAAAA8A8A8A8A8A8A8A8A8A854C6
+:10C64000A8AAAAAAAAA8A8A8A8A8A8A8A8A8A854B6
+:10C65000A8AAAAAAAAA8A8A8A8A8A8A8A8A8A854A6
+:10C66000A8AAAAAAAAA8A8A8A8A8A8A8A8A8A85496
+:10C67000A8AAAAAAAAA8A8A8A8A8A8A8A8A8A85486
+:10C68000A8AAAAAAAAA8A8A8A8A8A8A8A8A8A85476
+:10C69000A8AAAAAAAAA8A8A8A8A8A8A8A8A8A85466
+:10C6A000A8AAAAAAAAA8A8A8A8A8A8A8A8A8A85456
+:10C6B000A8AAAAAAAAA8A8A8A8A8A8A8A8A8A85446
+:10C6C000A8AAAAAAAAA8A8A8A8A8A8A8A8A8A85436
+:10C6D000A8AAAAAAAAA8A8A8A8A8A8A8A8A8A85426
+:10C6E000A8AAAAAAAAA8A8A8A8A8A8A8A8A8A85416
+:10C6F000A85656565654545454545454545454549E
+:10C7000000AAAAAAAAA8A8A8A8A8A8A8A8A8A800F1
+:10C7100000AAAAAAAAA8A8A8A8A8A8A8A8A8A800E1
+:10C7200000AAAAAAAAA8A8A8A8A8A8A8A8A8A800D1
+:10C7300000AAAAAAAAA8A8A8A8A8A8A8A8A8A800C1
+:10C7400000AAAAAAAAA8A8A8A8A8A8A8A8A8A800B1
+:10C7500000AAAAAAAAA8A8A8A8A8A8A8A8A8A800A1
+:10C7600000AAAAAAAAA8A8A8A8A8A8A8A8A8A80091
+:10C7700000AAAAAAAAA8A8A8A8A8A8A8A8A8A80081
+:10C7800000AAAAAAAAA8A8A8A8A8A8A8A8A8A80071
+:10C7900000AAAAAAAAA8A8A8A8A8A8A8A8A8A80061
+:10C7A00000AAAAAAAAA8A8A8A8A8A8A8A8A8A80051
+:10C7B00000AAAAAAAAA8A8A8A8A8A8A8A8A8A80041
+:10C7C00000AAAAAAAAA8A8A8A8A8A8A8A8A8A80031
+:10C7D00000AAAAAAAAA8A8A8A8A8A8A8A8A8A80021
+:10C7E00000AAAAAAAAA8A8A8A8A8A8A8A8A8A80011
+:10C7F0000056565656545454545454545454540099
+:10C80000AAAA020202020000000000000000005577
+:10C81000AAAAAA02020200000000000000000055BF
+:10C8200000AAAAAA02020200000000000000000004
+:10C8300040AAAAAA020202000000000000000000B4
+:10C8400040AAAAAA020202000000000000000000A4
+:10C8500040AAAAAA02020200000000000000000094
+:10C8600040AAAAAA02020200000000000000000084
+:10C8700040AAAAAA02020200000000000000000074
+:10C8800040AAAAAA02020200000000000000000064
+:10C8900040AAAAAA02020200000000000000000054
+:10C8A00040AAAAAA02020200000000000000000044
+:10C8B00040AAAAAA02020200000000000000000034
+:10C8C00040AAAAAA02020200000000000000000024
+:10C8D00040AAAAAA02020200000000000000000014
+:10C8E00040AAAAAA02020200000000000000000004
+:10C8F00040AAAAAA020202000000000000000000F4
+:10C9000040AAAAAA020202000000000000000000E3
+:10C9100054AAAAAA020202000000000000000000BF
+:10C9200000AAAAAA02020200000000000000000003
+:10C9300040AAAAAA020202000000000000000000B3
+:10C9400040AAAAAA020202000000000000000000A3
+:10C9500040AAAAAA02020200000000000000000093
+:10C9600040AAAAAA02020200000000000000000083
+:10C9700040AAAAAA02020200000000000000000073
+:10C9800040AAAAAA02020200000000000000000063
+:10C9900040AAAAAA02020200000000000000000053
+:10C9A00040AAAAAA02020200000000000000000043
+:10C9B00040AAAAAA02020200000000000000000033
+:10C9C00040AAAAAA02020200000000000000000023
+:10C9D00040AAAAAA02020200000000000000000013
+:10C9E00040AAAAAA02020200000000000000000003
+:10C9F00040AAAAAA020202000000000000000000F3
+:10CA000040AAAAAA020202000000000000000000E2
+:10CA100054AAAAAA020202000000000000000000BE
+:10CA2000AAAAAAAA02020200000000000000005503
+:10CA30002AAAAAAA02020200000000000000005573
+:10CA40002AAAAAAA02020200000000000000005563
+:10CA50002AAAAAAA02020200000000000000005553
+:10CA60002AAAAAAA02020200000000000000005543
+:10CA70002AAAAAAA02020200000000000000005533
+:10CA80002AAAAAAA02020200000000000000005523
+:10CA90002AAAAAAA02020200000000000000005513
+:10CAA0002AAAAAAA02020200000000000000005503
+:10CAB0002AAAAAAA020202000000000000000055F3
+:10CAC0002AAAAAAA020202000000000000000055E3
+:10CAD0002AAAAAAA020202000000000000000055D3
+:10CAE0002AAAAAAA020202000000000000000055C3
+:10CAF0002AAAAAAA020202000000000000000055B3
+:10CB00002AAAAAAA020202000000000000000055A2
+:10CB100002AAAAAA020202000000000000000055BA
+:10CB2000AAAAAAAA02020202000000000000005500
+:10CB30002AAAAAAA02020200000000000000005572
+:10CB40002AAAAAAA02020200000000000000005562
+:10CB50002AAAAAAA02020200000000000000005552
+:10CB60002AAAAAAA02020200000000000000005542
+:10CB70002AAAAAAA02020200000000000000005532
+:10CB80002AAAAAAA02020200000000000000005522
+:10CB90002AAAAAAA02020200000000000000005512
+:10CBA0002AAAAAAA02020200000000000000005502
+:10CBB0002AAAAAAA020202000000000000000055F2
+:10CBC0002AAAAAAA020202000000000000000055E2
+:10CBD0002AAAAAAA020202000000000000000055D2
+:10CBE0002AAAAAAA020202000000000000000055C2
+:10CBF0002AAAAAAA020202000000000000000055B2
+:10CC00002AAAAAAA020202000000000000000055A1
+:10CC100002AAAAAA020202000000000000000055B9
+:10CC200000AAAAAAAA020202020000000000000054
+:10CC300040AAAAAAAA020202000000000000000006
+:10CC400040AAAAAAAA0202020000000000000000F6
+:10CC500040AAAAAAAA0202020000000000000000E6
+:10CC600040AAAAAAAA0202020000000000000000D6
+:10CC700040AAAAAAAA0202020000000000000000C6
+:10CC800040AAAAAAAA0202020000000000000000B6
+:10CC900040AAAAAAAA0202020000000000000000A6
+:10CCA00040AAAAAAAA020202000000000000000096
+:10CCB00040AAAAAAAA020202000000000000000086
+:10CCC00040AAAAAAAA020202000000000000000076
+:10CCD00040AAAAAAAA020202000000000000000066
+:10CCE00040AAAAAAAA020202000000000000000056
+:10CCF00040AAAAAAAA020202000000000000000046
+:10CD000040AAAAAAAA020202000000000000000035
+:10CD100055AAAAAAAA020202000000000000000010
+:10CD200000AAAAAAAA020202020200000000000051
+:10CD300040AAAAAAAA020202020000000000000003
+:10CD400040AAAAAAAA0202020200000000000000F3
+:10CD500040AAAAAAAA0202020200000000000000E3
+:10CD600040AAAAAAAA0202020200000000000000D3
+:10CD700040AAAAAAAA0202020200000000000000C3
+:10CD800040AAAAAAAA0202020200000000000000B3
+:10CD900040AAAAAAAA0202020200000000000000A3
+:10CDA00040AAAAAAAA020202020000000000000093
+:10CDB00040AAAAAAAA020202020000000000000083
+:10CDC00040AAAAAAAA020202020000000000000073
+:10CDD00040AAAAAAAA020202020000000000000063
+:10CDE00040AAAAAAAA020202020000000000000053
+:10CDF00040AAAAAAAA020202020000000000000043
+:10CE000040AAAAAAAA020202020000000000000032
+:10CE100055AAAAAAAA02020202000000000000000D
+:10CE2000AAAAAAAAAAAA02020202020000000055A7
+:10CE30002AAAAAAAAAAA0202020200000000005519
+:10CE40002AAAAAAAAAAA0202020200000000005509
+:10CE50002AAAAAAAAAAA02020202000000000055F9
+:10CE60002AAAAAAAAAAA02020202000000000055E9
+:10CE70002AAAAAAAAAAA02020202000000000055D9
+:10CE80002AAAAAAAAAAA02020202000000000055C9
+:10CE90002AAAAAAAAAAA02020202000000000055B9
+:10CEA0002AAAAAAAAAAA02020202000000000055A9
+:10CEB0002AAAAAAAAAAA0202020200000000005599
+:10CEC0002AAAAAAAAAAA0202020200000000005589
+:10CED0002AAAAAAAAAAA0202020200000000005579
+:10CEE0002AAAAAAAAAAA0202020200000000005569
+:10CEF0002AAAAAAAAAAA0202020200000000005559
+:10CF00002AAAAAAAAAAA0202020200000000005548
+:10CF100000AAAAAAAAAA0202020200000000005562
+:10CF2000AAAAAAAAAAAA02020202020200000055A4
+:10CF30002AAAAAAAAAAA0202020202000000005516
+:10CF40002AAAAAAAAAAA0202020202000000005506
+:10CF50002AAAAAAAAAAA02020202020000000055F6
+:10CF60002AAAAAAAAAAA02020202020000000055E6
+:10CF70002AAAAAAAAAAA02020202020000000055D6
+:10CF80002AAAAAAAAAAA02020202020000000055C6
+:10CF90002AAAAAAAAAAA02020202020000000055B6
+:10CFA0002AAAAAAAAAAA02020202020000000055A6
+:10CFB0002AAAAAAAAAAA0202020202000000005596
+:10CFC0002AAAAAAAAAAA0202020202000000005586
+:10CFD0002AAAAAAAAAAA0202020202000000005576
+:10CFE0002AAAAAAAAAAA0202020202000000005566
+:10CFF0002AAAAAAAAAAA0202020202000000005556
+:10D000002AAAAAAAAAAA0202020202000000005545
+:10D0100000AAAAAAAAAA020202020200000000555F
+:10D0200000AAAAAAAAAAAA020202020202000000F8
+:10D0300040AAAAAAAAAAAA020202020200000000AA
+:10D0400040AAAAAAAAAAAA0202020202000000009A
+:10D0500040AAAAAAAAAAAA0202020202000000008A
+:10D0600040AAAAAAAAAAAA0202020202000000007A
+:10D0700040AAAAAAAAAAAA0202020202000000006A
+:10D0800040AAAAAAAAAAAA0202020202000000005A
+:10D0900040AAAAAAAAAAAA0202020202000000004A
+:10D0A00040AAAAAAAAAAAA0202020202000000003A
+:10D0B00040AAAAAAAAAAAA0202020202000000002A
+:10D0C00040AAAAAAAAAAAA0202020202000000001A
+:10D0D00040AAAAAAAAAAAA0202020202000000000A
+:10D0E00040AAAAAAAAAAAA020202020200000000FA
+:10D0F00040AAAAAAAAAAAA020202020200000000EA
+:10D1000040AAAAAAAAAAAA020202020200000000D9
+:10D1100055AAAAAAAAAAAA020202020200000000B4
+:10D1200000AAAAAAAAAAAAAA02020202020200004D
+:10D1300040AAAAAAAAAAAAAA0202020202020000FD
+:10D1400040AAAAAAAAAAAAAA0202020202020000ED
+:10D1500040AAAAAAAAAAAAAA0202020202020000DD
+:10D1600040AAAAAAAAAAAAAA0202020202020000CD
+:10D1700040AAAAAAAAAAAAAA0202020202020000BD
+:10D1800040AAAAAAAAAAAAAA0202020202020000AD
+:10D1900040AAAAAAAAAAAAAA02020202020200009D
+:10D1A00040AAAAAAAAAAAAAA02020202020200008D
+:10D1B00040AAAAAAAAAAAAAA02020202020200007D
+:10D1C00040AAAAAAAAAAAAAA02020202020200006D
+:10D1D00040AAAAAAAAAAAAAA02020202020200005D
+:10D1E00040AAAAAAAAAAAAAA02020202020200004D
+:10D1F00040AAAAAAAAAAAAAA02020202020200003D
+:10D2000040AAAAAAAAAAAAAA02020202020200002C
+:10D2100055AAAAAAAAAAAAAA020202020202000007
+:10D22000AAA9A9A9A9A9A9A9A901010101010155B1
+:10D230002AA9A9A9A9A9A9A9A90101010101015521
+:10D240002AA9A9A9A9A9A9A9A90101010101015511
+:10D250002AA9A9A9A9A9A9A9A90101010101015501
+:10D260002AA9A9A9A9A9A9A9A901010101010155F1
+:10D270002AA9A9A9A9A9A9A9A901010101010155E1
+:10D280002AA9A9A9A9A9A9A9A901010101010155D1
+:10D290002AA9A9A9A9A9A9A9A901010101010155C1
+:10D2A0002AA9A9A9A9A9A9A9A901010101010155B1
+:10D2B0002AA9A9A9A9A9A9A9A901010101010155A1
+:10D2C0002AA9A9A9A9A9A9A9A90101010101015591
+:10D2D0002AA9A9A9A9A9A9A9A90101010101015581
+:10D2E0002AA9A9A9A9A9A9A9A90101010101015571
+:10D2F0002AA9A9A9A9A9A9A9A90101010101015561
+:10D300002AA9A9A9A9A9A9A9A90101010101015550
+:10D3100000A9A9A9A9A9A9A9A9010101010101556A
+:10D32000A8A9A9A9A9A9A9A9A9A90101010101540B
+:10D3300028A9A9A9A9A9A9A9A9A90101010101547B
+:10D3400028A9A9A9A9A9A9A9A9A90101010101546B
+:10D3500028A9A9A9A9A9A9A9A9A90101010101545B
+:10D3600028A9A9A9A9A9A9A9A9A90101010101544B
+:10D3700028A9A9A9A9A9A9A9A9A90101010101543B
+:10D3800028A9A9A9A9A9A9A9A9A90101010101542B
+:10D3900028A9A9A9A9A9A9A9A9A90101010101541B
+:10D3A00028A9A9A9A9A9A9A9A9A90101010101540B
+:10D3B00028A9A9A9A9A9A9A9A9A9010101010154FB
+:10D3C00028A9A9A9A9A9A9A9A9A9010101010154EB
+:10D3D00028A9A9A9A9A9A9A9A9A9010101010154DB
+:10D3E00028A9A9A9A9A9A9A9A9A9010101010154CB
+:10D3F00028A9A9A9A9A9A9A9A9A9010101010154BB
+:10D4000028A9A9A9A9A9A9A9A9A9010101010154AA
+:10D4100001A9A9A9A9A9A9A9A9A9010101010154C1
+:10D4200056A9A9A9A9A9A9A9A9A9010101010101AF
+:10D4300056A9A9A9A9A9A9A9A9A90101010101019F
+:10D4400056A9A9A9A9A9A9A9A9A90101010101018F
+:10D4500056A9A9A9A9A9A9A9A9A90101010101017F
+:10D4600056A9A9A9A9A9A9A9A9A90101010101016F
+:10D4700056A9A9A9A9A9A9A9A9A90101010101015F
+:10D4800056A9A9A9A9A9A9A9A9A90101010101014F
+:10D4900056A9A9A9A9A9A9A9A9A90101010101013F
+:10D4A00056A9A9A9A9A9A9A9A9A90101010101012F
+:10D4B00056A9A9A9A9A9A9A9A9A90101010101011F
+:10D4C00056A9A9A9A9A9A9A9A9A90101010101010F
+:10D4D00056A9A9A9A9A9A9A9A9A9010101010101FF
+:10D4E00056A9A9A9A9A9A9A9A9A9010101010101EF
+:10D4F00056A9A9A9A9A9A9A9A9A9010101010101DF
+:10D5000056A9A9A9A9A9A9A9A9A9010101010101CE
+:10D5100054A9A9A9A9A9A9A9A9A9010101010101C0
+:10D5200055A9A9A9A9A9A9A9A9A9A9010101010008
+:10D5300000A9A9A9A9A9A9A9A9A9A9A90101015550
+:10D5400001A9A9A9A9A9A9A9A9A9A9A9A901015498
+:10D5500001A9A9A9A9A9A9A9A9A9A9A9A901015488
+:10D5600001A9A9A9A9A9A9A9A9A9A9A9A901015478
+:10D5700001A9A9A9A9A9A9A9A9A9A9A9A901015468
+:10D5800001A9A9A9A9A9A9A9A9A9A9A9A901015458
+:10D5900001A9A9A9A9A9A9A9A9A9A9A9A901015448
+:10D5A00001A9A9A9A9A9A9A9A9A9A9A9A901015438
+:10D5B00001A9A9A9A9A9A9A9A9A9A9A9A901015428
+:10D5C00001A9A9A9A9A9A9A9A9A9A9A9A901015418
+:10D5D00001A9A9A9A9A9A9A9A9A9A9A9A901015408
+:10D5E00001A9A9A9A9A9A9A9A9A9A9A9A9010154F8
+:10D5F00001A9A9A9A9A9A9A9A9A9A9A9A9010154E8
+:10D6000001A9A9A9A9A9A9A9A9A9A9A9A9010154D7
+:10D6100001A9A9A9A9A9A9A9A9A9A9A9A9010154C7
+:10D6200001A9A9A9A9A9A9A9A9A9A9A9A9010154B7
+:10D6300001A9A9A9A9A9A9A9A9A9A9A9A9010156A5
+:10D6400054A9A9A9A9A9A9A9A9A9A9A9A9A90101EF
+:10D6500054A9A9A9A9A9A9A9A9A9A9A9A9A90101DF
+:10D6600054A9A9A9A9A9A9A9A9A9A9A9A9A90101CF
+:10D6700054A9A9A9A9A9A9A9A9A9A9A9A9A90101BF
+:10D6800054A9A9A9A9A9A9A9A9A9A9A9A9A90101AF
+:10D6900054A9A9A9A9A9A9A9A9A9A9A9A9A901019F
+:10D6A00054A9A9A9A9A9A9A9A9A9A9A9A9A901018F
+:10D6B00054A9A9A9A9A9A9A9A9A9A9A9A9A901017F
+:10D6C00054A9A9A9A9A9A9A9A9A9A9A9A9A901016F
+:10D6D00054A9A9A9A9A9A9A9A9A9A9A9A9A901015F
+:10D6E00054A9A9A9A9A9A9A9A9A9A9A9A9A901014F
+:10D6F00054A9A9A9A9A9A9A9A9A9A9A9A9A901013F
+:10D7000054A9A9A9A9A9A9A9A9A9A9A9A9A901012E
+:10D7100054A9A9A9A9A9A9A9A9A9A9A9A9A901011E
+:10D7200054A9A9A9A9A9A9A9A9A9A9A9A9A901010E
+:10D7300054A9A9A9A9A9A9A9A9A9A9A9A9A90102FD
+:10D7400001555555565656565555555555555554DA
+:10D7500001555555555555555555555555555554CE
+:10D7600001555555555555555555555555555554BE
+:10D7700001555555555555555555555555555554AE
+:10D78000015555555555555555555555555555549E
+:10D79000015555555555555555555555555555548E
+:10D7A000015555555555555555555555555555547E
+:10D7B000015555555555555555555555555555546E
+:10D7C000015555555555555555555555555555545E
+:10D7D000015555555555555555555555555555544E
+:10D7E000015555555555555555555555555555543E
+:10D7F000015555555555555555555555555555542E
+:10D80000015555555555555555555555555555541D
+:10D81000015555555555555555555555555555540D
+:10D8200001555555555555555555555555555554FD
+:10D8300001555555555555555555555555555556EB
+:10D840005455555656565656565555555555555682
+:10D850005455555555555555555555555555555678
+:10D860005455555555555555555555555555555668
+:10D870005455555555555555555555555555555658
+:10D880005455555555555555555555555555555648
+:10D890005455555555555555555555555555555638
+:10D8A0005455555555555555555555555555555628
+:10D8B0005455555555555555555555555555555618
+:10D8C0005455555555555555555555555555555608
+:10D8D00054555555555555555555555555555556F8
+:10D8E00054555555555555555555555555555556E8
+:10D8F00054555555555555555555555555555556D8
+:10D9000054555555555555555555555555555556C7
+:10D9100054555555555555555555555555555556B7
+:10D9200054555555555555555555555555555556A7
+:10D930005455555555555555555555555555555499
+:10D94000015555565656565656555656555555AA7E
+:10D95000015555555656565655555555555555AA72
+:10D96000015555555656565655555555555555AA62
+:10D97000015555555656565655555555555555AA52
+:10D98000015555555656565655555555555555AA42
+:10D99000015555555656565655555555555555AA32
+:10D9A000015555555656565655555555555555AA22
+:10D9B000015555555656565655555555555555AA12
+:10D9C000015555555656565655555555555555AA02
+:10D9D000015555555656565655555555555555AAF2
+:10D9E000015555555656565655555555555555AAE2
+:10D9F000015555555656565655555555555555AAD2
+:10DA0000015555555656565655555555555555AAC1
+:10DA1000015555555656565655555555555555AAB1
+:10DA2000015555555656565655555555555555AAA1
+:10DA3000015555555555555555555555555555AA95
+:10DA4000545555565656565656565656565656A828
+:10DA5000545656565656565656565656565656A816
+:10DA6000545656565656565656565656565656A806
+:10DA7000545656565656565656565656565656A8F6
+:10DA8000545656565656565656565656565656A8E6
+:10DA9000545656565656565656565656565656A8D6
+:10DAA000545656565656565656565656565656A8C6
+:10DAB000545656565656565656565656565656A8B6
+:10DAC000545656565656565656565656565656A8A6
+:10DAD000545656565656565656565656565656A896
+:10DAE000545656565656565656565656565656A886
+:10DAF000545656565656565656565656565656A876
+:10DB0000545656565656565656565656565656A865
+:10DB1000545656565656565656565656565656A855
+:10DB2000545656565656565656565656565656A845
+:10DB3000545555565656565654545656565656A83B
+:10DB4000015656565656565656565656565656021E
+:10DB5000015656565656565656565656565656020E
+:10DB600001565656565656565656565656565602FE
+:10DB700001565656565656565656565656565602EE
+:10DB800001565656565656565656565656565602DE
+:10DB900001565656565656565656565656565602CE
+:10DBA00001565656565656565656565656565602BE
+:10DBB00001565656565656565656565656565602AE
+:10DBC000015656565656565656565656565656029E
+:10DBD000015656565656565656565656565656028E
+:10DBE000015656565656565656565656565656027E
+:10DBF000015656565656565656565656565656026E
+:10DC0000015656565656565656565656565656025D
+:10DC1000015656565656565656565656565656024D
+:10DC2000015656565656565656565656565656023D
+:10DC30000155545656565656565656565656560230
+:10DC4000545656565656565656565656565656A824
+:10DC5000015656565656565656565656565656020D
+:10DC6000545656565656565656565656565656A804
+:10DC700001AAAAAAAAAAAAAAAAAAAAAAAAAAAA0255
+:10DC800054AAAAAAAAAAAAAAAAAAAAAAAAAAAAA84C
+:10DC900001AAAAAAAAAAAAAAAAAAAAAAAAAAAA0235
+:10DCA00054AAAAAAAAAAAAAAAAAAAAAAAAAAAAA82C
+:10DCB00001AAAAAAAAAAAAAAAAAAAAAAAAAAAA0215
+:10DCC00001AAAAAAAAAAAAAAAAAAAAAAAAAAAA0205
+:10DCD00001AAAAAAAAAAAAAAAAAAAAAAAAAAAA02F5
+:10DCE00001AAAAAAAAAAAAAAAAAAAAAAAAAAAA02E5
+:10DCF00001AAAAAAAAAAAAAAAAAAAAAAAAAAAA02D5
+:10DD000001AAAAAAAAAAAAAAAAAAAAAAAAAAAA02C4
+:10DD100001AAAAAAAAAAAAAAAAAAAAAAAAAAAA02B4
+:10DD200001AAAAAAAAAAAAAAAAAAAAAAAAAAAA02A4
+:10DD300001AAAAAAAAAAAAAAAAAAAAAAAAAAAA0294
+:10DD400001AAAAAAAAAAAAAAAAAAAAAAAAAAAA0284
+:10DD500001AAAAAAAAAAAAAAAAAAAAAAAAAAAA0274
+:10DD600001AAAAAAAAAAAAAAAAAAAAAAAAAAAA0264
+:10DD700001AAAAAAAAAAAAAAAAAAAAAAAAAAAA0254
+:10DD800001AAAAAAAAAAAAAAAAAAAAAAAAAAAA0244
+:10DD900001AAAAAAAAAAAAAAAAAAAAAAAAAAAA0234
+:10DDA00001AAAAAAAAAAAAAAAAAAAAAAAAAAAA0125
+:10DDB00054A9A9A9A9A9A9A9A9A9A9A9A9A9A8A82A
+:10DDC00000A9A9A9A9A9A9A9A9A9A9A9A9A8A80017
+:10DDD00055A9A9A9A9A9A9A9A9A9A9A9A8A8A8AA09
+:10DDE00001555555555555555555555454540002E2
+:10DDF000545555555555555555555454540000A82E
+:10DE0000545555555555555555545454000000A872
+:10DE100001555555555555555454540000000002B0
+:10DE200001555555555555555454540000000002A0
+:10DE30000155555555555555545454000000000290
+:10DE40000155555555555555545454000000000280
+:10DE50000155555555555555545454000000000270
+:10DE60000155555555555555545454000000000260
+:10DE70000155555555555555545454000000000250
+:10DE80000155555555555555545454000000000240
+:10DE90000155555555555555545454000000000230
+:10DEA0000155555555555555545454000000000220
+:10DEB0000155555555555555545454000000000210
+:10DEC0000155555555555555545454000000000200
+:10DED00001555555555555555454540000000002F0
+:10DEE00001555555555555555454540000000002E0
+:10DEF00001555555555555555454540000000002D0
+:10DF000001555555555555555454540000000000C1
+:10DF10000155555555555554545400000000000204
+:10DF200001555555555555545454000000000002F4
+:10DF300001555555555555545454000000000002E4
+:10DF400001555555555555545454000000000002D4
+:10DF500001555555555555545454000000000002C4
+:10DF600001555555555555545454000000000002B4
+:10DF700001555555555555545454000000000002A4
+:10DF80000155555555555554545400000000000294
+:10DF90000155555555555554545400000000000284
+:10DFA0000155555555555554545400000000000274
+:10DFB0000155555555555554545400000000000264
+:10DFC0000155555555555554545400000000000254
+:10DFD0000155555555555554545400000000000244
+:10DFE0000155555555555554545400000000000234
+:10DFF0000155555555555554545400000000000224
+:10E000000155555555555554545400000000000015
+:10E01000545555555555555454540000000000A80A
+:10E02000545555555555555454000000000000A84E
+:10E03000015555555555545400000000000000028C
+:10E04000015555555555545400000000000000027C
+:10E05000015555555555545400000000000000026C
+:10E06000015555555555545400000000000000025C
+:10E07000015555555555545400000000000000024C
+:10E08000015555555555545400000000000000023C
+:10E09000015555555555545400000000000000022C
+:10E0A000015555555555545400000000000000021C
+:10E0B000015555555555545400000000000000020C
+:10E0C00001555555555554540000000000000002FC
+:10E0D00001555555555554540000000000000002EC
+:10E0E00001555555555554540000000000000002DC
+:10E0F00001555555555554540000000000000002CC
+:10E1000001555555555554540000000000000002BB
+:10E1100001555555555554540000000000000002AB
+:10E12000015555555555545400000000000000009D
+:10E1300001555555555554000000000000000002DF
+:10E1400001555555555554000000000000000002CF
+:10E1500001555555555554000000000000000002BF
+:10E1600001555555555554000000000000000002AF
+:10E17000015555555555540000000000000000029F
+:10E18000015555555555540000000000000000028F
+:10E19000015555555555540000000000000000027F
+:10E1A000015555555555540000000000000000026F
+:10E1B000015555555555540000000000000000025F
+:10E1C000015555555555540000000000000000024F
+:10E1D000015555555555540000000000000000023F
+:10E1E000015555555555540000000000000000022F
+:10E1F000015555555555540000000000000000021F
+:10E20000015555555555540000000000000000020E
+:10E2100001555555555554000000000000000002FE
+:10E2200001555555555554000000000000000000F0
+:10E23000545555555554000000000000000000A83A
+:10E24000545555555554000000000000000000A82A
+:10E25000545555555554000000000000000000A81A
+:10E26000545555555554000000000000000000A80A
+:10E27000545555555554000000000000000000A8FA
+:10E28000545555555554000000000000000000A8EA
+:10E29000545555555554000000000000000000A8DA
+:10E2A000545555555554000000000000000000A8CA
+:10E2B000545555555554000000000000000000A8BA
+:10E2C000545555555554000000000000000000A8AA
+:10E2D000545555555554000000000000000000A89A
+:10E2E000545555555554000000000000000000A88A
+:10E2F000545555555554000000000000000000A87A
+:10E30000545555555554000000000000000000A869
+:10E31000545555555554000000000000000000A859
+:10E3200054555555555400000000000000000000F1
+:10E33000545555555554000000000000000000A839
+:10E34000545555555554000000000000000000A829
+:10E35000545555555554000000000000000000A819
+:10E36000545555555554000000000000000000A809
+:10E37000545555555554000000000000000000A8F9
+:10E38000545555555554000000000000000000A8E9
+:10E39000545555555554000000000000000000A8D9
+:10E3A000545555555554000000000000000000A8C9
+:10E3B000545555555554000000000000000000A8B9
+:10E3C000545555555554000000000000000000A8A9
+:10E3D000545555555554000000000000000000A899
+:10E3E000545555555554000000000000000000A889
+:10E3F000545555555554000000000000000000A879
+:10E40000545555555554000000000000000000A868
+:10E41000545555555554000000000000000000A858
+:10E4200054555555555400000000000000000000F0
+:10E430000155555554000000000000000000000187
+:10E440000155555554000000000000000000000177
+:10E450000155555554000000000000000000000167
+:10E460000155555554000000000000000000000157
+:10E470000155555554000000000000000000000147
+:10E480000155555554000000000000000000000137
+:10E490000155555554000000000000000000000127
+:10E4A0000155555554000000000000000000000117
+:10E4B0000155555554000000000000000000000107
+:10E4C00001555555540000000000000000000001F7
+:10E4D00001555555540000000000000000000001E7
+:10E4E00001555555540000000000000000000001D7
+:10E4F00001555555540000000000000000000001C7
+:10E5000001555555540000000000000000000001B6
+:10E5100001555555540000000000000000000001A6
+:10E520000155555554000000000000000000000097
+:10E530000155555554000000000000000000000186
+:10E540000155555554000000000000000000000176
+:10E550000155555554000000000000000000000166
+:10E560000155555554000000000000000000000156
+:10E570000155555554000000000000000000000146
+:10E580000155555554000000000000000000000136
+:10E590000155555554000000000000000000000126
+:10E5A0000155555554000000000000000000000116
+:10E5B0000155555554000000000000000000000106
+:10E5C00001555555540000000000000000000001F6
+:10E5D00001555555540000000000000000000001E6
+:10E5E00001555555540000000000000000000001D6
+:10E5F00001555555540000000000000000000001C6
+:10E6000001555555540000000000000000000001B5
+:10E6100001555555540000000000000000000001A5
+:10E620000155555554000000000000000000000096
+:10E63000545555540000000000000000000000A8E0
+:10E64000545555540000000000000000000000A8D0
+:10E65000545555540000000000000000000000A8C0
+:10E66000545555540000000000000000000000A8B0
+:10E67000545555540000000000000000000000A8A0
+:10E68000545555540000000000000000000000A890
+:10E69000545555540000000000000000000000A880
+:10E6A000545555540000000000000000000000A870
+:10E6B000545555540000000000000000000000A860
+:10E6C000545555540000000000000000000000A850
+:10E6D000545555540000000000000000000000A840
+:10E6E000545555540000000000000000000000A830
+:10E6F000545555540000000000000000000000A820
+:10E70000545555540000000000000000000000A80F
+:10E71000545555540000000000000000000000A8FF
+:10E720005455555400000000000000000000000097
+:10E73000545555540000000000000000000000A8DF
+:10E74000545555540000000000000000000000A8CF
+:10E75000545555540000000000000000000000A8BF
+:10E76000545555540000000000000000000000A8AF
+:10E77000545555540000000000000000000000A89F
+:10E78000545555540000000000000000000000A88F
+:10E79000545555540000000000000000000000A87F
+:10E7A000545555540000000000000000000000A86F
+:10E7B000545555540000000000000000000000A85F
+:10E7C000545555540000000000000000000000A84F
+:10E7D000545555540000000000000000000000A83F
+:10E7E000545555540000000000000000000000A82F
+:10E7F000545555540000000000000000000000A81F
+:10E80000545555540000000000000000000000A80E
+:10E81000545555540000000000000000000000A8FE
+:10E820005455555400000000000000000000000096
+:10E8300001555454000000000000000000000002D8
+:10E8400001555454000000000000000000000002C8
+:10E8500001555454000000000000000000000002B8
+:10E8600001555454000000000000000000000002A8
+:10E870000155545400000000000000000000000298
+:10E880000155545400000000000000000000000288
+:10E890000155545400000000000000000000000278
+:10E8A0000155545400000000000000000000000268
+:10E8B0000155545400000000000000000000000258
+:10E8C0000155545400000000000000000000000248
+:10E8D0000155545400000000000000000000000238
+:10E8E0000155545400000000000000000000000228
+:10E8F0000155545400000000000000000000000218
+:10E900000155545400000000000000000000000207
+:10E9100001555454000000000000000000000002F7
+:10E9200001555454000000000000000000000000E9
+:10E9300001555454000000000000000000000002D7
+:10E9400001555454000000000000000000000002C7
+:10E9500001555454000000000000000000000002B7
+:10E9600001555454000000000000000000000002A7
+:10E970000155545400000000000000000000000297
+:10E980000155545400000000000000000000000287
+:10E990000155545400000000000000000000000277
+:10E9A0000155545400000000000000000000000267
+:10E9B0000155545400000000000000000000000257
+:10E9C0000155545400000000000000000000000247
+:10E9D0000155545400000000000000000000000237
+:10E9E0000155545400000000000000000000000227
+:10E9F0000155545400000000000000000000000217
+:10EA00000155545400000000000000000000000206
+:10EA100001555454000000000000000000000002F6
+:10EA200001555454000000000000000000000000E8
+:10EA3000545454000000000000000000000000A832
+:10EA4000545454000000000000000000000000A822
+:10EA5000545454000000000000000000000000A812
+:10EA6000545454000000000000000000000000A802
+:10EA7000545454000000000000000000000000A8F2
+:10EA8000545454000000000000000000000000A8E2
+:10EA9000545454000000000000000000000000A8D2
+:10EAA000545454000000000000000000000000A8C2
+:10EAB000545454000000000000000000000000A8B2
+:10EAC000545454000000000000000000000000A8A2
+:10EAD000545454000000000000000000000000A892
+:10EAE000545454000000000000000000000000A882
+:10EAF000545454000000000000000000000000A872
+:10EB0000545454000000000000000000000000A861
+:10EB1000545454000000000000000000000000A851
+:10EB200054545400000000000000000000000000E9
+:10EB3000545400000000000000000000000000A885
+:10EB4000545400000000000000000000000000A875
+:10EB5000545400000000000000000000000000A865
+:10EB6000545400000000000000000000000000A855
+:10EB7000545400000000000000000000000000A845
+:10EB8000545400000000000000000000000000A835
+:10EB9000545400000000000000000000000000A825
+:10EBA000545400000000000000000000000000A815
+:10EBB000545400000000000000000000000000A805
+:10EBC000545400000000000000000000000000A8F5
+:10EBD000545400000000000000000000000000A8E5
+:10EBE000545400000000000000000000000000A8D5
+:10EBF000545400000000000000000000000000A8C5
+:10EC0000545400000000000000000000000000A8B4
+:10EC1000545400000000000000000000000000A8A4
+:10EC2000545400000000000000000000000000003C
+:10EC300000000000000000000000000000000000D4
+:10EC4000FCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFC04
+:10EC500000000000000000000000000000000000B4
+:10EC600000000000000000000000000000000000A4
+:10EC70000000000000000000000000000000000094
+:10EC80000000000000000000000000000000000084
+:10EC90000000000000000000000000000000000074
+:10ECA0000000000000000000000000000000000064
+:10ECB0000000000000000000000000000000000054
+:10ECC0000000000000000000000000000000000044
+:10ECD0000000000000000000000000000000000034
+:10ECE0000000000000000000000000000000000024
+:10ECF0000000000000000000000000000000000014
+:10ED00000056545454545454545454545454A855C0
+:10ED1000AA005454545454545454545454545455B0
+:10ED2000AA5600545454545454545454545454559E
+:10ED3000AA5654005454545454545454545454558E
+:10ED4000AA5654540054545454545454545454557E
+:10ED5000AA5654545400545454545454545454556E
+:10ED6000AA5654545454005454545454545454555E
+:10ED7000AA5654545454540054545454545454554E
+:10ED8000AA5654545454545400545454545454553E
+:10ED9000AA5654545454545454005454545454552E
+:10EDA000AA5654545454545454540054545454551E
+:10EDB000AA5654545454545454545400545454550E
+:10EDC000AA565454545454545454545400545455FE
+:10EDD000AA565454545454545454545454005455EE
+:10EDE000AA565454545454545454545454540055DE
+:10EDF000AA56446868A8A8A8A8A8A8A8A8A8A8006F
+:10EE00000056545454545454545454545454540167
+:10EE100002005454545454545454545454545401AB
+:10EE20000256005454545454545454545454540199
+:10EE30000256540054545454545454545454540189
+:10EE40000256545400545454545454545454540179
+:10EE50000256545454005454545454545454540169
+:10EE60000256545454540054545454545454540159
+:10EE70000256545454545400545454545454540149
+:10EE80000256545454545454005454545454540139
+:10EE90000256545454545454540054545454540129
+:10EEA0000256545454545454545400545454540119
+:10EEB0000256545454545454545454005454540109
+:10EEC00002565454545454545454545400545401F9
+:10EED00002565454545454545454545454005401E9
+:10EEE00002565454545454545454545454540001D9
+:10EEF000025654545868A8A8A8A8A8A8A8A8A8006A
+:10EF00000056566464A4A4A4A4A4A4A4A4A4A454D1
+:10EF1000A8005654545454545454545454545454AF
+:10EF2000A85600545454545454545454545454549F
+:10EF3000A85656005454545454545454545454548D
+:10EF4000A85656540054545454545454545454547D
+:10EF5000A85656545400545454545454545454546D
+:10EF6000A85656545454005454545454545454545D
+:10EF7000A85656545454540054545454545454544D
+:10EF8000A85656545454545400545454545454543D
+:10EF9000A85656545454545454005454545454542D
+:10EFA000A85656545454545454540054545454541D
+:10EFB000A85656545454545454545400545454540D
+:10EFC000A8565654545454545454545400545454FD
+:10EFD000A8565654545454545454545454005454ED
+:10EFE000A8565654545454545454545454540054DD
+:10EFF000A8565654545468A8A8A8A8A8A8A8A80019
+:10F00000005666A8A8A8A8A8A8A8A8A8A8A8A80064
+:10F0100000005654545454545454545454545400AA
+:10F02000005600545454545454545454545454009A
+:10F030000056560054545454545454545454540088
+:10F040000056565400545454545454545454540078
+:10F050000056565454005454545454545454540068
+:10F060000056565454540054545454545454540058
+:10F070000056565454545400545454545454540048
+:10F080000056565454545454005454545454540038
+:10F090000056565454545454540054545454540028
+:10F0A0000056565454545454545400545454540018
+:10F0B0000056565454545454545454005454540008
+:10F0C00000565654545454545454545400545400F8
+:10F0D0000056565454545454545454545400A80094
+:10F0E00000565654545454545454545454540000D8
+:10F0F000005656545454545454545454A8A85400CC
+:10F100000056AAAAA8A8A8A8A8A8A8A8A8A8A855C8
+:10F11000AA00AAAAA8A8A8A8A8A8A8A8A8A8A85564
+:10F12000AAAA00AAA8A8A8A8A8A8A8A8A8A8A85554
+:10F13000AAAAAA00A8A8A8A8A8A8A8A8A8A8A85544
+:10F14000AAAAAAAA00A8A8A8A8A8A8A8A8A8A85532
+:10F15000AAAAAAAAA800A8A8A8A8A8A8A8A8A85522
+:10F16000AAAAAAAAA8A800A8A8A8A8A8A8A8A85512
+:10F17000AAAAAAAAA8A8A800A8A8A8A8A8A8A85502
+:10F18000AAAAAAAAA8A8A8A800A8A8A8A8A8A855F2
+:10F19000AAAAAAAAA8A8A8A8A800A8A8A8A8A855E2
+:10F1A000AAAAAAAAA8A8A8A8A8A800A8A8A8A855D2
+:10F1B000AAAA5656545454545454540054545455B2
+:10F1C000AA565656545454545454545400545455F6
+:10F1D000AA565656545454545454545454005455E6
+:10F1E000AA565656545454545454545454540055D6
+:10F1F000AA565656545454545454545454545400C7
+:10F200000056AAAAA8A8A8A8A8A8A8A8A8A8A8011B
+:10F210000200AAAAA8A8A8A8A8A8A8A8A8A8A8015F
+:10F2200002AA00AAA8A8A8A8A8A8A8A8A8A8A8014F
+:10F2300002AAAA00A8A8A8A8A8A8A8A8A8A8A8013F
+:10F2400002AAAAAA00A8A8A8A8A8A8A8A8A8A8012D
+:10F2500002AAAAAAA800A8A8A8A8A8A8A8A8A8011D
+:10F2600002AAAAAAA8A800A8A8A8A8A8A8A8A8010D
+:10F2700002AAAAAAA8A8A800A8A8A8A8A8A8A801FD
+:10F2800002AAAAAAA8A8A8A800A8A8A8A8A8A801ED
+:10F2900002AAAAAAA8A8A8A8A800A8A8A8A8A801DD
+:10F2A00002AAAAAAA8A8A8A8A8A800A8A8A8A801CD
+:10F2B00002AAAAAAA8A8A8A8A8A8A800A8A8A801BD
+:10F2C00002AAAAAAA8A8A8A8A8A8A8A800A8A801AD
+:10F2D00002565656545454545454545454005401E1
+:10F2E00002565656545454545454545454540001D1
+:10F2F000025656565454545454545454545454006E
+:10F300000056AAAAAAA8A8A8A8A8A8A8A8A8A854C5
+:10F31000A800AAAAAAA8A8A8A8A8A8A8A8A8A85463
+:10F32000A8AA00AAAAA8A8A8A8A8A8A8A8A8A85453
+:10F33000A8AAAA00AAA8A8A8A8A8A8A8A8A8A85443
+:10F34000A8AAAAAA00A8A8A8A8A8A8A8A8A8A85433
+:10F35000A8AAAAAAAA00A8A8A8A8A8A8A8A8A85421
+:10F36000A8AAAAAAAAA800A8A8A8A8A8A8A8A85411
+:10F37000A8AAAAAAAAA8A800A8A8A8A8A8A8A85401
+:10F38000A8AAAAAAAAA8A8A800A8A8A8A8A8A854F1
+:10F39000A8AAAAAAAAA8A8A8A800A8A8A8A8A854E1
+:10F3A000A8AAAAAAAAA8A8A8A8A800A8A8A8A854D1
+:10F3B000A8AAAAAAAAA8A8A8A8A8A800A8A8A854C1
+:10F3C000A8AAAAAAAAA8A8A8A8A8A8A800A8A854B1
+:10F3D000A8AAAAAAAAA8A8A8A8A8A8A8A800A854A1
+:10F3E000A8AAAAAAAAA8A8A8A8A8A8A8A8A8005491
+:10F3F000A8565656565454545454545454545400C5
+:10F4000000AAAAAAAAA8A8A8A8A8A8A8A8A8A800C4
+:10F410000000AAAAAAA8A8A8A8A8A8A8A8A8A8005E
+:10F4200000AA00AAAAA8A8A8A8A8A8A8A8A8A8004E
+:10F4300000AAAA00AAA8A8A8A8A8A8A8A8A8A8003E
+:10F4400000AAAAAA00A8A8A8A8A8A8A8A8A8A8002E
+:10F4500000AAAAAAAA00A8A8A8A8A8A8A8A8A8001C
+:10F4600000AAAAAAAAA800A8A8A8A8A8A8A8A8000C
+:10F4700000AAAAAAAAA8A800A8A8A8A8A8A8A800FC
+:10F4800000AAAAAAAAA8A8A800A8A8A8A8A8A800EC
+:10F4900000AAAAAAAAA8A8A8A800A8A8A8A8A800DC
+:10F4A00000AAAAAAAAA8A8A8A8A800A8A8A8A800CC
+:10F4B00000AAAAAAAAA8A8A8A8A8A800A8A8A800BC
+:10F4C00000AAAAAAAAA8A8A8A8A8A8A800A8A800AC
+:10F4D00000AAAAAAAAA8A8A8A8A8A8A8A800A8009C
+:10F4E00000AAAAAAAAA8A8A8A8A8A8A8A8A800008C
+:10F4F000005656565654545454545454545454006C
+:10F5000000AA0202020200000000000000000055F4
+:10F51000AA000202020200000000000000000055E4
+:10F52000AAAA00020202000000000000000000552C
+:10F53000AAAA02000202000000000000000000551C
+:10F54000AAAA02020002000000000000000000550C
+:10F55000AAAA0202020000000000000000000055FC
+:10F56000AAAA0202020200000000000000000055EA
+:10F57000AAAA0202020200000000000000000055DA
+:10F58000AAAA0202020200000000000000000055CA
+:10F59000AAAA0202020200000000000000000055BA
+:10F5A000AAAA0202020200000000000000000055AA
+:10F5B000AAAA02020202000000000000000000559A
+:10F5C000AAAA02020202000000000000000000558A
+:10F5D000AAAA02020202000000000000000000557A
+:10F5E000AAAA02020202000000000000000000556A
+:10F5F000AAAA0202020200000000000000000000AF
+:10F6000000AAAA020202000000000000000000554B
+:10F61000AA00AA020202000000000000000000553B
+:10F62000AAAA00020202000000000000000000552B
+:10F63000AAAAAA0002020000000000000000005573
+:10F64000AAAAAA0200020000000000000000005563
+:10F65000AAAAAA0202000000000000000000005553
+:10F66000AAAAAA0202020000000000000000005541
+:10F67000AAAAAA0202020000000000000000005531
+:10F68000AAAAAA0202020000000000000000005521
+:10F69000AAAAAA0202020000000000000000005511
+:10F6A000AAAAAA0202020000000000000000005501
+:10F6B000AAAAAA02020200000000000000000055F1
+:10F6C000AAAAAA02020200000000000000000055E1
+:10F6D000AAAAAA02020200000000000000000055D1
+:10F6E000AAAAAA02020200000000000000000055C1
+:10F6F000AAAAAA0202020000000000000000000006
+:10F7000000AAAAAA020202000000000000000000F5
+:10F710004000AAAA0202020000000000000000004F
+:10F7200040AA00AA0202020000000000000000003F
+:10F7300040AAAA000202020000000000000000002F
+:10F7400040AAAAAA00020200000000000000000077
+:10F7500040AAAAAA02000200000000000000000067
+:10F7600040AAAAAA02020000000000000000000057
+:10F7700040AAAAAA02020200000000000000000045
+:10F7800040AAAAAA02020200000000000000000035
+:10F7900040AAAAAA02020200000000000000000025
+:10F7A00040AAAAAA02020200000000000000000015
+:10F7B00040AAAAAA02020200000000000000000005
+:10F7C00040AAAAAA020202000000000000000000F5
+:10F7D00040AAAAAA020202000000000000000000E5
+:10F7E00040AAAAAA020202000000000000000000D5
+:10F7F00054AAAAAA020202000000000000000000B1
+:10F8000000AAAAAA020202000000000000000000F4
+:10F810004000AAAA0202020000000000000000004E
+:10F8200040AA00AA0202020000000000000000003E
+:10F8300040AAAA000202020000000000000000002E
+:10F8400040AAAAAA00020200000000000000000076
+:10F8500040AAAAAA02000200000000000000000066
+:10F8600040AAAAAA02020000000000000000000056
+:10F8700040AAAAAA02020200000000000000000044
+:10F8800040AAAAAA02020200000000000000000034
+:10F8900040AAAAAA02020200000000000000000024
+:10F8A00040AAAAAA02020200000000000000000014
+:10F8B00040AAAAAA02020200000000000000000004
+:10F8C00040AAAAAA020202000000000000000000F4
+:10F8D00040AAAAAA020202000000000000000000E4
+:10F8E00040AAAAAA020202000000000000000000D4
+:10F8F00054AAAAAA020202000000000000000000B0
+:10F9000000AAAAAA0202020000000000000000559E
+:10F910002A00AAAA0202020000000000000000550E
+:10F920002AAA00AA020202000000000000000055FE
+:10F930002AAAAA00020202000000000000000055EE
+:10F940002AAAAAAA00020200000000000000005536
+:10F950002AAAAAAA02000200000000000000005526
+:10F960002AAAAAAA02020000000000000000005516
+:10F970002AAAAAAA02020200000000000000005504
+:10F980002AAAAAAA020202000000000000000055F4
+:10F990002AAAAAAA020202000000000000000055E4
+:10F9A0002AAAAAAA020202000000000000000055D4
+:10F9B0002AAAAAAA020202000000000000000055C4
+:10F9C0002AAAAAAA020202000000000000000055B4
+:10F9D0002AAAAAAA020202000000000000000055A4
+:10F9E0002AAAAAAA02020200000000000000005594
+:10F9F00002AAAAAA02020200000000000000000001
+:10FA000000AAAAAA0202020200000000000000559B
+:10FA10002A00AAAA0202020000000000000000550D
+:10FA20002AAA00AA020202000000000000000055FD
+:10FA30002AAAAA00020202000000000000000055ED
+:10FA40002AAAAAAA00020200000000000000005535
+:10FA50002AAAAAAA02000200000000000000005525
+:10FA60002AAAAAAA02020000000000000000005515
+:10FA70002AAAAAAA02020200000000000000005503
+:10FA80002AAAAAAA020202000000000000000055F3
+:10FA90002AAAAAAA020202000000000000000055E3
+:10FAA0002AAAAAAA020202000000000000000055D3
+:10FAB0002AAAAAAA020202000000000000000055C3
+:10FAC0002AAAAAAA020202000000000000000055B3
+:10FAD0002AAAAAAA020202000000000000000055A3
+:10FAE0002AAAAAAA02020200000000000000005593
+:10FAF00002AAAAAA02020200000000000000000000
+:10FB000000AAAAAAAA020202020000000000000045
+:10FB10004000AAAAAA0202020000000000000000A1
+:10FB200040AA00AAAA020202000000000000000091
+:10FB300040AAAA00AA020202000000000000000081
+:10FB400040AAAAAA00020202000000000000000071
+:10FB500040AAAAAAAA0002020000000000000000B9
+:10FB600040AAAAAAAA0200020000000000000000A9
+:10FB700040AAAAAAAA020200000000000000000099
+:10FB800040AAAAAAAA020202000000000000000087
+:10FB900040AAAAAAAA020202000000000000000077
+:10FBA00040AAAAAAAA020202000000000000000067
+:10FBB00040AAAAAAAA020202000000000000000057
+:10FBC00040AAAAAAAA020202000000000000000047
+:10FBD00040AAAAAAAA020202000000000000000037
+:10FBE00040AAAAAAAA020202000000000000000027
+:10FBF00055AAAAAAAA020202000000000000000002
+:10FC000000AAAAAAAA020202020200000000000042
+:10FC10004000AAAAAA02020202000000000000009E
+:10FC200040AA00AAAA02020202000000000000008E
+:10FC300040AAAA00AA02020202000000000000007E
+:10FC400040AAAAAA0002020202000000000000006E
+:10FC500040AAAAAAAA0002020200000000000000B6
+:10FC600040AAAAAAAA0200020200000000000000A6
+:10FC700040AAAAAAAA020200020000000000000096
+:10FC800040AAAAAAAA020202000000000000000086
+:10FC900040AAAAAAAA020202020000000000000074
+:10FCA00040AAAAAAAA020202020000000000000064
+:10FCB00040AAAAAAAA020202020000000000000054
+:10FCC00040AAAAAAAA020202020000000000000044
+:10FCD00040AAAAAAAA020202020000000000000034
+:10FCE00040AAAAAAAA020202020000000000000024
+:10FCF00055AAAAAAAA0202020200000000000000FF
+:10FD000000AAAAAAAAAA0202020202000000005542
+:10FD10002A00AAAAAAAA02020202000000000055B4
+:10FD20002AAA00AAAAAA02020202000000000055A4
+:10FD30002AAAAA00AAAA0202020200000000005594
+:10FD40002AAAAAAA00AA0202020200000000005584
+:10FD50002AAAAAAAAA000202020200000000005574
+:10FD60002AAAAAAAAAAA00020202000000000055BC
+:10FD70002AAAAAAAAAAA02000202000000000055AC
+:10FD80002AAAAAAAAAAA020200020000000000559C
+:10FD90002AAAAAAAAAAA020202000000000000558C
+:10FDA0002AAAAAAAAAAA020202020000000000557A
+:10FDB0002AAAAAAAAAAA020202020000000000556A
+:10FDC0002AAAAAAAAAAA020202020000000000555A
+:10FDD0002AAAAAAAAAAA020202020000000000554A
+:10FDE0002AAAAAAAAAAA020202020000000000553A
+:10FDF00000AAAAAAAAAA02020202000000000000A9
+:10FE000000AAAAAAAAAA020202020202000000553F
+:10FE10002A00AAAAAAAA02020202020000000055B1
+:10FE20002AAA00AAAAAA02020202020000000055A1
+:10FE30002AAAAA00AAAA0202020202000000005591
+:10FE40002AAAAAAA00AA0202020202000000005581
+:10FE50002AAAAAAAAA000202020202000000005571
+:10FE60002AAAAAAAAAAA00020202020000000055B9
+:10FE70002AAAAAAAAAAA02000202020000000055A9
+:10FE80002AAAAAAAAAAA0202000202000000005599
+:10FE90002AAAAAAAAAAA0202020002000000005589
+:10FEA0002AAAAAAAAAAA0202020200000000005579
+:10FEB0002AAAAAAAAAAA0202020202000000005567
+:10FEC0002AAAAAAAAAAA0202020202000000005557
+:10FED0002AAAAAAAAAAA0202020202000000005547
+:10FEE0002AAAAAAAAAAA0202020202000000005537
+:10FEF00000AAAAAAAAAA02020202020000000000A6
+:10FF000000AAAAAAAAAAAA020202020202000000E9
+:10FF10004000AAAAAAAAAA02020202020000000045
+:10FF200040AA00AAAAAAAA02020202020000000035
+:10FF300040AAAA00AAAAAA02020202020000000025
+:10FF400040AAAAAA00AAAA02020202020000000015
+:10FF500040AAAAAAAA00AA02020202020000000005
+:10FF600040AAAAAAAAAA00020202020200000000F5
+:10FF700040AAAAAAAAAAAA0002020202000000003D
+:10FF800040AAAAAAAAAAAA0200020202000000002D
+:10FF900040AAAAAAAAAAAA0202000202000000001D
+:10FFA00040AAAAAAAAAAAA0202020002000000000D
+:10FFB00040AAAAAAAAAAAA020202020000000000FD
+:10FFC00040AAAAAAAAAAAA020202020200000000EB
+:10FFD00040AAAAAAAAAAAA020202020200000000DB
+:10FFE00040AAAAAAAAAAAA020202020200000000CB
+:10FFF00055AAAAAAAAAAAA020202020200000000A6
+:020000040005F5
+:1000000000AAAAAAAAAAAAAA02020202020200003E
+:100010004000AAAAAAAAAAAA020202020202000098
+:1000200040AA00AAAAAAAAAA020202020202000088
+:1000300040AAAA00AAAAAAAA020202020202000078
+:1000400040AAAAAA00AAAAAA020202020202000068
+:1000500040AAAAAAAA00AAAA020202020202000058
+:1000600040AAAAAAAAAA00AA020202020202000048
+:1000700040AAAAAAAAAAAA00020202020202000038
+:1000800040AAAAAAAAAAAAAA000202020202000080
+:1000900040AAAAAAAAAAAAAA020002020202000070
+:1000A00040AAAAAAAAAAAAAA020200020202000060
+:1000B00040AAAAAAAAAAAAAA020202000202000050
+:1000C00040AAAAAAAAAAAAAA020202020002000040
+:1000D00040AAAAAAAAAAAAAA020202020200000030
+:1000E00040AAAAAAAAAAAAAA02020202020200001E
+:1000F00055AAAAAAAAAAAAAA0202020202020000F9
+:1001000000A9A9A9A9A9A9A9A9010101010101554C
+:100110002A00A9A9A9A9A9A9A901010101010155BB
+:100120002AA900A9A9A9A9A9A901010101010155AB
+:100130002AA9A900A9A9A9A9A9010101010101559B
+:100140002AA9A9A900A9A9A9A9010101010101558B
+:100150002AA9A9A9A900A9A9A9010101010101557B
+:100160002AA9A9A9A9A900A9A9010101010101556B
+:100170002AA9A9A9A9A9A900A9010101010101555B
+:100180002AA9A9A9A9A9A9A900010101010101554B
+:100190002AA9A9A9A9A9A9A9A90001010101015593
+:1001A0002AA9A9A9A9A9A9A9A90100010101015583
+:1001B0002AA9A9A9A9A9A9A9A90101000101015573
+:1001C0002AA9A9A9A9A9A9A9A90101010001015563
+:1001D0002AA9A9A9A9A9A9A9A90101010100015553
+:1001E0002AA9A9A9A9A9A9A9A90101010101005543
+:1001F00000A9A9A9A9A9A9A9A901010101010100B1
+:1002000000A9A9A9A9A9A9A9A9A9010101010154A4
+:100210002800A9A9A9A9A9A9A9A901010101015415
+:1002200028A900A9A9A9A9A9A9A901010101015405
+:1002300028A9A900A9A9A9A9A9A9010101010154F5
+:1002400028A9A9A900A9A9A9A9A9010101010154E5
+:1002500028A9A9A9A900A9A9A9A9010101010154D5
+:1002600028A9A9A9A9A900A9A9A9010101010154C5
+:1002700028A9A9A9A9A9A900A9A9010101010154B5
+:1002800028A9A9A9A9A9A9A900A9010101010154A5
+:1002900028A9A9A9A9A9A9A9A90001010101015495
+:1002A00028A9A9A9A9A9A9A9A9A9000101010154DD
+:1002B00028A9A9A9A9A9A9A9A9A9010001010154CD
+:1002C00028A9A9A9A9A9A9A9A9A9010100010154BD
+:1002D00028A9A9A9A9A9A9A9A9A9010101000154AD
+:1002E00028A9A9A9A9A9A9A9A9A90101010100549D
+:1002F00001A9A9A9A9A9A9A9A9A901010101010007
+:1003000000A9A9A9A9A9A9A9A9A9010101010101F6
+:100310005600A9A9A9A9A9A9A9A901010101010139
+:1003200056A900A9A9A9A9A9A9A901010101010129
+:1003300056A9A900A9A9A9A9A9A901010101010119
+:1003400056A9A9A900A9A9A9A9A901010101010109
+:1003500056A9A9A9A900A9A9A9A9010101010101F9
+:1003600056A9A9A9A9A900A9A9A9010101010101E9
+:1003700056A9A9A9A9A9A900A9A9010101010101D9
+:1003800056A9A9A9A9A9A9A900A9010101010101C9
+:1003900056A9A9A9A9A9A9A9A900010101010101B9
+:1003A00056A9A9A9A9A9A9A9A9A900010101010101
+:1003B00056A9A9A9A9A9A9A9A9A9010001010101F1
+:1003C00056A9A9A9A9A9A9A9A9A9010100010101E1
+:1003D00056A9A9A9A9A9A9A9A9A9010101000101D1
+:1003E00056A9A9A9A9A9A9A9A9A9010101010001C1
+:1003F00054A9A9A9A9A9A9A9A9A9010101010100B3
+:1004000000A9A9A9A9A9A9A9A9A9A901010101004E
+:100410005500A9A9A9A9A9A9A9A9A9010101010092
+:1004200055A900A9A9A9A9A9A9A9A9010101010082
+:1004300055A9A900A9A9A9A9A9A9A9010101010072
+:1004400055A9A9A900A9A9A9A9A9A9010101010062
+:1004500055A9A9A9A900A9A9A9A9A9010101010052
+:1004600055A9A9A9A9A900A9A9A9A9010101010042
+:1004700055A9A9A9A9A9A900A9A9A9010101010032
+:1004800055A9A9A9A9A9A9A900A9A9010101010022
+:1004900055A9A9A9A9A9A9A9A900A9010101010012
+:1004A00055A9A9A9A9A9A9A9A9A900010101010002
+:1004B00055A9A9A9A9A9A9A9A9A9A900010101004A
+:1004C00055A9A9A9A9A9A9A9A9A9A901000101003A
+:1004D00055A9A9A9A9A9A9A9A9A9A901010001002A
+:1004E00055A9A9A9A9A9A9A9A9A9A901010100001A
+:1004F00055A9A9A9A9A9A9A9A9A9A9010101010009
+:1005000000A9A9A9A9A9A9A9A9A9A9A90101015550
+:100510000000A9A9A9A9A9A9A9A9A9A901010155E9
+:1005200000A900A9A9A9A9A9A9A9A9A901010155D9
+:1005300000A9A900A9A9A9A9A9A9A9A901010155C9
+:1005400000A9A9A900A9A9A9A9A9A9A901010155B9
+:1005500000A9A9A9A900A9A9A9A9A9A901010155A9
+:1005600000A9A9A9A9A900A9A9A9A9A90101015599
+:1005700000A9A9A9A9A9A900A9A9A9A90101015589
+:1005800000A9A9A9A9A9A9A900A9A9A90101015579
+:1005900000A9A9A9A9A9A9A9A900A9A90101015569
+:1005A00000A9A9A9A9A9A9A9A9A900A90101015559
+:1005B00000A9A9A9A9A9A9A9A9A9A9000101015549
+:1005C00000A9A9A9A9A9A9A9A9A9A9A90001015591
+:1005D00000A9A9A9A9A9A9A9A9A9A9A90100015581
+:1005E00000A9A9A9A9A9A9A9A9A9A9A90101005571
+:1005F00000A9A9A9A9A9A9A9A9A9A9A901010100B5
+:1006000000A9A9A9A9A9A9A9A9A9A9A9A9010154A8
+:100610000100A9A9A9A9A9A9A9A9A9A9A901015440
+:1006200001A900A9A9A9A9A9A9A9A9A9A901015430
+:1006300001A9A900A9A9A9A9A9A9A9A9A901015420
+:1006400001A9A9A900A9A9A9A9A9A9A9A901015410
+:1006500001A9A9A9A900A9A9A9A9A9A9A901015400
+:1006600001A9A9A9A9A900A9A9A9A9A9A9010154F0
+:1006700001A9A9A9A9A9A900A9A9A9A9A9010154E0
+:1006800001A9A9A9A9A9A9A900A9A9A9A9010154D0
+:1006900001A9A9A9A9A9A9A9A900A9A9A9010154C0
+:1006A00001A9A9A9A9A9A9A9A9A900A9A9010154B0
+:1006B00001A9A9A9A9A9A9A9A9A9A900A9010154A0
+:1006C00001A9A9A9A9A9A9A9A9A9A9A90001015490
+:1006D00001A9A9A9A9A9A9A9A9A9A9A9A9000154D8
+:1006E00001A9A9A9A9A9A9A9A9A9A9A9A9010054C8
+:1006F00001A9A9A9A9A9A9A9A9A9A9A9A90101000B
+:1007000000A9A9A9A9A9A9A9A9A9A9A9A9A9010152
+:100710005400A9A9A9A9A9A9A9A9A9A9A9A9010197
+:1007200054A900A9A9A9A9A9A9A9A9A9A9A9010187
+:1007300054A9A900A9A9A9A9A9A9A9A9A9A9010177
+:1007400054A9A9A900A9A9A9A9A9A9A9A9A9010167
+:1007500054A9A9A9A900A9A9A9A9A9A9A9A9010157
+:1007600054A9A9A9A9A900A9A9A9A9A9A9A9010147
+:1007700054A9A9A9A9A9A900A9A9A9A9A9A9010137
+:1007800054A9A9A9A9A9A9A900A9A9A9A9A9010127
+:1007900054A9A9A9A9A9A9A9A900A9A9A9A9010117
+:1007A00054A9A9A9A9A9A9A9A9A900A9A9A9010107
+:1007B00054A9A9A9A9A9A9A9A9A9A900A9A90101F7
+:1007C00054A9A9A9A9A9A9A9A9A9A9A900A90101E7
+:1007D00054A9A9A9A9A9A9A9A9A9A9A9A9000101D7
+:1007E00054A9A9A9A9A9A9A9A9A9A9A9A9A900011F
+:1007F00054A9A9A9A9A9A9A9A9A9A9A9A9A901000F
+:1008000000555555565656565555555555555554EA
+:100810000100555555555555555555555555555432
+:100820000155005555555555555555555555555422
+:100830000155550055555555555555555555555412
+:100840000155555500555555555555555555555402
+:1008500001555555550055555555555555555554F2
+:1008600001555555555500555555555555555554E2
+:1008700001555555555555005555555555555554D2
+:1008800001555555555555550055555555555554C2
+:1008900001555555555555555500555555555554B2
+:1008A00001555555555555555555005555555554A2
+:1008B0000155555555555555555555005555555492
+:1008C0000155555555555555555555550055555482
+:1008D0000155555555555555555555555500555472
+:1008E0000155555555555555555555555555005462
+:1008F0000155555555555555555555555555550051
+:1009000000555556565656565655555555555556E5
+:1009100054005555555555555555555555555556DC
+:1009200054550055555555555555555555555556CC
+:1009300054555500555555555555555555555556BC
+:1009400054555555005555555555555555555556AC
+:10095000545555555500555555555555555555569C
+:10096000545555555555005555555555555555568C
+:10097000545555555555550055555555555555567C
+:10098000545555555555555500555555555555566C
+:10099000545555555555555555005555555555565C
+:1009A000545555555555555555550055555555564C
+:1009B000545555555555555555555500555555563C
+:1009C000545555555555555555555555005555562C
+:1009D000545555555555555555555555550055561C
+:1009E000545555555555555555555555555500560C
+:1009F00054555555555555555555555555555500FD
+:100A0000005555565656565656555656555555AA8E
+:100A1000010055555656565655555555555555AAD6
+:100A2000015500555656565655555555555555AAC6
+:100A3000015555005656565655555555555555AAB6
+:100A4000015555550056565655555555555555AAA7
+:100A5000015555555600565655555555555555AA97
+:100A6000015555555656005655555555555555AA87
+:100A7000015555555656560055555555555555AA77
+:100A8000015555555656565600555555555555AA66
+:100A9000015555555656565655005555555555AA56
+:100AA000015555555656565655550055555555AA46
+:100AB000015555555656565655555500555555AA36
+:100AC000015555555656565655555555005555AA26
+:100AD000015555555656565655555555550055AA16
+:100AE000015555555656565655555555555500AA06
+:100AF000015555555555555555555555555555004F
+:100B0000005555565656565656565656565656A88B
+:100B1000540056565656565656565656565656A87B
+:100B2000545600565656565656565656565656A86B
+:100B3000545656005656565656565656565656A85B
+:100B4000545656560056565656565656565656A84B
+:100B5000545656565600565656565656565656A83B
+:100B6000545656565656005656565656565656A82B
+:100B7000545656565656560056565656565656A81B
+:100B8000545656565656565600565656565656A80B
+:100B9000545656565656565656005656565656A8FB
+:100BA000545656565656565656560056565656A8EB
+:100BB000545656565656565656565600565656A8DB
+:100BC000545656565656565656565656005656A8CB
+:100BD000545656565656565656565656560056A8BB
+:100BE000545656565656565656565656565600A8AB
+:100BF00054555556565656565454565656565600F3
+:100C0000005656565656565656565656565656022E
+:100C10000100565656565656565656565656560273
+:100C20000156005656565656565656565656560263
+:100C30000156560056565656565656565656560253
+:100C40000156565600565656565656565656560243
+:100C50000156565656005656565656565656560233
+:100C60000156565656560056565656565656560223
+:100C70000156565656565600565656565656560213
+:100C80000156565656565656005656565656560203
+:100C900001565656565656565600565656565602F3
+:100CA00001565656565656565656005656565602E3
+:100CB00001565656565656565656560056565602D3
+:100CC00001565656565656565656565600565602C3
+:100CD00001565656565656565656565656005602B3
+:100CE00001565656565656565656565656560002A3
+:100CF0000155545656565656565656565656560042
+:100D0000005656565656565656565656565656A887
+:100D1000540056565656565656565656565656A879
+:100D2000545600565656565656565656565656A869
+:100D3000545656005656565656565656565656A859
+:100D4000545656560056565656565656565656A849
+:100D5000545656565600565656565656565656A839
+:100D6000545656565656005656565656565656A829
+:100D7000545656565656560056565656565656A819
+:100D8000545656565656565600565656565656A809
+:100D9000545656565656565656005656565656A8F9
+:100DA000545656565656565656560056565656A8E9
+:100DB000545656565656565656565600565656A8D9
+:100DC000545656565656565656565656005656A8C9
+:100DD000545656565656565656565656560056A8B9
+:100DE000545656565656565656565656565600A8A9
+:100DF00054565656565656565656565656565600EB
+:100E0000005656565656565656565656565656022C
+:100E10000100565656565656565656565656560271
+:100E20000156005656565656565656565656560261
+:100E30000156560056565656565656565656560251
+:100E40000156565600565656565656565656560241
+:100E50000156565656005656565656565656560231
+:100E60000156565656560056565656565656560221
+:100E70000156565656565600565656565656560211
+:100E80000156565656565656005656565656560201
+:100E900001565656565656565600565656565602F1
+:100EA00001565656565656565656005656565602E1
+:100EB00001565656565656565656560056565602D1
+:100EC00001565656565656565656565600565602C1
+:100ED00001565656565656565656565656005602B1
+:100EE00001565656565656565656565656560002A1
+:100EF000015656565656565656565656565656003D
+:100F0000005656565656565656565656565656A885
+:100F1000540056565656565656565656565656A877
+:100F2000545600565656565656565656565656A867
+:100F3000545656005656565656565656565656A857
+:100F4000545656560056565656565656565656A847
+:100F5000545656565600565656565656565656A837
+:100F6000545656565656005656565656565656A827
+:100F7000545656565656560056565656565656A817
+:100F8000545656565656565600565656565656A807
+:100F9000545656565656565656005656565656A8F7
+:100FA000545656565656565656560056565656A8E7
+:100FB000545656565656565656565600565656A8D7
+:100FC000545656565656565656565656005656A8C7
+:100FD000545656565656565656565656560056A8B7
+:100FE000545656565656565656565656565600A8A7
+:100FF00054565656565656565656565656565600E9
+:1010000000AAAAAAAAAAAAAAAAAAAAAAAAAAAA0292
+:101010000100AAAAAAAAAAAAAAAAAAAAAAAAAA022B
+:1010200001AA00AAAAAAAAAAAAAAAAAAAAAAAA021B
+:1010300001AAAA00AAAAAAAAAAAAAAAAAAAAAA020B
+:1010400001AAAAAA00AAAAAAAAAAAAAAAAAAAA02FB
+:1010500001AAAAAAAA00AAAAAAAAAAAAAAAAAA02EB
+:1010600001AAAAAAAAAA00AAAAAAAAAAAAAAAA02DB
+:1010700001AAAAAAAAAAAA00AAAAAAAAAAAAAA02CB
+:1010800001AAAAAAAAAAAAAA00AAAAAAAAAAAA02BB
+:1010900001AAAAAAAAAAAAAAAA00AAAAAAAAAA02AB
+:1010A00001AAAAAAAAAAAAAAAAAA00AAAAAAAA029B
+:1010B00001AAAAAAAAAAAAAAAAAAAA00AAAAAA028B
+:1010C00001AAAAAAAAAAAAAAAAAAAAAA00AAAA027B
+:1010D00001AAAAAAAAAAAAAAAAAAAAAAAA00AA026B
+:1010E00001AAAAAAAAAAAAAAAAAAAAAAAAAA00025B
+:1010F00001AAAAAAAAAAAAAAAAAAAAAAAAAAAA00A3
+:1011000000AAAAAAAAAAAAAAAAAAAAAAAAAAAAA8EB
+:101110005400AAAAAAAAAAAAAAAAAAAAAAAAAAA831
+:1011200054AA00AAAAAAAAAAAAAAAAAAAAAAAAA821
+:1011300054AAAA00AAAAAAAAAAAAAAAAAAAAAAA811
+:1011400054AAAAAA00AAAAAAAAAAAAAAAAAAAAA801
+:1011500054AAAAAAAA00AAAAAAAAAAAAAAAAAAA8F1
+:1011600054AAAAAAAAAA00AAAAAAAAAAAAAAAAA8E1
+:1011700054AAAAAAAAAAAA00AAAAAAAAAAAAAAA8D1
+:1011800054AAAAAAAAAAAAAA00AAAAAAAAAAAAA8C1
+:1011900054AAAAAAAAAAAAAAAA00AAAAAAAAAAA8B1
+:1011A00054AAAAAAAAAAAAAAAAAA00AAAAAAAAA8A1
+:1011B00054AAAAAAAAAAAAAAAAAAAA00AAAAAAA891
+:1011C00054AAAAAAAAAAAAAAAAAAAAAA00AAAAA881
+:1011D00054AAAAAAAAAAAAAAAAAAAAAAAA00AAA871
+:1011E00054AAAAAAAAAAAAAAAAAAAAAAAAAA00A861
+:1011F00054AAAAAAAAAAAAAAAAAAAAAAAAAAAA004F
+:1012000000AAAAAAAAAAAAAAAAAAAAAAAAAAAA0290
+:101210000100AAAAAAAAAAAAAAAAAAAAAAAAAA0229
+:1012200001AA00AAAAAAAAAAAAAAAAAAAAAAAA0219
+:1012300001AAAA00AAAAAAAAAAAAAAAAAAAAAA0209
+:1012400001AAAAAA00AAAAAAAAAAAAAAAAAAAA02F9
+:1012500001AAAAAAAA00AAAAAAAAAAAAAAAAAA02E9
+:1012600001AAAAAAAAAA00AAAAAAAAAAAAAAAA02D9
+:1012700001AAAAAAAAAAAA00AAAAAAAAAAAAAA02C9
+:1012800001AAAAAAAAAAAAAA00AAAAAAAAAAAA02B9
+:1012900001AAAAAAAAAAAAAAAA00AAAAAAAAAA02A9
+:1012A00001AAAAAAAAAAAAAAAAAA00AAAAAAAA0299
+:1012B00001AAAAAAAAAAAAAAAAAAAA00AAAAAA0289
+:1012C00001AAAAAAAAAAAAAAAAAAAAAA00AAAA0279
+:1012D00001AAAAAAAAAAAAAAAAAAAAAAAA00AA0269
+:1012E00001AAAAAAAAAAAAAAAAAAAAAAAAAA000259
+:1012F00001AAAAAAAAAAAAAAAAAAAAAAAAAAAA00A1
+:1013000000AAAAAAAAAAAAAAAAAAAAAAAAAAAAA8E9
+:101310005400AAAAAAAAAAAAAAAAAAAAAAAAAAA82F
+:1013200054AA00AAAAAAAAAAAAAAAAAAAAAAAAA81F
+:1013300054AAAA00AAAAAAAAAAAAAAAAAAAAAAA80F
+:1013400054AAAAAA00AAAAAAAAAAAAAAAAAAAAA8FF
+:1013500054AAAAAAAA00AAAAAAAAAAAAAAAAAAA8EF
+:1013600054AAAAAAAAAA00AAAAAAAAAAAAAAAAA8DF
+:1013700054AAAAAAAAAAAA00AAAAAAAAAAAAAAA8CF
+:1013800054AAAAAAAAAAAAAA00AAAAAAAAAAAAA8BF
+:1013900054AAAAAAAAAAAAAAAA00AAAAAAAAAAA8AF
+:1013A00054AAAAAAAAAAAAAAAAAA00AAAAAAAAA89F
+:1013B00054AAAAAAAAAAAAAAAAAAAA00AAAAAAA88F
+:1013C00054AAAAAAAAAAAAAAAAAAAAAA00AAAAA87F
+:1013D00054AAAAAAAAAAAAAAAAAAAAAAAA00AAA86F
+:1013E00054AAAAAAAAAAAAAAAAAAAAAAAAAA00A85F
+:1013F00054AAAAAAAAAAAAAAAAAAAAAAAAAAAA004D
+:1014000000AAAAAAAAAAAAAAAAAAAAAAAAAAAA028E
+:101410000100AAAAAAAAAAAAAAAAAAAAAAAAAA0227
+:1014200001AA00AAAAAAAAAAAAAAAAAAAAAAAA0217
+:1014300001AAAA00AAAAAAAAAAAAAAAAAAAAAA0207
+:1014400001AAAAAA00AAAAAAAAAAAAAAAAAAAA02F7
+:1014500001AAAAAAAA00AAAAAAAAAAAAAAAAAA02E7
+:1014600001AAAAAAAAAA00AAAAAAAAAAAAAAAA02D7
+:1014700001AAAAAAAAAAAA00AAAAAAAAAAAAAA02C7
+:1014800001AAAAAAAAAAAAAA00AAAAAAAAAAAA02B7
+:1014900001AAAAAAAAAAAAAAAA00AAAAAAAAAA02A7
+:1014A00001AAAAAAAAAAAAAAAAAA00AAAAAAAA0297
+:1014B00001AAAAAAAAAAAAAAAAAAAA00AAAAAA0287
+:1014C00001AAAAAAAAAAAAAAAAAAAAAA00AAAA0277
+:1014D00001AAAAAAAAAAAAAAAAAAAAAAAA00AA0267
+:1014E00001AAAAAAAAAAAAAAAAAAAAAAAAAA000257
+:1014F00001AAAAAAAAAAAAAAAAAAAAAAAAAAAA009F
+:1015000000A9A9A9A9A9A9A9A9A9A9A9A9A9A8A8F6
+:101510005400A9A9A9A9A9A9A9A9A9A9A9A9A8A83B
+:1015200054A900A9A9A9A9A9A9A9A9A9A9A9A8A82B
+:1015300054A9A900A9A9A9A9A9A9A9A9A9A9A8A81B
+:1015400054A9A9A900A9A9A9A9A9A9A9A9A9A8A80B
+:1015500054A9A9A9A900A9A9A9A9A9A9A9A9A8A8FB
+:1015600054A9A9A9A9A900A9A9A9A9A9A9A9A8A8EB
+:1015700054A9A9A9A9A9A900A9A9A9A9A9A9A8A8DB
+:1015800054A9A9A9A9A9A9A900A9A9A9A9A9A8A8CB
+:1015900054A9A9A9A9A9A9A9A900A9A9A9A9A8A8BB
+:1015A00054A9A9A9A9A9A9A9A9A900A9A9A9A8A8AB
+:1015B00054A9A9A9A9A9A9A9A9A9A900A9A9A8A89B
+:1015C00054A9A9A9A9A9A9A9A9A9A9A900A9A8A88B
+:1015D00054A9A9A9A9A9A9A9A9A9A9A9A900A8A87B
+:1015E00054A9A9A9A9A9A9A9A9A9A9A9A9A900A86A
+:1015F00054A9A9A9A9A9A9A9A9A9A9A9A9A9A8005A
+:1016000000A9A9A9A9A9A9A9A9A9A9A9A9A8A8009E
+:101610000000A9A9A9A9A9A9A9A9A9A9A9A8A80037
+:1016200000A900A9A9A9A9A9A9A9A9A9A9A8A80027
+:1016300000A9A900A9A9A9A9A9A9A9A9A9A8A80017
+:1016400000A9A9A900A9A9A9A9A9A9A9A9A8A80007
+:1016500000A9A9A9A900A9A9A9A9A9A9A9A8A800F7
+:1016600000A9A9A9A9A900A9A9A9A9A9A9A8A800E7
+:1016700000A9A9A9A9A9A900A9A9A9A9A9A8A800D7
+:1016800000A9A9A9A9A9A9A900A9A9A9A9A8A800C7
+:1016900000A9A9A9A9A9A9A9A900A9A9A9A8A800B7
+:1016A00000A9A9A9A9A9A9A9A9A900A9A9A8A800A7
+:1016B00000A9A9A9A9A9A9A9A9A9A900A9A8A80097
+:1016C00000A9A9A9A9A9A9A9A9A9A9A900A8A80087
+:1016D00000A9A9A9A9A9A9A9A9A9A9A9A900A80076
+:1016E00000A9A9A9A9A9A9A9A9A9A9A9A9A8000066
+:1016F00000A9A9A9A9A9A9A9A9A9A9A9A9A8A800AE
+:1017000000A9A9A9A9A9A9A9A9A9A9A9A8A8A8AAF4
+:101710005500A9A9A9A9A9A9A9A9A9A9A8A8A8AA38
+:1017200055A900A9A9A9A9A9A9A9A9A9A8A8A8AA28
+:1017300055A9A900A9A9A9A9A9A9A9A9A8A8A8AA18
+:1017400055A9A9A900A9A9A9A9A9A9A9A8A8A8AA08
+:1017500055A9A9A9A900A9A9A9A9A9A9A8A8A8AAF8
+:1017600055A9A9A9A9A900A9A9A9A9A9A8A8A8AAE8
+:1017700055A9A9A9A9A9A900A9A9A9A9A8A8A8AAD8
+:1017800055A9A9A9A9A9A9A900A9A9A9A8A8A8AAC8
+:1017900055A9A9A9A9A9A9A9A900A9A9A8A8A8AAB8
+:1017A00055A9A9A9A9A9A9A9A9A900A9A8A8A8AAA8
+:1017B00055A9A9A9A9A9A9A9A9A9A900A8A8A8AA98
+:1017C00055A9A9A9A9A9A9A9A9A9A9A900A8A8AA87
+:1017D00055A9A9A9A9A9A9A9A9A9A9A9A800A8AA77
+:1017E00055A9A9A9A9A9A9A9A9A9A9A9A8A800AA67
+:1017F00055A9A9A9A9A9A9A9A9A9A9A9A8A8A80059
+:101800000055555555555555555555545454000288
+:1018100001005555555555555555555454540002CC
+:1018200001550055555555555555555454540002BC
+:1018300001555500555555555555555454540002AC
+:10184000015555550055555555555554545400029C
+:10185000015555555500555555555554545400028C
+:10186000015555555555005555555554545400027C
+:10187000015555555555550055555554545400026C
+:10188000015555555555555500555554545400025C
+:10189000015555555555555555005554545400024C
+:1018A000015555555555555555550054545400023C
+:1018B000015555555555555555555500545400022B
+:1018C000015555555555555555555554005400021B
+:1018D000015555555555555555555554540000020B
+:1018E00001555555555555555555555454540002A7
+:1018F0000155555555555555555555545454000099
+:10190000005555555555555555555454540000A836
+:10191000540055555555555555555454540000A827
+:10192000545500555555555555555454540000A817
+:10193000545555005555555555555454540000A807
+:10194000545555550055555555555454540000A8F7
+:10195000545555555500555555555454540000A8E7
+:10196000545555555555005555555454540000A8D7
+:10197000545555555555550055555454540000A8C7
+:10198000545555555555555500555454540000A8B7
+:10199000545555555555555555005454540000A8A7
+:1019A000545555555555555555550054540000A896
+:1019B000545555555555555555555400540000A886
+:1019C000545555555555555555555454000000A876
+:1019D000545555555555555555555454540000A812
+:1019E000545555555555555555555454540000A802
+:1019F000545555555555555555555454540000009A
+:101A0000005555555555555555545454000000A88A
+:101A1000540055555555555555545454000000A87B
+:101A2000545500555555555555545454000000A86B
+:101A3000545555005555555555545454000000A85B
+:101A4000545555550055555555545454000000A84B
+:101A5000545555555500555555545454000000A83B
+:101A6000545555555555005555545454000000A82B
+:101A7000545555555555550055545454000000A81B
+:101A8000545555555555555500545454000000A80B
+:101A9000545555555555555555005454000000A8FA
+:101AA000545555555555555555540054000000A8EA
+:101AB000545555555555555555545400000000A8DA
+:101AC000545555555555555555545454000000A876
+:101AD000545555555555555555545454000000A866
+:101AE000545555555555555555545454000000A856
+:101AF00054555555555555555554545400000000EE
+:101B00000055555555555555545454000000000284
+:101B100001005555555555555454540000000002C8
+:101B200001550055555555555454540000000002B8
+:101B300001555500555555555454540000000002A8
+:101B40000155555500555555545454000000000298
+:101B50000155555555005555545454000000000288
+:101B60000155555555550055545454000000000278
+:101B70000155555555555500545454000000000268
+:101B80000155555555555555005454000000000257
+:101B90000155555555555555540054000000000247
+:101BA0000155555555555555545400000000000237
+:101BB00001555555555555555454540000000002D3
+:101BC00001555555555555555454540000000002C3
+:101BD00001555555555555555454540000000002B3
+:101BE00001555555555555555454540000000002A3
+:101BF0000155555555555555545454000000000095
+:101C000000555555555555545454000000000002D8
+:101C1000010055555555555454540000000000021C
+:101C2000015500555555555454540000000000020C
+:101C300001555500555555545454000000000002FC
+:101C400001555555005555545454000000000002EC
+:101C500001555555550055545454000000000002DC
+:101C600001555555555500545454000000000002CC
+:101C700001555555555555005454000000000002BB
+:101C800001555555555555540054000000000002AB
+:101C9000015555555555555454000000000000029B
+:101CA0000155555555555554545400000000000237
+:101CB0000155555555555554545400000000000227
+:101CC0000155555555555554545400000000000217
+:101CD0000155555555555554545400000000000207
+:101CE00001555555555555545454000000000002F7
+:101CF00001555555555555545454000000000000E9
+:101D0000005555555555555454540000000000A831
+:101D1000540055555555555454540000000000A822
+:101D2000545500555555555454540000000000A812
+:101D3000545555005555555454540000000000A802
+:101D4000545555550055555454540000000000A8F2
+:101D5000545555555500555454540000000000A8E2
+:101D6000545555555555005454540000000000A8D2
+:101D7000545555555555550054540000000000A8C1
+:101D8000545555555555555400540000000000A8B1
+:101D9000545555555555555454000000000000A8A1
+:101DA000545555555555555454540000000000A83D
+:101DB000545555555555555454540000000000A82D
+:101DC000545555555555555454540000000000A81D
+:101DD000545555555555555454540000000000A80D
+:101DE000545555555555555454540000000000A8FD
+:101DF0005455555555555554545400000000000095
+:101E0000005555555555555454000000000000A884
+:101E1000540055555555555454000000000000A875
+:101E2000545500555555555454000000000000A865
+:101E3000545555005555555454000000000000A855
+:101E4000545555550055555454000000000000A845
+:101E5000545555555500555454000000000000A835
+:101E6000545555555555005454000000000000A825
+:101E7000545555555555550054000000000000A814
+:101E8000545555555555555400000000000000A804
+:101E9000545555555555555454000000000000A8A0
+:101EA000545555555555555454000000000000A890
+:101EB000545555555555555454000000000000A880
+:101EC000545555555555555454000000000000A870
+:101ED000545555555555555454000000000000A860
+:101EE000545555555555555454000000000000A850
+:101EF00054555555555555545400000000000000E8
+:101F0000005555555555545400000000000000027E
+:101F100001005555555554540000000000000002C2
+:101F200001550055555554540000000000000002B2
+:101F300001555500555554540000000000000002A2
+:101F40000155555500555454000000000000000292
+:101F50000155555555005454000000000000000282
+:101F60000155555555550054000000000000000271
+:101F70000155555555555400000000000000000261
+:101F800001555555555554540000000000000002FD
+:101F900001555555555554540000000000000002ED
+:101FA00001555555555554540000000000000002DD
+:101FB00001555555555554540000000000000002CD
+:101FC00001555555555554540000000000000002BD
+:101FD00001555555555554540000000000000002AD
+:101FE000015555555555545400000000000000029D
+:101FF000015555555555545400000000000000008F
+:1020000000555555555554000000000000000002D1
+:102010000100555555555400000000000000000215
+:102020000155005555555400000000000000000205
+:1020300001555500555554000000000000000002F5
+:1020400001555555005554000000000000000002E5
+:1020500001555555550054000000000000000002D5
+:1020600001555555555500000000000000000002C4
+:102070000155555555555400000000000000000260
+:102080000155555555555400000000000000000250
+:102090000155555555555400000000000000000240
+:1020A0000155555555555400000000000000000230
+:1020B0000155555555555400000000000000000220
+:1020C0000155555555555400000000000000000210
+:1020D0000155555555555400000000000000000200
+:1020E00001555555555554000000000000000002F0
+:1020F00001555555555554000000000000000000E2
+:10210000005555555554000000000000000000A87F
+:10211000540055555554000000000000000000A870
+:10212000545500555554000000000000000000A860
+:10213000545555005554000000000000000000A850
+:10214000545555550054000000000000000000A840
+:10215000545555555500000000000000000000A82F
+:10216000545555555554000000000000000000A8CB
+:10217000545555555554000000000000000000A8BB
+:10218000545555555554000000000000000000A8AB
+:10219000545555555554000000000000000000A89B
+:1021A000545555555554000000000000000000A88B
+:1021B000545555555554000000000000000000A87B
+:1021C000545555555554000000000000000000A86B
+:1021D000545555555554000000000000000000A85B
+:1021E000545555555554000000000000000000A84B
+:1021F00054555555555400000000000000000000E3
+:10220000005555555554000000000000000000A87E
+:10221000540055555554000000000000000000A86F
+:10222000545500555554000000000000000000A85F
+:10223000545555005554000000000000000000A84F
+:10224000545555550054000000000000000000A83F
+:10225000545555555500000000000000000000A82E
+:10226000545555555554000000000000000000A8CA
+:10227000545555555554000000000000000000A8BA
+:10228000545555555554000000000000000000A8AA
+:10229000545555555554000000000000000000A89A
+:1022A000545555555554000000000000000000A88A
+:1022B000545555555554000000000000000000A87A
+:1022C000545555555554000000000000000000A86A
+:1022D000545555555554000000000000000000A85A
+:1022E000545555555554000000000000000000A84A
+:1022F00054555555555400000000000000000000E2
+:102300000055555554000000000000000000000179
+:1023100001005555540000000000000000000001BD
+:1023200001550055540000000000000000000001AD
+:10233000015555005400000000000000000000019D
+:10234000015555550000000000000000000000018C
+:102350000155555554000000000000000000000128
+:102360000155555554000000000000000000000118
+:102370000155555554000000000000000000000108
+:1023800001555555540000000000000000000001F8
+:1023900001555555540000000000000000000001E8
+:1023A00001555555540000000000000000000001D8
+:1023B00001555555540000000000000000000001C8
+:1023C00001555555540000000000000000000001B8
+:1023D00001555555540000000000000000000001A8
+:1023E0000155555554000000000000000000000198
+:1023F0000155555554000000000000000000000089
+:102400000055555554000000000000000000000178
+:1024100001005555540000000000000000000001BC
+:1024200001550055540000000000000000000001AC
+:10243000015555005400000000000000000000019C
+:10244000015555550000000000000000000000018B
+:102450000155555554000000000000000000000127
+:102460000155555554000000000000000000000117
+:102470000155555554000000000000000000000107
+:1024800001555555540000000000000000000001F7
+:1024900001555555540000000000000000000001E7
+:1024A00001555555540000000000000000000001D7
+:1024B00001555555540000000000000000000001C7
+:1024C00001555555540000000000000000000001B7
+:1024D00001555555540000000000000000000001A7
+:1024E0000155555554000000000000000000000197
+:1024F0000155555554000000000000000000000088
+:10250000005555540000000000000000000000A825
+:10251000540055540000000000000000000000A816
+:10252000545500540000000000000000000000A806
+:10253000545555000000000000000000000000A8F5
+:10254000545555540000000000000000000000A891
+:10255000545555540000000000000000000000A881
+:10256000545555540000000000000000000000A871
+:10257000545555540000000000000000000000A861
+:10258000545555540000000000000000000000A851
+:10259000545555540000000000000000000000A841
+:1025A000545555540000000000000000000000A831
+:1025B000545555540000000000000000000000A821
+:1025C000545555540000000000000000000000A811
+:1025D000545555540000000000000000000000A801
+:1025E000545555540000000000000000000000A8F1
+:1025F0005455555400000000000000000000000089
+:10260000005555540000000000000000000000A824
+:10261000540055540000000000000000000000A815
+:10262000545500540000000000000000000000A805
+:10263000545555000000000000000000000000A8F4
+:10264000545555540000000000000000000000A890
+:10265000545555540000000000000000000000A880
+:10266000545555540000000000000000000000A870
+:10267000545555540000000000000000000000A860
+:10268000545555540000000000000000000000A850
+:10269000545555540000000000000000000000A840
+:1026A000545555540000000000000000000000A830
+:1026B000545555540000000000000000000000A820
+:1026C000545555540000000000000000000000A810
+:1026D000545555540000000000000000000000A800
+:1026E000545555540000000000000000000000A8F0
+:1026F0005455555400000000000000000000000088
+:1027000000555454000000000000000000000002CA
+:10271000010054540000000000000000000000020E
+:1027200001550054000000000000000000000002FD
+:1027300001555400000000000000000000000002ED
+:102740000155545400000000000000000000000289
+:102750000155545400000000000000000000000279
+:102760000155545400000000000000000000000269
+:102770000155545400000000000000000000000259
+:102780000155545400000000000000000000000249
+:102790000155545400000000000000000000000239
+:1027A0000155545400000000000000000000000229
+:1027B0000155545400000000000000000000000219
+:1027C0000155545400000000000000000000000209
+:1027D00001555454000000000000000000000002F9
+:1027E00001555454000000000000000000000002E9
+:1027F00001555454000000000000000000000000DB
+:1028000000555454000000000000000000000002C9
+:10281000010054540000000000000000000000020D
+:1028200001550054000000000000000000000002FC
+:1028300001555400000000000000000000000002EC
+:102840000155545400000000000000000000000288
+:102850000155545400000000000000000000000278
+:102860000155545400000000000000000000000268
+:102870000155545400000000000000000000000258
+:102880000155545400000000000000000000000248
+:102890000155545400000000000000000000000238
+:1028A0000155545400000000000000000000000228
+:1028B0000155545400000000000000000000000218
+:1028C0000155545400000000000000000000000208
+:1028D00001555454000000000000000000000002F8
+:1028E00001555454000000000000000000000002E8
+:1028F00001555454000000000000000000000000DA
+:10290000005454000000000000000000000000A877
+:10291000540054000000000000000000000000A867
+:10292000545400000000000000000000000000A857
+:10293000545454000000000000000000000000A8F3
+:10294000545454000000000000000000000000A8E3
+:10295000545454000000000000000000000000A8D3
+:10296000545454000000000000000000000000A8C3
+:10297000545454000000000000000000000000A8B3
+:10298000545454000000000000000000000000A8A3
+:10299000545454000000000000000000000000A893
+:1029A000545454000000000000000000000000A883
+:1029B000545454000000000000000000000000A873
+:1029C000545454000000000000000000000000A863
+:1029D000545454000000000000000000000000A853
+:1029E000545454000000000000000000000000A843
+:1029F00054545400000000000000000000000000DB
+:102A0000005400000000000000000000000000A8CA
+:102A1000540000000000000000000000000000A8BA
+:102A2000545400000000000000000000000000A856
+:102A3000545400000000000000000000000000A846
+:102A4000545400000000000000000000000000A836
+:102A5000545400000000000000000000000000A826
+:102A6000545400000000000000000000000000A816
+:102A7000545400000000000000000000000000A806
+:102A8000545400000000000000000000000000A8F6
+:102A9000545400000000000000000000000000A8E6
+:102AA000545400000000000000000000000000A8D6
+:102AB000545400000000000000000000000000A8C6
+:102AC000545400000000000000000000000000A8B6
+:102AD000545400000000000000000000000000A8A6
+:102AE000545400000000000000000000000000A896
+:102AF000545400000000000000000000000000002E
+:102B000000000000000000000000000000000000C5
+:102B1000FCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCF5
+:102B200000000000000000000000000000000000A5
+:102B30000000000000000000000000000000000095
+:102B40000000000000000000000000000000000085
+:102B50000000000000000000000000000000000075
+:102B60000000000000000000000000000000000065
+:102B70000000000000000000000000000000000055
+:102B80000000000000000000000000000000000045
+:102B90000000000000000000000000000000000035
+:102BA0000000000000000000000000000000000025
+:102BB0000000000000000000000000000000000015
+:102BC0000000000000000000000000000000000005
+:102BD00000000000000000000000000000000000F5
+:102BE00000000000000000000000000000000000E5
+:102BF00000000000000000000000000000000000D5
+:102C0000AA56545454545454545454545454A855D7
+:102C1000AA5654545454545454545454545454551B
+:102C2000AA5654545454545454545454545454550B
+:102C3000AA565454545454545454545454545455FB
+:102C4000AA565454545454545454545454545455EB
+:102C5000AA565454545454545454545454545455DB
+:102C6000AA565454545454545454545454545455CB
+:102C7000AA565454545454545454545454545455BB
+:102C8000AA565454545454545454545454545455AB
+:102C9000AA5654545454545454545454545454559B
+:102CA000AA5654545454545454545454545454558B
+:102CB000AA5654545454545454545454545454557B
+:102CC000AA5654545454545454545454545454556B
+:102CD000AA5654545454545454545454545454555B
+:102CE000AA5654545454545454545454545454554B
+:102CF000AA56446868A8A8A8A8A8A8A8A8A8A80030
+:102D00000256545454545454545454545454540126
+:102D10000256545454545454545454545454540116
+:102D20000256545454545454545454545454540106
+:102D300002565454545454545454545454545401F6
+:102D400002565454545454545454545454545401E6
+:102D500002565454545454545454545454545401D6
+:102D600002565454545454545454545454545401C6
+:102D700002565454545454545454545454545401B6
+:102D800002565454545454545454545454545401A6
+:102D90000256545454545454545454545454540196
+:102DA0000256545454545454545454545454540186
+:102DB0000256545454545454545454545454540176
+:102DC0000256545454545454545454545454540166
+:102DD0000256545454545454545454545454540156
+:102DE0000256545454545454545454545454540146
+:102DF000025654545868A8A8A8A8A8A8A8A8A8002B
+:102E0000A856566464A4A4A4A4A4A4A4A4A4A454EA
+:102E1000A85656545454545454545454545454541A
+:102E2000A85656545454545454545454545454540A
+:102E3000A8565654545454545454545454545454FA
+:102E4000A8565654545454545454545454545454EA
+:102E5000A8565654545454545454545454545454DA
+:102E6000A8565654545454545454545454545454CA
+:102E7000A8565654545454545454545454545454BA
+:102E8000A8565654545454545454545454545454AA
+:102E9000A85656545454545454545454545454549A
+:102EA000A85656545454545454545454545454548A
+:102EB000A85656545454545454545454545454547A
+:102EC000A85656545454545454545454545454546A
+:102ED000A85656545454545454545454545454545A
+:102EE000A85656545454545454545454545454544A
+:102EF000A8565654545468A8A8A8A8A8A8A8A800DA
+:102F0000005666A8A8A8A8A8A8A8A8A8A8A8A80025
+:102F10000056565454545454545454545454540015
+:102F20000056565454545454545454545454540005
+:102F300000565654545454545454545454545400F5
+:102F400000565654545454545454545454545400E5
+:102F500000565654545454545454545454545400D5
+:102F600000565654545454545454545454545400C5
+:102F700000565654545454545454545454545400B5
+:102F800000565654545454545454545454545400A5
+:102F90000056565454545454545454545454540095
+:102FA0000056565454545454545454545454540085
+:102FB0000056565454545454545454545454540075
+:102FC0000056565454545454545454545454540065
+:102FD0000056565454545454545454545454A80001
+:102FE0000056565454545454545454545454540045
+:102FF000005656545454545454545454A8A854008D
+:10300000AA56AAAAA8A8A8A8A8A8A8A8A8A8A855DF
+:10301000AAAAAAAAA8A8A8A8A8A8A8A8A8A8A8557B
+:10302000AAAAAAAAA8A8A8A8A8A8A8A8A8A8A8556B
+:10303000AAAAAAAAA8A8A8A8A8A8A8A8A8A8A8555B
+:10304000AAAAAAAAA8A8A8A8A8A8A8A8A8A8A8554B
+:10305000AAAAAAAAA8A8A8A8A8A8A8A8A8A8A8553B
+:10306000AAAAAAAAA8A8A8A8A8A8A8A8A8A8A8552B
+:10307000AAAAAAAAA8A8A8A8A8A8A8A8A8A8A8551B
+:10308000AAAAAAAAA8A8A8A8A8A8A8A8A8A8A8550B
+:10309000AAAAAAAAA8A8A8A8A8A8A8A8A8A8A855FB
+:1030A000AAAAAAAAA8A8A8A8A8A8A8A8A8A8A855EB
+:1030B000AAAA56565454545454545454545454551F
+:1030C000AA56565654545454545454545454545563
+:1030D000AA56565654545454545454545454545553
+:1030E000AA56565654545454545454545454545543
+:1030F000AA56565654545454545454545454545434
+:103100000256AAAAA8A8A8A8A8A8A8A8A8A8A801DA
+:1031100002AAAAAAA8A8A8A8A8A8A8A8A8A8A80176
+:1031200002AAAAAAA8A8A8A8A8A8A8A8A8A8A80166
+:1031300002AAAAAAA8A8A8A8A8A8A8A8A8A8A80156
+:1031400002AAAAAAA8A8A8A8A8A8A8A8A8A8A80146
+:1031500002AAAAAAA8A8A8A8A8A8A8A8A8A8A80136
+:1031600002AAAAAAA8A8A8A8A8A8A8A8A8A8A80126
+:1031700002AAAAAAA8A8A8A8A8A8A8A8A8A8A80116
+:1031800002AAAAAAA8A8A8A8A8A8A8A8A8A8A80106
+:1031900002AAAAAAA8A8A8A8A8A8A8A8A8A8A801F6
+:1031A00002AAAAAAA8A8A8A8A8A8A8A8A8A8A801E6
+:1031B00002AAAAAAA8A8A8A8A8A8A8A8A8A8A801D6
+:1031C00002AAAAAAA8A8A8A8A8A8A8A8A8A8A801C6
+:1031D000025656565454545454545454545454014E
+:1031E000025656565454545454545454545454013E
+:1031F000025656565454545454545454545454002F
+:10320000A856AAAAAAA8A8A8A8A8A8A8A8A8A854DE
+:10321000A8AAAAAAAAA8A8A8A8A8A8A8A8A8A8547A
+:10322000A8AAAAAAAAA8A8A8A8A8A8A8A8A8A8546A
+:10323000A8AAAAAAAAA8A8A8A8A8A8A8A8A8A8545A
+:10324000A8AAAAAAAAA8A8A8A8A8A8A8A8A8A8544A
+:10325000A8AAAAAAAAA8A8A8A8A8A8A8A8A8A8543A
+:10326000A8AAAAAAAAA8A8A8A8A8A8A8A8A8A8542A
+:10327000A8AAAAAAAAA8A8A8A8A8A8A8A8A8A8541A
+:10328000A8AAAAAAAAA8A8A8A8A8A8A8A8A8A8540A
+:10329000A8AAAAAAAAA8A8A8A8A8A8A8A8A8A854FA
+:1032A000A8AAAAAAAAA8A8A8A8A8A8A8A8A8A854EA
+:1032B000A8AAAAAAAAA8A8A8A8A8A8A8A8A8A854DA
+:1032C000A8AAAAAAAAA8A8A8A8A8A8A8A8A8A854CA
+:1032D000A8AAAAAAAAA8A8A8A8A8A8A8A8A8A854BA
+:1032E000A8AAAAAAAAA8A8A8A8A8A8A8A8A8A854AA
+:1032F000A856565656545454545454545454545432
+:1033000000AAAAAAAAA8A8A8A8A8A8A8A8A8A80085
+:1033100000AAAAAAAAA8A8A8A8A8A8A8A8A8A80075
+:1033200000AAAAAAAAA8A8A8A8A8A8A8A8A8A80065
+:1033300000AAAAAAAAA8A8A8A8A8A8A8A8A8A80055
+:1033400000AAAAAAAAA8A8A8A8A8A8A8A8A8A80045
+:1033500000AAAAAAAAA8A8A8A8A8A8A8A8A8A80035
+:1033600000AAAAAAAAA8A8A8A8A8A8A8A8A8A80025
+:1033700000AAAAAAAAA8A8A8A8A8A8A8A8A8A80015
+:1033800000AAAAAAAAA8A8A8A8A8A8A8A8A8A80005
+:1033900000AAAAAAAAA8A8A8A8A8A8A8A8A8A800F5
+:1033A00000AAAAAAAAA8A8A8A8A8A8A8A8A8A800E5
+:1033B00000AAAAAAAAA8A8A8A8A8A8A8A8A8A800D5
+:1033C00000AAAAAAAAA8A8A8A8A8A8A8A8A8A800C5
+:1033D00000AAAAAAAAA8A8A8A8A8A8A8A8A8A800B5
+:1033E00000AAAAAAAAA8A8A8A8A8A8A8A8A8A800A5
+:1033F000005656565654545454545454545454002D
+:10340000AAAA02020202000000000000000000550B
+:10341000AAAAAA0202020000000000000000005553
+:1034200000AAAAAA02020200000000000000000098
+:1034300040AAAAAA02020200000000000000000048
+:1034400040AAAAAA02020200000000000000000038
+:1034500040AAAAAA02020200000000000000000028
+:1034600040AAAAAA02020200000000000000000018
+:1034700040AAAAAA02020200000000000000000008
+:1034800040AAAAAA020202000000000000000000F8
+:1034900040AAAAAA020202000000000000000000E8
+:1034A00040AAAAAA020202000000000000000000D8
+:1034B00040AAAAAA020202000000000000000000C8
+:1034C00040AAAAAA020202000000000000000000B8
+:1034D00040AAAAAA020202000000000000000000A8
+:1034E00040AAAAAA02020200000000000000000098
+:1034F00040AAAAAA02020200000000000000000088
+:1035000040AAAAAA02020200000000000000000077
+:1035100054AAAAAA02020200000000000000000053
+:1035200000AAAAAA02020200000000000000000097
+:1035300040AAAAAA02020200000000000000000047
+:1035400040AAAAAA02020200000000000000000037
+:1035500040AAAAAA02020200000000000000000027
+:1035600040AAAAAA02020200000000000000000017
+:1035700040AAAAAA02020200000000000000000007
+:1035800040AAAAAA020202000000000000000000F7
+:1035900040AAAAAA020202000000000000000000E7
+:1035A00040AAAAAA020202000000000000000000D7
+:1035B00040AAAAAA020202000000000000000000C7
+:1035C00040AAAAAA020202000000000000000000B7
+:1035D00040AAAAAA020202000000000000000000A7
+:1035E00040AAAAAA02020200000000000000000097
+:1035F00040AAAAAA02020200000000000000000087
+:1036000040AAAAAA02020200000000000000000076
+:1036100054AAAAAA02020200000000000000000052
+:10362000AAAAAAAA02020200000000000000005597
+:103630002AAAAAAA02020200000000000000005507
+:103640002AAAAAAA020202000000000000000055F7
+:103650002AAAAAAA020202000000000000000055E7
+:103660002AAAAAAA020202000000000000000055D7
+:103670002AAAAAAA020202000000000000000055C7
+:103680002AAAAAAA020202000000000000000055B7
+:103690002AAAAAAA020202000000000000000055A7
+:1036A0002AAAAAAA02020200000000000000005597
+:1036B0002AAAAAAA02020200000000000000005587
+:1036C0002AAAAAAA02020200000000000000005577
+:1036D0002AAAAAAA02020200000000000000005567
+:1036E0002AAAAAAA02020200000000000000005557
+:1036F0002AAAAAAA02020200000000000000005547
+:103700002AAAAAAA02020200000000000000005536
+:1037100002AAAAAA0202020000000000000000554E
+:10372000AAAAAAAA02020202000000000000005594
+:103730002AAAAAAA02020200000000000000005506
+:103740002AAAAAAA020202000000000000000055F6
+:103750002AAAAAAA020202000000000000000055E6
+:103760002AAAAAAA020202000000000000000055D6
+:103770002AAAAAAA020202000000000000000055C6
+:103780002AAAAAAA020202000000000000000055B6
+:103790002AAAAAAA020202000000000000000055A6
+:1037A0002AAAAAAA02020200000000000000005596
+:1037B0002AAAAAAA02020200000000000000005586
+:1037C0002AAAAAAA02020200000000000000005576
+:1037D0002AAAAAAA02020200000000000000005566
+:1037E0002AAAAAAA02020200000000000000005556
+:1037F0002AAAAAAA02020200000000000000005546
+:103800002AAAAAAA02020200000000000000005535
+:1038100002AAAAAA0202020000000000000000554D
+:1038200000AAAAAAAA0202020200000000000000E8
+:1038300040AAAAAAAA02020200000000000000009A
+:1038400040AAAAAAAA02020200000000000000008A
+:1038500040AAAAAAAA02020200000000000000007A
+:1038600040AAAAAAAA02020200000000000000006A
+:1038700040AAAAAAAA02020200000000000000005A
+:1038800040AAAAAAAA02020200000000000000004A
+:1038900040AAAAAAAA02020200000000000000003A
+:1038A00040AAAAAAAA02020200000000000000002A
+:1038B00040AAAAAAAA02020200000000000000001A
+:1038C00040AAAAAAAA02020200000000000000000A
+:1038D00040AAAAAAAA0202020000000000000000FA
+:1038E00040AAAAAAAA0202020000000000000000EA
+:1038F00040AAAAAAAA0202020000000000000000DA
+:1039000040AAAAAAAA0202020000000000000000C9
+:1039100055AAAAAAAA0202020000000000000000A4
+:1039200000AAAAAAAA0202020202000000000000E5
+:1039300040AAAAAAAA020202020000000000000097
+:1039400040AAAAAAAA020202020000000000000087
+:1039500040AAAAAAAA020202020000000000000077
+:1039600040AAAAAAAA020202020000000000000067
+:1039700040AAAAAAAA020202020000000000000057
+:1039800040AAAAAAAA020202020000000000000047
+:1039900040AAAAAAAA020202020000000000000037
+:1039A00040AAAAAAAA020202020000000000000027
+:1039B00040AAAAAAAA020202020000000000000017
+:1039C00040AAAAAAAA020202020000000000000007
+:1039D00040AAAAAAAA0202020200000000000000F7
+:1039E00040AAAAAAAA0202020200000000000000E7
+:1039F00040AAAAAAAA0202020200000000000000D7
+:103A000040AAAAAAAA0202020200000000000000C6
+:103A100055AAAAAAAA0202020200000000000000A1
+:103A2000AAAAAAAAAAAA020202020200000000553B
+:103A30002AAAAAAAAAAA02020202000000000055AD
+:103A40002AAAAAAAAAAA020202020000000000559D
+:103A50002AAAAAAAAAAA020202020000000000558D
+:103A60002AAAAAAAAAAA020202020000000000557D
+:103A70002AAAAAAAAAAA020202020000000000556D
+:103A80002AAAAAAAAAAA020202020000000000555D
+:103A90002AAAAAAAAAAA020202020000000000554D
+:103AA0002AAAAAAAAAAA020202020000000000553D
+:103AB0002AAAAAAAAAAA020202020000000000552D
+:103AC0002AAAAAAAAAAA020202020000000000551D
+:103AD0002AAAAAAAAAAA020202020000000000550D
+:103AE0002AAAAAAAAAAA02020202000000000055FD
+:103AF0002AAAAAAAAAAA02020202000000000055ED
+:103B00002AAAAAAAAAAA02020202000000000055DC
+:103B100000AAAAAAAAAA02020202000000000055F6
+:103B2000AAAAAAAAAAAA0202020202020000005538
+:103B30002AAAAAAAAAAA02020202020000000055AA
+:103B40002AAAAAAAAAAA020202020200000000559A
+:103B50002AAAAAAAAAAA020202020200000000558A
+:103B60002AAAAAAAAAAA020202020200000000557A
+:103B70002AAAAAAAAAAA020202020200000000556A
+:103B80002AAAAAAAAAAA020202020200000000555A
+:103B90002AAAAAAAAAAA020202020200000000554A
+:103BA0002AAAAAAAAAAA020202020200000000553A
+:103BB0002AAAAAAAAAAA020202020200000000552A
+:103BC0002AAAAAAAAAAA020202020200000000551A
+:103BD0002AAAAAAAAAAA020202020200000000550A
+:103BE0002AAAAAAAAAAA02020202020000000055FA
+:103BF0002AAAAAAAAAAA02020202020000000055EA
+:103C00002AAAAAAAAAAA02020202020000000055D9
+:103C100000AAAAAAAAAA02020202020000000055F3
+:103C200000AAAAAAAAAAAA0202020202020000008C
+:103C300040AAAAAAAAAAAA0202020202000000003E
+:103C400040AAAAAAAAAAAA0202020202000000002E
+:103C500040AAAAAAAAAAAA0202020202000000001E
+:103C600040AAAAAAAAAAAA0202020202000000000E
+:103C700040AAAAAAAAAAAA020202020200000000FE
+:103C800040AAAAAAAAAAAA020202020200000000EE
+:103C900040AAAAAAAAAAAA020202020200000000DE
+:103CA00040AAAAAAAAAAAA020202020200000000CE
+:103CB00040AAAAAAAAAAAA020202020200000000BE
+:103CC00040AAAAAAAAAAAA020202020200000000AE
+:103CD00040AAAAAAAAAAAA0202020202000000009E
+:103CE00040AAAAAAAAAAAA0202020202000000008E
+:103CF00040AAAAAAAAAAAA0202020202000000007E
+:103D000040AAAAAAAAAAAA0202020202000000006D
+:103D100055AAAAAAAAAAAA02020202020000000048
+:103D200000AAAAAAAAAAAAAA0202020202020000E1
+:103D300040AAAAAAAAAAAAAA020202020202000091
+:103D400040AAAAAAAAAAAAAA020202020202000081
+:103D500040AAAAAAAAAAAAAA020202020202000071
+:103D600040AAAAAAAAAAAAAA020202020202000061
+:103D700040AAAAAAAAAAAAAA020202020202000051
+:103D800040AAAAAAAAAAAAAA020202020202000041
+:103D900040AAAAAAAAAAAAAA020202020202000031
+:103DA00040AAAAAAAAAAAAAA020202020202000021
+:103DB00040AAAAAAAAAAAAAA020202020202000011
+:103DC00040AAAAAAAAAAAAAA020202020202000001
+:103DD00040AAAAAAAAAAAAAA0202020202020000F1
+:103DE00040AAAAAAAAAAAAAA0202020202020000E1
+:103DF00040AAAAAAAAAAAAAA0202020202020000D1
+:103E000040AAAAAAAAAAAAAA0202020202020000C0
+:103E100055AAAAAAAAAAAAAA02020202020200009B
+:103E2000AAA9A9A9A9A9A9A9A90101010101015545
+:103E30002AA9A9A9A9A9A9A9A901010101010155B5
+:103E40002AA9A9A9A9A9A9A9A901010101010155A5
+:103E50002AA9A9A9A9A9A9A9A90101010101015595
+:103E60002AA9A9A9A9A9A9A9A90101010101015585
+:103E70002AA9A9A9A9A9A9A9A90101010101015575
+:103E80002AA9A9A9A9A9A9A9A90101010101015565
+:103E90002AA9A9A9A9A9A9A9A90101010101015555
+:103EA0002AA9A9A9A9A9A9A9A90101010101015545
+:103EB0002AA9A9A9A9A9A9A9A90101010101015535
+:103EC0002AA9A9A9A9A9A9A9A90101010101015525
+:103ED0002AA9A9A9A9A9A9A9A90101010101015515
+:103EE0002AA9A9A9A9A9A9A9A90101010101015505
+:103EF0002AA9A9A9A9A9A9A9A901010101010155F5
+:103F00002AA9A9A9A9A9A9A9A901010101010155E4
+:103F100000A9A9A9A9A9A9A9A901010101010155FE
+:103F2000A8A9A9A9A9A9A9A9A9A90101010101549F
+:103F300028A9A9A9A9A9A9A9A9A90101010101540F
+:103F400028A9A9A9A9A9A9A9A9A9010101010154FF
+:103F500028A9A9A9A9A9A9A9A9A9010101010154EF
+:103F600028A9A9A9A9A9A9A9A9A9010101010154DF
+:103F700028A9A9A9A9A9A9A9A9A9010101010154CF
+:103F800028A9A9A9A9A9A9A9A9A9010101010154BF
+:103F900028A9A9A9A9A9A9A9A9A9010101010154AF
+:103FA00028A9A9A9A9A9A9A9A9A90101010101549F
+:103FB00028A9A9A9A9A9A9A9A9A90101010101548F
+:103FC00028A9A9A9A9A9A9A9A9A90101010101547F
+:103FD00028A9A9A9A9A9A9A9A9A90101010101546F
+:103FE00028A9A9A9A9A9A9A9A9A90101010101545F
+:103FF00028A9A9A9A9A9A9A9A9A90101010101544F
+:1040000028A9A9A9A9A9A9A9A9A90101010101543E
+:1040100001A9A9A9A9A9A9A9A9A901010101015455
+:1040200056A9A9A9A9A9A9A9A9A901010101010143
+:1040300056A9A9A9A9A9A9A9A9A901010101010133
+:1040400056A9A9A9A9A9A9A9A9A901010101010123
+:1040500056A9A9A9A9A9A9A9A9A901010101010113
+:1040600056A9A9A9A9A9A9A9A9A901010101010103
+:1040700056A9A9A9A9A9A9A9A9A9010101010101F3
+:1040800056A9A9A9A9A9A9A9A9A9010101010101E3
+:1040900056A9A9A9A9A9A9A9A9A9010101010101D3
+:1040A00056A9A9A9A9A9A9A9A9A9010101010101C3
+:1040B00056A9A9A9A9A9A9A9A9A9010101010101B3
+:1040C00056A9A9A9A9A9A9A9A9A9010101010101A3
+:1040D00056A9A9A9A9A9A9A9A9A901010101010193
+:1040E00056A9A9A9A9A9A9A9A9A901010101010183
+:1040F00056A9A9A9A9A9A9A9A9A901010101010173
+:1041000056A9A9A9A9A9A9A9A9A901010101010162
+:1041100054A9A9A9A9A9A9A9A9A901010101010154
+:1041200055A9A9A9A9A9A9A9A9A9A901010101009C
+:1041300000A9A9A9A9A9A9A9A9A9A9A901010155E4
+:1041400001A9A9A9A9A9A9A9A9A9A9A9A90101542C
+:1041500001A9A9A9A9A9A9A9A9A9A9A9A90101541C
+:1041600001A9A9A9A9A9A9A9A9A9A9A9A90101540C
+:1041700001A9A9A9A9A9A9A9A9A9A9A9A9010154FC
+:1041800001A9A9A9A9A9A9A9A9A9A9A9A9010154EC
+:1041900001A9A9A9A9A9A9A9A9A9A9A9A9010154DC
+:1041A00001A9A9A9A9A9A9A9A9A9A9A9A9010154CC
+:1041B00001A9A9A9A9A9A9A9A9A9A9A9A9010154BC
+:1041C00001A9A9A9A9A9A9A9A9A9A9A9A9010154AC
+:1041D00001A9A9A9A9A9A9A9A9A9A9A9A90101549C
+:1041E00001A9A9A9A9A9A9A9A9A9A9A9A90101548C
+:1041F00001A9A9A9A9A9A9A9A9A9A9A9A90101547C
+:1042000001A9A9A9A9A9A9A9A9A9A9A9A90101546B
+:1042100001A9A9A9A9A9A9A9A9A9A9A9A90101545B
+:1042200001A9A9A9A9A9A9A9A9A9A9A9A90101544B
+:1042300001A9A9A9A9A9A9A9A9A9A9A9A901015639
+:1042400054A9A9A9A9A9A9A9A9A9A9A9A9A9010183
+:1042500054A9A9A9A9A9A9A9A9A9A9A9A9A9010173
+:1042600054A9A9A9A9A9A9A9A9A9A9A9A9A9010163
+:1042700054A9A9A9A9A9A9A9A9A9A9A9A9A9010153
+:1042800054A9A9A9A9A9A9A9A9A9A9A9A9A9010143
+:1042900054A9A9A9A9A9A9A9A9A9A9A9A9A9010133
+:1042A00054A9A9A9A9A9A9A9A9A9A9A9A9A9010123
+:1042B00054A9A9A9A9A9A9A9A9A9A9A9A9A9010113
+:1042C00054A9A9A9A9A9A9A9A9A9A9A9A9A9010103
+:1042D00054A9A9A9A9A9A9A9A9A9A9A9A9A90101F3
+:1042E00054A9A9A9A9A9A9A9A9A9A9A9A9A90101E3
+:1042F00054A9A9A9A9A9A9A9A9A9A9A9A9A90101D3
+:1043000054A9A9A9A9A9A9A9A9A9A9A9A9A90101C2
+:1043100054A9A9A9A9A9A9A9A9A9A9A9A9A90101B2
+:1043200054A9A9A9A9A9A9A9A9A9A9A9A9A90101A2
+:1043300054A9A9A9A9A9A9A9A9A9A9A9A9A9010291
+:10434000015555555656565655555555555555546E
+:104350000155555555555555555555555555555462
+:104360000155555555555555555555555555555452
+:104370000155555555555555555555555555555442
+:104380000155555555555555555555555555555432
+:104390000155555555555555555555555555555422
+:1043A0000155555555555555555555555555555412
+:1043B0000155555555555555555555555555555402
+:1043C00001555555555555555555555555555554F2
+:1043D00001555555555555555555555555555554E2
+:1043E00001555555555555555555555555555554D2
+:1043F00001555555555555555555555555555554C2
+:1044000001555555555555555555555555555554B1
+:1044100001555555555555555555555555555554A1
+:104420000155555555555555555555555555555491
+:10443000015555555555555555555555555555567F
+:104440005455555656565656565555555555555616
+:10445000545555555555555555555555555555560C
+:1044600054555555555555555555555555555556FC
+:1044700054555555555555555555555555555556EC
+:1044800054555555555555555555555555555556DC
+:1044900054555555555555555555555555555556CC
+:1044A00054555555555555555555555555555556BC
+:1044B00054555555555555555555555555555556AC
+:1044C000545555555555555555555555555555569C
+:1044D000545555555555555555555555555555568C
+:1044E000545555555555555555555555555555567C
+:1044F000545555555555555555555555555555566C
+:10450000545555555555555555555555555555565B
+:10451000545555555555555555555555555555564B
+:10452000545555555555555555555555555555563B
+:10453000545555555555555555555555555555542D
+:10454000015555565656565656555656555555AA12
+:10455000015555555656565655555555555555AA06
+:10456000015555555656565655555555555555AAF6
+:10457000015555555656565655555555555555AAE6
+:10458000015555555656565655555555555555AAD6
+:10459000015555555656565655555555555555AAC6
+:1045A000015555555656565655555555555555AAB6
+:1045B000015555555656565655555555555555AAA6
+:1045C000015555555656565655555555555555AA96
+:1045D000015555555656565655555555555555AA86
+:1045E000015555555656565655555555555555AA76
+:1045F000015555555656565655555555555555AA66
+:10460000015555555656565655555555555555AA55
+:10461000015555555656565655555555555555AA45
+:10462000015555555656565655555555555555AA35
+:10463000015555555555555555555555555555AA29
+:10464000545555565656565656565656565656A8BC
+:10465000545656565656565656565656565656A8AA
+:10466000545656565656565656565656565656A89A
+:10467000545656565656565656565656565656A88A
+:10468000545656565656565656565656565656A87A
+:10469000545656565656565656565656565656A86A
+:1046A000545656565656565656565656565656A85A
+:1046B000545656565656565656565656565656A84A
+:1046C000545656565656565656565656565656A83A
+:1046D000545656565656565656565656565656A82A
+:1046E000545656565656565656565656565656A81A
+:1046F000545656565656565656565656565656A80A
+:10470000545656565656565656565656565656A8F9
+:10471000545656565656565656565656565656A8E9
+:10472000545656565656565656565656565656A8D9
+:10473000545555565656565654545656565656A8CF
+:1047400001565656565656565656565656565602B2
+:1047500001565656565656565656565656565602A2
+:104760000156565656565656565656565656560292
+:104770000156565656565656565656565656560282
+:104780000156565656565656565656565656560272
+:104790000156565656565656565656565656560262
+:1047A0000156565656565656565656565656560252
+:1047B0000156565656565656565656565656560242
+:1047C0000156565656565656565656565656560232
+:1047D0000156565656565656565656565656560222
+:1047E0000156565656565656565656565656560212
+:1047F0000156565656565656565656565656560202
+:1048000001565656565656565656565656565602F1
+:1048100001565656565656565656565656565602E1
+:1048200001565656565656565656565656565602D1
+:1048300001555456565656565656565656565602C4
+:10484000545656565656565656565656565656A8B8
+:1048500001565656565656565656565656565602A1
+:10486000545656565656565656565656565656A898
+:1048700001AAAAAAAAAAAAAAAAAAAAAAAAAAAA02E9
+:1048800054AAAAAAAAAAAAAAAAAAAAAAAAAAAAA8E0
+:1048900001AAAAAAAAAAAAAAAAAAAAAAAAAAAA02C9
+:1048A00054AAAAAAAAAAAAAAAAAAAAAAAAAAAAA8C0
+:1048B00001AAAAAAAAAAAAAAAAAAAAAAAAAAAA02A9
+:1048C00001AAAAAAAAAAAAAAAAAAAAAAAAAAAA0299
+:1048D00001AAAAAAAAAAAAAAAAAAAAAAAAAAAA0289
+:1048E00001AAAAAAAAAAAAAAAAAAAAAAAAAAAA0279
+:1048F00001AAAAAAAAAAAAAAAAAAAAAAAAAAAA0269
+:1049000001AAAAAAAAAAAAAAAAAAAAAAAAAAAA0258
+:1049100001AAAAAAAAAAAAAAAAAAAAAAAAAAAA0248
+:1049200001AAAAAAAAAAAAAAAAAAAAAAAAAAAA0238
+:1049300001AAAAAAAAAAAAAAAAAAAAAAAAAAAA0228
+:1049400001AAAAAAAAAAAAAAAAAAAAAAAAAAAA0218
+:1049500001AAAAAAAAAAAAAAAAAAAAAAAAAAAA0208
+:1049600001AAAAAAAAAAAAAAAAAAAAAAAAAAAA02F8
+:1049700001AAAAAAAAAAAAAAAAAAAAAAAAAAAA02E8
+:1049800001AAAAAAAAAAAAAAAAAAAAAAAAAAAA02D8
+:1049900001AAAAAAAAAAAAAAAAAAAAAAAAAAAA02C8
+:1049A00001AAAAAAAAAAAAAAAAAAAAAAAAAAAA01B9
+:1049B00054A9A9A9A9A9A9A9A9A9A9A9A9A9A8A8BE
+:1049C00000A9A9A9A9A9A9A9A9A9A9A9A9A8A800AB
+:1049D00055A9A9A9A9A9A9A9A9A9A9A9A8A8A8AA9D
+:1049E0000155555555555555555555545454000276
+:1049F000545555555555555555555454540000A8C2
+:104A0000545555555555555555545454000000A806
+:104A10000155555555555555545454000000000244
+:104A20000155555555555555545454000000000234
+:104A30000155555555555555545454000000000224
+:104A40000155555555555555545454000000000214
+:104A50000155555555555555545454000000000204
+:104A600001555555555555555454540000000002F4
+:104A700001555555555555555454540000000002E4
+:104A800001555555555555555454540000000002D4
+:104A900001555555555555555454540000000002C4
+:104AA00001555555555555555454540000000002B4
+:104AB00001555555555555555454540000000002A4
+:104AC0000155555555555555545454000000000294
+:104AD0000155555555555555545454000000000284
+:104AE0000155555555555555545454000000000274
+:104AF0000155555555555555545454000000000264
+:104B00000155555555555555545454000000000055
+:104B10000155555555555554545400000000000298
+:104B20000155555555555554545400000000000288
+:104B30000155555555555554545400000000000278
+:104B40000155555555555554545400000000000268
+:104B50000155555555555554545400000000000258
+:104B60000155555555555554545400000000000248
+:104B70000155555555555554545400000000000238
+:104B80000155555555555554545400000000000228
+:104B90000155555555555554545400000000000218
+:104BA0000155555555555554545400000000000208
+:104BB00001555555555555545454000000000002F8
+:104BC00001555555555555545454000000000002E8
+:104BD00001555555555555545454000000000002D8
+:104BE00001555555555555545454000000000002C8
+:104BF00001555555555555545454000000000002B8
+:104C000001555555555555545454000000000000A9
+:104C1000545555555555555454540000000000A89E
+:104C2000545555555555555454000000000000A8E2
+:104C30000155555555555454000000000000000220
+:104C40000155555555555454000000000000000210
+:104C50000155555555555454000000000000000200
+:104C600001555555555554540000000000000002F0
+:104C700001555555555554540000000000000002E0
+:104C800001555555555554540000000000000002D0
+:104C900001555555555554540000000000000002C0
+:104CA00001555555555554540000000000000002B0
+:104CB00001555555555554540000000000000002A0
+:104CC0000155555555555454000000000000000290
+:104CD0000155555555555454000000000000000280
+:104CE0000155555555555454000000000000000270
+:104CF0000155555555555454000000000000000260
+:104D0000015555555555545400000000000000024F
+:104D1000015555555555545400000000000000023F
+:104D20000155555555555454000000000000000031
+:104D30000155555555555400000000000000000273
+:104D40000155555555555400000000000000000263
+:104D50000155555555555400000000000000000253
+:104D60000155555555555400000000000000000243
+:104D70000155555555555400000000000000000233
+:104D80000155555555555400000000000000000223
+:104D90000155555555555400000000000000000213
+:104DA0000155555555555400000000000000000203
+:104DB00001555555555554000000000000000002F3
+:104DC00001555555555554000000000000000002E3
+:104DD00001555555555554000000000000000002D3
+:104DE00001555555555554000000000000000002C3
+:104DF00001555555555554000000000000000002B3
+:104E000001555555555554000000000000000002A2
+:104E10000155555555555400000000000000000292
+:104E20000155555555555400000000000000000084
+:104E3000545555555554000000000000000000A8CE
+:104E4000545555555554000000000000000000A8BE
+:104E5000545555555554000000000000000000A8AE
+:104E6000545555555554000000000000000000A89E
+:104E7000545555555554000000000000000000A88E
+:104E8000545555555554000000000000000000A87E
+:104E9000545555555554000000000000000000A86E
+:104EA000545555555554000000000000000000A85E
+:104EB000545555555554000000000000000000A84E
+:104EC000545555555554000000000000000000A83E
+:104ED000545555555554000000000000000000A82E
+:104EE000545555555554000000000000000000A81E
+:104EF000545555555554000000000000000000A80E
+:104F0000545555555554000000000000000000A8FD
+:104F1000545555555554000000000000000000A8ED
+:104F20005455555555540000000000000000000085
+:104F3000545555555554000000000000000000A8CD
+:104F4000545555555554000000000000000000A8BD
+:104F5000545555555554000000000000000000A8AD
+:104F6000545555555554000000000000000000A89D
+:104F7000545555555554000000000000000000A88D
+:104F8000545555555554000000000000000000A87D
+:104F9000545555555554000000000000000000A86D
+:104FA000545555555554000000000000000000A85D
+:104FB000545555555554000000000000000000A84D
+:104FC000545555555554000000000000000000A83D
+:104FD000545555555554000000000000000000A82D
+:104FE000545555555554000000000000000000A81D
+:104FF000545555555554000000000000000000A80D
+:10500000545555555554000000000000000000A8FC
+:10501000545555555554000000000000000000A8EC
+:105020005455555555540000000000000000000084
+:10503000015555555400000000000000000000011B
+:10504000015555555400000000000000000000010B
+:1050500001555555540000000000000000000001FB
+:1050600001555555540000000000000000000001EB
+:1050700001555555540000000000000000000001DB
+:1050800001555555540000000000000000000001CB
+:1050900001555555540000000000000000000001BB
+:1050A00001555555540000000000000000000001AB
+:1050B000015555555400000000000000000000019B
+:1050C000015555555400000000000000000000018B
+:1050D000015555555400000000000000000000017B
+:1050E000015555555400000000000000000000016B
+:1050F000015555555400000000000000000000015B
+:10510000015555555400000000000000000000014A
+:10511000015555555400000000000000000000013A
+:10512000015555555400000000000000000000002B
+:10513000015555555400000000000000000000011A
+:10514000015555555400000000000000000000010A
+:1051500001555555540000000000000000000001FA
+:1051600001555555540000000000000000000001EA
+:1051700001555555540000000000000000000001DA
+:1051800001555555540000000000000000000001CA
+:1051900001555555540000000000000000000001BA
+:1051A00001555555540000000000000000000001AA
+:1051B000015555555400000000000000000000019A
+:1051C000015555555400000000000000000000018A
+:1051D000015555555400000000000000000000017A
+:1051E000015555555400000000000000000000016A
+:1051F000015555555400000000000000000000015A
+:105200000155555554000000000000000000000149
+:105210000155555554000000000000000000000139
+:10522000015555555400000000000000000000002A
+:10523000545555540000000000000000000000A874
+:10524000545555540000000000000000000000A864
+:10525000545555540000000000000000000000A854
+:10526000545555540000000000000000000000A844
+:10527000545555540000000000000000000000A834
+:10528000545555540000000000000000000000A824
+:10529000545555540000000000000000000000A814
+:1052A000545555540000000000000000000000A804
+:1052B000545555540000000000000000000000A8F4
+:1052C000545555540000000000000000000000A8E4
+:1052D000545555540000000000000000000000A8D4
+:1052E000545555540000000000000000000000A8C4
+:1052F000545555540000000000000000000000A8B4
+:10530000545555540000000000000000000000A8A3
+:10531000545555540000000000000000000000A893
+:10532000545555540000000000000000000000002B
+:10533000545555540000000000000000000000A873
+:10534000545555540000000000000000000000A863
+:10535000545555540000000000000000000000A853
+:10536000545555540000000000000000000000A843
+:10537000545555540000000000000000000000A833
+:10538000545555540000000000000000000000A823
+:10539000545555540000000000000000000000A813
+:1053A000545555540000000000000000000000A803
+:1053B000545555540000000000000000000000A8F3
+:1053C000545555540000000000000000000000A8E3
+:1053D000545555540000000000000000000000A8D3
+:1053E000545555540000000000000000000000A8C3
+:1053F000545555540000000000000000000000A8B3
+:10540000545555540000000000000000000000A8A2
+:10541000545555540000000000000000000000A892
+:10542000545555540000000000000000000000002A
+:10543000015554540000000000000000000000026C
+:10544000015554540000000000000000000000025C
+:10545000015554540000000000000000000000024C
+:10546000015554540000000000000000000000023C
+:10547000015554540000000000000000000000022C
+:10548000015554540000000000000000000000021C
+:10549000015554540000000000000000000000020C
+:1054A00001555454000000000000000000000002FC
+:1054B00001555454000000000000000000000002EC
+:1054C00001555454000000000000000000000002DC
+:1054D00001555454000000000000000000000002CC
+:1054E00001555454000000000000000000000002BC
+:1054F00001555454000000000000000000000002AC
+:10550000015554540000000000000000000000029B
+:10551000015554540000000000000000000000028B
+:10552000015554540000000000000000000000007D
+:10553000015554540000000000000000000000026B
+:10554000015554540000000000000000000000025B
+:10555000015554540000000000000000000000024B
+:10556000015554540000000000000000000000023B
+:10557000015554540000000000000000000000022B
+:10558000015554540000000000000000000000021B
+:10559000015554540000000000000000000000020B
+:1055A00001555454000000000000000000000002FB
+:1055B00001555454000000000000000000000002EB
+:1055C00001555454000000000000000000000002DB
+:1055D00001555454000000000000000000000002CB
+:1055E00001555454000000000000000000000002BB
+:1055F00001555454000000000000000000000002AB
+:10560000015554540000000000000000000000029A
+:10561000015554540000000000000000000000028A
+:10562000015554540000000000000000000000007C
+:10563000545454000000000000000000000000A8C6
+:10564000545454000000000000000000000000A8B6
+:10565000545454000000000000000000000000A8A6
+:10566000545454000000000000000000000000A896
+:10567000545454000000000000000000000000A886
+:10568000545454000000000000000000000000A876
+:10569000545454000000000000000000000000A866
+:1056A000545454000000000000000000000000A856
+:1056B000545454000000000000000000000000A846
+:1056C000545454000000000000000000000000A836
+:1056D000545454000000000000000000000000A826
+:1056E000545454000000000000000000000000A816
+:1056F000545454000000000000000000000000A806
+:10570000545454000000000000000000000000A8F5
+:10571000545454000000000000000000000000A8E5
+:10572000545454000000000000000000000000007D
+:10573000545400000000000000000000000000A819
+:10574000545400000000000000000000000000A809
+:10575000545400000000000000000000000000A8F9
+:10576000545400000000000000000000000000A8E9
+:10577000545400000000000000000000000000A8D9
+:10578000545400000000000000000000000000A8C9
+:10579000545400000000000000000000000000A8B9
+:1057A000545400000000000000000000000000A8A9
+:1057B000545400000000000000000000000000A899
+:1057C000545400000000000000000000000000A889
+:1057D000545400000000000000000000000000A879
+:1057E000545400000000000000000000000000A869
+:1057F000545400000000000000000000000000A859
+:10580000545400000000000000000000000000A848
+:10581000545400000000000000000000000000A838
+:1058200054540000000000000000000000000000D0
+:105830000000000000000000000000000000000068
+:10584000FCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFC98
+:105850000000000000000000000000000000000048
+:105860000000000000000000000000000000000038
+:105870000000000000000000000000000000000028
+:105880000000000000000000000000000000000018
+:105890000000000000000000000000000000000008
+:1058A00000000000000000000000000000000000F8
+:1058B00000000000000000000000000000000000E8
+:1058C00000000000000000000000000000000000D8
+:1058D00000000000000000000000000000000000C8
+:1058E00000000000000000000000000000000000B8
+:1058F00000000000000000000000000000000000A8
+:10590000AA56545454545454545454545454A855AA
+:10591000AA565454545454545454545454545455EE
+:10592000AA565454545454545454545454545455DE
+:10593000AA565454545454545454545454545455CE
+:10594000AA565454545454545454545454545455BE
+:10595000AA565454545454545454545454545455AE
+:10596000AA5654545454545454545454545454559E
+:10597000AA5654545454545454545454545454558E
+:10598000AA5654545454545454545454545454557E
+:10599000AA5654545454545454545454545454556E
+:1059A000AA5654545454545454545454545454555E
+:1059B000AA5654545454545454545454545454554E
+:1059C000AA5654545454545454545454545454553E
+:1059D000AA5654545454545454545454545454552E
+:1059E000AA5654545454545454545454545454551E
+:1059F000AA56446868A8A8A8A8A8A8A8A8A8A80003
+:105A000002565454545454545454545454545401F9
+:105A100002565454545454545454545454545401E9
+:105A200002565454545454545454545454545401D9
+:105A300002565454545454545454545454545401C9
+:105A400002565454545454545454545454545401B9
+:105A500002565454545454545454545454545401A9
+:105A60000256545454545454545454545454540199
+:105A70000256545454545454545454545454540189
+:105A80000256545454545454545454545454540179
+:105A90000256545454545454545454545454540169
+:105AA0000256545454545454545454545454540159
+:105AB0000256545454545454545454545454540149
+:105AC0000256545454545454545454545454540139
+:105AD0000256545454545454545454545454540129
+:105AE0000256545454545454545454545454540119
+:105AF000025654545868A8A8A8A8A8A8A8A8A800FE
+:105B0000A856566464A4A4A4A4A4A4A4A4A4A454BD
+:105B1000A8565654545454545454545454545454ED
+:105B2000A8565654545454545454545454545454DD
+:105B3000A8565654545454545454545454545454CD
+:105B4000A8565654545454545454545454545454BD
+:105B5000A8565654545454545454545454545454AD
+:105B6000A85656545454545454545454545454549D
+:105B7000A85656545454545454545454545454548D
+:105B8000A85656545454545454545454545454547D
+:105B9000A85656545454545454545454545454546D
+:105BA000A85656545454545454545454545454545D
+:105BB000A85656545454545454545454545454544D
+:105BC000A85656545454545454545454545454543D
+:105BD000A85656545454545454545454545454542D
+:105BE000A85656545454545454545454545454541D
+:105BF000A8565654545468A8A8A8A8A8A8A8A800AD
+:105C0000005666A8A8A8A8A8A8A8A8A8A8A8A800F8
+:105C100000565654545454545454545454545400E8
+:105C200000565654545454545454545454545400D8
+:105C300000565654545454545454545454545400C8
+:105C400000565654545454545454545454545400B8
+:105C500000565654545454545454545454545400A8
+:105C60000056565454545454545454545454540098
+:105C70000056565454545454545454545454540088
+:105C80000056565454545454545454545454540078
+:105C90000056565454545454545454545454540068
+:105CA0000056565454545454545454545454540058
+:105CB0000056565454545454545454545454540048
+:105CC0000056565454545454545454545454540038
+:105CD0000056565454545454545454545454A800D4
+:105CE0000056565454545454545454545454540018
+:105CF000005656545454545454545454A8A8540060
+:105D0000AA56AAAAA8A8A8A8A8A8A8A8A8A8A855B2
+:105D1000AAAAAAAAA8A8A8A8A8A8A8A8A8A8A8554E
+:105D2000AAAAAAAAA8A8A8A8A8A8A8A8A8A8A8553E
+:105D3000AAAAAAAAA8A8A8A8A8A8A8A8A8A8A8552E
+:105D4000AAAAAAAAA8A8A8A8A8A8A8A8A8A8A8551E
+:105D5000AAAAAAAAA8A8A8A8A8A8A8A8A8A8A8550E
+:105D6000AAAAAAAAA8A8A8A8A8A8A8A8A8A8A855FE
+:105D7000AAAAAAAAA8A8A8A8A8A8A8A8A8A8A855EE
+:105D8000AAAAAAAAA8A8A8A8A8A8A8A8A8A8A855DE
+:105D9000AAAAAAAAA8A8A8A8A8A8A8A8A8A8A855CE
+:105DA000AAAAAAAAA8A8A8A8A8A8A8A8A8A8A855BE
+:105DB000AAAA5656545454545454545454545455F2
+:105DC000AA56565654545454545454545454545536
+:105DD000AA56565654545454545454545454545526
+:105DE000AA56565654545454545454545454545516
+:105DF000AA56565654545454545454545454545407
+:105E00000256AAAAA8A8A8A8A8A8A8A8A8A8A801AD
+:105E100002AAAAAAA8A8A8A8A8A8A8A8A8A8A80149
+:105E200002AAAAAAA8A8A8A8A8A8A8A8A8A8A80139
+:105E300002AAAAAAA8A8A8A8A8A8A8A8A8A8A80129
+:105E400002AAAAAAA8A8A8A8A8A8A8A8A8A8A80119
+:105E500002AAAAAAA8A8A8A8A8A8A8A8A8A8A80109
+:105E600002AAAAAAA8A8A8A8A8A8A8A8A8A8A801F9
+:105E700002AAAAAAA8A8A8A8A8A8A8A8A8A8A801E9
+:105E800002AAAAAAA8A8A8A8A8A8A8A8A8A8A801D9
+:105E900002AAAAAAA8A8A8A8A8A8A8A8A8A8A801C9
+:105EA00002AAAAAAA8A8A8A8A8A8A8A8A8A8A801B9
+:105EB00002AAAAAAA8A8A8A8A8A8A8A8A8A8A801A9
+:105EC00002AAAAAAA8A8A8A8A8A8A8A8A8A8A80199
+:105ED0000256565654545454545454545454540121
+:105EE0000256565654545454545454545454540111
+:105EF0000256565654545454545454545454540002
+:105F0000A856AAAAAAA8A8A8A8A8A8A8A8A8A854B1
+:105F1000A8AAAAAAAAA8A8A8A8A8A8A8A8A8A8544D
+:105F2000A8AAAAAAAAA8A8A8A8A8A8A8A8A8A8543D
+:105F3000A8AAAAAAAAA8A8A8A8A8A8A8A8A8A8542D
+:105F4000A8AAAAAAAAA8A8A8A8A8A8A8A8A8A8541D
+:105F5000A8AAAAAAAAA8A8A8A8A8A8A8A8A8A8540D
+:105F6000A8AAAAAAAAA8A8A8A8A8A8A8A8A8A854FD
+:105F7000A8AAAAAAAAA8A8A8A8A8A8A8A8A8A854ED
+:105F8000A8AAAAAAAAA8A8A8A8A8A8A8A8A8A854DD
+:105F9000A8AAAAAAAAA8A8A8A8A8A8A8A8A8A854CD
+:105FA000A8AAAAAAAAA8A8A8A8A8A8A8A8A8A854BD
+:105FB000A8AAAAAAAAA8A8A8A8A8A8A8A8A8A854AD
+:105FC000A8AAAAAAAAA8A8A8A8A8A8A8A8A8A8549D
+:105FD000A8AAAAAAAAA8A8A8A8A8A8A8A8A8A8548D
+:105FE000A8AAAAAAAAA8A8A8A8A8A8A8A8A8A8547D
+:105FF000A856565656545454545454545454545405
+:1060000000AAAAAAAAA8A8A8A8A8A8A8A8A8A80058
+:1060100000AAAAAAAAA8A8A8A8A8A8A8A8A8A80048
+:1060200000AAAAAAAAA8A8A8A8A8A8A8A8A8A80038
+:1060300000AAAAAAAAA8A8A8A8A8A8A8A8A8A80028
+:1060400000AAAAAAAAA8A8A8A8A8A8A8A8A8A80018
+:1060500000AAAAAAAAA8A8A8A8A8A8A8A8A8A80008
+:1060600000AAAAAAAAA8A8A8A8A8A8A8A8A8A800F8
+:1060700000AAAAAAAAA8A8A8A8A8A8A8A8A8A800E8
+:1060800000AAAAAAAAA8A8A8A8A8A8A8A8A8A800D8
+:1060900000AAAAAAAAA8A8A8A8A8A8A8A8A8A800C8
+:1060A00000AAAAAAAAA8A8A8A8A8A8A8A8A8A800B8
+:1060B00000AAAAAAAAA8A8A8A8A8A8A8A8A8A800A8
+:1060C00000AAAAAAAAA8A8A8A8A8A8A8A8A8A80098
+:1060D00000AAAAAAAAA8A8A8A8A8A8A8A8A8A80088
+:1060E00000AAAAAAAAA8A8A8A8A8A8A8A8A8A80078
+:1060F0000056565656545454545454545454540000
+:10610000AAAA0202020200000000000000000055DE
+:10611000AAAAAA0202020000000000000000005526
+:1061200000AAAAAA0202020000000000000000006B
+:1061300040AAAAAA0202020000000000000000001B
+:1061400040AAAAAA0202020000000000000000000B
+:1061500040AAAAAA020202000000000000000000FB
+:1061600040AAAAAA020202000000000000000000EB
+:1061700040AAAAAA020202000000000000000000DB
+:1061800040AAAAAA020202000000000000000000CB
+:1061900040AAAAAA020202000000000000000000BB
+:1061A00040AAAAAA020202000000000000000000AB
+:1061B00040AAAAAA0202020000000000000000009B
+:1061C00040AAAAAA0202020000000000000000008B
+:1061D00040AAAAAA0202020000000000000000007B
+:1061E00040AAAAAA0202020000000000000000006B
+:1061F00040AAAAAA0202020000000000000000005B
+:1062000040AAAAAA0202020000000000000000004A
+:1062100054AAAAAA02020200000000000000000026
+:1062200000AAAAAA0202020000000000000000006A
+:1062300040AAAAAA0202020000000000000000001A
+:1062400040AAAAAA0202020000000000000000000A
+:1062500040AAAAAA020202000000000000000000FA
+:1062600040AAAAAA020202000000000000000000EA
+:1062700040AAAAAA020202000000000000000000DA
+:1062800040AAAAAA020202000000000000000000CA
+:1062900040AAAAAA020202000000000000000000BA
+:1062A00040AAAAAA020202000000000000000000AA
+:1062B00040AAAAAA0202020000000000000000009A
+:1062C00040AAAAAA0202020000000000000000008A
+:1062D00040AAAAAA0202020000000000000000007A
+:1062E00040AAAAAA0202020000000000000000006A
+:1062F00040AAAAAA0202020000000000000000005A
+:1063000040AAAAAA02020200000000000000000049
+:1063100054AAAAAA02020200000000000000000025
+:10632000AAAAAAAA0202020000000000000000556A
+:106330002AAAAAAA020202000000000000000055DA
+:106340002AAAAAAA020202000000000000000055CA
+:106350002AAAAAAA020202000000000000000055BA
+:106360002AAAAAAA020202000000000000000055AA
+:106370002AAAAAAA0202020000000000000000559A
+:106380002AAAAAAA0202020000000000000000558A
+:106390002AAAAAAA0202020000000000000000557A
+:1063A0002AAAAAAA0202020000000000000000556A
+:1063B0002AAAAAAA0202020000000000000000555A
+:1063C0002AAAAAAA0202020000000000000000554A
+:1063D0002AAAAAAA0202020000000000000000553A
+:1063E0002AAAAAAA0202020000000000000000552A
+:1063F0002AAAAAAA0202020000000000000000551A
+:106400002AAAAAAA02020200000000000000005509
+:1064100002AAAAAA02020200000000000000005521
+:10642000AAAAAAAA02020202000000000000005567
+:106430002AAAAAAA020202000000000000000055D9
+:106440002AAAAAAA020202000000000000000055C9
+:106450002AAAAAAA020202000000000000000055B9
+:106460002AAAAAAA020202000000000000000055A9
+:106470002AAAAAAA02020200000000000000005599
+:106480002AAAAAAA02020200000000000000005589
+:106490002AAAAAAA02020200000000000000005579
+:1064A0002AAAAAAA02020200000000000000005569
+:1064B0002AAAAAAA02020200000000000000005559
+:1064C0002AAAAAAA02020200000000000000005549
+:1064D0002AAAAAAA02020200000000000000005539
+:1064E0002AAAAAAA02020200000000000000005529
+:1064F0002AAAAAAA02020200000000000000005519
+:106500002AAAAAAA02020200000000000000005508
+:1065100002AAAAAA02020200000000000000005520
+:1065200000AAAAAAAA0202020200000000000000BB
+:1065300040AAAAAAAA02020200000000000000006D
+:1065400040AAAAAAAA02020200000000000000005D
+:1065500040AAAAAAAA02020200000000000000004D
+:1065600040AAAAAAAA02020200000000000000003D
+:1065700040AAAAAAAA02020200000000000000002D
+:1065800040AAAAAAAA02020200000000000000001D
+:1065900040AAAAAAAA02020200000000000000000D
+:1065A00040AAAAAAAA0202020000000000000000FD
+:1065B00040AAAAAAAA0202020000000000000000ED
+:1065C00040AAAAAAAA0202020000000000000000DD
+:1065D00040AAAAAAAA0202020000000000000000CD
+:1065E00040AAAAAAAA0202020000000000000000BD
+:1065F00040AAAAAAAA0202020000000000000000AD
+:1066000040AAAAAAAA02020200000000000000009C
+:1066100055AAAAAAAA020202000000000000000077
+:1066200000AAAAAAAA0202020202000000000000B8
+:1066300040AAAAAAAA02020202000000000000006A
+:1066400040AAAAAAAA02020202000000000000005A
+:1066500040AAAAAAAA02020202000000000000004A
+:1066600040AAAAAAAA02020202000000000000003A
+:1066700040AAAAAAAA02020202000000000000002A
+:1066800040AAAAAAAA02020202000000000000001A
+:1066900040AAAAAAAA02020202000000000000000A
+:1066A00040AAAAAAAA0202020200000000000000FA
+:1066B00040AAAAAAAA0202020200000000000000EA
+:1066C00040AAAAAAAA0202020200000000000000DA
+:1066D00040AAAAAAAA0202020200000000000000CA
+:1066E00040AAAAAAAA0202020200000000000000BA
+:1066F00040AAAAAAAA0202020200000000000000AA
+:1067000040AAAAAAAA020202020000000000000099
+:1067100055AAAAAAAA020202020000000000000074
+:10672000AAAAAAAAAAAA020202020200000000550E
+:106730002AAAAAAAAAAA0202020200000000005580
+:106740002AAAAAAAAAAA0202020200000000005570
+:106750002AAAAAAAAAAA0202020200000000005560
+:106760002AAAAAAAAAAA0202020200000000005550
+:106770002AAAAAAAAAAA0202020200000000005540
+:106780002AAAAAAAAAAA0202020200000000005530
+:106790002AAAAAAAAAAA0202020200000000005520
+:1067A0002AAAAAAAAAAA0202020200000000005510
+:1067B0002AAAAAAAAAAA0202020200000000005500
+:1067C0002AAAAAAAAAAA02020202000000000055F0
+:1067D0002AAAAAAAAAAA02020202000000000055E0
+:1067E0002AAAAAAAAAAA02020202000000000055D0
+:1067F0002AAAAAAAAAAA02020202000000000055C0
+:106800002AAAAAAAAAAA02020202000000000055AF
+:1068100000AAAAAAAAAA02020202000000000055C9
+:10682000AAAAAAAAAAAA020202020202000000550B
+:106830002AAAAAAAAAAA020202020200000000557D
+:106840002AAAAAAAAAAA020202020200000000556D
+:106850002AAAAAAAAAAA020202020200000000555D
+:106860002AAAAAAAAAAA020202020200000000554D
+:106870002AAAAAAAAAAA020202020200000000553D
+:106880002AAAAAAAAAAA020202020200000000552D
+:106890002AAAAAAAAAAA020202020200000000551D
+:1068A0002AAAAAAAAAAA020202020200000000550D
+:1068B0002AAAAAAAAAAA02020202020000000055FD
+:1068C0002AAAAAAAAAAA02020202020000000055ED
+:1068D0002AAAAAAAAAAA02020202020000000055DD
+:1068E0002AAAAAAAAAAA02020202020000000055CD
+:1068F0002AAAAAAAAAAA02020202020000000055BD
+:106900002AAAAAAAAAAA02020202020000000055AC
+:1069100000AAAAAAAAAA02020202020000000055C6
+:1069200000AAAAAAAAAAAA0202020202020000005F
+:1069300040AAAAAAAAAAAA02020202020000000011
+:1069400040AAAAAAAAAAAA02020202020000000001
+:1069500040AAAAAAAAAAAA020202020200000000F1
+:1069600040AAAAAAAAAAAA020202020200000000E1
+:1069700040AAAAAAAAAAAA020202020200000000D1
+:1069800040AAAAAAAAAAAA020202020200000000C1
+:1069900040AAAAAAAAAAAA020202020200000000B1
+:1069A00040AAAAAAAAAAAA020202020200000000A1
+:1069B00040AAAAAAAAAAAA02020202020000000091
+:1069C00040AAAAAAAAAAAA02020202020000000081
+:1069D00040AAAAAAAAAAAA02020202020000000071
+:1069E00040AAAAAAAAAAAA02020202020000000061
+:1069F00040AAAAAAAAAAAA02020202020000000051
+:106A000040AAAAAAAAAAAA02020202020000000040
+:106A100055AAAAAAAAAAAA0202020202000000001B
+:106A200000AAAAAAAAAAAAAA0202020202020000B4
+:106A300040AAAAAAAAAAAAAA020202020202000064
+:106A400040AAAAAAAAAAAAAA020202020202000054
+:106A500040AAAAAAAAAAAAAA020202020202000044
+:106A600040AAAAAAAAAAAAAA020202020202000034
+:106A700040AAAAAAAAAAAAAA020202020202000024
+:106A800040AAAAAAAAAAAAAA020202020202000014
+:106A900040AAAAAAAAAAAAAA020202020202000004
+:106AA00040AAAAAAAAAAAAAA0202020202020000F4
+:106AB00040AAAAAAAAAAAAAA0202020202020000E4
+:106AC00040AAAAAAAAAAAAAA0202020202020000D4
+:106AD00040AAAAAAAAAAAAAA0202020202020000C4
+:106AE00040AAAAAAAAAAAAAA0202020202020000B4
+:106AF00040AAAAAAAAAAAAAA0202020202020000A4
+:106B000040AAAAAAAAAAAAAA020202020202000093
+:106B100055AAAAAAAAAAAAAA02020202020200006E
+:106B2000AAA9A9A9A9A9A9A9A90101010101015518
+:106B30002AA9A9A9A9A9A9A9A90101010101015588
+:106B40002AA9A9A9A9A9A9A9A90101010101015578
+:106B50002AA9A9A9A9A9A9A9A90101010101015568
+:106B60002AA9A9A9A9A9A9A9A90101010101015558
+:106B70002AA9A9A9A9A9A9A9A90101010101015548
+:106B80002AA9A9A9A9A9A9A9A90101010101015538
+:106B90002AA9A9A9A9A9A9A9A90101010101015528
+:106BA0002AA9A9A9A9A9A9A9A90101010101015518
+:106BB0002AA9A9A9A9A9A9A9A90101010101015508
+:106BC0002AA9A9A9A9A9A9A9A901010101010155F8
+:106BD0002AA9A9A9A9A9A9A9A901010101010155E8
+:106BE0002AA9A9A9A9A9A9A9A901010101010155D8
+:106BF0002AA9A9A9A9A9A9A9A901010101010155C8
+:106C00002AA9A9A9A9A9A9A9A901010101010155B7
+:106C100000A9A9A9A9A9A9A9A901010101010155D1
+:106C2000A8A9A9A9A9A9A9A9A9A901010101015472
+:106C300028A9A9A9A9A9A9A9A9A9010101010154E2
+:106C400028A9A9A9A9A9A9A9A9A9010101010154D2
+:106C500028A9A9A9A9A9A9A9A9A9010101010154C2
+:106C600028A9A9A9A9A9A9A9A9A9010101010154B2
+:106C700028A9A9A9A9A9A9A9A9A9010101010154A2
+:106C800028A9A9A9A9A9A9A9A9A901010101015492
+:106C900028A9A9A9A9A9A9A9A9A901010101015482
+:106CA00028A9A9A9A9A9A9A9A9A901010101015472
+:106CB00028A9A9A9A9A9A9A9A9A901010101015462
+:106CC00028A9A9A9A9A9A9A9A9A901010101015452
+:106CD00028A9A9A9A9A9A9A9A9A901010101015442
+:106CE00028A9A9A9A9A9A9A9A9A901010101015432
+:106CF00028A9A9A9A9A9A9A9A9A901010101015422
+:106D000028A9A9A9A9A9A9A9A9A901010101015411
+:106D100001A9A9A9A9A9A9A9A9A901010101015428
+:106D200056A9A9A9A9A9A9A9A9A901010101010116
+:106D300056A9A9A9A9A9A9A9A9A901010101010106
+:106D400056A9A9A9A9A9A9A9A9A9010101010101F6
+:106D500056A9A9A9A9A9A9A9A9A9010101010101E6
+:106D600056A9A9A9A9A9A9A9A9A9010101010101D6
+:106D700056A9A9A9A9A9A9A9A9A9010101010101C6
+:106D800056A9A9A9A9A9A9A9A9A9010101010101B6
+:106D900056A9A9A9A9A9A9A9A9A9010101010101A6
+:106DA00056A9A9A9A9A9A9A9A9A901010101010196
+:106DB00056A9A9A9A9A9A9A9A9A901010101010186
+:106DC00056A9A9A9A9A9A9A9A9A901010101010176
+:106DD00056A9A9A9A9A9A9A9A9A901010101010166
+:106DE00056A9A9A9A9A9A9A9A9A901010101010156
+:106DF00056A9A9A9A9A9A9A9A9A901010101010146
+:106E000056A9A9A9A9A9A9A9A9A901010101010135
+:106E100054A9A9A9A9A9A9A9A9A901010101010127
+:106E200055A9A9A9A9A9A9A9A9A9A901010101006F
+:106E300000A9A9A9A9A9A9A9A9A9A9A901010155B7
+:106E400001A9A9A9A9A9A9A9A9A9A9A9A9010154FF
+:106E500001A9A9A9A9A9A9A9A9A9A9A9A9010154EF
+:106E600001A9A9A9A9A9A9A9A9A9A9A9A9010154DF
+:106E700001A9A9A9A9A9A9A9A9A9A9A9A9010154CF
+:106E800001A9A9A9A9A9A9A9A9A9A9A9A9010154BF
+:106E900001A9A9A9A9A9A9A9A9A9A9A9A9010154AF
+:106EA00001A9A9A9A9A9A9A9A9A9A9A9A90101549F
+:106EB00001A9A9A9A9A9A9A9A9A9A9A9A90101548F
+:106EC00001A9A9A9A9A9A9A9A9A9A9A9A90101547F
+:106ED00001A9A9A9A9A9A9A9A9A9A9A9A90101546F
+:106EE00001A9A9A9A9A9A9A9A9A9A9A9A90101545F
+:106EF00001A9A9A9A9A9A9A9A9A9A9A9A90101544F
+:106F000001A9A9A9A9A9A9A9A9A9A9A9A90101543E
+:106F100001A9A9A9A9A9A9A9A9A9A9A9A90101542E
+:106F200001A9A9A9A9A9A9A9A9A9A9A9A90101541E
+:106F300001A9A9A9A9A9A9A9A9A9A9A9A90101560C
+:106F400054A9A9A9A9A9A9A9A9A9A9A9A9A9010156
+:106F500054A9A9A9A9A9A9A9A9A9A9A9A9A9010146
+:106F600054A9A9A9A9A9A9A9A9A9A9A9A9A9010136
+:106F700054A9A9A9A9A9A9A9A9A9A9A9A9A9010126
+:106F800054A9A9A9A9A9A9A9A9A9A9A9A9A9010116
+:106F900054A9A9A9A9A9A9A9A9A9A9A9A9A9010106
+:106FA00054A9A9A9A9A9A9A9A9A9A9A9A9A90101F6
+:106FB00054A9A9A9A9A9A9A9A9A9A9A9A9A90101E6
+:106FC00054A9A9A9A9A9A9A9A9A9A9A9A9A90101D6
+:106FD00054A9A9A9A9A9A9A9A9A9A9A9A9A90101C6
+:106FE00054A9A9A9A9A9A9A9A9A9A9A9A9A90101B6
+:106FF00054A9A9A9A9A9A9A9A9A9A9A9A9A90101A6
+:1070000054A9A9A9A9A9A9A9A9A9A9A9A9A9010195
+:1070100054A9A9A9A9A9A9A9A9A9A9A9A9A9010185
+:1070200054A9A9A9A9A9A9A9A9A9A9A9A9A9010175
+:1070300054A9A9A9A9A9A9A9A9A9A9A9A9A9010264
+:107040000155555556565656555555555555555441
+:107050000155555555555555555555555555555435
+:107060000155555555555555555555555555555425
+:107070000155555555555555555555555555555415
+:107080000155555555555555555555555555555405
+:1070900001555555555555555555555555555554F5
+:1070A00001555555555555555555555555555554E5
+:1070B00001555555555555555555555555555554D5
+:1070C00001555555555555555555555555555554C5
+:1070D00001555555555555555555555555555554B5
+:1070E00001555555555555555555555555555554A5
+:1070F0000155555555555555555555555555555495
+:107100000155555555555555555555555555555484
+:107110000155555555555555555555555555555474
+:107120000155555555555555555555555555555464
+:107130000155555555555555555555555555555652
+:1071400054555556565656565655555555555556E9
+:1071500054555555555555555555555555555556DF
+:1071600054555555555555555555555555555556CF
+:1071700054555555555555555555555555555556BF
+:1071800054555555555555555555555555555556AF
+:10719000545555555555555555555555555555569F
+:1071A000545555555555555555555555555555568F
+:1071B000545555555555555555555555555555567F
+:1071C000545555555555555555555555555555566F
+:1071D000545555555555555555555555555555565F
+:1071E000545555555555555555555555555555564F
+:1071F000545555555555555555555555555555563F
+:10720000545555555555555555555555555555562E
+:10721000545555555555555555555555555555561E
+:10722000545555555555555555555555555555560E
+:107230005455555555555555555555555555555400
+:10724000015555565656565656555656555555AAE5
+:10725000015555555656565655555555555555AAD9
+:10726000015555555656565655555555555555AAC9
+:10727000015555555656565655555555555555AAB9
+:10728000015555555656565655555555555555AAA9
+:10729000015555555656565655555555555555AA99
+:1072A000015555555656565655555555555555AA89
+:1072B000015555555656565655555555555555AA79
+:1072C000015555555656565655555555555555AA69
+:1072D000015555555656565655555555555555AA59
+:1072E000015555555656565655555555555555AA49
+:1072F000015555555656565655555555555555AA39
+:10730000015555555656565655555555555555AA28
+:10731000015555555656565655555555555555AA18
+:10732000015555555656565655555555555555AA08
+:10733000015555555555555555555555555555AAFC
+:10734000545555565656565656565656565656A88F
+:10735000545656565656565656565656565656A87D
+:10736000545656565656565656565656565656A86D
+:10737000545656565656565656565656565656A85D
+:10738000545656565656565656565656565656A84D
+:10739000545656565656565656565656565656A83D
+:1073A000545656565656565656565656565656A82D
+:1073B000545656565656565656565656565656A81D
+:1073C000545656565656565656565656565656A80D
+:1073D000545656565656565656565656565656A8FD
+:1073E000545656565656565656565656565656A8ED
+:1073F000545656565656565656565656565656A8DD
+:10740000545656565656565656565656565656A8CC
+:10741000545656565656565656565656565656A8BC
+:10742000545656565656565656565656565656A8AC
+:10743000545555565656565654545656565656A8A2
+:107440000156565656565656565656565656560285
+:107450000156565656565656565656565656560275
+:107460000156565656565656565656565656560265
+:107470000156565656565656565656565656560255
+:107480000156565656565656565656565656560245
+:107490000156565656565656565656565656560235
+:1074A0000156565656565656565656565656560225
+:1074B0000156565656565656565656565656560215
+:1074C0000156565656565656565656565656560205
+:1074D00001565656565656565656565656565602F5
+:1074E00001565656565656565656565656565602E5
+:1074F00001565656565656565656565656565602D5
+:1075000001565656565656565656565656565602C4
+:1075100001565656565656565656565656565602B4
+:1075200001565656565656565656565656565602A4
+:107530000155545656565656565656565656560297
+:10754000545656565656565656565656565656A88B
+:107550000156565656565656565656565656560274
+:10756000545656565656565656565656565656A86B
+:1075700001AAAAAAAAAAAAAAAAAAAAAAAAAAAA02BC
+:1075800054AAAAAAAAAAAAAAAAAAAAAAAAAAAAA8B3
+:1075900001AAAAAAAAAAAAAAAAAAAAAAAAAAAA029C
+:1075A00054AAAAAAAAAAAAAAAAAAAAAAAAAAAAA893
+:1075B00001AAAAAAAAAAAAAAAAAAAAAAAAAAAA027C
+:1075C00001AAAAAAAAAAAAAAAAAAAAAAAAAAAA026C
+:1075D00001AAAAAAAAAAAAAAAAAAAAAAAAAAAA025C
+:1075E00001AAAAAAAAAAAAAAAAAAAAAAAAAAAA024C
+:1075F00001AAAAAAAAAAAAAAAAAAAAAAAAAAAA023C
+:1076000001AAAAAAAAAAAAAAAAAAAAAAAAAAAA022B
+:1076100001AAAAAAAAAAAAAAAAAAAAAAAAAAAA021B
+:1076200001AAAAAAAAAAAAAAAAAAAAAAAAAAAA020B
+:1076300001AAAAAAAAAAAAAAAAAAAAAAAAAAAA02FB
+:1076400001AAAAAAAAAAAAAAAAAAAAAAAAAAAA02EB
+:1076500001AAAAAAAAAAAAAAAAAAAAAAAAAAAA02DB
+:1076600001AAAAAAAAAAAAAAAAAAAAAAAAAAAA02CB
+:1076700001AAAAAAAAAAAAAAAAAAAAAAAAAAAA02BB
+:1076800001AAAAAAAAAAAAAAAAAAAAAAAAAAAA02AB
+:1076900001AAAAAAAAAAAAAAAAAAAAAAAAAAAA029B
+:1076A00001AAAAAAAAAAAAAAAAAAAAAAAAAAAA018C
+:1076B00054A9A9A9A9A9A9A9A9A9A9A9A9A9A8A891
+:1076C00000A9A9A9A9A9A9A9A9A9A9A9A9A8A8007E
+:1076D00055A9A9A9A9A9A9A9A9A9A9A9A8A8A8AA70
+:1076E0000155555555555555555555545454000249
+:1076F000545555555555555555555454540000A895
+:10770000545555555555555555545454000000A8D9
+:107710000155555555555555545454000000000217
+:107720000155555555555555545454000000000207
+:1077300001555555555555555454540000000002F7
+:1077400001555555555555555454540000000002E7
+:1077500001555555555555555454540000000002D7
+:1077600001555555555555555454540000000002C7
+:1077700001555555555555555454540000000002B7
+:1077800001555555555555555454540000000002A7
+:107790000155555555555555545454000000000297
+:1077A0000155555555555555545454000000000287
+:1077B0000155555555555555545454000000000277
+:1077C0000155555555555555545454000000000267
+:1077D0000155555555555555545454000000000257
+:1077E0000155555555555555545454000000000247
+:1077F0000155555555555555545454000000000237
+:107800000155555555555555545454000000000028
+:10781000015555555555555454540000000000026B
+:10782000015555555555555454540000000000025B
+:10783000015555555555555454540000000000024B
+:10784000015555555555555454540000000000023B
+:10785000015555555555555454540000000000022B
+:10786000015555555555555454540000000000021B
+:10787000015555555555555454540000000000020B
+:1078800001555555555555545454000000000002FB
+:1078900001555555555555545454000000000002EB
+:1078A00001555555555555545454000000000002DB
+:1078B00001555555555555545454000000000002CB
+:1078C00001555555555555545454000000000002BB
+:1078D00001555555555555545454000000000002AB
+:1078E000015555555555555454540000000000029B
+:1078F000015555555555555454540000000000028B
+:10790000015555555555555454540000000000007C
+:10791000545555555555555454540000000000A871
+:10792000545555555555555454000000000000A8B5
+:1079300001555555555554540000000000000002F3
+:1079400001555555555554540000000000000002E3
+:1079500001555555555554540000000000000002D3
+:1079600001555555555554540000000000000002C3
+:1079700001555555555554540000000000000002B3
+:1079800001555555555554540000000000000002A3
+:107990000155555555555454000000000000000293
+:1079A0000155555555555454000000000000000283
+:1079B0000155555555555454000000000000000273
+:1079C0000155555555555454000000000000000263
+:1079D0000155555555555454000000000000000253
+:1079E0000155555555555454000000000000000243
+:1079F0000155555555555454000000000000000233
+:107A00000155555555555454000000000000000222
+:107A10000155555555555454000000000000000212
+:107A20000155555555555454000000000000000004
+:107A30000155555555555400000000000000000246
+:107A40000155555555555400000000000000000236
+:107A50000155555555555400000000000000000226
+:107A60000155555555555400000000000000000216
+:107A70000155555555555400000000000000000206
+:107A800001555555555554000000000000000002F6
+:107A900001555555555554000000000000000002E6
+:107AA00001555555555554000000000000000002D6
+:107AB00001555555555554000000000000000002C6
+:107AC00001555555555554000000000000000002B6
+:107AD00001555555555554000000000000000002A6
+:107AE0000155555555555400000000000000000296
+:107AF0000155555555555400000000000000000286
+:107B00000155555555555400000000000000000275
+:107B10000155555555555400000000000000000265
+:107B20000155555555555400000000000000000057
+:107B3000545555555554000000000000000000A8A1
+:107B4000545555555554000000000000000000A891
+:107B5000545555555554000000000000000000A881
+:107B6000545555555554000000000000000000A871
+:107B7000545555555554000000000000000000A861
+:107B8000545555555554000000000000000000A851
+:107B9000545555555554000000000000000000A841
+:107BA000545555555554000000000000000000A831
+:107BB000545555555554000000000000000000A821
+:107BC000545555555554000000000000000000A811
+:107BD000545555555554000000000000000000A801
+:107BE000545555555554000000000000000000A8F1
+:107BF000545555555554000000000000000000A8E1
+:107C0000545555555554000000000000000000A8D0
+:107C1000545555555554000000000000000000A8C0
+:107C20005455555555540000000000000000000058
+:107C3000545555555554000000000000000000A8A0
+:107C4000545555555554000000000000000000A890
+:107C5000545555555554000000000000000000A880
+:107C6000545555555554000000000000000000A870
+:107C7000545555555554000000000000000000A860
+:107C8000545555555554000000000000000000A850
+:107C9000545555555554000000000000000000A840
+:107CA000545555555554000000000000000000A830
+:107CB000545555555554000000000000000000A820
+:107CC000545555555554000000000000000000A810
+:107CD000545555555554000000000000000000A800
+:107CE000545555555554000000000000000000A8F0
+:107CF000545555555554000000000000000000A8E0
+:107D0000545555555554000000000000000000A8CF
+:107D1000545555555554000000000000000000A8BF
+:107D20005455555555540000000000000000000057
+:107D300001555555540000000000000000000001EE
+:107D400001555555540000000000000000000001DE
+:107D500001555555540000000000000000000001CE
+:107D600001555555540000000000000000000001BE
+:107D700001555555540000000000000000000001AE
+:107D8000015555555400000000000000000000019E
+:107D9000015555555400000000000000000000018E
+:107DA000015555555400000000000000000000017E
+:107DB000015555555400000000000000000000016E
+:107DC000015555555400000000000000000000015E
+:107DD000015555555400000000000000000000014E
+:107DE000015555555400000000000000000000013E
+:107DF000015555555400000000000000000000012E
+:107E0000015555555400000000000000000000011D
+:107E1000015555555400000000000000000000010D
+:107E200001555555540000000000000000000000FE
+:107E300001555555540000000000000000000001ED
+:107E400001555555540000000000000000000001DD
+:107E500001555555540000000000000000000001CD
+:107E600001555555540000000000000000000001BD
+:107E700001555555540000000000000000000001AD
+:107E8000015555555400000000000000000000019D
+:107E9000015555555400000000000000000000018D
+:107EA000015555555400000000000000000000017D
+:107EB000015555555400000000000000000000016D
+:107EC000015555555400000000000000000000015D
+:107ED000015555555400000000000000000000014D
+:107EE000015555555400000000000000000000013D
+:107EF000015555555400000000000000000000012D
+:107F0000015555555400000000000000000000011C
+:107F1000015555555400000000000000000000010C
+:107F200001555555540000000000000000000000FD
+:107F3000545555540000000000000000000000A847
+:107F4000545555540000000000000000000000A837
+:107F5000545555540000000000000000000000A827
+:107F6000545555540000000000000000000000A817
+:107F7000545555540000000000000000000000A807
+:107F8000545555540000000000000000000000A8F7
+:107F9000545555540000000000000000000000A8E7
+:107FA000545555540000000000000000000000A8D7
+:107FB000545555540000000000000000000000A8C7
+:107FC000545555540000000000000000000000A8B7
+:107FD000545555540000000000000000000000A8A7
+:107FE000545555540000000000000000000000A897
+:107FF000545555540000000000000000000000A887
+:10800000545555540000000000000000000000A876
+:10801000545555540000000000000000000000A866
+:1080200054555554000000000000000000000000FE
+:10803000545555540000000000000000000000A846
+:10804000545555540000000000000000000000A836
+:10805000545555540000000000000000000000A826
+:10806000545555540000000000000000000000A816
+:10807000545555540000000000000000000000A806
+:10808000545555540000000000000000000000A8F6
+:10809000545555540000000000000000000000A8E6
+:1080A000545555540000000000000000000000A8D6
+:1080B000545555540000000000000000000000A8C6
+:1080C000545555540000000000000000000000A8B6
+:1080D000545555540000000000000000000000A8A6
+:1080E000545555540000000000000000000000A896
+:1080F000545555540000000000000000000000A886
+:10810000545555540000000000000000000000A875
+:10811000545555540000000000000000000000A865
+:1081200054555554000000000000000000000000FD
+:10813000015554540000000000000000000000023F
+:10814000015554540000000000000000000000022F
+:10815000015554540000000000000000000000021F
+:10816000015554540000000000000000000000020F
+:1081700001555454000000000000000000000002FF
+:1081800001555454000000000000000000000002EF
+:1081900001555454000000000000000000000002DF
+:1081A00001555454000000000000000000000002CF
+:1081B00001555454000000000000000000000002BF
+:1081C00001555454000000000000000000000002AF
+:1081D000015554540000000000000000000000029F
+:1081E000015554540000000000000000000000028F
+:1081F000015554540000000000000000000000027F
+:10820000015554540000000000000000000000026E
+:10821000015554540000000000000000000000025E
+:108220000155545400000000000000000000000050
+:10823000015554540000000000000000000000023E
+:10824000015554540000000000000000000000022E
+:10825000015554540000000000000000000000021E
+:10826000015554540000000000000000000000020E
+:1082700001555454000000000000000000000002FE
+:1082800001555454000000000000000000000002EE
+:1082900001555454000000000000000000000002DE
+:1082A00001555454000000000000000000000002CE
+:1082B00001555454000000000000000000000002BE
+:1082C00001555454000000000000000000000002AE
+:1082D000015554540000000000000000000000029E
+:1082E000015554540000000000000000000000028E
+:1082F000015554540000000000000000000000027E
+:10830000015554540000000000000000000000026D
+:10831000015554540000000000000000000000025D
+:10832000015554540000000000000000000000004F
+:10833000545454000000000000000000000000A899
+:10834000545454000000000000000000000000A889
+:10835000545454000000000000000000000000A879
+:10836000545454000000000000000000000000A869
+:10837000545454000000000000000000000000A859
+:10838000545454000000000000000000000000A849
+:10839000545454000000000000000000000000A839
+:1083A000545454000000000000000000000000A829
+:1083B000545454000000000000000000000000A819
+:1083C000545454000000000000000000000000A809
+:1083D000545454000000000000000000000000A8F9
+:1083E000545454000000000000000000000000A8E9
+:1083F000545454000000000000000000000000A8D9
+:10840000545454000000000000000000000000A8C8
+:10841000545454000000000000000000000000A8B8
+:108420005454540000000000000000000000000050
+:10843000545400000000000000000000000000A8EC
+:10844000545400000000000000000000000000A8DC
+:10845000545400000000000000000000000000A8CC
+:10846000545400000000000000000000000000A8BC
+:10847000545400000000000000000000000000A8AC
+:10848000545400000000000000000000000000A89C
+:10849000545400000000000000000000000000A88C
+:1084A000545400000000000000000000000000A87C
+:1084B000545400000000000000000000000000A86C
+:1084C000545400000000000000000000000000A85C
+:1084D000545400000000000000000000000000A84C
+:1084E000545400000000000000000000000000A83C
+:1084F000545400000000000000000000000000A82C
+:10850000545400000000000000000000000000A81B
+:10851000545400000000000000000000000000A80B
+:1085200054540000000000000000000000000000A3
+:10853000000000000000000000000000000000003B
+:10854000FCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFC6B
+:10855000000000000000000000000000000000001B
+:10856000000000000000000000000000000000000B
+:1085700000000000000000000000000000000000FB
+:1085800000000000000000000000000000000000EB
+:1085900000000000000000000000000000000000DB
+:1085A00000000000000000000000000000000000CB
+:1085B00000000000000000000000000000000000BB
+:1085C00000000000000000000000000000000000AB
+:1085D000000000000000000000000000000000009B
+:1085E000000000000000000000000000000000008B
+:1085F000000000000000000000000000000000007B
+:10860000AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACA
+:10861000AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABA
+:10862000AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+:10863000AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA9A
+:10864000AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8A
+:10865000AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA7A
+:10866000AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA6A
+:10867000AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA5A
+:108680005555555555555555AAAAAAAAAAAAAAAAF2
+:108690005555555555555555AAAAAAAAAAAAAAAAE2
+:1086A0005555555555555555AAAAAAAAAAAAAAAAD2
+:1086B0005555555555555555AAAAAAAAAAAAAAAAC2
+:1086C0005555555555555555AAAAAAAAAAAAAAAAB2
+:1086D0005555555555555555AAAAAAAAAAAAAAAAA2
+:1086E0005555555555555555AAAAAAAAAAAAAAAA92
+:1086F0005555555555555555AAAAAAAAAAAAAAAA82
+:108700000000000000000000000000000000000069
+:108710000000000000000000000000000000000059
+:108720000000000000000000000000000000000049
+:108730000000000000000000000000000000000039
+:108740000000000000000000000000000000000029
+:108750000000000000000000000000000000000019
+:108760000000000000000000000000000000000009
+:1087700000000000000000000000000000000000F9
+:108780005555555555555555000000000000000041
+:108790005555555555555555000000000000000031
+:1087A0005555555555555555000000000000000021
+:1087B0005555555555555555000000000000000011
+:1087C0005555555555555555000000000000000001
+:1087D00055555555555555550000000000000000F1
+:1087E00055555555555555550000000000000000E1
+:1087F00055555555555555550000000000000000D1
+:108800005555555555555555AAAAAAAAAAAAAAAA70
+:108810005555555555555555AAAAAAAAAAAAAAAA60
+:108820005555555555555555AAAAAAAAAAAAAAAA50
+:108830005555555555555555AAAAAAAAAAAAAAAA40
+:108840005555555555555555AAAAAAAAAAAAAAAA30
+:108850005555555555555555AAAAAAAAAAAAAAAA20
+:108860005555555555555555AAAAAAAAAAAAAAAA10
+:108870005555555555555555AAAAAAAAAAAAAAAA00
+:10888000AAAAAAAAAAAAAAAA5555555555555555F0
+:10889000AAAAAAAAAAAAAAAA5555555555555555E0
+:1088A000AAAAAAAAAAAAAAAA5555555555555555D0
+:1088B000AAAAAAAAAAAAAAAA5555555555555555C0
+:1088C000AAAAAAAAAAAAAAAA5555555555555555B0
+:1088D000AAAAAAAAAAAAAAAA5555555555555555A0
+:1088E000AAAAAAAAAAAAAAAA555555555555555590
+:1088F000AAAAAAAAAAAAAAAA555555555555555580
+:108900005555555555555555AAAAAAAAAAAAAAAA6F
+:108910005555555555555555AAAAAAAAAAAAAAAA5F
+:108920005555555555555555AAAAAAAAAAAAAAAA4F
+:108930005555555555555555AAAAAAAAAAAAAAAA3F
+:108940005555555555555555AAAAAAAAAAAAAAAA2F
+:108950005555555555555555AAAAAAAAAAAAAAAA1F
+:108960005555555555555555AAAAAAAAAAAAAAAA0F
+:108970005555555555555555AAAAAAAAAAAAAAAAFF
+:10898000AAAAAAAAAAAAAAAA5555555555555555EF
+:10899000AAAAAAAAAAAAAAAA5555555555555555DF
+:1089A000AAAAAAAAAAAAAAAA5555555555555555CF
+:1089B000AAAAAAAAAAAAAAAA5555555555555555BF
+:1089C000AAAAAAAAAAAAAAAA5555555555555555AF
+:1089D000AAAAAAAAAAAAAAAA55555555555555559F
+:1089E000AAAAAAAAAAAAAAAA55555555555555558F
+:1089F000AAAAAAAAAAAAAAAA55555555555555557F
+:108A00005555555555555555AAAAAAAAAAAAAAAA6E
+:108A10005555555555555555AAAAAAAAAAAAAAAA5E
+:108A20005555555555555555AAAAAAAAAAAAAAAA4E
+:108A30005555555555555555AAAAAAAAAAAAAAAA3E
+:108A40005555555555555555AAAAAAAAAAAAAAAA2E
+:108A50005555555555555555AAAAAAAAAAAAAAAA1E
+:108A60005555555555555555AAAAAAAAAAAAAAAA0E
+:108A70005555555555555555AAAAAAAAAAAAAAAAFE
+:108A8000AAAAAAAAAAAAAAAA5555555555555555EE
+:108A9000AAAAAAAAAAAAAAAA5555555555555555DE
+:108AA000AAAAAAAAAAAAAAAA5555555555555555CE
+:108AB000AAAAAAAAAAAAAAAA5555555555555555BE
+:108AC000AAAAAAAAAAAAAAAA5555555555555555AE
+:108AD000AAAAAAAAAAAAAAAA55555555555555559E
+:108AE000AAAAAAAAAAAAAAAA55555555555555558E
+:108AF000AAAAAAAAAAAAAAAA55555555555555557E
+:108B00005555555555555555AAAAAAAAAAAAAAAA6D
+:108B10005555555555555555AAAAAAAAAAAAAAAA5D
+:108B20005555555555555555AAAAAAAAAAAAAAAA4D
+:108B30005555555555555555AAAAAAAAAAAAAAAA3D
+:108B40005555555555555555AAAAAAAAAAAAAAAA2D
+:108B50005555555555555555AAAAAAAAAAAAAAAA1D
+:108B60005555555555555555AAAAAAAAAAAAAAAA0D
+:108B70005555555555555555AAAAAAAAAAAAAAAAFD
+:108B8000AAAAAAAAAAAAAAAA5555555555555555ED
+:108B9000AAAAAAAAAAAAAAAA5555555555555555DD
+:108BA000AAAAAAAAAAAAAAAA5555555555555555CD
+:108BB000AAAAAAAAAAAAAAAA5555555555555555BD
+:108BC000AAAAAAAAAAAAAAAA5555555555555555AD
+:108BD000AAAAAAAAAAAAAAAA55555555555555559D
+:108BE000AAAAAAAAAAAAAAAA55555555555555558D
+:108BF000AAAAAAAAAAAAAAAA55555555555555557D
+:108C00005555555555555555AAAAAAAAAAAAAAAA6C
+:108C10005555555555555555AAAAAAAAAAAAAAAA5C
+:108C20005555555555555555AAAAAAAAAAAAAAAA4C
+:108C30005555555555555555AAAAAAAAAAAAAAAA3C
+:108C40005555555555555555AAAAAAAAAAAAAAAA2C
+:108C50005555555555555555AAAAAAAAAAAAAAAA1C
+:108C60005555555555555555AAAAAAAAAAAAAAAA0C
+:108C70005555555555555555AAAAAAAAAAAAAAAAFC
+:108C8000AAAAAAAAAAAAAAAA5555555555555555EC
+:108C9000AAAAAAAAAAAAAAAA5555555555555555DC
+:108CA000AAAAAAAAAAAAAAAA5555555555555555CC
+:108CB000AAAAAAAAAAAAAAAA5555555555555555BC
+:108CC000AAAAAAAAAAAAAAAA5555555555555555AC
+:108CD000AAAAAAAAAAAAAAAA55555555555555559C
+:108CE000AAAAAAAAAAAAAAAA55555555555555558C
+:108CF000AAAAAAAAAAAAAAAA55555555555555557C
+:108D00005555555555555555AAAAAAAAAAAAAAAA6B
+:108D10005555555555555555AAAAAAAAAAAAAAAA5B
+:108D20005555555555555555AAAAAAAAAAAAAAAA4B
+:108D30005555555555555555AAAAAAAAAAAAAAAA3B
+:108D40005555555555555555AAAAAAAAAAAAAAAA2B
+:108D50005555555555555555AAAAAAAAAAAAAAAA1B
+:108D60005555555555555555AAAAAAAAAAAAAAAA0B
+:108D70005555555555555555AAAAAAAAAAAAAAAAFB
+:108D8000AAAAAAAAAAAAAAAA5555555555555555EB
+:108D9000AAAAAAAAAAAAAAAA5555555555555555DB
+:108DA000AAAAAAAAAAAAAAAA5555555555555555CB
+:108DB000AAAAAAAAAAAAAAAA5555555555555555BB
+:108DC000AAAAAAAAAAAAAAAA5555555555555555AB
+:108DD000AAAAAAAAAAAAAAAA55555555555555559B
+:108DE000AAAAAAAAAAAAAAAA55555555555555558B
+:108DF000AAAAAAAAAAAAAAAA55555555555555557B
+:108E00005454545454545454A8A8A8A8A8A8A8A882
+:108E10005454545454545454A8A8A8A8A8A8A8A872
+:108E20005454545454545454A8A8A8A8A8A8A8A862
+:108E30005454545454545454A8A8A8A8A8A8A8A852
+:108E40005454545454545454A8A8A8A8A8A8A8A842
+:108E50005454545454545454A8A8A8A8A8A8A8A832
+:108E60005454545454545454A8A8A8A8A8A8A8A822
+:108E70005454545454545454A8A8A8A8A8A8A8A812
+:108E8000A8A8A8A8A8A8A8A8545454545454545402
+:108E9000A8A8A8A8A8A8A8A85454545454545454F2
+:108EA000A8A8A8A8A8A8A8A85454545454545454E2
+:108EB000A8A8A8A8A8A8A8A85454545454545454D2
+:108EC000A8A8A8A8A8A8A8A85454545454545454C2
+:108ED000A8A8A8A8A8A8A8A85454545454545454B2
+:108EE000A8A8A8A8A8A8A8A85454545454545454A2
+:108EF000A8A8A8A8A8A8A8A8545454545454545492
+:108F00005656565656565656A9A9A9A9A9A9A9A969
+:108F10005656565656565656A9A9A9A9A9A9A9A959
+:108F20005656565656565656A9A9A9A9A9A9A9A949
+:108F30005656565656565656A9A9A9A9A9A9A9A939
+:108F40005656565656565656A9A9A9A9A9A9A9A929
+:108F50005656565656565656A9A9A9A9A9A9A9A919
+:108F60005656565656565656A9A9A9A9A9A9A9A909
+:108F70005656565656565656A9A9A9A9A9A9A9A9F9
+:108F8000AAAAAAAAAAAAAAAA5656565656565656E1
+:108F9000AAAAAAAAAAAAAAAA5656565656565656D1
+:108FA000AAAAAAAAAAAAAAAA5656565656565656C1
+:108FB000AAAAAAAAAAAAAAAA5656565656565656B1
+:108FC000AAAAAAAAAAAAAAAA5656565656565656A1
+:108FD000AAAAAAAAAAAAAAAA565656565656565691
+:108FE000AAAAAAAAAAAAAAAA565656565656565681
+:108FF000AAAAAAAAAAAAAAAA565656565656565671
+:109000005252525252525252A1A1A1A1A1A1A1A1C8
+:109010005252525252525252A1A1A1A1A1A1A1A1B8
+:109020005252525252525252A1A1A1A1A1A1A1A1A8
+:109030005252525252525252A1A1A1A1A1A1A1A198
+:109040005252525252525252A1A1A1A1A1A1A1A188
+:109050005252525252525252A1A1A1A1A1A1A1A178
+:109060005252525252525252A1A1A1A1A1A1A1A168
+:109070005252525252525252A1A1A1A1A1A1A1A158
+:10908000A2A2A2A2A2A2A2A2525252525252525240
+:10909000A2A2A2A2A2A2A2A2525252525252525230
+:1090A000A2A2A2A2A2A2A2A2525252525252525220
+:1090B000A2A2A2A2A2A2A2A2525252525252525210
+:1090C000A2A2A2A2A2A2A2A2525252525252525200
+:1090D000A2A2A2A2A2A2A2A25252525252525252F0
+:1090E000A2A2A2A2A2A2A2A25252525252525252E0
+:1090F000A2A2A2A2A2A2A2A25252525252525252D0
+:109100005A5A5A5A5A5A5A5AA5A5A5A5A5A5A5A567
+:109110005A5A5A5A5A5A5A5AA5A5A5A5A5A5A5A557
+:109120005A5A5A5A5A5A5A5AA5A5A5A5A5A5A5A547
+:109130005A5A5A5A5A5A5A5AA5A5A5A5A5A5A5A537
+:109140005A5A5A5A5A5A5A5AA5A5A5A5A5A5A5A527
+:109150005A5A5A5A5A5A5A5AA5A5A5A5A5A5A5A517
+:109160005A5A5A5A5A5A5A5AA5A5A5A5A5A5A5A507
+:109170005A5A5A5A5A5A5A5AA5A5A5A5A5A5A5A5F7
+:10918000AAAAAAAAAAAAAAAA5A5A5A5A5A5A5A5ABF
+:10919000AAAAAAAAAAAAAAAA5A5A5A5A5A5A5A5AAF
+:1091A000AAAAAAAAAAAAAAAA5A5A5A5A5A5A5A5A9F
+:1091B000AAAAAAAAAAAAAAAA5A5A5A5A5A5A5A5A8F
+:1091C000AAAAAAAAAAAAAAAA5A5A5A5A5A5A5A5A7F
+:1091D000AAAAAAAAAAAAAAAA5A5A5A5A5A5A5A5A6F
+:1091E000AAAAAAAAAAAAAAAA5A5A5A5A5A5A5A5A5F
+:1091F000AAAAAAAAAAAAAAAA5A5A5A5A5A5A5A5A4F
+:109200000A0A0A0A0A0A0A0A0505050505050505E6
+:109210000A0A0A0A0A0A0A0A0505050505050505D6
+:109220000A0A0A0A0A0A0A0A0505050505050505C6
+:109230000A0A0A0A0A0A0A0A0505050505050505B6
+:109240000A0A0A0A0A0A0A0A0505050505050505A6
+:109250000A0A0A0A0A0A0A0A050505050505050596
+:109260000A0A0A0A0A0A0A0A050505050505050586
+:109270000A0A0A0A0A0A0A0A050505050505050576
+:109280000A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A3E
+:109290000A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A2E
+:1092A0000A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A1E
+:1092B0000A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0E
+:1092C0000A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0AFE
+:1092D0000A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0AEE
+:1092E0000A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0ADE
+:1092F0000A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0ACE
+:10930000AAAAAAAAAAAAAAAA555555555555555565
+:10931000AAAAAAAAAAAAAAAA555555555555555555
+:10932000AAAAAAAAAAAAAAAA555555555555555545
+:10933000AAAAAAAAAAAAAAAA555555555555555535
+:10934000AAAAAAAAAAAAAAAA555555555555555525
+:10935000AAAAAAAAAAAAAAAA555555555555555515
+:10936000AAAAAAAAAAAAAAAA555555555555555505
+:10937000AAAAAAAAAAAAAAAA5555555555555555F5
+:10938000AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA3D
+:10939000AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA2D
+:1093A000AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA1D
+:1093B000AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA0D
+:1093C000AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFD
+:1093D000AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAED
+:1093E000AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADD
+:1093F000AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACD
+:10940000AAAAAAAAAAAAAAAA555555555555555564
+:10941000AAAAAAAAAAAAAAAA555555555555555554
+:10942000AAAAAAAAAAAAAAAA555555555555555544
+:10943000AAAAAAAAAAAAAAAA555555555555555534
+:10944000AAAAAAAAAAAAAAAA555555555555555524
+:10945000AAAAAAAAAAAAAAAA555555555555555514
+:10946000AAAAAAAAAAAAAAAA555555555555555504
+:10947000AAAAAAAAAAAAAAAA5555555555555555F4
+:10948000AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA3C
+:10949000AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA2C
+:1094A000AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA1C
+:1094B000AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA0C
+:1094C000AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFC
+:1094D000AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEC
+:1094E000AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADC
+:1094F000AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACC
+:10950000A8A8A8A8A8A8A8A854545454545454547B
+:10951000A8A8A8A8A8A8A8A854545454545454546B
+:10952000A8A8A8A8A8A8A8A854545454545454545B
+:10953000A8A8A8A8A8A8A8A854545454545454544B
+:10954000A8A8A8A8A8A8A8A854545454545454543B
+:10955000A8A8A8A8A8A8A8A854545454545454542B
+:10956000A8A8A8A8A8A8A8A854545454545454541B
+:10957000A8A8A8A8A8A8A8A854545454545454540B
+:10958000A8A8A8A8A8A8A8A8A8A8A8A8A8A8A8A85B
+:10959000A8A8A8A8A8A8A8A8A8A8A8A8A8A8A8A84B
+:1095A000A8A8A8A8A8A8A8A8A8A8A8A8A8A8A8A83B
+:1095B000A8A8A8A8A8A8A8A8A8A8A8A8A8A8A8A82B
+:1095C000A8A8A8A8A8A8A8A8A8A8A8A8A8A8A8A81B
+:1095D000A8A8A8A8A8A8A8A8A8A8A8A8A8A8A8A80B
+:1095E000A8A8A8A8A8A8A8A8A8A8A8A8A8A8A8A8FB
+:1095F000A8A8A8A8A8A8A8A8A8A8A8A8A8A8A8A8EB
+:10960000ABABABABABABABAB57575757575757574A
+:10961000ABABABABABABABAB57575757575757573A
+:10962000ABABABABABABABAB57575757575757572A
+:10963000ABABABABABABABAB57575757575757571A
+:10964000ABABABABABABABAB57575757575757570A
+:10965000ABABABABABABABAB5757575757575757FA
+:10966000ABABABABABABABAB5757575757575757EA
+:10967000ABABABABABABABAB5757575757575757DA
+:10968000ABABABABABABABABABABABABABABABAB2A
+:10969000ABABABABABABABABABABABABABABABAB1A
+:1096A000ABABABABABABABABABABABABABABABAB0A
+:1096B000ABABABABABABABABABABABABABABABABFA
+:1096C000ABABABABABABABABABABABABABABABABEA
+:1096D000ABABABABABABABABABABABABABABABABDA
+:1096E000ABABABABABABABABABABABABABABABABCA
+:1096F000ABABABABABABABABABABABABABABABABBA
+:10970000A8A8A8A8A8A8A8A8545454545454545479
+:10971000A8A8A8A8A8A8A8A8545454545454545469
+:10972000A8A8A8A8A8A8A8A8545454545454545459
+:10973000A8A8A8A8A8A8A8A8545454545454545449
+:10974000A8A8A8A8A8A8A8A8545454545454545439
+:10975000A8A8A8A8A8A8A8A8545454545454545429
+:10976000A8A8A8A8A8A8A8A8545454545454545419
+:10977000A8A8A8A8A8A8A8A8545454545454545409
+:10978000A8A8A8A8A8A8A8A8A8A8A8A8A8A8A8A859
+:10979000A8A8A8A8A8A8A8A8A8A8A8A8A8A8A8A849
+:1097A000A8A8A8A8A8A8A8A8A8A8A8A8A8A8A8A839
+:1097B000A8A8A8A8A8A8A8A8A8A8A8A8A8A8A8A829
+:1097C000A8A8A8A8A8A8A8A8A8A8A8A8A8A8A8A819
+:1097D000A8A8A8A8A8A8A8A8A8A8A8A8A8A8A8A809
+:1097E000A8A8A8A8A8A8A8A8A8A8A8A8A8A8A8A8F9
+:1097F000A8A8A8A8A8A8A8A8A8A8A8A8A8A8A8A8E9
+:10980000A8A8A8A8A8A8A8A8545454545454545478
+:10981000A8A8A8A8A8A8A8A8545454545454545468
+:10982000A8A8A8A8A8A8A8A8545454545454545458
+:10983000A8A8A8A8A8A8A8A8545454545454545448
+:10984000A8A8A8A8A8A8A8A8545454545454545438
+:10985000A8A8A8A8A8A8A8A8545454545454545428
+:10986000A8A8A8A8A8A8A8A8545454545454545418
+:10987000A8A8A8A8A8A8A8A8545454545454545408
+:10988000A8A8A8A8A8A8A8A8A8A8A8A8A8A8A8A858
+:10989000A8A8A8A8A8A8A8A8A8A8A8A8A8A8A8A848
+:1098A000A8A8A8A8A8A8A8A8A8A8A8A8A8A8A8A838
+:1098B000A8A8A8A8A8A8A8A8A8A8A8A8A8A8A8A828
+:1098C000A8A8A8A8A8A8A8A8A8A8A8A8A8A8A8A818
+:1098D000A8A8A8A8A8A8A8A8A8A8A8A8A8A8A8A808
+:1098E000A8A8A8A8A8A8A8A8A8A8A8A8A8A8A8A8F8
+:1098F000A8A8A8A8A8A8A8A8A8A8A8A8A8A8A8A8E8
+:10990000A0A0A0A0A0A0A0A05050505050505050D7
+:10991000A0A0A0A0A0A0A0A05050505050505050C7
+:10992000A0A0A0A0A0A0A0A05050505050505050B7
+:10993000A0A0A0A0A0A0A0A05050505050505050A7
+:10994000A0A0A0A0A0A0A0A0505050505050505097
+:10995000A0A0A0A0A0A0A0A0505050505050505087
+:10996000A0A0A0A0A0A0A0A0505050505050505077
+:10997000A0A0A0A0A0A0A0A0505050505050505067
+:10998000A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0D7
+:10999000A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0C7
+:1099A000A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0B7
+:1099B000A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A7
+:1099C000A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A097
+:1099D000A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A087
+:1099E000A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A077
+:1099F000A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A067
+:109A0000ACACACACACACACAC5C5C5C5C5C5C5C5C16
+:109A1000ACACACACACACACAC5C5C5C5C5C5C5C5C06
+:109A2000ACACACACACACACAC5C5C5C5C5C5C5C5CF6
+:109A3000ACACACACACACACAC5C5C5C5C5C5C5C5CE6
+:109A4000ACACACACACACACAC5C5C5C5C5C5C5C5CD6
+:109A5000ACACACACACACACAC5C5C5C5C5C5C5C5CC6
+:109A6000ACACACACACACACAC5C5C5C5C5C5C5C5CB6
+:109A7000ACACACACACACACAC5C5C5C5C5C5C5C5CA6
+:109A8000ACACACACACACACACACACACACACACACAC16
+:109A9000ACACACACACACACACACACACACACACACAC06
+:109AA000ACACACACACACACACACACACACACACACACF6
+:109AB000ACACACACACACACACACACACACACACACACE6
+:109AC000ACACACACACACACACACACACACACACACACD6
+:109AD000ACACACACACACACACACACACACACACACACC6
+:109AE000ACACACACACACACACACACACACACACACACB6
+:109AF000ACACACACACACACACACACACACACACACACA6
+:109B0000A0A0A0A0A0A0A0A05050505050505050D5
+:109B1000A0A0A0A0A0A0A0A05050505050505050C5
+:109B2000A0A0A0A0A0A0A0A05050505050505050B5
+:109B3000A0A0A0A0A0A0A0A05050505050505050A5
+:109B4000A0A0A0A0A0A0A0A0505050505050505095
+:109B5000A0A0A0A0A0A0A0A0505050505050505085
+:109B6000A0A0A0A0A0A0A0A0505050505050505075
+:109B7000A0A0A0A0A0A0A0A0505050505050505065
+:109B8000A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0D5
+:109B9000A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0C5
+:109BA000A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0B5
+:109BB000A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A5
+:109BC000A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A095
+:109BD000A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A085
+:109BE000A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A075
+:109BF000A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A065
+:109C0000A0A0A0A0A0A0A0A05050505050505050D4
+:109C1000A0A0A0A0A0A0A0A05050505050505050C4
+:109C2000A0A0A0A0A0A0A0A05050505050505050B4
+:109C3000A0A0A0A0A0A0A0A05050505050505050A4
+:109C4000A0A0A0A0A0A0A0A0505050505050505094
+:109C5000A0A0A0A0A0A0A0A0505050505050505084
+:109C6000A0A0A0A0A0A0A0A0505050505050505074
+:109C7000A0A0A0A0A0A0A0A0505050505050505064
+:109C8000A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0D4
+:109C9000A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0C4
+:109CA000A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0B4
+:109CB000A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A4
+:109CC000A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A094
+:109CD000A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A084
+:109CE000A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A074
+:109CF000A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A064
+:109D00000000000000000000000000000000000053
+:109D1000F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F043
+:109D20000000000000000000000000000000000033
+:109D30000000000000000000000000000000000023
+:109D40000000000000000000000000000000000013
+:109D50000000000000000000000000000000000003
+:109D600000000000000000000000000000000000F3
+:109D700000000000000000000000000000000000E3
+:109D800000000000000000000000000000000000D3
+:109D900000000000000000000000000000000000C3
+:109DA00000000000000000000000000000000000B3
+:109DB00000000000000000000000000000000000A3
+:109DC0000000000000000000000000000000000093
+:109DD0000000000000000000000000000000000083
+:109DE0000000000000000000000000000000000073
+:109DF0000000000000000000000000000000000063
+:109E0000AA56545454545454545454545454A85565
+:109E1000AA565454545454545454545454545455A9
+:109E2000AA56545454545454545454545454545599
+:109E3000AA56545454545454545454545454545589
+:109E4000AA56545454545454545454545454545579
+:109E5000AA56545454545454545454545454545569
+:109E6000AA56545454545454545454545454545559
+:109E7000AA56545454545454545454545454545549
+:109E8000AA56545454545454545454545454545539
+:109E9000AA56545454545454545454545454545529
+:109EA000AA56545454545454545454545454545519
+:109EB000AA56545454545454545454545454545509
+:109EC000AA565454545454545454545454545455F9
+:109ED000AA565454545454545454545454545455E9
+:109EE000AA565454545454545454545454545455D9
+:109EF000AA56446868A8A8A8A8A8A8A8A8A8A800BE
+:109F000002565454545454545454545454545401B4
+:109F100002565454545454545454545454545401A4
+:109F20000256545454545454545454545454540194
+:109F30000256545454545454545454545454540184
+:109F40000256545454545454545454545454540174
+:109F50000256545454545454545454545454540164
+:109F60000256545454545454545454545454540154
+:109F70000256545454545454545454545454540144
+:109F80000256545454545454545454545454540134
+:109F90000256545454545454545454545454540124
+:109FA0000256545454545454545454545454540114
+:109FB0000256545454545454545454545454540104
+:109FC00002565454545454545454545454545401F4
+:109FD00002565454545454545454545454545401E4
+:109FE00002565454545454545454545454545401D4
+:109FF000025654545868A8A8A8A8A8A8A8A8A800B9
+:10A00000A856566464A4A4A4A4A4A4A4A4A4A45478
+:10A01000A8565654545454545454545454545454A8
+:10A02000A856565454545454545454545454545498
+:10A03000A856565454545454545454545454545488
+:10A04000A856565454545454545454545454545478
+:10A05000A856565454545454545454545454545468
+:10A06000A856565454545454545454545454545458
+:10A07000A856565454545454545454545454545448
+:10A08000A856565454545454545454545454545438
+:10A09000A856565454545454545454545454545428
+:10A0A000A856565454545454545454545454545418
+:10A0B000A856565454545454545454545454545408
+:10A0C000A8565654545454545454545454545454F8
+:10A0D000A8565654545454545454545454545454E8
+:10A0E000A8565654545454545454545454545454D8
+:10A0F000A8565654545468A8A8A8A8A8A8A8A80068
+:10A10000005666A8A8A8A8A8A8A8A8A8A8A8A800B3
+:10A1100000565654545454545454545454545400A3
+:10A120000056565454545454545454545454540093
+:10A130000056565454545454545454545454540083
+:10A140000056565454545454545454545454540073
+:10A150000056565454545454545454545454540063
+:10A160000056565454545454545454545454540053
+:10A170000056565454545454545454545454540043
+:10A180000056565454545454545454545454540033
+:10A190000056565454545454545454545454540023
+:10A1A0000056565454545454545454545454540013
+:10A1B0000056565454545454545454545454540003
+:10A1C00000565654545454545454545454545400F3
+:10A1D0000056565454545454545454545454A8008F
+:10A1E00000565654545454545454545454545400D3
+:10A1F000005656545454545454545454A8A854001B
+:10A20000AA56AAAAA8A8A8A8A8A8A8A8A8A8A8556D
+:10A21000AAAAAAAAA8A8A8A8A8A8A8A8A8A8A85509
+:10A22000AAAAAAAAA8A8A8A8A8A8A8A8A8A8A855F9
+:10A23000AAAAAAAAA8A8A8A8A8A8A8A8A8A8A855E9
+:10A24000AAAAAAAAA8A8A8A8A8A8A8A8A8A8A855D9
+:10A25000AAAAAAAAA8A8A8A8A8A8A8A8A8A8A855C9
+:10A26000AAAAAAAAA8A8A8A8A8A8A8A8A8A8A855B9
+:10A27000AAAAAAAAA8A8A8A8A8A8A8A8A8A8A855A9
+:10A28000AAAAAAAAA8A8A8A8A8A8A8A8A8A8A85599
+:10A29000AAAAAAAAA8A8A8A8A8A8A8A8A8A8A85589
+:10A2A000AAAAAAAAA8A8A8A8A8A8A8A8A8A8A85579
+:10A2B000AAAA5656545454545454545454545455AD
+:10A2C000AA565656545454545454545454545455F1
+:10A2D000AA565656545454545454545454545455E1
+:10A2E000AA565656545454545454545454545455D1
+:10A2F000AA565656545454545454545454545454C2
+:10A300000256AAAAA8A8A8A8A8A8A8A8A8A8A80168
+:10A3100002AAAAAAA8A8A8A8A8A8A8A8A8A8A80104
+:10A3200002AAAAAAA8A8A8A8A8A8A8A8A8A8A801F4
+:10A3300002AAAAAAA8A8A8A8A8A8A8A8A8A8A801E4
+:10A3400002AAAAAAA8A8A8A8A8A8A8A8A8A8A801D4
+:10A3500002AAAAAAA8A8A8A8A8A8A8A8A8A8A801C4
+:10A3600002AAAAAAA8A8A8A8A8A8A8A8A8A8A801B4
+:10A3700002AAAAAAA8A8A8A8A8A8A8A8A8A8A801A4
+:10A3800002AAAAAAA8A8A8A8A8A8A8A8A8A8A80194
+:10A3900002AAAAAAA8A8A8A8A8A8A8A8A8A8A80184
+:10A3A00002AAAAAAA8A8A8A8A8A8A8A8A8A8A80174
+:10A3B00002AAAAAAA8A8A8A8A8A8A8A8A8A8A80164
+:10A3C00002AAAAAAA8A8A8A8A8A8A8A8A8A8A80154
+:10A3D00002565656545454545454545454545401DC
+:10A3E00002565656545454545454545454545401CC
+:10A3F00002565656545454545454545454545400BD
+:10A40000A856AAAAAAA8A8A8A8A8A8A8A8A8A8546C
+:10A41000A8AAAAAAAAA8A8A8A8A8A8A8A8A8A85408
+:10A42000A8AAAAAAAAA8A8A8A8A8A8A8A8A8A854F8
+:10A43000A8AAAAAAAAA8A8A8A8A8A8A8A8A8A854E8
+:10A44000A8AAAAAAAAA8A8A8A8A8A8A8A8A8A854D8
+:10A45000A8AAAAAAAAA8A8A8A8A8A8A8A8A8A854C8
+:10A46000A8AAAAAAAAA8A8A8A8A8A8A8A8A8A854B8
+:10A47000A8AAAAAAAAA8A8A8A8A8A8A8A8A8A854A8
+:10A48000A8AAAAAAAAA8A8A8A8A8A8A8A8A8A85498
+:10A49000A8AAAAAAAAA8A8A8A8A8A8A8A8A8A85488
+:10A4A000A8AAAAAAAAA8A8A8A8A8A8A8A8A8A85478
+:10A4B000A8AAAAAAAAA8A8A8A8A8A8A8A8A8A85468
+:10A4C000A8AAAAAAAAA8A8A8A8A8A8A8A8A8A85458
+:10A4D000A8AAAAAAAAA8A8A8A8A8A8A8A8A8A85448
+:10A4E000A8AAAAAAAAA8A8A8A8A8A8A8A8A8A85438
+:10A4F000A8565656565454545454545454545454C0
+:10A5000000AAAAAAAAA8A8A8A8A8A8A8A8A8A80013
+:10A5100000AAAAAAAAA8A8A8A8A8A8A8A8A8A80003
+:10A5200000AAAAAAAAA8A8A8A8A8A8A8A8A8A800F3
+:10A5300000AAAAAAAAA8A8A8A8A8A8A8A8A8A800E3
+:10A5400000AAAAAAAAA8A8A8A8A8A8A8A8A8A800D3
+:10A5500000AAAAAAAAA8A8A8A8A8A8A8A8A8A800C3
+:10A5600000AAAAAAAAA8A8A8A8A8A8A8A8A8A800B3
+:10A5700000AAAAAAAAA8A8A8A8A8A8A8A8A8A800A3
+:10A5800000AAAAAAAAA8A8A8A8A8A8A8A8A8A80093
+:10A5900000AAAAAAAAA8A8A8A8A8A8A8A8A8A80083
+:10A5A00000AAAAAAAAA8A8A8A8A8A8A8A8A8A80073
+:10A5B00000AAAAAAAAA8A8A8A8A8A8A8A8A8A80063
+:10A5C00000AAAAAAAAA8A8A8A8A8A8A8A8A8A80053
+:10A5D00000AAAAAAAAA8A8A8A8A8A8A8A8A8A80043
+:10A5E00000AAAAAAAAA8A8A8A8A8A8A8A8A8A80033
+:10A5F00000565656565454545454545454545400BB
+:10A60000AAAA020202020000000000000000005599
+:10A61000AAAAAA02020200000000000000000055E1
+:10A6200000AAAAAA02020200000000000000000026
+:10A6300040AAAAAA020202000000000000000000D6
+:10A6400040AAAAAA020202000000000000000000C6
+:10A6500040AAAAAA020202000000000000000000B6
+:10A6600040AAAAAA020202000000000000000000A6
+:10A6700040AAAAAA02020200000000000000000096
+:10A6800040AAAAAA02020200000000000000000086
+:10A6900040AAAAAA02020200000000000000000076
+:10A6A00040AAAAAA02020200000000000000000066
+:10A6B00040AAAAAA02020200000000000000000056
+:10A6C00040AAAAAA02020200000000000000000046
+:10A6D00040AAAAAA02020200000000000000000036
+:10A6E00040AAAAAA02020200000000000000000026
+:10A6F00040AAAAAA02020200000000000000000016
+:10A7000040AAAAAA02020200000000000000000005
+:10A7100054AAAAAA020202000000000000000000E1
+:10A7200000AAAAAA02020200000000000000000025
+:10A7300040AAAAAA020202000000000000000000D5
+:10A7400040AAAAAA020202000000000000000000C5
+:10A7500040AAAAAA020202000000000000000000B5
+:10A7600040AAAAAA020202000000000000000000A5
+:10A7700040AAAAAA02020200000000000000000095
+:10A7800040AAAAAA02020200000000000000000085
+:10A7900040AAAAAA02020200000000000000000075
+:10A7A00040AAAAAA02020200000000000000000065
+:10A7B00040AAAAAA02020200000000000000000055
+:10A7C00040AAAAAA02020200000000000000000045
+:10A7D00040AAAAAA02020200000000000000000035
+:10A7E00040AAAAAA02020200000000000000000025
+:10A7F00040AAAAAA02020200000000000000000015
+:10A8000040AAAAAA02020200000000000000000004
+:10A8100054AAAAAA020202000000000000000000E0
+:10A82000AAAAAAAA02020200000000000000005525
+:10A830002AAAAAAA02020200000000000000005595
+:10A840002AAAAAAA02020200000000000000005585
+:10A850002AAAAAAA02020200000000000000005575
+:10A860002AAAAAAA02020200000000000000005565
+:10A870002AAAAAAA02020200000000000000005555
+:10A880002AAAAAAA02020200000000000000005545
+:10A890002AAAAAAA02020200000000000000005535
+:10A8A0002AAAAAAA02020200000000000000005525
+:10A8B0002AAAAAAA02020200000000000000005515
+:10A8C0002AAAAAAA02020200000000000000005505
+:10A8D0002AAAAAAA020202000000000000000055F5
+:10A8E0002AAAAAAA020202000000000000000055E5
+:10A8F0002AAAAAAA020202000000000000000055D5
+:10A900002AAAAAAA020202000000000000000055C4
+:10A9100002AAAAAA020202000000000000000055DC
+:10A92000AAAAAAAA02020202000000000000005522
+:10A930002AAAAAAA02020200000000000000005594
+:10A940002AAAAAAA02020200000000000000005584
+:10A950002AAAAAAA02020200000000000000005574
+:10A960002AAAAAAA02020200000000000000005564
+:10A970002AAAAAAA02020200000000000000005554
+:10A980002AAAAAAA02020200000000000000005544
+:10A990002AAAAAAA02020200000000000000005534
+:10A9A0002AAAAAAA02020200000000000000005524
+:10A9B0002AAAAAAA02020200000000000000005514
+:10A9C0002AAAAAAA02020200000000000000005504
+:10A9D0002AAAAAAA020202000000000000000055F4
+:10A9E0002AAAAAAA020202000000000000000055E4
+:10A9F0002AAAAAAA020202000000000000000055D4
+:10AA00002AAAAAAA020202000000000000000055C3
+:10AA100002AAAAAA020202000000000000000055DB
+:10AA200000AAAAAAAA020202020000000000000076
+:10AA300040AAAAAAAA020202000000000000000028
+:10AA400040AAAAAAAA020202000000000000000018
+:10AA500040AAAAAAAA020202000000000000000008
+:10AA600040AAAAAAAA0202020000000000000000F8
+:10AA700040AAAAAAAA0202020000000000000000E8
+:10AA800040AAAAAAAA0202020000000000000000D8
+:10AA900040AAAAAAAA0202020000000000000000C8
+:10AAA00040AAAAAAAA0202020000000000000000B8
+:10AAB00040AAAAAAAA0202020000000000000000A8
+:10AAC00040AAAAAAAA020202000000000000000098
+:10AAD00040AAAAAAAA020202000000000000000088
+:10AAE00040AAAAAAAA020202000000000000000078
+:10AAF00040AAAAAAAA020202000000000000000068
+:10AB000040AAAAAAAA020202000000000000000057
+:10AB100055AAAAAAAA020202000000000000000032
+:10AB200000AAAAAAAA020202020200000000000073
+:10AB300040AAAAAAAA020202020000000000000025
+:10AB400040AAAAAAAA020202020000000000000015
+:10AB500040AAAAAAAA020202020000000000000005
+:10AB600040AAAAAAAA0202020200000000000000F5
+:10AB700040AAAAAAAA0202020200000000000000E5
+:10AB800040AAAAAAAA0202020200000000000000D5
+:10AB900040AAAAAAAA0202020200000000000000C5
+:10ABA00040AAAAAAAA0202020200000000000000B5
+:10ABB00040AAAAAAAA0202020200000000000000A5
+:10ABC00040AAAAAAAA020202020000000000000095
+:10ABD00040AAAAAAAA020202020000000000000085
+:10ABE00040AAAAAAAA020202020000000000000075
+:10ABF00040AAAAAAAA020202020000000000000065
+:10AC000040AAAAAAAA020202020000000000000054
+:10AC100055AAAAAAAA02020202000000000000002F
+:10AC2000AAAAAAAAAAAA02020202020000000055C9
+:10AC30002AAAAAAAAAAA020202020000000000553B
+:10AC40002AAAAAAAAAAA020202020000000000552B
+:10AC50002AAAAAAAAAAA020202020000000000551B
+:10AC60002AAAAAAAAAAA020202020000000000550B
+:10AC70002AAAAAAAAAAA02020202000000000055FB
+:10AC80002AAAAAAAAAAA02020202000000000055EB
+:10AC90002AAAAAAAAAAA02020202000000000055DB
+:10ACA0002AAAAAAAAAAA02020202000000000055CB
+:10ACB0002AAAAAAAAAAA02020202000000000055BB
+:10ACC0002AAAAAAAAAAA02020202000000000055AB
+:10ACD0002AAAAAAAAAAA020202020000000000559B
+:10ACE0002AAAAAAAAAAA020202020000000000558B
+:10ACF0002AAAAAAAAAAA020202020000000000557B
+:10AD00002AAAAAAAAAAA020202020000000000556A
+:10AD100000AAAAAAAAAA0202020200000000005584
+:10AD2000AAAAAAAAAAAA02020202020200000055C6
+:10AD30002AAAAAAAAAAA0202020202000000005538
+:10AD40002AAAAAAAAAAA0202020202000000005528
+:10AD50002AAAAAAAAAAA0202020202000000005518
+:10AD60002AAAAAAAAAAA0202020202000000005508
+:10AD70002AAAAAAAAAAA02020202020000000055F8
+:10AD80002AAAAAAAAAAA02020202020000000055E8
+:10AD90002AAAAAAAAAAA02020202020000000055D8
+:10ADA0002AAAAAAAAAAA02020202020000000055C8
+:10ADB0002AAAAAAAAAAA02020202020000000055B8
+:10ADC0002AAAAAAAAAAA02020202020000000055A8
+:10ADD0002AAAAAAAAAAA0202020202000000005598
+:10ADE0002AAAAAAAAAAA0202020202000000005588
+:10ADF0002AAAAAAAAAAA0202020202000000005578
+:10AE00002AAAAAAAAAAA0202020202000000005567
+:10AE100000AAAAAAAAAA0202020202000000005581
+:10AE200000AAAAAAAAAAAA0202020202020000001A
+:10AE300040AAAAAAAAAAAA020202020200000000CC
+:10AE400040AAAAAAAAAAAA020202020200000000BC
+:10AE500040AAAAAAAAAAAA020202020200000000AC
+:10AE600040AAAAAAAAAAAA0202020202000000009C
+:10AE700040AAAAAAAAAAAA0202020202000000008C
+:10AE800040AAAAAAAAAAAA0202020202000000007C
+:10AE900040AAAAAAAAAAAA0202020202000000006C
+:10AEA00040AAAAAAAAAAAA0202020202000000005C
+:10AEB00040AAAAAAAAAAAA0202020202000000004C
+:10AEC00040AAAAAAAAAAAA0202020202000000003C
+:10AED00040AAAAAAAAAAAA0202020202000000002C
+:10AEE00040AAAAAAAAAAAA0202020202000000001C
+:10AEF00040AAAAAAAAAAAA0202020202000000000C
+:10AF000040AAAAAAAAAAAA020202020200000000FB
+:10AF100055AAAAAAAAAAAA020202020200000000D6
+:10AF200000AAAAAAAAAAAAAA02020202020200006F
+:10AF300040AAAAAAAAAAAAAA02020202020200001F
+:10AF400040AAAAAAAAAAAAAA02020202020200000F
+:10AF500040AAAAAAAAAAAAAA0202020202020000FF
+:10AF600040AAAAAAAAAAAAAA0202020202020000EF
+:10AF700040AAAAAAAAAAAAAA0202020202020000DF
+:10AF800040AAAAAAAAAAAAAA0202020202020000CF
+:10AF900040AAAAAAAAAAAAAA0202020202020000BF
+:10AFA00040AAAAAAAAAAAAAA0202020202020000AF
+:10AFB00040AAAAAAAAAAAAAA02020202020200009F
+:10AFC00040AAAAAAAAAAAAAA02020202020200008F
+:10AFD00040AAAAAAAAAAAAAA02020202020200007F
+:10AFE00040AAAAAAAAAAAAAA02020202020200006F
+:10AFF00040AAAAAAAAAAAAAA02020202020200005F
+:10B0000040AAAAAAAAAAAAAA02020202020200004E
+:10B0100055AAAAAAAAAAAAAA020202020202000029
+:10B02000AAA9A9A9A9A9A9A9A901010101010155D3
+:10B030002AA9A9A9A9A9A9A9A90101010101015543
+:10B040002AA9A9A9A9A9A9A9A90101010101015533
+:10B050002AA9A9A9A9A9A9A9A90101010101015523
+:10B060002AA9A9A9A9A9A9A9A90101010101015513
+:10B070002AA9A9A9A9A9A9A9A90101010101015503
+:10B080002AA9A9A9A9A9A9A9A901010101010155F3
+:10B090002AA9A9A9A9A9A9A9A901010101010155E3
+:10B0A0002AA9A9A9A9A9A9A9A901010101010155D3
+:10B0B0002AA9A9A9A9A9A9A9A901010101010155C3
+:10B0C0002AA9A9A9A9A9A9A9A901010101010155B3
+:10B0D0002AA9A9A9A9A9A9A9A901010101010155A3
+:10B0E0002AA9A9A9A9A9A9A9A90101010101015593
+:10B0F0002AA9A9A9A9A9A9A9A90101010101015583
+:10B100002AA9A9A9A9A9A9A9A90101010101015572
+:10B1100000A9A9A9A9A9A9A9A9010101010101558C
+:10B12000A8A9A9A9A9A9A9A9A9A90101010101542D
+:10B1300028A9A9A9A9A9A9A9A9A90101010101549D
+:10B1400028A9A9A9A9A9A9A9A9A90101010101548D
+:10B1500028A9A9A9A9A9A9A9A9A90101010101547D
+:10B1600028A9A9A9A9A9A9A9A9A90101010101546D
+:10B1700028A9A9A9A9A9A9A9A9A90101010101545D
+:10B1800028A9A9A9A9A9A9A9A9A90101010101544D
+:10B1900028A9A9A9A9A9A9A9A9A90101010101543D
+:10B1A00028A9A9A9A9A9A9A9A9A90101010101542D
+:10B1B00028A9A9A9A9A9A9A9A9A90101010101541D
+:10B1C00028A9A9A9A9A9A9A9A9A90101010101540D
+:10B1D00028A9A9A9A9A9A9A9A9A9010101010154FD
+:10B1E00028A9A9A9A9A9A9A9A9A9010101010154ED
+:10B1F00028A9A9A9A9A9A9A9A9A9010101010154DD
+:10B2000028A9A9A9A9A9A9A9A9A9010101010154CC
+:10B2100001A9A9A9A9A9A9A9A9A9010101010154E3
+:10B2200056A9A9A9A9A9A9A9A9A9010101010101D1
+:10B2300056A9A9A9A9A9A9A9A9A9010101010101C1
+:10B2400056A9A9A9A9A9A9A9A9A9010101010101B1
+:10B2500056A9A9A9A9A9A9A9A9A9010101010101A1
+:10B2600056A9A9A9A9A9A9A9A9A901010101010191
+:10B2700056A9A9A9A9A9A9A9A9A901010101010181
+:10B2800056A9A9A9A9A9A9A9A9A901010101010171
+:10B2900056A9A9A9A9A9A9A9A9A901010101010161
+:10B2A00056A9A9A9A9A9A9A9A9A901010101010151
+:10B2B00056A9A9A9A9A9A9A9A9A901010101010141
+:10B2C00056A9A9A9A9A9A9A9A9A901010101010131
+:10B2D00056A9A9A9A9A9A9A9A9A901010101010121
+:10B2E00056A9A9A9A9A9A9A9A9A901010101010111
+:10B2F00056A9A9A9A9A9A9A9A9A901010101010101
+:10B3000056A9A9A9A9A9A9A9A9A9010101010101F0
+:10B3100054A9A9A9A9A9A9A9A9A9010101010101E2
+:10B3200055A9A9A9A9A9A9A9A9A9A901010101002A
+:10B3300000A9A9A9A9A9A9A9A9A9A9A90101015572
+:10B3400001A9A9A9A9A9A9A9A9A9A9A9A9010154BA
+:10B3500001A9A9A9A9A9A9A9A9A9A9A9A9010154AA
+:10B3600001A9A9A9A9A9A9A9A9A9A9A9A90101549A
+:10B3700001A9A9A9A9A9A9A9A9A9A9A9A90101548A
+:10B3800001A9A9A9A9A9A9A9A9A9A9A9A90101547A
+:10B3900001A9A9A9A9A9A9A9A9A9A9A9A90101546A
+:10B3A00001A9A9A9A9A9A9A9A9A9A9A9A90101545A
+:10B3B00001A9A9A9A9A9A9A9A9A9A9A9A90101544A
+:10B3C00001A9A9A9A9A9A9A9A9A9A9A9A90101543A
+:10B3D00001A9A9A9A9A9A9A9A9A9A9A9A90101542A
+:10B3E00001A9A9A9A9A9A9A9A9A9A9A9A90101541A
+:10B3F00001A9A9A9A9A9A9A9A9A9A9A9A90101540A
+:10B4000001A9A9A9A9A9A9A9A9A9A9A9A9010154F9
+:10B4100001A9A9A9A9A9A9A9A9A9A9A9A9010154E9
+:10B4200001A9A9A9A9A9A9A9A9A9A9A9A9010154D9
+:10B4300001A9A9A9A9A9A9A9A9A9A9A9A9010156C7
+:10B4400054A9A9A9A9A9A9A9A9A9A9A9A9A9010111
+:10B4500054A9A9A9A9A9A9A9A9A9A9A9A9A9010101
+:10B4600054A9A9A9A9A9A9A9A9A9A9A9A9A90101F1
+:10B4700054A9A9A9A9A9A9A9A9A9A9A9A9A90101E1
+:10B4800054A9A9A9A9A9A9A9A9A9A9A9A9A90101D1
+:10B4900054A9A9A9A9A9A9A9A9A9A9A9A9A90101C1
+:10B4A00054A9A9A9A9A9A9A9A9A9A9A9A9A90101B1
+:10B4B00054A9A9A9A9A9A9A9A9A9A9A9A9A90101A1
+:10B4C00054A9A9A9A9A9A9A9A9A9A9A9A9A9010191
+:10B4D00054A9A9A9A9A9A9A9A9A9A9A9A9A9010181
+:10B4E00054A9A9A9A9A9A9A9A9A9A9A9A9A9010171
+:10B4F00054A9A9A9A9A9A9A9A9A9A9A9A9A9010161
+:10B5000054A9A9A9A9A9A9A9A9A9A9A9A9A9010150
+:10B5100054A9A9A9A9A9A9A9A9A9A9A9A9A9010140
+:10B5200054A9A9A9A9A9A9A9A9A9A9A9A9A9010130
+:10B5300054A9A9A9A9A9A9A9A9A9A9A9A9A901021F
+:10B5400001555555565656565555555555555554FC
+:10B5500001555555555555555555555555555554F0
+:10B5600001555555555555555555555555555554E0
+:10B5700001555555555555555555555555555554D0
+:10B5800001555555555555555555555555555554C0
+:10B5900001555555555555555555555555555554B0
+:10B5A00001555555555555555555555555555554A0
+:10B5B0000155555555555555555555555555555490
+:10B5C0000155555555555555555555555555555480
+:10B5D0000155555555555555555555555555555470
+:10B5E0000155555555555555555555555555555460
+:10B5F0000155555555555555555555555555555450
+:10B60000015555555555555555555555555555543F
+:10B61000015555555555555555555555555555542F
+:10B62000015555555555555555555555555555541F
+:10B63000015555555555555555555555555555560D
+:10B6400054555556565656565655555555555556A4
+:10B65000545555555555555555555555555555569A
+:10B66000545555555555555555555555555555568A
+:10B67000545555555555555555555555555555567A
+:10B68000545555555555555555555555555555566A
+:10B69000545555555555555555555555555555565A
+:10B6A000545555555555555555555555555555564A
+:10B6B000545555555555555555555555555555563A
+:10B6C000545555555555555555555555555555562A
+:10B6D000545555555555555555555555555555561A
+:10B6E000545555555555555555555555555555560A
+:10B6F00054555555555555555555555555555556FA
+:10B7000054555555555555555555555555555556E9
+:10B7100054555555555555555555555555555556D9
+:10B7200054555555555555555555555555555556C9
+:10B7300054555555555555555555555555555554BB
+:10B74000015555565656565656555656555555AAA0
+:10B75000015555555656565655555555555555AA94
+:10B76000015555555656565655555555555555AA84
+:10B77000015555555656565655555555555555AA74
+:10B78000015555555656565655555555555555AA64
+:10B79000015555555656565655555555555555AA54
+:10B7A000015555555656565655555555555555AA44
+:10B7B000015555555656565655555555555555AA34
+:10B7C000015555555656565655555555555555AA24
+:10B7D000015555555656565655555555555555AA14
+:10B7E000015555555656565655555555555555AA04
+:10B7F000015555555656565655555555555555AAF4
+:10B80000015555555656565655555555555555AAE3
+:10B81000015555555656565655555555555555AAD3
+:10B82000015555555656565655555555555555AAC3
+:10B83000015555555555555555555555555555AAB7
+:10B84000545555565656565656565656565656A84A
+:10B85000545656565656565656565656565656A838
+:10B86000545656565656565656565656565656A828
+:10B87000545656565656565656565656565656A818
+:10B88000545656565656565656565656565656A808
+:10B89000545656565656565656565656565656A8F8
+:10B8A000545656565656565656565656565656A8E8
+:10B8B000545656565656565656565656565656A8D8
+:10B8C000545656565656565656565656565656A8C8
+:10B8D000545656565656565656565656565656A8B8
+:10B8E000545656565656565656565656565656A8A8
+:10B8F000545656565656565656565656565656A898
+:10B90000545656565656565656565656565656A887
+:10B91000545656565656565656565656565656A877
+:10B92000545656565656565656565656565656A867
+:10B93000545555565656565654545656565656A85D
+:10B940000156565656565656565656565656560240
+:10B950000156565656565656565656565656560230
+:10B960000156565656565656565656565656560220
+:10B970000156565656565656565656565656560210
+:10B980000156565656565656565656565656560200
+:10B9900001565656565656565656565656565602F0
+:10B9A00001565656565656565656565656565602E0
+:10B9B00001565656565656565656565656565602D0
+:10B9C00001565656565656565656565656565602C0
+:10B9D00001565656565656565656565656565602B0
+:10B9E00001565656565656565656565656565602A0
+:10B9F0000156565656565656565656565656560290
+:10BA0000015656565656565656565656565656027F
+:10BA1000015656565656565656565656565656026F
+:10BA2000015656565656565656565656565656025F
+:10BA30000155545656565656565656565656560252
+:10BA4000545656565656565656565656565656A846
+:10BA5000015656565656565656565656565656022F
+:10BA6000545656565656565656565656565656A826
+:10BA700001AAAAAAAAAAAAAAAAAAAAAAAAAAAA0277
+:10BA800054AAAAAAAAAAAAAAAAAAAAAAAAAAAAA86E
+:10BA900001AAAAAAAAAAAAAAAAAAAAAAAAAAAA0257
+:10BAA00054AAAAAAAAAAAAAAAAAAAAAAAAAAAAA84E
+:10BAB00001AAAAAAAAAAAAAAAAAAAAAAAAAAAA0237
+:10BAC00001AAAAAAAAAAAAAAAAAAAAAAAAAAAA0227
+:10BAD00001AAAAAAAAAAAAAAAAAAAAAAAAAAAA0217
+:10BAE00001AAAAAAAAAAAAAAAAAAAAAAAAAAAA0207
+:10BAF00001AAAAAAAAAAAAAAAAAAAAAAAAAAAA02F7
+:10BB000001AAAAAAAAAAAAAAAAAAAAAAAAAAAA02E6
+:10BB100001AAAAAAAAAAAAAAAAAAAAAAAAAAAA02D6
+:10BB200001AAAAAAAAAAAAAAAAAAAAAAAAAAAA02C6
+:10BB300001AAAAAAAAAAAAAAAAAAAAAAAAAAAA02B6
+:10BB400001AAAAAAAAAAAAAAAAAAAAAAAAAAAA02A6
+:10BB500001AAAAAAAAAAAAAAAAAAAAAAAAAAAA0296
+:10BB600001AAAAAAAAAAAAAAAAAAAAAAAAAAAA0286
+:10BB700001AAAAAAAAAAAAAAAAAAAAAAAAAAAA0276
+:10BB800001AAAAAAAAAAAAAAAAAAAAAAAAAAAA0266
+:10BB900001AAAAAAAAAAAAAAAAAAAAAAAAAAAA0256
+:10BBA00001AAAAAAAAAAAAAAAAAAAAAAAAAAAA0147
+:10BBB00054A9A9A9A9A9A9A9A9A9A9A9A9A9A8A84C
+:10BBC00000A9A9A9A9A9A9A9A9A9A9A9A9A8A80039
+:10BBD00055A9A9A9A9A9A9A9A9A9A9A9A8A8A8AA2B
+:10BBE0000155555555555555555555545454000204
+:10BBF000545555555555555555555454540000A850
+:10BC0000545555555555555555545454000000A894
+:10BC100001555555555555555454540000000002D2
+:10BC200001555555555555555454540000000002C2
+:10BC300001555555555555555454540000000002B2
+:10BC400001555555555555555454540000000002A2
+:10BC50000155555555555555545454000000000292
+:10BC60000155555555555555545454000000000282
+:10BC70000155555555555555545454000000000272
+:10BC80000155555555555555545454000000000262
+:10BC90000155555555555555545454000000000252
+:10BCA0000155555555555555545454000000000242
+:10BCB0000155555555555555545454000000000232
+:10BCC0000155555555555555545454000000000222
+:10BCD0000155555555555555545454000000000212
+:10BCE0000155555555555555545454000000000202
+:10BCF00001555555555555555454540000000002F2
+:10BD000001555555555555555454540000000000E3
+:10BD10000155555555555554545400000000000226
+:10BD20000155555555555554545400000000000216
+:10BD30000155555555555554545400000000000206
+:10BD400001555555555555545454000000000002F6
+:10BD500001555555555555545454000000000002E6
+:10BD600001555555555555545454000000000002D6
+:10BD700001555555555555545454000000000002C6
+:10BD800001555555555555545454000000000002B6
+:10BD900001555555555555545454000000000002A6
+:10BDA0000155555555555554545400000000000296
+:10BDB0000155555555555554545400000000000286
+:10BDC0000155555555555554545400000000000276
+:10BDD0000155555555555554545400000000000266
+:10BDE0000155555555555554545400000000000256
+:10BDF0000155555555555554545400000000000246
+:10BE00000155555555555554545400000000000037
+:10BE1000545555555555555454540000000000A82C
+:10BE2000545555555555555454000000000000A870
+:10BE300001555555555554540000000000000002AE
+:10BE4000015555555555545400000000000000029E
+:10BE5000015555555555545400000000000000028E
+:10BE6000015555555555545400000000000000027E
+:10BE7000015555555555545400000000000000026E
+:10BE8000015555555555545400000000000000025E
+:10BE9000015555555555545400000000000000024E
+:10BEA000015555555555545400000000000000023E
+:10BEB000015555555555545400000000000000022E
+:10BEC000015555555555545400000000000000021E
+:10BED000015555555555545400000000000000020E
+:10BEE00001555555555554540000000000000002FE
+:10BEF00001555555555554540000000000000002EE
+:10BF000001555555555554540000000000000002DD
+:10BF100001555555555554540000000000000002CD
+:10BF200001555555555554540000000000000000BF
+:10BF30000155555555555400000000000000000201
+:10BF400001555555555554000000000000000002F1
+:10BF500001555555555554000000000000000002E1
+:10BF600001555555555554000000000000000002D1
+:10BF700001555555555554000000000000000002C1
+:10BF800001555555555554000000000000000002B1
+:10BF900001555555555554000000000000000002A1
+:10BFA0000155555555555400000000000000000291
+:10BFB0000155555555555400000000000000000281
+:10BFC0000155555555555400000000000000000271
+:10BFD0000155555555555400000000000000000261
+:10BFE0000155555555555400000000000000000251
+:10BFF0000155555555555400000000000000000241
+:10C000000155555555555400000000000000000230
+:10C010000155555555555400000000000000000220
+:10C020000155555555555400000000000000000012
+:10C03000545555555554000000000000000000A85C
+:10C04000545555555554000000000000000000A84C
+:10C05000545555555554000000000000000000A83C
+:10C06000545555555554000000000000000000A82C
+:10C07000545555555554000000000000000000A81C
+:10C08000545555555554000000000000000000A80C
+:10C09000545555555554000000000000000000A8FC
+:10C0A000545555555554000000000000000000A8EC
+:10C0B000545555555554000000000000000000A8DC
+:10C0C000545555555554000000000000000000A8CC
+:10C0D000545555555554000000000000000000A8BC
+:10C0E000545555555554000000000000000000A8AC
+:10C0F000545555555554000000000000000000A89C
+:10C10000545555555554000000000000000000A88B
+:10C11000545555555554000000000000000000A87B
+:10C120005455555555540000000000000000000013
+:10C13000545555555554000000000000000000A85B
+:10C14000545555555554000000000000000000A84B
+:10C15000545555555554000000000000000000A83B
+:10C16000545555555554000000000000000000A82B
+:10C17000545555555554000000000000000000A81B
+:10C18000545555555554000000000000000000A80B
+:10C19000545555555554000000000000000000A8FB
+:10C1A000545555555554000000000000000000A8EB
+:10C1B000545555555554000000000000000000A8DB
+:10C1C000545555555554000000000000000000A8CB
+:10C1D000545555555554000000000000000000A8BB
+:10C1E000545555555554000000000000000000A8AB
+:10C1F000545555555554000000000000000000A89B
+:10C20000545555555554000000000000000000A88A
+:10C21000545555555554000000000000000000A87A
+:10C220005455555555540000000000000000000012
+:10C2300001555555540000000000000000000001A9
+:10C240000155555554000000000000000000000199
+:10C250000155555554000000000000000000000189
+:10C260000155555554000000000000000000000179
+:10C270000155555554000000000000000000000169
+:10C280000155555554000000000000000000000159
+:10C290000155555554000000000000000000000149
+:10C2A0000155555554000000000000000000000139
+:10C2B0000155555554000000000000000000000129
+:10C2C0000155555554000000000000000000000119
+:10C2D0000155555554000000000000000000000109
+:10C2E00001555555540000000000000000000001F9
+:10C2F00001555555540000000000000000000001E9
+:10C3000001555555540000000000000000000001D8
+:10C3100001555555540000000000000000000001C8
+:10C3200001555555540000000000000000000000B9
+:10C3300001555555540000000000000000000001A8
+:10C340000155555554000000000000000000000198
+:10C350000155555554000000000000000000000188
+:10C360000155555554000000000000000000000178
+:10C370000155555554000000000000000000000168
+:10C380000155555554000000000000000000000158
+:10C390000155555554000000000000000000000148
+:10C3A0000155555554000000000000000000000138
+:10C3B0000155555554000000000000000000000128
+:10C3C0000155555554000000000000000000000118
+:10C3D0000155555554000000000000000000000108
+:10C3E00001555555540000000000000000000001F8
+:10C3F00001555555540000000000000000000001E8
+:10C4000001555555540000000000000000000001D7
+:10C4100001555555540000000000000000000001C7
+:10C4200001555555540000000000000000000000B8
+:10C43000545555540000000000000000000000A802
+:10C44000545555540000000000000000000000A8F2
+:10C45000545555540000000000000000000000A8E2
+:10C46000545555540000000000000000000000A8D2
+:10C47000545555540000000000000000000000A8C2
+:10C48000545555540000000000000000000000A8B2
+:10C49000545555540000000000000000000000A8A2
+:10C4A000545555540000000000000000000000A892
+:10C4B000545555540000000000000000000000A882
+:10C4C000545555540000000000000000000000A872
+:10C4D000545555540000000000000000000000A862
+:10C4E000545555540000000000000000000000A852
+:10C4F000545555540000000000000000000000A842
+:10C50000545555540000000000000000000000A831
+:10C51000545555540000000000000000000000A821
+:10C5200054555554000000000000000000000000B9
+:10C53000545555540000000000000000000000A801
+:10C54000545555540000000000000000000000A8F1
+:10C55000545555540000000000000000000000A8E1
+:10C56000545555540000000000000000000000A8D1
+:10C57000545555540000000000000000000000A8C1
+:10C58000545555540000000000000000000000A8B1
+:10C59000545555540000000000000000000000A8A1
+:10C5A000545555540000000000000000000000A891
+:10C5B000545555540000000000000000000000A881
+:10C5C000545555540000000000000000000000A871
+:10C5D000545555540000000000000000000000A861
+:10C5E000545555540000000000000000000000A851
+:10C5F000545555540000000000000000000000A841
+:10C60000545555540000000000000000000000A830
+:10C61000545555540000000000000000000000A820
+:10C6200054555554000000000000000000000000B8
+:10C6300001555454000000000000000000000002FA
+:10C6400001555454000000000000000000000002EA
+:10C6500001555454000000000000000000000002DA
+:10C6600001555454000000000000000000000002CA
+:10C6700001555454000000000000000000000002BA
+:10C6800001555454000000000000000000000002AA
+:10C69000015554540000000000000000000000029A
+:10C6A000015554540000000000000000000000028A
+:10C6B000015554540000000000000000000000027A
+:10C6C000015554540000000000000000000000026A
+:10C6D000015554540000000000000000000000025A
+:10C6E000015554540000000000000000000000024A
+:10C6F000015554540000000000000000000000023A
+:10C700000155545400000000000000000000000229
+:10C710000155545400000000000000000000000219
+:10C72000015554540000000000000000000000000B
+:10C7300001555454000000000000000000000002F9
+:10C7400001555454000000000000000000000002E9
+:10C7500001555454000000000000000000000002D9
+:10C7600001555454000000000000000000000002C9
+:10C7700001555454000000000000000000000002B9
+:10C7800001555454000000000000000000000002A9
+:10C790000155545400000000000000000000000299
+:10C7A0000155545400000000000000000000000289
+:10C7B0000155545400000000000000000000000279
+:10C7C0000155545400000000000000000000000269
+:10C7D0000155545400000000000000000000000259
+:10C7E0000155545400000000000000000000000249
+:10C7F0000155545400000000000000000000000239
+:10C800000155545400000000000000000000000228
+:10C810000155545400000000000000000000000218
+:10C82000015554540000000000000000000000000A
+:10C83000545454000000000000000000000000A854
+:10C84000545454000000000000000000000000A844
+:10C85000545454000000000000000000000000A834
+:10C86000545454000000000000000000000000A824
+:10C87000545454000000000000000000000000A814
+:10C88000545454000000000000000000000000A804
+:10C89000545454000000000000000000000000A8F4
+:10C8A000545454000000000000000000000000A8E4
+:10C8B000545454000000000000000000000000A8D4
+:10C8C000545454000000000000000000000000A8C4
+:10C8D000545454000000000000000000000000A8B4
+:10C8E000545454000000000000000000000000A8A4
+:10C8F000545454000000000000000000000000A894
+:10C90000545454000000000000000000000000A883
+:10C91000545454000000000000000000000000A873
+:10C92000545454000000000000000000000000000B
+:10C93000575703030303030303030303030303AB77
+:10C94000575703030303030303030303030303AB67
+:10C95000575703030303030303030303030303AB57
+:10C96000575703030303030303030303030303AB47
+:10C97000575703030303030303030303030303AB37
+:10C98000575703030303030303030303030303AB27
+:10C99000575703030303030303030303030303AB17
+:10C9A000575703030303030303030303030303AB07
+:10C9B000575703030303030303030303030303ABF7
+:10C9C000575703030303030303030303030303ABE7
+:10C9D000575703030303030303030303030303ABD7
+:10C9E000575703030303030303030303030303ABC7
+:10C9F000575703030303030303030303030303ABB7
+:10CA0000575703030303030303030303030303ABA6
+:10CA1000575703030303030303030303030303AB96
+:10CA2000575703030303030303030303030303032E
+:10CA300000000000000000000000000000000000F6
+:10CA4000FCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFC26
+:10CA500000000000000000000000000000000000D6
+:10CA600000000000000000000000000000000000C6
+:10CA700000000000000000000000000000000000B6
+:10CA800000000000000000000000000000000000A6
+:10CA90000000000000000000000000000000000096
+:10CAA0000000000000000000000000000000000086
+:10CAB0000000000000000000000000000000000076
+:10CAC0000000000000000000000000000000000066
+:10CAD0000000000000000000000000000000000056
+:10CAE0000000000000000000000000000000000046
+:10CAF0000000000000000000000000000000000036
+:10CB00000056545454545454545454545454A855E2
+:10CB1000AA005454545454545454545454545455D2
+:10CB2000AA560054545454545454545454545455C0
+:10CB3000AA565400545454545454545454545455B0
+:10CB4000AA565454005454545454545454545455A0
+:10CB5000AA56545454005454545454545454545590
+:10CB6000AA56545454540054545454545454545580
+:10CB7000AA56545454545400545454545454545570
+:10CB8000AA56545454545454005454545454545560
+:10CB9000AA56545454545454540054545454545550
+:10CBA000AA56545454545454545400545454545540
+:10CBB000AA56545454545454545454005454545530
+:10CBC000AA56545454545454545454540054545520
+:10CBD000AA56545454545454545454545400545510
+:10CBE000AA56545454545454545454545454005500
+:10CBF000AA56446868A8A8A8A8A8A8A8A8A8A80091
+:10CC00000056545454545454545454545454540189
+:10CC100002005454545454545454545454545401CD
+:10CC200002560054545454545454545454545401BB
+:10CC300002565400545454545454545454545401AB
+:10CC4000025654540054545454545454545454019B
+:10CC5000025654545400545454545454545454018B
+:10CC6000025654545454005454545454545454017B
+:10CC7000025654545454540054545454545454016B
+:10CC8000025654545454545400545454545454015B
+:10CC9000025654545454545454005454545454014B
+:10CCA000025654545454545454540054545454013B
+:10CCB000025654545454545454545400545454012B
+:10CCC000025654545454545454545454005454011B
+:10CCD000025654545454545454545454540054010B
+:10CCE00002565454545454545454545454540001FB
+:10CCF000025654545868A8A8A8A8A8A8A8A8A8008C
+:10CD00000056566464A4A4A4A4A4A4A4A4A4A454F3
+:10CD1000A8005654545454545454545454545454D1
+:10CD2000A8560054545454545454545454545454C1
+:10CD3000A8565600545454545454545454545454AF
+:10CD4000A85656540054545454545454545454549F
+:10CD5000A85656545400545454545454545454548F
+:10CD6000A85656545454005454545454545454547F
+:10CD7000A85656545454540054545454545454546F
+:10CD8000A85656545454545400545454545454545F
+:10CD9000A85656545454545454005454545454544F
+:10CDA000A85656545454545454540054545454543F
+:10CDB000A85656545454545454545400545454542F
+:10CDC000A85656545454545454545454005454541F
+:10CDD000A85656545454545454545454540054540F
+:10CDE000A8565654545454545454545454540054FF
+:10CDF000A8565654545468A8A8A8A8A8A8A8A8003B
+:10CE0000005666A8A8A8A8A8A8A8A8A8A8A8A80086
+:10CE100000005654545454545454545454545400CC
+:10CE200000560054545454545454545454545400BC
+:10CE300000565600545454545454545454545400AA
+:10CE4000005656540054545454545454545454009A
+:10CE5000005656545400545454545454545454008A
+:10CE6000005656545454005454545454545454007A
+:10CE7000005656545454540054545454545454006A
+:10CE8000005656545454545400545454545454005A
+:10CE9000005656545454545454005454545454004A
+:10CEA000005656545454545454540054545454003A
+:10CEB000005656545454545454545400545454002A
+:10CEC000005656545454545454545454005454001A
+:10CED0000056565454545454545454545400A800B6
+:10CEE00000565654545454545454545454540000FA
+:10CEF000005656545454545454545454A8A85400EE
+:10CF00000056AAAAA8A8A8A8A8A8A8A8A8A8A855EA
+:10CF1000AA00AAAAA8A8A8A8A8A8A8A8A8A8A85586
+:10CF2000AAAA00AAA8A8A8A8A8A8A8A8A8A8A85576
+:10CF3000AAAAAA00A8A8A8A8A8A8A8A8A8A8A85566
+:10CF4000AAAAAAAA00A8A8A8A8A8A8A8A8A8A85554
+:10CF5000AAAAAAAAA800A8A8A8A8A8A8A8A8A85544
+:10CF6000AAAAAAAAA8A800A8A8A8A8A8A8A8A85534
+:10CF7000AAAAAAAAA8A8A800A8A8A8A8A8A8A85524
+:10CF8000AAAAAAAAA8A8A8A800A8A8A8A8A8A85514
+:10CF9000AAAAAAAAA8A8A8A8A800A8A8A8A8A85504
+:10CFA000AAAAAAAAA8A8A8A8A8A800A8A8A8A855F4
+:10CFB000AAAA5656545454545454540054545455D4
+:10CFC000AA56565654545454545454540054545518
+:10CFD000AA56565654545454545454545400545508
+:10CFE000AA565656545454545454545454540055F8
+:10CFF000AA565656545454545454545454545400E9
+:10D000000056AAAAA8A8A8A8A8A8A8A8A8A8A8013D
+:10D010000200AAAAA8A8A8A8A8A8A8A8A8A8A80181
+:10D0200002AA00AAA8A8A8A8A8A8A8A8A8A8A80171
+:10D0300002AAAA00A8A8A8A8A8A8A8A8A8A8A80161
+:10D0400002AAAAAA00A8A8A8A8A8A8A8A8A8A8014F
+:10D0500002AAAAAAA800A8A8A8A8A8A8A8A8A8013F
+:10D0600002AAAAAAA8A800A8A8A8A8A8A8A8A8012F
+:10D0700002AAAAAAA8A8A800A8A8A8A8A8A8A8011F
+:10D0800002AAAAAAA8A8A8A800A8A8A8A8A8A8010F
+:10D0900002AAAAAAA8A8A8A8A800A8A8A8A8A801FF
+:10D0A00002AAAAAAA8A8A8A8A8A800A8A8A8A801EF
+:10D0B00002AAAAAAA8A8A8A8A8A8A800A8A8A801DF
+:10D0C00002AAAAAAA8A8A8A8A8A8A8A800A8A801CF
+:10D0D0000256565654545454545454545400540103
+:10D0E00002565656545454545454545454540001F3
+:10D0F0000256565654545454545454545454540090
+:10D100000056AAAAAAA8A8A8A8A8A8A8A8A8A854E7
+:10D11000A800AAAAAAA8A8A8A8A8A8A8A8A8A85485
+:10D12000A8AA00AAAAA8A8A8A8A8A8A8A8A8A85475
+:10D13000A8AAAA00AAA8A8A8A8A8A8A8A8A8A85465
+:10D14000A8AAAAAA00A8A8A8A8A8A8A8A8A8A85455
+:10D15000A8AAAAAAAA00A8A8A8A8A8A8A8A8A85443
+:10D16000A8AAAAAAAAA800A8A8A8A8A8A8A8A85433
+:10D17000A8AAAAAAAAA8A800A8A8A8A8A8A8A85423
+:10D18000A8AAAAAAAAA8A8A800A8A8A8A8A8A85413
+:10D19000A8AAAAAAAAA8A8A8A800A8A8A8A8A85403
+:10D1A000A8AAAAAAAAA8A8A8A8A800A8A8A8A854F3
+:10D1B000A8AAAAAAAAA8A8A8A8A8A800A8A8A854E3
+:10D1C000A8AAAAAAAAA8A8A8A8A8A8A800A8A854D3
+:10D1D000A8AAAAAAAAA8A8A8A8A8A8A8A800A854C3
+:10D1E000A8AAAAAAAAA8A8A8A8A8A8A8A8A80054B3
+:10D1F000A8565656565454545454545454545400E7
+:10D2000000AAAAAAAAA8A8A8A8A8A8A8A8A8A800E6
+:10D210000000AAAAAAA8A8A8A8A8A8A8A8A8A80080
+:10D2200000AA00AAAAA8A8A8A8A8A8A8A8A8A80070
+:10D2300000AAAA00AAA8A8A8A8A8A8A8A8A8A80060
+:10D2400000AAAAAA00A8A8A8A8A8A8A8A8A8A80050
+:10D2500000AAAAAAAA00A8A8A8A8A8A8A8A8A8003E
+:10D2600000AAAAAAAAA800A8A8A8A8A8A8A8A8002E
+:10D2700000AAAAAAAAA8A800A8A8A8A8A8A8A8001E
+:10D2800000AAAAAAAAA8A8A800A8A8A8A8A8A8000E
+:10D2900000AAAAAAAAA8A8A8A800A8A8A8A8A800FE
+:10D2A00000AAAAAAAAA8A8A8A8A800A8A8A8A800EE
+:10D2B00000AAAAAAAAA8A8A8A8A8A800A8A8A800DE
+:10D2C00000AAAAAAAAA8A8A8A8A8A8A800A8A800CE
+:10D2D00000AAAAAAAAA8A8A8A8A8A8A8A800A800BE
+:10D2E00000AAAAAAAAA8A8A8A8A8A8A8A8A80000AE
+:10D2F000005656565654545454545454545454008E
+:10D3000000AA020202020000000000000000005516
+:10D31000AA00020202020000000000000000005506
+:10D32000AAAA00020202000000000000000000554E
+:10D33000AAAA02000202000000000000000000553E
+:10D34000AAAA02020002000000000000000000552E
+:10D35000AAAA02020200000000000000000000551E
+:10D36000AAAA02020202000000000000000000550C
+:10D37000AAAA0202020200000000000000000055FC
+:10D38000AAAA0202020200000000000000000055EC
+:10D39000AAAA0202020200000000000000000055DC
+:10D3A000AAAA0202020200000000000000000055CC
+:10D3B000AAAA0202020200000000000000000055BC
+:10D3C000AAAA0202020200000000000000000055AC
+:10D3D000AAAA02020202000000000000000000559C
+:10D3E000AAAA02020202000000000000000000558C
+:10D3F000AAAA0202020200000000000000000000D1
+:10D4000000AAAA020202000000000000000000556D
+:10D41000AA00AA020202000000000000000000555D
+:10D42000AAAA00020202000000000000000000554D
+:10D43000AAAAAA0002020000000000000000005595
+:10D44000AAAAAA0200020000000000000000005585
+:10D45000AAAAAA0202000000000000000000005575
+:10D46000AAAAAA0202020000000000000000005563
+:10D47000AAAAAA0202020000000000000000005553
+:10D48000AAAAAA0202020000000000000000005543
+:10D49000AAAAAA0202020000000000000000005533
+:10D4A000AAAAAA0202020000000000000000005523
+:10D4B000AAAAAA0202020000000000000000005513
+:10D4C000AAAAAA0202020000000000000000005503
+:10D4D000AAAAAA02020200000000000000000055F3
+:10D4E000AAAAAA02020200000000000000000055E3
+:10D4F000AAAAAA0202020000000000000000000028
+:10D5000000AAAAAA02020200000000000000000017
+:10D510004000AAAA02020200000000000000000071
+:10D5200040AA00AA02020200000000000000000061
+:10D5300040AAAA0002020200000000000000000051
+:10D5400040AAAAAA00020200000000000000000099
+:10D5500040AAAAAA02000200000000000000000089
+:10D5600040AAAAAA02020000000000000000000079
+:10D5700040AAAAAA02020200000000000000000067
+:10D5800040AAAAAA02020200000000000000000057
+:10D5900040AAAAAA02020200000000000000000047
+:10D5A00040AAAAAA02020200000000000000000037
+:10D5B00040AAAAAA02020200000000000000000027
+:10D5C00040AAAAAA02020200000000000000000017
+:10D5D00040AAAAAA02020200000000000000000007
+:10D5E00040AAAAAA020202000000000000000000F7
+:10D5F00054AAAAAA020202000000000000000000D3
+:10D6000000AAAAAA02020200000000000000000016
+:10D610004000AAAA02020200000000000000000070
+:10D6200040AA00AA02020200000000000000000060
+:10D6300040AAAA0002020200000000000000000050
+:10D6400040AAAAAA00020200000000000000000098
+:10D6500040AAAAAA02000200000000000000000088
+:10D6600040AAAAAA02020000000000000000000078
+:10D6700040AAAAAA02020200000000000000000066
+:10D6800040AAAAAA02020200000000000000000056
+:10D6900040AAAAAA02020200000000000000000046
+:10D6A00040AAAAAA02020200000000000000000036
+:10D6B00040AAAAAA02020200000000000000000026
+:10D6C00040AAAAAA02020200000000000000000016
+:10D6D00040AAAAAA02020200000000000000000006
+:10D6E00040AAAAAA020202000000000000000000F6
+:10D6F00054AAAAAA020202000000000000000000D2
+:10D7000000AAAAAA020202000000000000000055C0
+:10D710002A00AAAA02020200000000000000005530
+:10D720002AAA00AA02020200000000000000005520
+:10D730002AAAAA0002020200000000000000005510
+:10D740002AAAAAAA00020200000000000000005558
+:10D750002AAAAAAA02000200000000000000005548
+:10D760002AAAAAAA02020000000000000000005538
+:10D770002AAAAAAA02020200000000000000005526
+:10D780002AAAAAAA02020200000000000000005516
+:10D790002AAAAAAA02020200000000000000005506
+:10D7A0002AAAAAAA020202000000000000000055F6
+:10D7B0002AAAAAAA020202000000000000000055E6
+:10D7C0002AAAAAAA020202000000000000000055D6
+:10D7D0002AAAAAAA020202000000000000000055C6
+:10D7E0002AAAAAAA020202000000000000000055B6
+:10D7F00002AAAAAA02020200000000000000000023
+:10D8000000AAAAAA020202020000000000000055BD
+:10D810002A00AAAA0202020000000000000000552F
+:10D820002AAA00AA0202020000000000000000551F
+:10D830002AAAAA000202020000000000000000550F
+:10D840002AAAAAAA00020200000000000000005557
+:10D850002AAAAAAA02000200000000000000005547
+:10D860002AAAAAAA02020000000000000000005537
+:10D870002AAAAAAA02020200000000000000005525
+:10D880002AAAAAAA02020200000000000000005515
+:10D890002AAAAAAA02020200000000000000005505
+:10D8A0002AAAAAAA020202000000000000000055F5
+:10D8B0002AAAAAAA020202000000000000000055E5
+:10D8C0002AAAAAAA020202000000000000000055D5
+:10D8D0002AAAAAAA020202000000000000000055C5
+:10D8E0002AAAAAAA020202000000000000000055B5
+:10D8F00002AAAAAA02020200000000000000000022
+:10D9000000AAAAAAAA020202020000000000000067
+:10D910004000AAAAAA0202020000000000000000C3
+:10D9200040AA00AAAA0202020000000000000000B3
+:10D9300040AAAA00AA0202020000000000000000A3
+:10D9400040AAAAAA00020202000000000000000093
+:10D9500040AAAAAAAA0002020000000000000000DB
+:10D9600040AAAAAAAA0200020000000000000000CB
+:10D9700040AAAAAAAA0202000000000000000000BB
+:10D9800040AAAAAAAA0202020000000000000000A9
+:10D9900040AAAAAAAA020202000000000000000099
+:10D9A00040AAAAAAAA020202000000000000000089
+:10D9B00040AAAAAAAA020202000000000000000079
+:10D9C00040AAAAAAAA020202000000000000000069
+:10D9D00040AAAAAAAA020202000000000000000059
+:10D9E00040AAAAAAAA020202000000000000000049
+:10D9F00055AAAAAAAA020202000000000000000024
+:10DA000000AAAAAAAA020202020200000000000064
+:10DA10004000AAAAAA0202020200000000000000C0
+:10DA200040AA00AAAA0202020200000000000000B0
+:10DA300040AAAA00AA0202020200000000000000A0
+:10DA400040AAAAAA00020202020000000000000090
+:10DA500040AAAAAAAA0002020200000000000000D8
+:10DA600040AAAAAAAA0200020200000000000000C8
+:10DA700040AAAAAAAA0202000200000000000000B8
+:10DA800040AAAAAAAA0202020000000000000000A8
+:10DA900040AAAAAAAA020202020000000000000096
+:10DAA00040AAAAAAAA020202020000000000000086
+:10DAB00040AAAAAAAA020202020000000000000076
+:10DAC00040AAAAAAAA020202020000000000000066
+:10DAD00040AAAAAAAA020202020000000000000056
+:10DAE00040AAAAAAAA020202020000000000000046
+:10DAF00055AAAAAAAA020202020000000000000021
+:10DB000000AAAAAAAAAA0202020202000000005564
+:10DB10002A00AAAAAAAA02020202000000000055D6
+:10DB20002AAA00AAAAAA02020202000000000055C6
+:10DB30002AAAAA00AAAA02020202000000000055B6
+:10DB40002AAAAAAA00AA02020202000000000055A6
+:10DB50002AAAAAAAAA000202020200000000005596
+:10DB60002AAAAAAAAAAA00020202000000000055DE
+:10DB70002AAAAAAAAAAA02000202000000000055CE
+:10DB80002AAAAAAAAAAA02020002000000000055BE
+:10DB90002AAAAAAAAAAA02020200000000000055AE
+:10DBA0002AAAAAAAAAAA020202020000000000559C
+:10DBB0002AAAAAAAAAAA020202020000000000558C
+:10DBC0002AAAAAAAAAAA020202020000000000557C
+:10DBD0002AAAAAAAAAAA020202020000000000556C
+:10DBE0002AAAAAAAAAAA020202020000000000555C
+:10DBF00000AAAAAAAAAA02020202000000000000CB
+:10DC000000AAAAAAAAAA0202020202020000005561
+:10DC10002A00AAAAAAAA02020202020000000055D3
+:10DC20002AAA00AAAAAA02020202020000000055C3
+:10DC30002AAAAA00AAAA02020202020000000055B3
+:10DC40002AAAAAAA00AA02020202020000000055A3
+:10DC50002AAAAAAAAA000202020202000000005593
+:10DC60002AAAAAAAAAAA00020202020000000055DB
+:10DC70002AAAAAAAAAAA02000202020000000055CB
+:10DC80002AAAAAAAAAAA02020002020000000055BB
+:10DC90002AAAAAAAAAAA02020200020000000055AB
+:10DCA0002AAAAAAAAAAA020202020000000000559B
+:10DCB0002AAAAAAAAAAA0202020202000000005589
+:10DCC0002AAAAAAAAAAA0202020202000000005579
+:10DCD0002AAAAAAAAAAA0202020202000000005569
+:10DCE0002AAAAAAAAAAA0202020202000000005559
+:10DCF00000AAAAAAAAAA02020202020000000000C8
+:10DD000000AAAAAAAAAAAA0202020202020000000B
+:10DD10004000AAAAAAAAAA02020202020000000067
+:10DD200040AA00AAAAAAAA02020202020000000057
+:10DD300040AAAA00AAAAAA02020202020000000047
+:10DD400040AAAAAA00AAAA02020202020000000037
+:10DD500040AAAAAAAA00AA02020202020000000027
+:10DD600040AAAAAAAAAA0002020202020000000017
+:10DD700040AAAAAAAAAAAA0002020202000000005F
+:10DD800040AAAAAAAAAAAA0200020202000000004F
+:10DD900040AAAAAAAAAAAA0202000202000000003F
+:10DDA00040AAAAAAAAAAAA0202020002000000002F
+:10DDB00040AAAAAAAAAAAA0202020200000000001F
+:10DDC00040AAAAAAAAAAAA0202020202000000000D
+:10DDD00040AAAAAAAAAAAA020202020200000000FD
+:10DDE00040AAAAAAAAAAAA020202020200000000ED
+:10DDF00055AAAAAAAAAAAA020202020200000000C8
+:10DE000000AAAAAAAAAAAAAA020202020202000060
+:10DE10004000AAAAAAAAAAAA0202020202020000BA
+:10DE200040AA00AAAAAAAAAA0202020202020000AA
+:10DE300040AAAA00AAAAAAAA02020202020200009A
+:10DE400040AAAAAA00AAAAAA02020202020200008A
+:10DE500040AAAAAAAA00AAAA02020202020200007A
+:10DE600040AAAAAAAAAA00AA02020202020200006A
+:10DE700040AAAAAAAAAAAA0002020202020200005A
+:10DE800040AAAAAAAAAAAAAA0002020202020000A2
+:10DE900040AAAAAAAAAAAAAA020002020202000092
+:10DEA00040AAAAAAAAAAAAAA020200020202000082
+:10DEB00040AAAAAAAAAAAAAA020202000202000072
+:10DEC00040AAAAAAAAAAAAAA020202020002000062
+:10DED00040AAAAAAAAAAAAAA020202020200000052
+:10DEE00040AAAAAAAAAAAAAA020202020202000040
+:10DEF00055AAAAAAAAAAAAAA02020202020200001B
+:10DF000000A9A9A9A9A9A9A9A9010101010101556E
+:10DF10002A00A9A9A9A9A9A9A901010101010155DD
+:10DF20002AA900A9A9A9A9A9A901010101010155CD
+:10DF30002AA9A900A9A9A9A9A901010101010155BD
+:10DF40002AA9A9A900A9A9A9A901010101010155AD
+:10DF50002AA9A9A9A900A9A9A9010101010101559D
+:10DF60002AA9A9A9A9A900A9A9010101010101558D
+:10DF70002AA9A9A9A9A9A900A9010101010101557D
+:10DF80002AA9A9A9A9A9A9A900010101010101556D
+:10DF90002AA9A9A9A9A9A9A9A900010101010155B5
+:10DFA0002AA9A9A9A9A9A9A9A901000101010155A5
+:10DFB0002AA9A9A9A9A9A9A9A90101000101015595
+:10DFC0002AA9A9A9A9A9A9A9A90101010001015585
+:10DFD0002AA9A9A9A9A9A9A9A90101010100015575
+:10DFE0002AA9A9A9A9A9A9A9A90101010101005565
+:10DFF00000A9A9A9A9A9A9A9A901010101010100D3
+:10E0000000A9A9A9A9A9A9A9A9A9010101010154C6
+:10E010002800A9A9A9A9A9A9A9A901010101015437
+:10E0200028A900A9A9A9A9A9A9A901010101015427
+:10E0300028A9A900A9A9A9A9A9A901010101015417
+:10E0400028A9A9A900A9A9A9A9A901010101015407
+:10E0500028A9A9A9A900A9A9A9A9010101010154F7
+:10E0600028A9A9A9A9A900A9A9A9010101010154E7
+:10E0700028A9A9A9A9A9A900A9A9010101010154D7
+:10E0800028A9A9A9A9A9A9A900A9010101010154C7
+:10E0900028A9A9A9A9A9A9A9A900010101010154B7
+:10E0A00028A9A9A9A9A9A9A9A9A9000101010154FF
+:10E0B00028A9A9A9A9A9A9A9A9A9010001010154EF
+:10E0C00028A9A9A9A9A9A9A9A9A9010100010154DF
+:10E0D00028A9A9A9A9A9A9A9A9A9010101000154CF
+:10E0E00028A9A9A9A9A9A9A9A9A9010101010054BF
+:10E0F00001A9A9A9A9A9A9A9A9A901010101010029
+:10E1000000A9A9A9A9A9A9A9A9A901010101010118
+:10E110005600A9A9A9A9A9A9A9A90101010101015B
+:10E1200056A900A9A9A9A9A9A9A90101010101014B
+:10E1300056A9A900A9A9A9A9A9A90101010101013B
+:10E1400056A9A9A900A9A9A9A9A90101010101012B
+:10E1500056A9A9A9A900A9A9A9A90101010101011B
+:10E1600056A9A9A9A9A900A9A9A90101010101010B
+:10E1700056A9A9A9A9A9A900A9A9010101010101FB
+:10E1800056A9A9A9A9A9A9A900A9010101010101EB
+:10E1900056A9A9A9A9A9A9A9A900010101010101DB
+:10E1A00056A9A9A9A9A9A9A9A9A900010101010123
+:10E1B00056A9A9A9A9A9A9A9A9A901000101010113
+:10E1C00056A9A9A9A9A9A9A9A9A901010001010103
+:10E1D00056A9A9A9A9A9A9A9A9A9010101000101F3
+:10E1E00056A9A9A9A9A9A9A9A9A9010101010001E3
+:10E1F00054A9A9A9A9A9A9A9A9A9010101010100D5
+:10E2000000A9A9A9A9A9A9A9A9A9A9010101010070
+:10E210005500A9A9A9A9A9A9A9A9A90101010100B4
+:10E2200055A900A9A9A9A9A9A9A9A90101010100A4
+:10E2300055A9A900A9A9A9A9A9A9A9010101010094
+:10E2400055A9A9A900A9A9A9A9A9A9010101010084
+:10E2500055A9A9A9A900A9A9A9A9A9010101010074
+:10E2600055A9A9A9A9A900A9A9A9A9010101010064
+:10E2700055A9A9A9A9A9A900A9A9A9010101010054
+:10E2800055A9A9A9A9A9A9A900A9A9010101010044
+:10E2900055A9A9A9A9A9A9A9A900A9010101010034
+:10E2A00055A9A9A9A9A9A9A9A9A900010101010024
+:10E2B00055A9A9A9A9A9A9A9A9A9A900010101006C
+:10E2C00055A9A9A9A9A9A9A9A9A9A901000101005C
+:10E2D00055A9A9A9A9A9A9A9A9A9A901010001004C
+:10E2E00055A9A9A9A9A9A9A9A9A9A901010100003C
+:10E2F00055A9A9A9A9A9A9A9A9A9A901010101002B
+:10E3000000A9A9A9A9A9A9A9A9A9A9A90101015572
+:10E310000000A9A9A9A9A9A9A9A9A9A9010101550B
+:10E3200000A900A9A9A9A9A9A9A9A9A901010155FB
+:10E3300000A9A900A9A9A9A9A9A9A9A901010155EB
+:10E3400000A9A9A900A9A9A9A9A9A9A901010155DB
+:10E3500000A9A9A9A900A9A9A9A9A9A901010155CB
+:10E3600000A9A9A9A9A900A9A9A9A9A901010155BB
+:10E3700000A9A9A9A9A9A900A9A9A9A901010155AB
+:10E3800000A9A9A9A9A9A9A900A9A9A9010101559B
+:10E3900000A9A9A9A9A9A9A9A900A9A9010101558B
+:10E3A00000A9A9A9A9A9A9A9A9A900A9010101557B
+:10E3B00000A9A9A9A9A9A9A9A9A9A900010101556B
+:10E3C00000A9A9A9A9A9A9A9A9A9A9A900010155B3
+:10E3D00000A9A9A9A9A9A9A9A9A9A9A901000155A3
+:10E3E00000A9A9A9A9A9A9A9A9A9A9A90101005593
+:10E3F00000A9A9A9A9A9A9A9A9A9A9A901010100D7
+:10E4000000A9A9A9A9A9A9A9A9A9A9A9A9010154CA
+:10E410000100A9A9A9A9A9A9A9A9A9A9A901015462
+:10E4200001A900A9A9A9A9A9A9A9A9A9A901015452
+:10E4300001A9A900A9A9A9A9A9A9A9A9A901015442
+:10E4400001A9A9A900A9A9A9A9A9A9A9A901015432
+:10E4500001A9A9A9A900A9A9A9A9A9A9A901015422
+:10E4600001A9A9A9A9A900A9A9A9A9A9A901015412
+:10E4700001A9A9A9A9A9A900A9A9A9A9A901015402
+:10E4800001A9A9A9A9A9A9A900A9A9A9A9010154F2
+:10E4900001A9A9A9A9A9A9A9A900A9A9A9010154E2
+:10E4A00001A9A9A9A9A9A9A9A9A900A9A9010154D2
+:10E4B00001A9A9A9A9A9A9A9A9A9A900A9010154C2
+:10E4C00001A9A9A9A9A9A9A9A9A9A9A900010154B2
+:10E4D00001A9A9A9A9A9A9A9A9A9A9A9A9000154FA
+:10E4E00001A9A9A9A9A9A9A9A9A9A9A9A9010054EA
+:10E4F00001A9A9A9A9A9A9A9A9A9A9A9A90101002D
+:10E5000000A9A9A9A9A9A9A9A9A9A9A9A9A9010174
+:10E510005400A9A9A9A9A9A9A9A9A9A9A9A90101B9
+:10E5200054A900A9A9A9A9A9A9A9A9A9A9A90101A9
+:10E5300054A9A900A9A9A9A9A9A9A9A9A9A9010199
+:10E5400054A9A9A900A9A9A9A9A9A9A9A9A9010189
+:10E5500054A9A9A9A900A9A9A9A9A9A9A9A9010179
+:10E5600054A9A9A9A9A900A9A9A9A9A9A9A9010169
+:10E5700054A9A9A9A9A9A900A9A9A9A9A9A9010159
+:10E5800054A9A9A9A9A9A9A900A9A9A9A9A9010149
+:10E5900054A9A9A9A9A9A9A9A900A9A9A9A9010139
+:10E5A00054A9A9A9A9A9A9A9A9A900A9A9A9010129
+:10E5B00054A9A9A9A9A9A9A9A9A9A900A9A9010119
+:10E5C00054A9A9A9A9A9A9A9A9A9A9A900A9010109
+:10E5D00054A9A9A9A9A9A9A9A9A9A9A9A9000101F9
+:10E5E00054A9A9A9A9A9A9A9A9A9A9A9A9A9000141
+:10E5F00054A9A9A9A9A9A9A9A9A9A9A9A9A9010031
+:10E60000005555555656565655555555555555540C
+:10E610000100555555555555555555555555555454
+:10E620000155005555555555555555555555555444
+:10E630000155550055555555555555555555555434
+:10E640000155555500555555555555555555555424
+:10E650000155555555005555555555555555555414
+:10E660000155555555550055555555555555555404
+:10E6700001555555555555005555555555555554F4
+:10E6800001555555555555550055555555555554E4
+:10E6900001555555555555555500555555555554D4
+:10E6A00001555555555555555555005555555554C4
+:10E6B00001555555555555555555550055555554B4
+:10E6C00001555555555555555555555500555554A4
+:10E6D0000155555555555555555555555500555494
+:10E6E0000155555555555555555555555555005484
+:10E6F0000155555555555555555555555555550073
+:10E700000055555656565656565555555555555607
+:10E7100054005555555555555555555555555556FE
+:10E7200054550055555555555555555555555556EE
+:10E7300054555500555555555555555555555556DE
+:10E7400054555555005555555555555555555556CE
+:10E7500054555555550055555555555555555556BE
+:10E7600054555555555500555555555555555556AE
+:10E77000545555555555550055555555555555569E
+:10E78000545555555555555500555555555555568E
+:10E79000545555555555555555005555555555567E
+:10E7A000545555555555555555550055555555566E
+:10E7B000545555555555555555555500555555565E
+:10E7C000545555555555555555555555005555564E
+:10E7D000545555555555555555555555550055563E
+:10E7E000545555555555555555555555555500562E
+:10E7F000545555555555555555555555555555001F
+:10E80000005555565656565656555656555555AAB0
+:10E81000010055555656565655555555555555AAF8
+:10E82000015500555656565655555555555555AAE8
+:10E83000015555005656565655555555555555AAD8
+:10E84000015555550056565655555555555555AAC9
+:10E85000015555555600565655555555555555AAB9
+:10E86000015555555656005655555555555555AAA9
+:10E87000015555555656560055555555555555AA99
+:10E88000015555555656565600555555555555AA88
+:10E89000015555555656565655005555555555AA78
+:10E8A000015555555656565655550055555555AA68
+:10E8B000015555555656565655555500555555AA58
+:10E8C000015555555656565655555555005555AA48
+:10E8D000015555555656565655555555550055AA38
+:10E8E000015555555656565655555555555500AA28
+:10E8F0000155555555555555555555555555550071
+:10E90000005555565656565656565656565656A8AD
+:10E91000540056565656565656565656565656A89D
+:10E92000545600565656565656565656565656A88D
+:10E93000545656005656565656565656565656A87D
+:10E94000545656560056565656565656565656A86D
+:10E95000545656565600565656565656565656A85D
+:10E96000545656565656005656565656565656A84D
+:10E97000545656565656560056565656565656A83D
+:10E98000545656565656565600565656565656A82D
+:10E99000545656565656565656005656565656A81D
+:10E9A000545656565656565656560056565656A80D
+:10E9B000545656565656565656565600565656A8FD
+:10E9C000545656565656565656565656005656A8ED
+:10E9D000545656565656565656565656560056A8DD
+:10E9E000545656565656565656565656565600A8CD
+:10E9F0005455555656565656545456565656560015
+:10EA00000056565656565656565656565656560250
+:10EA10000100565656565656565656565656560295
+:10EA20000156005656565656565656565656560285
+:10EA30000156560056565656565656565656560275
+:10EA40000156565600565656565656565656560265
+:10EA50000156565656005656565656565656560255
+:10EA60000156565656560056565656565656560245
+:10EA70000156565656565600565656565656560235
+:10EA80000156565656565656005656565656560225
+:10EA90000156565656565656560056565656560215
+:10EAA0000156565656565656565600565656560205
+:10EAB00001565656565656565656560056565602F5
+:10EAC00001565656565656565656565600565602E5
+:10EAD00001565656565656565656565656005602D5
+:10EAE00001565656565656565656565656560002C5
+:10EAF0000155545656565656565656565656560064
+:10EB0000005656565656565656565656565656A8A9
+:10EB1000540056565656565656565656565656A89B
+:10EB2000545600565656565656565656565656A88B
+:10EB3000545656005656565656565656565656A87B
+:10EB4000545656560056565656565656565656A86B
+:10EB5000545656565600565656565656565656A85B
+:10EB6000545656565656005656565656565656A84B
+:10EB7000545656565656560056565656565656A83B
+:10EB8000545656565656565600565656565656A82B
+:10EB9000545656565656565656005656565656A81B
+:10EBA000545656565656565656560056565656A80B
+:10EBB000545656565656565656565600565656A8FB
+:10EBC000545656565656565656565656005656A8EB
+:10EBD000545656565656565656565656560056A8DB
+:10EBE000545656565656565656565656565600A8CB
+:10EBF000545656565656565656565656565656000D
+:10EC0000005656565656565656565656565656024E
+:10EC10000100565656565656565656565656560293
+:10EC20000156005656565656565656565656560283
+:10EC30000156560056565656565656565656560273
+:10EC40000156565600565656565656565656560263
+:10EC50000156565656005656565656565656560253
+:10EC60000156565656560056565656565656560243
+:10EC70000156565656565600565656565656560233
+:10EC80000156565656565656005656565656560223
+:10EC90000156565656565656560056565656560213
+:10ECA0000156565656565656565600565656560203
+:10ECB00001565656565656565656560056565602F3
+:10ECC00001565656565656565656565600565602E3
+:10ECD00001565656565656565656565656005602D3
+:10ECE00001565656565656565656565656560002C3
+:10ECF000015656565656565656565656565656005F
+:10ED0000005656565656565656565656565656A8A7
+:10ED1000540056565656565656565656565656A899
+:10ED2000545600565656565656565656565656A889
+:10ED3000545656005656565656565656565656A879
+:10ED4000545656560056565656565656565656A869
+:10ED5000545656565600565656565656565656A859
+:10ED6000545656565656005656565656565656A849
+:10ED7000545656565656560056565656565656A839
+:10ED8000545656565656565600565656565656A829
+:10ED9000545656565656565656005656565656A819
+:10EDA000545656565656565656560056565656A809
+:10EDB000545656565656565656565600565656A8F9
+:10EDC000545656565656565656565656005656A8E9
+:10EDD000545656565656565656565656560056A8D9
+:10EDE000545656565656565656565656565600A8C9
+:10EDF000545656565656565656565656565656000B
+:10EE000000AAAAAAAAAAAAAAAAAAAAAAAAAAAA02B4
+:10EE10000100AAAAAAAAAAAAAAAAAAAAAAAAAA024D
+:10EE200001AA00AAAAAAAAAAAAAAAAAAAAAAAA023D
+:10EE300001AAAA00AAAAAAAAAAAAAAAAAAAAAA022D
+:10EE400001AAAAAA00AAAAAAAAAAAAAAAAAAAA021D
+:10EE500001AAAAAAAA00AAAAAAAAAAAAAAAAAA020D
+:10EE600001AAAAAAAAAA00AAAAAAAAAAAAAAAA02FD
+:10EE700001AAAAAAAAAAAA00AAAAAAAAAAAAAA02ED
+:10EE800001AAAAAAAAAAAAAA00AAAAAAAAAAAA02DD
+:10EE900001AAAAAAAAAAAAAAAA00AAAAAAAAAA02CD
+:10EEA00001AAAAAAAAAAAAAAAAAA00AAAAAAAA02BD
+:10EEB00001AAAAAAAAAAAAAAAAAAAA00AAAAAA02AD
+:10EEC00001AAAAAAAAAAAAAAAAAAAAAA00AAAA029D
+:10EED00001AAAAAAAAAAAAAAAAAAAAAAAA00AA028D
+:10EEE00001AAAAAAAAAAAAAAAAAAAAAAAAAA00027D
+:10EEF00001AAAAAAAAAAAAAAAAAAAAAAAAAAAA00C5
+:10EF000000AAAAAAAAAAAAAAAAAAAAAAAAAAAAA80D
+:10EF10005400AAAAAAAAAAAAAAAAAAAAAAAAAAA853
+:10EF200054AA00AAAAAAAAAAAAAAAAAAAAAAAAA843
+:10EF300054AAAA00AAAAAAAAAAAAAAAAAAAAAAA833
+:10EF400054AAAAAA00AAAAAAAAAAAAAAAAAAAAA823
+:10EF500054AAAAAAAA00AAAAAAAAAAAAAAAAAAA813
+:10EF600054AAAAAAAAAA00AAAAAAAAAAAAAAAAA803
+:10EF700054AAAAAAAAAAAA00AAAAAAAAAAAAAAA8F3
+:10EF800054AAAAAAAAAAAAAA00AAAAAAAAAAAAA8E3
+:10EF900054AAAAAAAAAAAAAAAA00AAAAAAAAAAA8D3
+:10EFA00054AAAAAAAAAAAAAAAAAA00AAAAAAAAA8C3
+:10EFB00054AAAAAAAAAAAAAAAAAAAA00AAAAAAA8B3
+:10EFC00054AAAAAAAAAAAAAAAAAAAAAA00AAAAA8A3
+:10EFD00054AAAAAAAAAAAAAAAAAAAAAAAA00AAA893
+:10EFE00054AAAAAAAAAAAAAAAAAAAAAAAAAA00A883
+:10EFF00054AAAAAAAAAAAAAAAAAAAAAAAAAAAA0071
+:10F0000000AAAAAAAAAAAAAAAAAAAAAAAAAAAA02B2
+:10F010000100AAAAAAAAAAAAAAAAAAAAAAAAAA024B
+:10F0200001AA00AAAAAAAAAAAAAAAAAAAAAAAA023B
+:10F0300001AAAA00AAAAAAAAAAAAAAAAAAAAAA022B
+:10F0400001AAAAAA00AAAAAAAAAAAAAAAAAAAA021B
+:10F0500001AAAAAAAA00AAAAAAAAAAAAAAAAAA020B
+:10F0600001AAAAAAAAAA00AAAAAAAAAAAAAAAA02FB
+:10F0700001AAAAAAAAAAAA00AAAAAAAAAAAAAA02EB
+:10F0800001AAAAAAAAAAAAAA00AAAAAAAAAAAA02DB
+:10F0900001AAAAAAAAAAAAAAAA00AAAAAAAAAA02CB
+:10F0A00001AAAAAAAAAAAAAAAAAA00AAAAAAAA02BB
+:10F0B00001AAAAAAAAAAAAAAAAAAAA00AAAAAA02AB
+:10F0C00001AAAAAAAAAAAAAAAAAAAAAA00AAAA029B
+:10F0D00001AAAAAAAAAAAAAAAAAAAAAAAA00AA028B
+:10F0E00001AAAAAAAAAAAAAAAAAAAAAAAAAA00027B
+:10F0F00001AAAAAAAAAAAAAAAAAAAAAAAAAAAA00C3
+:10F1000000AAAAAAAAAAAAAAAAAAAAAAAAAAAAA80B
+:10F110005400AAAAAAAAAAAAAAAAAAAAAAAAAAA851
+:10F1200054AA00AAAAAAAAAAAAAAAAAAAAAAAAA841
+:10F1300054AAAA00AAAAAAAAAAAAAAAAAAAAAAA831
+:10F1400054AAAAAA00AAAAAAAAAAAAAAAAAAAAA821
+:10F1500054AAAAAAAA00AAAAAAAAAAAAAAAAAAA811
+:10F1600054AAAAAAAAAA00AAAAAAAAAAAAAAAAA801
+:10F1700054AAAAAAAAAAAA00AAAAAAAAAAAAAAA8F1
+:10F1800054AAAAAAAAAAAAAA00AAAAAAAAAAAAA8E1
+:10F1900054AAAAAAAAAAAAAAAA00AAAAAAAAAAA8D1
+:10F1A00054AAAAAAAAAAAAAAAAAA00AAAAAAAAA8C1
+:10F1B00054AAAAAAAAAAAAAAAAAAAA00AAAAAAA8B1
+:10F1C00054AAAAAAAAAAAAAAAAAAAAAA00AAAAA8A1
+:10F1D00054AAAAAAAAAAAAAAAAAAAAAAAA00AAA891
+:10F1E00054AAAAAAAAAAAAAAAAAAAAAAAAAA00A881
+:10F1F00054AAAAAAAAAAAAAAAAAAAAAAAAAAAA006F
+:10F2000000AAAAAAAAAAAAAAAAAAAAAAAAAAAA02B0
+:10F210000100AAAAAAAAAAAAAAAAAAAAAAAAAA0249
+:10F2200001AA00AAAAAAAAAAAAAAAAAAAAAAAA0239
+:10F2300001AAAA00AAAAAAAAAAAAAAAAAAAAAA0229
+:10F2400001AAAAAA00AAAAAAAAAAAAAAAAAAAA0219
+:10F2500001AAAAAAAA00AAAAAAAAAAAAAAAAAA0209
+:10F2600001AAAAAAAAAA00AAAAAAAAAAAAAAAA02F9
+:10F2700001AAAAAAAAAAAA00AAAAAAAAAAAAAA02E9
+:10F2800001AAAAAAAAAAAAAA00AAAAAAAAAAAA02D9
+:10F2900001AAAAAAAAAAAAAAAA00AAAAAAAAAA02C9
+:10F2A00001AAAAAAAAAAAAAAAAAA00AAAAAAAA02B9
+:10F2B00001AAAAAAAAAAAAAAAAAAAA00AAAAAA02A9
+:10F2C00001AAAAAAAAAAAAAAAAAAAAAA00AAAA0299
+:10F2D00001AAAAAAAAAAAAAAAAAAAAAAAA00AA0289
+:10F2E00001AAAAAAAAAAAAAAAAAAAAAAAAAA000279
+:10F2F00001AAAAAAAAAAAAAAAAAAAAAAAAAAAA00C1
+:10F3000000A9A9A9A9A9A9A9A9A9A9A9A9A9A8A818
+:10F310005400A9A9A9A9A9A9A9A9A9A9A9A9A8A85D
+:10F3200054A900A9A9A9A9A9A9A9A9A9A9A9A8A84D
+:10F3300054A9A900A9A9A9A9A9A9A9A9A9A9A8A83D
+:10F3400054A9A9A900A9A9A9A9A9A9A9A9A9A8A82D
+:10F3500054A9A9A9A900A9A9A9A9A9A9A9A9A8A81D
+:10F3600054A9A9A9A9A900A9A9A9A9A9A9A9A8A80D
+:10F3700054A9A9A9A9A9A900A9A9A9A9A9A9A8A8FD
+:10F3800054A9A9A9A9A9A9A900A9A9A9A9A9A8A8ED
+:10F3900054A9A9A9A9A9A9A9A900A9A9A9A9A8A8DD
+:10F3A00054A9A9A9A9A9A9A9A9A900A9A9A9A8A8CD
+:10F3B00054A9A9A9A9A9A9A9A9A9A900A9A9A8A8BD
+:10F3C00054A9A9A9A9A9A9A9A9A9A9A900A9A8A8AD
+:10F3D00054A9A9A9A9A9A9A9A9A9A9A9A900A8A89D
+:10F3E00054A9A9A9A9A9A9A9A9A9A9A9A9A900A88C
+:10F3F00054A9A9A9A9A9A9A9A9A9A9A9A9A9A8007C
+:10F4000000A9A9A9A9A9A9A9A9A9A9A9A9A8A800C0
+:10F410000000A9A9A9A9A9A9A9A9A9A9A9A8A80059
+:10F4200000A900A9A9A9A9A9A9A9A9A9A9A8A80049
+:10F4300000A9A900A9A9A9A9A9A9A9A9A9A8A80039
+:10F4400000A9A9A900A9A9A9A9A9A9A9A9A8A80029
+:10F4500000A9A9A9A900A9A9A9A9A9A9A9A8A80019
+:10F4600000A9A9A9A9A900A9A9A9A9A9A9A8A80009
+:10F4700000A9A9A9A9A9A900A9A9A9A9A9A8A800F9
+:10F4800000A9A9A9A9A9A9A900A9A9A9A9A8A800E9
+:10F4900000A9A9A9A9A9A9A9A900A9A9A9A8A800D9
+:10F4A00000A9A9A9A9A9A9A9A9A900A9A9A8A800C9
+:10F4B00000A9A9A9A9A9A9A9A9A9A900A9A8A800B9
+:10F4C00000A9A9A9A9A9A9A9A9A9A9A900A8A800A9
+:10F4D00000A9A9A9A9A9A9A9A9A9A9A9A900A80098
+:10F4E00000A9A9A9A9A9A9A9A9A9A9A9A9A8000088
+:10F4F00000A9A9A9A9A9A9A9A9A9A9A9A9A8A800D0
+:10F5000000A9A9A9A9A9A9A9A9A9A9A9A8A8A8AA16
+:10F510005500A9A9A9A9A9A9A9A9A9A9A8A8A8AA5A
+:10F5200055A900A9A9A9A9A9A9A9A9A9A8A8A8AA4A
+:10F5300055A9A900A9A9A9A9A9A9A9A9A8A8A8AA3A
+:10F5400055A9A9A900A9A9A9A9A9A9A9A8A8A8AA2A
+:10F5500055A9A9A9A900A9A9A9A9A9A9A8A8A8AA1A
+:10F5600055A9A9A9A9A900A9A9A9A9A9A8A8A8AA0A
+:10F5700055A9A9A9A9A9A900A9A9A9A9A8A8A8AAFA
+:10F5800055A9A9A9A9A9A9A900A9A9A9A8A8A8AAEA
+:10F5900055A9A9A9A9A9A9A9A900A9A9A8A8A8AADA
+:10F5A00055A9A9A9A9A9A9A9A9A900A9A8A8A8AACA
+:10F5B00055A9A9A9A9A9A9A9A9A9A900A8A8A8AABA
+:10F5C00055A9A9A9A9A9A9A9A9A9A9A900A8A8AAA9
+:10F5D00055A9A9A9A9A9A9A9A9A9A9A9A800A8AA99
+:10F5E00055A9A9A9A9A9A9A9A9A9A9A9A8A800AA89
+:10F5F00055A9A9A9A9A9A9A9A9A9A9A9A8A8A8007B
+:10F6000000555555555555555555555454540002AA
+:10F6100001005555555555555555555454540002EE
+:10F6200001550055555555555555555454540002DE
+:10F6300001555500555555555555555454540002CE
+:10F6400001555555005555555555555454540002BE
+:10F6500001555555550055555555555454540002AE
+:10F66000015555555555005555555554545400029E
+:10F67000015555555555550055555554545400028E
+:10F68000015555555555555500555554545400027E
+:10F69000015555555555555555005554545400026E
+:10F6A000015555555555555555550054545400025E
+:10F6B000015555555555555555555500545400024D
+:10F6C000015555555555555555555554005400023D
+:10F6D000015555555555555555555554540000022D
+:10F6E00001555555555555555555555454540002C9
+:10F6F00001555555555555555555555454540000BB
+:10F70000005555555555555555555454540000A858
+:10F71000540055555555555555555454540000A849
+:10F72000545500555555555555555454540000A839
+:10F73000545555005555555555555454540000A829
+:10F74000545555550055555555555454540000A819
+:10F75000545555555500555555555454540000A809
+:10F76000545555555555005555555454540000A8F9
+:10F77000545555555555550055555454540000A8E9
+:10F78000545555555555555500555454540000A8D9
+:10F79000545555555555555555005454540000A8C9
+:10F7A000545555555555555555550054540000A8B8
+:10F7B000545555555555555555555400540000A8A8
+:10F7C000545555555555555555555454000000A898
+:10F7D000545555555555555555555454540000A834
+:10F7E000545555555555555555555454540000A824
+:10F7F00054555555555555555555545454000000BC
+:10F80000005555555555555555545454000000A8AC
+:10F81000540055555555555555545454000000A89D
+:10F82000545500555555555555545454000000A88D
+:10F83000545555005555555555545454000000A87D
+:10F84000545555550055555555545454000000A86D
+:10F85000545555555500555555545454000000A85D
+:10F86000545555555555005555545454000000A84D
+:10F87000545555555555550055545454000000A83D
+:10F88000545555555555555500545454000000A82D
+:10F89000545555555555555555005454000000A81C
+:10F8A000545555555555555555540054000000A80C
+:10F8B000545555555555555555545400000000A8FC
+:10F8C000545555555555555555545454000000A898
+:10F8D000545555555555555555545454000000A888
+:10F8E000545555555555555555545454000000A878
+:10F8F0005455555555555555555454540000000010
+:10F9000000555555555555555454540000000002A6
+:10F9100001005555555555555454540000000002EA
+:10F9200001550055555555555454540000000002DA
+:10F9300001555500555555555454540000000002CA
+:10F9400001555555005555555454540000000002BA
+:10F9500001555555550055555454540000000002AA
+:10F96000015555555555005554545400000000029A
+:10F97000015555555555550054545400000000028A
+:10F980000155555555555555005454000000000279
+:10F990000155555555555555540054000000000269
+:10F9A0000155555555555555545400000000000259
+:10F9B00001555555555555555454540000000002F5
+:10F9C00001555555555555555454540000000002E5
+:10F9D00001555555555555555454540000000002D5
+:10F9E00001555555555555555454540000000002C5
+:10F9F00001555555555555555454540000000000B7
+:10FA000000555555555555545454000000000002FA
+:10FA1000010055555555555454540000000000023E
+:10FA2000015500555555555454540000000000022E
+:10FA3000015555005555555454540000000000021E
+:10FA4000015555550055555454540000000000020E
+:10FA500001555555550055545454000000000002FE
+:10FA600001555555555500545454000000000002EE
+:10FA700001555555555555005454000000000002DD
+:10FA800001555555555555540054000000000002CD
+:10FA900001555555555555545400000000000002BD
+:10FAA0000155555555555554545400000000000259
+:10FAB0000155555555555554545400000000000249
+:10FAC0000155555555555554545400000000000239
+:10FAD0000155555555555554545400000000000229
+:10FAE0000155555555555554545400000000000219
+:10FAF000015555555555555454540000000000000B
+:10FB0000005555555555555454540000000000A853
+:10FB1000540055555555555454540000000000A844
+:10FB2000545500555555555454540000000000A834
+:10FB3000545555005555555454540000000000A824
+:10FB4000545555550055555454540000000000A814
+:10FB5000545555555500555454540000000000A804
+:10FB6000545555555555005454540000000000A8F4
+:10FB7000545555555555550054540000000000A8E3
+:10FB8000545555555555555400540000000000A8D3
+:10FB9000545555555555555454000000000000A8C3
+:10FBA000545555555555555454540000000000A85F
+:10FBB000545555555555555454540000000000A84F
+:10FBC000545555555555555454540000000000A83F
+:10FBD000545555555555555454540000000000A82F
+:10FBE000545555555555555454540000000000A81F
+:10FBF00054555555555555545454000000000000B7
+:10FC0000005555555555555454000000000000A8A6
+:10FC1000540055555555555454000000000000A897
+:10FC2000545500555555555454000000000000A887
+:10FC3000545555005555555454000000000000A877
+:10FC4000545555550055555454000000000000A867
+:10FC5000545555555500555454000000000000A857
+:10FC6000545555555555005454000000000000A847
+:10FC7000545555555555550054000000000000A836
+:10FC8000545555555555555400000000000000A826
+:10FC9000545555555555555454000000000000A8C2
+:10FCA000545555555555555454000000000000A8B2
+:10FCB000545555555555555454000000000000A8A2
+:10FCC000545555555555555454000000000000A892
+:10FCD000545555555555555454000000000000A882
+:10FCE000545555555555555454000000000000A872
+:10FCF000545555555555555454000000000000000A
+:10FD000000555555555554540000000000000002A0
+:10FD100001005555555554540000000000000002E4
+:10FD200001550055555554540000000000000002D4
+:10FD300001555500555554540000000000000002C4
+:10FD400001555555005554540000000000000002B4
+:10FD500001555555550054540000000000000002A4
+:10FD60000155555555550054000000000000000293
+:10FD70000155555555555400000000000000000283
+:10FD8000015555555555545400000000000000021F
+:10FD9000015555555555545400000000000000020F
+:10FDA00001555555555554540000000000000002FF
+:10FDB00001555555555554540000000000000002EF
+:10FDC00001555555555554540000000000000002DF
+:10FDD00001555555555554540000000000000002CF
+:10FDE00001555555555554540000000000000002BF
+:10FDF00001555555555554540000000000000000B1
+:10FE000000555555555554000000000000000002F3
+:10FE10000100555555555400000000000000000237
+:10FE20000155005555555400000000000000000227
+:10FE30000155550055555400000000000000000217
+:10FE40000155555500555400000000000000000207
+:10FE500001555555550054000000000000000002F7
+:10FE600001555555555500000000000000000002E6
+:10FE70000155555555555400000000000000000282
+:10FE80000155555555555400000000000000000272
+:10FE90000155555555555400000000000000000262
+:10FEA0000155555555555400000000000000000252
+:10FEB0000155555555555400000000000000000242
+:10FEC0000155555555555400000000000000000232
+:10FED0000155555555555400000000000000000222
+:10FEE0000155555555555400000000000000000212
+:10FEF0000155555555555400000000000000000004
+:10FF0000005555555554000000000000000000A8A1
+:10FF1000540055555554000000000000000000A892
+:10FF2000545500555554000000000000000000A882
+:10FF3000545555005554000000000000000000A872
+:10FF4000545555550054000000000000000000A862
+:10FF5000545555555500000000000000000000A851
+:10FF6000545555555554000000000000000000A8ED
+:10FF7000545555555554000000000000000000A8DD
+:10FF8000545555555554000000000000000000A8CD
+:10FF9000545555555554000000000000000000A8BD
+:10FFA000545555555554000000000000000000A8AD
+:10FFB000545555555554000000000000000000A89D
+:10FFC000545555555554000000000000000000A88D
+:10FFD000545555555554000000000000000000A87D
+:10FFE000545555555554000000000000000000A86D
+:10FFF0005455555555540000000000000000000005
+:020000040006F4
+:10000000005555555554000000000000000000A8A0
+:10001000540055555554000000000000000000A891
+:10002000545500555554000000000000000000A881
+:10003000545555005554000000000000000000A871
+:10004000545555550054000000000000000000A861
+:10005000545555555500000000000000000000A850
+:10006000545555555554000000000000000000A8EC
+:10007000545555555554000000000000000000A8DC
+:10008000545555555554000000000000000000A8CC
+:10009000545555555554000000000000000000A8BC
+:1000A000545555555554000000000000000000A8AC
+:1000B000545555555554000000000000000000A89C
+:1000C000545555555554000000000000000000A88C
+:1000D000545555555554000000000000000000A87C
+:1000E000545555555554000000000000000000A86C
+:1000F0005455555555540000000000000000000004
+:10010000005555555400000000000000000000019B
+:1001100001005555540000000000000000000001DF
+:1001200001550055540000000000000000000001CF
+:1001300001555500540000000000000000000001BF
+:1001400001555555000000000000000000000001AE
+:10015000015555555400000000000000000000014A
+:10016000015555555400000000000000000000013A
+:10017000015555555400000000000000000000012A
+:10018000015555555400000000000000000000011A
+:10019000015555555400000000000000000000010A
+:1001A00001555555540000000000000000000001FA
+:1001B00001555555540000000000000000000001EA
+:1001C00001555555540000000000000000000001DA
+:1001D00001555555540000000000000000000001CA
+:1001E00001555555540000000000000000000001BA
+:1001F00001555555540000000000000000000000AB
+:10020000005555555400000000000000000000019A
+:1002100001005555540000000000000000000001DE
+:1002200001550055540000000000000000000001CE
+:1002300001555500540000000000000000000001BE
+:1002400001555555000000000000000000000001AD
+:100250000155555554000000000000000000000149
+:100260000155555554000000000000000000000139
+:100270000155555554000000000000000000000129
+:100280000155555554000000000000000000000119
+:100290000155555554000000000000000000000109
+:1002A00001555555540000000000000000000001F9
+:1002B00001555555540000000000000000000001E9
+:1002C00001555555540000000000000000000001D9
+:1002D00001555555540000000000000000000001C9
+:1002E00001555555540000000000000000000001B9
+:1002F00001555555540000000000000000000000AA
+:10030000005555540000000000000000000000A847
+:10031000540055540000000000000000000000A838
+:10032000545500540000000000000000000000A828
+:10033000545555000000000000000000000000A817
+:10034000545555540000000000000000000000A8B3
+:10035000545555540000000000000000000000A8A3
+:10036000545555540000000000000000000000A893
+:10037000545555540000000000000000000000A883
+:10038000545555540000000000000000000000A873
+:10039000545555540000000000000000000000A863
+:1003A000545555540000000000000000000000A853
+:1003B000545555540000000000000000000000A843
+:1003C000545555540000000000000000000000A833
+:1003D000545555540000000000000000000000A823
+:1003E000545555540000000000000000000000A813
+:1003F00054555554000000000000000000000000AB
+:10040000005555540000000000000000000000A846
+:10041000540055540000000000000000000000A837
+:10042000545500540000000000000000000000A827
+:10043000545555000000000000000000000000A816
+:10044000545555540000000000000000000000A8B2
+:10045000545555540000000000000000000000A8A2
+:10046000545555540000000000000000000000A892
+:10047000545555540000000000000000000000A882
+:10048000545555540000000000000000000000A872
+:10049000545555540000000000000000000000A862
+:1004A000545555540000000000000000000000A852
+:1004B000545555540000000000000000000000A842
+:1004C000545555540000000000000000000000A832
+:1004D000545555540000000000000000000000A822
+:1004E000545555540000000000000000000000A812
+:1004F00054555554000000000000000000000000AA
+:1005000000555454000000000000000000000002EC
+:100510000100545400000000000000000000000230
+:10052000015500540000000000000000000000021F
+:10053000015554000000000000000000000000020F
+:1005400001555454000000000000000000000002AB
+:10055000015554540000000000000000000000029B
+:10056000015554540000000000000000000000028B
+:10057000015554540000000000000000000000027B
+:10058000015554540000000000000000000000026B
+:10059000015554540000000000000000000000025B
+:1005A000015554540000000000000000000000024B
+:1005B000015554540000000000000000000000023B
+:1005C000015554540000000000000000000000022B
+:1005D000015554540000000000000000000000021B
+:1005E000015554540000000000000000000000020B
+:1005F00001555454000000000000000000000000FD
+:1006000000555454000000000000000000000002EB
+:10061000010054540000000000000000000000022F
+:10062000015500540000000000000000000000021E
+:10063000015554000000000000000000000000020E
+:1006400001555454000000000000000000000002AA
+:10065000015554540000000000000000000000029A
+:10066000015554540000000000000000000000028A
+:10067000015554540000000000000000000000027A
+:10068000015554540000000000000000000000026A
+:10069000015554540000000000000000000000025A
+:1006A000015554540000000000000000000000024A
+:1006B000015554540000000000000000000000023A
+:1006C000015554540000000000000000000000022A
+:1006D000015554540000000000000000000000021A
+:1006E000015554540000000000000000000000020A
+:1006F00001555454000000000000000000000000FC
+:10070000005454000000000000000000000000A899
+:10071000540054000000000000000000000000A889
+:10072000545400000000000000000000000000A879
+:10073000545454000000000000000000000000A815
+:10074000545454000000000000000000000000A805
+:10075000545454000000000000000000000000A8F5
+:10076000545454000000000000000000000000A8E5
+:10077000545454000000000000000000000000A8D5
+:10078000545454000000000000000000000000A8C5
+:10079000545454000000000000000000000000A8B5
+:1007A000545454000000000000000000000000A8A5
+:1007B000545454000000000000000000000000A895
+:1007C000545454000000000000000000000000A885
+:1007D000545454000000000000000000000000A875
+:1007E000545454000000000000000000000000A865
+:1007F00054545400000000000000000000000000FD
+:10080000035703030303030303030303030303ABBC
+:10081000570303030303030303030303030303ABAC
+:10082000575703030303030303030303030303AB48
+:10083000575703030303030303030303030303AB38
+:10084000575703030303030303030303030303AB28
+:10085000575703030303030303030303030303AB18
+:10086000575703030303030303030303030303AB08
+:10087000575703030303030303030303030303ABF8
+:10088000575703030303030303030303030303ABE8
+:10089000575703030303030303030303030303ABD8
+:1008A000575703030303030303030303030303ABC8
+:1008B000575703030303030303030303030303ABB8
+:1008C000575703030303030303030303030303ABA8
+:1008D000575703030303030303030303030303AB98
+:1008E000575703030303030303030303030303AB88
+:1008F0005757030303030303030303030303030320
+:1009000000000000000000000000000000000000E7
+:10091000FCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFC17
+:1009200000000000000000000000000000000000C7
+:1009300000000000000000000000000000000000B7
+:1009400000000000000000000000000000000000A7
+:100950000000000000000000000000000000000097
+:100960000000000000000000000000000000000087
+:100970000000000000000000000000000000000077
+:100980000000000000000000000000000000000067
+:100990000000000000000000000000000000000057
+:1009A0000000000000000000000000000000000047
+:1009B0000000000000000000000000000000000037
+:1009C0000000000000000000000000000000000027
+:1009D0000000000000000000000000000000000017
+:1009E0000000000000000000000000000000000007
+:1009F00000000000000000000000000000000000F7
+:100A0000AA56545454545454545454545454A855F9
+:100A1000AA5654545454545454545454545454553D
+:100A2000AA5654545454545454545454545454552D
+:100A3000AA5654545454545454545454545454551D
+:100A4000AA5654545454545454545454545454550D
+:100A5000AA565454545454545454545454545455FD
+:100A6000AA565454545454545454545454545455ED
+:100A7000AA565454545454545454545454545455DD
+:100A8000AA565454545454545454545454545455CD
+:100A9000AA565454545454545454545454545455BD
+:100AA000AA565454545454545454545454545455AD
+:100AB000AA5654545454545454545454545454559D
+:100AC000AA5654545454545454545454545454558D
+:100AD000AA5654545454545454545454545454557D
+:100AE000AA5654545454545454545454545454556D
+:100AF000AA56446868A8A8A8A8A8A8A8A8A8A80052
+:100B00000256545454545454545454545454540148
+:100B10000256545454545454545454545454540138
+:100B20000256545454545454545454545454540128
+:100B30000256545454545454545454545454540118
+:100B40000256545454545454545454545454540108
+:100B500002565454545454545454545454545401F8
+:100B600002565454545454545454545454545401E8
+:100B700002565454545454545454545454545401D8
+:100B800002565454545454545454545454545401C8
+:100B900002565454545454545454545454545401B8
+:100BA00002565454545454545454545454545401A8
+:100BB0000256545454545454545454545454540198
+:100BC0000256545454545454545454545454540188
+:100BD0000256545454545454545454545454540178
+:100BE0000256545454545454545454545454540168
+:100BF000025654545868A8A8A8A8A8A8A8A8A8004D
+:100C0000A856566464A4A4A4A4A4A4A4A4A4A4540C
+:100C1000A85656545454545454545454545454543C
+:100C2000A85656545454545454545454545454542C
+:100C3000A85656545454545454545454545454541C
+:100C4000A85656545454545454545454545454540C
+:100C5000A8565654545454545454545454545454FC
+:100C6000A8565654545454545454545454545454EC
+:100C7000A8565654545454545454545454545454DC
+:100C8000A8565654545454545454545454545454CC
+:100C9000A8565654545454545454545454545454BC
+:100CA000A8565654545454545454545454545454AC
+:100CB000A85656545454545454545454545454549C
+:100CC000A85656545454545454545454545454548C
+:100CD000A85656545454545454545454545454547C
+:100CE000A85656545454545454545454545454546C
+:100CF000A8565654545468A8A8A8A8A8A8A8A800FC
+:100D0000005666A8A8A8A8A8A8A8A8A8A8A8A80047
+:100D10000056565454545454545454545454540037
+:100D20000056565454545454545454545454540027
+:100D30000056565454545454545454545454540017
+:100D40000056565454545454545454545454540007
+:100D500000565654545454545454545454545400F7
+:100D600000565654545454545454545454545400E7
+:100D700000565654545454545454545454545400D7
+:100D800000565654545454545454545454545400C7
+:100D900000565654545454545454545454545400B7
+:100DA00000565654545454545454545454545400A7
+:100DB0000056565454545454545454545454540097
+:100DC0000056565454545454545454545454540087
+:100DD0000056565454545454545454545454A80023
+:100DE0000056565454545454545454545454540067
+:100DF000005656545454545454545454A8A85400AF
+:100E0000AA56AAAAA8A8A8A8A8A8A8A8A8A8A85501
+:100E1000AAAAAAAAA8A8A8A8A8A8A8A8A8A8A8559D
+:100E2000AAAAAAAAA8A8A8A8A8A8A8A8A8A8A8558D
+:100E3000AAAAAAAAA8A8A8A8A8A8A8A8A8A8A8557D
+:100E4000AAAAAAAAA8A8A8A8A8A8A8A8A8A8A8556D
+:100E5000AAAAAAAAA8A8A8A8A8A8A8A8A8A8A8555D
+:100E6000AAAAAAAAA8A8A8A8A8A8A8A8A8A8A8554D
+:100E7000AAAAAAAAA8A8A8A8A8A8A8A8A8A8A8553D
+:100E8000AAAAAAAAA8A8A8A8A8A8A8A8A8A8A8552D
+:100E9000AAAAAAAAA8A8A8A8A8A8A8A8A8A8A8551D
+:100EA000AAAAAAAAA8A8A8A8A8A8A8A8A8A8A8550D
+:100EB000AAAA565654545454545454545454545541
+:100EC000AA56565654545454545454545454545585
+:100ED000AA56565654545454545454545454545575
+:100EE000AA56565654545454545454545454545565
+:100EF000AA56565654545454545454545454545456
+:100F00000256AAAAA8A8A8A8A8A8A8A8A8A8A801FC
+:100F100002AAAAAAA8A8A8A8A8A8A8A8A8A8A80198
+:100F200002AAAAAAA8A8A8A8A8A8A8A8A8A8A80188
+:100F300002AAAAAAA8A8A8A8A8A8A8A8A8A8A80178
+:100F400002AAAAAAA8A8A8A8A8A8A8A8A8A8A80168
+:100F500002AAAAAAA8A8A8A8A8A8A8A8A8A8A80158
+:100F600002AAAAAAA8A8A8A8A8A8A8A8A8A8A80148
+:100F700002AAAAAAA8A8A8A8A8A8A8A8A8A8A80138
+:100F800002AAAAAAA8A8A8A8A8A8A8A8A8A8A80128
+:100F900002AAAAAAA8A8A8A8A8A8A8A8A8A8A80118
+:100FA00002AAAAAAA8A8A8A8A8A8A8A8A8A8A80108
+:100FB00002AAAAAAA8A8A8A8A8A8A8A8A8A8A801F8
+:100FC00002AAAAAAA8A8A8A8A8A8A8A8A8A8A801E8
+:100FD0000256565654545454545454545454540170
+:100FE0000256565654545454545454545454540160
+:100FF0000256565654545454545454545454540051
+:10100000A856AAAAAAA8A8A8A8A8A8A8A8A8A85400
+:10101000A8AAAAAAAAA8A8A8A8A8A8A8A8A8A8549C
+:10102000A8AAAAAAAAA8A8A8A8A8A8A8A8A8A8548C
+:10103000A8AAAAAAAAA8A8A8A8A8A8A8A8A8A8547C
+:10104000A8AAAAAAAAA8A8A8A8A8A8A8A8A8A8546C
+:10105000A8AAAAAAAAA8A8A8A8A8A8A8A8A8A8545C
+:10106000A8AAAAAAAAA8A8A8A8A8A8A8A8A8A8544C
+:10107000A8AAAAAAAAA8A8A8A8A8A8A8A8A8A8543C
+:10108000A8AAAAAAAAA8A8A8A8A8A8A8A8A8A8542C
+:10109000A8AAAAAAAAA8A8A8A8A8A8A8A8A8A8541C
+:1010A000A8AAAAAAAAA8A8A8A8A8A8A8A8A8A8540C
+:1010B000A8AAAAAAAAA8A8A8A8A8A8A8A8A8A854FC
+:1010C000A8AAAAAAAAA8A8A8A8A8A8A8A8A8A854EC
+:1010D000A8AAAAAAAAA8A8A8A8A8A8A8A8A8A854DC
+:1010E000A8AAAAAAAAA8A8A8A8A8A8A8A8A8A854CC
+:1010F000A856565656545454545454545454545454
+:1011000000AAAAAAAAA8A8A8A8A8A8A8A8A8A800A7
+:1011100000AAAAAAAAA8A8A8A8A8A8A8A8A8A80097
+:1011200000AAAAAAAAA8A8A8A8A8A8A8A8A8A80087
+:1011300000AAAAAAAAA8A8A8A8A8A8A8A8A8A80077
+:1011400000AAAAAAAAA8A8A8A8A8A8A8A8A8A80067
+:1011500000AAAAAAAAA8A8A8A8A8A8A8A8A8A80057
+:1011600000AAAAAAAAA8A8A8A8A8A8A8A8A8A80047
+:1011700000AAAAAAAAA8A8A8A8A8A8A8A8A8A80037
+:1011800000AAAAAAAAA8A8A8A8A8A8A8A8A8A80027
+:1011900000AAAAAAAAA8A8A8A8A8A8A8A8A8A80017
+:1011A00000AAAAAAAAA8A8A8A8A8A8A8A8A8A80007
+:1011B00000AAAAAAAAA8A8A8A8A8A8A8A8A8A800F7
+:1011C00000AAAAAAAAA8A8A8A8A8A8A8A8A8A800E7
+:1011D00000AAAAAAAAA8A8A8A8A8A8A8A8A8A800D7
+:1011E00000AAAAAAAAA8A8A8A8A8A8A8A8A8A800C7
+:1011F000005656565654545454545454545454004F
+:10120000AAAA02020202000000000000000000552D
+:10121000AAAAAA0202020000000000000000005575
+:1012200000AAAAAA020202000000000000000000BA
+:1012300040AAAAAA0202020000000000000000006A
+:1012400040AAAAAA0202020000000000000000005A
+:1012500040AAAAAA0202020000000000000000004A
+:1012600040AAAAAA0202020000000000000000003A
+:1012700040AAAAAA0202020000000000000000002A
+:1012800040AAAAAA0202020000000000000000001A
+:1012900040AAAAAA0202020000000000000000000A
+:1012A00040AAAAAA020202000000000000000000FA
+:1012B00040AAAAAA020202000000000000000000EA
+:1012C00040AAAAAA020202000000000000000000DA
+:1012D00040AAAAAA020202000000000000000000CA
+:1012E00040AAAAAA020202000000000000000000BA
+:1012F00040AAAAAA020202000000000000000000AA
+:1013000040AAAAAA02020200000000000000000099
+:1013100054AAAAAA02020200000000000000000075
+:1013200000AAAAAA020202000000000000000000B9
+:1013300040AAAAAA02020200000000000000000069
+:1013400040AAAAAA02020200000000000000000059
+:1013500040AAAAAA02020200000000000000000049
+:1013600040AAAAAA02020200000000000000000039
+:1013700040AAAAAA02020200000000000000000029
+:1013800040AAAAAA02020200000000000000000019
+:1013900040AAAAAA02020200000000000000000009
+:1013A00040AAAAAA020202000000000000000000F9
+:1013B00040AAAAAA020202000000000000000000E9
+:1013C00040AAAAAA020202000000000000000000D9
+:1013D00040AAAAAA020202000000000000000000C9
+:1013E00040AAAAAA020202000000000000000000B9
+:1013F00040AAAAAA020202000000000000000000A9
+:1014000040AAAAAA02020200000000000000000098
+:1014100054AAAAAA02020200000000000000000074
+:10142000AAAAAAAA020202000000000000000055B9
+:101430002AAAAAAA02020200000000000000005529
+:101440002AAAAAAA02020200000000000000005519
+:101450002AAAAAAA02020200000000000000005509
+:101460002AAAAAAA020202000000000000000055F9
+:101470002AAAAAAA020202000000000000000055E9
+:101480002AAAAAAA020202000000000000000055D9
+:101490002AAAAAAA020202000000000000000055C9
+:1014A0002AAAAAAA020202000000000000000055B9
+:1014B0002AAAAAAA020202000000000000000055A9
+:1014C0002AAAAAAA02020200000000000000005599
+:1014D0002AAAAAAA02020200000000000000005589
+:1014E0002AAAAAAA02020200000000000000005579
+:1014F0002AAAAAAA02020200000000000000005569
+:101500002AAAAAAA02020200000000000000005558
+:1015100002AAAAAA02020200000000000000005570
+:10152000AAAAAAAA020202020000000000000055B6
+:101530002AAAAAAA02020200000000000000005528
+:101540002AAAAAAA02020200000000000000005518
+:101550002AAAAAAA02020200000000000000005508
+:101560002AAAAAAA020202000000000000000055F8
+:101570002AAAAAAA020202000000000000000055E8
+:101580002AAAAAAA020202000000000000000055D8
+:101590002AAAAAAA020202000000000000000055C8
+:1015A0002AAAAAAA020202000000000000000055B8
+:1015B0002AAAAAAA020202000000000000000055A8
+:1015C0002AAAAAAA02020200000000000000005598
+:1015D0002AAAAAAA02020200000000000000005588
+:1015E0002AAAAAAA02020200000000000000005578
+:1015F0002AAAAAAA02020200000000000000005568
+:101600002AAAAAAA02020200000000000000005557
+:1016100002AAAAAA0202020000000000000000556F
+:1016200000AAAAAAAA02020202000000000000000A
+:1016300040AAAAAAAA0202020000000000000000BC
+:1016400040AAAAAAAA0202020000000000000000AC
+:1016500040AAAAAAAA02020200000000000000009C
+:1016600040AAAAAAAA02020200000000000000008C
+:1016700040AAAAAAAA02020200000000000000007C
+:1016800040AAAAAAAA02020200000000000000006C
+:1016900040AAAAAAAA02020200000000000000005C
+:1016A00040AAAAAAAA02020200000000000000004C
+:1016B00040AAAAAAAA02020200000000000000003C
+:1016C00040AAAAAAAA02020200000000000000002C
+:1016D00040AAAAAAAA02020200000000000000001C
+:1016E00040AAAAAAAA02020200000000000000000C
+:1016F00040AAAAAAAA0202020000000000000000FC
+:1017000040AAAAAAAA0202020000000000000000EB
+:1017100055AAAAAAAA0202020000000000000000C6
+:1017200000AAAAAAAA020202020200000000000007
+:1017300040AAAAAAAA0202020200000000000000B9
+:1017400040AAAAAAAA0202020200000000000000A9
+:1017500040AAAAAAAA020202020000000000000099
+:1017600040AAAAAAAA020202020000000000000089
+:1017700040AAAAAAAA020202020000000000000079
+:1017800040AAAAAAAA020202020000000000000069
+:1017900040AAAAAAAA020202020000000000000059
+:1017A00040AAAAAAAA020202020000000000000049
+:1017B00040AAAAAAAA020202020000000000000039
+:1017C00040AAAAAAAA020202020000000000000029
+:1017D00040AAAAAAAA020202020000000000000019
+:1017E00040AAAAAAAA020202020000000000000009
+:1017F00040AAAAAAAA0202020200000000000000F9
+:1018000040AAAAAAAA0202020200000000000000E8
+:1018100055AAAAAAAA0202020200000000000000C3
+:10182000AAAAAAAAAAAA020202020200000000555D
+:101830002AAAAAAAAAAA02020202000000000055CF
+:101840002AAAAAAAAAAA02020202000000000055BF
+:101850002AAAAAAAAAAA02020202000000000055AF
+:101860002AAAAAAAAAAA020202020000000000559F
+:101870002AAAAAAAAAAA020202020000000000558F
+:101880002AAAAAAAAAAA020202020000000000557F
+:101890002AAAAAAAAAAA020202020000000000556F
+:1018A0002AAAAAAAAAAA020202020000000000555F
+:1018B0002AAAAAAAAAAA020202020000000000554F
+:1018C0002AAAAAAAAAAA020202020000000000553F
+:1018D0002AAAAAAAAAAA020202020000000000552F
+:1018E0002AAAAAAAAAAA020202020000000000551F
+:1018F0002AAAAAAAAAAA020202020000000000550F
+:101900002AAAAAAAAAAA02020202000000000055FE
+:1019100000AAAAAAAAAA0202020200000000005518
+:10192000AAAAAAAAAAAA020202020202000000555A
+:101930002AAAAAAAAAAA02020202020000000055CC
+:101940002AAAAAAAAAAA02020202020000000055BC
+:101950002AAAAAAAAAAA02020202020000000055AC
+:101960002AAAAAAAAAAA020202020200000000559C
+:101970002AAAAAAAAAAA020202020200000000558C
+:101980002AAAAAAAAAAA020202020200000000557C
+:101990002AAAAAAAAAAA020202020200000000556C
+:1019A0002AAAAAAAAAAA020202020200000000555C
+:1019B0002AAAAAAAAAAA020202020200000000554C
+:1019C0002AAAAAAAAAAA020202020200000000553C
+:1019D0002AAAAAAAAAAA020202020200000000552C
+:1019E0002AAAAAAAAAAA020202020200000000551C
+:1019F0002AAAAAAAAAAA020202020200000000550C
+:101A00002AAAAAAAAAAA02020202020000000055FB
+:101A100000AAAAAAAAAA0202020202000000005515
+:101A200000AAAAAAAAAAAA020202020202000000AE
+:101A300040AAAAAAAAAAAA02020202020000000060
+:101A400040AAAAAAAAAAAA02020202020000000050
+:101A500040AAAAAAAAAAAA02020202020000000040
+:101A600040AAAAAAAAAAAA02020202020000000030
+:101A700040AAAAAAAAAAAA02020202020000000020
+:101A800040AAAAAAAAAAAA02020202020000000010
+:101A900040AAAAAAAAAAAA02020202020000000000
+:101AA00040AAAAAAAAAAAA020202020200000000F0
+:101AB00040AAAAAAAAAAAA020202020200000000E0
+:101AC00040AAAAAAAAAAAA020202020200000000D0
+:101AD00040AAAAAAAAAAAA020202020200000000C0
+:101AE00040AAAAAAAAAAAA020202020200000000B0
+:101AF00040AAAAAAAAAAAA020202020200000000A0
+:101B000040AAAAAAAAAAAA0202020202000000008F
+:101B100055AAAAAAAAAAAA0202020202000000006A
+:101B200000AAAAAAAAAAAAAA020202020202000003
+:101B300040AAAAAAAAAAAAAA0202020202020000B3
+:101B400040AAAAAAAAAAAAAA0202020202020000A3
+:101B500040AAAAAAAAAAAAAA020202020202000093
+:101B600040AAAAAAAAAAAAAA020202020202000083
+:101B700040AAAAAAAAAAAAAA020202020202000073
+:101B800040AAAAAAAAAAAAAA020202020202000063
+:101B900040AAAAAAAAAAAAAA020202020202000053
+:101BA00040AAAAAAAAAAAAAA020202020202000043
+:101BB00040AAAAAAAAAAAAAA020202020202000033
+:101BC00040AAAAAAAAAAAAAA020202020202000023
+:101BD00040AAAAAAAAAAAAAA020202020202000013
+:101BE00040AAAAAAAAAAAAAA020202020202000003
+:101BF00040AAAAAAAAAAAAAA0202020202020000F3
+:101C000040AAAAAAAAAAAAAA0202020202020000E2
+:101C100055AAAAAAAAAAAAAA0202020202020000BD
+:101C2000AAA9A9A9A9A9A9A9A90101010101015567
+:101C30002AA9A9A9A9A9A9A9A901010101010155D7
+:101C40002AA9A9A9A9A9A9A9A901010101010155C7
+:101C50002AA9A9A9A9A9A9A9A901010101010155B7
+:101C60002AA9A9A9A9A9A9A9A901010101010155A7
+:101C70002AA9A9A9A9A9A9A9A90101010101015597
+:101C80002AA9A9A9A9A9A9A9A90101010101015587
+:101C90002AA9A9A9A9A9A9A9A90101010101015577
+:101CA0002AA9A9A9A9A9A9A9A90101010101015567
+:101CB0002AA9A9A9A9A9A9A9A90101010101015557
+:101CC0002AA9A9A9A9A9A9A9A90101010101015547
+:101CD0002AA9A9A9A9A9A9A9A90101010101015537
+:101CE0002AA9A9A9A9A9A9A9A90101010101015527
+:101CF0002AA9A9A9A9A9A9A9A90101010101015517
+:101D00002AA9A9A9A9A9A9A9A90101010101015506
+:101D100000A9A9A9A9A9A9A9A90101010101015520
+:101D2000A8A9A9A9A9A9A9A9A9A9010101010154C1
+:101D300028A9A9A9A9A9A9A9A9A901010101015431
+:101D400028A9A9A9A9A9A9A9A9A901010101015421
+:101D500028A9A9A9A9A9A9A9A9A901010101015411
+:101D600028A9A9A9A9A9A9A9A9A901010101015401
+:101D700028A9A9A9A9A9A9A9A9A9010101010154F1
+:101D800028A9A9A9A9A9A9A9A9A9010101010154E1
+:101D900028A9A9A9A9A9A9A9A9A9010101010154D1
+:101DA00028A9A9A9A9A9A9A9A9A9010101010154C1
+:101DB00028A9A9A9A9A9A9A9A9A9010101010154B1
+:101DC00028A9A9A9A9A9A9A9A9A9010101010154A1
+:101DD00028A9A9A9A9A9A9A9A9A901010101015491
+:101DE00028A9A9A9A9A9A9A9A9A901010101015481
+:101DF00028A9A9A9A9A9A9A9A9A901010101015471
+:101E000028A9A9A9A9A9A9A9A9A901010101015460
+:101E100001A9A9A9A9A9A9A9A9A901010101015477
+:101E200056A9A9A9A9A9A9A9A9A901010101010165
+:101E300056A9A9A9A9A9A9A9A9A901010101010155
+:101E400056A9A9A9A9A9A9A9A9A901010101010145
+:101E500056A9A9A9A9A9A9A9A9A901010101010135
+:101E600056A9A9A9A9A9A9A9A9A901010101010125
+:101E700056A9A9A9A9A9A9A9A9A901010101010115
+:101E800056A9A9A9A9A9A9A9A9A901010101010105
+:101E900056A9A9A9A9A9A9A9A9A9010101010101F5
+:101EA00056A9A9A9A9A9A9A9A9A9010101010101E5
+:101EB00056A9A9A9A9A9A9A9A9A9010101010101D5
+:101EC00056A9A9A9A9A9A9A9A9A9010101010101C5
+:101ED00056A9A9A9A9A9A9A9A9A9010101010101B5
+:101EE00056A9A9A9A9A9A9A9A9A9010101010101A5
+:101EF00056A9A9A9A9A9A9A9A9A901010101010195
+:101F000056A9A9A9A9A9A9A9A9A901010101010184
+:101F100054A9A9A9A9A9A9A9A9A901010101010176
+:101F200055A9A9A9A9A9A9A9A9A9A90101010100BE
+:101F300000A9A9A9A9A9A9A9A9A9A9A90101015506
+:101F400001A9A9A9A9A9A9A9A9A9A9A9A90101544E
+:101F500001A9A9A9A9A9A9A9A9A9A9A9A90101543E
+:101F600001A9A9A9A9A9A9A9A9A9A9A9A90101542E
+:101F700001A9A9A9A9A9A9A9A9A9A9A9A90101541E
+:101F800001A9A9A9A9A9A9A9A9A9A9A9A90101540E
+:101F900001A9A9A9A9A9A9A9A9A9A9A9A9010154FE
+:101FA00001A9A9A9A9A9A9A9A9A9A9A9A9010154EE
+:101FB00001A9A9A9A9A9A9A9A9A9A9A9A9010154DE
+:101FC00001A9A9A9A9A9A9A9A9A9A9A9A9010154CE
+:101FD00001A9A9A9A9A9A9A9A9A9A9A9A9010154BE
+:101FE00001A9A9A9A9A9A9A9A9A9A9A9A9010154AE
+:101FF00001A9A9A9A9A9A9A9A9A9A9A9A90101549E
+:1020000001A9A9A9A9A9A9A9A9A9A9A9A90101548D
+:1020100001A9A9A9A9A9A9A9A9A9A9A9A90101547D
+:1020200001A9A9A9A9A9A9A9A9A9A9A9A90101546D
+:1020300001A9A9A9A9A9A9A9A9A9A9A9A90101565B
+:1020400054A9A9A9A9A9A9A9A9A9A9A9A9A90101A5
+:1020500054A9A9A9A9A9A9A9A9A9A9A9A9A9010195
+:1020600054A9A9A9A9A9A9A9A9A9A9A9A9A9010185
+:1020700054A9A9A9A9A9A9A9A9A9A9A9A9A9010175
+:1020800054A9A9A9A9A9A9A9A9A9A9A9A9A9010165
+:1020900054A9A9A9A9A9A9A9A9A9A9A9A9A9010155
+:1020A00054A9A9A9A9A9A9A9A9A9A9A9A9A9010145
+:1020B00054A9A9A9A9A9A9A9A9A9A9A9A9A9010135
+:1020C00054A9A9A9A9A9A9A9A9A9A9A9A9A9010125
+:1020D00054A9A9A9A9A9A9A9A9A9A9A9A9A9010115
+:1020E00054A9A9A9A9A9A9A9A9A9A9A9A9A9010105
+:1020F00054A9A9A9A9A9A9A9A9A9A9A9A9A90101F5
+:1021000054A9A9A9A9A9A9A9A9A9A9A9A9A90101E4
+:1021100054A9A9A9A9A9A9A9A9A9A9A9A9A90101D4
+:1021200054A9A9A9A9A9A9A9A9A9A9A9A9A90101C4
+:1021300054A9A9A9A9A9A9A9A9A9A9A9A9A90102B3
+:102140000155555556565656555555555555555490
+:102150000155555555555555555555555555555484
+:102160000155555555555555555555555555555474
+:102170000155555555555555555555555555555464
+:102180000155555555555555555555555555555454
+:102190000155555555555555555555555555555444
+:1021A0000155555555555555555555555555555434
+:1021B0000155555555555555555555555555555424
+:1021C0000155555555555555555555555555555414
+:1021D0000155555555555555555555555555555404
+:1021E00001555555555555555555555555555554F4
+:1021F00001555555555555555555555555555554E4
+:1022000001555555555555555555555555555554D3
+:1022100001555555555555555555555555555554C3
+:1022200001555555555555555555555555555554B3
+:1022300001555555555555555555555555555556A1
+:102240005455555656565656565555555555555638
+:10225000545555555555555555555555555555562E
+:10226000545555555555555555555555555555561E
+:10227000545555555555555555555555555555560E
+:1022800054555555555555555555555555555556FE
+:1022900054555555555555555555555555555556EE
+:1022A00054555555555555555555555555555556DE
+:1022B00054555555555555555555555555555556CE
+:1022C00054555555555555555555555555555556BE
+:1022D00054555555555555555555555555555556AE
+:1022E000545555555555555555555555555555569E
+:1022F000545555555555555555555555555555568E
+:10230000545555555555555555555555555555567D
+:10231000545555555555555555555555555555566D
+:10232000545555555555555555555555555555565D
+:10233000545555555555555555555555555555544F
+:10234000015555565656565656555656555555AA34
+:10235000015555555656565655555555555555AA28
+:10236000015555555656565655555555555555AA18
+:10237000015555555656565655555555555555AA08
+:10238000015555555656565655555555555555AAF8
+:10239000015555555656565655555555555555AAE8
+:1023A000015555555656565655555555555555AAD8
+:1023B000015555555656565655555555555555AAC8
+:1023C000015555555656565655555555555555AAB8
+:1023D000015555555656565655555555555555AAA8
+:1023E000015555555656565655555555555555AA98
+:1023F000015555555656565655555555555555AA88
+:10240000015555555656565655555555555555AA77
+:10241000015555555656565655555555555555AA67
+:10242000015555555656565655555555555555AA57
+:10243000015555555555555555555555555555AA4B
+:10244000545555565656565656565656565656A8DE
+:10245000545656565656565656565656565656A8CC
+:10246000545656565656565656565656565656A8BC
+:10247000545656565656565656565656565656A8AC
+:10248000545656565656565656565656565656A89C
+:10249000545656565656565656565656565656A88C
+:1024A000545656565656565656565656565656A87C
+:1024B000545656565656565656565656565656A86C
+:1024C000545656565656565656565656565656A85C
+:1024D000545656565656565656565656565656A84C
+:1024E000545656565656565656565656565656A83C
+:1024F000545656565656565656565656565656A82C
+:10250000545656565656565656565656565656A81B
+:10251000545656565656565656565656565656A80B
+:10252000545656565656565656565656565656A8FB
+:10253000545555565656565654545656565656A8F1
+:1025400001565656565656565656565656565602D4
+:1025500001565656565656565656565656565602C4
+:1025600001565656565656565656565656565602B4
+:1025700001565656565656565656565656565602A4
+:102580000156565656565656565656565656560294
+:102590000156565656565656565656565656560284
+:1025A0000156565656565656565656565656560274
+:1025B0000156565656565656565656565656560264
+:1025C0000156565656565656565656565656560254
+:1025D0000156565656565656565656565656560244
+:1025E0000156565656565656565656565656560234
+:1025F0000156565656565656565656565656560224
+:102600000156565656565656565656565656560213
+:102610000156565656565656565656565656560203
+:1026200001565656565656565656565656565602F3
+:1026300001555456565656565656565656565602E6
+:10264000545656565656565656565656565656A8DA
+:1026500001565656565656565656565656565602C3
+:10266000545656565656565656565656565656A8BA
+:1026700001AAAAAAAAAAAAAAAAAAAAAAAAAAAA020B
+:1026800054AAAAAAAAAAAAAAAAAAAAAAAAAAAAA802
+:1026900001AAAAAAAAAAAAAAAAAAAAAAAAAAAA02EB
+:1026A00054AAAAAAAAAAAAAAAAAAAAAAAAAAAAA8E2
+:1026B00001AAAAAAAAAAAAAAAAAAAAAAAAAAAA02CB
+:1026C00001AAAAAAAAAAAAAAAAAAAAAAAAAAAA02BB
+:1026D00001AAAAAAAAAAAAAAAAAAAAAAAAAAAA02AB
+:1026E00001AAAAAAAAAAAAAAAAAAAAAAAAAAAA029B
+:1026F00001AAAAAAAAAAAAAAAAAAAAAAAAAAAA028B
+:1027000001AAAAAAAAAAAAAAAAAAAAAAAAAAAA027A
+:1027100001AAAAAAAAAAAAAAAAAAAAAAAAAAAA026A
+:1027200001AAAAAAAAAAAAAAAAAAAAAAAAAAAA025A
+:1027300001AAAAAAAAAAAAAAAAAAAAAAAAAAAA024A
+:1027400001AAAAAAAAAAAAAAAAAAAAAAAAAAAA023A
+:1027500001AAAAAAAAAAAAAAAAAAAAAAAAAAAA022A
+:1027600001AAAAAAAAAAAAAAAAAAAAAAAAAAAA021A
+:1027700001AAAAAAAAAAAAAAAAAAAAAAAAAAAA020A
+:1027800001AAAAAAAAAAAAAAAAAAAAAAAAAAAA02FA
+:1027900001AAAAAAAAAAAAAAAAAAAAAAAAAAAA02EA
+:1027A00001AAAAAAAAAAAAAAAAAAAAAAAAAAAA01DB
+:1027B00054A9A9A9A9A9A9A9A9A9A9A9A9A9A8A8E0
+:1027C00000A9A9A9A9A9A9A9A9A9A9A9A9A8A800CD
+:1027D00055A9A9A9A9A9A9A9A9A9A9A9A8A8A8AABF
+:1027E0000155555555555555555555545454000298
+:1027F000545555555555555555555454540000A8E4
+:10280000545555555555555555545454000000A828
+:102810000155555555555555545454000000000266
+:102820000155555555555555545454000000000256
+:102830000155555555555555545454000000000246
+:102840000155555555555555545454000000000236
+:102850000155555555555555545454000000000226
+:102860000155555555555555545454000000000216
+:102870000155555555555555545454000000000206
+:1028800001555555555555555454540000000002F6
+:1028900001555555555555555454540000000002E6
+:1028A00001555555555555555454540000000002D6
+:1028B00001555555555555555454540000000002C6
+:1028C00001555555555555555454540000000002B6
+:1028D00001555555555555555454540000000002A6
+:1028E0000155555555555555545454000000000296
+:1028F0000155555555555555545454000000000286
+:102900000155555555555555545454000000000077
+:1029100001555555555555545454000000000002BA
+:1029200001555555555555545454000000000002AA
+:10293000015555555555555454540000000000029A
+:10294000015555555555555454540000000000028A
+:10295000015555555555555454540000000000027A
+:10296000015555555555555454540000000000026A
+:10297000015555555555555454540000000000025A
+:10298000015555555555555454540000000000024A
+:10299000015555555555555454540000000000023A
+:1029A000015555555555555454540000000000022A
+:1029B000015555555555555454540000000000021A
+:1029C000015555555555555454540000000000020A
+:1029D00001555555555555545454000000000002FA
+:1029E00001555555555555545454000000000002EA
+:1029F00001555555555555545454000000000002DA
+:102A000001555555555555545454000000000000CB
+:102A1000545555555555555454540000000000A8C0
+:102A2000545555555555555454000000000000A804
+:102A30000155555555555454000000000000000242
+:102A40000155555555555454000000000000000232
+:102A50000155555555555454000000000000000222
+:102A60000155555555555454000000000000000212
+:102A70000155555555555454000000000000000202
+:102A800001555555555554540000000000000002F2
+:102A900001555555555554540000000000000002E2
+:102AA00001555555555554540000000000000002D2
+:102AB00001555555555554540000000000000002C2
+:102AC00001555555555554540000000000000002B2
+:102AD00001555555555554540000000000000002A2
+:102AE0000155555555555454000000000000000292
+:102AF0000155555555555454000000000000000282
+:102B00000155555555555454000000000000000271
+:102B10000155555555555454000000000000000261
+:102B20000155555555555454000000000000000053
+:102B30000155555555555400000000000000000295
+:102B40000155555555555400000000000000000285
+:102B50000155555555555400000000000000000275
+:102B60000155555555555400000000000000000265
+:102B70000155555555555400000000000000000255
+:102B80000155555555555400000000000000000245
+:102B90000155555555555400000000000000000235
+:102BA0000155555555555400000000000000000225
+:102BB0000155555555555400000000000000000215
+:102BC0000155555555555400000000000000000205
+:102BD00001555555555554000000000000000002F5
+:102BE00001555555555554000000000000000002E5
+:102BF00001555555555554000000000000000002D5
+:102C000001555555555554000000000000000002C4
+:102C100001555555555554000000000000000002B4
+:102C200001555555555554000000000000000000A6
+:102C3000545555555554000000000000000000A8F0
+:102C4000545555555554000000000000000000A8E0
+:102C5000545555555554000000000000000000A8D0
+:102C6000545555555554000000000000000000A8C0
+:102C7000545555555554000000000000000000A8B0
+:102C8000545555555554000000000000000000A8A0
+:102C9000545555555554000000000000000000A890
+:102CA000545555555554000000000000000000A880
+:102CB000545555555554000000000000000000A870
+:102CC000545555555554000000000000000000A860
+:102CD000545555555554000000000000000000A850
+:102CE000545555555554000000000000000000A840
+:102CF000545555555554000000000000000000A830
+:102D0000545555555554000000000000000000A81F
+:102D1000545555555554000000000000000000A80F
+:102D200054555555555400000000000000000000A7
+:102D3000545555555554000000000000000000A8EF
+:102D4000545555555554000000000000000000A8DF
+:102D5000545555555554000000000000000000A8CF
+:102D6000545555555554000000000000000000A8BF
+:102D7000545555555554000000000000000000A8AF
+:102D8000545555555554000000000000000000A89F
+:102D9000545555555554000000000000000000A88F
+:102DA000545555555554000000000000000000A87F
+:102DB000545555555554000000000000000000A86F
+:102DC000545555555554000000000000000000A85F
+:102DD000545555555554000000000000000000A84F
+:102DE000545555555554000000000000000000A83F
+:102DF000545555555554000000000000000000A82F
+:102E0000545555555554000000000000000000A81E
+:102E1000545555555554000000000000000000A80E
+:102E200054555555555400000000000000000000A6
+:102E3000015555555400000000000000000000013D
+:102E4000015555555400000000000000000000012D
+:102E5000015555555400000000000000000000011D
+:102E6000015555555400000000000000000000010D
+:102E700001555555540000000000000000000001FD
+:102E800001555555540000000000000000000001ED
+:102E900001555555540000000000000000000001DD
+:102EA00001555555540000000000000000000001CD
+:102EB00001555555540000000000000000000001BD
+:102EC00001555555540000000000000000000001AD
+:102ED000015555555400000000000000000000019D
+:102EE000015555555400000000000000000000018D
+:102EF000015555555400000000000000000000017D
+:102F0000015555555400000000000000000000016C
+:102F1000015555555400000000000000000000015C
+:102F2000015555555400000000000000000000004D
+:102F3000015555555400000000000000000000013C
+:102F4000015555555400000000000000000000012C
+:102F5000015555555400000000000000000000011C
+:102F6000015555555400000000000000000000010C
+:102F700001555555540000000000000000000001FC
+:102F800001555555540000000000000000000001EC
+:102F900001555555540000000000000000000001DC
+:102FA00001555555540000000000000000000001CC
+:102FB00001555555540000000000000000000001BC
+:102FC00001555555540000000000000000000001AC
+:102FD000015555555400000000000000000000019C
+:102FE000015555555400000000000000000000018C
+:102FF000015555555400000000000000000000017C
+:10300000015555555400000000000000000000016B
+:10301000015555555400000000000000000000015B
+:10302000015555555400000000000000000000004C
+:10303000545555540000000000000000000000A896
+:10304000545555540000000000000000000000A886
+:10305000545555540000000000000000000000A876
+:10306000545555540000000000000000000000A866
+:10307000545555540000000000000000000000A856
+:10308000545555540000000000000000000000A846
+:10309000545555540000000000000000000000A836
+:1030A000545555540000000000000000000000A826
+:1030B000545555540000000000000000000000A816
+:1030C000545555540000000000000000000000A806
+:1030D000545555540000000000000000000000A8F6
+:1030E000545555540000000000000000000000A8E6
+:1030F000545555540000000000000000000000A8D6
+:10310000545555540000000000000000000000A8C5
+:10311000545555540000000000000000000000A8B5
+:10312000545555540000000000000000000000004D
+:10313000545555540000000000000000000000A895
+:10314000545555540000000000000000000000A885
+:10315000545555540000000000000000000000A875
+:10316000545555540000000000000000000000A865
+:10317000545555540000000000000000000000A855
+:10318000545555540000000000000000000000A845
+:10319000545555540000000000000000000000A835
+:1031A000545555540000000000000000000000A825
+:1031B000545555540000000000000000000000A815
+:1031C000545555540000000000000000000000A805
+:1031D000545555540000000000000000000000A8F5
+:1031E000545555540000000000000000000000A8E5
+:1031F000545555540000000000000000000000A8D5
+:10320000545555540000000000000000000000A8C4
+:10321000545555540000000000000000000000A8B4
+:10322000545555540000000000000000000000004C
+:10323000015554540000000000000000000000028E
+:10324000015554540000000000000000000000027E
+:10325000015554540000000000000000000000026E
+:10326000015554540000000000000000000000025E
+:10327000015554540000000000000000000000024E
+:10328000015554540000000000000000000000023E
+:10329000015554540000000000000000000000022E
+:1032A000015554540000000000000000000000021E
+:1032B000015554540000000000000000000000020E
+:1032C00001555454000000000000000000000002FE
+:1032D00001555454000000000000000000000002EE
+:1032E00001555454000000000000000000000002DE
+:1032F00001555454000000000000000000000002CE
+:1033000001555454000000000000000000000002BD
+:1033100001555454000000000000000000000002AD
+:10332000015554540000000000000000000000009F
+:10333000015554540000000000000000000000028D
+:10334000015554540000000000000000000000027D
+:10335000015554540000000000000000000000026D
+:10336000015554540000000000000000000000025D
+:10337000015554540000000000000000000000024D
+:10338000015554540000000000000000000000023D
+:10339000015554540000000000000000000000022D
+:1033A000015554540000000000000000000000021D
+:1033B000015554540000000000000000000000020D
+:1033C00001555454000000000000000000000002FD
+:1033D00001555454000000000000000000000002ED
+:1033E00001555454000000000000000000000002DD
+:1033F00001555454000000000000000000000002CD
+:1034000001555454000000000000000000000002BC
+:1034100001555454000000000000000000000002AC
+:10342000015554540000000000000000000000009E
+:10343000545454000000000000000000000000A8E8
+:10344000545454000000000000000000000000A8D8
+:10345000545454000000000000000000000000A8C8
+:10346000545454000000000000000000000000A8B8
+:10347000545454000000000000000000000000A8A8
+:10348000545454000000000000000000000000A898
+:10349000545454000000000000000000000000A888
+:1034A000545454000000000000000000000000A878
+:1034B000545454000000000000000000000000A868
+:1034C000545454000000000000000000000000A858
+:1034D000545454000000000000000000000000A848
+:1034E000545454000000000000000000000000A838
+:1034F000545454000000000000000000000000A828
+:10350000545454000000000000000000000000A817
+:10351000545454000000000000000000000000A807
+:10352000545454000000000000000000000000009F
+:10353000575703030303030303030303030303AB0B
+:10354000575703030303030303030303030303ABFB
+:10355000575703030303030303030303030303ABEB
+:10356000575703030303030303030303030303ABDB
+:10357000575703030303030303030303030303ABCB
+:10358000575703030303030303030303030303ABBB
+:10359000575703030303030303030303030303ABAB
+:1035A000575703030303030303030303030303AB9B
+:1035B000575703030303030303030303030303AB8B
+:1035C000575703030303030303030303030303AB7B
+:1035D000575703030303030303030303030303AB6B
+:1035E000575703030303030303030303030303AB5B
+:1035F000575703030303030303030303030303AB4B
+:10360000575703030303030303030303030303AB3A
+:10361000575703030303030303030303030303AB2A
+:1036200057570303030303030303030303030303C2
+:10363000000000000000000000000000000000008A
+:10364000FCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCBA
+:10365000000000000000000000000000000000006A
+:10366000000000000000000000000000000000005A
+:10367000000000000000000000000000000000004A
+:10368000000000000000000000000000000000003A
+:10369000000000000000000000000000000000002A
+:1036A000000000000000000000000000000000001A
+:1036B000000000000000000000000000000000000A
+:1036C00000000000000000000000000000000000FA
+:1036D00000000000000000000000000000000000EA
+:1036E00000000000000000000000000000000000DA
+:1036F00000000000000000000000000000000000CA
+:10370000AA56545454545454545454545454A855CC
+:10371000AA56545454545454545454545454545510
+:10372000AA56545454545454545454545454545500
+:10373000AA565454545454545454545454545455F0
+:10374000AA565454545454545454545454545455E0
+:10375000AA565454545454545454545454545455D0
+:10376000AA565454545454545454545454545455C0
+:10377000AA565454545454545454545454545455B0
+:10378000AA565454545454545454545454545455A0
+:10379000AA56545454545454545454545454545590
+:1037A000AA56545454545454545454545454545580
+:1037B000AA56545454545454545454545454545570
+:1037C000AA56545454545454545454545454545560
+:1037D000AA56545454545454545454545454545550
+:1037E000AA56545454545454545454545454545540
+:1037F000AA56446868A8A8A8A8A8A8A8A8A8A80025
+:10380000025654545454545454545454545454011B
+:10381000025654545454545454545454545454010B
+:1038200002565454545454545454545454545401FB
+:1038300002565454545454545454545454545401EB
+:1038400002565454545454545454545454545401DB
+:1038500002565454545454545454545454545401CB
+:1038600002565454545454545454545454545401BB
+:1038700002565454545454545454545454545401AB
+:10388000025654545454545454545454545454019B
+:10389000025654545454545454545454545454018B
+:1038A000025654545454545454545454545454017B
+:1038B000025654545454545454545454545454016B
+:1038C000025654545454545454545454545454015B
+:1038D000025654545454545454545454545454014B
+:1038E000025654545454545454545454545454013B
+:1038F000025654545868A8A8A8A8A8A8A8A8A80020
+:10390000A856566464A4A4A4A4A4A4A4A4A4A454DF
+:10391000A85656545454545454545454545454540F
+:10392000A8565654545454545454545454545454FF
+:10393000A8565654545454545454545454545454EF
+:10394000A8565654545454545454545454545454DF
+:10395000A8565654545454545454545454545454CF
+:10396000A8565654545454545454545454545454BF
+:10397000A8565654545454545454545454545454AF
+:10398000A85656545454545454545454545454549F
+:10399000A85656545454545454545454545454548F
+:1039A000A85656545454545454545454545454547F
+:1039B000A85656545454545454545454545454546F
+:1039C000A85656545454545454545454545454545F
+:1039D000A85656545454545454545454545454544F
+:1039E000A85656545454545454545454545454543F
+:1039F000A8565654545468A8A8A8A8A8A8A8A800CF
+:103A0000005666A8A8A8A8A8A8A8A8A8A8A8A8001A
+:103A1000005656545454545454545454545454000A
+:103A200000565654545454545454545454545400FA
+:103A300000565654545454545454545454545400EA
+:103A400000565654545454545454545454545400DA
+:103A500000565654545454545454545454545400CA
+:103A600000565654545454545454545454545400BA
+:103A700000565654545454545454545454545400AA
+:103A8000005656545454545454545454545454009A
+:103A9000005656545454545454545454545454008A
+:103AA000005656545454545454545454545454007A
+:103AB000005656545454545454545454545454006A
+:103AC000005656545454545454545454545454005A
+:103AD0000056565454545454545454545454A800F6
+:103AE000005656545454545454545454545454003A
+:103AF000005656545454545454545454A8A8540082
+:103B0000AA56AAAAA8A8A8A8A8A8A8A8A8A8A855D4
+:103B1000AAAAAAAAA8A8A8A8A8A8A8A8A8A8A85570
+:103B2000AAAAAAAAA8A8A8A8A8A8A8A8A8A8A85560
+:103B3000AAAAAAAAA8A8A8A8A8A8A8A8A8A8A85550
+:103B4000AAAAAAAAA8A8A8A8A8A8A8A8A8A8A85540
+:103B5000AAAAAAAAA8A8A8A8A8A8A8A8A8A8A85530
+:103B6000AAAAAAAAA8A8A8A8A8A8A8A8A8A8A85520
+:103B7000AAAAAAAAA8A8A8A8A8A8A8A8A8A8A85510
+:103B8000AAAAAAAAA8A8A8A8A8A8A8A8A8A8A85500
+:103B9000AAAAAAAAA8A8A8A8A8A8A8A8A8A8A855F0
+:103BA000AAAAAAAAA8A8A8A8A8A8A8A8A8A8A855E0
+:103BB000AAAA565654545454545454545454545514
+:103BC000AA56565654545454545454545454545558
+:103BD000AA56565654545454545454545454545548
+:103BE000AA56565654545454545454545454545538
+:103BF000AA56565654545454545454545454545429
+:103C00000256AAAAA8A8A8A8A8A8A8A8A8A8A801CF
+:103C100002AAAAAAA8A8A8A8A8A8A8A8A8A8A8016B
+:103C200002AAAAAAA8A8A8A8A8A8A8A8A8A8A8015B
+:103C300002AAAAAAA8A8A8A8A8A8A8A8A8A8A8014B
+:103C400002AAAAAAA8A8A8A8A8A8A8A8A8A8A8013B
+:103C500002AAAAAAA8A8A8A8A8A8A8A8A8A8A8012B
+:103C600002AAAAAAA8A8A8A8A8A8A8A8A8A8A8011B
+:103C700002AAAAAAA8A8A8A8A8A8A8A8A8A8A8010B
+:103C800002AAAAAAA8A8A8A8A8A8A8A8A8A8A801FB
+:103C900002AAAAAAA8A8A8A8A8A8A8A8A8A8A801EB
+:103CA00002AAAAAAA8A8A8A8A8A8A8A8A8A8A801DB
+:103CB00002AAAAAAA8A8A8A8A8A8A8A8A8A8A801CB
+:103CC00002AAAAAAA8A8A8A8A8A8A8A8A8A8A801BB
+:103CD0000256565654545454545454545454540143
+:103CE0000256565654545454545454545454540133
+:103CF0000256565654545454545454545454540024
+:103D0000A856AAAAAAA8A8A8A8A8A8A8A8A8A854D3
+:103D1000A8AAAAAAAAA8A8A8A8A8A8A8A8A8A8546F
+:103D2000A8AAAAAAAAA8A8A8A8A8A8A8A8A8A8545F
+:103D3000A8AAAAAAAAA8A8A8A8A8A8A8A8A8A8544F
+:103D4000A8AAAAAAAAA8A8A8A8A8A8A8A8A8A8543F
+:103D5000A8AAAAAAAAA8A8A8A8A8A8A8A8A8A8542F
+:103D6000A8AAAAAAAAA8A8A8A8A8A8A8A8A8A8541F
+:103D7000A8AAAAAAAAA8A8A8A8A8A8A8A8A8A8540F
+:103D8000A8AAAAAAAAA8A8A8A8A8A8A8A8A8A854FF
+:103D9000A8AAAAAAAAA8A8A8A8A8A8A8A8A8A854EF
+:103DA000A8AAAAAAAAA8A8A8A8A8A8A8A8A8A854DF
+:103DB000A8AAAAAAAAA8A8A8A8A8A8A8A8A8A854CF
+:103DC000A8AAAAAAAAA8A8A8A8A8A8A8A8A8A854BF
+:103DD000A8AAAAAAAAA8A8A8A8A8A8A8A8A8A854AF
+:103DE000A8AAAAAAAAA8A8A8A8A8A8A8A8A8A8549F
+:103DF000A856565656545454545454545454545427
+:103E000000AAAAAAAAA8A8A8A8A8A8A8A8A8A8007A
+:103E100000AAAAAAAAA8A8A8A8A8A8A8A8A8A8006A
+:103E200000AAAAAAAAA8A8A8A8A8A8A8A8A8A8005A
+:103E300000AAAAAAAAA8A8A8A8A8A8A8A8A8A8004A
+:103E400000AAAAAAAAA8A8A8A8A8A8A8A8A8A8003A
+:103E500000AAAAAAAAA8A8A8A8A8A8A8A8A8A8002A
+:103E600000AAAAAAAAA8A8A8A8A8A8A8A8A8A8001A
+:103E700000AAAAAAAAA8A8A8A8A8A8A8A8A8A8000A
+:103E800000AAAAAAAAA8A8A8A8A8A8A8A8A8A800FA
+:103E900000AAAAAAAAA8A8A8A8A8A8A8A8A8A800EA
+:103EA00000AAAAAAAAA8A8A8A8A8A8A8A8A8A800DA
+:103EB00000AAAAAAAAA8A8A8A8A8A8A8A8A8A800CA
+:103EC00000AAAAAAAAA8A8A8A8A8A8A8A8A8A800BA
+:103ED00000AAAAAAAAA8A8A8A8A8A8A8A8A8A800AA
+:103EE00000AAAAAAAAA8A8A8A8A8A8A8A8A8A8009A
+:103EF0000056565656545454545454545454540022
+:103F0000AAAA020202020000000000000000005500
+:103F1000AAAAAA0202020000000000000000005548
+:103F200000AAAAAA0202020000000000000000008D
+:103F300040AAAAAA0202020000000000000000003D
+:103F400040AAAAAA0202020000000000000000002D
+:103F500040AAAAAA0202020000000000000000001D
+:103F600040AAAAAA0202020000000000000000000D
+:103F700040AAAAAA020202000000000000000000FD
+:103F800040AAAAAA020202000000000000000000ED
+:103F900040AAAAAA020202000000000000000000DD
+:103FA00040AAAAAA020202000000000000000000CD
+:103FB00040AAAAAA020202000000000000000000BD
+:103FC00040AAAAAA020202000000000000000000AD
+:103FD00040AAAAAA0202020000000000000000009D
+:103FE00040AAAAAA0202020000000000000000008D
+:103FF00040AAAAAA0202020000000000000000007D
+:1040000040AAAAAA0202020000000000000000006C
+:1040100054AAAAAA02020200000000000000000048
+:1040200000AAAAAA0202020000000000000000008C
+:1040300040AAAAAA0202020000000000000000003C
+:1040400040AAAAAA0202020000000000000000002C
+:1040500040AAAAAA0202020000000000000000001C
+:1040600040AAAAAA0202020000000000000000000C
+:1040700040AAAAAA020202000000000000000000FC
+:1040800040AAAAAA020202000000000000000000EC
+:1040900040AAAAAA020202000000000000000000DC
+:1040A00040AAAAAA020202000000000000000000CC
+:1040B00040AAAAAA020202000000000000000000BC
+:1040C00040AAAAAA020202000000000000000000AC
+:1040D00040AAAAAA0202020000000000000000009C
+:1040E00040AAAAAA0202020000000000000000008C
+:1040F00040AAAAAA0202020000000000000000007C
+:1041000040AAAAAA0202020000000000000000006B
+:1041100054AAAAAA02020200000000000000000047
+:10412000AAAAAAAA0202020000000000000000558C
+:104130002AAAAAAA020202000000000000000055FC
+:104140002AAAAAAA020202000000000000000055EC
+:104150002AAAAAAA020202000000000000000055DC
+:104160002AAAAAAA020202000000000000000055CC
+:104170002AAAAAAA020202000000000000000055BC
+:104180002AAAAAAA020202000000000000000055AC
+:104190002AAAAAAA0202020000000000000000559C
+:1041A0002AAAAAAA0202020000000000000000558C
+:1041B0002AAAAAAA0202020000000000000000557C
+:1041C0002AAAAAAA0202020000000000000000556C
+:1041D0002AAAAAAA0202020000000000000000555C
+:1041E0002AAAAAAA0202020000000000000000554C
+:1041F0002AAAAAAA0202020000000000000000553C
+:104200002AAAAAAA0202020000000000000000552B
+:1042100002AAAAAA02020200000000000000005543
+:10422000AAAAAAAA02020202000000000000005589
+:104230002AAAAAAA020202000000000000000055FB
+:104240002AAAAAAA020202000000000000000055EB
+:104250002AAAAAAA020202000000000000000055DB
+:104260002AAAAAAA020202000000000000000055CB
+:104270002AAAAAAA020202000000000000000055BB
+:104280002AAAAAAA020202000000000000000055AB
+:104290002AAAAAAA0202020000000000000000559B
+:1042A0002AAAAAAA0202020000000000000000558B
+:1042B0002AAAAAAA0202020000000000000000557B
+:1042C0002AAAAAAA0202020000000000000000556B
+:1042D0002AAAAAAA0202020000000000000000555B
+:1042E0002AAAAAAA0202020000000000000000554B
+:1042F0002AAAAAAA0202020000000000000000553B
+:104300002AAAAAAA0202020000000000000000552A
+:1043100002AAAAAA02020200000000000000005542
+:1043200000AAAAAAAA0202020200000000000000DD
+:1043300040AAAAAAAA02020200000000000000008F
+:1043400040AAAAAAAA02020200000000000000007F
+:1043500040AAAAAAAA02020200000000000000006F
+:1043600040AAAAAAAA02020200000000000000005F
+:1043700040AAAAAAAA02020200000000000000004F
+:1043800040AAAAAAAA02020200000000000000003F
+:1043900040AAAAAAAA02020200000000000000002F
+:1043A00040AAAAAAAA02020200000000000000001F
+:1043B00040AAAAAAAA02020200000000000000000F
+:1043C00040AAAAAAAA0202020000000000000000FF
+:1043D00040AAAAAAAA0202020000000000000000EF
+:1043E00040AAAAAAAA0202020000000000000000DF
+:1043F00040AAAAAAAA0202020000000000000000CF
+:1044000040AAAAAAAA0202020000000000000000BE
+:1044100055AAAAAAAA020202000000000000000099
+:1044200000AAAAAAAA0202020202000000000000DA
+:1044300040AAAAAAAA02020202000000000000008C
+:1044400040AAAAAAAA02020202000000000000007C
+:1044500040AAAAAAAA02020202000000000000006C
+:1044600040AAAAAAAA02020202000000000000005C
+:1044700040AAAAAAAA02020202000000000000004C
+:1044800040AAAAAAAA02020202000000000000003C
+:1044900040AAAAAAAA02020202000000000000002C
+:1044A00040AAAAAAAA02020202000000000000001C
+:1044B00040AAAAAAAA02020202000000000000000C
+:1044C00040AAAAAAAA0202020200000000000000FC
+:1044D00040AAAAAAAA0202020200000000000000EC
+:1044E00040AAAAAAAA0202020200000000000000DC
+:1044F00040AAAAAAAA0202020200000000000000CC
+:1045000040AAAAAAAA0202020200000000000000BB
+:1045100055AAAAAAAA020202020000000000000096
+:10452000AAAAAAAAAAAA0202020202000000005530
+:104530002AAAAAAAAAAA02020202000000000055A2
+:104540002AAAAAAAAAAA0202020200000000005592
+:104550002AAAAAAAAAAA0202020200000000005582
+:104560002AAAAAAAAAAA0202020200000000005572
+:104570002AAAAAAAAAAA0202020200000000005562
+:104580002AAAAAAAAAAA0202020200000000005552
+:104590002AAAAAAAAAAA0202020200000000005542
+:1045A0002AAAAAAAAAAA0202020200000000005532
+:1045B0002AAAAAAAAAAA0202020200000000005522
+:1045C0002AAAAAAAAAAA0202020200000000005512
+:1045D0002AAAAAAAAAAA0202020200000000005502
+:1045E0002AAAAAAAAAAA02020202000000000055F2
+:1045F0002AAAAAAAAAAA02020202000000000055E2
+:104600002AAAAAAAAAAA02020202000000000055D1
+:1046100000AAAAAAAAAA02020202000000000055EB
+:10462000AAAAAAAAAAAA020202020202000000552D
+:104630002AAAAAAAAAAA020202020200000000559F
+:104640002AAAAAAAAAAA020202020200000000558F
+:104650002AAAAAAAAAAA020202020200000000557F
+:104660002AAAAAAAAAAA020202020200000000556F
+:104670002AAAAAAAAAAA020202020200000000555F
+:104680002AAAAAAAAAAA020202020200000000554F
+:104690002AAAAAAAAAAA020202020200000000553F
+:1046A0002AAAAAAAAAAA020202020200000000552F
+:1046B0002AAAAAAAAAAA020202020200000000551F
+:1046C0002AAAAAAAAAAA020202020200000000550F
+:1046D0002AAAAAAAAAAA02020202020000000055FF
+:1046E0002AAAAAAAAAAA02020202020000000055EF
+:1046F0002AAAAAAAAAAA02020202020000000055DF
+:104700002AAAAAAAAAAA02020202020000000055CE
+:1047100000AAAAAAAAAA02020202020000000055E8
+:1047200000AAAAAAAAAAAA02020202020200000081
+:1047300040AAAAAAAAAAAA02020202020000000033
+:1047400040AAAAAAAAAAAA02020202020000000023
+:1047500040AAAAAAAAAAAA02020202020000000013
+:1047600040AAAAAAAAAAAA02020202020000000003
+:1047700040AAAAAAAAAAAA020202020200000000F3
+:1047800040AAAAAAAAAAAA020202020200000000E3
+:1047900040AAAAAAAAAAAA020202020200000000D3
+:1047A00040AAAAAAAAAAAA020202020200000000C3
+:1047B00040AAAAAAAAAAAA020202020200000000B3
+:1047C00040AAAAAAAAAAAA020202020200000000A3
+:1047D00040AAAAAAAAAAAA02020202020000000093
+:1047E00040AAAAAAAAAAAA02020202020000000083
+:1047F00040AAAAAAAAAAAA02020202020000000073
+:1048000040AAAAAAAAAAAA02020202020000000062
+:1048100055AAAAAAAAAAAA0202020202000000003D
+:1048200000AAAAAAAAAAAAAA0202020202020000D6
+:1048300040AAAAAAAAAAAAAA020202020202000086
+:1048400040AAAAAAAAAAAAAA020202020202000076
+:1048500040AAAAAAAAAAAAAA020202020202000066
+:1048600040AAAAAAAAAAAAAA020202020202000056
+:1048700040AAAAAAAAAAAAAA020202020202000046
+:1048800040AAAAAAAAAAAAAA020202020202000036
+:1048900040AAAAAAAAAAAAAA020202020202000026
+:1048A00040AAAAAAAAAAAAAA020202020202000016
+:1048B00040AAAAAAAAAAAAAA020202020202000006
+:1048C00040AAAAAAAAAAAAAA0202020202020000F6
+:1048D00040AAAAAAAAAAAAAA0202020202020000E6
+:1048E00040AAAAAAAAAAAAAA0202020202020000D6
+:1048F00040AAAAAAAAAAAAAA0202020202020000C6
+:1049000040AAAAAAAAAAAAAA0202020202020000B5
+:1049100055AAAAAAAAAAAAAA020202020202000090
+:10492000AAA9A9A9A9A9A9A9A9010101010101553A
+:104930002AA9A9A9A9A9A9A9A901010101010155AA
+:104940002AA9A9A9A9A9A9A9A9010101010101559A
+:104950002AA9A9A9A9A9A9A9A9010101010101558A
+:104960002AA9A9A9A9A9A9A9A9010101010101557A
+:104970002AA9A9A9A9A9A9A9A9010101010101556A
+:104980002AA9A9A9A9A9A9A9A9010101010101555A
+:104990002AA9A9A9A9A9A9A9A9010101010101554A
+:1049A0002AA9A9A9A9A9A9A9A9010101010101553A
+:1049B0002AA9A9A9A9A9A9A9A9010101010101552A
+:1049C0002AA9A9A9A9A9A9A9A9010101010101551A
+:1049D0002AA9A9A9A9A9A9A9A9010101010101550A
+:1049E0002AA9A9A9A9A9A9A9A901010101010155FA
+:1049F0002AA9A9A9A9A9A9A9A901010101010155EA
+:104A00002AA9A9A9A9A9A9A9A901010101010155D9
+:104A100000A9A9A9A9A9A9A9A901010101010155F3
+:104A2000A8A9A9A9A9A9A9A9A9A901010101015494
+:104A300028A9A9A9A9A9A9A9A9A901010101015404
+:104A400028A9A9A9A9A9A9A9A9A9010101010154F4
+:104A500028A9A9A9A9A9A9A9A9A9010101010154E4
+:104A600028A9A9A9A9A9A9A9A9A9010101010154D4
+:104A700028A9A9A9A9A9A9A9A9A9010101010154C4
+:104A800028A9A9A9A9A9A9A9A9A9010101010154B4
+:104A900028A9A9A9A9A9A9A9A9A9010101010154A4
+:104AA00028A9A9A9A9A9A9A9A9A901010101015494
+:104AB00028A9A9A9A9A9A9A9A9A901010101015484
+:104AC00028A9A9A9A9A9A9A9A9A901010101015474
+:104AD00028A9A9A9A9A9A9A9A9A901010101015464
+:104AE00028A9A9A9A9A9A9A9A9A901010101015454
+:104AF00028A9A9A9A9A9A9A9A9A901010101015444
+:104B000028A9A9A9A9A9A9A9A9A901010101015433
+:104B100001A9A9A9A9A9A9A9A9A90101010101544A
+:104B200056A9A9A9A9A9A9A9A9A901010101010138
+:104B300056A9A9A9A9A9A9A9A9A901010101010128
+:104B400056A9A9A9A9A9A9A9A9A901010101010118
+:104B500056A9A9A9A9A9A9A9A9A901010101010108
+:104B600056A9A9A9A9A9A9A9A9A9010101010101F8
+:104B700056A9A9A9A9A9A9A9A9A9010101010101E8
+:104B800056A9A9A9A9A9A9A9A9A9010101010101D8
+:104B900056A9A9A9A9A9A9A9A9A9010101010101C8
+:104BA00056A9A9A9A9A9A9A9A9A9010101010101B8
+:104BB00056A9A9A9A9A9A9A9A9A9010101010101A8
+:104BC00056A9A9A9A9A9A9A9A9A901010101010198
+:104BD00056A9A9A9A9A9A9A9A9A901010101010188
+:104BE00056A9A9A9A9A9A9A9A9A901010101010178
+:104BF00056A9A9A9A9A9A9A9A9A901010101010168
+:104C000056A9A9A9A9A9A9A9A9A901010101010157
+:104C100054A9A9A9A9A9A9A9A9A901010101010149
+:104C200055A9A9A9A9A9A9A9A9A9A9010101010091
+:104C300000A9A9A9A9A9A9A9A9A9A9A901010155D9
+:104C400001A9A9A9A9A9A9A9A9A9A9A9A901015421
+:104C500001A9A9A9A9A9A9A9A9A9A9A9A901015411
+:104C600001A9A9A9A9A9A9A9A9A9A9A9A901015401
+:104C700001A9A9A9A9A9A9A9A9A9A9A9A9010154F1
+:104C800001A9A9A9A9A9A9A9A9A9A9A9A9010154E1
+:104C900001A9A9A9A9A9A9A9A9A9A9A9A9010154D1
+:104CA00001A9A9A9A9A9A9A9A9A9A9A9A9010154C1
+:104CB00001A9A9A9A9A9A9A9A9A9A9A9A9010154B1
+:104CC00001A9A9A9A9A9A9A9A9A9A9A9A9010154A1
+:104CD00001A9A9A9A9A9A9A9A9A9A9A9A901015491
+:104CE00001A9A9A9A9A9A9A9A9A9A9A9A901015481
+:104CF00001A9A9A9A9A9A9A9A9A9A9A9A901015471
+:104D000001A9A9A9A9A9A9A9A9A9A9A9A901015460
+:104D100001A9A9A9A9A9A9A9A9A9A9A9A901015450
+:104D200001A9A9A9A9A9A9A9A9A9A9A9A901015440
+:104D300001A9A9A9A9A9A9A9A9A9A9A9A90101562E
+:104D400054A9A9A9A9A9A9A9A9A9A9A9A9A9010178
+:104D500054A9A9A9A9A9A9A9A9A9A9A9A9A9010168
+:104D600054A9A9A9A9A9A9A9A9A9A9A9A9A9010158
+:104D700054A9A9A9A9A9A9A9A9A9A9A9A9A9010148
+:104D800054A9A9A9A9A9A9A9A9A9A9A9A9A9010138
+:104D900054A9A9A9A9A9A9A9A9A9A9A9A9A9010128
+:104DA00054A9A9A9A9A9A9A9A9A9A9A9A9A9010118
+:104DB00054A9A9A9A9A9A9A9A9A9A9A9A9A9010108
+:104DC00054A9A9A9A9A9A9A9A9A9A9A9A9A90101F8
+:104DD00054A9A9A9A9A9A9A9A9A9A9A9A9A90101E8
+:104DE00054A9A9A9A9A9A9A9A9A9A9A9A9A90101D8
+:104DF00054A9A9A9A9A9A9A9A9A9A9A9A9A90101C8
+:104E000054A9A9A9A9A9A9A9A9A9A9A9A9A90101B7
+:104E100054A9A9A9A9A9A9A9A9A9A9A9A9A90101A7
+:104E200054A9A9A9A9A9A9A9A9A9A9A9A9A9010197
+:104E300054A9A9A9A9A9A9A9A9A9A9A9A9A9010286
+:104E40000155555556565656555555555555555463
+:104E50000155555555555555555555555555555457
+:104E60000155555555555555555555555555555447
+:104E70000155555555555555555555555555555437
+:104E80000155555555555555555555555555555427
+:104E90000155555555555555555555555555555417
+:104EA0000155555555555555555555555555555407
+:104EB00001555555555555555555555555555554F7
+:104EC00001555555555555555555555555555554E7
+:104ED00001555555555555555555555555555554D7
+:104EE00001555555555555555555555555555554C7
+:104EF00001555555555555555555555555555554B7
+:104F000001555555555555555555555555555554A6
+:104F10000155555555555555555555555555555496
+:104F20000155555555555555555555555555555486
+:104F30000155555555555555555555555555555674
+:104F4000545555565656565656555555555555560B
+:104F50005455555555555555555555555555555601
+:104F600054555555555555555555555555555556F1
+:104F700054555555555555555555555555555556E1
+:104F800054555555555555555555555555555556D1
+:104F900054555555555555555555555555555556C1
+:104FA00054555555555555555555555555555556B1
+:104FB00054555555555555555555555555555556A1
+:104FC0005455555555555555555555555555555691
+:104FD0005455555555555555555555555555555681
+:104FE0005455555555555555555555555555555671
+:104FF0005455555555555555555555555555555661
+:105000005455555555555555555555555555555650
+:105010005455555555555555555555555555555640
+:105020005455555555555555555555555555555630
+:105030005455555555555555555555555555555422
+:10504000015555565656565656555656555555AA07
+:10505000015555555656565655555555555555AAFB
+:10506000015555555656565655555555555555AAEB
+:10507000015555555656565655555555555555AADB
+:10508000015555555656565655555555555555AACB
+:10509000015555555656565655555555555555AABB
+:1050A000015555555656565655555555555555AAAB
+:1050B000015555555656565655555555555555AA9B
+:1050C000015555555656565655555555555555AA8B
+:1050D000015555555656565655555555555555AA7B
+:1050E000015555555656565655555555555555AA6B
+:1050F000015555555656565655555555555555AA5B
+:10510000015555555656565655555555555555AA4A
+:10511000015555555656565655555555555555AA3A
+:10512000015555555656565655555555555555AA2A
+:10513000015555555555555555555555555555AA1E
+:10514000545555565656565656565656565656A8B1
+:10515000545656565656565656565656565656A89F
+:10516000545656565656565656565656565656A88F
+:10517000545656565656565656565656565656A87F
+:10518000545656565656565656565656565656A86F
+:10519000545656565656565656565656565656A85F
+:1051A000545656565656565656565656565656A84F
+:1051B000545656565656565656565656565656A83F
+:1051C000545656565656565656565656565656A82F
+:1051D000545656565656565656565656565656A81F
+:1051E000545656565656565656565656565656A80F
+:1051F000545656565656565656565656565656A8FF
+:10520000545656565656565656565656565656A8EE
+:10521000545656565656565656565656565656A8DE
+:10522000545656565656565656565656565656A8CE
+:10523000545555565656565654545656565656A8C4
+:1052400001565656565656565656565656565602A7
+:105250000156565656565656565656565656560297
+:105260000156565656565656565656565656560287
+:105270000156565656565656565656565656560277
+:105280000156565656565656565656565656560267
+:105290000156565656565656565656565656560257
+:1052A0000156565656565656565656565656560247
+:1052B0000156565656565656565656565656560237
+:1052C0000156565656565656565656565656560227
+:1052D0000156565656565656565656565656560217
+:1052E0000156565656565656565656565656560207
+:1052F00001565656565656565656565656565602F7
+:1053000001565656565656565656565656565602E6
+:1053100001565656565656565656565656565602D6
+:1053200001565656565656565656565656565602C6
+:1053300001555456565656565656565656565602B9
+:10534000545656565656565656565656565656A8AD
+:105350000156565656565656565656565656560296
+:10536000545656565656565656565656565656A88D
+:1053700001AAAAAAAAAAAAAAAAAAAAAAAAAAAA02DE
+:1053800054AAAAAAAAAAAAAAAAAAAAAAAAAAAAA8D5
+:1053900001AAAAAAAAAAAAAAAAAAAAAAAAAAAA02BE
+:1053A00054AAAAAAAAAAAAAAAAAAAAAAAAAAAAA8B5
+:1053B00001AAAAAAAAAAAAAAAAAAAAAAAAAAAA029E
+:1053C00001AAAAAAAAAAAAAAAAAAAAAAAAAAAA028E
+:1053D00001AAAAAAAAAAAAAAAAAAAAAAAAAAAA027E
+:1053E00001AAAAAAAAAAAAAAAAAAAAAAAAAAAA026E
+:1053F00001AAAAAAAAAAAAAAAAAAAAAAAAAAAA025E
+:1054000001AAAAAAAAAAAAAAAAAAAAAAAAAAAA024D
+:1054100001AAAAAAAAAAAAAAAAAAAAAAAAAAAA023D
+:1054200001AAAAAAAAAAAAAAAAAAAAAAAAAAAA022D
+:1054300001AAAAAAAAAAAAAAAAAAAAAAAAAAAA021D
+:1054400001AAAAAAAAAAAAAAAAAAAAAAAAAAAA020D
+:1054500001AAAAAAAAAAAAAAAAAAAAAAAAAAAA02FD
+:1054600001AAAAAAAAAAAAAAAAAAAAAAAAAAAA02ED
+:1054700001AAAAAAAAAAAAAAAAAAAAAAAAAAAA02DD
+:1054800001AAAAAAAAAAAAAAAAAAAAAAAAAAAA02CD
+:1054900001AAAAAAAAAAAAAAAAAAAAAAAAAAAA02BD
+:1054A00001AAAAAAAAAAAAAAAAAAAAAAAAAAAA01AE
+:1054B00054A9A9A9A9A9A9A9A9A9A9A9A9A9A8A8B3
+:1054C00000A9A9A9A9A9A9A9A9A9A9A9A9A8A800A0
+:1054D00055A9A9A9A9A9A9A9A9A9A9A9A8A8A8AA92
+:1054E000015555555555555555555554545400026B
+:1054F000545555555555555555555454540000A8B7
+:10550000545555555555555555545454000000A8FB
+:105510000155555555555555545454000000000239
+:105520000155555555555555545454000000000229
+:105530000155555555555555545454000000000219
+:105540000155555555555555545454000000000209
+:1055500001555555555555555454540000000002F9
+:1055600001555555555555555454540000000002E9
+:1055700001555555555555555454540000000002D9
+:1055800001555555555555555454540000000002C9
+:1055900001555555555555555454540000000002B9
+:1055A00001555555555555555454540000000002A9
+:1055B0000155555555555555545454000000000299
+:1055C0000155555555555555545454000000000289
+:1055D0000155555555555555545454000000000279
+:1055E0000155555555555555545454000000000269
+:1055F0000155555555555555545454000000000259
+:10560000015555555555555554545400000000004A
+:10561000015555555555555454540000000000028D
+:10562000015555555555555454540000000000027D
+:10563000015555555555555454540000000000026D
+:10564000015555555555555454540000000000025D
+:10565000015555555555555454540000000000024D
+:10566000015555555555555454540000000000023D
+:10567000015555555555555454540000000000022D
+:10568000015555555555555454540000000000021D
+:10569000015555555555555454540000000000020D
+:1056A00001555555555555545454000000000002FD
+:1056B00001555555555555545454000000000002ED
+:1056C00001555555555555545454000000000002DD
+:1056D00001555555555555545454000000000002CD
+:1056E00001555555555555545454000000000002BD
+:1056F00001555555555555545454000000000002AD
+:10570000015555555555555454540000000000009E
+:10571000545555555555555454540000000000A893
+:10572000545555555555555454000000000000A8D7
+:105730000155555555555454000000000000000215
+:105740000155555555555454000000000000000205
+:1057500001555555555554540000000000000002F5
+:1057600001555555555554540000000000000002E5
+:1057700001555555555554540000000000000002D5
+:1057800001555555555554540000000000000002C5
+:1057900001555555555554540000000000000002B5
+:1057A00001555555555554540000000000000002A5
+:1057B0000155555555555454000000000000000295
+:1057C0000155555555555454000000000000000285
+:1057D0000155555555555454000000000000000275
+:1057E0000155555555555454000000000000000265
+:1057F0000155555555555454000000000000000255
+:105800000155555555555454000000000000000244
+:105810000155555555555454000000000000000234
+:105820000155555555555454000000000000000026
+:105830000155555555555400000000000000000268
+:105840000155555555555400000000000000000258
+:105850000155555555555400000000000000000248
+:105860000155555555555400000000000000000238
+:105870000155555555555400000000000000000228
+:105880000155555555555400000000000000000218
+:105890000155555555555400000000000000000208
+:1058A00001555555555554000000000000000002F8
+:1058B00001555555555554000000000000000002E8
+:1058C00001555555555554000000000000000002D8
+:1058D00001555555555554000000000000000002C8
+:1058E00001555555555554000000000000000002B8
+:1058F00001555555555554000000000000000002A8
+:105900000155555555555400000000000000000297
+:105910000155555555555400000000000000000287
+:105920000155555555555400000000000000000079
+:10593000545555555554000000000000000000A8C3
+:10594000545555555554000000000000000000A8B3
+:10595000545555555554000000000000000000A8A3
+:10596000545555555554000000000000000000A893
+:10597000545555555554000000000000000000A883
+:10598000545555555554000000000000000000A873
+:10599000545555555554000000000000000000A863
+:1059A000545555555554000000000000000000A853
+:1059B000545555555554000000000000000000A843
+:1059C000545555555554000000000000000000A833
+:1059D000545555555554000000000000000000A823
+:1059E000545555555554000000000000000000A813
+:1059F000545555555554000000000000000000A803
+:105A0000545555555554000000000000000000A8F2
+:105A1000545555555554000000000000000000A8E2
+:105A2000545555555554000000000000000000007A
+:105A3000545555555554000000000000000000A8C2
+:105A4000545555555554000000000000000000A8B2
+:105A5000545555555554000000000000000000A8A2
+:105A6000545555555554000000000000000000A892
+:105A7000545555555554000000000000000000A882
+:105A8000545555555554000000000000000000A872
+:105A9000545555555554000000000000000000A862
+:105AA000545555555554000000000000000000A852
+:105AB000545555555554000000000000000000A842
+:105AC000545555555554000000000000000000A832
+:105AD000545555555554000000000000000000A822
+:105AE000545555555554000000000000000000A812
+:105AF000545555555554000000000000000000A802
+:105B0000545555555554000000000000000000A8F1
+:105B1000545555555554000000000000000000A8E1
+:105B20005455555555540000000000000000000079
+:105B30000155555554000000000000000000000110
+:105B40000155555554000000000000000000000100
+:105B500001555555540000000000000000000001F0
+:105B600001555555540000000000000000000001E0
+:105B700001555555540000000000000000000001D0
+:105B800001555555540000000000000000000001C0
+:105B900001555555540000000000000000000001B0
+:105BA00001555555540000000000000000000001A0
+:105BB0000155555554000000000000000000000190
+:105BC0000155555554000000000000000000000180
+:105BD0000155555554000000000000000000000170
+:105BE0000155555554000000000000000000000160
+:105BF0000155555554000000000000000000000150
+:105C0000015555555400000000000000000000013F
+:105C1000015555555400000000000000000000012F
+:105C20000155555554000000000000000000000020
+:105C3000015555555400000000000000000000010F
+:105C400001555555540000000000000000000001FF
+:105C500001555555540000000000000000000001EF
+:105C600001555555540000000000000000000001DF
+:105C700001555555540000000000000000000001CF
+:105C800001555555540000000000000000000001BF
+:105C900001555555540000000000000000000001AF
+:105CA000015555555400000000000000000000019F
+:105CB000015555555400000000000000000000018F
+:105CC000015555555400000000000000000000017F
+:105CD000015555555400000000000000000000016F
+:105CE000015555555400000000000000000000015F
+:105CF000015555555400000000000000000000014F
+:105D0000015555555400000000000000000000013E
+:105D1000015555555400000000000000000000012E
+:105D2000015555555400000000000000000000001F
+:105D3000545555540000000000000000000000A869
+:105D4000545555540000000000000000000000A859
+:105D5000545555540000000000000000000000A849
+:105D6000545555540000000000000000000000A839
+:105D7000545555540000000000000000000000A829
+:105D8000545555540000000000000000000000A819
+:105D9000545555540000000000000000000000A809
+:105DA000545555540000000000000000000000A8F9
+:105DB000545555540000000000000000000000A8E9
+:105DC000545555540000000000000000000000A8D9
+:105DD000545555540000000000000000000000A8C9
+:105DE000545555540000000000000000000000A8B9
+:105DF000545555540000000000000000000000A8A9
+:105E0000545555540000000000000000000000A898
+:105E1000545555540000000000000000000000A888
+:105E20005455555400000000000000000000000020
+:105E3000545555540000000000000000000000A868
+:105E4000545555540000000000000000000000A858
+:105E5000545555540000000000000000000000A848
+:105E6000545555540000000000000000000000A838
+:105E7000545555540000000000000000000000A828
+:105E8000545555540000000000000000000000A818
+:105E9000545555540000000000000000000000A808
+:105EA000545555540000000000000000000000A8F8
+:105EB000545555540000000000000000000000A8E8
+:105EC000545555540000000000000000000000A8D8
+:105ED000545555540000000000000000000000A8C8
+:105EE000545555540000000000000000000000A8B8
+:105EF000545555540000000000000000000000A8A8
+:105F0000545555540000000000000000000000A897
+:105F1000545555540000000000000000000000A887
+:105F2000545555540000000000000000000000001F
+:105F30000155545400000000000000000000000261
+:105F40000155545400000000000000000000000251
+:105F50000155545400000000000000000000000241
+:105F60000155545400000000000000000000000231
+:105F70000155545400000000000000000000000221
+:105F80000155545400000000000000000000000211
+:105F90000155545400000000000000000000000201
+:105FA00001555454000000000000000000000002F1
+:105FB00001555454000000000000000000000002E1
+:105FC00001555454000000000000000000000002D1
+:105FD00001555454000000000000000000000002C1
+:105FE00001555454000000000000000000000002B1
+:105FF00001555454000000000000000000000002A1
+:106000000155545400000000000000000000000290
+:106010000155545400000000000000000000000280
+:106020000155545400000000000000000000000072
+:106030000155545400000000000000000000000260
+:106040000155545400000000000000000000000250
+:106050000155545400000000000000000000000240
+:106060000155545400000000000000000000000230
+:106070000155545400000000000000000000000220
+:106080000155545400000000000000000000000210
+:106090000155545400000000000000000000000200
+:1060A00001555454000000000000000000000002F0
+:1060B00001555454000000000000000000000002E0
+:1060C00001555454000000000000000000000002D0
+:1060D00001555454000000000000000000000002C0
+:1060E00001555454000000000000000000000002B0
+:1060F00001555454000000000000000000000002A0
+:10610000015554540000000000000000000000028F
+:10611000015554540000000000000000000000027F
+:106120000155545400000000000000000000000071
+:10613000545454000000000000000000000000A8BB
+:10614000545454000000000000000000000000A8AB
+:10615000545454000000000000000000000000A89B
+:10616000545454000000000000000000000000A88B
+:10617000545454000000000000000000000000A87B
+:10618000545454000000000000000000000000A86B
+:10619000545454000000000000000000000000A85B
+:1061A000545454000000000000000000000000A84B
+:1061B000545454000000000000000000000000A83B
+:1061C000545454000000000000000000000000A82B
+:1061D000545454000000000000000000000000A81B
+:1061E000545454000000000000000000000000A80B
+:1061F000545454000000000000000000000000A8FB
+:10620000545454000000000000000000000000A8EA
+:10621000545454000000000000000000000000A8DA
+:106220005454540000000000000000000000000072
+:10623000575703030303030303030303030303ABDE
+:10624000575703030303030303030303030303ABCE
+:10625000575703030303030303030303030303ABBE
+:10626000575703030303030303030303030303ABAE
+:10627000575703030303030303030303030303AB9E
+:10628000575703030303030303030303030303AB8E
+:10629000575703030303030303030303030303AB7E
+:1062A000575703030303030303030303030303AB6E
+:1062B000575703030303030303030303030303AB5E
+:1062C000575703030303030303030303030303AB4E
+:1062D000575703030303030303030303030303AB3E
+:1062E000575703030303030303030303030303AB2E
+:1062F000575703030303030303030303030303AB1E
+:10630000575703030303030303030303030303AB0D
+:10631000575703030303030303030303030303ABFD
+:106320005757030303030303030303030303030395
+:10633000000000000000000000000000000000005D
+:10634000FCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFC8D
+:10635000000000000000000000000000000000003D
+:10636000000000000000000000000000000000002D
+:10637000000000000000000000000000000000001D
+:10638000000000000000000000000000000000000D
+:1063900000000000000000000000000000000000FD
+:1063A00000000000000000000000000000000000ED
+:1063B00000000000000000000000000000000000DD
+:1063C00000000000000000000000000000000000CD
+:1063D00000000000000000000000000000000000BD
+:1063E00000000000000000000000000000000000AD
+:1063F000000000000000000000000000000000009D
+:10640000AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEC
+:10641000AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADC
+:10642000AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACC
+:10643000AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABC
+:10644000AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAC
+:10645000AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA9C
+:10646000AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8C
+:10647000AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA7C
+:106480005555555555555555AAAAAAAAAAAAAAAA14
+:106490005555555555555555AAAAAAAAAAAAAAAA04
+:1064A0005555555555555555AAAAAAAAAAAAAAAAF4
+:1064B0005555555555555555AAAAAAAAAAAAAAAAE4
+:1064C0005555555555555555AAAAAAAAAAAAAAAAD4
+:1064D0005555555555555555AAAAAAAAAAAAAAAAC4
+:1064E0005555555555555555AAAAAAAAAAAAAAAAB4
+:1064F0005555555555555555AAAAAAAAAAAAAAAAA4
+:10650000000000000000000000000000000000008B
+:10651000000000000000000000000000000000007B
+:10652000000000000000000000000000000000006B
+:10653000000000000000000000000000000000005B
+:10654000000000000000000000000000000000004B
+:10655000000000000000000000000000000000003B
+:10656000000000000000000000000000000000002B
+:10657000000000000000000000000000000000001B
+:106580005555555555555555000000000000000063
+:106590005555555555555555000000000000000053
+:1065A0005555555555555555000000000000000043
+:1065B0005555555555555555000000000000000033
+:1065C0005555555555555555000000000000000023
+:1065D0005555555555555555000000000000000013
+:1065E0005555555555555555000000000000000003
+:1065F00055555555555555550000000000000000F3
+:106600005555555555555555AAAAAAAAAAAAAAAA92
+:106610005555555555555555AAAAAAAAAAAAAAAA82
+:106620005555555555555555AAAAAAAAAAAAAAAA72
+:106630005555555555555555AAAAAAAAAAAAAAAA62
+:106640005555555555555555AAAAAAAAAAAAAAAA52
+:106650005555555555555555AAAAAAAAAAAAAAAA42
+:106660005555555555555555AAAAAAAAAAAAAAAA32
+:106670005555555555555555AAAAAAAAAAAAAAAA22
+:10668000AAAAAAAAAAAAAAAA555555555555555512
+:10669000AAAAAAAAAAAAAAAA555555555555555502
+:1066A000AAAAAAAAAAAAAAAA5555555555555555F2
+:1066B000AAAAAAAAAAAAAAAA5555555555555555E2
+:1066C000AAAAAAAAAAAAAAAA5555555555555555D2
+:1066D000AAAAAAAAAAAAAAAA5555555555555555C2
+:1066E000AAAAAAAAAAAAAAAA5555555555555555B2
+:1066F000AAAAAAAAAAAAAAAA5555555555555555A2
+:106700005555555555555555AAAAAAAAAAAAAAAA91
+:106710005555555555555555AAAAAAAAAAAAAAAA81
+:106720005555555555555555AAAAAAAAAAAAAAAA71
+:106730005555555555555555AAAAAAAAAAAAAAAA61
+:106740005555555555555555AAAAAAAAAAAAAAAA51
+:106750005555555555555555AAAAAAAAAAAAAAAA41
+:106760005555555555555555AAAAAAAAAAAAAAAA31
+:106770005555555555555555AAAAAAAAAAAAAAAA21
+:10678000AAAAAAAAAAAAAAAA555555555555555511
+:10679000AAAAAAAAAAAAAAAA555555555555555501
+:1067A000AAAAAAAAAAAAAAAA5555555555555555F1
+:1067B000AAAAAAAAAAAAAAAA5555555555555555E1
+:1067C000AAAAAAAAAAAAAAAA5555555555555555D1
+:1067D000AAAAAAAAAAAAAAAA5555555555555555C1
+:1067E000AAAAAAAAAAAAAAAA5555555555555555B1
+:1067F000AAAAAAAAAAAAAAAA5555555555555555A1
+:106800005555555555555555AAAAAAAAAAAAAAAA90
+:106810005555555555555555AAAAAAAAAAAAAAAA80
+:106820005555555555555555AAAAAAAAAAAAAAAA70
+:106830005555555555555555AAAAAAAAAAAAAAAA60
+:106840005555555555555555AAAAAAAAAAAAAAAA50
+:106850005555555555555555AAAAAAAAAAAAAAAA40
+:106860005555555555555555AAAAAAAAAAAAAAAA30
+:106870005555555555555555AAAAAAAAAAAAAAAA20
+:10688000AAAAAAAAAAAAAAAA555555555555555510
+:10689000AAAAAAAAAAAAAAAA555555555555555500
+:1068A000AAAAAAAAAAAAAAAA5555555555555555F0
+:1068B000AAAAAAAAAAAAAAAA5555555555555555E0
+:1068C000AAAAAAAAAAAAAAAA5555555555555555D0
+:1068D000AAAAAAAAAAAAAAAA5555555555555555C0
+:1068E000AAAAAAAAAAAAAAAA5555555555555555B0
+:1068F000AAAAAAAAAAAAAAAA5555555555555555A0
+:106900005555555555555555AAAAAAAAAAAAAAAA8F
+:106910005555555555555555AAAAAAAAAAAAAAAA7F
+:106920005555555555555555AAAAAAAAAAAAAAAA6F
+:106930005555555555555555AAAAAAAAAAAAAAAA5F
+:106940005555555555555555AAAAAAAAAAAAAAAA4F
+:106950005555555555555555AAAAAAAAAAAAAAAA3F
+:106960005555555555555555AAAAAAAAAAAAAAAA2F
+:106970005555555555555555AAAAAAAAAAAAAAAA1F
+:10698000AAAAAAAAAAAAAAAA55555555555555550F
+:10699000AAAAAAAAAAAAAAAA5555555555555555FF
+:1069A000AAAAAAAAAAAAAAAA5555555555555555EF
+:1069B000AAAAAAAAAAAAAAAA5555555555555555DF
+:1069C000AAAAAAAAAAAAAAAA5555555555555555CF
+:1069D000AAAAAAAAAAAAAAAA5555555555555555BF
+:1069E000AAAAAAAAAAAAAAAA5555555555555555AF
+:1069F000AAAAAAAAAAAAAAAA55555555555555559F
+:106A00005555555555555555AAAAAAAAAAAAAAAA8E
+:106A10005555555555555555AAAAAAAAAAAAAAAA7E
+:106A20005555555555555555AAAAAAAAAAAAAAAA6E
+:106A30005555555555555555AAAAAAAAAAAAAAAA5E
+:106A40005555555555555555AAAAAAAAAAAAAAAA4E
+:106A50005555555555555555AAAAAAAAAAAAAAAA3E
+:106A60005555555555555555AAAAAAAAAAAAAAAA2E
+:106A70005555555555555555AAAAAAAAAAAAAAAA1E
+:106A8000AAAAAAAAAAAAAAAA55555555555555550E
+:106A9000AAAAAAAAAAAAAAAA5555555555555555FE
+:106AA000AAAAAAAAAAAAAAAA5555555555555555EE
+:106AB000AAAAAAAAAAAAAAAA5555555555555555DE
+:106AC000AAAAAAAAAAAAAAAA5555555555555555CE
+:106AD000AAAAAAAAAAAAAAAA5555555555555555BE
+:106AE000AAAAAAAAAAAAAAAA5555555555555555AE
+:106AF000AAAAAAAAAAAAAAAA55555555555555559E
+:106B00005555555555555555AAAAAAAAAAAAAAAA8D
+:106B10005555555555555555AAAAAAAAAAAAAAAA7D
+:106B20005555555555555555AAAAAAAAAAAAAAAA6D
+:106B30005555555555555555AAAAAAAAAAAAAAAA5D
+:106B40005555555555555555AAAAAAAAAAAAAAAA4D
+:106B50005555555555555555AAAAAAAAAAAAAAAA3D
+:106B60005555555555555555AAAAAAAAAAAAAAAA2D
+:106B70005555555555555555AAAAAAAAAAAAAAAA1D
+:106B8000AAAAAAAAAAAAAAAA55555555555555550D
+:106B9000AAAAAAAAAAAAAAAA5555555555555555FD
+:106BA000AAAAAAAAAAAAAAAA5555555555555555ED
+:106BB000AAAAAAAAAAAAAAAA5555555555555555DD
+:106BC000AAAAAAAAAAAAAAAA5555555555555555CD
+:106BD000AAAAAAAAAAAAAAAA5555555555555555BD
+:106BE000AAAAAAAAAAAAAAAA5555555555555555AD
+:106BF000AAAAAAAAAAAAAAAA55555555555555559D
+:106C00005454545454545454A8A8A8A8A8A8A8A8A4
+:106C10005454545454545454A8A8A8A8A8A8A8A894
+:106C20005454545454545454A8A8A8A8A8A8A8A884
+:106C30005454545454545454A8A8A8A8A8A8A8A874
+:106C40005454545454545454A8A8A8A8A8A8A8A864
+:106C50005454545454545454A8A8A8A8A8A8A8A854
+:106C60005454545454545454A8A8A8A8A8A8A8A844
+:106C70005454545454545454A8A8A8A8A8A8A8A834
+:106C8000A8A8A8A8A8A8A8A8545454545454545424
+:106C9000A8A8A8A8A8A8A8A8545454545454545414
+:106CA000A8A8A8A8A8A8A8A8545454545454545404
+:106CB000A8A8A8A8A8A8A8A85454545454545454F4
+:106CC000A8A8A8A8A8A8A8A85454545454545454E4
+:106CD000A8A8A8A8A8A8A8A85454545454545454D4
+:106CE000A8A8A8A8A8A8A8A85454545454545454C4
+:106CF000A8A8A8A8A8A8A8A85454545454545454B4
+:106D00005656565656565656A9A9A9A9A9A9A9A98B
+:106D10005656565656565656A9A9A9A9A9A9A9A97B
+:106D20005656565656565656A9A9A9A9A9A9A9A96B
+:106D30005656565656565656A9A9A9A9A9A9A9A95B
+:106D40005656565656565656A9A9A9A9A9A9A9A94B
+:106D50005656565656565656A9A9A9A9A9A9A9A93B
+:106D60005656565656565656A9A9A9A9A9A9A9A92B
+:106D70005656565656565656A9A9A9A9A9A9A9A91B
+:106D8000AAAAAAAAAAAAAAAA565656565656565603
+:106D9000AAAAAAAAAAAAAAAA5656565656565656F3
+:106DA000AAAAAAAAAAAAAAAA5656565656565656E3
+:106DB000AAAAAAAAAAAAAAAA5656565656565656D3
+:106DC000AAAAAAAAAAAAAAAA5656565656565656C3
+:106DD000AAAAAAAAAAAAAAAA5656565656565656B3
+:106DE000AAAAAAAAAAAAAAAA5656565656565656A3
+:106DF000AAAAAAAAAAAAAAAA565656565656565693
+:106E00005252525252525252A1A1A1A1A1A1A1A1EA
+:106E10005252525252525252A1A1A1A1A1A1A1A1DA
+:106E20005252525252525252A1A1A1A1A1A1A1A1CA
+:106E30005252525252525252A1A1A1A1A1A1A1A1BA
+:106E40005252525252525252A1A1A1A1A1A1A1A1AA
+:106E50005252525252525252A1A1A1A1A1A1A1A19A
+:106E60005252525252525252A1A1A1A1A1A1A1A18A
+:106E70005252525252525252A1A1A1A1A1A1A1A17A
+:106E8000A2A2A2A2A2A2A2A2525252525252525262
+:106E9000A2A2A2A2A2A2A2A2525252525252525252
+:106EA000A2A2A2A2A2A2A2A2525252525252525242
+:106EB000A2A2A2A2A2A2A2A2525252525252525232
+:106EC000A2A2A2A2A2A2A2A2525252525252525222
+:106ED000A2A2A2A2A2A2A2A2525252525252525212
+:106EE000A2A2A2A2A2A2A2A2525252525252525202
+:106EF000A2A2A2A2A2A2A2A25252525252525252F2
+:106F00005A5A5A5A5A5A5A5AA5A5A5A5A5A5A5A589
+:106F10005A5A5A5A5A5A5A5AA5A5A5A5A5A5A5A579
+:106F20005A5A5A5A5A5A5A5AA5A5A5A5A5A5A5A569
+:106F30005A5A5A5A5A5A5A5AA5A5A5A5A5A5A5A559
+:106F40005A5A5A5A5A5A5A5AA5A5A5A5A5A5A5A549
+:106F50005A5A5A5A5A5A5A5AA5A5A5A5A5A5A5A539
+:106F60005A5A5A5A5A5A5A5AA5A5A5A5A5A5A5A529
+:106F70005A5A5A5A5A5A5A5AA5A5A5A5A5A5A5A519
+:106F8000AAAAAAAAAAAAAAAA5A5A5A5A5A5A5A5AE1
+:106F9000AAAAAAAAAAAAAAAA5A5A5A5A5A5A5A5AD1
+:106FA000AAAAAAAAAAAAAAAA5A5A5A5A5A5A5A5AC1
+:106FB000AAAAAAAAAAAAAAAA5A5A5A5A5A5A5A5AB1
+:106FC000AAAAAAAAAAAAAAAA5A5A5A5A5A5A5A5AA1
+:106FD000AAAAAAAAAAAAAAAA5A5A5A5A5A5A5A5A91
+:106FE000AAAAAAAAAAAAAAAA5A5A5A5A5A5A5A5A81
+:106FF000AAAAAAAAAAAAAAAA5A5A5A5A5A5A5A5A71
+:107000000A0A0A0A0A0A0A0A050505050505050508
+:107010000A0A0A0A0A0A0A0A0505050505050505F8
+:107020000A0A0A0A0A0A0A0A0505050505050505E8
+:107030000A0A0A0A0A0A0A0A0505050505050505D8
+:107040000A0A0A0A0A0A0A0A0505050505050505C8
+:107050000A0A0A0A0A0A0A0A0505050505050505B8
+:107060000A0A0A0A0A0A0A0A0505050505050505A8
+:107070000A0A0A0A0A0A0A0A050505050505050598
+:107080000A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A60
+:107090000A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A50
+:1070A0000A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A40
+:1070B0000A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A30
+:1070C0000A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A20
+:1070D0000A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A10
+:1070E0000A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A00
+:1070F0000A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0AF0
+:10710000AAAAAAAAAAAAAAAA555555555555555587
+:10711000AAAAAAAAAAAAAAAA555555555555555577
+:10712000AAAAAAAAAAAAAAAA555555555555555567
+:10713000AAAAAAAAAAAAAAAA555555555555555557
+:10714000AAAAAAAAAAAAAAAA555555555555555547
+:10715000AAAAAAAAAAAAAAAA555555555555555537
+:10716000AAAAAAAAAAAAAAAA555555555555555527
+:10717000AAAAAAAAAAAAAAAA555555555555555517
+:10718000AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA5F
+:10719000AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA4F
+:1071A000AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA3F
+:1071B000AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA2F
+:1071C000AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA1F
+:1071D000AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA0F
+:1071E000AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFF
+:1071F000AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEF
+:10720000AAAAAAAAAAAAAAAA555555555555555586
+:10721000AAAAAAAAAAAAAAAA555555555555555576
+:10722000AAAAAAAAAAAAAAAA555555555555555566
+:10723000AAAAAAAAAAAAAAAA555555555555555556
+:10724000AAAAAAAAAAAAAAAA555555555555555546
+:10725000AAAAAAAAAAAAAAAA555555555555555536
+:10726000AAAAAAAAAAAAAAAA555555555555555526
+:10727000AAAAAAAAAAAAAAAA555555555555555516
+:10728000AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA5E
+:10729000AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA4E
+:1072A000AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA3E
+:1072B000AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA2E
+:1072C000AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA1E
+:1072D000AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA0E
+:1072E000AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFE
+:1072F000AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEE
+:10730000A8A8A8A8A8A8A8A854545454545454549D
+:10731000A8A8A8A8A8A8A8A854545454545454548D
+:10732000A8A8A8A8A8A8A8A854545454545454547D
+:10733000A8A8A8A8A8A8A8A854545454545454546D
+:10734000A8A8A8A8A8A8A8A854545454545454545D
+:10735000A8A8A8A8A8A8A8A854545454545454544D
+:10736000A8A8A8A8A8A8A8A854545454545454543D
+:10737000A8A8A8A8A8A8A8A854545454545454542D
+:10738000A8A8A8A8A8A8A8A8A8A8A8A8A8A8A8A87D
+:10739000A8A8A8A8A8A8A8A8A8A8A8A8A8A8A8A86D
+:1073A000A8A8A8A8A8A8A8A8A8A8A8A8A8A8A8A85D
+:1073B000A8A8A8A8A8A8A8A8A8A8A8A8A8A8A8A84D
+:1073C000A8A8A8A8A8A8A8A8A8A8A8A8A8A8A8A83D
+:1073D000A8A8A8A8A8A8A8A8A8A8A8A8A8A8A8A82D
+:1073E000A8A8A8A8A8A8A8A8A8A8A8A8A8A8A8A81D
+:1073F000A8A8A8A8A8A8A8A8A8A8A8A8A8A8A8A80D
+:10740000ABABABABABABABAB57575757575757576C
+:10741000ABABABABABABABAB57575757575757575C
+:10742000ABABABABABABABAB57575757575757574C
+:10743000ABABABABABABABAB57575757575757573C
+:10744000ABABABABABABABAB57575757575757572C
+:10745000ABABABABABABABAB57575757575757571C
+:10746000ABABABABABABABAB57575757575757570C
+:10747000ABABABABABABABAB5757575757575757FC
+:10748000ABABABABABABABABABABABABABABABAB4C
+:10749000ABABABABABABABABABABABABABABABAB3C
+:1074A000ABABABABABABABABABABABABABABABAB2C
+:1074B000ABABABABABABABABABABABABABABABAB1C
+:1074C000ABABABABABABABABABABABABABABABAB0C
+:1074D000ABABABABABABABABABABABABABABABABFC
+:1074E000ABABABABABABABABABABABABABABABABEC
+:1074F000ABABABABABABABABABABABABABABABABDC
+:10750000A8A8A8A8A8A8A8A854545454545454549B
+:10751000A8A8A8A8A8A8A8A854545454545454548B
+:10752000A8A8A8A8A8A8A8A854545454545454547B
+:10753000A8A8A8A8A8A8A8A854545454545454546B
+:10754000A8A8A8A8A8A8A8A854545454545454545B
+:10755000A8A8A8A8A8A8A8A854545454545454544B
+:10756000A8A8A8A8A8A8A8A854545454545454543B
+:10757000A8A8A8A8A8A8A8A854545454545454542B
+:10758000A8A8A8A8A8A8A8A8A8A8A8A8A8A8A8A87B
+:10759000A8A8A8A8A8A8A8A8A8A8A8A8A8A8A8A86B
+:1075A000A8A8A8A8A8A8A8A8A8A8A8A8A8A8A8A85B
+:1075B000A8A8A8A8A8A8A8A8A8A8A8A8A8A8A8A84B
+:1075C000A8A8A8A8A8A8A8A8A8A8A8A8A8A8A8A83B
+:1075D000A8A8A8A8A8A8A8A8A8A8A8A8A8A8A8A82B
+:1075E000A8A8A8A8A8A8A8A8A8A8A8A8A8A8A8A81B
+:1075F000A8A8A8A8A8A8A8A8A8A8A8A8A8A8A8A80B
+:10760000A8A8A8A8A8A8A8A854545454545454549A
+:10761000A8A8A8A8A8A8A8A854545454545454548A
+:10762000A8A8A8A8A8A8A8A854545454545454547A
+:10763000A8A8A8A8A8A8A8A854545454545454546A
+:10764000A8A8A8A8A8A8A8A854545454545454545A
+:10765000A8A8A8A8A8A8A8A854545454545454544A
+:10766000A8A8A8A8A8A8A8A854545454545454543A
+:10767000A8A8A8A8A8A8A8A854545454545454542A
+:10768000A8A8A8A8A8A8A8A8A8A8A8A8A8A8A8A87A
+:10769000A8A8A8A8A8A8A8A8A8A8A8A8A8A8A8A86A
+:1076A000A8A8A8A8A8A8A8A8A8A8A8A8A8A8A8A85A
+:1076B000A8A8A8A8A8A8A8A8A8A8A8A8A8A8A8A84A
+:1076C000A8A8A8A8A8A8A8A8A8A8A8A8A8A8A8A83A
+:1076D000A8A8A8A8A8A8A8A8A8A8A8A8A8A8A8A82A
+:1076E000A8A8A8A8A8A8A8A8A8A8A8A8A8A8A8A81A
+:1076F000A8A8A8A8A8A8A8A8A8A8A8A8A8A8A8A80A
+:10770000A0A0A0A0A0A0A0A05050505050505050F9
+:10771000A0A0A0A0A0A0A0A05050505050505050E9
+:10772000A0A0A0A0A0A0A0A05050505050505050D9
+:10773000A0A0A0A0A0A0A0A05050505050505050C9
+:10774000A0A0A0A0A0A0A0A05050505050505050B9
+:10775000A0A0A0A0A0A0A0A05050505050505050A9
+:10776000A0A0A0A0A0A0A0A0505050505050505099
+:10777000A0A0A0A0A0A0A0A0505050505050505089
+:10778000A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0F9
+:10779000A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0E9
+:1077A000A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0D9
+:1077B000A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0C9
+:1077C000A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0B9
+:1077D000A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A9
+:1077E000A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A099
+:1077F000A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A089
+:10780000ACACACACACACACAC5C5C5C5C5C5C5C5C38
+:10781000ACACACACACACACAC5C5C5C5C5C5C5C5C28
+:10782000ACACACACACACACAC5C5C5C5C5C5C5C5C18
+:10783000ACACACACACACACAC5C5C5C5C5C5C5C5C08
+:10784000ACACACACACACACAC5C5C5C5C5C5C5C5CF8
+:10785000ACACACACACACACAC5C5C5C5C5C5C5C5CE8
+:10786000ACACACACACACACAC5C5C5C5C5C5C5C5CD8
+:10787000ACACACACACACACAC5C5C5C5C5C5C5C5CC8
+:10788000ACACACACACACACACACACACACACACACAC38
+:10789000ACACACACACACACACACACACACACACACAC28
+:1078A000ACACACACACACACACACACACACACACACAC18
+:1078B000ACACACACACACACACACACACACACACACAC08
+:1078C000ACACACACACACACACACACACACACACACACF8
+:1078D000ACACACACACACACACACACACACACACACACE8
+:1078E000ACACACACACACACACACACACACACACACACD8
+:1078F000ACACACACACACACACACACACACACACACACC8
+:10790000A0A0A0A0A0A0A0A05050505050505050F7
+:10791000A0A0A0A0A0A0A0A05050505050505050E7
+:10792000A0A0A0A0A0A0A0A05050505050505050D7
+:10793000A0A0A0A0A0A0A0A05050505050505050C7
+:10794000A0A0A0A0A0A0A0A05050505050505050B7
+:10795000A0A0A0A0A0A0A0A05050505050505050A7
+:10796000A0A0A0A0A0A0A0A0505050505050505097
+:10797000A0A0A0A0A0A0A0A0505050505050505087
+:10798000A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0F7
+:10799000A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0E7
+:1079A000A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0D7
+:1079B000A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0C7
+:1079C000A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0B7
+:1079D000A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A7
+:1079E000A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A097
+:1079F000A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A087
+:107A0000A0A0A0A0A0A0A0A05050505050505050F6
+:107A1000A0A0A0A0A0A0A0A05050505050505050E6
+:107A2000A0A0A0A0A0A0A0A05050505050505050D6
+:107A3000A0A0A0A0A0A0A0A05050505050505050C6
+:107A4000A0A0A0A0A0A0A0A05050505050505050B6
+:107A5000A0A0A0A0A0A0A0A05050505050505050A6
+:107A6000A0A0A0A0A0A0A0A0505050505050505096
+:107A7000A0A0A0A0A0A0A0A0505050505050505086
+:107A8000A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0F6
+:107A9000A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0E6
+:107AA000A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0D6
+:107AB000A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0C6
+:107AC000A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0B6
+:107AD000A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A6
+:107AE000A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A096
+:107AF000A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A086
+:107B00000000000000000000000000000000000075
+:107B1000F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F065
+:107B20000000000000000000000000000000000055
+:107B30000000000000000000000000000000000045
+:107B40000000000000000000000000000000000035
+:107B50000000000000000000000000000000000025
+:107B60000000000000000000000000000000000015
+:107B70000000000000000000000000000000000005
+:107B800000000000000000000000000000000000F5
+:107B900000000000000000000000000000000000E5
+:107BA00000000000000000000000000000000000D5
+:107BB00000000000000000000000000000000000C5
+:107BC00000000000000000000000000000000000B5
+:107BD00000000000000000000000000000000000A5
+:107BE0000000000000000000000000000000000095
+:107BF0000000000000000000000000000000000085
+:107C00000000000000000000000000000000000074
+:107C10000000000000000000000000000000000064
+:107C20000000000000000000000000000000000054
+:107C30000000000000000000000000000000000044
+:107C40000000000000000000000000000000000034
+:107C50000000000000000000000000000000000024
+:107C60000000000000000000000000000000000014
+:107C70000000000000000000000000000000000004
+:107C800000000000000000000000000000000000F4
+:107C900000000000000000000000000000000000E4
+:107CA00000000000000000000000000000000000D4
+:107CB00000000000000000000000000000000000C4
+:107CC00000000000000000000000000000000000B4
+:107CD00000000000000000000000000000000000A4
+:107CE0000000000000000000000000000000000094
+:107CF0000000000000000000000000000000000084
+:107D00000000000000000000000000000000000073
+:107D10000000000000000000000000000000000063
+:107D20000000000000000000000000000000000053
+:107D30000000000000000000000000000000000043
+:107D40000000000000000000000000000000000033
+:107D50000000000000000000000000000000000023
+:107D60000000000000000000000000000000000013
+:107D70000000000000000000000000000000000003
+:107D800000000000000000000000000000000000F3
+:107D900000000000000000000000000000000000E3
+:107DA00000000000000000000000000000000000D3
+:107DB00000000000000000000000000000000000C3
+:107DC00000000000000000000000000000000000B3
+:107DD00000000000000000000000000000000000A3
+:107DE0000000000000000000000000000000000093
+:107DF0000000000000000000000000000000000083
+:107E00000000000000000000000000000000000072
+:107E10000000000000000000000000000000000062
+:107E20000000000000000000000000000000000052
+:107E30000000000000000000000000000000000042
+:107E40000000000000000000000000000000000032
+:107E50000000000000000000000000000000000022
+:107E60000000000000000000000000000000000012
+:107E70000000000000000000000000000000000002
+:107E800000000000000000000000000000000000F2
+:107E900000000000000000000000000000000000E2
+:107EA00000000000000000000000000000000000D2
+:107EB00000000000000000000000000000000000C2
+:107EC00000000000000000000000000000000000B2
+:107ED00000000000000000000000000000000000A2
+:107EE0000000000000000000000000000000000092
+:107EF0000000000000000000000000000000000082
+:107F00000000000000000000000000000000000071
+:107F10000000000000000000000000000000000061
+:107F20000000000000000000000000000000000051
+:107F30000000000000000000000000000000000041
+:107F40000000000000000000000000000000000031
+:107F50000000000000000000000000000000000021
+:107F60000000000000000000000000000000000011
+:107F70000000000000000000000000000000000001
+:107F800000000000000000000000000000000000F1
+:107F900000000000000000000000000000000000E1
+:107FA00000000000000000000000000000000000D1
+:107FB00000000000000000000000000000000000C1
+:107FC00000000000000000000000000000000000B1
+:107FD00000000000000000000000000000000000A1
+:107FE0000000000000000000000000000000000091
+:107FF0000000000000000000000000000000000081
+:108000000000000000000000000000000000000070
+:108010000000000000000000000000000000000060
+:108020000000000000000000000000000000000050
+:108030000000000000000000000000000000000040
+:108040000000000000000000000000000000000030
+:108050000000000000000000000000000000000020
+:108060000000000000000000000000000000000010
+:108070000000000000000000000000000000000000
+:1080800000000000000000000000000000000000F0
+:1080900000000000000000000000000000000000E0
+:1080A00000000000000000000000000000000000D0
+:1080B0000303030303030303030303030303030390
+:1080C00000000000000000000000000000000000B0
+:1080D00000000000000000000000000000000000A0
+:1080E0000000000000000000000000000000000090
+:1080F0000000000000000000000000000000000080
+:10810000000000000000000000000000000000006F
+:10811000000000000000000000000000000000005F
+:10812000000000000000000000000000000000004F
+:10813000000000000000000000000000000000003F
+:10814000000000000000000000000000000000002F
+:10815000000000000000000000000000000000001F
+:10816000000000000000000000000000000000000F
+:108170000C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C3F
+:1081800000000000000000000000000000000000EF
+:1081900000000000000000000000000000000000DF
+:1081A00000000000000000000000000000000000CF
+:1081B00000000000000000000000000000000000BF
+:1081C00000000000000000000000000000000000AF
+:1081D000000000000000000000000000000000009F
+:1081E000000000000000000000000000000000008F
+:1081F000000000000000000000000000000000007F
+:10820000000000000000000000000000000000006E
+:10821000303030303030303030303030303030305E
+:10822000000000000000000000000000000000004E
+:10823000000000000000000000000000000000003E
+:10824000000000000000000000000000000000002E
+:10825000000000000000000000000000000000001E
+:10826000000000000000000000000000000000000E
+:1082700000000000000000000000000000000000FE
+:1082800000000000000000000000000000000000EE
+:1082900000000000000000000000000000000000DE
+:1082A00000000000000000000000000000000000CE
+:1082B00000000000000000000000000000000000BE
+:1082C00000000000000000000000000000000000AE
+:1082D000000000000000000000000000000000009E
+:1082E000000000000000000000000000000000008E
+:1082F000000000000000000000000000000000007E
+:10830000000000000000000000000000000000006D
+:10831000000000000000000000000000000000005D
+:10832000000000000000000000000000000000004D
+:10833000000000000000000000000000000000003D
+:10834000000000000000000000000000000000002D
+:10835000000000000000000000000000000000001D
+:10836000000000000000000000000000000000000D
+:1083700000000000000000000000000000000000FD
+:1083800000000000000000000000000000000000ED
+:1083900000000000000000000000000000000000DD
+:1083A00000000000000000000000000000000000CD
+:1083B00000000000000000000000000000000000BD
+:1083C00000000000000000000000000000000000AD
+:1083D000000000000000000000000000000000009D
+:1083E000000000000000000000000000000000008D
+:1083F000000000000000000000000000000000007D
+:10840000000000000000000000000000000000006C
+:10841000000000000000000000000000000000005C
+:10842000000000000000000000000000000000004C
+:10843000000000000000000000000000000000003C
+:10844000000000000000000000000000000000002C
+:10845000000000000000000000000000000000001C
+:10846000000000000000000000000000000000000C
+:1084700000000000000000000000000000000000FC
+:1084800000000000000000000000000000000000EC
+:1084900000000000000000000000000000000000DC
+:1084A00000000000000000000000000000000000CC
+:1084B00000000000000000000000000000000000BC
+:1084C00000000000000000000000000000000000AC
+:1084D000000000000000000000000000000000009C
+:1084E000000000000000000000000000000000008C
+:1084F000000000000000000000000000000000007C
+:10850000000000000000000000000000000000006B
+:10851000000000000000000000000000000000005B
+:10852000000000000000000000000000000000004B
+:10853000000000000000000000000000000000003B
+:10854000000000000000000000000000000000002B
+:10855000000000000000000000000000000000001B
+:10856000000000000000000000000000000000000B
+:1085700000000000000000000000000000000000FB
+:1085800000000000000000000000000000000000EB
+:1085900000000000000000000000000000000000DB
+:1085A00000000000000000000000000000000000CB
+:1085B00000000000000000000000000000000000BB
+:1085C00000000000000000000000000000000000AB
+:1085D000000000000000000000000000000000009B
+:1085E000000000000000000000000000000000008B
+:1085F000000000000000000000000000000000007B
+:10860000000000000000000000000000000000006A
+:10861000000000000000000000000000000000005A
+:10862000000000000000000000000000000000004A
+:10863000000000000000000000000000000000003A
+:10864000000000000000000000000000000000002A
+:10865000000000000000000000000000000000001A
+:10866000000000000000000000000000000000000A
+:1086700000000000000000000000000000000000FA
+:1086800000000000000000000000000000000000EA
+:1086900000000000000000000000000000000000DA
+:1086A00000000000000000000000000000000000CA
+:1086B00000000000000000000000000000000000BA
+:1086C00000000000000000000000000000000000AA
+:1086D000000000000000000000000000000000009A
+:1086E000000000000000000000000000000000008A
+:1086F000000000000000000000000000000000007A
+:108700000000000000000000000000000000000069
+:108710000000000000000000000000000000000059
+:108720000000000000000000000000000000000049
+:108730000000000000000000000000000000000039
+:108740000000000000000000000000000000000029
+:108750000000000000000000000000000000000019
+:108760000000000000000000000000000000000009
+:1087700000000000000000000000000000000000F9
+:1087800000000000000000000000000000000000E9
+:1087900000000000000000000000000000000000D9
+:1087A00000000000000000000000000000000000C9
+:1087B0000303030303030303030303030303030389
+:1087C00000000000000000000000000000000000A9
+:1087D0000000000000000000000000000000000099
+:1087E0000000000000000000000000000000000089
+:1087F0000000000000000000000000000000000079
+:108800000000000000000000000000000000000068
+:108810000000000000000000000000000000000058
+:108820000000000000000000000000000000000048
+:108830000000000000000000000000000000000038
+:108840000000000000000000000000000000000028
+:108850000000000000000000000000000000000018
+:108860000000000000000000000000000000000008
+:108870000C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C38
+:1088800000000000000000000000000000000000E8
+:1088900000000000000000000000000000000000D8
+:1088A00000000000000000000000000000000000C8
+:1088B00000000000000000000000000000000000B8
+:1088C00000000000000000000000000000000000A8
+:1088D0000000000000000000000000000000000098
+:1088E0000000000000000000000000000000000088
+:1088F0000000000000000000000000000000000078
+:108900000000000000000000000000000000000067
+:108910003030303030303030303030303030303057
+:108920000000000000000000000000000000000047
+:108930000000000000000000000000000000000037
+:108940000000000000000000000000000000000027
+:108950000000000000000000000000000000000017
+:108960000000000000000000000000000000000007
+:1089700000000000000000000000000000000000F7
+:1089800000000000000000000000000000000000E7
+:1089900000000000000000000000000000000000D7
+:1089A00000000000000000000000000000000000C7
+:1089B00000000000000000000000000000000000B7
+:1089C00000000000000000000000000000000000A7
+:1089D0000000000000000000000000000000000097
+:1089E0000000000000000000000000000000000087
+:1089F0000000000000000000000000000000000077
+:108A00000000000000000000000000000000000066
+:108A10000000000000000000000000000000000056
+:108A20000000000000000000000000000000000046
+:108A30000000000000000000000000000000000036
+:108A40000000000000000000000000000000000026
+:108A50000000000000000000000000000000000016
+:108A60000000000000000000000000000000000006
+:108A700000000000000000000000000000000000F6
+:108A800000000000000000000000000000000000E6
+:108A900000000000000000000000000000000000D6
+:108AA00000000000000000000000000000000000C6
+:108AB00000000000000000000000000000000000B6
+:108AC00000000000000000000000000000000000A6
+:108AD0000000000000000000000000000000000096
+:108AE0000000000000000000000000000000000086
+:108AF0000000000000000000000000000000000076
+:108B00000000000000000000000000000000000065
+:108B10000000000000000000000000000000000055
+:108B20000000000000000000000000000000000045
+:108B30000000000000000000000000000000000035
+:108B40000000000000000000000000000000000025
+:108B50000000000000000000000000000000000015
+:108B60000000000000000000000000000000000005
+:108B700000000000000000000000000000000000F5
+:108B800030303030303030303030303030303030E5
+:108B900000000000000000000000000000000000D5
+:108BA00000000000000000000000000000000000C5
+:108BB00000000000000000000000000000000000B5
+:108BC00000000000000000000000000000000000A5
+:108BD0000000000000000000000000000000000095
+:108BE0000000000000000000000000000000000085
+:108BF0000000000000000000000000000000000075
+:108C00000000000000000000000000000000000064
+:108C10000000000000000000000000000000000054
+:108C20000000000000000000000000000000000044
+:108C30000000000000000000000000000000000034
+:108C40000000000000000000000000000000000024
+:108C50000000000000000000000000000000000014
+:108C60000000000000000000000000000000000004
+:108C700000000000000000000000000000000000F4
+:108C800000000000000000000000000000000000E4
+:108C900000000000000000000000000000000000D4
+:108CA00000000000000000000000000000000000C4
+:108CB00000000000000000000000000000000000B4
+:108CC00000000000000000000000000000000000A4
+:108CD0000000000000000000000000000000000094
+:108CE0000000000000000000000000000000000084
+:108CF0000000000000000000000000000000000074
+:108D00000000000000000000000000000000000063
+:108D10000000000000000000000000000000000053
+:108D20000000000000000000000000000000000043
+:108D30000000000000000000000000000000000033
+:108D40000000000000000000000000000000000023
+:108D50000000000000000000000000000000000013
+:108D60000000000000000000000000000000000003
+:108D700000000000000000000000000000000000F3
+:108D800000000000000000000000000000000000E3
+:108D900000000000000000000000000000000000D3
+:108DA00000000000000000000000000000000000C3
+:108DB00000000000000000000000000000000000B3
+:108DC00000000000000000000000000000000000A3
+:108DD0000000000000000000000000000000000093
+:108DE0000000000000000000000000000000000083
+:108DF0000000000000000000000000000000000073
+:108E00000000000000000000000000000000000062
+:108E10000000000000000000000000000000000052
+:108E20000000000000000000000000000000000042
+:108E30000000000000000000000000000000000032
+:108E40000000000000000000000000000000000022
+:108E50000000000000000000000000000000000012
+:108E60000000000000000000000000000000000002
+:108E700000000000000000000000000000000000F2
+:108E800000000000000000000000000000000000E2
+:108E900000000000000000000000000000000000D2
+:108EA00000000000000000000000000000000000C2
+:108EB00000000000000000000000000000000000B2
+:108EC00000000000000000000000000000000000A2
+:108ED0000000000000000000000000000000000092
+:108EE0000000000000000000000000000000000082
+:108EF0000000000000000000000000000000000072
+:108F00000000000000000000000000000000000061
+:108F10000000000000000000000000000000000051
+:108F20000000000000000000000000000000000041
+:108F30000000000000000000000000000000000031
+:108F40000000000000000000000000000000000021
+:108F50000000000000000000000000000000000011
+:108F60000000000000000000000000000000000001
+:108F700000000000000000000000000000000000F1
+:108F800000000000000000000000000000000000E1
+:108F900000000000000000000000000000000000D1
+:108FA00000000000000000000000000000000000C1
+:108FB00000000000000000000000000000000000B1
+:108FC00000000000000000000000000000000000A1
+:108FD0000000000000000000000000000000000091
+:108FE0000000000000000000000000000000000081
+:108FF0000000000000000000000000000000000071
+:109000000000000000000000000000000000000060
+:109010000000000000000000000000000000000050
+:109020000000000000000000000000000000000040
+:109030000000000000000000000000000000000030
+:109040000000000000000000000000000000000020
+:109050000000000000000000000000000000000010
+:109060000000000000000000000000000000000000
+:1090700000000000000000000000000000000000F0
+:1090800000000000000000000000000000000000E0
+:1090900000000000000000000000000000000000D0
+:1090A00000000000000000000000000000000000C0
+:1090B0000303030303030303030303030303030380
+:1090C00000000000000000000000000000000000A0
+:1090D0000000000000000000000000000000000090
+:1090E0000000000000000000000000000000000080
+:1090F0000000000000000000000000000000000070
+:10910000000000000000000000000000000000005F
+:10911000000000000000000000000000000000004F
+:10912000000000000000000000000000000000003F
+:10913000000000000000000000000000000000002F
+:10914000000000000000000000000000000000001F
+:10915000000000000000000000000000000000000F
+:1091600000000000000000000000000000000000FF
+:109170000C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C2F
+:1091800000000000000000000000000000000000DF
+:1091900000000000000000000000000000000000CF
+:1091A00000000000000000000000000000000000BF
+:1091B00000000000000000000000000000000000AF
+:1091C000000000000000000000000000000000009F
+:1091D000000000000000000000000000000000008F
+:1091E000000000000000000000000000000000007F
+:1091F000000000000000000000000000000000006F
+:10920000000000000000000000000000000000005E
+:10921000303030303030303030303030303030304E
+:10922000000000000000000000000000000000003E
+:10923000000000000000000000000000000000002E
+:10924000000000000000000000000000000000001E
+:10925000000000000000000000000000000000000E
+:1092600000000000000000000000000000000000FE
+:1092700000000000000000000000000000000000EE
+:1092800000000000000000000000000000000000DE
+:1092900000000000000000000000000000000000CE
+:1092A00000000000000000000000000000000000BE
+:1092B00000000000000000000000000000000000AE
+:1092C000000000000000000000000000000000009E
+:1092D000000000000000000000000000000000008E
+:1092E000000000000000000000000000000000007E
+:1092F000000000000000000000000000000000006E
+:109300002A2A2A2A2A2A2A2A2A2A2A2A2A2A2A6A7D
+:10931000000000000000000000000000000000400D
+:1093200015151515151515151515151515151515ED
+:1093300015151515151515151515151515151515DD
+:10934000151515151515151515151515151515558D
+:10935000151515151515151515151515151515557D
+:1093600015151515151515151515151515151515AD
+:10937000151515151515151515151515151515159D
+:10938000151515151515151515151515151515554D
+:10939000151515151515151515151515151515553D
+:1093A000151515151515151515151515151515156D
+:1093B000151515151515151515151515151515155D
+:1093C000151515151515151515151515151515550D
+:1093D00015151515151515151515151515151555FD
+:1093E000151515151515151515151515151515152D
+:1093F000151515151515151515151515151515151D
+:1094000015151515151515151515151515151555CC
+:1094100015151515151515151515151515151555BC
+:1094200015151515151515151515151515151515EC
+:1094300015151515151515151515151515151515DC
+:10944000151515151515151515151515151515558C
+:10945000151515151515151515151515151515557C
+:1094600015151515151515151515151515151515AC
+:10947000151515151515151515151515151515159C
+:10948000151515151515151515151515151515554C
+:10949000151515151515151515151515151515553C
+:1094A000151515151515151515151515151515156C
+:1094B000151515151515151515151515151515155C
+:1094C000151515151515151515151515151515550C
+:1094D00015151515151515151515151515151555FC
+:1094E000151515151515151515151515151515152C
+:1094F000151515151515151515151515151515151C
+:1095000015151515151515151515151515151555CB
+:1095100015151515151515151515151515151555BB
+:1095200015151515151515151515151515151515EB
+:1095300015151515151515151515151515151515DB
+:10954000151515151515151515151515151515558B
+:10955000151515151515151515151515151515557B
+:1095600015151515151515151515151515151515AB
+:10957000151515151515151515151515151515159B
+:10958000151515151515151515151515151515554B
+:10959000151515151515151515151515151515553B
+:1095A000151515151515151515151515151515156B
+:1095B000151515151515151515151515151515155B
+:1095C000151515151515151515151515151515550B
+:1095D00015151515151515151515151515151555FB
+:1095E00015151515151515151515151515151555EB
+:1095F00015151515151515151515151515151555DB
+:10960000151515151515151515151515151515958A
+:10961000151515151515151515151515151515957A
+:10962000151515151515151515151515151515956A
+:10963000151515151515151515151515151515955A
+:10964000101010101010101010101010101010101A
+:109650001A1A1A1A1A1A1A1A1A1A1A1A1A1A1A1A6A
+:109660001A1A1A1A1A1A1A1A1A1A1A1A1A1A1A9ADA
+:109670001A1A1A1A1A1A1A1A1A1A1A1A1A1A1A9ACA
+:109680001A1A1A1A1A1A1A1A1A1A1A1A1A1A1A1A3A
+:109690001A1A1A1A1A1A1A1A1A1A1A1A1A1A1A1A2A
+:1096A0001A1A1A1A1A1A1A1A1A1A1A1A1A1A1A9A9A
+:1096B0001A1A1A1A1A1A1A1A1A1A1A1A1A1A1A9A8A
+:1096C0001A1A1A1A1A1A1A1A1A1A1A1A1A1A1A1AFA
+:1096D0001A1A1A1A1A1A1A1A1A1A1A1A1A1A1A1AEA
+:1096E0001A1A1A1A1A1A1A1A1A1A1A1A1A1A1A9A5A
+:1096F0001A1A1A1A1A1A1A1A1A1A1A1A1A1A1A9A4A
+:109700001A1A1A1A1A1A1A1A1A1A1A1A1A1A1A1AB9
+:109710001A1A1A1A1A1A1A1A1A1A1A1A1A1A1A1AA9
+:109720001A1A1A1A1A1A1A1A1A1A1A1A1A1A1A9A19
+:109730001A1A1A1A1A1A1A1A1A1A1A1A1A1A1A9A09
+:109740001A1A1A1A1A1A1A1A1A1A1A1A1A1A1A1A79
+:109750001A1A1A1A1A1A1A1A1A1A1A1A1A1A1A1A69
+:109760001A1A1A1A1A1A1A1A1A1A1A1A1A1A1A9AD9
+:109770001A1A1A1A1A1A1A1A1A1A1A1A1A1A1A9AC9
+:109780001A1A1A1A1A1A1A1A1A1A1A1A1A1A1A1A39
+:109790001A1A1A1A1A1A1A1A1A1A1A1A1A1A1A1A29
+:1097A0001A1A1A1A1A1A1A1A1A1A1A1A1A1A1A9A99
+:1097B0001A1A1A1A1A1A1A1A1A1A1A1A1A1A1A9A89
+:1097C0001A1A1A1A1A1A1A1A1A1A1A1A1A1A1A1AF9
+:1097D0001A1A1A1A1A1A1A1A1A1A1A1A1A1A1A1AE9
+:1097E0001A1A1A1A1A1A1A1A1A1A1A1A1A1A1A9A59
+:1097F0001A1A1A1A1A1A1A1A1A1A1A1A1A1A1A9A49
+:109800001A1A1A1A1A1A1A1A1A1A1A1A1A1A1A1AB8
+:109810001A1A1A1A1A1A1A1A1A1A1A1A1A1A1A1AA8
+:109820000A0A0A0A0A0A0A0A0A0A0A0A0A0A0A8A18
+:109830002A2A2A2A2A2A2A2A2A2A2A2A2A2A2AAA08
+:109840002A2A2A2A2A2A2A2A2A2A2A2A2A2A2A2A78
+:109850002A2A2A2A2A2A2A2A2A2A2A2A2A2A2A2A68
+:109860002A2A2A2A2A2A2A2A2A2A2A2A2A2A2AAAD8
+:109870002A2A2A2A2A2A2A2A2A2A2A2A2A2A2AAAC8
+:109880002A2A2A2A2A2A2A2A2A2A2A2A2A2A2A2A38
+:109890002A2A2A2A2A2A2A2A2A2A2A2A2A2A2A2A28
+:1098A0002A2A2A2A2A2A2A2A2A2A2A2A2A2A2AAA98
+:1098B0002A2A2A2A2A2A2A2A2A2A2A2A2A2A2AAA88
+:1098C0002A2A2A2A2A2A2A2A2A2A2A2A2A2A2A2AF8
+:1098D0002A2A2A2A2A2A2A2A2A2A2A2A2A2A2A2AE8
+:1098E0002A2A2A2A2A2A2A2A2A2A2A2A2A2A2AAA58
+:1098F0002A2A2A2A2A2A2A2A2A2A2A2A2A2A2AAA48
+:109900002A2A2A2A2A2A2A2A2A2A2A2A2A2A2A2AB7
+:109910002A2A2A2A2A2A2A2A2A2A2A2A2A2A2A2AA7
+:109920000000000000000000000000000000000037
+:109930000000000000000000000000000000000027
+:109940000000000000000000000000000000000017
+:109950000000000000000000000000000000000007
+:1099600000000000000000000000000000000000F7
+:1099700000000000000000000000000000000000E7
+:1099800000000000000000000000000000000000D7
+:1099900000000000000000000000000000000000C7
+:1099A00000000000000000000000000000000000B7
+:1099B00000000000000000000000000000000000A7
+:1099C0000000000000000000000000000000000097
+:1099D0000000000000000000000000000000000087
+:1099E0000000000000000000000000000000000077
+:1099F0000000000000000000000000000000000067
+:109A00000000000000000000000000000000000056
+:109A10000000000000000000000000000000000046
+:109A20000000000000000000000000000000000036
+:109A30000000000000000000000000000000000026
+:109A40000000000000000000000000000000000016
+:109A50000000000000000000000000000000000006
+:109A600000000000000000000000000000000000F6
+:109A700000000000000000000000000000000000E6
+:109A800000000000000000000000000000000000D6
+:109A900000000000000000000000000000000000C6
+:109AA00000000000000000000000000000000000B6
+:109AB00000000000000000000000000000000000A6
+:109AC0000000000000000000000000000000000096
+:109AD0000000000000000000000000000000000086
+:109AE0000000000000000000000000000000000076
+:109AF0000000000000000000000000000000000066
+:109B00000000000000000000000000000000000055
+:109B10000000000000000000000000000000000045
+:109B20000000000000000000000000000000000035
+:109B30000000000000000000000000000000000025
+:109B40000000000000000000000000000000000015
+:109B50000000000000000000000000000000000005
+:109B600000000000000000000000000000000000F5
+:109B700000000000000000000000000000000000E5
+:109B800000000000000000000000000000000000D5
+:109B900000000000000000000000000000000000C5
+:109BA00000000000000000000000000000000000B5
+:109BB00000000000000000000000000000000000A5
+:109BC0000000000000000000000000000000000095
+:109BD0000000000000000000000000000000000085
+:109BE0000000000000000000000000000000000075
+:109BF0000000000000000000000000000000000065
+:109C00000000000000000000000000000000000054
+:109C10000000000000000000000000000000000044
+:109C20000000000000000000000000000000000034
+:109C30000000000000000000000000000000000024
+:109C40000000000000000000000000000000000014
+:109C50000000000000000000000000000000000004
+:109C600000000000000000000000000000000000F4
+:109C700000000000000000000000000000000000E4
+:109C800000000000000000000000000000000000D4
+:109C900000000000000000000000000000000000C4
+:109CA00000000000000000000000000000000000B4
+:109CB00000000000000000000000000000000000A4
+:109CC0000000000000000000000000000000000094
+:109CD0000000000000000000000000000000000084
+:109CE0000000000000000000000000000000000074
+:109CF0000000000000000000000000000000000064
+:109D00000000000000000000000000000000000053
+:109D10000000000000000000000000000000000043
+:109D20000000000000000000000000000000000033
+:109D30000000000000000000000000000000000023
+:109D40000000000000000000000000000000000013
+:109D50000000000000000000000000000000000003
+:109D600000000000000000000000000000000000F3
+:109D700000000000000000000000000000000000E3
+:109D800000000000000000000000000000000000D3
+:109D900000000000000000000000000000000000C3
+:109DA00000000000000000000000000000000000B3
+:109DB00000000000000000000000000000000000A3
+:109DC0000000000000000000000000000000000093
+:109DD0000000000000000000000000000000000083
+:109DE0000000000000000000000000000000000073
+:109DF0000000000000000000000000000000000063
+:109E00000000000000000000000000000000000052
+:109E10000000000000000000000000000000000042
+:109E20000000000000000000000000000000000032
+:109E30000000000000000000000000000000000022
+:109E40000000000000000000000000000000000012
+:109E50000000000000000000000000000000000002
+:109E600000000000000000000000000000000000F2
+:109E700000000000000000000000000000000000E2
+:109E800000000000000000000000000000000000D2
+:109E900000000000000000000000000000000000C2
+:109EA00000000000000000000000000000000000B2
+:109EB00000000000000000000000000000000000A2
+:109EC0000000000000000000000000000000000092
+:109ED0000000000000000000000000000000000082
+:109EE0000000000000000000000000000000000072
+:109EF0000000000000000000000000000000000062
+:109F00000000000000000000000000000000000051
+:109F10000000000000000000000000000000000041
+:109F20000000000000000000000000000000000031
+:109F30000000000000000000000000000000000021
+:109F40000000000000000000000000000000000011
+:109F50000000000000000000000000000000000001
+:109F600000000000000000000000000000000000F1
+:109F700000000000000000000000000000000000E1
+:109F800000000000000000000000000000000000D1
+:109F900000000000000000000000000000000000C1
+:109FA00000000000000000000000000000000000B1
+:109FB00000000000000000000000000000000000A1
+:109FC0000000000000000000000000000000000091
+:109FD0000000000000000000000000000000000081
+:109FE0000000000000000000000000000000000071
+:109FF0000000000000000000000000000000000061
+:10A000000000000000000000000000000000000050
+:10A010000000000000000000000000000000000040
+:10A020000000000000000000000000000000000030
+:10A030000000000000000000000000000000000020
+:10A040000000000000000000000000000000000010
+:10A050000000000000000000000000000000000000
+:10A0600000000000000000000000000000000000F0
+:10A0700000000000000000000000000000000000E0
+:10A0800000000000000000000000000000000000D0
+:10A090000C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C00
+:10A0A00000000000000000000000000000000000B0
+:10A0B00000000000000000000000000000000000A0
+:10A0C0000000000000000000000000000000000090
+:10A0D0000000000000000000000000000000000080
+:10A0E0000000000000000000000000000000000070
+:10A0F0000000000000000000000000000000000060
+:10A10000000000000000000000000000000000004F
+:10A11000303030303030303030303030303030303F
+:10A12000000000000000000000000000000000002F
+:10A13000000000000000000000000000000000001F
+:10A14000000000000000000000000000000000000F
+:10A1500000000000000000000000000000000000FF
+:10A1600000000000000000000000000000000000EF
+:10A1700000000000000000000000000000000000DF
+:10A1800000000000000000000000000000000000CF
+:10A1900000000000000000000000000000000000BF
+:10A1A00000000000000000000000000000000000AF
+:10A1B000000000000000000000000000000000009F
+:10A1C000000000000000000000000000000000008F
+:10A1D000C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C07F
+:10A1E000000000000000000000000000000000006F
+:10A1F000000000000000000000000000000000005F
+:10A20000000000000000000000000000000000004E
+:10A21000000000000000000000000000000000003E
+:10A22000000000000000000000000000000000002E
+:10A23000000000000000000000000000000000001E
+:10A24000000000000000000000000000000000000E
+:10A2500000000000000000000000000000000000FE
+:10A2600000000000000000000000000000000000EE
+:10A2700000000000000000000000000000000000DE
+:10A2800000000000000000000000000000000000CE
+:10A2900000000000000000000000000000000000BE
+:10A2A00000000000000000000000000000000000AE
+:10A2B000000000000000000000000000000000009E
+:10A2C000000000000000000000000000000000008E
+:10A2D000000000000000000000000000000000007E
+:10A2E000000000000000000000000000000000006E
+:10A2F000000000000000000000000000000000005E
+:10A30000000000000000000000000000000000004D
+:10A31000000000000000000000000000000000003D
+:10A32000000000000000000000000000000000002D
+:10A33000000000000000000000000000000000001D
+:10A34000000000000000000000000000000000000D
+:10A3500000000000000000000000000000000000FD
+:10A3600000000000000000000000000000000000ED
+:10A3700000000000000000000000000000000000DD
+:10A3800000000000000000000000000000000000CD
+:10A3900000000000000000000000000000000000BD
+:10A3A00000000000000000000000000000000000AD
+:10A3B000000000000000000000000000000000009D
+:10A3C000000000000000000000000000000000008D
+:10A3D000000000000000000000000000000000007D
+:10A3E000000000000000000000000000000000006D
+:10A3F000000000000000000000000000000000005D
+:10A40000000000000000000000000000000000004C
+:10A41000000000000000000000000000000000003C
+:10A42000000000000000000000000000000000002C
+:10A43000000000000000000000000000000000001C
+:10A44000000000000000000000000000000000000C
+:10A4500000000000000000000000000000000000FC
+:10A4600000000000000000000000000000000000EC
+:10A4700000000000000000000000000000000000DC
+:10A4800000000000000000000000000000000000CC
+:10A4900000000000000000000000000000000000BC
+:10A4A00000000000000000000000000000000000AC
+:10A4B000000000000000000000000000000000009C
+:10A4C000000000000000000000000000000000008C
+:10A4D000000000000000000000000000000000007C
+:10A4E000000000000000000000000000000000006C
+:10A4F000000000000000000000000000000000005C
+:10A50000000000000000000000000000000000004B
+:10A51000000000000000000000000000000000003B
+:10A52000000000000000000000000000000000002B
+:10A53000000000000000000000000000000000001B
+:10A54000000000000000000000000000000000000B
+:10A5500000000000000000000000000000000000FB
+:10A5600000000000000000000000000000000000EB
+:10A5700000000000000000000000000000000000DB
+:10A5800000000000000000000000000000000000CB
+:10A5900000000000000000000000000000000000BB
+:10A5A00000000000000000000000000000000000AB
+:10A5B000000000000000000000000000000000009B
+:10A5C000000000000000000000000000000000008B
+:10A5D000000000000000000000000000000000007B
+:10A5E000000000000000000000000000000000006B
+:10A5F000000000000000000000000000000000005B
+:10A60000000000000000000000000000000000004A
+:10A61000000000000000000000000000000000003A
+:10A62000000000000000000000000000000000002A
+:10A63000000000000000000000000000000000001A
+:10A64000000000000000000000000000000000000A
+:10A6500000000000000000000000000000000000FA
+:10A6600000000000000000000000000000000000EA
+:10A6700000000000000000000000000000000000DA
+:10A6800000000000000000000000000000000000CA
+:10A6900000000000000000000000000000000000BA
+:10A6A00000000000000000000000000000000000AA
+:10A6B000000000000000000000000000000000009A
+:10A6C000000000000000000000000000000000008A
+:10A6D000000000000000000000000000000000007A
+:10A6E000000000000000000000000000000000006A
+:10A6F000000000000000000000000000000000005A
+:10A700000000000000000000000000000000000049
+:10A710000000000000000000000000000000000039
+:10A720000000000000000000000000000000000029
+:10A730000000000000000000000000000000000019
+:10A740000000000000000000000000000000000009
+:10A7500000000000000000000000000000000000F9
+:10A7600000000000000000000000000000000000E9
+:10A7700000000000000000000000000000000000D9
+:10A7800000000000000000000000000000000000C9
+:10A7900000000000000000000000000000000000B9
+:10A7A00000000000000000000000000000000000A9
+:10A7B0000000000000000000000000000000000099
+:10A7C0000000000000000000000000000000000089
+:10A7D0000000000000000000000000000000000079
+:10A7E0000000000000000000000000000000000069
+:10A7F0000000000000000000000000000000000059
+:10A800000000000000000000000000000000000048
+:10A810000000000000000000000000000000000038
+:10A820000000000000000000000000000000000028
+:10A830000000000000000000000000000000000018
+:10A840000000000000000000000000000000000008
+:10A8500000000000000000000000000000000000F8
+:10A8600000000000000000000000000000000000E8
+:10A8700000000000000000000000000000000000D8
+:10A8800000000000000000000000000000000000C8
+:10A890000C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0CF8
+:10A8A00000000000000000000000000000000000A8
+:10A8B0000000000000000000000000000000000098
+:10A8C0000000000000000000000000000000000088
+:10A8D0000000000000000000000000000000000078
+:10A8E0000000000000000000000000000000000068
+:10A8F0000000000000000000000000000000000058
+:10A900000000000000000000000000000000000047
+:10A910003030303030303030303030303030303037
+:10A920000000000000000000000000000000000027
+:10A930000000000000000000000000000000000017
+:10A940000000000000000000000000000000000007
+:10A9500000000000000000000000000000000000F7
+:10A9600000000000000000000000000000000000E7
+:10A9700000000000000000000000000000000000D7
+:10A9800000000000000000000000000000000000C7
+:10A9900000000000000000000000000000000000B7
+:10A9A00000000000000000000000000000000000A7
+:10A9B0000000000000000000000000000000000097
+:10A9C0000000000000000000000000000000000087
+:10A9D000C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C077
+:10A9E0000000000000000000000000000000000067
+:10A9F0000000000000000000000000000000000057
+:10AA00000000000000000000000000000000000046
+:10AA10000000000000000000000000000000000036
+:10AA20000000000000000000000000000000000026
+:10AA30000000000000000000000000000000000016
+:10AA40000000000000000000000000000000000006
+:10AA500000000000000000000000000000000000F6
+:10AA600000000000000000000000000000000000E6
+:10AA700000000000000000000000000000000000D6
+:10AA800000000000000000000000000000000000C6
+:10AA900000000000000000000000000000000000B6
+:10AAA00000000000000000000000000000000000A6
+:10AAB0000000000000000000000000000000000096
+:10AAC0000000000000000000000000000000000086
+:10AAD0000000000000000000000000000000000076
+:10AAE0000000000000000000000000000000000066
+:10AAF0000000000000000000000000000000000056
+:10AB00000000000000000000000000000000000045
+:10AB10000000000000000000000000000000000035
+:10AB20000000000000000000000000000000000025
+:10AB30000000000000000000000000000000000015
+:10AB40000000000000000000000000000000000005
+:10AB500000000000000000000000000000000000F5
+:10AB600000000000000000000000000000000000E5
+:10AB700000000000000000000000000000000000D5
+:10AB800000000000000000000000000000000000C5
+:10AB900000000000000000000000000000000000B5
+:10ABA00000000000000000000000000000000000A5
+:10ABB0000000000000000000000000000000000095
+:10ABC0000000000000000000000000000000000085
+:10ABD0000000000000000000000000000000000075
+:10ABE0000000000000000000000000000000000065
+:10ABF0000000000000000000000000000000000055
+:10AC00000000000000000000000000000000000044
+:10AC10000000000000000000000000000000000034
+:10AC20000000000000000000000000000000000024
+:10AC30000000000000000000000000000000000014
+:10AC40000000000000000000000000000000000004
+:10AC500000000000000000000000000000000000F4
+:10AC600000000000000000000000000000000000E4
+:10AC700000000000000000000000000000000000D4
+:10AC800000000000000000000000000000000000C4
+:10AC900000000000000000000000000000000000B4
+:10ACA00000000000000000000000000000000000A4
+:10ACB0000000000000000000000000000000000094
+:10ACC0000000000000000000000000000000000084
+:10ACD0000000000000000000000000000000000074
+:10ACE0000000000000000000000000000000000064
+:10ACF0000000000000000000000000000000000054
+:10AD00000000000000000000000000000000000043
+:10AD10000000000000000000000000000000000033
+:10AD20000000000000000000000000000000000023
+:10AD30000000000000000000000000000000000013
+:10AD40000000000000000000000000000000000003
+:10AD500000000000000000000000000000000000F3
+:10AD600000000000000000000000000000000000E3
+:10AD700000000000000000000000000000000000D3
+:10AD800000000000000000000000000000000000C3
+:10AD900000000000000000000000000000000000B3
+:10ADA00000000000000000000000000000000000A3
+:10ADB0000000000000000000000000000000000093
+:10ADC0000000000000000000000000000000000083
+:10ADD0000000000000000000000000000000000073
+:10ADE0000000000000000000000000000000000063
+:10ADF0000000000000000000000000000000000053
+:10AE00000000000000000000000000000000000042
+:10AE10000000000000000000000000000000000032
+:10AE20000000000000000000000000000000000022
+:10AE30000000000000000000000000000000000012
+:10AE40000000000000000000000000000000000002
+:10AE500000000000000000000000000000000000F2
+:10AE600000000000000000000000000000000000E2
+:10AE700000000000000000000000000000000000D2
+:10AE800000000000000000000000000000000000C2
+:10AE900000000000000000000000000000000000B2
+:10AEA00000000000000000000000000000000000A2
+:10AEB0000000000000000000000000000000000092
+:10AEC0000000000000000000000000000000000082
+:10AED0000000000000000000000000000000000072
+:10AEE0000000000000000000000000000000000062
+:10AEF0000000000000000000000000000000000052
+:10AF00000000000000000000000000000000000041
+:10AF10000000000000000000000000000000000031
+:10AF20000000000000000000000000000000000021
+:10AF30000000000000000000000000000000000011
+:10AF40000000000000000000000000000000000001
+:10AF500000000000000000000000000000000000F1
+:10AF600000000000000000000000000000000000E1
+:10AF700000000000000000000000000000000000D1
+:10AF800000000000000000000000000000000000C1
+:10AF900000000000000000000000000000000000B1
+:10AFA00000000000000000000000000000000000A1
+:10AFB0000000000000000000000000000000000091
+:10AFC0000000000000000000000000000000000081
+:10AFD0000000000000000000000000000000000071
+:10AFE0000000000000000000000000000000000061
+:10AFF0000000000000000000000000000000000051
+:10B000000000000000000000000000000000000040
+:10B010000000000000000000000000000000000030
+:10B020000000000000000000000000000000000020
+:10B030000000000000000000000000000000000010
+:10B040000000000000000000000000000000000000
+:10B0500000000000000000000000000000000000F0
+:10B0600000000000000000000000000000000000E0
+:10B0700000000000000000000000000000000000D0
+:10B0800000000000000000000000000000000000C0
+:10B090000C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0CF0
+:10B0A00000000000000000000000000000000000A0
+:10B0B0000000000000000000000000000000000090
+:10B0C0000000000000000000000000000000000080
+:10B0D0000000000000000000000000000000000070
+:10B0E0000000000000000000000000000000000060
+:10B0F0000000000000000000000000000000000050
+:10B10000000000000000000000000000000000003F
+:10B11000303030303030303030303030303030302F
+:10B12000000000000000000000000000000000001F
+:10B13000000000000000000000000000000000000F
+:10B1400000000000000000000000000000000000FF
+:10B1500000000000000000000000000000000000EF
+:10B1600000000000000000000000000000000000DF
+:10B1700000000000000000000000000000000000CF
+:10B1800000000000000000000000000000000000BF
+:10B1900000000000000000000000000000000000AF
+:10B1A000000000000000000000000000000000009F
+:10B1B000000000000000000000000000000000008F
+:10B1C000000000000000000000000000000000007F
+:10B1D000C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C06F
+:10B1E000000000000000000000000000000000005F
+:10B1F000000000000000000000000000000000004F
+:10B20000000000000000000000000000000000003E
+:10B21000000000000000000000000000000000002E
+:10B22000000000000000000000000000000000001E
+:10B23000000000000000000000000000000000000E
+:10B2400000000000000000000000000000000000FE
+:10B2500000000000000000000000000000000000EE
+:10B2600000000000000000000000000000000000DE
+:10B2700000000000000000000000000000000000CE
+:10B2800000000000000000000000000000000000BE
+:10B2900000000000000000000000000000000000AE
+:10B2A000000000000000000000000000000000009E
+:10B2B000000000000000000000000000000000008E
+:10B2C000000000000000000000000000000000007E
+:10B2D000000000000000000000000000000000006E
+:10B2E000000000000000000000000000000000005E
+:10B2F000000000000000000000000000000000004E
+:10B30000000000000000000000000000000000003D
+:10B31000000000000000000000000000000000002D
+:10B32000000000000000000000000000000000001D
+:10B33000000000000000000000000000000000000D
+:10B3400000000000000000000000000000000000FD
+:10B3500000000000000000000000000000000000ED
+:10B3600000000000000000000000000000000000DD
+:10B3700000000000000000000000000000000000CD
+:10B3800000000000000000000000000000000000BD
+:10B3900000000000000000000000000000000000AD
+:10B3A000000000000000000000000000000000009D
+:10B3B000000000000000000000000000000000008D
+:10B3C000000000000000000000000000000000007D
+:10B3D000000000000000000000000000000000006D
+:10B3E000000000000000000000000000000000005D
+:10B3F000000000000000000000000000000000004D
+:10B40000000000000000000000000000000000003C
+:10B41000000000000000000000000000000000002C
+:10B42000000000000000000000000000000000001C
+:10B43000000000000000000000000000000000000C
+:10B4400000000000000000000000000000000000FC
+:10B4500000000000000000000000000000000000EC
+:10B4600000000000000000000000000000000000DC
+:10B4700000000000000000000000000000000000CC
+:10B4800000000000000000000000000000000000BC
+:10B4900000000000000000000000000000000000AC
+:10B4A000000000000000000000000000000000009C
+:10B4B000000000000000000000000000000000008C
+:10B4C000000000000000000000000000000000007C
+:10B4D000000000000000000000000000000000006C
+:10B4E000000000000000000000000000000000005C
+:10B4F000000000000000000000000000000000004C
+:10B50000000000000000000000000000000000003B
+:10B51000000000000000000000000000000000002B
+:10B52000000000000000000000000000000000001B
+:10B53000000000000000000000000000000000000B
+:10B5400000000000000000000000000000000000FB
+:10B5500000000000000000000000000000000000EB
+:10B5600000000000000000000000000000000000DB
+:10B5700000000000000000000000000000000000CB
+:10B5800000000000000000000000000000000000BB
+:10B5900000000000000000000000000000000000AB
+:10B5A000000000000000000000000000000000009B
+:10B5B000000000000000000000000000000000008B
+:10B5C000000000000000000000000000000000007B
+:10B5D000000000000000000000000000000000006B
+:10B5E000000000000000000000000000000000005B
+:10B5F000000000000000000000000000000000004B
+:10B60000000000000000000000000000000000003A
+:10B61000000000000000000000000000000000002A
+:10B62000000000000000000000000000000000001A
+:10B63000000000000000000000000000000000000A
+:10B6400000000000000000000000000000000000FA
+:10B6500000000000000000000000000000000000EA
+:10B6600000000000000000000000000000000000DA
+:10B6700000000000000000000000000000000000CA
+:10B6800000000000000000000000000000000000BA
+:10B6900000000000000000000000000000000000AA
+:10B6A000000000000000000000000000000000009A
+:10B6B000000000000000000000000000000000008A
+:10B6C000000000000000000000000000000000007A
+:10B6D000000000000000000000000000000000006A
+:10B6E000000000000000000000000000000000005A
+:10B6F000000000000000000000000000000000004A
+:10B700000000000000000000000000000000000039
+:10B710000000000000000000000000000000000029
+:10B720000000000000000000000000000000000019
+:10B730000000000000000000000000000000000009
+:10B7400000000000000000000000000000000000F9
+:10B7500000000000000000000000000000000000E9
+:10B7600000000000000000000000000000000000D9
+:10B7700000000000000000000000000000000000C9
+:10B7800000000000000000000000000000000000B9
+:10B7900000000000000000000000000000000000A9
+:10B7A0000000000000000000000000000000000099
+:10B7B0000000000000000000000000000000000089
+:10B7C0000000000000000000000000000000000079
+:10B7D0000000000000000000000000000000000069
+:10B7E0000000000000000000000000000000000059
+:10B7F0000000000000000000000000000000000049
+:10B800000000000000000000000000000000000038
+:10B810000000000000000000000000000000000028
+:10B820000000000000000000000000000000000018
+:10B830000000000000000000000000000000000008
+:10B8400000000000000000000000000000000000F8
+:10B8500000000000000000000000000000000000E8
+:10B8600000000000000000000000000000000000D8
+:10B8700000000000000000000000000000000000C8
+:10B8800000000000000000000000000000000000B8
+:10B890000C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0CE8
+:10B8A0000000000000000000000000000000000098
+:10B8B0000000000000000000000000000000000088
+:10B8C0000000000000000000000000000000000078
+:10B8D0000000000000000000000000000000000068
+:10B8E0000000000000000000000000000000000058
+:10B8F0000000000000000000000000000000000048
+:10B900000000000000000000000000000000000037
+:10B910003030303030303030303030303030303027
+:10B920000000000000000000000000000000000017
+:10B930000000000000000000000000000000000007
+:10B9400000000000000000000000000000000000F7
+:10B9500000000000000000000000000000000000E7
+:10B9600000000000000000000000000000000000D7
+:10B9700000000000000000000000000000000000C7
+:10B9800000000000000000000000000000000000B7
+:10B9900000000000000000000000000000000000A7
+:10B9A0000000000000000000000000000000000097
+:10B9B0000000000000000000000000000000000087
+:10B9C0000000000000000000000000000000000077
+:10B9D000C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C067
+:10B9E0000000000000000000000000000000000057
+:10B9F0000000000000000000000000000000000047
+:10BA00009A9A9A9A9A9A9A9A9A9A9A9A9A9A9A9898
+:10BA10001212121212121212121212121212121008
+:10BA200056565656565656565656565656565654B8
+:10BA300055565656565656565656565656565654A9
+:10BA40005556565656565656565656565656565499
+:10BA50005556565656565656565656565656565687
+:10BA60005556565656565656565656565656565677
+:10BA70005556565656565656565656565656565667
+:10BA80005556565656565656565656565656565657
+:10BA90005556565656565656565656565656565647
+:10BAA0005556565656565656565656565656565637
+:10BAB0005556565656565656565656565656565627
+:10BAC0005556565656565656565656565656565617
+:10BAD0005556565656565656565656565656565607
+:10BAE00055565656565656565656565656565656F7
+:10BAF00055565656565656565656565656565656E7
+:10BB000055565656565656565656565656565656D6
+:10BB100055565656565656565656565656565656C6
+:10BB200055565656565656565656565656565656B6
+:10BB300055565656565656565656565656565656A6
+:10BB400045444444444444444444444444444446B2
+:10BB50005555555555555555555555555555555694
+:10BB60004545454545454545454545454545444685
+:10BB70005555555555555555555555555554545676
+:10BB80004545454545454545454545454444444667
+:10BB90005565656565656565656565646464646668
+:10BBA0005565656565656565656564646464646659
+:10BBB000545555555555555555545454545454563B
+:10BBC000506161616161616160606060606060627C
+:10BBD00058696969696969696868686868686868EE
+:10BBE00058595959595959585858585858585858CF
+:10BBF00058596969696969686868686868686868DF
+:10BC000058596969696968686868686868686868CF
+:10BC100058595959595858585858585858585858A0
+:10BC200058595969696868686868686868686868C0
+:10BC300058595969686868686868686868686868B1
+:10BC40005859595958585858585858585858585871
+:10BC50005A595958686868686868686868686868A0
+:10BC600059595958586868686868686868686868A1
+:10BC70005959595858585858585858585858585841
+:10BC80001919191818182828282828282828282A8F
+:10BC9000999999989898A8A8A8A8A8A8A8A8A8AA7F
+:10BCA0009999989898989898989898989898989A10
+:10BCB00099999898989898A8A8A8A8A8A8A8A8AA70
+:10BCC0009999989898989898A8A8A8A8A8A8A8AA70
+:10BCD0009999989898989898989898989898989AE0
+:10BCE000989998989898989898A8A8A8A8A8A8AA61
+:10BCF000999898989898989898A8A8A8A8A8A8AA51
+:10BD000098989898989898989898989898989898B3
+:10BD10009B9B9B9B9B9B9B9B9B9BABABABABABAB13
+:10BD200098989898989898989898A8A8A8A8A8A833
+:10BD30009898989898989898989898989898989883
+:10BD40009898989898989898989898A8A8A8A8A823
+:10BD50008898989898989898989898A8A8A8A8A823
+:10BD60009898989898989898989898989898989853
+:10BD7000909090909090909090909090A0A0A0A083
+:10BD80009C9C9C9C9C9C9C9C9C9C9C9CACACACACB3
+:10BD9000809090909090909090909090909090A0A3
+:10BDA000809090909090909090909090A0A0A0A063
+:10BDB00080909090909090909090909090A0A0A063
+:10BDC0008090909090909090909090909090A0A063
+:10BDD0008080808080808080808080808080808063
+:10BDE000B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B053
+:10BDF0008080808080808080808080808080808043
+:10BE00008080808080808080808080808080808032
+:10BE10008080808080808080808080808080808022
+:10BE20008080808080808080808080808080808012
+:10BE30008080808080808080808080808080808002
+:10BE400080808080808080808080808080808080F2
+:10BE500080808080808080808080808080808080E2
+:10BE600080808080808080808080808080808080D2
+:10BE700080808080808080808080808080808080C2
+:10BE800080808080808080808080808080808080B2
+:10BE900080808080808080808080808080808080A2
+:10BEA0008080808080808080808080808080808092
+:10BEB0008080808080808080808080808080808082
+:10BEC0008080808080808080808080808080808072
+:10BED0008080808080808080808080808080808062
+:10BEE0008080808080808080808080808080808052
+:10BEF0000000000000000000000000000000000042
+:10BF0000C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C031
+:10BF10000000000000000000000000000000000021
+:10BF20000000000000000000000000000000000011
+:10BF30000000000000000000000000000000000001
+:10BF400000000000000000000000000000000000F1
+:10BF500000000000000000000000000000000000E1
+:10BF600000000000000000000000000000000000D1
+:10BF700000000000000000000000000000000000C1
+:10BF800000000000000000000000000000000000B1
+:10BF900000000000000000000000000000000000A1
+:10BFA0000000000000000000000000000000000091
+:10BFB0000000000000000000000000000000000081
+:10BFC0000000000000000000000000000000000071
+:10BFD0000000000000000000000000000000000061
+:10BFE0000000000000000000000000000000000051
+:10BFF0000000000000000000000000000000000041
+:10C000000000000000000000000000000000000030
+:10C010000000000000000000000000000000000020
+:10C020000000000000000000000000000000000010
+:10C030000000000000000000000000000000000000
+:10C0400000000000000000000000000000000000F0
+:10C0500000000000000000000000000000000000E0
+:10C0600000000000000000000000000000000000D0
+:10C0700000000000000000000000000000000000C0
+:10C0800000000000000000000000000000000000B0
+:10C0900000000000000000000000000000000000A0
+:10C0A0000000000000000000000000000000000090
+:10C0B0000000000000000000000000000000000080
+:10C0C0000000000000000000000000000000000070
+:10C0D0000000000000000000000000000000000060
+:10C0E0000000000000000000000000000000000050
+:10C0F0000000000000000000000000000000000040
+:10C10000000000000000000000000000000000002F
+:10C11000000000000000000000000000000000001F
+:10C12000000000000000000000000000000000000F
+:10C1300000000000000000000000000000000000FF
+:10C1400000000000000000000000000000000000EF
+:10C1500000000000000000000000000000000000DF
+:10C1600000000000000000000000000000000000CF
+:10C1700000000000000000000000000000000000BF
+:10C1800000000000000000000000000000000000AF
+:10C19000000000000000000000000000000000009F
+:10C1A000000000000000000000000000000000008F
+:10C1B000000000000000000000000000000000007F
+:10C1C000000000000000000000000000000000006F
+:10C1D000000000000000000000000000000000005F
+:10C1E000000000000000000000000000000000004F
+:10C1F000000000000000000000000000000000003F
+:10C20000000000000000000000000000000000002E
+:10C21000000000000000000000000000000000001E
+:10C22000000000000000000000000000000000000E
+:10C2300000000000000000000000000000000000FE
+:10C2400000000000000000000000000000000000EE
+:10C2500000000000000000000000000000000000DE
+:10C2600000000000000000000000000000000000CE
+:10C2700000000000000000000000000000000000BE
+:10C2800000000000000000000000000000000000AE
+:10C29000000000000000000000000000000000009E
+:10C2A000000000000000000000000000000000008E
+:10C2B000000000000000000000000000000000007E
+:10C2C000000000000000000000000000000000006E
+:10C2D000000000000000000000000000000000005E
+:10C2E000000000000000000000000000000000004E
+:10C2F000000000000000000000000000000000003E
+:10C30000000000000000000000000000000000002D
+:10C31000000000000000000000000000000000001D
+:10C32000000000000000000000000000000000000D
+:10C3300000000000000000000000000000000000FD
+:10C3400000000000000000000000000000000000ED
+:10C3500000000000000000000000000000000000DD
+:10C3600000000000000000000000000000000000CD
+:10C3700000000000000000000000000000000000BD
+:10C3800000000000000000000000000000000000AD
+:10C39000000000000000000000000000000000009D
+:10C3A000000000000000000000000000000000008D
+:10C3B000000000000000000000000000000000007D
+:10C3C000000000000000000000000000000000006D
+:10C3D000000000000000000000000000000000005D
+:10C3E000000000000000000000000000000000004D
+:10C3F000FCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFC7D
+:10C40000000000000000000000000000000000002C
+:10C41000000000000000000000000000000000001C
+:10C42000000000000000000000000000000000000C
+:10C4300000000000000000000000000000000000FC
+:10C4400000000000000000000000000000000000EC
+:10C4500000000000000000000000000000000000DC
+:10C4600000000000000000000000000000000000CC
+:10C4700000000000000000000000000000000000BC
+:10C4800000000000000000000000000000000000AC
+:10C49000000000000000000000000000000000009C
+:10C4A000000000000000000000000000000000008C
+:10C4B000000000000000000000000000000000007C
+:10C4C000000000000000000000000000000000006C
+:10C4D000000000000000000000000000000000005C
+:10C4E000000000000000000000000000000000004C
+:10C4F000000000000000000000000000000000003C
+:10C50000000000000000000000000000000000002B
+:10C51000000000000000000000000000000000001B
+:10C52000000000000000000000000000000000000B
+:10C5300000000000000000000000000000000000FB
+:10C5400000000000000000000000000000000000EB
+:10C5500000000000000000000000000000000000DB
+:10C5600000000000000000000000000000000000CB
+:10C5700000000000000000000000000000000000BB
+:10C5800000000000000000000000000000000000AB
+:10C59000000000000000000000000000000000009B
+:10C5A000000000000000000000000000000000008B
+:10C5B000000000000000000000000000000000007B
+:10C5C000000000000000000000000000000000006B
+:10C5D000000000000000000000000000000000005B
+:10C5E000000000000000000000000000000000004B
+:10C5F000000000000000000000000000000000003B
+:10C60000000000000000000000000000000000002A
+:10C61000000000000000000000000000000000001A
+:10C62000000000000000000000000000000000000A
+:10C6300000000000000000000000000000000000FA
+:10C6400000000000000000000000000000000000EA
+:10C6500000000000000000000000000000000000DA
+:10C6600000000000000000000000000000000000CA
+:10C6700000000000000000000000000000000000BA
+:10C6800000000000000000000000000000000000AA
+:10C69000000000000000000000000000000000009A
+:10C6A000000000000000000000000000000000008A
+:10C6B000000000000000000000000000000000007A
+:10C6C000000000000000000000000000000000006A
+:10C6D000000000000000000000000000000000005A
+:10C6E000000000000000000000000000000000004A
+:10C6F000000000000000000000000000000000003A
+:10C700000000000000000000000000000000000029
+:10C710000000000000000000000000000000000019
+:10C720000000000000000000000000000000000009
+:10C7300000000000000000000000000000000000F9
+:10C7400000000000000000000000000000000000E9
+:10C7500000000000000000000000000000000000D9
+:10C7600000000000000000000000000000000000C9
+:10C7700000000000000000000000000000000000B9
+:10C7800000000000000000000000000000000000A9
+:10C790000000000000000000000000000000000099
+:10C7A0000000000000000000000000000000000089
+:10C7B0000000000000000000000000000000000079
+:10C7C0000000000000000000000000000000000069
+:10C7D0000000000000000000000000000000000059
+:10C7E0000000000000000000000000000000000049
+:10C7F000FCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFC79
+:10C800000000000000000000000000000000000028
+:10C810000000000000000000000000000000000018
+:10C820000000000000000000000000000000000008
+:10C8300000000000000000000000000000000000F8
+:10C8400000000000000000000000000000000000E8
+:10C8500000000000000000000000000000000000D8
+:10C8600000000000000000000000000000000000C8
+:10C8700000000000000000000000000000000000B8
+:10C8800000000000000000000000000000000000A8
+:10C890000000000000000000000000000000000098
+:10C8A0000000000000000000000000000000000088
+:10C8B0000000000000000000000000000000000078
+:10C8C0000000000000000000000000000000000068
+:10C8D0000000000000000000000000000000000058
+:10C8E0000000000000000000000000000000000048
+:10C8F0000000000000000000000000000000000038
+:10C900000000000000000000000000000000000027
+:10C910000000000000000000000000000000000017
+:10C920000000000000000000000000000000000007
+:10C9300000000000000000000000000000000000F7
+:10C9400000000000000000000000000000000000E7
+:10C9500000000000000000000000000000000000D7
+:10C9600000000000000000000000000000000000C7
+:10C9700000000000000000000000000000000000B7
+:10C9800000000000000000000000000000000000A7
+:10C990000000000000000000000000000000000097
+:10C9A0000000000000000000000000000000000087
+:10C9B0000000000000000000000000000000000077
+:10C9C0000000000000000000000000000000000067
+:10C9D0000000000000000000000000000000000057
+:10C9E0000000000000000000000000000000000047
+:10C9F0000000000000000000000000000000000037
+:10CA00000000000000000000000000000000000026
+:10CA10000000000000000000000000000000000016
+:10CA20000000000000000000000000000000000006
+:10CA300000000000000000000000000000000000F6
+:10CA400000000000000000000000000000000000E6
+:10CA500000000000000000000000000000000000D6
+:10CA600000000000000000000000000000000000C6
+:10CA700000000000000000000000000000000000B6
+:10CA800000000000000000000000000000000000A6
+:10CA90000000000000000000000000000000000096
+:10CAA0000000000000000000000000000000000086
+:10CAB0000000000000000000000000000000000076
+:10CAC0000000000000000000000000000000000066
+:10CAD0000000000000000000000000000000000056
+:10CAE0000000000000000000000000000000000046
+:10CAF0000000000000000000000000000000000036
+:10CB00000000000000000000000000000000000025
+:10CB10000000000000000000000000000000000015
+:10CB20000000000000000000000000000000000005
+:10CB300000000000000000000000000000000000F5
+:10CB400000000000000000000000000000000000E5
+:10CB500000000000000000000000000000000000D5
+:10CB600000000000000000000000000000000000C5
+:10CB700000000000000000000000000000000000B5
+:10CB800000000000000000000000000000000000A5
+:10CB90000000000000000000000000000000000095
+:10CBA0000000000000000000000000000000000085
+:10CBB0000000000000000000000000000000000075
+:10CBC0000000000000000000000000000000000065
+:10CBD0000000000000000000000000000000000055
+:10CBE0000000000000000000000000000000000045
+:10CBF000FCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFC75
+:10CC00000000000000000000000000000000000024
+:10CC10000000000000000000000000000000000014
+:10CC20000000000000000000000000000000000004
+:10CC300000000000000000000000000000000000F4
+:10CC400000000000000000000000000000000000E4
+:10CC500000000000000000000000000000000000D4
+:10CC600000000000000000000000000000000000C4
+:10CC700000000000000000000000000000000000B4
+:10CC800000000000000000000000000000000000A4
+:10CC90000000000000000000000000000000000094
+:10CCA0000000000000000000000000000000000084
+:10CCB0000000000000000000000000000000000074
+:10CCC0000000000000000000000000000000000064
+:10CCD0000000000000000000000000000000000054
+:10CCE0000000000000000000000000000000000044
+:10CCF0000000000000000000000000000000000034
+:10CD00000000000000000000000000000000000023
+:10CD10000000000000000000000000000000000013
+:10CD20000000000000000000000000000000000003
+:10CD300000000000000000000000000000000000F3
+:10CD400000000000000000000000000000000000E3
+:10CD500000000000000000000000000000000000D3
+:10CD600000000000000000000000000000000000C3
+:10CD700000000000000000000000000000000000B3
+:10CD800000000000000000000000000000000000A3
+:10CD90000000000000000000000000000000000093
+:10CDA0000000000000000000000000000000000083
+:10CDB0000000000000000000000000000000000073
+:10CDC0000000000000000000000000000000000063
+:10CDD0000000000000000000000000000000000053
+:10CDE0000000000000000000000000000000000043
+:10CDF0000000000000000000000000000000000033
+:10CE00000000000000000000000000000000000022
+:10CE10000000000000000000000000000000000012
+:10CE20000000000000000000000000000000000002
+:10CE300000000000000000000000000000000000F2
+:10CE400000000000000000000000000000000000E2
+:10CE500000000000000000000000000000000000D2
+:10CE600000000000000000000000000000000000C2
+:10CE700000000000000000000000000000000000B2
+:10CE800000000000000000000000000000000000A2
+:10CE90000000000000000000000000000000000092
+:10CEA0000000000000000000000000000000000082
+:10CEB0000000000000000000000000000000000072
+:10CEC0000000000000000000000000000000000062
+:10CED0000000000000000000000000000000000052
+:10CEE0000000000000000000000000000000000042
+:10CEF0000000000000000000000000000000000032
+:10CF00000000000000000000000000000000000021
+:10CF10000000000000000000000000000000000011
+:10CF20000000000000000000000000000000000001
+:10CF300000000000000000000000000000000000F1
+:10CF400000000000000000000000000000000000E1
+:10CF500000000000000000000000000000000000D1
+:10CF600000000000000000000000000000000000C1
+:10CF700000000000000000000000000000000000B1
+:10CF800000000000000000000000000000000000A1
+:10CF90000000000000000000000000000000000091
+:10CFA0000000000000000000000000000000000081
+:10CFB0000000000000000000000000000000000071
+:10CFC0000000000000000000000000000000000061
+:10CFD0000000000000000000000000000000000051
+:10CFE0000000000000000000000000000000000041
+:10CFF000FCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFC71
+:10D00000AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA80
+:10D010000000000000000000000000000000000010
+:10D0200055555555555555555555555555555555B0
+:10D0300055555555555555555555555555555555A0
+:10D040005555555555555555555555555555555590
+:10D050005555555555555555555555555555555580
+:10D060005555555555555555555555555555555570
+:10D070005555555555555555555555555555555560
+:10D080005454545454545454545454545454545460
+:10D090005656565656565656565656565656565630
+:10D0A0005252525252525252525252525252525260
+:10D0B0005A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5AD0
+:10D0C0000A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0AC0
+:10D0D000AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB0
+:10D0E000AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA0
+:10D0F000A8A8A8A8A8A8A8A8A8A8A8A8A8A8A8A8B0
+:10D10000ABABABABABABABABABABABABABABABAB6F
+:10D11000A8A8A8A8A8A8A8A8A8A8A8A8A8A8A8A88F
+:10D12000A8A8A8A8A8A8A8A8A8A8A8A8A8A8A8A87F
+:10D13000A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0EF
+:10D14000ACACACACACACACACACACACACACACACAC1F
+:10D15000A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0CF
+:10D16000A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0BF
+:10D1700000000000000000000000000000000000AF
+:10D18000F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F09F
+:10D19000000000000000000000000000000000008F
+:10D1A000000000000000000000000000000000007F
+:10D1B000000000000000000000000000000000006F
+:10D1C000000000000000000000000000000000005F
+:10D1D000000000000000000000000000000000004F
+:10D1E000000000000000000000000000000000003F
+:10D1F000000000000000000000000000000000002F
+:10D20000000000000000000000000000000000001E
+:10D21000000000000000000000000000000000000E
+:10D2200000000000000000000000000000000000FE
+:10D2300000000000000000000000000000000000EE
+:10D2400000000000000000000000000000000000DE
+:10D2500000000000000000000000000000000000CE
+:10D2600000000000000000000000000000000000BE
+:10D2700000000000000000000000000000000000AE
+:10D28000000000000000000000000000000000009E
+:10D29000000000000000000000000000000000008E
+:10D2A000000000000000000000000000000000007E
+:10D2B000000000000000000000000000000000006E
+:10D2C000000000000000000000000000000000005E
+:10D2D000000000000000000000000000000000004E
+:10D2E000000000000000000000000000000000003E
+:10D2F000000000000000000000000000000000002E
+:10D30000000000000000000000000000000000001D
+:10D31000000000000000000000000000000000000D
+:10D3200000000000000000000000000000000000FD
+:10D3300000000000000000000000000000000000ED
+:10D3400000000000000000000000000000000000DD
+:10D3500000000000000000000000000000000000CD
+:10D3600000000000000000000000000000000000BD
+:10D3700000000000000000000000000000000000AD
+:10D38000000000000000000000000000000000009D
+:10D39000000000000000000000000000000000008D
+:10D3A000000000000000000000000000000000007D
+:10D3B000000000000000000000000000000000006D
+:10D3C000000000000000000000000000000000005D
+:10D3D000000000000000000000000000000000004D
+:10D3E000000000000000000000000000000000003D
+:10D3F000000000000000000000000000000000002D
+:10D40000000000000000000000000000000000001C
+:10D41000000000000000000000000000000000000C
+:10D4200000000000000000000000000000000000FC
+:10D4300000000000000000000000000000000000EC
+:10D4400000000000000000000000000000000000DC
+:10D4500000000000000000000000000000000000CC
+:10D4600000000000000000000000000000000000BC
+:10D4700000000000000000000000000000000000AC
+:10D48000000000000000000000000000000000009C
+:10D49000000000000000000000000000000000008C
+:10D4A000000000000000000000000000000000007C
+:10D4B000000000000000000000000000000000006C
+:10D4C000000000000000000000000000000000005C
+:10D4D000000000000000000000000000000000004C
+:10D4E000000000000000000000000000000000003C
+:10D4F000000000000000000000000000000000002C
+:10D50000000000000000000000000000000000001B
+:10D51000000000000000000000000000000000000B
+:10D5200000000000000000000000000000000000FB
+:10D5300000000000000000000000000000000000EB
+:10D5400000000000000000000000000000000000DB
+:10D5500000000000000000000000000000000000CB
+:10D5600000000000000000000000000000000000BB
+:10D5700000000000000000000000000000000000AB
+:10D58000000000000000000000000000000000009B
+:10D59000000000000000000000000000000000008B
+:10D5A000000000000000000000000000000000007B
+:10D5B000000000000000000000000000000000006B
+:10D5C000000000000000000000000000000000005B
+:10D5D000000000000000000000000000000000004B
+:10D5E000000000000000000000000000000000003B
+:10D5F000000000000000000000000000000000002B
+:10D60000000000000000000000000000000000001A
+:10D61000000000000000000000000000000000000A
+:10D6200000000000000000000000000000000000FA
+:10D6300000000000000000000000000000000000EA
+:10D6400000000000000000000000000000000000DA
+:10D6500000000000000000000000000000000000CA
+:10D6600000000000000000000000000000000000BA
+:10D6700000000000000000000000000000000000AA
+:10D68000000000000000000000000000000000009A
+:10D69000000000000000000000000000000000008A
+:10D6A000000000000000000000000000000000007A
+:10D6B000000000000000000000000000000000006A
+:10D6C000000000000000000000000000000000005A
+:10D6D000030303030303030303030303030303031A
+:10D6E000000000000000000000000000000000003A
+:10D6F000FCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFC6A
+:10D700000000000000000000000000000000000019
+:10D710000000000000000000000000000000000009
+:10D7200000000000000000000000000000000000F9
+:10D7300000000000000000000000000000000000E9
+:10D7400000000000000000000000000000000000D9
+:10D7500000000000000000000000000000000000C9
+:10D7600000000000000000000000000000000000B9
+:10D7700000000000000000000000000000000000A9
+:10D780000000000000000000000000000000000099
+:10D790000000000000000000000000000000000089
+:10D7A0000000000000000000000000000000000079
+:10D7B0000000000000000000000000000000000069
+:10D7C0000000000000000000000000000000000059
+:10D7D0000000000000000000000000000000000049
+:10D7E0000000000000000000000000000000000039
+:10D7F0000000000000000000000000000000000029
+:10D800000000000000000000000000000000000018
+:10D810000000000000000000000000000000000008
+:10D8200000000000000000000000000000000000F8
+:10D8300000000000000000000000000000000000E8
+:10D8400000000000000000000000000000000000D8
+:10D8500000000000000000000000000000000000C8
+:10D8600000000000000000000000000000000000B8
+:10D8700000000000000000000000000000000000A8
+:10D880000000000000000000000000000000000098
+:10D890000000000000000000000000000000000088
+:10D8A0000000000000000000000000000000000078
+:10D8B0000000000000000000000000000000000068
+:10D8C0000000000000000000000000000000000058
+:10D8D0000000000000000000000000000000000048
+:10D8E0000000000000000000000000000000000038
+:10D8F0000000000000000000000000000000000028
+:10D900000000000000000000000000000000000017
+:10D910000000000000000000000000000000000007
+:10D9200000000000000000000000000000000000F7
+:10D9300000000000000000000000000000000000E7
+:10D9400000000000000000000000000000000000D7
+:10D9500000000000000000000000000000000000C7
+:10D9600000000000000000000000000000000000B7
+:10D9700000000000000000000000000000000000A7
+:10D980000000000000000000000000000000000097
+:10D990000000000000000000000000000000000087
+:10D9A0000000000000000000000000000000000077
+:10D9B0000000000000000000000000000000000067
+:10D9C0000000000000000000000000000000000057
+:10D9D0000000000000000000000000000000000047
+:10D9E0000000000000000000000000000000000037
+:10D9F0000000000000000000000000000000000027
+:10DA00000000000000000000000000000000000016
+:10DA10000000000000000000000000000000000006
+:10DA200000000000000000000000000000000000F6
+:10DA300000000000000000000000000000000000E6
+:10DA400000000000000000000000000000000000D6
+:10DA500000000000000000000000000000000000C6
+:10DA600000000000000000000000000000000000B6
+:10DA700000000000000000000000000000000000A6
+:10DA80000000000000000000000000000000000096
+:10DA90000000000000000000000000000000000086
+:10DAA0000000000000000000000000000000000076
+:10DAB0000000000000000000000000000000000066
+:10DAC0000000000000000000000000000000000056
+:10DAD0000303030303030303030303030303030316
+:10DAE0000000000000000000000000000000000036
+:10DAF000FCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFC66
+:10DB00000000000000000000000000000000000015
+:10DB10000000000000000000000000000000000005
+:10DB200000000000000000000000000000000000F5
+:10DB300000000000000000000000000000000000E5
+:10DB400000000000000000000000000000000000D5
+:10DB500000000000000000000000000000000000C5
+:10DB600000000000000000000000000000000000B5
+:10DB700000000000000000000000000000000000A5
+:10DB80000000000000000000000000000000000095
+:10DB90000000000000000000000000000000000085
+:10DBA0000000000000000000000000000000000075
+:10DBB0000000000000000000000000000000000065
+:10DBC0000000000000000000000000000000000055
+:10DBD0000000000000000000000000000000000045
+:10DBE0000000000000000000000000000000000035
+:10DBF0000000000000000000000000000000000025
+:10DC00000000000000000000000000000000000014
+:10DC10000000000000000000000000000000000004
+:10DC200000000000000000000000000000000000F4
+:10DC300000000000000000000000000000000000E4
+:10DC400000000000000000000000000000000000D4
+:10DC500000000000000000000000000000000000C4
+:10DC600000000000000000000000000000000000B4
+:10DC700000000000000000000000000000000000A4
+:10DC80000000000000000000000000000000000094
+:10DC90000000000000000000000000000000000084
+:10DCA0000000000000000000000000000000000074
+:10DCB0000000000000000000000000000000000064
+:10DCC0000000000000000000000000000000000054
+:10DCD0000000000000000000000000000000000044
+:10DCE0000000000000000000000000000000000034
+:10DCF0000000000000000000000000000000000024
+:10DD00000000000000000000000000000000000013
+:10DD10000000000000000000000000000000000003
+:10DD200000000000000000000000000000000000F3
+:10DD300000000000000000000000000000000000E3
+:10DD400000000000000000000000000000000000D3
+:10DD500000000000000000000000000000000000C3
+:10DD600000000000000000000000000000000000B3
+:10DD700000000000000000000000000000000000A3
+:10DD80000000000000000000000000000000000093
+:10DD90000000000000000000000000000000000083
+:10DDA0000000000000000000000000000000000073
+:10DDB0000000000000000000000000000000000063
+:10DDC0000000000000000000000000000000000053
+:10DDD0000000000000000000000000000000000043
+:10DDE0000000000000000000000000000000000033
+:10DDF0000000000000000000000000000000000023
+:10DE00000000000000000000000000000000000012
+:10DE10000000000000000000000000000000000002
+:10DE200000000000000000000000000000000000F2
+:10DE300000000000000000000000000000000000E2
+:10DE400000000000000000000000000000000000D2
+:10DE500000000000000000000000000000000000C2
+:10DE600000000000000000000000000000000000B2
+:10DE700000000000000000000000000000000000A2
+:10DE80000000000000000000000000000000000092
+:10DE90000000000000000000000000000000000082
+:10DEA0000000000000000000000000000000000072
+:10DEB0000000000000000000000000000000000062
+:10DEC0000000000000000000000000000000000052
+:10DED0000303030303030303030303030303030312
+:10DEE0000000000000000000000000000000000032
+:10DEF000FCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFC62
+:10DF00000000000000000000000000000000000011
+:10DF10000000000000000000000000000000000001
+:10DF200000000000000000000000000000000000F1
+:10DF300000000000000000000000000000000000E1
+:10DF400000000000000000000000000000000000D1
+:10DF500000000000000000000000000000000000C1
+:10DF600000000000000000000000000000000000B1
+:10DF700000000000000000000000000000000000A1
+:10DF80000000000000000000000000000000000091
+:10DF90000000000000000000000000000000000081
+:10DFA0000000000000000000000000000000000071
+:10DFB0000000000000000000000000000000000061
+:10DFC0000000000000000000000000000000000051
+:10DFD0000000000000000000000000000000000041
+:10DFE0000000000000000000000000000000000031
+:10DFF0000000000000000000000000000000000021
+:10E000000000000000000000000000000000000010
+:10E010000000000000000000000000000000000000
+:10E0200000000000000000000000000000000000F0
+:10E0300000000000000000000000000000000000E0
+:10E0400000000000000000000000000000000000D0
+:10E0500000000000000000000000000000000000C0
+:10E0600000000000000000000000000000000000B0
+:10E0700000000000000000000000000000000000A0
+:10E080000000000000000000000000000000000090
+:10E090000000000000000000000000000000000080
+:10E0A0000000000000000000000000000000000070
+:10E0B0000000000000000000000000000000000060
+:10E0C0000000000000000000000000000000000050
+:10E0D0000000000000000000000000000000000040
+:10E0E0000000000000000000000000000000000030
+:10E0F0000000000000000000000000000000000020
+:10E10000000000000000000000000000000000000F
+:10E1100000000000000000000000000000000000FF
+:10E1200000000000000000000000000000000000EF
+:10E1300000000000000000000000000000000000DF
+:10E1400000000000000000000000000000000000CF
+:10E1500000000000000000000000000000000000BF
+:10E1600000000000000000000000000000000000AF
+:10E17000000000000000000000000000000000009F
+:10E18000000000000000000000000000000000008F
+:10E19000000000000000000000000000000000007F
+:10E1A000000000000000000000000000000000006F
+:10E1B000000000000000000000000000000000005F
+:10E1C000000000000000000000000000000000004F
+:10E1D000000000000000000000000000000000003F
+:10E1E000000000000000000000000000000000002F
+:10E1F000000000000000000000000000000000001F
+:10E20000000000000000000000000000000000000E
+:10E2100000000000000000000000000000000000FE
+:10E2200000000000000000000000000000000000EE
+:10E2300000000000000000000000000000000000DE
+:10E2400000000000000000000000000000000000CE
+:10E2500000000000000000000000000000000000BE
+:10E2600000000000000000000000000000000000AE
+:10E27000000000000000000000000000000000009E
+:10E28000000000000000000000000000000000008E
+:10E29000000000000000000000000000000000007E
+:10E2A000000000000000000000000000000000006E
+:10E2B000000000000000000000000000000000005E
+:10E2C000000000000000000000000000000000004E
+:10E2D000030303030303030303030303030303030E
+:10E2E000000000000000000000000000000000002E
+:10E2F000FCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFC5E
+:10E30000AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA6D
+:10E3100000000000000000000000000000000000FD
+:10E32000555555555555555555555555555555559D
+:10E33000555555555555555555555555555555558D
+:10E34000555555555555555555555555555555557D
+:10E35000555555555555555555555555555555556D
+:10E36000555555555555555555555555555555555D
+:10E37000555555555555555555555555555555554D
+:10E38000545454545454545454545454545454544D
+:10E39000565656565656565656565656565656561D
+:10E3A000525252525252525252525252525252524D
+:10E3B0005A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5ABD
+:10E3C0000A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0AAD
+:10E3D000AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA9D
+:10E3E000AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8D
+:10E3F000A8A8A8A8A8A8A8A8A8A8A8A8A8A8A8A89D
+:10E40000ABABABABABABABABABABABABABABABAB5C
+:10E41000A8A8A8A8A8A8A8A8A8A8A8A8A8A8A8A87C
+:10E42000A8A8A8A8A8A8A8A8A8A8A8A8A8A8A8A86C
+:10E43000A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0DC
+:10E44000ACACACACACACACACACACACACACACACAC0C
+:10E45000A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0BC
+:10E46000A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0AC
+:10E47000000000000000000000000000000000009C
+:10E48000F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F08C
+:10E49000000000000000000000000000000000007C
+:10E4A000000000000000000000000000000000006C
+:10E4B000000000000000000000000000000000005C
+:10E4C000000000000000000000000000000000004C
+:10E4D000000000000000000000000000000000003C
+:10E4E000000000000000000000000000000000002C
+:10E4F000000000000000000000000000000000001C
+:10E50000000000000000000000000000000000000B
+:10E5100000000000000000000000000000000000FB
+:10E5200000000000000000000000000000000000EB
+:10E5300000000000000000000000000000000000DB
+:10E5400000000000000000000000000000000000CB
+:10E5500000000000000000000000000000000000BB
+:10E5600000000000000000000000000000000000AB
+:10E57000000000000000000000000000000000009B
+:10E58000000000000000000000000000000000008B
+:10E59000000000000000000000000000000000007B
+:10E5A000000000000000000000000000000000006B
+:10E5B000000000000000000000000000000000005B
+:10E5C000000000000000000000000000000000004B
+:10E5D000000000000000000000000000000000003B
+:10E5E000000000000000000000000000000000002B
+:10E5F000000000000000000000000000000000001B
+:10E60000AA96969695959595959595959595AA65BD
+:10E610009A252526252525252525252525252565F4
+:10E620009A252526252525252525252525252565E4
+:10E630009A252525252525252525252525252565D5
+:10E640009A252525252525252525252525252565C5
+:10E650009A252525252525252525252525252565B5
+:10E660009A252525252525252525252525252565A5
+:10E670009A25252525252525252525252525256595
+:10E680009A25252525252525252525252525256585
+:10E690009A25252525252525252525252525256575
+:10E6A0009A25252525252525252525252525256565
+:10E6B0009A25252525252525252525252525256555
+:10E6C0009A25252525252525252525252525256545
+:10E6D0009A25252525252525252525252525256535
+:10E6E0009A25252525252525252525252525256525
+:10E6F0009A25252525252525252525252525251565
+:10E70000AA96969695959595959595959595AA65BC
+:10E710009AA5A5A6A5A5A5A5A5A5A5A5A5A5A565F3
+:10E720009A252526252525252525252525252565E3
+:10E730009A252525252525252525252525252565D4
+:10E740009A252525252525252525252525252565C4
+:10E750009A252525252525252525252525252565B4
+:10E760009A252525252525252525252525252565A4
+:10E770009A25252525252525252525252525256594
+:10E780009A25252525252525252525252525256584
+:10E790009A25252525252525252525252525256574
+:10E7A0009A25252525252525252525252525256564
+:10E7B0009A25252525252525252525252525256554
+:10E7C0009A25252525252525252525252525256544
+:10E7D0009A25252525252525252525252525256534
+:10E7E0009A25252525252525252525252525256524
+:10E7F0009A25252525252525252525252525251564
+:10E800000096969A95959595959595959595AA00C6
+:10E8100000A5A6A6A5A5A5A5A5A5A5A5A5A5A500F0
+:10E8200000252526252525252525252525252500E1
+:10E8300000252525252525252525252525252500D2
+:10E8400000252525252525252525252525252500C2
+:10E8500000252525252525252525252525252500B2
+:10E8600000252525252525252525252525252500A2
+:10E870000025252525252525252525252525250092
+:10E880000025252525252525252525252525250082
+:10E890000025252525252525252525252525250072
+:10E8A0000025252525252525252525252525250062
+:10E8B0000025252525252525252525252525250052
+:10E8C0000025252525252525252525252525250042
+:10E8D0000025252525252525252525252525250032
+:10E8E0000025252525252525252525252525250022
+:10E8F0000025252525252525252525252525250012
+:10E900000096969A95959595959595959595AA00C5
+:10E9100000A5A6A6A5A5A5A5A5A5A5A5A5A5A500EF
+:10E9200000A5A5A6A5A5A5A5A5A5A5A5A5A5A500E0
+:10E9300000A5A5A6A5A5A5A5A5A5A5A5A5A5A500D0
+:10E9400000252525252525252525252525252500C1
+:10E9500000252525252525252525252525252500B1
+:10E9600000252525252525252525252525252500A1
+:10E970000025252525252525252525252525250091
+:10E980000025252525252525252525252525250081
+:10E990000025252525252525252525252525250071
+:10E9A0000025252525252525252525252525250061
+:10E9B0000025252525252525252525252525250051
+:10E9C0000025252525252525252525252525250041
+:10E9D0000025252525252525252525252525250031
+:10E9E0000025252525252525252525252525250021
+:10E9F0000025252525252525252525252525250011
+:10EA0000AA96969A95959595959595959595AA65B5
+:10EA10009AA5A6A6A5A5A5A5A5A5A5A5A5A5A665EE
+:10EA20009AA5A6A6A5A5A5A5A5A5A5A5A5A5A565DF
+:10EA30009AA5A5A6A5A5A5A5A5A5A5A5A5A5A565D0
+:10EA40009A252525252525252525252525252565C1
+:10EA50009A252525252525252525252525252565B1
+:10EA60009A252525252525252525252525252565A1
+:10EA70009A25252525252525252525252525256591
+:10EA80009A25252525252525252525252525256581
+:10EA90009A25252525252525252525252525256571
+:10EAA0009A25252525252525252525252525256561
+:10EAB0009A25252525252525252525252525256551
+:10EAC0009A25252525252525252525252525256541
+:10EAD0009A25252525252525252525252525256531
+:10EAE0009A25252525252525252525252525256521
+:10EAF0009A25252525252525252525252525251561
+:10EB0000AA96969A95959595959595959595AA65B4
+:10EB10009AA5A6A6A5A5A5A5A5A5A5A5A5A5A665ED
+:10EB20009AA5A6A6A5A5A5A5A5A5A5A5A5A5A565DE
+:10EB30009AA5A5A6A5A5A5A5A5A5A5A5A5A5A565CF
+:10EB40009AA5A5A6A5A5A5A5A5A5A5A5A5A5A565BF
+:10EB50009AA5A5A5A5A5A5A5A5A5A5A5A5A5A565B0
+:10EB60009A252525252525252525252525252565A0
+:10EB70009A25252525252525252525252525256590
+:10EB80009A25252525252525252525252525256580
+:10EB90009A25252525252525252525252525256570
+:10EBA0009A25252525252525252525252525256560
+:10EBB0009A25252525252525252525252525256550
+:10EBC0009A25252525252525252525252525256540
+:10EBD0009A25252525252525252525252525256530
+:10EBE0009A25252525252525252525252525256520
+:10EBF0009A25252525252525252525252525251560
+:10EC00000096969A95959595959595959595AA00C2
+:10EC100000A6A6A6A5A5A5A5A5A5A5A5A5A5A600EA
+:10EC200000A5A6A6A5A5A5A5A5A5A5A5A5A5A600DB
+:10EC300000A5A5A6A5A5A5A5A5A5A5A5A5A5A500CD
+:10EC400000A5A5A6A5A5A5A5A5A5A5A5A5A5A500BD
+:10EC500000A5A5A6A5A5A5A5A5A5A5A5A5A5A500AD
+:10EC6000002525252525252525252525252525009E
+:10EC7000002525252525252525252525252525008E
+:10EC8000002525252525252525252525252525007E
+:10EC9000002525252525252525252525252525006E
+:10ECA000002525252525252525252525252525005E
+:10ECB000002525252525252525252525252525004E
+:10ECC000002525252525252525252525252525003E
+:10ECD000002525252525252525252525252525002E
+:10ECE000002525252525252525252525252525001E
+:10ECF000002525252525252525252525252525000E
+:10ED00000096969A95959595959595959595AA00C1
+:10ED100000A6A6A6A5A5A5A5A5A5A5A5A5A5A600E9
+:10ED200000A5A6A6A5A5A5A5A5A5A5A5A5A5A600DA
+:10ED300000A5A6A6A5A5A5A5A5A5A5A5A5A5A500CB
+:10ED400000A5A5A6A5A5A5A5A5A5A5A5A5A5A500BC
+:10ED500000A5A5A6A5A5A5A5A5A5A5A5A5A5A500AC
+:10ED600000A5A5A6A5A5A5A5A5A5A5A5A5A5A5009C
+:10ED7000002525252525252525252525252525008D
+:10ED8000002525252525252525252525252525007D
+:10ED9000002525252525252525252525252525006D
+:10EDA000002525252525252525252525252525005D
+:10EDB000002525252525252525252525252525004D
+:10EDC000002525252525252525252525252525003D
+:10EDD000002525252525252525252525252525002D
+:10EDE000002525252525252525252525252525001D
+:10EDF000002525252525252525252525252525000D
+:10EE0000AA969A9A95959595959595959595AA65AD
+:10EE10009AA6A6A6A5A5A5A5A5A5A5A5A5A5A665E9
+:10EE20009AA6A6A6A5A5A5A5A5A5A5A5A5A5A665D9
+:10EE30009AA5A6A6A5A5A5A5A5A5A5A5A5A5A565CB
+:10EE40009AA5A5A6A5A5A5A5A5A5A5A5A5A5A565BC
+:10EE50009AA5A5A6A5A5A5A5A5A5A5A5A5A5A565AC
+:10EE60009AA5A5A6A5A5A5A5A5A5A5A5A5A5A5659C
+:10EE70009A2525262525252525252525252525658C
+:10EE80009A2525252525252525252525252525657D
+:10EE90009A2525252525252525252525252525656D
+:10EEA0009A2525252525252525252525252525655D
+:10EEB0009A2525252525252525252525252525654D
+:10EEC0009A2525252525252525252525252525653D
+:10EED0009A2525252525252525252525252525652D
+:10EEE0009A2525252525252525252525252525651D
+:10EEF0009A2525252525252525252525252525155D
+:10EF0000AA969AAA95959595959595959595AA659C
+:10EF10009AA6A6A6A5A5A5A5A5A5A5A5A5A5A665E8
+:10EF20009AA6A6A6A5A5A5A5A5A5A5A5A5A5A665D8
+:10EF30009AA5A6A6A5A5A5A5A5A5A5A5A5A5A665C9
+:10EF40009AA5A6A6A5A5A5A5A5A5A5A5A5A5A565BA
+:10EF50009AA5A5A6A5A5A5A5A5A5A5A5A5A5A565AB
+:10EF60009AA5A5A6A5A5A5A5A5A5A5A5A5A5A5659B
+:10EF70009AA5A5A6A5A5A5A5A5A5A5A5A5A5A5658B
+:10EF80009A2525262525252525252525252525657B
+:10EF90009A2525252525252525252525252525656C
+:10EFA0009A2525252525252525252525252525655C
+:10EFB0009A2525252525252525252525252525654C
+:10EFC0009A2525252525252525252525252525653C
+:10EFD0009A2525252525252525252525252525652C
+:10EFE0009A2525252525252525252525252525651C
+:10EFF0009A2525252525252525252525252525155C
+:10F0000000969AAA95959595969696959595AA00A7
+:10F0100000A6A6A6A5A5A5A5A5A5A5A5A5A5A600E6
+:10F0200000A6A6A6A5A5A5A5A5A5A5A5A5A5A600D6
+:10F0300000A5A6A6A5A5A5A5A5A5A5A5A5A5A600C7
+:10F0400000A5A6A6A5A5A5A5A5A5A5A5A5A5A500B8
+:10F0500000A5A6A6A5A5A5A5A5A5A5A5A5A5A500A8
+:10F0600000A5A5A6A5A5A5A5A5A5A5A5A5A5A50099
+:10F0700000A5A5A6A5A5A5A5A5A5A5A5A5A5A50089
+:10F080000025252625252525252525252525250079
+:10F090000025252625252525252525252525250069
+:10F0A000002525252525252525252525252525005A
+:10F0B000002525252525252525252525252525004A
+:10F0C000002525252525252525252525252525003A
+:10F0D000002525252525252525252525252525002A
+:10F0E000002525252525252525252525252525001A
+:10F0F000002525252525252525252525252525000A
+:10F1000000969AAA95959596969696969595AA00A4
+:10F1100000A6A6A6A5A5A5A5A5A5A5A5A5A5A600E5
+:10F1200000A6A6A6A5A5A5A5A5A5A5A5A5A5A600D5
+:10F1300000A6A6A6A5A5A5A5A5A5A5A5A5A5A600C5
+:10F1400000A5A6A6A5A5A5A5A5A5A5A5A5A5A600B6
+:10F1500000A5A6A6A5A5A5A5A5A5A5A5A5A5A500A7
+:10F1600000A5A6A6A5A5A5A5A5A5A5A5A5A5A50097
+:10F1700000A5A5A6A5A5A5A5A5A5A5A5A5A5A50088
+:10F1800000A5A5A6A5A5A5A5A5A5A5A5A5A5A50078
+:10F190000025252625252525252525252525250068
+:10F1A0000025252625252525252525252525250058
+:10F1B0000025252525252525252525252525250049
+:10F1C0000025252525252525252525252525250039
+:10F1D0000025252525252525252525252525250029
+:10F1E0000025252525252525252525252525250019
+:10F1F0000025252525252525252525252525250009
+:10F200009A969AAA95959696969696969595AA65A3
+:10F2100095A6A6A6A5A5A5A5A5A5A5A5A5A5A665EA
+:10F2200095A6A6A6A5A5A5A5A5A5A5A5A5A5A665DA
+:10F2300095A6A6A6A5A5A5A5A5A5A5A5A5A5A665CA
+:10F2400095A5A6A6A5A5A5A5A5A5A5A5A5A5A665BB
+:10F2500095A5A6A6A5A5A5A5A5A5A5A5A5A5A665AB
+:10F2600095A5A6A6A5A5A5A5A5A5A5A5A5A5A5659C
+:10F2700095A5A6A6A5A5A5A5A5A5A5A5A5A5A5658C
+:10F2800095A5A5A6A5A5A5A5A5A5A5A5A5A5A5657D
+:10F29000952525262525252525252525252525656D
+:10F2A000952525262525252525252525252525655D
+:10F2B000952525262525252525252525252525654D
+:10F2C000952525252525252525252525252525653E
+:10F2D000952525252525252525252525252525652E
+:10F2E000952525252525252525252525252525651E
+:10F2F000952525252525252525252525252525551E
+:10F300009A96AAAA96969696969696969595AA6590
+:10F3100095A6A6A6A5A5A5A5A5A5A5A5A5A5A665E9
+:10F3200095A6A6A6A5A5A5A5A5A5A5A5A5A5A665D9
+:10F3300095A6A6A6A5A5A5A5A5A5A5A5A5A5A665C9
+:10F3400095A6A6A6A5A5A5A5A5A5A5A5A5A5A665B9
+:10F3500095A5A6A6A5A5A5A5A5A5A5A5A5A5A665AA
+:10F3600095A5A6A6A5A5A5A5A5A5A5A5A5A5A6659A
+:10F3700095A5A6A6A5A5A5A5A5A5A5A5A5A5A5658B
+:10F3800095A5A6A6A5A5A5A5A5A5A5A5A5A5A5657B
+:10F3900095A5A5A6A5A5A5A5A5A5A5A5A5A5A5656C
+:10F3A000952525262525252525252525252525655C
+:10F3B000952525262525252525252525252525654C
+:10F3C000952525262525252525252525252525653C
+:10F3D000952525262525252525252525252525652C
+:10F3E000952525262525252525252525252525651C
+:10F3F000952525252525252525252525252525551D
+:10F400000096AAAA96969696969696969695AA008D
+:10F4100000A6A6A6A5A5A5A5A5A5A5A5A5A5A600E2
+:10F4200000A6A6A6A5A5A5A5A5A5A5A5A5A5A600D2
+:10F4300000A6A6A6A5A5A5A5A5A5A5A5A5A5A600C2
+:10F4400000A6A6A6A5A5A5A5A5A5A5A5A5A5A600B2
+:10F4500000A6A6A6A5A5A5A5A5A5A5A5A5A5A600A2
+:10F4600000A5A6A6A5A5A5A5A5A5A5A5A5A5A60093
+:10F4700000A5A6A6A5A5A5A5A5A5A5A5A5A5A60083
+:10F4800000A5A6A6A5A5A5A5A5A5A5A5A5A5A50074
+:10F4900000A5A6A6A5A5A5A5A5A5A5A5A5A5A50064
+:10F4A0000025252625252525252525252525250055
+:10F4B0000025252625252525252525252525250045
+:10F4C0000025252625252525252525252525250035
+:10F4D0000025252625252525252525252525250025
+:10F4E0000025252625252525252525252525250015
+:10F4F0000025252525252525252525252525250006
+:10F500000096AAAA96969696969696969696AA008B
+:10F5100000A6A6A6A5A5A5A5A5A5A5A5A5A5A600E1
+:10F5200000A6A6A6A5A5A5A5A5A5A5A5A5A5A600D1
+:10F5300000A6A6A6A5A5A5A5A5A5A5A5A5A5A600C1
+:10F5400000A6A6A6A5A5A5A5A5A5A5A5A5A5A600B1
+:10F5500000A6A6A6A5A5A5A5A5A5A5A5A5A5A600A1
+:10F5600000A6A6A6A5A5A5A5A5A5A5A5A5A5A60091
+:10F5700000A5A6A6A5A5A5A5A5A5A5A5A5A5A60082
+:10F5800000A5A6A6A5A5A5A5A5A5A5A5A5A5A60072
+:10F5900000A5A6A6A5A5A5A5A5A5A5A5A5A5A50063
+:10F5A00000A5A6A6A5A5A5A5A5A5A5A5A5A5A50053
+:10F5B0000025252625252525252525252525250044
+:10F5C0000025252625252525252525252525250034
+:10F5D0000025252625252525252525252525250024
+:10F5E0000025252625252525252525252525250014
+:10F5F0000025252625252525252525252525250004
+:10F600009A9AAAAA969696969696969696A6AA6A72
+:10F6100095A6A6A6A5A5A5A5A5A5A5A5A5A5A666E5
+:10F6200095A6A6A6A5A5A5A5A5A5A5A5A5A5A666D5
+:10F6300095A6A6A6A5A5A5A5A5A5A5A5A5A5A666C5
+:10F6400095A6A6A6A5A5A5A5A5A5A5A5A5A5A666B5
+:10F6500095A6A6A6A5A5A5A5A5A5A5A5A5A5A666A5
+:10F6600095A6A6A6A5A5A5A5A5A5A5A5A5A5A66695
+:10F6700095A6A6A6A5A5A5A5A5A5A5A5A5A5A66685
+:10F6800095A5A6A6A5A5A5A5A5A5A5A5A5A5A66676
+:10F6900095A5A6A6A5A5A5A5A5A5A5A5A5A5A66666
+:10F6A00095A5A6A6A5A5A5A5A5A5A5A5A5A5A56657
+:10F6B0009525262625252525252525252525256647
+:10F6C0009525252625252525252525252525256638
+:10F6D0009525252625252525252525252525256628
+:10F6E0009525252625252525252525252525256618
+:10F6F0009525252625252525252525252525255519
+:10F700009A9AAAAA9696969696969A8696A6AA6A7D
+:10F7100095A6A6A6A5A5A5A5A5A5A5A5A5A5A666E4
+:10F7200095A6A6A6A5A5A5A5A5A5A5A5A5A5A666D4
+:10F7300095A6A6A6A5A5A5A5A5A5A5A5A5A5A666C4
+:10F7400095A6A6A6A5A5A5A5A5A5A5A5A5A5A666B4
+:10F7500095A6A6A6A5A5A5A5A5A5A5A5A5A5A666A4
+:10F7600095A6A6A6A5A5A5A5A5A5A5A5A5A5A66694
+:10F7700095A6A6A6A5A5A5A5A5A5A5A5A5A5A66684
+:10F7800095A6A6A6A5A5A5A5A5A5A5A5A5A5A66674
+:10F7900095A5A6A6A5A5A5A5A5A5A5A5A5A5A66665
+:10F7A00095A5A6A6A5A5A5A5A5A5A5A5A5A5A66655
+:10F7B00095A5A6A6A5A5A5A5A5A5A5A5A5A5A56646
+:10F7C0009525262625252525252525252525256636
+:10F7D0009525262625252525252525252525256626
+:10F7E0009525262625252525252525252525256616
+:10F7F0009525262625252525252525252525255517
+:10F8000000AAAAAA969696969A9AAAA6A6A6AA0028
+:10F8100000A6A6A6A5A5A5A5A5A5A5A5A5A5A600DE
+:10F8200000A6A6A6A5A5A5A5A5A5A5A5A5A5A600CE
+:10F8300000A6A6A6A5A5A5A5A5A5A5A5A5A5A600BE
+:10F8400000A6A6A6A5A5A5A5A5A5A5A5A5A5A600AE
+:10F8500000A6A6A6A5A5A5A5A5A5A5A5A5A5A6009E
+:10F8600000A6A6A6A5A5A5A5A5A5A5A5A5A5A6008E
+:10F8700000A6A6A6A5A5A5A5A5A5A5A5A5A5A6007E
+:10F8800000A6A6A6A5A5A5A5A5A5A5A5A5A5A6006E
+:10F8900000A6A6A6A5A5A5A5A5A5A5A5A5A5A6005E
+:10F8A00000A5A6A6A5A5A5A5A5A5A5A5A5A5A6004F
+:10F8B00000A5A6A6A5A5A5A5A5A5A5A5A5A5A6003F
+:10F8C0000025262625252525252525252525250030
+:10F8D0000025262625252525252525252525250020
+:10F8E0000025262625252525252525252525250010
+:10F8F0000025262625252525252525252525250000
+:10F9000000AAAAAA969696969A8AAAA6A6A6AA0037
+:10F9100000A6A6A6A6A6A6A6A6A6A6A6A6A6A600D3
+:10F9200000A6A6A6A6A6A6A6A6A6A6A6A6A6A600C3
+:10F9300000A6A6A6A6A6A6A6A6A6A6A6A6A6A600B3
+:10F9400000A6A6A6A6A6A6A6A6A6A6A6A6A6A600A3
+:10F9500000A6A6A6A6A6A6A6A6A6A6A6A6A6A60093
+:10F9600000A6A6A6A6A6A6A6A6A6A6A6A6A6A60083
+:10F9700000A6A6A6A6A6A6A6A6A6A6A6A6A6A60073
+:10F9800000A6A6A6A6A6A6A6A6A6A6A6A6A6A60063
+:10F9900000A6A6A6A6A6A6A6A6A6A6A6A6A6A60053
+:10F9A00000A6A6A6A6A6A6A6A6A6A6A6A6A6A60043
+:10F9B00000A5A6A6A6A6A6A6A6A6A6A6A6A6A60034
+:10F9C00000A5A6A6A6A6A6A6A6A6A6A6A6A6A60024
+:10F9D0000025262626262626262626262626260014
+:10F9E0000025262626262626262626262626260004
+:10F9F00000262626252525252525252525252500FE
+:10FA00009AAAAAAA96969696AAAAAAAAA6A6AA6AFE
+:10FA100095A6A6A6A6A6A6A6A6A6A6A6A6A6A666D7
+:10FA200095A6A6A6A6A6A6A6A6A6A6A6A6A6A666C7
+:10FA300095A6A6A6A6A6A6A6A6A6A6A6A6A6A666B7
+:10FA400095A6A6A6A6A6A6A6A6A6A6A6A6A6A666A7
+:10FA500095A6A6A6A6A6A6A6A6A6A6A6A6A6A66697
+:10FA600095A6A6A6A6A6A6A6A6A6A6A6A6A6A66687
+:10FA700095A6A6A6A6A6A6A6A6A6A6A6A6A6A66677
+:10FA800095A6A6A6A6A6A6A6A6A6A6A6A6A6A66667
+:10FA900095A6A6A6A6A6A6A6A6A6A6A6A6A6A66657
+:10FAA00095A6A6A6A6A6A6A6A6A6A6A6A6A6A66647
+:10FAB00095A6A6A6A6A6A6A6A6A6A6A6A6A6A66637
+:10FAC00095A5A6A6A6A6A6A6A6A6A6A6A6A6A66628
+:10FAD0009525262626262626262626262626266618
+:10FAE0009525262626262626262626262626266608
+:10FAF0009526262625252525252525252525255513
+:10FB00009AAAAAAA969696AAAAAAAAAAA6A6AA6AE9
+:10FB100095A6A6AAA6A6A6A6A6A6A6A6A6A6A666D2
+:10FB200095A6A6AAA6A6A6A6A6A6A6A6A6A6A666C2
+:10FB300095A6A6AAA6A6A6A6A6A6A6A6A6A6A666B2
+:10FB400095A6A6AAA6A6A6A6A6A6A6A6A6A6A666A2
+:10FB500095A6A6AAA6A6A6A6A6A6A6A6A6A6A66692
+:10FB600095A6A6AAA6A6A6A6A6A6A6A6A6A6A66682
+:10FB700095A6A6AAA6A6A6A6A6A6A6A6A6A6A66672
+:10FB800095A6A6AAA6A6A6A6A6A6A6A6A6A6A66662
+:10FB900095A6A6AAA6A6A6A6A6A6A6A6A6A6A66652
+:10FBA00095A6A6AAA6A6A6A6A6A6A6A6A6A6A66642
+:10FBB00095A6A6AAA6A6A6A6A6A6A6A6A6A6A66632
+:10FBC00095A6A6AAA6A6A6A6A6A6A6A6A6A6A66622
+:10FBD00095A6A6AAA6A6A6A6A6A6A6A6A6A6A66612
+:10FBE0009526262A26262626262626262626266602
+:10FBF0009526262A2525252525252525252526550D
+:10FC000000AAAAAA969696AAAAAAAAAAAAA6AA00E8
+:10FC100000A6A6AAA6A6A6A6A6A6A6A6A6A6A600CC
+:10FC200000A6A6AAA6A6A6A6A6A6A6A6A6A6A600BC
+:10FC300000A6A6AAA6A6A6A6A6A6A6A6A6A6A600AC
+:10FC400000A6A6AAA6A6A6A6A6A6A6A6A6A6A6009C
+:10FC500000A6A6AAA6A6A6A6A6A6A6A6A6A6A6008C
+:10FC600000A6A6AAA6A6A6A6A6A6A6A6A6A6A6007C
+:10FC700000A6A6AAA6A6A6A6A6A6A6A6A6A6A6006C
+:10FC800000A6A6AAA6A6A6A6A6A6A6A6A6A6A6005C
+:10FC900000A6A6AAA6A6A6A6A6A6A6A6A6A6A6004C
+:10FCA00000A6A6AAA6A6A6A6A6A6A6A6A6A6A6003C
+:10FCB00000A6A6AAA6A6A6A6A6A6A6A6A6A6A6002C
+:10FCC00000A6A6AAA6A6A6A6A6A6A6A6A6A6A6001C
+:10FCD00000A6A6AAA6A6A6A6A6A6A6A6A6A6A6000C
+:10FCE00000A6A6AA96A6A6A6A6A6A6A6A6A6A6000C
+:10FCF0000026262A252525252525252525252600F6
+:10FD000000AAAAAA9696AAAAAAAAAAAAAAAAAA00CF
+:10FD100000A6A6AAA6A6A6A6A6A6AAA6A6A6A600C7
+:10FD200000A6A6AAA6A6A6A6A6A6A6A6A6A6A600BB
+:10FD300000A6A6AAA6A6A6A6A6A6A6A6A6A6A600AB
+:10FD400000A6A6AAA6A6A6A6A6A6A6A6A6A6A6009B
+:10FD500000A6A6AAA6A6A6A6A6A6A6A6A6A6A6008B
+:10FD600000A6A6AAA6A6A6A6A6A6A6A6A6A6A6007B
+:10FD700000A6A6AAA6A6A6A6A6A6A6A6A6A6A6006B
+:10FD800000A6A6AAA6A6A6A6A6A6A6A6A6A6A6005B
+:10FD900000A6A6AAA6A6A6A6A6A6A6A6A6A6A6004B
+:10FDA00000A6A6AAA6A6A6A6A6A6A6A6A6A6A6003B
+:10FDB00000A6A6AAA6A6A6A6A6A6A6A6A6A6A6002B
+:10FDC00000A6A6AAA6A6A6A6A6A6A6A6A6A6A6001B
+:10FDD00000A6A6AA96A6A6A6A6A6A6A6A6A6A6001B
+:10FDE00000A6A6AA96A6A6A6A6A6A6A6A6A6A6000B
+:10FDF00000A6A6AAA5A5A5A5A5A6A6A6A6A5A600F1
+:10FE00009AAAAA2A161A2A2A2A2A2A2A2A2A2A6AC6
+:10FE100095A6A62A2626262626262A2626262666CB
+:10FE200095A6A62A262626262626262626262666BF
+:10FE300095A6A62A262626262626262626262666AF
+:10FE400095A6A62A2626262626262626262626669F
+:10FE500095A6A62A2626262626262626262626668F
+:10FE600095A6A62A2626262626262626262626667F
+:10FE700095A6A62A2626262626262626262626666F
+:10FE800095A6A62A2626262626262626262626665F
+:10FE900095A6A62A2626262626262626262626664F
+:10FEA00095A6A62A2626262626262626262626663F
+:10FEB00095A6A62A2626262626262626262626662F
+:10FEC00095A6A62A2626262626262626262626661F
+:10FED00095A6A62A1626262626262626262626661F
+:10FEE00095A6A62A1626262626262626262626660F
+:10FEF00095A6A62A25252525262626262625265505
+:10FF00009AAAAA2A1A1A2A2A2A2A2A2A2A2A2A6AC1
+:10FF100095A6AA2A26262626262A2A2A2A262A66B6
+:10FF200095A6AA2A2626262626262A2626262666B6
+:10FF300095A6AA2A262626262626262626262666AA
+:10FF400095A6AA2A2626262626262626262626669A
+:10FF500095A6AA2A2626262626262626262626668A
+:10FF600095A6AA2A1626262626262626262626668A
+:10FF700095A6AA2A1626262626262626262626667A
+:10FF800095A6AA2A1626262626262626262626666A
+:10FF900095A6AA2A1626262626262626262626665A
+:10FFA00095A6AA2A1626262626262626262626664A
+:10FFB00095A6AA2A1626262626262626262626663A
+:10FFC00095A6AA2A1626262626262626262626662A
+:10FFD00095A6AA2A1626262626262626262626661A
+:10FFE00095A6AA2A1626262626262626262626660A
+:10FFF00095A6AA2A1525262626262626262626550D
+:020000040007F3
+:1000000000AAAA2A1A2A2A2A2A2A2A2A2A2A2A00B4
+:1000100000A6AA2A262626262A2A2A2A2A262A00AC
+:1000200000A6AA2A2626262626262A2626262600B0
+:1000300000A6AA2A262626262626262626262600A4
+:1000400000A6AA2A26262626262626262626260094
+:1000500000A6AA2A16262626262626262626260094
+:1000600000A6AA2A16262626262626262626260084
+:1000700000A6AA2A16262626262626262626260074
+:1000800000A6AA2A16262626262626262626260064
+:1000900000A6AA2A16262626262626262626260054
+:1000A00000A6AA2A16262626262626262626260044
+:1000B00000A6AA2A16262626262626262626260034
+:1000C00000A6AA2A16262626262626262626260024
+:1000D00000A6AA2A1626262626262A262626260010
+:1000E00000A6AA2A16262626262626262626260004
+:1000F00040A6AA2A152626262626262626262600B5
+:1001000000AAAAAA1A2A2A2A2A2A2A2A2A2A2A0033
+:1001100000A6AAAA262626262A2A2A2A2A2A2A0027
+:1001200000A6AAAA26262626262A2A2A2A262A001F
+:1001300000A6AAAA2626262626262A2626262A001B
+:1001400000A6AAAA1626262626262A2626262A001B
+:1001500000A6AAAA1626262626262A2626262A000B
+:1001600000A6AAAA1626262626262A2626262A00FB
+:1001700000A6AAAA1626262626262A2626262A00EB
+:1001800000A6AAAA162626262626262626262A00DF
+:1001900000A6AAAA162626262626262626262A00CF
+:1001A00000A6AAAA162626262626262626262A00BF
+:1001B00000A6AAAA162626262626262626262A00AF
+:1001C00000A6AAAA162626262626262626262A009F
+:1001D00000A6AAAA1626262626262A2626262A008B
+:1001E00000A6AAAA1616262626262A2626262A008B
+:1001F00040A6AAAA162626262626262626262A002F
+:100200009AAAAAAA1A2A2A2A2A2A2A2A2A2A2A6A2E
+:1002100095A6AAAA2626262A2A2A2A2A2A2A2A6627
+:1002200095A6AAAA262626262A2A2A2A2A262A661F
+:1002300095A6AAAA1626262626262A2626262A662F
+:1002400095A6AAAA1626262626262A2626262A661F
+:1002500095A6AAAA1626262626262A2626262A660F
+:1002600095A6AAAA1626262626262A2626262A66FF
+:1002700095A6AAAA1626262626262A2626262A66EF
+:1002800095A6AAAA1626262626262A2626262A66DF
+:1002900095A6AAAA1626262626262A2626262A66CF
+:1002A00095A6AAAA1626262626262A2626262A66BF
+:1002B00095A6AAAA1626262626262A2626262A66AF
+:1002C00095A6AAAA1626262626262A2626262A669F
+:1002D00095A6AAAA16162626262A2A2A2A262A6693
+:1002E00095A6AAAA1616262626262A2626262A668F
+:1002F00015A6AAAA162626262626262626262A5504
+:100300009AAAAAAA2A2A2A2A2A2A2A2A2A2A2A6A1D
+:1003100095AAAAAA2626262A2A2A2A2A2A2A2A6622
+:1003200095AAAAAA262626262A2A2A2A2A2A2A6616
+:1003300095AAAAAA16262626262A2A2A2A262A661E
+:1003400095AAAAAA16262626262A2A2A2A262A660E
+:1003500095AAAAAA16262626262A2A2A2A262A66FE
+:1003600095AAAAAA16262626262A2A2A2A262A66EE
+:1003700095AAAAAA16262626262A2A2A2A262A66DE
+:1003800095AAAAAA1626262626262A2626262A66DA
+:1003900095AAAAAA1626262626262A2626262A66CA
+:1003A00095AAAAAA1626262626262A2626262A66BA
+:1003B00095AAAAAA1626262626262A2626262A66AA
+:1003C00095AAAAAA1626262626262A2626262A669A
+:1003D00095AAAAAA161626262A2A2A2A2A262A668A
+:1003E00095AAAAAA16162626262A2A2A2A262A667E
+:1003F00015AAAAAA1626262626262A2626262A55FB
+:1004000000AAAAAA2A2A2A2A2A2A2A2A2A2A2A0020
+:1004100000AAAAAA26262A2A2A2A2A2A2A2A2A0018
+:1004200000AAAAAA1626262A2A2A2A2A2A2A2A001C
+:1004300000AAAAAA162626262A2A2A2A2A262A0014
+:1004400000AAAAAA162626262A2A2A2A2A262A0004
+:1004500000AAAAAA162626262A2A2A2A2A262A00F4
+:1004600000AAAAAA161626262A2A2A2A2A262A00F4
+:1004700000AAAAAA161626262A2A2A2A2A262A00E4
+:1004800000AAAAAA16162626262A2A2A2A262A00D8
+:1004900000AAAAAA16162626262A2A2A2A262A00C8
+:1004A00000AAAAAA16162626262A2A2A2A262A00B8
+:1004B00000AAAAAA16162626262A2A2A2A262A00A8
+:1004C00000AAAAAA16162626262A2A2A2A262A0098
+:1004D00000AAAAAA161626262A2A2A2A2A2A2A0080
+:1004E00000AAAAAA161616262A2A2A2A2A262A0084
+:1004F00040AAAAAA1616262626262A2626262A0034
+:1005000000AAAAAAAA2A2A2A2A2A2A2A2A2A2A009F
+:10051000009AAAAAA62A2A2A2A2A2A2A2A2A2A00A3
+:10052000009AAAAA9626262A2A2A2A2A2A2A2A00AB
+:10053000009AAAAA962626262A2A2A2A2A2A2A009F
+:10054000009AAAAA962626262A2A2A2A2A2A2A008F
+:10055000009AAAAA961626262A2A2A2A2A2A2A008F
+:10056000009AAAAA961626262A2A2A2A2A2A2A007F
+:10057000009AAAAA961626262A2A2A2A2A262A0073
+:10058000009AAAAA961626262A2A2A2A2A262A0063
+:10059000009AAAAA961626262A2A2A2A2A262A0053
+:1005A000009AAAAA961626262A2A2A2A2A262A0043
+:1005B000009AAAAA961626262A2A2A2A2A262A0033
+:1005C000009AAAAA961626262A2A2A2A2A262A0023
+:1005D000009AAAAA9616162A2A2A2A2A2A2A2A001B
+:1005E000009AAAAA961616262A2A2A2A2A2A2A000F
+:1005F000409AAAAA96162626262A2A2A2A262A00B7
+:1006000095AAAAAAAA2A2A2A2A2A2A2A2A2A2A6A9F
+:10061000959AAAAA962A2A2A2A2A2A2A2A2A2A66B7
+:10062000959AAAAA96262A2A2A2A2A2A2A2A2A66AB
+:10063000959AAAAA9626262A2A2A2A2A2A2A2A669F
+:10064000959AAAAA9616262A2A2A2A2A2A2A2A669F
+:10065000959AAAAA9616262A2A2A2A2A2A2A2A668F
+:10066000959AAAAA9616262A2A2A2A2A2A2A2A667F
+:10067000959AAAAA9616262A2A2A2A2A2A2A2A666F
+:10068000959AAAAA961626262A2A2A2A2A2A2A6663
+:10069000959AAAAA961626262A2A2A2A2A2A2A6653
+:1006A000959AAAAA961626262A2A2A2A2A2A2A6643
+:1006B000959AAAAA961626262A2A2A2A2A2A2A6633
+:1006C000959AAAAA961626262A2A2A2A2A2A2A6623
+:1006D000959AAAAA9616162A2A2A2A2A2A2A2A661F
+:1006E000959AAAAA9616162A2A2A2A2A2A2A2A660F
+:1006F000159AAAAA961626262A2A2A2A2A262A5687
+:1007000095AAAAAAAAAA2A2A2A2A2A2A2A2A2A6A1E
+:10071000959AAAAA9AAA2A2A2A2A2A2A2A2A2A6632
+:10072000959AAAAA96AA2A2A2A2A2A2A2A2A2A6626
+:10073000959AAAAA9696262A2A2A2A2A2A2A2A662E
+:10074000959AAAAA9696262A2A2A2A2A2A2A2A661E
+:10075000959AAAAA9696262A2A2A2A2A2A2A2A660E
+:10076000959AAAAA9696162A2A2A2A2A2A2A2A660E
+:10077000959AAAAA9696162A2A2A2A2A2A2A2A66FE
+:10078000959AAAAA9696162A2A2A2A2A2A2A2A66EE
+:10079000959AAAAA9696162A2A2A2A2A2A2A2A66DE
+:1007A000959AAAAA9696162A2A2A2A2A2A2A2A66CE
+:1007B000959AAAAA9696162A2A2A2A2A2A2A2A66BE
+:1007C000959AAAAA9696162A2A2A2A2A2A2A2A66AE
+:1007D000959AAAAA96961A2A2A2A2A2A2A2A2A669A
+:1007E000959AAAAA9696161A2A2A2A2A2A2A2A669E
+:1007F000159AAAAA969616262A2A2A2A2A2A2A5612
+:1008000000AAAAAAAAAA2A2A2A2A2A2A2A2A2A001C
+:10081000009AAAAA9AAA2A2A2A2A2A2A2A2A2A002C
+:10082000009AAAAA96AA2A2A2A2A2A2A2A2A2A0020
+:10083000009AAAAA96962A2A2A2A2A2A2A2A2A0024
+:10084000009AAAAA96962A2A2A2A2A2A2A2A2A0014
+:10085000009AAAAA96961A2A2A2A2A2A2A2A2A0014
+:10086000009AAAAA96961A2A2A2A2A2A2A2A2A0004
+:10087000009AAAAA96961A2A2A2A2A2A2A2A2A00F4
+:10088000009AAAAA9696162A2A2A2A2A2A2A2A00E8
+:10089000009AAAAA9696162A2A2A2A2A2A2A2A00D8
+:1008A000009AAAAA9696162A2A2A2A2A2A2A2A00C8
+:1008B000009AAAAA9696162A2A2A2A2A2A2A2A00B8
+:1008C000009AAAAA9696162A2A2A2A2A2A2A2A00A8
+:1008D000009AAAAA969A1A1A2A2A2A2A2A2A2A00A0
+:1008E000009AAAAA96961A1A2A2A2A2A2A2A2A0094
+:1008F000409AAAAA9696162A2A2A2A2A2A2A2A0038
+:1009000000AAAAAAAAAAAA2A2A2A2A2A2A2A2A009B
+:10091000009A9AAA9AAAAA2A2A2A2A2A2A2A2A00BB
+:10092000009A9AAA9A9AAA2A2A2A2A2A2A2A2A00BB
+:10093000009A9AAA969AAA2A2A2A2A2A2A2A2A00AF
+:10094000009A9AAA969A9A2A2A2A2A2A2A2A2A00AF
+:10095000009A9AAA969A9A2A2A2A2A2A2A2A2A009F
+:10096000009A9AAA969A9A2A2A2A2A2A2A2A2A008F
+:10097000009A9AAA969A9A2A2A2A2A2A2A2A2A007F
+:10098000009A9AAA96969A2A2A2A2A2A2A2A2A0073
+:10099000009A9AAA96969A2A2A2A2A2A2A2A2A0063
+:1009A000009A9AAA96969A2A2A2A2A2A2A2A2A0053
+:1009B000009A9AAA96969A2A2A2A2A2A2A2A2A0043
+:1009C000009A9AAA96969A2A2A2A2A2A2A2A2A0033
+:1009D000009A9AAA969A9A1A2A2A2A2A2A2A2A002F
+:1009E000009A9AAA969A9A1A2A2A2A2A2A2A2A001F
+:1009F000409A9AAA9696962A2A2A2A2A2A2A2A00C7
+:100A000095AAAAAAAAAAAAAA2A2A2A2A2A2A2A6A1B
+:100A1000959A9AAA9AAAAAAA2A2A2A2A2A2A2A6A3B
+:100A2000959A9AAA9A9AAAAA2A2A2A2A2A2A2A6A3B
+:100A3000959A9AAA969A9AAA2A2A2A2A2A2A2A6A3F
+:100A4000959A9AAA969A9AAA2A2A2A2A2A2A2A6A2F
+:100A5000959A9AAA969A9AAA2A2A2A2A2A2A2A6A1F
+:100A6000959A9AAA969A9A9A2A2A2A2A2A2A2A6A1F
+:100A7000959A9AAA969A9A9A2A2A2A2A2A2A2A6A0F
+:100A8000959A9AAA969A9A9A2A2A2A2A2A2A2A6AFF
+:100A9000959A9AAA969A9A9A2A2A2A2A2A2A2A6AEF
+:100AA000959A9AAA969A9A9A2A2A2A2A2A2A2A6ADF
+:100AB000959A9AAA969A9A9A2A2A2A2A2A2A2A6ACF
+:100AC000959A9AAA969A9A9A2A2A2A2A2A2A2A6ABF
+:100AD000959A9AAA9A9A9A9A2A2A2A2A2A2A2A6AAB
+:100AE000959A9AAA969A9A9A1A2A2A2A2A2A2A6AAF
+:100AF000159A9AAA96969A9A2A2A2A2A2A2A2A5A23
+:100B000095AAAAAAAAAAAAAAAA2A2A2A2A2A2A6A9A
+:100B1000959A9AAA9A9AAAAAAA2A2A2A2A2A2A6ACA
+:100B2000959A9AAA9A9AAAAAAA2A2A2A2A2A2A6ABA
+:100B3000959A9AAA9A9A9AAAAA2A2A2A2A2A2A6ABA
+:100B4000959A9AAA9A9A9AAAAA2A2A2A2A2A2A6AAA
+:100B5000959A9AAA9A9A9A9AAA2A2A2A2A2A2A6AAA
+:100B6000959A9AAA9A9A9A9AAA2A2A2A2A2A2A6A9A
+:100B7000959A9AAA9A9A9A9AAA2A2A2A2A2A2A6A8A
+:100B8000959A9AAA969A9A9AAA2A2A2A2A2A2A6A7E
+:100B9000959A9AAA969A9A9AAA2A2A2A2A2A2A6A6E
+:100BA000959A9AAA969A9A9AAA2A2A2A2A2A2A6A5E
+:100BB000959A9AAA969A9A9AAA2A2A2A2A2A2A6A4E
+:100BC000959A9AAA969A9A9AAA2A2A2A2A2A2A6A3E
+:100BD000959A9AAA9A9A9A9A9A2A2A2A2A2A2A6A3A
+:100BE000959A9AAA9A9A9A9A9A2A2A2A2A2A2A6A2A
+:100BF000159A9AAA969A9A9AAA2A2A2A2A2A2A5A9E
+:100C000040A9A9A9AAA8A8A8A8282828282828006F
+:100C1000409999A99A98A8A8A8282828282828009F
+:100C2000409999A99A9898A8A8282828282828009F
+:100C3000409999A99A9898A8A8282828282828008F
+:100C4000409999A99A989898A8282828282828008F
+:100C5000409999A99A989898A8282828282828007F
+:100C6000409999A99A989898A8282828282828006F
+:100C7000409999A99A989898A8282828282828005F
+:100C8000409999A99A989898A8282828282828004F
+:100C9000409999A99A989898A8282828282828003F
+:100CA000409999A99A989898A8282828282828002F
+:100CB000409999A99A989898A8282828282828001F
+:100CC000409999A99A989898A8282828282828000F
+:100CD000409999A99A98989898282828282828000F
+:100CE000409999A99A98989898182828282828000F
+:100CF000409999A996989898A828282828282800E3
+:100D000040A9A9A9AAA8A8A8A8A82828A82828006E
+:100D1000409999A99A98A8A8A8A82828A82828009E
+:100D2000409999A99A9898A8A8A82828A82828009E
+:100D3000409999A99A989898A8A82828A82828009E
+:100D4000409999A99A989898A8A82828A82828008E
+:100D5000409999A99A989898A8A82828A82828007E
+:100D6000409999A99A98989898A82828A82828007E
+:100D7000409999A99A98989898A82828A82828006E
+:100D8000409999A99A98989898A82828A82828005E
+:100D9000409999A99A98989898A82828A82828004E
+:100DA000409999A99A98989898A82828A82828003E
+:100DB000409999A99A98989898A82828A82828002E
+:100DC000409999A99A98989898A82828A82828001E
+:100DD000409999A99A98989898982828A82828001E
+:100DE000409999A99A98989898982828A82828000E
+:100DF000409999A99A98989898A82828A8282800EE
+:100E000015A9A9A9AAAAA8A8A8A8A8282828286A2C
+:100E1000159999A99A9A98A8A8A8A8282828286A6C
+:100E2000159999A99A9A98A8A8A8A8282828286A5C
+:100E3000159999A99A9A9898A8A8A8282828286A5C
+:100E4000159999A99A9A9898A8A8A8282828286A4C
+:100E5000159999A99A9A989898A8A8282828286A4C
+:100E6000159999A99A9A989898A8A8282828286A3C
+:100E7000159999A99A9A989898A8A8282828286A2C
+:100E8000159999A99A9A989898A8A8282828286A1C
+:100E9000159999A99A9A989898A8A8282828286A0C
+:100EA000159999A99A9A989898A8A8282828286AFC
+:100EB000159999A99A9A989898A8A8282828286AEC
+:100EC000159999A99A9A989898A8A8282828286ADC
+:100ED000159999A99A9A98989898A8282828286ADC
+:100EE000159999A99A9A9898989888282828286AEC
+:100EF000159999A99A9A989898A8A8282828286AAC
+:100F000015A9A9A9AAAAA8A8A8A8A8A82828286AAB
+:100F1000159999999A9A98A8A8A8A8A82828286AFB
+:100F2000159999999A9A9898A8A8A8A82828286AFB
+:100F3000159999999A9A9898A8A8A8A82828286AEB
+:100F4000159999999A9A989898A8A8A82828286AEB
+:100F5000159999999A9A989898A8A8A82828286ADB
+:100F6000159999999A9A98989898A8A82828286ADB
+:100F7000159999999A9A98989898A8A82828286ACB
+:100F8000159999999A9A98989898A8A82828286ABB
+:100F9000159999999A9A98989898A8A82828286AAB
+:100FA000159999999A9A98989898A8A82828286A9B
+:100FB000159999999A9A98989898A8A82828286A8B
+:100FC000159999999A9A98989898A8A82828286A7B
+:100FD000159999999A9A9898989888A82828286A8B
+:100FE000159999999A9A9898989898A82828286A6B
+:100FF000159999999A9A98989898A8A82828286A4B
+:1010000040A9A9A9AAAAAAA8A8A8A8A8A8A82800E7
+:10101000409999999A9A9AA8A8A8A8A8A8A8280037
+:10102000409999999A9A9A98A8A8A8A8A8A8280037
+:10103000409999999A9A9A9898A8A8A8A8A8280037
+:10104000409999999A9A9A9898A8A8A8A8A8280027
+:10105000409999999A9A9A989898A8A8A8A8280027
+:10106000409999999A9A9A989898A8A8A8A8280017
+:10107000409999999A9A9A989898A8A8A8A8280007
+:10108000409999999A9A9A989898A8A8A8A82800F7
+:10109000409999999A9A9A989898A8A8A8A82800E7
+:1010A000409999999A9A9A989898A8A8A8A82800D7
+:1010B000409999999A9A9A989898A8A8A8A82800C7
+:1010C000409999999A9A9A989898A8A8A8A82800B7
+:1010D000409999999A9A9A98989898A8A8A82800B7
+:1010E000409999999A9A9A9898989898A8A82800B7
+:1010F000409999999A9A9A989898A8A8A8A8280087
+:10110000406969696A6A6A686868686868686800E6
+:10111000405959595A5A5A58686868686868680046
+:10112000405959595A5A5A58686868686868680036
+:10113000405959595A5A5A58586868686868680036
+:10114000405959595A5A5A58585868686868680036
+:10115000405959595A5A5A58585868686868680026
+:10116000405959595A5A5A58585848686868680036
+:10117000405959595A5A5A58585848686868680026
+:10118000405959595A5A5A58585848686868680016
+:10119000405959595A5A5A58585848686868680006
+:1011A000405959595A5A5A585858486868686800F6
+:1011B000405959595A5A5A585858486868686800E6
+:1011C000405959595A5A5A585858486868686800D6
+:1011D000405959595A5A5A585858585868686800C6
+:1011E000405959595A5A5A585858585868686800B6
+:1011F000405959595A5A5A585858486868686800A6
+:10120000156969696A6A6A6A686868686868686AA4
+:10121000155959595A5A5A5A686868686868686A04
+:10122000155959595A5A5A5A586868686868686A04
+:10123000155959595A5A5A5A585868686868686A04
+:10124000155959595A5A5A5A585868686868686AF4
+:10125000155959595A5A5A5A585848686868686A04
+:10126000155959595A5A5A5A585858686868686AE4
+:10127000155959595A5A5A5A585858686868686AD4
+:10128000155959595A5A5A5A585858686868686AC4
+:10129000155959595A5A5A5A585858686868686AB4
+:1012A000155959595A5A5A5A585858686868686AA4
+:1012B000155959595A5A5A5A585858686868686A94
+:1012C000155959595A5A5A5A585858686868686A84
+:1012D000155959595A5A5A5A585858586868686A84
+:1012E000155959595A5A5A5A585858585868686A84
+:1012F000155959595A5A5A5A585858686868686A54
+:10130000156969696A6A6A6A6A6868686868686AA1
+:10131000155959595A5A5A5A6A6868686868686A01
+:10132000155959595A5A5A5A5A6868686868686A01
+:10133000155959595A5A5A5A5A5868686868686A01
+:10134000155959595A5A5A5A5A5848686868686A11
+:10135000155959595A5A5A5A5A5858686868686AF1
+:10136000155959595A5A5A5A5A5858586868686AF1
+:10137000155959595A5A5A5A5A5858586868686AE1
+:10138000155959595A5A5A5A5A5858586868686AD1
+:10139000155959595A5A5A5A5A5858586868686AC1
+:1013A000155959595A5A5A5A5A5858586868686AB1
+:1013B000155959595A5A5A5A5A5858586868686AA1
+:1013C000155959595A5A5A5A5A5858586868686A91
+:1013D000155959595A5A5A5A5A5858585868686A91
+:1013E000155959595A5A5A5A5A5858585868686A81
+:1013F000155959595A5A5A5A5A5858586868686A61
+:10140000406969696A6A6A6A6A686868686868409F
+:10141000405959595A5A5A5A5A686868686868400F
+:10142000405959595A5A5A5A5A586868686868400F
+:10143000405959595A5A5A5A5A584868686868401F
+:10144000405959595A5A5A5A5A58586868686840FF
+:10145000405959595A5A5A5A5A58585868686840FF
+:10146000405959595A5A5A5A5A58585868686840EF
+:10147000405959595A5A5A5A5A58585868686840DF
+:10148000405959595A5A5A5A5A58585868686840CF
+:10149000405959595A5A5A5A5A58585868686840BF
+:1014A000405959595A5A5A5A5A58585868686840AF
+:1014B000405959595A5A5A5A5A585858686868409F
+:1014C000405959595A5A5A5A5A585858686868408F
+:1014D000405959595A5A5A5A5A585858586868408F
+:1014E000405959595A5A5A5A5A585858586868407F
+:1014F000405959595A5A5A5A5A585858686868405F
+:10150000406969696A6A6A6A6A6A6868686868409C
+:10151000405959595A5A5A5A5A6A6868686868400C
+:10152000405959595A5A5A5A5A5A6868686868400C
+:10153000405959595A5A5A5A5A5A5868686868400C
+:10154000405959595A5A5A5A5A5A5858686868400C
+:10155000405959595A5A5A5A5A5A585868686840FC
+:10156000405959595A5A5A5A5A5A585858686840FC
+:10157000405959595A5A5A5A5A5A585858686840EC
+:10158000405959595A5A5A5A5A5A585858686840DC
+:10159000405959595A5A5A5A5A5A585858686840CC
+:1015A000405959595A5A5A5A5A5A585858686840BC
+:1015B000405959595A5A5A5A5A5A585858686840AC
+:1015C000405959595A5A5A5A5A5A5858586868409C
+:1015D000405959595A5A5A5A5A5A5858586868408C
+:1015E000405959595A5A5A5A5A5A5858586868407C
+:1015F000405959595A5A5A5A5A5A5858586868406C
+:10160000156969696A6A6A6A6A6A6868686868AA5C
+:10161000155959595A5A5A5A5A5A6868686868AADC
+:10162000155959595A5A5A5A5A5A4868686868AAEC
+:10163000155959595A5A5A5A5A5A5858686868AADC
+:10164000155959595A5A5A5A5A5A5858686868AACC
+:10165000155959595A5A5A5A5A5A5858586868AACC
+:10166000155959595A5A5A5A5A5A5858586868AABC
+:10167000155959595A5A5A5A5A5A5858586868AAAC
+:10168000155959595A5A5A5A5A5A5858586868AA9C
+:10169000155959595A5A5A5A5A5A5858586868AA8C
+:1016A000155959595A5A5A5A5A5A5858586868AA7C
+:1016B000155959595A5A5A5A5A5A5858586868AA6C
+:1016C000155959595A5A5A5A5A5A5858586868AA5C
+:1016D000155959595A5A5A5A5A5A5858586868AA4C
+:1016E000155959595A5A5A5A5A5A5858585868AA4C
+:1016F000155959595A5A5A5A5A5A5858586868AA2C
+:10170000156969696A6A6A6A6A6A6A68686868AA59
+:10171000155959595A5A5A5A5A5A6A68686868AAD9
+:10172000155959595A5A5A5A5A5A5A68686868AAD9
+:10173000155959595A5A5A5A5A5A5A58686868AAD9
+:10174000155959595A5A5A5A5A5A5A58586868AAD9
+:10175000155959595A5A5A5A5A5A5A58586868AAC9
+:10176000155959595A5A5A5A5A5A5A58586868AAB9
+:10177000155959595A5A5A5A5A5A5A58586868AAA9
+:10178000155959595A5A5A5A5A5A5A58586868AA99
+:10179000155959595A5A5A5A5A5A5A58586868AA89
+:1017A000155959595A5A5A5A5A5A5A58586868AA79
+:1017B000155959595A5A5A5A5A5A5A58586868AA69
+:1017C000155959595A5A5A5A5A5A5A58586868AA59
+:1017D000155959595A5A5A5A5A5A5A58585868AA59
+:1017E000155959595A5A5A5A5A5A5A58585868AA49
+:1017F000155959595A5A5A5A5A5A5A58586868AA29
+:10180000406565656A6262626262626060606080B3
+:10181000405555555A525252525242606060608053
+:10182000405555555A525252525252506060608043
+:10183000405555555A525252525252505060608043
+:10184000405555555A525252525252505060608033
+:10185000405555555A525252525252505060608023
+:10186000405555555A525252525252505060608013
+:10187000405555555A525252525252505060608003
+:10188000405555555A5252525252525050606080F3
+:10189000405555555A5252525252525050606080E3
+:1018A000405555555A5252525252525050606080D3
+:1018B000405555555A5252525252525050606080C3
+:1018C000405555555A5252525252525050606080B3
+:1018D000405555555A5252525252525050506080B3
+:1018E000405555555A5252525252525050506080A3
+:1018F000405555555A525252525252505060608083
+:10190000406565656A6262626262626260606080B0
+:10191000405555555A525252525252626060608040
+:10192000405555555A525252525252526060608040
+:10193000405555555A525252525252525060608040
+:10194000405555555A525252525252525060608030
+:10195000405555555A525252525252525060608020
+:10196000405555555A525252525252525050608020
+:10197000405555555A525252525252525050608010
+:10198000405555555A525252525252525050608000
+:10199000405555555A5252525252525250506080F0
+:1019A000405555555A5252525252525250506080E0
+:1019B000405555555A5252525252525250506080D0
+:1019C000405555555A5252525252525250506080C0
+:1019D000405555555A5252525252525250506080B0
+:1019E000405555555A5252525252525250506080A0
+:1019F000405555555A525252525252525050608090
+:101A0000156565656A6A6262626262626060602A28
+:101A1000155555555A5A5252525252526060602AC8
+:101A2000155555555A5A5252525252525060602AC8
+:101A3000155555555A5A5252525252525060602AB8
+:101A4000155555555A5A5252525252525060602AA8
+:101A5000155555555A5A5252525252525050602AA8
+:101A6000155555555A5A5252525252525050602A98
+:101A7000155555555A5A5252525252525050602A88
+:101A8000155555555A5A5252525252525050602A78
+:101A9000155555555A5A5252525252525050602A68
+:101AA000155555555A5A5252525252525050602A58
+:101AB000155555555A5A5252525252525050602A48
+:101AC000155555555A5A5252525252525050602A38
+:101AD000155555555A5A5252525252525050602A28
+:101AE000155555555A5A5252525252525050602A18
+:101AF000155555555A5A5252525252525050602A08
+:101B0000156565656A6A6262626262626260602A25
+:101B1000155555555A5A5252525252526260602AC5
+:101B2000155555555A5A5252525252525260602AC5
+:101B3000155555555A5A5252525252525260602AB5
+:101B4000155555555A5A5252525252525250602AB5
+:101B5000155555555A5A5252525252525250602AA5
+:101B6000155555555A5A5252525252525250602A95
+:101B7000155555555A5A5252525252525250602A85
+:101B8000155555555A5A5252525252525250602A75
+:101B9000155555555A5A5252525252525250602A65
+:101BA000155555555A5A5252525252525250602A55
+:101BB000155555555A5A5252525252525250602A45
+:101BC000155555555A5A5252525252525250602A35
+:101BD000155555555A5A5252525252525250602A25
+:101BE000155555555A5A5252525252525250602A15
+:101BF000155555555A5A5252525252525250602A05
+:101C0000406565656A6A6A6262626262626060809B
+:101C1000405555555A5A5A5252525252526060804B
+:101C2000405555555A5A5A5252525252526060803B
+:101C3000405555555A5A5A5252525252525060803B
+:101C4000405555555A5A5A5252525252525060802B
+:101C5000405555555A5A5A5252525252525060801B
+:101C6000405555555A5A5A5252525252525060800B
+:101C7000405555555A5A5A525252525252506080FB
+:101C8000405555555A5A5A525252525252506080EB
+:101C9000405555555A5A5A525252525252506080DB
+:101CA000405555555A5A5A525252525252506080CB
+:101CB000405555555A5A5A525252525252506080BB
+:101CC000405555555A5A5A525252525252506080AB
+:101CD000405555555A5A5A5252525252525060809B
+:101CE000405555555A5A5A5252525252525060808B
+:101CF000405555555A5A5A5252525252525060807B
+:101D0000406565656A6A6A62626262626262608098
+:101D1000405555555A5A5A52525252525262608048
+:101D2000405555555A5A5A52525252525262608038
+:101D3000405555555A5A5A52525252525252608038
+:101D4000405555555A5A5A52525252525252608028
+:101D5000405555555A5A5A52525252525252608018
+:101D6000405555555A5A5A52525252525252608008
+:101D7000405555555A5A5A525252525252526080F8
+:101D8000405555555A5A5A525252525252526080E8
+:101D9000405555555A5A5A525252525252526080D8
+:101DA000405555555A5A5A525252525252526080C8
+:101DB000405555555A5A5A525252525252526080B8
+:101DC000405555555A5A5A525252525252526080A8
+:101DD000405555555A5A5A52525252525252608098
+:101DE000405555555A5A5A52525252525252608088
+:101DF000405555555A5A5A52525252525252608078
+:101E00001565656569696969616161616161602A1A
+:101E10001555555559595959515151515161602ACA
+:101E20001555555559595959515151515151602ACA
+:101E30001555555559595959515151515151602ABA
+:101E40001555555559595959515151515151502ABA
+:101E50001555555559595959515151515151502AAA
+:101E60001555555559595959515151515151502A9A
+:101E70001555555559595959515151515151502A8A
+:101E80001555555559595959515151515151502A7A
+:101E90001555555559595959515151515151502A6A
+:101EA0001555555559595959515151515151502A5A
+:101EB0001555555559595959515151515151502A4A
+:101EC0001555555559595959515151515151502A3A
+:101ED0001555555559595959515151515151502A2A
+:101EE0001555555559595959515151515151502A1A
+:101EF0001555555559595959515151515151502A0A
+:101F00001565656569696969696161616160602A12
+:101F10001555555559595959595151515160502AD2
+:101F20001555555559595959595151515150502AD2
+:101F30001555555559595959595151515150502AC2
+:101F40001555555559595959595151515150502AB2
+:101F50001555555559595959595151515150502AA2
+:101F60001555555559595959595151515150502A92
+:101F70001555555559595959595151515150502A82
+:101F80001555555559595959595151515150502A72
+:101F90001555555559595959595151515150502A62
+:101FA0001555555559595959595151515150502A52
+:101FB0001555555559595959595151515150502A42
+:101FC0001555555559595959595151515150502A32
+:101FD0001555555559595959595151515150502A22
+:101FE0001555555559595959595151515150502A12
+:101FF0001555555559595959595151515150502A02
+:102000004055555569494949494141414140408000
+:1020100040555554694949494949414140404080EA
+:1020200040555555694949494949414140404080D9
+:1020300040555555694949494949414140404080C9
+:1020400040555555694949494949414140404080B9
+:1020500040555555694949494949414140404080A9
+:102060004055555569494949494941414040408099
+:102070004055555569494949494941414040408089
+:102080004055555569494949494941414040408079
+:102090004055555569494949494941414040408069
+:1020A0004055555569494949494941414040408059
+:1020B0004055555569494949494941414040408049
+:1020C0004055555569494949494941414040408039
+:1020D0004055555569494949494941414040408029
+:1020E0004055555569494949494941414040408019
+:1020F0004055555569494949494941414040408009
+:1021000040555555694949494949414140404080F8
+:1021100015959594A9A98989898981818080802ACA
+:1021200015959595A9A98989898981818080802AB9
+:1021300015959595A9A98989898981818080802AA9
+:1021400015959595A9A98989898981818080802A99
+:1021500015959595A9A98989898981818080802A89
+:1021600015959595A9A98989898981818080802A79
+:1021700015959595A9A98989898981818080802A69
+:1021800015959595A9A98989898981818080802A59
+:1021900015959595A9A98989898981818080802A49
+:1021A00015959595A9A98989898981818080802A39
+:1021B00015959595A9A98989898981818080802A29
+:1021C00015959595A9A98989898981818080802A19
+:1021D00015959595A9A98989898981818080802A09
+:1021E00015959595A9A98989898981818080802AF9
+:1021F00015959595A9A98989898981818080802AE9
+:1022000015959595A9A98989898981818080802AD8
+:1022100015959594A9A98989898989808080802AC2
+:1022200015959595A9A98989898989808080802AB1
+:1022300015959595A9A98989898989808080802AA1
+:1022400015959595A9A98989898989808080802A91
+:1022500015959595A9A98989898989808080802A81
+:1022600015959595A9A98989898989808080802A71
+:1022700015959595A9A98989898989808080802A61
+:1022800015959595A9A98989898989808080802A51
+:1022900015959595A9A98989898989808080802A41
+:1022A00015959595A9A98989898989808080802A31
+:1022B00015959595A9A98989898989808080802A21
+:1022C00015959595A9A98989898989808080802A11
+:1022D00015959595A9A98989898989808080802A01
+:1022E00015959595A9A98989898989808080802AF1
+:1022F00015959595A9A98989898989808080802AE1
+:1023000015959595A9A98989898989808080802AD0
+:1023100040959594A9A9A989898989808080808020
+:1023200040959595A9A9A98989898980808080800F
+:1023300040959595A9A9A9898989898080808080FF
+:1023400040959595A9A9A9898989898080808080EF
+:1023500040959595A9A9A9898989898080808080DF
+:1023600040959595A9A9A9898989898080808080CF
+:1023700040959595A9A9A9898989898080808080BF
+:1023800040959595A9A9A9898989898080808080AF
+:1023900040959595A9A9A98989898980808080809F
+:1023A00040959595A9A9A98989898980808080808F
+:1023B00040959595A9A9A98989898980808080807F
+:1023C00040959595A9A9A98989898980808080806F
+:1023D00040959595A9A9A98989898980808080805F
+:1023E00040959595A9A9A98989898980808080804F
+:1023F00040959595A9A9A98989898980808080803F
+:1024000040959595A9A9A98989898980808080802E
+:1024100040959594A9A9A989898988888080808018
+:1024200040959595A9A9A989898988888080808007
+:1024300040959595A9A9A9898989888880808080F7
+:1024400040959595A9A9A9898989888880808080E7
+:1024500040959595A9A9A9898989888880808080D7
+:1024600040959595A9A9A9898989888880808080C7
+:1024700040959595A9A9A9898989888880808080B7
+:1024800040959595A9A9A9898989888880808080A7
+:1024900040959595A9A9A989898988888080808097
+:1024A00040959595A9A9A989898988888080808087
+:1024B00040959595A9A9A989898988888080808077
+:1024C00040959595A9A9A989898988888080808067
+:1024D00040959595A9A9A989898988888080808057
+:1024E00040959595A9A9A989898988888080808047
+:1024F00040959595A9A9A989898988888080808037
+:1025000040959595A9A9A989898988888080808026
+:1025100015959494A9A9A9A9898988888080802A79
+:1025200015959594A9A9A9A9898988888080802A68
+:1025300015959594A9A9A9A9898988888080802A58
+:1025400015959594A9A9A9A9898988888080802A48
+:1025500015959594A9A9A9A9898988888080802A38
+:1025600015959594A9A9A9A9898988888080802A28
+:1025700015959594A9A9A9A9898988888080802A18
+:1025800015959594A9A9A9A9898988888080802A08
+:1025900015959594A9A9A9A9898988888080802AF8
+:1025A00015959594A9A9A9A9898988888080802AE8
+:1025B00015959594A9A9A9A9898988888080802AD8
+:1025C00015959594A9A9A9A9898988888080802AC8
+:1025D00015959594A9A9A9A9898988888080802AB8
+:1025E00015959594A9A9A9A9898988888080802AA8
+:1025F00015959594A9A9A9A9898988888080802A98
+:1026000015959594A9A9A9A9898988888080802A87
+:1026100015959494A9A9A9A9898888888880802A71
+:1026200015959594A9A9A9A9898888888880802A60
+:1026300015959594A9A9A9A9898888888880802A50
+:1026400015959594A9A9A9A9898888888880802A40
+:1026500015959594A9A9A9A9898888888880802A30
+:1026600015959594A9A9A9A9898888888880802A20
+:1026700015959594A9A9A9A9898888888880802A10
+:1026800015959594A9A9A9A9898888888880802A00
+:1026900015959594A9A9A9A9898888888880802AF0
+:1026A00015959594A9A9A9A9898888888880802AE0
+:1026B00015959594A9A9A9A9898888888880802AD0
+:1026C00015959594A9A9A9A9898888888880802AC0
+:1026D00015959594A9A9A9A9898888888880802AB0
+:1026E00015959594A9A9A9A9898888888880802AA0
+:1026F00015959594A9A9A9A9898888888880802A90
+:1027000015959594A9A9A9A9898888888880802A7F
+:1027100040959494A9A9A9A9A988888888808080CF
+:1027200040959594A9A9A9A9A988888888808080BE
+:1027300040959594A9A9A9A9A988888888808080AE
+:1027400040959594A9A9A9A9A9888888888080809E
+:1027500040959594A9A9A9A9A9888888888080808E
+:1027600040959594A9A9A9A9A9888888888080807E
+:1027700040959594A9A9A9A9A9888888888080806E
+:1027800040959594A9A9A9A9A9888888888080805E
+:1027900040959594A9A9A9A9A9888888888080804E
+:1027A00040959594A9A9A9A9A9888888888080803E
+:1027B00040959594A9A9A9A9A9888888888080802E
+:1027C00040959594A9A9A9A9A9888888888080801E
+:1027D00040959594A9A9A9A9A9888888888080800E
+:1027E00040959594A9A9A9A9A988888888808080FE
+:1027F00040959594A9A9A9A9A988888888808080EE
+:1028000040959594A9A9A9A9A988888888808080DD
+:1028100040959494A9A9A9A9A888888888888080C7
+:1028200040959594A9A9A9A9A888888888888080B6
+:1028300040959594A9A9A9A9A888888888888080A6
+:1028400040959594A9A9A9A9A88888888888808096
+:1028500040959594A9A9A9A9A88888888888808086
+:1028600040959594A9A9A9A9A88888888888808076
+:1028700040959594A9A9A9A9A88888888888808066
+:1028800040959594A9A9A9A9A88888888888808056
+:1028900040959594A9A9A9A9A88888888888808046
+:1028A00040959594A9A9A9A9A88888888888808036
+:1028B00040959594A9A9A9A9A88888888888808026
+:1028C00040959594A9A9A9A9A88888888888808016
+:1028D00040959594A9A9A9A9A88888888888808006
+:1028E00040959594A9A9A9A9A888888888888080F6
+:1028F00040959594A9A9A9A9A888888888888080E6
+:1029000040959594A9A9A9A9A888888888888080D5
+:1029100015959494A5A5A5A4A4A484848484802A50
+:1029200015959594A5A5A5A4A4A484848484802A3F
+:1029300015959594A5A5A5A4A4A484848484802A2F
+:1029400015959594A5A5A5A4A4A484848484802A1F
+:1029500015959594A5A5A5A4A4A484848484802A0F
+:1029600015959594A5A5A5A4A4A484848484802AFF
+:1029700015959594A5A5A5A4A4A484848484802AEF
+:1029800015959594A5A5A5A4A4A484848484802ADF
+:1029900015959594A5A5A5A4A4A484848484802ACF
+:1029A00015959594A5A5A5A4A4A484848484802ABF
+:1029B00015959594A5A5A5A4A4A484848484802AAF
+:1029C00015959594A5A5A5A4A4A484848484802A9F
+:1029D00015959594A5A5A5A4A4A484848484802A8F
+:1029E00015959594A5A5A5A4A4A484848484802A7F
+:1029F00015959594A5A5A5A4A4A484848484802A6F
+:102A000015959594A5A5A5A4A4A484848484802A5E
+:102A100015959494A5A5A5A4A4A484848480802A53
+:102A200040959494A5A5A4A4A4A4A48484808080A3
+:102A300040949494A5A5A4A4A4A4A4848080808098
+:102A400040959494A5A5A4A4A4A4A4848080808087
+:102A500040959494A5A5A4A4A4A4A4848080808077
+:102A600040959494A5A5A4A4A4A4A4848080808067
+:102A700040959494A5A5A4A4A4A4A4848080808057
+:102A800040959494A5A5A4A4A4A4A4848080808047
+:102A900040959494A5A5A4A4A4A4A4848080808037
+:102AA00040959494A5A5A4A4A4A4A4848080808027
+:102AB00040959494A5A5A4A4A4A4A4848080808017
+:102AC00040959494A5A5A4A4A4A4A4848080808007
+:102AD00040959494A5A5A4A4A4A4A48480808080F7
+:102AE00040959494A5A5A4A4A4A4A48480808080E7
+:102AF00040959494A5A5A4A4A4A4A48480808080D7
+:102B000040959494A5A5A4A4A4A4A48480808080C6
+:102B100040959494A5A5A4A4A4A4A48480808080B6
+:102B200040959494A5A5A4A4A4A4A48480808080A6
+:102B300015949494A5A4A4A4A4A4A4A48080802AF9
+:102B400015959494A5A4A4A4A4A4A4A48080802AE8
+:102B500015959494A5A4A4A4A4A4A4A48080802AD8
+:102B600015959494A5A4A4A4A4A4A4A48080802AC8
+:102B700015959494A5A4A4A4A4A4A4A48080802AB8
+:102B800015959494A5A4A4A4A4A4A4A48080802AA8
+:102B900015959494A5A4A4A4A4A4A4A48080802A98
+:102BA00015959494A5A4A4A4A4A4A4A48080802A88
+:102BB00015959494A5A4A4A4A4A4A4A48080802A78
+:102BC00015959494A5A4A4A4A4A4A4A48080802A68
+:102BD00015959494A5A4A4A4A4A4A4A48080802A58
+:102BE00015959494A5A4A4A4A4A4A4A48080802A48
+:102BF00015959494A5A4A4A4A4A4A4A48080802A38
+:102C000015959494A5A4A4A4A4A4A4A48080802A27
+:102C100015959494A5A4A4A4A4A4A4A48080802A17
+:102C200015959494A5A4A4A4A4A4A4A48080802A07
+:102C300015949494A5A4A4A4A4A4A4A08080802AFC
+:102C400015959494A5A4A4A4A4A4A4A08080802AEB
+:102C500015959494A5A4A4A4A4A4A4A08080802ADB
+:102C600015959494A5A4A4A4A4A4A4A08080802ACB
+:102C700015959494A5A4A4A4A4A4A4A08080802ABB
+:102C800015959494A5A4A4A4A4A4A4A08080802AAB
+:102C900015959494A5A4A4A4A4A4A4A08080802A9B
+:102CA00015959494A5A4A4A4A4A4A4A08080802A8B
+:102CB00015959494A5A4A4A4A4A4A4A08080802A7B
+:102CC00015959494A5A4A4A4A4A4A4A08080802A6B
+:102CD00015959494A5A4A4A4A4A4A4A08080802A5B
+:102CE00015959494A5A4A4A4A4A4A4A08080802A4B
+:102CF00015959494A5A4A4A4A4A4A4A08080802A3B
+:102D000015959494A5A4A4A4A4A4A4A08080802A2A
+:102D100015959494A5A4A4A4A4A4A4A08080802A1A
+:102D200015959494A5A4A4A4A4A4A4A08080802A0A
+:102D300040949494A4A4A4A4A4A4A4A0A08080805B
+:102D400043979797A7A7A7A7A7A7A3A3A38383831F
+:102D500014949494A4A4A4A4A4A4A0A0A0A08028A3
+:102D600014545454545454545450505050500028F7
+:102D700040545454545454545450505010000080F3
+:102D8000405454505454545450505010100000802B
+:102D900014545450545454505050101040000028B3
+:102DA0001454545054545450501010100000002823
+:102DB00040545450545450505010100000000080A3
+:102DC00040545050545450501010100000000080D7
+:102DD000145450505450501010100000000000289F
+:102DE00014545050545010101010000000000028CF
+:102DF0004050505050501010100000000000008053
+:102E00004050505050501010100000000000008042
+:102E10004050505050501010100000000000008032
+:102E20004050505050501010100000000000008022
+:102E30004050505050501010100000000000008012
+:102E40004050505050501010100000000000008002
+:102E500040505050505010101000000000000080F2
+:102E600040505050505010101000000000000080E2
+:102E700040505050505010101000000000000080D2
+:102E800040505050505010101000000000000080C2
+:102E900040505050505010101000000000000080B2
+:102EA00040505050505010101000000000000080A2
+:102EB0004050505050501010100000000000008092
+:102EC0004050505050501010100000000000008082
+:102ED0004050505050501010100000000000008072
+:102EE00040505050505010101000000000000000E2
+:102EF0004C5C5C4C5C1C1C1C1C0C0C0C0C0C0C8CE2
+:102F00004C5C5C4C5C1C1C1C1C0C0C0C0C0C0C8CD1
+:102F10004C5C5C4C5C1C1C1C1C0C0C0C0C0C0C8CC1
+:102F20004C5C5C4C5C1C1C1C1C0C0C0C0C0C0C8CB1
+:102F30004C5C5C4C5C1C1C1C1C0C0C0C0C0C0C8CA1
+:102F40004C5C5C4C5C1C1C1C1C0C0C0C0C0C0C8C91
+:102F50004C5C5C4C5C1C1C1C1C0C0C0C0C0C0C8C81
+:102F60004C5C5C4C5C1C1C1C1C0C0C0C0C0C0C8C71
+:102F70004C5C5C4C5C1C1C1C1C0C0C0C0C0C0C8C61
+:102F80004C5C5C4C5C1C1C1C1C0C0C0C0C0C0C8C51
+:102F90004C5C5C4C5C1C1C1C1C0C0C0C0C0C0C8C41
+:102FA0004C5C5C4C5C1C1C1C1C0C0C0C0C0C0C8C31
+:102FB0004C5C5C4C5C1C1C1C1C0C0C0C0C0C0C8C21
+:102FC0004C5C5C4C5C1C1C1C1C0C0C0C0C0C0C8C11
+:102FD0004C5C5C4C5C1C1C1C1C0C0C0C0C0C0C8C01
+:102FE0004C5C5C4C5C1C1C1C1C0C0C0C0C0C0C0C71
+:102FF0001050504050101010000000000000002041
+:103000001050504010101010000000000000002070
+:1030100040505040101010000000000000000080E0
+:1030200040505040101010000000000000000080D0
+:1030300040505040101010000000000000000080C0
+:1030400040505040101010000000000000000080B0
+:1030500040505040101010000000000000000080A0
+:103060004050504010101000000000000000008090
+:103070004050504010101000000000000000008080
+:103080004050504010101000000000000000008070
+:103090004050504010101000000000000000008060
+:1030A0004050504010101000000000000000008050
+:1030B0004050504010101000000000000000008040
+:1030C0004050504010101000000000000000008030
+:1030D0004050504010101000000000000000008020
+:1030E0004050504010101000000000000000008010
+:1030F0004050504010101000000000000000008000
+:10310000405050401010100000000000000000006F
+:1031100040504040101010000000000000000080EF
+:1031200040504040101010000000000000000080DF
+:1031300040504040101010000000000000000080CF
+:1031400040504040101010000000000000000080BF
+:1031500040504040101010000000000000000080AF
+:10316000405040401010100000000000000000809F
+:10317000405040401010100000000000000000808F
+:10318000405040401010100000000000000000807F
+:10319000405040401010100000000000000000806F
+:1031A000405040401010100000000000000000805F
+:1031B000405040401010100000000000000000804F
+:1031C000405040401010100000000000000000803F
+:1031D000405040401010100000000000000000802F
+:1031E000405040401010100000000000000000801F
+:1031F000405040401010100000000000000000800F
+:10320000405040401010100000000000000000007E
+:10321000105040401010000000000000000000208E
+:1032200010504000101000000000000000000020BE
+:10323000405000001000000000000000000000806E
+:10324000405000001000000000000000000000805E
+:10325000405000001000000000000000000000804E
+:10326000405000001000000000000000000000803E
+:10327000405000001000000000000000000000802E
+:10328000405000001000000000000000000000801E
+:10329000405000001000000000000000000000800E
+:1032A00040500000100000000000000000000080FE
+:1032B00040500000100000000000000000000080EE
+:1032C00040500000100000000000000000000080DE
+:1032D00040500000100000000000000000000080CE
+:1032E00040500000100000000000000000000080BE
+:1032F00040500000100000000000000000000080AE
+:10330000405000001000000000000000000000809D
+:10331000405000001000000000000000000000808D
+:1033200040500000100000000000000000000000FD
+:10333000405000001000000000000000000000806D
+:10334000405000001000000000000000000000805D
+:10335000405000001000000000000000000000804D
+:10336000405000001000000000000000000000803D
+:10337000405000001000000000000000000000802D
+:10338000405000001000000000000000000000801D
+:10339000405000001000000000000000000000800D
+:1033A00040500000100000000000000000000080FD
+:1033B00040500000100000000000000000000080ED
+:1033C00040500000100000000000000000000080DD
+:1033D00040500000100000000000000000000080CD
+:1033E00040500000100000000000000000000080BD
+:1033F00040500000100000000000000000000080AD
+:10340000405000001000000000000000000000809C
+:10341000405000001000000000000000000000808C
+:1034200040500000100000000000000000000000FC
+:10343000000000000000000000000000000000008C
+:10344000303030303030303030303030303030307C
+:10345000000000000000000000000000000000006C
+:10346000000000000000000000000000000000005C
+:10347000000000000000000000000000000000004C
+:10348000000000000000000000000000000000003C
+:10349000000000000000000000000000000000002C
+:1034A000000000000000000000000000000000001C
+:1034B000000000000000000000000000000000000C
+:1034C00000000000000000000000000000000000FC
+:1034D00000000000000000000000000000000000EC
+:1034E00000000000000000000000000000000000DC
+:1034F00000000000000000000000000000000000CC
+:103500000096969695959595959595959595AA6518
+:103510009A002526252525252525252525252565CA
+:103520009A250026252525252525252525252565BA
+:103530009A252500252525252525252525252565AB
+:103540009A2525250025252525252525252525659B
+:103550009A2525252500252525252525252525658B
+:103560009A2525252525002525252525252525657B
+:103570009A2525252525250025252525252525656B
+:103580009A2525252525252500252525252525655B
+:103590009A2525252525252525002525252525654B
+:1035A0009A2525252525252525250025252525653B
+:1035B0009A2525252525252525252500252525652B
+:1035C0009A2525252525252525252525002525651B
+:1035D0009A2525252525252525252525250025650B
+:1035E0009A252525252525252525252525250065FB
+:1035F0009A2525252525252525252525252525002B
+:103600000096969695959595959595959595AA6517
+:103610009A00A5A6A5A5A5A5A5A5A5A5A5A5A56549
+:103620009A250026252525252525252525252565B9
+:103630009A252500252525252525252525252565AA
+:103640009A2525250025252525252525252525659A
+:103650009A2525252500252525252525252525658A
+:103660009A2525252525002525252525252525657A
+:103670009A2525252525250025252525252525656A
+:103680009A2525252525252500252525252525655A
+:103690009A2525252525252525002525252525654A
+:1036A0009A2525252525252525250025252525653A
+:1036B0009A2525252525252525252500252525652A
+:1036C0009A2525252525252525252525002525651A
+:1036D0009A2525252525252525252525250025650A
+:1036E0009A252525252525252525252525250065FA
+:1036F0009A2525252525252525252525252525002A
+:103700000096969A95959595959595959595AA0077
+:103710000000A6A6A5A5A5A5A5A5A5A5A5A5A50046
+:1037200000250026252525252525252525252500B7
+:1037300000252500252525252525252525252500A8
+:103740000025252500252525252525252525250098
+:103750000025252525002525252525252525250088
+:103760000025252525250025252525252525250078
+:103770000025252525252500252525252525250068
+:103780000025252525252525002525252525250058
+:103790000025252525252525250025252525250048
+:1037A0000025252525252525252500252525250038
+:1037B0000025252525252525252525002525250028
+:1037C0000025252525252525252525250025250018
+:1037D0000025252525252525252525252500250008
+:1037E00000252525252525252525252525250000F8
+:1037F00000252525252525252525252525252500C3
+:103800000096969A95959595959595959595AA0076
+:103810000000A6A6A5A5A5A5A5A5A5A5A5A5A50045
+:1038200000A500A6A5A5A5A5A5A5A5A5A5A5A50036
+:1038300000A5A500A5A5A5A5A5A5A5A5A5A5A50027
+:103840000025252500252525252525252525250097
+:103850000025252525002525252525252525250087
+:103860000025252525250025252525252525250077
+:103870000025252525252500252525252525250067
+:103880000025252525252525002525252525250057
+:103890000025252525252525250025252525250047
+:1038A0000025252525252525252500252525250037
+:1038B0000025252525252525252525002525250027
+:1038C0000025252525252525252525250025250017
+:1038D0000025252525252525252525252500250007
+:1038E00000252525252525252525252525250000F7
+:1038F00000252525252525252525252525252500C2
+:103900000096969A95959595959595959595AA6510
+:103910009A00A6A6A5A5A5A5A5A5A5A5A5A5A66544
+:103920009AA500A6A5A5A5A5A5A5A5A5A5A5A56536
+:103930009AA5A500A5A5A5A5A5A5A5A5A5A5A56527
+:103940009A25252500252525252525252525256597
+:103950009A25252525002525252525252525256587
+:103960009A25252525250025252525252525256577
+:103970009A25252525252500252525252525256567
+:103980009A25252525252525002525252525256557
+:103990009A25252525252525250025252525256547
+:1039A0009A25252525252525252500252525256537
+:1039B0009A25252525252525252525002525256527
+:1039C0009A25252525252525252525250025256517
+:1039D0009A25252525252525252525252500256507
+:1039E0009A252525252525252525252525250065F7
+:1039F0009A25252525252525252525252525250027
+:103A00000096969A95959595959595959595AA650F
+:103A10009A00A6A6A5A5A5A5A5A5A5A5A5A5A66543
+:103A20009AA500A6A5A5A5A5A5A5A5A5A5A5A56535
+:103A30009AA5A500A5A5A5A5A5A5A5A5A5A5A56526
+:103A40009AA5A5A600A5A5A5A5A5A5A5A5A5A56515
+:103A50009AA5A5A5A500A5A5A5A5A5A5A5A5A56506
+:103A60009A25252525250025252525252525256576
+:103A70009A25252525252500252525252525256566
+:103A80009A25252525252525002525252525256556
+:103A90009A25252525252525250025252525256546
+:103AA0009A25252525252525252500252525256536
+:103AB0009A25252525252525252525002525256526
+:103AC0009A25252525252525252525250025256516
+:103AD0009A25252525252525252525252500256506
+:103AE0009A252525252525252525252525250065F6
+:103AF0009A25252525252525252525252525250026
+:103B00000096969A95959595959595959595AA0073
+:103B10000000A6A6A5A5A5A5A5A5A5A5A5A5A60041
+:103B200000A500A6A5A5A5A5A5A5A5A5A5A5A60032
+:103B300000A5A500A5A5A5A5A5A5A5A5A5A5A50024
+:103B400000A5A5A600A5A5A5A5A5A5A5A5A5A50013
+:103B500000A5A5A6A500A5A5A5A5A5A5A5A5A50003
+:103B60000025252525250025252525252525250074
+:103B70000025252525252500252525252525250064
+:103B80000025252525252525002525252525250054
+:103B90000025252525252525250025252525250044
+:103BA0000025252525252525252500252525250034
+:103BB0000025252525252525252525002525250024
+:103BC0000025252525252525252525250025250014
+:103BD0000025252525252525252525252500250004
+:103BE00000252525252525252525252525250000F4
+:103BF00000252525252525252525252525252500BF
+:103C00000096969A95959595959595959595AA0072
+:103C10000000A6A6A5A5A5A5A5A5A5A5A5A5A60040
+:103C200000A500A6A5A5A5A5A5A5A5A5A5A5A60031
+:103C300000A5A600A5A5A5A5A5A5A5A5A5A5A50022
+:103C400000A5A5A600A5A5A5A5A5A5A5A5A5A50012
+:103C500000A5A5A6A500A5A5A5A5A5A5A5A5A50002
+:103C600000A5A5A6A5A500A5A5A5A5A5A5A5A500F2
+:103C70000025252525252500252525252525250063
+:103C80000025252525252525002525252525250053
+:103C90000025252525252525250025252525250043
+:103CA0000025252525252525252500252525250033
+:103CB0000025252525252525252525002525250023
+:103CC0000025252525252525252525250025250013
+:103CD0000025252525252525252525252500250003
+:103CE00000252525252525252525252525250000F3
+:103CF00000252525252525252525252525252500BE
+:103D000000969A9A95959595959595959595AA6508
+:103D10009A00A6A6A5A5A5A5A5A5A5A5A5A5A66540
+:103D20009AA600A6A5A5A5A5A5A5A5A5A5A5A66530
+:103D30009AA5A600A5A5A5A5A5A5A5A5A5A5A56522
+:103D40009AA5A5A600A5A5A5A5A5A5A5A5A5A56512
+:103D50009AA5A5A6A500A5A5A5A5A5A5A5A5A56502
+:103D60009AA5A5A6A5A500A5A5A5A5A5A5A5A565F2
+:103D70009A25252625252500252525252525256562
+:103D80009A25252525252525002525252525256553
+:103D90009A25252525252525250025252525256543
+:103DA0009A25252525252525252500252525256533
+:103DB0009A25252525252525252525002525256523
+:103DC0009A25252525252525252525250025256513
+:103DD0009A25252525252525252525252500256503
+:103DE0009A252525252525252525252525250065F3
+:103DF0009A25252525252525252525252525250023
+:103E000000969AAA95959595959595959595AA65F7
+:103E10009A00A6A6A5A5A5A5A5A5A5A5A5A5A6653F
+:103E20009AA600A6A5A5A5A5A5A5A5A5A5A5A6652F
+:103E30009AA5A600A5A5A5A5A5A5A5A5A5A5A66520
+:103E40009AA5A6A600A5A5A5A5A5A5A5A5A5A56510
+:103E50009AA5A5A6A500A5A5A5A5A5A5A5A5A56501
+:103E60009AA5A5A6A5A500A5A5A5A5A5A5A5A565F1
+:103E70009AA5A5A6A5A5A500A5A5A5A5A5A5A565E1
+:103E80009A25252625252525002525252525256551
+:103E90009A25252525252525250025252525256542
+:103EA0009A25252525252525252500252525256532
+:103EB0009A25252525252525252525002525256522
+:103EC0009A25252525252525252525250025256512
+:103ED0009A25252525252525252525252500256502
+:103EE0009A252525252525252525252525250065F2
+:103EF0009A25252525252525252525252525250022
+:103F000000969AAA95959595969696959595AA0058
+:103F10000000A6A6A5A5A5A5A5A5A5A5A5A5A6003D
+:103F200000A600A6A5A5A5A5A5A5A5A5A5A5A6002D
+:103F300000A5A600A5A5A5A5A5A5A5A5A5A5A6001E
+:103F400000A5A6A600A5A5A5A5A5A5A5A5A5A5000E
+:103F500000A5A6A6A500A5A5A5A5A5A5A5A5A500FE
+:103F600000A5A5A6A5A500A5A5A5A5A5A5A5A500EF
+:103F700000A5A5A6A5A5A500A5A5A5A5A5A5A500DF
+:103F8000002525262525252500252525252525004F
+:103F9000002525262525252525002525252525003F
+:103FA0000025252525252525252500252525250030
+:103FB0000025252525252525252525002525250020
+:103FC0000025252525252525252525250025250010
+:103FD0000025252525252525252525252500250000
+:103FE00000252525252525252525252525250000F0
+:103FF00000252525252525252525252525252500BB
+:1040000000969AAA95959596969696969595AA0055
+:104010000000A6A6A5A5A5A5A5A5A5A5A5A5A6003C
+:1040200000A600A6A5A5A5A5A5A5A5A5A5A5A6002C
+:1040300000A6A600A5A5A5A5A5A5A5A5A5A5A6001C
+:1040400000A5A6A600A5A5A5A5A5A5A5A5A5A6000C
+:1040500000A5A6A6A500A5A5A5A5A5A5A5A5A500FD
+:1040600000A5A6A6A5A500A5A5A5A5A5A5A5A500ED
+:1040700000A5A5A6A5A5A500A5A5A5A5A5A5A500DE
+:1040800000A5A5A6A5A5A5A500A5A5A5A5A5A500CE
+:10409000002525262525252525002525252525003E
+:1040A000002525262525252525250025252525002E
+:1040B000002525252525252525252500252525001F
+:1040C000002525252525252525252525002525000F
+:1040D00000252525252525252525252525002500FF
+:1040E00000252525252525252525252525250000EF
+:1040F00000252525252525252525252525252500BA
+:1041000000969AAA95959696969696969595AA65EE
+:104110009500A6A6A5A5A5A5A5A5A5A5A5A5A66541
+:1041200095A600A6A5A5A5A5A5A5A5A5A5A5A66531
+:1041300095A6A600A5A5A5A5A5A5A5A5A5A5A66521
+:1041400095A5A6A600A5A5A5A5A5A5A5A5A5A66511
+:1041500095A5A6A6A500A5A5A5A5A5A5A5A5A66501
+:1041600095A5A6A6A5A500A5A5A5A5A5A5A5A565F2
+:1041700095A5A6A6A5A5A500A5A5A5A5A5A5A565E2
+:1041800095A5A5A6A5A5A5A500A5A5A5A5A5A565D3
+:104190009525252625252525250025252525256543
+:1041A0009525252625252525252500252525256533
+:1041B0009525252625252525252525002525256523
+:1041C0009525252525252525252525250025256514
+:1041D0009525252525252525252525252500256504
+:1041E00095252525252525252525252525250065F4
+:1041F0009525252525252525252525252525250024
+:104200000096AAAA96969696969696969595AA65DB
+:104210009500A6A6A5A5A5A5A5A5A5A5A5A5A66540
+:1042200095A600A6A5A5A5A5A5A5A5A5A5A5A66530
+:1042300095A6A600A5A5A5A5A5A5A5A5A5A5A66520
+:1042400095A6A6A600A5A5A5A5A5A5A5A5A5A6650F
+:1042500095A5A6A6A500A5A5A5A5A5A5A5A5A66500
+:1042600095A5A6A6A5A500A5A5A5A5A5A5A5A665F0
+:1042700095A5A6A6A5A5A500A5A5A5A5A5A5A565E1
+:1042800095A5A6A6A5A5A5A500A5A5A5A5A5A565D1
+:1042900095A5A5A6A5A5A5A5A500A5A5A5A5A565C2
+:1042A0009525252625252525252500252525256532
+:1042B0009525252625252525252525002525256522
+:1042C0009525252625252525252525250025256512
+:1042D0009525252625252525252525252500256502
+:1042E00095252526252525252525252525250065F2
+:1042F0009525252525252525252525252525250023
+:104300000096AAAA96969696969696969695AA003E
+:104310000000A6A6A5A5A5A5A5A5A5A5A5A5A60039
+:1043200000A600A6A5A5A5A5A5A5A5A5A5A5A60029
+:1043300000A6A600A5A5A5A5A5A5A5A5A5A5A60019
+:1043400000A6A6A600A5A5A5A5A5A5A5A5A5A60008
+:1043500000A6A6A6A500A5A5A5A5A5A5A5A5A600F8
+:1043600000A5A6A6A5A500A5A5A5A5A5A5A5A600E9
+:1043700000A5A6A6A5A5A500A5A5A5A5A5A5A600D9
+:1043800000A5A6A6A5A5A5A500A5A5A5A5A5A500CA
+:1043900000A5A6A6A5A5A5A5A500A5A5A5A5A500BA
+:1043A000002525262525252525250025252525002B
+:1043B000002525262525252525252500252525001B
+:1043C000002525262525252525252525002525000B
+:1043D00000252526252525252525252525002500FB
+:1043E00000252526252525252525252525250000EB
+:1043F00000252525252525252525252525252500B7
+:104400000096AAAA96969696969696969696AA003C
+:104410000000A6A6A5A5A5A5A5A5A5A5A5A5A60038
+:1044200000A600A6A5A5A5A5A5A5A5A5A5A5A60028
+:1044300000A6A600A5A5A5A5A5A5A5A5A5A5A60018
+:1044400000A6A6A600A5A5A5A5A5A5A5A5A5A60007
+:1044500000A6A6A6A500A5A5A5A5A5A5A5A5A600F7
+:1044600000A6A6A6A5A500A5A5A5A5A5A5A5A600E7
+:1044700000A5A6A6A5A5A500A5A5A5A5A5A5A600D8
+:1044800000A5A6A6A5A5A5A500A5A5A5A5A5A600C8
+:1044900000A5A6A6A5A5A5A5A500A5A5A5A5A500B9
+:1044A00000A5A6A6A5A5A5A5A5A500A5A5A5A500A9
+:1044B000002525262525252525252500252525001A
+:1044C000002525262525252525252525002525000A
+:1044D00000252526252525252525252525002500FA
+:1044E00000252526252525252525252525250000EA
+:1044F00000252526252525252525252525252500B5
+:10450000009AAAAA969696969696969696A6AA6ABD
+:104510009500A6A6A5A5A5A5A5A5A5A5A5A5A6663C
+:1045200095A600A6A5A5A5A5A5A5A5A5A5A5A6662C
+:1045300095A6A600A5A5A5A5A5A5A5A5A5A5A6661C
+:1045400095A6A6A600A5A5A5A5A5A5A5A5A5A6660B
+:1045500095A6A6A6A500A5A5A5A5A5A5A5A5A666FB
+:1045600095A6A6A6A5A500A5A5A5A5A5A5A5A666EB
+:1045700095A6A6A6A5A5A500A5A5A5A5A5A5A666DB
+:1045800095A5A6A6A5A5A5A500A5A5A5A5A5A666CC
+:1045900095A5A6A6A5A5A5A5A500A5A5A5A5A666BC
+:1045A00095A5A6A6A5A5A5A5A5A500A5A5A5A566AD
+:1045B000952526262525252525252500252525661D
+:1045C000952525262525252525252525002525660E
+:1045D00095252526252525252525252525002566FE
+:1045E00095252526252525252525252525250066EE
+:1045F000952525262525252525252525252525001F
+:10460000009AAAAA9696969696969A8696A6AA6AC8
+:104610009500A6A6A5A5A5A5A5A5A5A5A5A5A6663B
+:1046200095A600A6A5A5A5A5A5A5A5A5A5A5A6662B
+:1046300095A6A600A5A5A5A5A5A5A5A5A5A5A6661B
+:1046400095A6A6A600A5A5A5A5A5A5A5A5A5A6660A
+:1046500095A6A6A6A500A5A5A5A5A5A5A5A5A666FA
+:1046600095A6A6A6A5A500A5A5A5A5A5A5A5A666EA
+:1046700095A6A6A6A5A5A500A5A5A5A5A5A5A666DA
+:1046800095A6A6A6A5A5A5A500A5A5A5A5A5A666CA
+:1046900095A5A6A6A5A5A5A5A500A5A5A5A5A666BB
+:1046A00095A5A6A6A5A5A5A5A5A500A5A5A5A666AB
+:1046B00095A5A6A6A5A5A5A5A5A5A500A5A5A5669C
+:1046C000952526262525252525252525002525660C
+:1046D00095252626252525252525252525002566FC
+:1046E00095252626252525252525252525250066EC
+:1046F000952526262525252525252525252525001D
+:1047000000AAAAAA969696969A9AAAA6A6A6AA00D9
+:104710000000A6A6A5A5A5A5A5A5A5A5A5A5A60035
+:1047200000A600A6A5A5A5A5A5A5A5A5A5A5A60025
+:1047300000A6A600A5A5A5A5A5A5A5A5A5A5A60015
+:1047400000A6A6A600A5A5A5A5A5A5A5A5A5A60004
+:1047500000A6A6A6A500A5A5A5A5A5A5A5A5A600F4
+:1047600000A6A6A6A5A500A5A5A5A5A5A5A5A600E4
+:1047700000A6A6A6A5A5A500A5A5A5A5A5A5A600D4
+:1047800000A6A6A6A5A5A5A500A5A5A5A5A5A600C4
+:1047900000A6A6A6A5A5A5A5A500A5A5A5A5A600B4
+:1047A00000A5A6A6A5A5A5A5A5A500A5A5A5A600A5
+:1047B00000A5A6A6A5A5A5A5A5A5A500A5A5A60095
+:1047C0000025262625252525252525250025250006
+:1047D00000252626252525252525252525002500F6
+:1047E00000252626252525252525252525250000E6
+:1047F00000252626252525252525252525252500B1
+:1048000000AAAAAA969696969A8AAAA6A6A6AA00E8
+:104810000000A6A6A6A6A6A6A6A6A6A6A6A6A6002A
+:1048200000A600A6A6A6A6A6A6A6A6A6A6A6A6001A
+:1048300000A6A600A6A6A6A6A6A6A6A6A6A6A6000A
+:1048400000A6A6A600A6A6A6A6A6A6A6A6A6A600FA
+:1048500000A6A6A6A600A6A6A6A6A6A6A6A6A600EA
+:1048600000A6A6A6A6A600A6A6A6A6A6A6A6A600DA
+:1048700000A6A6A6A6A6A600A6A6A6A6A6A6A600CA
+:1048800000A6A6A6A6A6A6A600A6A6A6A6A6A600BA
+:1048900000A6A6A6A6A6A6A6A600A6A6A6A6A600AA
+:1048A00000A6A6A6A6A6A6A6A6A600A6A6A6A6009A
+:1048B00000A5A6A6A6A6A6A6A6A6A600A6A6A6008B
+:1048C00000A5A6A6A6A6A6A6A6A6A6A600A6A6007B
+:1048D00000252626262626262626262626002600EB
+:1048E00000252626262626262626262626260000DB
+:1048F00000262626252525252525252525252500AF
+:1049000000AAAAAA96969696AAAAAAAAA6A6AA6A49
+:104910009500A6A6A6A6A6A6A6A6A6A6A6A6A6662E
+:1049200095A600A6A6A6A6A6A6A6A6A6A6A6A6661E
+:1049300095A6A600A6A6A6A6A6A6A6A6A6A6A6660E
+:1049400095A6A6A600A6A6A6A6A6A6A6A6A6A666FE
+:1049500095A6A6A6A600A6A6A6A6A6A6A6A6A666EE
+:1049600095A6A6A6A6A600A6A6A6A6A6A6A6A666DE
+:1049700095A6A6A6A6A6A600A6A6A6A6A6A6A666CE
+:1049800095A6A6A6A6A6A6A600A6A6A6A6A6A666BE
+:1049900095A6A6A6A6A6A6A6A600A6A6A6A6A666AE
+:1049A00095A6A6A6A6A6A6A6A6A600A6A6A6A6669E
+:1049B00095A6A6A6A6A6A6A6A6A6A600A6A6A6668E
+:1049C00095A5A6A6A6A6A6A6A6A6A6A600A6A6667F
+:1049D00095252626262626262626262626002666EF
+:1049E00095252626262626262626262626260066DF
+:1049F0009526262625252525252525252525250019
+:104A000000AAAAAA969696AAAAAAAAAAA6A6AA6A34
+:104A10009500A6AAA6A6A6A6A6A6A6A6A6A6A66629
+:104A200095A600AAA6A6A6A6A6A6A6A6A6A6A66619
+:104A300095A6A600A6A6A6A6A6A6A6A6A6A6A6660D
+:104A400095A6A6AA00A6A6A6A6A6A6A6A6A6A666F9
+:104A500095A6A6AAA600A6A6A6A6A6A6A6A6A666E9
+:104A600095A6A6AAA6A600A6A6A6A6A6A6A6A666D9
+:104A700095A6A6AAA6A6A600A6A6A6A6A6A6A666C9
+:104A800095A6A6AAA6A6A6A600A6A6A6A6A6A666B9
+:104A900095A6A6AAA6A6A6A6A600A6A6A6A6A666A9
+:104AA00095A6A6AAA6A6A6A6A6A600A6A6A6A66699
+:104AB00095A6A6AAA6A6A6A6A6A6A600A6A6A66689
+:104AC00095A6A6AAA6A6A6A6A6A6A6A600A6A66679
+:104AD00095A6A6AAA6A6A6A6A6A6A6A6A600A66669
+:104AE0009526262A262626262626262626260066D9
+:104AF0009526262A25252525252525252525260013
+:104B000000AAAAAA969696AAAAAAAAAAAAA6AA0099
+:104B10000000A6AAA6A6A6A6A6A6A6A6A6A6A60023
+:104B200000A600AAA6A6A6A6A6A6A6A6A6A6A60013
+:104B300000A6A600A6A6A6A6A6A6A6A6A6A6A60007
+:104B400000A6A6AA00A6A6A6A6A6A6A6A6A6A600F3
+:104B500000A6A6AAA600A6A6A6A6A6A6A6A6A600E3
+:104B600000A6A6AAA6A600A6A6A6A6A6A6A6A600D3
+:104B700000A6A6AAA6A6A600A6A6A6A6A6A6A600C3
+:104B800000A6A6AAA6A6A6A600A6A6A6A6A6A600B3
+:104B900000A6A6AAA6A6A6A6A600A6A6A6A6A600A3
+:104BA00000A6A6AAA6A6A6A6A6A600A6A6A6A60093
+:104BB00000A6A6AAA6A6A6A6A6A6A600A6A6A60083
+:104BC00000A6A6AAA6A6A6A6A6A6A6A600A6A60073
+:104BD00000A6A6AAA6A6A6A6A6A6A6A6A600A60063
+:104BE00000A6A6AA96A6A6A6A6A6A6A6A6A6000063
+:104BF0000026262A252525252525252525252600A7
+:104C000000AAAAAA9696AAAAAAAAAAAAAAAAAA0080
+:104C10000000A6AAA6A6A6A6A6A6AAA6A6A6A6001E
+:104C200000A600AAA6A6A6A6A6A6A6A6A6A6A60012
+:104C300000A6A600A6A6A6A6A6A6A6A6A6A6A60006
+:104C400000A6A6AA00A6A6A6A6A6A6A6A6A6A600F2
+:104C500000A6A6AAA600A6A6A6A6A6A6A6A6A600E2
+:104C600000A6A6AAA6A600A6A6A6A6A6A6A6A600D2
+:104C700000A6A6AAA6A6A600A6A6A6A6A6A6A600C2
+:104C800000A6A6AAA6A6A6A600A6A6A6A6A6A600B2
+:104C900000A6A6AAA6A6A6A6A600A6A6A6A6A600A2
+:104CA00000A6A6AAA6A6A6A6A6A600A6A6A6A60092
+:104CB00000A6A6AAA6A6A6A6A6A6A600A6A6A60082
+:104CC00000A6A6AAA6A6A6A6A6A6A6A600A6A60072
+:104CD00000A6A6AA96A6A6A6A6A6A6A6A600A60072
+:104CE00000A6A6AA96A6A6A6A6A6A6A6A6A6000062
+:104CF00000A6A6AAA5A5A5A5A5A6A6A6A6A5A600A2
+:104D000000AAAA2A161A2A2A2A2A2A2A2A2A2A6A11
+:104D10009500A62A2626262626262A262626266622
+:104D200095A6002A26262626262626262626266616
+:104D300095A6A6002626262626262626262626668A
+:104D400095A6A62A00262626262626262626266676
+:104D500095A6A62A26002626262626262626266666
+:104D600095A6A62A26260026262626262626266656
+:104D700095A6A62A26262600262626262626266646
+:104D800095A6A62A26262626002626262626266636
+:104D900095A6A62A26262626260026262626266626
+:104DA00095A6A62A26262626262600262626266616
+:104DB00095A6A62A26262626262626002626266606
+:104DC00095A6A62A262626262626262600262666F6
+:104DD00095A6A62A162626262626262626002666F6
+:104DE00095A6A62A162626262626262626260066E6
+:104DF00095A6A62A2525252526262626262526000B
+:104E000000AAAA2A1A1A2A2A2A2A2A2A2A2A2A6A0C
+:104E10009500AA2A26262626262A2A2A2A262A660D
+:104E200095A6002A2626262626262A262626266611
+:104E300095A6AA0026262626262626262626266685
+:104E400095A6AA2A00262626262626262626266671
+:104E500095A6AA2A26002626262626262626266661
+:104E600095A6AA2A16260026262626262626266661
+:104E700095A6AA2A16262600262626262626266651
+:104E800095A6AA2A16262626002626262626266641
+:104E900095A6AA2A16262626260026262626266631
+:104EA00095A6AA2A16262626262600262626266621
+:104EB00095A6AA2A16262626262626002626266611
+:104EC00095A6AA2A16262626262626260026266601
+:104ED00095A6AA2A162626262626262626002666F1
+:104EE00095A6AA2A162626262626262626260066E1
+:104EF00095A6AA2A15252626262626262626260013
+:104F000000AAAA2A1A2A2A2A2A2A2A2A2A2A2A0065
+:104F10000000AA2A262626262A2A2A2A2A262A0003
+:104F200000A6002A2626262626262A26262626000B
+:104F300000A6AA002626262626262626262626007F
+:104F400000A6AA2A0026262626262626262626006B
+:104F500000A6AA2A1600262626262626262626006B
+:104F600000A6AA2A1626002626262626262626005B
+:104F700000A6AA2A1626260026262626262626004B
+:104F800000A6AA2A1626262600262626262626003B
+:104F900000A6AA2A1626262626002626262626002B
+:104FA00000A6AA2A1626262626260026262626001B
+:104FB00000A6AA2A1626262626262600262626000B
+:104FC00000A6AA2A162626262626262600262600FB
+:104FD00000A6AA2A1626262626262A2626002600E7
+:104FE00000A6AA2A162626262626262626260000DB
+:104FF00040A6AA2A15262626262626262626260066
+:1050000000AAAAAA1A2A2A2A2A2A2A2A2A2A2A00E4
+:105010000000AAAA262626262A2A2A2A2A2A2A007E
+:1050200000A600AA26262626262A2A2A2A262A007A
+:1050300000A6AA002626262626262A2626262A0076
+:1050400000A6AAAA0026262626262A2626262A00E2
+:1050500000A6AAAA1600262626262A2626262A00E2
+:1050600000A6AAAA1626002626262A2626262A00D2
+:1050700000A6AAAA1626260026262A2626262A00C2
+:1050800000A6AAAA162626260026262626262A00B6
+:1050900000A6AAAA162626262600262626262A00A6
+:1050A00000A6AAAA162626262626002626262A0096
+:1050B00000A6AAAA162626262626260026262A0086
+:1050C00000A6AAAA162626262626262600262A0076
+:1050D00000A6AAAA1626262626262A2626002A0062
+:1050E00000A6AAAA1616262626262A262626000066
+:1050F00040A6AAAA162626262626262626262A00E0
+:1051000000AAAAAA1A2A2A2A2A2A2A2A2A2A2A6A79
+:105110009500AAAA2626262A2A2A2A2A2A2A2A667E
+:1051200095A600AA262626262A2A2A2A2A262A667A
+:1051300095A6AA001626262626262A2626262A668A
+:1051400095A6AAAA0026262626262A2626262A66E6
+:1051500095A6AAAA1600262626262A2626262A66E6
+:1051600095A6AAAA1626002626262A2626262A66D6
+:1051700095A6AAAA1626260026262A2626262A66C6
+:1051800095A6AAAA1626262600262A2626262A66B6
+:1051900095A6AAAA1626262626002A2626262A66A6
+:1051A00095A6AAAA162626262626002626262A669A
+:1051B00095A6AAAA1626262626262A0026262A6686
+:1051C00095A6AAAA1626262626262A2600262A6676
+:1051D00095A6AAAA16162626262A2A2A2A002A666A
+:1051E00095A6AAAA1616262626262A26262600666A
+:1051F00015A6AAAA162626262626262626262A000A
+:1052000000AAAAAA2A2A2A2A2A2A2A2A2A2A2A6A68
+:105210009500AAAA2626262A2A2A2A2A2A2A2A667D
+:1052200095AA00AA262626262A2A2A2A2A2A2A6671
+:1052300095AAAA0016262626262A2A2A2A262A6679
+:1052400095AAAAAA00262626262A2A2A2A262A66D5
+:1052500095AAAAAA16002626262A2A2A2A262A66D5
+:1052600095AAAAAA16260026262A2A2A2A262A66C5
+:1052700095AAAAAA16262600262A2A2A2A262A66B5
+:1052800095AAAAAA1626262600262A2626262A66B1
+:1052900095AAAAAA1626262626002A2626262A66A1
+:1052A00095AAAAAA162626262626002626262A6695
+:1052B00095AAAAAA1626262626262A0026262A6681
+:1052C00095AAAAAA1626262626262A2600262A6671
+:1052D00095AAAAAA161626262A2A2A2A2A002A6661
+:1052E00095AAAAAA16162626262A2A2A2A26006659
+:1052F00015AAAAAA1626262626262A2626262A0001
+:1053000000AAAAAA2A2A2A2A2A2A2A2A2A2A2A00D1
+:105310000000AAAA26262A2A2A2A2A2A2A2A2A0073
+:1053200000AA00AA1626262A2A2A2A2A2A2A2A0077
+:1053300000AAAA00162626262A2A2A2A2A262A006F
+:1053400000AAAAAA002626262A2A2A2A2A262A00CB
+:1053500000AAAAAA160026262A2A2A2A2A262A00CB
+:1053600000AAAAAA161600262A2A2A2A2A262A00CB
+:1053700000AAAAAA161626002A2A2A2A2A262A00BB
+:1053800000AAAAAA16162626002A2A2A2A262A00AF
+:1053900000AAAAAA1616262626002A2A2A262A00A3
+:1053A00000AAAAAA16162626262A002A2A262A0093
+:1053B00000AAAAAA16162626262A2A002A262A0083
+:1053C00000AAAAAA16162626262A2A2A00262A0073
+:1053D00000AAAAAA161626262A2A2A2A2A002A005B
+:1053E00000AAAAAA161616262A2A2A2A2A2600005F
+:1053F00040AAAAAA1616262626262A2626262A00E5
+:1054000000AAAAAAAA2A2A2A2A2A2A2A2A2A2A0050
+:105410000000AAAAA62A2A2A2A2A2A2A2A2A2A00EE
+:10542000009A00AA9626262A2A2A2A2A2A2A2A0006
+:10543000009AAA00962626262A2A2A2A2A2A2A00FA
+:10544000009AAAAA002626262A2A2A2A2A2A2A00D6
+:10545000009AAAAA960026262A2A2A2A2A2A2A0056
+:10546000009AAAAA961600262A2A2A2A2A2A2A0056
+:10547000009AAAAA961626002A2A2A2A2A262A004A
+:10548000009AAAAA96162626002A2A2A2A262A003E
+:10549000009AAAAA961626262A002A2A2A262A002E
+:1054A000009AAAAA961626262A2A002A2A262A001E
+:1054B000009AAAAA961626262A2A2A002A262A000E
+:1054C000009AAAAA961626262A2A2A2A00262A00FE
+:1054D000009AAAAA9616162A2A2A2A2A2A002A00F6
+:1054E000009AAAAA961616262A2A2A2A2A2A0000EA
+:1054F000409AAAAA96162626262A2A2A2A262A0068
+:1055000000AAAAAAAA2A2A2A2A2A2A2A2A2A2A6AE5
+:105510009500AAAA962A2A2A2A2A2A2A2A2A2A6602
+:10552000959A00AA96262A2A2A2A2A2A2A2A2A6606
+:10553000959AAA009626262A2A2A2A2A2A2A2A66FA
+:10554000959AAAAA0016262A2A2A2A2A2A2A2A66E6
+:10555000959AAAAA9600262A2A2A2A2A2A2A2A6656
+:10556000959AAAAA9616002A2A2A2A2A2A2A2A6656
+:10557000959AAAAA961626002A2A2A2A2A2A2A664A
+:10558000959AAAAA96162626002A2A2A2A2A2A663E
+:10559000959AAAAA961626262A002A2A2A2A2A662E
+:1055A000959AAAAA961626262A2A002A2A2A2A661E
+:1055B000959AAAAA961626262A2A2A002A2A2A660E
+:1055C000959AAAAA961626262A2A2A2A002A2A66FE
+:1055D000959AAAAA9616162A2A2A2A2A2A002A66FA
+:1055E000959AAAAA9616162A2A2A2A2A2A2A0066EA
+:1055F000159AAAAA961626262A2A2A2A2A262A008E
+:1056000000AAAAAAAAAA2A2A2A2A2A2A2A2A2A6A64
+:105610009500AAAA9AAA2A2A2A2A2A2A2A2A2A667D
+:10562000959A00AA96AA2A2A2A2A2A2A2A2A2A6681
+:10563000959AAA009696262A2A2A2A2A2A2A2A6689
+:10564000959AAAAA0096262A2A2A2A2A2A2A2A6665
+:10565000959AAAAA9600262A2A2A2A2A2A2A2A6655
+:10566000959AAAAA9696002A2A2A2A2A2A2A2A66D5
+:10567000959AAAAA969616002A2A2A2A2A2A2A66D9
+:10568000959AAAAA9696162A002A2A2A2A2A2A66C9
+:10569000959AAAAA9696162A2A002A2A2A2A2A66B9
+:1056A000959AAAAA9696162A2A2A002A2A2A2A66A9
+:1056B000959AAAAA9696162A2A2A2A002A2A2A6699
+:1056C000959AAAAA9696162A2A2A2A2A002A2A6689
+:1056D000959AAAAA96961A2A2A2A2A2A2A002A6675
+:1056E000959AAAAA9696161A2A2A2A2A2A2A006679
+:1056F000159AAAAA969616262A2A2A2A2A2A2A0019
+:1057000000AAAAAAAAAA2A2A2A2A2A2A2A2A2A00CD
+:105710000000AAAA9AAA2A2A2A2A2A2A2A2A2A0077
+:10572000009A00AA96AA2A2A2A2A2A2A2A2A2A007B
+:10573000009AAA0096962A2A2A2A2A2A2A2A2A007F
+:10574000009AAAAA00962A2A2A2A2A2A2A2A2A005B
+:10575000009AAAAA96001A2A2A2A2A2A2A2A2A005B
+:10576000009AAAAA9696002A2A2A2A2A2A2A2A00CF
+:10577000009AAAAA96961A002A2A2A2A2A2A2A00CF
+:10578000009AAAAA9696162A002A2A2A2A2A2A00C3
+:10579000009AAAAA9696162A2A002A2A2A2A2A00B3
+:1057A000009AAAAA9696162A2A2A002A2A2A2A00A3
+:1057B000009AAAAA9696162A2A2A2A002A2A2A0093
+:1057C000009AAAAA9696162A2A2A2A2A002A2A0083
+:1057D000009AAAAA969A1A1A2A2A2A2A2A002A007B
+:1057E000009AAAAA96961A1A2A2A2A2A2A2A00006F
+:1057F000409AAAAA9696162A2A2A2A2A2A2A2A00E9
+:1058000000AAAAAAAAAAAA2A2A2A2A2A2A2A2A004C
+:1058100000009AAA9AAAAA2A2A2A2A2A2A2A2A0006
+:10582000009A00AA9A9AAA2A2A2A2A2A2A2A2A0006
+:10583000009A9A00969AAA2A2A2A2A2A2A2A2A000A
+:10584000009A9AAA009A9A2A2A2A2A2A2A2A2A00F6
+:10585000009A9AAA96009A2A2A2A2A2A2A2A2A00EA
+:10586000009A9AAA969A002A2A2A2A2A2A2A2A00DA
+:10587000009A9AAA969A9A002A2A2A2A2A2A2A005A
+:10588000009A9AAA96969A2A002A2A2A2A2A2A004E
+:10589000009A9AAA96969A2A2A002A2A2A2A2A003E
+:1058A000009A9AAA96969A2A2A2A002A2A2A2A002E
+:1058B000009A9AAA96969A2A2A2A2A002A2A2A001E
+:1058C000009A9AAA96969A2A2A2A2A2A002A2A000E
+:1058D000009A9AAA969A9A1A2A2A2A2A2A002A000A
+:1058E000009A9AAA969A9A1A2A2A2A2A2A2A0000FA
+:1058F000409A9AAA9696962A2A2A2A2A2A2A2A0078
+:1059000000AAAAAAAAAAAAAA2A2A2A2A2A2A2A6A61
+:1059100095009AAA9AAAAAAA2A2A2A2A2A2A2A6A86
+:10592000959A00AA9A9AAAAA2A2A2A2A2A2A2A6A86
+:10593000959A9A00969A9AAA2A2A2A2A2A2A2A6A9A
+:10594000959A9AAA009A9AAA2A2A2A2A2A2A2A6A76
+:10595000959A9AAA96009AAA2A2A2A2A2A2A2A6A6A
+:10596000959A9AAA969A009A2A2A2A2A2A2A2A6A6A
+:10597000959A9AAA969A9A002A2A2A2A2A2A2A6A5A
+:10598000959A9AAA969A9A9A002A2A2A2A2A2A6ADA
+:10599000959A9AAA969A9A9A2A002A2A2A2A2A6ACA
+:1059A000959A9AAA969A9A9A2A2A002A2A2A2A6ABA
+:1059B000959A9AAA969A9A9A2A2A2A002A2A2A6AAA
+:1059C000959A9AAA969A9A9A2A2A2A2A002A2A6A9A
+:1059D000959A9AAA9A9A9A9A2A2A2A2A2A002A6A86
+:1059E000959A9AAA969A9A9A1A2A2A2A2A2A006A8A
+:1059F000159A9AAA96969A9A2A2A2A2A2A2A2A002E
+:105A000000AAAAAAAAAAAAAAAA2A2A2A2A2A2A6AE0
+:105A100095009AAA9A9AAAAAAA2A2A2A2A2A2A6A15
+:105A2000959A00AA9A9AAAAAAA2A2A2A2A2A2A6A05
+:105A3000959A9A009A9A9AAAAA2A2A2A2A2A2A6A15
+:105A4000959A9AAA009A9AAAAA2A2A2A2A2A2A6AF5
+:105A5000959A9AAA9A009A9AAA2A2A2A2A2A2A6AF5
+:105A6000959A9AAA9A9A009AAA2A2A2A2A2A2A6AE5
+:105A7000959A9AAA9A9A9A00AA2A2A2A2A2A2A6AD5
+:105A8000959A9AAA969A9A9A002A2A2A2A2A2A6AD9
+:105A9000959A9AAA969A9A9AAA002A2A2A2A2A6A49
+:105AA000959A9AAA969A9A9AAA2A002A2A2A2A6A39
+:105AB000959A9AAA969A9A9AAA2A2A002A2A2A6A29
+:105AC000959A9AAA969A9A9AAA2A2A2A002A2A6A19
+:105AD000959A9AAA9A9A9A9A9A2A2A2A2A002A6A15
+:105AE000959A9AAA9A9A9A9A9A2A2A2A2A2A006A05
+:105AF000159A9AAA969A9A9AAA2A2A2A2A2A2A00A9
+:105B000000A9A9A9AAA8A8A8A82828282828280060
+:105B1000400099A99A98A8A8A828282828282800E9
+:105B2000409900A99A9898A8A828282828282800E9
+:105B3000409999009A9898A8A828282828282800E9
+:105B4000409999A900989898A828282828282800DA
+:105B5000409999A99A009898A828282828282800C8
+:105B6000409999A99A980098A828282828282800B8
+:105B7000409999A99A989800A828282828282800A8
+:105B8000409999A99A9898980028282828282800A8
+:105B9000409999A99A989898A80028282828280018
+:105BA000409999A99A989898A82800282828280008
+:105BB000409999A99A989898A828280028282800F8
+:105BC000409999A99A989898A828282800282800E8
+:105BD000409999A99A9898989828282828002800E8
+:105BE000409999A99A9898989818282828280000E8
+:105BF000409999A996989898A82828282828280094
+:105C000000A9A9A9AAA8A8A8A8A82828A82828005F
+:105C1000400099A99A98A8A8A8A82828A8282800E8
+:105C2000409900A99A9898A8A8A82828A8282800E8
+:105C3000409999009A989898A8A82828A8282800F8
+:105C4000409999A900989898A8A82828A8282800D9
+:105C5000409999A99A009898A8A82828A8282800C7
+:105C6000409999A99A98009898A82828A8282800C7
+:105C7000409999A99A98980098A82828A8282800B7
+:105C8000409999A99A98989800A82828A8282800A7
+:105C9000409999A99A98989898002828A8282800A7
+:105CA000409999A99A98989898A80028A828280017
+:105CB000409999A99A98989898A82800A828280007
+:105CC000409999A99A98989898A828280028280077
+:105CD000409999A99A98989898982828A8002800F7
+:105CE000409999A99A98989898982828A8280000E7
+:105CF000409999A99A98989898A82828A82828009F
+:105D000000A9A9A9AAAAA8A8A8A8A8282828286AF2
+:105D1000150099A99A9A98A8A8A8A8282828286AB6
+:105D2000159900A99A9A98A8A8A8A8282828286AA6
+:105D3000159999009A9A9898A8A8A8282828286AB6
+:105D4000159999A9009A9898A8A8A8282828286A97
+:105D5000159999A99A00989898A8A8282828286A97
+:105D6000159999A99A9A009898A8A8282828286A85
+:105D7000159999A99A9A980098A8A8282828286A75
+:105D8000159999A99A9A989800A8A8282828286A65
+:105D9000159999A99A9A98989800A8282828286A65
+:105DA000159999A99A9A989898A800282828286A55
+:105DB000159999A99A9A989898A8A8002828286AC5
+:105DC000159999A99A9A989898A8A8280028286AB5
+:105DD000159999A99A9A98989898A8282800286AB5
+:105DE000159999A99A9A9898989888282828006AC5
+:105DF000159999A99A9A989898A8A82828282800C7
+:105E000000A9A9A9AAAAA8A8A8A8A8A82828286A71
+:105E1000150099999A9A98A8A8A8A8A82828286A45
+:105E2000159900999A9A9898A8A8A8A82828286A45
+:105E3000159999009A9A9898A8A8A8A82828286A35
+:105E400015999999009A989898A8A8A82828286A36
+:105E5000159999999A00989898A8A8A82828286A26
+:105E6000159999999A9A00989898A8A82828286A24
+:105E7000159999999A9A98009898A8A82828286A14
+:105E8000159999999A9A98980098A8A82828286A04
+:105E9000159999999A9A98989800A8A82828286AF4
+:105EA000159999999A9A9898989800A82828286AF4
+:105EB000159999999A9A98989898A8002828286AE4
+:105EC000159999999A9A98989898A8A80028286A54
+:105ED000159999999A9A9898989888A82800286A64
+:105EE000159999999A9A9898989898A82828006A44
+:105EF000159999999A9A98989898A8A82828280066
+:105F000000A9A9A9AAAAAAA8A8A8A8A8A8A82800D8
+:105F1000400099999A9A9AA8A8A8A8A8A8A8280081
+:105F2000409900999A9A9A98A8A8A8A8A8A8280081
+:105F3000409999009A9A9A9898A8A8A8A8A8280081
+:105F400040999999009A9A9898A8A8A8A8A8280072
+:105F5000409999999A009A989898A8A8A8A8280072
+:105F6000409999999A9A00989898A8A8A8A8280062
+:105F7000409999999A9A9A009898A8A8A8A8280050
+:105F8000409999999A9A9A980098A8A8A8A8280040
+:105F9000409999999A9A9A989800A8A8A8A8280030
+:105FA000409999999A9A9A98989800A8A8A8280030
+:105FB000409999999A9A9A989898A800A8A8280020
+:105FC000409999999A9A9A989898A8A800A8280010
+:105FD000409999999A9A9A98989898A8A800280010
+:105FE000409999999A9A9A9898989898A8A8000090
+:105FF000409999999A9A9A989898A8A8A8A8280038
+:10600000006969696A6A6A686868686868686800D7
+:10601000400059595A5A5A58686868686868680050
+:10602000405900595A5A5A58686868686868680040
+:10603000405959005A5A5A58586868686868680040
+:1060400040595959005A5A58585868686868680041
+:10605000405959595A005A58585868686868680031
+:10606000405959595A5A0058585848686868680041
+:10607000405959595A5A5A0058584868686868002F
+:10608000405959595A5A5A5800584868686868001F
+:10609000405959595A5A5A5858004868686868000F
+:1060A000405959595A5A5A585858006868686800EF
+:1060B000405959595A5A5A585858480068686800FF
+:1060C000405959595A5A5A585858486800686800EF
+:1060D000405959595A5A5A585858585868006800DF
+:1060E000405959595A5A5A585858585868680000CF
+:1060F000405959595A5A5A58585848686868680057
+:10610000006969696A6A6A6A686868686868686A6A
+:10611000150059595A5A5A5A686868686868686A0E
+:10612000155900595A5A5A5A586868686868686A0E
+:10613000155959005A5A5A5A585868686868686A0E
+:1061400015595959005A5A5A585868686868686AFF
+:10615000155959595A005A5A585848686868686A0F
+:10616000155959595A5A005A585858686868686AEF
+:10617000155959595A5A5A00585858686868686ADF
+:10618000155959595A5A5A5A005858686868686ACD
+:10619000155959595A5A5A5A580058686868686ABD
+:1061A000155959595A5A5A5A585800686868686AAD
+:1061B000155959595A5A5A5A585858006868686AAD
+:1061C000155959595A5A5A5A585858680068686A9D
+:1061D000155959595A5A5A5A585858586800686A9D
+:1061E000155959595A5A5A5A585858585868006A9D
+:1061F000155959595A5A5A5A58585868686868006F
+:10620000006969696A6A6A6A6A6868686868686A67
+:10621000150059595A5A5A5A6A6868686868686A0B
+:10622000155900595A5A5A5A5A6868686868686A0B
+:10623000155959005A5A5A5A5A5868686868686A0B
+:1062400015595959005A5A5A5A5848686868686A1C
+:10625000155959595A005A5A5A5858686868686AFC
+:10626000155959595A5A005A5A5858586868686AFC
+:10627000155959595A5A5A005A5858586868686AEC
+:10628000155959595A5A5A5A005858586868686ADC
+:10629000155959595A5A5A5A5A0058586868686ACA
+:1062A000155959595A5A5A5A5A5800586868686ABA
+:1062B000155959595A5A5A5A5A5858006868686AAA
+:1062C000155959595A5A5A5A5A5858580068686AAA
+:1062D000155959595A5A5A5A5A5858585800686AAA
+:1062E000155959595A5A5A5A5A5858585868006A9A
+:1062F000155959595A5A5A5A5A585858686868007C
+:10630000006969696A6A6A6A6A6868686868684090
+:10631000400059595A5A5A5A5A6868686868684019
+:10632000405900595A5A5A5A5A5868686868684019
+:10633000405959005A5A5A5A5A5848686868684029
+:1063400040595959005A5A5A5A585868686868400A
+:10635000405959595A005A5A5A585858686868400A
+:10636000405959595A5A005A5A58585868686840FA
+:10637000405959595A5A5A005A58585868686840EA
+:10638000405959595A5A5A5A0058585868686840DA
+:10639000405959595A5A5A5A5A00585868686840C8
+:1063A000405959595A5A5A5A5A58005868686840B8
+:1063B000405959595A5A5A5A5A58580068686840A8
+:1063C000405959595A5A5A5A5A58585800686840A8
+:1063D000405959595A5A5A5A5A58585858006840A8
+:1063E000405959595A5A5A5A5A5858585868004098
+:1063F000405959595A5A5A5A5A5858586868680050
+:10640000006969696A6A6A6A6A6A6868686868408D
+:10641000400059595A5A5A5A5A6A68686868684016
+:10642000405900595A5A5A5A5A5A68686868684016
+:10643000405959005A5A5A5A5A5A58686868684016
+:1064400040595959005A5A5A5A5A58586868684017
+:10645000405959595A005A5A5A5A58586868684007
+:10646000405959595A5A005A5A5A58585868684007
+:10647000405959595A5A5A005A5A585858686840F7
+:10648000405959595A5A5A5A005A585858686840E7
+:10649000405959595A5A5A5A5A00585858686840D7
+:1064A000405959595A5A5A5A5A5A005858686840C5
+:1064B000405959595A5A5A5A5A5A580058686840B5
+:1064C000405959595A5A5A5A5A5A585800686840A5
+:1064D000405959595A5A5A5A5A5A585858006840A5
+:1064E000405959595A5A5A5A5A5A58585868004095
+:1064F000405959595A5A5A5A5A5A5858586868005D
+:10650000006969696A6A6A6A6A6A6868686868AA22
+:10651000150059595A5A5A5A5A5A6868686868AAE6
+:10652000155900595A5A5A5A5A5A4868686868AAF6
+:10653000155959005A5A5A5A5A5A5858686868AAE6
+:1065400015595959005A5A5A5A5A5858686868AAD7
+:10655000155959595A005A5A5A5A5858586868AAD7
+:10656000155959595A5A005A5A5A5858586868AAC7
+:10657000155959595A5A5A005A5A5858586868AAB7
+:10658000155959595A5A5A5A005A5858586868AAA7
+:10659000155959595A5A5A5A5A005858586868AA97
+:1065A000155959595A5A5A5A5A5A0058586868AA85
+:1065B000155959595A5A5A5A5A5A5800586868AA75
+:1065C000155959595A5A5A5A5A5A5858006868AA65
+:1065D000155959595A5A5A5A5A5A5858580068AA65
+:1065E000155959595A5A5A5A5A5A5858585800AA65
+:1065F000155959595A5A5A5A5A5A58585868680087
+:10660000006969696A6A6A6A6A6A6A68686868AA1F
+:10661000150059595A5A5A5A5A5A6A68686868AAE3
+:10662000155900595A5A5A5A5A5A5A68686868AAE3
+:10663000155959005A5A5A5A5A5A5A58686868AAE3
+:1066400015595959005A5A5A5A5A5A58586868AAE4
+:10665000155959595A005A5A5A5A5A58586868AAD4
+:10666000155959595A5A005A5A5A5A58586868AAC4
+:10667000155959595A5A5A005A5A5A58586868AAB4
+:10668000155959595A5A5A5A005A5A58586868AAA4
+:10669000155959595A5A5A5A5A005A58586868AA94
+:1066A000155959595A5A5A5A5A5A0058586868AA84
+:1066B000155959595A5A5A5A5A5A5A00586868AA72
+:1066C000155959595A5A5A5A5A5A5A58006868AA62
+:1066D000155959595A5A5A5A5A5A5A58580068AA62
+:1066E000155959595A5A5A5A5A5A5A58585800AA62
+:1066F000155959595A5A5A5A5A5A5A585868680084
+:10670000006565656A6262626262626060606080A4
+:10671000400055555A525252525242606060608059
+:10672000405500555A525252525252506060608049
+:10673000405555005A525252525252505060608049
+:10674000405555550052525252525250506060803E
+:10675000405555555A005252525252505060608026
+:10676000405555555A520052525252505060608016
+:10677000405555555A525200525252505060608006
+:10678000405555555A5252520052525050606080F6
+:10679000405555555A5252525200525050606080E6
+:1067A000405555555A5252525252005050606080D6
+:1067B000405555555A5252525252520050606080C4
+:1067C000405555555A5252525252525000606080B4
+:1067D000405555555A5252525252525050006080B4
+:1067E000405555555A5252525252525050500080B4
+:1067F000405555555A5252525252525050606000B4
+:10680000006565656A6262626262626260606080A1
+:10681000400055555A525252525252626060608046
+:10682000405500555A525252525252526060608046
+:10683000405555005A525252525252525060608046
+:10684000405555550052525252525252506060803B
+:10685000405555555A005252525252525060608023
+:10686000405555555A520052525252525050608023
+:10687000405555555A525200525252525050608013
+:10688000405555555A525252005252525050608003
+:10689000405555555A5252525200525250506080F3
+:1068A000405555555A5252525252005250506080E3
+:1068B000405555555A5252525252520050506080D3
+:1068C000405555555A5252525252525200506080C1
+:1068D000405555555A5252525252525250006080B1
+:1068E000405555555A5252525252525250500080B1
+:1068F000405555555A5252525252525250506000C1
+:10690000006565656A6A6262626262626060602AEE
+:10691000150055555A5A5252525252526060602ACE
+:10692000155500555A5A5252525252525060602ACE
+:10693000155555005A5A5252525252525060602ABE
+:1069400015555555005A5252525252525060602AB3
+:10695000155555555A005252525252525050602AB3
+:10696000155555555A5A0052525252525050602A9B
+:10697000155555555A5A5200525252525050602A8B
+:10698000155555555A5A5252005252525050602A7B
+:10699000155555555A5A5252520052525050602A6B
+:1069A000155555555A5A5252525200525050602A5B
+:1069B000155555555A5A5252525252005050602A4B
+:1069C000155555555A5A5252525252520050602A39
+:1069D000155555555A5A5252525252525000602A29
+:1069E000155555555A5A5252525252525050002A29
+:1069F000155555555A5A52525252525250506000E3
+:106A0000006565656A6A6262626262626260602AEB
+:106A1000150055555A5A5252525252526260602ACB
+:106A2000155500555A5A5252525252525260602ACB
+:106A3000155555005A5A5252525252525260602ABB
+:106A400015555555005A5252525252525250602AC0
+:106A5000155555555A005252525252525250602AB0
+:106A6000155555555A5A0052525252525250602A98
+:106A7000155555555A5A5200525252525250602A88
+:106A8000155555555A5A5252005252525250602A78
+:106A9000155555555A5A5252520052525250602A68
+:106AA000155555555A5A5252525200525250602A58
+:106AB000155555555A5A5252525252005250602A48
+:106AC000155555555A5A5252525252520050602A38
+:106AD000155555555A5A5252525252525200602A26
+:106AE000155555555A5A5252525252525250002A26
+:106AF000155555555A5A52525252525252506000E0
+:106B0000006565656A6A6A6262626262626060808C
+:106B1000400055555A5A5A52525252525260608051
+:106B2000405500555A5A5A52525252525260608041
+:106B3000405555005A5A5A52525252525250608041
+:106B400040555555005A5A52525252525250608036
+:106B5000405555555A005A52525252525250608026
+:106B6000405555555A5A0052525252525250608016
+:106B7000405555555A5A5A005252525252506080FE
+:106B8000405555555A5A5A520052525252506080EE
+:106B9000405555555A5A5A525200525252506080DE
+:106BA000405555555A5A5A525252005252506080CE
+:106BB000405555555A5A5A525252520052506080BE
+:106BC000405555555A5A5A525252525200506080AE
+:106BD000405555555A5A5A5252525252520060809C
+:106BE000405555555A5A5A5252525252525000809C
+:106BF000405555555A5A5A525252525252506000AC
+:106C0000006565656A6A6A62626262626262608089
+:106C1000400055555A5A5A5252525252526260804E
+:106C2000405500555A5A5A5252525252526260803E
+:106C3000405555005A5A5A5252525252525260803E
+:106C400040555555005A5A52525252525252608033
+:106C5000405555555A005A52525252525252608023
+:106C6000405555555A5A0052525252525252608013
+:106C7000405555555A5A5A005252525252526080FB
+:106C8000405555555A5A5A520052525252526080EB
+:106C9000405555555A5A5A525200525252526080DB
+:106CA000405555555A5A5A525252005252526080CB
+:106CB000405555555A5A5A525252520052526080BB
+:106CC000405555555A5A5A525252525200526080AB
+:106CD000405555555A5A5A5252525252520060809B
+:106CE000405555555A5A5A52525252525252008099
+:106CF000405555555A5A5A525252525252526000A9
+:106D00000065656569696969616161616161602AE0
+:106D10001500555559595959515151515161602AD0
+:106D20001555005559595959515151515151602AD0
+:106D30001555550059595959515151515151602AC0
+:106D40001555555500595959515151515151502AC4
+:106D50001555555559005959515151515151502AB4
+:106D60001555555559590059515151515151502AA4
+:106D70001555555559595900515151515151502A94
+:106D80001555555559595959005151515151502A7C
+:106D90001555555559595959510051515151502A6C
+:106DA0001555555559595959515100515151502A5C
+:106DB0001555555559595959515151005151502A4C
+:106DC0001555555559595959515151510051502A3C
+:106DD0001555555559595959515151515100502A2C
+:106DE0001555555559595959515151515151002A1B
+:106DF00015555555595959595151515151515000E5
+:106E00000065656569696969696161616160602AD8
+:106E10001500555559595959595151515160502AD8
+:106E20001555005559595959595151515150502AD8
+:106E30001555550059595959595151515150502AC8
+:106E40001555555500595959595151515150502ABC
+:106E50001555555559005959595151515150502AAC
+:106E60001555555559590059595151515150502A9C
+:106E70001555555559595900595151515150502A8C
+:106E80001555555559595959005151515150502A7C
+:106E90001555555559595959590051515150502A64
+:106EA0001555555559595959595100515150502A54
+:106EB0001555555559595959595151005150502A44
+:106EC0001555555559595959595151510050502A34
+:106ED0001555555559595959595151515100502A23
+:106EE0001555555559595959595151515150002A13
+:106EF00015555555595959595951515151505000DD
+:106F000000555555694949494941414141404080F1
+:106F100040005555694949494941414141404080F6
+:106F200040550055694949494941414141404080E6
+:106F300040555500694949494941414141404080D6
+:106F400040555555004949494941414141404080DA
+:106F500040555555690049494941414141404080AA
+:106F6000405555556949004949414141414040809A
+:106F7000405555556949490049414141414040808A
+:106F8000405555556949494900414141414040807A
+:106F90004055555569494949490041414140408062
+:106FA0004055555569494949494100414140408052
+:106FB0004055555569494949494141004140408042
+:106FC0004055555569494949494141410040408032
+:106FD0004055555569494949494141414100408021
+:106FE0004055555569494949494141414140008011
+:106FF0004055555569494949494141414140400041
+:1070000000555554694949494949414140404080EA
+:1070100040005555694949494949414140404080EE
+:1070200040550055694949494949414140404080DE
+:1070300040555500694949494949414140404080CE
+:1070400040555555004949494949414140404080D2
+:1070500040555555690049494949414140404080A2
+:107060004055555569490049494941414040408092
+:107070004055555569494900494941414040408082
+:107080004055555569494949004941414040408072
+:107090004055555569494949490041414040408062
+:1070A000405555556949494949490041404040804A
+:1070B000405555556949494949494100404040803A
+:1070C0004055555569494949494941410040408029
+:1070D0004055555569494949494941414000408019
+:1070E0004055555569494949494941414040008009
+:1070F0004055555569494949494941414040400039
+:1071000000959594A9A98989898981818080802A9F
+:1071100015009595A9A98989898981818080802A0E
+:1071200015950095A9A98989898981818080802AFE
+:1071300015959500A9A98989898981818080802AEE
+:107140001595959500A98989898981818080802AF2
+:1071500015959595A9008989898981818080802AE2
+:1071600015959595A9A90089898981818080802AB2
+:1071700015959595A9A98900898981818080802AA2
+:1071800015959595A9A98989008981818080802A92
+:1071900015959595A9A98989890081818080802A82
+:1071A00015959595A9A98989898900818080802A6A
+:1071B00015959595A9A98989898981008080802A5A
+:1071C00015959595A9A98989898981810080802A49
+:1071D00015959595A9A98989898981818000802A39
+:1071E00015959595A9A98989898981818080002A29
+:1071F00015959595A9A989898989818180808000C3
+:1072000000959594A9A98989898989808080802A97
+:1072100015009595A9A98989898989808080802A06
+:1072200015950095A9A98989898989808080802AF6
+:1072300015959500A9A98989898989808080802AE6
+:107240001595959500A98989898989808080802AEA
+:1072500015959595A9008989898989808080802ADA
+:1072600015959595A9A90089898989808080802AAA
+:1072700015959595A9A98900898989808080802A9A
+:1072800015959595A9A98989008989808080802A8A
+:1072900015959595A9A98989890089808080802A7A
+:1072A00015959595A9A98989898900808080802A6A
+:1072B00015959595A9A98989898989008080802A51
+:1072C00015959595A9A98989898989800080802A41
+:1072D00015959595A9A98989898989808000802A31
+:1072E00015959595A9A98989898989808080002A21
+:1072F00015959595A9A989898989898080808000BB
+:1073000000959594A9A9A989898989808080808020
+:1073100040009595A9A9A989898989808080808064
+:1073200040950095A9A9A989898989808080808054
+:1073300040959500A9A9A989898989808080808044
+:107340004095959500A9A989898989808080808048
+:1073500040959595A900A989898989808080808038
+:1073600040959595A9A90089898989808080808028
+:1073700040959595A9A9A9008989898080808080F8
+:1073800040959595A9A9A9890089898080808080E8
+:1073900040959595A9A9A9898900898080808080D8
+:1073A00040959595A9A9A9898989008080808080C8
+:1073B00040959595A9A9A9898989890080808080AF
+:1073C00040959595A9A9A98989898980008080809F
+:1073D00040959595A9A9A98989898980800080808F
+:1073E00040959595A9A9A98989898980808000807F
+:1073F00040959595A9A9A98989898980808080006F
+:1074000000959594A9A9A989898988888080808018
+:1074100040009595A9A9A98989898888808080805C
+:1074200040950095A9A9A98989898888808080804C
+:1074300040959500A9A9A98989898888808080803C
+:107440004095959500A9A989898988888080808040
+:1074500040959595A900A989898988888080808030
+:1074600040959595A9A90089898988888080808020
+:1074700040959595A9A9A9008989888880808080F0
+:1074800040959595A9A9A9890089888880808080E0
+:1074900040959595A9A9A9898900888880808080D0
+:1074A00040959595A9A9A9898989008880808080BF
+:1074B00040959595A9A9A9898989880080808080AF
+:1074C00040959595A9A9A989898988880080808097
+:1074D00040959595A9A9A989898988888000808087
+:1074E00040959595A9A9A989898988888080008077
+:1074F00040959595A9A9A989898988888080800067
+:1075000000959494A9A9A9A9898988888080802A4E
+:1075100015009594A9A9A9A9898988888080802ABD
+:1075200015950094A9A9A9A9898988888080802AAD
+:1075300015959500A9A9A9A9898988888080802A9C
+:107540001595959400A9A9A9898988888080802AA1
+:1075500015959594A900A9A9898988888080802A91
+:1075600015959594A9A900A9898988888080802A81
+:1075700015959594A9A9A900898988888080802A71
+:1075800015959594A9A9A9A9008988888080802A41
+:1075900015959594A9A9A9A9890088888080802A31
+:1075A00015959594A9A9A9A9898900888080802A20
+:1075B00015959594A9A9A9A9898988008080802A10
+:1075C00015959594A9A9A9A9898988880080802AF8
+:1075D00015959594A9A9A9A9898988888000802AE8
+:1075E00015959594A9A9A9A9898988888080002AD8
+:1075F00015959594A9A9A9A9898988888080800072
+:1076000000959494A9A9A9A9898888888880802A46
+:1076100015009594A9A9A9A9898888888880802AB5
+:1076200015950094A9A9A9A9898888888880802AA5
+:1076300015959500A9A9A9A9898888888880802A94
+:107640001595959400A9A9A9898888888880802A99
+:1076500015959594A900A9A9898888888880802A89
+:1076600015959594A9A900A9898888888880802A79
+:1076700015959594A9A9A900898888888880802A69
+:1076800015959594A9A9A9A9008888888880802A39
+:1076900015959594A9A9A9A9890088888880802A28
+:1076A00015959594A9A9A9A9898800888880802A18
+:1076B00015959594A9A9A9A9898888008880802A08
+:1076C00015959594A9A9A9A9898888880080802AF8
+:1076D00015959594A9A9A9A9898888888800802AE0
+:1076E00015959594A9A9A9A9898888888880002AD0
+:1076F00015959594A9A9A9A989888888888080006A
+:1077000000959494A9A9A9A9A988888888808080CF
+:1077100040009594A9A9A9A9A98888888880808013
+:1077200040950094A9A9A9A9A98888888880808003
+:1077300040959500A9A9A9A9A988888888808080F2
+:107740004095959400A9A9A9A988888888808080F7
+:1077500040959594A900A9A9A988888888808080E7
+:1077600040959594A9A900A9A988888888808080D7
+:1077700040959594A9A9A900A988888888808080C7
+:1077800040959594A9A9A9A90088888888808080B7
+:1077900040959594A9A9A9A9A90088888880808086
+:1077A00040959594A9A9A9A9A98800888880808076
+:1077B00040959594A9A9A9A9A98888008880808066
+:1077C00040959594A9A9A9A9A98888880080808056
+:1077D00040959594A9A9A9A9A9888888880080803E
+:1077E00040959594A9A9A9A9A9888888888000802E
+:1077F00040959594A9A9A9A9A9888888888080001E
+:1078000000959494A9A9A9A9A888888888888080C7
+:1078100040009594A9A9A9A9A8888888888880800B
+:1078200040950094A9A9A9A9A888888888888080FB
+:1078300040959500A9A9A9A9A888888888888080EA
+:107840004095959400A9A9A9A888888888888080EF
+:1078500040959594A900A9A9A888888888888080DF
+:1078600040959594A9A900A9A888888888888080CF
+:1078700040959594A9A9A900A888888888888080BF
+:1078800040959594A9A9A9A90088888888888080AE
+:1078900040959594A9A9A9A9A8008888888880807E
+:1078A00040959594A9A9A9A9A8880088888880806E
+:1078B00040959594A9A9A9A9A8888800888880805E
+:1078C00040959594A9A9A9A9A8888888008880804E
+:1078D00040959594A9A9A9A9A8888888880080803E
+:1078E00040959594A9A9A9A9A88888888888008026
+:1078F00040959594A9A9A9A9A88888888888800016
+:1079000000959494A5A5A5A4A4A484848484802A25
+:1079100015009594A5A5A5A4A4A484848484802A94
+:1079200015950094A5A5A5A4A4A484848484802A84
+:1079300015959500A5A5A5A4A4A484848484802A73
+:107940001595959400A5A5A4A4A484848484802A74
+:1079500015959594A500A5A4A4A484848484802A64
+:1079600015959594A5A500A4A4A484848484802A54
+:1079700015959594A5A5A500A4A484848484802A43
+:1079800015959594A5A5A5A400A484848484802A33
+:1079900015959594A5A5A5A4A40084848484802A23
+:1079A00015959594A5A5A5A4A4A400848484802AF3
+:1079B00015959594A5A5A5A4A4A484008484802AE3
+:1079C00015959594A5A5A5A4A4A484840084802AD3
+:1079D00015959594A5A5A5A4A4A484848400802AC3
+:1079E00015959594A5A5A5A4A4A484848484002AAF
+:1079F00015959594A5A5A5A4A4A484848484800049
+:107A000000959494A5A5A5A4A4A484848480802A28
+:107A100015009494A5A5A5A4A4A484848480802A98
+:107A200015950094A5A5A5A4A4A484848480802A87
+:107A300015959400A5A5A5A4A4A484848480802A77
+:107A40001595949400A5A5A4A4A484848480802A78
+:107A500015959494A500A5A4A4A484848480802A68
+:107A600015959494A5A500A4A4A484848480802A58
+:107A700015959494A5A5A500A4A484848480802A47
+:107A800015959494A5A5A5A400A484848480802A37
+:107A900015959494A5A5A5A4A40084848480802A27
+:107AA00015959494A5A5A5A4A4A400848480802AF7
+:107AB00015959494A5A5A5A4A4A484008480802AE7
+:107AC00015959494A5A5A5A4A4A484840080802AD7
+:107AD00015959494A5A5A5A4A4A484848400802AC3
+:107AE00015959494A5A5A5A4A4A484848480002AB3
+:107AF00015959494A5A5A5A4A4A48484848080004D
+:107B000000959494A5A5A4A4A4A4A48484808080B2
+:107B100040009494A5A5A4A4A4A4A48484808080F7
+:107B200040950094A5A5A4A4A4A4A48484808080E6
+:107B300040959400A5A5A4A4A4A4A48484808080D6
+:107B40004095949400A5A4A4A4A4A48484808080D7
+:107B500040959494A500A4A4A4A4A48484808080C7
+:107B600040959494A5A500A4A4A4A48484808080B6
+:107B700040959494A5A5A400A4A4A48484808080A6
+:107B800040959494A5A5A4A400A4A4848480808096
+:107B900040959494A5A5A4A4A400A4848480808086
+:107BA00040959494A5A5A4A4A4A400848480808076
+:107BB00040959494A5A5A4A4A4A4A4008480808046
+:107BC00040959494A5A5A4A4A4A4A4840080808036
+:107BD00040959494A5A5A4A4A4A4A4848400808022
+:107BE00040959494A5A5A4A4A4A4A4848480008012
+:107BF00040959494A5A5A4A4A4A4A4848480800002
+:107C000000949494A5A5A4A4A4A4A48480808080B6
+:107C100040009494A5A5A4A4A4A4A48480808080FA
+:107C200040950094A5A5A4A4A4A4A48480808080E9
+:107C300040959400A5A5A4A4A4A4A48480808080D9
+:107C40004095949400A5A4A4A4A4A48480808080DA
+:107C500040959494A500A4A4A4A4A48480808080CA
+:107C600040959494A5A500A4A4A4A48480808080B9
+:107C700040959494A5A5A400A4A4A48480808080A9
+:107C800040959494A5A5A4A400A4A4848080808099
+:107C900040959494A5A5A4A4A400A4848080808089
+:107CA00040959494A5A5A4A4A4A400848080808079
+:107CB00040959494A5A5A4A4A4A4A4008080808049
+:107CC00040959494A5A5A4A4A4A4A4840080808035
+:107CD00040959494A5A5A4A4A4A4A4848000808025
+:107CE00040959494A5A5A4A4A4A4A4848080008015
+:107CF00040959494A5A5A4A4A4A4A4848080800005
+:107D000000949494A5A4A4A4A4A4A4A48080802AEC
+:107D100015009494A5A4A4A4A4A4A4A48080802A5B
+:107D200015950094A5A4A4A4A4A4A4A48080802A4A
+:107D300015959400A5A4A4A4A4A4A4A48080802A3A
+:107D40001595949400A4A4A4A4A4A4A48080802A3B
+:107D500015959494A500A4A4A4A4A4A48080802A2A
+:107D600015959494A5A400A4A4A4A4A48080802A1A
+:107D700015959494A5A4A400A4A4A4A48080802A0A
+:107D800015959494A5A4A4A400A4A4A48080802AFA
+:107D900015959494A5A4A4A4A400A4A48080802AEA
+:107DA00015959494A5A4A4A4A4A400A48080802ADA
+:107DB00015959494A5A4A4A4A4A4A4008080802ACA
+:107DC00015959494A5A4A4A4A4A4A4A40080802A96
+:107DD00015959494A5A4A4A4A4A4A4A48000802A86
+:107DE00015959494A5A4A4A4A4A4A4A48080002A76
+:107DF00015959494A5A4A4A4A4A4A4A48080800010
+:107E000000949494A5A4A4A4A4A4A4A08080802AEF
+:107E100015009494A5A4A4A4A4A4A4A08080802A5E
+:107E200015950094A5A4A4A4A4A4A4A08080802A4D
+:107E300015959400A5A4A4A4A4A4A4A08080802A3D
+:107E40001595949400A4A4A4A4A4A4A08080802A3E
+:107E500015959494A500A4A4A4A4A4A08080802A2D
+:107E600015959494A5A400A4A4A4A4A08080802A1D
+:107E700015959494A5A4A400A4A4A4A08080802A0D
+:107E800015959494A5A4A4A400A4A4A08080802AFD
+:107E900015959494A5A4A4A4A400A4A08080802AED
+:107EA00015959494A5A4A4A4A4A400A08080802ADD
+:107EB00015959494A5A4A4A4A4A4A4008080802AC9
+:107EC00015959494A5A4A4A4A4A4A4A00080802A99
+:107ED00015959494A5A4A4A4A4A4A4A08000802A89
+:107EE00015959494A5A4A4A4A4A4A4A08080002A79
+:107EF00015959494A5A4A4A4A4A4A4A08080800013
+:107F000000949494A4A4A4A4A4A4A4A0A080808079
+:107F100040009494A4A4A4A4A4A4A4A0A0808080BD
+:107F200040940094A4A4A4A4A4A4A4A0A0808080AD
+:107F300040949400A4A4A4A4A4A4A4A0A08080809D
+:107F40004094949400A4A4A4A4A4A4A0A08080809D
+:107F500040949494A400A4A4A4A4A4A0A08080808D
+:107F600040949494A4A400A4A4A4A4A0A08080807D
+:107F700040949494A4A4A400A4A4A4A0A08080806D
+:107F800040949494A4A4A4A400A4A4A0A08080805D
+:107F900040949494A4A4A4A4A400A4A0A08080804D
+:107FA00040949494A4A4A4A4A4A400A0A08080803D
+:107FB00040949494A4A4A4A4A4A4A400A080808029
+:107FC00040949494A4A4A4A4A4A4A4A00080808019
+:107FD00040949494A4A4A4A4A4A4A4A0A0008080E9
+:107FE00040949494A4A4A4A4A4A4A4A0A0800080D9
+:107FF00040949494A4A4A4A4A4A4A4A0A0808000C9
+:1080000003979797A7A7A7A7A7A7A3A3A38383834C
+:1080100043039797A7A7A7A7A7A7A3A3A383838390
+:1080200043970397A7A7A7A7A7A7A3A3A383838380
+:1080300043979703A7A7A7A7A7A7A3A3A383838370
+:108040004397979703A7A7A7A7A7A3A3A383838370
+:1080500043979797A703A7A7A7A7A3A3A383838360
+:1080600043979797A7A703A7A7A7A3A3A383838350
+:1080700043979797A7A7A703A7A7A3A3A383838340
+:1080800043979797A7A7A7A703A7A3A3A383838330
+:1080900043979797A7A7A7A7A703A3A3A383838320
+:1080A00043979797A7A7A7A7A7A703A3A38383830C
+:1080B00043979797A7A7A7A7A7A7A303A3838383FC
+:1080C00043979797A7A7A7A7A7A7A3A303838383EC
+:1080D00043979797A7A7A7A7A7A7A3A3A3038383BC
+:1080E00043979797A7A7A7A7A7A7A3A3A3830383AC
+:1080F00043979797A7A7A7A7A7A7A3A3A38383039C
+:1081000000949494A4A4A4A4A4A4A0A0A0A08028B3
+:1081100014009494A4A4A4A4A4A4A0A0A0A0802823
+:1081200014940094A4A4A4A4A4A4A0A0A0A0802813
+:1081300014949400A4A4A4A4A4A4A0A0A0A0802803
+:108140001494949400A4A4A4A4A4A0A0A0A0802803
+:1081500014949494A400A4A4A4A4A0A0A0A08028F3
+:1081600014949494A4A400A4A4A4A0A0A0A08028E3
+:1081700014949494A4A4A400A4A4A0A0A0A08028D3
+:1081800014949494A4A4A4A400A4A0A0A0A08028C3
+:1081900014949494A4A4A4A4A400A0A0A0A08028B3
+:1081A00014949494A4A4A4A4A4A400A0A0A080289F
+:1081B00014949494A4A4A4A4A4A4A000A0A080288F
+:1081C00014949494A4A4A4A4A4A4A0A000A080287F
+:1081D00014949494A4A4A4A4A4A4A0A0A00080286F
+:1081E00014949494A4A4A4A4A4A4A0A0A0A000283F
+:1081F00014949494A4A4A4A4A4A4A0A0A0A08000D7
+:108200000054545454545454545050505050002816
+:108210001400545454545454545050505050002846
+:108220001454005454545454545050505050002836
+:108230001454540054545454545050505050002826
+:108240001454545400545454545050505050002816
+:108250001454545454005454545050505050002806
+:1082600014545454545400545450505050500028F6
+:1082700014545454545454005450505050500028E6
+:1082800014545454545454540050505050500028D6
+:1082900014545454545454545400505050500028C2
+:1082A00014545454545454545450005050500028B2
+:1082B00014545454545454545450500050500028A2
+:1082C0001454545454545454545050500050002892
+:1082D0001454545454545454545050505000002882
+:1082E0001454545454545454545050505050002822
+:1082F000145454545454545454505050505000003A
+:10830000005454545454545454505050100000804D
+:108310004000545454545454545050501000008051
+:108320004054005454545454545050501000008041
+:108330004054540054545454545050501000008031
+:108340004054545400545454545050501000008021
+:108350004054545454005454545050501000008011
+:108360004054545454540054545050501000008001
+:1083700040545454545454005450505010000080F1
+:1083800040545454545454540050505010000080E1
+:1083900040545454545454545400505010000080CD
+:1083A00040545454545454545450005010000080BD
+:1083B00040545454545454545450500010000080AD
+:1083C000405454545454545454505050000000805D
+:1083D000405454545454545454505050100000803D
+:1083E000405454545454545454505050100000802D
+:1083F000405454545454545454505050100000009D
+:108400000054545054545454505050101000008094
+:108410004000545054545454505050101000008098
+:108420004054005054545454505050101000008088
+:108430004054540054545454505050101000008074
+:108440004054545000545454505050101000008068
+:108450004054545054005454505050101000008058
+:108460004054545054540054505050101000008048
+:108470004054545054545400505050101000008038
+:108480004054545054545454005050101000008024
+:108490004054545054545454500050101000008014
+:1084A0004054545054545454505000101000008004
+:1084B00040545450545454545050500010000080B4
+:1084C00040545450545454545050501000000080A4
+:1084D0004054545054545454505050101000008084
+:1084E0004054545054545454505050101000008074
+:1084F00040545450545454545050501010000000E4
+:1085000000545450545454505050101040000028FF
+:10851000140054505454545050501010400000282F
+:10852000145400505454545050501010400000281F
+:10853000145454005454545050501010400000280B
+:1085400014545450005454505050101040000028FF
+:1085500014545450540054505050101040000028EF
+:1085600014545450545400505050101040000028DF
+:1085700014545450545454005050101040000028CB
+:1085800014545450545454500050101040000028BB
+:1085900014545450545454505000101040000028AB
+:1085A000145454505454545050500010400000285B
+:1085B000145454505454545050501000400000284B
+:1085C000145454505454545050501010000000286B
+:1085D000145454505454545050501010400000281B
+:1085E000145454505454545050501010400000280B
+:1085F0001454545054545450505010104000000023
+:10860000005454505454545050101010000000287E
+:1086100014005450545454505010101000000028AE
+:10862000145400505454545050101010000000289E
+:10863000145454005454545050101010000000288A
+:10864000145454500054545050101010000000287E
+:10865000145454505400545050101010000000286E
+:10866000145454505454005050101010000000285E
+:10867000145454505454540050101010000000284A
+:10868000145454505454545000101010000000283A
+:1086900014545450545454505000101000000028EA
+:1086A00014545450545454505010001000000028DA
+:1086B00014545450545454505010100000000028CA
+:1086C00014545450545454505010101000000028AA
+:1086D000145454505454545050101010000000289A
+:1086E000145454505454545050101010000000288A
+:1086F00014545450545454505010101000000000A2
+:108700000054545054545050501010000000008039
+:10871000400054505454505050101000000000803D
+:10872000405400505454505050101000000000802D
+:108730004054540054545050501010000000008019
+:10874000405454500054505050101000000000800D
+:1087500040545450540050505010100000000080FD
+:1087600040545450545400505010100000000080E9
+:1087700040545450545450005010100000000080D9
+:1087800040545450545450500010100000000080C9
+:108790004054545054545050500010000000008079
+:1087A0004054545054545050501000000000008069
+:1087B0004054545054545050501010000000008049
+:1087C0004054545054545050501010000000008039
+:1087D0004054545054545050501010000000008029
+:1087E0004054545054545050501010000000008019
+:1087F0004054545054545050501010000000000089
+:10880000005450505454505010101000000000807C
+:108810004000505054545050101010000000008080
+:10882000405400505454505010101000000000806C
+:10883000405450005454505010101000000000805C
+:108840004054505000545050101010000000008050
+:108850004054505054005050101010000000008040
+:10886000405450505454005010101000000000802C
+:10887000405450505454500010101000000000801C
+:1088800040545050545450500010100000000080CC
+:1088900040545050545450501000100000000080BC
+:1088A00040545050545450501010000000000080AC
+:1088B000405450505454505010101000000000808C
+:1088C000405450505454505010101000000000807C
+:1088D000405450505454505010101000000000806C
+:1088E000405450505454505010101000000000805C
+:1088F00040545050545450501010100000000000CC
+:108900000054505054505010101000000000002827
+:108910001400505054505010101000000000002857
+:108920001454005054505010101000000000002843
+:108930001454500054505010101000000000002833
+:108940001454505000505010101000000000002827
+:108950001454505054005010101000000000002813
+:108960001454505054500010101000000000002803
+:1089700014545050545050001010000000000028B3
+:1089800014545050545050100010000000000028A3
+:108990001454505054505010100000000000002893
+:1089A0001454505054505010101000000000002873
+:1089B0001454505054505010101000000000002863
+:1089C0001454505054505010101000000000002853
+:1089D0001454505054505010101000000000002843
+:1089E0001454505054505010101000000000002833
+:1089F000145450505450501010100000000000004B
+:108A00000054505054501010101000000000002866
+:108A10001400505054501010101000000000002896
+:108A20001454005054501010101000000000002882
+:108A30001454500054501010101000000000002872
+:108A40001454505000501010101000000000002866
+:108A50001454505054001010101000000000002852
+:108A60001454505054500010101000000000002802
+:108A700014545050545010001010000000000028F2
+:108A800014545050545010100010000000000028E2
+:108A900014545050545010101000000000000028D2
+:108AA00014545050545010101010000000000028B2
+:108AB00014545050545010101010000000000028A2
+:108AC0001454505054501010101000000000002892
+:108AD0001454505054501010101000000000002882
+:108AE0001454505054501010101000000000002872
+:108AF000145450505450101010100000000000008A
+:108B00000050505050501010100000000000008025
+:108B10004000505050501010100000000000008025
+:108B20004050005050501010100000000000008015
+:108B30004050500050501010100000000000008005
+:108B400040505050005010101000000000000080F5
+:108B500040505050500010101000000000000080E5
+:108B60004050505050500010100000000000008095
+:108B70004050505050501000100000000000008085
+:108B80004050505050501010000000000000008075
+:108B90004050505050501010100000000000008055
+:108BA0004050505050501010100000000000008045
+:108BB0004050505050501010100000000000008035
+:108BC0004050505050501010100000000000008025
+:108BD0004050505050501010100000000000008015
+:108BE0004050505050501010100000000000008005
+:108BF0004050505050501010100000000000000075
+:108C00000C5C5C4C5C1C1C1C1C0C0C0C0C0C0C8CB4
+:108C10004C0C5C4C5C1C1C1C1C0C0C0C0C0C0C8CB4
+:108C20004C5C0C4C5C1C1C1C1C0C0C0C0C0C0C8CA4
+:108C30004C5C5C0C5C1C1C1C1C0C0C0C0C0C0C8C84
+:108C40004C5C5C4C0C1C1C1C1C0C0C0C0C0C0C8C84
+:108C50004C5C5C4C5C0C1C1C1C0C0C0C0C0C0C8C34
+:108C60004C5C5C4C5C1C0C1C1C0C0C0C0C0C0C8C24
+:108C70004C5C5C4C5C1C1C0C1C0C0C0C0C0C0C8C14
+:108C80004C5C5C4C5C1C1C1C0C0C0C0C0C0C0C8C04
+:108C90004C5C5C4C5C1C1C1C1C0C0C0C0C0C0C8CE4
+:108CA0004C5C5C4C5C1C1C1C1C0C0C0C0C0C0C8CD4
+:108CB0004C5C5C4C5C1C1C1C1C0C0C0C0C0C0C8CC4
+:108CC0004C5C5C4C5C1C1C1C1C0C0C0C0C0C0C8CB4
+:108CD0004C5C5C4C5C1C1C1C1C0C0C0C0C0C0C8CA4
+:108CE0004C5C5C4C5C1C1C1C1C0C0C0C0C0C0C8C94
+:108CF0004C5C5C4C5C1C1C1C1C0C0C0C0C0C0C0C04
+:108D000000505040501010100000000000000020E3
+:108D10001000504050101010000000000000002013
+:108D20001050004050101010000000000000002003
+:108D300010505000501010100000000000000020E3
+:108D400010505040001010100000000000000020E3
+:108D50001050504050001010000000000000002093
+:108D60001050504050100010000000000000002083
+:108D70001050504050101000000000000000002073
+:108D80001050504050101010000000000000002053
+:108D90001050504050101010000000000000002043
+:108DA0001050504050101010000000000000002033
+:108DB0001050504050101010000000000000002023
+:108DC0001050504050101010000000000000002013
+:108DD0001050504050101010000000000000002003
+:108DE00010505040501010100000000000000020F3
+:108DF0001050504050101010000000000000000003
+:108E00000050504010101010000000000000002022
+:108E10001000504010101010000000000000002052
+:108E20001050004010101010000000000000002042
+:108E30001050500010101010000000000000002022
+:108E400010505040001010100000000000000020E2
+:108E500010505040100010100000000000000020D2
+:108E600010505040101000100000000000000020C2
+:108E700010505040101010000000000000000020B2
+:108E80001050504010101010000000000000002092
+:108E90001050504010101010000000000000002082
+:108EA0001050504010101010000000000000002072
+:108EB0001050504010101010000000000000002062
+:108EC0001050504010101010000000000000002052
+:108ED0001050504010101010000000000000002042
+:108EE0001050504010101010000000000000002032
+:108EF0001050504010101010000000000000000042
+:108F000000505040101010000000000000000080D1
+:108F100040005040101010000000000000000080D1
+:108F200040500040101010000000000000000080C1
+:108F300040505000101010000000000000000080A1
+:108F40004050504000101000000000000000008061
+:108F50004050504010001000000000000000008051
+:108F60004050504010100000000000000000008041
+:108F70004050504010101000000000000000008021
+:108F80004050504010101000000000000000008011
+:108F90004050504010101000000000000000008001
+:108FA00040505040101010000000000000000080F1
+:108FB00040505040101010000000000000000080E1
+:108FC00040505040101010000000000000000080D1
+:108FD00040505040101010000000000000000080C1
+:108FE00040505040101010000000000000000080B1
+:108FF0004050504010101000000000000000000021
+:1090000000504040101010000000000000000080E0
+:1090100040004040101010000000000000000080E0
+:1090200040500040101010000000000000000080C0
+:1090300040504000101010000000000000000080B0
+:109040004050404000101000000000000000008070
+:109050004050404010001000000000000000008060
+:109060004050404010100000000000000000008050
+:109070004050404010101000000000000000008030
+:109080004050404010101000000000000000008020
+:109090004050404010101000000000000000008010
+:1090A0004050404010101000000000000000008000
+:1090B00040504040101010000000000000000080F0
+:1090C00040504040101010000000000000000080E0
+:1090D00040504040101010000000000000000080D0
+:1090E00040504040101010000000000000000080C0
+:1090F0004050404010101000000000000000000030
+:10910000005040401010000000000000000000204F
+:10911000100040401010000000000000000000207F
+:10912000105000401010000000000000000000205F
+:10913000105040001010000000000000000000204F
+:10914000105040400010000000000000000000200F
+:1091500010504040100000000000000000000020FF
+:1091600010504040101000000000000000000020DF
+:1091700010504040101000000000000000000020CF
+:1091800010504040101000000000000000000020BF
+:1091900010504040101000000000000000000020AF
+:1091A000105040401010000000000000000000209F
+:1091B000105040401010000000000000000000208F
+:1091C000105040401010000000000000000000207F
+:1091D000105040401010000000000000000000206F
+:1091E000105040401010000000000000000000205F
+:1091F000105040401010000000000000000000006F
+:10920000005040001010000000000000000000208E
+:1092100010004000101000000000000000000020BE
+:10922000105000001010000000000000000000209E
+:10923000105040001010000000000000000000204E
+:10924000105040000010000000000000000000204E
+:10925000105040001000000000000000000000203E
+:10926000105040001010000000000000000000201E
+:10927000105040001010000000000000000000200E
+:1092800010504000101000000000000000000020FE
+:1092900010504000101000000000000000000020EE
+:1092A00010504000101000000000000000000020DE
+:1092B00010504000101000000000000000000020CE
+:1092C00010504000101000000000000000000020BE
+:1092D00010504000101000000000000000000020AE
+:1092E000105040001010000000000000000000209E
+:1092F00010504000101000000000000000000000AE
+:10930000005000001000000000000000000000807D
+:10931000400000001000000000000000000000807D
+:10932000405000001000000000000000000000801D
+:10933000405000001000000000000000000000800D
+:10934000405000000000000000000000000000800D
+:1093500040500000100000000000000000000080ED
+:1093600040500000100000000000000000000080DD
+:1093700040500000100000000000000000000080CD
+:1093800040500000100000000000000000000080BD
+:1093900040500000100000000000000000000080AD
+:1093A000405000001000000000000000000000809D
+:1093B000405000001000000000000000000000808D
+:1093C000405000001000000000000000000000807D
+:1093D000405000001000000000000000000000806D
+:1093E000405000001000000000000000000000805D
+:1093F00040500000100000000000000000000000CD
+:10940000005000001000000000000000000000807C
+:10941000400000001000000000000000000000807C
+:10942000405000001000000000000000000000801C
+:10943000405000001000000000000000000000800C
+:10944000405000000000000000000000000000800C
+:1094500040500000100000000000000000000080EC
+:1094600040500000100000000000000000000080DC
+:1094700040500000100000000000000000000080CC
+:1094800040500000100000000000000000000080BC
+:1094900040500000100000000000000000000080AC
+:1094A000405000001000000000000000000000809C
+:1094B000405000001000000000000000000000808C
+:1094C000405000001000000000000000000000807C
+:1094D000405000001000000000000000000000806C
+:1094E000405000001000000000000000000000805C
+:1094F00040500000100000000000000000000000CC
+:10950000000000000000000000000000000000005B
+:10951000303030303030303030303030303030304B
+:10952000000000000000000000000000000000003B
+:10953000000000000000000000000000000000002B
+:10954000000000000000000000000000000000001B
+:10955000000000000000000000000000000000000B
+:1095600000000000000000000000000000000000FB
+:1095700000000000000000000000000000000000EB
+:1095800000000000000000000000000000000000DB
+:1095900000000000000000000000000000000000CB
+:1095A00000000000000000000000000000000000BB
+:1095B00000000000000000000000000000000000AB
+:1095C000000000000000000000000000000000009B
+:1095D000000000000000000000000000000000008B
+:1095E000000000000000000000000000000000007B
+:1095F000000000000000000000000000000000006B
+:109600002A16161695959595959595959595AAA5CD
+:109610001A252526A5A5A5A5A5A5A5A5A5A5A5A504
+:109620001A252526A5A5A5A5A5A5A5A5A5A5A5A5F4
+:109630001A252525A5A5A5A5A5A5A5A5A5A5A5A5E5
+:109640005A65656525252525A5A5A5A5A5A5A5A5D5
+:109650005A65656525252525A5A5A5A5A5A5A5A5C5
+:109660005A65656525252525A5A5A5A5A5A5A5A5B5
+:109670005A65656525252525A5A5A5A5A5A5A5A5A5
+:109680005A6565656565656525252525A5A5A5A595
+:109690005A6565656565656525252525A5A5A5A585
+:1096A0005A6565656565656525252525A5A5A5A575
+:1096B0005A6565656565656525252525A5A5A5A565
+:1096C0005A65656565656565656565652525252555
+:1096D0005A65656565656565656565652525252545
+:1096E0005A65656565656565656565652525252535
+:1096F0005A65656565656565656565652525251535
+:109700002A16161695959595959595959595AAA5CC
+:109710001A252526A5A5A5A5A5A5A5A5A5A5A5A503
+:109720001A252526A5A5A5A5A5A5A5A5A5A5A5A5F3
+:109730001A252525A5A5A5A5A5A5A5A5A5A5A5A5E4
+:109740005A65656525252525A5A5A5A5A5A5A5A5D4
+:109750005A65656525252525A5A5A5A5A5A5A5A5C4
+:109760005A65656525252525A5A5A5A5A5A5A5A5B4
+:109770005A65656525252525A5A5A5A5A5A5A5A5A4
+:109780005A6565656565656525252525A5A5A5A594
+:109790005A6565656565656525252525A5A5A5A584
+:1097A0005A6565656565656525252525A5A5A5A574
+:1097B0005A6565656565656525252525A5A5A5A564
+:1097C0005A65656565656565656565652525252554
+:1097D0005A65656565656565656565652525252544
+:1097E0005A65656565656565656565652525252534
+:1097F0005A65656565656565656565652525251534
+:109800000016161A95959595959595959595AA8016
+:1098100000252626A5A5A5A5A5A5A5A5A5A5A58040
+:1098200000252526A5A5A5A5A5A5A5A5A5A5A58031
+:1098300000252525A5A5A5A5A5A5A5A5A5A5A58022
+:109840004065656525252525A5A5A5A5A5A5A58012
+:109850004065656525252525A5A5A5A5A5A5A58002
+:109860004065656525252525A5A5A5A5A5A5A580F2
+:109870004065656525252525A5A5A5A5A5A5A580E2
+:10988000406565652525252525252525A5A5A580D2
+:10989000406565652525252525252525A5A5A580C2
+:1098A000406565652525252525252525A5A5A580B2
+:1098B000406565652525252525252525A5A5A580A2
+:1098C0004065656565656565656565652525250092
+:1098D0004065656565656565656565652525250082
+:1098E0004065656565656565656565652525250072
+:1098F0004065656565656565656565652525250062
+:109900000016161A95959595959595959595AA8015
+:1099100000252626A5A5A5A5A5A5A5A5A5A5A5803F
+:1099200000252526A5A5A5A5A5A5A5A5A5A5A58030
+:1099300000252526A5A5A5A5A5A5A5A5A5A5A58020
+:109940004065656525252525A5A5A5A5A5A5A58011
+:109950004065656525252525A5A5A5A5A5A5A58001
+:109960004065656525252525A5A5A5A5A5A5A580F1
+:109970004065656525252525A5A5A5A5A5A5A580E1
+:10998000406565652525252525252525A5A5A580D1
+:10999000406565652525252525252525A5A5A580C1
+:1099A000406565652525252525252525A5A5A580B1
+:1099B000406565652525252525252525A5A5A580A1
+:1099C0004065656565656565656565652525250091
+:1099D0004065656565656565656565652525250081
+:1099E0004065656565656565656565652525250071
+:1099F0004065656565656565656565652525250061
+:109A00002A16161A95959595959595959595AAA5C5
+:109A10001A252626A5A5A5A5A5A5A5A5A5A5A6A5FE
+:109A20001A252626A5A5A5A5A5A5A5A5A5A5A5A5EF
+:109A30001A252526A5A5A5A5A5A5A5A5A5A5A5A5E0
+:109A40005A65656525252525A5A5A5A5A5A5A5A5D1
+:109A50005A65656525252525A5A5A5A5A5A5A5A5C1
+:109A60005A65656525252525A5A5A5A5A5A5A5A5B1
+:109A70005A65656525252525A5A5A5A5A5A5A5A5A1
+:109A80005A6565652525252525252525A5A5A5A591
+:109A90005A6565652525252525252525A5A5A5A581
+:109AA0005A6565652525252525252525A5A5A5A571
+:109AB0005A6565652525252525252525A5A5A5A561
+:109AC0005A65656565656565252525252525252551
+:109AD0005A65656565656565252525252525252541
+:109AE0005A65656565656565252525252525252531
+:109AF0005A65656565656565252525252525251531
+:109B00002A16161A95959595959595959595AAA5C4
+:109B10001A252626A5A5A5A5A5A5A5A5A5A5A6A5FD
+:109B20001A252626A5A5A5A5A5A5A5A5A5A5A5A5EE
+:109B30001A252526A5A5A5A5A5A5A5A5A5A5A5A5DF
+:109B40005A65656625252525A5A5A5A5A5A5A5A5CF
+:109B50005A65656525252525A5A5A5A5A5A5A5A5C0
+:109B60005A65656525252525A5A5A5A5A5A5A5A5B0
+:109B70005A65656525252525A5A5A5A5A5A5A5A5A0
+:109B80005A6565652525252525252525A5A5A5A590
+:109B90005A6565652525252525252525A5A5A5A580
+:109BA0005A6565652525252525252525A5A5A5A570
+:109BB0005A6565652525252525252525A5A5A5A560
+:109BC0005A65656565656565252525252525252550
+:109BD0005A65656565656565252525252525252540
+:109BE0005A65656565656565252525252525252530
+:109BF0005A65656565656565252525252525251530
+:109C00000016161A95959595959595959595AA8012
+:109C100000262626A5A5A5A5A5A5A5A5A5A5A6803A
+:109C200000252626A5A5A5A5A5A5A5A5A5A5A6802B
+:109C300000252526A5A5A5A5A5A5A5A5A5A5A5801D
+:109C40004065656625252525A5A5A5A5A5A5A5800D
+:109C50004065656625252525A5A5A5A5A5A5A580FD
+:109C60004065656525252525A5A5A5A5A5A5A580EE
+:109C70004065656525252525A5A5A5A5A5A5A580DE
+:109C8000406565652525252525252525A5A5A580CE
+:109C9000406565652525252525252525A5A5A580BE
+:109CA000406565652525252525252525A5A5A580AE
+:109CB000406565652525252525252525A5A5A5809E
+:109CC000406565652525252525252525252525008E
+:109CD000406565652525252525252525252525007E
+:109CE000406565652525252525252525252525006E
+:109CF000406565652525252525252525252525005E
+:109D00000016161A55555555959595959595AA8011
+:109D10000026262665656565A5A5A5A5A5A5A68039
+:109D20000025262665656565A5A5A5A5A5A5A6802A
+:109D30000025262665656565A5A5A5A5A5A5A5801B
+:109D40004065656625252525A5A5A5A5A5A5A5800C
+:109D50004065656625252525A5A5A5A5A5A5A580FC
+:109D60004065656625252525A5A5A5A5A5A5A580EC
+:109D70004065656525252525A5A5A5A5A5A5A580DD
+:109D8000406565652525252525252525A5A5A580CD
+:109D9000406565652525252525252525A5A5A580BD
+:109DA000406565652525252525252525A5A5A580AD
+:109DB000406565652525252525252525A5A5A5809D
+:109DC000406565652525252525252525252525008D
+:109DD000406565652525252525252525252525007D
+:109DE000406565652525252525252525252525006D
+:109DF000406565652525252525252525252525005D
+:109E00002A161A1A55555555959595959595AAA5BD
+:109E10001A26262665656565A5A5A5A5A5A5A6A5F9
+:109E20001A26262665656565A5A5A5A5A5A5A6A5E9
+:109E30001A25262665656565A5A5A5A5A5A5A5A5DB
+:109E40005A65656625252525A5A5A5A5A5A5A5A5CC
+:109E50005A65656625252525A5A5A5A5A5A5A5A5BC
+:109E60005A65656625252525A5A5A5A5A5A5A5A5AC
+:109E70005A65656625252525A5A5A5A5A5A5A5A59C
+:109E80005A6565652525252525252525A5A5A5A58D
+:109E90005A6565652525252525252525A5A5A5A57D
+:109EA0005A6565652525252525252525A5A5A5A56D
+:109EB0005A6565652525252525252525A5A5A5A55D
+:109EC0005A6565652525252525252525252525254D
+:109ED0005A6565652525252525252525252525253D
+:109EE0005A6565652525252525252525252525252D
+:109EF0005A6565652525252525252525252525152D
+:109F00002A161A2A15151515959595959595AAA5AC
+:109F10001A26262625252525A5A5A5A5A5A5A6A5F8
+:109F20001A26262625252525A5A5A5A5A5A5A6A5E8
+:109F30001A25262625252525A5A5A5A5A5A5A6A5D9
+:109F40001A2526262525252565656565A5A5A5A5CA
+:109F50001A2525262525252565656565A5A5A5A5BB
+:109F60001A2525262525252565656565A5A5A5A5AB
+:109F70001A2525262525252565656565A5A5A5A59B
+:109F80005A6565662525252525252525252525258B
+:109F90005A6565652525252525252525252525257C
+:109FA0005A6565652525252525252525252525256C
+:109FB0005A6565652525252525252525252525255C
+:109FC0005A6565652525252525252525252525254C
+:109FD0005A6565652525252525252525252525253C
+:109FE0005A6565652525252525252525252525252C
+:109FF0005A6565652525252525252525252525152C
+:10A0000000161A2A55555555969696959595AA80F7
+:10A010000026262665656565A5A5A5A5A5A5A68036
+:10A020000026262665656565A5A5A5A5A5A5A68026
+:10A030000025262665656565A5A5A5A5A5A5A68017
+:10A04000002526262525252565656565A5A5A58008
+:10A05000002526262525252565656565A5A5A580F8
+:10A06000002525262525252565656565A5A5A580E9
+:10A07000002525262525252565656565A5A5A580D9
+:10A0800000252526252525252525252525252500C9
+:10A0900000252526252525252525252525252500B9
+:10A0A00000252525252525252525252525252500AA
+:10A0B000002525252525252525252525252525009A
+:10A0C000002525252525252525252525252525008A
+:10A0D000002525252525252525252525252525007A
+:10A0E000002525252525252525252525252525006A
+:10A0F000002525252525252525252525252525005A
+:10A1000000161A2A15151516969696969595AA80F4
+:10A110000026262625252525A5A5A5A5A5A5A68035
+:10A120000026262625252525A5A5A5A5A5A5A68025
+:10A130000026262625252525A5A5A5A5A5A5A68015
+:10A14000002526262525252525252525A5A5A68006
+:10A15000002526262525252525252525A5A5A580F7
+:10A16000002526262525252525252525A5A5A580E7
+:10A17000002525262525252525252525A5A5A580D8
+:10A1800000252526252525252525252525252500C8
+:10A1900000252526252525252525252525252500B8
+:10A1A00000252526252525252525252525252500A8
+:10A1B0000025252525252525252525252525250099
+:10A1C0000025252525252525252525252525250089
+:10A1D0000025252525252525252525252525250079
+:10A1E0000025252525252525252525252525250069
+:10A1F0000025252525252525252525252525250059
+:10A200001A161A2A15151616969696969595AAA5B3
+:10A210001526262625252525A5A5A5A5A5A5A6A5FA
+:10A220001526262625252525A5A5A5A5A5A5A6A5EA
+:10A230001526262625252525A5A5A5A5A5A5A6A5DA
+:10A24000152526262525252565656565A5A5A6A5CB
+:10A25000152526262525252565656565A5A5A6A5BB
+:10A26000152526262525252565656565A5A5A5A5AC
+:10A27000152526262525252565656565A5A5A5A59C
+:10A28000152525262525252525252525252525258D
+:10A29000152525262525252525252525252525257D
+:10A2A000152525262525252525252525252525256D
+:10A2B000152525262525252525252525252525255D
+:10A2C000152525252525252525252525252525254E
+:10A2D000152525252525252525252525252525253E
+:10A2E000152525252525252525252525252525252E
+:10A2F000152525252525252525252525252525152E
+:10A300001A162A2A16161616969696969595AAA5A0
+:10A310001526262625252525A5A5A5A5A5A5A6A5F9
+:10A320001526262625252525A5A5A5A5A5A5A6A5E9
+:10A330001526262625252525A5A5A5A5A5A5A6A5D9
+:10A34000152626262525252525252525A5A5A6A5C9
+:10A35000152526262525252525252525A5A5A6A5BA
+:10A36000152526262525252525252525A5A5A6A5AA
+:10A37000152526262525252525252525A5A5A5A59B
+:10A38000152526262525252525252525252525258B
+:10A39000152525262525252525252525252525257C
+:10A3A000152525262525252525252525252525256C
+:10A3B000152525262525252525252525252525255C
+:10A3C000152525262525252525252525252525254C
+:10A3D000152525262525252525252525252525253C
+:10A3E000152525262525252525252525252525252C
+:10A3F000152525252525252525252525252525152D
+:10A4000000162A2A16161616969696969695AA80DD
+:10A410000026262625252525A5A5A5A5A5A5A68032
+:10A420000026262625252525A5A5A5A5A5A5A68022
+:10A430000026262625252525A5A5A5A5A5A5A68012
+:10A44000002626262525252525252525A5A5A68002
+:10A45000002626262525252525252525A5A5A680F2
+:10A46000002526262525252525252525A5A5A680E3
+:10A47000002526262525252525252525A5A5A680D3
+:10A4800000252626252525252525252525252500C4
+:10A4900000252626252525252525252525252500B4
+:10A4A00000252526252525252525252525252500A5
+:10A4B0000025252625252525252525252525250095
+:10A4C0000025252625252525252525252525250085
+:10A4D0000025252625252525252525252525250075
+:10A4E0000025252625252525252525252525250065
+:10A4F0000025252525252525252525252525250056
+:10A5000000162A2A16161616969696969696AA80DB
+:10A510000026262625252525A5A5A5A5A5A5A68031
+:10A520000026262625252525A5A5A5A5A5A5A68021
+:10A530000026262625252525A5A5A5A5A5A5A68011
+:10A54000002626262525252525252525A5A5A68001
+:10A55000002626262525252525252525A5A5A680F1
+:10A56000002626262525252525252525A5A5A680E1
+:10A57000002526262525252525252525A5A5A680D2
+:10A5800040656666252525252525252525252600C2
+:10A5900040656666252525252525252525252500B3
+:10A5A00040656666252525252525252525252500A3
+:10A5B0004065656625252525252525252525250094
+:10A5C0004065656625252525252525252525250084
+:10A5D0004065656625252525252525252525250074
+:10A5E0004065656625252525252525252525250064
+:10A5F0004065656625252525252525252525250054
+:10A600001A1A2A2A161616165656565696A6AAAA82
+:10A61000152626262525252565656565A5A5A6A6F5
+:10A62000152626262525252565656565A5A5A6A6E5
+:10A63000152626262525252565656565A5A5A6A6D5
+:10A64000152626262525252525252525A5A5A6A6C5
+:10A65000152626262525252525252525A5A5A6A6B5
+:10A66000152626262525252525252525A5A5A6A6A5
+:10A67000152626262525252525252525A5A5A6A695
+:10A680001525262625252525252525252525262686
+:10A690001525262625252525252525252525262676
+:10A6A0001525262625252525252525252525252667
+:10A6B0001525262625252525252525252525252657
+:10A6C0005565656625252525252525252525252648
+:10A6D0005565656625252525252525252525252638
+:10A6E0005565656625252525252525252525252628
+:10A6F0005565656625252525252525252525251529
+:10A700001A1A2A2A1616161656565A4696A6AAAA8D
+:10A71000152626262525252565656565A5A5A6A6F4
+:10A72000152626262525252565656565A5A5A6A6E4
+:10A73000152626262525252565656565A5A5A6A6D4
+:10A74000152626262525252525252525A5A5A6A6C4
+:10A75000152626262525252525252525A5A5A6A6B4
+:10A76000152626262525252525252525A5A5A6A6A4
+:10A77000152626262525252525252525A5A5A6A694
+:10A780001526262625252525252525252525262684
+:10A790001525262625252525252525252525262675
+:10A7A0001525262625252525252525252525262665
+:10A7B0001525262625252525252525252525252656
+:10A7C0005565666625252525252525252525252646
+:10A7D0005565666625252525252525252525252636
+:10A7E0005565666625252525252525252525252626
+:10A7F0005565666625252525252525252525251527
+:10A80000002A2A2A161616165A5A6A66A6A6AA8078
+:10A81000002626262525252565656565A5A5A6802E
+:10A82000002626262525252565656565A5A5A6801E
+:10A83000002626262525252565656565A5A5A6800E
+:10A8400000262626252525252525252525252600FE
+:10A8500000262626252525252525252525252600EE
+:10A8600000262626252525252525252525252600DE
+:10A8700000262626252525252525252525252600CE
+:10A8800000262626252525252525252525252600BE
+:10A8900000262626252525252525252525252600AE
+:10A8A000002526262525252525252525252526009F
+:10A8B000002526262525252525252525252526008F
+:10A8C000406566662525252525252525A5A5A58080
+:10A8D000406566662525252525252525A5A5A58070
+:10A8E000406566662525252525252525A5A5A58060
+:10A8F000406566662525252525252525A5A5A58050
+:10A90000002A2A2A161616165A4A6A66A6A6AA8087
+:10A91000002626262626262666666666A6A6A68023
+:10A92000002626262626262666666666A6A6A68013
+:10A93000002626262626262666666666A6A6A68003
+:10A9400000262626262626262626262626262600F3
+:10A9500000262626262626262626262626262600E3
+:10A9600000262626262626262626262626262600D3
+:10A9700000262626262626262626262626262600C3
+:10A9800000262626262626262626262626262600B3
+:10A9900000262626262626262626262626262600A3
+:10A9A0000026262626262626262626262626260093
+:10A9B0000025262626262626262626262626260084
+:10A9C000406566662626262626262626A6A6A68074
+:10A9D000406566662626262626262626A6A6A68064
+:10A9E000406566662626262626262626A6A6A68054
+:10A9F000406666662525252525252525A5A5A5804E
+:10AA00001A2A2A2A161616166A6A6A6AA6A6AAAA0E
+:10AA1000152626262626262666666666A6A6A6A6E7
+:10AA2000152626262626262666666666A6A6A6A6D7
+:10AA3000152626262626262666666666A6A6A6A6C7
+:10AA400015262626262626262626262626262626B7
+:10AA500015262626262626262626262626262626A7
+:10AA60001526262626262626262626262626262697
+:10AA70001526262626262626262626262626262687
+:10AA80001526262626262626262626262626262677
+:10AA90001526262626262626262626262626262667
+:10AAA0001526262626262626262626262626262657
+:10AAB0001526262626262626262626262626262647
+:10AAC0001525262626262626262626262626262638
+:10AAD0001525262626262626262626262626262628
+:10AAE0001525262626262626262626262626262618
+:10AAF0001526262625252525252525252525251523
+:10AB00001A2A2A2A1616162A2A2A2A2AA6A6AAAAF9
+:10AB10001526262A2626262626262626A6A6A6A6E2
+:10AB20001526262A2626262626262626A6A6A6A6D2
+:10AB30001526262A2626262626262626A6A6A6A6C2
+:10AB40001526262A262626262626262626262626B2
+:10AB50001526262A262626262626262626262626A2
+:10AB60001526262A26262626262626262626262692
+:10AB70001526262A26262626262626262626262682
+:10AB80001526262A26262626262626262626262672
+:10AB90001526262A26262626262626262626262662
+:10ABA0001526262A26262626262626262626262652
+:10ABB0001526262A26262626262626262626262642
+:10ABC0001526262A26262626262626262626262632
+:10ABD0001526262A26262626262626262626262622
+:10ABE0001526262A26262626262626262626262612
+:10ABF0001526262A2525252525252525252526151D
+:10AC0000002A2A2A1616162A2A2A2A2AAAA6AA8038
+:10AC10000026262A2626262626262626A6A6A6801C
+:10AC20000026262A2626262626262626A6A6A6800C
+:10AC30000026262A2626262626262626A6A6A680FC
+:10AC40000026262A262626262626262626262600EC
+:10AC50000026262A262626262626262626262600DC
+:10AC60000026262A262626262626262626262600CC
+:10AC70000026262A262626262626262626262600BC
+:10AC80000026262A262626262626262626262600AC
+:10AC90000026262A2626262626262626262626009C
+:10ACA0000026262A2626262626262626262626008C
+:10ACB0000026262A2626262626262626262626007C
+:10ACC0000026262A2626262626262626262626006C
+:10ACD0000026262A2626262626262626262626005C
+:10ACE0000026262A1626262626262626262626005C
+:10ACF0000026262A25252525252525252525260046
+:10AD0000002A2A2A16162A2A2A2A2A2AAAAAAA801F
+:10AD10000026262A2626262626262A26A6A6A68017
+:10AD20000026262A2626262626262626A6A6A6800B
+:10AD30000026262A2626262626262626A6A6A680FB
+:10AD40000026262A262626262626262626262600EB
+:10AD50000026262A262626262626262626262600DB
+:10AD60000026262A262626262626262626262600CB
+:10AD70000026262A262626262626262626262600BB
+:10AD80000026262A262626262626262626262600AB
+:10AD90000026262A2626262626262626262626009B
+:10ADA0000026262A2626262626262626262626008B
+:10ADB0000026262A2626262626262626262626007B
+:10ADC0000026262A2626262626262626262626006B
+:10ADD0000026262A1626262626262626262626006B
+:10ADE0000026262A1626262626262626262626005B
+:10ADF0000026262A25252525252626262625260041
+:10AE00001A2A2A2A161A2A2A2A2A2A2AAAAAAAAAD6
+:10AE10001526262A2626262626262A26A6A6A6A6DB
+:10AE20001526262A2626262626262626A6A6A6A6CF
+:10AE30001526262A2626262626262626A6A6A6A6BF
+:10AE40001526262A262626262626262626262626AF
+:10AE50001526262A2626262626262626262626269F
+:10AE60001526262A2626262626262626262626268F
+:10AE70001526262A2626262626262626262626267F
+:10AE80001526262A2626262626262626262626266F
+:10AE90001526262A2626262626262626262626265F
+:10AEA0001526262A2626262626262626262626264F
+:10AEB0001526262A2626262626262626262626263F
+:10AEC0001526262A2626262626262626262626262F
+:10AED0001526262A1626262626262626262626262F
+:10AEE0001526262A1626262626262626262626261F
+:10AEF0001526262A25252525262626262625261515
+:10AF00001A2A2A2A1A1A2A2A2A2A2A2A2A2A2A2AD1
+:10AF100015262A2A26262626262A2A2A2A262A26C6
+:10AF200015262A2A2626262626262A2626262626C6
+:10AF300015262A2A262626262626262626262626BA
+:10AF400015262A2A262626262626262626262626AA
+:10AF500015262A2A2626262626262626262626269A
+:10AF600015262A2A1626262626262626262626269A
+:10AF700015262A2A1626262626262626262626268A
+:10AF800015262A2A1626262626262626262626267A
+:10AF900015262A2A1626262626262626262626266A
+:10AFA00015262A2A1626262626262626262626265A
+:10AFB00015262A2A1626262626262626262626264A
+:10AFC00015262A2A1626262626262626262626263A
+:10AFD00015262A2A1626262626262626262626262A
+:10AFE00015262A2A1626262626262626262626261A
+:10AFF00015262A2A1525262626262626262626151D
+:10B00000002A2A2A1A2A2A2A2A2A2A2A2A2A2A0004
+:10B0100000262A2A262626262A2A2A2A2A262A00FC
+:10B0200000262A2A2626262626262A262626260000
+:10B0300000262A2A262626262626262626262600F4
+:10B0400000262A2A262626262626262626262600E4
+:10B0500000262A2A162626262626262626262600E4
+:10B0600000262A2A162626262626262626262600D4
+:10B0700000262A2A162626262626262626262600C4
+:10B0800000262A2A162626262626262626262600B4
+:10B0900000262A2A162626262626262626262600A4
+:10B0A00000262A2A16262626262626262626260094
+:10B0B00000262A2A16262626262626262626260084
+:10B0C00000262A2A16262626262626262626260074
+:10B0D00000262A2A1626262626262A262626260060
+:10B0E00000262A2A16262626262626262626260054
+:10B0F00000262A2A15262626262626262626260045
+:10B10000C0EAEAEADAEAEAEAEAEAEAEAEAEAEAC003
+:10B11000C0E6EAEAE6E6E6E6EAEAEAEAEAEAEAC0F7
+:10B12000C0E6EAEAE6E6E6E6E6EAEAEAEAE6EAC0EF
+:10B13000C0E6EAEAE6E6E6E6E6E6EAE6E6E6EAC0EB
+:10B14000C0E6EAEAD6E6E6E6E6E6EAE6E6E6EAC0EB
+:10B15000C0E6EAEAD6E6E6E6E6E6EAE6E6E6EAC0DB
+:10B16000C0E6EAEAD6E6E6E6E6E6EAE6E6E6EAC0CB
+:10B17000C0E6EAEAD6E6E6E6E6E6EAE6E6E6EAC0BB
+:10B18000C0E6EAEAD6E6E6E6E6E6E6E6E6E6EAC0AF
+:10B19000C0E6EAEAD6E6E6E6E6E6E6E6E6E6EAC09F
+:10B1A000C0E6EAEAD6E6E6E6E6E6E6E6E6E6EAC08F
+:10B1B000C0E6EAEAD6E6E6E6E6E6E6E6E6E6EAC07F
+:10B1C000C0E6EAEAD6E6E6E6E6E6E6E6E6E6EAC06F
+:10B1D000C0E6EAEAD6E6E6E6E6E6EAE6E6E6EAC05B
+:10B1E000C0E6EAEAD6D6E6E6E6E6EAE6E6E6EAC05B
+:10B1F000C0E6EAEAD6E6E6E6E6E6E6E6E6E6EAC03F
+:10B200001A2A2A2A1A2A2A2A2A2A2A2A2A2A2A2ABE
+:10B2100015262A2A2626262A2A2A2A2A2A2A2A26B7
+:10B2200015262A2A262626262A2A2A2A2A262A26AF
+:10B2300015262A2A1626262626262A2626262A26BF
+:10B2400015262A2A1626262626262A2626262A26AF
+:10B2500015262A2A1626262626262A2626262A269F
+:10B2600015262A2A1626262626262A2626262A268F
+:10B2700015262A2A1626262626262A2626262A267F
+:10B2800015262A2A1626262626262A2626262A266F
+:10B2900015262A2A1626262626262A2626262A265F
+:10B2A00015262A2A1626262626262A2626262A264F
+:10B2B00015262A2A1626262626262A2626262A263F
+:10B2C00015262A2A1626262626262A2626262A262F
+:10B2D00015262A2A16162626262A2A2A2A262A2623
+:10B2E00015262A2A1616262626262A2626262A261F
+:10B2F00015262A2A162626262626262626262A1514
+:10B300001A2A2A2A2A2A2A2A2A2A2A2A2A2A2A2AAD
+:10B31000152A2A2A2626262A2A2A2A2A2A2A2A26B2
+:10B32000152A2A2A262626262A2A2A2A2A2A2A26A6
+:10B33000152A2A2A16262626262A2A2A2A262A26AE
+:10B34000152A2A2A16262626262A2A2A2A262A269E
+:10B35000152A2A2A16262626262A2A2A2A262A268E
+:10B36000152A2A2A16262626262A2A2A2A262A267E
+:10B37000152A2A2A16262626262A2A2A2A262A266E
+:10B38000152A2A2A1626262626262A2626262A266A
+:10B39000152A2A2A1626262626262A2626262A265A
+:10B3A000152A2A2A1626262626262A2626262A264A
+:10B3B000152A2A2A1626262626262A2626262A263A
+:10B3C000152A2A2A1626262626262A2626262A262A
+:10B3D000152A2A2A161626262A2A2A2A2A262A261A
+:10B3E000152A2A2A16162626262A2A2A2A262A260E
+:10B3F000152A2A2A1626262626262A2626262A150B
+:10B40000002A2A2A2A2A2A2A2A2A2A2A2A2A2A00F0
+:10B41000002A2A2A26262A2A2A2A2A2A2A2A2A00E8
+:10B42000002A2A2A1626262A2A2A2A2A2A2A2A00EC
+:10B43000002A2A2A162626262A2A2A2A2A262A00E4
+:10B44000002A2A2A162626262A2A2A2A2A262A00D4
+:10B45000002A2A2A162626262A2A2A2A2A262A00C4
+:10B46000002A2A2A161626262A2A2A2A2A262A00C4
+:10B47000002A2A2A161626262A2A2A2A2A262A00B4
+:10B48000002A2A2A16162626262A2A2A2A262A00A8
+:10B49000002A2A2A16162626262A2A2A2A262A0098
+:10B4A000002A2A2A16162626262A2A2A2A262A0088
+:10B4B000002A2A2A16162626262A2A2A2A262A0078
+:10B4C000002A2A2A16162626262A2A2A2A262A0068
+:10B4D000002A2A2A161626262A2A2A2A2A2A2A0050
+:10B4E000002A2A2A161616262A2A2A2A2A262A0054
+:10B4F000002A2A2A1616262626262A2626262A0044
+:10B50000002A2A2A2A2A2A2A2A2A2A2A2A2A2A00EF
+:10B51000001A2A2A262A2A2A2A2A2A2A2A2A2A00F3
+:10B52000001A2A2A1626262A2A2A2A2A2A2A2A00FB
+:10B53000001A2A2A162626262A2A2A2A2A2A2A00EF
+:10B54000001A2A2A162626262A2A2A2A2A2A2A00DF
+:10B55000001A2A2A161626262A2A2A2A2A2A2A00DF
+:10B56000001A2A2A161626262A2A2A2A2A2A2A00CF
+:10B57000001A2A2A161626262A2A2A2A2A262A00C3
+:10B58000001A2A2A161626262A2A2A2A2A262A00B3
+:10B59000001A2A2A161626262A2A2A2A2A262A00A3
+:10B5A000001A2A2A161626262A2A2A2A2A262A0093
+:10B5B000001A2A2A161626262A2A2A2A2A262A0083
+:10B5C000001A2A2A161626262A2A2A2A2A262A0073
+:10B5D000001A2A2A1616162A2A2A2A2A2A2A2A006B
+:10B5E000001A2A2A161616262A2A2A2A2A2A2A005F
+:10B5F000001A2A2A16162626262A2A2A2A262A0047
+:10B60000152A2A2A2A2A2A2A2A2A2A2A2A2A2A2AAF
+:10B61000151A2A2A162A2A2A2A2A2A2A2A2A2A26C7
+:10B62000151A2A2A16262A2A2A2A2A2A2A2A2A26BB
+:10B63000151A2A2A1626262A2A2A2A2A2A2A2A26AF
+:10B64000151A2A2A1616262A2A2A2A2A2A2A2A26AF
+:10B65000151A2A2A1616262A2A2A2A2A2A2A2A269F
+:10B66000151A2A2A1616262A2A2A2A2A2A2A2A268F
+:10B67000151A2A2A1616262A2A2A2A2A2A2A2A267F
+:10B68000151A2A2A161626262A2A2A2A2A2A2A2673
+:10B69000151A2A2A161626262A2A2A2A2A2A2A2663
+:10B6A000151A2A2A161626262A2A2A2A2A2A2A2653
+:10B6B000151A2A2A161626262A2A2A2A2A2A2A2643
+:10B6C000151A2A2A161626262A2A2A2A2A2A2A2633
+:10B6D000151A2A2A1616162A2A2A2A2A2A2A2A262F
+:10B6E000151A2A2A1616162A2A2A2A2A2A2A2A261F
+:10B6F000151A2A2A161626262A2A2A2A2A262A1617
+:10B70000152A2A2A2A2A2A2A2A2A2A2A2A2A2A2AAE
+:10B71000151A2A2A1A2A2A2A2A2A2A2A2A2A2A26C2
+:10B72000151A2A2A162A2A2A2A2A2A2A2A2A2A26B6
+:10B73000151A2A2A1616262A2A2A2A2A2A2A2A26BE
+:10B74000151A2A2A1616262A2A2A2A2A2A2A2A26AE
+:10B75000151A2A2A1616262A2A2A2A2A2A2A2A269E
+:10B76000151A2A2A1616162A2A2A2A2A2A2A2A269E
+:10B77000151A2A2A1616162A2A2A2A2A2A2A2A268E
+:10B78000151A2A2A1616162A2A2A2A2A2A2A2A267E
+:10B79000151A2A2A1616162A2A2A2A2A2A2A2A266E
+:10B7A000151A2A2A1616162A2A2A2A2A2A2A2A265E
+:10B7B000151A2A2A1616162A2A2A2A2A2A2A2A264E
+:10B7C000151A2A2A1616162A2A2A2A2A2A2A2A263E
+:10B7D000151A2A2A16161A2A2A2A2A2A2A2A2A262A
+:10B7E000151A2A2A1616161A2A2A2A2A2A2A2A262E
+:10B7F000151A2A2A161616262A2A2A2A2A2A2A1622
+:10B80000002A2A2A2A2A2A2A2A2A2A2A2A2A2A00EC
+:10B81000001A2A2A1A2A2A2A2A2A2A2A2A2A2A00FC
+:10B82000001A2A2A162A2A2A2A2A2A2A2A2A2A00F0
+:10B83000001A2A2A16162A2A2A2A2A2A2A2A2A00F4
+:10B84000001A2A2A16162A2A2A2A2A2A2A2A2A00E4
+:10B85000001A2A2A16161A2A2A2A2A2A2A2A2A00E4
+:10B86000001A2A2A16161A2A2A2A2A2A2A2A2A00D4
+:10B87000001A2A2A16161A2A2A2A2A2A2A2A2A00C4
+:10B88000001A2A2A1616162A2A2A2A2A2A2A2A00B8
+:10B89000001A2A2A1616162A2A2A2A2A2A2A2A00A8
+:10B8A000001A2A2A1616162A2A2A2A2A2A2A2A0098
+:10B8B000001A2A2A1616162A2A2A2A2A2A2A2A0088
+:10B8C000001A2A2A1616162A2A2A2A2A2A2A2A0078
+:10B8D000001A2A2A161A1A1A2A2A2A2A2A2A2A0070
+:10B8E000001A2A2A16161A1A2A2A2A2A2A2A2A0064
+:10B8F000001A2A2A1616162A2A2A2A2A2A2A2A0048
+:10B90000002A2A2A2A2A2A2A2A2A2A2A2A2A2A00EB
+:10B91000001A1A2A1A2A2A2A2A2A2A2A2A2A2A000B
+:10B92000001A1A2A1A1A2A2A2A2A2A2A2A2A2A000B
+:10B93000001A1A2A161A2A2A2A2A2A2A2A2A2A00FF
+:10B94000001A1A2A161A1A2A2A2A2A2A2A2A2A00FF
+:10B95000001A1A2A161A1A2A2A2A2A2A2A2A2A00EF
+:10B96000001A1A2A161A1A2A2A2A2A2A2A2A2A00DF
+:10B97000001A1A2A161A1A2A2A2A2A2A2A2A2A00CF
+:10B98000001A1A2A16161A2A2A2A2A2A2A2A2A00C3
+:10B99000001A1A2A16161A2A2A2A2A2A2A2A2A00B3
+:10B9A000001A1A2A16161A2A2A2A2A2A2A2A2A00A3
+:10B9B000001A1A2A16161A2A2A2A2A2A2A2A2A0093
+:10B9C000001A1A2A16161A2A2A2A2A2A2A2A2A0083
+:10B9D000001A1A2A161A1A1A2A2A2A2A2A2A2A007F
+:10B9E000001A1A2A161A1A1A2A2A2A2A2A2A2A006F
+:10B9F000001A1A2A1616162A2A2A2A2A2A2A2A0057
+:10BA0000152A2A2A2A2A2A2A2A2A2A2A2A2A2A2AAB
+:10BA1000151A1A2A1A2A2A2A2A2A2A2A2A2A2A2ACB
+:10BA2000151A1A2A1A1A2A2A2A2A2A2A2A2A2A2ACB
+:10BA3000151A1A2A161A1A2A2A2A2A2A2A2A2A2ACF
+:10BA4000151A1A2A161A1A2A2A2A2A2A2A2A2A2ABF
+:10BA5000151A1A2A161A1A2A2A2A2A2A2A2A2A2AAF
+:10BA6000151A1A2A161A1A1A2A2A2A2A2A2A2A2AAF
+:10BA7000151A1A2A161A1A1A2A2A2A2A2A2A2A2A9F
+:10BA8000151A1A2A161A1A1A2A2A2A2A2A2A2A2A8F
+:10BA9000151A1A2A161A1A1A2A2A2A2A2A2A2A2A7F
+:10BAA000151A1A2A161A1A1A2A2A2A2A2A2A2A2A6F
+:10BAB000151A1A2A161A1A1A2A2A2A2A2A2A2A2A5F
+:10BAC000151A1A2A161A1A1A2A2A2A2A2A2A2A2A4F
+:10BAD000151A1A2A1A1A1A1A2A2A2A2A2A2A2A2A3B
+:10BAE000151A1A2A161A1A1A1A2A2A2A2A2A2A2A3F
+:10BAF000151A1A2A16161A1A2A2A2A2A2A2A2A1A33
+:10BB0000152A2A2A2A2A2A2A2A2A2A2A2A2A2A2AAA
+:10BB1000151A1A2A1A1A2A2A2A2A2A2A2A2A2A2ADA
+:10BB2000151A1A2A1A1A2A2A2A2A2A2A2A2A2A2ACA
+:10BB3000151A1A2A1A1A1A2A2A2A2A2A2A2A2A2ACA
+:10BB4000151A1A2A1A1A1A2A2A2A2A2A2A2A2A2ABA
+:10BB5000151A1A2A1A1A1A1A2A2A2A2A2A2A2A2ABA
+:10BB6000151A1A2A1A1A1A1A2A2A2A2A2A2A2A2AAA
+:10BB7000151A1A2A1A1A1A1A2A2A2A2A2A2A2A2A9A
+:10BB8000151A1A2A161A1A1A2A2A2A2A2A2A2A2A8E
+:10BB9000151A1A2A161A1A1A2A2A2A2A2A2A2A2A7E
+:10BBA000151A1A2A161A1A1A2A2A2A2A2A2A2A2A6E
+:10BBB000151A1A2A161A1A1A2A2A2A2A2A2A2A2A5E
+:10BBC000151A1A2A161A1A1A2A2A2A2A2A2A2A2A4E
+:10BBD000151A1A2A1A1A1A1A1A2A2A2A2A2A2A2A4A
+:10BBE000151A1A2A1A1A1A1A1A2A2A2A2A2A2A2A3A
+:10BBF000151A1A2A161A1A1A2A2A2A2A2A2A2A1A2E
+:10BC0000002929292A2828282828282828282800FF
+:10BC1000001919291A18282828282828282828002F
+:10BC2000001919291A18182828282828282828002F
+:10BC3000001919291A18182828282828282828001F
+:10BC4000001919291A18181828282828282828001F
+:10BC5000001919291A18181828282828282828000F
+:10BC6000001919291A1818182828282828282800FF
+:10BC7000001919291A1818182828282828282800EF
+:10BC8000001919291A1818182828282828282800DF
+:10BC9000001919291A1818182828282828282800CF
+:10BCA000001919291A1818182828282828282800BF
+:10BCB000001919291A1818182828282828282800AF
+:10BCC000001919291A18181828282828282828009F
+:10BCD000001919291A18181818282828282828009F
+:10BCE000001919291A18181818182828282828009F
+:10BCF0000019192916181818282828282828280073
+:10BD0000002929292A2828282828282828282800FE
+:10BD1000001919291A18282828282828282828002E
+:10BD2000001919291A18182828282828282828002E
+:10BD3000001919291A18181828282828282828002E
+:10BD4000001919291A18181828282828282828001E
+:10BD5000001919291A18181828282828282828000E
+:10BD6000001919291A18181818282828282828000E
+:10BD7000001919291A1818181828282828282800FE
+:10BD8000001919291A1818181828282828282800EE
+:10BD9000001919291A1818181828282828282800DE
+:10BDA000001919291A1818181828282828282800CE
+:10BDB000001919291A1818181828282828282800BE
+:10BDC000001919291A1818181828282828282800AE
+:10BDD000001919291A1818181818282828282800AE
+:10BDE000001919291A18181818182828282828009E
+:10BDF000001919291A18181818282828282828007E
+:10BE0000152929292A2A2828282828282828282ABC
+:10BE1000151919291A1A1828282828282828282AFC
+:10BE2000151919291A1A1828282828282828282AEC
+:10BE3000151919291A1A1818282828282828282AEC
+:10BE4000151919291A1A1818282828282828282ADC
+:10BE5000151919291A1A1818182828282828282ADC
+:10BE6000151919291A1A1818182828282828282ACC
+:10BE7000151919291A1A1818182828282828282ABC
+:10BE8000151919291A1A1818182828282828282AAC
+:10BE9000151919291A1A1818182828282828282A9C
+:10BEA000151919291A1A1818182828282828282A8C
+:10BEB000151919291A1A1818182828282828282A7C
+:10BEC000151919291A1A1818182828282828282A6C
+:10BED000151919291A1A1818181828282828282A6C
+:10BEE000151919291A1A1818181808282828282A7C
+:10BEF000151919291A1A1818182828282828282A3C
+:10BF0000152929292A2A2828282828282828282ABB
+:10BF1000151919191A1A1828282828282828282A0B
+:10BF2000151919191A1A1818282828282828282A0B
+:10BF3000151919191A1A1818282828282828282AFB
+:10BF4000151919191A1A1818182828282828282AFB
+:10BF5000151919191A1A1818182828282828282AEB
+:10BF6000151919191A1A1818181828282828282AEB
+:10BF7000151919191A1A1818181828282828282ADB
+:10BF8000151919191A1A1818181828282828282ACB
+:10BF9000151919191A1A1818181828282828282ABB
+:10BFA000151919191A1A1818181828282828282AAB
+:10BFB000151919191A1A1818181828282828282A9B
+:10BFC000151919191A1A1818181828282828282A8B
+:10BFD000151919191A1A1818181808282828282A9B
+:10BFE000151919191A1A1818181818282828282A7B
+:10BFF000151919191A1A1818181828282828282A5B
+:10C00000002929292A2A2A282828282828282800F7
+:10C01000001919191A1A1A28282828282828280047
+:10C02000001919191A1A1A18282828282828280047
+:10C03000001919191A1A1A18182828282828280047
+:10C04000001919191A1A1A18182828282828280037
+:10C05000001919191A1A1A18181828282828280037
+:10C06000001919191A1A1A18181828282828280027
+:10C07000001919191A1A1A18181828282828280017
+:10C08000001919191A1A1A18181828282828280007
+:10C09000001919191A1A1A181818282828282800F7
+:10C0A000001919191A1A1A181818282828282800E7
+:10C0B000001919191A1A1A181818282828282800D7
+:10C0C000001919191A1A1A181818282828282800C7
+:10C0D000001919191A1A1A181818182828282800C7
+:10C0E000001919191A1A1A181818181828282800C7
+:10C0F000001919191A1A1A18181828282828280097
+:10C10000002929292A2A2A282828282828282800F6
+:10C11000001919191A1A1A18282828282828280056
+:10C12000001919191A1A1A18282828282828280046
+:10C13000001919191A1A1A18182828282828280046
+:10C14000001919191A1A1A18181828282828280046
+:10C15000001919191A1A1A18181828282828280036
+:10C16000001919191A1A1A18181808282828280046
+:10C17000001919191A1A1A18181808282828280036
+:10C18000001919191A1A1A18181808282828280026
+:10C19000001919191A1A1A18181808282828280016
+:10C1A000001919191A1A1A18181808282828280006
+:10C1B000001919191A1A1A181818082828282800F6
+:10C1C000001919191A1A1A181818082828282800E6
+:10C1D000001919191A1A1A181818181828282800D6
+:10C1E000001919191A1A1A181818181828282800C6
+:10C1F000001919191A1A1A181818082828282800B6
+:10C20000152929292A2A2A2A282828282828282AB4
+:10C21000151919191A1A1A1A282828282828282A14
+:10C22000151919191A1A1A1A182828282828282A14
+:10C23000151919191A1A1A1A181828282828282A14
+:10C24000151919191A1A1A1A181828282828282A04
+:10C25000151919191A1A1A1A181808282828282A14
+:10C26000151919191A1A1A1A181818282828282AF4
+:10C27000151919191A1A1A1A181818282828282AE4
+:10C28000151919191A1A1A1A181818282828282AD4
+:10C29000151919191A1A1A1A181818282828282AC4
+:10C2A000151919191A1A1A1A181818282828282AB4
+:10C2B000151919191A1A1A1A181818282828282AA4
+:10C2C000151919191A1A1A1A181818282828282A94
+:10C2D000151919191A1A1A1A181818182828282A94
+:10C2E000151919191A1A1A1A181818181828282A94
+:10C2F000151919191A1A1A1A181818282828282A64
+:10C30000152929292A2A2A2A2A2828282828282AB1
+:10C31000151919191A1A1A1A2A2828282828282A11
+:10C32000151919191A1A1A1A1A2828282828282A11
+:10C33000151919191A1A1A1A1A1828282828282A11
+:10C34000151919191A1A1A1A1A1808282828282A21
+:10C35000151919191A1A1A1A1A1818282828282A01
+:10C36000151919191A1A1A1A1A1818182828282A01
+:10C37000151919191A1A1A1A1A1818182828282AF1
+:10C38000151919191A1A1A1A1A1818182828282AE1
+:10C39000151919191A1A1A1A1A1818182828282AD1
+:10C3A000151919191A1A1A1A1A1818182828282AC1
+:10C3B000151919191A1A1A1A1A1818182828282AB1
+:10C3C000151919191A1A1A1A1A1818182828282AA1
+:10C3D000151919191A1A1A1A1A1818181828282AA1
+:10C3E000151919191A1A1A1A1A1818181828282A91
+:10C3F000151919191A1A1A1A1A1818182828282A71
+:10C40000002929292A2A2A2A2A28282828282800EF
+:10C41000001919191A1A1A1A1A282828282828005F
+:10C42000001919191A1A1A1A1A182828282828005F
+:10C43000001919191A1A1A1A1A180828282828006F
+:10C44000001919191A1A1A1A1A181828282828004F
+:10C45000001919191A1A1A1A1A181818282828004F
+:10C46000001919191A1A1A1A1A181818282828003F
+:10C47000001919191A1A1A1A1A181818282828002F
+:10C48000001919191A1A1A1A1A181818282828001F
+:10C49000001919191A1A1A1A1A181818282828000F
+:10C4A000001919191A1A1A1A1A18181828282800FF
+:10C4B000001919191A1A1A1A1A18181828282800EF
+:10C4C000001919191A1A1A1A1A18181828282800DF
+:10C4D000001919191A1A1A1A1A18181818282800DF
+:10C4E000001919191A1A1A1A1A18181818282800CF
+:10C4F000001919191A1A1A1A1A18181828282800AF
+:10C50000002929292A2A2A2A2A2A282828282800EC
+:10C51000001919191A1A1A1A1A2A2828282828005C
+:10C52000001919191A1A1A1A1A1A2828282828005C
+:10C53000001919191A1A1A1A1A1A1828282828005C
+:10C54000001919191A1A1A1A1A1A1818282828005C
+:10C55000001919191A1A1A1A1A1A1818282828004C
+:10C56000001919191A1A1A1A1A1A1818182828004C
+:10C57000001919191A1A1A1A1A1A1818182828003C
+:10C58000001919191A1A1A1A1A1A1818182828002C
+:10C59000001919191A1A1A1A1A1A1818182828001C
+:10C5A000001919191A1A1A1A1A1A1818182828000C
+:10C5B000001919191A1A1A1A1A1A181818282800FC
+:10C5C000001919191A1A1A1A1A1A181818282800EC
+:10C5D000001919191A1A1A1A1A1A181818282800DC
+:10C5E000001919191A1A1A1A1A1A181818282800CC
+:10C5F000001919191A1A1A1A1A1A181818282800BC
+:10C60000152929292A2A2A2A2A2A28282828282AAC
+:10C61000151919191A1A1A1A1A1A28282828282A2C
+:10C62000151919191A1A1A1A1A1A08282828282A3C
+:10C63000151919191A1A1A1A1A1A18182828282A2C
+:10C64000151919191A1A1A1A1A1A18182828282A1C
+:10C65000151919191A1A1A1A1A1A18181828282A1C
+:10C66000151919191A1A1A1A1A1A18181828282A0C
+:10C67000151919191A1A1A1A1A1A18181828282AFC
+:10C68000151919191A1A1A1A1A1A18181828282AEC
+:10C69000151919191A1A1A1A1A1A18181828282ADC
+:10C6A000151919191A1A1A1A1A1A18181828282ACC
+:10C6B000151919191A1A1A1A1A1A18181828282ABC
+:10C6C000151919191A1A1A1A1A1A18181828282AAC
+:10C6D000151919191A1A1A1A1A1A18181828282A9C
+:10C6E000151919191A1A1A1A1A1A18181818282A9C
+:10C6F000151919191A1A1A1A1A1A18181828282A7C
+:10C70000152929292A2A2A2A2A2A2A282828282AA9
+:10C71000151919191A1A1A1A1A1A2A282828282A29
+:10C72000151919191A1A1A1A1A1A1A282828282A29
+:10C73000151919191A1A1A1A1A1A1A182828282A29
+:10C74000151919191A1A1A1A1A1A1A181828282A29
+:10C75000151919191A1A1A1A1A1A1A181828282A19
+:10C76000151919191A1A1A1A1A1A1A181828282A09
+:10C77000151919191A1A1A1A1A1A1A181828282AF9
+:10C78000151919191A1A1A1A1A1A1A181828282AE9
+:10C79000151919191A1A1A1A1A1A1A181828282AD9
+:10C7A000151919191A1A1A1A1A1A1A181828282AC9
+:10C7B000151919191A1A1A1A1A1A1A181828282AB9
+:10C7C000151919191A1A1A1A1A1A1A181828282AA9
+:10C7D000151919191A1A1A1A1A1A1A181818282AA9
+:10C7E000151919191A1A1A1A1A1A1A181818282A99
+:10C7F000151919191A1A1A1A1A1A1A181828282A79
+:10C80000002525252A222222222222202020200043
+:10C81000001515151A1212121212022020202000E3
+:10C82000001515151A1212121212121020202000D3
+:10C83000001515151A1212121212121010202000D3
+:10C84000001515151A1212121212121010202000C3
+:10C85000001515151A1212121212121010202000B3
+:10C86000001515151A1212121212121010202000A3
+:10C87000001515151A121212121212101020200093
+:10C88000001515151A121212121212101020200083
+:10C89000001515151A121212121212101020200073
+:10C8A000001515151A121212121212101020200063
+:10C8B000001515151A121212121212101020200053
+:10C8C000001515151A121212121212101020200043
+:10C8D000001515151A121212121212101010200043
+:10C8E000001515151A121212121212101010200033
+:10C8F000001515151A121212121212101020200013
+:10C90000002525252A222222222222222020200040
+:10C91000001515151A1212121212122220202000D0
+:10C92000001515151A1212121212121220202000D0
+:10C93000001515151A1212121212121210202000D0
+:10C94000001515151A1212121212121210202000C0
+:10C95000001515151A1212121212121210202000B0
+:10C96000001515151A1212121212121210102000B0
+:10C97000001515151A1212121212121210102000A0
+:10C98000001515151A121212121212121010200090
+:10C99000001515151A121212121212121010200080
+:10C9A000001515151A121212121212121010200070
+:10C9B000001515151A121212121212121010200060
+:10C9C000001515151A121212121212121010200050
+:10C9D000001515151A121212121212121010200040
+:10C9E000001515151A121212121212121010200030
+:10C9F000001515151A121212121212121010200020
+:10CA0000152525252A2A2222222222222020202AF8
+:10CA1000151515151A1A1212121212122020202A98
+:10CA2000151515151A1A1212121212121020202A98
+:10CA3000151515151A1A1212121212121020202A88
+:10CA4000151515151A1A1212121212121020202A78
+:10CA5000151515151A1A1212121212121010202A78
+:10CA6000151515151A1A1212121212121010202A68
+:10CA7000151515151A1A1212121212121010202A58
+:10CA8000151515151A1A1212121212121010202A48
+:10CA9000151515151A1A1212121212121010202A38
+:10CAA000151515151A1A1212121212121010202A28
+:10CAB000151515151A1A1212121212121010202A18
+:10CAC000151515151A1A1212121212121010202A08
+:10CAD000151515151A1A1212121212121010202AF8
+:10CAE000151515151A1A1212121212121010202AE8
+:10CAF000151515151A1A1212121212121010202AD8
+:10CB0000152525252A2A2222222222222220202AF5
+:10CB1000151515151A1A1212121212122220202A95
+:10CB2000151515151A1A1212121212121220202A95
+:10CB3000151515151A1A1212121212121220202A85
+:10CB4000151515151A1A1212121212121210202A85
+:10CB5000151515151A1A1212121212121210202A75
+:10CB6000151515151A1A1212121212121210202A65
+:10CB7000151515151A1A1212121212121210202A55
+:10CB8000151515151A1A1212121212121210202A45
+:10CB9000151515151A1A1212121212121210202A35
+:10CBA000151515151A1A1212121212121210202A25
+:10CBB000151515151A1A1212121212121210202A15
+:10CBC000151515151A1A1212121212121210202A05
+:10CBD000151515151A1A1212121212121210202AF5
+:10CBE000151515151A1A1212121212121210202AE5
+:10CBF000151515151A1A1212121212121210202AD5
+:10CC0000002525252A2A2A2222222222222020002B
+:10CC1000001515151A1A1A121212121212202000DB
+:10CC2000001515151A1A1A121212121212202000CB
+:10CC3000001515151A1A1A121212121212102000CB
+:10CC4000001515151A1A1A121212121212102000BB
+:10CC5000001515151A1A1A121212121212102000AB
+:10CC6000001515151A1A1A1212121212121020009B
+:10CC7000001515151A1A1A1212121212121020008B
+:10CC8000001515151A1A1A1212121212121020007B
+:10CC9000001515151A1A1A1212121212121020006B
+:10CCA000001515151A1A1A1212121212121020005B
+:10CCB000001515151A1A1A1212121212121020004B
+:10CCC000001515151A1A1A1212121212121020003B
+:10CCD000001515151A1A1A1212121212121020002B
+:10CCE000001515151A1A1A1212121212121020001B
+:10CCF000001515151A1A1A1212121212121020000B
+:10CD0000002525252A2A2A22222222222222200028
+:10CD1000001515151A1A1A121212121212222000D8
+:10CD2000001515151A1A1A121212121212222000C8
+:10CD3000001515151A1A1A121212121212122000C8
+:10CD4000001515151A1A1A121212121212122000B8
+:10CD5000001515151A1A1A121212121212122000A8
+:10CD6000001515151A1A1A12121212121212200098
+:10CD7000001515151A1A1A12121212121212200088
+:10CD8000001515151A1A1A12121212121212200078
+:10CD9000001515151A1A1A12121212121212200068
+:10CDA000001515151A1A1A12121212121212200058
+:10CDB000001515151A1A1A12121212121212200048
+:10CDC000001515151A1A1A12121212121212200038
+:10CDD000001515151A1A1A12121212121212200028
+:10CDE000001515151A1A1A12121212121212200018
+:10CDF000001515151A1A1A12121212121212200008
+:10CE00001525252529292929212121212121202AEA
+:10CE10001515151519191919111111111121202A9A
+:10CE20001515151519191919111111111111202A9A
+:10CE30001515151519191919111111111111202A8A
+:10CE40001515151519191919111111111111102A8A
+:10CE50001515151519191919111111111111102A7A
+:10CE60001515151519191919111111111111102A6A
+:10CE70001515151519191919111111111111102A5A
+:10CE80001515151519191919111111111111102A4A
+:10CE90001515151519191919111111111111102A3A
+:10CEA0001515151519191919111111111111102A2A
+:10CEB0001515151519191919111111111111102A1A
+:10CEC0001515151519191919111111111111102A0A
+:10CED0001515151519191919111111111111102AFA
+:10CEE0001515151519191919111111111111102AEA
+:10CEF0001515151519191919111111111111102ADA
+:10CF00001525252529292929292121212120202AE2
+:10CF10001515151519191919191111111120102AA2
+:10CF20001515151519191919191111111110102AA2
+:10CF30001515151519191919191111111110102A92
+:10CF40001515151519191919191111111110102A82
+:10CF50001515151519191919191111111110102A72
+:10CF60001515151519191919191111111110102A62
+:10CF70001515151519191919191111111110102A52
+:10CF80001515151519191919191111111110102A42
+:10CF90001515151519191919191111111110102A32
+:10CFA0001515151519191919191111111110102A22
+:10CFB0001515151519191919191111111110102A12
+:10CFC0001515151519191919191111111110102A02
+:10CFD0001515151519191919191111111110102AF2
+:10CFE0001515151519191919191111111110102AE2
+:10CFF0001515151519191919191111111110102AD2
+:10D000000015151529090909090101010100000090
+:10D01000001515142909090909090101000000007A
+:10D020000015151529090909090901010000000069
+:10D030000015151529090909090901010000000059
+:10D040000015151529090909090901010000000049
+:10D050000015151529090909090901010000000039
+:10D060000015151529090909090901010000000029
+:10D070000015151529090909090901010000000019
+:10D080000015151529090909090901010000000009
+:10D0900000151515290909090909010100000000F9
+:10D0A00000151515290909090909010100000000E9
+:10D0B00000151515290909090909010100000000D9
+:10D0C00000151515290909090909010100000000C9
+:10D0D00000151515290909090909010100000000B9
+:10D0E00000151515290909090909010100000000A9
+:10D0F0000015151529090909090901010000000099
+:10D100000015151529090909090901010000000088
+:10D110001515151429290909090901010000002A1A
+:10D120001515151529290909090901010000002A09
+:10D130001515151529290909090901010000002AF9
+:10D140001515151529290909090901010000002AE9
+:10D150001515151529290909090901010000002AD9
+:10D160001515151529290909090901010000002AC9
+:10D170001515151529290909090901010000002AB9
+:10D180001515151529290909090901010000002AA9
+:10D190001515151529290909090901010000002A99
+:10D1A0001515151529290909090901010000002A89
+:10D1B0001515151529290909090901010000002A79
+:10D1C0001515151529290909090901010000002A69
+:10D1D0001515151529290909090901010000002A59
+:10D1E0001515151529290909090901010000002A49
+:10D1F0001515151529290909090901010000002A39
+:10D200001515151529290909090901010000002A28
+:10D210001515151429290909090909000000002A12
+:10D220001515151529290909090909000000002A01
+:10D230001515151529290909090909000000002AF1
+:10D240001515151529290909090909000000002AE1
+:10D250001515151529290909090909000000002AD1
+:10D260001515151529290909090909000000002AC1
+:10D270001515151529290909090909000000002AB1
+:10D280001515151529290909090909000000002AA1
+:10D290001515151529290909090909000000002A91
+:10D2A0001515151529290909090909000000002A81
+:10D2B0001515151529290909090909000000002A71
+:10D2C0001515151529290909090909000000002A61
+:10D2D0001515151529290909090909000000002A51
+:10D2E0001515151529290909090909000000002A41
+:10D2F0001515151529290909090909000000002A31
+:10D300001515151529290909090909000000002A20
+:10D310000015151429292909090909000000000030
+:10D32000001515152929290909090900000000001F
+:10D33000001515152929290909090900000000000F
+:10D3400000151515292929090909090000000000FF
+:10D3500000151515292929090909090000000000EF
+:10D3600000151515292929090909090000000000DF
+:10D3700000151515292929090909090000000000CF
+:10D3800000151515292929090909090000000000BF
+:10D3900000151515292929090909090000000000AF
+:10D3A000001515152929290909090900000000009F
+:10D3B000001515152929290909090900000000008F
+:10D3C000001515152929290909090900000000007F
+:10D3D000001515152929290909090900000000006F
+:10D3E000001515152929290909090900000000005F
+:10D3F000001515152929290909090900000000004F
+:10D40000001515152929290909090900000000003E
+:10D410000015151429292909090908080000000028
+:10D420000015151529292909090908080000000017
+:10D430000015151529292909090908080000000007
+:10D4400000151515292929090909080800000000F7
+:10D4500000151515292929090909080800000000E7
+:10D4600000151515292929090909080800000000D7
+:10D4700000151515292929090909080800000000C7
+:10D4800000151515292929090909080800000000B7
+:10D4900000151515292929090909080800000000A7
+:10D4A0000015151529292909090908080000000097
+:10D4B0000015151529292909090908080000000087
+:10D4C0000015151529292909090908080000000077
+:10D4D0000015151529292909090908080000000067
+:10D4E0000015151529292909090908080000000057
+:10D4F0000015151529292909090908080000000047
+:10D500000015151529292909090908080000000036
+:10D510001515141429292929090908080000002AC9
+:10D520001515151429292929090908080000002AB8
+:10D530001515151429292929090908080000002AA8
+:10D540001515151429292929090908080000002A98
+:10D550001515151429292929090908080000002A88
+:10D560001515151429292929090908080000002A78
+:10D570001515151429292929090908080000002A68
+:10D580001515151429292929090908080000002A58
+:10D590001515151429292929090908080000002A48
+:10D5A0001515151429292929090908080000002A38
+:10D5B0001515151429292929090908080000002A28
+:10D5C0001515151429292929090908080000002A18
+:10D5D0001515151429292929090908080000002A08
+:10D5E0001515151429292929090908080000002AF8
+:10D5F0001515151429292929090908080000002AE8
+:10D600001515151429292929090908080000002AD7
+:10D610001515141429292929090808080800002AC1
+:10D620001515151429292929090808080800002AB0
+:10D630001515151429292929090808080800002AA0
+:10D640001515151429292929090808080800002A90
+:10D650001515151429292929090808080800002A80
+:10D660001515151429292929090808080800002A70
+:10D670001515151429292929090808080800002A60
+:10D680001515151429292929090808080800002A50
+:10D690001515151429292929090808080800002A40
+:10D6A0001515151429292929090808080800002A30
+:10D6B0001515151429292929090808080800002A20
+:10D6C0001515151429292929090808080800002A10
+:10D6D0001515151429292929090808080800002A00
+:10D6E0001515151429292929090808080800002AF0
+:10D6F0001515151429292929090808080800002AE0
+:10D700001515151429292929090808080800002ACF
+:10D7100000151414292929292908080808000000DF
+:10D7200000151514292929292908080808000000CE
+:10D7300000151514292929292908080808000000BE
+:10D7400000151514292929292908080808000000AE
+:10D75000001515142929292929080808080000009E
+:10D76000001515142929292929080808080000008E
+:10D77000001515142929292929080808080000007E
+:10D78000001515142929292929080808080000006E
+:10D79000001515142929292929080808080000005E
+:10D7A000001515142929292929080808080000004E
+:10D7B000001515142929292929080808080000003E
+:10D7C000001515142929292929080808080000002E
+:10D7D000001515142929292929080808080000001E
+:10D7E000001515142929292929080808080000000E
+:10D7F00000151514292929292908080808000000FE
+:10D8000000151514292929292908080808000000ED
+:10D8100000151414292929292808080808080000D7
+:10D8200000151514292929292808080808080000C6
+:10D8300000151514292929292808080808080000B6
+:10D8400000151514292929292808080808080000A6
+:10D850000015151429292929280808080808000096
+:10D860000015151429292929280808080808000086
+:10D870000015151429292929280808080808000076
+:10D880000015151429292929280808080808000066
+:10D890000015151429292929280808080808000056
+:10D8A0000015151429292929280808080808000046
+:10D8B0000015151429292929280808080808000036
+:10D8C0000015151429292929280808080808000026
+:10D8D0000015151429292929280808080808000016
+:10D8E0000015151429292929280808080808000006
+:10D8F00000151514292929292808080808080000F6
+:10D9000000151514292929292808080808080000E5
+:10D910001515141425252524242404040404002AA0
+:10D920001515151425252524242404040404002A8F
+:10D930001515151425252524242404040404002A7F
+:10D940001515151425252524242404040404002A6F
+:10D950001515151425252524242404040404002A5F
+:10D960001515151425252524242404040404002A4F
+:10D970001515151425252524242404040404002A3F
+:10D980001515151425252524242404040404002A2F
+:10D990001515151425252524242404040404002A1F
+:10D9A0001515151425252524242404040404002A0F
+:10D9B0001515151425252524242404040404002AFF
+:10D9C0001515151425252524242404040404002AEF
+:10D9D0001515151425252524242404040404002ADF
+:10D9E0001515151425252524242404040404002ACF
+:10D9F0001515151425252524242404040404002ABF
+:10DA00001515151425252524242404040404002AAE
+:10DA10001515141425252524242404040400002AA3
+:10DA200000151414252524242424240404000000B3
+:10DA300000141414252524242424240400000000A8
+:10DA40000015141425252424242424040000000097
+:10DA50000015141425252424242424040000000087
+:10DA60000015141425252424242424040000000077
+:10DA70000015141425252424242424040000000067
+:10DA80000015141425252424242424040000000057
+:10DA90000015141425252424242424040000000047
+:10DAA0000015141425252424242424040000000037
+:10DAB0000015141425252424242424040000000027
+:10DAC0000015141425252424242424040000000017
+:10DAD0000015141425252424242424040000000007
+:10DAE00000151414252524242424240400000000F7
+:10DAF00000151414252524242424240400000000E7
+:10DB000000151414252524242424240400000000D6
+:10DB100000151414252524242424240400000000C6
+:10DB200000151414252524242424240400000000B6
+:10DB30001514141425242424242424240000002A49
+:10DB40001515141425242424242424240000002A38
+:10DB50001515141425242424242424240000002A28
+:10DB60001515141425242424242424240000002A18
+:10DB70001515141425242424242424240000002A08
+:10DB80001515141425242424242424240000002AF8
+:10DB90001515141425242424242424240000002AE8
+:10DBA0001515141425242424242424240000002AD8
+:10DBB0001515141425242424242424240000002AC8
+:10DBC0001515141425242424242424240000002AB8
+:10DBD0001515141425242424242424240000002AA8
+:10DBE0001515141425242424242424240000002A98
+:10DBF0001515141425242424242424240000002A88
+:10DC00001515141425242424242424240000002A77
+:10DC10001515141425242424242424240000002A67
+:10DC20001515141425242424242424240000002A57
+:10DC30001514141425242424242424200000002A4C
+:10DC40001515141425242424242424200000002A3B
+:10DC50001515141425242424242424200000002A2B
+:10DC60001515141425242424242424200000002A1B
+:10DC70001515141425242424242424200000002A0B
+:10DC80001515141425242424242424200000002AFB
+:10DC90001515141425242424242424200000002AEB
+:10DCA0001515141425242424242424200000002ADB
+:10DCB0001515141425242424242424200000002ACB
+:10DCC0001515141425242424242424200000002ABB
+:10DCD0001515141425242424242424200000002AAB
+:10DCE0001515141425242424242424200000002A9B
+:10DCF0001515141425242424242424200000002A8B
+:10DD00001515141425242424242424200000002A7A
+:10DD10001515141425242424242424200000002A6A
+:10DD20001515141425242424242424200000002A5A
+:10DD3000001414142424242424242420200000006B
+:10DD4000031717172727272727272323230303032F
+:10DD500014141414242424242424202020200028F3
+:10DD60001414141414141414141010101010002887
+:10DD700000141414141414141410101010000000C3
+:10DD800000141410141414141010101010000000BB
+:10DD90001414141014141410101010100000002883
+:10DDA0001414141014141410101010100000002873
+:10DDB00000141410141410101010100000000000B3
+:10DDC00000141010141410101010100000000000A7
+:10DDD000141410101410101010100000000000286F
+:10DDE000141410101410101010100000000000285F
+:10DDF00000101010101010101000000000000000A3
+:10DE00000C1C1C0C1C1C1C1C1C0C0C0C0C0C0C0CE2
+:10DE10001010100010101010000000000000002072
+:10DE20001010100010101010000000000000002062
+:10DE30000010100010101000000000000000000092
+:10DE40000010000010101000000000000000000092
+:10DE50001010000010100000000000000000002062
+:10DE60001010000010100000000000000000002052
+:10DE70000010000010000000000000000000000082
+:10DE80000010000010000000000000000000000072
+:10DE90000000000000000000000000000000000082
+:10DEA0003030303030303030303030303030303072
+:10DEB0000000000000000000000000000000000062
+:10DEC0000000000000000000000000000000000052
+:10DED0000000000000000000000000000000000042
+:10DEE0000000000000000000000000000000000032
+:10DEF0000000000000000000000000000000000022
+:10DF0000AA565656555555555555555555556A6544
+:10DF10009A6565666565656565656565656565657B
+:10DF20009A6565666565656565656565656565656B
+:10DF30009A6565656565656565656565656565655C
+:10DF40009A6565656565656565656565656565654C
+:10DF50009A6565656565656565656565656565653C
+:10DF60009A6565656565656565656565656565652C
+:10DF70009A6565656565656565656565656565651C
+:10DF80009A6565656565656565656565656565650C
+:10DF90009A656565656565656565656565656565FC
+:10DFA0009A656565656565656565656565656565EC
+:10DFB0009A656565656565656565656565656565DC
+:10DFC0009A656565656565656565656565656565CC
+:10DFD0009A656565656565656565656565656565BC
+:10DFE0009A656565656565656565656565656565AC
+:10DFF0009AA5A5A5A5A5A5A5A5A5A5A5A5A5A5156C
+:10E00000AA565656555555555555555555556A6543
+:10E010009A6565666565656565656565656565657A
+:10E020009A6565666565656565656565656565656A
+:10E030009A6565656565656565656565656565655B
+:10E040009A6565656565656565656565656565654B
+:10E050009A6565656565656565656565656565653B
+:10E060009A6565656565656565656565656565652B
+:10E070009A6565656565656565656565656565651B
+:10E080009A6565656565656565656565656565650B
+:10E090009A656565656565656565656565656565FB
+:10E0A0009A656565656565656565656565656565EB
+:10E0B0009A656565656565656565656565656565DB
+:10E0C0009A656565656565656565656565656565CB
+:10E0D0009A656565656565656565656565656565BB
+:10E0E0009A656565656565656565656565656565AB
+:10E0F0009AA5A5A5A5A5A5A5A5A5A5A5A5A5A5156B
+:10E100000056565A555555555555555555556A004D
+:10E110000065666665656565656565656565650077
+:10E120000065656665656565656565656565650068
+:10E130000065656565656565656565656565650059
+:10E140000065656565656565656565656565650049
+:10E150000065656565656565656565656565650039
+:10E160000065656565656565656565656565650029
+:10E170000065656565656565656565656565650019
+:10E180000065656565656565656565656565650009
+:10E1900000656565656565656565656565656500F9
+:10E1A00000656565656565656565656565656500E9
+:10E1B00000656565656565656565656565656500D9
+:10E1C00000656565656565656565656565656500C9
+:10E1D00000656565656565656565656565656500B9
+:10E1E00000656565656565656565656565656500A9
+:10E1F00000A5A5A5A5A5A5A5A5A5A5A5A5A5A50019
+:10E200000056565A555555555555555555556A004C
+:10E210000065666665656565656565656565650076
+:10E220000065656665656565656565656565650067
+:10E230000065656665656565656565656565650057
+:10E240000065656565656565656565656565650048
+:10E250000065656565656565656565656565650038
+:10E260000065656565656565656565656565650028
+:10E270000065656565656565656565656565650018
+:10E280000065656565656565656565656565650008
+:10E2900000656565656565656565656565656500F8
+:10E2A00000656565656565656565656565656500E8
+:10E2B00000656565656565656565656565656500D8
+:10E2C00000656565656565656565656565656500C8
+:10E2D00000656565656565656565656565656500B8
+:10E2E00000656565656565656565656565656500A8
+:10E2F00000A5A5A5A5A5A5A5A5A5A5A5A5A5A50018
+:10E30000AA56565A555555555555555555556A653C
+:10E310009A65666665656565656565656565666575
+:10E320009A65666665656565656565656565656566
+:10E330009A65656665656565656565656565656557
+:10E340009A65656565656565656565656565656548
+:10E350009A65656565656565656565656565656538
+:10E360009A65656565656565656565656565656528
+:10E370009A65656565656565656565656565656518
+:10E380009A65656565656565656565656565656508
+:10E390009A656565656565656565656565656565F8
+:10E3A0009A656565656565656565656565656565E8
+:10E3B0009A656565656565656565656565656565D8
+:10E3C0009A656565656565656565656565656565C8
+:10E3D0009A656565656565656565656565656565B8
+:10E3E0009A656565656565656565656565656565A8
+:10E3F0009A6565A5A5A5A5A5A5A5A5A5A5A5A515E8
+:10E40000AA56565A555555555555555555556A653B
+:10E410009A65666665656565656565656565666574
+:10E420009A65666665656565656565656565656565
+:10E430009A65656665656565656565656565656556
+:10E440009A65656665656565656565656565656546
+:10E450009A65656565656565656565656565656537
+:10E460009A65656565656565656565656565656527
+:10E470009A65656565656565656565656565656517
+:10E480009A65656565656565656565656565656507
+:10E490009A656565656565656565656565656565F7
+:10E4A0009A656565656565656565656565656565E7
+:10E4B0009A656565656565656565656565656565D7
+:10E4C0009A656565656565656565656565656565C7
+:10E4D0009A656565656565656565656565656565B7
+:10E4E0009A656565656565656565656565656565A7
+:10E4F0009A6565A5A5A5A5A5A5A5A5A5A5A5A515E7
+:10E500000056565A555555555555555555556A0049
+:10E510000066666665656565656565656565660071
+:10E520000065666665656565656565656565660062
+:10E530000065656665656565656565656565650054
+:10E540000065656665656565656565656565650044
+:10E550000065656665656565656565656565650034
+:10E560000065656565656565656565656565650025
+:10E570000065656565656565656565656565650015
+:10E580000065656565656565656565656565650005
+:10E5900000656565656565656565656565656500F5
+:10E5A00000656565656565656565656565656500E5
+:10E5B00000656565656565656565656565656500D5
+:10E5C00000656565656565656565656565656500C5
+:10E5D00000656565656565656565656565656500B5
+:10E5E00000656565656565656565656565656500A5
+:10E5F000006565A5A5A5A5A5A5A5A5A5A5A5A50095
+:10E600000056565A555555555555555555556A0048
+:10E610000066666665656565656565656565660070
+:10E620000065666665656565656565656565660061
+:10E630000065666665656565656565656565650052
+:10E640000065656665656565656565656565650043
+:10E650000065656665656565656565656565650033
+:10E660000065656665656565656565656565650023
+:10E670000065656565656565656565656565650014
+:10E680000065656565656565656565656565650004
+:10E6900000656565656565656565656565656500F4
+:10E6A00000656565656565656565656565656500E4
+:10E6B00000656565656565656565656565656500D4
+:10E6C00000656565656565656565656565656500C4
+:10E6D00000656565656565656565656565656500B4
+:10E6E00000656565656565656565656565656500A4
+:10E6F000006565A5A5A5A5A5A5A5A5A5A5A5A50094
+:10E70000AA565A5A555555555555555555556A6534
+:10E710009A66666665656565656565656565666570
+:10E720009A66666665656565656565656565666560
+:10E730009A65666665656565656565656565656552
+:10E740009A65656665656565656565656565656543
+:10E750009A65656665656565656565656565656533
+:10E760009A65656665656565656565656565656523
+:10E770009A65656665656565656565656565656513
+:10E780009A65656565656565656565656565656504
+:10E790009A656565656565656565656565656565F4
+:10E7A0009A656565656565656565656565656565E4
+:10E7B0009A656565656565656565656565656565D4
+:10E7C0009A656565656565656565656565656565C4
+:10E7D0009A656565656565656565656565656565B4
+:10E7E0009A656565656565656565656565656565A4
+:10E7F0009A656565A5A5A5A5A5A5A5A5A5A5A51524
+:10E80000AA565A6A555555555555555555556A6523
+:10E810009A6666666565656565656565656566656F
+:10E820009A6666666565656565656565656566655F
+:10E830009A65666665656565656565656565666550
+:10E840009A65666665656565656565656565656541
+:10E850009A65656665656565656565656565656532
+:10E860009A65656665656565656565656565656522
+:10E870009A65656665656565656565656565656512
+:10E880009A65656665656565656565656565656502
+:10E890009A656565656565656565656565656565F3
+:10E8A0009A656565656565656565656565656565E3
+:10E8B0009A656565656565656565656565656565D3
+:10E8C0009A656565656565656565656565656565C3
+:10E8D0009A656565656565656565656565656565B3
+:10E8E0009A656565656565656565656565656565A3
+:10E8F0009A656565A5A5A5A5A5A5A5A5A5A5A51523
+:10E9000000565A6A555555555656565555556A002E
+:10E91000006666666565656565656565656566006D
+:10E92000006666666565656565656565656566005D
+:10E93000006566666565656565656565656566004E
+:10E94000006566666565656565656565656565003F
+:10E95000006566666565656565656565656565002F
+:10E960000065656665656565656565656565650020
+:10E970000065656665656565656565656565650010
+:10E980000065656665656565656565656565650000
+:10E9900000656566656565656565656565656500F0
+:10E9A00000656565656565656565656565656500E1
+:10E9B00000656565656565656565656565656500D1
+:10E9C00000656565656565656565656565656500C1
+:10E9D00000656565656565656565656565656500B1
+:10E9E00000656565656565656565656565656500A1
+:10E9F000006565656565A5A5A5A5A5A5A5A5A50051
+:10EA000000565A6A555555565656565655556A002B
+:10EA1000006666666565656565656565656566006C
+:10EA2000006666666565656565656565656566005C
+:10EA3000006666666565656565656565656566004C
+:10EA4000006566666565656565656565656566003D
+:10EA5000006566666565656565656565656565002E
+:10EA6000006566666565656565656565656565001E
+:10EA7000006565666565656565656565656565000F
+:10EA800000656566656565656565656565656500FF
+:10EA900000656566656565656565656565656500EF
+:10EAA00000656566656565656565656565656500DF
+:10EAB00000656565656565656565656565656500D0
+:10EAC00000656565656565656565656565656500C0
+:10EAD00000656565656565656565656565656500B0
+:10EAE00000656565656565656565656565656500A0
+:10EAF000006565656565A5A5A5A5A5A5A5A5A50050
+:10EB00009A969AAA95959696969696969595AA65AA
+:10EB100095A6A6A6A5A5A5A5A5A5A5A5A5A5A665F1
+:10EB200095A6A6A6A5A5A5A5A5A5A5A5A5A5A665E1
+:10EB300095A6A6A6A5A5A5A5A5A5A5A5A5A5A665D1
+:10EB400095A5A6A6A5A5A5A5A5A5A5A5A5A5A665C2
+:10EB500095A5A6A6A5A5A5A5A5A5A5A5A5A5A665B2
+:10EB600095A5A6A6A5A5A5A5A5A5A5A5A5A5A565A3
+:10EB700095A5A6A6A5A5A5A5A5A5A5A5A5A5A56593
+:10EB800095A5A5A6A5A5A5A5A5A5A5A5A5A5A56584
+:10EB900095A5A5A6A5A5A5A5A5A5A5A5A5A5A56574
+:10EBA00095A5A5A6A5A5A5A5A5A5A5A5A5A5A56564
+:10EBB00095A5A5A6A5A5A5A5A5A5A5A5A5A5A56554
+:10EBC00095A5A5A5A5A5A5A5A5A5A5A5A5A5A56545
+:10EBD00095A5A5A5A5A5A5A5A5A5A5A5A5A5A56535
+:10EBE00095A5A5A5A5A5A5A5A5A5A5A5A5A5A56525
+:10EBF00095656565656565656565656565656555A5
+:10EC00009A96AAAA96969696969696969595AA6597
+:10EC100095A6A6A6A5A5A5A5A5A5A5A5A5A5A665F0
+:10EC200095A6A6A6A5A5A5A5A5A5A5A5A5A5A665E0
+:10EC300095A6A6A6A5A5A5A5A5A5A5A5A5A5A665D0
+:10EC400095A6A6A6A5A5A5A5A5A5A5A5A5A5A665C0
+:10EC500095A5A6A6A5A5A5A5A5A5A5A5A5A5A665B1
+:10EC600095A5A6A6A5A5A5A5A5A5A5A5A5A5A665A1
+:10EC700095A5A6A6A5A5A5A5A5A5A5A5A5A5A56592
+:10EC800095A5A6A6A5A5A5A5A5A5A5A5A5A5A56582
+:10EC900095A5A5A6A5A5A5A5A5A5A5A5A5A5A56573
+:10ECA00095A5A5A6A5A5A5A5A5A5A5A5A5A5A56563
+:10ECB00095A5A5A6A5A5A5A5A5A5A5A5A5A5A56553
+:10ECC00095A5A5A6A5A5A5A5A5A5A5A5A5A5A56543
+:10ECD00095A5A5A6A5A5A5A5A5A5A5A5A5A5A56533
+:10ECE00095A5A5A6A5A5A5A5A5A5A5A5A5A5A56523
+:10ECF00095656565656565656565656565656555A4
+:10ED00000096AAAA96969696969696969695AA0094
+:10ED100000A6A6A6A5A5A5A5A5A5A5A5A5A5A600E9
+:10ED200000A6A6A6A5A5A5A5A5A5A5A5A5A5A600D9
+:10ED300000A6A6A6A5A5A5A5A5A5A5A5A5A5A600C9
+:10ED400000A6A6A6A5A5A5A5A5A5A5A5A5A5A600B9
+:10ED500000A6A6A6A5A5A5A5A5A5A5A5A5A5A600A9
+:10ED600000A5A6A6A5A5A5A5A5A5A5A5A5A5A6009A
+:10ED700000A5A6A6A5A5A5A5A5A5A5A5A5A5A6008A
+:10ED800000A5A6A6A5A5A5A5A5A5A5A5A5A5A5007B
+:10ED900000A5A6A6A5A5A5A5A5A5A5A5A5A5A5006B
+:10EDA00000A5A5A6A5A5A5A5A5A5A5A5A5A5A5005C
+:10EDB00000A5A5A6A5A5A5A5A5A5A5A5A5A5A5004C
+:10EDC00000A5A5A6A5A5A5A5A5A5A5A5A5A5A5003C
+:10EDD00000A5A5A6A5A5A5A5A5A5A5A5A5A5A5002C
+:10EDE00000A5A5A6A5A5A5A5A5A5A5A5A5A5A5001C
+:10EDF000006565656565656565656565656565008D
+:10EE00000096AAAA96969696969696969696AA0092
+:10EE100000A6A6A6A5A5A5A5A5A5A5A5A5A5A600E8
+:10EE200000A6A6A6A5A5A5A5A5A5A5A5A5A5A600D8
+:10EE300000A6A6A6A5A5A5A5A5A5A5A5A5A5A600C8
+:10EE400000A6A6A6A5A5A5A5A5A5A5A5A5A5A600B8
+:10EE500000A6A6A6A5A5A5A5A5A5A5A5A5A5A600A8
+:10EE600000A6A6A6A5A5A5A5A5A5A5A5A5A5A60098
+:10EE700000A5A6A6A5A5A5A5A5A5A5A5A5A5A60089
+:10EE800000A5A6A6A5A5A5A5A5A5A5A5A5A5A60079
+:10EE900000A5A6A6A5A5A5A5A5A5A5A5A5A5A5006A
+:10EEA00000A5A6A6A5A5A5A5A5A5A5A5A5A5A5005A
+:10EEB00000A5A5A6A5A5A5A5A5A5A5A5A5A5A5004B
+:10EEC00000A5A5A6A5A5A5A5A5A5A5A5A5A5A5003B
+:10EED00000A5A5A6A5A5A5A5A5A5A5A5A5A5A5002B
+:10EEE00000A5A5A6A5A5A5A5A5A5A5A5A5A5A5001B
+:10EEF000006565666565656565656565656565008B
+:10EF00009A9AAAAA969696969696969696A6AA6A79
+:10EF100095A6A6A6A5A5A5A5A5A5A5A5A5A5A666EC
+:10EF200095A6A6A6A5A5A5A5A5A5A5A5A5A5A666DC
+:10EF300095A6A6A6A5A5A5A5A5A5A5A5A5A5A666CC
+:10EF400095A6A6A6A5A5A5A5A5A5A5A5A5A5A666BC
+:10EF500095A6A6A6A5A5A5A5A5A5A5A5A5A5A666AC
+:10EF600095A6A6A6A5A5A5A5A5A5A5A5A5A5A6669C
+:10EF700095A6A6A6A5A5A5A5A5A5A5A5A5A5A6668C
+:10EF800095A5A6A6A5A5A5A5A5A5A5A5A5A5A6667D
+:10EF900095A5A6A6A5A5A5A5A5A5A5A5A5A5A6666D
+:10EFA00095A5A6A6A5A5A5A5A5A5A5A5A5A5A5665E
+:10EFB00095A5A6A6A5A5A5A5A5A5A5A5A5A5A5664E
+:10EFC00095A5A5A6A5A5A5A5A5A5A5A5A5A5A5663F
+:10EFD00095A5A5A6A5A5A5A5A5A5A5A5A5A5A5662F
+:10EFE00095A5A5A6A5A5A5A5A5A5A5A5A5A5A5661F
+:10EFF00095656566656565656565656565656555A0
+:10F000009A9AAAAA9696969696969A8696A6AA6A84
+:10F0100095A6A6A6A5A5A5A5A5A5A5A5A5A5A666EB
+:10F0200095A6A6A6A5A5A5A5A5A5A5A5A5A5A666DB
+:10F0300095A6A6A6A5A5A5A5A5A5A5A5A5A5A666CB
+:10F0400095A6A6A6A5A5A5A5A5A5A5A5A5A5A666BB
+:10F0500095A6A6A6A5A5A5A5A5A5A5A5A5A5A666AB
+:10F0600095A6A6A6A5A5A5A5A5A5A5A5A5A5A6669B
+:10F0700095A6A6A6A5A5A5A5A5A5A5A5A5A5A6668B
+:10F0800095A6A6A6A5A5A5A5A5A5A5A5A5A5A6667B
+:10F0900095A5A6A6A5A5A5A5A5A5A5A5A5A5A6666C
+:10F0A00095A5A6A6A5A5A5A5A5A5A5A5A5A5A6665C
+:10F0B00095A5A6A6A5A5A5A5A5A5A5A5A5A5A5664D
+:10F0C00095A5A6A6A5A5A5A5A5A5A5A5A5A5A5663D
+:10F0D00095A5A6A6A5A5A5A5A5A5A5A5A5A5A5662D
+:10F0E00095A5A6A6A5A5A5A5A5A5A5A5A5A5A5661D
+:10F0F000956566666565656565656565656565559E
+:10F1000000AAAAAA969696969A9AAAA6A6A6AA002F
+:10F1100000A6A6A6A5A5A5A5A5A5A5A5A5A5A600E5
+:10F1200000A6A6A6A5A5A5A5A5A5A5A5A5A5A600D5
+:10F1300000A6A6A6A5A5A5A5A5A5A5A5A5A5A600C5
+:10F1400000A6A6A6A5A5A5A5A5A5A5A5A5A5A600B5
+:10F1500000A6A6A6A5A5A5A5A5A5A5A5A5A5A600A5
+:10F1600000A6A6A6A5A5A5A5A5A5A5A5A5A5A60095
+:10F1700000A6A6A6A5A5A5A5A5A5A5A5A5A5A60085
+:10F1800000A6A6A6A5A5A5A5A5A5A5A5A5A5A60075
+:10F1900000A6A6A6A5A5A5A5A5A5A5A5A5A5A60065
+:10F1A00000A5A6A6A5A5A5A5A5A5A5A5A5A5A60056
+:10F1B00000A5A6A6A5A5A5A5A5A5A5A5A5A5A60046
+:10F1C00000A5A6A6A5A5A5A5A5A5A5A5A5A5A50037
+:10F1D00000A5A6A6A5A5A5A5A5A5A5A5A5A5A50027
+:10F1E00000A5A6A6A5A5A5A5A5A5A5A5A5A5A50017
+:10F1F0000065666665656565656565656565650087
+:10F2000000AAAAAA969696969A8AAAA6A6A6AA003E
+:10F2100000A6A6A6A6A6A6A6A6A6A6A6A6A6A600DA
+:10F2200000A6A6A6A6A6A6A6A6A6A6A6A6A6A600CA
+:10F2300000A6A6A6A6A6A6A6A6A6A6A6A6A6A600BA
+:10F2400000A6A6A6A6A6A6A6A6A6A6A6A6A6A600AA
+:10F2500000A6A6A6A6A6A6A6A6A6A6A6A6A6A6009A
+:10F2600000A6A6A6A6A6A6A6A6A6A6A6A6A6A6008A
+:10F2700000A6A6A6A6A6A6A6A6A6A6A6A6A6A6007A
+:10F2800000A6A6A6A6A6A6A6A6A6A6A6A6A6A6006A
+:10F2900000A6A6A6A6A6A6A6A6A6A6A6A6A6A6005A
+:10F2A00000A6A6A6A6A6A6A6A6A6A6A6A6A6A6004A
+:10F2B00000A5A6A6A6A6A6A6A6A6A6A6A6A6A6003B
+:10F2C00000A5A6A6A6A6A6A6A6A6A6A6A6A6A6002B
+:10F2D00000A5A6A6A6A6A6A6A6A6A6A6A6A6A6001B
+:10F2E00000A5A6A6A6A6A6A6A6A6A6A6A6A6A6000B
+:10F2F0000066666665656565656565656565650085
+:10F300009AAAAAAA96969696AAAAAAAAA6A6AA6A05
+:10F3100095A6A6A6A6A6A6A6A6A6A6A6A6A6A666DE
+:10F3200095A6A6A6A6A6A6A6A6A6A6A6A6A6A666CE
+:10F3300095A6A6A6A6A6A6A6A6A6A6A6A6A6A666BE
+:10F3400095A6A6A6A6A6A6A6A6A6A6A6A6A6A666AE
+:10F3500095A6A6A6A6A6A6A6A6A6A6A6A6A6A6669E
+:10F3600095A6A6A6A6A6A6A6A6A6A6A6A6A6A6668E
+:10F3700095A6A6A6A6A6A6A6A6A6A6A6A6A6A6667E
+:10F3800095A6A6A6A6A6A6A6A6A6A6A6A6A6A6666E
+:10F3900095A6A6A6A6A6A6A6A6A6A6A6A6A6A6665E
+:10F3A00095A6A6A6A6A6A6A6A6A6A6A6A6A6A6664E
+:10F3B00095A6A6A6A6A6A6A6A6A6A6A6A6A6A6663E
+:10F3C00095A5A6A6A6A6A6A6A6A6A6A6A6A6A6662F
+:10F3D00095A5A6A6A6A6A6A6A6A6A6A6A6A6A6661F
+:10F3E00095A5A6A6A6A6A6A6A6A6A6A6A6A6A6660F
+:10F3F000956666666565656565656565656565559A
+:10F400009AAAAAAA969696AAAAAAAAAAA6A6AA6AF0
+:10F4100095A6A6AAA6A6A6A6A6A6A6A6A6A6A666D9
+:10F4200095A6A6AAA6A6A6A6A6A6A6A6A6A6A666C9
+:10F4300095A6A6AAA6A6A6A6A6A6A6A6A6A6A666B9
+:10F4400095A6A6AAA6A6A6A6A6A6A6A6A6A6A666A9
+:10F4500095A6A6AAA6A6A6A6A6A6A6A6A6A6A66699
+:10F4600095A6A6AAA6A6A6A6A6A6A6A6A6A6A66689
+:10F4700095A6A6AAA6A6A6A6A6A6A6A6A6A6A66679
+:10F4800095A6A6AAA6A6A6A6A6A6A6A6A6A6A66669
+:10F4900095A6A6AAA6A6A6A6A6A6A6A6A6A6A66659
+:10F4A00095A6A6AAA6A6A6A6A6A6A6A6A6A6A66649
+:10F4B00095A6A6AAA6A6A6A6A6A6A6A6A6A6A66639
+:10F4C00095A6A6AAA6A6A6A6A6A6A6A6A6A6A66629
+:10F4D00095A6A6AAA6A6A6A6A6A6A6A6A6A6A66619
+:10F4E00095A6A6AAA6A6A6A6A6A6A6A6A6A6A66609
+:10F4F0009566666A65656565656565656565665594
+:10F5000000AAAAAA969696AAAAAAAAAAAAA6AA00EF
+:10F5100000A6A6AAA6A6A6A6A6A6A6A6A6A6A600D3
+:10F5200000A6A6AAA6A6A6A6A6A6A6A6A6A6A600C3
+:10F5300000A6A6AAA6A6A6A6A6A6A6A6A6A6A600B3
+:10F5400000A6A6AAA6A6A6A6A6A6A6A6A6A6A600A3
+:10F5500000A6A6AAA6A6A6A6A6A6A6A6A6A6A60093
+:10F5600000A6A6AAA6A6A6A6A6A6A6A6A6A6A60083
+:10F5700000A6A6AAA6A6A6A6A6A6A6A6A6A6A60073
+:10F5800000A6A6AAA6A6A6A6A6A6A6A6A6A6A60063
+:10F5900000A6A6AAA6A6A6A6A6A6A6A6A6A6A60053
+:10F5A00000A6A6AAA6A6A6A6A6A6A6A6A6A6A60043
+:10F5B00000A6A6AAA6A6A6A6A6A6A6A6A6A6A60033
+:10F5C00000A6A6AAA6A6A6A6A6A6A6A6A6A6A60023
+:10F5D00000A6A6AAA6A6A6A6A6A6A6A6A6A6A60013
+:10F5E00000A6A6AA96A6A6A6A6A6A6A6A6A6A60013
+:10F5F0000066666A6565656565656565656566007D
+:10F6000000AAAAAA9696AAAAAAAAAAAAAAAAAA00D6
+:10F6100000A6A6AAA6A6A6A6A6A6AAA6A6A6A600CE
+:10F6200000A6A6AAA6A6A6A6A6A6A6A6A6A6A600C2
+:10F6300000A6A6AAA6A6A6A6A6A6A6A6A6A6A600B2
+:10F6400000A6A6AAA6A6A6A6A6A6A6A6A6A6A600A2
+:10F6500000A6A6AAA6A6A6A6A6A6A6A6A6A6A60092
+:10F6600000A6A6AAA6A6A6A6A6A6A6A6A6A6A60082
+:10F6700000A6A6AAA6A6A6A6A6A6A6A6A6A6A60072
+:10F6800000A6A6AAA6A6A6A6A6A6A6A6A6A6A60062
+:10F6900000A6A6AAA6A6A6A6A6A6A6A6A6A6A60052
+:10F6A00000A6A6AAA6A6A6A6A6A6A6A6A6A6A60042
+:10F6B00000A6A6AAA6A6A6A6A6A6A6A6A6A6A60032
+:10F6C00000A6A6AAA6A6A6A6A6A6A6A6A6A6A60022
+:10F6D00000A6A6AA96A6A6A6A6A6A6A6A6A6A60022
+:10F6E00000A6A6AA96A6A6A6A6A6A6A6A6A6A60012
+:10F6F0000066666A65656565656666666665660078
+:10F700009AAAAA2A161A2A2A2A2A2A2A2A2A2A6ACD
+:10F7100095A6A62A2626262626262A2626262666D2
+:10F7200095A6A62A262626262626262626262666C6
+:10F7300095A6A62A262626262626262626262666B6
+:10F7400095A6A62A262626262626262626262666A6
+:10F7500095A6A62A26262626262626262626266696
+:10F7600095A6A62A26262626262626262626266686
+:10F7700095A6A62A26262626262626262626266676
+:10F7800095A6A62A26262626262626262626266666
+:10F7900095A6A62A26262626262626262626266656
+:10F7A00095A6A62A26262626262626262626266646
+:10F7B00095A6A62A26262626262626262626266636
+:10F7C00095A6A62A26262626262626262626266626
+:10F7D00095A6A62A16262626262626262626266626
+:10F7E00095A6A62A16262626262626262626266616
+:10F7F00095A6A62A2525252526262626262526550C
+:10F800009AAAAA2A1A1A2A2A2A2A2A2A2A2A2A6AC8
+:10F8100095A6AA2A26262626262A2A2A2A262A66BD
+:10F8200095A6AA2A2626262626262A2626262666BD
+:10F8300095A6AA2A262626262626262626262666B1
+:10F8400095A6AA2A262626262626262626262666A1
+:10F8500095A6AA2A26262626262626262626266691
+:10F8600095A6AA2A16262626262626262626266691
+:10F8700095A6AA2A16262626262626262626266681
+:10F8800095A6AA2A16262626262626262626266671
+:10F8900095A6AA2A16262626262626262626266661
+:10F8A00095A6AA2A16262626262626262626266651
+:10F8B00095A6AA2A16262626262626262626266641
+:10F8C00095A6AA2A16262626262626262626266631
+:10F8D00095A6AA2A16262626262626262626266621
+:10F8E00095A6AA2A16262626262626262626266611
+:10F8F00095A6AA2A15252626262626262626265514
+:10F9000000AAAA2A1A2A2A2A2A2A2A2A2A2A2A00BB
+:10F9100000A6AA2A262626262A2A2A2A2A262A00B3
+:10F9200000A6AA2A2626262626262A2626262600B7
+:10F9300000A6AA2A262626262626262626262600AB
+:10F9400000A6AA2A2626262626262626262626009B
+:10F9500000A6AA2A1626262626262626262626009B
+:10F9600000A6AA2A1626262626262626262626008B
+:10F9700000A6AA2A1626262626262626262626007B
+:10F9800000A6AA2A1626262626262626262626006B
+:10F9900000A6AA2A1626262626262626262626005B
+:10F9A00000A6AA2A1626262626262626262626004B
+:10F9B00000A6AA2A1626262626262626262626003B
+:10F9C00000A6AA2A1626262626262626262626002B
+:10F9D00000A6AA2A1626262626262A262626260017
+:10F9E00000A6AA2A1626262626262626262626000B
+:10F9F00040A6AA2A152626262626262626262600BC
+:10FA000000AAAAAA1A2A2A2A2A2A2A2A2A2A2A003A
+:10FA100000A6AAAA262626262A2A2A2A2A2A2A002E
+:10FA200000A6AAAA26262626262A2A2A2A262A0026
+:10FA300000A6AAAA2626262626262A2626262A0022
+:10FA400000A6AAAA1626262626262A2626262A0022
+:10FA500000A6AAAA1626262626262A2626262A0012
+:10FA600000A6AAAA1626262626262A2626262A0002
+:10FA700000A6AAAA1626262626262A2626262A00F2
+:10FA800000A6AAAA162626262626262626262A00E6
+:10FA900000A6AAAA162626262626262626262A00D6
+:10FAA00000A6AAAA162626262626262626262A00C6
+:10FAB00000A6AAAA162626262626262626262A00B6
+:10FAC00000A6AAAA162626262626262626262A00A6
+:10FAD00000A6AAAA1626262626262A2626262A0092
+:10FAE00000A6AAAA1616262626262A2626262A0092
+:10FAF00040A6AAAA162626262626262626262A0036
+:10FB00009AAAAAAA1A2A2A2A2A2A2A2A2A2A2A6A35
+:10FB100095A6AAAA2626262A2A2A2A2A2A2A2A662E
+:10FB200095A6AAAA262626262A2A2A2A2A262A6626
+:10FB300095A6AAAA1626262626262A2626262A6636
+:10FB400095A6AAAA1626262626262A2626262A6626
+:10FB500095A6AAAA1626262626262A2626262A6616
+:10FB600095A6AAAA1626262626262A2626262A6606
+:10FB700095A6AAAA1626262626262A2626262A66F6
+:10FB800095A6AAAA1626262626262A2626262A66E6
+:10FB900095A6AAAA1626262626262A2626262A66D6
+:10FBA00095A6AAAA1626262626262A2626262A66C6
+:10FBB00095A6AAAA1626262626262A2626262A66B6
+:10FBC00095A6AAAA1626262626262A2626262A66A6
+:10FBD00095A6AAAA16162626262A2A2A2A262A669A
+:10FBE00095A6AAAA1616262626262A2626262A6696
+:10FBF00015A6AAAA162626262626262626262A550B
+:10FC00009AAAAAAA2A2A2A2A2A2A2A2A2A2A2A6A24
+:10FC100095AAAAAA2626262A2A2A2A2A2A2A2A6629
+:10FC200095AAAAAA262626262A2A2A2A2A2A2A661D
+:10FC300095AAAAAA16262626262A2A2A2A262A6625
+:10FC400095AAAAAA16262626262A2A2A2A262A6615
+:10FC500095AAAAAA16262626262A2A2A2A262A6605
+:10FC600095AAAAAA16262626262A2A2A2A262A66F5
+:10FC700095AAAAAA16262626262A2A2A2A262A66E5
+:10FC800095AAAAAA1626262626262A2626262A66E1
+:10FC900095AAAAAA1626262626262A2626262A66D1
+:10FCA00095AAAAAA1626262626262A2626262A66C1
+:10FCB00095AAAAAA1626262626262A2626262A66B1
+:10FCC00095AAAAAA1626262626262A2626262A66A1
+:10FCD00095AAAAAA161626262A2A2A2A2A262A6691
+:10FCE00095AAAAAA16162626262A2A2A2A262A6685
+:10FCF00015AAAAAA1626262626262A2626262A5502
+:10FD000000AAAAAA2A2A2A2A2A2A2A2A2A2A2A0027
+:10FD100000AAAAAA26262A2A2A2A2A2A2A2A2A001F
+:10FD200000AAAAAA1626262A2A2A2A2A2A2A2A0023
+:10FD300000AAAAAA162626262A2A2A2A2A262A001B
+:10FD400000AAAAAA162626262A2A2A2A2A262A000B
+:10FD500000AAAAAA162626262A2A2A2A2A262A00FB
+:10FD600000AAAAAA161626262A2A2A2A2A262A00FB
+:10FD700000AAAAAA161626262A2A2A2A2A262A00EB
+:10FD800000AAAAAA16162626262A2A2A2A262A00DF
+:10FD900000AAAAAA16162626262A2A2A2A262A00CF
+:10FDA00000AAAAAA16162626262A2A2A2A262A00BF
+:10FDB00000AAAAAA16162626262A2A2A2A262A00AF
+:10FDC00000AAAAAA16162626262A2A2A2A262A009F
+:10FDD00000AAAAAA161626262A2A2A2A2A2A2A0087
+:10FDE00000AAAAAA161616262A2A2A2A2A262A008B
+:10FDF00040AAAAAA1616262626262A2626262A003B
+:10FE000000AAAAAAAA2A2A2A2A2A2A2A2A2A2A00A6
+:10FE1000009AAAAAA62A2A2A2A2A2A2A2A2A2A00AA
+:10FE2000009AAAAA9626262A2A2A2A2A2A2A2A00B2
+:10FE3000009AAAAA962626262A2A2A2A2A2A2A00A6
+:10FE4000009AAAAA962626262A2A2A2A2A2A2A0096
+:10FE5000009AAAAA961626262A2A2A2A2A2A2A0096
+:10FE6000009AAAAA961626262A2A2A2A2A2A2A0086
+:10FE7000009AAAAA961626262A2A2A2A2A262A007A
+:10FE8000009AAAAA961626262A2A2A2A2A262A006A
+:10FE9000009AAAAA961626262A2A2A2A2A262A005A
+:10FEA000009AAAAA961626262A2A2A2A2A262A004A
+:10FEB000009AAAAA961626262A2A2A2A2A262A003A
+:10FEC000009AAAAA961626262A2A2A2A2A262A002A
+:10FED000009AAAAA9616162A2A2A2A2A2A2A2A0022
+:10FEE000009AAAAA961616262A2A2A2A2A2A2A0016
+:10FEF000409AAAAA96162626262A2A2A2A262A00BE
+:10FF000095AAAAAAAA2A2A2A2A2A2A2A2A2A2A6AA6
+:10FF1000959AAAAA962A2A2A2A2A2A2A2A2A2A66BE
+:10FF2000959AAAAA96262A2A2A2A2A2A2A2A2A66B2
+:10FF3000959AAAAA9626262A2A2A2A2A2A2A2A66A6
+:10FF4000959AAAAA9616262A2A2A2A2A2A2A2A66A6
+:10FF5000959AAAAA9616262A2A2A2A2A2A2A2A6696
+:10FF6000959AAAAA9616262A2A2A2A2A2A2A2A6686
+:10FF7000959AAAAA9616262A2A2A2A2A2A2A2A6676
+:10FF8000959AAAAA961626262A2A2A2A2A2A2A666A
+:10FF9000959AAAAA961626262A2A2A2A2A2A2A665A
+:10FFA000959AAAAA961626262A2A2A2A2A2A2A664A
+:10FFB000959AAAAA961626262A2A2A2A2A2A2A663A
+:10FFC000959AAAAA961626262A2A2A2A2A2A2A662A
+:10FFD000959AAAAA9616162A2A2A2A2A2A2A2A6626
+:10FFE000959AAAAA9616162A2A2A2A2A2A2A2A6616
+:10FFF000159AAAAA961626262A2A2A2A2A262A568E
+:020000040008F2
+:1000000095AAAAAAAAAA2A2A2A2A2A2A2A2A2A6A25
+:10001000959AAAAA9AAA2A2A2A2A2A2A2A2A2A6639
+:10002000959AAAAA96AA2A2A2A2A2A2A2A2A2A662D
+:10003000959AAAAA9696262A2A2A2A2A2A2A2A6635
+:10004000959AAAAA9696262A2A2A2A2A2A2A2A6625
+:10005000959AAAAA9696262A2A2A2A2A2A2A2A6615
+:10006000959AAAAA9696162A2A2A2A2A2A2A2A6615
+:10007000959AAAAA9696162A2A2A2A2A2A2A2A6605
+:10008000959AAAAA9696162A2A2A2A2A2A2A2A66F5
+:10009000959AAAAA9696162A2A2A2A2A2A2A2A66E5
+:1000A000959AAAAA9696162A2A2A2A2A2A2A2A66D5
+:1000B000959AAAAA9696162A2A2A2A2A2A2A2A66C5
+:1000C000959AAAAA9696162A2A2A2A2A2A2A2A66B5
+:1000D000959AAAAA96961A2A2A2A2A2A2A2A2A66A1
+:1000E000959AAAAA9696161A2A2A2A2A2A2A2A66A5
+:1000F000159AAAAA969616262A2A2A2A2A2A2A5619
+:1001000000AAAAAAAAAA2A2A2A2A2A2A2A2A2A0023
+:10011000009AAAAA9AAA2A2A2A2A2A2A2A2A2A0033
+:10012000009AAAAA96AA2A2A2A2A2A2A2A2A2A0027
+:10013000009AAAAA96962A2A2A2A2A2A2A2A2A002B
+:10014000009AAAAA96962A2A2A2A2A2A2A2A2A001B
+:10015000009AAAAA96961A2A2A2A2A2A2A2A2A001B
+:10016000009AAAAA96961A2A2A2A2A2A2A2A2A000B
+:10017000009AAAAA96961A2A2A2A2A2A2A2A2A00FB
+:10018000009AAAAA9696162A2A2A2A2A2A2A2A00EF
+:10019000009AAAAA9696162A2A2A2A2A2A2A2A00DF
+:1001A000009AAAAA9696162A2A2A2A2A2A2A2A00CF
+:1001B000009AAAAA9696162A2A2A2A2A2A2A2A00BF
+:1001C000009AAAAA9696162A2A2A2A2A2A2A2A00AF
+:1001D000009AAAAA969A1A1A2A2A2A2A2A2A2A00A7
+:1001E000009AAAAA96961A1A2A2A2A2A2A2A2A009B
+:1001F000409AAAAA9696162A2A2A2A2A2A2A2A003F
+:1002000000AAAAAAAAAAAA2A2A2A2A2A2A2A2A00A2
+:10021000009A9AAA9AAAAA2A2A2A2A2A2A2A2A00C2
+:10022000009A9AAA9A9AAA2A2A2A2A2A2A2A2A00C2
+:10023000009A9AAA969AAA2A2A2A2A2A2A2A2A00B6
+:10024000009A9AAA969A9A2A2A2A2A2A2A2A2A00B6
+:10025000009A9AAA969A9A2A2A2A2A2A2A2A2A00A6
+:10026000009A9AAA969A9A2A2A2A2A2A2A2A2A0096
+:10027000009A9AAA969A9A2A2A2A2A2A2A2A2A0086
+:10028000009A9AAA96969A2A2A2A2A2A2A2A2A007A
+:10029000009A9AAA96969A2A2A2A2A2A2A2A2A006A
+:1002A000009A9AAA96969A2A2A2A2A2A2A2A2A005A
+:1002B000009A9AAA96969A2A2A2A2A2A2A2A2A004A
+:1002C000009A9AAA96969A2A2A2A2A2A2A2A2A003A
+:1002D000009A9AAA969A9A1A2A2A2A2A2A2A2A0036
+:1002E000009A9AAA969A9A1A2A2A2A2A2A2A2A0026
+:1002F000409A9AAA9696962A2A2A2A2A2A2A2A00CE
+:1003000095AAAAAAAAAAAAAA2A2A2A2A2A2A2A6A22
+:10031000959A9AAA9AAAAAAA2A2A2A2A2A2A2A6A42
+:10032000959A9AAA9A9AAAAA2A2A2A2A2A2A2A6A42
+:10033000959A9AAA969A9AAA2A2A2A2A2A2A2A6A46
+:10034000959A9AAA969A9AAA2A2A2A2A2A2A2A6A36
+:10035000959A9AAA969A9AAA2A2A2A2A2A2A2A6A26
+:10036000959A9AAA969A9A9A2A2A2A2A2A2A2A6A26
+:10037000959A9AAA969A9A9A2A2A2A2A2A2A2A6A16
+:10038000959A9AAA969A9A9A2A2A2A2A2A2A2A6A06
+:10039000959A9AAA969A9A9A2A2A2A2A2A2A2A6AF6
+:1003A000959A9AAA969A9A9A2A2A2A2A2A2A2A6AE6
+:1003B000959A9AAA969A9A9A2A2A2A2A2A2A2A6AD6
+:1003C000959A9AAA969A9A9A2A2A2A2A2A2A2A6AC6
+:1003D000959A9AAA9A9A9A9A2A2A2A2A2A2A2A6AB2
+:1003E000959A9AAA969A9A9A1A2A2A2A2A2A2A6AB6
+:1003F000159A9AAA96969A9A2A2A2A2A2A2A2A5A2A
+:1004000095AAAAAAAAAAAAAAAA2A2A2A2A2A2A6AA1
+:10041000959A9AAA9A9AAAAAAA2A2A2A2A2A2A6AD1
+:10042000959A9AAA9A9AAAAAAA2A2A2A2A2A2A6AC1
+:10043000959A9AAA9A9A9AAAAA2A2A2A2A2A2A6AC1
+:10044000959A9AAA9A9A9AAAAA2A2A2A2A2A2A6AB1
+:10045000959A9AAA9A9A9A9AAA2A2A2A2A2A2A6AB1
+:10046000959A9AAA9A9A9A9AAA2A2A2A2A2A2A6AA1
+:10047000959A9AAA9A9A9A9AAA2A2A2A2A2A2A6A91
+:10048000959A9AAA969A9A9AAA2A2A2A2A2A2A6A85
+:10049000959A9AAA969A9A9AAA2A2A2A2A2A2A6A75
+:1004A000959A9AAA969A9A9AAA2A2A2A2A2A2A6A65
+:1004B000959A9AAA969A9A9AAA2A2A2A2A2A2A6A55
+:1004C000959A9AAA969A9A9AAA2A2A2A2A2A2A6A45
+:1004D000959A9AAA9A9A9A9A9A2A2A2A2A2A2A6A41
+:1004E000959A9AAA9A9A9A9A9A2A2A2A2A2A2A6A31
+:1004F000159A9AAA969A9A9AAA2A2A2A2A2A2A5AA5
+:1005000040A9A9A9AAA8A8A8A82828282828280076
+:10051000409999A99A98A8A8A828282828282800A6
+:10052000409999A99A9898A8A828282828282800A6
+:10053000409999A99A9898A8A82828282828280096
+:10054000409999A99A989898A82828282828280096
+:10055000409999A99A989898A82828282828280086
+:10056000409999A99A989898A82828282828280076
+:10057000409999A99A989898A82828282828280066
+:10058000409999A99A989898A82828282828280056
+:10059000409999A99A989898A82828282828280046
+:1005A000409999A99A989898A82828282828280036
+:1005B000409999A99A989898A82828282828280026
+:1005C000409999A99A989898A82828282828280016
+:1005D000409999A99A989898982828282828280016
+:1005E000409999A99A989898981828282828280016
+:1005F000409999A996989898A828282828282800EA
+:1006000040A9A9A9AAA8A8A8A8A82828A828280075
+:10061000409999A99A98A8A8A8A82828A8282800A5
+:10062000409999A99A9898A8A8A82828A8282800A5
+:10063000409999A99A989898A8A82828A8282800A5
+:10064000409999A99A989898A8A82828A828280095
+:10065000409999A99A989898A8A82828A828280085
+:10066000409999A99A98989898A82828A828280085
+:10067000409999A99A98989898A82828A828280075
+:10068000409999A99A98989898A82828A828280065
+:10069000409999A99A98989898A82828A828280055
+:1006A000409999A99A98989898A82828A828280045
+:1006B000409999A99A98989898A82828A828280035
+:1006C000409999A99A98989898A82828A828280025
+:1006D000409999A99A98989898982828A828280025
+:1006E000409999A99A98989898982828A828280015
+:1006F000409999A99A98989898A82828A8282800F5
+:1007000015A9A9A9AAAAA8A8A8A8A8282828286A33
+:10071000159999A99A9A98A8A8A8A8282828286A73
+:10072000159999A99A9A98A8A8A8A8282828286A63
+:10073000159999A99A9A9898A8A8A8282828286A63
+:10074000159999A99A9A9898A8A8A8282828286A53
+:10075000159999A99A9A989898A8A8282828286A53
+:10076000159999A99A9A989898A8A8282828286A43
+:10077000159999A99A9A989898A8A8282828286A33
+:10078000159999A99A9A989898A8A8282828286A23
+:10079000159999A99A9A989898A8A8282828286A13
+:1007A000159999A99A9A989898A8A8282828286A03
+:1007B000159999A99A9A989898A8A8282828286AF3
+:1007C000159999A99A9A989898A8A8282828286AE3
+:1007D000159999A99A9A98989898A8282828286AE3
+:1007E000159999A99A9A9898989888282828286AF3
+:1007F000159999A99A9A989898A8A8282828286AB3
+:1008000015A9A9A9AAAAA8A8A8A8A8A82828286AB2
+:10081000159999999A9A98A8A8A8A8A82828286A02
+:10082000159999999A9A9898A8A8A8A82828286A02
+:10083000159999999A9A9898A8A8A8A82828286AF2
+:10084000159999999A9A989898A8A8A82828286AF2
+:10085000159999999A9A989898A8A8A82828286AE2
+:10086000159999999A9A98989898A8A82828286AE2
+:10087000159999999A9A98989898A8A82828286AD2
+:10088000159999999A9A98989898A8A82828286AC2
+:10089000159999999A9A98989898A8A82828286AB2
+:1008A000159999999A9A98989898A8A82828286AA2
+:1008B000159999999A9A98989898A8A82828286A92
+:1008C000159999999A9A98989898A8A82828286A82
+:1008D000159999999A9A9898989888A82828286A92
+:1008E000159999999A9A9898989898A82828286A72
+:1008F000159999999A9A98989898A8A82828286A52
+:1009000040A9A9A9AAAAAAA8A8A8A8A8A8A82800EE
+:10091000409999999A9A9AA8A8A8A8A8A8A828003E
+:10092000409999999A9A9A98A8A8A8A8A8A828003E
+:10093000409999999A9A9A9898A8A8A8A8A828003E
+:10094000409999999A9A9A9898A8A8A8A8A828002E
+:10095000409999999A9A9A989898A8A8A8A828002E
+:10096000409999999A9A9A989898A8A8A8A828001E
+:10097000409999999A9A9A989898A8A8A8A828000E
+:10098000409999999A9A9A989898A8A8A8A82800FE
+:10099000409999999A9A9A989898A8A8A8A82800EE
+:1009A000409999999A9A9A989898A8A8A8A82800DE
+:1009B000409999999A9A9A989898A8A8A8A82800CE
+:1009C000409999999A9A9A989898A8A8A8A82800BE
+:1009D000409999999A9A9A98989898A8A8A82800BE
+:1009E000409999999A9A9A9898989898A8A82800BE
+:1009F000409999999A9A9A989898A8A8A8A828008E
+:100A0000406969696A6A6A686868686868686800ED
+:100A1000405959595A5A5A5868686868686868004D
+:100A2000405959595A5A5A5868686868686868003D
+:100A3000405959595A5A5A5858686868686868003D
+:100A4000405959595A5A5A5858586868686868003D
+:100A5000405959595A5A5A5858586868686868002D
+:100A6000405959595A5A5A5858584868686868003D
+:100A7000405959595A5A5A5858584868686868002D
+:100A8000405959595A5A5A5858584868686868001D
+:100A9000405959595A5A5A5858584868686868000D
+:100AA000405959595A5A5A585858486868686800FD
+:100AB000405959595A5A5A585858486868686800ED
+:100AC000405959595A5A5A585858486868686800DD
+:100AD000405959595A5A5A585858585868686800CD
+:100AE000405959595A5A5A585858585868686800BD
+:100AF000405959595A5A5A585858486868686800AD
+:100B0000156969696A6A6A6A686868686868686AAB
+:100B1000155959595A5A5A5A686868686868686A0B
+:100B2000155959595A5A5A5A586868686868686A0B
+:100B3000155959595A5A5A5A585868686868686A0B
+:100B4000155959595A5A5A5A585868686868686AFB
+:100B5000155959595A5A5A5A585848686868686A0B
+:100B6000155959595A5A5A5A585858686868686AEB
+:100B7000155959595A5A5A5A585858686868686ADB
+:100B8000155959595A5A5A5A585858686868686ACB
+:100B9000155959595A5A5A5A585858686868686ABB
+:100BA000155959595A5A5A5A585858686868686AAB
+:100BB000155959595A5A5A5A585858686868686A9B
+:100BC000155959595A5A5A5A585858686868686A8B
+:100BD000155959595A5A5A5A585858586868686A8B
+:100BE000155959595A5A5A5A585858585868686A8B
+:100BF000155959595A5A5A5A585858686868686A5B
+:100C0000156969696A6A6A6A6A6868686868686AA8
+:100C1000155959595A5A5A5A6A6868686868686A08
+:100C2000155959595A5A5A5A5A6868686868686A08
+:100C3000155959595A5A5A5A5A5868686868686A08
+:100C4000155959595A5A5A5A5A5848686868686A18
+:100C5000155959595A5A5A5A5A5858686868686AF8
+:100C6000155959595A5A5A5A5A5858586868686AF8
+:100C7000155959595A5A5A5A5A5858586868686AE8
+:100C8000155959595A5A5A5A5A5858586868686AD8
+:100C9000155959595A5A5A5A5A5858586868686AC8
+:100CA000155959595A5A5A5A5A5858586868686AB8
+:100CB000155959595A5A5A5A5A5858586868686AA8
+:100CC000155959595A5A5A5A5A5858586868686A98
+:100CD000155959595A5A5A5A5A5858585868686A98
+:100CE000155959595A5A5A5A5A5858585868686A88
+:100CF000155959595A5A5A5A5A5858586868686A68
+:100D0000406969696A6A6A6A6A68686868686840A6
+:100D1000405959595A5A5A5A5A6868686868684016
+:100D2000405959595A5A5A5A5A5868686868684016
+:100D3000405959595A5A5A5A5A5848686868684026
+:100D4000405959595A5A5A5A5A5858686868684006
+:100D5000405959595A5A5A5A5A5858586868684006
+:100D6000405959595A5A5A5A5A58585868686840F6
+:100D7000405959595A5A5A5A5A58585868686840E6
+:100D8000405959595A5A5A5A5A58585868686840D6
+:100D9000405959595A5A5A5A5A58585868686840C6
+:100DA000405959595A5A5A5A5A58585868686840B6
+:100DB000405959595A5A5A5A5A58585868686840A6
+:100DC000405959595A5A5A5A5A5858586868684096
+:100DD000405959595A5A5A5A5A5858585868684096
+:100DE000405959595A5A5A5A5A5858585868684086
+:100DF000405959595A5A5A5A5A5858586868684066
+:100E0000406969696A6A6A6A6A6A686868686840A3
+:100E1000405959595A5A5A5A5A6A68686868684013
+:100E2000405959595A5A5A5A5A5A68686868684013
+:100E3000405959595A5A5A5A5A5A58686868684013
+:100E4000405959595A5A5A5A5A5A58586868684013
+:100E5000405959595A5A5A5A5A5A58586868684003
+:100E6000405959595A5A5A5A5A5A58585868684003
+:100E7000405959595A5A5A5A5A5A585858686840F3
+:100E8000405959595A5A5A5A5A5A585858686840E3
+:100E9000405959595A5A5A5A5A5A585858686840D3
+:100EA000405959595A5A5A5A5A5A585858686840C3
+:100EB000405959595A5A5A5A5A5A585858686840B3
+:100EC000405959595A5A5A5A5A5A585858686840A3
+:100ED000405959595A5A5A5A5A5A58585868684093
+:100EE000405959595A5A5A5A5A5A58585868684083
+:100EF000405959595A5A5A5A5A5A58585868684073
+:100F0000156969696A6A6A6A6A6A6868686868AA63
+:100F1000155959595A5A5A5A5A5A6868686868AAE3
+:100F2000155959595A5A5A5A5A5A4868686868AAF3
+:100F3000155959595A5A5A5A5A5A5858686868AAE3
+:100F4000155959595A5A5A5A5A5A5858686868AAD3
+:100F5000155959595A5A5A5A5A5A5858586868AAD3
+:100F6000155959595A5A5A5A5A5A5858586868AAC3
+:100F7000155959595A5A5A5A5A5A5858586868AAB3
+:100F8000155959595A5A5A5A5A5A5858586868AAA3
+:100F9000155959595A5A5A5A5A5A5858586868AA93
+:100FA000155959595A5A5A5A5A5A5858586868AA83
+:100FB000155959595A5A5A5A5A5A5858586868AA73
+:100FC000155959595A5A5A5A5A5A5858586868AA63
+:100FD000155959595A5A5A5A5A5A5858586868AA53
+:100FE000155959595A5A5A5A5A5A5858585868AA53
+:100FF000155959595A5A5A5A5A5A5858586868AA33
+:10100000156969696A6A6A6A6A6A6A68686868AA60
+:10101000155959595A5A5A5A5A5A6A68686868AAE0
+:10102000155959595A5A5A5A5A5A5A68686868AAE0
+:10103000155959595A5A5A5A5A5A5A58686868AAE0
+:10104000155959595A5A5A5A5A5A5A58586868AAE0
+:10105000155959595A5A5A5A5A5A5A58586868AAD0
+:10106000155959595A5A5A5A5A5A5A58586868AAC0
+:10107000155959595A5A5A5A5A5A5A58586868AAB0
+:10108000155959595A5A5A5A5A5A5A58586868AAA0
+:10109000155959595A5A5A5A5A5A5A58586868AA90
+:1010A000155959595A5A5A5A5A5A5A58586868AA80
+:1010B000155959595A5A5A5A5A5A5A58586868AA70
+:1010C000155959595A5A5A5A5A5A5A58586868AA60
+:1010D000155959595A5A5A5A5A5A5A58585868AA60
+:1010E000155959595A5A5A5A5A5A5A58585868AA50
+:1010F000155959595A5A5A5A5A5A5A58586868AA30
+:10110000406565656A6262626262626060606080BA
+:10111000405555555A52525252524260606060805A
+:10112000405555555A52525252525250606060804A
+:10113000405555555A52525252525250506060804A
+:10114000405555555A52525252525250506060803A
+:10115000405555555A52525252525250506060802A
+:10116000405555555A52525252525250506060801A
+:10117000405555555A52525252525250506060800A
+:10118000405555555A5252525252525050606080FA
+:10119000405555555A5252525252525050606080EA
+:1011A000405555555A5252525252525050606080DA
+:1011B000405555555A5252525252525050606080CA
+:1011C000405555555A5252525252525050606080BA
+:1011D000405555555A5252525252525050506080BA
+:1011E000405555555A5252525252525050506080AA
+:1011F000405555555A52525252525250506060808A
+:10120000406565656A6262626262626260606080B7
+:10121000405555555A525252525252626060608047
+:10122000405555555A525252525252526060608047
+:10123000405555555A525252525252525060608047
+:10124000405555555A525252525252525060608037
+:10125000405555555A525252525252525060608027
+:10126000405555555A525252525252525050608027
+:10127000405555555A525252525252525050608017
+:10128000405555555A525252525252525050608007
+:10129000405555555A5252525252525250506080F7
+:1012A000405555555A5252525252525250506080E7
+:1012B000405555555A5252525252525250506080D7
+:1012C000405555555A5252525252525250506080C7
+:1012D000405555555A5252525252525250506080B7
+:1012E000405555555A5252525252525250506080A7
+:1012F000405555555A525252525252525050608097
+:10130000156565656A6A6262626262626060602A2F
+:10131000155555555A5A5252525252526060602ACF
+:10132000155555555A5A5252525252525060602ACF
+:10133000155555555A5A5252525252525060602ABF
+:10134000155555555A5A5252525252525060602AAF
+:10135000155555555A5A5252525252525050602AAF
+:10136000155555555A5A5252525252525050602A9F
+:10137000155555555A5A5252525252525050602A8F
+:10138000155555555A5A5252525252525050602A7F
+:10139000155555555A5A5252525252525050602A6F
+:1013A000155555555A5A5252525252525050602A5F
+:1013B000155555555A5A5252525252525050602A4F
+:1013C000155555555A5A5252525252525050602A3F
+:1013D000155555555A5A5252525252525050602A2F
+:1013E000155555555A5A5252525252525050602A1F
+:1013F000155555555A5A5252525252525050602A0F
+:10140000156565656A6A6262626262626260602A2C
+:10141000155555555A5A5252525252526260602ACC
+:10142000155555555A5A5252525252525260602ACC
+:10143000155555555A5A5252525252525260602ABC
+:10144000155555555A5A5252525252525250602ABC
+:10145000155555555A5A5252525252525250602AAC
+:10146000155555555A5A5252525252525250602A9C
+:10147000155555555A5A5252525252525250602A8C
+:10148000155555555A5A5252525252525250602A7C
+:10149000155555555A5A5252525252525250602A6C
+:1014A000155555555A5A5252525252525250602A5C
+:1014B000155555555A5A5252525252525250602A4C
+:1014C000155555555A5A5252525252525250602A3C
+:1014D000155555555A5A5252525252525250602A2C
+:1014E000155555555A5A5252525252525250602A1C
+:1014F000155555555A5A5252525252525250602A0C
+:10150000406565656A6A6A626262626262606080A2
+:10151000405555555A5A5A52525252525260608052
+:10152000405555555A5A5A52525252525260608042
+:10153000405555555A5A5A52525252525250608042
+:10154000405555555A5A5A52525252525250608032
+:10155000405555555A5A5A52525252525250608022
+:10156000405555555A5A5A52525252525250608012
+:10157000405555555A5A5A52525252525250608002
+:10158000405555555A5A5A525252525252506080F2
+:10159000405555555A5A5A525252525252506080E2
+:1015A000405555555A5A5A525252525252506080D2
+:1015B000405555555A5A5A525252525252506080C2
+:1015C000405555555A5A5A525252525252506080B2
+:1015D000405555555A5A5A525252525252506080A2
+:1015E000405555555A5A5A52525252525250608092
+:1015F000405555555A5A5A52525252525250608082
+:10160000406565656A6A6A6262626262626260809F
+:10161000405555555A5A5A5252525252526260804F
+:10162000405555555A5A5A5252525252526260803F
+:10163000405555555A5A5A5252525252525260803F
+:10164000405555555A5A5A5252525252525260802F
+:10165000405555555A5A5A5252525252525260801F
+:10166000405555555A5A5A5252525252525260800F
+:10167000405555555A5A5A525252525252526080FF
+:10168000405555555A5A5A525252525252526080EF
+:10169000405555555A5A5A525252525252526080DF
+:1016A000405555555A5A5A525252525252526080CF
+:1016B000405555555A5A5A525252525252526080BF
+:1016C000405555555A5A5A525252525252526080AF
+:1016D000405555555A5A5A5252525252525260809F
+:1016E000405555555A5A5A5252525252525260808F
+:1016F000405555555A5A5A5252525252525260807F
+:101700001565656569696969616161616161602A21
+:101710001555555559595959515151515161602AD1
+:101720001555555559595959515151515151602AD1
+:101730001555555559595959515151515151602AC1
+:101740001555555559595959515151515151502AC1
+:101750001555555559595959515151515151502AB1
+:101760001555555559595959515151515151502AA1
+:101770001555555559595959515151515151502A91
+:101780001555555559595959515151515151502A81
+:101790001555555559595959515151515151502A71
+:1017A0001555555559595959515151515151502A61
+:1017B0001555555559595959515151515151502A51
+:1017C0001555555559595959515151515151502A41
+:1017D0001555555559595959515151515151502A31
+:1017E0001555555559595959515151515151502A21
+:1017F0001555555559595959515151515151502A11
+:101800001565656569696969696161616160602A19
+:101810001555555559595959595151515160502AD9
+:101820001555555559595959595151515150502AD9
+:101830001555555559595959595151515150502AC9
+:101840001555555559595959595151515150502AB9
+:101850001555555559595959595151515150502AA9
+:101860001555555559595959595151515150502A99
+:101870001555555559595959595151515150502A89
+:101880001555555559595959595151515150502A79
+:101890001555555559595959595151515150502A69
+:1018A0001555555559595959595151515150502A59
+:1018B0001555555559595959595151515150502A49
+:1018C0001555555559595959595151515150502A39
+:1018D0001555555559595959595151515150502A29
+:1018E0001555555559595959595151515150502A19
+:1018F0001555555559595959595151515150502A09
+:101900004055555569494949494141414140408007
+:1019100040555554694949494949414140404080F1
+:1019200040555555694949494949414140404080E0
+:1019300040555555694949494949414140404080D0
+:1019400040555555694949494949414140404080C0
+:1019500040555555694949494949414140404080B0
+:1019600040555555694949494949414140404080A0
+:101970004055555569494949494941414040408090
+:101980004055555569494949494941414040408080
+:101990004055555569494949494941414040408070
+:1019A0004055555569494949494941414040408060
+:1019B0004055555569494949494941414040408050
+:1019C0004055555569494949494941414040408040
+:1019D0004055555569494949494941414040408030
+:1019E0004055555569494949494941414040408020
+:1019F0004055555569494949494941414040408010
+:101A000040555555694949494949414140404080FF
+:101A100015959594A9A98989898981818080802AD1
+:101A200015959595A9A98989898981818080802AC0
+:101A300015959595A9A98989898981818080802AB0
+:101A400015959595A9A98989898981818080802AA0
+:101A500015959595A9A98989898981818080802A90
+:101A600015959595A9A98989898981818080802A80
+:101A700015959595A9A98989898981818080802A70
+:101A800015959595A9A98989898981818080802A60
+:101A900015959595A9A98989898981818080802A50
+:101AA00015959595A9A98989898981818080802A40
+:101AB00015959595A9A98989898981818080802A30
+:101AC00015959595A9A98989898981818080802A20
+:101AD00015959595A9A98989898981818080802A10
+:101AE00015959595A9A98989898981818080802A00
+:101AF00015959595A9A98989898981818080802AF0
+:101B000015959595A9A98989898981818080802ADF
+:101B100015959594A9A98989898989808080802AC9
+:101B200015959595A9A98989898989808080802AB8
+:101B300015959595A9A98989898989808080802AA8
+:101B400015959595A9A98989898989808080802A98
+:101B500015959595A9A98989898989808080802A88
+:101B600015959595A9A98989898989808080802A78
+:101B700015959595A9A98989898989808080802A68
+:101B800015959595A9A98989898989808080802A58
+:101B900015959595A9A98989898989808080802A48
+:101BA00015959595A9A98989898989808080802A38
+:101BB00015959595A9A98989898989808080802A28
+:101BC00015959595A9A98989898989808080802A18
+:101BD00015959595A9A98989898989808080802A08
+:101BE00015959595A9A98989898989808080802AF8
+:101BF00015959595A9A98989898989808080802AE8
+:101C000015959595A9A98989898989808080802AD7
+:101C100040959594A9A9A989898989808080808027
+:101C200040959595A9A9A989898989808080808016
+:101C300040959595A9A9A989898989808080808006
+:101C400040959595A9A9A9898989898080808080F6
+:101C500040959595A9A9A9898989898080808080E6
+:101C600040959595A9A9A9898989898080808080D6
+:101C700040959595A9A9A9898989898080808080C6
+:101C800040959595A9A9A9898989898080808080B6
+:101C900040959595A9A9A9898989898080808080A6
+:101CA00040959595A9A9A989898989808080808096
+:101CB00040959595A9A9A989898989808080808086
+:101CC00040959595A9A9A989898989808080808076
+:101CD00040959595A9A9A989898989808080808066
+:101CE00040959595A9A9A989898989808080808056
+:101CF00040959595A9A9A989898989808080808046
+:101D000040959595A9A9A989898989808080808035
+:101D100040959594A9A9A98989898888808080801F
+:101D200040959595A9A9A98989898888808080800E
+:101D300040959595A9A9A9898989888880808080FE
+:101D400040959595A9A9A9898989888880808080EE
+:101D500040959595A9A9A9898989888880808080DE
+:101D600040959595A9A9A9898989888880808080CE
+:101D700040959595A9A9A9898989888880808080BE
+:101D800040959595A9A9A9898989888880808080AE
+:101D900040959595A9A9A98989898888808080809E
+:101DA00040959595A9A9A98989898888808080808E
+:101DB00040959595A9A9A98989898888808080807E
+:101DC00040959595A9A9A98989898888808080806E
+:101DD00040959595A9A9A98989898888808080805E
+:101DE00040959595A9A9A98989898888808080804E
+:101DF00040959595A9A9A98989898888808080803E
+:101E000040959595A9A9A98989898888808080802D
+:101E100015959494A9A9A9A9898988888080802A80
+:101E200015959594A9A9A9A9898988888080802A6F
+:101E300015959594A9A9A9A9898988888080802A5F
+:101E400015959594A9A9A9A9898988888080802A4F
+:101E500015959594A9A9A9A9898988888080802A3F
+:101E600015959594A9A9A9A9898988888080802A2F
+:101E700015959594A9A9A9A9898988888080802A1F
+:101E800015959594A9A9A9A9898988888080802A0F
+:101E900015959594A9A9A9A9898988888080802AFF
+:101EA00015959594A9A9A9A9898988888080802AEF
+:101EB00015959594A9A9A9A9898988888080802ADF
+:101EC00015959594A9A9A9A9898988888080802ACF
+:101ED00015959594A9A9A9A9898988888080802ABF
+:101EE00015959594A9A9A9A9898988888080802AAF
+:101EF00015959594A9A9A9A9898988888080802A9F
+:101F000015959594A9A9A9A9898988888080802A8E
+:101F100015959494A9A9A9A9898888888880802A78
+:101F200015959594A9A9A9A9898888888880802A67
+:101F300015959594A9A9A9A9898888888880802A57
+:101F400015959594A9A9A9A9898888888880802A47
+:101F500015959594A9A9A9A9898888888880802A37
+:101F600015959594A9A9A9A9898888888880802A27
+:101F700015959594A9A9A9A9898888888880802A17
+:101F800015959594A9A9A9A9898888888880802A07
+:101F900015959594A9A9A9A9898888888880802AF7
+:101FA00015959594A9A9A9A9898888888880802AE7
+:101FB00015959594A9A9A9A9898888888880802AD7
+:101FC00015959594A9A9A9A9898888888880802AC7
+:101FD00015959594A9A9A9A9898888888880802AB7
+:101FE00015959594A9A9A9A9898888888880802AA7
+:101FF00015959594A9A9A9A9898888888880802A97
+:1020000015959594A9A9A9A9898888888880802A86
+:1020100040959494A9A9A9A9A988888888808080D6
+:1020200040959594A9A9A9A9A988888888808080C5
+:1020300040959594A9A9A9A9A988888888808080B5
+:1020400040959594A9A9A9A9A988888888808080A5
+:1020500040959594A9A9A9A9A98888888880808095
+:1020600040959594A9A9A9A9A98888888880808085
+:1020700040959594A9A9A9A9A98888888880808075
+:1020800040959594A9A9A9A9A98888888880808065
+:1020900040959594A9A9A9A9A98888888880808055
+:1020A00040959594A9A9A9A9A98888888880808045
+:1020B00040959594A9A9A9A9A98888888880808035
+:1020C00040959594A9A9A9A9A98888888880808025
+:1020D00040959594A9A9A9A9A98888888880808015
+:1020E00040959594A9A9A9A9A98888888880808005
+:1020F00040959594A9A9A9A9A988888888808080F5
+:1021000040959594A9A9A9A9A988888888808080E4
+:1021100040959494A9A9A9A9A888888888888080CE
+:1021200040959594A9A9A9A9A888888888888080BD
+:1021300040959594A9A9A9A9A888888888888080AD
+:1021400040959594A9A9A9A9A8888888888880809D
+:1021500040959594A9A9A9A9A8888888888880808D
+:1021600040959594A9A9A9A9A8888888888880807D
+:1021700040959594A9A9A9A9A8888888888880806D
+:1021800040959594A9A9A9A9A8888888888880805D
+:1021900040959594A9A9A9A9A8888888888880804D
+:1021A00040959594A9A9A9A9A8888888888880803D
+:1021B00040959594A9A9A9A9A8888888888880802D
+:1021C00040959594A9A9A9A9A8888888888880801D
+:1021D00040959594A9A9A9A9A8888888888880800D
+:1021E00040959594A9A9A9A9A888888888888080FD
+:1021F00040959594A9A9A9A9A888888888888080ED
+:1022000040959594A9A9A9A9A888888888888080DC
+:1022100015959494A5A5A5A4A4A484848484802A57
+:1022200015959594A5A5A5A4A4A484848484802A46
+:1022300015959594A5A5A5A4A4A484848484802A36
+:1022400015959594A5A5A5A4A4A484848484802A26
+:1022500015959594A5A5A5A4A4A484848484802A16
+:1022600015959594A5A5A5A4A4A484848484802A06
+:1022700015959594A5A5A5A4A4A484848484802AF6
+:1022800015959594A5A5A5A4A4A484848484802AE6
+:1022900015959594A5A5A5A4A4A484848484802AD6
+:1022A00015959594A5A5A5A4A4A484848484802AC6
+:1022B00015959594A5A5A5A4A4A484848484802AB6
+:1022C00015959594A5A5A5A4A4A484848484802AA6
+:1022D00015959594A5A5A5A4A4A484848484802A96
+:1022E00015959594A5A5A5A4A4A484848484802A86
+:1022F00015959594A5A5A5A4A4A484848484802A76
+:1023000015959594A5A5A5A4A4A484848484802A65
+:1023100015959494A5A5A5A4A4A484848480802A5A
+:1023200040959494A5A5A4A4A4A4A48484808080AA
+:1023300040949494A5A5A4A4A4A4A484808080809F
+:1023400040959494A5A5A4A4A4A4A484808080808E
+:1023500040959494A5A5A4A4A4A4A484808080807E
+:1023600040959494A5A5A4A4A4A4A484808080806E
+:1023700040959494A5A5A4A4A4A4A484808080805E
+:1023800040959494A5A5A4A4A4A4A484808080804E
+:1023900040959494A5A5A4A4A4A4A484808080803E
+:1023A00040959494A5A5A4A4A4A4A484808080802E
+:1023B00040959494A5A5A4A4A4A4A484808080801E
+:1023C00040959494A5A5A4A4A4A4A484808080800E
+:1023D00040959494A5A5A4A4A4A4A48480808080FE
+:1023E00040959494A5A5A4A4A4A4A48480808080EE
+:1023F00040959494A5A5A4A4A4A4A48480808080DE
+:1024000040959494A5A5A4A4A4A4A48480808080CD
+:1024100040959494A5A5A4A4A4A4A48480808080BD
+:1024200040959494A5A5A4A4A4A4A48480808080AD
+:1024300015949494A5A4A4A4A4A4A4A48080802A00
+:1024400015959494A5A4A4A4A4A4A4A48080802AEF
+:1024500015959494A5A4A4A4A4A4A4A48080802ADF
+:1024600015959494A5A4A4A4A4A4A4A48080802ACF
+:1024700015959494A5A4A4A4A4A4A4A48080802ABF
+:1024800015959494A5A4A4A4A4A4A4A48080802AAF
+:1024900015959494A5A4A4A4A4A4A4A48080802A9F
+:1024A00015959494A5A4A4A4A4A4A4A48080802A8F
+:1024B00015959494A5A4A4A4A4A4A4A48080802A7F
+:1024C00015959494A5A4A4A4A4A4A4A48080802A6F
+:1024D00015959494A5A4A4A4A4A4A4A48080802A5F
+:1024E00015959494A5A4A4A4A4A4A4A48080802A4F
+:1024F00015959494A5A4A4A4A4A4A4A48080802A3F
+:1025000015959494A5A4A4A4A4A4A4A48080802A2E
+:1025100015959494A5A4A4A4A4A4A4A48080802A1E
+:1025200015959494A5A4A4A4A4A4A4A48080802A0E
+:1025300015949494A5A4A4A4A4A4A4A08080802A03
+:1025400015959494A5A4A4A4A4A4A4A08080802AF2
+:1025500015959494A5A4A4A4A4A4A4A08080802AE2
+:1025600015959494A5A4A4A4A4A4A4A08080802AD2
+:1025700015959494A5A4A4A4A4A4A4A08080802AC2
+:1025800015959494A5A4A4A4A4A4A4A08080802AB2
+:1025900015959494A5A4A4A4A4A4A4A08080802AA2
+:1025A00015959494A5A4A4A4A4A4A4A08080802A92
+:1025B00015959494A5A4A4A4A4A4A4A08080802A82
+:1025C00015959494A5A4A4A4A4A4A4A08080802A72
+:1025D00015959494A5A4A4A4A4A4A4A08080802A62
+:1025E00015959494A5A4A4A4A4A4A4A08080802A52
+:1025F00015959494A5A4A4A4A4A4A4A08080802A42
+:1026000015959494A5A4A4A4A4A4A4A08080802A31
+:1026100015959494A5A4A4A4A4A4A4A08080802A21
+:1026200015959494A5A4A4A4A4A4A4A08080802A11
+:1026300040949494A4A4A4A4A4A4A4A0A080808062
+:1026400043979797A7A7A7A7A7A7A3A3A383838326
+:1026500014949494A4A4A4A4A4A4A0A0A0A08028AA
+:1026600014545454545454545450505050500028FE
+:1026700040545454545454545450505010000080FA
+:102680004054545054545454505050101000008032
+:1026900014545450545454505050101040000028BA
+:1026A000145454505454545050101010000000282A
+:1026B00040545450545450505010100000000080AA
+:1026C00040545050545450501010100000000080DE
+:1026D00014545050545050101010000000000028A6
+:1026E00014545050545010101010000000000028D6
+:1026F000405050505050101010000000000000805A
+:102700004050505050501010100000000000008049
+:102710004050505050501010100000000000008039
+:102720004050505050501010100000000000008029
+:102730004050505050501010100000000000008019
+:102740004050505050501010100000000000008009
+:1027500040505050505010101000000000000080F9
+:1027600040505050505010101000000000000080E9
+:1027700040505050505010101000000000000080D9
+:1027800040505050505010101000000000000080C9
+:1027900040505050505010101000000000000080B9
+:1027A00040505050505010101000000000000080A9
+:1027B0004050505050501010100000000000008099
+:1027C0004050505050501010100000000000008089
+:1027D0004050505050501010100000000000008079
+:1027E00040505050505010101000000000000000E9
+:1027F0004C5C5C4C5C1C1C1C1C0C0C0C0C0C0C8CE9
+:102800004C5C5C4C5C1C1C1C1C0C0C0C0C0C0C8CD8
+:102810004C5C5C4C5C1C1C1C1C0C0C0C0C0C0C8CC8
+:102820004C5C5C4C5C1C1C1C1C0C0C0C0C0C0C8CB8
+:102830004C5C5C4C5C1C1C1C1C0C0C0C0C0C0C8CA8
+:102840004C5C5C4C5C1C1C1C1C0C0C0C0C0C0C8C98
+:102850004C5C5C4C5C1C1C1C1C0C0C0C0C0C0C8C88
+:102860004C5C5C4C5C1C1C1C1C0C0C0C0C0C0C8C78
+:102870004C5C5C4C5C1C1C1C1C0C0C0C0C0C0C8C68
+:102880004C5C5C4C5C1C1C1C1C0C0C0C0C0C0C8C58
+:102890004C5C5C4C5C1C1C1C1C0C0C0C0C0C0C8C48
+:1028A0004C5C5C4C5C1C1C1C1C0C0C0C0C0C0C8C38
+:1028B0004C5C5C4C5C1C1C1C1C0C0C0C0C0C0C8C28
+:1028C0004C5C5C4C5C1C1C1C1C0C0C0C0C0C0C8C18
+:1028D0004C5C5C4C5C1C1C1C1C0C0C0C0C0C0C8C08
+:1028E0004C5C5C4C5C1C1C1C1C0C0C0C0C0C0C0C78
+:1028F0001050504050101010000000000000002048
+:102900001050504010101010000000000000002077
+:1029100040505040101010000000000000000080E7
+:1029200040505040101010000000000000000080D7
+:1029300040505040101010000000000000000080C7
+:1029400040505040101010000000000000000080B7
+:1029500040505040101010000000000000000080A7
+:102960004050504010101000000000000000008097
+:102970004050504010101000000000000000008087
+:102980004050504010101000000000000000008077
+:102990004050504010101000000000000000008067
+:1029A0004050504010101000000000000000008057
+:1029B0004050504010101000000000000000008047
+:1029C0004050504010101000000000000000008037
+:1029D0004050504010101000000000000000008027
+:1029E0004050504010101000000000000000008017
+:1029F0004050504010101000000000000000008007
+:102A00004050504010101000000000000000000076
+:102A100040504040101010000000000000000080F6
+:102A200040504040101010000000000000000080E6
+:102A300040504040101010000000000000000080D6
+:102A400040504040101010000000000000000080C6
+:102A500040504040101010000000000000000080B6
+:102A600040504040101010000000000000000080A6
+:102A70004050404010101000000000000000008096
+:102A80004050404010101000000000000000008086
+:102A90004050404010101000000000000000008076
+:102AA0004050404010101000000000000000008066
+:102AB0004050404010101000000000000000008056
+:102AC0004050404010101000000000000000008046
+:102AD0004050404010101000000000000000008036
+:102AE0004050404010101000000000000000008026
+:102AF0004050404010101000000000000000008016
+:102B00004050404010101000000000000000000085
+:102B10001050404010100000000000000000002095
+:102B200010504000101000000000000000000020C5
+:102B30004050000010000000000000000000008075
+:102B40004050000010000000000000000000008065
+:102B50004050000010000000000000000000008055
+:102B60004050000010000000000000000000008045
+:102B70004050000010000000000000000000008035
+:102B80004050000010000000000000000000008025
+:102B90004050000010000000000000000000008015
+:102BA0004050000010000000000000000000008005
+:102BB00040500000100000000000000000000080F5
+:102BC00040500000100000000000000000000080E5
+:102BD00040500000100000000000000000000080D5
+:102BE00040500000100000000000000000000080C5
+:102BF00040500000100000000000000000000080B5
+:102C000040500000100000000000000000000080A4
+:102C10004050000010000000000000000000008094
+:102C20004050000010000000000000000000000004
+:102C30004050000010000000000000000000008074
+:102C40004050000010000000000000000000008064
+:102C50004050000010000000000000000000008054
+:102C60004050000010000000000000000000008044
+:102C70004050000010000000000000000000008034
+:102C80004050000010000000000000000000008024
+:102C90004050000010000000000000000000008014
+:102CA0004050000010000000000000000000008004
+:102CB00040500000100000000000000000000080F4
+:102CC00040500000100000000000000000000080E4
+:102CD00040500000100000000000000000000080D4
+:102CE00040500000100000000000000000000080C4
+:102CF00040500000100000000000000000000080B4
+:102D000040500000100000000000000000000080A3
+:102D10004050000010000000000000000000008093
+:102D20004050000010000000000000000000000003
+:102D30000000000000000000000000000000000093
+:102D40003030303030303030303030303030303083
+:102D50000000000000000000000000000000000073
+:102D60000000000000000000000000000000000063
+:102D70000000000000000000000000000000000053
+:102D80000000000000000000000000000000000043
+:102D90000000000000000000000000000000000033
+:102DA0000000000000000000000000000000000023
+:102DB0000000000000000000000000000000000013
+:102DC0000000000000000000000000000000000003
+:102DD00000000000000000000000000000000000F3
+:102DE00000000000000000000000000000000000E3
+:102DF00000000000000000000000000000000000D3
+:102E0000AA6A6A6A6A6A6A6A6A6A6A6A6A6A6A6AE2
+:102E1000AA6A6A6A6A6A6A6A6A6A6A6A6A6A6A6AD2
+:102E2000AA6A6A6A6A6A6A6A6A6A6A6A6A6A6A6AC2
+:102E3000AA6A6A6A6A6A6A6A6A6A6A6A6A6A6A6AB2
+:102E4000AA6A6A6A6A6A6A6A6A6A6A6A6A6A6A6AA2
+:102E5000AA6A6A6A6A6A6A6A6A6A6A6A6A6A6A6A92
+:102E6000AA6A6A6A6A6A6A6A6A6A6A6A6A6A6A6A82
+:102E7000AA6A6A6A6A6A6A6A6A6A6A6A6A6A6A6A72
+:102E800095555555555555556A6A6A6A6A6A6A6A0A
+:102E900095555555555555556A6A6A6A6A6A6A6AFA
+:102EA00095555555555555556A6A6A6A6A6A6A6AEA
+:102EB00095555555555555556A6A6A6A6A6A6A6ADA
+:102EC00095555555555555556A6A6A6A6A6A6A6ACA
+:102ED00095555555555555556A6A6A6A6A6A6A6ABA
+:102EE00095555555555555556A6A6A6A6A6A6A6AAA
+:102EF0009595959595959595AAAAAAAAAAAAAA2A5A
+:102F00008040404040404040404040404040404081
+:102F10008040404040404040404040404040404071
+:102F20008040404040404040404040404040404061
+:102F30008040404040404040404040404040404051
+:102F40008040404040404040404040404040404041
+:102F50008040404040404040404040404040404031
+:102F60008040404040404040404040404040404021
+:102F70008040404040404040404040404040404011
+:102F80009555555555555555404040404040404059
+:102F90009555555555555555404040404040404049
+:102FA0009555555555555555404040404040404039
+:102FB0009555555555555555404040404040404029
+:102FC0009555555555555555404040404040404019
+:102FD0009555555555555555404040404040404009
+:102FE00095555555555555554040404040404040F9
+:102FF00095959595959595958080808080808000A9
+:1030000015555555555555556A6A6A6A6A6A6A2A48
+:1030100015555555555555556A6A6A6A6A6A6A2A38
+:1030200015555555555555556A6A6A6A6A6A6A2A28
+:1030300015555555555555556A6A6A6A6A6A6A2A18
+:1030400015555555555555556A6A6A6A6A6A6A2A08
+:1030500015555555555555556A6A6A6A6A6A6A2AF8
+:1030600015555555555555556A6A6A6A6A6A6A2AE8
+:1030700015555555555555556A6A6A6A6A6A6A2AD8
+:103080002A6A6A6A6A6A6A6A5555555555555515C8
+:103090002A6A6A6A6A6A6A6A5555555555555515B8
+:1030A0002A6A6A6A6A6A6A6A5555555555555515A8
+:1030B0002A6A6A6A6A6A6A6A555555555555551598
+:1030C0002A6A6A6A6A6A6A6A555555555555551588
+:1030D0002A6A6A6A6A6A6A6A555555555555551578
+:1030E0002A6A6A6A6A6A6A6A555555555555551568
+:1030F0002AAAAAAAAAAAAAAA9595959595959515D8
+:1031000015555555555555556A6A6A6A6A6A6A2A47
+:1031100015555555555555556A6A6A6A6A6A6A2A37
+:1031200015555555555555556A6A6A6A6A6A6A2A27
+:1031300015555555555555556A6A6A6A6A6A6A2A17
+:1031400015555555555555556A6A6A6A6A6A6A2A07
+:1031500015555555555555556A6A6A6A6A6A6A2AF7
+:1031600015555555555555556A6A6A6A6A6A6A2AE7
+:1031700015555555555555556A6A6A6A6A6A6A2AD7
+:103180002A6A6A6A6A6A6A6A5555555555555515C7
+:103190002A6A6A6A6A6A6A6A5555555555555515B7
+:1031A0002A6A6A6A6A6A6A6A5555555555555515A7
+:1031B0002A6A6A6A6A6A6A6A555555555555551597
+:1031C0002A6A6A6A6A6A6A6A555555555555551587
+:1031D0002A6A6A6A6A6A6A6A555555555555551577
+:1031E0002A6A6A6A6A6A6A6A555555555555551567
+:1031F0002AAAAAAAAAAAAAAA9595959595959515D7
+:1032000095555555555555556A6A6A6A6A6A6A6A86
+:1032100095555555555555556A6A6A6A6A6A6A6A76
+:1032200095555555555555556A6A6A6A6A6A6A6A66
+:1032300095555555555555556A6A6A6A6A6A6A6A56
+:1032400095555555555555556A6A6A6A6A6A6A6A46
+:1032500095555555555555556A6A6A6A6A6A6A6A36
+:1032600095555555555555556A6A6A6A6A6A6A6A26
+:1032700095555555555555556A6A6A6A6A6A6A6A16
+:10328000AA6A6A6A6A6A6A6A555555555555555506
+:10329000AA6A6A6A6A6A6A6A5555555555555555F6
+:1032A000AA6A6A6A6A6A6A6A5555555555555555E6
+:1032B000AA6A6A6A6A6A6A6A5555555555555555D6
+:1032C000AA6A6A6A6A6A6A6A5555555555555555C6
+:1032D000AA6A6A6A6A6A6A6A5555555555555555B6
+:1032E000AA6A6A6A6A6A6A6A5555555555555555A6
+:1032F000AA6A6AAAAAAAAAAA9595959595959515D6
+:1033000095555555555555556A6A6A6A6A6A6A6A85
+:1033100095555555555555556A6A6A6A6A6A6A6A75
+:1033200095555555555555556A6A6A6A6A6A6A6A65
+:1033300095555555555555556A6A6A6A6A6A6A6A55
+:1033400095555555555555556A6A6A6A6A6A6A6A45
+:1033500095555555555555556A6A6A6A6A6A6A6A35
+:1033600095555555555555556A6A6A6A6A6A6A6A25
+:1033700095555555555555556A6A6A6A6A6A6A6A15
+:10338000AA6A6A6A6A6A6A6A555555555555555505
+:10339000AA6A6A6A6A6A6A6A5555555555555555F5
+:1033A000AA6A6A6A6A6A6A6A5555555555555555E5
+:1033B000AA6A6A6A6A6A6A6A5555555555555555D5
+:1033C000AA6A6A6A6A6A6A6A5555555555555555C5
+:1033D000AA6A6A6A6A6A6A6A5555555555555555B5
+:1033E000AA6A6A6A6A6A6A6A5555555555555555A5
+:1033F000AA6A6AAAAAAAAAAA9595959595959515D5
+:1034000015555555555555556A6A6A6A6A6A6A2A44
+:1034100015555555555555556A6A6A6A6A6A6A2A34
+:1034200015555555555555556A6A6A6A6A6A6A2A24
+:1034300015555555555555556A6A6A6A6A6A6A2A14
+:1034400015555555555555556A6A6A6A6A6A6A2A04
+:1034500015555555555555556A6A6A6A6A6A6A2AF4
+:1034600015555555555555556A6A6A6A6A6A6A2AE4
+:1034700015555555555555556A6A6A6A6A6A6A2AD4
+:103480002A6A6A6A6A6A6A6A5555555555555515C4
+:103490002A6A6A6A6A6A6A6A5555555555555515B4
+:1034A0002A6A6A6A6A6A6A6A5555555555555515A4
+:1034B0002A6A6A6A6A6A6A6A555555555555551594
+:1034C0002A6A6A6A6A6A6A6A555555555555551584
+:1034D0002A6A6A6A6A6A6A6A555555555555551574
+:1034E0002A6A6A6A6A6A6A6A555555555555551564
+:1034F0002A6A6AAAAAAAAAAA959595959595951554
+:1035000015555555555555556A6A6A6A6A6A6A2A43
+:1035100015555555555555556A6A6A6A6A6A6A2A33
+:1035200015555555555555556A6A6A6A6A6A6A2A23
+:1035300015555555555555556A6A6A6A6A6A6A2A13
+:1035400015555555555555556A6A6A6A6A6A6A2A03
+:1035500015555555555555556A6A6A6A6A6A6A2AF3
+:1035600015555555555555556A6A6A6A6A6A6A2AE3
+:1035700015555555555555556A6A6A6A6A6A6A2AD3
+:103580002A6A6A6A6A6A6A6A5555555555555515C3
+:103590002A6A6A6A6A6A6A6A5555555555555515B3
+:1035A0002A6A6A6A6A6A6A6A5555555555555515A3
+:1035B0002A6A6A6A6A6A6A6A555555555555551593
+:1035C0002A6A6A6A6A6A6A6A555555555555551583
+:1035D0002A6A6A6A6A6A6A6A555555555555551573
+:1035E0002A6A6A6A6A6A6A6A555555555555551563
+:1035F0002A6A6AAAAAAAAAAA959595959595951553
+:1036000095555555555555556A6A6A6A6A6A6A6A82
+:1036100095555555555555556A6A6A6A6A6A6A6A72
+:1036200095555555555555556A6A6A6A6A6A6A6A62
+:1036300095555555555555556A6A6A6A6A6A6A6A52
+:1036400095555555555555556A6A6A6A6A6A6A6A42
+:1036500095555555555555556A6A6A6A6A6A6A6A32
+:1036600095555555555555556A6A6A6A6A6A6A6A22
+:1036700095555555555555556A6A6A6A6A6A6A6A12
+:10368000AA6A6A6A6A6A6A6A555555555555555502
+:10369000AA6A6A6A6A6A6A6A5555555555555555F2
+:1036A000AA6A6A6A6A6A6A6A5555555555555555E2
+:1036B000AA6A6A6A6A6A6A6A5555555555555555D2
+:1036C000AA6A6A6A6A6A6A6A5555555555555555C2
+:1036D000AA6A6A6A6A6A6A6A5555555555555555B2
+:1036E000AA6A6A6A6A6A6A6A5555555555555555A2
+:1036F000AA6A6A6AAAAAAAAA959595959595951512
+:1037000095555555555555556A6A6A6A6A6A6A6A81
+:1037100095555555555555556A6A6A6A6A6A6A6A71
+:1037200095555555555555556A6A6A6A6A6A6A6A61
+:1037300095555555555555556A6A6A6A6A6A6A6A51
+:1037400095555555555555556A6A6A6A6A6A6A6A41
+:1037500095555555555555556A6A6A6A6A6A6A6A31
+:1037600095555555555555556A6A6A6A6A6A6A6A21
+:1037700095555555555555556A6A6A6A6A6A6A6A11
+:10378000AA6A6A6A6A6A6A6A555555555555555501
+:10379000AA6A6A6A6A6A6A6A5555555555555555F1
+:1037A000AA6A6A6A6A6A6A6A5555555555555555E1
+:1037B000AA6A6A6A6A6A6A6A5555555555555555D1
+:1037C000AA6A6A6A6A6A6A6A5555555555555555C1
+:1037D000AA6A6A6A6A6A6A6A5555555555555555B1
+:1037E000AA6A6A6A6A6A6A6A5555555555555555A1
+:1037F000AA6A6A6AAAAAAAAA959595959595951511
+:1038000015555555555555556A6A6A6A6A6A6A2A40
+:1038100015555555555555556A6A6A6A6A6A6A2A30
+:1038200015555555555555556A6A6A6A6A6A6A2A20
+:1038300015555555555555556A6A6A6A6A6A6A2A10
+:1038400015555555555555556A6A6A6A6A6A6A2A00
+:1038500015555555555555556A6A6A6A6A6A6A2AF0
+:1038600015555555555555556A6A6A6A6A6A6A2AE0
+:1038700015555555555555556A6A6A6A6A6A6A2AD0
+:103880002A6A6A6A6A6A6A6A5555555555555515C0
+:103890002A6A6A6A6A6A6A6A5555555555555515B0
+:1038A0002A6A6A6A6A6A6A6A5555555555555515A0
+:1038B0002A6A6A6A6A6A6A6A555555555555551590
+:1038C0002A6A6A6A6A6A6A6A555555555555551580
+:1038D0002A6A6A6A6A6A6A6A555555555555551570
+:1038E0002A6A6A6A6A6A6A6A555555555555551560
+:1038F0002A6A6A6A6A6AAAAA959595959595951510
+:1039000015555555555555556A6A6A6A6A6A6A2A3F
+:1039100015555555555555556A6A6A6A6A6A6A2A2F
+:1039200015555555555555556A6A6A6A6A6A6A2A1F
+:1039300015555555555555556A6A6A6A6A6A6A2A0F
+:1039400015555555555555556A6A6A6A6A6A6A2AFF
+:1039500015555555555555556A6A6A6A6A6A6A2AEF
+:1039600015555555555555556A6A6A6A6A6A6A2ADF
+:1039700015555555555555556A6A6A6A6A6A6A2ACF
+:103980002A6A6A6A6A6A6A6A5555555555555515BF
+:103990002A6A6A6A6A6A6A6A5555555555555515AF
+:1039A0002A6A6A6A6A6A6A6A55555555555555159F
+:1039B0002A6A6A6A6A6A6A6A55555555555555158F
+:1039C0002A6A6A6A6A6A6A6A55555555555555157F
+:1039D0002A6A6A6A6A6A6A6A55555555555555156F
+:1039E0002A6A6A6A6A6A6A6A55555555555555155F
+:1039F0002A6A6A6A6A6AAAAA95959595959595150F
+:103A00009595959595959595AAAAAAAAAAAAAA6AFE
+:103A10009595959595959595AAAAAAAAAAAAAA6AEE
+:103A20009595959595959595AAAAAAAAAAAAAA6ADE
+:103A30009595959595959595AAAAAAAAAAAAAA6ACE
+:103A40009595959595959595AAAAAAAAAAAAAA6ABE
+:103A50009595959595959595AAAAAAAAAAAAAA6AAE
+:103A60009595959595959595AAAAAAAAAAAAAA6A9E
+:103A70009595959595959595AAAAAAAAAAAAAA6A8E
+:103A8000AAAAAAAAAAAAAAAA95959595959595557E
+:103A9000AAAAAAAAAAAAAAAA95959595959595556E
+:103AA000AAAAAAAAAAAAAAAA95959595959595555E
+:103AB000AAAAAAAAAAAAAAAA95959595959595554E
+:103AC000AAAAAAAAAAAAAAAA95959595959595553E
+:103AD000AAAAAAAAAAAAAAAA95959595959595552E
+:103AE000AAAAAAAAAAAAAAAA95959595959595551E
+:103AF000AA6A6A6A6A6A6A6A55555555555555558E
+:103B00009595959595959595AAAAAAAAAAAAAA6AFD
+:103B10009595959595959595AAAAAAAAAAAAAA6AED
+:103B20009595959595959595AAAAAAAAAAAAAA6ADD
+:103B30009595959595959595AAAAAAAAAAAAAA6ACD
+:103B40009595959595959595AAAAAAAAAAAAAA6ABD
+:103B50009595959595959595AAAAAAAAAAAAAA6AAD
+:103B60009595959595959595AAAAAAAAAAAAAA6A9D
+:103B70009595959595959595AAAAAAAAAAAAAA6A8D
+:103B8000AAAAAAAAAAAAAAAA95959595959595557D
+:103B9000AAAAAAAAAAAAAAAA95959595959595556D
+:103BA000AAAAAAAAAAAAAAAA95959595959595555D
+:103BB000AAAAAAAAAAAAAAAA95959595959595554D
+:103BC000AAAAAAAAAAAAAAAA95959595959595553D
+:103BD000AAAAAAAAAAAAAAAA95959595959595552D
+:103BE000AAAAAAAAAAAAAAAA95959595959595551D
+:103BF000AA6A6A6A6A6A6A6A55555555555555558D
+:103C00001595959595959595AAAAAAAAAAAAAA2ABC
+:103C10001595959595959595AAAAAAAAAAAAAA2AAC
+:103C20001595959595959595AAAAAAAAAAAAAA2A9C
+:103C30001595959595959595AAAAAAAAAAAAAA2A8C
+:103C40001595959595959595AAAAAAAAAAAAAA2A7C
+:103C50001595959595959595AAAAAAAAAAAAAA2A6C
+:103C60001595959595959595AAAAAAAAAAAAAA2A5C
+:103C70001595959595959595AAAAAAAAAAAAAA2A4C
+:103C80002AAAAAAAAAAAAAAA95959595959595153C
+:103C90002AAAAAAAAAAAAAAA95959595959595152C
+:103CA0002AAAAAAAAAAAAAAA95959595959595151C
+:103CB0002AAAAAAAAAAAAAAA95959595959595150C
+:103CC0002AAAAAAAAAAAAAAA9595959595959515FC
+:103CD0002AAAAAAAAAAAAAAA9595959595959515EC
+:103CE0002AAAAAAAAAAAAAAA9595959595959515DC
+:103CF0002A6A6A6A6A6A6A6A55555555555555154C
+:103D00001595959595959595AAAAAAAAAAAAAA2ABB
+:103D10001595959595959595AAAAAAAAAAAAAA2AAB
+:103D20001595959595959595AAAAAAAAAAAAAA2A9B
+:103D30001595959595959595AAAAAAAAAAAAAA2A8B
+:103D40001595959595959595AAAAAAAAAAAAAA2A7B
+:103D50001595959595959595AAAAAAAAAAAAAA2A6B
+:103D60001595959595959595AAAAAAAAAAAAAA2A5B
+:103D70001595959595959595AAAAAAAAAAAAAA2A4B
+:103D80002AAAAAAAAAAAAAAA95959595959595153B
+:103D90002AAAAAAAAAAAAAAA95959595959595152B
+:103DA0002AAAAAAAAAAAAAAA95959595959595151B
+:103DB0002AAAAAAAAAAAAAAA95959595959595150B
+:103DC0002AAAAAAAAAAAAAAA9595959595959515FB
+:103DD0002AAAAAAAAAAAAAAA9595959595959515EB
+:103DE0002AAAAAAAAAAAAAAA9595959595959515DB
+:103DF0002A6A6A6A6A6A6A6A55555555555555154B
+:103E00009595959595959595AAAAAAAAAAAAAA6AFA
+:103E10009595959595959595AAAAAAAAAAAAAA6AEA
+:103E20009595959595959595AAAAAAAAAAAAAA6ADA
+:103E30009595959595959595AAAAAAAAAAAAAA6ACA
+:103E40009595959595959595AAAAAAAAAAAAAA6ABA
+:103E50009595959595959595AAAAAAAAAAAAAA6AAA
+:103E60009595959595959595AAAAAAAAAAAAAA6A9A
+:103E70009595959595959595AAAAAAAAAAAAAA6A8A
+:103E8000AAAAAAAAAAAAAAAA95959595959595557A
+:103E9000AAAAAAAAAAAAAAAA95959595959595556A
+:103EA000AAAAAAAAAAAAAAAA95959595959595555A
+:103EB000AAAAAAAAAAAAAAAA95959595959595554A
+:103EC000AAAAAAAAAAAAAAAA95959595959595553A
+:103ED000AAAAAAAAAAAAAAAA95959595959595552A
+:103EE000AAAAAAAAAAAAAAAA95959595959595551A
+:103EF000AA6A6A6A6A6A6A6A55555555555555558A
+:103F00009595959595959595AAAAAAAAAAAAAA6AF9
+:103F10009595959595959595AAAAAAAAAAAAAA6AE9
+:103F20009595959595959595AAAAAAAAAAAAAA6AD9
+:103F30009595959595959595AAAAAAAAAAAAAA6AC9
+:103F40009595959595959595AAAAAAAAAAAAAA6AB9
+:103F50009595959595959595AAAAAAAAAAAAAA6AA9
+:103F60009595959595959595AAAAAAAAAAAAAA6A99
+:103F70009595959595959595AAAAAAAAAAAAAA6A89
+:103F8000AAAAAAAAAAAAAAAA959595959595955579
+:103F9000AAAAAAAAAAAAAAAA959595959595955569
+:103FA000AAAAAAAAAAAAAAAA959595959595955559
+:103FB000AAAAAAAAAAAAAAAA959595959595955549
+:103FC000AAAAAAAAAAAAAAAA959595959595955539
+:103FD000AAAAAAAAAAAAAAAA959595959595955529
+:103FE000AAAAAAAAAAAAAAAA959595959595955519
+:103FF000AA6A6A6A6A6A6A6A555555555555555589
+:104000001595959595959595AAAAAAAAAAAAAA2AB8
+:104010001595959595959595AAAAAAAAAAAAAA2AA8
+:104020001595959595959595AAAAAAAAAAAAAA2A98
+:104030001595959595959595AAAAAAAAAAAAAA2A88
+:104040001595959595959595AAAAAAAAAAAAAA2A78
+:104050001595959595959595AAAAAAAAAAAAAA2A68
+:104060001595959595959595AAAAAAAAAAAAAA2A58
+:104070001595959595959595AAAAAAAAAAAAAA2A48
+:104080002AAAAAAAAAAAAAAA959595959595951538
+:104090002AAAAAAAAAAAAAAA959595959595951528
+:1040A0002AAAAAAAAAAAAAAA959595959595951518
+:1040B0002AAAAAAAAAAAAAAA959595959595951508
+:1040C0002AAAAAAAAAAAAAAA9595959595959515F8
+:1040D0002AAAAAAAAAAAAAAA9595959595959515E8
+:1040E0002AAAAAAAAAAAAAAA9595959595959515D8
+:1040F0002A6A6A6A6A6A6A6A555555555555551548
+:104100001595959595959595AAAAAAAAAAAAAA2AB7
+:104110001595959595959595AAAAAAAAAAAAAA2AA7
+:104120001595959595959595AAAAAAAAAAAAAA2A97
+:104130001595959595959595AAAAAAAAAAAAAA2A87
+:104140001595959595959595AAAAAAAAAAAAAA2A77
+:104150001595959595959595AAAAAAAAAAAAAA2A67
+:104160001595959595959595AAAAAAAAAAAAAA2A57
+:104170001595959595959595AAAAAAAAAAAAAA2A47
+:104180002AAAAAAAAAAAAAAA959595959595951537
+:104190002AAAAAAAAAAAAAAA959595959595951527
+:1041A0002AAAAAAAAAAAAAAA959595959595951517
+:1041B0002AAAAAAAAAAAAAAA959595959595951507
+:1041C0002AAAAAAAAAAAAAAA9595959595959515F7
+:1041D0002AAAAAAAAAAAAAAA9595959595959515E7
+:1041E0002AAAAAAAAAAAAAAA9595959595959515D7
+:1041F0002A6A6A6A6A6A6A6A555555555555551547
+:104200009595959595959595AAAAAAAAAAAAAA6AF6
+:104210009595959595959595AAAAAAAAAAAAAA6AE6
+:104220009595959595959595AAAAAAAAAAAAAA6AD6
+:104230009595959595959595AAAAAAAAAAAAAA6AC6
+:104240009595959595959595AAAAAAAAAAAAAA6AB6
+:104250009595959595959595AAAAAAAAAAAAAA6AA6
+:104260009595959595959595AAAAAAAAAAAAAA6A96
+:104270009595959595959595AAAAAAAAAAAAAA6A86
+:10428000AAAAAAAAAAAAAAAA959595959595955576
+:10429000AAAAAAAAAAAAAAAA959595959595955566
+:1042A000AAAAAAAAAAAAAAAA959595959595955556
+:1042B000AAAAAAAAAAAAAAAA959595959595955546
+:1042C000AAAAAAAAAAAAAAAA959595959595955536
+:1042D000AAAAAAAAAAAAAAAA959595959595955526
+:1042E000AAAAAAAAAAAAAAAA959595959595955516
+:1042F000AA6A6A6A6A6A6A6A555555555555555586
+:104300009595959595959595AAAAAAAAAAAAAA6AF5
+:104310009595959595959595AAAAAAAAAAAAAA6AE5
+:104320009595959595959595AAAAAAAAAAAAAA6AD5
+:104330009595959595959595AAAAAAAAAAAAAA6AC5
+:104340009595959595959595AAAAAAAAAAAAAA6AB5
+:104350009595959595959595AAAAAAAAAAAAAA6AA5
+:104360009595959595959595AAAAAAAAAAAAAA6A95
+:104370009595959595959595AAAAAAAAAAAAAA6A85
+:10438000AAAAAAAAAAAAAAAA959595959595955575
+:10439000AAAAAAAAAAAAAAAA959595959595955565
+:1043A000AAAAAAAAAAAAAAAA959595959595955555
+:1043B000AAAAAAAAAAAAAAAA959595959595955545
+:1043C000AAAAAAAAAAAAAAAA959595959595955535
+:1043D000AAAAAAAAAAAAAAAA959595959595955525
+:1043E000AAAAAAAAAAAAAAAA959595959595955515
+:1043F000AA6A6A6A6A6A6A6A555555555555555585
+:104400001595959595959595AAAAAAAAAAAAAA2AB4
+:104410001595959595959595AAAAAAAAAAAAAA2AA4
+:104420001595959595959595AAAAAAAAAAAAAA2A94
+:104430001595959595959595AAAAAAAAAAAAAA2A84
+:104440001595959595959595AAAAAAAAAAAAAA2A74
+:104450001595959595959595AAAAAAAAAAAAAA2A64
+:104460001595959595959595AAAAAAAAAAAAAA2A54
+:104470001595959595959595AAAAAAAAAAAAAA2A44
+:104480002AAAAAAAAAAAAAAA959595959595951534
+:104490002AAAAAAAAAAAAAAA959595959595951524
+:1044A0002AAAAAAAAAAAAAAA959595959595951514
+:1044B0002AAAAAAAAAAAAAAA959595959595951504
+:1044C0002AAAAAAAAAAAAAAA9595959595959515F4
+:1044D0002AAAAAAAAAAAAAAA9595959595959515E4
+:1044E0002AAAAAAAAAAAAAAA9595959595959515D4
+:1044F0002A6A6A6A6A6A6A6A555555555555551544
+:104500001595959595959595AAAAAAAAAAAAAA2AB3
+:104510001595959595959595AAAAAAAAAAAAAA2AA3
+:104520001595959595959595AAAAAAAAAAAAAA2A93
+:104530001595959595959595AAAAAAAAAAAAAA2A83
+:104540001595959595959595AAAAAAAAAAAAAA2A73
+:104550001595959595959595AAAAAAAAAAAAAA2A63
+:104560001595959595959595AAAAAAAAAAAAAA2A53
+:104570001595959595959595AAAAAAAAAAAAAA2A43
+:104580002AAAAAAAAAAAAAAA959595959595951533
+:104590002AAAAAAAAAAAAAAA959595959595951523
+:1045A0002AAAAAAAAAAAAAAA959595959595951513
+:1045B0002AAAAAAAAAAAAAAA959595959595951503
+:1045C0002AAAAAAAAAAAAAAA9595959595959515F3
+:1045D0002AAAAAAAAAAAAAAA9595959595959515E3
+:1045E0002AAAAAAAAAAAAAAA9595959595959515D3
+:1045F0002A6A6A6A6A6A6A6A555555555555551543
+:1046000095959515151515152A2A2A2A2A2A2A6AF2
+:1046100095959515151515152A2A2A2A2A2A2A6AE2
+:1046200095959515151515152A2A2A2A2A2A2A6AD2
+:1046300095959515151515152A2A2A2A2A2A2A6AC2
+:1046400095959515151515152A2A2A2A2A2A2A6AB2
+:1046500095959515151515152A2A2A2A2A2A2A6AA2
+:1046600095959515151515152A2A2A2A2A2A2A6A92
+:1046700095959515151515152A2A2A2A2A2A2A6A82
+:10468000AAAAAA2A2A2A2A2A151515151515155572
+:10469000AAAAAA2A2A2A2A2A151515151515155562
+:1046A000AAAAAA2A2A2A2A2A151515151515155552
+:1046B000AAAAAA2A2A2A2A2A151515151515155542
+:1046C000AAAAAA2A2A2A2A2A151515151515155532
+:1046D000AAAAAA2A2A2A2A2A151515151515155522
+:1046E000AAAAAA2A2A2A2A2A151515151515155512
+:1046F000AAAAAA2A2A2A2A2A151515151515155502
+:1047000095959515151515152A2A2A2A2A2A2A6AF1
+:1047100095959515151515152A2A2A2A2A2A2A6AE1
+:1047200095959515151515152A2A2A2A2A2A2A6AD1
+:1047300095959515151515152A2A2A2A2A2A2A6AC1
+:1047400095959515151515152A2A2A2A2A2A2A6AB1
+:1047500095959515151515152A2A2A2A2A2A2A6AA1
+:1047600095959515151515152A2A2A2A2A2A2A6A91
+:1047700095959515151515152A2A2A2A2A2A2A6A81
+:10478000AAAAAA2A2A2A2A2A151515151515155571
+:10479000AAAAAA2A2A2A2A2A151515151515155561
+:1047A000AAAAAA2A2A2A2A2A151515151515155551
+:1047B000AAAAAA2A2A2A2A2A151515151515155541
+:1047C000AAAAAA2A2A2A2A2A151515151515155531
+:1047D000AAAAAA2A2A2A2A2A151515151515155521
+:1047E000AAAAAA2A2A2A2A2A151515151515155511
+:1047F000AAAAAA2A2A2A2A2A151515151515155501
+:1048000015959515151515152A2A2A2A2A2A2A2AB0
+:1048100015959515151515152A2A2A2A2A2A2A2AA0
+:1048200015959515151515152A2A2A2A2A2A2A2A90
+:1048300015959515151515152A2A2A2A2A2A2A2A80
+:1048400015959515151515152A2A2A2A2A2A2A2A70
+:1048500015959515151515152A2A2A2A2A2A2A2A60
+:1048600015959515151515152A2A2A2A2A2A2A2A50
+:1048700015959515151515152A2A2A2A2A2A2A2A40
+:104880002AAAAA2A2A2A2A2A151515151515151530
+:104890002AAAAA2A2A2A2A2A151515151515151520
+:1048A0002AAAAA2A2A2A2A2A151515151515151510
+:1048B0002AAAAA2A2A2A2A2A151515151515151500
+:1048C0002AAAAA2A2A2A2A2A1515151515151515F0
+:1048D0002AAAAA2A2A2A2A2A1515151515151515E0
+:1048E0002AAAAA2A2A2A2A2A1515151515151515D0
+:1048F0006AAAAA2A2A2A2A2A151515151515151580
+:1049000015959595151515152A2A2A2A2A2A2A2A2F
+:1049100015959595151515152A2A2A2A2A2A2A2A1F
+:1049200015959595151515152A2A2A2A2A2A2A2A0F
+:1049300015959595151515152A2A2A2A2A2A2A2AFF
+:1049400015959595151515152A2A2A2A2A2A2A2AEF
+:1049500015959595151515152A2A2A2A2A2A2A2ADF
+:1049600015959595151515152A2A2A2A2A2A2A2ACF
+:1049700015959595151515152A2A2A2A2A2A2A2ABF
+:104980002AAAAAAA2A2A2A2A1515151515151515AF
+:104990002AAAAAAA2A2A2A2A15151515151515159F
+:1049A0002AAAAAAA2A2A2A2A15151515151515158F
+:1049B0002AAAAAAA2A2A2A2A15151515151515157F
+:1049C0002AAAAAAA2A2A2A2A15151515151515156F
+:1049D0002AAAAAAA2A2A2A2A15151515151515155F
+:1049E0002AAAAAAA2A2A2A2A15151515151515154F
+:1049F0006AAAAAAA2A2A2A2A1515151515151515FF
+:104A000095959595151515152A2A2A2A2A2A2A6A6E
+:104A100095959595151515152A2A2A2A2A2A2A6A5E
+:104A200095959595151515152A2A2A2A2A2A2A6A4E
+:104A300095959595151515152A2A2A2A2A2A2A6A3E
+:104A400095959595151515152A2A2A2A2A2A2A6A2E
+:104A500095959595151515152A2A2A2A2A2A2A6A1E
+:104A600095959595151515152A2A2A2A2A2A2A6A0E
+:104A700095959595151515152A2A2A2A2A2A2A6AFE
+:104A8000AAAAAAAA2A2A2A2A1515151515151555EE
+:104A9000AAAAAAAA2A2A2A2A1515151515151555DE
+:104AA000AAAAAAAA2A2A2A2A1515151515151555CE
+:104AB000AAAAAAAA2A2A2A2A1515151515151555BE
+:104AC000AAAAAAAA2A2A2A2A1515151515151555AE
+:104AD000AAAAAAAA2A2A2A2A15151515151515559E
+:104AE000AAAAAAAA2A2A2A2A15151515151515558E
+:104AF0002AAAAAAA2A2A2A2A1515151515151555FE
+:104B000095959595151515152A2A2A2A2A2A2A6A6D
+:104B100095959595151515152A2A2A2A2A2A2A6A5D
+:104B200095959595151515152A2A2A2A2A2A2A6A4D
+:104B300095959595151515152A2A2A2A2A2A2A6A3D
+:104B400095959595151515152A2A2A2A2A2A2A6A2D
+:104B500095959595151515152A2A2A2A2A2A2A6A1D
+:104B600095959595151515152A2A2A2A2A2A2A6A0D
+:104B700095959595151515152A2A2A2A2A2A2A6AFD
+:104B8000AAAAAAAA2A2A2A2A1515151515151555ED
+:104B9000AAAAAAAA2A2A2A2A1515151515151555DD
+:104BA000AAAAAAAA2A2A2A2A1515151515151555CD
+:104BB000AAAAAAAA2A2A2A2A1515151515151555BD
+:104BC000AAAAAAAA2A2A2A2A1515151515151555AD
+:104BD000AAAAAAAA2A2A2A2A15151515151515559D
+:104BE000AAAAAAAA2A2A2A2A15151515151515558D
+:104BF0002AAAAAAA2A2A2A2A1515151515151555FD
+:104C000015959595151515152A2A2A2A2A2A2A2A2C
+:104C100015959595151515152A2A2A2A2A2A2A2A1C
+:104C200015959595151515152A2A2A2A2A2A2A2A0C
+:104C300015959595151515152A2A2A2A2A2A2A2AFC
+:104C400015959595151515152A2A2A2A2A2A2A2AEC
+:104C500015959595151515152A2A2A2A2A2A2A2ADC
+:104C600015959595151515152A2A2A2A2A2A2A2ACC
+:104C700015959595151515152A2A2A2A2A2A2A2ABC
+:104C80002AAAAAAA2A2A2A2A1515151515151515AC
+:104C90002AAAAAAA2A2A2A2A15151515151515159C
+:104CA0002AAAAAAA2A2A2A2A15151515151515158C
+:104CB0002AAAAAAA2A2A2A2A15151515151515157C
+:104CC0002AAAAAAA2A2A2A2A15151515151515156C
+:104CD0002AAAAAAA2A2A2A2A15151515151515155C
+:104CE0002AAAAAAA2A2A2A2A15151515151515154C
+:104CF0006AAAAAAA2A2A2A2A1515151515151515FC
+:104D000015959595951515152A2A2A2A2A2A2A2AAB
+:104D100015959595951515152A2A2A2A2A2A2A2A9B
+:104D200015959595951515152A2A2A2A2A2A2A2A8B
+:104D300015959595951515152A2A2A2A2A2A2A2A7B
+:104D400015959595951515152A2A2A2A2A2A2A2A6B
+:104D500015959595951515152A2A2A2A2A2A2A2A5B
+:104D600015959595951515152A2A2A2A2A2A2A2A4B
+:104D700015959595951515152A2A2A2A2A2A2A2A3B
+:104D80002AAAAAAAAA2A2A2A15151515151515152B
+:104D90002AAAAAAAAA2A2A2A15151515151515151B
+:104DA0002AAAAAAAAA2A2A2A15151515151515150B
+:104DB0002AAAAAAAAA2A2A2A1515151515151515FB
+:104DC0002AAAAAAAAA2A2A2A1515151515151515EB
+:104DD0002AAAAAAAAA2A2A2A1515151515151515DB
+:104DE0002AAAAAAAAA2A2A2A1515151515151515CB
+:104DF0006AAAAAAAAA2A2A2A15151515151515157B
+:104E000095959595951515152A2A2A2A2A2A2A6AEA
+:104E100095959595951515152A2A2A2A2A2A2A6ADA
+:104E200095959595951515152A2A2A2A2A2A2A6ACA
+:104E300095959595951515152A2A2A2A2A2A2A6ABA
+:104E400095959595951515152A2A2A2A2A2A2A6AAA
+:104E500095959595951515152A2A2A2A2A2A2A6A9A
+:104E600095959595951515152A2A2A2A2A2A2A6A8A
+:104E700095959595951515152A2A2A2A2A2A2A6A7A
+:104E8000AAAAAAAAAA2A2A2A15151515151515556A
+:104E9000AAAAAAAAAA2A2A2A15151515151515555A
+:104EA000AAAAAAAAAA2A2A2A15151515151515554A
+:104EB000AAAAAAAAAA2A2A2A15151515151515553A
+:104EC000AAAAAAAAAA2A2A2A15151515151515552A
+:104ED000AAAAAAAAAA2A2A2A15151515151515551A
+:104EE000AAAAAAAAAA2A2A2A15151515151515550A
+:104EF0002AAAAAAAAA2A2A2A15151515151515557A
+:104F000095959595959515152A2A2A2A2A2A2A6A69
+:104F100095959595959515152A2A2A2A2A2A2A6A59
+:104F200095959595959515152A2A2A2A2A2A2A6A49
+:104F300095959595959515152A2A2A2A2A2A2A6A39
+:104F400095959595959515152A2A2A2A2A2A2A6A29
+:104F500095959595959515152A2A2A2A2A2A2A6A19
+:104F600095959595959515152A2A2A2A2A2A2A6A09
+:104F700095959595959515152A2A2A2A2A2A2A6AF9
+:104F8000AAAAAAAAAAAA2A2A1515151515151555E9
+:104F9000AAAAAAAAAAAA2A2A1515151515151555D9
+:104FA000AAAAAAAAAAAA2A2A1515151515151555C9
+:104FB000AAAAAAAAAAAA2A2A1515151515151555B9
+:104FC000AAAAAAAAAAAA2A2A1515151515151555A9
+:104FD000AAAAAAAAAAAA2A2A151515151515155599
+:104FE000AAAAAAAAAAAA2A2A151515151515155589
+:104FF0002AAAAAAAAAAA2A2A1515151515151555F9
+:1050000015959595959515152A2A2A2A2A2A2A2A28
+:1050100015959595959515152A2A2A2A2A2A2A2A18
+:1050200015959595959515152A2A2A2A2A2A2A2A08
+:1050300015959595959515152A2A2A2A2A2A2A2AF8
+:1050400015959595959515152A2A2A2A2A2A2A2AE8
+:1050500015959595959515152A2A2A2A2A2A2A2AD8
+:1050600015959595959515152A2A2A2A2A2A2A2AC8
+:1050700015959595959515152A2A2A2A2A2A2A2AB8
+:105080002AAAAAAAAAAA2A2A1515151515151515A8
+:105090002AAAAAAAAAAA2A2A151515151515151598
+:1050A0002AAAAAAAAAAA2A2A151515151515151588
+:1050B0002AAAAAAAAAAA2A2A151515151515151578
+:1050C0002AAAAAAAAAAA2A2A151515151515151568
+:1050D0002AAAAAAAAAAA2A2A151515151515151558
+:1050E0002AAAAAAAAAAA2A2A151515151515151548
+:1050F0006AAAAAAAAAAA2A2A1515151515151515F8
+:1051000015959595959595152A2A2A2A2A2A2A2AA7
+:1051100015959595959595152A2A2A2A2A2A2A2A97
+:1051200015959595959595152A2A2A2A2A2A2A2A87
+:1051300015959595959595152A2A2A2A2A2A2A2A77
+:1051400015959595959595152A2A2A2A2A2A2A2A67
+:1051500015959595959595152A2A2A2A2A2A2A2A57
+:1051600015959595959595152A2A2A2A2A2A2A2A47
+:1051700015959595959595152A2A2A2A2A2A2A2A37
+:105180002AAAAAAAAAAAAA2A151515151515151527
+:105190002AAAAAAAAAAAAA2A151515151515151517
+:1051A0002AAAAAAAAAAAAA2A151515151515151507
+:1051B0002AAAAAAAAAAAAA2A1515151515151515F7
+:1051C0002AAAAAAAAAAAAA2A1515151515151515E7
+:1051D0002AAAAAAAAAAAAA2A1515151515151515D7
+:1051E0002AAAAAAAAAAAAA2A1515151515151515C7
+:1051F0006AAAAAAAAAAAAA2A151515151515151577
+:1052000095959595959595952A2A2A2A2A2A2A6A66
+:1052100095959595959595952A2A2A2A2A2A2A6A56
+:1052200095959595959595952A2A2A2A2A2A2A6A46
+:1052300095959595959595952A2A2A2A2A2A2A6A36
+:1052400095959595959595952A2A2A2A2A2A2A6A26
+:1052500095959595959595952A2A2A2A2A2A2A6A16
+:1052600095959595959595952A2A2A2A2A2A2A6A06
+:1052700095959595959595952A2A2A2A2A2A2A6AF6
+:10528000AAAAAAAAAAAAAAAA1515151515151555E6
+:10529000AAAAAAAAAAAAAAAA1515151515151555D6
+:1052A000AAAAAAAAAAAAAAAA1515151515151555C6
+:1052B000AAAAAAAAAAAAAAAA1515151515151555B6
+:1052C000AAAAAAAAAAAAAAAA1515151515151555A6
+:1052D000AAAAAAAAAAAAAAAA151515151515155596
+:1052E000AAAAAAAAAAAAAAAA151515151515155586
+:1052F0002AAAAAAAAAAAAAAA1515151515151555F6
+:105300009595959595959595AA2A2A2A2A2A2A6AE5
+:105310009595959595959595AA2A2A2A2A2A2A6AD5
+:105320009595959595959595AA2A2A2A2A2A2A6AC5
+:105330009595959595959595AA2A2A2A2A2A2A6AB5
+:105340009595959595959595AA2A2A2A2A2A2A6AA5
+:105350009595959595959595AA2A2A2A2A2A2A6A95
+:105360009595959595959595AA2A2A2A2A2A2A6A85
+:105370009595959595959595AA2A2A2A2A2A2A6A75
+:10538000AAAAAAAAAAAAAAAA951515151515155565
+:10539000AAAAAAAAAAAAAAAA951515151515155555
+:1053A000AAAAAAAAAAAAAAAA951515151515155545
+:1053B000AAAAAAAAAAAAAAAA951515151515155535
+:1053C000AAAAAAAAAAAAAAAA951515151515155525
+:1053D000AAAAAAAAAAAAAAAA951515151515155515
+:1053E000AAAAAAAAAAAAAAAA951515151515155505
+:1053F0002AAAAAAAAAAAAAAA951515151515155575
+:105400005595959595959595AA2A2A2A2A2A2A2A64
+:105410005595959595959595AA2A2A2A2A2A2A2A54
+:105420005595959595959595AA2A2A2A2A2A2A2A44
+:105430005595959595959595AA2A2A2A2A2A2A2A34
+:105440005595959595959595AA2A2A2A2A2A2A2A24
+:105450005595959595959595AA2A2A2A2A2A2A2A14
+:105460005595959595959595AA2A2A2A2A2A2A2A04
+:105470005595959595959595AA2A2A2A2A2A2A2AF4
+:105480006AAAAAAAAAAAAAAA9515151515151515E4
+:105490006AAAAAAAAAAAAAAA9515151515151515D4
+:1054A0006AAAAAAAAAAAAAAA9515151515151515C4
+:1054B0006AAAAAAAAAAAAAAA9515151515151515B4
+:1054C0006AAAAAAAAAAAAAAA9515151515151515A4
+:1054D0006AAAAAAAAAAAAAAA951515151515151594
+:1054E0006AAAAAAAAAAAAAAA951515151515151584
+:1054F0006AAAAAAAAAAAAAAA951515151515151574
+:105500005595959595959595AAAA2A2AAA2A2A2A63
+:105510005595959595959595AAAA2A2AAA2A2A2A53
+:105520005595959595959595AAAA2A2AAA2A2A2A43
+:105530005595959595959595AAAA2A2AAA2A2A2A33
+:105540005595959595959595AAAA2A2AAA2A2A2A23
+:105550005595959595959595AAAA2A2AAA2A2A2A13
+:105560005595959595959595AAAA2A2AAA2A2A2A03
+:105570005595959595959595AAAA2A2AAA2A2A2AF3
+:105580006AAAAAAAAAAAAAAA9595151595151515E3
+:105590006AAAAAAAAAAAAAAA9595151595151515D3
+:1055A0006AAAAAAAAAAAAAAA9595151595151515C3
+:1055B0006AAAAAAAAAAAAAAA9595151595151515B3
+:1055C0006AAAAAAAAAAAAAAA9595151595151515A3
+:1055D0006AAAAAAAAAAAAAAA959515159515151593
+:1055E0006AAAAAAAAAAAAAAA959515159515151583
+:1055F0006AAAAAAAAAAAAAAA959515159515151573
+:105600001595959595959595AAAAAA2A2A2A2A6A62
+:105610001595959595959595AAAAAA2A2A2A2A6A52
+:105620001595959595959595AAAAAA2A2A2A2A6A42
+:105630001595959595959595AAAAAA2A2A2A2A6A32
+:105640001595959595959595AAAAAA2A2A2A2A6A22
+:105650001595959595959595AAAAAA2A2A2A2A6A12
+:105660001595959595959595AAAAAA2A2A2A2A6A02
+:105670001595959595959595AAAAAA2A2A2A2A6AF2
+:105680002AAAAAAAAAAAAAAA9595951515151555E2
+:105690002AAAAAAAAAAAAAAA9595951515151555D2
+:1056A0002AAAAAAAAAAAAAAA9595951515151555C2
+:1056B0002AAAAAAAAAAAAAAA9595951515151555B2
+:1056C0002AAAAAAAAAAAAAAA9595951515151555A2
+:1056D0002AAAAAAAAAAAAAAA959595151515155592
+:1056E0002AAAAAAAAAAAAAAA959595151515155582
+:1056F0002AAAAAAAAAAAAAAA959595151515155572
+:105700001595959595959595AAAAAAAA2A2A2A6AE1
+:105710001595959595959595AAAAAAAA2A2A2A6AD1
+:105720001595959595959595AAAAAAAA2A2A2A6AC1
+:105730001595959595959595AAAAAAAA2A2A2A6AB1
+:105740001595959595959595AAAAAAAA2A2A2A6AA1
+:105750001595959595959595AAAAAAAA2A2A2A6A91
+:105760001595959595959595AAAAAAAA2A2A2A6A81
+:105770001595959595959595AAAAAAAA2A2A2A6A71
+:105780002AAAAAAAAAAAAAAA959595951515155561
+:105790002AAAAAAAAAAAAAAA959595951515155551
+:1057A0002AAAAAAAAAAAAAAA959595951515155541
+:1057B0002AAAAAAAAAAAAAAA959595951515155531
+:1057C0002AAAAAAAAAAAAAAA959595951515155521
+:1057D0002AAAAAAAAAAAAAAA959595951515155511
+:1057E0002AAAAAAAAAAAAAAA959595951515155501
+:1057F0002AAAAAAAAAAAAAAA9595959515151555F1
+:105800005595959595959595AAAAAAAAAAAA2A2AE0
+:105810005595959595959595AAAAAAAAAAAA2A2AD0
+:105820005595959595959595AAAAAAAAAAAA2A2AC0
+:105830005595959595959595AAAAAAAAAAAA2A2AB0
+:105840005595959595959595AAAAAAAAAAAA2A2AA0
+:105850005595959595959595AAAAAAAAAAAA2A2A90
+:105860005595959595959595AAAAAAAAAAAA2A2A80
+:105870005595959595959595AAAAAAAAAAAA2A2A70
+:105880006AAAAAAAAAAAAAAA959595959595151560
+:105890006AAAAAAAAAAAAAAA959595959595151550
+:1058A0006AAAAAAAAAAAAAAA959595959595151540
+:1058B0006AAAAAAAAAAAAAAA959595959595151530
+:1058C0006AAAAAAAAAAAAAAA959595959595151520
+:1058D0006AAAAAAAAAAAAAAA959595959595151510
+:1058E0006AAAAAAAAAAAAAAA959595959595151500
+:1058F0006AAAAAAAAAAAAAAA9595959595951515F0
+:1059000055555555555555556A6A6A6A6A6A6A2ADF
+:1059100055555555555555556A6A6A6A6A6A6A2ACF
+:1059200055555555555555556A6A6A6A6A6A6A2ABF
+:1059300055555555555555556A6A6A6A6A6A6A2AAF
+:1059400055555555555555556A6A6A6A6A6A6A2A9F
+:1059500055555555555555556A6A6A6A6A6A6A2A8F
+:1059600055555555555555556A6A6A6A6A6A6A2A7F
+:1059700055555555555555556A6A6A6A6A6A6A2A6F
+:105980006A6A6A6A6A6A6A6A55555555555555155F
+:105990006A6A6A6A6A6A6A6A55555555555555154F
+:1059A0006A6A6A6A6A6A6A6A55555555555555153F
+:1059B0006A6A6A6A6A6A6A6A55555555555555152F
+:1059C0006A6A6A6A6A6A6A6A55555555555555151F
+:1059D0006A6A6A6A6A6A6A6A55555555555555150F
+:1059E0006A6A6A6A6A6A6A6A5555555555555515FF
+:1059F0006A6A6A6A6A6A6A6A5555555555555515EF
+:105A000015555555555555556A6A6A6A6A6A6A6ADE
+:105A100015555555555555556A6A6A6A6A6A6A6ACE
+:105A200015555555555555556A6A6A6A6A6A6A6ABE
+:105A300015555555555555556A6A6A6A6A6A6A6AAE
+:105A400015555555555555556A6A6A6A6A6A6A6A9E
+:105A500015555555555555556A6A6A6A6A6A6A6A8E
+:105A600015555555555555556A6A6A6A6A6A6A6A7E
+:105A700015555555555555556A6A6A6A6A6A6A6A6E
+:105A80002A6A6A6A6A6A6A6A55555555555555555E
+:105A90002A6A6A6A6A6A6A6A55555555555555554E
+:105AA0002A6A6A6A6A6A6A6A55555555555555553E
+:105AB0002A6A6A6A6A6A6A6A55555555555555552E
+:105AC0002A6A6A6A6A6A6A6A55555555555555551E
+:105AD0002A6A6A6A6A6A6A6A55555555555555550E
+:105AE0002A6A6A6A6A6A6A6A5555555555555555FE
+:105AF0002A6A6A6A6A6A6A6A5555555555555555EE
+:105B000015555555555555556A6A6A6A6A6A6A6ADD
+:105B100015555555555555556A6A6A6A6A6A6A6ACD
+:105B200015555555555555556A6A6A6A6A6A6A6ABD
+:105B300015555555555555556A6A6A6A6A6A6A6AAD
+:105B400015555555555555556A6A6A6A6A6A6A6A9D
+:105B500015555555555555556A6A6A6A6A6A6A6A8D
+:105B600015555555555555556A6A6A6A6A6A6A6A7D
+:105B700015555555555555556A6A6A6A6A6A6A6A6D
+:105B80002A6A6A6A6A6A6A6A55555555555555555D
+:105B90002A6A6A6A6A6A6A6A55555555555555554D
+:105BA0002A6A6A6A6A6A6A6A55555555555555553D
+:105BB0002A6A6A6A6A6A6A6A55555555555555552D
+:105BC0002A6A6A6A6A6A6A6A55555555555555551D
+:105BD0002A6A6A6A6A6A6A6A55555555555555550D
+:105BE0002A6A6A6A6A6A6A6A5555555555555555FD
+:105BF0002A6A6A6A6A6A6A6A5555555555555555ED
+:105C000055555555555555556A6A6A6A6A6A6A6A9C
+:105C100055555555555555556A6A6A6A6A6A6A6A8C
+:105C200055555555555555556A6A6A6A6A6A6A6A7C
+:105C300055555555555555556A6A6A6A6A6A6A6A6C
+:105C400055555555555555556A6A6A6A6A6A6A6A5C
+:105C500055555555555555556A6A6A6A6A6A6A6A4C
+:105C600055555555555555556A6A6A6A6A6A6A6A3C
+:105C700055555555555555556A6A6A6A6A6A6A6A2C
+:105C80006A6A6A6A6A6A6A6A55555555555555551C
+:105C90006A6A6A6A6A6A6A6A55555555555555550C
+:105CA0006A6A6A6A6A6A6A6A5555555555555555FC
+:105CB0006A6A6A6A6A6A6A6A5555555555555555EC
+:105CC0006A6A6A6A6A6A6A6A5555555555555555DC
+:105CD0006A6A6A6A6A6A6A6A5555555555555555CC
+:105CE0006A6A6A6A6A6A6A6A5555555555555555BC
+:105CF0006A6A6A6A6A6A6A6A5555555555555555AC
+:105D000055555555555555556A6A6A6A6A6A6A6A9B
+:105D100055555555555555556A6A6A6A6A6A6A6A8B
+:105D200055555555555555556A6A6A6A6A6A6A6A7B
+:105D300055555555555555556A6A6A6A6A6A6A6A6B
+:105D400055555555555555556A6A6A6A6A6A6A6A5B
+:105D500055555555555555556A6A6A6A6A6A6A6A4B
+:105D600055555555555555556A6A6A6A6A6A6A6A3B
+:105D700055555555555555556A6A6A6A6A6A6A6A2B
+:105D80006A6A6A6A6A6A6A6A55555555555555551B
+:105D90006A6A6A6A6A6A6A6A55555555555555550B
+:105DA0006A6A6A6A6A6A6A6A5555555555555555FB
+:105DB0006A6A6A6A6A6A6A6A5555555555555555EB
+:105DC0006A6A6A6A6A6A6A6A5555555555555555DB
+:105DD0006A6A6A6A6A6A6A6A5555555555555555CB
+:105DE0006A6A6A6A6A6A6A6A5555555555555555BB
+:105DF0006A6A6A6A6A6A6A6A5555555555555555AB
+:105E000015555555555555556A6A6A6A6A6A6AAA9A
+:105E100015555555555555556A6A6A6A6A6A6AAA8A
+:105E200015555555555555556A6A6A6A6A6A6AAA7A
+:105E300015555555555555556A6A6A6A6A6A6AAA6A
+:105E400015555555555555556A6A6A6A6A6A6AAA5A
+:105E500015555555555555556A6A6A6A6A6A6AAA4A
+:105E600015555555555555556A6A6A6A6A6A6AAA3A
+:105E700015555555555555556A6A6A6A6A6A6AAA2A
+:105E80002A6A6A6A6A6A6A6A55555555555555951A
+:105E90002A6A6A6A6A6A6A6A55555555555555950A
+:105EA0002A6A6A6A6A6A6A6A5555555555555595FA
+:105EB0002A6A6A6A6A6A6A6A5555555555555595EA
+:105EC0002A6A6A6A6A6A6A6A5555555555555595DA
+:105ED0002A6A6A6A6A6A6A6A5555555555555595CA
+:105EE0002A6A6A6A6A6A6A6A5555555555555595BA
+:105EF0002A6A6A6A6A6A6A6A5555555555555595AA
+:105F000015555555555555556A6A6A6A6A6A6AAA99
+:105F100015555555555555556A6A6A6A6A6A6AAA89
+:105F200015555555555555556A6A6A6A6A6A6AAA79
+:105F300015555555555555556A6A6A6A6A6A6AAA69
+:105F400015555555555555556A6A6A6A6A6A6AAA59
+:105F500015555555555555556A6A6A6A6A6A6AAA49
+:105F600015555555555555556A6A6A6A6A6A6AAA39
+:105F700015555555555555556A6A6A6A6A6A6AAA29
+:105F80002A6A6A6A6A6A6A6A555555555555559519
+:105F90002A6A6A6A6A6A6A6A555555555555559509
+:105FA0002A6A6A6A6A6A6A6A5555555555555595F9
+:105FB0002A6A6A6A6A6A6A6A5555555555555595E9
+:105FC0002A6A6A6A6A6A6A6A5555555555555595D9
+:105FD0002A6A6A6A6A6A6A6A5555555555555595C9
+:105FE0002A6A6A6A6A6A6A6A5555555555555595B9
+:105FF0002A6A6A6A6A6A6A6A5555555555555595A9
+:1060000055555555555555556A6A6A6A6A6A6AAA58
+:1060100055555555555555556A6A6A6A6A6A6AAA48
+:1060200055555555555555556A6A6A6A6A6A6AAA38
+:1060300055555555555555556A6A6A6A6A6A6AAA28
+:1060400055555555555555556A6A6A6A6A6A6AAA18
+:1060500055555555555555556A6A6A6A6A6A6AAA08
+:1060600055555555555555556A6A6A6A6A6A6AAAF8
+:1060700055555555555555556A6A6A6A6A6A6AAAE8
+:106080006A6A6A6A6A6A6A6A5555555555555595D8
+:106090006A6A6A6A6A6A6A6A5555555555555595C8
+:1060A0006A6A6A6A6A6A6A6A5555555555555595B8
+:1060B0006A6A6A6A6A6A6A6A5555555555555595A8
+:1060C0006A6A6A6A6A6A6A6A555555555555559598
+:1060D0006A6A6A6A6A6A6A6A555555555555559588
+:1060E0006A6A6A6A6A6A6A6A555555555555559578
+:1060F0006A6A6A6A6A6A6A6A555555555555559568
+:1061000055555555555555556A6A6A6A6A6A6AAA57
+:1061100055555555555555556A6A6A6A6A6A6AAA47
+:1061200055555555555555556A6A6A6A6A6A6AAA37
+:1061300055555555555555556A6A6A6A6A6A6AAA27
+:1061400055555555555555556A6A6A6A6A6A6AAA17
+:1061500055555555555555556A6A6A6A6A6A6AAA07
+:1061600055555555555555556A6A6A6A6A6A6AAAF7
+:1061700055555555555555556A6A6A6A6A6A6AAAE7
+:106180006A6A6A6A6A6A6A6A5555555555555595D7
+:106190006A6A6A6A6A6A6A6A5555555555555595C7
+:1061A0006A6A6A6A6A6A6A6A5555555555555595B7
+:1061B0006A6A6A6A6A6A6A6A5555555555555595A7
+:1061C0006A6A6A6A6A6A6A6A555555555555559597
+:1061D0006A6A6A6A6A6A6A6A555555555555559587
+:1061E0006A6A6A6A6A6A6A6A555555555555559577
+:1061F0006A6A6A6A6A6A6A6A555555555555559567
+:10620000105050505050505060606060606060208E
+:10621000105050505050505060606060606060207E
+:10622000105050505050505060606060606060206E
+:10623000105050505050505060606060606060205E
+:10624000105050505050505060606060606060204E
+:10625000105050505050505060606060606060203E
+:10626000105050505050505060606060606060202E
+:10627000105050505050505060606060606060201E
+:10628000206060606060606050505050505050100E
+:1062900020606060606060605050505050505010FE
+:1062A00020606060606060605050505050505010EE
+:1062B00020606060606060605050505050505010DE
+:1062C00020606060606060605050505050505010CE
+:1062D00020606060606060605050505050505010BE
+:1062E00020606060606060605050505050505010AE
+:1062F000206060606060606050505050505050109E
+:106300001A5A5A5A5A5A5A5A656565656565652515
+:106310001A5A5A5A5A5A5A5A656565656565652505
+:106320001A5A5A5A5A5A5A5A6565656565656525F5
+:106330001A5A5A5A5A5A5A5A6565656565656525E5
+:106340001A5A5A5A5A5A5A5A6565656565656525D5
+:106350001A5A5A5A5A5A5A5A6565656565656525C5
+:106360001A5A5A5A5A5A5A5A6565656565656525B5
+:106370001A5A5A5A5A5A5A5A6565656565656525A5
+:106380002A6A6A6A6A6A6A6A5A5A5A5A5A5A5A1A6D
+:106390002A6A6A6A6A6A6A6A5A5A5A5A5A5A5A1A5D
+:1063A0002A6A6A6A6A6A6A6A5A5A5A5A5A5A5A1A4D
+:1063B0002A6A6A6A6A6A6A6A5A5A5A5A5A5A5A1A3D
+:1063C0002A6A6A6A6A6A6A6A5A5A5A5A5A5A5A1A2D
+:1063D0002A6A6A6A6A6A6A6A5A5A5A5A5A5A5A1A1D
+:1063E0002A6A6A6A6A6A6A6A5A5A5A5A5A5A5A1A0D
+:1063F0002A6A6A6A6A6A6A6A5A5A5A5A5A5A5A1AFD
+:106400005A5A5A5A5A5A5A5A65656565656565A554
+:106410005A5A5A5A5A5A5A5A65656565656565A544
+:106420005A5A5A5A5A5A5A5A65656565656565A534
+:106430005A5A5A5A5A5A5A5A65656565656565A524
+:106440005A5A5A5A5A5A5A5A65656565656565A514
+:106450005A5A5A5A5A5A5A5A65656565656565A504
+:106460005A5A5A5A5A5A5A5A65656565656565A5F4
+:106470005A5A5A5A5A5A5A5A65656565656565A5E4
+:106480006A6A6A6A6A6A6A6A5A5A5A5A5A5A5A9AAC
+:106490006A6A6A6A6A6A6A6A5A5A5A5A5A5A5A9A9C
+:1064A0006A6A6A6A6A6A6A6A5A5A5A5A5A5A5A9A8C
+:1064B0006A6A6A6A6A6A6A6A5A5A5A5A5A5A5A9A7C
+:1064C0006A6A6A6A6A6A6A6A5A5A5A5A5A5A5A9A6C
+:1064D0006A6A6A6A6A6A6A6A5A5A5A5A5A5A5A9A5C
+:1064E0006A6A6A6A6A6A6A6A5A5A5A5A5A5A5A9A4C
+:1064F0006A6A6A6A6A6A6A6A5A5A5A5A5A5A5A9A3C
+:106500005A5A5A5A5A5A5A5A65656565656565A553
+:106510005A5A5A5A5A5A5A5A65656565656565A543
+:106520005A5A5A5A5A5A5A5A65656565656565A533
+:106530005A5A5A5A5A5A5A5A65656565656565A523
+:106540005A5A5A5A5A5A5A5A65656565656565A513
+:106550005A5A5A5A5A5A5A5A65656565656565A503
+:106560005A5A5A5A5A5A5A5A65656565656565A5F3
+:106570005A5A5A5A5A5A5A5A65656565656565A5E3
+:106580006A6A6A6A6A6A6A6A5A5A5A5A5A5A5A9AAB
+:106590006A6A6A6A6A6A6A6A5A5A5A5A5A5A5A9A9B
+:1065A0006A6A6A6A6A6A6A6A5A5A5A5A5A5A5A9A8B
+:1065B0006A6A6A6A6A6A6A6A5A5A5A5A5A5A5A9A7B
+:1065C0006A6A6A6A6A6A6A6A5A5A5A5A5A5A5A9A6B
+:1065D0006A6A6A6A6A6A6A6A5A5A5A5A5A5A5A9A5B
+:1065E0006A6A6A6A6A6A6A6A5A5A5A5A5A5A5A9A4B
+:1065F0006A6A6A6A6A6A6A6A5A5A5A5A5A5A5A9A3B
+:106600001A5A5A5A5A5A5A5A656565656565652512
+:106610001A5A5A5A5A5A5A5A656565656565652502
+:106620001A5A5A5A5A5A5A5A6565656565656525F2
+:106630001A5A5A5A5A5A5A5A6565656565656525E2
+:106640001A5A5A5A5A5A5A5A6565656565656525D2
+:106650001A5A5A5A5A5A5A5A6565656565656525C2
+:106660001A5A5A5A5A5A5A5A6565656565656525B2
+:106670001A5A5A5A5A5A5A5A6565656565656525A2
+:106680002A6A6A6A6A6A6A6A5A5A5A5A5A5A5A1A6A
+:106690002A6A6A6A6A6A6A6A5A5A5A5A5A5A5A1A5A
+:1066A0002A6A6A6A6A6A6A6A5A5A5A5A5A5A5A1A4A
+:1066B0002A6A6A6A6A6A6A6A5A5A5A5A5A5A5A1A3A
+:1066C0002A6A6A6A6A6A6A6A5A5A5A5A5A5A5A1A2A
+:1066D0002A6A6A6A6A6A6A6A5A5A5A5A5A5A5A1A1A
+:1066E0002A6A6A6A6A6A6A6A5A5A5A5A5A5A5A1A0A
+:1066F0002A6A6A6A6A6A6A6A5A5A5A5A5A5A5A1AFA
+:106700001A5A5A5A5A5A5A5A656565656565652511
+:106710001A5A5A5A5A5A5A5A656565656565652501
+:106720001A5A5A5A5A5A5A5A6565656565656525F1
+:106730001A5A5A5A5A5A5A5A6565656565656525E1
+:106740001A5A5A5A5A5A5A5A6565656565656525D1
+:106750001A5A5A5A5A5A5A5A6565656565656525C1
+:106760001A5A5A5A5A5A5A5A6565656565656525B1
+:106770001A5A5A5A5A5A5A5A6565656565656525A1
+:106780002A6A6A6A6A6A6A6A5A5A5A5A5A5A5A1A69
+:106790002A6A6A6A6A6A6A6A5A5A5A5A5A5A5A1A59
+:1067A0002A6A6A6A6A6A6A6A5A5A5A5A5A5A5A1A49
+:1067B0002A6A6A6A6A6A6A6A5A5A5A5A5A5A5A1A39
+:1067C0002A6A6A6A6A6A6A6A5A5A5A5A5A5A5A1A29
+:1067D0002A6A6A6A6A6A6A6A5A5A5A5A5A5A5A1A19
+:1067E0002A6A6A6A6A6A6A6A5A5A5A5A5A5A5A1A09
+:1067F0002A6A6A6A6A6A6A6A5A5A5A5A5A5A5A1AF9
+:106800005A5A5A5A5A5A5A5A65656565656565A550
+:106810005A5A5A5A5A5A5A5A65656565656565A540
+:106820005A5A5A5A5A5A5A5A65656565656565A530
+:106830005A5A5A5A5A5A5A5A65656565656565A520
+:106840005A5A5A5A5A5A5A5A65656565656565A510
+:106850005A5A5A5A5A5A5A5A65656565656565A500
+:106860005A5A5A5A5A5A5A5A65656565656565A5F0
+:106870005A5A5A5A5A5A5A5A65656565656565A5E0
+:106880006A6A6A6A6A6A6A6A5A5A5A5A5A5A5A9AA8
+:106890006A6A6A6A6A6A6A6A5A5A5A5A5A5A5A9A98
+:1068A0006A6A6A6A6A6A6A6A5A5A5A5A5A5A5A9A88
+:1068B0006A6A6A6A6A6A6A6A5A5A5A5A5A5A5A9A78
+:1068C0006A6A6A6A6A6A6A6A5A5A5A5A5A5A5A9A68
+:1068D0006A6A6A6A6A6A6A6A5A5A5A5A5A5A5A9A58
+:1068E0006A6A6A6A6A6A6A6A5A5A5A5A5A5A5A9A48
+:1068F0006A6A6A6A6A6A6A6A5A5A5A5A5A5A5A9A38
+:106900005A5A5A5A5A5A5A5A65656565656565A54F
+:106910005A5A5A5A5A5A5A5A65656565656565A53F
+:106920005A5A5A5A5A5A5A5A65656565656565A52F
+:106930005A5A5A5A5A5A5A5A65656565656565A51F
+:106940005A5A5A5A5A5A5A5A65656565656565A50F
+:106950005A5A5A5A5A5A5A5A65656565656565A5FF
+:106960005A5A5A5A5A5A5A5A65656565656565A5EF
+:106970005A5A5A5A5A5A5A5A65656565656565A5DF
+:106980006A6A6A6A6A6A6A6A5A5A5A5A5A5A5A9AA7
+:106990006A6A6A6A6A6A6A6A5A5A5A5A5A5A5A9A97
+:1069A0006A6A6A6A6A6A6A6A5A5A5A5A5A5A5A9A87
+:1069B0006A6A6A6A6A6A6A6A5A5A5A5A5A5A5A9A77
+:1069C0006A6A6A6A6A6A6A6A5A5A5A5A5A5A5A9A67
+:1069D0006A6A6A6A6A6A6A6A5A5A5A5A5A5A5A9A57
+:1069E0006A6A6A6A6A6A6A6A5A5A5A5A5A5A5A9A47
+:1069F0006A6A6A6A6A6A6A6A5A5A5A5A5A5A5A9A37
+:106A00001A9A9A9A9A9A9A9AA5A5A5A5A5A5A5258E
+:106A10001A9A9A9A9A9A9A9AA5A5A5A5A5A5A5257E
+:106A20001A9A9A9A9A9A9A9AA5A5A5A5A5A5A5256E
+:106A30001A9A9A9A9A9A9A9AA5A5A5A5A5A5A5255E
+:106A40001A9A9A9A9A9A9A9AA5A5A5A5A5A5A5254E
+:106A50001A9A9A9A9A9A9A9AA5A5A5A5A5A5A5253E
+:106A60001A9A9A9A9A9A9A9AA5A5A5A5A5A5A5252E
+:106A70001A9A9A9A9A9A9A9AA5A5A5A5A5A5A5251E
+:106A80002AAAAAAAAAAAAAAA9A9A9A9A9A9A9A1AE6
+:106A90002AAAAAAAAAAAAAAA9A9A9A9A9A9A9A1AD6
+:106AA0002AAAAAAAAAAAAAAA9A9A9A9A9A9A9A1AC6
+:106AB0002AAAAAAAAAAAAAAA9A9A9A9A9A9A9A1AB6
+:106AC0002AAAAAAAAAAAAAAA9A9A9A9A9A9A9A1AA6
+:106AD0002AAAAAAAAAAAAAAA9A9A9A9A9A9A9A1A96
+:106AE0002AAAAAAAAAAAAAAA9A9A9A9A9A9A9A1A86
+:106AF0002AAAAAAAAAAAAAAA9A9A9A9A9A9A9A1A76
+:106B00001A9A9A9A9A9A9A9AA5A5A5A5A5A5A5258D
+:106B10001A9A9A9A9A9A9A9AA5A5A5A5A5A5A5257D
+:106B20001A9A9A9A9A9A9A9AA5A5A5A5A5A5A5256D
+:106B30001A9A9A9A9A9A9A9AA5A5A5A5A5A5A5255D
+:106B40001A9A9A9A9A9A9A9AA5A5A5A5A5A5A5254D
+:106B50001A9A9A9A9A9A9A9AA5A5A5A5A5A5A5253D
+:106B60001A9A9A9A9A9A9A9AA5A5A5A5A5A5A5252D
+:106B70001A9A9A9A9A9A9A9AA5A5A5A5A5A5A5251D
+:106B80002AAAAAAAAAAAAAAA9A9A9A9A9A9A9A1AE5
+:106B90002AAAAAAAAAAAAAAA9A9A9A9A9A9A9A1AD5
+:106BA0002AAAAAAAAAAAAAAA9A9A9A9A9A9A9A1AC5
+:106BB0002AAAAAAAAAAAAAAA9A9A9A9A9A9A9A1AB5
+:106BC0002AAAAAAAAAAAAAAA9A9A9A9A9A9A9A1AA5
+:106BD0002AAAAAAAAAAAAAAA9A9A9A9A9A9A9A1A95
+:106BE0002AAAAAAAAAAAAAAA9A9A9A9A9A9A9A1A85
+:106BF0002AAAAAAAAAAAAAAA9A9A9A9A9A9A9A1A75
+:106C00005A9A9A9A9A9A9A9AA5A5A5A5A5A5A5A5CC
+:106C10005A9A9A9A9A9A9A9AA5A5A5A5A5A5A5A5BC
+:106C20005A9A9A9A9A9A9A9AA5A5A5A5A5A5A5A5AC
+:106C30005A9A9A9A9A9A9A9AA5A5A5A5A5A5A5A59C
+:106C40005A9A9A9A9A9A9A9AA5A5A5A5A5A5A5A58C
+:106C50005A9A9A9A9A9A9A9AA5A5A5A5A5A5A5A57C
+:106C60005A9A9A9A9A9A9A9AA5A5A5A5A5A5A5A56C
+:106C70005A9A9A9A9A9A9A9AA5A5A5A5A5A5A5A55C
+:106C80006AAAAAAAAAAAAAAA9A9A9A9A9A9A9A9A24
+:106C90006AAAAAAAAAAAAAAA9A9A9A9A9A9A9A9A14
+:106CA0006AAAAAAAAAAAAAAA9A9A9A9A9A9A9A9A04
+:106CB0006AAAAAAAAAAAAAAA9A9A9A9A9A9A9A9AF4
+:106CC0006AAAAAAAAAAAAAAA9A9A9A9A9A9A9A9AE4
+:106CD0006AAAAAAAAAAAAAAA9A9A9A9A9A9A9A9AD4
+:106CE0006AAAAAAAAAAAAAAA9A9A9A9A9A9A9A9AC4
+:106CF0006AAAAAAAAAAAAAAA9A9A9A9A9A9A9A9AB4
+:106D00005A9A9A9A9A9A9A9AA5A5A5A5A5A5A5A5CB
+:106D10005A9A9A9A9A9A9A9AA5A5A5A5A5A5A5A5BB
+:106D20005A9A9A9A9A9A9A9AA5A5A5A5A5A5A5A5AB
+:106D30005A9A9A9A9A9A9A9AA5A5A5A5A5A5A5A59B
+:106D40005A9A9A9A9A9A9A9AA5A5A5A5A5A5A5A58B
+:106D50005A9A9A9A9A9A9A9AA5A5A5A5A5A5A5A57B
+:106D60005A9A9A9A9A9A9A9AA5A5A5A5A5A5A5A56B
+:106D70005A9A9A9A9A9A9A9AA5A5A5A5A5A5A5A55B
+:106D80006AAAAAAAAAAAAAAA9A9A9A9A9A9A9A9A23
+:106D90006AAAAAAAAAAAAAAA9A9A9A9A9A9A9A9A13
+:106DA0006AAAAAAAAAAAAAAA9A9A9A9A9A9A9A9A03
+:106DB0006AAAAAAAAAAAAAAA9A9A9A9A9A9A9A9AF3
+:106DC0006AAAAAAAAAAAAAAA9A9A9A9A9A9A9A9AE3
+:106DD0006AAAAAAAAAAAAAAA9A9A9A9A9A9A9A9AD3
+:106DE0006AAAAAAAAAAAAAAA9A9A9A9A9A9A9A9AC3
+:106DF0006AAAAAAAAAAAAAAA9A9A9A9A9A9A9A9AB3
+:106E00001A9A9A9A9A9A9A9AA5A5A5A5A5A5A5258A
+:106E10001A9A9A9A9A9A9A9AA5A5A5A5A5A5A5257A
+:106E20001A9A9A9A9A9A9A9AA5A5A5A5A5A5A5256A
+:106E30001A9A9A9A9A9A9A9AA5A5A5A5A5A5A5255A
+:106E40001A9A9A9A9A9A9A9AA5A5A5A5A5A5A5254A
+:106E50001A9A9A9A9A9A9A9AA5A5A5A5A5A5A5253A
+:106E60001A9A9A9A9A9A9A9AA5A5A5A5A5A5A5252A
+:106E70001A9A9A9A9A9A9A9AA5A5A5A5A5A5A5251A
+:106E80002AAAAAAAAAAAAAAA9A9A9A9A9A9A9A1AE2
+:106E90002AAAAAAAAAAAAAAA9A9A9A9A9A9A9A1AD2
+:106EA0002AAAAAAAAAAAAAAA9A9A9A9A9A9A9A1AC2
+:106EB0002AAAAAAAAAAAAAAA9A9A9A9A9A9A9A1AB2
+:106EC0002AAAAAAAAAAAAAAA9A9A9A9A9A9A9A1AA2
+:106ED0002AAAAAAAAAAAAAAA9A9A9A9A9A9A9A1A92
+:106EE0002AAAAAAAAAAAAAAA9A9A9A9A9A9A9A1A82
+:106EF0002AAAAAAAAAAAAAAA9A9A9A9A9A9A9A1A72
+:106F00001A9A9A9A9A9A9A9AA5A5A5A5A5A5A52589
+:106F10001A9A9A9A9A9A9A9AA5A5A5A5A5A5A52579
+:106F20001A9A9A9A9A9A9A9AA5A5A5A5A5A5A52569
+:106F30001A9A9A9A9A9A9A9AA5A5A5A5A5A5A52559
+:106F40001A9A9A9A9A9A9A9AA5A5A5A5A5A5A52549
+:106F50001A9A9A9A9A9A9A9AA5A5A5A5A5A5A52539
+:106F60001A9A9A9A9A9A9A9AA5A5A5A5A5A5A52529
+:106F70001A9A9A9A9A9A9A9AA5A5A5A5A5A5A52519
+:106F80002AAAAAAAAAAAAAAA9A9A9A9A9A9A9A1AE1
+:106F90002AAAAAAAAAAAAAAA9A9A9A9A9A9A9A1AD1
+:106FA0002AAAAAAAAAAAAAAA9A9A9A9A9A9A9A1AC1
+:106FB0002AAAAAAAAAAAAAAA9A9A9A9A9A9A9A1AB1
+:106FC0002AAAAAAAAAAAAAAA9A9A9A9A9A9A9A1AA1
+:106FD0002AAAAAAAAAAAAAAA9A9A9A9A9A9A9A1A91
+:106FE0002AAAAAAAAAAAAAAA9A9A9A9A9A9A9A1A81
+:106FF0002AAAAAAAAAAAAAAA9A9A9A9A9A9A9A1A71
+:107000005A9A9A9A9A9A9A9AA5A5A5A5A5A5A5A5C8
+:107010005A9A9A9A9A9A9A9AA5A5A5A5A5A5A5A5B8
+:107020005A9A9A9A9A9A9A9AA5A5A5A5A5A5A5A5A8
+:107030005A9A9A9A9A9A9A9AA5A5A5A5A5A5A5A598
+:107040005A9A9A9A9A9A9A9AA5A5A5A5A5A5A5A588
+:107050005A9A9A9A9A9A9A9AA5A5A5A5A5A5A5A578
+:107060005A9A9A9A9A9A9A9AA5A5A5A5A5A5A5A568
+:107070005A9A9A9A9A9A9A9AA5A5A5A5A5A5A5A558
+:107080006AAAAAAAAAAAAAAA9A9A9A9A9A9A9A9A20
+:107090006AAAAAAAAAAAAAAA9A9A9A9A9A9A9A9A10
+:1070A0006AAAAAAAAAAAAAAA9A9A9A9A9A9A9A9A00
+:1070B0006AAAAAAAAAAAAAAA9A9A9A9A9A9A9A9AF0
+:1070C0006AAAAAAAAAAAAAAA9A9A9A9A9A9A9A9AE0
+:1070D0006AAAAAAAAAAAAAAA9A9A9A9A9A9A9A9AD0
+:1070E0006AAAAAAAAAAAAAAA9A9A9A9A9A9A9A9AC0
+:1070F0006AAAAAAAAAAAAAAA9A9A9A9A9A9A9A9AB0
+:107100005A9A9A9A9A9A9A9AA5A5A5A5A5A5A5A5C7
+:107110005A9A9A9A9A9A9A9AA5A5A5A5A5A5A5A5B7
+:107120005A9A9A9A9A9A9A9AA5A5A5A5A5A5A5A5A7
+:107130005A9A9A9A9A9A9A9AA5A5A5A5A5A5A5A597
+:107140005A9A9A9A9A9A9A9AA5A5A5A5A5A5A5A587
+:107150005A9A9A9A9A9A9A9AA5A5A5A5A5A5A5A577
+:107160005A9A9A9A9A9A9A9AA5A5A5A5A5A5A5A567
+:107170005A9A9A9A9A9A9A9AA5A5A5A5A5A5A5A557
+:107180006AAAAAAAAAAAAAAA9A9A9A9A9A9A9A9A1F
+:107190006AAAAAAAAAAAAAAA9A9A9A9A9A9A9A9A0F
+:1071A0006AAAAAAAAAAAAAAA9A9A9A9A9A9A9A9AFF
+:1071B0006AAAAAAAAAAAAAAA9A9A9A9A9A9A9A9AEF
+:1071C0006AAAAAAAAAAAAAAA9A9A9A9A9A9A9A9ADF
+:1071D0006AAAAAAAAAAAAAAA9A9A9A9A9A9A9A9ACF
+:1071E0006AAAAAAAAAAAAAAA9A9A9A9A9A9A9A9ABF
+:1071F0006AAAAAAAAAAAAAAA9A9A9A9A9A9A9A9AAF
+:107200001A9A9A9A9A9A9A9AA5A5A5A5A5A5A52586
+:107210001A9A9A9A9A9A9A9AA5A5A5A5A5A5A52576
+:107220001A9A9A9A9A9A9A9AA5A5A5A5A5A5A52566
+:107230001A9A9A9A9A9A9A9AA5A5A5A5A5A5A52556
+:107240001A9A9A9A9A9A9A9AA5A5A5A5A5A5A52546
+:107250001A9A9A9A9A9A9A9AA5A5A5A5A5A5A52536
+:107260001A9A9A9A9A9A9A9AA5A5A5A5A5A5A52526
+:107270001A9A9A9A9A9A9A9AA5A5A5A5A5A5A52516
+:107280002AAAAAAAAAAAAAAA9A9A9A9A9A9A9A1ADE
+:107290002AAAAAAAAAAAAAAA9A9A9A9A9A9A9A1ACE
+:1072A0002AAAAAAAAAAAAAAA9A9A9A9A9A9A9A1ABE
+:1072B0002AAAAAAAAAAAAAAA9A9A9A9A9A9A9A1AAE
+:1072C0002AAAAAAAAAAAAAAA9A9A9A9A9A9A9A1A9E
+:1072D0002AAAAAAAAAAAAAAA9A9A9A9A9A9A9A1A8E
+:1072E0002AAAAAAAAAAAAAAA9A9A9A9A9A9A9A1A7E
+:1072F0002AAAAAAAAAAAAAAA9A9A9A9A9A9A9A1A6E
+:107300001A9A9A9A9A9A9A9AA5A5A5A5A5A5A52585
+:107310001A9A9A9A9A9A9A9AA5A5A5A5A5A5A52575
+:107320001A9A9A9A9A9A9A9AA5A5A5A5A5A5A52565
+:107330001A9A9A9A9A9A9A9AA5A5A5A5A5A5A52555
+:107340001A9A9A9A9A9A9A9AA5A5A5A5A5A5A52545
+:107350001A9A9A9A9A9A9A9AA5A5A5A5A5A5A52535
+:107360001A9A9A9A9A9A9A9AA5A5A5A5A5A5A52525
+:107370001A9A9A9A9A9A9A9AA5A5A5A5A5A5A52515
+:107380002AAAAAAAAAAAAAAA9A9A9A9A9A9A9A1ADD
+:107390002AAAAAAAAAAAAAAA9A9A9A9A9A9A9A1ACD
+:1073A0002AAAAAAAAAAAAAAA9A9A9A9A9A9A9A1ABD
+:1073B0002AAAAAAAAAAAAAAA9A9A9A9A9A9A9A1AAD
+:1073C0002AAAAAAAAAAAAAAA9A9A9A9A9A9A9A1A9D
+:1073D0002AAAAAAAAAAAAAAA9A9A9A9A9A9A9A1A8D
+:1073E0002AAAAAAAAAAAAAAA9A9A9A9A9A9A9A1A7D
+:1073F0002AAAAAAAAAAAAAAA9A9A9A9A9A9A9A1A6D
+:107400005A9A9A9A9A9A9A9AA5A5A5A5A5A5A5A5C4
+:107410005A9A9A9A9A9A9A9AA5A5A5A5A5A5A5A5B4
+:107420005A9A9A9A9A9A9A9AA5A5A5A5A5A5A5A5A4
+:107430005A9A9A9A9A9A9A9AA5A5A5A5A5A5A5A594
+:107440005A9A9A9A9A9A9A9AA5A5A5A5A5A5A5A584
+:107450005A9A9A9A9A9A9A9AA5A5A5A5A5A5A5A574
+:107460005A9A9A9A9A9A9A9AA5A5A5A5A5A5A5A564
+:107470005A9A9A9A9A9A9A9AA5A5A5A5A5A5A5A554
+:107480006AAAAAAAAAAAAAAA9A9A9A9A9A9A9A9A1C
+:107490006AAAAAAAAAAAAAAA9A9A9A9A9A9A9A9A0C
+:1074A0006AAAAAAAAAAAAAAA9A9A9A9A9A9A9A9AFC
+:1074B0006AAAAAAAAAAAAAAA9A9A9A9A9A9A9A9AEC
+:1074C0006AAAAAAAAAAAAAAA9A9A9A9A9A9A9A9ADC
+:1074D0006AAAAAAAAAAAAAAA9A9A9A9A9A9A9A9ACC
+:1074E0006AAAAAAAAAAAAAAA9A9A9A9A9A9A9A9ABC
+:1074F0006AAAAAAAAAAAAAAA9A9A9A9A9A9A9A9AAC
+:107500005A9A9A9A9A9A9A9AA5A5A5A5A5A5A5A5C3
+:107510005A9A9A9A9A9A9A9AA5A5A5A5A5A5A5A5B3
+:107520005A9A9A9A9A9A9A9AA5A5A5A5A5A5A5A5A3
+:107530005A9A9A9A9A9A9A9AA5A5A5A5A5A5A5A593
+:107540005A9A9A9A9A9A9A9AA5A5A5A5A5A5A5A583
+:107550005A9A9A9A9A9A9A9AA5A5A5A5A5A5A5A573
+:107560005A9A9A9A9A9A9A9AA5A5A5A5A5A5A5A563
+:107570005A9A9A9A9A9A9A9AA5A5A5A5A5A5A5A553
+:107580006AAAAAAAAAAAAAAA9A9A9A9A9A9A9A9A1B
+:107590006AAAAAAAAAAAAAAA9A9A9A9A9A9A9A9A0B
+:1075A0006AAAAAAAAAAAAAAA9A9A9A9A9A9A9A9AFB
+:1075B0006AAAAAAAAAAAAAAA9A9A9A9A9A9A9A9AEB
+:1075C0006AAAAAAAAAAAAAAA9A9A9A9A9A9A9A9ADB
+:1075D0006AAAAAAAAAAAAAAA9A9A9A9A9A9A9A9ACB
+:1075E0006AAAAAAAAAAAAAAA9A9A9A9A9A9A9A9ABB
+:1075F0006AAAAAAAAAAAAAAA9A9A9A9A9A9A9A9AAB
+:107600001A9A9A9A9A9A9A9AA5A5A5A5A5A5A52582
+:107610001A9A9A9A9A9A9A9AA5A5A5A5A5A5A52572
+:107620001A9A9A9A9A9A9A9AA5A5A5A5A5A5A52562
+:107630001A9A9A9A9A9A9A9AA5A5A5A5A5A5A52552
+:107640001A9A9A9A9A9A9A9AA5A5A5A5A5A5A52542
+:107650001A9A9A9A9A9A9A9AA5A5A5A5A5A5A52532
+:107660001A9A9A9A9A9A9A9AA5A5A5A5A5A5A52522
+:107670001A9A9A9A9A9A9A9AA5A5A5A5A5A5A52512
+:107680002AAAAAAAAAAAAAAA9A9A9A9A9A9A9A1ADA
+:107690002AAAAAAAAAAAAAAA9A9A9A9A9A9A9A1ACA
+:1076A0002AAAAAAAAAAAAAAA9A9A9A9A9A9A9A1ABA
+:1076B0002AAAAAAAAAAAAAAA9A9A9A9A9A9A9A1AAA
+:1076C0002AAAAAAAAAAAAAAA9A9A9A9A9A9A9A1A9A
+:1076D0002AAAAAAAAAAAAAAA9A9A9A9A9A9A9A1A8A
+:1076E0002AAAAAAAAAAAAAAA9A9A9A9A9A9A9A1A7A
+:1076F0002AAAAAAAAAAAAAAA9A9A9A9A9A9A9A1A6A
+:107700001A9A9A9A9A9A9A9AA5A5A5A5A5A5A52581
+:107710001A9A9A9A9A9A9A9AA5A5A5A5A5A5A52571
+:107720001A9A9A9A9A9A9A9AA5A5A5A5A5A5A52561
+:107730001A9A9A9A9A9A9A9AA5A5A5A5A5A5A52551
+:107740001A9A9A9A9A9A9A9AA5A5A5A5A5A5A52541
+:107750001A9A9A9A9A9A9A9AA5A5A5A5A5A5A52531
+:107760001A9A9A9A9A9A9A9AA5A5A5A5A5A5A52521
+:107770001A9A9A9A9A9A9A9AA5A5A5A5A5A5A52511
+:107780002AAAAAAAAAAAAAAA9A9A9A9A9A9A9A1AD9
+:107790002AAAAAAAAAAAAAAA9A9A9A9A9A9A9A1AC9
+:1077A0002AAAAAAAAAAAAAAA9A9A9A9A9A9A9A1AB9
+:1077B0002AAAAAAAAAAAAAAA9A9A9A9A9A9A9A1AA9
+:1077C0002AAAAAAAAAAAAAAA9A9A9A9A9A9A9A1A99
+:1077D0002AAAAAAAAAAAAAAA9A9A9A9A9A9A9A1A89
+:1077E0002AAAAAAAAAAAAAAA9A9A9A9A9A9A9A1A79
+:1077F0002AAAAAAAAAAAAAAA9A9A9A9A9A9A9A1A69
+:107800005A9A9A9A9A9A9A9AA5A5A5A5A5A5A5A5C0
+:107810005A9A9A9A9A9A9A9AA5A5A5A5A5A5A5A5B0
+:107820005A9A9A9A9A9A9A9AA5A5A5A5A5A5A5A5A0
+:107830005A9A9A9A9A9A9A9AA5A5A5A5A5A5A5A590
+:107840005A9A9A9A9A9A9A9AA5A5A5A5A5A5A5A580
+:107850005A9A9A9A9A9A9A9AA5A5A5A5A5A5A5A570
+:107860005A9A9A9A9A9A9A9AA5A5A5A5A5A5A5A560
+:107870005A9A9A9A9A9A9A9AA5A5A5A5A5A5A5A550
+:107880006AAAAAAAAAAAAAAA9A9A9A9A9A9A9A9A18
+:107890006AAAAAAAAAAAAAAA9A9A9A9A9A9A9A9A08
+:1078A0006AAAAAAAAAAAAAAA9A9A9A9A9A9A9A9AF8
+:1078B0006AAAAAAAAAAAAAAA9A9A9A9A9A9A9A9AE8
+:1078C0006AAAAAAAAAAAAAAA9A9A9A9A9A9A9A9AD8
+:1078D0006AAAAAAAAAAAAAAA9A9A9A9A9A9A9A9AC8
+:1078E0006AAAAAAAAAAAAAAA9A9A9A9A9A9A9A9AB8
+:1078F0006AAAAAAAAAAAAAAA9A9A9A9A9A9A9A9AA8
+:107900005A9A9A9A9A9A9A9AA5A5A5A5A5A5A5A5BF
+:107910005A9A9A9A9A9A9A9AA5A5A5A5A5A5A5A5AF
+:107920005A9A9A9A9A9A9A9AA5A5A5A5A5A5A5A59F
+:107930005A9A9A9A9A9A9A9AA5A5A5A5A5A5A5A58F
+:107940005A9A9A9A9A9A9A9AA5A5A5A5A5A5A5A57F
+:107950005A9A9A9A9A9A9A9AA5A5A5A5A5A5A5A56F
+:107960005A9A9A9A9A9A9A9AA5A5A5A5A5A5A5A55F
+:107970005A9A9A9A9A9A9A9AA5A5A5A5A5A5A5A54F
+:107980006AAAAAAAAAAAAAAA9A9A9A9A9A9A9A9A17
+:107990006AAAAAAAAAAAAAAA9A9A9A9A9A9A9A9A07
+:1079A0006AAAAAAAAAAAAAAA9A9A9A9A9A9A9A9AF7
+:1079B0006AAAAAAAAAAAAAAA9A9A9A9A9A9A9A9AE7
+:1079C0006AAAAAAAAAAAAAAA9A9A9A9A9A9A9A9AD7
+:1079D0006AAAAAAAAAAAAAAA9A9A9A9A9A9A9A9AC7
+:1079E0006AAAAAAAAAAAAAAA9A9A9A9A9A9A9A9AB7
+:1079F0006AAAAAAAAAAAAAAA9A9A9A9A9A9A9A9AA7
+:107A00001A9A9A9A9A9A9A9AA5A5A5A5A5A5A5257E
+:107A10001A9A9A9A9A9A9A9AA5A5A5A5A5A5A5256E
+:107A20001A9A9A9A9A9A9A9AA5A5A5A5A5A5A5255E
+:107A30001A9A9A9A9A9A9A9AA5A5A5A5A5A5A5254E
+:107A40001A9A9A9A9A9A9A9AA5A5A5A5A5A5A5253E
+:107A50001A9A9A9A9A9A9A9AA5A5A5A5A5A5A5252E
+:107A60001A9A9A9A9A9A9A9AA5A5A5A5A5A5A5251E
+:107A70001A9A9A9A9A9A9A9AA5A5A5A5A5A5A5250E
+:107A80002AAAAAAAAAAAAAAA9A9A9A9A9A9A9A1AD6
+:107A90002AAAAAAAAAAAAAAA9A9A9A9A9A9A9A1AC6
+:107AA0002AAAAAAAAAAAAAAA9A9A9A9A9A9A9A1AB6
+:107AB0002AAAAAAAAAAAAAAA9A9A9A9A9A9A9A1AA6
+:107AC0002AAAAAAAAAAAAAAA9A9A9A9A9A9A9A1A96
+:107AD0002AAAAAAAAAAAAAAA9A9A9A9A9A9A9A1A86
+:107AE0002AAAAAAAAAAAAAAA9A9A9A9A9A9A9A1A76
+:107AF0002AAAAAAAAAAAAAAA9A9A9A9A9A9A9A1A66
+:107B00001A5A5A5A5A5A5A5A65656565656525253D
+:107B10001A5A5A5A5A5A5A5A65656565656525252D
+:107B20001A5A5A5A5A5A5A5A65656565656525251D
+:107B30001A5A5A5A5A5A5A5A65656565656525250D
+:107B40001A5A5A5A5A5A5A5A6565656565652525FD
+:107B50001A5A5A5A5A5A5A5A6565656565652525ED
+:107B60001A5A5A5A5A5A5A5A6565656565652525DD
+:107B70001A5A5A5A5A5A5A5A6565656565652525CD
+:107B80002A6A6A6A6A6A6A6A5A5A5A5A5A5A1A1A95
+:107B90002A6A6A6A6A6A6A6A5A5A5A5A5A5A1A1A85
+:107BA0002A6A6A6A6A6A6A6A5A5A5A5A5A5A1A1A75
+:107BB0002A6A6A6A6A6A6A6A5A5A5A5A5A5A1A1A65
+:107BC0002A6A6A6A6A6A6A6A5A5A5A5A5A5A1A1A55
+:107BD0002A6A6A6A6A6A6A6A5A5A5A5A5A5A1A1A45
+:107BE0002A6A6A6A6A6A6A6A5A5A5A5A5A5A1A1A35
+:107BF0002A6A6A6A6A6A6A6A5A5A5A5A5A5A1A1A25
+:107C00005A5A5A5A5A5A5A5A65656565252525A5FC
+:107C10005A5A5A5A5A5A5A5A65656565252525A5EC
+:107C20005A5A5A5A5A5A5A5A65656565252525A5DC
+:107C30005A5A5A5A5A5A5A5A65656565252525A5CC
+:107C40005A5A5A5A5A5A5A5A65656565252525A5BC
+:107C50005A5A5A5A5A5A5A5A65656565252525A5AC
+:107C60005A5A5A5A5A5A5A5A65656565252525A59C
+:107C70005A5A5A5A5A5A5A5A65656565252525A58C
+:107C80006A6A6A6A6A6A6A6A5A5A5A5A1A1A1A9A54
+:107C90006A6A6A6A6A6A6A6A5A5A5A5A1A1A1A9A44
+:107CA0006A6A6A6A6A6A6A6A5A5A5A5A1A1A1A9A34
+:107CB0006A6A6A6A6A6A6A6A5A5A5A5A1A1A1A9A24
+:107CC0006A6A6A6A6A6A6A6A5A5A5A5A1A1A1A9A14
+:107CD0006A6A6A6A6A6A6A6A5A5A5A5A1A1A1A9A04
+:107CE0006A6A6A6A6A6A6A6A5A5A5A5A1A1A1A9AF4
+:107CF0006A6A6A6A6A6A6A6A5A5A5A5A1A1A1A9AE4
+:107D00005A5A5A5A5A5A5A5A65656525252525A53B
+:107D10005A5A5A5A5A5A5A5A65656525252525A52B
+:107D20005A5A5A5A5A5A5A5A65656525252525A51B
+:107D30005A5A5A5A5A5A5A5A65656525252525A50B
+:107D40005A5A5A5A5A5A5A5A65656525252525A5FB
+:107D50005A5A5A5A5A5A5A5A65656525252525A5EB
+:107D60005A5A5A5A5A5A5A5A65656525252525A5DB
+:107D70005A5A5A5A5A5A5A5A65656525252525A5CB
+:107D80006A6A6A6A6A6A6A6A5A5A5A1A1A1A1A9A93
+:107D90006A6A6A6A6A6A6A6A5A5A5A1A1A1A1A9A83
+:107DA0006A6A6A6A6A6A6A6A5A5A5A1A1A1A1A9A73
+:107DB0006A6A6A6A6A6A6A6A5A5A5A1A1A1A1A9A63
+:107DC0006A6A6A6A6A6A6A6A5A5A5A1A1A1A1A9A53
+:107DD0006A6A6A6A6A6A6A6A5A5A5A1A1A1A1A9A43
+:107DE0006A6A6A6A6A6A6A6A5A5A5A1A1A1A1A9A33
+:107DF0006A6A6A6A6A6A6A6A5A5A5A1A1A1A1A9A23
+:107E00001A5A5A5A5A5A5A5A6565252565252525FA
+:107E10001A5A5A5A5A5A5A5A6565252565252525EA
+:107E20001A5A5A5A5A5A5A5A6565252565252525DA
+:107E30001A5A5A5A5A5A5A5A6565252565252525CA
+:107E40001A5A5A5A5A5A5A5A6565252565252525BA
+:107E50001A5A5A5A5A5A5A5A6565252565252525AA
+:107E60001A5A5A5A5A5A5A5A65652525652525259A
+:107E70001A5A5A5A5A5A5A5A65652525652525258A
+:107E80002A6A6A6A6A6A6A6A5A5A1A1A5A1A1A1A52
+:107E90002A6A6A6A6A6A6A6A5A5A1A1A5A1A1A1A42
+:107EA0002A6A6A6A6A6A6A6A5A5A1A1A5A1A1A1A32
+:107EB0002A6A6A6A6A6A6A6A5A5A1A1A5A1A1A1A22
+:107EC0002A6A6A6A6A6A6A6A5A5A1A1A5A1A1A1A12
+:107ED0002A6A6A6A6A6A6A6A5A5A1A1A5A1A1A1A02
+:107EE0002A6A6A6A6A6A6A6A5A5A1A1A5A1A1A1AF2
+:107EF0002A6A6A6A6A6A6A6A5A5A1A1A5A1A1A1AE2
+:107F00001A5A5A5A5A5A5A5A652525252525252579
+:107F10001A5A5A5A5A5A5A5A652525252525252569
+:107F20001A5A5A5A5A5A5A5A652525252525252559
+:107F30001A5A5A5A5A5A5A5A652525252525252549
+:107F40001A5A5A5A5A5A5A5A652525252525252539
+:107F50001A5A5A5A5A5A5A5A652525252525252529
+:107F60001A5A5A5A5A5A5A5A652525252525252519
+:107F70001A5A5A5A5A5A5A5A652525252525252509
+:107F80002A6A6A6A6A6A6A6A5A1A1A1A1A1A1A1AD1
+:107F90002A6A6A6A6A6A6A6A5A1A1A1A1A1A1A1AC1
+:107FA0002A6A6A6A6A6A6A6A5A1A1A1A1A1A1A1AB1
+:107FB0002A6A6A6A6A6A6A6A5A1A1A1A1A1A1A1AA1
+:107FC0002A6A6A6A6A6A6A6A5A1A1A1A1A1A1A1A91
+:107FD0002A6A6A6A6A6A6A6A5A1A1A1A1A1A1A1A81
+:107FE0002A6A6A6A6A6A6A6A5A1A1A1A1A1A1A1A71
+:107FF0002A6A6A6A6A6A6A6A5A1A1A1A1A1A1A1A61
+:108000004A4A4A4A4A4A4A4A450505050505058538
+:108010004A4A4A4A4A4A4A4A450505050505058528
+:108020004A4A4A4A4A4A4A4A450505050505058518
+:108030004A4A4A4A4A4A4A4A450505050505058508
+:108040004A4A4A4A4A4A4A4A4505050505050585F8
+:108050004A4A4A4A4A4A4A4A4505050505050585E8
+:108060004A4A4A4A4A4A4A4A4505050505050585D8
+:108070004A4A4A4A4A4A4A4A4505050505050585C8
+:108080004A4A4A4A4A4A4A4A4A0A0A0A0A0A0A8A90
+:108090004A4A4A4A4A4A4A4A4A0A0A0A0A0A0A8A80
+:1080A0004A4A4A4A4A4A4A4A4A0A0A0A0A0A0A8A70
+:1080B0004A4A4A4A4A4A4A4A4A0A0A0A0A0A0A8A60
+:1080C0004A4A4A4A4A4A4A4A4A0A0A0A0A0A0A8A50
+:1080D0004A4A4A4A4A4A4A4A4A0A0A0A0A0A0A8A40
+:1080E0004A4A4A4A4A4A4A4A4A0A0A0A0A0A0A8A30
+:1080F0004A4A4A4A4A4A4A4A4A0A0A0A0A0A0A8A20
+:108100006A6A6A6A6A6A6A6A1515151515151595F7
+:108110006A6A6A6A6A6A6A6A1515151515151595E7
+:108120006A6A6A6A6A6A6A6A1515151515151595D7
+:108130006A6A6A6A6A6A6A6A1515151515151595C7
+:108140006A6A6A6A6A6A6A6A1515151515151595B7
+:108150006A6A6A6A6A6A6A6A1515151515151595A7
+:108160006A6A6A6A6A6A6A6A151515151515159597
+:108170006A6A6A6A6A6A6A6A151515151515159587
+:108180006A6A6A6A6A6A6A6A2A2A2A2A2A2A2AAACF
+:108190006A6A6A6A6A6A6A6A2A2A2A2A2A2A2AAABF
+:1081A0006A6A6A6A6A6A6A6A2A2A2A2A2A2A2AAAAF
+:1081B0006A6A6A6A6A6A6A6A2A2A2A2A2A2A2AAA9F
+:1081C0006A6A6A6A6A6A6A6A2A2A2A2A2A2A2AAA8F
+:1081D0006A6A6A6A6A6A6A6A2A2A2A2A2A2A2AAA7F
+:1081E0006A6A6A6A6A6A6A6A2A2A2A2A2A2A2AAA6F
+:1081F0006A6A6A6A6A6A6A6A2A2A2A2A2A2A2AAA5F
+:108200002A6A6A6A6A6A6A2A1515151515151515F6
+:108210002A6A6A6A6A6A6A2A1515151515151515E6
+:108220002A6A6A6A6A6A6A2A1515151515151515D6
+:108230002A6A6A6A6A6A6A2A1515151515151515C6
+:108240002A6A6A6A6A6A6A2A1515151515151515B6
+:108250002A6A6A6A6A6A6A2A1515151515151515A6
+:108260002A6A6A6A6A6A6A2A151515151515151596
+:108270002A6A6A6A6A6A6A2A151515151515151586
+:108280002A6A6A6A6A6A6A2A2A2A2A2A2A2A2A2ACE
+:108290002A6A6A6A6A6A6A2A2A2A2A2A2A2A2A2ABE
+:1082A0002A6A6A6A6A6A6A2A2A2A2A2A2A2A2A2AAE
+:1082B0002A6A6A6A6A6A6A2A2A2A2A2A2A2A2A2A9E
+:1082C0002A6A6A6A6A6A6A2A2A2A2A2A2A2A2A2A8E
+:1082D0002A6A6A6A6A6A6A2A2A2A2A2A2A2A2A2A7E
+:1082E0002A6A6A6A6A6A6A2A2A2A2A2A2A2A2A2A6E
+:1082F0002A6A6A6A6A6A6A2A2A2A2A2A2A2A2A2A5E
+:108300002A6A6A6A6A6A2A2A151515151515151535
+:108310002A6A6A6A6A6A2A2A151515151515151525
+:108320002A6A6A6A6A6A2A2A151515151515151515
+:108330002A6A6A6A6A6A2A2A151515151515151505
+:108340002A6A6A6A6A6A2A2A1515151515151515F5
+:108350002A6A6A6A6A6A2A2A1515151515151515E5
+:108360002A6A6A6A6A6A2A2A1515151515151515D5
+:108370002A6A6A6A6A6A2A2A1515151515151515C5
+:108380002A6A6A6A6A6A2A2A2A2A2A2A2A2A2A2A0D
+:108390002A6A6A6A6A6A2A2A2A2A2A2A2A2A2A2AFD
+:1083A0002A6A6A6A6A6A2A2A2A2A2A2A2A2A2A2AED
+:1083B0002A6A6A6A6A6A2A2A2A2A2A2A2A2A2A2ADD
+:1083C0002A6A6A6A6A6A2A2A2A2A2A2A2A2A2A2ACD
+:1083D0002A6A6A6A6A6A2A2A2A2A2A2A2A2A2A2ABD
+:1083E0002A6A6A6A6A6A2A2A2A2A2A2A2A2A2A2AAD
+:1083F0002A6A6A6A6A6A2A2A2A2A2A2A2A2A2A2A9D
+:108400006A6A6A6A6A6A2A2A151515151515159574
+:108410006A6A6A6A6A6A2A2A151515151515159564
+:108420006A6A6A6A6A6A2A2A151515151515159554
+:108430006A6A6A6A6A6A2A2A151515151515159544
+:108440006A6A6A6A6A6A2A2A151515151515159534
+:108450006A6A6A6A6A6A2A2A151515151515159524
+:108460006A6A6A6A6A6A2A2A151515151515159514
+:108470006A6A6A6A6A6A2A2A151515151515159504
+:108480006A6A6A6A6A6A2A2A2A2A2A2A2A2A2AAA4C
+:108490006A6A6A6A6A6A2A2A2A2A2A2A2A2A2AAA3C
+:1084A0006A6A6A6A6A6A2A2A2A2A2A2A2A2A2AAA2C
+:1084B0006A6A6A6A6A6A2A2A2A2A2A2A2A2A2AAA1C
+:1084C0006A6A6A6A6A6A2A2A2A2A2A2A2A2A2AAA0C
+:1084D0006A6A6A6A6A6A2A2A2A2A2A2A2A2A2AAAFC
+:1084E0006A6A6A6A6A6A2A2A2A2A2A2A2A2A2AAAEC
+:1084F0006A6A6A6A6A6A2A2A2A2A2A2A2A2A2A2A5C
+:108500006A6A6A6A6A2A2A2A1515151515151595B3
+:108510006A6A6A6A6A2A2A2A1515151515151595A3
+:108520006A6A6A6A6A2A2A2A151515151515159593
+:108530006A6A6A6A6A2A2A2A151515151515159583
+:108540006A6A6A6A6A2A2A2A151515151515159573
+:108550006A6A6A6A6A2A2A2A151515151515159563
+:108560006A6A6A6A6A2A2A2A151515151515159553
+:108570006A6A6A6A6A2A2A2A151515151515159543
+:108580006A6A6A6A6A2A2A2A2A2A2A2A2A2A2AAA8B
+:108590006A6A6A6A6A2A2A2A2A2A2A2A2A2A2AAA7B
+:1085A0006A6A6A6A6A2A2A2A2A2A2A2A2A2A2AAA6B
+:1085B0006A6A6A6A6A2A2A2A2A2A2A2A2A2A2AAA5B
+:1085C0006A6A6A6A6A2A2A2A2A2A2A2A2A2A2AAA4B
+:1085D0006A6A6A6A6A2A2A2A2A2A2A2A2A2A2AAA3B
+:1085E0006A6A6A6A6A2A2A2A2A2A2A2A2A2A2AAA2B
+:1085F0006A6A6A6A6A2A2A2A2A2A2A2A2A2A2A2A9B
+:108600002A6A6A6A6A2A2A2A151515151515151572
+:108610002A6A6A6A6A2A2A2A151515151515151562
+:108620002A6A6A6A6A2A2A2A151515151515151552
+:108630002A6A6A6A6A2A2A2A151515151515151542
+:108640002A6A6A6A6A2A2A2A151515151515151532
+:108650002A6A6A6A6A2A2A2A151515151515151522
+:108660002A6A6A6A6A2A2A2A151515151515151512
+:108670002A6A6A6A6A2A2A2A151515151515151502
+:108680002A6A6A6A6A2A2A2A2A2A2A2A2A2A2A2A4A
+:108690002A6A6A6A6A2A2A2A2A2A2A2A2A2A2A2A3A
+:1086A0002A6A6A6A6A2A2A2A2A2A2A2A2A2A2A2A2A
+:1086B0002A6A6A6A6A2A2A2A2A2A2A2A2A2A2A2A1A
+:1086C0002A6A6A6A6A2A2A2A2A2A2A2A2A2A2A2A0A
+:1086D0002A6A6A6A6A2A2A2A2A2A2A2A2A2A2A2AFA
+:1086E0002A6A6A6A6A2A2A2A2A2A2A2A2A2A2A2AEA
+:1086F0002A6A6A6A6A2A2A2A2A2A2A2A2A2A2A2ADA
+:108700002A6A6A6A2A2A2A2A1515151515151515B1
+:108710002A6A6A6A2A2A2A2A1515151515151515A1
+:108720002A6A6A6A2A2A2A2A151515151515151591
+:108730002A6A6A6A2A2A2A2A151515151515151581
+:108740002A6A6A6A2A2A2A2A151515151515151571
+:108750002A6A6A6A2A2A2A2A151515151515151561
+:108760002A6A6A6A2A2A2A2A151515151515151551
+:108770002A6A6A6A2A2A2A2A151515151515151541
+:108780002A6A6A6A2A2A2A2A2A2A2A2A2A2A2A2A89
+:108790002A6A6A6A2A2A2A2A2A2A2A2A2A2A2A2A79
+:1087A0002A6A6A6A2A2A2A2A2A2A2A2A2A2A2A2A69
+:1087B0002A6A6A6A2A2A2A2A2A2A2A2A2A2A2A2A59
+:1087C0002A6A6A6A2A2A2A2A2A2A2A2A2A2A2A2A49
+:1087D0002A6A6A6A2A2A2A2A2A2A2A2A2A2A2A2A39
+:1087E0002A6A6A6A2A2A2A2A2A2A2A2A2A2A2A2A29
+:1087F0002A6A6A6A2A2A2A2A2A2A2A2A2A2A2A2A19
+:108800006A6A6A6A2A2A2A2A1515151515151595F0
+:108810006A6A6A6A2A2A2A2A1515151515151595E0
+:108820006A6A6A6A2A2A2A2A1515151515151595D0
+:108830006A6A6A6A2A2A2A2A1515151515151595C0
+:108840006A6A6A6A2A2A2A2A1515151515151595B0
+:108850006A6A6A6A2A2A2A2A1515151515151595A0
+:108860006A6A6A6A2A2A2A2A151515151515159590
+:108870006A6A6A6A2A2A2A2A151515151515159580
+:108880006A6A6A6A2A2A2A2A2A2A2A2A2A2A2AAAC8
+:108890006A6A6A6A2A2A2A2A2A2A2A2A2A2A2AAAB8
+:1088A0006A6A6A6A2A2A2A2A2A2A2A2A2A2A2AAAA8
+:1088B0006A6A6A6A2A2A2A2A2A2A2A2A2A2A2AAA98
+:1088C0006A6A6A6A2A2A2A2A2A2A2A2A2A2A2AAA88
+:1088D0006A6A6A6A2A2A2A2A2A2A2A2A2A2A2AAA78
+:1088E0006A6A6A6A2A2A2A2A2A2A2A2A2A2A2AAA68
+:1088F0006A6A6A6A2A2A2A2A2A2A2A2A2A2A2A2AD8
+:108900006A6A6A6A2A2A2A2A1515151515151595EF
+:108910006A6A6A6A2A2A2A2A1515151515151595DF
+:108920006A6A6A6A2A2A2A2A1515151515151595CF
+:108930006A6A6A6A2A2A2A2A1515151515151595BF
+:108940006A6A6A6A2A2A2A2A1515151515151595AF
+:108950006A6A6A6A2A2A2A2A15151515151515959F
+:108960006A6A6A6A2A2A2A2A15151515151515958F
+:108970006A6A6A6A2A2A2A2A15151515151515957F
+:108980006A6A6A6A2A2A2A2A2A2A2A2A2A2A2AAAC7
+:108990006A6A6A6A2A2A2A2A2A2A2A2A2A2A2AAAB7
+:1089A0006A6A6A6A2A2A2A2A2A2A2A2A2A2A2AAAA7
+:1089B0006A6A6A6A2A2A2A2A2A2A2A2A2A2A2AAA97
+:1089C0006A6A6A6A2A2A2A2A2A2A2A2A2A2A2AAA87
+:1089D0006A6A6A6A2A2A2A2A2A2A2A2A2A2A2AAA77
+:1089E0006A6A6A6A2A2A2A2A2A2A2A2A2A2A2AAA67
+:1089F0006A6A6A6A2A2A2A2A2A2A2A2A2A2A2A2AD7
+:108A00002A6A6A6A2A2A2A2A1515151515151515AE
+:108A10002A6A6A6A2A2A2A2A15151515151515159E
+:108A20002A6A6A6A2A2A2A2A15151515151515158E
+:108A30002A6A6A6A2A2A2A2A15151515151515157E
+:108A40002A6A6A6A2A2A2A2A15151515151515156E
+:108A50002A6A6A6A2A2A2A2A15151515151515155E
+:108A60002A6A6A6A2A2A2A2A15151515151515154E
+:108A70002A6A6A6A2A2A2A2A15151515151515153E
+:108A80002A6A6A6A2A2A2A2A2A2A2A2A2A2A2A2A86
+:108A90002A6A6A6A2A2A2A2A2A2A2A2A2A2A2A2A76
+:108AA0002A6A6A6A2A2A2A2A2A2A2A2A2A2A2A2A66
+:108AB0002A6A6A6A2A2A2A2A2A2A2A2A2A2A2A2A56
+:108AC0002A6A6A6A2A2A2A2A2A2A2A2A2A2A2A2A46
+:108AD0002A6A6A6A2A2A2A2A2A2A2A2A2A2A2A2A36
+:108AE0002A6A6A6A2A2A2A2A2A2A2A2A2A2A2A2A26
+:108AF0002A6A6A6A2A2A2A2A2A2A2A2A2A2A2A2A16
+:108B00002A6A6A2A2A2A2A2A1515151515151515ED
+:108B10002A6A6A2A2A2A2A2A1515151515151515DD
+:108B20002A6A6A2A2A2A2A2A1515151515151515CD
+:108B30002A6A6A2A2A2A2A2A1515151515151515BD
+:108B40002A6A6A2A2A2A2A2A1515151515151515AD
+:108B50002A6A6A2A2A2A2A2A15151515151515159D
+:108B60002A6A6A2A2A2A2A2A15151515151515158D
+:108B70002A6A6A2A2A2A2A2A15151515151515157D
+:108B80002A6A6A2A2A2A2A2A2A2A2A2A2A2A2A2AC5
+:108B90002A6A6A2A2A2A2A2A2A2A2A2A2A2A2A2AB5
+:108BA0002A6A6A2A2A2A2A2A2A2A2A2A2A2A2A2AA5
+:108BB0002A6A6A2A2A2A2A2A2A2A2A2A2A2A2A2A95
+:108BC0002A6A6A2A2A2A2A2A2A2A2A2A2A2A2A2A85
+:108BD0002A6A6A2A2A2A2A2A2A2A2A2A2A2A2A2A75
+:108BE0002A6A6A2A2A2A2A2A2A2A2A2A2A2A2A2A65
+:108BF0002A6A6A2A2A2A2A2A2A2A2A2A2A2A2A2A55
+:108C00006A6A2A2A2A2A2A2A15151515151515956C
+:108C10006A6A2A2A2A2A2A2A15151515151515955C
+:108C20006A6A2A2A2A2A2A2A15151515151515954C
+:108C30006A6A2A2A2A2A2A2A15151515151515953C
+:108C40006A6A2A2A2A2A2A2A15151515151515952C
+:108C50006A6A2A2A2A2A2A2A15151515151515951C
+:108C60006A6A2A2A2A2A2A2A15151515151515950C
+:108C70006A6A2A2A2A2A2A2A1515151515151595FC
+:108C80006A6A2A2A2A2A2A2A2A2A2A2A2A2A2AAA44
+:108C90006A6A2A2A2A2A2A2A2A2A2A2A2A2A2AAA34
+:108CA0006A6A2A2A2A2A2A2A2A2A2A2A2A2A2AAA24
+:108CB0006A6A2A2A2A2A2A2A2A2A2A2A2A2A2AAA14
+:108CC0006A6A2A2A2A2A2A2A2A2A2A2A2A2A2AAA04
+:108CD0006A6A2A2A2A2A2A2A2A2A2A2A2A2A2AAAF4
+:108CE0006A6A2A2A2A2A2A2A2A2A2A2A2A2A2AAAE4
+:108CF0006A6A2A2A2A2A2A2A2A2A2A2A2A2A2A2A54
+:108D00006A6A2A2A2A2A2A2A15151515151515956B
+:108D10006A6A2A2A2A2A2A2A15151515151515955B
+:108D20006A6A2A2A2A2A2A2A15151515151515954B
+:108D30006A6A2A2A2A2A2A2A15151515151515953B
+:108D40006A6A2A2A2A2A2A2A15151515151515952B
+:108D50006A6A2A2A2A2A2A2A15151515151515951B
+:108D60006A6A2A2A2A2A2A2A15151515151515950B
+:108D70006A6A2A2A2A2A2A2A1515151515151595FB
+:108D80006A6A2A2A2A2A2A2A2A2A2A2A2A2A2AAA43
+:108D90006A6A2A2A2A2A2A2A2A2A2A2A2A2A2AAA33
+:108DA0006A6A2A2A2A2A2A2A2A2A2A2A2A2A2AAA23
+:108DB0006A6A2A2A2A2A2A2A2A2A2A2A2A2A2AAA13
+:108DC0006A6A2A2A2A2A2A2A2A2A2A2A2A2A2AAA03
+:108DD0006A6A2A2A2A2A2A2A2A2A2A2A2A2A2AAAF3
+:108DE0006A6A2A2A2A2A2A2A2A2A2A2A2A2A2AAAE3
+:108DF0006A6A2A2A2A2A2A2A2A2A2A2A2A2A2A2A53
+:108E00002A2A2A2A2A2A2A2A15151515151515156A
+:108E10002A2A2A2A2A2A2A2A15151515151515155A
+:108E20002A2A2A2A2A2A2A2A15151515151515154A
+:108E30002A2A2A2A2A2A2A2A15151515151515153A
+:108E40002A2A2A2A2A2A2A2A15151515151515152A
+:108E50002A2A2A2A2A2A2A2A15151515151515151A
+:108E60002A2A2A2A2A2A2A2A15151515151515150A
+:108E70002A2A2A2A2A2A2A2A1515151515151515FA
+:108E80002A2A2A2A2A2A2A2A2A2A2A2A2A2A2A2A42
+:108E90002A2A2A2A2A2A2A2A2A2A2A2A2A2A2A2A32
+:108EA0002A2A2A2A2A2A2A2A2A2A2A2A2A2A2A2A22
+:108EB0002A2A2A2A2A2A2A2A2A2A2A2A2A2A2A2A12
+:108EC0002A2A2A2A2A2A2A2A2A2A2A2A2A2A2A2A02
+:108ED0002A2A2A2A2A2A2A2A2A2A2A2A2A2A2A2AF2
+:108EE0002A2A2A2A2A2A2A2A2A2A2A2A2A2A2A2AE2
+:108EF0002A2A2A2A2A2A2A2A2A2A2A2A2A2A2A2AD2
+:108F00002A2A2A2A2A2A2A2A151515151515151569
+:108F10002A2A2A2A2A2A2A2A151515151515151559
+:108F20002A2A2A2A2A2A2A2A151515151515151549
+:108F30002A2A2A2A2A2A2A2A151515151515151539
+:108F40002A2A2A2A2A2A2A2A151515151515151529
+:108F50002A2A2A2A2A2A2A2A151515151515151519
+:108F60002A2A2A2A2A2A2A2A151515151515151509
+:108F70002A2A2A2A2A2A2A2A1515151515151515F9
+:108F80002A2A2A2A2A2A2A2A2A2A2A2A2A2A2A2A41
+:108F90002A2A2A2A2A2A2A2A2A2A2A2A2A2A2A2A31
+:108FA0002A2A2A2A2A2A2A2A2A2A2A2A2A2A2A2A21
+:108FB0002A2A2A2A2A2A2A2A2A2A2A2A2A2A2A2A11
+:108FC0002A2A2A2A2A2A2A2A2A2A2A2A2A2A2A2A01
+:108FD0002A2A2A2A2A2A2A2A2A2A2A2A2A2A2A2AF1
+:108FE0002A2A2A2A2A2A2A2A2A2A2A2A2A2A2A2AE1
+:108FF0002A2A2A2A2A2A2A2A2A2A2A2A2A2A2A2AD1
+:10900000AA5555A9A9A9A9A9A9A9A9A9A9A9A955CB
+:10901000AA555555555555555555555555555555AB
+:10902000AA5555555555555555555555555555559B
+:10903000AA5555555555555555555555555555558B
+:10904000AA5555555555555555555555555555557B
+:10905000AA5555555555555555555555555555556B
+:10906000AA5555555555555555555555555555555B
+:10907000AA5555555555555555555555555555554B
+:10908000AA5555555555555555555555555555553B
+:10909000AA5555555555555555555555555555552B
+:1090A000AA5555555555555555555555555555551B
+:1090B000AA5555555555555555555555555555550B
+:1090C000AA555555555555555555555555555555FB
+:1090D000AA555555555555555555555555555555EB
+:1090E000AA555555555555555555555555555555DB
+:1090F000AA555A6A6AAAAAAAAAAAAAAAAAAAAA009F
+:10910000AA5555A9A9A9A9A9A9A9A9A9A9A9A955CA
+:10911000AA555555555555555555555555555555AA
+:10912000AA5555555555555555555555555555559A
+:10913000AA5555555555555555555555555555558A
+:10914000AA5555555555555555555555555555557A
+:10915000AA5555555555555555555555555555556A
+:10916000AA5555555555555555555555555555555A
+:10917000AA5555555555555555555555555555554A
+:10918000AA5555555555555555555555555555553A
+:10919000AA5555555555555555555555555555552A
+:1091A000AA5555555555555555555555555555551A
+:1091B000AA5555555555555555555555555555550A
+:1091C000AA555555555555555555555555555555FA
+:1091D000AA555555555555555555555555555555EA
+:1091E000AA555555555555555555555555555555DA
+:1091F000AA555A5A6A6AAAAAAAAAAAAAAAAAAA00EE
+:1092000000555555A9A9A9A9A9A9A9A9A9A9A9001C
+:1092100000555555555555555555555555555500A8
+:109220000055555555555555555555555555550098
+:109230000055555555555555555555555555550088
+:109240000055555555555555555555555555550078
+:109250000055555555555555555555555555550068
+:109260000055555555555555555555555555550058
+:109270000055555555555555555555555555550048
+:109280000055555555555555555555555555550038
+:109290000055555555555555555555555555550028
+:1092A0000055555555555555555555555555550018
+:1092B0000055555555555555555555555555550008
+:1092C00000555555555555555555555555555500F8
+:1092D00000555555555555555555555555555500E8
+:1092E00000555555555555555555555555555500D8
+:1092F0000055565A5A6AAAAAAAAAAAAAAAAAAA00AB
+:10930000005555556969A9A9A9A9A9A9A9A9A9009B
+:1093100000555555555555555555555555555500A7
+:109320000055555555555555555555555555550097
+:109330000055555555555555555555555555550087
+:109340000055555555555555555555555555550077
+:109350000055555555555555555555555555550067
+:109360000055555555555555555555555555550057
+:109370000055555555555555555555555555550047
+:109380000055555555555555555555555555550037
+:109390000055555555555555555555555555550027
+:1093A0000055555555555555555555555555550017
+:1093B0000055555555555555555555555555550007
+:1093C00000555555555555555555555555555500F7
+:1093D00000555555555555555555555555555500E7
+:1093E00000555555555555555555555555555500D7
+:1093F0000055565A5A5AAAAAAAAAAAAAAAAAAA00BA
+:10940000AA5555555555A9A9A9A9A9A9A9A9A955C3
+:10941000AA555555555555555555555555555555A7
+:10942000AA55555555555555555555555555555597
+:10943000AA55555555555555555555555555555587
+:10944000AA55555555555555555555555555555577
+:10945000AA55555555555555555555555555555567
+:10946000AA55555555555555555555555555555557
+:10947000AA55555555555555555555555555555547
+:10948000AA55555555555555555555555555555537
+:10949000AA55555555555555555555555555555527
+:1094A000AA55555555555555555555555555555517
+:1094B000AA55555555555555555555555555555507
+:1094C000AA555555555555555555555555555555F7
+:1094D000AA555555555555555555555555555555E7
+:1094E000AA555555555555555555555555555555D7
+:1094F000AA55555A5A5AAAAAAAAAAAAAAAAAAA0010
+:10950000AA5555555555A9A9A9A9A9A9A9A9A955C2
+:10951000AA555555555555555555555555555555A6
+:10952000AA55555555555555555555555555555596
+:10953000AA55555555555555555555555555555586
+:10954000AA55555555555555555555555555555576
+:10955000AA55555555555555555555555555555566
+:10956000AA55555555555555555555555555555556
+:10957000AA55555555555555555555555555555546
+:10958000AA55555555555555555555555555555536
+:10959000AA55555555555555555555555555555526
+:1095A000AA55555555555555555555555555555516
+:1095B000AA55555555555555555555555555555506
+:1095C000AA555555555555555555555555555555F6
+:1095D000AA555555555555555555555555555555E6
+:1095E000AA555555555555555555555555555555D6
+:1095F000AA55555A5A5AAAAAAAAAAAAAAAAAAA000F
+:1096000000555555555595A9A9A9A9A9A9A9AA00D3
+:1096100000555555555555555555555555555600A3
+:109620000055555555555555555555555555550094
+:109630000055555555555555555555555555550084
+:109640000055555555555555555555555555550074
+:109650000055555555555555555555555555550064
+:109660000055555555555555555555555555550054
+:109670000055555555555555555555555555550044
+:109680000055555555555555555555555555550034
+:109690000055555555555555555555555555550024
+:1096A0000055555555555555555555555555550014
+:1096B0000055555555555555555555555555550004
+:1096C00000555555555555555555555555555500F4
+:1096D00000555555555555555555555555555500E4
+:1096E00000555555555555555555555555555500D4
+:1096F000005555565A5A5AAAAAAAAAAAAAAAAA000C
+:1097000000555555555555A9A9A9A9A9A9A9AA0012
+:1097100000555555555555555555555555555600A2
+:109720000055555555555555555555555555560092
+:109730000055555555555555555555555555550083
+:109740000055555555555555555555555555550073
+:109750000055555555555555555555555555550063
+:109760000055555555555555555555555555550053
+:109770000055555555555555555555555555550043
+:109780000055555555555555555555555555550033
+:109790000055555555555555555555555555550023
+:1097A0000055555555555555555555555555550013
+:1097B0000055555555555555555555555555550003
+:1097C00000555555555555555555555555555500F3
+:1097D00000555555555555555555555555555500E3
+:1097E00000555555555555555555555555555500D3
+:1097F000005555565A5A5AAAAAAAAAAAAAAAAA000B
+:10980000AA555555555555A5A9A9A9A9A9A9AA5516
+:10981000AA555555555555555555555555555655A2
+:10982000AA55555555555555555555555555565592
+:10983000AA55555555555555555555555555565582
+:10984000AA55555555555555555555555555555573
+:10985000AA55555555555555555555555555555563
+:10986000AA55555555555555555555555555555553
+:10987000AA55555555555555555555555555555543
+:10988000AA55555555555555555555555555555533
+:10989000AA55555555555555555555555555555523
+:1098A000AA55555555555555555555555555555513
+:1098B000AA55555555555555555555555555555503
+:1098C000AA555555555555555555555555555555F3
+:1098D000AA555555555555555555555555555555E3
+:1098E000AA555555555555555555555555555555D3
+:1098F000AA555555565A5A5AAAAAAAAAAAAAAA00B5
+:10990000AA55555555555595A5A5A5A9A9A9AA5531
+:10991000AA555555555555555555555555555655A1
+:10992000AA55555555555555555555555555565591
+:10993000AA55555555555555555555555555565581
+:10994000AA55555555555555555555555555565571
+:10995000AA55555555555555555555555555565561
+:10996000AA55555555555555555555555555565551
+:10997000AA55555555555555555555555555565541
+:10998000AA55555555555555555555555555565531
+:10999000AA55555555555555555555555555565521
+:1099A000AA55555555555555555555555555565511
+:1099B000AA55555555555555555555555555565501
+:1099C000AA555555555555555555555555555655F1
+:1099D000AA555555555555555555555555555555E2
+:1099E000AA555555555555555555555555555555D2
+:1099F000AA55555556565A5AAAAAAAAAAAAAAA00B8
+:109A00000055555555555555959595A5A9AAAA00A2
+:109A1000005555555555555555555555555656009E
+:109A2000005555555555555555555555555556008F
+:109A3000005555555555555555555555555556007F
+:109A4000005555555555555555555555555556006F
+:109A5000005555555555555555555555555556005F
+:109A6000005555555555555555555555555556004F
+:109A7000005555555555555555555555555556003F
+:109A8000005555555555555555555555555556002F
+:109A9000005555555555555555555555555556001F
+:109AA000005555555555555555555555555556000F
+:109AB00000555555555555555555555555555600FF
+:109AC00000555555555555555555555555555600EF
+:109AD00000555555555555555555555555555600DF
+:109AE00000555555555555555555555555555500D0
+:109AF0000055555555555A5AAAAAAAAAAAAAAA0063
+:109B0000005555555555555595955596A6A6A600FB
+:109B1000005555555555555555555556565656009B
+:109B2000005555555555555555555555555656008D
+:109B3000005555555555555555555555555556007E
+:109B4000005555555555555555555555555556006E
+:109B5000005555555555555555555555555556005E
+:109B6000005555555555555555555555555556004E
+:109B7000005555555555555555555555555556003E
+:109B8000005555555555555555555555555556002E
+:109B9000005555555555555555555555555556001E
+:109BA000005555555555555555555555555556000E
+:109BB00000555555555555555555555555555600FE
+:109BC00000555555555555555555555555555600EE
+:109BD00000555555555555555555555555555600DE
+:109BE00000555555555555555555555555555600CE
+:109BF0000055555555555559AAAAAAAAAAAAAA0068
+:109C0000AA5555AAAAAAAAAAAAAAAAAAAAAAAA55B3
+:109C1000AA55555656565656565656565656565593
+:109C2000AA5555555555555555555556565656558B
+:109C3000AA5555555555555555555555555656557D
+:109C4000AA5555555555555555555555555556556E
+:109C5000AA5555555555555555555555555556555E
+:109C6000AA5555555555555555555555555556554E
+:109C7000AA5555555555555555555555555556553E
+:109C8000AA5555555555555555555555555556552E
+:109C9000AA5555555555555555555555555556551E
+:109CA000AA5555555555555555555555555556550E
+:109CB000AA555555555555555555555555555655FE
+:109CC000AA555555555555555555555555555655EE
+:109CD000AA555555555555555555555555555655DE
+:109CE000AA555555555555555555555555555655CE
+:109CF000AA5555555555555559AAAAAAAAAAAA55BD
+:109D0000AA556AAAAAAAAAAAAAAAAAAAAAAAAA559D
+:109D1000AA5556AAAAAAAAAAAAAAAAAAAAAAAA55A1
+:109D2000AA5555AAAAAAAAAAAAAAAAAAAAAAAA5592
+:109D3000AA5555A9A9A9A9A9A9A9A9AAAAAAAA558A
+:109D4000AA5555A9A9A9A9A9A9A9A9A9A9AAAA557C
+:109D5000AA5555A9A9A9A9A9A9A9A9A9A9AAAA556C
+:109D6000AA5555A9A9A9A9A9A9A9A9A9A9AAAA555C
+:109D7000AA5555A9A9A9A9A9A9A9A9A9A9AAAA554C
+:109D8000AA5555A9A9A9A9A9A9A9A9A9A9AAAA553C
+:109D9000AA5555A9A9A9A9A9A9A9A9A9A9AAAA552C
+:109DA000AA5555A9A9A9A9A9A9A9A9A9A9AAAA551C
+:109DB000AA555555555555555555555555565655FC
+:109DC000AA555555555555555555555555565655EC
+:109DD000AA555555555555555555555555555655DD
+:109DE000AA555555555555555555555555555655CD
+:109DF000AA55555555555555556969AAAAAAAA5542
+:109E00000055AAAAAAAAAAAAAAAAAAAAAAAAAA005B
+:109E10000055AAAAAAAAAAAAAAAAAAAAAAAAAA004B
+:109E20000055AAAAAAAAAAAAAAAAAAAAAAAAAA003B
+:109E30000055A9AAAAAAAAAAAAAAAAAAAAAAAA002C
+:109E40000055A9A9A9A9A9A9A9A9A9AAAAAAAA0024
+:109E50000055A9A9A9A9A9A9A9A9A9AAAAAAAA0014
+:109E60000055A9A9A9A9A9A9A9A9A9AAAAAAAA0004
+:109E70000055A9A9A9A9A9A9A9A9A9AAAAAAAA00F4
+:109E80000055A9A9A9A9A9A9A9A9A9AAAAAAAA00E4
+:109E90000055A9A9A9A9A9A9A9A9A9AAAAAAAA00D4
+:109EA0000055A9A9A9A9A9A9A9A9A9AAAAAAAA00C4
+:109EB000005555A9A9A9A9A9A9A9A9AAAAAAAA0008
+:109EC00000555555555555555555555656565600E8
+:109ED0000055555555555555555555555556AA0086
+:109EE00000555555555555555555555555555600CB
+:109EF000005555555555555555555569AAAAAA00A9
+:109F00000055AAAAAAAAAAAAAAAAAAAAAAAAAA005A
+:109F100000A9AAAAAAAAAAAAAAAAAAAAAAAAAA00F6
+:109F200000A9AAAAAAAAAAAAAAAAAAAAAAAAAA00E6
+:109F300000A9AAAAAAAAAAAAAAAAAAAAAAAAAA00D6
+:109F400000A9A9AAAAAAAAAAAAAAAAAAAAAAAA00C7
+:109F500000A9A9AAAAAAAAAAAAAAAAAAAAAAAA00B7
+:109F600000A9A9AAAAAAAAAAAAAAAAAAAAAAAA00A7
+:109F700000A9A9AAAAAAAAAAAAAAAAAAAAAAAA0097
+:109F800000A9A9AAAAAAAAAAAAAAAAAAAAAAAA0087
+:109F900000A9A9AAAAAAAAAAAAAAAAAAAAAAAA0077
+:109FA00000A9A9AAAAAAAAAAAAAAAAAAAAAAAA0067
+:109FB0000055A9AAAAAAAAAAAAAAAAAAAAAAAA00AB
+:109FC000005555A9A9A9A9A9A9A9A9AAAAAAAA00F7
+:109FD0000055555555555555555555565656AA0083
+:109FE00000555555555555555555555555565600C9
+:109FF000005555555555555555555555A9AA560011
+:10A00000AA55AAAAAAAAAAAAAAAAAAAAAAAAAA555A
+:10A01000AAA9AAAAAAAAAAAAAAAAAAAAAAAAAA55F6
+:10A02000AAA9AAAAAAAAAAAAAAAAAAAAAAAAAA55E6
+:10A03000AAA9AAAAAAAAAAAAAAAAAAAAAAAAAA55D6
+:10A04000AAA9AAAAAAAAAAAAAAAAAAAAAAAAAA55C6
+:10A05000AAA9AAAAAAAAAAAAAAAAAAAAAAAAAA55B6
+:10A06000AAA9AAAAAAAAAAAAAAAAAAAAAAAAAA55A6
+:10A07000AAA9AAAAAAAAAAAAAAAAAAAAAAAAAA5596
+:10A08000AAA9AAAAAAAAAAAAAAAAAAAAAAAAAA5586
+:10A09000AAA9AAAAAAAAAAAAAAAAAAAAAAAAAA5576
+:10A0A000AAA9AAAAAAAAAAAAAAAAAAAAAAAAAA5566
+:10A0B000AAA9AAAAAAAAAAAAAAAAAAAAAAAAAA5556
+:10A0C000AA55A9AAAAAAAAAAAAAAAAAAAAAAAA559B
+:10A0D000AA5555AAAAAAAAAAAAAAAAAAAAAAAA55DF
+:10A0E000AA555555555555555555555656565655C7
+:10A0F000AA5555555555555555555555959556553A
+:10A10000AA56AAAAAAAAAAAAAAAAAAAAAAAAAA5558
+:10A11000AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA55F4
+:10A12000AAA9AAAAAAAAAAAAAAAAAAAAAAAAAA55E5
+:10A13000AAA9AAAAAAAAAAAAAAAAAAAAAAAAAA55D5
+:10A14000AAA9AAAAAAAAAAAAAAAAAAAAAAAAAA55C5
+:10A15000AAA9AAAAAAAAAAAAAAAAAAAAAAAAAA55B5
+:10A16000AAA9AAAAAAAAAAAAAAAAAAAAAAAAAA55A5
+:10A17000AAA9AAAAAAAAAAAAAAAAAAAAAAAAAA5595
+:10A18000AAA9AAAAAAAAAAAAAAAAAAAAAAAAAA5585
+:10A19000AAA9AAAAAAAAAAAAAAAAAAAAAAAAAA5575
+:10A1A000AAA9AAAAAAAAAAAAAAAAAAAAAAAAAA5565
+:10A1B000AAA9AAAAAAAAAAAAAAAAAAAAAAAAAA5555
+:10A1C000AAA9AAAAAAAAAAAAAAAAAAAAAAAAAA5545
+:10A1D000AA55AAAAAAAAAAAAAAAAAAAAAAAAAA5589
+:10A1E000AA5555AAAAAAAAAAAAAAAAAAAAAAAA55CE
+:10A1F000AA5555555555555555555555959555553A
+:10A2000000AAAAAAAAAAAAAAAAAAAAAAAAAAAA0002
+:10A2100000AAAAAAAAAAAAAAAAAAAAAAAAAAAA00F2
+:10A2200000AAAAAAAAAAAAAAAAAAAAAAAAAAAA00E2
+:10A2300000A9AAAAAAAAAAAAAAAAAAAAAAAAAA00D3
+:10A2400000A9AAAAAAAAAAAAAAAAAAAAAAAAAA00C3
+:10A2500000A9AAAAAAAAAAAAAAAAAAAAAAAAAA00B3
+:10A2600000A9AAAAAAAAAAAAAAAAAAAAAAAAAA00A3
+:10A2700000A9AAAAAAAAAAAAAAAAAAAAAAAAAA0093
+:10A2800000A9AAAAAAAAAAAAAAAAAAAAAAAAAA0083
+:10A2900000A9AAAAAAAAAAAAAAAAAAAAAAAAAA0073
+:10A2A00000A9AAAAAAAAAAAAAAAAAAAAAAAAAA0063
+:10A2B00000A9AAAAAAAAAAAAAAAAAAAAAAAAAA0053
+:10A2C00000A9AAAAAAAAAAAAAAAAAAAAAAAAAA0043
+:10A2D00000A9AAAAAAAAAAAAAAAAAAAAAAAAAA0033
+:10A2E0000055AAAAAAAAAAAAAAAAAAAAAAAAAA0077
+:10A2F00000555555555555555555555555555500B8
+:10A3000000AAAAAAAAAAAAAAAAAAAAAAAAAAAA0001
+:10A3100000AAAAAAAAAAAAAAAAAAAAAAAAAAAA00F1
+:10A3200000AAAAAAAAAAAAAAAAAAAAAAAAAAAA00E1
+:10A3300000AAAAAAAAAAAAAAAAAAAAAAAAAAAA00D1
+:10A3400000A9AAAAAAAAAAAAAAAAAAAAAAAAAA00C2
+:10A3500000A9AAAAAAAAAAAAAAAAAAAAAAAAAA00B2
+:10A3600000A9AAAAAAAAAAAAAAAAAAAAAAAAAA00A2
+:10A3700000A9AAAAAAAAAAAAAAAAAAAAAAAAAA0092
+:10A3800000A9AAAAAAAAAAAAAAAAAAAAAAAAAA0082
+:10A3900000A9AAAAAAAAAAAAAAAAAAAAAAAAAA0072
+:10A3A00000A9AAAAAAAAAAAAAAAAAAAAAAAAAA0062
+:10A3B00000A9AAAAAAAAAAAAAAAAAAAAAAAAAA0052
+:10A3C00000A9AAAAAAAAAAAAAAAAAAAAAAAAAA0042
+:10A3D00000A9AAAAAAAAAAAAAAAAAAAAAAAAAA0032
+:10A3E00000A9AAAAAAAAAAAAAAAAAAAAAAAAAA0022
+:10A3F00000555555555555555555555555555500B7
+:10A40000AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA5501
+:10A41000AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA55F1
+:10A42000AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA55E1
+:10A43000AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA55D1
+:10A44000AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA55C1
+:10A45000AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA55B1
+:10A46000AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA55A1
+:10A47000AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA5591
+:10A48000AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA5581
+:10A49000AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA5571
+:10A4A000AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA5561
+:10A4B000AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA5551
+:10A4C000AAA9AAAAAAAAAAAAAAAAAAAAAAAAAA5542
+:10A4D000AAA9AAAAAAAAAAAAAAAAAAAAAAAAAA5532
+:10A4E000AAA9AAAAAAAAAAAAAAAAAAAAAAAAAA5522
+:10A4F000AA555555555555555555555555555555B7
+:10A50000AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA5500
+:10A51000AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA55F0
+:10A52000AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA55E0
+:10A53000AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA55D0
+:10A54000AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA55C0
+:10A55000AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA55B0
+:10A56000AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA55A0
+:10A57000AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA5590
+:10A58000AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA5580
+:10A59000AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA5570
+:10A5A000AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA5560
+:10A5B000AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA5550
+:10A5C000AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA5540
+:10A5D000AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA5530
+:10A5E000AAA9AAAAAAAAAAAAAAAAAAAAAAAAAA5521
+:10A5F000AA555555555555555555555555555555B6
+:10A6000000AAAAAAAAAAAAAAAAAAAAAAAAAAAA00FE
+:10A6100000AAAAAAAAAAAAAAAAAAAAAAAAAAAA00EE
+:10A6200000AAAAAAAAAAAAAAAAAAAAAAAAAAAA00DE
+:10A6300000AAAAAAAAAAAAAAAAAAAAAAAAAAAA00CE
+:10A6400000AAAAAAAAAAAAAAAAAAAAAAAAAAAA00BE
+:10A6500000AAAAAAAAAAAAAAAAAAAAAAAAAAAA00AE
+:10A6600000AAAAAAAAAAAAAAAAAAAAAAAAAAAA009E
+:10A6700000AAAAAAAAAAAAAAAAAAAAAAAAAAAA008E
+:10A6800000AAAAAAAAAAAAAAAAAAAAAAAAAAAA007E
+:10A6900000AAAAAAAAAAAAAAAAAAAAAAAAAAAA006E
+:10A6A00000AAAAAAAAAAAAAAAAAAAAAAAAAAAA005E
+:10A6B00000AAAAAAAAAAAAAAAAAAAAAAAAAAAA004E
+:10A6C00000AAAAAAAAAAAAAAAAAAAAAAAAAAAA003E
+:10A6D00000AAAAAAAAAAAAAAAAAAAAAAAAAAAA002E
+:10A6E00000AAAAAAAAAAAAAAAAAAAAAAAAAAAA001E
+:10A6F00000555555555555555555555555555500B4
+:10A7000000AAAAAAAAAAAAAAAAAAAAAAAAAAAA00FD
+:10A7100000AAAAAAAAAAAAAAAAAAAAAAAAAAAA00ED
+:10A7200000AAAAAAAAAAAAAAAAAAAAAAAAAAAA00DD
+:10A7300000AAAAAAAAAAAAAAAAAAAAAAAAAAAA00CD
+:10A7400000AAAAAAAAAAAAAAAAAAAAAAAAAAAA00BD
+:10A7500000AAAAAAAAAAAAAAAAAAAAAAAAAAAA00AD
+:10A7600000AAAAAAAAAAAAAAAAAAAAAAAAAAAA009D
+:10A7700000AAAAAAAAAAAAAAAAAAAAAAAAAAAA008D
+:10A7800000AAAAAAAAAAAAAAAAAAAAAAAAAAAA007D
+:10A7900000AAAAAAAAAAAAAAAAAAAAAAAAAAAA006D
+:10A7A00000AAAAAAAAAAAAAAAAAAAAAAAAAAAA005D
+:10A7B00000AAAAAAAAAAAAAAAAAAAAAAAAAAAA004D
+:10A7C00000AAAAAAAAAAAAAAAAAAAAAAAAAAAA003D
+:10A7D00000AAAAAAAAAAAAAAAAAAAAAAAAAAAA002D
+:10A7E00000AAAAAAAAAAAAAAAAAAAAAAAAAAAA001D
+:10A7F00000555555555555555555555555555500B3
+:10A80000AAAA00000000000000000000000000559F
+:10A81000AAAAA800000000000000000000000055E7
+:10A8200000AAAAA80000000000000000000000002C
+:10A8300055AAAAA8000000000000000000000000C7
+:10A8400055AAAAA8000000000000000000000000B7
+:10A8500055AAAAA8000000000000000000000000A7
+:10A8600055AAAAA800000000000000000000000097
+:10A8700055AAAAA800000000000000000000000087
+:10A8800055AAAAA800000000000000000000000077
+:10A8900055AAAAA800000000000000000000000067
+:10A8A00055AAAAA800000000000000000000000057
+:10A8B00055AAAAA800000000000000000000000047
+:10A8C00055AAAAA800000000000000000000000037
+:10A8D00055AAAAA800000000000000000000000027
+:10A8E00055AAAAA800000000000000000000000017
+:10A8F00055AAAAA800000000000000000000000007
+:10A9000055AAAAA8000000000000000000000000F6
+:10A9100055AAAAA8000000000000000000000000E6
+:10A9200000AAAAAA00000000000000000000000029
+:10A9300055AAAAAA000000000000000000000000C4
+:10A9400055AAAAAA000000000000000000000000B4
+:10A9500055AAAAAA000000000000000000000000A4
+:10A9600055AAAAAA00000000000000000000000094
+:10A9700055AAAAAA00000000000000000000000084
+:10A9800055AAAAAA00000000000000000000000074
+:10A9900055AAAAAA00000000000000000000000064
+:10A9A00055AAAAAA00000000000000000000000054
+:10A9B00055AAAAAA00000000000000000000000044
+:10A9C00055AAAAAA00000000000000000000000034
+:10A9D00055AAAAAA00000000000000000000000024
+:10A9E00055AAAAAA00000000000000000000000014
+:10A9F00055AAAAAA00000000000000000000000004
+:10AA000055AAAAAA000000000000000000000000F3
+:10AA100055AAAAAA000000000000000000000000E3
+:10AA2000AAAAAAA80000000000000000000000552B
+:10AA300000AAAAA8000000000000000000000055C5
+:10AA400000AAAAA8000000000000000000000055B5
+:10AA500000AAAAA8000000000000000000000055A5
+:10AA600000AAAAA800000000000000000000005595
+:10AA700000AAAAA800000000000000000000005585
+:10AA800000AAAAA800000000000000000000005575
+:10AA900000AAAAA800000000000000000000005565
+:10AAA00000AAAAA800000000000000000000005555
+:10AAB00000AAAAA800000000000000000000005545
+:10AAC00000AAAAA800000000000000000000005535
+:10AAD00000AAAAA800000000000000000000005525
+:10AAE00000AAAAA800000000000000000000005515
+:10AAF00000AAAAA800000000000000000000005505
+:10AB000000AAAAA8000000000000000000000055F4
+:10AB100000AAAAA8000000000000000000000055E4
+:10AB2000AAAAAAAA00000000000000000000005528
+:10AB300000AAAAAA000000000000000000000055C2
+:10AB400000AAAAAA000000000000000000000055B2
+:10AB500000AAAAAA000000000000000000000055A2
+:10AB600000AAAAAA00000000000000000000005592
+:10AB700000AAAAAA00000000000000000000005582
+:10AB800000AAAAAA00000000000000000000005572
+:10AB900000AAAAAA00000000000000000000005562
+:10ABA00000AAAAAA00000000000000000000005552
+:10ABB00000AAAAAA00000000000000000000005542
+:10ABC00000AAAAAA00000000000000000000005532
+:10ABD00000AAAAAA00000000000000000000005522
+:10ABE00000AAAAAA00000000000000000000005512
+:10ABF00000AAAAAA00000000000000000000005502
+:10AC000000AAAAAA000000000000000000000055F1
+:10AC100000AAAAAA000000000000000000000055E1
+:10AC200000AAAAAAA800000000000000000000007E
+:10AC300055AAAAAAA8000000000000000000000019
+:10AC400055AAAAAAA8000000000000000000000009
+:10AC500055AAAAAAA80000000000000000000000F9
+:10AC600055AAAAAAA80000000000000000000000E9
+:10AC700055AAAAAAA80000000000000000000000D9
+:10AC800055AAAAAAA80000000000000000000000C9
+:10AC900055AAAAAAA80000000000000000000000B9
+:10ACA00055AAAAAAA80000000000000000000000A9
+:10ACB00055AAAAAAA8000000000000000000000099
+:10ACC00055AAAAAAA8000000000000000000000089
+:10ACD00055AAAAAAA8000000000000000000000079
+:10ACE00055AAAAAAA8000000000000000000000069
+:10ACF00055AAAAAAA8000000000000000000000059
+:10AD000055AAAAAAA8000000000000000000000048
+:10AD100055AAAAAAA8000000000000000000000038
+:10AD200000AAAAAAAA00000000000000000000007B
+:10AD300055AAAAAAAA000000000000000000000016
+:10AD400055AAAAAAAA000000000000000000000006
+:10AD500055AAAAAAAA0000000000000000000000F6
+:10AD600055AAAAAAAA0000000000000000000000E6
+:10AD700055AAAAAAAA0000000000000000000000D6
+:10AD800055AAAAAAAA0000000000000000000000C6
+:10AD900055AAAAAAAA0000000000000000000000B6
+:10ADA00055AAAAAAAA0000000000000000000000A6
+:10ADB00055AAAAAAAA000000000000000000000096
+:10ADC00055AAAAAAAA000000000000000000000086
+:10ADD00055AAAAAAAA000000000000000000000076
+:10ADE00055AAAAAAAA000000000000000000000066
+:10ADF00055AAAAAAAA000000000000000000000056
+:10AE000055AAAAAAAA000000000000000000000045
+:10AE100055AAAAAAAA000000000000000000000035
+:10AE2000AAAAAAAAAAA800000000000000000055D3
+:10AE300000AAAAAAAAA8000000000000000000556D
+:10AE400000AAAAAAAAA8000000000000000000555D
+:10AE500000AAAAAAAAA8000000000000000000554D
+:10AE600000AAAAAAAAA8000000000000000000553D
+:10AE700000AAAAAAAAA8000000000000000000552D
+:10AE800000AAAAAAAAA8000000000000000000551D
+:10AE900000AAAAAAAAA8000000000000000000550D
+:10AEA00000AAAAAAAAA800000000000000000055FD
+:10AEB00000AAAAAAAAA800000000000000000055ED
+:10AEC00000AAAAAAAAA800000000000000000055DD
+:10AED00000AAAAAAAAA800000000000000000055CD
+:10AEE00000AAAAAAAAA800000000000000000055BD
+:10AEF00000AAAAAAAAA800000000000000000055AD
+:10AF000000AAAAAAAAA8000000000000000000559C
+:10AF100000AAAAAAAAA8000000000000000000558C
+:10AF2000AAAAAAAAAAAA02000000000000000055CE
+:10AF300000AAAAAAAAAA0200000000000000005568
+:10AF400000AAAAAAAAAA0200000000000000005558
+:10AF500000AAAAAAAAAA0200000000000000005548
+:10AF600000AAAAAAAAAA0200000000000000005538
+:10AF700000AAAAAAAAAA0200000000000000005528
+:10AF800000AAAAAAAAAA0200000000000000005518
+:10AF900000AAAAAAAAAA0200000000000000005508
+:10AFA00000AAAAAAAAAA02000000000000000055F8
+:10AFB00000AAAAAAAAAA02000000000000000055E8
+:10AFC00000AAAAAAAAAA02000000000000000055D8
+:10AFD00000AAAAAAAAAA02000000000000000055C8
+:10AFE00000AAAAAAAAAA02000000000000000055B8
+:10AFF00000AAAAAAAAAA02000000000000000055A8
+:10B0000000AAAAAAAAAA0200000000000000005597
+:10B0100000AAAAAAAAAA0200000000000000005587
+:10B0200000AAAAAAAAAAA800000000000000000026
+:10B0300055AAAAAAAAAAA8000000000000000000C1
+:10B0400055AAAAAAAAAAA8000000000000000000B1
+:10B0500055AAAAAAAAAAA8000000000000000000A1
+:10B0600055AAAAAAAAAAA800000000000000000091
+:10B0700055AAAAAAAAAAA800000000000000000081
+:10B0800055AAAAAAAAAAA800000000000000000071
+:10B0900055AAAAAAAAAAA800000000000000000061
+:10B0A00055AAAAAAAAAAA800000000000000000051
+:10B0B00055AAAAAAAAAAA800000000000000000041
+:10B0C00055AAAAAAAAAAA800000000000000000031
+:10B0D00055AAAAAAAAAAA800000000000000000021
+:10B0E00055AAAAAAAAAAA800000000000000000011
+:10B0F00055AAAAAAAAAAA800000000000000000001
+:10B1000055AAAAAAAAAAA8000000000000000000F0
+:10B1100055AAAAAAAAAAA8000000000000000000E0
+:10B1200000AAAAAAAAAAAAA800000000000000007B
+:10B1300055AAAAAAAAAAAAA8000000000000000016
+:10B1400055AAAAAAAAAAAAA8000000000000000006
+:10B1500055AAAAAAAAAAAAA80000000000000000F6
+:10B1600055AAAAAAAAAAAAA80000000000000000E6
+:10B1700055AAAAAAAAAAAAA80000000000000000D6
+:10B1800055AAAAAAAAAAAAA80000000000000000C6
+:10B1900055AAAAAAAAAAAAA80000000000000000B6
+:10B1A00055AAAAAAAAAAAAA80000000000000000A6
+:10B1B00055AAAAAAAAAAAAA8000000000000000096
+:10B1C00055AAAAAAAAAAAAA8000000000000000086
+:10B1D00055AAAAAAAAAAAAA8000000000000000076
+:10B1E00055AAAAAAAAAAAAA8000000000000000066
+:10B1F00055AAAAAAAAAAAAA8000000000000000056
+:10B2000055AAAAAAAAAAAAA8000000000000000045
+:10B2100055AAAAAAAAAAAAA8000000000000000035
+:10B22000AAAAAAAAAAAAAAAAA800000000000055D1
+:10B2300000AAAAAAAAAAAAAAA8000000000000556B
+:10B2400000AAAAAAAAAAAAAAA8000000000000555B
+:10B2500000AAAAAAAAAAAAAAA8000000000000554B
+:10B2600000AAAAAAAAAAAAAAA8000000000000553B
+:10B2700000AAAAAAAAAAAAAAA8000000000000552B
+:10B2800000AAAAAAAAAAAAAAA8000000000000551B
+:10B2900000AAAAAAAAAAAAAAA8000000000000550B
+:10B2A00000AAAAAAAAAAAAAAA800000000000055FB
+:10B2B00000AAAAAAAAAAAAAAA800000000000055EB
+:10B2C00000AAAAAAAAAAAAAAA800000000000055DB
+:10B2D00000AAAAAAAAAAAAAAA800000000000055CB
+:10B2E00000AAAAAAAAAAAAAAA800000000000055BB
+:10B2F00000AAAAAAAAAAAAAAA800000000000055AB
+:10B3000000AAAAAAAAAAAAAAA8000000000000559A
+:10B3100000AAAAAAAAAAAAAAA8000000000000558A
+:10B32000AAAAAAAAAAAAAAAAAA00000000000055CE
+:10B3300000AAAAAAAAAAAAAAAA0000000000005568
+:10B3400000AAAAAAAAAAAAAAAA0000000000005558
+:10B3500000AAAAAAAAAAAAAAAA0000000000005548
+:10B3600000AAAAAAAAAAAAAAAA0000000000005538
+:10B3700000AAAAAAAAAAAAAAAA0000000000005528
+:10B3800000AAAAAAAAAAAAAAAA0000000000005518
+:10B3900000AAAAAAAAAAAAAAAA0000000000005508
+:10B3A00000AAAAAAAAAAAAAAAA00000000000055F8
+:10B3B00000AAAAAAAAAAAAAAAA00000000000055E8
+:10B3C00000AAAAAAAAAAAAAAAA00000000000055D8
+:10B3D00000AAAAAAAAAAAAAAAA00000000000055C8
+:10B3E00000AAAAAAAAAAAAAAAA00000000000055B8
+:10B3F00000AAAAAAAAAAAAAAAA00000000000055A8
+:10B4000000AAAAAAAAAAAAAAAA0000000000005597
+:10B4100000AAAAAAAAAAAAAAAA0000000000005587
+:10B4200055AAAAAAAAAAAAAAAAAA020000000000CB
+:10B4300055AAAAAAAAAAAAAAAAAA000002000000BB
+:10B4400000AAAAAAAAAAAAAAAAAAAA020000005501
+:10B4500000AAAAAAAAAAAAAAAAAAAA2A00000055C9
+:10B4600000AAAAAAAAAAAAAAAAAAAA2A00000055B9
+:10B4700000AAAAAAAAAAAAAAAAAAAA2A00000055A9
+:10B4800000AAAAAAAAAAAAAAAAAAAA2A0000005599
+:10B4900000AAAAAAAAAAAAAAAAAAAA2A0000005589
+:10B4A00000AAAAAAAAAAAAAAAAAAAA2A0000005579
+:10B4B00000AAAAAAAAAAAAAAAAAAAA2A0000005569
+:10B4C00000AAAAAAAAAAAAAAAAAAAA2A0000005559
+:10B4D00000AAAAAAAAAAAAAAAAAAAA2A0000005549
+:10B4E00000AAAAAAAAAAAAAAAAAAAA2A0000005539
+:10B4F00000AAAAAAAAAAAAAAAAAAAA2A0000005529
+:10B5000000AAAAAAAAAAAAAAAAAAAA2A0000005518
+:10B5100000AAAAAAAAAAAAAAAAAAAA2A0000005508
+:10B5200000AAAAAAAAAAAAAAAAAAAA2A00000055F8
+:10B5300000AAAAAAAAAAAAAAAAAAAA2A00000055E8
+:10B5400000AAAAAAAAAAAAAAAAAAAAAA0000005558
+:10B5500055AAAAAAAAAAAAAAAAAAAA2A2A0200009C
+:10B5600055AAAAAAAAAAAAAAAAAAAA2A2A0200008C
+:10B5700055AAAAAAAAAAAAAAAAAAAA2A2A0200007C
+:10B5800055AAAAAAAAAAAAAAAAAAAA2A2A0200006C
+:10B5900055AAAAAAAAAAAAAAAAAAAA2A2A0200005C
+:10B5A00055AAAAAAAAAAAAAAAAAAAA2A2A0200004C
+:10B5B00055AAAAAAAAAAAAAAAAAAAA2A2A0200003C
+:10B5C00055AAAAAAAAAAAAAAAAAAAA2A2A0200002C
+:10B5D00055AAAAAAAAAAAAAAAAAAAA2A2A0200001C
+:10B5E00055AAAAAAAAAAAAAAAAAAAA2A2A0200000C
+:10B5F00055AAAAAAAAAAAAAAAAAAAA2A2A020000FC
+:10B6000055AAAAAAAAAAAAAAAAAAAA2A2A020000EB
+:10B6100055AAAAAAAAAAAAAAAAAAAA2A2A020000DB
+:10B6200055AAAAAAAAAAAAAAAAAAAA2A2A020000CB
+:10B6300055AAAAAAAAAAAAAAAAAAAA2A2A020000BB
+:10B6400055AAAAAAAAAAAAAAAAAAAAAAAA020000AB
+:10B6500055A9A9A9A9A9A9A9A9A9A9A92901010027
+:10B6600055A9A9A9A9A9A9A9A9A9A9A92901010017
+:10B6700055A9A9A9A9A9A9A9A9A9A9A92901010007
+:10B6800055A9A9A9A9A9A9A9A9A9A9A929010100F7
+:10B6900055A9A9A9A9A9A9A9A9A9A9A929010100E7
+:10B6A00055A9A9A9A9A9A9A9A9A9A9A929010100D7
+:10B6B00055A9A9A9A9A9A9A9A9A9A9A929010100C7
+:10B6C00055A9A9A9A9A9A9A9A9A9A9A929010100B7
+:10B6D00055A9A9A9A9A9A9A9A9A9A9A929010100A7
+:10B6E00055A9A9A9A9A9A9A9A9A9A9A92901010097
+:10B6F00055A9A9A9A9A9A9A9A9A9A9A92901010087
+:10B7000055A9A9A9A9A9A9A9A9A9A9A92901010076
+:10B7100055A9A9A9A9A9A9A9A9A9A9A92901010066
+:10B7200055A9A9A9A9A9A9A9A9A9A9A92901010056
+:10B7300055A9A9A9A9A9A9A9A9A9A9A92901010046
+:10B7400055A9A9A9A9A9A9A9A9A9A9A9A9010100B6
+:10B7500000A9A9A9A9A9A9A9A9A9A9A929290155FE
+:10B7600000A9A9A9A9A9A9A9A9A9A9A929290155EE
+:10B7700000A9A9A9A9A9A9A9A9A9A9A929290155DE
+:10B7800000A9A9A9A9A9A9A9A9A9A9A929290155CE
+:10B7900000A9A9A9A9A9A9A9A9A9A9A929290155BE
+:10B7A00000A9A9A9A9A9A9A9A9A9A9A929290155AE
+:10B7B00000A9A9A9A9A9A9A9A9A9A9A9292901559E
+:10B7C00000A9A9A9A9A9A9A9A9A9A9A9292901558E
+:10B7D00000A9A9A9A9A9A9A9A9A9A9A9292901557E
+:10B7E00000A9A9A9A9A9A9A9A9A9A9A9292901556E
+:10B7F00000A9A9A9A9A9A9A9A9A9A9A9292901555E
+:10B8000000A9A9A9A9A9A9A9A9A9A9A9292901554D
+:10B8100000A9A9A9A9A9A9A9A9A9A9A9292901553D
+:10B8200000A9A9A9A9A9A9A9A9A9A9A9292901552D
+:10B8300000A9A9A9A9A9A9A9A9A9A9A9292901551D
+:10B8400000A9A9A9A9A9A9A9A9A9A9A9A9A901550D
+:10B8500000A9A9A9A9A9A9A9A9A9A9A9A92901557D
+:10B8600000A9A9A9A9A9A9A9A9A9A9A9A92901556D
+:10B8700000A9A9A9A9A9A9A9A9A9A9A9A92901555D
+:10B8800000A9A9A9A9A9A9A9A9A9A9A9A92901554D
+:10B8900000A9A9A9A9A9A9A9A9A9A9A9A92901553D
+:10B8A00000A9A9A9A9A9A9A9A9A9A9A9A92901552D
+:10B8B00000A9A9A9A9A9A9A9A9A9A9A9A92901551D
+:10B8C00000A9A9A9A9A9A9A9A9A9A9A9A92901550D
+:10B8D00000A9A9A9A9A9A9A9A9A9A9A9A9290155FD
+:10B8E00000A9A9A9A9A9A9A9A9A9A9A9A9290155ED
+:10B8F00000A9A9A9A9A9A9A9A9A9A9A9A9290155DD
+:10B9000000A9A9A9A9A9A9A9A9A9A9A9A9290155CC
+:10B9100000A9A9A9A9A9A9A9A9A9A9A9A9290155BC
+:10B9200000A9A9A9A9A9A9A9A9A9A9A9A9290155AC
+:10B9300000A9A9A9A9A9A9A9A9A9A9A9A92901559C
+:10B9400000A9A9A9A9A9A9A9A9A9A9A9A9A901550C
+:10B9500055959595959595959595959595951501EB
+:10B9600055959595959595959595959595951501DB
+:10B9700000555555555555555555555555555556CB
+:10B9800000555555555555555555555555555556BB
+:10B990005555555555555555555555555555551696
+:10B9A0005555555555555555555555555555551686
+:10B9B0000055555555555555555555555555556879
+:10B9C0000055555555555555555555555555556869
+:10B9D0005555555555555555555555555555556A02
+:10B9E0005555555555555555555555555555556AF2
+:10B9F0000055555555555555555555555555558021
+:10BA00000055555555555555555555555555558010
+:10BA1000555555555555555555555555555555AA81
+:10BA2000555555555555555555555555555555AA71
+:10BA30000056565656565656565656565656560052
+:10BA40000056565656565656565656565656560042
+:10BA5000555656565656565656565656565656AA33
+:10BA6000555656565656565656565656565656AA23
+:10BA7000005A5A5A5A5A5A5A5A5A5A5A5A5A5A00DA
+:10BA8000005A5A5A5A5A5A5A5A5A5A5A5A5A5A00CA
+:10BA9000555A5A5A5A5A5A5A5A5A5A5A5A5A5AAABB
+:10BAA000555A5A5A5A5A5A5A5A5A5A5A5A5A5AAAAB
+:10BAB000006A6A6A6A6A6A6A6A6A6A6A6A6A6A00BA
+:10BAC000006A6A6A6A6A6A6A6A6A6A6A6A6A6A00AA
+:10BAD000556A6A6A6A6A6A6A6A6A6A6A6A6A6AAA9B
+:10BAE000556A6A6A6A6A6A6A6A6A6A6A6A6A6AAA8B
+:10BAF000006A6A6A6A6A6A6A6A6A6A6A6A6A6A007A
+:10BB0000006A6A6A6A6A6A6A6A6A6A6A6A6A6A0069
+:10BB100055AAAAAAAAAAAAAAAAAAAAAAAAAAAAAADA
+:10BB200055AAAAAAAAAAAAAAAAAAAAAAAAAAAAAACA
+:10BB300000AAAAAAAAAAAAAAAAAAAAAAAAAAAA00B9
+:10BB400000A9A9A9A9A9A9A9A9A9A9A9A9A9A800B8
+:10BB500055A9A9A9A9A9A9A9A9A9A9A9A8A8A8AAAB
+:10BB600055A9A9A9A9A9A9A9A9A9A9A9A8A8A8AA9B
+:10BB700000A9A9A9A9A9A9A9A9A9A8A8A9A8A8008B
+:10BB800000A9A9A9A9A9A9A9A9A9A9A8A8A8A8007B
+:10BB900055A5A5A5A5A5A5A5A5A4A4A4A4A4A0AAAA
+:10BBA00055A5A5A5A5A5A5A5A4A4A4A4A4A4A0AA9B
+:10BBB00000A5A5A5A5A5A5A4A4A4A4A4A4A0A0008F
+:10BBC00000A5A5A5A5A5A4A4A4A4A4A4A4A0A00080
+:10BBD00055A5A5A5A5A5A5A4A4A4A4A4A0A0A0AA74
+:10BBE00055A5A5A5A5A5A5A4A4A4A4A4A0A0A0AA64
+:10BBF00055A5A5A5A5A5A5A4A4A4A4A4A0A0A0AA54
+:10BC000055A5A5A5A5A5A5A4A4A4A4A4A0A0A0AA43
+:10BC100055A5A5A5A5A5A5A4A4A4A4A4A0A0A0AA33
+:10BC200055A5A5A5A5A5A5A4A4A4A4A4A0A0A0AA23
+:10BC300055A5A5A5A5A5A5A4A4A4A4A4A0A0A0AA13
+:10BC400055A5A5A5A5A5A5A4A4A4A4A4A0A0A0AA03
+:10BC500055A5A5A5A5A5A5A4A4A4A4A4A0A0A0AAF3
+:10BC600055A5A5A5A5A5A5A4A4A4A4A4A0A0A0AAE3
+:10BC700055A5A5A5A5A5A5A4A4A4A4A4A0A0A0AAD3
+:10BC800055A5A5A5A5A5A5A4A4A4A4A4A0A0A0AAC3
+:10BC900055A5A5A5A5A5A5A4A4A4A4A4A0A0A0AAB3
+:10BCA00055A5A5A5A5A5A5A4A4A4A4A4A0A0A0AAA3
+:10BCB00055A5A5A5A5A5A5A4A4A4A4A4A0A0A0AA93
+:10BCC00055A5A5A5A5A5A5A4A4A4A4A4A0A0A0A885
+:10BCD00055A5A5A5A5A4A4A4A4A4A4A0A0A0A0AA79
+:10BCE00055A5A5A5A5A4A4A4A4A4A4A0A0A0A0AA69
+:10BCF00055A5A5A5A5A4A4A4A4A4A4A0A0A0A0AA59
+:10BD000055A5A5A5A5A4A4A4A4A4A4A0A0A0A0AA48
+:10BD100055A5A5A5A5A4A4A4A4A4A4A0A0A0A0AA38
+:10BD200055A5A5A5A5A4A4A4A4A4A4A0A0A0A0AA28
+:10BD300055A5A5A5A5A4A4A4A4A4A4A0A0A0A0AA18
+:10BD400055A5A5A5A5A4A4A4A4A4A4A0A0A0A0AA08
+:10BD500055A5A5A5A5A4A4A4A4A4A4A0A0A0A0AAF8
+:10BD600055A5A5A5A5A4A4A4A4A4A4A0A0A0A0AAE8
+:10BD700055A5A5A5A5A4A4A4A4A4A4A0A0A0A0AAD8
+:10BD800055A5A5A5A5A4A4A4A4A4A4A0A0A0A0AAC8
+:10BD900055A5A5A5A5A4A4A4A4A4A4A0A0A0A0AAB8
+:10BDA00055A5A5A5A5A4A4A4A4A4A4A0A0A0A0AAA8
+:10BDB00055A5A5A5A5A4A4A4A4A4A4A0A0A0A0AA98
+:10BDC00055A5A5A5A5A4A4A4A4A4A4A0A0A0A0A88A
+:10BDD00000A5A5A5A5A4A4A4A4A4A0A0A0A0A0007B
+:10BDE00000A5A5A5A4A4A4A4A4A4A0A0A0A0A0006C
+:10BDF000559595959494949494909090909080AA51
+:10BE0000559595959494949494909090909080AA40
+:10BE1000559595959494949494909090909080AA30
+:10BE2000559595959494949494909090909080AA20
+:10BE3000559595959494949494909090909080AA10
+:10BE4000559595959494949494909090909080AA00
+:10BE5000559595959494949494909090909080AAF0
+:10BE6000559595959494949494909090909080AAE0
+:10BE7000559595959494949494909090909080AAD0
+:10BE8000559595959494949494909090909080AAC0
+:10BE9000559595959494949494909090909080AAB0
+:10BEA000559595959494949494909090909080AAA0
+:10BEB000559595959494949494909090909080AA90
+:10BEC000559595959494949494909090909080AA80
+:10BED000559595959494949494909090909080AA70
+:10BEE000559595959494949494909090909080A862
+:10BEF000559595949494949494909090909080AA51
+:10BF0000559595949494949494909090909080AA40
+:10BF1000559595949494949494909090909080AA30
+:10BF2000559595949494949494909090909080AA20
+:10BF3000559595949494949494909090909080AA10
+:10BF4000559595949494949494909090909080AA00
+:10BF5000559595949494949494909090909080AAF0
+:10BF6000559595949494949494909090909080AAE0
+:10BF7000559595949494949494909090909080AAD0
+:10BF8000559595949494949494909090909080AAC0
+:10BF9000559595949494949494909090909080AAB0
+:10BFA000559595949494949494909090909080AAA0
+:10BFB000559595949494949494909090909080AA90
+:10BFC000559595949494949494909090909080AA80
+:10BFD000559595949494949494909090909080AA70
+:10BFE000559595949494949494909090909080A862
+:10BFF0000095959594949494909090909080800062
+:10C000000095959494949490909090909080800056
+:10C01000559594949494909090909090808080AA5C
+:10C02000559594949494909090909090808080AA4C
+:10C03000559594949494909090909090808080AA3C
+:10C04000559594949494909090909090808080AA2C
+:10C05000559594949494909090909090808080AA1C
+:10C06000559594949494909090909090808080AA0C
+:10C07000559594949494909090909090808080AAFC
+:10C08000559594949494909090909090808080AAEC
+:10C09000559594949494909090909090808080AADC
+:10C0A000559594949494909090909090808080AACC
+:10C0B000559594949494909090909090808080AABC
+:10C0C000559594949494909090909090808080AAAC
+:10C0D000559594949494909090909090808080AA9C
+:10C0E000559594949494909090909090808080AA8C
+:10C0F000559594949494909090909090808080AA7C
+:10C10000559594949494909090909090808080A075
+:10C11000559594949494909090909080808080AA6B
+:10C12000559594949494909090909080808080AA5B
+:10C13000559594949494909090909080808080AA4B
+:10C14000559594949494909090909080808080AA3B
+:10C15000559594949494909090909080808080AA2B
+:10C16000559594949494909090909080808080AA1B
+:10C17000559594949494909090909080808080AA0B
+:10C18000559594949494909090909080808080AAFB
+:10C19000559594949494909090909080808080AAEB
+:10C1A000559594949494909090909080808080AADB
+:10C1B000559594949494909090909080808080AACB
+:10C1C000559594949494909090909080808080AABB
+:10C1D000559594949494909090909080808080AAAB
+:10C1E000559594949494909090909080808080AA9B
+:10C1F000559594949494909090909080808080AA8B
+:10C20000559594949494909090909080808080A084
+:10C21000009494949490909090908080808080007E
+:10C22000009494949490909090908080808080006E
+:10C23000549494949090909090808080808080A876
+:10C24000549494949090909090808080808080A866
+:10C25000549494949090909090808080808080A856
+:10C26000549494949090909090808080808080A846
+:10C27000549494949090909090808080808080A836
+:10C28000549494949090909090808080808080A826
+:10C29000549494949090909090808080808080A816
+:10C2A000549494949090909090808080808080A806
+:10C2B000549494949090909090808080808080A8F6
+:10C2C000549494949090909090808080808080A8E6
+:10C2D000549494949090909090808080808080A8D6
+:10C2E000549494949090909090808080808080A8C6
+:10C2F000549494949090909090808080808080A8B6
+:10C30000549494949090909090808080808080A8A5
+:10C31000549494949090909090808080808080A895
+:10C32000549494949090909090808080808080A08D
+:10C33000549494949090909090808080808080A875
+:10C34000549494949090909090808080808080A865
+:10C35000549494949090909090808080808080A855
+:10C36000549494949090909090808080808080A845
+:10C37000549494949090909090808080808080A835
+:10C38000549494949090909090808080808080A825
+:10C39000549494949090909090808080808080A815
+:10C3A000549494949090909090808080808080A805
+:10C3B000549494949090909090808080808080A8F5
+:10C3C000549494949090909090808080808080A8E5
+:10C3D000549494949090909090808080808080A8D5
+:10C3E000549494949090909090808080808080A8C5
+:10C3F000549494949090909090808080808080A8B5
+:10C40000549494949090909090808080808080A8A4
+:10C41000549494949090909090808080808080A894
+:10C42000549494949090909090808080808080A08C
+:10C430000054545450505050404040404040000040
+:10C440000054545450505040404040404040000040
+:10C45000545454505050404040404040400000A888
+:10C46000545454505050404040404040400000A878
+:10C47000545454505050404040404040400000A868
+:10C48000545454505050404040404040400000A858
+:10C49000545454505050404040404040400000A848
+:10C4A000545454505050404040404040400000A838
+:10C4B000545454505050404040404040400000A828
+:10C4C000545454505050404040404040400000A818
+:10C4D000545454505050404040404040400000A808
+:10C4E000545454505050404040404040400000A8F8
+:10C4F000545454505050404040404040400000A8E8
+:10C50000545454505050404040404040400000A8D7
+:10C51000545454505050404040404040400000A8C7
+:10C52000545454505050404040404040400000A8B7
+:10C53000545454505050404040404040400000A8A7
+:10C5400054545450505040404040404040000080BF
+:10C55000545450505050404040404040000000A8CB
+:10C56000545450505050404040404040000000A8BB
+:10C57000545450505050404040404040000000A8AB
+:10C58000545450505050404040404040000000A89B
+:10C59000545450505050404040404040000000A88B
+:10C5A000545450505050404040404040000000A87B
+:10C5B000545450505050404040404040000000A86B
+:10C5C000545450505050404040404040000000A85B
+:10C5D000545450505050404040404040000000A84B
+:10C5E000545450505050404040404040000000A83B
+:10C5F000545450505050404040404040000000A82B
+:10C60000545450505050404040404040000000A81A
+:10C61000545450505050404040404040000000A80A
+:10C62000545450505050404040404040000000A8FA
+:10C63000545450505050404040404040000000A8EA
+:10C640005454505050504040404040400000008002
+:10C65000005050505040404040404000000000001A
+:10C660000C5C5C5C5C4C4C4C4C4C4C0C0C0C0C0C4A
+:10C67000505050504040404040400000000000A05A
+:10C68000505050504040404040400000000000A04A
+:10C69000505050504040404040400000000000A03A
+:10C6A000505050504040404040400000000000A02A
+:10C6B000505050504040404040400000000000A01A
+:10C6C000505050504040404040400000000000A00A
+:10C6D000505050504040404040400000000000A0FA
+:10C6E000505050504040404040400000000000A0EA
+:10C6F000505050504040404040400000000000A0DA
+:10C70000505050504040404040400000000000A0C9
+:10C71000505050504040404040400000000000A0B9
+:10C72000505050504040404040400000000000A0A9
+:10C73000505050504040404040400000000000A099
+:10C74000505050504040404040400000000000A089
+:10C75000505050504040404040400000000000A079
+:10C760005050505040404040404000000000008089
+:10C77000505050504040404040400000000000A059
+:10C78000505050504040404040400000000000A049
+:10C79000505050504040404040400000000000A039
+:10C7A000505050504040404040400000000000A029
+:10C7B000505050504040404040400000000000A019
+:10C7C000505050504040404040400000000000A009
+:10C7D000505050504040404040400000000000A0F9
+:10C7E000505050504040404040400000000000A0E9
+:10C7F000505050504040404040400000000000A0D9
+:10C80000505050504040404040400000000000A0C8
+:10C81000505050504040404040400000000000A0B8
+:10C82000505050504040404040400000000000A0A8
+:10C83000505050504040404040400000000000A098
+:10C84000505050504040404040400000000000A088
+:10C85000505050504040404040400000000000A078
+:10C860005050505040404040404000000000008088
+:10C870000050505040404040404000000000000048
+:10C880000050505040404040404000000000000038
+:10C89000505050404040404040000000000000A088
+:10C8A000505050404040404040000000000000A078
+:10C8B000505050404040404040000000000000A068
+:10C8C000505050404040404040000000000000A058
+:10C8D000505050404040404040000000000000A048
+:10C8E000505050404040404040000000000000A038
+:10C8F000505050404040404040000000000000A028
+:10C90000505050404040404040000000000000A017
+:10C91000505050404040404040000000000000A007
+:10C92000505050404040404040000000000000A0F7
+:10C93000505050404040404040000000000000A0E7
+:10C94000505050404040404040000000000000A0D7
+:10C95000505050404040404040000000000000A0C7
+:10C96000505050404040404040000000000000A0B7
+:10C97000505050404040404040000000000000A0A7
+:10C9800050505040404040404000000000000080B7
+:10C99000505040404040404040000000000000A097
+:10C9A000505040404040404040000000000000A087
+:10C9B000505040404040404040000000000000A077
+:10C9C000505040404040404040000000000000A067
+:10C9D000505040404040404040000000000000A057
+:10C9E000505040404040404040000000000000A047
+:10C9F000505040404040404040000000000000A037
+:10CA0000505040404040404040000000000000A026
+:10CA1000505040404040404040000000000000A016
+:10CA2000505040404040404040000000000000A006
+:10CA3000505040404040404040000000000000A0F6
+:10CA4000505040404040404040000000000000A0E6
+:10CA5000505040404040404040000000000000A0D6
+:10CA6000505040404040404040000000000000A0C6
+:10CA7000505040404040404040000000000000A0B6
+:10CA800050504040404040404000000000000080C6
+:10CA900000404040404040400000000000000000D6
+:10CAA0003070707070707030303030303030303006
+:10CAB0004040404040400000000000000000008076
+:10CAC0004040404040400000000000000000008066
+:10CAD0000040404040000000000000000000000056
+:10CAE0000040404040000000000000000000000046
+:10CAF00040404040000000000000000000000080B6
+:10CB000040404040000000000000000000000080A5
+:10CB10000040404000000000000000000000000055
+:10CB20000040404000000000000000000000000045
+:10CB300040404000000000000000000000000080B5
+:10CB400040400000000000000000000000000080E5
+:10CB500000000000000000000000000000000000D5
+:10CB6000C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C5
+:10CB700000000000000000000000000000000000B5
+:10CB800000000000000000000000000000000000A5
+:10CB90000000000000000000000000000000000095
+:10CBA0000000000000000000000000000000000085
+:10CBB0000000000000000000000000000000000075
+:10CBC0000000000000000000000000000000000065
+:10CBD0000000000000000000000000000000000055
+:10CBE0000000000000000000000000000000000045
+:10CBF0000000000000000000000000000000000035
+:10CC0000005555A9A9A9A9A9A9A9A9A9A9A9A95539
+:10CC1000AA005555555555555555555555555555C4
+:10CC2000AA550055555555555555555555555555B4
+:10CC3000AA555500555555555555555555555555A4
+:10CC4000AA55555500555555555555555555555594
+:10CC5000AA55555555005555555555555555555584
+:10CC6000AA55555555550055555555555555555574
+:10CC7000AA55555555555500555555555555555564
+:10CC8000AA55555555555555005555555555555554
+:10CC9000AA55555555555555550055555555555544
+:10CCA000AA55555555555555555500555555555534
+:10CCB000AA55555555555555555555005555555524
+:10CCC000AA55555555555555555555550055555514
+:10CCD000AA55555555555555555555555500555504
+:10CCE000AA555555555555555555555555550055F4
+:10CCF000AA555A6A6AAAAAAAAAAAAAAAAAAAAA0063
+:10CD0000005555A9A9A9A9A9A9A9A9A9A9A9A95538
+:10CD1000AA005555555555555555555555555555C3
+:10CD2000AA550055555555555555555555555555B3
+:10CD3000AA555500555555555555555555555555A3
+:10CD4000AA55555500555555555555555555555593
+:10CD5000AA55555555005555555555555555555583
+:10CD6000AA55555555550055555555555555555573
+:10CD7000AA55555555555500555555555555555563
+:10CD8000AA55555555555555005555555555555553
+:10CD9000AA55555555555555550055555555555543
+:10CDA000AA55555555555555555500555555555533
+:10CDB000AA55555555555555555555005555555523
+:10CDC000AA55555555555555555555550055555513
+:10CDD000AA55555555555555555555555500555503
+:10CDE000AA555555555555555555555555550055F3
+:10CDF000AA555A5A6A6AAAAAAAAAAAAAAAAAAA00B2
+:10CE000000555555A9A9A9A9A9A9A9A9A9A9A900E0
+:10CE100000005555555555555555555555555500C1
+:10CE200000550055555555555555555555555500B1
+:10CE300000555500555555555555555555555500A1
+:10CE40000055555500555555555555555555550091
+:10CE50000055555555005555555555555555550081
+:10CE60000055555555550055555555555555550071
+:10CE70000055555555555500555555555555550061
+:10CE80000055555555555555005555555555550051
+:10CE90000055555555555555550055555555550041
+:10CEA0000055555555555555555500555555550031
+:10CEB0000055555555555555555555005555550021
+:10CEC0000055555555555555555555550055550011
+:10CED0000055555555555555555555555500550001
+:10CEE00000555555555555555555555555550000F1
+:10CEF0000055565A5A6AAAAAAAAAAAAAAAAAAA006F
+:10CF0000005555556969A9A9A9A9A9A9A9A9A9005F
+:10CF100000005555555555555555555555555500C0
+:10CF200000550055555555555555555555555500B0
+:10CF300000555500555555555555555555555500A0
+:10CF40000055555500555555555555555555550090
+:10CF50000055555555005555555555555555550080
+:10CF60000055555555550055555555555555550070
+:10CF70000055555555555500555555555555550060
+:10CF80000055555555555555005555555555550050
+:10CF90000055555555555555550055555555550040
+:10CFA0000055555555555555555500555555550030
+:10CFB0000055555555555555555555005555550020
+:10CFC0000055555555555555555555550055550010
+:10CFD0000055555555555555555555555500550000
+:10CFE00000555555555555555555555555550000F0
+:10CFF0000055565A5A5AAAAAAAAAAAAAAAAAAA007E
+:10D00000005555555555A9A9A9A9A9A9A9A9A95531
+:10D01000AA005555555555555555555555555555C0
+:10D02000AA550055555555555555555555555555B0
+:10D03000AA555500555555555555555555555555A0
+:10D04000AA55555500555555555555555555555590
+:10D05000AA55555555005555555555555555555580
+:10D06000AA55555555550055555555555555555570
+:10D07000AA55555555555500555555555555555560
+:10D08000AA55555555555555005555555555555550
+:10D09000AA55555555555555550055555555555540
+:10D0A000AA55555555555555555500555555555530
+:10D0B000AA55555555555555555555005555555520
+:10D0C000AA55555555555555555555550055555510
+:10D0D000AA55555555555555555555555500555500
+:10D0E000AA555555555555555555555555550055F0
+:10D0F000AA55555A5A5AAAAAAAAAAAAAAAAAAA00D4
+:10D10000005555555555A9A9A9A9A9A9A9A9A95530
+:10D11000AA005555555555555555555555555555BF
+:10D12000AA550055555555555555555555555555AF
+:10D13000AA5555005555555555555555555555559F
+:10D14000AA5555550055555555555555555555558F
+:10D15000AA5555555500555555555555555555557F
+:10D16000AA5555555555005555555555555555556F
+:10D17000AA5555555555550055555555555555555F
+:10D18000AA5555555555555500555555555555554F
+:10D19000AA5555555555555555005555555555553F
+:10D1A000AA5555555555555555550055555555552F
+:10D1B000AA5555555555555555555500555555551F
+:10D1C000AA5555555555555555555555005555550F
+:10D1D000AA555555555555555555555555005555FF
+:10D1E000AA555555555555555555555555550055EF
+:10D1F000AA55555A5A5AAAAAAAAAAAAAAAAAAA00D3
+:10D2000000555555555595A9A9A9A9A9A9A9AA0097
+:10D2100000005555555555555555555555555600BC
+:10D2200000550055555555555555555555555500AD
+:10D23000005555005555555555555555555555009D
+:10D24000005555550055555555555555555555008D
+:10D25000005555555500555555555555555555007D
+:10D26000005555555555005555555555555555006D
+:10D27000005555555555550055555555555555005D
+:10D28000005555555555555500555555555555004D
+:10D29000005555555555555555005555555555003D
+:10D2A000005555555555555555550055555555002D
+:10D2B000005555555555555555555500555555001D
+:10D2C000005555555555555555555555005555000D
+:10D2D00000555555555555555555555555005500FD
+:10D2E00000555555555555555555555555550000ED
+:10D2F000005555565A5A5AAAAAAAAAAAAAAAAA00D0
+:10D3000000555555555555A9A9A9A9A9A9A9AA00D6
+:10D3100000005555555555555555555555555600BB
+:10D3200000550055555555555555555555555600AB
+:10D33000005555005555555555555555555555009C
+:10D34000005555550055555555555555555555008C
+:10D35000005555555500555555555555555555007C
+:10D36000005555555555005555555555555555006C
+:10D37000005555555555550055555555555555005C
+:10D38000005555555555555500555555555555004C
+:10D39000005555555555555555005555555555003C
+:10D3A000005555555555555555550055555555002C
+:10D3B000005555555555555555555500555555001C
+:10D3C000005555555555555555555555005555000C
+:10D3D00000555555555555555555555555005500FC
+:10D3E00000555555555555555555555555550000EC
+:10D3F000005555565A5A5AAAAAAAAAAAAAAAAA00CF
+:10D4000000555555555555A5A9A9A9A9A9A9AA5584
+:10D41000AA005555555555555555555555555655BB
+:10D42000AA550055555555555555555555555655AB
+:10D43000AA5555005555555555555555555556559B
+:10D44000AA5555550055555555555555555555558C
+:10D45000AA5555555500555555555555555555557C
+:10D46000AA5555555555005555555555555555556C
+:10D47000AA5555555555550055555555555555555C
+:10D48000AA5555555555555500555555555555554C
+:10D49000AA5555555555555555005555555555553C
+:10D4A000AA5555555555555555550055555555552C
+:10D4B000AA5555555555555555555500555555551C
+:10D4C000AA5555555555555555555555005555550C
+:10D4D000AA555555555555555555555555005555FC
+:10D4E000AA555555555555555555555555550055EC
+:10D4F000AA555555565A5A5AAAAAAAAAAAAAAA0079
+:10D500000055555555555595A5A5A5A9A9A9AA559F
+:10D51000AA005555555555555555555555555655BA
+:10D52000AA550055555555555555555555555655AA
+:10D53000AA5555005555555555555555555556559A
+:10D54000AA5555550055555555555555555556558A
+:10D55000AA5555555500555555555555555556557A
+:10D56000AA5555555555005555555555555556556A
+:10D57000AA5555555555550055555555555556555A
+:10D58000AA5555555555555500555555555556554A
+:10D59000AA5555555555555555005555555556553A
+:10D5A000AA5555555555555555550055555556552A
+:10D5B000AA5555555555555555555500555556551A
+:10D5C000AA5555555555555555555555005556550A
+:10D5D000AA555555555555555555555555005555FB
+:10D5E000AA555555555555555555555555550055EB
+:10D5F000AA55555556565A5AAAAAAAAAAAAAAA007C
+:10D600000055555555555555959595A5A9AAAA0066
+:10D6100000005555555555555555555555565600B7
+:10D6200000550055555555555555555555555600A8
+:10D630000055550055555555555555555555560098
+:10D640000055555500555555555555555555560088
+:10D650000055555555005555555555555555560078
+:10D660000055555555550055555555555555560068
+:10D670000055555555555500555555555555560058
+:10D680000055555555555555005555555555560048
+:10D690000055555555555555550055555555560038
+:10D6A0000055555555555555555500555555560028
+:10D6B0000055555555555555555555005555560018
+:10D6C0000055555555555555555555550055560008
+:10D6D00000555555555555555555555555005600F8
+:10D6E00000555555555555555555555555550000E9
+:10D6F0000055555555555A5AAAAAAAAAAAAAAA0027
+:10D70000005555555555555595955596A6A6A600BF
+:10D7100000005555555555555555555656565600B4
+:10D7200000550055555555555555555555565600A6
+:10D730000055550055555555555555555555560097
+:10D740000055555500555555555555555555560087
+:10D750000055555555005555555555555555560077
+:10D760000055555555550055555555555555560067
+:10D770000055555555555500555555555555560057
+:10D780000055555555555555005555555555560047
+:10D790000055555555555555550055555555560037
+:10D7A0000055555555555555555500555555560027
+:10D7B0000055555555555555555555005555560017
+:10D7C0000055555555555555555555550055560007
+:10D7D00000555555555555555555555555005600F7
+:10D7E00000555555555555555555555555550000E8
+:10D7F0000055555555555559AAAAAAAAAAAAAA002C
+:10D80000005555AAAAAAAAAAAAAAAAAAAAAAAA5521
+:10D81000AA005556565656565656565656565655AC
+:10D82000AA550055555555555555555656565655A4
+:10D83000AA55550055555555555555555556565596
+:10D84000AA55555500555555555555555555565587
+:10D85000AA55555555005555555555555555565577
+:10D86000AA55555555550055555555555555565567
+:10D87000AA55555555555500555555555555565557
+:10D88000AA55555555555555005555555555565547
+:10D89000AA55555555555555550055555555565537
+:10D8A000AA55555555555555555500555555565527
+:10D8B000AA55555555555555555555005555565517
+:10D8C000AA55555555555555555555550055565507
+:10D8D000AA555555555555555555555555005655F7
+:10D8E000AA555555555555555555555555550055E8
+:10D8F000AA5555555555555559AAAAAAAAAAAA00D6
+:10D9000000556AAAAAAAAAAAAAAAAAAAAAAAAA550B
+:10D91000AA0056AAAAAAAAAAAAAAAAAAAAAAAA55BA
+:10D92000AA5500AAAAAAAAAAAAAAAAAAAAAAAA55AB
+:10D93000AA555500A9A9A9A9A9A9A9AAAAAAAA55F7
+:10D94000AA5555A900A9A9A9A9A9A9A9A9AAAA55E9
+:10D95000AA5555A9A900A9A9A9A9A9A9A9AAAA55D9
+:10D96000AA5555A9A9A900A9A9A9A9A9A9AAAA55C9
+:10D97000AA5555A9A9A9A900A9A9A9A9A9AAAA55B9
+:10D98000AA5555A9A9A9A9A900A9A9A9A9AAAA55A9
+:10D99000AA5555A9A9A9A9A9A900A9A9A9AAAA5599
+:10D9A000AA5555A9A9A9A9A9A9A900A9A9AAAA5589
+:10D9B000AA55555555555555555555005556565515
+:10D9C000AA55555555555555555555550056565505
+:10D9D000AA555555555555555555555555005655F6
+:10D9E000AA555555555555555555555555550055E7
+:10D9F000AA55555555555555556969AAAAAAAA005B
+:10DA00000055AAAAAAAAAAAAAAAAAAAAAAAAAA001F
+:10DA10000000AAAAAAAAAAAAAAAAAAAAAAAAAA0064
+:10DA2000005500AAAAAAAAAAAAAAAAAAAAAAAA00A9
+:10DA30000055A900AAAAAAAAAAAAAAAAAAAAAA009A
+:10DA40000055A9A900A9A9A9A9A9A9AAAAAAAA0091
+:10DA50000055A9A9A900A9A9A9A9A9AAAAAAAA0081
+:10DA60000055A9A9A9A900A9A9A9A9AAAAAAAA0071
+:10DA70000055A9A9A9A9A900A9A9A9AAAAAAAA0061
+:10DA80000055A9A9A9A9A9A900A9A9AAAAAAAA0051
+:10DA90000055A9A9A9A9A9A9A900A9AAAAAAAA0041
+:10DAA0000055A9A9A9A9A9A9A9A900AAAAAAAA0031
+:10DAB000005555A9A9A9A9A9A9A9A900AAAAAA0076
+:10DAC0000055555555555555555555560056560002
+:10DAD0000055555555555555555555555500AA00A0
+:10DAE00000555555555555555555555555550000E5
+:10DAF000005555555555555555555569AAAAAA006D
+:10DB00000055AAAAAAAAAAAAAAAAAAAAAAAAAA001E
+:10DB10000000AAAAAAAAAAAAAAAAAAAAAAAAAA0063
+:10DB200000A900AAAAAAAAAAAAAAAAAAAAAAAA0054
+:10DB300000A9AA00AAAAAAAAAAAAAAAAAAAAAA0044
+:10DB400000A9A9AA00AAAAAAAAAAAAAAAAAAAA0035
+:10DB500000A9A9AAAA00AAAAAAAAAAAAAAAAAA0025
+:10DB600000A9A9AAAAAA00AAAAAAAAAAAAAAAA0015
+:10DB700000A9A9AAAAAAAA00AAAAAAAAAAAAAA0005
+:10DB800000A9A9AAAAAAAAAA00AAAAAAAAAAAA00F5
+:10DB900000A9A9AAAAAAAAAAAA00AAAAAAAAAA00E5
+:10DBA00000A9A9AAAAAAAAAAAAAA00AAAAAAAA00D5
+:10DBB0000055A9AAAAAAAAAAAAAAAA00AAAAAA0019
+:10DBC000005555A9A9A9A9A9A9A9A9AA00AAAA0065
+:10DBD0000055555555555555555555565600AA009D
+:10DBE00000555555555555555555555555560000E3
+:10DBF000005555555555555555555555A9AA5600D5
+:10DC00000055AAAAAAAAAAAAAAAAAAAAAAAAAA55C8
+:10DC1000AA00AAAAAAAAAAAAAAAAAAAAAAAAAA5563
+:10DC2000AAA900AAAAAAAAAAAAAAAAAAAAAAAA5554
+:10DC3000AAA9AA00AAAAAAAAAAAAAAAAAAAAAA5544
+:10DC4000AAA9AAAA00AAAAAAAAAAAAAAAAAAAA5534
+:10DC5000AAA9AAAAAA00AAAAAAAAAAAAAAAAAA5524
+:10DC6000AAA9AAAAAAAA00AAAAAAAAAAAAAAAA5514
+:10DC7000AAA9AAAAAAAAAA00AAAAAAAAAAAAAA5504
+:10DC8000AAA9AAAAAAAAAAAA00AAAAAAAAAAAA55F4
+:10DC9000AAA9AAAAAAAAAAAAAA00AAAAAAAAAA55E4
+:10DCA000AAA9AAAAAAAAAAAAAAAA00AAAAAAAA55D4
+:10DCB000AAA9AAAAAAAAAAAAAAAAAA00AAAAAA55C4
+:10DCC000AA55A9AAAAAAAAAAAAAAAAAA00AAAA5509
+:10DCD000AA5555AAAAAAAAAAAAAAAAAAAA00AA554D
+:10DCE000AA555555555555555555555656560055E1
+:10DCF000AA55555555555555555555559595560053
+:10DD00000056AAAAAAAAAAAAAAAAAAAAAAAAAA55C6
+:10DD1000AA00AAAAAAAAAAAAAAAAAAAAAAAAAA5562
+:10DD2000AAA900AAAAAAAAAAAAAAAAAAAAAAAA5553
+:10DD3000AAA9AA00AAAAAAAAAAAAAAAAAAAAAA5543
+:10DD4000AAA9AAAA00AAAAAAAAAAAAAAAAAAAA5533
+:10DD5000AAA9AAAAAA00AAAAAAAAAAAAAAAAAA5523
+:10DD6000AAA9AAAAAAAA00AAAAAAAAAAAAAAAA5513
+:10DD7000AAA9AAAAAAAAAA00AAAAAAAAAAAAAA5503
+:10DD8000AAA9AAAAAAAAAAAA00AAAAAAAAAAAA55F3
+:10DD9000AAA9AAAAAAAAAAAAAA00AAAAAAAAAA55E3
+:10DDA000AAA9AAAAAAAAAAAAAAAA00AAAAAAAA55D3
+:10DDB000AAA9AAAAAAAAAAAAAAAAAA00AAAAAA55C3
+:10DDC000AAA9AAAAAAAAAAAAAAAAAAAA00AAAA55B3
+:10DDD000AA55AAAAAAAAAAAAAAAAAAAAAA00AA55F7
+:10DDE000AA5555AAAAAAAAAAAAAAAAAAAAAA00553C
+:10DDF000AA55555555555555555555559595550053
+:10DE000000AAAAAAAAAAAAAAAAAAAAAAAAAAAA00C6
+:10DE10000000AAAAAAAAAAAAAAAAAAAAAAAAAA0060
+:10DE200000AA00AAAAAAAAAAAAAAAAAAAAAAAA0050
+:10DE300000A9AA00AAAAAAAAAAAAAAAAAAAAAA0041
+:10DE400000A9AAAA00AAAAAAAAAAAAAAAAAAAA0031
+:10DE500000A9AAAAAA00AAAAAAAAAAAAAAAAAA0021
+:10DE600000A9AAAAAAAA00AAAAAAAAAAAAAAAA0011
+:10DE700000A9AAAAAAAAAA00AAAAAAAAAAAAAA0001
+:10DE800000A9AAAAAAAAAAAA00AAAAAAAAAAAA00F1
+:10DE900000A9AAAAAAAAAAAAAA00AAAAAAAAAA00E1
+:10DEA00000A9AAAAAAAAAAAAAAAA00AAAAAAAA00D1
+:10DEB00000A9AAAAAAAAAAAAAAAAAA00AAAAAA00C1
+:10DEC00000A9AAAAAAAAAAAAAAAAAAAA00AAAA00B1
+:10DED00000A9AAAAAAAAAAAAAAAAAAAAAA00AA00A1
+:10DEE0000055AAAAAAAAAAAAAAAAAAAAAAAA0000E5
+:10DEF000005555555555555555555555555555007C
+:10DF000000AAAAAAAAAAAAAAAAAAAAAAAAAAAA00C5
+:10DF10000000AAAAAAAAAAAAAAAAAAAAAAAAAA005F
+:10DF200000AA00AAAAAAAAAAAAAAAAAAAAAAAA004F
+:10DF300000AAAA00AAAAAAAAAAAAAAAAAAAAAA003F
+:10DF400000A9AAAA00AAAAAAAAAAAAAAAAAAAA0030
+:10DF500000A9AAAAAA00AAAAAAAAAAAAAAAAAA0020
+:10DF600000A9AAAAAAAA00AAAAAAAAAAAAAAAA0010
+:10DF700000A9AAAAAAAAAA00AAAAAAAAAAAAAA0000
+:10DF800000A9AAAAAAAAAAAA00AAAAAAAAAAAA00F0
+:10DF900000A9AAAAAAAAAAAAAA00AAAAAAAAAA00E0
+:10DFA00000A9AAAAAAAAAAAAAAAA00AAAAAAAA00D0
+:10DFB00000A9AAAAAAAAAAAAAAAAAA00AAAAAA00C0
+:10DFC00000A9AAAAAAAAAAAAAAAAAAAA00AAAA00B0
+:10DFD00000A9AAAAAAAAAAAAAAAAAAAAAA00AA00A0
+:10DFE00000A9AAAAAAAAAAAAAAAAAAAAAAAA000090
+:10DFF000005555555555555555555555555555007B
+:10E0000000AAAAAAAAAAAAAAAAAAAAAAAAAAAA556F
+:10E01000AA00AAAAAAAAAAAAAAAAAAAAAAAAAA555F
+:10E02000AAAA00AAAAAAAAAAAAAAAAAAAAAAAA554F
+:10E03000AAAAAA00AAAAAAAAAAAAAAAAAAAAAA553F
+:10E04000AAAAAAAA00AAAAAAAAAAAAAAAAAAAA552F
+:10E05000AAAAAAAAAA00AAAAAAAAAAAAAAAAAA551F
+:10E06000AAAAAAAAAAAA00AAAAAAAAAAAAAAAA550F
+:10E07000AAAAAAAAAAAAAA00AAAAAAAAAAAAAA55FF
+:10E08000AAAAAAAAAAAAAAAA00AAAAAAAAAAAA55EF
+:10E09000AAAAAAAAAAAAAAAAAA00AAAAAAAAAA55DF
+:10E0A000AAAAAAAAAAAAAAAAAAAA00AAAAAAAA55CF
+:10E0B000AAAAAAAAAAAAAAAAAAAAAA00AAAAAA55BF
+:10E0C000AAA9AAAAAAAAAAAAAAAAAAAA00AAAA55B0
+:10E0D000AAA9AAAAAAAAAAAAAAAAAAAAAA00AA55A0
+:10E0E000AAA9AAAAAAAAAAAAAAAAAAAAAAAA005590
+:10E0F000AA555555555555555555555555555500D0
+:10E1000000AAAAAAAAAAAAAAAAAAAAAAAAAAAA556E
+:10E11000AA00AAAAAAAAAAAAAAAAAAAAAAAAAA555E
+:10E12000AAAA00AAAAAAAAAAAAAAAAAAAAAAAA554E
+:10E13000AAAAAA00AAAAAAAAAAAAAAAAAAAAAA553E
+:10E14000AAAAAAAA00AAAAAAAAAAAAAAAAAAAA552E
+:10E15000AAAAAAAAAA00AAAAAAAAAAAAAAAAAA551E
+:10E16000AAAAAAAAAAAA00AAAAAAAAAAAAAAAA550E
+:10E17000AAAAAAAAAAAAAA00AAAAAAAAAAAAAA55FE
+:10E18000AAAAAAAAAAAAAAAA00AAAAAAAAAAAA55EE
+:10E19000AAAAAAAAAAAAAAAAAA00AAAAAAAAAA55DE
+:10E1A000AAAAAAAAAAAAAAAAAAAA00AAAAAAAA55CE
+:10E1B000AAAAAAAAAAAAAAAAAAAAAA00AAAAAA55BE
+:10E1C000AAAAAAAAAAAAAAAAAAAAAAAA00AAAA55AE
+:10E1D000AAAAAAAAAAAAAAAAAAAAAAAAAA00AA559E
+:10E1E000AAA9AAAAAAAAAAAAAAAAAAAAAAAA00558F
+:10E1F000AA555555555555555555555555555500CF
+:10E2000000AAAAAAAAAAAAAAAAAAAAAAAAAAAA00C2
+:10E210000000AAAAAAAAAAAAAAAAAAAAAAAAAA005C
+:10E2200000AA00AAAAAAAAAAAAAAAAAAAAAAAA004C
+:10E2300000AAAA00AAAAAAAAAAAAAAAAAAAAAA003C
+:10E2400000AAAAAA00AAAAAAAAAAAAAAAAAAAA002C
+:10E2500000AAAAAAAA00AAAAAAAAAAAAAAAAAA001C
+:10E2600000AAAAAAAAAA00AAAAAAAAAAAAAAAA000C
+:10E2700000AAAAAAAAAAAA00AAAAAAAAAAAAAA00FC
+:10E2800000AAAAAAAAAAAAAA00AAAAAAAAAAAA00EC
+:10E2900000AAAAAAAAAAAAAAAA00AAAAAAAAAA00DC
+:10E2A00000AAAAAAAAAAAAAAAAAA00AAAAAAAA00CC
+:10E2B00000AAAAAAAAAAAAAAAAAAAA00AAAAAA00BC
+:10E2C00000AAAAAAAAAAAAAAAAAAAAAA00AAAA00AC
+:10E2D00000AAAAAAAAAAAAAAAAAAAAAAAA00AA009C
+:10E2E00000AAAAAAAAAAAAAAAAAAAAAAAAAA00008C
+:10E2F0000055555555555555555555555555550078
+:10E3000000AAAAAAAAAAAAAAAAAAAAAAAAAAAA00C1
+:10E310000000AAAAAAAAAAAAAAAAAAAAAAAAAA005B
+:10E3200000AA00AAAAAAAAAAAAAAAAAAAAAAAA004B
+:10E3300000AAAA00AAAAAAAAAAAAAAAAAAAAAA003B
+:10E3400000AAAAAA00AAAAAAAAAAAAAAAAAAAA002B
+:10E3500000AAAAAAAA00AAAAAAAAAAAAAAAAAA001B
+:10E3600000AAAAAAAAAA00AAAAAAAAAAAAAAAA000B
+:10E3700000AAAAAAAAAAAA00AAAAAAAAAAAAAA00FB
+:10E3800000AAAAAAAAAAAAAA00AAAAAAAAAAAA00EB
+:10E3900000AAAAAAAAAAAAAAAA00AAAAAAAAAA00DB
+:10E3A00000AAAAAAAAAAAAAAAAAA00AAAAAAAA00CB
+:10E3B00000AAAAAAAAAAAAAAAAAAAA00AAAAAA00BB
+:10E3C00000AAAAAAAAAAAAAAAAAAAAAA00AAAA00AB
+:10E3D00000AAAAAAAAAAAAAAAAAAAAAAAA00AA009B
+:10E3E00000AAAAAAAAAAAAAAAAAAAAAAAAAA00008B
+:10E3F0000055555555555555555555555555550077
+:10E4000000AA00000000000000000000000000550D
+:10E41000AA000000000000000000000000000055FD
+:10E42000AAAA000000000000000000000000005543
+:10E43000AAAA000000000000000000000000005533
+:10E44000AAAA000000000000000000000000005523
+:10E45000AAAA000000000000000000000000005513
+:10E46000AAAA000000000000000000000000005503
+:10E47000AAAA0000000000000000000000000055F3
+:10E48000AAAA0000000000000000000000000055E3
+:10E49000AAAA0000000000000000000000000055D3
+:10E4A000AAAA0000000000000000000000000055C3
+:10E4B000AAAA0000000000000000000000000055B3
+:10E4C000AAAA0000000000000000000000000055A3
+:10E4D000AAAA000000000000000000000000005593
+:10E4E000AAAA000000000000000000000000005583
+:10E4F000AAAA0000000000000000000000000000C8
+:10E5000000AAA80000000000000000000000005564
+:10E51000AA00A80000000000000000000000005554
+:10E52000AAAA000000000000000000000000005542
+:10E53000AAAAA8000000000000000000000000558A
+:10E54000AAAAA8000000000000000000000000557A
+:10E55000AAAAA8000000000000000000000000556A
+:10E56000AAAAA8000000000000000000000000555A
+:10E57000AAAAA8000000000000000000000000554A
+:10E58000AAAAA8000000000000000000000000553A
+:10E59000AAAAA8000000000000000000000000552A
+:10E5A000AAAAA8000000000000000000000000551A
+:10E5B000AAAAA8000000000000000000000000550A
+:10E5C000AAAAA800000000000000000000000055FA
+:10E5D000AAAAA800000000000000000000000055EA
+:10E5E000AAAAA800000000000000000000000055DA
+:10E5F000AAAAA8000000000000000000000000001F
+:10E6000000AAAAA80000000000000000000000000E
+:10E610005500AAA800000000000000000000000053
+:10E6200055AA00A800000000000000000000000043
+:10E6300055AAAA0000000000000000000000000031
+:10E6400055AAAAA800000000000000000000000079
+:10E6500055AAAAA800000000000000000000000069
+:10E6600055AAAAA800000000000000000000000059
+:10E6700055AAAAA800000000000000000000000049
+:10E6800055AAAAA800000000000000000000000039
+:10E6900055AAAAA800000000000000000000000029
+:10E6A00055AAAAA800000000000000000000000019
+:10E6B00055AAAAA800000000000000000000000009
+:10E6C00055AAAAA8000000000000000000000000F9
+:10E6D00055AAAAA8000000000000000000000000E9
+:10E6E00055AAAAA8000000000000000000000000D9
+:10E6F00055AAAAA8000000000000000000000000C9
+:10E7000000AAAAAA0000000000000000000000000B
+:10E710005500AAAA00000000000000000000000050
+:10E7200055AA00AA00000000000000000000000040
+:10E7300055AAAA0000000000000000000000000030
+:10E7400055AAAAAA00000000000000000000000076
+:10E7500055AAAAAA00000000000000000000000066
+:10E7600055AAAAAA00000000000000000000000056
+:10E7700055AAAAAA00000000000000000000000046
+:10E7800055AAAAAA00000000000000000000000036
+:10E7900055AAAAAA00000000000000000000000026
+:10E7A00055AAAAAA00000000000000000000000016
+:10E7B00055AAAAAA00000000000000000000000006
+:10E7C00055AAAAAA000000000000000000000000F6
+:10E7D00055AAAAAA000000000000000000000000E6
+:10E7E00055AAAAAA000000000000000000000000D6
+:10E7F00055AAAAAA000000000000000000000000C6
+:10E8000000AAAAA8000000000000000000000055B7
+:10E810000000AAA800000000000000000000005551
+:10E8200000AA00A800000000000000000000005541
+:10E8300000AAAA000000000000000000000000552F
+:10E8400000AAAAA800000000000000000000005577
+:10E8500000AAAAA800000000000000000000005567
+:10E8600000AAAAA800000000000000000000005557
+:10E8700000AAAAA800000000000000000000005547
+:10E8800000AAAAA800000000000000000000005537
+:10E8900000AAAAA800000000000000000000005527
+:10E8A00000AAAAA800000000000000000000005517
+:10E8B00000AAAAA800000000000000000000005507
+:10E8C00000AAAAA8000000000000000000000055F7
+:10E8D00000AAAAA8000000000000000000000055E7
+:10E8E00000AAAAA8000000000000000000000055D7
+:10E8F00000AAAAA80000000000000000000000001C
+:10E9000000AAAAAA000000000000000000000055B4
+:10E910000000AAAA0000000000000000000000554E
+:10E9200000AA00AA0000000000000000000000553E
+:10E9300000AAAA000000000000000000000000552E
+:10E9400000AAAAAA00000000000000000000005574
+:10E9500000AAAAAA00000000000000000000005564
+:10E9600000AAAAAA00000000000000000000005554
+:10E9700000AAAAAA00000000000000000000005544
+:10E9800000AAAAAA00000000000000000000005534
+:10E9900000AAAAAA00000000000000000000005524
+:10E9A00000AAAAAA00000000000000000000005514
+:10E9B00000AAAAAA00000000000000000000005504
+:10E9C00000AAAAAA000000000000000000000055F4
+:10E9D00000AAAAAA000000000000000000000055E4
+:10E9E00000AAAAAA000000000000000000000055D4
+:10E9F00000AAAAAA00000000000000000000000019
+:10EA000000AAAAAAA8000000000000000000000060
+:10EA10005500AAAAA80000000000000000000000A5
+:10EA200055AA00AAA8000000000000000000000095
+:10EA300055AAAA00A8000000000000000000000085
+:10EA400055AAAAAA00000000000000000000000073
+:10EA500055AAAAAAA80000000000000000000000BB
+:10EA600055AAAAAAA80000000000000000000000AB
+:10EA700055AAAAAAA800000000000000000000009B
+:10EA800055AAAAAAA800000000000000000000008B
+:10EA900055AAAAAAA800000000000000000000007B
+:10EAA00055AAAAAAA800000000000000000000006B
+:10EAB00055AAAAAAA800000000000000000000005B
+:10EAC00055AAAAAAA800000000000000000000004B
+:10EAD00055AAAAAAA800000000000000000000003B
+:10EAE00055AAAAAAA800000000000000000000002B
+:10EAF00055AAAAAAA800000000000000000000001B
+:10EB000000AAAAAAAA00000000000000000000005D
+:10EB10005500AAAAAA0000000000000000000000A2
+:10EB200055AA00AAAA000000000000000000000092
+:10EB300055AAAA00AA000000000000000000000082
+:10EB400055AAAAAA00000000000000000000000072
+:10EB500055AAAAAAAA0000000000000000000000B8
+:10EB600055AAAAAAAA0000000000000000000000A8
+:10EB700055AAAAAAAA000000000000000000000098
+:10EB800055AAAAAAAA000000000000000000000088
+:10EB900055AAAAAAAA000000000000000000000078
+:10EBA00055AAAAAAAA000000000000000000000068
+:10EBB00055AAAAAAAA000000000000000000000058
+:10EBC00055AAAAAAAA000000000000000000000048
+:10EBD00055AAAAAAAA000000000000000000000038
+:10EBE00055AAAAAAAA000000000000000000000028
+:10EBF00055AAAAAAAA000000000000000000000018
+:10EC000000AAAAAAAAA8000000000000000000555F
+:10EC10000000AAAAAAA800000000000000000055F9
+:10EC200000AA00AAAAA800000000000000000055E9
+:10EC300000AAAA00AAA800000000000000000055D9
+:10EC400000AAAAAA00A800000000000000000055C9
+:10EC500000AAAAAAAA0000000000000000000055B7
+:10EC600000AAAAAAAAA800000000000000000055FF
+:10EC700000AAAAAAAAA800000000000000000055EF
+:10EC800000AAAAAAAAA800000000000000000055DF
+:10EC900000AAAAAAAAA800000000000000000055CF
+:10ECA00000AAAAAAAAA800000000000000000055BF
+:10ECB00000AAAAAAAAA800000000000000000055AF
+:10ECC00000AAAAAAAAA8000000000000000000559F
+:10ECD00000AAAAAAAAA8000000000000000000558F
+:10ECE00000AAAAAAAAA8000000000000000000557F
+:10ECF00000AAAAAAAAA800000000000000000000C4
+:10ED000000AAAAAAAAAA020000000000000000555A
+:10ED10000000AAAAAAAA02000000000000000055F4
+:10ED200000AA00AAAAAA02000000000000000055E4
+:10ED300000AAAA00AAAA02000000000000000055D4
+:10ED400000AAAAAA00AA02000000000000000055C4
+:10ED500000AAAAAAAA0002000000000000000055B4
+:10ED600000AAAAAAAAAA00000000000000000055FC
+:10ED700000AAAAAAAAAA02000000000000000055EA
+:10ED800000AAAAAAAAAA02000000000000000055DA
+:10ED900000AAAAAAAAAA02000000000000000055CA
+:10EDA00000AAAAAAAAAA02000000000000000055BA
+:10EDB00000AAAAAAAAAA02000000000000000055AA
+:10EDC00000AAAAAAAAAA020000000000000000559A
+:10EDD00000AAAAAAAAAA020000000000000000558A
+:10EDE00000AAAAAAAAAA020000000000000000557A
+:10EDF00000AAAAAAAAAA02000000000000000000BF
+:10EE000000AAAAAAAAAAA800000000000000000008
+:10EE10005500AAAAAAAAA80000000000000000004D
+:10EE200055AA00AAAAAAA80000000000000000003D
+:10EE300055AAAA00AAAAA80000000000000000002D
+:10EE400055AAAAAA00AAA80000000000000000001D
+:10EE500055AAAAAAAA00A80000000000000000000D
+:10EE600055AAAAAAAAAA00000000000000000000FB
+:10EE700055AAAAAAAAAAA800000000000000000043
+:10EE800055AAAAAAAAAAA800000000000000000033
+:10EE900055AAAAAAAAAAA800000000000000000023
+:10EEA00055AAAAAAAAAAA800000000000000000013
+:10EEB00055AAAAAAAAAAA800000000000000000003
+:10EEC00055AAAAAAAAAAA8000000000000000000F3
+:10EED00055AAAAAAAAAAA8000000000000000000E3
+:10EEE00055AAAAAAAAAAA8000000000000000000D3
+:10EEF00055AAAAAAAAAAA8000000000000000000C3
+:10EF000000AAAAAAAAAAAAA800000000000000005D
+:10EF10005500AAAAAAAAAAA80000000000000000A2
+:10EF200055AA00AAAAAAAAA8000000000000000092
+:10EF300055AAAA00AAAAAAA8000000000000000082
+:10EF400055AAAAAA00AAAAA8000000000000000072
+:10EF500055AAAAAAAA00AAA8000000000000000062
+:10EF600055AAAAAAAAAA00A8000000000000000052
+:10EF700055AAAAAAAAAAAA00000000000000000040
+:10EF800055AAAAAAAAAAAAA8000000000000000088
+:10EF900055AAAAAAAAAAAAA8000000000000000078
+:10EFA00055AAAAAAAAAAAAA8000000000000000068
+:10EFB00055AAAAAAAAAAAAA8000000000000000058
+:10EFC00055AAAAAAAAAAAAA8000000000000000048
+:10EFD00055AAAAAAAAAAAAA8000000000000000038
+:10EFE00055AAAAAAAAAAAAA8000000000000000028
+:10EFF00055AAAAAAAAAAAAA8000000000000000018
+:10F0000000AAAAAAAAAAAAAAA8000000000000555D
+:10F010000000AAAAAAAAAAAAA800000000000055F7
+:10F0200000AA00AAAAAAAAAAA800000000000055E7
+:10F0300000AAAA00AAAAAAAAA800000000000055D7
+:10F0400000AAAAAA00AAAAAAA800000000000055C7
+:10F0500000AAAAAAAA00AAAAA800000000000055B7
+:10F0600000AAAAAAAAAA00AAA800000000000055A7
+:10F0700000AAAAAAAAAAAA00A80000000000005597
+:10F0800000AAAAAAAAAAAAAA000000000000005585
+:10F0900000AAAAAAAAAAAAAAA800000000000055CD
+:10F0A00000AAAAAAAAAAAAAAA800000000000055BD
+:10F0B00000AAAAAAAAAAAAAAA800000000000055AD
+:10F0C00000AAAAAAAAAAAAAAA8000000000000559D
+:10F0D00000AAAAAAAAAAAAAAA8000000000000558D
+:10F0E00000AAAAAAAAAAAAAAA8000000000000557D
+:10F0F00000AAAAAAAAAAAAAAA800000000000000C2
+:10F1000000AAAAAAAAAAAAAAAA000000000000555A
+:10F110000000AAAAAAAAAAAAAA00000000000055F4
+:10F1200000AA00AAAAAAAAAAAA00000000000055E4
+:10F1300000AAAA00AAAAAAAAAA00000000000055D4
+:10F1400000AAAAAA00AAAAAAAA00000000000055C4
+:10F1500000AAAAAAAA00AAAAAA00000000000055B4
+:10F1600000AAAAAAAAAA00AAAA00000000000055A4
+:10F1700000AAAAAAAAAAAA00AA0000000000005594
+:10F1800000AAAAAAAAAAAAAA000000000000005584
+:10F1900000AAAAAAAAAAAAAAAA00000000000055CA
+:10F1A00000AAAAAAAAAAAAAAAA00000000000055BA
+:10F1B00000AAAAAAAAAAAAAAAA00000000000055AA
+:10F1C00000AAAAAAAAAAAAAAAA000000000000559A
+:10F1D00000AAAAAAAAAAAAAAAA000000000000558A
+:10F1E00000AAAAAAAAAAAAAAAA000000000000557A
+:10F1F00000AAAAAAAAAAAAAAAA00000000000000BF
+:10F2000000AAAAAAAAAAAAAAAAAA02000000000002
+:10F210005500AAAAAAAAAAAAAAAA02000000000047
+:10F2200055AA00AAAAAAAAAAAAAA02000000000037
+:10F2300055AAAA00AAAAAAAAAAAA02000000000027
+:10F2400055AAAAAA00AAAAAAAAAA02000000000017
+:10F2500055AAAAAAAA00AAAAAAAA02000000000007
+:10F2600055AAAAAAAAAA00AAAAAA020000000000F7
+:10F2700055AAAAAAAAAAAA00AAAA020000000000E7
+:10F2800055AAAAAAAAAAAAAA00AA020000000000D7
+:10F2900055AAAAAAAAAAAAAAAA00020000000000C7
+:10F2A00055AAAAAAAAAAAAAAAAAA0000000000000F
+:10F2B00055AAAAAAAAAAAAAAAAAA020000000000FD
+:10F2C00055AAAAAAAAAAAAAAAAAA020000000000ED
+:10F2D00055AAAAAAAAAAAAAAAAAA020000000000DD
+:10F2E00055AAAAAAAAAAAAAAAAAA020000000000CD
+:10F2F00055AAAAAAAAAAAAAAAAAA020000000000BD
+:10F3000000AAAAAAAAAAAAAAAAAA00000200000001
+:10F310005500AAAAAAAAAAAAAAAA00000200000046
+:10F3200055AA00AAAAAAAAAAAAAA00000200000036
+:10F3300055AAAA00AAAAAAAAAAAA00000200000026
+:10F3400055AAAAAA00AAAAAAAAAA00000200000016
+:10F3500055AAAAAAAA00AAAAAAAA00000200000006
+:10F3600055AAAAAAAAAA00AAAAAA000002000000F6
+:10F3700055AAAAAAAAAAAA00AAAA000002000000E6
+:10F3800055AAAAAAAAAAAAAA00AA000002000000D6
+:10F3900055AAAAAAAAAAAAAAAA00000002000000C6
+:10F3A00055AAAAAAAAAAAAAAAAAA0000020000000C
+:10F3B00055AAAAAAAAAAAAAAAAAA000002000000FC
+:10F3C00055AAAAAAAAAAAAAAAAAA000000000000EE
+:10F3D00055AAAAAAAAAAAAAAAAAA000002000000DC
+:10F3E00055AAAAAAAAAAAAAAAAAA000002000000CC
+:10F3F00055AAAAAAAAAAAAAAAAAA000002000000BC
+:10F4000000AAAAAAAAAAAAAAAAAAAA020000005501
+:10F410000000AAAAAAAAAAAAAAAAAA02000000559B
+:10F4200000AA00AAAAAAAAAAAAAAAA02000000558B
+:10F4300000AAAA00AAAAAAAAAAAAAA02000000557B
+:10F4400000AAAAAA00AAAAAAAAAAAA02000000556B
+:10F4500000AAAAAAAA00AAAAAAAAAA02000000555B
+:10F4600000AAAAAAAAAA00AAAAAAAA02000000554B
+:10F4700000AAAAAAAAAAAA00AAAAAA02000000553B
+:10F4800000AAAAAAAAAAAAAA00AAAA02000000552B
+:10F4900000AAAAAAAAAAAAAAAA00AA02000000551B
+:10F4A00000AAAAAAAAAAAAAAAAAA0002000000550B
+:10F4B00000AAAAAAAAAAAAAAAAAAAA000000005553
+:10F4C00000AAAAAAAAAAAAAAAAAAAA020000005541
+:10F4D00000AAAAAAAAAAAAAAAAAAAA020000005531
+:10F4E00000AAAAAAAAAAAAAAAAAAAA020000005521
+:10F4F00000AAAAAAAAAAAAAAAAAAAA020000000066
+:10F5000000AAAAAAAAAAAAAAAAAAAA2A00000055D8
+:10F510000000AAAAAAAAAAAAAAAAAA2A0000005572
+:10F5200000AA00AAAAAAAAAAAAAAAA2A0000005562
+:10F5300000AAAA00AAAAAAAAAAAAAA2A0000005552
+:10F5400000AAAAAA00AAAAAAAAAAAA2A0000005542
+:10F5500000AAAAAAAA00AAAAAAAAAA2A0000005532
+:10F5600000AAAAAAAAAA00AAAAAAAA2A0000005522
+:10F5700000AAAAAAAAAAAA00AAAAAA2A0000005512
+:10F5800000AAAAAAAAAAAAAA00AAAA2A0000005502
+:10F5900000AAAAAAAAAAAAAAAA00AA2A00000055F2
+:10F5A00000AAAAAAAAAAAAAAAAAA002A00000055E2
+:10F5B00000AAAAAAAAAAAAAAAAAAAA000000005552
+:10F5C00000AAAAAAAAAAAAAAAAAAAA2A0000005518
+:10F5D00000AAAAAAAAAAAAAAAAAAAA2A0000005508
+:10F5E00000AAAAAAAAAAAAAAAAAAAA2A00000055F8
+:10F5F00000AAAAAAAAAAAAAAAAAAAAAA00000000BD
+:10F6000000AAAAAAAAAAAAAAAAAAAA2A2A02000000
+:10F610005500AAAAAAAAAAAAAAAAAA2A2A02000045
+:10F6200055AA00AAAAAAAAAAAAAAAA2A2A02000035
+:10F6300055AAAA00AAAAAAAAAAAAAA2A2A02000025
+:10F6400055AAAAAA00AAAAAAAAAAAA2A2A02000015
+:10F6500055AAAAAAAA00AAAAAAAAAA2A2A02000005
+:10F6600055AAAAAAAAAA00AAAAAAAA2A2A020000F5
+:10F6700055AAAAAAAAAAAA00AAAAAA2A2A020000E5
+:10F6800055AAAAAAAAAAAAAA00AAAA2A2A020000D5
+:10F6900055AAAAAAAAAAAAAAAA00AA2A2A020000C5
+:10F6A00055AAAAAAAAAAAAAAAAAA002A2A020000B5
+:10F6B00055AAAAAAAAAAAAAAAAAAAA002A02000025
+:10F6C00055AAAAAAAAAAAAAAAAAAAA2A0002000015
+:10F6D00055AAAAAAAAAAAAAAAAAAAA2A2A000000DD
+:10F6E00055AAAAAAAAAAAAAAAAAAAA2A2A020000CB
+:10F6F00055AAAAAAAAAAAAAAAAAAAAAAAA020000BB
+:10F7000000A9A9A9A9A9A9A9A9A9A9A9290101008B
+:10F710005500A9A9A9A9A9A9A9A9A9A929010100CF
+:10F7200055A900A9A9A9A9A9A9A9A9A929010100BF
+:10F7300055A9A900A9A9A9A9A9A9A9A929010100AF
+:10F7400055A9A9A900A9A9A9A9A9A9A9290101009F
+:10F7500055A9A9A9A900A9A9A9A9A9A9290101008F
+:10F7600055A9A9A9A9A900A9A9A9A9A9290101007F
+:10F7700055A9A9A9A9A9A900A9A9A9A9290101006F
+:10F7800055A9A9A9A9A9A9A900A9A9A9290101005F
+:10F7900055A9A9A9A9A9A9A9A900A9A9290101004F
+:10F7A00055A9A9A9A9A9A9A9A9A900A9290101003F
+:10F7B00055A9A9A9A9A9A9A9A9A9A900290101002F
+:10F7C00055A9A9A9A9A9A9A9A9A9A9A9000101009F
+:10F7D00055A9A9A9A9A9A9A9A9A9A9A92900010067
+:10F7E00055A9A9A9A9A9A9A9A9A9A9A92901000057
+:10F7F00055A9A9A9A9A9A9A9A9A9A9A9A9010100C6
+:10F8000000A9A9A9A9A9A9A9A9A9A9A9292901550D
+:10F810000000A9A9A9A9A9A9A9A9A9A929290155A6
+:10F8200000A900A9A9A9A9A9A9A9A9A92929015596
+:10F8300000A9A900A9A9A9A9A9A9A9A92929015586
+:10F8400000A9A9A900A9A9A9A9A9A9A92929015576
+:10F8500000A9A9A9A900A9A9A9A9A9A92929015566
+:10F8600000A9A9A9A9A900A9A9A9A9A92929015556
+:10F8700000A9A9A9A9A9A900A9A9A9A92929015546
+:10F8800000A9A9A9A9A9A9A900A9A9A92929015536
+:10F8900000A9A9A9A9A9A9A9A900A9A92929015526
+:10F8A00000A9A9A9A9A9A9A9A9A900A92929015516
+:10F8B00000A9A9A9A9A9A9A9A9A9A9002929015506
+:10F8C00000A9A9A9A9A9A9A9A9A9A9A90029015576
+:10F8D00000A9A9A9A9A9A9A9A9A9A9A92900015566
+:10F8E00000A9A9A9A9A9A9A9A9A9A9A9292900552E
+:10F8F00000A9A9A9A9A9A9A9A9A9A9A9A9A9010072
+:10F9000000A9A9A9A9A9A9A9A9A9A9A9A92901558C
+:10F910000000A9A9A9A9A9A9A9A9A9A9A929015525
+:10F9200000A900A9A9A9A9A9A9A9A9A9A929015515
+:10F9300000A9A900A9A9A9A9A9A9A9A9A929015505
+:10F9400000A9A9A900A9A9A9A9A9A9A9A9290155F5
+:10F9500000A9A9A9A900A9A9A9A9A9A9A9290155E5
+:10F9600000A9A9A9A9A900A9A9A9A9A9A9290155D5
+:10F9700000A9A9A9A9A9A900A9A9A9A9A9290155C5
+:10F9800000A9A9A9A9A9A9A900A9A9A9A9290155B5
+:10F9900000A9A9A9A9A9A9A9A900A9A9A9290155A5
+:10F9A00000A9A9A9A9A9A9A9A9A900A9A929015595
+:10F9B00000A9A9A9A9A9A9A9A9A9A900A929015585
+:10F9C00000A9A9A9A9A9A9A9A9A9A9A90029015575
+:10F9D00000A9A9A9A9A9A9A9A9A9A9A9A9000155E5
+:10F9E00000A9A9A9A9A9A9A9A9A9A9A9A9290055AD
+:10F9F00000A9A9A9A9A9A9A9A9A9A9A9A9A9010071
+:10FA0000009595959595959595959595959515014F
+:10FA1000550095959595959595959595959515017F
+:10FA2000559500959595959595959595959515016F
+:10FA3000559595009595959595959595959515015F
+:10FA4000559595950095959595959595959515014F
+:10FA5000559595959500959595959595959515013F
+:10FA6000559595959595009595959595959515012F
+:10FA7000559595959595950095959595959515011F
+:10FA8000559595959595959500959595959515010F
+:10FA900055959595959595959500959595951501FF
+:10FAA00055959595959595959595009595951501EF
+:10FAB00055959595959595959595950095951501DF
+:10FAC00055959595959595959595959500951501CF
+:10FAD00055959595959595959595959595001501BF
+:10FAE000559595959595959595959595959500012F
+:10FAF000559595959595959595959595959515000B
+:10FB0000009595959595959595959595959515014E
+:10FB1000550095959595959595959595959515017E
+:10FB2000559500959595959595959595959515016E
+:10FB3000559595009595959595959595959515015E
+:10FB4000559595950095959595959595959515014E
+:10FB5000559595959500959595959595959515013E
+:10FB6000559595959595009595959595959515012E
+:10FB7000559595959595950095959595959515011E
+:10FB8000559595959595959500959595959515010E
+:10FB900055959595959595959500959595951501FE
+:10FBA00055959595959595959595009595951501EE
+:10FBB00055959595959595959595950095951501DE
+:10FBC00055959595959595959595959500951501CE
+:10FBD00055959595959595959595959595001501BE
+:10FBE000559595959595959595959595959500012E
+:10FBF000559595959595959595959595959515000A
+:10FC000000555555555555555555555555555556F8
+:10FC1000000055555555555555555555555555563D
+:10FC2000005500555555555555555555555555562D
+:10FC3000005555005555555555555555555555561D
+:10FC4000005555550055555555555555555555560D
+:10FC500000555555550055555555555555555556FD
+:10FC600000555555555500555555555555555556ED
+:10FC700000555555555555005555555555555556DD
+:10FC800000555555555555550055555555555556CD
+:10FC900000555555555555555500555555555556BD
+:10FCA00000555555555555555555005555555556AD
+:10FCB000005555555555555555555500555555569D
+:10FCC000005555555555555555555555005555568D
+:10FCD000005555555555555555555555550055567D
+:10FCE000005555555555555555555555555500566D
+:10FCF000005555555555555555555555555555005E
+:10FD000000555555555555555555555555555556F7
+:10FD1000000055555555555555555555555555563C
+:10FD2000005500555555555555555555555555562C
+:10FD3000005555005555555555555555555555561C
+:10FD4000005555550055555555555555555555560C
+:10FD500000555555550055555555555555555556FC
+:10FD600000555555555500555555555555555556EC
+:10FD700000555555555555005555555555555556DC
+:10FD800000555555555555550055555555555556CC
+:10FD900000555555555555555500555555555556BC
+:10FDA00000555555555555555555005555555556AC
+:10FDB000005555555555555555555500555555569C
+:10FDC000005555555555555555555555005555568C
+:10FDD000005555555555555555555555550055567C
+:10FDE000005555555555555555555555555500566C
+:10FDF000005555555555555555555555555555005D
+:10FE00000055555555555555555555555555551636
+:10FE10005500555555555555555555555555551626
+:10FE20005555005555555555555555555555551616
+:10FE30005555550055555555555555555555551606
+:10FE400055555555005555555555555555555516F6
+:10FE500055555555550055555555555555555516E6
+:10FE600055555555555500555555555555555516D6
+:10FE700055555555555555005555555555555516C6
+:10FE800055555555555555550055555555555516B6
+:10FE900055555555555555555500555555555516A6
+:10FEA0005555555555555555555500555555551696
+:10FEB0005555555555555555555555005555551686
+:10FEC0005555555555555555555555550055551676
+:10FED0005555555555555555555555555500551666
+:10FEE0005555555555555555555555555555001656
+:10FEF0005555555555555555555555555555550007
+:10FF00000055555555555555555555555555551635
+:10FF10005500555555555555555555555555551625
+:10FF20005555005555555555555555555555551615
+:10FF30005555550055555555555555555555551605
+:10FF400055555555005555555555555555555516F5
+:10FF500055555555550055555555555555555516E5
+:10FF600055555555555500555555555555555516D5
+:10FF700055555555555555005555555555555516C5
+:10FF800055555555555555550055555555555516B5
+:10FF900055555555555555555500555555555516A5
+:10FFA0005555555555555555555500555555551695
+:10FFB0005555555555555555555555005555551685
+:10FFC0005555555555555555555555550055551675
+:10FFD0005555555555555555555555555500551665
+:10FFE0005555555555555555555555555555001655
+:10FFF0005555555555555555555555555555550006
+:020000040009F1
+:1000000000555555555555555555555555555568E2
+:100010000000555555555555555555555555556827
+:100020000055005555555555555555555555556817
+:100030000055550055555555555555555555556807
+:1000400000555555005555555555555555555568F7
+:1000500000555555550055555555555555555568E7
+:1000600000555555555500555555555555555568D7
+:1000700000555555555555005555555555555568C7
+:1000800000555555555555550055555555555568B7
+:1000900000555555555555555500555555555568A7
+:1000A0000055555555555555555500555555556897
+:1000B0000055555555555555555555005555556887
+:1000C0000055555555555555555555550055556877
+:1000D0000055555555555555555555555500556867
+:1000E0000055555555555555555555555555006857
+:1000F000005555555555555555555555555555005A
+:1001000000555555555555555555555555555568E1
+:100110000000555555555555555555555555556826
+:100120000055005555555555555555555555556816
+:100130000055550055555555555555555555556806
+:1001400000555555005555555555555555555568F6
+:1001500000555555550055555555555555555568E6
+:1001600000555555555500555555555555555568D6
+:1001700000555555555555005555555555555568C6
+:1001800000555555555555550055555555555568B6
+:1001900000555555555555555500555555555568A6
+:1001A0000055555555555555555500555555556896
+:1001B0000055555555555555555555005555556886
+:1001C0000055555555555555555555550055556876
+:1001D0000055555555555555555555555500556866
+:1001E0000055555555555555555555555555006856
+:1001F0000055555555555555555555555555550059
+:100200000055555555555555555555555555556ADE
+:100210005500555555555555555555555555556ACE
+:100220005555005555555555555555555555556ABE
+:100230005555550055555555555555555555556AAE
+:100240005555555500555555555555555555556A9E
+:100250005555555555005555555555555555556A8E
+:100260005555555555550055555555555555556A7E
+:100270005555555555555500555555555555556A6E
+:100280005555555555555555005555555555556A5E
+:100290005555555555555555550055555555556A4E
+:1002A0005555555555555555555500555555556A3E
+:1002B0005555555555555555555555005555556A2E
+:1002C0005555555555555555555555550055556A1E
+:1002D0005555555555555555555555555500556A0E
+:1002E0005555555555555555555555555555006AFE
+:1002F0005555555555555555555555555555550003
+:100300000055555555555555555555555555556ADD
+:100310005500555555555555555555555555556ACD
+:100320005555005555555555555555555555556ABD
+:100330005555550055555555555555555555556AAD
+:100340005555555500555555555555555555556A9D
+:100350005555555555005555555555555555556A8D
+:100360005555555555550055555555555555556A7D
+:100370005555555555555500555555555555556A6D
+:100380005555555555555555005555555555556A5D
+:100390005555555555555555550055555555556A4D
+:1003A0005555555555555555555500555555556A3D
+:1003B0005555555555555555555555005555556A2D
+:1003C0005555555555555555555555550055556A1D
+:1003D0005555555555555555555555555500556A0D
+:1003E0005555555555555555555555555555006AFD
+:1003F0005555555555555555555555555555550002
+:1004000000555555555555555555555555555580C6
+:10041000000055555555555555555555555555800B
+:1004200000550055555555555555555555555580FB
+:1004300000555500555555555555555555555580EB
+:1004400000555555005555555555555555555580DB
+:1004500000555555550055555555555555555580CB
+:1004600000555555555500555555555555555580BB
+:1004700000555555555555005555555555555580AB
+:10048000005555555555555500555555555555809B
+:10049000005555555555555555005555555555808B
+:1004A000005555555555555555550055555555807B
+:1004B000005555555555555555555500555555806B
+:1004C000005555555555555555555555005555805B
+:1004D000005555555555555555555555550055804B
+:1004E000005555555555555555555555555500803B
+:1004F0000055555555555555555555555555550056
+:1005000000555555555555555555555555555580C5
+:10051000000055555555555555555555555555800A
+:1005200000550055555555555555555555555580FA
+:1005300000555500555555555555555555555580EA
+:1005400000555555005555555555555555555580DA
+:1005500000555555550055555555555555555580CA
+:1005600000555555555500555555555555555580BA
+:1005700000555555555555005555555555555580AA
+:10058000005555555555555500555555555555809A
+:10059000005555555555555555005555555555808A
+:1005A000005555555555555555550055555555807A
+:1005B000005555555555555555555500555555806A
+:1005C000005555555555555555555555005555805A
+:1005D000005555555555555555555555550055804A
+:1005E000005555555555555555555555555500803A
+:1005F0000055555555555555555555555555550055
+:10060000005555555555555555555555555555AA9A
+:10061000550055555555555555555555555555AA8A
+:10062000555500555555555555555555555555AA7A
+:10063000555555005555555555555555555555AA6A
+:10064000555555550055555555555555555555AA5A
+:10065000555555555500555555555555555555AA4A
+:10066000555555555555005555555555555555AA3A
+:10067000555555555555550055555555555555AA2A
+:10068000555555555555555500555555555555AA1A
+:10069000555555555555555555005555555555AA0A
+:1006A000555555555555555555550055555555AAFA
+:1006B000555555555555555555555500555555AAEA
+:1006C000555555555555555555555555005555AADA
+:1006D000555555555555555555555555550055AACA
+:1006E000555555555555555555555555555500AABA
+:1006F00055555555555555555555555555555500FF
+:10070000005555555555555555555555555555AA99
+:10071000550055555555555555555555555555AA89
+:10072000555500555555555555555555555555AA79
+:10073000555555005555555555555555555555AA69
+:10074000555555550055555555555555555555AA59
+:10075000555555555500555555555555555555AA49
+:10076000555555555555005555555555555555AA39
+:10077000555555555555550055555555555555AA29
+:10078000555555555555555500555555555555AA19
+:10079000555555555555555555005555555555AA09
+:1007A000555555555555555555550055555555AAF9
+:1007B000555555555555555555555500555555AAE9
+:1007C000555555555555555555555555005555AAD9
+:1007D000555555555555555555555555550055AAC9
+:1007E000555555555555555555555555555500AAB9
+:1007F00055555555555555555555555555555500FE
+:100800000056565656565656565656565656560034
+:10081000000056565656565656565656565656007A
+:10082000005600565656565656565656565656006A
+:10083000005656005656565656565656565656005A
+:10084000005656560056565656565656565656004A
+:10085000005656565600565656565656565656003A
+:10086000005656565656005656565656565656002A
+:10087000005656565656560056565656565656001A
+:10088000005656565656565600565656565656000A
+:1008900000565656565656565600565656565600FA
+:1008A00000565656565656565656005656565600EA
+:1008B00000565656565656565656560056565600DA
+:1008C00000565656565656565656565600565600CA
+:1008D00000565656565656565656565656005600BA
+:1008E00000565656565656565656565656560000AA
+:1008F0000056565656565656565656565656560044
+:100900000056565656565656565656565656560033
+:100910000000565656565656565656565656560079
+:100920000056005656565656565656565656560069
+:100930000056560056565656565656565656560059
+:100940000056565600565656565656565656560049
+:100950000056565656005656565656565656560039
+:100960000056565656560056565656565656560029
+:100970000056565656565600565656565656560019
+:100980000056565656565656005656565656560009
+:1009900000565656565656565600565656565600F9
+:1009A00000565656565656565656005656565600E9
+:1009B00000565656565656565656560056565600D9
+:1009C00000565656565656565656565600565600C9
+:1009D00000565656565656565656565656005600B9
+:1009E00000565656565656565656565656560000A9
+:1009F0000056565656565656565656565656560043
+:100A0000005656565656565656565656565656AA88
+:100A1000550056565656565656565656565656AA79
+:100A2000555600565656565656565656565656AA69
+:100A3000555656005656565656565656565656AA59
+:100A4000555656560056565656565656565656AA49
+:100A5000555656565600565656565656565656AA39
+:100A6000555656565656005656565656565656AA29
+:100A7000555656565656560056565656565656AA19
+:100A8000555656565656565600565656565656AA09
+:100A9000555656565656565656005656565656AAF9
+:100AA000555656565656565656560056565656AAE9
+:100AB000555656565656565656565600565656AAD9
+:100AC000555656565656565656565656005656AAC9
+:100AD000555656565656565656565656560056AAB9
+:100AE000555656565656565656565656565600AAA9
+:100AF00055565656565656565656565656565600ED
+:100B0000005656565656565656565656565656AA87
+:100B1000550056565656565656565656565656AA78
+:100B2000555600565656565656565656565656AA68
+:100B3000555656005656565656565656565656AA58
+:100B4000555656560056565656565656565656AA48
+:100B5000555656565600565656565656565656AA38
+:100B6000555656565656005656565656565656AA28
+:100B7000555656565656560056565656565656AA18
+:100B8000555656565656565600565656565656AA08
+:100B9000555656565656565656005656565656AAF8
+:100BA000555656565656565656560056565656AAE8
+:100BB000555656565656565656565600565656AAD8
+:100BC000555656565656565656565656005656AAC8
+:100BD000555656565656565656565656560056AAB8
+:100BE000555656565656565656565656565600AAA8
+:100BF00055565656565656565656565656565600EC
+:100C0000005A5A5A5A5A5A5A5A5A5A5A5A5A5A00F8
+:100C100000005A5A5A5A5A5A5A5A5A5A5A5A5A0042
+:100C2000005A005A5A5A5A5A5A5A5A5A5A5A5A0032
+:100C3000005A5A005A5A5A5A5A5A5A5A5A5A5A0022
+:100C4000005A5A5A005A5A5A5A5A5A5A5A5A5A0012
+:100C5000005A5A5A5A005A5A5A5A5A5A5A5A5A0002
+:100C6000005A5A5A5A5A005A5A5A5A5A5A5A5A00F2
+:100C7000005A5A5A5A5A5A005A5A5A5A5A5A5A00E2
+:100C8000005A5A5A5A5A5A5A005A5A5A5A5A5A00D2
+:100C9000005A5A5A5A5A5A5A5A005A5A5A5A5A00C2
+:100CA000005A5A5A5A5A5A5A5A5A005A5A5A5A00B2
+:100CB000005A5A5A5A5A5A5A5A5A5A005A5A5A00A2
+:100CC000005A5A5A5A5A5A5A5A5A5A5A005A5A0092
+:100CD000005A5A5A5A5A5A5A5A5A5A5A5A005A0082
+:100CE000005A5A5A5A5A5A5A5A5A5A5A5A5A000072
+:100CF000005A5A5A5A5A5A5A5A5A5A5A5A5A5A0008
+:100D0000005A5A5A5A5A5A5A5A5A5A5A5A5A5A00F7
+:100D100000005A5A5A5A5A5A5A5A5A5A5A5A5A0041
+:100D2000005A005A5A5A5A5A5A5A5A5A5A5A5A0031
+:100D3000005A5A005A5A5A5A5A5A5A5A5A5A5A0021
+:100D4000005A5A5A005A5A5A5A5A5A5A5A5A5A0011
+:100D5000005A5A5A5A005A5A5A5A5A5A5A5A5A0001
+:100D6000005A5A5A5A5A005A5A5A5A5A5A5A5A00F1
+:100D7000005A5A5A5A5A5A005A5A5A5A5A5A5A00E1
+:100D8000005A5A5A5A5A5A5A005A5A5A5A5A5A00D1
+:100D9000005A5A5A5A5A5A5A5A005A5A5A5A5A00C1
+:100DA000005A5A5A5A5A5A5A5A5A005A5A5A5A00B1
+:100DB000005A5A5A5A5A5A5A5A5A5A005A5A5A00A1
+:100DC000005A5A5A5A5A5A5A5A5A5A5A005A5A0091
+:100DD000005A5A5A5A5A5A5A5A5A5A5A5A005A0081
+:100DE000005A5A5A5A5A5A5A5A5A5A5A5A5A000071
+:100DF000005A5A5A5A5A5A5A5A5A5A5A5A5A5A0007
+:100E0000005A5A5A5A5A5A5A5A5A5A5A5A5A5AAA4C
+:100E100055005A5A5A5A5A5A5A5A5A5A5A5A5AAA41
+:100E2000555A005A5A5A5A5A5A5A5A5A5A5A5AAA31
+:100E3000555A5A005A5A5A5A5A5A5A5A5A5A5AAA21
+:100E4000555A5A5A005A5A5A5A5A5A5A5A5A5AAA11
+:100E5000555A5A5A5A005A5A5A5A5A5A5A5A5AAA01
+:100E6000555A5A5A5A5A005A5A5A5A5A5A5A5AAAF1
+:100E7000555A5A5A5A5A5A005A5A5A5A5A5A5AAAE1
+:100E8000555A5A5A5A5A5A5A005A5A5A5A5A5AAAD1
+:100E9000555A5A5A5A5A5A5A5A005A5A5A5A5AAAC1
+:100EA000555A5A5A5A5A5A5A5A5A005A5A5A5AAAB1
+:100EB000555A5A5A5A5A5A5A5A5A5A005A5A5AAAA1
+:100EC000555A5A5A5A5A5A5A5A5A5A5A005A5AAA91
+:100ED000555A5A5A5A5A5A5A5A5A5A5A5A005AAA81
+:100EE000555A5A5A5A5A5A5A5A5A5A5A5A5A00AA71
+:100EF000555A5A5A5A5A5A5A5A5A5A5A5A5A5A00B1
+:100F0000005A5A5A5A5A5A5A5A5A5A5A5A5A5AAA4B
+:100F100055005A5A5A5A5A5A5A5A5A5A5A5A5AAA40
+:100F2000555A005A5A5A5A5A5A5A5A5A5A5A5AAA30
+:100F3000555A5A005A5A5A5A5A5A5A5A5A5A5AAA20
+:100F4000555A5A5A005A5A5A5A5A5A5A5A5A5AAA10
+:100F5000555A5A5A5A005A5A5A5A5A5A5A5A5AAA00
+:100F6000555A5A5A5A5A005A5A5A5A5A5A5A5AAAF0
+:100F7000555A5A5A5A5A5A005A5A5A5A5A5A5AAAE0
+:100F8000555A5A5A5A5A5A5A005A5A5A5A5A5AAAD0
+:100F9000555A5A5A5A5A5A5A5A005A5A5A5A5AAAC0
+:100FA000555A5A5A5A5A5A5A5A5A005A5A5A5AAAB0
+:100FB000555A5A5A5A5A5A5A5A5A5A005A5A5AAAA0
+:100FC000555A5A5A5A5A5A5A5A5A5A5A005A5AAA90
+:100FD000555A5A5A5A5A5A5A5A5A5A5A5A005AAA80
+:100FE000555A5A5A5A5A5A5A5A5A5A5A5A5A00AA70
+:100FF000555A5A5A5A5A5A5A5A5A5A5A5A5A5A00B0
+:10100000006A6A6A6A6A6A6A6A6A6A6A6A6A6A0014
+:1010100000006A6A6A6A6A6A6A6A6A6A6A6A6A006E
+:10102000006A006A6A6A6A6A6A6A6A6A6A6A6A005E
+:10103000006A6A006A6A6A6A6A6A6A6A6A6A6A004E
+:10104000006A6A6A006A6A6A6A6A6A6A6A6A6A003E
+:10105000006A6A6A6A006A6A6A6A6A6A6A6A6A002E
+:10106000006A6A6A6A6A006A6A6A6A6A6A6A6A001E
+:10107000006A6A6A6A6A6A006A6A6A6A6A6A6A000E
+:10108000006A6A6A6A6A6A6A006A6A6A6A6A6A00FE
+:10109000006A6A6A6A6A6A6A6A006A6A6A6A6A00EE
+:1010A000006A6A6A6A6A6A6A6A6A006A6A6A6A00DE
+:1010B000006A6A6A6A6A6A6A6A6A6A006A6A6A00CE
+:1010C000006A6A6A6A6A6A6A6A6A6A6A006A6A00BE
+:1010D000006A6A6A6A6A6A6A6A6A6A6A6A006A00AE
+:1010E000006A6A6A6A6A6A6A6A6A6A6A6A6A00009E
+:1010F000006A6A6A6A6A6A6A6A6A6A6A6A6A6A0024
+:10110000006A6A6A6A6A6A6A6A6A6A6A6A6A6A0013
+:1011100000006A6A6A6A6A6A6A6A6A6A6A6A6A006D
+:10112000006A006A6A6A6A6A6A6A6A6A6A6A6A005D
+:10113000006A6A006A6A6A6A6A6A6A6A6A6A6A004D
+:10114000006A6A6A006A6A6A6A6A6A6A6A6A6A003D
+:10115000006A6A6A6A006A6A6A6A6A6A6A6A6A002D
+:10116000006A6A6A6A6A006A6A6A6A6A6A6A6A001D
+:10117000006A6A6A6A6A6A006A6A6A6A6A6A6A000D
+:10118000006A6A6A6A6A6A6A006A6A6A6A6A6A00FD
+:10119000006A6A6A6A6A6A6A6A006A6A6A6A6A00ED
+:1011A000006A6A6A6A6A6A6A6A6A006A6A6A6A00DD
+:1011B000006A6A6A6A6A6A6A6A6A6A006A6A6A00CD
+:1011C000006A6A6A6A6A6A6A6A6A6A6A006A6A00BD
+:1011D000006A6A6A6A6A6A6A6A6A6A6A6A006A00AD
+:1011E000006A6A6A6A6A6A6A6A6A6A6A6A6A00009D
+:1011F000006A6A6A6A6A6A6A6A6A6A6A6A6A6A0023
+:10120000006A6A6A6A6A6A6A6A6A6A6A6A6A6AAA68
+:1012100055006A6A6A6A6A6A6A6A6A6A6A6A6AAA6D
+:10122000556A006A6A6A6A6A6A6A6A6A6A6A6AAA5D
+:10123000556A6A006A6A6A6A6A6A6A6A6A6A6AAA4D
+:10124000556A6A6A006A6A6A6A6A6A6A6A6A6AAA3D
+:10125000556A6A6A6A006A6A6A6A6A6A6A6A6AAA2D
+:10126000556A6A6A6A6A006A6A6A6A6A6A6A6AAA1D
+:10127000556A6A6A6A6A6A006A6A6A6A6A6A6AAA0D
+:10128000556A6A6A6A6A6A6A006A6A6A6A6A6AAAFD
+:10129000556A6A6A6A6A6A6A6A006A6A6A6A6AAAED
+:1012A000556A6A6A6A6A6A6A6A6A006A6A6A6AAADD
+:1012B000556A6A6A6A6A6A6A6A6A6A006A6A6AAACD
+:1012C000556A6A6A6A6A6A6A6A6A6A6A006A6AAABD
+:1012D000556A6A6A6A6A6A6A6A6A6A6A6A006AAAAD
+:1012E000556A6A6A6A6A6A6A6A6A6A6A6A6A00AA9D
+:1012F000556A6A6A6A6A6A6A6A6A6A6A6A6A6A00CD
+:10130000006A6A6A6A6A6A6A6A6A6A6A6A6A6AAA67
+:1013100055006A6A6A6A6A6A6A6A6A6A6A6A6AAA6C
+:10132000556A006A6A6A6A6A6A6A6A6A6A6A6AAA5C
+:10133000556A6A006A6A6A6A6A6A6A6A6A6A6AAA4C
+:10134000556A6A6A006A6A6A6A6A6A6A6A6A6AAA3C
+:10135000556A6A6A6A006A6A6A6A6A6A6A6A6AAA2C
+:10136000556A6A6A6A6A006A6A6A6A6A6A6A6AAA1C
+:10137000556A6A6A6A6A6A006A6A6A6A6A6A6AAA0C
+:10138000556A6A6A6A6A6A6A006A6A6A6A6A6AAAFC
+:10139000556A6A6A6A6A6A6A6A006A6A6A6A6AAAEC
+:1013A000556A6A6A6A6A6A6A6A6A006A6A6A6AAADC
+:1013B000556A6A6A6A6A6A6A6A6A6A006A6A6AAACC
+:1013C000556A6A6A6A6A6A6A6A6A6A6A006A6AAABC
+:1013D000556A6A6A6A6A6A6A6A6A6A6A6A006AAAAC
+:1013E000556A6A6A6A6A6A6A6A6A6A6A6A6A00AA9C
+:1013F000556A6A6A6A6A6A6A6A6A6A6A6A6A6A00CC
+:10140000006A6A6A6A6A6A6A6A6A6A6A6A6A6A0010
+:1014100000006A6A6A6A6A6A6A6A6A6A6A6A6A006A
+:10142000006A006A6A6A6A6A6A6A6A6A6A6A6A005A
+:10143000006A6A006A6A6A6A6A6A6A6A6A6A6A004A
+:10144000006A6A6A006A6A6A6A6A6A6A6A6A6A003A
+:10145000006A6A6A6A006A6A6A6A6A6A6A6A6A002A
+:10146000006A6A6A6A6A006A6A6A6A6A6A6A6A001A
+:10147000006A6A6A6A6A6A006A6A6A6A6A6A6A000A
+:10148000006A6A6A6A6A6A6A006A6A6A6A6A6A00FA
+:10149000006A6A6A6A6A6A6A6A006A6A6A6A6A00EA
+:1014A000006A6A6A6A6A6A6A6A6A006A6A6A6A00DA
+:1014B000006A6A6A6A6A6A6A6A6A6A006A6A6A00CA
+:1014C000006A6A6A6A6A6A6A6A6A6A6A006A6A00BA
+:1014D000006A6A6A6A6A6A6A6A6A6A6A6A006A00AA
+:1014E000006A6A6A6A6A6A6A6A6A6A6A6A6A00009A
+:1014F000006A6A6A6A6A6A6A6A6A6A6A6A6A6A0020
+:10150000006A6A6A6A6A6A6A6A6A6A6A6A6A6A000F
+:1015100000006A6A6A6A6A6A6A6A6A6A6A6A6A0069
+:10152000006A006A6A6A6A6A6A6A6A6A6A6A6A0059
+:10153000006A6A006A6A6A6A6A6A6A6A6A6A6A0049
+:10154000006A6A6A006A6A6A6A6A6A6A6A6A6A0039
+:10155000006A6A6A6A006A6A6A6A6A6A6A6A6A0029
+:10156000006A6A6A6A6A006A6A6A6A6A6A6A6A0019
+:10157000006A6A6A6A6A6A006A6A6A6A6A6A6A0009
+:10158000006A6A6A6A6A6A6A006A6A6A6A6A6A00F9
+:10159000006A6A6A6A6A6A6A6A006A6A6A6A6A00E9
+:1015A000006A6A6A6A6A6A6A6A6A006A6A6A6A00D9
+:1015B000006A6A6A6A6A6A6A6A6A6A006A6A6A00C9
+:1015C000006A6A6A6A6A6A6A6A6A6A6A006A6A00B9
+:1015D000006A6A6A6A6A6A6A6A6A6A6A6A006A00A9
+:1015E000006A6A6A6A6A6A6A6A6A6A6A6A6A000099
+:1015F000006A6A6A6A6A6A6A6A6A6A6A6A6A6A001F
+:1016000000AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAE4
+:101610005500AAAAAAAAAAAAAAAAAAAAAAAAAAAA29
+:1016200055AA00AAAAAAAAAAAAAAAAAAAAAAAAAA19
+:1016300055AAAA00AAAAAAAAAAAAAAAAAAAAAAAA09
+:1016400055AAAAAA00AAAAAAAAAAAAAAAAAAAAAAF9
+:1016500055AAAAAAAA00AAAAAAAAAAAAAAAAAAAAE9
+:1016600055AAAAAAAAAA00AAAAAAAAAAAAAAAAAAD9
+:1016700055AAAAAAAAAAAA00AAAAAAAAAAAAAAAAC9
+:1016800055AAAAAAAAAAAAAA00AAAAAAAAAAAAAAB9
+:1016900055AAAAAAAAAAAAAAAA00AAAAAAAAAAAAA9
+:1016A00055AAAAAAAAAAAAAAAAAA00AAAAAAAAAA99
+:1016B00055AAAAAAAAAAAAAAAAAAAA00AAAAAAAA89
+:1016C00055AAAAAAAAAAAAAAAAAAAAAA00AAAAAA79
+:1016D00055AAAAAAAAAAAAAAAAAAAAAAAA00AAAA69
+:1016E00055AAAAAAAAAAAAAAAAAAAAAAAAAA00AA59
+:1016F00055AAAAAAAAAAAAAAAAAAAAAAAAAAAA0049
+:1017000000AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAE3
+:101710005500AAAAAAAAAAAAAAAAAAAAAAAAAAAA28
+:1017200055AA00AAAAAAAAAAAAAAAAAAAAAAAAAA18
+:1017300055AAAA00AAAAAAAAAAAAAAAAAAAAAAAA08
+:1017400055AAAAAA00AAAAAAAAAAAAAAAAAAAAAAF8
+:1017500055AAAAAAAA00AAAAAAAAAAAAAAAAAAAAE8
+:1017600055AAAAAAAAAA00AAAAAAAAAAAAAAAAAAD8
+:1017700055AAAAAAAAAAAA00AAAAAAAAAAAAAAAAC8
+:1017800055AAAAAAAAAAAAAA00AAAAAAAAAAAAAAB8
+:1017900055AAAAAAAAAAAAAAAA00AAAAAAAAAAAAA8
+:1017A00055AAAAAAAAAAAAAAAAAA00AAAAAAAAAA98
+:1017B00055AAAAAAAAAAAAAAAAAAAA00AAAAAAAA88
+:1017C00055AAAAAAAAAAAAAAAAAAAAAA00AAAAAA78
+:1017D00055AAAAAAAAAAAAAAAAAAAAAAAA00AAAA68
+:1017E00055AAAAAAAAAAAAAAAAAAAAAAAAAA00AA58
+:1017F00055AAAAAAAAAAAAAAAAAAAAAAAAAAAA0048
+:1018000000AAAAAAAAAAAAAAAAAAAAAAAAAAAA008C
+:101810000000AAAAAAAAAAAAAAAAAAAAAAAAAA0026
+:1018200000AA00AAAAAAAAAAAAAAAAAAAAAAAA0016
+:1018300000AAAA00AAAAAAAAAAAAAAAAAAAAAA0006
+:1018400000AAAAAA00AAAAAAAAAAAAAAAAAAAA00F6
+:1018500000AAAAAAAA00AAAAAAAAAAAAAAAAAA00E6
+:1018600000AAAAAAAAAA00AAAAAAAAAAAAAAAA00D6
+:1018700000AAAAAAAAAAAA00AAAAAAAAAAAAAA00C6
+:1018800000AAAAAAAAAAAAAA00AAAAAAAAAAAA00B6
+:1018900000AAAAAAAAAAAAAAAA00AAAAAAAAAA00A6
+:1018A00000AAAAAAAAAAAAAAAAAA00AAAAAAAA0096
+:1018B00000AAAAAAAAAAAAAAAAAAAA00AAAAAA0086
+:1018C00000AAAAAAAAAAAAAAAAAAAAAA00AAAA0076
+:1018D00000AAAAAAAAAAAAAAAAAAAAAAAA00AA0066
+:1018E00000AAAAAAAAAAAAAAAAAAAAAAAAAA000056
+:1018F00000AAAAAAAAAAAAAAAAAAAAAAAAAAAA009C
+:1019000000A9A9A9A9A9A9A9A9A9A9A9A9A9A8009A
+:101910000000A9A9A9A9A9A9A9A9A9A9A9A9A80033
+:1019200000A900A9A9A9A9A9A9A9A9A9A9A9A80023
+:1019300000A9A900A9A9A9A9A9A9A9A9A9A9A80013
+:1019400000A9A9A900A9A9A9A9A9A9A9A9A9A80003
+:1019500000A9A9A9A900A9A9A9A9A9A9A9A9A800F3
+:1019600000A9A9A9A9A900A9A9A9A9A9A9A9A800E3
+:1019700000A9A9A9A9A9A900A9A9A9A9A9A9A800D3
+:1019800000A9A9A9A9A9A9A900A9A9A9A9A9A800C3
+:1019900000A9A9A9A9A9A9A9A900A9A9A9A9A800B3
+:1019A00000A9A9A9A9A9A9A9A9A900A9A9A9A800A3
+:1019B00000A9A9A9A9A9A9A9A9A9A900A9A9A80093
+:1019C00000A9A9A9A9A9A9A9A9A9A9A900A9A80083
+:1019D00000A9A9A9A9A9A9A9A9A9A9A9A900A80073
+:1019E00000A9A9A9A9A9A9A9A9A9A9A9A9A9000062
+:1019F00000A9A9A9A9A9A9A9A9A9A9A9A9A9A800AA
+:101A000000A9A9A9A9A9A9A9A9A9A9A9A8A8A8AAF1
+:101A10005500A9A9A9A9A9A9A9A9A9A9A8A8A8AA35
+:101A200055A900A9A9A9A9A9A9A9A9A9A8A8A8AA25
+:101A300055A9A900A9A9A9A9A9A9A9A9A8A8A8AA15
+:101A400055A9A9A900A9A9A9A9A9A9A9A8A8A8AA05
+:101A500055A9A9A9A900A9A9A9A9A9A9A8A8A8AAF5
+:101A600055A9A9A9A9A900A9A9A9A9A9A8A8A8AAE5
+:101A700055A9A9A9A9A9A900A9A9A9A9A8A8A8AAD5
+:101A800055A9A9A9A9A9A9A900A9A9A9A8A8A8AAC5
+:101A900055A9A9A9A9A9A9A9A900A9A9A8A8A8AAB5
+:101AA00055A9A9A9A9A9A9A9A9A900A9A8A8A8AAA5
+:101AB00055A9A9A9A9A9A9A9A9A9A900A8A8A8AA95
+:101AC00055A9A9A9A9A9A9A9A9A9A9A900A8A8AA84
+:101AD00055A9A9A9A9A9A9A9A9A9A9A9A800A8AA74
+:101AE00055A9A9A9A9A9A9A9A9A9A9A9A8A800AA64
+:101AF00055A9A9A9A9A9A9A9A9A9A9A9A8A8A80056
+:101B000000A9A9A9A9A9A9A9A9A9A9A9A8A8A8AAF0
+:101B10005500A9A9A9A9A9A9A9A9A9A9A8A8A8AA34
+:101B200055A900A9A9A9A9A9A9A9A9A9A8A8A8AA24
+:101B300055A9A900A9A9A9A9A9A9A9A9A8A8A8AA14
+:101B400055A9A9A900A9A9A9A9A9A9A9A8A8A8AA04
+:101B500055A9A9A9A900A9A9A9A9A9A9A8A8A8AAF4
+:101B600055A9A9A9A9A900A9A9A9A9A9A8A8A8AAE4
+:101B700055A9A9A9A9A9A900A9A9A9A9A8A8A8AAD4
+:101B800055A9A9A9A9A9A9A900A9A9A9A8A8A8AAC4
+:101B900055A9A9A9A9A9A9A9A900A9A9A8A8A8AAB4
+:101BA00055A9A9A9A9A9A9A9A9A900A9A8A8A8AAA4
+:101BB00055A9A9A9A9A9A9A9A9A9A900A8A8A8AA94
+:101BC00055A9A9A9A9A9A9A9A9A9A9A900A8A8AA83
+:101BD00055A9A9A9A9A9A9A9A9A9A9A9A800A8AA73
+:101BE00055A9A9A9A9A9A9A9A9A9A9A9A8A800AA63
+:101BF00055A9A9A9A9A9A9A9A9A9A9A9A8A8A80055
+:101C000000A9A9A9A9A9A9A9A9A9A8A8A9A8A8009A
+:101C10000000A9A9A9A9A9A9A9A9A8A8A9A8A80033
+:101C200000A900A9A9A9A9A9A9A9A8A8A9A8A80023
+:101C300000A9A900A9A9A9A9A9A9A8A8A9A8A80013
+:101C400000A9A9A900A9A9A9A9A9A8A8A9A8A80003
+:101C500000A9A9A9A900A9A9A9A9A8A8A9A8A800F3
+:101C600000A9A9A9A9A900A9A9A9A8A8A9A8A800E3
+:101C700000A9A9A9A9A9A900A9A9A8A8A9A8A800D3
+:101C800000A9A9A9A9A9A9A900A9A8A8A9A8A800C3
+:101C900000A9A9A9A9A9A9A9A900A8A8A9A8A800B3
+:101CA00000A9A9A9A9A9A9A9A9A900A8A9A8A800A2
+:101CB00000A9A9A9A9A9A9A9A9A9A800A9A8A80092
+:101CC00000A9A9A9A9A9A9A9A9A9A8A800A8A80083
+:101CD00000A9A9A9A9A9A9A9A9A9A8A8A900A80072
+:101CE00000A9A9A9A9A9A9A9A9A9A8A8A9A8000062
+:101CF00000A9A9A9A9A9A9A9A9A9A8A8A9A8A800AA
+:101D000000A9A9A9A9A9A9A9A9A9A9A8A8A8A80099
+:101D10000000A9A9A9A9A9A9A9A9A9A8A8A8A80032
+:101D200000A900A9A9A9A9A9A9A9A9A8A8A8A80022
+:101D300000A9A900A9A9A9A9A9A9A9A8A8A8A80012
+:101D400000A9A9A900A9A9A9A9A9A9A8A8A8A80002
+:101D500000A9A9A9A900A9A9A9A9A9A8A8A8A800F2
+:101D600000A9A9A9A9A900A9A9A9A9A8A8A8A800E2
+:101D700000A9A9A9A9A9A900A9A9A9A8A8A8A800D2
+:101D800000A9A9A9A9A9A9A900A9A9A8A8A8A800C2
+:101D900000A9A9A9A9A9A9A9A900A9A8A8A8A800B2
+:101DA00000A9A9A9A9A9A9A9A9A900A8A8A8A800A2
+:101DB00000A9A9A9A9A9A9A9A9A9A900A8A8A80091
+:101DC00000A9A9A9A9A9A9A9A9A9A9A800A8A80081
+:101DD00000A9A9A9A9A9A9A9A9A9A9A8A800A80071
+:101DE00000A9A9A9A9A9A9A9A9A9A9A8A8A8000061
+:101DF00000A9A9A9A9A9A9A9A9A9A9A8A8A8A800A9
+:101E000000A5A5A5A5A5A5A5A5A4A4A4A4A4A0AA2C
+:101E10005500A5A5A5A5A5A5A5A4A4A4A4A4A0AA6C
+:101E200055A500A5A5A5A5A5A5A4A4A4A4A4A0AA5C
+:101E300055A5A500A5A5A5A5A5A4A4A4A4A4A0AA4C
+:101E400055A5A5A500A5A5A5A5A4A4A4A4A4A0AA3C
+:101E500055A5A5A5A500A5A5A5A4A4A4A4A4A0AA2C
+:101E600055A5A5A5A5A500A5A5A4A4A4A4A4A0AA1C
+:101E700055A5A5A5A5A5A500A5A4A4A4A4A4A0AA0C
+:101E800055A5A5A5A5A5A5A500A4A4A4A4A4A0AAFC
+:101E900055A5A5A5A5A5A5A5A500A4A4A4A4A0AAEB
+:101EA00055A5A5A5A5A5A5A5A5A400A4A4A4A0AADB
+:101EB00055A5A5A5A5A5A5A5A5A4A400A4A4A0AACB
+:101EC00055A5A5A5A5A5A5A5A5A4A4A400A4A0AABB
+:101ED00055A5A5A5A5A5A5A5A5A4A4A4A400A0AAAB
+:101EE00055A5A5A5A5A5A5A5A5A4A4A4A4A400AA97
+:101EF00055A5A5A5A5A5A5A5A5A4A4A4A4A4A00091
+:101F000000A5A5A5A5A5A5A5A4A4A4A4A4A4A0AA2C
+:101F10005500A5A5A5A5A5A5A4A4A4A4A4A4A0AA6C
+:101F200055A500A5A5A5A5A5A4A4A4A4A4A4A0AA5C
+:101F300055A5A500A5A5A5A5A4A4A4A4A4A4A0AA4C
+:101F400055A5A5A500A5A5A5A4A4A4A4A4A4A0AA3C
+:101F500055A5A5A5A500A5A5A4A4A4A4A4A4A0AA2C
+:101F600055A5A5A5A5A500A5A4A4A4A4A4A4A0AA1C
+:101F700055A5A5A5A5A5A500A4A4A4A4A4A4A0AA0C
+:101F800055A5A5A5A5A5A5A500A4A4A4A4A4A0AAFB
+:101F900055A5A5A5A5A5A5A5A400A4A4A4A4A0AAEB
+:101FA00055A5A5A5A5A5A5A5A4A400A4A4A4A0AADB
+:101FB00055A5A5A5A5A5A5A5A4A4A400A4A4A0AACB
+:101FC00055A5A5A5A5A5A5A5A4A4A4A400A4A0AABB
+:101FD00055A5A5A5A5A5A5A5A4A4A4A4A400A0AAAB
+:101FE00055A5A5A5A5A5A5A5A4A4A4A4A4A400AA97
+:101FF00055A5A5A5A5A5A5A5A4A4A4A4A4A4A00091
+:1020000000A5A5A5A5A5A5A4A4A4A4A4A4A0A000DA
+:102010000000A5A5A5A5A5A4A4A4A4A4A4A0A0006F
+:1020200000A500A5A5A5A5A4A4A4A4A4A4A0A0005F
+:1020300000A5A500A5A5A5A4A4A4A4A4A4A0A0004F
+:1020400000A5A5A500A5A5A4A4A4A4A4A4A0A0003F
+:1020500000A5A5A5A500A5A4A4A4A4A4A4A0A0002F
+:1020600000A5A5A5A5A500A4A4A4A4A4A4A0A0001F
+:1020700000A5A5A5A5A5A500A4A4A4A4A4A0A0000E
+:1020800000A5A5A5A5A5A5A400A4A4A4A4A0A000FE
+:1020900000A5A5A5A5A5A5A4A400A4A4A4A0A000EE
+:1020A00000A5A5A5A5A5A5A4A4A400A4A4A0A000DE
+:1020B00000A5A5A5A5A5A5A4A4A4A400A4A0A000CE
+:1020C00000A5A5A5A5A5A5A4A4A4A4A400A0A000BE
+:1020D00000A5A5A5A5A5A5A4A4A4A4A4A400A000AA
+:1020E00000A5A5A5A5A5A5A4A4A4A4A4A4A000009A
+:1020F00000A5A5A5A5A5A5A4A4A4A4A4A4A0A000EA
+:1021000000A5A5A5A5A5A4A4A4A4A4A4A4A0A000DA
+:102110000000A5A5A5A5A4A4A4A4A4A4A4A0A0006F
+:1021200000A500A5A5A5A4A4A4A4A4A4A4A0A0005F
+:1021300000A5A500A5A5A4A4A4A4A4A4A4A0A0004F
+:1021400000A5A5A500A5A4A4A4A4A4A4A4A0A0003F
+:1021500000A5A5A5A500A4A4A4A4A4A4A4A0A0002F
+:1021600000A5A5A5A5A500A4A4A4A4A4A4A0A0001E
+:1021700000A5A5A5A5A5A400A4A4A4A4A4A0A0000E
+:1021800000A5A5A5A5A5A4A400A4A4A4A4A0A000FE
+:1021900000A5A5A5A5A5A4A4A400A4A4A4A0A000EE
+:1021A00000A5A5A5A5A5A4A4A4A400A4A4A0A000DE
+:1021B00000A5A5A5A5A5A4A4A4A4A400A4A0A000CE
+:1021C00000A5A5A5A5A5A4A4A4A4A4A400A0A000BE
+:1021D00000A5A5A5A5A5A4A4A4A4A4A4A400A000AA
+:1021E00000A5A5A5A5A5A4A4A4A4A4A4A4A000009A
+:1021F00000A5A5A5A5A5A4A4A4A4A4A4A4A0A000EA
+:1022000000A5A5A5A5A5A5A4A4A4A4A4A0A0A0AA32
+:102210005500A5A5A5A5A5A4A4A4A4A4A0A0A0AA72
+:1022200055A500A5A5A5A5A4A4A4A4A4A0A0A0AA62
+:1022300055A5A500A5A5A5A4A4A4A4A4A0A0A0AA52
+:1022400055A5A5A500A5A5A4A4A4A4A4A0A0A0AA42
+:1022500055A5A5A5A500A5A4A4A4A4A4A0A0A0AA32
+:1022600055A5A5A5A5A500A4A4A4A4A4A0A0A0AA22
+:1022700055A5A5A5A5A5A500A4A4A4A4A0A0A0AA11
+:1022800055A5A5A5A5A5A5A400A4A4A4A0A0A0AA01
+:1022900055A5A5A5A5A5A5A4A400A4A4A0A0A0AAF1
+:1022A00055A5A5A5A5A5A5A4A4A400A4A0A0A0AAE1
+:1022B00055A5A5A5A5A5A5A4A4A4A400A0A0A0AAD1
+:1022C00055A5A5A5A5A5A5A4A4A4A4A400A0A0AABD
+:1022D00055A5A5A5A5A5A5A4A4A4A4A4A000A0AAAD
+:1022E00055A5A5A5A5A5A5A4A4A4A4A4A0A000AA9D
+:1022F00055A5A5A5A5A5A5A4A4A4A4A4A0A0A00097
+:1023000000A5A5A5A5A4A4A4A4A4A4A0A0A0A0AA37
+:102310005500A5A5A5A4A4A4A4A4A4A0A0A0A0AA77
+:1023200055A500A5A5A4A4A4A4A4A4A0A0A0A0AA67
+:1023300055A5A500A5A4A4A4A4A4A4A0A0A0A0AA57
+:1023400055A5A5A500A4A4A4A4A4A4A0A0A0A0AA47
+:1023500055A5A5A5A500A4A4A4A4A4A0A0A0A0AA36
+:1023600055A5A5A5A5A400A4A4A4A4A0A0A0A0AA26
+:1023700055A5A5A5A5A4A400A4A4A4A0A0A0A0AA16
+:1023800055A5A5A5A5A4A4A400A4A4A0A0A0A0AA06
+:1023900055A5A5A5A5A4A4A4A400A4A0A0A0A0AAF6
+:1023A00055A5A5A5A5A4A4A4A4A400A0A0A0A0AAE6
+:1023B00055A5A5A5A5A4A4A4A4A4A400A0A0A0AAD2
+:1023C00055A5A5A5A5A4A4A4A4A4A4A000A0A0AAC2
+:1023D00055A5A5A5A5A4A4A4A4A4A4A0A000A0AAB2
+:1023E00055A5A5A5A5A4A4A4A4A4A4A0A0A000AAA2
+:1023F00055A5A5A5A5A4A4A4A4A4A4A0A0A0A0009C
+:1024000000A5A5A5A5A4A4A4A4A4A0A0A0A0A000E4
+:102410000000A5A5A5A4A4A4A4A4A0A0A0A0A00079
+:1024200000A500A5A5A4A4A4A4A4A0A0A0A0A00069
+:1024300000A5A500A5A4A4A4A4A4A0A0A0A0A00059
+:1024400000A5A5A500A4A4A4A4A4A0A0A0A0A00049
+:1024500000A5A5A5A500A4A4A4A4A0A0A0A0A00038
+:1024600000A5A5A5A5A400A4A4A4A0A0A0A0A00028
+:1024700000A5A5A5A5A4A400A4A4A0A0A0A0A00018
+:1024800000A5A5A5A5A4A4A400A4A0A0A0A0A00008
+:1024900000A5A5A5A5A4A4A4A400A0A0A0A0A000F8
+:1024A00000A5A5A5A5A4A4A4A4A400A0A0A0A000E4
+:1024B00000A5A5A5A5A4A4A4A4A4A000A0A0A000D4
+:1024C00000A5A5A5A5A4A4A4A4A4A0A000A0A000C4
+:1024D00000A5A5A5A5A4A4A4A4A4A0A0A000A000B4
+:1024E00000A5A5A5A5A4A4A4A4A4A0A0A0A00000A4
+:1024F00000A5A5A5A5A4A4A4A4A4A0A0A0A0A000F4
+:1025000000A5A5A5A4A4A4A4A4A4A0A0A0A0A000E4
+:102510000000A5A5A4A4A4A4A4A4A0A0A0A0A00079
+:1025200000A500A5A4A4A4A4A4A4A0A0A0A0A00069
+:1025300000A5A500A4A4A4A4A4A4A0A0A0A0A00059
+:1025400000A5A5A500A4A4A4A4A4A0A0A0A0A00048
+:1025500000A5A5A5A400A4A4A4A4A0A0A0A0A00038
+:1025600000A5A5A5A4A400A4A4A4A0A0A0A0A00028
+:1025700000A5A5A5A4A4A400A4A4A0A0A0A0A00018
+:1025800000A5A5A5A4A4A4A400A4A0A0A0A0A00008
+:1025900000A5A5A5A4A4A4A4A400A0A0A0A0A000F8
+:1025A00000A5A5A5A4A4A4A4A4A400A0A0A0A000E4
+:1025B00000A5A5A5A4A4A4A4A4A4A000A0A0A000D4
+:1025C00000A5A5A5A4A4A4A4A4A4A0A000A0A000C4
+:1025D00000A5A5A5A4A4A4A4A4A4A0A0A000A000B4
+:1025E00000A5A5A5A4A4A4A4A4A4A0A0A0A00000A4
+:1025F00000A5A5A5A4A4A4A4A4A4A0A0A0A0A000F4
+:10260000009595959494949494909090909080AA2D
+:10261000550095959494949494909090909080AA5D
+:10262000559500959494949494909090909080AA4D
+:10263000559595009494949494909090909080AA3D
+:10264000559595950094949494909090909080AA2C
+:10265000559595959400949494909090909080AA1C
+:10266000559595959494009494909090909080AA0C
+:10267000559595959494940094909090909080AAFC
+:10268000559595959494949400909090909080AAEC
+:10269000559595959494949494009090909080AAD8
+:1026A000559595959494949494900090909080AAC8
+:1026B000559595959494949494909000909080AAB8
+:1026C000559595959494949494909090009080AAA8
+:1026D000559595959494949494909090900080AA98
+:1026E000559595959494949494909090909000AA78
+:1026F0005595959594949494949090909090800092
+:10270000009595949494949494909090909080AA2D
+:10271000550095949494949494909090909080AA5D
+:10272000559500949494949494909090909080AA4D
+:10273000559595009494949494909090909080AA3C
+:10274000559595940094949494909090909080AA2C
+:10275000559595949400949494909090909080AA1C
+:10276000559595949494009494909090909080AA0C
+:10277000559595949494940094909090909080AAFC
+:10278000559595949494949400909090909080AAEC
+:10279000559595949494949494009090909080AAD8
+:1027A000559595949494949494900090909080AAC8
+:1027B000559595949494949494909000909080AAB8
+:1027C000559595949494949494909090009080AAA8
+:1027D000559595949494949494909090900080AA98
+:1027E000559595949494949494909090909000AA78
+:1027F0005595959494949494949090909090800092
+:1028000000959595949494949090909090808000E9
+:10281000000095959494949490909090908080006E
+:10282000009500959494949490909090908080005E
+:10283000009595009494949490909090908080004E
+:10284000009595950094949490909090908080003D
+:10285000009595959400949490909090908080002D
+:10286000009595959494009490909090908080001D
+:10287000009595959494940090909090908080000D
+:1028800000959595949494940090909090808000F9
+:1028900000959595949494949000909090808000E9
+:1028A00000959595949494949090009090808000D9
+:1028B00000959595949494949090900090808000C9
+:1028C00000959595949494949090909000808000B9
+:1028D0000095959594949494909090909000800099
+:1028E0000095959594949494909090909080000089
+:1028F00000959595949494949090909090808000F9
+:1029000000959594949494909090909090808000ED
+:102910000000959494949490909090909080800072
+:102920000095009494949490909090909080800062
+:102930000095950094949490909090909080800051
+:102940000095959400949490909090909080800041
+:102950000095959494009490909090909080800031
+:102960000095959494940090909090909080800021
+:10297000009595949494940090909090908080000D
+:1029800000959594949494900090909090808000FD
+:1029900000959594949494909000909090808000ED
+:1029A00000959594949494909090009090808000DD
+:1029B00000959594949494909090900090808000CD
+:1029C00000959594949494909090909000808000BD
+:1029D000009595949494949090909090900080009D
+:1029E000009595949494949090909090908000008D
+:1029F00000959594949494909090909090808000FD
+:102A0000009594949494909090909090808080AA57
+:102A1000550094949494909090909090808080AA87
+:102A2000559500949494909090909090808080AA76
+:102A3000559594009494909090909090808080AA66
+:102A4000559594940094909090909090808080AA56
+:102A5000559594949400909090909090808080AA46
+:102A6000559594949494009090909090808080AA32
+:102A7000559594949494900090909090808080AA22
+:102A8000559594949494909000909090808080AA12
+:102A9000559594949494909090009090808080AA02
+:102AA000559594949494909090900090808080AAF2
+:102AB000559594949494909090909000808080AAE2
+:102AC000559594949494909090909090008080AAC2
+:102AD000559594949494909090909090800080AAB2
+:102AE000559594949494909090909090808000AAA2
+:102AF00055959494949490909090909080808000BC
+:102B0000009594949494909090909080808080AA66
+:102B1000550094949494909090909080808080AA96
+:102B2000559500949494909090909080808080AA85
+:102B3000559594009494909090909080808080AA75
+:102B4000559594940094909090909080808080AA65
+:102B5000559594949400909090909080808080AA55
+:102B6000559594949494009090909080808080AA41
+:102B7000559594949494900090909080808080AA31
+:102B8000559594949494909000909080808080AA21
+:102B9000559594949494909090009080808080AA11
+:102BA000559594949494909090900080808080AA01
+:102BB000559594949494909090909000808080AAE1
+:102BC000559594949494909090909080008080AAD1
+:102BD000559594949494909090909080800080AAC1
+:102BE000559594949494909090909080808000AAB1
+:102BF00055959494949490909090908080808000CB
+:102C00000094949494909090909080808080800024
+:102C100000009494949090909090808080808000A8
+:102C20000094009494909090909080808080800098
+:102C30000094940094909090909080808080800088
+:102C40000094949400909090909080808080800078
+:102C50000094949494009090909080808080800064
+:102C60000094949494900090909080808080800054
+:102C70000094949494909000909080808080800044
+:102C80000094949494909090009080808080800034
+:102C90000094949494909090900080808080800024
+:102CA0000094949494909090909000808080800004
+:102CB00000949494949090909090800080808000F4
+:102CC00000949494949090909090808000808000E4
+:102CD00000949494949090909090808080008000D4
+:102CE00000949494949090909090808080800000C4
+:102CF0000094949494909090909080808080800034
+:102D00000094949494909090909080808080800023
+:102D100000009494949090909090808080808000A7
+:102D20000094009494909090909080808080800097
+:102D30000094940094909090909080808080800087
+:102D40000094949400909090909080808080800077
+:102D50000094949494009090909080808080800063
+:102D60000094949494900090909080808080800053
+:102D70000094949494909000909080808080800043
+:102D80000094949494909090009080808080800033
+:102D90000094949494909090900080808080800023
+:102DA0000094949494909090909000808080800003
+:102DB00000949494949090909090800080808000F3
+:102DC00000949494949090909090808000808000E3
+:102DD00000949494949090909090808080008000D3
+:102DE00000949494949090909090808080800000C3
+:102DF0000094949494909090909080808080800033
+:102E0000009494949090909090808080808080A88E
+:102E1000540094949090909090808080808080A8BE
+:102E2000549400949090909090808080808080A8AE
+:102E3000549494009090909090808080808080A89E
+:102E4000549494940090909090808080808080A88A
+:102E5000549494949000909090808080808080A87A
+:102E6000549494949090009090808080808080A86A
+:102E7000549494949090900090808080808080A85A
+:102E8000549494949090909000808080808080A84A
+:102E9000549494949090909090008080808080A82A
+:102EA000549494949090909090800080808080A81A
+:102EB000549494949090909090808000808080A80A
+:102EC000549494949090909090808080008080A8FA
+:102ED000549494949090909090808080800080A8EA
+:102EE000549494949090909090808080808000A8DA
+:102EF00054949494909090909080808080808000F2
+:102F0000009494949090909090808080808080A88D
+:102F1000540094949090909090808080808080A8BD
+:102F2000549400949090909090808080808080A8AD
+:102F3000549494009090909090808080808080A89D
+:102F4000549494940090909090808080808080A889
+:102F5000549494949000909090808080808080A879
+:102F6000549494949090009090808080808080A869
+:102F7000549494949090900090808080808080A859
+:102F8000549494949090909000808080808080A849
+:102F9000549494949090909090008080808080A829
+:102FA000549494949090909090800080808080A819
+:102FB000549494949090909090808000808080A809
+:102FC000549494949090909090808080008080A8F9
+:102FD000549494949090909090808080800080A8E9
+:102FE000549494949090909090808080808000A8D9
+:102FF00054949494909090909080808080808000F1
+:103000000054545450505050404040404040000004
+:103010000000545450505050404040404040000048
+:103020000054005450505050404040404040000038
+:103030000054540050505050404040404040000028
+:103040000054545400505050404040404040000014
+:103050000054545450005050404040404040000004
+:1030600000545454505000504040404040400000F4
+:1030700000545454505050004040404040400000E4
+:1030800000545454505050500040404040400000C4
+:1030900000545454505050504000404040400000B4
+:1030A00000545454505050504040004040400000A4
+:1030B0000054545450505050404040004040000094
+:1030C0000054545450505050404040400040000084
+:1030D0000054545450505050404040404000000074
+:1030E0000054545450505050404040404040000024
+:1030F0000054545450505050404040404040000014
+:103100000054545450505040404040404040000013
+:103110000000545450505040404040404040000057
+:103120000054005450505040404040404040000047
+:103130000054540050505040404040404040000037
+:103140000054545400505040404040404040000023
+:103150000054545450005040404040404040000013
+:103160000054545450500040404040404040000003
+:1031700000545454505050004040404040400000E3
+:1031800000545454505050400040404040400000D3
+:1031900000545454505050404000404040400000C3
+:1031A00000545454505050404040004040400000B3
+:1031B00000545454505050404040400040400000A3
+:1031C0000054545450505040404040400040000093
+:1031D0000054545450505040404040404000000083
+:1031E0000054545450505040404040404040000033
+:1031F0000054545450505040404040404040000023
+:10320000005454505050404040404040400000A8BE
+:10321000540054505050404040404040400000A8AE
+:10322000545400505050404040404040400000A89E
+:10323000545454005050404040404040400000A88A
+:10324000545454500050404040404040400000A87A
+:10325000545454505000404040404040400000A86A
+:10326000545454505050004040404040400000A84A
+:10327000545454505050400040404040400000A83A
+:10328000545454505050404000404040400000A82A
+:10329000545454505050404040004040400000A81A
+:1032A000545454505050404040400040400000A80A
+:1032B000545454505050404040404000400000A8FA
+:1032C000545454505050404040404040000000A8EA
+:1032D000545454505050404040404040400000A89A
+:1032E000545454505050404040404040400000A88A
+:1032F0005454545050504040404040404000000022
+:10330000005450505050404040404040000000A801
+:10331000540050505050404040404040000000A8F1
+:10332000545400505050404040404040000000A8DD
+:10333000545450005050404040404040000000A8CD
+:10334000545450500050404040404040000000A8BD
+:10335000545450505000404040404040000000A8AD
+:10336000545450505050004040404040000000A88D
+:10337000545450505050400040404040000000A87D
+:10338000545450505050404000404040000000A86D
+:10339000545450505050404040004040000000A85D
+:1033A000545450505050404040400040000000A84D
+:1033B000545450505050404040404000000000A83D
+:1033C000545450505050404040404040000000A8ED
+:1033D000545450505050404040404040000000A8DD
+:1033E000545450505050404040404040000000A8CD
+:1033F0005454505050504040404040400000000065
+:1034000000505050504040404040400000000000FC
+:10341000000050505040404040404000000000003C
+:10342000005000505040404040404000000000002C
+:10343000005050005040404040404000000000001C
+:10344000005050500040404040404000000000000C
+:1034500000505050500040404040400000000000EC
+:1034600000505050504000404040400000000000DC
+:1034700000505050504040004040400000000000CC
+:1034800000505050504040400040400000000000BC
+:1034900000505050504040404000400000000000AC
+:1034A000005050505040404040400000000000009C
+:1034B000005050505040404040404000000000004C
+:1034C000005050505040404040404000000000003C
+:1034D000005050505040404040404000000000002C
+:1034E000005050505040404040404000000000001C
+:1034F000005050505040404040404000000000000C
+:103500000C5C5C5C5C4C4C4C4C4C4C0C0C0C0C0C3B
+:103510000C0C5C5C5C4C4C4C4C4C4C0C0C0C0C0C7B
+:103520000C5C0C5C5C4C4C4C4C4C4C0C0C0C0C0C6B
+:103530000C5C5C0C5C4C4C4C4C4C4C0C0C0C0C0C5B
+:103540000C5C5C5C0C4C4C4C4C4C4C0C0C0C0C0C4B
+:103550000C5C5C5C5C0C4C4C4C4C4C0C0C0C0C0C2B
+:103560000C5C5C5C5C4C0C4C4C4C4C0C0C0C0C0C1B
+:103570000C5C5C5C5C4C4C0C4C4C4C0C0C0C0C0C0B
+:103580000C5C5C5C5C4C4C4C0C4C4C0C0C0C0C0CFB
+:103590000C5C5C5C5C4C4C4C4C0C4C0C0C0C0C0CEB
+:1035A0000C5C5C5C5C4C4C4C4C4C0C0C0C0C0C0CDB
+:1035B0000C5C5C5C5C4C4C4C4C4C4C0C0C0C0C0C8B
+:1035C0000C5C5C5C5C4C4C4C4C4C4C0C0C0C0C0C7B
+:1035D0000C5C5C5C5C4C4C4C4C4C4C0C0C0C0C0C6B
+:1035E0000C5C5C5C5C4C4C4C4C4C4C0C0C0C0C0C5B
+:1035F0000C5C5C5C5C4C4C4C4C4C4C0C0C0C0C0C4B
+:10360000005050504040404040400000000000A0AA
+:10361000500050504040404040400000000000A09A
+:10362000505000504040404040400000000000A08A
+:10363000505050004040404040400000000000A07A
+:10364000505050500040404040400000000000A05A
+:10365000505050504000404040400000000000A04A
+:10366000505050504040004040400000000000A03A
+:10367000505050504040400040400000000000A02A
+:10368000505050504040404000400000000000A01A
+:10369000505050504040404040000000000000A00A
+:1036A000505050504040404040400000000000A0BA
+:1036B000505050504040404040400000000000A0AA
+:1036C000505050504040404040400000000000A09A
+:1036D000505050504040404040400000000000A08A
+:1036E000505050504040404040400000000000A07A
+:1036F000505050504040404040400000000000000A
+:10370000005050504040404040400000000000A0A9
+:10371000500050504040404040400000000000A099
+:10372000505000504040404040400000000000A089
+:10373000505050004040404040400000000000A079
+:10374000505050500040404040400000000000A059
+:10375000505050504000404040400000000000A049
+:10376000505050504040004040400000000000A039
+:10377000505050504040400040400000000000A029
+:10378000505050504040404000400000000000A019
+:10379000505050504040404040000000000000A009
+:1037A000505050504040404040400000000000A0B9
+:1037B000505050504040404040400000000000A0A9
+:1037C000505050504040404040400000000000A099
+:1037D000505050504040404040400000000000A089
+:1037E000505050504040404040400000000000A079
+:1037F0005050505040404040404000000000000009
+:103800000050505040404040404000000000000048
+:103810000000505040404040404000000000000088
+:103820000050005040404040404000000000000078
+:103830000050500040404040404000000000000068
+:103840000050505000404040404000000000000048
+:103850000050505040004040404000000000000038
+:103860000050505040400040404000000000000028
+:103870000050505040404000404000000000000018
+:103880000050505040404040004000000000000008
+:1038900000505050404040404000000000000000F8
+:1038A00000505050404040404040000000000000A8
+:1038B0000050505040404040404000000000000098
+:1038C0000050505040404040404000000000000088
+:1038D0000050505040404040404000000000000078
+:1038E0000050505040404040404000000000000068
+:1038F0000050505040404040404000000000000058
+:103900000050505040404040404000000000000047
+:103910000000505040404040404000000000000087
+:103920000050005040404040404000000000000077
+:103930000050500040404040404000000000000067
+:103940000050505000404040404000000000000047
+:103950000050505040004040404000000000000037
+:103960000050505040400040404000000000000027
+:103970000050505040404000404000000000000017
+:103980000050505040404040004000000000000007
+:1039900000505050404040404000000000000000F7
+:1039A00000505050404040404040000000000000A7
+:1039B0000050505040404040404000000000000097
+:1039C0000050505040404040404000000000000087
+:1039D0000050505040404040404000000000000077
+:1039E0000050505040404040404000000000000067
+:1039F0000050505040404040404000000000000057
+:103A0000005050404040404040000000000000A0F6
+:103A1000500050404040404040000000000000A0E6
+:103A2000505000404040404040000000000000A0D6
+:103A3000505050004040404040000000000000A0B6
+:103A4000505050400040404040000000000000A0A6
+:103A5000505050404000404040000000000000A096
+:103A6000505050404040004040000000000000A086
+:103A7000505050404040400040000000000000A076
+:103A8000505050404040404000000000000000A066
+:103A9000505050404040404040000000000000A016
+:103AA000505050404040404040000000000000A006
+:103AB000505050404040404040000000000000A0F6
+:103AC000505050404040404040000000000000A0E6
+:103AD000505050404040404040000000000000A0D6
+:103AE000505050404040404040000000000000A0C6
+:103AF0005050504040404040400000000000000056
+:103B0000005040404040404040000000000000A005
+:103B1000500040404040404040000000000000A0F5
+:103B2000505000404040404040000000000000A0D5
+:103B3000505040004040404040000000000000A0C5
+:103B4000505040400040404040000000000000A0B5
+:103B5000505040404000404040000000000000A0A5
+:103B6000505040404040004040000000000000A095
+:103B7000505040404040400040000000000000A085
+:103B8000505040404040404000000000000000A075
+:103B9000505040404040404040000000000000A025
+:103BA000505040404040404040000000000000A015
+:103BB000505040404040404040000000000000A005
+:103BC000505040404040404040000000000000A0F5
+:103BD000505040404040404040000000000000A0E5
+:103BE000505040404040404040000000000000A0D5
+:103BF0005050404040404040400000000000000065
+:103C000000404040404040400000000000000000F4
+:103C10000000404040404040000000000000000024
+:103C20000040004040404040000000000000000014
+:103C30000040400040404040000000000000000004
+:103C400000404040004040400000000000000000F4
+:103C500000404040400040400000000000000000E4
+:103C600000404040404000400000000000000000D4
+:103C700000404040404040000000000000000000C4
+:103C80000040404040404040000000000000000074
+:103C90000040404040404040000000000000000064
+:103CA0000040404040404040000000000000000054
+:103CB0000040404040404040000000000000000044
+:103CC0000040404040404040000000000000000034
+:103CD0000040404040404040000000000000000024
+:103CE0000040404040404040000000000000000014
+:103CF0000040404040404040000000000000000004
+:103D00003070707070707030303030303030303033
+:103D10003030707070707030303030303030303063
+:103D20003070307070707030303030303030303053
+:103D30003070703070707030303030303030303043
+:103D40003070707030707030303030303030303033
+:103D50003070707070307030303030303030303023
+:103D60003070707070703030303030303030303013
+:103D700030707070707070303030303030303030C3
+:103D800030707070707070303030303030303030B3
+:103D900030707070707070303030303030303030A3
+:103DA0003070707070707030303030303030303093
+:103DB0003070707070707030303030303030303083
+:103DC0003070707070707030303030303030303073
+:103DD0003070707070707030303030303030303063
+:103DE0003070707070707030303030303030303053
+:103DF0003070707070707030303030303030303043
+:103E000000404040404000000000000000000080F2
+:103E100040004040404000000000000000000080E2
+:103E200040400040404000000000000000000080D2
+:103E300040404000404000000000000000000080C2
+:103E400040404040004000000000000000000080B2
+:103E500040404040400000000000000000000080A2
+:103E60004040404040400000000000000000008052
+:103E70004040404040400000000000000000008042
+:103E80004040404040400000000000000000008032
+:103E90004040404040400000000000000000008022
+:103EA0004040404040400000000000000000008012
+:103EB0004040404040400000000000000000008002
+:103EC00040404040404000000000000000000080F2
+:103ED00040404040404000000000000000000080E2
+:103EE00040404040404000000000000000000080D2
+:103EF0004040404040400000000000000000000042
+:103F000000404040404000000000000000000080F1
+:103F100040004040404000000000000000000080E1
+:103F200040400040404000000000000000000080D1
+:103F300040404000404000000000000000000080C1
+:103F400040404040004000000000000000000080B1
+:103F500040404040400000000000000000000080A1
+:103F60004040404040400000000000000000008051
+:103F70004040404040400000000000000000008041
+:103F80004040404040400000000000000000008031
+:103F90004040404040400000000000000000008021
+:103FA0004040404040400000000000000000008011
+:103FB0004040404040400000000000000000008001
+:103FC00040404040404000000000000000000080F1
+:103FD00040404040404000000000000000000080E1
+:103FE00040404040404000000000000000000080D1
+:103FF0004040404040400000000000000000000041
+:1040000000404040400000000000000000000000B0
+:1040100000004040400000000000000000000000E0
+:1040200000400040400000000000000000000000D0
+:1040300000404000400000000000000000000000C0
+:1040400000404040000000000000000000000000B0
+:104050000040404040000000000000000000000060
+:104060000040404040000000000000000000000050
+:104070000040404040000000000000000000000040
+:104080000040404040000000000000000000000030
+:104090000040404040000000000000000000000020
+:1040A0000040404040000000000000000000000010
+:1040B0000040404040000000000000000000000000
+:1040C00000404040400000000000000000000000F0
+:1040D00000404040400000000000000000000000E0
+:1040E00000404040400000000000000000000000D0
+:1040F00000404040400000000000000000000000C0
+:1041000000404040400000000000000000000000AF
+:1041100000004040400000000000000000000000DF
+:1041200000400040400000000000000000000000CF
+:1041300000404000400000000000000000000000BF
+:1041400000404040000000000000000000000000AF
+:10415000004040404000000000000000000000005F
+:10416000004040404000000000000000000000004F
+:10417000004040404000000000000000000000003F
+:10418000004040404000000000000000000000002F
+:10419000004040404000000000000000000000001F
+:1041A000004040404000000000000000000000000F
+:1041B00000404040400000000000000000000000FF
+:1041C00000404040400000000000000000000000EF
+:1041D00000404040400000000000000000000000DF
+:1041E00000404040400000000000000000000000CF
+:1041F00000404040400000000000000000000000BF
+:10420000004040400000000000000000000000806E
+:10421000400040400000000000000000000000805E
+:10422000404000400000000000000000000000804E
+:10423000404040000000000000000000000000803E
+:1042400040404040000000000000000000000080EE
+:1042500040404040000000000000000000000080DE
+:1042600040404040000000000000000000000080CE
+:1042700040404040000000000000000000000080BE
+:1042800040404040000000000000000000000080AE
+:10429000404040400000000000000000000000809E
+:1042A000404040400000000000000000000000808E
+:1042B000404040400000000000000000000000807E
+:1042C000404040400000000000000000000000806E
+:1042D000404040400000000000000000000000805E
+:1042E000404040400000000000000000000000804E
+:1042F00040404040000000000000000000000000BE
+:10430000004040400000000000000000000000806D
+:10431000400040400000000000000000000000805D
+:10432000404000400000000000000000000000804D
+:10433000404040000000000000000000000000803D
+:1043400040404040000000000000000000000080ED
+:1043500040404040000000000000000000000080DD
+:1043600040404040000000000000000000000080CD
+:1043700040404040000000000000000000000080BD
+:1043800040404040000000000000000000000080AD
+:10439000404040400000000000000000000000809D
+:1043A000404040400000000000000000000000808D
+:1043B000404040400000000000000000000000807D
+:1043C000404040400000000000000000000000806D
+:1043D000404040400000000000000000000000805D
+:1043E000404040400000000000000000000000804D
+:1043F00040404040000000000000000000000000BD
+:1044000000404040000000000000000000000000EC
+:10441000000040400000000000000000000000001C
+:10442000004000400000000000000000000000000C
+:1044300000404000000000000000000000000000FC
+:1044400000404040000000000000000000000000AC
+:10445000004040400000000000000000000000009C
+:10446000004040400000000000000000000000008C
+:10447000004040400000000000000000000000007C
+:10448000004040400000000000000000000000006C
+:10449000004040400000000000000000000000005C
+:1044A000004040400000000000000000000000004C
+:1044B000004040400000000000000000000000003C
+:1044C000004040400000000000000000000000002C
+:1044D000004040400000000000000000000000001C
+:1044E000004040400000000000000000000000000C
+:1044F00000404040000000000000000000000000FC
+:1045000000404040000000000000000000000000EB
+:10451000000040400000000000000000000000001B
+:10452000004000400000000000000000000000000B
+:1045300000404000000000000000000000000000FB
+:1045400000404040000000000000000000000000AB
+:10455000004040400000000000000000000000009B
+:10456000004040400000000000000000000000008B
+:10457000004040400000000000000000000000007B
+:10458000004040400000000000000000000000006B
+:10459000004040400000000000000000000000005B
+:1045A000004040400000000000000000000000004B
+:1045B000004040400000000000000000000000003B
+:1045C000004040400000000000000000000000002B
+:1045D000004040400000000000000000000000001B
+:1045E000004040400000000000000000000000000B
+:1045F00000404040000000000000000000000000FB
+:1046000000404000000000000000000000000080AA
+:10461000400040000000000000000000000000809A
+:10462000404000000000000000000000000000808A
+:10463000404040000000000000000000000000803A
+:10464000404040000000000000000000000000802A
+:10465000404040000000000000000000000000801A
+:10466000404040000000000000000000000000800A
+:1046700040404000000000000000000000000080FA
+:1046800040404000000000000000000000000080EA
+:1046900040404000000000000000000000000080DA
+:1046A00040404000000000000000000000000080CA
+:1046B00040404000000000000000000000000080BA
+:1046C00040404000000000000000000000000080AA
+:1046D000404040000000000000000000000000809A
+:1046E000404040000000000000000000000000808A
+:1046F00040404000000000000000000000000000FA
+:1047000000400000000000000000000000000080E9
+:1047100040000000000000000000000000000080D9
+:104720004040000000000000000000000000008089
+:104730004040000000000000000000000000008079
+:104740004040000000000000000000000000008069
+:104750004040000000000000000000000000008059
+:104760004040000000000000000000000000008049
+:104770004040000000000000000000000000008039
+:104780004040000000000000000000000000008029
+:104790004040000000000000000000000000008019
+:1047A0004040000000000000000000000000008009
+:1047B00040400000000000000000000000000080F9
+:1047C00040400000000000000000000000000080E9
+:1047D00040400000000000000000000000000080D9
+:1047E00040400000000000000000000000000080C9
+:1047F0004040000000000000000000000000000039
+:1048000000000000000000000000000000000000A8
+:10481000C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C098
+:104820000000000000000000000000000000000088
+:104830000000000000000000000000000000000078
+:104840000000000000000000000000000000000068
+:104850000000000000000000000000000000000058
+:104860000000000000000000000000000000000048
+:104870000000000000000000000000000000000038
+:104880000000000000000000000000000000000028
+:104890000000000000000000000000000000000018
+:1048A0000000000000000000000000000000000008
+:1048B00000000000000000000000000000000000F8
+:1048C00000000000000000000000000000000000E8
+:1048D00000000000000000000000000000000000D8
+:1048E00000000000000000000000000000000000C8
+:1048F00000000000000000000000000000000000B8
+:10490000AA5555A9A9A9A9A9A9A9A9A9A9A9A95512
+:10491000AA555555555555555555555555555555F2
+:10492000AA555555555555555555555555555555E2
+:10493000AA555555555555555555555555555555D2
+:10494000AA555555555555555555555555555555C2
+:10495000AA555555555555555555555555555555B2
+:10496000AA555555555555555555555555555555A2
+:10497000AA55555555555555555555555555555592
+:10498000AA55555555555555555555555555555582
+:10499000AA55555555555555555555555555555572
+:1049A000AA55555555555555555555555555555562
+:1049B000AA55555555555555555555555555555552
+:1049C000AA55555555555555555555555555555542
+:1049D000AA55555555555555555555555555555532
+:1049E000AA55555555555555555555555555555522
+:1049F000AA555A6A6AAAAAAAAAAAAAAAAAAAAA00E6
+:104A0000AA5555A9A9A9A9A9A9A9A9A9A9A9A95511
+:104A1000AA555555555555555555555555555555F1
+:104A2000AA555555555555555555555555555555E1
+:104A3000AA555555555555555555555555555555D1
+:104A4000AA555555555555555555555555555555C1
+:104A5000AA555555555555555555555555555555B1
+:104A6000AA555555555555555555555555555555A1
+:104A7000AA55555555555555555555555555555591
+:104A8000AA55555555555555555555555555555581
+:104A9000AA55555555555555555555555555555571
+:104AA000AA55555555555555555555555555555561
+:104AB000AA55555555555555555555555555555551
+:104AC000AA55555555555555555555555555555541
+:104AD000AA55555555555555555555555555555531
+:104AE000AA55555555555555555555555555555521
+:104AF000AA555A5A6A6AAAAAAAAAAAAAAAAAAA0035
+:104B000000555555A9A9A9A9A9A9A9A9A9A9A90063
+:104B100000555555555555555555555555555500EF
+:104B200000555555555555555555555555555500DF
+:104B300000555555555555555555555555555500CF
+:104B400000555555555555555555555555555500BF
+:104B500000555555555555555555555555555500AF
+:104B6000005555555555555555555555555555009F
+:104B7000005555555555555555555555555555008F
+:104B8000005555555555555555555555555555007F
+:104B9000005555555555555555555555555555006F
+:104BA000005555555555555555555555555555005F
+:104BB000005555555555555555555555555555004F
+:104BC000005555555555555555555555555555003F
+:104BD000005555555555555555555555555555002F
+:104BE000005555555555555555555555555555001F
+:104BF0000055565A5A6AAAAAAAAAAAAAAAAAAA00F2
+:104C0000005555556969A9A9A9A9A9A9A9A9A900E2
+:104C100000555555555555555555555555555500EE
+:104C200000555555555555555555555555555500DE
+:104C300000555555555555555555555555555500CE
+:104C400000555555555555555555555555555500BE
+:104C500000555555555555555555555555555500AE
+:104C6000005555555555555555555555555555009E
+:104C7000005555555555555555555555555555008E
+:104C8000005555555555555555555555555555007E
+:104C9000005555555555555555555555555555006E
+:104CA000005555555555555555555555555555005E
+:104CB000005555555555555555555555555555004E
+:104CC000005555555555555555555555555555003E
+:104CD000005555555555555555555555555555002E
+:104CE000005555555555555555555555555555001E
+:104CF0000055565A5A5AAAAAAAAAAAAAAAAAAA0001
+:104D0000AA5555555555A9A9A9A9A9A9A9A9A9550A
+:104D1000AA555555555555555555555555555555EE
+:104D2000AA555555555555555555555555555555DE
+:104D3000AA555555555555555555555555555555CE
+:104D4000AA555555555555555555555555555555BE
+:104D5000AA555555555555555555555555555555AE
+:104D6000AA5555555555555555555555555555559E
+:104D7000AA5555555555555555555555555555558E
+:104D8000AA5555555555555555555555555555557E
+:104D9000AA5555555555555555555555555555556E
+:104DA000AA5555555555555555555555555555555E
+:104DB000AA5555555555555555555555555555554E
+:104DC000AA5555555555555555555555555555553E
+:104DD000AA5555555555555555555555555555552E
+:104DE000AA5555555555555555555555555555551E
+:104DF000AA55555A5A5AAAAAAAAAAAAAAAAAAA0057
+:104E0000AA5555555555A9A9A9A9A9A9A9A9A95509
+:104E1000AA555555555555555555555555555555ED
+:104E2000AA555555555555555555555555555555DD
+:104E3000AA555555555555555555555555555555CD
+:104E4000AA555555555555555555555555555555BD
+:104E5000AA555555555555555555555555555555AD
+:104E6000AA5555555555555555555555555555559D
+:104E7000AA5555555555555555555555555555558D
+:104E8000AA5555555555555555555555555555557D
+:104E9000AA5555555555555555555555555555556D
+:104EA000AA5555555555555555555555555555555D
+:104EB000AA5555555555555555555555555555554D
+:104EC000AA5555555555555555555555555555553D
+:104ED000AA5555555555555555555555555555552D
+:104EE000AA5555555555555555555555555555551D
+:104EF000AA55555A5A5AAAAAAAAAAAAAAAAAAA0056
+:104F000000555555555595A9A9A9A9A9A9A9AA001A
+:104F100000555555555555555555555555555600EA
+:104F200000555555555555555555555555555500DB
+:104F300000555555555555555555555555555500CB
+:104F400000555555555555555555555555555500BB
+:104F500000555555555555555555555555555500AB
+:104F6000005555555555555555555555555555009B
+:104F7000005555555555555555555555555555008B
+:104F8000005555555555555555555555555555007B
+:104F9000005555555555555555555555555555006B
+:104FA000005555555555555555555555555555005B
+:104FB000005555555555555555555555555555004B
+:104FC000005555555555555555555555555555003B
+:104FD000005555555555555555555555555555002B
+:104FE000005555555555555555555555555555001B
+:104FF000005555565A5A5AAAAAAAAAAAAAAAAA0053
+:1050000000555555555555A9A9A9A9A9A9A9AA0059
+:1050100000555555555555555555555555555600E9
+:1050200000555555555555555555555555555600D9
+:1050300000555555555555555555555555555500CA
+:1050400000555555555555555555555555555500BA
+:1050500000555555555555555555555555555500AA
+:10506000005555555555555555555555555555009A
+:10507000005555555555555555555555555555008A
+:10508000005555555555555555555555555555007A
+:10509000005555555555555555555555555555006A
+:1050A000005555555555555555555555555555005A
+:1050B000005555555555555555555555555555004A
+:1050C000005555555555555555555555555555003A
+:1050D000005555555555555555555555555555002A
+:1050E000005555555555555555555555555555001A
+:1050F000005555565A5A5AAAAAAAAAAAAAAAAA0052
+:10510000AA555555555555A5A9A9A9A9A9A9AA555D
+:10511000AA555555555555555555555555555655E9
+:10512000AA555555555555555555555555555655D9
+:10513000AA555555555555555555555555555655C9
+:10514000AA555555555555555555555555555555BA
+:10515000AA555555555555555555555555555555AA
+:10516000AA5555555555555555555555555555559A
+:10517000AA5555555555555555555555555555558A
+:10518000AA5555555555555555555555555555557A
+:10519000AA5555555555555555555555555555556A
+:1051A000AA5555555555555555555555555555555A
+:1051B000AA5555555555555555555555555555554A
+:1051C000AA5555555555555555555555555555553A
+:1051D000AA5555555555555555555555555555552A
+:1051E000AA5555555555555555555555555555551A
+:1051F000AA555555565A5A5AAAAAAAAAAAAAAA00FC
+:10520000AA55555555555595A5A5A5A9A9A9AA5578
+:10521000AA555555555555555555555555555655E8
+:10522000AA555555555555555555555555555655D8
+:10523000AA555555555555555555555555555655C8
+:10524000AA555555555555555555555555555655B8
+:10525000AA555555555555555555555555555655A8
+:10526000AA55555555555555555555555555565598
+:10527000AA55555555555555555555555555565588
+:10528000AA55555555555555555555555555565578
+:10529000AA55555555555555555555555555565568
+:1052A000AA55555555555555555555555555565558
+:1052B000AA55555555555555555555555555565548
+:1052C000AA55555555555555555555555555565538
+:1052D000AA55555555555555555555555555555529
+:1052E000AA55555555555555555555555555555519
+:1052F000AA55555556565A5AAAAAAAAAAAAAAA00FF
+:105300000055555555555555959595A5A9AAAA00E9
+:1053100000555555555555555555555555565600E5
+:1053200000555555555555555555555555555600D6
+:1053300000555555555555555555555555555600C6
+:1053400000555555555555555555555555555600B6
+:1053500000555555555555555555555555555600A6
+:105360000055555555555555555555555555560096
+:105370000055555555555555555555555555560086
+:105380000055555555555555555555555555560076
+:105390000055555555555555555555555555560066
+:1053A0000055555555555555555555555555560056
+:1053B0000055555555555555555555555555560046
+:1053C0000055555555555555555555555555560036
+:1053D0000055555555555555555555555555560026
+:1053E0000055555555555555555555555555550017
+:1053F0000055555555555A5AAAAAAAAAAAAAAA00AA
+:10540000005555555555555595955596A6A6A60042
+:1054100000555555555555555555555656565600E2
+:1054200000555555555555555555555555565600D4
+:1054300000555555555555555555555555555600C5
+:1054400000555555555555555555555555555600B5
+:1054500000555555555555555555555555555600A5
+:105460000055555555555555555555555555560095
+:105470000055555555555555555555555555560085
+:105480000055555555555555555555555555560075
+:105490000055555555555555555555555555560065
+:1054A0000055555555555555555555555555560055
+:1054B0000055555555555555555555555555560045
+:1054C0000055555555555555555555555555560035
+:1054D0000055555555555555555555555555560025
+:1054E0000055555555555555555555555555560015
+:1054F0000055555555555559AAAAAAAAAAAAAA00AF
+:10550000AA5555AAAAAAAAAAAAAAAAAAAAAAAA55FA
+:10551000AA555556565656565656565656565655DA
+:10552000AA555555555555555555555656565655D2
+:10553000AA555555555555555555555555565655C4
+:10554000AA555555555555555555555555555655B5
+:10555000AA555555555555555555555555555655A5
+:10556000AA55555555555555555555555555565595
+:10557000AA55555555555555555555555555565585
+:10558000AA55555555555555555555555555565575
+:10559000AA55555555555555555555555555565565
+:1055A000AA55555555555555555555555555565555
+:1055B000AA55555555555555555555555555565545
+:1055C000AA55555555555555555555555555565535
+:1055D000AA55555555555555555555555555565525
+:1055E000AA55555555555555555555555555565515
+:1055F000AA5555555555555559AAAAAAAAAAAA5504
+:10560000AA556AAAAAAAAAAAAAAAAAAAAAAAAA55E4
+:10561000AA5556AAAAAAAAAAAAAAAAAAAAAAAA55E8
+:10562000AA5555AAAAAAAAAAAAAAAAAAAAAAAA55D9
+:10563000AA5555A9A9A9A9A9A9A9A9AAAAAAAA55D1
+:10564000AA5555A9A9A9A9A9A9A9A9A9A9AAAA55C3
+:10565000AA5555A9A9A9A9A9A9A9A9A9A9AAAA55B3
+:10566000AA5555A9A9A9A9A9A9A9A9A9A9AAAA55A3
+:10567000AA5555A9A9A9A9A9A9A9A9A9A9AAAA5593
+:10568000AA5555A9A9A9A9A9A9A9A9A9A9AAAA5583
+:10569000AA5555A9A9A9A9A9A9A9A9A9A9AAAA5573
+:1056A000AA5555A9A9A9A9A9A9A9A9A9A9AAAA5563
+:1056B000AA55555555555555555555555556565543
+:1056C000AA55555555555555555555555556565533
+:1056D000AA55555555555555555555555555565524
+:1056E000AA55555555555555555555555555565514
+:1056F000AA55555555555555556969AAAAAAAA5589
+:105700000055AAAAAAAAAAAAAAAAAAAAAAAAAA00A2
+:105710000055AAAAAAAAAAAAAAAAAAAAAAAAAA0092
+:105720000055AAAAAAAAAAAAAAAAAAAAAAAAAA0082
+:105730000055A9AAAAAAAAAAAAAAAAAAAAAAAA0073
+:105740000055A9A9A9A9A9A9A9A9A9AAAAAAAA006B
+:105750000055A9A9A9A9A9A9A9A9A9AAAAAAAA005B
+:105760000055A9A9A9A9A9A9A9A9A9AAAAAAAA004B
+:105770000055A9A9A9A9A9A9A9A9A9AAAAAAAA003B
+:105780000055A9A9A9A9A9A9A9A9A9AAAAAAAA002B
+:105790000055A9A9A9A9A9A9A9A9A9AAAAAAAA001B
+:1057A0000055A9A9A9A9A9A9A9A9A9AAAAAAAA000B
+:1057B000005555A9A9A9A9A9A9A9A9AAAAAAAA004F
+:1057C000005555555555555555555556565656002F
+:1057D0000055555555555555555555555556AA00CD
+:1057E0000055555555555555555555555555560012
+:1057F000005555555555555555555569AAAAAA00F0
+:105800000055AAAAAAAAAAAAAAAAAAAAAAAAAA00A1
+:1058100000A9AAAAAAAAAAAAAAAAAAAAAAAAAA003D
+:1058200000A9AAAAAAAAAAAAAAAAAAAAAAAAAA002D
+:1058300000A9AAAAAAAAAAAAAAAAAAAAAAAAAA001D
+:1058400000A9A9AAAAAAAAAAAAAAAAAAAAAAAA000E
+:1058500000A9A9AAAAAAAAAAAAAAAAAAAAAAAA00FE
+:1058600000A9A9AAAAAAAAAAAAAAAAAAAAAAAA00EE
+:1058700000A9A9AAAAAAAAAAAAAAAAAAAAAAAA00DE
+:1058800000A9A9AAAAAAAAAAAAAAAAAAAAAAAA00CE
+:1058900000A9A9AAAAAAAAAAAAAAAAAAAAAAAA00BE
+:1058A00000A9A9AAAAAAAAAAAAAAAAAAAAAAAA00AE
+:1058B0000055A9AAAAAAAAAAAAAAAAAAAAAAAA00F2
+:1058C000005555A9A9A9A9A9A9A9A9AAAAAAAA003E
+:1058D0000055555555555555555555565656AA00CA
+:1058E0000055555555555555555555555556560010
+:1058F000005555555555555555555555A9AA560058
+:10590000AA55AAAAAAAAAAAAAAAAAAAAAAAAAA55A1
+:10591000AAA9AAAAAAAAAAAAAAAAAAAAAAAAAA553D
+:10592000AAA9AAAAAAAAAAAAAAAAAAAAAAAAAA552D
+:10593000AAA9AAAAAAAAAAAAAAAAAAAAAAAAAA551D
+:10594000AAA9AAAAAAAAAAAAAAAAAAAAAAAAAA550D
+:10595000AAA9AAAAAAAAAAAAAAAAAAAAAAAAAA55FD
+:10596000AAA9AAAAAAAAAAAAAAAAAAAAAAAAAA55ED
+:10597000AAA9AAAAAAAAAAAAAAAAAAAAAAAAAA55DD
+:10598000AAA9AAAAAAAAAAAAAAAAAAAAAAAAAA55CD
+:10599000AAA9AAAAAAAAAAAAAAAAAAAAAAAAAA55BD
+:1059A000AAA9AAAAAAAAAAAAAAAAAAAAAAAAAA55AD
+:1059B000AAA9AAAAAAAAAAAAAAAAAAAAAAAAAA559D
+:1059C000AA55A9AAAAAAAAAAAAAAAAAAAAAAAA55E2
+:1059D000AA5555AAAAAAAAAAAAAAAAAAAAAAAA5526
+:1059E000AA5555555555555555555556565656550E
+:1059F000AA55555555555555555555559595565581
+:105A0000AA56AAAAAAAAAAAAAAAAAAAAAAAAAA559F
+:105A1000AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA553B
+:105A2000AAA9AAAAAAAAAAAAAAAAAAAAAAAAAA552C
+:105A3000AAA9AAAAAAAAAAAAAAAAAAAAAAAAAA551C
+:105A4000AAA9AAAAAAAAAAAAAAAAAAAAAAAAAA550C
+:105A5000AAA9AAAAAAAAAAAAAAAAAAAAAAAAAA55FC
+:105A6000AAA9AAAAAAAAAAAAAAAAAAAAAAAAAA55EC
+:105A7000AAA9AAAAAAAAAAAAAAAAAAAAAAAAAA55DC
+:105A8000AAA9AAAAAAAAAAAAAAAAAAAAAAAAAA55CC
+:105A9000AAA9AAAAAAAAAAAAAAAAAAAAAAAAAA55BC
+:105AA000AAA9AAAAAAAAAAAAAAAAAAAAAAAAAA55AC
+:105AB000AAA9AAAAAAAAAAAAAAAAAAAAAAAAAA559C
+:105AC000AAA9AAAAAAAAAAAAAAAAAAAAAAAAAA558C
+:105AD000AA55AAAAAAAAAAAAAAAAAAAAAAAAAA55D0
+:105AE000AA5555AAAAAAAAAAAAAAAAAAAAAAAA5515
+:105AF000AA55555555555555555555559595555581
+:105B000000AAAAAAAAAAAAAAAAAAAAAAAAAAAA0049
+:105B100000AAAAAAAAAAAAAAAAAAAAAAAAAAAA0039
+:105B200000AAAAAAAAAAAAAAAAAAAAAAAAAAAA0029
+:105B300000A9AAAAAAAAAAAAAAAAAAAAAAAAAA001A
+:105B400000A9AAAAAAAAAAAAAAAAAAAAAAAAAA000A
+:105B500000A9AAAAAAAAAAAAAAAAAAAAAAAAAA00FA
+:105B600000A9AAAAAAAAAAAAAAAAAAAAAAAAAA00EA
+:105B700000A9AAAAAAAAAAAAAAAAAAAAAAAAAA00DA
+:105B800000A9AAAAAAAAAAAAAAAAAAAAAAAAAA00CA
+:105B900000A9AAAAAAAAAAAAAAAAAAAAAAAAAA00BA
+:105BA00000A9AAAAAAAAAAAAAAAAAAAAAAAAAA00AA
+:105BB00000A9AAAAAAAAAAAAAAAAAAAAAAAAAA009A
+:105BC00000A9AAAAAAAAAAAAAAAAAAAAAAAAAA008A
+:105BD00000A9AAAAAAAAAAAAAAAAAAAAAAAAAA007A
+:105BE0000055AAAAAAAAAAAAAAAAAAAAAAAAAA00BE
+:105BF00000555555555555555555555555555500FF
+:105C000000AAAAAAAAAAAAAAAAAAAAAAAAAAAA0048
+:105C100000AAAAAAAAAAAAAAAAAAAAAAAAAAAA0038
+:105C200000AAAAAAAAAAAAAAAAAAAAAAAAAAAA0028
+:105C300000AAAAAAAAAAAAAAAAAAAAAAAAAAAA0018
+:105C400000A9AAAAAAAAAAAAAAAAAAAAAAAAAA0009
+:105C500000A9AAAAAAAAAAAAAAAAAAAAAAAAAA00F9
+:105C600000A9AAAAAAAAAAAAAAAAAAAAAAAAAA00E9
+:105C700000A9AAAAAAAAAAAAAAAAAAAAAAAAAA00D9
+:105C800000A9AAAAAAAAAAAAAAAAAAAAAAAAAA00C9
+:105C900000A9AAAAAAAAAAAAAAAAAAAAAAAAAA00B9
+:105CA00000A9AAAAAAAAAAAAAAAAAAAAAAAAAA00A9
+:105CB00000A9AAAAAAAAAAAAAAAAAAAAAAAAAA0099
+:105CC00000A9AAAAAAAAAAAAAAAAAAAAAAAAAA0089
+:105CD00000A9AAAAAAAAAAAAAAAAAAAAAAAAAA0079
+:105CE00000A9AAAAAAAAAAAAAAAAAAAAAAAAAA0069
+:105CF00000555555555555555555555555555500FE
+:105D0000AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA5548
+:105D1000AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA5538
+:105D2000AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA5528
+:105D3000AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA5518
+:105D4000AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA5508
+:105D5000AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA55F8
+:105D6000AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA55E8
+:105D7000AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA55D8
+:105D8000AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA55C8
+:105D9000AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA55B8
+:105DA000AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA55A8
+:105DB000AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA5598
+:105DC000AAA9AAAAAAAAAAAAAAAAAAAAAAAAAA5589
+:105DD000AAA9AAAAAAAAAAAAAAAAAAAAAAAAAA5579
+:105DE000AAA9AAAAAAAAAAAAAAAAAAAAAAAAAA5569
+:105DF000AA555555555555555555555555555555FE
+:105E0000AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA5547
+:105E1000AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA5537
+:105E2000AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA5527
+:105E3000AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA5517
+:105E4000AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA5507
+:105E5000AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA55F7
+:105E6000AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA55E7
+:105E7000AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA55D7
+:105E8000AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA55C7
+:105E9000AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA55B7
+:105EA000AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA55A7
+:105EB000AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA5597
+:105EC000AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA5587
+:105ED000AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA5577
+:105EE000AAA9AAAAAAAAAAAAAAAAAAAAAAAAAA5568
+:105EF000AA555555555555555555555555555555FD
+:105F000000AAAAAAAAAAAAAAAAAAAAAAAAAAAA0045
+:105F100000AAAAAAAAAAAAAAAAAAAAAAAAAAAA0035
+:105F200000AAAAAAAAAAAAAAAAAAAAAAAAAAAA0025
+:105F300000AAAAAAAAAAAAAAAAAAAAAAAAAAAA0015
+:105F400000AAAAAAAAAAAAAAAAAAAAAAAAAAAA0005
+:105F500000AAAAAAAAAAAAAAAAAAAAAAAAAAAA00F5
+:105F600000AAAAAAAAAAAAAAAAAAAAAAAAAAAA00E5
+:105F700000AAAAAAAAAAAAAAAAAAAAAAAAAAAA00D5
+:105F800000AAAAAAAAAAAAAAAAAAAAAAAAAAAA00C5
+:105F900000AAAAAAAAAAAAAAAAAAAAAAAAAAAA00B5
+:105FA00000AAAAAAAAAAAAAAAAAAAAAAAAAAAA00A5
+:105FB00000AAAAAAAAAAAAAAAAAAAAAAAAAAAA0095
+:105FC00000AAAAAAAAAAAAAAAAAAAAAAAAAAAA0085
+:105FD00000AAAAAAAAAAAAAAAAAAAAAAAAAAAA0075
+:105FE00000AAAAAAAAAAAAAAAAAAAAAAAAAAAA0065
+:105FF00000555555555555555555555555555500FB
+:1060000000AAAAAAAAAAAAAAAAAAAAAAAAAAAA0044
+:1060100000AAAAAAAAAAAAAAAAAAAAAAAAAAAA0034
+:1060200000AAAAAAAAAAAAAAAAAAAAAAAAAAAA0024
+:1060300000AAAAAAAAAAAAAAAAAAAAAAAAAAAA0014
+:1060400000AAAAAAAAAAAAAAAAAAAAAAAAAAAA0004
+:1060500000AAAAAAAAAAAAAAAAAAAAAAAAAAAA00F4
+:1060600000AAAAAAAAAAAAAAAAAAAAAAAAAAAA00E4
+:1060700000AAAAAAAAAAAAAAAAAAAAAAAAAAAA00D4
+:1060800000AAAAAAAAAAAAAAAAAAAAAAAAAAAA00C4
+:1060900000AAAAAAAAAAAAAAAAAAAAAAAAAAAA00B4
+:1060A00000AAAAAAAAAAAAAAAAAAAAAAAAAAAA00A4
+:1060B00000AAAAAAAAAAAAAAAAAAAAAAAAAAAA0094
+:1060C00000AAAAAAAAAAAAAAAAAAAAAAAAAAAA0084
+:1060D00000AAAAAAAAAAAAAAAAAAAAAAAAAAAA0074
+:1060E00000AAAAAAAAAAAAAAAAAAAAAAAAAAAA0064
+:1060F00000555555555555555555555555555500FA
+:10610000AAAA0000000000000000000000000055E6
+:10611000AAAAA8000000000000000000000000552E
+:1061200000AAAAA800000000000000000000000073
+:1061300055AAAAA80000000000000000000000000E
+:1061400055AAAAA8000000000000000000000000FE
+:1061500055AAAAA8000000000000000000000000EE
+:1061600055AAAAA8000000000000000000000000DE
+:1061700055AAAAA8000000000000000000000000CE
+:1061800055AAAAA8000000000000000000000000BE
+:1061900055AAAAA8000000000000000000000000AE
+:1061A00055AAAAA80000000000000000000000009E
+:1061B00055AAAAA80000000000000000000000008E
+:1061C00055AAAAA80000000000000000000000007E
+:1061D00055AAAAA80000000000000000000000006E
+:1061E00055AAAAA80000000000000000000000005E
+:1061F00055AAAAA80000000000000000000000004E
+:1062000055AAAAA80000000000000000000000003D
+:1062100055AAAAA80000000000000000000000002D
+:1062200000AAAAAA00000000000000000000000070
+:1062300055AAAAAA0000000000000000000000000B
+:1062400055AAAAAA000000000000000000000000FB
+:1062500055AAAAAA000000000000000000000000EB
+:1062600055AAAAAA000000000000000000000000DB
+:1062700055AAAAAA000000000000000000000000CB
+:1062800055AAAAAA000000000000000000000000BB
+:1062900055AAAAAA000000000000000000000000AB
+:1062A00055AAAAAA0000000000000000000000009B
+:1062B00055AAAAAA0000000000000000000000008B
+:1062C00055AAAAAA0000000000000000000000007B
+:1062D00055AAAAAA0000000000000000000000006B
+:1062E00055AAAAAA0000000000000000000000005B
+:1062F00055AAAAAA0000000000000000000000004B
+:1063000055AAAAAA0000000000000000000000003A
+:1063100055AAAAAA0000000000000000000000002A
+:10632000AAAAAAA800000000000000000000005572
+:1063300000AAAAA80000000000000000000000550C
+:1063400000AAAAA8000000000000000000000055FC
+:1063500000AAAAA8000000000000000000000055EC
+:1063600000AAAAA8000000000000000000000055DC
+:1063700000AAAAA8000000000000000000000055CC
+:1063800000AAAAA8000000000000000000000055BC
+:1063900000AAAAA8000000000000000000000055AC
+:1063A00000AAAAA80000000000000000000000559C
+:1063B00000AAAAA80000000000000000000000558C
+:1063C00000AAAAA80000000000000000000000557C
+:1063D00000AAAAA80000000000000000000000556C
+:1063E00000AAAAA80000000000000000000000555C
+:1063F00000AAAAA80000000000000000000000554C
+:1064000000AAAAA80000000000000000000000553B
+:1064100000AAAAA80000000000000000000000552B
+:10642000AAAAAAAA0000000000000000000000556F
+:1064300000AAAAAA00000000000000000000005509
+:1064400000AAAAAA000000000000000000000055F9
+:1064500000AAAAAA000000000000000000000055E9
+:1064600000AAAAAA000000000000000000000055D9
+:1064700000AAAAAA000000000000000000000055C9
+:1064800000AAAAAA000000000000000000000055B9
+:1064900000AAAAAA000000000000000000000055A9
+:1064A00000AAAAAA00000000000000000000005599
+:1064B00000AAAAAA00000000000000000000005589
+:1064C00000AAAAAA00000000000000000000005579
+:1064D00000AAAAAA00000000000000000000005569
+:1064E00000AAAAAA00000000000000000000005559
+:1064F00000AAAAAA00000000000000000000005549
+:1065000000AAAAAA00000000000000000000005538
+:1065100000AAAAAA00000000000000000000005528
+:1065200000AAAAAAA80000000000000000000000C5
+:1065300055AAAAAAA8000000000000000000000060
+:1065400055AAAAAAA8000000000000000000000050
+:1065500055AAAAAAA8000000000000000000000040
+:1065600055AAAAAAA8000000000000000000000030
+:1065700055AAAAAAA8000000000000000000000020
+:1065800055AAAAAAA8000000000000000000000010
+:1065900055AAAAAAA8000000000000000000000000
+:1065A00055AAAAAAA80000000000000000000000F0
+:1065B00055AAAAAAA80000000000000000000000E0
+:1065C00055AAAAAAA80000000000000000000000D0
+:1065D00055AAAAAAA80000000000000000000000C0
+:1065E00055AAAAAAA80000000000000000000000B0
+:1065F00055AAAAAAA80000000000000000000000A0
+:1066000055AAAAAAA800000000000000000000008F
+:1066100055AAAAAAA800000000000000000000007F
+:1066200000AAAAAAAA0000000000000000000000C2
+:1066300055AAAAAAAA00000000000000000000005D
+:1066400055AAAAAAAA00000000000000000000004D
+:1066500055AAAAAAAA00000000000000000000003D
+:1066600055AAAAAAAA00000000000000000000002D
+:1066700055AAAAAAAA00000000000000000000001D
+:1066800055AAAAAAAA00000000000000000000000D
+:1066900055AAAAAAAA0000000000000000000000FD
+:1066A00055AAAAAAAA0000000000000000000000ED
+:1066B00055AAAAAAAA0000000000000000000000DD
+:1066C00055AAAAAAAA0000000000000000000000CD
+:1066D00055AAAAAAAA0000000000000000000000BD
+:1066E00055AAAAAAAA0000000000000000000000AD
+:1066F00055AAAAAAAA00000000000000000000009D
+:1067000055AAAAAAAA00000000000000000000008C
+:1067100055AAAAAAAA00000000000000000000007C
+:10672000AAAAAAAAAAA8000000000000000000551A
+:1067300000AAAAAAAAA800000000000000000055B4
+:1067400000AAAAAAAAA800000000000000000055A4
+:1067500000AAAAAAAAA80000000000000000005594
+:1067600000AAAAAAAAA80000000000000000005584
+:1067700000AAAAAAAAA80000000000000000005574
+:1067800000AAAAAAAAA80000000000000000005564
+:1067900000AAAAAAAAA80000000000000000005554
+:1067A00000AAAAAAAAA80000000000000000005544
+:1067B00000AAAAAAAAA80000000000000000005534
+:1067C00000AAAAAAAAA80000000000000000005524
+:1067D00000AAAAAAAAA80000000000000000005514
+:1067E00000AAAAAAAAA80000000000000000005504
+:1067F00000AAAAAAAAA800000000000000000055F4
+:1068000000AAAAAAAAA800000000000000000055E3
+:1068100000AAAAAAAAA800000000000000000055D3
+:10682000AAAAAAAAAAAA0200000000000000005515
+:1068300000AAAAAAAAAA02000000000000000055AF
+:1068400000AAAAAAAAAA020000000000000000559F
+:1068500000AAAAAAAAAA020000000000000000558F
+:1068600000AAAAAAAAAA020000000000000000557F
+:1068700000AAAAAAAAAA020000000000000000556F
+:1068800000AAAAAAAAAA020000000000000000555F
+:1068900000AAAAAAAAAA020000000000000000554F
+:1068A00000AAAAAAAAAA020000000000000000553F
+:1068B00000AAAAAAAAAA020000000000000000552F
+:1068C00000AAAAAAAAAA020000000000000000551F
+:1068D00000AAAAAAAAAA020000000000000000550F
+:1068E00000AAAAAAAAAA02000000000000000055FF
+:1068F00000AAAAAAAAAA02000000000000000055EF
+:1069000000AAAAAAAAAA02000000000000000055DE
+:1069100000AAAAAAAAAA02000000000000000055CE
+:1069200000AAAAAAAAAAA80000000000000000006D
+:1069300055AAAAAAAAAAA800000000000000000008
+:1069400055AAAAAAAAAAA8000000000000000000F8
+:1069500055AAAAAAAAAAA8000000000000000000E8
+:1069600055AAAAAAAAAAA8000000000000000000D8
+:1069700055AAAAAAAAAAA8000000000000000000C8
+:1069800055AAAAAAAAAAA8000000000000000000B8
+:1069900055AAAAAAAAAAA8000000000000000000A8
+:1069A00055AAAAAAAAAAA800000000000000000098
+:1069B00055AAAAAAAAAAA800000000000000000088
+:1069C00055AAAAAAAAAAA800000000000000000078
+:1069D00055AAAAAAAAAAA800000000000000000068
+:1069E00055AAAAAAAAAAA800000000000000000058
+:1069F00055AAAAAAAAAAA800000000000000000048
+:106A000055AAAAAAAAAAA800000000000000000037
+:106A100055AAAAAAAAAAA800000000000000000027
+:106A200000AAAAAAAAAAAAA80000000000000000C2
+:106A300055AAAAAAAAAAAAA800000000000000005D
+:106A400055AAAAAAAAAAAAA800000000000000004D
+:106A500055AAAAAAAAAAAAA800000000000000003D
+:106A600055AAAAAAAAAAAAA800000000000000002D
+:106A700055AAAAAAAAAAAAA800000000000000001D
+:106A800055AAAAAAAAAAAAA800000000000000000D
+:106A900055AAAAAAAAAAAAA80000000000000000FD
+:106AA00055AAAAAAAAAAAAA80000000000000000ED
+:106AB00055AAAAAAAAAAAAA80000000000000000DD
+:106AC00055AAAAAAAAAAAAA80000000000000000CD
+:106AD00055AAAAAAAAAAAAA80000000000000000BD
+:106AE00055AAAAAAAAAAAAA80000000000000000AD
+:106AF00055AAAAAAAAAAAAA800000000000000009D
+:106B000055AAAAAAAAAAAAA800000000000000008C
+:106B100055AAAAAAAAAAAAA800000000000000007C
+:106B2000AAAAAAAAAAAAAAAAA80000000000005518
+:106B300000AAAAAAAAAAAAAAA800000000000055B2
+:106B400000AAAAAAAAAAAAAAA800000000000055A2
+:106B500000AAAAAAAAAAAAAAA80000000000005592
+:106B600000AAAAAAAAAAAAAAA80000000000005582
+:106B700000AAAAAAAAAAAAAAA80000000000005572
+:106B800000AAAAAAAAAAAAAAA80000000000005562
+:106B900000AAAAAAAAAAAAAAA80000000000005552
+:106BA00000AAAAAAAAAAAAAAA80000000000005542
+:106BB00000AAAAAAAAAAAAAAA80000000000005532
+:106BC00000AAAAAAAAAAAAAAA80000000000005522
+:106BD00000AAAAAAAAAAAAAAA80000000000005512
+:106BE00000AAAAAAAAAAAAAAA80000000000005502
+:106BF00000AAAAAAAAAAAAAAA800000000000055F2
+:106C000000AAAAAAAAAAAAAAA800000000000055E1
+:106C100000AAAAAAAAAAAAAAA800000000000055D1
+:106C2000AAAAAAAAAAAAAAAAAA0000000000005515
+:106C300000AAAAAAAAAAAAAAAA00000000000055AF
+:106C400000AAAAAAAAAAAAAAAA000000000000559F
+:106C500000AAAAAAAAAAAAAAAA000000000000558F
+:106C600000AAAAAAAAAAAAAAAA000000000000557F
+:106C700000AAAAAAAAAAAAAAAA000000000000556F
+:106C800000AAAAAAAAAAAAAAAA000000000000555F
+:106C900000AAAAAAAAAAAAAAAA000000000000554F
+:106CA00000AAAAAAAAAAAAAAAA000000000000553F
+:106CB00000AAAAAAAAAAAAAAAA000000000000552F
+:106CC00000AAAAAAAAAAAAAAAA000000000000551F
+:106CD00000AAAAAAAAAAAAAAAA000000000000550F
+:106CE00000AAAAAAAAAAAAAAAA00000000000055FF
+:106CF00000AAAAAAAAAAAAAAAA00000000000055EF
+:106D000000AAAAAAAAAAAAAAAA00000000000055DE
+:106D100000AAAAAAAAAAAAAAAA00000000000055CE
+:106D200055AAAAAAAAAAAAAAAAAA02000000000012
+:106D300055AAAAAAAAAAAAAAAAAA00000200000002
+:106D400000AAAAAAAAAAAAAAAAAAAA020000005548
+:106D500000AAAAAAAAAAAAAAAAAAAA2A0000005510
+:106D600000AAAAAAAAAAAAAAAAAAAA2A0000005500
+:106D700000AAAAAAAAAAAAAAAAAAAA2A00000055F0
+:106D800000AAAAAAAAAAAAAAAAAAAA2A00000055E0
+:106D900000AAAAAAAAAAAAAAAAAAAA2A00000055D0
+:106DA00000AAAAAAAAAAAAAAAAAAAA2A00000055C0
+:106DB00000AAAAAAAAAAAAAAAAAAAA2A00000055B0
+:106DC00000AAAAAAAAAAAAAAAAAAAA2A00000055A0
+:106DD00000AAAAAAAAAAAAAAAAAAAA2A0000005590
+:106DE00000AAAAAAAAAAAAAAAAAAAA2A0000005580
+:106DF00000AAAAAAAAAAAAAAAAAAAA2A0000005570
+:106E000000AAAAAAAAAAAAAAAAAAAA2A000000555F
+:106E100000AAAAAAAAAAAAAAAAAAAA2A000000554F
+:106E200000AAAAAAAAAAAAAAAAAAAA2A000000553F
+:106E300000AAAAAAAAAAAAAAAAAAAA2A000000552F
+:106E400000AAAAAAAAAAAAAAAAAAAAAA000000559F
+:106E500055AAAAAAAAAAAAAAAAAAAA2A2A020000E3
+:106E600055AAAAAAAAAAAAAAAAAAAA2A2A020000D3
+:106E700055AAAAAAAAAAAAAAAAAAAA2A2A020000C3
+:106E800055AAAAAAAAAAAAAAAAAAAA2A2A020000B3
+:106E900055AAAAAAAAAAAAAAAAAAAA2A2A020000A3
+:106EA00055AAAAAAAAAAAAAAAAAAAA2A2A02000093
+:106EB00055AAAAAAAAAAAAAAAAAAAA2A2A02000083
+:106EC00055AAAAAAAAAAAAAAAAAAAA2A2A02000073
+:106ED00055AAAAAAAAAAAAAAAAAAAA2A2A02000063
+:106EE00055AAAAAAAAAAAAAAAAAAAA2A2A02000053
+:106EF00055AAAAAAAAAAAAAAAAAAAA2A2A02000043
+:106F000055AAAAAAAAAAAAAAAAAAAA2A2A02000032
+:106F100055AAAAAAAAAAAAAAAAAAAA2A2A02000022
+:106F200055AAAAAAAAAAAAAAAAAAAA2A2A02000012
+:106F300055AAAAAAAAAAAAAAAAAAAA2A2A02000002
+:106F400055AAAAAAAAAAAAAAAAAAAAAAAA020000F2
+:106F500055A9A9A9A9A9A9A9A9A9A9A9290101006E
+:106F600055A9A9A9A9A9A9A9A9A9A9A9290101005E
+:106F700055A9A9A9A9A9A9A9A9A9A9A9290101004E
+:106F800055A9A9A9A9A9A9A9A9A9A9A9290101003E
+:106F900055A9A9A9A9A9A9A9A9A9A9A9290101002E
+:106FA00055A9A9A9A9A9A9A9A9A9A9A9290101001E
+:106FB00055A9A9A9A9A9A9A9A9A9A9A9290101000E
+:106FC00055A9A9A9A9A9A9A9A9A9A9A929010100FE
+:106FD00055A9A9A9A9A9A9A9A9A9A9A929010100EE
+:106FE00055A9A9A9A9A9A9A9A9A9A9A929010100DE
+:106FF00055A9A9A9A9A9A9A9A9A9A9A929010100CE
+:1070000055A9A9A9A9A9A9A9A9A9A9A929010100BD
+:1070100055A9A9A9A9A9A9A9A9A9A9A929010100AD
+:1070200055A9A9A9A9A9A9A9A9A9A9A9290101009D
+:1070300055A9A9A9A9A9A9A9A9A9A9A9290101008D
+:1070400055A9A9A9A9A9A9A9A9A9A9A9A9010100FD
+:1070500000A9A9A9A9A9A9A9A9A9A9A92929015545
+:1070600000A9A9A9A9A9A9A9A9A9A9A92929015535
+:1070700000A9A9A9A9A9A9A9A9A9A9A92929015525
+:1070800000A9A9A9A9A9A9A9A9A9A9A92929015515
+:1070900000A9A9A9A9A9A9A9A9A9A9A92929015505
+:1070A00000A9A9A9A9A9A9A9A9A9A9A929290155F5
+:1070B00000A9A9A9A9A9A9A9A9A9A9A929290155E5
+:1070C00000A9A9A9A9A9A9A9A9A9A9A929290155D5
+:1070D00000A9A9A9A9A9A9A9A9A9A9A929290155C5
+:1070E00000A9A9A9A9A9A9A9A9A9A9A929290155B5
+:1070F00000A9A9A9A9A9A9A9A9A9A9A929290155A5
+:1071000000A9A9A9A9A9A9A9A9A9A9A92929015594
+:1071100000A9A9A9A9A9A9A9A9A9A9A92929015584
+:1071200000A9A9A9A9A9A9A9A9A9A9A92929015574
+:1071300000A9A9A9A9A9A9A9A9A9A9A92929015564
+:1071400000A9A9A9A9A9A9A9A9A9A9A9A9A9015554
+:1071500000A9A9A9A9A9A9A9A9A9A9A9A9290155C4
+:1071600000A9A9A9A9A9A9A9A9A9A9A9A9290155B4
+:1071700000A9A9A9A9A9A9A9A9A9A9A9A9290155A4
+:1071800000A9A9A9A9A9A9A9A9A9A9A9A929015594
+:1071900000A9A9A9A9A9A9A9A9A9A9A9A929015584
+:1071A00000A9A9A9A9A9A9A9A9A9A9A9A929015574
+:1071B00000A9A9A9A9A9A9A9A9A9A9A9A929015564
+:1071C00000A9A9A9A9A9A9A9A9A9A9A9A929015554
+:1071D00000A9A9A9A9A9A9A9A9A9A9A9A929015544
+:1071E00000A9A9A9A9A9A9A9A9A9A9A9A929015534
+:1071F00000A9A9A9A9A9A9A9A9A9A9A9A929015524
+:1072000000A9A9A9A9A9A9A9A9A9A9A9A929015513
+:1072100000A9A9A9A9A9A9A9A9A9A9A9A929015503
+:1072200000A9A9A9A9A9A9A9A9A9A9A9A9290155F3
+:1072300000A9A9A9A9A9A9A9A9A9A9A9A9290155E3
+:1072400000A9A9A9A9A9A9A9A9A9A9A9A9A9015553
+:107250005595959595959595959595959595150132
+:107260005595959595959595959595959595150122
+:107270000055555555555555555555555555555612
+:107280000055555555555555555555555555555602
+:1072900055555555555555555555555555555516DD
+:1072A00055555555555555555555555555555516CD
+:1072B00000555555555555555555555555555568C0
+:1072C00000555555555555555555555555555568B0
+:1072D0005555555555555555555555555555556A49
+:1072E0005555555555555555555555555555556A39
+:1072F0000055555555555555555555555555558068
+:107300000055555555555555555555555555558057
+:10731000555555555555555555555555555555AAC8
+:10732000555555555555555555555555555555AAB8
+:107330000056565656565656565656565656560099
+:107340000056565656565656565656565656560089
+:10735000555656565656565656565656565656AA7A
+:10736000555656565656565656565656565656AA6A
+:10737000005A5A5A5A5A5A5A5A5A5A5A5A5A5A0021
+:10738000005A5A5A5A5A5A5A5A5A5A5A5A5A5A0011
+:10739000555A5A5A5A5A5A5A5A5A5A5A5A5A5AAA02
+:1073A000555A5A5A5A5A5A5A5A5A5A5A5A5A5AAAF2
+:1073B000006A6A6A6A6A6A6A6A6A6A6A6A6A6A0001
+:1073C000006A6A6A6A6A6A6A6A6A6A6A6A6A6A00F1
+:1073D000556A6A6A6A6A6A6A6A6A6A6A6A6A6AAAE2
+:1073E000556A6A6A6A6A6A6A6A6A6A6A6A6A6AAAD2
+:1073F000006A6A6A6A6A6A6A6A6A6A6A6A6A6A00C1
+:10740000006A6A6A6A6A6A6A6A6A6A6A6A6A6A00B0
+:1074100055AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA21
+:1074200055AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA11
+:1074300000AAAAAAAAAAAAAAAAAAAAAAAAAAAA0000
+:1074400000A9A9A9A9A9A9A9A9A9A9A9A9A9A800FF
+:1074500055A9A9A9A9A9A9A9A9A9A9A9A8A8A8AAF2
+:1074600055A9A9A9A9A9A9A9A9A9A9A9A8A8A8AAE2
+:1074700000A9A9A9A9A9A9A9A9A9A8A8A9A8A800D2
+:1074800000A9A9A9A9A9A9A9A9A9A9A8A8A8A800C2
+:1074900055A5A5A5A5A5A5A5A5A4A4A4A4A4A0AAF1
+:1074A00055A5A5A5A5A5A5A5A4A4A4A4A4A4A0AAE2
+:1074B00000A5A5A5A5A5A5A4A4A4A4A4A4A0A000D6
+:1074C00000A5A5A5A5A5A4A4A4A4A4A4A4A0A000C7
+:1074D00055A5A5A5A5A5A5A4A4A4A4A4A0A0A0AABB
+:1074E00055A5A5A5A5A5A5A4A4A4A4A4A0A0A0AAAB
+:1074F00055A5A5A5A5A5A5A4A4A4A4A4A0A0A0AA9B
+:1075000055A5A5A5A5A5A5A4A4A4A4A4A0A0A0AA8A
+:1075100055A5A5A5A5A5A5A4A4A4A4A4A0A0A0AA7A
+:1075200055A5A5A5A5A5A5A4A4A4A4A4A0A0A0AA6A
+:1075300055A5A5A5A5A5A5A4A4A4A4A4A0A0A0AA5A
+:1075400055A5A5A5A5A5A5A4A4A4A4A4A0A0A0AA4A
+:1075500055A5A5A5A5A5A5A4A4A4A4A4A0A0A0AA3A
+:1075600055A5A5A5A5A5A5A4A4A4A4A4A0A0A0AA2A
+:1075700055A5A5A5A5A5A5A4A4A4A4A4A0A0A0AA1A
+:1075800055A5A5A5A5A5A5A4A4A4A4A4A0A0A0AA0A
+:1075900055A5A5A5A5A5A5A4A4A4A4A4A0A0A0AAFA
+:1075A00055A5A5A5A5A5A5A4A4A4A4A4A0A0A0AAEA
+:1075B00055A5A5A5A5A5A5A4A4A4A4A4A0A0A0AADA
+:1075C00055A5A5A5A5A5A5A4A4A4A4A4A0A0A0A8CC
+:1075D00055A5A5A5A5A4A4A4A4A4A4A0A0A0A0AAC0
+:1075E00055A5A5A5A5A4A4A4A4A4A4A0A0A0A0AAB0
+:1075F00055A5A5A5A5A4A4A4A4A4A4A0A0A0A0AAA0
+:1076000055A5A5A5A5A4A4A4A4A4A4A0A0A0A0AA8F
+:1076100055A5A5A5A5A4A4A4A4A4A4A0A0A0A0AA7F
+:1076200055A5A5A5A5A4A4A4A4A4A4A0A0A0A0AA6F
+:1076300055A5A5A5A5A4A4A4A4A4A4A0A0A0A0AA5F
+:1076400055A5A5A5A5A4A4A4A4A4A4A0A0A0A0AA4F
+:1076500055A5A5A5A5A4A4A4A4A4A4A0A0A0A0AA3F
+:1076600055A5A5A5A5A4A4A4A4A4A4A0A0A0A0AA2F
+:1076700055A5A5A5A5A4A4A4A4A4A4A0A0A0A0AA1F
+:1076800055A5A5A5A5A4A4A4A4A4A4A0A0A0A0AA0F
+:1076900055A5A5A5A5A4A4A4A4A4A4A0A0A0A0AAFF
+:1076A00055A5A5A5A5A4A4A4A4A4A4A0A0A0A0AAEF
+:1076B00055A5A5A5A5A4A4A4A4A4A4A0A0A0A0AADF
+:1076C00055A5A5A5A5A4A4A4A4A4A4A0A0A0A0A8D1
+:1076D00000A5A5A5A5A4A4A4A4A4A0A0A0A0A000C2
+:1076E00000A5A5A5A4A4A4A4A4A4A0A0A0A0A000B3
+:1076F000559595959494949494909090909080AA98
+:10770000559595959494949494909090909080AA87
+:10771000559595959494949494909090909080AA77
+:10772000559595959494949494909090909080AA67
+:10773000559595959494949494909090909080AA57
+:10774000559595959494949494909090909080AA47
+:10775000559595959494949494909090909080AA37
+:10776000559595959494949494909090909080AA27
+:10777000559595959494949494909090909080AA17
+:10778000559595959494949494909090909080AA07
+:10779000559595959494949494909090909080AAF7
+:1077A000559595959494949494909090909080AAE7
+:1077B000559595959494949494909090909080AAD7
+:1077C000559595959494949494909090909080AAC7
+:1077D000559595959494949494909090909080AAB7
+:1077E000559595959494949494909090909080A8A9
+:1077F000559595949494949494909090909080AA98
+:10780000559595949494949494909090909080AA87
+:10781000559595949494949494909090909080AA77
+:10782000559595949494949494909090909080AA67
+:10783000559595949494949494909090909080AA57
+:10784000559595949494949494909090909080AA47
+:10785000559595949494949494909090909080AA37
+:10786000559595949494949494909090909080AA27
+:10787000559595949494949494909090909080AA17
+:10788000559595949494949494909090909080AA07
+:10789000559595949494949494909090909080AAF7
+:1078A000559595949494949494909090909080AAE7
+:1078B000559595949494949494909090909080AAD7
+:1078C000559595949494949494909090909080AAC7
+:1078D000559595949494949494909090909080AAB7
+:1078E000559595949494949494909090909080A8A9
+:1078F00000959595949494949090909090808000A9
+:10790000009595949494949090909090908080009D
+:10791000559594949494909090909090808080AAA3
+:10792000559594949494909090909090808080AA93
+:10793000559594949494909090909090808080AA83
+:10794000559594949494909090909090808080AA73
+:10795000559594949494909090909090808080AA63
+:10796000559594949494909090909090808080AA53
+:10797000559594949494909090909090808080AA43
+:10798000559594949494909090909090808080AA33
+:10799000559594949494909090909090808080AA23
+:1079A000559594949494909090909090808080AA13
+:1079B000559594949494909090909090808080AA03
+:1079C000559594949494909090909090808080AAF3
+:1079D000559594949494909090909090808080AAE3
+:1079E000559594949494909090909090808080AAD3
+:1079F000559594949494909090909090808080AAC3
+:107A0000559594949494909090909090808080A0BC
+:107A1000559594949494909090909080808080AAB2
+:107A2000559594949494909090909080808080AAA2
+:107A3000559594949494909090909080808080AA92
+:107A4000559594949494909090909080808080AA82
+:107A5000559594949494909090909080808080AA72
+:107A6000559594949494909090909080808080AA62
+:107A7000559594949494909090909080808080AA52
+:107A8000559594949494909090909080808080AA42
+:107A9000559594949494909090909080808080AA32
+:107AA000559594949494909090909080808080AA22
+:107AB000559594949494909090909080808080AA12
+:107AC000559594949494909090909080808080AA02
+:107AD000559594949494909090909080808080AAF2
+:107AE000559594949494909090909080808080AAE2
+:107AF000559594949494909090909080808080AAD2
+:107B0000559594949494909090909080808080A0CB
+:107B100000949494949090909090808080808000C5
+:107B200000949494949090909090808080808000B5
+:107B3000549494949090909090808080808080A8BD
+:107B4000549494949090909090808080808080A8AD
+:107B5000549494949090909090808080808080A89D
+:107B6000549494949090909090808080808080A88D
+:107B7000549494949090909090808080808080A87D
+:107B8000549494949090909090808080808080A86D
+:107B9000549494949090909090808080808080A85D
+:107BA000549494949090909090808080808080A84D
+:107BB000549494949090909090808080808080A83D
+:107BC000549494949090909090808080808080A82D
+:107BD000549494949090909090808080808080A81D
+:107BE000549494949090909090808080808080A80D
+:107BF000549494949090909090808080808080A8FD
+:107C0000549494949090909090808080808080A8EC
+:107C1000549494949090909090808080808080A8DC
+:107C2000549494949090909090808080808080A0D4
+:107C3000549494949090909090808080808080A8BC
+:107C4000549494949090909090808080808080A8AC
+:107C5000549494949090909090808080808080A89C
+:107C6000549494949090909090808080808080A88C
+:107C7000549494949090909090808080808080A87C
+:107C8000549494949090909090808080808080A86C
+:107C9000549494949090909090808080808080A85C
+:107CA000549494949090909090808080808080A84C
+:107CB000549494949090909090808080808080A83C
+:107CC000549494949090909090808080808080A82C
+:107CD000549494949090909090808080808080A81C
+:107CE000549494949090909090808080808080A80C
+:107CF000549494949090909090808080808080A8FC
+:107D0000549494949090909090808080808080A8EB
+:107D1000549494949090909090808080808080A8DB
+:107D2000549494949090909090808080808080A0D3
+:107D30000054545450505050404040404040000087
+:107D40000054545450505040404040404040000087
+:107D5000545454505050404040404040400000A8CF
+:107D6000545454505050404040404040400000A8BF
+:107D7000545454505050404040404040400000A8AF
+:107D8000545454505050404040404040400000A89F
+:107D9000545454505050404040404040400000A88F
+:107DA000545454505050404040404040400000A87F
+:107DB000545454505050404040404040400000A86F
+:107DC000545454505050404040404040400000A85F
+:107DD000545454505050404040404040400000A84F
+:107DE000545454505050404040404040400000A83F
+:107DF000545454505050404040404040400000A82F
+:107E0000545454505050404040404040400000A81E
+:107E1000545454505050404040404040400000A80E
+:107E2000545454505050404040404040400000A8FE
+:107E3000545454505050404040404040400000A8EE
+:107E40005454545050504040404040404000008006
+:107E5000545450505050404040404040000000A812
+:107E6000545450505050404040404040000000A802
+:107E7000545450505050404040404040000000A8F2
+:107E8000545450505050404040404040000000A8E2
+:107E9000545450505050404040404040000000A8D2
+:107EA000545450505050404040404040000000A8C2
+:107EB000545450505050404040404040000000A8B2
+:107EC000545450505050404040404040000000A8A2
+:107ED000545450505050404040404040000000A892
+:107EE000545450505050404040404040000000A882
+:107EF000545450505050404040404040000000A872
+:107F0000545450505050404040404040000000A861
+:107F1000545450505050404040404040000000A851
+:107F2000545450505050404040404040000000A841
+:107F3000545450505050404040404040000000A831
+:107F40005454505050504040404040400000008049
+:107F50000050505050404040404040000000000061
+:107F60000C5C5C5C5C4C4C4C4C4C4C0C0C0C0C0C91
+:107F7000505050504040404040400000000000A0A1
+:107F8000505050504040404040400000000000A091
+:107F9000505050504040404040400000000000A081
+:107FA000505050504040404040400000000000A071
+:107FB000505050504040404040400000000000A061
+:107FC000505050504040404040400000000000A051
+:107FD000505050504040404040400000000000A041
+:107FE000505050504040404040400000000000A031
+:107FF000505050504040404040400000000000A021
+:10800000505050504040404040400000000000A010
+:10801000505050504040404040400000000000A000
+:10802000505050504040404040400000000000A0F0
+:10803000505050504040404040400000000000A0E0
+:10804000505050504040404040400000000000A0D0
+:10805000505050504040404040400000000000A0C0
+:1080600050505050404040404040000000000080D0
+:10807000505050504040404040400000000000A0A0
+:10808000505050504040404040400000000000A090
+:10809000505050504040404040400000000000A080
+:1080A000505050504040404040400000000000A070
+:1080B000505050504040404040400000000000A060
+:1080C000505050504040404040400000000000A050
+:1080D000505050504040404040400000000000A040
+:1080E000505050504040404040400000000000A030
+:1080F000505050504040404040400000000000A020
+:10810000505050504040404040400000000000A00F
+:10811000505050504040404040400000000000A0FF
+:10812000505050504040404040400000000000A0EF
+:10813000505050504040404040400000000000A0DF
+:10814000505050504040404040400000000000A0CF
+:10815000505050504040404040400000000000A0BF
+:1081600050505050404040404040000000000080CF
+:10817000005050504040404040400000000000008F
+:10818000005050504040404040400000000000007F
+:10819000505050404040404040000000000000A0CF
+:1081A000505050404040404040000000000000A0BF
+:1081B000505050404040404040000000000000A0AF
+:1081C000505050404040404040000000000000A09F
+:1081D000505050404040404040000000000000A08F
+:1081E000505050404040404040000000000000A07F
+:1081F000505050404040404040000000000000A06F
+:10820000505050404040404040000000000000A05E
+:10821000505050404040404040000000000000A04E
+:10822000505050404040404040000000000000A03E
+:10823000505050404040404040000000000000A02E
+:10824000505050404040404040000000000000A01E
+:10825000505050404040404040000000000000A00E
+:10826000505050404040404040000000000000A0FE
+:10827000505050404040404040000000000000A0EE
+:1082800050505040404040404000000000000080FE
+:10829000505040404040404040000000000000A0DE
+:1082A000505040404040404040000000000000A0CE
+:1082B000505040404040404040000000000000A0BE
+:1082C000505040404040404040000000000000A0AE
+:1082D000505040404040404040000000000000A09E
+:1082E000505040404040404040000000000000A08E
+:1082F000505040404040404040000000000000A07E
+:10830000505040404040404040000000000000A06D
+:10831000505040404040404040000000000000A05D
+:10832000505040404040404040000000000000A04D
+:10833000505040404040404040000000000000A03D
+:10834000505040404040404040000000000000A02D
+:10835000505040404040404040000000000000A01D
+:10836000505040404040404040000000000000A00D
+:10837000505040404040404040000000000000A0FD
+:10838000505040404040404040000000000000800D
+:10839000004040404040404000000000000000001D
+:1083A000307070707070703030303030303030304D
+:1083B00040404040404000000000000000000080BD
+:1083C00040404040404000000000000000000080AD
+:1083D000004040404000000000000000000000009D
+:1083E000004040404000000000000000000000008D
+:1083F00040404040000000000000000000000080FD
+:1084000040404040000000000000000000000080EC
+:10841000004040400000000000000000000000009C
+:10842000004040400000000000000000000000008C
+:1084300040404000000000000000000000000080FC
+:10844000404000000000000000000000000000802C
+:10845000000000000000000000000000000000001C
+:10846000C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C00C
+:1084700000000000000000000000000000000000FC
+:1084800000000000000000000000000000000000EC
+:1084900000000000000000000000000000000000DC
+:1084A00000000000000000000000000000000000CC
+:1084B00000000000000000000000000000000000BC
+:1084C00000000000000000000000000000000000AC
+:1084D000000000000000000000000000000000009C
+:1084E000000000000000000000000000000000008C
+:1084F000000000000000000000000000000000007C
+:10850000AA5555A9A9A9A9A9A9A9A9A9A9A9A955D6
+:10851000AA555555555555555555555555555555B6
+:10852000AA555555555555555555555555555555A6
+:10853000AA55555555555555555555555555555596
+:10854000AA55555555555555555555555555555586
+:10855000AA55555555555555555555555555555576
+:10856000AA55555555555555555555555555555566
+:10857000AA55555555555555555555555555555556
+:10858000AA55555555555555555555555555555546
+:10859000AA55555555555555555555555555555536
+:1085A000AA55555555555555555555555555555526
+:1085B000AA55555555555555555555555555555516
+:1085C000AA55555555555555555555555555555506
+:1085D000AA555555555555555555555555555555F6
+:1085E000AA555555555555555555555555555555E6
+:1085F000AA555A6A6AAAAAAAAAAAAAAAAAAAAA00AA
+:10860000AA5555A9A9A9A9A9A9A9A9A9A9A9A955D5
+:10861000AA555555555555555555555555555555B5
+:10862000AA555555555555555555555555555555A5
+:10863000AA55555555555555555555555555555595
+:10864000AA55555555555555555555555555555585
+:10865000AA55555555555555555555555555555575
+:10866000AA55555555555555555555555555555565
+:10867000AA55555555555555555555555555555555
+:10868000AA55555555555555555555555555555545
+:10869000AA55555555555555555555555555555535
+:1086A000AA55555555555555555555555555555525
+:1086B000AA55555555555555555555555555555515
+:1086C000AA55555555555555555555555555555505
+:1086D000AA555555555555555555555555555555F5
+:1086E000AA555555555555555555555555555555E5
+:1086F000AA555A5A6A6AAAAAAAAAAAAAAAAAAA00F9
+:1087000000555555A9A9A9A9A9A9A9A9A9A9A90027
+:1087100000555555555555555555555555555500B3
+:1087200000555555555555555555555555555500A3
+:108730000055555555555555555555555555550093
+:108740000055555555555555555555555555550083
+:108750000055555555555555555555555555550073
+:108760000055555555555555555555555555550063
+:108770000055555555555555555555555555550053
+:108780000055555555555555555555555555550043
+:108790000055555555555555555555555555550033
+:1087A0000055555555555555555555555555550023
+:1087B0000055555555555555555555555555550013
+:1087C0000055555555555555555555555555550003
+:1087D00000555555555555555555555555555500F3
+:1087E00000555555555555555555555555555500E3
+:1087F0000055565A5A6AAAAAAAAAAAAAAAAAAA00B6
+:10880000005555556969A9A9A9A9A9A9A9A9A900A6
+:1088100000555555555555555555555555555500B2
+:1088200000555555555555555555555555555500A2
+:108830000055555555555555555555555555550092
+:108840000055555555555555555555555555550082
+:108850000055555555555555555555555555550072
+:108860000055555555555555555555555555550062
+:108870000055555555555555555555555555550052
+:108880000055555555555555555555555555550042
+:108890000055555555555555555555555555550032
+:1088A0000055555555555555555555555555550022
+:1088B0000055555555555555555555555555550012
+:1088C0000055555555555555555555555555550002
+:1088D00000555555555555555555555555555500F2
+:1088E00000555555555555555555555555555500E2
+:1088F0000055565A5A5AAAAAAAAAAAAAAAAAAA00C5
+:10890000AA5555555555A9A9A9A9A9A9A9A9A955CE
+:10891000AA555555555555555555555555555555B2
+:10892000AA555555555555555555555555555555A2
+:10893000AA55555555555555555555555555555592
+:10894000AA55555555555555555555555555555582
+:10895000AA55555555555555555555555555555572
+:10896000AA55555555555555555555555555555562
+:10897000AA55555555555555555555555555555552
+:10898000AA55555555555555555555555555555542
+:10899000AA55555555555555555555555555555532
+:1089A000AA55555555555555555555555555555522
+:1089B000AA55555555555555555555555555555512
+:1089C000AA55555555555555555555555555555502
+:1089D000AA555555555555555555555555555555F2
+:1089E000AA555555555555555555555555555555E2
+:1089F000AA55555A5A5AAAAAAAAAAAAAAAAAAA001B
+:108A0000AA5555555555A9A9A9A9A9A9A9A9A955CD
+:108A1000AA555555555555555555555555555555B1
+:108A2000AA555555555555555555555555555555A1
+:108A3000AA55555555555555555555555555555591
+:108A4000AA55555555555555555555555555555581
+:108A5000AA55555555555555555555555555555571
+:108A6000AA55555555555555555555555555555561
+:108A7000AA55555555555555555555555555555551
+:108A8000AA55555555555555555555555555555541
+:108A9000AA55555555555555555555555555555531
+:108AA000AA55555555555555555555555555555521
+:108AB000AA55555555555555555555555555555511
+:108AC000AA55555555555555555555555555555501
+:108AD000AA555555555555555555555555555555F1
+:108AE000AA555555555555555555555555555555E1
+:108AF000AA55555A5A5AAAAAAAAAAAAAAAAAAA001A
+:108B000000555555555595A9A9A9A9A9A9A9AA00DE
+:108B100000555555555555555555555555555600AE
+:108B2000005555555555555555555555555555009F
+:108B3000005555555555555555555555555555008F
+:108B4000005555555555555555555555555555007F
+:108B5000005555555555555555555555555555006F
+:108B6000005555555555555555555555555555005F
+:108B7000005555555555555555555555555555004F
+:108B8000005555555555555555555555555555003F
+:108B9000005555555555555555555555555555002F
+:108BA000005555555555555555555555555555001F
+:108BB000005555555555555555555555555555000F
+:108BC00000555555555555555555555555555500FF
+:108BD00000555555555555555555555555555500EF
+:108BE00000555555555555555555555555555500DF
+:108BF000005555565A5A5AAAAAAAAAAAAAAAAA0017
+:108C000000555555555555A9A9A9A9A9A9A9AA001D
+:108C100000555555555555555555555555555600AD
+:108C2000005555555555555555555555555556009D
+:108C3000005555555555555555555555555555008E
+:108C4000005555555555555555555555555555007E
+:108C5000005555555555555555555555555555006E
+:108C6000005555555555555555555555555555005E
+:108C7000005555555555555555555555555555004E
+:108C8000005555555555555555555555555555003E
+:108C9000005555555555555555555555555555002E
+:108CA000005555555555555555555555555555001E
+:108CB000005555555555555555555555555555000E
+:108CC00000555555555555555555555555555500FE
+:108CD00000555555555555555555555555555500EE
+:108CE00000555555555555555555555555555500DE
+:108CF000005555565A5A5AAAAAAAAAAAAAAAAA0016
+:108D0000AA555555555555A5A9A9A9A9A9A9AA5521
+:108D1000AA555555555555555555555555555655AD
+:108D2000AA5555555555555555555555555556559D
+:108D3000AA5555555555555555555555555556558D
+:108D4000AA5555555555555555555555555555557E
+:108D5000AA5555555555555555555555555555556E
+:108D6000AA5555555555555555555555555555555E
+:108D7000AA5555555555555555555555555555554E
+:108D8000AA5555555555555555555555555555553E
+:108D9000AA5555555555555555555555555555552E
+:108DA000AA5555555555555555555555555555551E
+:108DB000AA5555555555555555555555555555550E
+:108DC000AA555555555555555555555555555555FE
+:108DD000AA555555555555555555555555555555EE
+:108DE000AA555555555555555555555555555555DE
+:108DF000AA555555565A5A5AAAAAAAAAAAAAAA00C0
+:108E0000AA55555555555595A5A5A5A9A9A9AA553C
+:108E1000AA555555555555555555555555555655AC
+:108E2000AA5555555555555555555555555556559C
+:108E3000AA5555555555555555555555555556558C
+:108E4000AA5555555555555555555555555556557C
+:108E5000AA5555555555555555555555555556556C
+:108E6000AA5555555555555555555555555556555C
+:108E7000AA5555555555555555555555555556554C
+:108E8000AA5555555555555555555555555556553C
+:108E9000AA5555555555555555555555555556552C
+:108EA000AA5555555555555555555555555556551C
+:108EB000AA5555555555555555555555555556550C
+:108EC000AA555555555555555555555555555655FC
+:108ED000AA555555555555555555555555555555ED
+:108EE000AA555555555555555555555555555555DD
+:108EF000AA55555556565A5AAAAAAAAAAAAAAA00C3
+:108F00000055555555555555959595A5A9AAAA00AD
+:108F100000555555555555555555555555565600A9
+:108F2000005555555555555555555555555556009A
+:108F3000005555555555555555555555555556008A
+:108F4000005555555555555555555555555556007A
+:108F5000005555555555555555555555555556006A
+:108F6000005555555555555555555555555556005A
+:108F7000005555555555555555555555555556004A
+:108F8000005555555555555555555555555556003A
+:108F9000005555555555555555555555555556002A
+:108FA000005555555555555555555555555556001A
+:108FB000005555555555555555555555555556000A
+:108FC00000555555555555555555555555555600FA
+:108FD00000555555555555555555555555555600EA
+:108FE00000555555555555555555555555555500DB
+:108FF0000055555555555A5AAAAAAAAAAAAAAA006E
+:10900000005555555555555595955596A6A6A60006
+:1090100000555555555555555555555656565600A6
+:109020000055555555555555555555555556560098
+:109030000055555555555555555555555555560089
+:109040000055555555555555555555555555560079
+:109050000055555555555555555555555555560069
+:109060000055555555555555555555555555560059
+:109070000055555555555555555555555555560049
+:109080000055555555555555555555555555560039
+:109090000055555555555555555555555555560029
+:1090A0000055555555555555555555555555560019
+:1090B0000055555555555555555555555555560009
+:1090C00000555555555555555555555555555600F9
+:1090D00000555555555555555555555555555600E9
+:1090E00000555555555555555555555555555600D9
+:1090F0000055555555555559AAAAAAAAAAAAAA0073
+:10910000AA5555AAAAAAAAAAAAAAAAAAAAAAAA55BE
+:10911000AA5555565656565656565656565656559E
+:10912000AA55555555555555555555565656565596
+:10913000AA55555555555555555555555556565588
+:10914000AA55555555555555555555555555565579
+:10915000AA55555555555555555555555555565569
+:10916000AA55555555555555555555555555565559
+:10917000AA55555555555555555555555555565549
+:10918000AA55555555555555555555555555565539
+:10919000AA55555555555555555555555555565529
+:1091A000AA55555555555555555555555555565519
+:1091B000AA55555555555555555555555555565509
+:1091C000AA555555555555555555555555555655F9
+:1091D000AA555555555555555555555555555655E9
+:1091E000AA555555555555555555555555555655D9
+:1091F000AA5555555555555559AAAAAAAAAAAA55C8
+:10920000AA556AAAAAAAAAAAAAAAAAAAAAAAAA55A8
+:10921000AA5556AAAAAAAAAAAAAAAAAAAAAAAA55AC
+:10922000AA5555AAAAAAAAAAAAAAAAAAAAAAAA559D
+:10923000AA5555A9A9A9A9A9A9A9A9AAAAAAAA5595
+:10924000AA5555A9A9A9A9A9A9A9A9A9A9AAAA5587
+:10925000AA5555A9A9A9A9A9A9A9A9A9A9AAAA5577
+:10926000AA5555A9A9A9A9A9A9A9A9A9A9AAAA5567
+:10927000AA5555A9A9A9A9A9A9A9A9A9A9AAAA5557
+:10928000AA5555A9A9A9A9A9A9A9A9A9A9AAAA5547
+:10929000AA5555A9A9A9A9A9A9A9A9A9A9AAAA5537
+:1092A000AA5555A9A9A9A9A9A9A9A9A9A9AAAA5527
+:1092B000AA55555555555555555555555556565507
+:1092C000AA555555555555555555555555565655F7
+:1092D000AA555555555555555555555555555655E8
+:1092E000AA555555555555555555555555555655D8
+:1092F000AA55555555555555556969AAAAAAAA554D
+:109300000055AAAAAAAAAAAAAAAAAAAAAAAAAA0066
+:109310000055AAAAAAAAAAAAAAAAAAAAAAAAAA0056
+:109320000055AAAAAAAAAAAAAAAAAAAAAAAAAA0046
+:109330000055A9AAAAAAAAAAAAAAAAAAAAAAAA0037
+:109340000055A9A9A9A9A9A9A9A9A9AAAAAAAA002F
+:109350000055A9A9A9A9A9A9A9A9A9AAAAAAAA001F
+:109360000055A9A9A9A9A9A9A9A9A9AAAAAAAA000F
+:109370000055A9A9A9A9A9A9A9A9A9AAAAAAAA00FF
+:109380000055A9A9A9A9A9A9A9A9A9AAAAAAAA00EF
+:109390000055A9A9A9A9A9A9A9A9A9AAAAAAAA00DF
+:1093A0000055A9A9A9A9A9A9A9A9A9AAAAAAAA00CF
+:1093B000005555A9A9A9A9A9A9A9A9AAAAAAAA0013
+:1093C00000555555555555555555555656565600F3
+:1093D0000055555555555555555555555556AA0091
+:1093E00000555555555555555555555555555600D6
+:1093F000005555555555555555555569AAAAAA00B4
+:109400000055AAAAAAAAAAAAAAAAAAAAAAAAAA0065
+:1094100000A9AAAAAAAAAAAAAAAAAAAAAAAAAA0001
+:1094200000A9AAAAAAAAAAAAAAAAAAAAAAAAAA00F1
+:1094300000A9AAAAAAAAAAAAAAAAAAAAAAAAAA00E1
+:1094400000A9A9AAAAAAAAAAAAAAAAAAAAAAAA00D2
+:1094500000A9A9AAAAAAAAAAAAAAAAAAAAAAAA00C2
+:1094600000A9A9AAAAAAAAAAAAAAAAAAAAAAAA00B2
+:1094700000A9A9AAAAAAAAAAAAAAAAAAAAAAAA00A2
+:1094800000A9A9AAAAAAAAAAAAAAAAAAAAAAAA0092
+:1094900000A9A9AAAAAAAAAAAAAAAAAAAAAAAA0082
+:1094A00000A9A9AAAAAAAAAAAAAAAAAAAAAAAA0072
+:1094B0000055A9AAAAAAAAAAAAAAAAAAAAAAAA00B6
+:1094C000005555A9A9A9A9A9A9A9A9AAAAAAAA0002
+:1094D0000055555555555555555555565656AA008E
+:1094E00000555555555555555555555555565600D4
+:1094F000005555555555555555555555A9AA56001C
+:10950000AA55AAAAAAAAAAAAAAAAAAAAAAAAAA5565
+:10951000AAA9AAAAAAAAAAAAAAAAAAAAAAAAAA5501
+:10952000AAA9AAAAAAAAAAAAAAAAAAAAAAAAAA55F1
+:10953000AAA9AAAAAAAAAAAAAAAAAAAAAAAAAA55E1
+:10954000AAA9AAAAAAAAAAAAAAAAAAAAAAAAAA55D1
+:10955000AAA9AAAAAAAAAAAAAAAAAAAAAAAAAA55C1
+:10956000AAA9AAAAAAAAAAAAAAAAAAAAAAAAAA55B1
+:10957000AAA9AAAAAAAAAAAAAAAAAAAAAAAAAA55A1
+:10958000AAA9AAAAAAAAAAAAAAAAAAAAAAAAAA5591
+:10959000AAA9AAAAAAAAAAAAAAAAAAAAAAAAAA5581
+:1095A000AAA9AAAAAAAAAAAAAAAAAAAAAAAAAA5571
+:1095B000AAA9AAAAAAAAAAAAAAAAAAAAAAAAAA5561
+:1095C000AA55A9AAAAAAAAAAAAAAAAAAAAAAAA55A6
+:1095D000AA5555AAAAAAAAAAAAAAAAAAAAAAAA55EA
+:1095E000AA555555555555555555555656565655D2
+:1095F000AA55555555555555555555559595565545
+:10960000AA56AAAAAAAAAAAAAAAAAAAAAAAAAA5563
+:10961000AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA55FF
+:10962000AAA9AAAAAAAAAAAAAAAAAAAAAAAAAA55F0
+:10963000AAA9AAAAAAAAAAAAAAAAAAAAAAAAAA55E0
+:10964000AAA9AAAAAAAAAAAAAAAAAAAAAAAAAA55D0
+:10965000AAA9AAAAAAAAAAAAAAAAAAAAAAAAAA55C0
+:10966000AAA9AAAAAAAAAAAAAAAAAAAAAAAAAA55B0
+:10967000AAA9AAAAAAAAAAAAAAAAAAAAAAAAAA55A0
+:10968000AAA9AAAAAAAAAAAAAAAAAAAAAAAAAA5590
+:10969000AAA9AAAAAAAAAAAAAAAAAAAAAAAAAA5580
+:1096A000AAA9AAAAAAAAAAAAAAAAAAAAAAAAAA5570
+:1096B000AAA9AAAAAAAAAAAAAAAAAAAAAAAAAA5560
+:1096C000AAA9AAAAAAAAAAAAAAAAAAAAAAAAAA5550
+:1096D000AA55AAAAAAAAAAAAAAAAAAAAAAAAAA5594
+:1096E000AA5555AAAAAAAAAAAAAAAAAAAAAAAA55D9
+:1096F000AA55555555555555555555559595555545
+:1097000000AAAAAAAAAAAAAAAAAAAAAAAAAAAA000D
+:1097100000AAAAAAAAAAAAAAAAAAAAAAAAAAAA00FD
+:1097200000AAAAAAAAAAAAAAAAAAAAAAAAAAAA00ED
+:1097300000A9AAAAAAAAAAAAAAAAAAAAAAAAAA00DE
+:1097400000A9AAAAAAAAAAAAAAAAAAAAAAAAAA00CE
+:1097500000A9AAAAAAAAAAAAAAAAAAAAAAAAAA00BE
+:1097600000A9AAAAAAAAAAAAAAAAAAAAAAAAAA00AE
+:1097700000A9AAAAAAAAAAAAAAAAAAAAAAAAAA009E
+:1097800000A9AAAAAAAAAAAAAAAAAAAAAAAAAA008E
+:1097900000A9AAAAAAAAAAAAAAAAAAAAAAAAAA007E
+:1097A00000A9AAAAAAAAAAAAAAAAAAAAAAAAAA006E
+:1097B00000A9AAAAAAAAAAAAAAAAAAAAAAAAAA005E
+:1097C00000A9AAAAAAAAAAAAAAAAAAAAAAAAAA004E
+:1097D00000A9AAAAAAAAAAAAAAAAAAAAAAAAAA003E
+:1097E0000055AAAAAAAAAAAAAAAAAAAAAAAAAA0082
+:1097F00000555555555555555555555555555500C3
+:1098000000AAAAAAAAAAAAAAAAAAAAAAAAAAAA000C
+:1098100000AAAAAAAAAAAAAAAAAAAAAAAAAAAA00FC
+:1098200000AAAAAAAAAAAAAAAAAAAAAAAAAAAA00EC
+:1098300000AAAAAAAAAAAAAAAAAAAAAAAAAAAA00DC
+:1098400000A9AAAAAAAAAAAAAAAAAAAAAAAAAA00CD
+:1098500000A9AAAAAAAAAAAAAAAAAAAAAAAAAA00BD
+:1098600000A9AAAAAAAAAAAAAAAAAAAAAAAAAA00AD
+:1098700000A9AAAAAAAAAAAAAAAAAAAAAAAAAA009D
+:1098800000A9AAAAAAAAAAAAAAAAAAAAAAAAAA008D
+:1098900000A9AAAAAAAAAAAAAAAAAAAAAAAAAA007D
+:1098A00000A9AAAAAAAAAAAAAAAAAAAAAAAAAA006D
+:1098B00000A9AAAAAAAAAAAAAAAAAAAAAAAAAA005D
+:1098C00000A9AAAAAAAAAAAAAAAAAAAAAAAAAA004D
+:1098D00000A9AAAAAAAAAAAAAAAAAAAAAAAAAA003D
+:1098E00000A9AAAAAAAAAAAAAAAAAAAAAAAAAA002D
+:1098F00000555555555555555555555555555500C2
+:10990000AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA550C
+:10991000AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA55FC
+:10992000AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA55EC
+:10993000AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA55DC
+:10994000AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA55CC
+:10995000AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA55BC
+:10996000AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA55AC
+:10997000AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA559C
+:10998000AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA558C
+:10999000AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA557C
+:1099A000AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA556C
+:1099B000AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA555C
+:1099C000AAA9AAAAAAAAAAAAAAAAAAAAAAAAAA554D
+:1099D000AAA9AAAAAAAAAAAAAAAAAAAAAAAAAA553D
+:1099E000AAA9AAAAAAAAAAAAAAAAAAAAAAAAAA552D
+:1099F000AA555555555555555555555555555555C2
+:109A0000AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA550B
+:109A1000AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA55FB
+:109A2000AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA55EB
+:109A3000AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA55DB
+:109A4000AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA55CB
+:109A5000AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA55BB
+:109A6000AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA55AB
+:109A7000AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA559B
+:109A8000AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA558B
+:109A9000AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA557B
+:109AA000AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA556B
+:109AB000AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA555B
+:109AC000AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA554B
+:109AD000AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA553B
+:109AE000AAA9AAAAAAAAAAAAAAAAAAAAAAAAAA552C
+:109AF000AA555555555555555555555555555555C1
+:109B000000AAAAAAAAAAAAAAAAAAAAAAAAAAAA0009
+:109B100000AAAAAAAAAAAAAAAAAAAAAAAAAAAA00F9
+:109B200000AAAAAAAAAAAAAAAAAAAAAAAAAAAA00E9
+:109B300000AAAAAAAAAAAAAAAAAAAAAAAAAAAA00D9
+:109B400000AAAAAAAAAAAAAAAAAAAAAAAAAAAA00C9
+:109B500000AAAAAAAAAAAAAAAAAAAAAAAAAAAA00B9
+:109B600000AAAAAAAAAAAAAAAAAAAAAAAAAAAA00A9
+:109B700000AAAAAAAAAAAAAAAAAAAAAAAAAAAA0099
+:109B800000AAAAAAAAAAAAAAAAAAAAAAAAAAAA0089
+:109B900000AAAAAAAAAAAAAAAAAAAAAAAAAAAA0079
+:109BA00000AAAAAAAAAAAAAAAAAAAAAAAAAAAA0069
+:109BB00000AAAAAAAAAAAAAAAAAAAAAAAAAAAA0059
+:109BC00000AAAAAAAAAAAAAAAAAAAAAAAAAAAA0049
+:109BD00000AAAAAAAAAAAAAAAAAAAAAAAAAAAA0039
+:109BE00000AAAAAAAAAAAAAAAAAAAAAAAAAAAA0029
+:109BF00000555555555555555555555555555500BF
+:109C000000AAAAAAAAAAAAAAAAAAAAAAAAAAAA0008
+:109C100000AAAAAAAAAAAAAAAAAAAAAAAAAAAA00F8
+:109C200000AAAAAAAAAAAAAAAAAAAAAAAAAAAA00E8
+:109C300000AAAAAAAAAAAAAAAAAAAAAAAAAAAA00D8
+:109C400000AAAAAAAAAAAAAAAAAAAAAAAAAAAA00C8
+:109C500000AAAAAAAAAAAAAAAAAAAAAAAAAAAA00B8
+:109C600000AAAAAAAAAAAAAAAAAAAAAAAAAAAA00A8
+:109C700000AAAAAAAAAAAAAAAAAAAAAAAAAAAA0098
+:109C800000AAAAAAAAAAAAAAAAAAAAAAAAAAAA0088
+:109C900000AAAAAAAAAAAAAAAAAAAAAAAAAAAA0078
+:109CA00000AAAAAAAAAAAAAAAAAAAAAAAAAAAA0068
+:109CB00000AAAAAAAAAAAAAAAAAAAAAAAAAAAA0058
+:109CC00000AAAAAAAAAAAAAAAAAAAAAAAAAAAA0048
+:109CD00000AAAAAAAAAAAAAAAAAAAAAAAAAAAA0038
+:109CE00000AAAAAAAAAAAAAAAAAAAAAAAAAAAA0028
+:109CF00000555555555555555555555555555500BE
+:109D0000AAAA0000000000000000000000000055AA
+:109D1000AAAAA800000000000000000000000055F2
+:109D200000AAAAA800000000000000000000000037
+:109D300055AAAAA8000000000000000000000000D2
+:109D400055AAAAA8000000000000000000000000C2
+:109D500055AAAAA8000000000000000000000000B2
+:109D600055AAAAA8000000000000000000000000A2
+:109D700055AAAAA800000000000000000000000092
+:109D800055AAAAA800000000000000000000000082
+:109D900055AAAAA800000000000000000000000072
+:109DA00055AAAAA800000000000000000000000062
+:109DB00055AAAAA800000000000000000000000052
+:109DC00055AAAAA800000000000000000000000042
+:109DD00055AAAAA800000000000000000000000032
+:109DE00055AAAAA800000000000000000000000022
+:109DF00055AAAAA800000000000000000000000012
+:109E000055AAAAA800000000000000000000000001
+:109E100055AAAAA8000000000000000000000000F1
+:109E200000AAAAAA00000000000000000000000034
+:109E300055AAAAAA000000000000000000000000CF
+:109E400055AAAAAA000000000000000000000000BF
+:109E500055AAAAAA000000000000000000000000AF
+:109E600055AAAAAA0000000000000000000000009F
+:109E700055AAAAAA0000000000000000000000008F
+:109E800055AAAAAA0000000000000000000000007F
+:109E900055AAAAAA0000000000000000000000006F
+:109EA00055AAAAAA0000000000000000000000005F
+:109EB00055AAAAAA0000000000000000000000004F
+:109EC00055AAAAAA0000000000000000000000003F
+:109ED00055AAAAAA0000000000000000000000002F
+:109EE00055AAAAAA0000000000000000000000001F
+:109EF00055AAAAAA0000000000000000000000000F
+:109F000055AAAAAA000000000000000000000000FE
+:109F100055AAAAAA000000000000000000000000EE
+:109F2000AAAAAAA800000000000000000000005536
+:109F300000AAAAA8000000000000000000000055D0
+:109F400000AAAAA8000000000000000000000055C0
+:109F500000AAAAA8000000000000000000000055B0
+:109F600000AAAAA8000000000000000000000055A0
+:109F700000AAAAA800000000000000000000005590
+:109F800000AAAAA800000000000000000000005580
+:109F900000AAAAA800000000000000000000005570
+:109FA00000AAAAA800000000000000000000005560
+:109FB00000AAAAA800000000000000000000005550
+:109FC00000AAAAA800000000000000000000005540
+:109FD00000AAAAA800000000000000000000005530
+:109FE00000AAAAA800000000000000000000005520
+:109FF00000AAAAA800000000000000000000005510
+:10A0000000AAAAA8000000000000000000000055FF
+:10A0100000AAAAA8000000000000000000000055EF
+:10A02000AAAAAAAA00000000000000000000005533
+:10A0300000AAAAAA000000000000000000000055CD
+:10A0400000AAAAAA000000000000000000000055BD
+:10A0500000AAAAAA000000000000000000000055AD
+:10A0600000AAAAAA0000000000000000000000559D
+:10A0700000AAAAAA0000000000000000000000558D
+:10A0800000AAAAAA0000000000000000000000557D
+:10A0900000AAAAAA0000000000000000000000556D
+:10A0A00000AAAAAA0000000000000000000000555D
+:10A0B00000AAAAAA0000000000000000000000554D
+:10A0C00000AAAAAA0000000000000000000000553D
+:10A0D00000AAAAAA0000000000000000000000552D
+:10A0E00000AAAAAA0000000000000000000000551D
+:10A0F00000AAAAAA0000000000000000000000550D
+:10A1000000AAAAAA000000000000000000000055FC
+:10A1100000AAAAAA000000000000000000000055EC
+:10A1200000AAAAAAA8000000000000000000000089
+:10A1300055AAAAAAA8000000000000000000000024
+:10A1400055AAAAAAA8000000000000000000000014
+:10A1500055AAAAAAA8000000000000000000000004
+:10A1600055AAAAAAA80000000000000000000000F4
+:10A1700055AAAAAAA80000000000000000000000E4
+:10A1800055AAAAAAA80000000000000000000000D4
+:10A1900055AAAAAAA80000000000000000000000C4
+:10A1A00055AAAAAAA80000000000000000000000B4
+:10A1B00055AAAAAAA80000000000000000000000A4
+:10A1C00055AAAAAAA8000000000000000000000094
+:10A1D00055AAAAAAA8000000000000000000000084
+:10A1E00055AAAAAAA8000000000000000000000074
+:10A1F00055AAAAAAA8000000000000000000000064
+:10A2000055AAAAAAA8000000000000000000000053
+:10A2100055AAAAAAA8000000000000000000000043
+:10A2200000AAAAAAAA000000000000000000000086
+:10A2300055AAAAAAAA000000000000000000000021
+:10A2400055AAAAAAAA000000000000000000000011
+:10A2500055AAAAAAAA000000000000000000000001
+:10A2600055AAAAAAAA0000000000000000000000F1
+:10A2700055AAAAAAAA0000000000000000000000E1
+:10A2800055AAAAAAAA0000000000000000000000D1
+:10A2900055AAAAAAAA0000000000000000000000C1
+:10A2A00055AAAAAAAA0000000000000000000000B1
+:10A2B00055AAAAAAAA0000000000000000000000A1
+:10A2C00055AAAAAAAA000000000000000000000091
+:10A2D00055AAAAAAAA000000000000000000000081
+:10A2E00055AAAAAAAA000000000000000000000071
+:10A2F00055AAAAAAAA000000000000000000000061
+:10A3000055AAAAAAAA000000000000000000000050
+:10A3100055AAAAAAAA000000000000000000000040
+:10A32000AAAAAAAAAAA800000000000000000055DE
+:10A3300000AAAAAAAAA80000000000000000005578
+:10A3400000AAAAAAAAA80000000000000000005568
+:10A3500000AAAAAAAAA80000000000000000005558
+:10A3600000AAAAAAAAA80000000000000000005548
+:10A3700000AAAAAAAAA80000000000000000005538
+:10A3800000AAAAAAAAA80000000000000000005528
+:10A3900000AAAAAAAAA80000000000000000005518
+:10A3A00000AAAAAAAAA80000000000000000005508
+:10A3B00000AAAAAAAAA800000000000000000055F8
+:10A3C00000AAAAAAAAA800000000000000000055E8
+:10A3D00000AAAAAAAAA800000000000000000055D8
+:10A3E00000AAAAAAAAA800000000000000000055C8
+:10A3F00000AAAAAAAAA800000000000000000055B8
+:10A4000000AAAAAAAAA800000000000000000055A7
+:10A4100000AAAAAAAAA80000000000000000005597
+:10A42000AAAAAAAAAAAA02000000000000000055D9
+:10A4300000AAAAAAAAAA0200000000000000005573
+:10A4400000AAAAAAAAAA0200000000000000005563
+:10A4500000AAAAAAAAAA0200000000000000005553
+:10A4600000AAAAAAAAAA0200000000000000005543
+:10A4700000AAAAAAAAAA0200000000000000005533
+:10A4800000AAAAAAAAAA0200000000000000005523
+:10A4900000AAAAAAAAAA0200000000000000005513
+:10A4A00000AAAAAAAAAA0200000000000000005503
+:10A4B00000AAAAAAAAAA02000000000000000055F3
+:10A4C00000AAAAAAAAAA02000000000000000055E3
+:10A4D00000AAAAAAAAAA02000000000000000055D3
+:10A4E00000AAAAAAAAAA02000000000000000055C3
+:10A4F00000AAAAAAAAAA02000000000000000055B3
+:10A5000000AAAAAAAAAA02000000000000000055A2
+:10A5100000AAAAAAAAAA0200000000000000005592
+:10A5200000AAAAAAAAAAA800000000000000000031
+:10A5300055AAAAAAAAAAA8000000000000000000CC
+:10A5400055AAAAAAAAAAA8000000000000000000BC
+:10A5500055AAAAAAAAAAA8000000000000000000AC
+:10A5600055AAAAAAAAAAA80000000000000000009C
+:10A5700055AAAAAAAAAAA80000000000000000008C
+:10A5800055AAAAAAAAAAA80000000000000000007C
+:10A5900055AAAAAAAAAAA80000000000000000006C
+:10A5A00055AAAAAAAAAAA80000000000000000005C
+:10A5B00055AAAAAAAAAAA80000000000000000004C
+:10A5C00055AAAAAAAAAAA80000000000000000003C
+:10A5D00055AAAAAAAAAAA80000000000000000002C
+:10A5E00055AAAAAAAAAAA80000000000000000001C
+:10A5F00055AAAAAAAAAAA80000000000000000000C
+:10A6000055AAAAAAAAAAA8000000000000000000FB
+:10A6100055AAAAAAAAAAA8000000000000000000EB
+:10A6200000AAAAAAAAAAAAA8000000000000000086
+:10A6300055AAAAAAAAAAAAA8000000000000000021
+:10A6400055AAAAAAAAAAAAA8000000000000000011
+:10A6500055AAAAAAAAAAAAA8000000000000000001
+:10A6600055AAAAAAAAAAAAA80000000000000000F1
+:10A6700055AAAAAAAAAAAAA80000000000000000E1
+:10A6800055AAAAAAAAAAAAA80000000000000000D1
+:10A6900055AAAAAAAAAAAAA80000000000000000C1
+:10A6A00055AAAAAAAAAAAAA80000000000000000B1
+:10A6B00055AAAAAAAAAAAAA80000000000000000A1
+:10A6C00055AAAAAAAAAAAAA8000000000000000091
+:10A6D00055AAAAAAAAAAAAA8000000000000000081
+:10A6E00055AAAAAAAAAAAAA8000000000000000071
+:10A6F00055AAAAAAAAAAAAA8000000000000000061
+:10A7000055AAAAAAAAAAAAA8000000000000000050
+:10A7100055AAAAAAAAAAAAA8000000000000000040
+:10A72000AAAAAAAAAAAAAAAAA800000000000055DC
+:10A7300000AAAAAAAAAAAAAAA80000000000005576
+:10A7400000AAAAAAAAAAAAAAA80000000000005566
+:10A7500000AAAAAAAAAAAAAAA80000000000005556
+:10A7600000AAAAAAAAAAAAAAA80000000000005546
+:10A7700000AAAAAAAAAAAAAAA80000000000005536
+:10A7800000AAAAAAAAAAAAAAA80000000000005526
+:10A7900000AAAAAAAAAAAAAAA80000000000005516
+:10A7A00000AAAAAAAAAAAAAAA80000000000005506
+:10A7B00000AAAAAAAAAAAAAAA800000000000055F6
+:10A7C00000AAAAAAAAAAAAAAA800000000000055E6
+:10A7D00000AAAAAAAAAAAAAAA800000000000055D6
+:10A7E00000AAAAAAAAAAAAAAA800000000000055C6
+:10A7F00000AAAAAAAAAAAAAAA800000000000055B6
+:10A8000000AAAAAAAAAAAAAAA800000000000055A5
+:10A8100000AAAAAAAAAAAAAAA80000000000005595
+:10A82000AAAAAAAAAAAAAAAAAA00000000000055D9
+:10A8300000AAAAAAAAAAAAAAAA0000000000005573
+:10A8400000AAAAAAAAAAAAAAAA0000000000005563
+:10A8500000AAAAAAAAAAAAAAAA0000000000005553
+:10A8600000AAAAAAAAAAAAAAAA0000000000005543
+:10A8700000AAAAAAAAAAAAAAAA0000000000005533
+:10A8800000AAAAAAAAAAAAAAAA0000000000005523
+:10A8900000AAAAAAAAAAAAAAAA0000000000005513
+:10A8A00000AAAAAAAAAAAAAAAA0000000000005503
+:10A8B00000AAAAAAAAAAAAAAAA00000000000055F3
+:10A8C00000AAAAAAAAAAAAAAAA00000000000055E3
+:10A8D00000AAAAAAAAAAAAAAAA00000000000055D3
+:10A8E00000AAAAAAAAAAAAAAAA00000000000055C3
+:10A8F00000AAAAAAAAAAAAAAAA00000000000055B3
+:10A9000000AAAAAAAAAAAAAAAA00000000000055A2
+:10A9100000AAAAAAAAAAAAAAAA0000000000005592
+:10A9200055AAAAAAAAAAAAAAAAAA020000000000D6
+:10A9300055AAAAAAAAAAAAAAAAAA000002000000C6
+:10A9400000AAAAAAAAAAAAAAAAAAAA02000000550C
+:10A9500000AAAAAAAAAAAAAAAAAAAA2A00000055D4
+:10A9600000AAAAAAAAAAAAAAAAAAAA2A00000055C4
+:10A9700000AAAAAAAAAAAAAAAAAAAA2A00000055B4
+:10A9800000AAAAAAAAAAAAAAAAAAAA2A00000055A4
+:10A9900000AAAAAAAAAAAAAAAAAAAA2A0000005594
+:10A9A00000AAAAAAAAAAAAAAAAAAAA2A0000005584
+:10A9B00000AAAAAAAAAAAAAAAAAAAA2A0000005574
+:10A9C00000AAAAAAAAAAAAAAAAAAAA2A0000005564
+:10A9D00000AAAAAAAAAAAAAAAAAAAA2A0000005554
+:10A9E00000AAAAAAAAAAAAAAAAAAAA2A0000005544
+:10A9F00000AAAAAAAAAAAAAAAAAAAA2A0000005534
+:10AA000000AAAAAAAAAAAAAAAAAAAA2A0000005523
+:10AA100000AAAAAAAAAAAAAAAAAAAA2A0000005513
+:10AA200000AAAAAAAAAAAAAAAAAAAA2A0000005503
+:10AA300000AAAAAAAAAAAAAAAAAAAA2A00000055F3
+:10AA400000AAAAAAAAAAAAAAAAAAAAAA0000005563
+:10AA500055AAAAAAAAAAAAAAAAAAAA2A2A020000A7
+:10AA600055AAAAAAAAAAAAAAAAAAAA2A2A02000097
+:10AA700055AAAAAAAAAAAAAAAAAAAA2A2A02000087
+:10AA800055AAAAAAAAAAAAAAAAAAAA2A2A02000077
+:10AA900055AAAAAAAAAAAAAAAAAAAA2A2A02000067
+:10AAA00055AAAAAAAAAAAAAAAAAAAA2A2A02000057
+:10AAB00055AAAAAAAAAAAAAAAAAAAA2A2A02000047
+:10AAC00055AAAAAAAAAAAAAAAAAAAA2A2A02000037
+:10AAD00055AAAAAAAAAAAAAAAAAAAA2A2A02000027
+:10AAE00055AAAAAAAAAAAAAAAAAAAA2A2A02000017
+:10AAF00055AAAAAAAAAAAAAAAAAAAA2A2A02000007
+:10AB000055AAAAAAAAAAAAAAAAAAAA2A2A020000F6
+:10AB100055AAAAAAAAAAAAAAAAAAAA2A2A020000E6
+:10AB200055AAAAAAAAAAAAAAAAAAAA2A2A020000D6
+:10AB300055AAAAAAAAAAAAAAAAAAAA2A2A020000C6
+:10AB400055AAAAAAAAAAAAAAAAAAAAAAAA020000B6
+:10AB500055A9A9A9A9A9A9A9A9A9A9A92901010032
+:10AB600055A9A9A9A9A9A9A9A9A9A9A92901010022
+:10AB700055A9A9A9A9A9A9A9A9A9A9A92901010012
+:10AB800055A9A9A9A9A9A9A9A9A9A9A92901010002
+:10AB900055A9A9A9A9A9A9A9A9A9A9A929010100F2
+:10ABA00055A9A9A9A9A9A9A9A9A9A9A929010100E2
+:10ABB00055A9A9A9A9A9A9A9A9A9A9A929010100D2
+:10ABC00055A9A9A9A9A9A9A9A9A9A9A929010100C2
+:10ABD00055A9A9A9A9A9A9A9A9A9A9A929010100B2
+:10ABE00055A9A9A9A9A9A9A9A9A9A9A929010100A2
+:10ABF00055A9A9A9A9A9A9A9A9A9A9A92901010092
+:10AC000055A9A9A9A9A9A9A9A9A9A9A92901010081
+:10AC100055A9A9A9A9A9A9A9A9A9A9A92901010071
+:10AC200055A9A9A9A9A9A9A9A9A9A9A92901010061
+:10AC300055A9A9A9A9A9A9A9A9A9A9A92901010051
+:10AC400055A9A9A9A9A9A9A9A9A9A9A9A9010100C1
+:10AC500000A9A9A9A9A9A9A9A9A9A9A92929015509
+:10AC600000A9A9A9A9A9A9A9A9A9A9A929290155F9
+:10AC700000A9A9A9A9A9A9A9A9A9A9A929290155E9
+:10AC800000A9A9A9A9A9A9A9A9A9A9A929290155D9
+:10AC900000A9A9A9A9A9A9A9A9A9A9A929290155C9
+:10ACA00000A9A9A9A9A9A9A9A9A9A9A929290155B9
+:10ACB00000A9A9A9A9A9A9A9A9A9A9A929290155A9
+:10ACC00000A9A9A9A9A9A9A9A9A9A9A92929015599
+:10ACD00000A9A9A9A9A9A9A9A9A9A9A92929015589
+:10ACE00000A9A9A9A9A9A9A9A9A9A9A92929015579
+:10ACF00000A9A9A9A9A9A9A9A9A9A9A92929015569
+:10AD000000A9A9A9A9A9A9A9A9A9A9A92929015558
+:10AD100000A9A9A9A9A9A9A9A9A9A9A92929015548
+:10AD200000A9A9A9A9A9A9A9A9A9A9A92929015538
+:10AD300000A9A9A9A9A9A9A9A9A9A9A92929015528
+:10AD400000A9A9A9A9A9A9A9A9A9A9A9A9A9015518
+:10AD500000A9A9A9A9A9A9A9A9A9A9A9A929015588
+:10AD600000A9A9A9A9A9A9A9A9A9A9A9A929015578
+:10AD700000A9A9A9A9A9A9A9A9A9A9A9A929015568
+:10AD800000A9A9A9A9A9A9A9A9A9A9A9A929015558
+:10AD900000A9A9A9A9A9A9A9A9A9A9A9A929015548
+:10ADA00000A9A9A9A9A9A9A9A9A9A9A9A929015538
+:10ADB00000A9A9A9A9A9A9A9A9A9A9A9A929015528
+:10ADC00000A9A9A9A9A9A9A9A9A9A9A9A929015518
+:10ADD00000A9A9A9A9A9A9A9A9A9A9A9A929015508
+:10ADE00000A9A9A9A9A9A9A9A9A9A9A9A9290155F8
+:10ADF00000A9A9A9A9A9A9A9A9A9A9A9A9290155E8
+:10AE000000A9A9A9A9A9A9A9A9A9A9A9A9290155D7
+:10AE100000A9A9A9A9A9A9A9A9A9A9A9A9290155C7
+:10AE200000A9A9A9A9A9A9A9A9A9A9A9A9290155B7
+:10AE300000A9A9A9A9A9A9A9A9A9A9A9A9290155A7
+:10AE400000A9A9A9A9A9A9A9A9A9A9A9A9A9015517
+:10AE500055959595959595959595959595951501F6
+:10AE600055959595959595959595959595951501E6
+:10AE700000555555555555555555555555555556D6
+:10AE800000555555555555555555555555555556C6
+:10AE900055555555555555555555555555555516A1
+:10AEA0005555555555555555555555555555551691
+:10AEB0000055555555555555555555555555556884
+:10AEC0000055555555555555555555555555556874
+:10AED0005555555555555555555555555555556A0D
+:10AEE0005555555555555555555555555555556AFD
+:10AEF000005555555555555555555555555555802C
+:10AF0000005555555555555555555555555555801B
+:10AF1000555555555555555555555555555555AA8C
+:10AF2000555555555555555555555555555555AA7C
+:10AF3000005656565656565656565656565656005D
+:10AF4000005656565656565656565656565656004D
+:10AF5000555656565656565656565656565656AA3E
+:10AF6000555656565656565656565656565656AA2E
+:10AF7000005A5A5A5A5A5A5A5A5A5A5A5A5A5A00E5
+:10AF8000005A5A5A5A5A5A5A5A5A5A5A5A5A5A00D5
+:10AF9000555A5A5A5A5A5A5A5A5A5A5A5A5A5AAAC6
+:10AFA000555A5A5A5A5A5A5A5A5A5A5A5A5A5AAAB6
+:10AFB000006A6A6A6A6A6A6A6A6A6A6A6A6A6A00C5
+:10AFC000006A6A6A6A6A6A6A6A6A6A6A6A6A6A00B5
+:10AFD000556A6A6A6A6A6A6A6A6A6A6A6A6A6AAAA6
+:10AFE000556A6A6A6A6A6A6A6A6A6A6A6A6A6AAA96
+:10AFF000006A6A6A6A6A6A6A6A6A6A6A6A6A6A0085
+:10B00000006A6A6A6A6A6A6A6A6A6A6A6A6A6A0074
+:10B0100055AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAE5
+:10B0200055AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD5
+:10B0300000AAAAAAAAAAAAAAAAAAAAAAAAAAAA00C4
+:10B0400000A9A9A9A9A9A9A9A9A9A9A9A9A9A800C3
+:10B0500055A9A9A9A9A9A9A9A9A9A9A9A8A8A8AAB6
+:10B0600055A9A9A9A9A9A9A9A9A9A9A9A8A8A8AAA6
+:10B0700000A9A9A9A9A9A9A9A9A9A8A8A9A8A80096
+:10B0800000A9A9A9A9A9A9A9A9A9A9A8A8A8A80086
+:10B0900055A5A5A5A5A5A5A5A5A4A4A4A4A4A0AAB5
+:10B0A00055A5A5A5A5A5A5A5A4A4A4A4A4A4A0AAA6
+:10B0B00000A5A5A5A5A5A5A4A4A4A4A4A4A0A0009A
+:10B0C00000A5A5A5A5A5A4A4A4A4A4A4A4A0A0008B
+:10B0D00055A5A5A5A5A5A5A4A4A4A4A4A0A0A0AA7F
+:10B0E00055A5A5A5A5A5A5A4A4A4A4A4A0A0A0AA6F
+:10B0F00055A5A5A5A5A5A5A4A4A4A4A4A0A0A0AA5F
+:10B1000055A5A5A5A5A5A5A4A4A4A4A4A0A0A0AA4E
+:10B1100055A5A5A5A5A5A5A4A4A4A4A4A0A0A0AA3E
+:10B1200055A5A5A5A5A5A5A4A4A4A4A4A0A0A0AA2E
+:10B1300055A5A5A5A5A5A5A4A4A4A4A4A0A0A0AA1E
+:10B1400055A5A5A5A5A5A5A4A4A4A4A4A0A0A0AA0E
+:10B1500055A5A5A5A5A5A5A4A4A4A4A4A0A0A0AAFE
+:10B1600055A5A5A5A5A5A5A4A4A4A4A4A0A0A0AAEE
+:10B1700055A5A5A5A5A5A5A4A4A4A4A4A0A0A0AADE
+:10B1800055A5A5A5A5A5A5A4A4A4A4A4A0A0A0AACE
+:10B1900055A5A5A5A5A5A5A4A4A4A4A4A0A0A0AABE
+:10B1A00055A5A5A5A5A5A5A4A4A4A4A4A0A0A0AAAE
+:10B1B00055A5A5A5A5A5A5A4A4A4A4A4A0A0A0AA9E
+:10B1C00055A5A5A5A5A5A5A4A4A4A4A4A0A0A0A890
+:10B1D00055A5A5A5A5A4A4A4A4A4A4A0A0A0A0AA84
+:10B1E00055A5A5A5A5A4A4A4A4A4A4A0A0A0A0AA74
+:10B1F00055A5A5A5A5A4A4A4A4A4A4A0A0A0A0AA64
+:10B2000055A5A5A5A5A4A4A4A4A4A4A0A0A0A0AA53
+:10B2100055A5A5A5A5A4A4A4A4A4A4A0A0A0A0AA43
+:10B2200055A5A5A5A5A4A4A4A4A4A4A0A0A0A0AA33
+:10B2300055A5A5A5A5A4A4A4A4A4A4A0A0A0A0AA23
+:10B2400055A5A5A5A5A4A4A4A4A4A4A0A0A0A0AA13
+:10B2500055A5A5A5A5A4A4A4A4A4A4A0A0A0A0AA03
+:10B2600055A5A5A5A5A4A4A4A4A4A4A0A0A0A0AAF3
+:10B2700055A5A5A5A5A4A4A4A4A4A4A0A0A0A0AAE3
+:10B2800055A5A5A5A5A4A4A4A4A4A4A0A0A0A0AAD3
+:10B2900055A5A5A5A5A4A4A4A4A4A4A0A0A0A0AAC3
+:10B2A00055A5A5A5A5A4A4A4A4A4A4A0A0A0A0AAB3
+:10B2B00055A5A5A5A5A4A4A4A4A4A4A0A0A0A0AAA3
+:10B2C00055A5A5A5A5A4A4A4A4A4A4A0A0A0A0A895
+:10B2D00000A5A5A5A5A4A4A4A4A4A0A0A0A0A00086
+:10B2E00000A5A5A5A4A4A4A4A4A4A0A0A0A0A00077
+:10B2F000559595959494949494909090909080AA5C
+:10B30000559595959494949494909090909080AA4B
+:10B31000559595959494949494909090909080AA3B
+:10B32000559595959494949494909090909080AA2B
+:10B33000559595959494949494909090909080AA1B
+:10B34000559595959494949494909090909080AA0B
+:10B35000559595959494949494909090909080AAFB
+:10B36000559595959494949494909090909080AAEB
+:10B37000559595959494949494909090909080AADB
+:10B38000559595959494949494909090909080AACB
+:10B39000559595959494949494909090909080AABB
+:10B3A000559595959494949494909090909080AAAB
+:10B3B000559595959494949494909090909080AA9B
+:10B3C000559595959494949494909090909080AA8B
+:10B3D000559595959494949494909090909080AA7B
+:10B3E000559595959494949494909090909080A86D
+:10B3F000559595949494949494909090909080AA5C
+:10B40000559595949494949494909090909080AA4B
+:10B41000559595949494949494909090909080AA3B
+:10B42000559595949494949494909090909080AA2B
+:10B43000559595949494949494909090909080AA1B
+:10B44000559595949494949494909090909080AA0B
+:10B45000559595949494949494909090909080AAFB
+:10B46000559595949494949494909090909080AAEB
+:10B47000559595949494949494909090909080AADB
+:10B48000559595949494949494909090909080AACB
+:10B49000559595949494949494909090909080AABB
+:10B4A000559595949494949494909090909080AAAB
+:10B4B000559595949494949494909090909080AA9B
+:10B4C000559595949494949494909090909080AA8B
+:10B4D000559595949494949494909090909080AA7B
+:10B4E000559595949494949494909090909080A86D
+:10B4F000009595959494949490909090908080006D
+:10B500000095959494949490909090909080800061
+:10B51000559594949494909090909090808080AA67
+:10B52000559594949494909090909090808080AA57
+:10B53000559594949494909090909090808080AA47
+:10B54000559594949494909090909090808080AA37
+:10B55000559594949494909090909090808080AA27
+:10B56000559594949494909090909090808080AA17
+:10B57000559594949494909090909090808080AA07
+:10B58000559594949494909090909090808080AAF7
+:10B59000559594949494909090909090808080AAE7
+:10B5A000559594949494909090909090808080AAD7
+:10B5B000559594949494909090909090808080AAC7
+:10B5C000559594949494909090909090808080AAB7
+:10B5D000559594949494909090909090808080AAA7
+:10B5E000559594949494909090909090808080AA97
+:10B5F000559594949494909090909090808080AA87
+:10B60000559594949494909090909090808080A080
+:10B61000559594949494909090909080808080AA76
+:10B62000559594949494909090909080808080AA66
+:10B63000559594949494909090909080808080AA56
+:10B64000559594949494909090909080808080AA46
+:10B65000559594949494909090909080808080AA36
+:10B66000559594949494909090909080808080AA26
+:10B67000559594949494909090909080808080AA16
+:10B68000559594949494909090909080808080AA06
+:10B69000559594949494909090909080808080AAF6
+:10B6A000559594949494909090909080808080AAE6
+:10B6B000559594949494909090909080808080AAD6
+:10B6C000559594949494909090909080808080AAC6
+:10B6D000559594949494909090909080808080AAB6
+:10B6E000559594949494909090909080808080AAA6
+:10B6F000559594949494909090909080808080AA96
+:10B70000559594949494909090909080808080A08F
+:10B710000094949494909090909080808080800089
+:10B720000094949494909090909080808080800079
+:10B73000549494949090909090808080808080A881
+:10B74000549494949090909090808080808080A871
+:10B75000549494949090909090808080808080A861
+:10B76000549494949090909090808080808080A851
+:10B77000549494949090909090808080808080A841
+:10B78000549494949090909090808080808080A831
+:10B79000549494949090909090808080808080A821
+:10B7A000549494949090909090808080808080A811
+:10B7B000549494949090909090808080808080A801
+:10B7C000549494949090909090808080808080A8F1
+:10B7D000549494949090909090808080808080A8E1
+:10B7E000549494949090909090808080808080A8D1
+:10B7F000549494949090909090808080808080A8C1
+:10B80000549494949090909090808080808080A8B0
+:10B81000549494949090909090808080808080A8A0
+:10B82000549494949090909090808080808080A098
+:10B83000549494949090909090808080808080A880
+:10B84000549494949090909090808080808080A870
+:10B85000549494949090909090808080808080A860
+:10B86000549494949090909090808080808080A850
+:10B87000549494949090909090808080808080A840
+:10B88000549494949090909090808080808080A830
+:10B89000549494949090909090808080808080A820
+:10B8A000549494949090909090808080808080A810
+:10B8B000549494949090909090808080808080A800
+:10B8C000549494949090909090808080808080A8F0
+:10B8D000549494949090909090808080808080A8E0
+:10B8E000549494949090909090808080808080A8D0
+:10B8F000549494949090909090808080808080A8C0
+:10B90000549494949090909090808080808080A8AF
+:10B91000549494949090909090808080808080A89F
+:10B92000549494949090909090808080808080A097
+:10B93000005454545050505040404040404000004B
+:10B94000005454545050504040404040404000004B
+:10B95000545454505050404040404040400000A893
+:10B96000545454505050404040404040400000A883
+:10B97000545454505050404040404040400000A873
+:10B98000545454505050404040404040400000A863
+:10B99000545454505050404040404040400000A853
+:10B9A000545454505050404040404040400000A843
+:10B9B000545454505050404040404040400000A833
+:10B9C000545454505050404040404040400000A823
+:10B9D000545454505050404040404040400000A813
+:10B9E000545454505050404040404040400000A803
+:10B9F000545454505050404040404040400000A8F3
+:10BA0000545454505050404040404040400000A8E2
+:10BA1000545454505050404040404040400000A8D2
+:10BA2000545454505050404040404040400000A8C2
+:10BA3000545454505050404040404040400000A8B2
+:10BA400054545450505040404040404040000080CA
+:10BA5000545450505050404040404040000000A8D6
+:10BA6000545450505050404040404040000000A8C6
+:10BA7000545450505050404040404040000000A8B6
+:10BA8000545450505050404040404040000000A8A6
+:10BA9000545450505050404040404040000000A896
+:10BAA000545450505050404040404040000000A886
+:10BAB000545450505050404040404040000000A876
+:10BAC000545450505050404040404040000000A866
+:10BAD000545450505050404040404040000000A856
+:10BAE000545450505050404040404040000000A846
+:10BAF000545450505050404040404040000000A836
+:10BB0000545450505050404040404040000000A825
+:10BB1000545450505050404040404040000000A815
+:10BB2000545450505050404040404040000000A805
+:10BB3000545450505050404040404040000000A8F5
+:10BB4000545450505050404040404040000000800D
+:10BB50000050505050404040404040000000000025
+:10BB60000C5C5C5C5C4C4C4C4C4C4C0C0C0C0C0C55
+:10BB7000505050504040404040400000000000A065
+:10BB8000505050504040404040400000000000A055
+:10BB9000505050504040404040400000000000A045
+:10BBA000505050504040404040400000000000A035
+:10BBB000505050504040404040400000000000A025
+:10BBC000505050504040404040400000000000A015
+:10BBD000505050504040404040400000000000A005
+:10BBE000505050504040404040400000000000A0F5
+:10BBF000505050504040404040400000000000A0E5
+:10BC0000505050504040404040400000000000A0D4
+:10BC1000505050504040404040400000000000A0C4
+:10BC2000505050504040404040400000000000A0B4
+:10BC3000505050504040404040400000000000A0A4
+:10BC4000505050504040404040400000000000A094
+:10BC5000505050504040404040400000000000A084
+:10BC60005050505040404040404000000000008094
+:10BC7000505050504040404040400000000000A064
+:10BC8000505050504040404040400000000000A054
+:10BC9000505050504040404040400000000000A044
+:10BCA000505050504040404040400000000000A034
+:10BCB000505050504040404040400000000000A024
+:10BCC000505050504040404040400000000000A014
+:10BCD000505050504040404040400000000000A004
+:10BCE000505050504040404040400000000000A0F4
+:10BCF000505050504040404040400000000000A0E4
+:10BD0000505050504040404040400000000000A0D3
+:10BD1000505050504040404040400000000000A0C3
+:10BD2000505050504040404040400000000000A0B3
+:10BD3000505050504040404040400000000000A0A3
+:10BD4000505050504040404040400000000000A093
+:10BD5000505050504040404040400000000000A083
+:10BD60005050505040404040404000000000008093
+:10BD70000050505040404040404000000000000053
+:10BD80000050505040404040404000000000000043
+:10BD9000505050404040404040000000000000A093
+:10BDA000505050404040404040000000000000A083
+:10BDB000505050404040404040000000000000A073
+:10BDC000505050404040404040000000000000A063
+:10BDD000505050404040404040000000000000A053
+:10BDE000505050404040404040000000000000A043
+:10BDF000505050404040404040000000000000A033
+:10BE0000505050404040404040000000000000A022
+:10BE1000505050404040404040000000000000A012
+:10BE2000505050404040404040000000000000A002
+:10BE3000505050404040404040000000000000A0F2
+:10BE4000505050404040404040000000000000A0E2
+:10BE5000505050404040404040000000000000A0D2
+:10BE6000505050404040404040000000000000A0C2
+:10BE7000505050404040404040000000000000A0B2
+:10BE800050505040404040404000000000000080C2
+:10BE9000505040404040404040000000000000A0A2
+:10BEA000505040404040404040000000000000A092
+:10BEB000505040404040404040000000000000A082
+:10BEC000505040404040404040000000000000A072
+:10BED000505040404040404040000000000000A062
+:10BEE000505040404040404040000000000000A052
+:10BEF000505040404040404040000000000000A042
+:10BF0000505040404040404040000000000000A031
+:10BF1000505040404040404040000000000000A021
+:10BF2000505040404040404040000000000000A011
+:10BF3000505040404040404040000000000000A001
+:10BF4000505040404040404040000000000000A0F1
+:10BF5000505040404040404040000000000000A0E1
+:10BF6000505040404040404040000000000000A0D1
+:10BF7000505040404040404040000000000000A0C1
+:10BF800050504040404040404000000000000080D1
+:10BF900000404040404040400000000000000000E1
+:10BFA0003070707070707030303030303030303011
+:10BFB0004040404040400000000000000000008081
+:10BFC0004040404040400000000000000000008071
+:10BFD0000040404040000000000000000000000061
+:10BFE0000040404040000000000000000000000051
+:10BFF00040404040000000000000000000000080C1
+:10C0000040404040000000000000000000000080B0
+:10C010000040404000000000000000000000000060
+:10C020000040404000000000000000000000000050
+:10C0300040404000000000000000000000000080C0
+:10C0400040400000000000000000000000000080F0
+:10C0500000000000000000000000000000000000E0
+:10C06000C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0D0
+:10C0700000000000000000000000000000000000C0
+:10C0800000000000000000000000000000000000B0
+:10C0900000000000000000000000000000000000A0
+:10C0A0000000000000000000000000000000000090
+:10C0B0000000000000000000000000000000000080
+:10C0C0000000000000000000000000000000000070
+:10C0D0000000000000000000000000000000000060
+:10C0E0000000000000000000000000000000000050
+:10C0F0000000000000000000000000000000000040
+:10C10000AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8F
+:10C11000AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA7F
+:10C12000AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA6F
+:10C13000AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA5F
+:10C14000AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA4F
+:10C15000AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA3F
+:10C16000AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA2F
+:10C17000AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA1F
+:10C180005555555555555555AAAAAAAAAAAAAAAAB7
+:10C190005555555555555555AAAAAAAAAAAAAAAAA7
+:10C1A0005555555555555555AAAAAAAAAAAAAAAA97
+:10C1B0005555555555555555AAAAAAAAAAAAAAAA87
+:10C1C0005555555555555555AAAAAAAAAAAAAAAA77
+:10C1D0005555555555555555AAAAAAAAAAAAAAAA67
+:10C1E0005555555555555555AAAAAAAAAAAAAAAA57
+:10C1F0005555555555555555AAAAAAAAAAAAAAAA47
+:10C20000000000000000000000000000000000002E
+:10C21000000000000000000000000000000000001E
+:10C22000000000000000000000000000000000000E
+:10C2300000000000000000000000000000000000FE
+:10C2400000000000000000000000000000000000EE
+:10C2500000000000000000000000000000000000DE
+:10C2600000000000000000000000000000000000CE
+:10C2700000000000000000000000000000000000BE
+:10C280005555555555555555000000000000000006
+:10C2900055555555555555550000000000000000F6
+:10C2A00055555555555555550000000000000000E6
+:10C2B00055555555555555550000000000000000D6
+:10C2C00055555555555555550000000000000000C6
+:10C2D00055555555555555550000000000000000B6
+:10C2E00055555555555555550000000000000000A6
+:10C2F0005555555555555555000000000000000096
+:10C300005555555555555555AAAAAAAAAAAAAAAA35
+:10C310005555555555555555AAAAAAAAAAAAAAAA25
+:10C320005555555555555555AAAAAAAAAAAAAAAA15
+:10C330005555555555555555AAAAAAAAAAAAAAAA05
+:10C340005555555555555555AAAAAAAAAAAAAAAAF5
+:10C350005555555555555555AAAAAAAAAAAAAAAAE5
+:10C360005555555555555555AAAAAAAAAAAAAAAAD5
+:10C370005555555555555555AAAAAAAAAAAAAAAAC5
+:10C38000AAAAAAAAAAAAAAAA5555555555555555B5
+:10C39000AAAAAAAAAAAAAAAA5555555555555555A5
+:10C3A000AAAAAAAAAAAAAAAA555555555555555595
+:10C3B000AAAAAAAAAAAAAAAA555555555555555585
+:10C3C000AAAAAAAAAAAAAAAA555555555555555575
+:10C3D000AAAAAAAAAAAAAAAA555555555555555565
+:10C3E000AAAAAAAAAAAAAAAA555555555555555555
+:10C3F000AAAAAAAAAAAAAAAA555555555555555545
+:10C400005555555555555555AAAAAAAAAAAAAAAA34
+:10C410005555555555555555AAAAAAAAAAAAAAAA24
+:10C420005555555555555555AAAAAAAAAAAAAAAA14
+:10C430005555555555555555AAAAAAAAAAAAAAAA04
+:10C440005555555555555555AAAAAAAAAAAAAAAAF4
+:10C450005555555555555555AAAAAAAAAAAAAAAAE4
+:10C460005555555555555555AAAAAAAAAAAAAAAAD4
+:10C470005555555555555555AAAAAAAAAAAAAAAAC4
+:10C48000AAAAAAAAAAAAAAAA5555555555555555B4
+:10C49000AAAAAAAAAAAAAAAA5555555555555555A4
+:10C4A000AAAAAAAAAAAAAAAA555555555555555594
+:10C4B000AAAAAAAAAAAAAAAA555555555555555584
+:10C4C000AAAAAAAAAAAAAAAA555555555555555574
+:10C4D000AAAAAAAAAAAAAAAA555555555555555564
+:10C4E000AAAAAAAAAAAAAAAA555555555555555554
+:10C4F000AAAAAAAAAAAAAAAA555555555555555544
+:10C500005555555555555555AAAAAAAAAAAAAAAA33
+:10C510005555555555555555AAAAAAAAAAAAAAAA23
+:10C520005555555555555555AAAAAAAAAAAAAAAA13
+:10C530005555555555555555AAAAAAAAAAAAAAAA03
+:10C540005555555555555555AAAAAAAAAAAAAAAAF3
+:10C550005555555555555555AAAAAAAAAAAAAAAAE3
+:10C560005555555555555555AAAAAAAAAAAAAAAAD3
+:10C570005555555555555555AAAAAAAAAAAAAAAAC3
+:10C58000AAAAAAAAAAAAAAAA5555555555555555B3
+:10C59000AAAAAAAAAAAAAAAA5555555555555555A3
+:10C5A000AAAAAAAAAAAAAAAA555555555555555593
+:10C5B000AAAAAAAAAAAAAAAA555555555555555583
+:10C5C000AAAAAAAAAAAAAAAA555555555555555573
+:10C5D000AAAAAAAAAAAAAAAA555555555555555563
+:10C5E000AAAAAAAAAAAAAAAA555555555555555553
+:10C5F000AAAAAAAAAAAAAAAA555555555555555543
+:10C600005555555555555555AAAAAAAAAAAAAAAA32
+:10C610005555555555555555AAAAAAAAAAAAAAAA22
+:10C620005555555555555555AAAAAAAAAAAAAAAA12
+:10C630005555555555555555AAAAAAAAAAAAAAAA02
+:10C640005555555555555555AAAAAAAAAAAAAAAAF2
+:10C650005555555555555555AAAAAAAAAAAAAAAAE2
+:10C660005555555555555555AAAAAAAAAAAAAAAAD2
+:10C670005555555555555555AAAAAAAAAAAAAAAAC2
+:10C68000AAAAAAAAAAAAAAAA5555555555555555B2
+:10C69000AAAAAAAAAAAAAAAA5555555555555555A2
+:10C6A000AAAAAAAAAAAAAAAA555555555555555592
+:10C6B000AAAAAAAAAAAAAAAA555555555555555582
+:10C6C000AAAAAAAAAAAAAAAA555555555555555572
+:10C6D000AAAAAAAAAAAAAAAA555555555555555562
+:10C6E000AAAAAAAAAAAAAAAA555555555555555552
+:10C6F000AAAAAAAAAAAAAAAA555555555555555542
+:10C700005555555555555555AAAAAAAAAAAAAAAA31
+:10C710005555555555555555AAAAAAAAAAAAAAAA21
+:10C720005555555555555555AAAAAAAAAAAAAAAA11
+:10C730005555555555555555AAAAAAAAAAAAAAAA01
+:10C740005555555555555555AAAAAAAAAAAAAAAAF1
+:10C750005555555555555555AAAAAAAAAAAAAAAAE1
+:10C760005555555555555555AAAAAAAAAAAAAAAAD1
+:10C770005555555555555555AAAAAAAAAAAAAAAAC1
+:10C78000AAAAAAAAAAAAAAAA5555555555555555B1
+:10C79000AAAAAAAAAAAAAAAA5555555555555555A1
+:10C7A000AAAAAAAAAAAAAAAA555555555555555591
+:10C7B000AAAAAAAAAAAAAAAA555555555555555581
+:10C7C000AAAAAAAAAAAAAAAA555555555555555571
+:10C7D000AAAAAAAAAAAAAAAA555555555555555561
+:10C7E000AAAAAAAAAAAAAAAA555555555555555551
+:10C7F000AAAAAAAAAAAAAAAA555555555555555541
+:10C800005555555555555555AAAAAAAAAAAAAAAA30
+:10C810005555555555555555AAAAAAAAAAAAAAAA20
+:10C820005555555555555555AAAAAAAAAAAAAAAA10
+:10C830005555555555555555AAAAAAAAAAAAAAAA00
+:10C840005555555555555555AAAAAAAAAAAAAAAAF0
+:10C850005555555555555555AAAAAAAAAAAAAAAAE0
+:10C860005555555555555555AAAAAAAAAAAAAAAAD0
+:10C870005555555555555555AAAAAAAAAAAAAAAAC0
+:10C88000AAAAAAAAAAAAAAAA5555555555555555B0
+:10C89000AAAAAAAAAAAAAAAA5555555555555555A0
+:10C8A000AAAAAAAAAAAAAAAA555555555555555590
+:10C8B000AAAAAAAAAAAAAAAA555555555555555580
+:10C8C000AAAAAAAAAAAAAAAA555555555555555570
+:10C8D000AAAAAAAAAAAAAAAA555555555555555560
+:10C8E000AAAAAAAAAAAAAAAA555555555555555550
+:10C8F000AAAAAAAAAAAAAAAA555555555555555540
+:10C900005555555555555555AAAAAAAAAAAAAAAA2F
+:10C910005555555555555555AAAAAAAAAAAAAAAA1F
+:10C920005555555555555555AAAAAAAAAAAAAAAA0F
+:10C930005555555555555555AAAAAAAAAAAAAAAAFF
+:10C940005555555555555555AAAAAAAAAAAAAAAAEF
+:10C950005555555555555555AAAAAAAAAAAAAAAADF
+:10C960005555555555555555AAAAAAAAAAAAAAAACF
+:10C970005555555555555555AAAAAAAAAAAAAAAABF
+:10C98000AAAAAAAAAAAAAAAA5555555555555555AF
+:10C99000AAAAAAAAAAAAAAAA55555555555555559F
+:10C9A000AAAAAAAAAAAAAAAA55555555555555558F
+:10C9B000AAAAAAAAAAAAAAAA55555555555555557F
+:10C9C000AAAAAAAAAAAAAAAA55555555555555556F
+:10C9D000AAAAAAAAAAAAAAAA55555555555555555F
+:10C9E000AAAAAAAAAAAAAAAA55555555555555554F
+:10C9F000AAAAAAAAAAAAAAAA55555555555555553F
+:10CA00005555555555555555AAAAAAAAAAAAAAAA2E
+:10CA10005555555555555555AAAAAAAAAAAAAAAA1E
+:10CA20005555555555555555AAAAAAAAAAAAAAAA0E
+:10CA30005555555555555555AAAAAAAAAAAAAAAAFE
+:10CA40005555555555555555AAAAAAAAAAAAAAAAEE
+:10CA50005555555555555555AAAAAAAAAAAAAAAADE
+:10CA60005555555555555555AAAAAAAAAAAAAAAACE
+:10CA70005555555555555555AAAAAAAAAAAAAAAABE
+:10CA8000AAAAAAAAAAAAAAAA5555555555555555AE
+:10CA9000AAAAAAAAAAAAAAAA55555555555555559E
+:10CAA000AAAAAAAAAAAAAAAA55555555555555558E
+:10CAB000AAAAAAAAAAAAAAAA55555555555555557E
+:10CAC000AAAAAAAAAAAAAAAA55555555555555556E
+:10CAD000AAAAAAAAAAAAAAAA55555555555555555E
+:10CAE000AAAAAAAAAAAAAAAA55555555555555554E
+:10CAF000AAAAAAAAAAAAAAAA55555555555555553E
+:10CB00005555555555555555AAAAAAAAAAAAAAAA2D
+:10CB10005555555555555555AAAAAAAAAAAAAAAA1D
+:10CB20005555555555555555AAAAAAAAAAAAAAAA0D
+:10CB30005555555555555555AAAAAAAAAAAAAAAAFD
+:10CB40005555555555555555AAAAAAAAAAAAAAAAED
+:10CB50005555555555555555AAAAAAAAAAAAAAAADD
+:10CB60005555555555555555AAAAAAAAAAAAAAAACD
+:10CB70005555555555555555AAAAAAAAAAAAAAAABD
+:10CB8000AAAAAAAAAAAAAAAA5555555555555555AD
+:10CB9000AAAAAAAAAAAAAAAA55555555555555559D
+:10CBA000AAAAAAAAAAAAAAAA55555555555555558D
+:10CBB000AAAAAAAAAAAAAAAA55555555555555557D
+:10CBC000AAAAAAAAAAAAAAAA55555555555555556D
+:10CBD000AAAAAAAAAAAAAAAA55555555555555555D
+:10CBE000AAAAAAAAAAAAAAAA55555555555555554D
+:10CBF000AAAAAAAAAAAAAAAA55555555555555553D
+:10CC00005555555555555555AAAAAAAAAAAAAAAA2C
+:10CC10005555555555555555AAAAAAAAAAAAAAAA1C
+:10CC20005555555555555555AAAAAAAAAAAAAAAA0C
+:10CC30005555555555555555AAAAAAAAAAAAAAAAFC
+:10CC40005555555555555555AAAAAAAAAAAAAAAAEC
+:10CC50005555555555555555AAAAAAAAAAAAAAAADC
+:10CC60005555555555555555AAAAAAAAAAAAAAAACC
+:10CC70005555555555555555AAAAAAAAAAAAAAAABC
+:10CC8000AAAAAAAAAAAAAAAA5555555555555555AC
+:10CC9000AAAAAAAAAAAAAAAA55555555555555559C
+:10CCA000AAAAAAAAAAAAAAAA55555555555555558C
+:10CCB000AAAAAAAAAAAAAAAA55555555555555557C
+:10CCC000AAAAAAAAAAAAAAAA55555555555555556C
+:10CCD000AAAAAAAAAAAAAAAA55555555555555555C
+:10CCE000AAAAAAAAAAAAAAAA55555555555555554C
+:10CCF000AAAAAAAAAAAAAAAA55555555555555553C
+:10CD00005555555555555555AAAAAAAAAAAAAAAA2B
+:10CD10005555555555555555AAAAAAAAAAAAAAAA1B
+:10CD20005555555555555555AAAAAAAAAAAAAAAA0B
+:10CD30005555555555555555AAAAAAAAAAAAAAAAFB
+:10CD40005555555555555555AAAAAAAAAAAAAAAAEB
+:10CD50005555555555555555AAAAAAAAAAAAAAAADB
+:10CD60005555555555555555AAAAAAAAAAAAAAAACB
+:10CD70005555555555555555AAAAAAAAAAAAAAAABB
+:10CD8000AAAAAAAAAAAAAAAA5555555555555555AB
+:10CD9000AAAAAAAAAAAAAAAA55555555555555559B
+:10CDA000AAAAAAAAAAAAAAAA55555555555555558B
+:10CDB000AAAAAAAAAAAAAAAA55555555555555557B
+:10CDC000AAAAAAAAAAAAAAAA55555555555555556B
+:10CDD000AAAAAAAAAAAAAAAA55555555555555555B
+:10CDE000AAAAAAAAAAAAAAAA55555555555555554B
+:10CDF000AAAAAAAAAAAAAAAA55555555555555553B
+:10CE00005555555555555555AAAAAAAAAAAAAAAA2A
+:10CE10005555555555555555AAAAAAAAAAAAAAAA1A
+:10CE20005555555555555555AAAAAAAAAAAAAAAA0A
+:10CE30005555555555555555AAAAAAAAAAAAAAAAFA
+:10CE40005555555555555555AAAAAAAAAAAAAAAAEA
+:10CE50005555555555555555AAAAAAAAAAAAAAAADA
+:10CE60005555555555555555AAAAAAAAAAAAAAAACA
+:10CE70005555555555555555AAAAAAAAAAAAAAAABA
+:10CE8000AAAAAAAAAAAAAAAA5555555555555555AA
+:10CE9000AAAAAAAAAAAAAAAA55555555555555559A
+:10CEA000AAAAAAAAAAAAAAAA55555555555555558A
+:10CEB000AAAAAAAAAAAAAAAA55555555555555557A
+:10CEC000AAAAAAAAAAAAAAAA55555555555555556A
+:10CED000AAAAAAAAAAAAAAAA55555555555555555A
+:10CEE000AAAAAAAAAAAAAAAA55555555555555554A
+:10CEF000AAAAAAAAAAAAAAAA55555555555555553A
+:10CF00005555555555555555AAAAAAAAAAAAAAAA29
+:10CF10005555555555555555AAAAAAAAAAAAAAAA19
+:10CF20005555555555555555AAAAAAAAAAAAAAAA09
+:10CF30005555555555555555AAAAAAAAAAAAAAAAF9
+:10CF40005555555555555555AAAAAAAAAAAAAAAAE9
+:10CF50005555555555555555AAAAAAAAAAAAAAAAD9
+:10CF60005555555555555555AAAAAAAAAAAAAAAAC9
+:10CF70005555555555555555AAAAAAAAAAAAAAAAB9
+:10CF8000AAAAAAAAAAAAAAAA5555555555555555A9
+:10CF9000AAAAAAAAAAAAAAAA555555555555555599
+:10CFA000AAAAAAAAAAAAAAAA555555555555555589
+:10CFB000AAAAAAAAAAAAAAAA555555555555555579
+:10CFC000AAAAAAAAAAAAAAAA555555555555555569
+:10CFD000AAAAAAAAAAAAAAAA555555555555555559
+:10CFE000AAAAAAAAAAAAAAAA555555555555555549
+:10CFF000AAAAAAAAAAAAAAAA555555555555555539
+:10D000005555555555555555AAAAAAAAAAAAAAAA28
+:10D010005555555555555555AAAAAAAAAAAAAAAA18
+:10D020005555555555555555AAAAAAAAAAAAAAAA08
+:10D030005555555555555555AAAAAAAAAAAAAAAAF8
+:10D040005555555555555555AAAAAAAAAAAAAAAAE8
+:10D050005555555555555555AAAAAAAAAAAAAAAAD8
+:10D060005555555555555555AAAAAAAAAAAAAAAAC8
+:10D070005555555555555555AAAAAAAAAAAAAAAAB8
+:10D08000AAAAAAAAAAAAAAAA5555555555555555A8
+:10D09000AAAAAAAAAAAAAAAA555555555555555598
+:10D0A000AAAAAAAAAAAAAAAA555555555555555588
+:10D0B000AAAAAAAAAAAAAAAA555555555555555578
+:10D0C000AAAAAAAAAAAAAAAA555555555555555568
+:10D0D000AAAAAAAAAAAAAAAA555555555555555558
+:10D0E000AAAAAAAAAAAAAAAA555555555555555548
+:10D0F000AAAAAAAAAAAAAAAA555555555555555538
+:10D100005555555555555555AAAAAAAAAAAAAAAA27
+:10D110005555555555555555AAAAAAAAAAAAAAAA17
+:10D120005555555555555555AAAAAAAAAAAAAAAA07
+:10D130005555555555555555AAAAAAAAAAAAAAAAF7
+:10D140005555555555555555AAAAAAAAAAAAAAAAE7
+:10D150005555555555555555AAAAAAAAAAAAAAAAD7
+:10D160005555555555555555AAAAAAAAAAAAAAAAC7
+:10D170005555555555555555AAAAAAAAAAAAAAAAB7
+:10D18000AAAAAAAAAAAAAAAA5555555555555555A7
+:10D19000AAAAAAAAAAAAAAAA555555555555555597
+:10D1A000AAAAAAAAAAAAAAAA555555555555555587
+:10D1B000AAAAAAAAAAAAAAAA555555555555555577
+:10D1C000AAAAAAAAAAAAAAAA555555555555555567
+:10D1D000AAAAAAAAAAAAAAAA555555555555555557
+:10D1E000AAAAAAAAAAAAAAAA555555555555555547
+:10D1F000AAAAAAAAAAAAAAAA555555555555555537
+:10D200005555555555555555AAAAAAAAAAAAAAAA26
+:10D210005555555555555555AAAAAAAAAAAAAAAA16
+:10D220005555555555555555AAAAAAAAAAAAAAAA06
+:10D230005555555555555555AAAAAAAAAAAAAAAAF6
+:10D240005555555555555555AAAAAAAAAAAAAAAAE6
+:10D250005555555555555555AAAAAAAAAAAAAAAAD6
+:10D260005555555555555555AAAAAAAAAAAAAAAAC6
+:10D270005555555555555555AAAAAAAAAAAAAAAAB6
+:10D28000AAAAAAAAAAAAAAAA5555555555555555A6
+:10D29000AAAAAAAAAAAAAAAA555555555555555596
+:10D2A000AAAAAAAAAAAAAAAA555555555555555586
+:10D2B000AAAAAAAAAAAAAAAA555555555555555576
+:10D2C000AAAAAAAAAAAAAAAA555555555555555566
+:10D2D000AAAAAAAAAAAAAAAA555555555555555556
+:10D2E000AAAAAAAAAAAAAAAA555555555555555546
+:10D2F000AAAAAAAAAAAAAAAA555555555555555536
+:10D300005555555555555555AAAAAAAAAAAAAAAA25
+:10D310005555555555555555AAAAAAAAAAAAAAAA15
+:10D320005555555555555555AAAAAAAAAAAAAAAA05
+:10D330005555555555555555AAAAAAAAAAAAAAAAF5
+:10D340005555555555555555AAAAAAAAAAAAAAAAE5
+:10D350005555555555555555AAAAAAAAAAAAAAAAD5
+:10D360005555555555555555AAAAAAAAAAAAAAAAC5
+:10D370005555555555555555AAAAAAAAAAAAAAAAB5
+:10D38000AAAAAAAAAAAAAAAA5555555555555555A5
+:10D39000AAAAAAAAAAAAAAAA555555555555555595
+:10D3A000AAAAAAAAAAAAAAAA555555555555555585
+:10D3B000AAAAAAAAAAAAAAAA555555555555555575
+:10D3C000AAAAAAAAAAAAAAAA555555555555555565
+:10D3D000AAAAAAAAAAAAAAAA555555555555555555
+:10D3E000AAAAAAAAAAAAAAAA555555555555555545
+:10D3F000AAAAAAAAAAAAAAAA555555555555555535
+:10D400005555555555555555AAAAAAAAAAAAAAAA24
+:10D410005555555555555555AAAAAAAAAAAAAAAA14
+:10D420005555555555555555AAAAAAAAAAAAAAAA04
+:10D430005555555555555555AAAAAAAAAAAAAAAAF4
+:10D440005555555555555555AAAAAAAAAAAAAAAAE4
+:10D450005555555555555555AAAAAAAAAAAAAAAAD4
+:10D460005555555555555555AAAAAAAAAAAAAAAAC4
+:10D470005555555555555555AAAAAAAAAAAAAAAAB4
+:10D48000AAAAAAAAAAAAAAAA5555555555555555A4
+:10D49000AAAAAAAAAAAAAAAA555555555555555594
+:10D4A000AAAAAAAAAAAAAAAA555555555555555584
+:10D4B000AAAAAAAAAAAAAAAA555555555555555574
+:10D4C000AAAAAAAAAAAAAAAA555555555555555564
+:10D4D000AAAAAAAAAAAAAAAA555555555555555554
+:10D4E000AAAAAAAAAAAAAAAA555555555555555544
+:10D4F000AAAAAAAAAAAAAAAA555555555555555534
+:10D500005555555555555555AAAAAAAAAAAAAAAA23
+:10D510005555555555555555AAAAAAAAAAAAAAAA13
+:10D520005555555555555555AAAAAAAAAAAAAAAA03
+:10D530005555555555555555AAAAAAAAAAAAAAAAF3
+:10D540005555555555555555AAAAAAAAAAAAAAAAE3
+:10D550005555555555555555AAAAAAAAAAAAAAAAD3
+:10D560005555555555555555AAAAAAAAAAAAAAAAC3
+:10D570005555555555555555AAAAAAAAAAAAAAAAB3
+:10D58000AAAAAAAAAAAAAAAA5555555555555555A3
+:10D59000AAAAAAAAAAAAAAAA555555555555555593
+:10D5A000AAAAAAAAAAAAAAAA555555555555555583
+:10D5B000AAAAAAAAAAAAAAAA555555555555555573
+:10D5C000AAAAAAAAAAAAAAAA555555555555555563
+:10D5D000AAAAAAAAAAAAAAAA555555555555555553
+:10D5E000AAAAAAAAAAAAAAAA555555555555555543
+:10D5F000AAAAAAAAAAAAAAAA555555555555555533
+:10D600005555555555555555AAAAAAAAAAAAAAAA22
+:10D610005555555555555555AAAAAAAAAAAAAAAA12
+:10D620005555555555555555AAAAAAAAAAAAAAAA02
+:10D630005555555555555555AAAAAAAAAAAAAAAAF2
+:10D640005555555555555555AAAAAAAAAAAAAAAAE2
+:10D650005555555555555555AAAAAAAAAAAAAAAAD2
+:10D660005555555555555555AAAAAAAAAAAAAAAAC2
+:10D670005555555555555555AAAAAAAAAAAAAAAAB2
+:10D68000AAAAAAAAAAAAAAAA5555555555555555A2
+:10D69000AAAAAAAAAAAAAAAA555555555555555592
+:10D6A000AAAAAAAAAAAAAAAA555555555555555582
+:10D6B000AAAAAAAAAAAAAAAA555555555555555572
+:10D6C000AAAAAAAAAAAAAAAA555555555555555562
+:10D6D000AAAAAAAAAAAAAAAA555555555555555552
+:10D6E000AAAAAAAAAAAAAAAA555555555555555542
+:10D6F000AAAAAAAAAAAAAAAA555555555555555532
+:10D700005555555555555555AAAAAAAAAAAAAAAA21
+:10D710005555555555555555AAAAAAAAAAAAAAAA11
+:10D720005555555555555555AAAAAAAAAAAAAAAA01
+:10D730005555555555555555AAAAAAAAAAAAAAAAF1
+:10D740005555555555555555AAAAAAAAAAAAAAAAE1
+:10D750005555555555555555AAAAAAAAAAAAAAAAD1
+:10D760005555555555555555AAAAAAAAAAAAAAAAC1
+:10D770005555555555555555AAAAAAAAAAAAAAAAB1
+:10D78000AAAAAAAAAAAAAAAA5555555555555555A1
+:10D79000AAAAAAAAAAAAAAAA555555555555555591
+:10D7A000AAAAAAAAAAAAAAAA555555555555555581
+:10D7B000AAAAAAAAAAAAAAAA555555555555555571
+:10D7C000AAAAAAAAAAAAAAAA555555555555555561
+:10D7D000AAAAAAAAAAAAAAAA555555555555555551
+:10D7E000AAAAAAAAAAAAAAAA555555555555555541
+:10D7F000AAAAAAAAAAAAAAAA555555555555555531
+:10D800005555555555555555AAAAAAAAAAAAAAAA20
+:10D810005555555555555555AAAAAAAAAAAAAAAA10
+:10D820005555555555555555AAAAAAAAAAAAAAAA00
+:10D830005555555555555555AAAAAAAAAAAAAAAAF0
+:10D840005555555555555555AAAAAAAAAAAAAAAAE0
+:10D850005555555555555555AAAAAAAAAAAAAAAAD0
+:10D860005555555555555555AAAAAAAAAAAAAAAAC0
+:10D870005555555555555555AAAAAAAAAAAAAAAAB0
+:10D88000AAAAAAAAAAAAAAAA5555555555555555A0
+:10D89000AAAAAAAAAAAAAAAA555555555555555590
+:10D8A000AAAAAAAAAAAAAAAA555555555555555580
+:10D8B000AAAAAAAAAAAAAAAA555555555555555570
+:10D8C000AAAAAAAAAAAAAAAA555555555555555560
+:10D8D000AAAAAAAAAAAAAAAA555555555555555550
+:10D8E000AAAAAAAAAAAAAAAA555555555555555540
+:10D8F000AAAAAAAAAAAAAAAA555555555555555530
+:10D900005555555555555555AAAAAAAAAAAAAAAA1F
+:10D910005555555555555555AAAAAAAAAAAAAAAA0F
+:10D920005555555555555555AAAAAAAAAAAAAAAAFF
+:10D930005555555555555555AAAAAAAAAAAAAAAAEF
+:10D940005555555555555555AAAAAAAAAAAAAAAADF
+:10D950005555555555555555AAAAAAAAAAAAAAAACF
+:10D960005555555555555555AAAAAAAAAAAAAAAABF
+:10D970005555555555555555AAAAAAAAAAAAAAAAAF
+:10D98000AAAAAAAAAAAAAAAA55555555555555559F
+:10D99000AAAAAAAAAAAAAAAA55555555555555558F
+:10D9A000AAAAAAAAAAAAAAAA55555555555555557F
+:10D9B000AAAAAAAAAAAAAAAA55555555555555556F
+:10D9C000AAAAAAAAAAAAAAAA55555555555555555F
+:10D9D000AAAAAAAAAAAAAAAA55555555555555554F
+:10D9E000AAAAAAAAAAAAAAAA55555555555555553F
+:10D9F000AAAAAAAAAAAAAAAA55555555555555552F
+:10DA00005555555555555555AAAAAAAAAAAAAAAA1E
+:10DA10005555555555555555AAAAAAAAAAAAAAAA0E
+:10DA20005555555555555555AAAAAAAAAAAAAAAAFE
+:10DA30005555555555555555AAAAAAAAAAAAAAAAEE
+:10DA40005555555555555555AAAAAAAAAAAAAAAADE
+:10DA50005555555555555555AAAAAAAAAAAAAAAACE
+:10DA60005555555555555555AAAAAAAAAAAAAAAABE
+:10DA70005555555555555555AAAAAAAAAAAAAAAAAE
+:10DA8000AAAAAAAAAAAAAAAA55555555555555559E
+:10DA9000AAAAAAAAAAAAAAAA55555555555555558E
+:10DAA000AAAAAAAAAAAAAAAA55555555555555557E
+:10DAB000AAAAAAAAAAAAAAAA55555555555555556E
+:10DAC000AAAAAAAAAAAAAAAA55555555555555555E
+:10DAD000AAAAAAAAAAAAAAAA55555555555555554E
+:10DAE000AAAAAAAAAAAAAAAA55555555555555553E
+:10DAF000AAAAAAAAAAAAAAAA55555555555555552E
+:10DB00005555555555555555AAAAAAAAAAAAAAAA1D
+:10DB10005555555555555555AAAAAAAAAAAAAAAA0D
+:10DB20005555555555555555AAAAAAAAAAAAAAAAFD
+:10DB30005555555555555555AAAAAAAAAAAAAAAAED
+:10DB40005555555555555555AAAAAAAAAAAAAAAADD
+:10DB50005555555555555555AAAAAAAAAAAAAAAACD
+:10DB60005555555555555555AAAAAAAAAAAAAAAABD
+:10DB70005555555555555555AAAAAAAAAAAAAAAAAD
+:10DB8000AAAAAAAAAAAAAAAA55555555555555559D
+:10DB9000AAAAAAAAAAAAAAAA55555555555555558D
+:10DBA000AAAAAAAAAAAAAAAA55555555555555557D
+:10DBB000AAAAAAAAAAAAAAAA55555555555555556D
+:10DBC000AAAAAAAAAAAAAAAA55555555555555555D
+:10DBD000AAAAAAAAAAAAAAAA55555555555555554D
+:10DBE000AAAAAAAAAAAAAAAA55555555555555553D
+:10DBF000AAAAAAAAAAAAAAAA55555555555555552D
+:10DC00005555555555555555AAAAAAAAAAAAAAAA1C
+:10DC10005555555555555555AAAAAAAAAAAAAAAA0C
+:10DC20005555555555555555AAAAAAAAAAAAAAAAFC
+:10DC30005555555555555555AAAAAAAAAAAAAAAAEC
+:10DC40005555555555555555AAAAAAAAAAAAAAAADC
+:10DC50005555555555555555AAAAAAAAAAAAAAAACC
+:10DC60005555555555555555AAAAAAAAAAAAAAAABC
+:10DC70005555555555555555AAAAAAAAAAAAAAAAAC
+:10DC8000AAAAAAAAAAAAAAAA55555555555555559C
+:10DC9000AAAAAAAAAAAAAAAA55555555555555558C
+:10DCA000AAAAAAAAAAAAAAAA55555555555555557C
+:10DCB000AAAAAAAAAAAAAAAA55555555555555556C
+:10DCC000AAAAAAAAAAAAAAAA55555555555555555C
+:10DCD000AAAAAAAAAAAAAAAA55555555555555554C
+:10DCE000AAAAAAAAAAAAAAAA55555555555555553C
+:10DCF000AAAAAAAAAAAAAAAA55555555555555552C
+:10DD00005050505050505050A0A0A0A0A0A0A0A093
+:10DD10005050505050505050A0A0A0A0A0A0A0A083
+:10DD20005050505050505050A0A0A0A0A0A0A0A073
+:10DD30005050505050505050A0A0A0A0A0A0A0A063
+:10DD40005050505050505050A0A0A0A0A0A0A0A053
+:10DD50005050505050505050A0A0A0A0A0A0A0A043
+:10DD60005050505050505050A0A0A0A0A0A0A0A033
+:10DD70005050505050505050A0A0A0A0A0A0A0A023
+:10DD8000A0A0A0A0A0A0A0A0505050505050505013
+:10DD9000A0A0A0A0A0A0A0A0505050505050505003
+:10DDA000A0A0A0A0A0A0A0A05050505050505050F3
+:10DDB000A0A0A0A0A0A0A0A05050505050505050E3
+:10DDC000A0A0A0A0A0A0A0A05050505050505050D3
+:10DDD000A0A0A0A0A0A0A0A05050505050505050C3
+:10DDE000A0A0A0A0A0A0A0A05050505050505050B3
+:10DDF000A0A0A0A0A0A0A0A05050505050505050A3
+:10DE00005A5A5A5A5A5A5A5AA5A5A5A5A5A5A5A51A
+:10DE10005A5A5A5A5A5A5A5AA5A5A5A5A5A5A5A50A
+:10DE20005A5A5A5A5A5A5A5AA5A5A5A5A5A5A5A5FA
+:10DE30005A5A5A5A5A5A5A5AA5A5A5A5A5A5A5A5EA
+:10DE40005A5A5A5A5A5A5A5AA5A5A5A5A5A5A5A5DA
+:10DE50005A5A5A5A5A5A5A5AA5A5A5A5A5A5A5A5CA
+:10DE60005A5A5A5A5A5A5A5AA5A5A5A5A5A5A5A5BA
+:10DE70005A5A5A5A5A5A5A5AA5A5A5A5A5A5A5A5AA
+:10DE8000AAAAAAAAAAAAAAAA5A5A5A5A5A5A5A5A72
+:10DE9000AAAAAAAAAAAAAAAA5A5A5A5A5A5A5A5A62
+:10DEA000AAAAAAAAAAAAAAAA5A5A5A5A5A5A5A5A52
+:10DEB000AAAAAAAAAAAAAAAA5A5A5A5A5A5A5A5A42
+:10DEC000AAAAAAAAAAAAAAAA5A5A5A5A5A5A5A5A32
+:10DED000AAAAAAAAAAAAAAAA5A5A5A5A5A5A5A5A22
+:10DEE000AAAAAAAAAAAAAAAA5A5A5A5A5A5A5A5A12
+:10DEF000AAAAAAAAAAAAAAAA5A5A5A5A5A5A5A5A02
+:10DF00005A5A5A5A5A5A5A5AA5A5A5A5A5A5A5A519
+:10DF10005A5A5A5A5A5A5A5AA5A5A5A5A5A5A5A509
+:10DF20005A5A5A5A5A5A5A5AA5A5A5A5A5A5A5A5F9
+:10DF30005A5A5A5A5A5A5A5AA5A5A5A5A5A5A5A5E9
+:10DF40005A5A5A5A5A5A5A5AA5A5A5A5A5A5A5A5D9
+:10DF50005A5A5A5A5A5A5A5AA5A5A5A5A5A5A5A5C9
+:10DF60005A5A5A5A5A5A5A5AA5A5A5A5A5A5A5A5B9
+:10DF70005A5A5A5A5A5A5A5AA5A5A5A5A5A5A5A5A9
+:10DF8000AAAAAAAAAAAAAAAA5A5A5A5A5A5A5A5A71
+:10DF9000AAAAAAAAAAAAAAAA5A5A5A5A5A5A5A5A61
+:10DFA000AAAAAAAAAAAAAAAA5A5A5A5A5A5A5A5A51
+:10DFB000AAAAAAAAAAAAAAAA5A5A5A5A5A5A5A5A41
+:10DFC000AAAAAAAAAAAAAAAA5A5A5A5A5A5A5A5A31
+:10DFD000AAAAAAAAAAAAAAAA5A5A5A5A5A5A5A5A21
+:10DFE000AAAAAAAAAAAAAAAA5A5A5A5A5A5A5A5A11
+:10DFF000AAAAAAAAAAAAAAAA5A5A5A5A5A5A5A5A01
+:10E000005A5A5A5A5A5A5A5AA5A5A5A5A5A5A5A518
+:10E010005A5A5A5A5A5A5A5AA5A5A5A5A5A5A5A508
+:10E020005A5A5A5A5A5A5A5AA5A5A5A5A5A5A5A5F8
+:10E030005A5A5A5A5A5A5A5AA5A5A5A5A5A5A5A5E8
+:10E040005A5A5A5A5A5A5A5AA5A5A5A5A5A5A5A5D8
+:10E050005A5A5A5A5A5A5A5AA5A5A5A5A5A5A5A5C8
+:10E060005A5A5A5A5A5A5A5AA5A5A5A5A5A5A5A5B8
+:10E070005A5A5A5A5A5A5A5AA5A5A5A5A5A5A5A5A8
+:10E08000AAAAAAAAAAAAAAAA5A5A5A5A5A5A5A5A70
+:10E09000AAAAAAAAAAAAAAAA5A5A5A5A5A5A5A5A60
+:10E0A000AAAAAAAAAAAAAAAA5A5A5A5A5A5A5A5A50
+:10E0B000AAAAAAAAAAAAAAAA5A5A5A5A5A5A5A5A40
+:10E0C000AAAAAAAAAAAAAAAA5A5A5A5A5A5A5A5A30
+:10E0D000AAAAAAAAAAAAAAAA5A5A5A5A5A5A5A5A20
+:10E0E000AAAAAAAAAAAAAAAA5A5A5A5A5A5A5A5A10
+:10E0F000AAAAAAAAAAAAAAAA5A5A5A5A5A5A5A5A00
+:10E100005A5A5A5A5A5A5A5AA5A5A5A5A5A5A5A517
+:10E110005A5A5A5A5A5A5A5AA5A5A5A5A5A5A5A507
+:10E120005A5A5A5A5A5A5A5AA5A5A5A5A5A5A5A5F7
+:10E130005A5A5A5A5A5A5A5AA5A5A5A5A5A5A5A5E7
+:10E140005A5A5A5A5A5A5A5AA5A5A5A5A5A5A5A5D7
+:10E150005A5A5A5A5A5A5A5AA5A5A5A5A5A5A5A5C7
+:10E160005A5A5A5A5A5A5A5AA5A5A5A5A5A5A5A5B7
+:10E170005A5A5A5A5A5A5A5AA5A5A5A5A5A5A5A5A7
+:10E18000AAAAAAAAAAAAAAAA5A5A5A5A5A5A5A5A6F
+:10E19000AAAAAAAAAAAAAAAA5A5A5A5A5A5A5A5A5F
+:10E1A000AAAAAAAAAAAAAAAA5A5A5A5A5A5A5A5A4F
+:10E1B000AAAAAAAAAAAAAAAA5A5A5A5A5A5A5A5A3F
+:10E1C000AAAAAAAAAAAAAAAA5A5A5A5A5A5A5A5A2F
+:10E1D000AAAAAAAAAAAAAAAA5A5A5A5A5A5A5A5A1F
+:10E1E000AAAAAAAAAAAAAAAA5A5A5A5A5A5A5A5A0F
+:10E1F000AAAAAAAAAAAAAAAA5A5A5A5A5A5A5A5AFF
+:10E200005A5A5A5A5A5A5A5AA5A5A5A5A5A5A5A516
+:10E210005A5A5A5A5A5A5A5AA5A5A5A5A5A5A5A506
+:10E220005A5A5A5A5A5A5A5AA5A5A5A5A5A5A5A5F6
+:10E230005A5A5A5A5A5A5A5AA5A5A5A5A5A5A5A5E6
+:10E240005A5A5A5A5A5A5A5AA5A5A5A5A5A5A5A5D6
+:10E250005A5A5A5A5A5A5A5AA5A5A5A5A5A5A5A5C6
+:10E260005A5A5A5A5A5A5A5AA5A5A5A5A5A5A5A5B6
+:10E270005A5A5A5A5A5A5A5AA5A5A5A5A5A5A5A5A6
+:10E28000AAAAAAAAAAAAAAAA5A5A5A5A5A5A5A5A6E
+:10E29000AAAAAAAAAAAAAAAA5A5A5A5A5A5A5A5A5E
+:10E2A000AAAAAAAAAAAAAAAA5A5A5A5A5A5A5A5A4E
+:10E2B000AAAAAAAAAAAAAAAA5A5A5A5A5A5A5A5A3E
+:10E2C000AAAAAAAAAAAAAAAA5A5A5A5A5A5A5A5A2E
+:10E2D000AAAAAAAAAAAAAAAA5A5A5A5A5A5A5A5A1E
+:10E2E000AAAAAAAAAAAAAAAA5A5A5A5A5A5A5A5A0E
+:10E2F000AAAAAAAAAAAAAAAA5A5A5A5A5A5A5A5AFE
+:10E300005A5A5A5A5A5A5A5AA5A5A5A5A5A5A5A515
+:10E310005A5A5A5A5A5A5A5AA5A5A5A5A5A5A5A505
+:10E320005A5A5A5A5A5A5A5AA5A5A5A5A5A5A5A5F5
+:10E330005A5A5A5A5A5A5A5AA5A5A5A5A5A5A5A5E5
+:10E340005A5A5A5A5A5A5A5AA5A5A5A5A5A5A5A5D5
+:10E350005A5A5A5A5A5A5A5AA5A5A5A5A5A5A5A5C5
+:10E360005A5A5A5A5A5A5A5AA5A5A5A5A5A5A5A5B5
+:10E370005A5A5A5A5A5A5A5AA5A5A5A5A5A5A5A5A5
+:10E38000AAAAAAAAAAAAAAAA5A5A5A5A5A5A5A5A6D
+:10E39000AAAAAAAAAAAAAAAA5A5A5A5A5A5A5A5A5D
+:10E3A000AAAAAAAAAAAAAAAA5A5A5A5A5A5A5A5A4D
+:10E3B000AAAAAAAAAAAAAAAA5A5A5A5A5A5A5A5A3D
+:10E3C000AAAAAAAAAAAAAAAA5A5A5A5A5A5A5A5A2D
+:10E3D000AAAAAAAAAAAAAAAA5A5A5A5A5A5A5A5A1D
+:10E3E000AAAAAAAAAAAAAAAA5A5A5A5A5A5A5A5A0D
+:10E3F000AAAAAAAAAAAAAAAA5A5A5A5A5A5A5A5AFD
+:10E400005A5A5A5A5A5A5A5AA5A5A5A5A5A5A5A514
+:10E410005A5A5A5A5A5A5A5AA5A5A5A5A5A5A5A504
+:10E420005A5A5A5A5A5A5A5AA5A5A5A5A5A5A5A5F4
+:10E430005A5A5A5A5A5A5A5AA5A5A5A5A5A5A5A5E4
+:10E440005A5A5A5A5A5A5A5AA5A5A5A5A5A5A5A5D4
+:10E450005A5A5A5A5A5A5A5AA5A5A5A5A5A5A5A5C4
+:10E460005A5A5A5A5A5A5A5AA5A5A5A5A5A5A5A5B4
+:10E470005A5A5A5A5A5A5A5AA5A5A5A5A5A5A5A5A4
+:10E48000AAAAAAAAAAAAAAAA5A5A5A5A5A5A5A5A6C
+:10E49000AAAAAAAAAAAAAAAA5A5A5A5A5A5A5A5A5C
+:10E4A000AAAAAAAAAAAAAAAA5A5A5A5A5A5A5A5A4C
+:10E4B000AAAAAAAAAAAAAAAA5A5A5A5A5A5A5A5A3C
+:10E4C000AAAAAAAAAAAAAAAA5A5A5A5A5A5A5A5A2C
+:10E4D000AAAAAAAAAAAAAAAA5A5A5A5A5A5A5A5A1C
+:10E4E000AAAAAAAAAAAAAAAA5A5A5A5A5A5A5A5A0C
+:10E4F000AAAAAAAAAAAAAAAA5A5A5A5A5A5A5A5AFC
+:10E500004A4A4A4A4A4A4A4A858585858585858593
+:10E510004A4A4A4A4A4A4A4A858585858585858583
+:10E520004A4A4A4A4A4A4A4A858585858585858573
+:10E530004A4A4A4A4A4A4A4A858585858585858563
+:10E540004A4A4A4A4A4A4A4A858585858585858553
+:10E550004A4A4A4A4A4A4A4A858585858585858543
+:10E560004A4A4A4A4A4A4A4A858585858585858533
+:10E570004A4A4A4A4A4A4A4A858585858585858523
+:10E580008A8A8A8A8A8A8A8A4A4A4A4A4A4A4A4AEB
+:10E590008A8A8A8A8A8A8A8A4A4A4A4A4A4A4A4ADB
+:10E5A0008A8A8A8A8A8A8A8A4A4A4A4A4A4A4A4ACB
+:10E5B0008A8A8A8A8A8A8A8A4A4A4A4A4A4A4A4ABB
+:10E5C0008A8A8A8A8A8A8A8A4A4A4A4A4A4A4A4AAB
+:10E5D0008A8A8A8A8A8A8A8A4A4A4A4A4A4A4A4A9B
+:10E5E0008A8A8A8A8A8A8A8A4A4A4A4A4A4A4A4A8B
+:10E5F0008A8A8A8A8A8A8A8A4A4A4A4A4A4A4A4A7B
+:10E600006A6A6A6A6A6A6A6A959595959595959512
+:10E610006A6A6A6A6A6A6A6A959595959595959502
+:10E620006A6A6A6A6A6A6A6A9595959595959595F2
+:10E630006A6A6A6A6A6A6A6A9595959595959595E2
+:10E640006A6A6A6A6A6A6A6A9595959595959595D2
+:10E650006A6A6A6A6A6A6A6A9595959595959595C2
+:10E660006A6A6A6A6A6A6A6A9595959595959595B2
+:10E670006A6A6A6A6A6A6A6A9595959595959595A2
+:10E68000AAAAAAAAAAAAAAAA6A6A6A6A6A6A6A6AEA
+:10E69000AAAAAAAAAAAAAAAA6A6A6A6A6A6A6A6ADA
+:10E6A000AAAAAAAAAAAAAAAA6A6A6A6A6A6A6A6ACA
+:10E6B000AAAAAAAAAAAAAAAA6A6A6A6A6A6A6A6ABA
+:10E6C000AAAAAAAAAAAAAAAA6A6A6A6A6A6A6A6AAA
+:10E6D000AAAAAAAAAAAAAAAA6A6A6A6A6A6A6A6A9A
+:10E6E000AAAAAAAAAAAAAAAA6A6A6A6A6A6A6A6A8A
+:10E6F000AAAAAAAAAAAAAAAA6A6A6A6A6A6A6A6A7A
+:10E700006A6A6A6A6A6A6A6A959595959595959511
+:10E710006A6A6A6A6A6A6A6A959595959595959501
+:10E720006A6A6A6A6A6A6A6A9595959595959595F1
+:10E730006A6A6A6A6A6A6A6A9595959595959595E1
+:10E740006A6A6A6A6A6A6A6A9595959595959595D1
+:10E750006A6A6A6A6A6A6A6A9595959595959595C1
+:10E760006A6A6A6A6A6A6A6A9595959595959595B1
+:10E770006A6A6A6A6A6A6A6A9595959595959595A1
+:10E78000AAAAAAAAAAAAAAAA6A6A6A6A6A6A6A6AE9
+:10E79000AAAAAAAAAAAAAAAA6A6A6A6A6A6A6A6AD9
+:10E7A000AAAAAAAAAAAAAAAA6A6A6A6A6A6A6A6AC9
+:10E7B000AAAAAAAAAAAAAAAA6A6A6A6A6A6A6A6AB9
+:10E7C000AAAAAAAAAAAAAAAA6A6A6A6A6A6A6A6AA9
+:10E7D000AAAAAAAAAAAAAAAA6A6A6A6A6A6A6A6A99
+:10E7E000AAAAAAAAAAAAAAAA6A6A6A6A6A6A6A6A89
+:10E7F000AAAAAAAAAAAAAAAA6A6A6A6A6A6A6A6A79
+:10E800006A6A6A6A6A6A6A6A959595959595959510
+:10E810006A6A6A6A6A6A6A6A959595959595959500
+:10E820006A6A6A6A6A6A6A6A9595959595959595F0
+:10E830006A6A6A6A6A6A6A6A9595959595959595E0
+:10E840006A6A6A6A6A6A6A6A9595959595959595D0
+:10E850006A6A6A6A6A6A6A6A9595959595959595C0
+:10E860006A6A6A6A6A6A6A6A9595959595959595B0
+:10E870006A6A6A6A6A6A6A6A9595959595959595A0
+:10E88000AAAAAAAAAAAAAAAA6A6A6A6A6A6A6A6AE8
+:10E89000AAAAAAAAAAAAAAAA6A6A6A6A6A6A6A6AD8
+:10E8A000AAAAAAAAAAAAAAAA6A6A6A6A6A6A6A6AC8
+:10E8B000AAAAAAAAAAAAAAAA6A6A6A6A6A6A6A6AB8
+:10E8C000AAAAAAAAAAAAAAAA6A6A6A6A6A6A6A6AA8
+:10E8D000AAAAAAAAAAAAAAAA6A6A6A6A6A6A6A6A98
+:10E8E000AAAAAAAAAAAAAAAA6A6A6A6A6A6A6A6A88
+:10E8F000AAAAAAAAAAAAAAAA6A6A6A6A6A6A6A6A78
+:10E900002A2A2A2A2A2A2A2A15151515151515150F
+:10E910002A2A2A2A2A2A2A2A1515151515151515FF
+:10E920002A2A2A2A2A2A2A2A1515151515151515EF
+:10E930002A2A2A2A2A2A2A2A1515151515151515DF
+:10E940002A2A2A2A2A2A2A2A1515151515151515CF
+:10E950002A2A2A2A2A2A2A2A1515151515151515BF
+:10E960002A2A2A2A2A2A2A2A1515151515151515AF
+:10E970002A2A2A2A2A2A2A2A15151515151515159F
+:10E980002A2A2A2A2A2A2A2A2A2A2A2A2A2A2A2AE7
+:10E990002A2A2A2A2A2A2A2A2A2A2A2A2A2A2A2AD7
+:10E9A0002A2A2A2A2A2A2A2A2A2A2A2A2A2A2A2AC7
+:10E9B0002A2A2A2A2A2A2A2A2A2A2A2A2A2A2A2AB7
+:10E9C0002A2A2A2A2A2A2A2A2A2A2A2A2A2A2A2AA7
+:10E9D0002A2A2A2A2A2A2A2A2A2A2A2A2A2A2A2A97
+:10E9E0002A2A2A2A2A2A2A2A2A2A2A2A2A2A2A2A87
+:10E9F0002A2A2A2A2A2A2A2A2A2A2A2A2A2A2A2A77
+:10EA0000AAAAAAAAAAAAAAAA55555555555555550E
+:10EA1000AAAAAAAAAAAAAAAA5555555555555555FE
+:10EA2000AAAAAAAAAAAAAAAA5555555555555555EE
+:10EA3000AAAAAAAAAAAAAAAA5555555555555555DE
+:10EA4000AAAAAAAAAAAAAAAA5555555555555555CE
+:10EA5000AAAAAAAAAAAAAAAA5555555555555555BE
+:10EA6000AAAAAAAAAAAAAAAA5555555555555555AE
+:10EA7000AAAAAAAAAAAAAAAA55555555555555559E
+:10EA8000AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAE6
+:10EA9000AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD6
+:10EAA000AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAC6
+:10EAB000AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB6
+:10EAC000AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA6
+:10EAD000AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA96
+:10EAE000AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA86
+:10EAF000AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA76
+:10EB0000AAAAAAAAAAAAAAAA55555555555555550D
+:10EB1000AAAAAAAAAAAAAAAA5555555555555555FD
+:10EB2000AAAAAAAAAAAAAAAA5555555555555555ED
+:10EB3000AAAAAAAAAAAAAAAA5555555555555555DD
+:10EB4000AAAAAAAAAAAAAAAA5555555555555555CD
+:10EB5000AAAAAAAAAAAAAAAA5555555555555555BD
+:10EB6000AAAAAAAAAAAAAAAA5555555555555555AD
+:10EB7000AAAAAAAAAAAAAAAA55555555555555559D
+:10EB8000AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAE5
+:10EB9000AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD5
+:10EBA000AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAC5
+:10EBB000AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB5
+:10EBC000AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA5
+:10EBD000AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA95
+:10EBE000AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA85
+:10EBF000AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA75
+:10EC0000AAAAAAAAAAAAAAAA55555555555555550C
+:10EC1000AAAAAAAAAAAAAAAA5555555555555555FC
+:10EC2000AAAAAAAAAAAAAAAA5555555555555555EC
+:10EC3000AAAAAAAAAAAAAAAA5555555555555555DC
+:10EC4000AAAAAAAAAAAAAAAA5555555555555555CC
+:10EC5000AAAAAAAAAAAAAAAA5555555555555555BC
+:10EC6000AAAAAAAAAAAAAAAA5555555555555555AC
+:10EC7000AAAAAAAAAAAAAAAA55555555555555559C
+:10EC8000AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAE4
+:10EC9000AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD4
+:10ECA000AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAC4
+:10ECB000AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB4
+:10ECC000AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA4
+:10ECD000AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA94
+:10ECE000AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA84
+:10ECF000AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA74
+:10ED0000AAAAAAAAAAAAAAAA55555555555555550B
+:10ED1000AAAAAAAAAAAAAAAA5555555555555555FB
+:10ED2000AAAAAAAAAAAAAAAA5555555555555555EB
+:10ED3000AAAAAAAAAAAAAAAA5555555555555555DB
+:10ED4000AAAAAAAAAAAAAAAA5555555555555555CB
+:10ED5000AAAAAAAAAAAAAAAA5555555555555555BB
+:10ED6000AAAAAAAAAAAAAAAA5555555555555555AB
+:10ED7000AAAAAAAAAAAAAAAA55555555555555559B
+:10ED8000AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAE3
+:10ED9000AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD3
+:10EDA000AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAC3
+:10EDB000AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB3
+:10EDC000AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA3
+:10EDD000AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA93
+:10EDE000AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA83
+:10EDF000AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA73
+:10EE0000AAAAAAAAAAAAAAAA55555555555555550A
+:10EE1000AAAAAAAAAAAAAAAA5555555555555555FA
+:10EE2000AAAAAAAAAAAAAAAA5555555555555555EA
+:10EE3000AAAAAAAAAAAAAAAA5555555555555555DA
+:10EE4000AAAAAAAAAAAAAAAA5555555555555555CA
+:10EE5000AAAAAAAAAAAAAAAA5555555555555555BA
+:10EE6000AAAAAAAAAAAAAAAA5555555555555555AA
+:10EE7000AAAAAAAAAAAAAAAA55555555555555559A
+:10EE8000AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAE2
+:10EE9000AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2
+:10EEA000AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAC2
+:10EEB000AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB2
+:10EEC000AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA2
+:10EED000AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA92
+:10EEE000AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA82
+:10EEF000AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA72
+:10EF0000AAAAAAAAAAAAAAAA555555555555555509
+:10EF1000AAAAAAAAAAAAAAAA5555555555555555F9
+:10EF2000AAAAAAAAAAAAAAAA5555555555555555E9
+:10EF3000AAAAAAAAAAAAAAAA5555555555555555D9
+:10EF4000AAAAAAAAAAAAAAAA5555555555555555C9
+:10EF5000AAAAAAAAAAAAAAAA5555555555555555B9
+:10EF6000AAAAAAAAAAAAAAAA5555555555555555A9
+:10EF7000AAAAAAAAAAAAAAAA555555555555555599
+:10EF8000AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAE1
+:10EF9000AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD1
+:10EFA000AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAC1
+:10EFB000AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB1
+:10EFC000AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA1
+:10EFD000AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA91
+:10EFE000AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA81
+:10EFF000AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA71
+:10F00000AAAAAAAAAAAAAAAA555555555555555508
+:10F01000AAAAAAAAAAAAAAAA5555555555555555F8
+:10F02000AAAAAAAAAAAAAAAA5555555555555555E8
+:10F03000AAAAAAAAAAAAAAAA5555555555555555D8
+:10F04000AAAAAAAAAAAAAAAA5555555555555555C8
+:10F05000AAAAAAAAAAAAAAAA5555555555555555B8
+:10F06000AAAAAAAAAAAAAAAA5555555555555555A8
+:10F07000AAAAAAAAAAAAAAAA555555555555555598
+:10F08000AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAE0
+:10F09000AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD0
+:10F0A000AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAC0
+:10F0B000AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB0
+:10F0C000AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA0
+:10F0D000AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA90
+:10F0E000AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA80
+:10F0F000AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA70
+:10F10000AAAAAAAAAAAAAAAA555555555555555507
+:10F11000AAAAAAAAAAAAAAAA5555555555555555F7
+:10F12000AAAAAAAAAAAAAAAA5555555555555555E7
+:10F13000AAAAAAAAAAAAAAAA5555555555555555D7
+:10F14000AAAAAAAAAAAAAAAA5555555555555555C7
+:10F15000AAAAAAAAAAAAAAAA5555555555555555B7
+:10F16000AAAAAAAAAAAAAAAA5555555555555555A7
+:10F17000AAAAAAAAAAAAAAAA555555555555555597
+:10F18000AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADF
+:10F19000AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACF
+:10F1A000AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABF
+:10F1B000AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAF
+:10F1C000AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA9F
+:10F1D000AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8F
+:10F1E000AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA7F
+:10F1F000AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA6F
+:10F20000AAAAAAAAAAAAAAAA555555555555555506
+:10F21000AAAAAAAAAAAAAAAA5555555555555555F6
+:10F22000AAAAAAAAAAAAAAAA5555555555555555E6
+:10F23000AAAAAAAAAAAAAAAA5555555555555555D6
+:10F24000AAAAAAAAAAAAAAAA5555555555555555C6
+:10F25000AAAAAAAAAAAAAAAA5555555555555555B6
+:10F26000AAAAAAAAAAAAAAAA5555555555555555A6
+:10F27000AAAAAAAAAAAAAAAA555555555555555596
+:10F28000AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADE
+:10F29000AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACE
+:10F2A000AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABE
+:10F2B000AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAE
+:10F2C000AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA9E
+:10F2D000AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8E
+:10F2E000AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA7E
+:10F2F000AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA6E
+:10F30000AAAAAAAAAAAAAAAA555555555555555505
+:10F31000AAAAAAAAAAAAAAAA5555555555555555F5
+:10F32000AAAAAAAAAAAAAAAA5555555555555555E5
+:10F33000AAAAAAAAAAAAAAAA5555555555555555D5
+:10F34000AAAAAAAAAAAAAAAA5555555555555555C5
+:10F35000AAAAAAAAAAAAAAAA5555555555555555B5
+:10F36000AAAAAAAAAAAAAAAA5555555555555555A5
+:10F37000AAAAAAAAAAAAAAAA555555555555555595
+:10F38000AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADD
+:10F39000AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACD
+:10F3A000AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABD
+:10F3B000AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD
+:10F3C000AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA9D
+:10F3D000AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8D
+:10F3E000AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA7D
+:10F3F000AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA6D
+:10F40000AAAAAAAAAAAAAAAA555555555555555504
+:10F41000AAAAAAAAAAAAAAAA5555555555555555F4
+:10F42000AAAAAAAAAAAAAAAA5555555555555555E4
+:10F43000AAAAAAAAAAAAAAAA5555555555555555D4
+:10F44000AAAAAAAAAAAAAAAA5555555555555555C4
+:10F45000AAAAAAAAAAAAAAAA5555555555555555B4
+:10F46000AAAAAAAAAAAAAAAA5555555555555555A4
+:10F47000AAAAAAAAAAAAAAAA555555555555555594
+:10F48000AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADC
+:10F49000AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACC
+:10F4A000AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABC
+:10F4B000AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAC
+:10F4C000AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA9C
+:10F4D000AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8C
+:10F4E000AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA7C
+:10F4F000AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA6C
+:10F50000AAAAAAAAAAAAAAAA555555555555555503
+:10F51000AAAAAAAAAAAAAAAA5555555555555555F3
+:10F52000AAAAAAAAAAAAAAAA5555555555555555E3
+:10F53000AAAAAAAAAAAAAAAA5555555555555555D3
+:10F54000AAAAAAAAAAAAAAAA5555555555555555C3
+:10F55000AAAAAAAAAAAAAAAA5555555555555555B3
+:10F56000AAAAAAAAAAAAAAAA5555555555555555A3
+:10F57000AAAAAAAAAAAAAAAA555555555555555593
+:10F58000AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADB
+:10F59000AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACB
+:10F5A000AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABB
+:10F5B000AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB
+:10F5C000AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA9B
+:10F5D000AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8B
+:10F5E000AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA7B
+:10F5F000AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA6B
+:10F60000AAAAAAAAAAAAAAAA555555555555555502
+:10F61000AAAAAAAAAAAAAAAA5555555555555555F2
+:10F62000AAAAAAAAAAAAAAAA5555555555555555E2
+:10F63000AAAAAAAAAAAAAAAA5555555555555555D2
+:10F64000AAAAAAAAAAAAAAAA5555555555555555C2
+:10F65000AAAAAAAAAAAAAAAA5555555555555555B2
+:10F66000AAAAAAAAAAAAAAAA5555555555555555A2
+:10F67000AAAAAAAAAAAAAAAA555555555555555592
+:10F68000AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADA
+:10F69000AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACA
+:10F6A000AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABA
+:10F6B000AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+:10F6C000AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA9A
+:10F6D000AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8A
+:10F6E000AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA7A
+:10F6F000AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA6A
+:10F70000AAAAAAAAAAAAAAAA555555555555555501
+:10F71000AAAAAAAAAAAAAAAA5555555555555555F1
+:10F72000AAAAAAAAAAAAAAAA5555555555555555E1
+:10F73000AAAAAAAAAAAAAAAA5555555555555555D1
+:10F74000AAAAAAAAAAAAAAAA5555555555555555C1
+:10F75000AAAAAAAAAAAAAAAA5555555555555555B1
+:10F76000AAAAAAAAAAAAAAAA5555555555555555A1
+:10F77000AAAAAAAAAAAAAAAA555555555555555591
+:10F78000AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD9
+:10F79000AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAC9
+:10F7A000AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB9
+:10F7B000AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA9
+:10F7C000AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA99
+:10F7D000AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA89
+:10F7E000AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA79
+:10F7F000AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA69
+:10F80000A0A0A0A0A0A0A0A0505050505050505078
+:10F81000A0A0A0A0A0A0A0A0505050505050505068
+:10F82000A0A0A0A0A0A0A0A0505050505050505058
+:10F83000A0A0A0A0A0A0A0A0505050505050505048
+:10F84000A0A0A0A0A0A0A0A0505050505050505038
+:10F85000A0A0A0A0A0A0A0A0505050505050505028
+:10F86000A0A0A0A0A0A0A0A0505050505050505018
+:10F87000A0A0A0A0A0A0A0A0505050505050505008
+:10F88000A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A078
+:10F89000A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A068
+:10F8A000A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A058
+:10F8B000A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A048
+:10F8C000A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A038
+:10F8D000A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A028
+:10F8E000A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A018
+:10F8F000A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A008
+:10F90000ACACACACACACACAC5C5C5C5C5C5C5C5CB7
+:10F91000ACACACACACACACAC5C5C5C5C5C5C5C5CA7
+:10F92000ACACACACACACACAC5C5C5C5C5C5C5C5C97
+:10F93000ACACACACACACACAC5C5C5C5C5C5C5C5C87
+:10F94000ACACACACACACACAC5C5C5C5C5C5C5C5C77
+:10F95000ACACACACACACACAC5C5C5C5C5C5C5C5C67
+:10F96000ACACACACACACACAC5C5C5C5C5C5C5C5C57
+:10F97000ACACACACACACACAC5C5C5C5C5C5C5C5C47
+:10F98000ACACACACACACACACACACACACACACACACB7
+:10F99000ACACACACACACACACACACACACACACACACA7
+:10F9A000ACACACACACACACACACACACACACACACAC97
+:10F9B000ACACACACACACACACACACACACACACACAC87
+:10F9C000ACACACACACACACACACACACACACACACAC77
+:10F9D000ACACACACACACACACACACACACACACACAC67
+:10F9E000ACACACACACACACACACACACACACACACAC57
+:10F9F000ACACACACACACACACACACACACACACACAC47
+:10FA0000A0A0A0A0A0A0A0A0505050505050505076
+:10FA1000A0A0A0A0A0A0A0A0505050505050505066
+:10FA2000A0A0A0A0A0A0A0A0505050505050505056
+:10FA3000A0A0A0A0A0A0A0A0505050505050505046
+:10FA4000A0A0A0A0A0A0A0A0505050505050505036
+:10FA5000A0A0A0A0A0A0A0A0505050505050505026
+:10FA6000A0A0A0A0A0A0A0A0505050505050505016
+:10FA7000A0A0A0A0A0A0A0A0505050505050505006
+:10FA8000A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A076
+:10FA9000A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A066
+:10FAA000A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A056
+:10FAB000A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A046
+:10FAC000A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A036
+:10FAD000A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A026
+:10FAE000A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A016
+:10FAF000A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A006
+:10FB0000A0A0A0A0A0A0A0A0505050505050505075
+:10FB1000A0A0A0A0A0A0A0A0505050505050505065
+:10FB2000A0A0A0A0A0A0A0A0505050505050505055
+:10FB3000A0A0A0A0A0A0A0A0505050505050505045
+:10FB4000A0A0A0A0A0A0A0A0505050505050505035
+:10FB5000A0A0A0A0A0A0A0A0505050505050505025
+:10FB6000A0A0A0A0A0A0A0A0505050505050505015
+:10FB7000A0A0A0A0A0A0A0A0505050505050505005
+:10FB8000A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A075
+:10FB9000A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A065
+:10FBA000A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A055
+:10FBB000A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A045
+:10FBC000A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A035
+:10FBD000A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A025
+:10FBE000A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A015
+:10FBF000A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A005
+:10FC0000A0A0A0A0A0A0A0A0505050505050505074
+:10FC1000A0A0A0A0A0A0A0A0505050505050505064
+:10FC2000A0A0A0A0A0A0A0A0505050505050505054
+:10FC3000A0A0A0A0A0A0A0A0505050505050505044
+:10FC4000A0A0A0A0A0A0A0A0505050505050505034
+:10FC5000A0A0A0A0A0A0A0A0505050505050505024
+:10FC6000A0A0A0A0A0A0A0A0505050505050505014
+:10FC7000A0A0A0A0A0A0A0A0505050505050505004
+:10FC8000A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A074
+:10FC9000A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A064
+:10FCA000A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A054
+:10FCB000A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A044
+:10FCC000A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A034
+:10FCD000A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A024
+:10FCE000A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A014
+:10FCF000A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A004
+:10FD0000A0A0A0A0A0A0A0A0505050505050505073
+:10FD1000A0A0A0A0A0A0A0A0505050505050505063
+:10FD2000A0A0A0A0A0A0A0A0505050505050505053
+:10FD3000A0A0A0A0A0A0A0A0505050505050505043
+:10FD4000A0A0A0A0A0A0A0A0505050505050505033
+:10FD5000A0A0A0A0A0A0A0A0505050505050505023
+:10FD6000A0A0A0A0A0A0A0A0505050505050505013
+:10FD7000A0A0A0A0A0A0A0A0505050505050505003
+:10FD8000A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A073
+:10FD9000A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A063
+:10FDA000A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A053
+:10FDB000A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A043
+:10FDC000A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A033
+:10FDD000A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A023
+:10FDE000A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A013
+:10FDF000A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A003
+:10FE0000A0A0A0A0A0A0A0A0505050505050505072
+:10FE1000A0A0A0A0A0A0A0A0505050505050505062
+:10FE2000A0A0A0A0A0A0A0A0505050505050505052
+:10FE3000A0A0A0A0A0A0A0A0505050505050505042
+:10FE4000A0A0A0A0A0A0A0A0505050505050505032
+:10FE5000A0A0A0A0A0A0A0A0505050505050505022
+:10FE6000A0A0A0A0A0A0A0A0505050505050505012
+:10FE7000A0A0A0A0A0A0A0A0505050505050505002
+:10FE8000A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A072
+:10FE9000A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A062
+:10FEA000A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A052
+:10FEB000A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A042
+:10FEC000A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A032
+:10FED000A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A022
+:10FEE000A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A012
+:10FEF000A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A002
+:10FF0000A0A0A0A0A0A0A0A0505050505050505071
+:10FF1000A0A0A0A0A0A0A0A0505050505050505061
+:10FF2000A0A0A0A0A0A0A0A0505050505050505051
+:10FF3000A0A0A0A0A0A0A0A0505050505050505041
+:10FF4000A0A0A0A0A0A0A0A0505050505050505031
+:10FF5000A0A0A0A0A0A0A0A0505050505050505021
+:10FF6000A0A0A0A0A0A0A0A0505050505050505011
+:10FF7000A0A0A0A0A0A0A0A0505050505050505001
+:10FF8000A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A071
+:10FF9000A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A061
+:10FFA000A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A051
+:10FFB000A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A041
+:10FFC000A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A031
+:10FFD000A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A021
+:10FFE000A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A011
+:10FFF000A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A001
+:02000004000AF0
+:10000000A0A0A0A0A0A0A0A0505050505050505070
+:10001000A0A0A0A0A0A0A0A0505050505050505060
+:10002000A0A0A0A0A0A0A0A0505050505050505050
+:10003000A0A0A0A0A0A0A0A0505050505050505040
+:10004000A0A0A0A0A0A0A0A0505050505050505030
+:10005000A0A0A0A0A0A0A0A0505050505050505020
+:10006000A0A0A0A0A0A0A0A0505050505050505010
+:10007000A0A0A0A0A0A0A0A0505050505050505000
+:10008000A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A070
+:10009000A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A060
+:1000A000A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A050
+:1000B000A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A040
+:1000C000A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A030
+:1000D000A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A020
+:1000E000A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A010
+:1000F000A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A000
+:10010000A0A0A0A0A0A0A0A050505050505050506F
+:10011000A0A0A0A0A0A0A0A050505050505050505F
+:10012000A0A0A0A0A0A0A0A050505050505050504F
+:10013000A0A0A0A0A0A0A0A050505050505050503F
+:10014000A0A0A0A0A0A0A0A050505050505050502F
+:10015000A0A0A0A0A0A0A0A050505050505050501F
+:10016000A0A0A0A0A0A0A0A050505050505050500F
+:10017000A0A0A0A0A0A0A0A05050505050505050FF
+:10018000A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A06F
+:10019000A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A05F
+:1001A000A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A04F
+:1001B000A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A03F
+:1001C000A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A02F
+:1001D000A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A01F
+:1001E000A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A00F
+:1001F000A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0FF
+:10020000A0A0A0A0A0A0A0A050505050505050506E
+:10021000A0A0A0A0A0A0A0A050505050505050505E
+:10022000A0A0A0A0A0A0A0A050505050505050504E
+:10023000A0A0A0A0A0A0A0A050505050505050503E
+:10024000A0A0A0A0A0A0A0A050505050505050502E
+:10025000A0A0A0A0A0A0A0A050505050505050501E
+:10026000A0A0A0A0A0A0A0A050505050505050500E
+:10027000A0A0A0A0A0A0A0A05050505050505050FE
+:10028000A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A06E
+:10029000A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A05E
+:1002A000A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A04E
+:1002B000A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A03E
+:1002C000A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A02E
+:1002D000A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A01E
+:1002E000A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A00E
+:1002F000A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0FE
+:10030000A0A0A0A0A0A0A0A050505050505050506D
+:10031000A0A0A0A0A0A0A0A050505050505050505D
+:10032000A0A0A0A0A0A0A0A050505050505050504D
+:10033000A0A0A0A0A0A0A0A050505050505050503D
+:10034000A0A0A0A0A0A0A0A050505050505050502D
+:10035000A0A0A0A0A0A0A0A050505050505050501D
+:10036000A0A0A0A0A0A0A0A050505050505050500D
+:10037000A0A0A0A0A0A0A0A05050505050505050FD
+:10038000A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A06D
+:10039000A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A05D
+:1003A000A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A04D
+:1003B000A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A03D
+:1003C000A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A02D
+:1003D000A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A01D
+:1003E000A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A00D
+:1003F000A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0FD
+:10040000A0A0A0A0A0A0A0A050505050505050506C
+:10041000A0A0A0A0A0A0A0A050505050505050505C
+:10042000A0A0A0A0A0A0A0A050505050505050504C
+:10043000A0A0A0A0A0A0A0A050505050505050503C
+:10044000A0A0A0A0A0A0A0A050505050505050502C
+:10045000A0A0A0A0A0A0A0A050505050505050501C
+:10046000A0A0A0A0A0A0A0A050505050505050500C
+:10047000A0A0A0A0A0A0A0A05050505050505050FC
+:10048000A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A06C
+:10049000A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A05C
+:1004A000A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A04C
+:1004B000A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A03C
+:1004C000A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A02C
+:1004D000A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A01C
+:1004E000A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A00C
+:1004F000A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0FC
+:10050000A0A0A0A0A0A0A0A050505050505050506B
+:10051000A0A0A0A0A0A0A0A050505050505050505B
+:10052000A0A0A0A0A0A0A0A050505050505050504B
+:10053000A0A0A0A0A0A0A0A050505050505050503B
+:10054000A0A0A0A0A0A0A0A050505050505050502B
+:10055000A0A0A0A0A0A0A0A050505050505050501B
+:10056000A0A0A0A0A0A0A0A050505050505050500B
+:10057000A0A0A0A0A0A0A0A05050505050505050FB
+:10058000A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A06B
+:10059000A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A05B
+:1005A000A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A04B
+:1005B000A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A03B
+:1005C000A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A02B
+:1005D000A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A01B
+:1005E000A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A00B
+:1005F000A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0FB
+:10060000A0A0A0A0A0A0A0A050505050505050506A
+:10061000A0A0A0A0A0A0A0A050505050505050505A
+:10062000A0A0A0A0A0A0A0A050505050505050504A
+:10063000A0A0A0A0A0A0A0A050505050505050503A
+:10064000A0A0A0A0A0A0A0A050505050505050502A
+:10065000A0A0A0A0A0A0A0A050505050505050501A
+:10066000A0A0A0A0A0A0A0A050505050505050500A
+:10067000A0A0A0A0A0A0A0A05050505050505050FA
+:10068000A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A06A
+:10069000A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A05A
+:1006A000A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A04A
+:1006B000A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A03A
+:1006C000A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A02A
+:1006D000A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A01A
+:1006E000A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A00A
+:1006F000A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0FA
+:10070000A0A0A0A0A0A0A0A0505050505050505069
+:10071000A0A0A0A0A0A0A0A0505050505050505059
+:10072000A0A0A0A0A0A0A0A0505050505050505049
+:10073000A0A0A0A0A0A0A0A0505050505050505039
+:10074000A0A0A0A0A0A0A0A0505050505050505029
+:10075000A0A0A0A0A0A0A0A0505050505050505019
+:10076000A0A0A0A0A0A0A0A0505050505050505009
+:10077000A0A0A0A0A0A0A0A05050505050505050F9
+:10078000A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A069
+:10079000A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A059
+:1007A000A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A049
+:1007B000A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A039
+:1007C000A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A029
+:1007D000A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A019
+:1007E000A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A009
+:1007F000A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0F9
+:1008000080808080808080804040404040404040E8
+:1008100080808080808080804040404040404040D8
+:1008200080808080808080804040404040404040C8
+:1008300080808080808080804040404040404040B8
+:1008400080808080808080804040404040404040A8
+:100850008080808080808080404040404040404098
+:100860008080808080808080404040404040404088
+:100870008080808080808080404040404040404078
+:100880008080808080808080808080808080808068
+:100890008080808080808080808080808080808058
+:1008A0008080808080808080808080808080808048
+:1008B0008080808080808080808080808080808038
+:1008C0008080808080808080808080808080808028
+:1008D0008080808080808080808080808080808018
+:1008E0008080808080808080808080808080808008
+:1008F00080808080808080808080808080808080F8
+:10090000B0B0B0B0B0B0B0B07070707070707070E7
+:10091000B0B0B0B0B0B0B0B07070707070707070D7
+:10092000B0B0B0B0B0B0B0B07070707070707070C7
+:10093000B0B0B0B0B0B0B0B07070707070707070B7
+:10094000B0B0B0B0B0B0B0B07070707070707070A7
+:10095000B0B0B0B0B0B0B0B0707070707070707097
+:10096000B0B0B0B0B0B0B0B0707070707070707087
+:10097000B0B0B0B0B0B0B0B0707070707070707077
+:10098000B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B067
+:10099000B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B057
+:1009A000B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B047
+:1009B000B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B037
+:1009C000B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B027
+:1009D000B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B017
+:1009E000B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B007
+:1009F000B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0F7
+:100A000080808080808080804040404040404040E6
+:100A100080808080808080804040404040404040D6
+:100A200080808080808080804040404040404040C6
+:100A300080808080808080804040404040404040B6
+:100A400080808080808080804040404040404040A6
+:100A50008080808080808080404040404040404096
+:100A60008080808080808080404040404040404086
+:100A70008080808080808080404040404040404076
+:100A80008080808080808080808080808080808066
+:100A90008080808080808080808080808080808056
+:100AA0008080808080808080808080808080808046
+:100AB0008080808080808080808080808080808036
+:100AC0008080808080808080808080808080808026
+:100AD0008080808080808080808080808080808016
+:100AE0008080808080808080808080808080808006
+:100AF00080808080808080808080808080808080F6
+:100B000080808080808080804040404040404040E5
+:100B100080808080808080804040404040404040D5
+:100B200080808080808080804040404040404040C5
+:100B300080808080808080804040404040404040B5
+:100B400080808080808080804040404040404040A5
+:100B50008080808080808080404040404040404095
+:100B60008080808080808080404040404040404085
+:100B70008080808080808080404040404040404075
+:100B80008080808080808080808080808080808065
+:100B90008080808080808080808080808080808055
+:100BA0008080808080808080808080808080808045
+:100BB0008080808080808080808080808080808035
+:100BC0008080808080808080808080808080808025
+:100BD0008080808080808080808080808080808015
+:100BE0008080808080808080808080808080808005
+:100BF00080808080808080808080808080808080F5
+:100C000080808080808080804040404040404040E4
+:100C100080808080808080804040404040404040D4
+:100C200080808080808080804040404040404040C4
+:100C300080808080808080804040404040404040B4
+:100C400080808080808080804040404040404040A4
+:100C50008080808080808080404040404040404094
+:100C60008080808080808080404040404040404084
+:100C70008080808080808080404040404040404074
+:100C80008080808080808080808080808080808064
+:100C90008080808080808080808080808080808054
+:100CA0008080808080808080808080808080808044
+:100CB0008080808080808080808080808080808034
+:100CC0008080808080808080808080808080808024
+:100CD0008080808080808080808080808080808014
+:100CE0008080808080808080808080808080808004
+:100CF00080808080808080808080808080808080F4
+:100D000080808080808080804040404040404040E3
+:100D100080808080808080804040404040404040D3
+:100D200080808080808080804040404040404040C3
+:100D300080808080808080804040404040404040B3
+:100D400080808080808080804040404040404040A3
+:100D50008080808080808080404040404040404093
+:100D60008080808080808080404040404040404083
+:100D70008080808080808080404040404040404073
+:100D80008080808080808080808080808080808063
+:100D90008080808080808080808080808080808053
+:100DA0008080808080808080808080808080808043
+:100DB0008080808080808080808080808080808033
+:100DC0008080808080808080808080808080808023
+:100DD0008080808080808080808080808080808013
+:100DE0008080808080808080808080808080808003
+:100DF00080808080808080808080808080808080F3
+:100E000080808080808080804040404040404040E2
+:100E100080808080808080804040404040404040D2
+:100E200080808080808080804040404040404040C2
+:100E300080808080808080804040404040404040B2
+:100E400080808080808080804040404040404040A2
+:100E50008080808080808080404040404040404092
+:100E60008080808080808080404040404040404082
+:100E70008080808080808080404040404040404072
+:100E80008080808080808080808080808080808062
+:100E90008080808080808080808080808080808052
+:100EA0008080808080808080808080808080808042
+:100EB0008080808080808080808080808080808032
+:100EC0008080808080808080808080808080808022
+:100ED0008080808080808080808080808080808012
+:100EE0008080808080808080808080808080808002
+:100EF00080808080808080808080808080808080F2
+:100F000080808080808080804040404040404040E1
+:100F100080808080808080804040404040404040D1
+:100F200080808080808080804040404040404040C1
+:100F300080808080808080804040404040404040B1
+:100F400080808080808080804040404040404040A1
+:100F50008080808080808080404040404040404091
+:100F60008080808080808080404040404040404081
+:100F70008080808080808080404040404040404071
+:100F80008080808080808080808080808080808061
+:100F90008080808080808080808080808080808051
+:100FA0008080808080808080808080808080808041
+:100FB0008080808080808080808080808080808031
+:100FC0008080808080808080808080808080808021
+:100FD0008080808080808080808080808080808011
+:100FE0008080808080808080808080808080808001
+:100FF00080808080808080808080808080808080F1
+:1010000000000000000000000000000000000000E0
+:10101000C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0D0
+:1010200000000000000000000000000000000000C0
+:1010300000000000000000000000000000000000B0
+:1010400000000000000000000000000000000000A0
+:101050000000000000000000000000000000000090
+:101060000000000000000000000000000000000080
+:101070000000000000000000000000000000000070
+:101080000000000000000000000000000000000060
+:101090000000000000000000000000000000000050
+:1010A0000000000000000000000000000000000040
+:1010B0000000000000000000000000000000000030
+:1010C0000000000000000000000000000000000020
+:1010D0000000000000000000000000000000000010
+:1010E0000000000000000000000000000000000000
+:1010F00000000000000000000000000000000000F0
+:10110000AA56545454545454545454545454A855F2
+:10111000AA56545454545454545454545454545536
+:10112000AA56545454545454545454545454545526
+:10113000AA56545454545454545454545454545516
+:10114000AA56545454545454545454545454545506
+:10115000AA565454545454545454545454545455F6
+:10116000AA565454545454545454545454545455E6
+:10117000AA565454545454545454545454545455D6
+:10118000AA565454545454545454545454545455C6
+:10119000AA565454545454545454545454545455B6
+:1011A000AA565454545454545454545454545455A6
+:1011B000AA56545454545454545454545454545596
+:1011C000AA56545454545454545454545454545586
+:1011D000AA56545454545454545454545454545576
+:1011E000AA56545454545454545454545454545566
+:1011F000AA56446868A8A8A8A8A8A8A8A8A8A8004B
+:101200000256545454545454545454545454540141
+:101210000256545454545454545454545454540131
+:101220000256545454545454545454545454540121
+:101230000256545454545454545454545454540111
+:101240000256545454545454545454545454540101
+:1012500002565454545454545454545454545401F1
+:1012600002565454545454545454545454545401E1
+:1012700002565454545454545454545454545401D1
+:1012800002565454545454545454545454545401C1
+:1012900002565454545454545454545454545401B1
+:1012A00002565454545454545454545454545401A1
+:1012B0000256545454545454545454545454540191
+:1012C0000256545454545454545454545454540181
+:1012D0000256545454545454545454545454540171
+:1012E0000256545454545454545454545454540161
+:1012F000025654545868A8A8A8A8A8A8A8A8A80046
+:10130000A856566464A4A4A4A4A4A4A4A4A4A45405
+:10131000A856565454545454545454545454545435
+:10132000A856565454545454545454545454545425
+:10133000A856565454545454545454545454545415
+:10134000A856565454545454545454545454545405
+:10135000A8565654545454545454545454545454F5
+:10136000A8565654545454545454545454545454E5
+:10137000A8565654545454545454545454545454D5
+:10138000A8565654545454545454545454545454C5
+:10139000A8565654545454545454545454545454B5
+:1013A000A8565654545454545454545454545454A5
+:1013B000A856565454545454545454545454545495
+:1013C000A856565454545454545454545454545485
+:1013D000A856565454545454545454545454545475
+:1013E000A856565454545454545454545454545465
+:1013F000A8565654545468A8A8A8A8A8A8A8A800F5
+:10140000005666A8A8A8A8A8A8A8A8A8A8A8A80040
+:101410000056565454545454545454545454540030
+:101420000056565454545454545454545454540020
+:101430000056565454545454545454545454540010
+:101440000056565454545454545454545454540000
+:1014500000565654545454545454545454545400F0
+:1014600000565654545454545454545454545400E0
+:1014700000565654545454545454545454545400D0
+:1014800000565654545454545454545454545400C0
+:1014900000565654545454545454545454545400B0
+:1014A00000565654545454545454545454545400A0
+:1014B0000056565454545454545454545454540090
+:1014C0000056565454545454545454545454540080
+:1014D0000056565454545454545454545454A8001C
+:1014E0000056565454545454545454545454540060
+:1014F000005656545454545454545454A8A85400A8
+:10150000AA56AAAAA8A8A8A8A8A8A8A8A8A8A855FA
+:10151000AAAAAAAAA8A8A8A8A8A8A8A8A8A8A85596
+:10152000AAAAAAAAA8A8A8A8A8A8A8A8A8A8A85586
+:10153000AAAAAAAAA8A8A8A8A8A8A8A8A8A8A85576
+:10154000AAAAAAAAA8A8A8A8A8A8A8A8A8A8A85566
+:10155000AAAAAAAAA8A8A8A8A8A8A8A8A8A8A85556
+:10156000AAAAAAAAA8A8A8A8A8A8A8A8A8A8A85546
+:10157000AAAAAAAAA8A8A8A8A8A8A8A8A8A8A85536
+:10158000AAAAAAAAA8A8A8A8A8A8A8A8A8A8A85526
+:10159000AAAAAAAAA8A8A8A8A8A8A8A8A8A8A85516
+:1015A000AAAAAAAAA8A8A8A8A8A8A8A8A8A8A85506
+:1015B000AAAA56565454545454545454545454553A
+:1015C000AA5656565454545454545454545454557E
+:1015D000AA5656565454545454545454545454556E
+:1015E000AA5656565454545454545454545454555E
+:1015F000AA5656565454545454545454545454544F
+:101600000256AAAAA8A8A8A8A8A8A8A8A8A8A801F5
+:1016100002AAAAAAA8A8A8A8A8A8A8A8A8A8A80191
+:1016200002AAAAAAA8A8A8A8A8A8A8A8A8A8A80181
+:1016300002AAAAAAA8A8A8A8A8A8A8A8A8A8A80171
+:1016400002AAAAAAA8A8A8A8A8A8A8A8A8A8A80161
+:1016500002AAAAAAA8A8A8A8A8A8A8A8A8A8A80151
+:1016600002AAAAAAA8A8A8A8A8A8A8A8A8A8A80141
+:1016700002AAAAAAA8A8A8A8A8A8A8A8A8A8A80131
+:1016800002AAAAAAA8A8A8A8A8A8A8A8A8A8A80121
+:1016900002AAAAAAA8A8A8A8A8A8A8A8A8A8A80111
+:1016A00002AAAAAAA8A8A8A8A8A8A8A8A8A8A80101
+:1016B00002AAAAAAA8A8A8A8A8A8A8A8A8A8A801F1
+:1016C00002AAAAAAA8A8A8A8A8A8A8A8A8A8A801E1
+:1016D0000256565654545454545454545454540169
+:1016E0000256565654545454545454545454540159
+:1016F000025656565454545454545454545454004A
+:10170000A856AAAAAAA8A8A8A8A8A8A8A8A8A854F9
+:10171000A8AAAAAAAAA8A8A8A8A8A8A8A8A8A85495
+:10172000A8AAAAAAAAA8A8A8A8A8A8A8A8A8A85485
+:10173000A8AAAAAAAAA8A8A8A8A8A8A8A8A8A85475
+:10174000A8AAAAAAAAA8A8A8A8A8A8A8A8A8A85465
+:10175000A8AAAAAAAAA8A8A8A8A8A8A8A8A8A85455
+:10176000A8AAAAAAAAA8A8A8A8A8A8A8A8A8A85445
+:10177000A8AAAAAAAAA8A8A8A8A8A8A8A8A8A85435
+:10178000A8AAAAAAAAA8A8A8A8A8A8A8A8A8A85425
+:10179000A8AAAAAAAAA8A8A8A8A8A8A8A8A8A85415
+:1017A000A8AAAAAAAAA8A8A8A8A8A8A8A8A8A85405
+:1017B000A8AAAAAAAAA8A8A8A8A8A8A8A8A8A854F5
+:1017C000A8AAAAAAAAA8A8A8A8A8A8A8A8A8A854E5
+:1017D000A8AAAAAAAAA8A8A8A8A8A8A8A8A8A854D5
+:1017E000A8AAAAAAAAA8A8A8A8A8A8A8A8A8A854C5
+:1017F000A85656565654545454545454545454544D
+:1018000000AAAAAAAAA8A8A8A8A8A8A8A8A8A800A0
+:1018100000AAAAAAAAA8A8A8A8A8A8A8A8A8A80090
+:1018200000AAAAAAAAA8A8A8A8A8A8A8A8A8A80080
+:1018300000AAAAAAAAA8A8A8A8A8A8A8A8A8A80070
+:1018400000AAAAAAAAA8A8A8A8A8A8A8A8A8A80060
+:1018500000AAAAAAAAA8A8A8A8A8A8A8A8A8A80050
+:1018600000AAAAAAAAA8A8A8A8A8A8A8A8A8A80040
+:1018700000AAAAAAAAA8A8A8A8A8A8A8A8A8A80030
+:1018800000AAAAAAAAA8A8A8A8A8A8A8A8A8A80020
+:1018900000AAAAAAAAA8A8A8A8A8A8A8A8A8A80010
+:1018A00000AAAAAAAAA8A8A8A8A8A8A8A8A8A80000
+:1018B00000AAAAAAAAA8A8A8A8A8A8A8A8A8A800F0
+:1018C00000AAAAAAAAA8A8A8A8A8A8A8A8A8A800E0
+:1018D00000AAAAAAAAA8A8A8A8A8A8A8A8A8A800D0
+:1018E00000AAAAAAAAA8A8A8A8A8A8A8A8A8A800C0
+:1018F0000056565656545454545454545454540048
+:10190000AAAA020202020000000000000000005526
+:10191000AAAAAA020202000000000000000000556E
+:1019200000AAAAAA020202000000000000000000B3
+:1019300040AAAAAA02020200000000000000000063
+:1019400040AAAAAA02020200000000000000000053
+:1019500040AAAAAA02020200000000000000000043
+:1019600040AAAAAA02020200000000000000000033
+:1019700040AAAAAA02020200000000000000000023
+:1019800040AAAAAA02020200000000000000000013
+:1019900040AAAAAA02020200000000000000000003
+:1019A00040AAAAAA020202000000000000000000F3
+:1019B00040AAAAAA020202000000000000000000E3
+:1019C00040AAAAAA020202000000000000000000D3
+:1019D00040AAAAAA020202000000000000000000C3
+:1019E00040AAAAAA020202000000000000000000B3
+:1019F00040AAAAAA020202000000000000000000A3
+:101A000040AAAAAA02020200000000000000000092
+:101A100054AAAAAA0202020000000000000000006E
+:101A200000AAAAAA020202000000000000000000B2
+:101A300040AAAAAA02020200000000000000000062
+:101A400040AAAAAA02020200000000000000000052
+:101A500040AAAAAA02020200000000000000000042
+:101A600040AAAAAA02020200000000000000000032
+:101A700040AAAAAA02020200000000000000000022
+:101A800040AAAAAA02020200000000000000000012
+:101A900040AAAAAA02020200000000000000000002
+:101AA00040AAAAAA020202000000000000000000F2
+:101AB00040AAAAAA020202000000000000000000E2
+:101AC00040AAAAAA020202000000000000000000D2
+:101AD00040AAAAAA020202000000000000000000C2
+:101AE00040AAAAAA020202000000000000000000B2
+:101AF00040AAAAAA020202000000000000000000A2
+:101B000040AAAAAA02020200000000000000000091
+:101B100054AAAAAA0202020000000000000000006D
+:101B2000AAAAAAAA020202000000000000000055B2
+:101B30002AAAAAAA02020200000000000000005522
+:101B40002AAAAAAA02020200000000000000005512
+:101B50002AAAAAAA02020200000000000000005502
+:101B60002AAAAAAA020202000000000000000055F2
+:101B70002AAAAAAA020202000000000000000055E2
+:101B80002AAAAAAA020202000000000000000055D2
+:101B90002AAAAAAA020202000000000000000055C2
+:101BA0002AAAAAAA020202000000000000000055B2
+:101BB0002AAAAAAA020202000000000000000055A2
+:101BC0002AAAAAAA02020200000000000000005592
+:101BD0002AAAAAAA02020200000000000000005582
+:101BE0002AAAAAAA02020200000000000000005572
+:101BF0002AAAAAAA02020200000000000000005562
+:101C00002AAAAAAA02020200000000000000005551
+:101C100002AAAAAA02020200000000000000005569
+:101C2000AAAAAAAA020202020000000000000055AF
+:101C30002AAAAAAA02020200000000000000005521
+:101C40002AAAAAAA02020200000000000000005511
+:101C50002AAAAAAA02020200000000000000005501
+:101C60002AAAAAAA020202000000000000000055F1
+:101C70002AAAAAAA020202000000000000000055E1
+:101C80002AAAAAAA020202000000000000000055D1
+:101C90002AAAAAAA020202000000000000000055C1
+:101CA0002AAAAAAA020202000000000000000055B1
+:101CB0002AAAAAAA020202000000000000000055A1
+:101CC0002AAAAAAA02020200000000000000005591
+:101CD0002AAAAAAA02020200000000000000005581
+:101CE0002AAAAAAA02020200000000000000005571
+:101CF0002AAAAAAA02020200000000000000005561
+:101D00002AAAAAAA02020200000000000000005550
+:101D100002AAAAAA02020200000000000000005568
+:101D200000AAAAAAAA020202020000000000000003
+:101D300040AAAAAAAA0202020000000000000000B5
+:101D400040AAAAAAAA0202020000000000000000A5
+:101D500040AAAAAAAA020202000000000000000095
+:101D600040AAAAAAAA020202000000000000000085
+:101D700040AAAAAAAA020202000000000000000075
+:101D800040AAAAAAAA020202000000000000000065
+:101D900040AAAAAAAA020202000000000000000055
+:101DA00040AAAAAAAA020202000000000000000045
+:101DB00040AAAAAAAA020202000000000000000035
+:101DC00040AAAAAAAA020202000000000000000025
+:101DD00040AAAAAAAA020202000000000000000015
+:101DE00040AAAAAAAA020202000000000000000005
+:101DF00040AAAAAAAA0202020000000000000000F5
+:101E000040AAAAAAAA0202020000000000000000E4
+:101E100055AAAAAAAA0202020000000000000000BF
+:101E200000AAAAAAAA020202020200000000000000
+:101E300040AAAAAAAA0202020200000000000000B2
+:101E400040AAAAAAAA0202020200000000000000A2
+:101E500040AAAAAAAA020202020000000000000092
+:101E600040AAAAAAAA020202020000000000000082
+:101E700040AAAAAAAA020202020000000000000072
+:101E800040AAAAAAAA020202020000000000000062
+:101E900040AAAAAAAA020202020000000000000052
+:101EA00040AAAAAAAA020202020000000000000042
+:101EB00040AAAAAAAA020202020000000000000032
+:101EC00040AAAAAAAA020202020000000000000022
+:101ED00040AAAAAAAA020202020000000000000012
+:101EE00040AAAAAAAA020202020000000000000002
+:101EF00040AAAAAAAA0202020200000000000000F2
+:101F000040AAAAAAAA0202020200000000000000E1
+:101F100055AAAAAAAA0202020200000000000000BC
+:101F2000AAAAAAAAAAAA0202020202000000005556
+:101F30002AAAAAAAAAAA02020202000000000055C8
+:101F40002AAAAAAAAAAA02020202000000000055B8
+:101F50002AAAAAAAAAAA02020202000000000055A8
+:101F60002AAAAAAAAAAA0202020200000000005598
+:101F70002AAAAAAAAAAA0202020200000000005588
+:101F80002AAAAAAAAAAA0202020200000000005578
+:101F90002AAAAAAAAAAA0202020200000000005568
+:101FA0002AAAAAAAAAAA0202020200000000005558
+:101FB0002AAAAAAAAAAA0202020200000000005548
+:101FC0002AAAAAAAAAAA0202020200000000005538
+:101FD0002AAAAAAAAAAA0202020200000000005528
+:101FE0002AAAAAAAAAAA0202020200000000005518
+:101FF0002AAAAAAAAAAA0202020200000000005508
+:102000002AAAAAAAAAAA02020202000000000055F7
+:1020100000AAAAAAAAAA0202020200000000005511
+:10202000AAAAAAAAAAAA0202020202020000005553
+:102030002AAAAAAAAAAA02020202020000000055C5
+:102040002AAAAAAAAAAA02020202020000000055B5
+:102050002AAAAAAAAAAA02020202020000000055A5
+:102060002AAAAAAAAAAA0202020202000000005595
+:102070002AAAAAAAAAAA0202020202000000005585
+:102080002AAAAAAAAAAA0202020202000000005575
+:102090002AAAAAAAAAAA0202020202000000005565
+:1020A0002AAAAAAAAAAA0202020202000000005555
+:1020B0002AAAAAAAAAAA0202020202000000005545
+:1020C0002AAAAAAAAAAA0202020202000000005535
+:1020D0002AAAAAAAAAAA0202020202000000005525
+:1020E0002AAAAAAAAAAA0202020202000000005515
+:1020F0002AAAAAAAAAAA0202020202000000005505
+:102100002AAAAAAAAAAA02020202020000000055F4
+:1021100000AAAAAAAAAA020202020200000000550E
+:1021200000AAAAAAAAAAAA020202020202000000A7
+:1021300040AAAAAAAAAAAA02020202020000000059
+:1021400040AAAAAAAAAAAA02020202020000000049
+:1021500040AAAAAAAAAAAA02020202020000000039
+:1021600040AAAAAAAAAAAA02020202020000000029
+:1021700040AAAAAAAAAAAA02020202020000000019
+:1021800040AAAAAAAAAAAA02020202020000000009
+:1021900040AAAAAAAAAAAA020202020200000000F9
+:1021A00040AAAAAAAAAAAA020202020200000000E9
+:1021B00040AAAAAAAAAAAA020202020200000000D9
+:1021C00040AAAAAAAAAAAA020202020200000000C9
+:1021D00040AAAAAAAAAAAA020202020200000000B9
+:1021E00040AAAAAAAAAAAA020202020200000000A9
+:1021F00040AAAAAAAAAAAA02020202020000000099
+:1022000040AAAAAAAAAAAA02020202020000000088
+:1022100055AAAAAAAAAAAA02020202020000000063
+:1022200000AAAAAAAAAAAAAA0202020202020000FC
+:1022300040AAAAAAAAAAAAAA0202020202020000AC
+:1022400040AAAAAAAAAAAAAA02020202020200009C
+:1022500040AAAAAAAAAAAAAA02020202020200008C
+:1022600040AAAAAAAAAAAAAA02020202020200007C
+:1022700040AAAAAAAAAAAAAA02020202020200006C
+:1022800040AAAAAAAAAAAAAA02020202020200005C
+:1022900040AAAAAAAAAAAAAA02020202020200004C
+:1022A00040AAAAAAAAAAAAAA02020202020200003C
+:1022B00040AAAAAAAAAAAAAA02020202020200002C
+:1022C00040AAAAAAAAAAAAAA02020202020200001C
+:1022D00040AAAAAAAAAAAAAA02020202020200000C
+:1022E00040AAAAAAAAAAAAAA0202020202020000FC
+:1022F00040AAAAAAAAAAAAAA0202020202020000EC
+:1023000040AAAAAAAAAAAAAA0202020202020000DB
+:1023100055AAAAAAAAAAAAAA0202020202020000B6
+:10232000AAA9A9A9A9A9A9A9A90101010101015560
+:102330002AA9A9A9A9A9A9A9A901010101010155D0
+:102340002AA9A9A9A9A9A9A9A901010101010155C0
+:102350002AA9A9A9A9A9A9A9A901010101010155B0
+:102360002AA9A9A9A9A9A9A9A901010101010155A0
+:102370002AA9A9A9A9A9A9A9A90101010101015590
+:102380002AA9A9A9A9A9A9A9A90101010101015580
+:102390002AA9A9A9A9A9A9A9A90101010101015570
+:1023A0002AA9A9A9A9A9A9A9A90101010101015560
+:1023B0002AA9A9A9A9A9A9A9A90101010101015550
+:1023C0002AA9A9A9A9A9A9A9A90101010101015540
+:1023D0002AA9A9A9A9A9A9A9A90101010101015530
+:1023E0002AA9A9A9A9A9A9A9A90101010101015520
+:1023F0002AA9A9A9A9A9A9A9A90101010101015510
+:102400002AA9A9A9A9A9A9A9A901010101010155FF
+:1024100000A9A9A9A9A9A9A9A90101010101015519
+:10242000A8A9A9A9A9A9A9A9A9A9010101010154BA
+:1024300028A9A9A9A9A9A9A9A9A90101010101542A
+:1024400028A9A9A9A9A9A9A9A9A90101010101541A
+:1024500028A9A9A9A9A9A9A9A9A90101010101540A
+:1024600028A9A9A9A9A9A9A9A9A9010101010154FA
+:1024700028A9A9A9A9A9A9A9A9A9010101010154EA
+:1024800028A9A9A9A9A9A9A9A9A9010101010154DA
+:1024900028A9A9A9A9A9A9A9A9A9010101010154CA
+:1024A00028A9A9A9A9A9A9A9A9A9010101010154BA
+:1024B00028A9A9A9A9A9A9A9A9A9010101010154AA
+:1024C00028A9A9A9A9A9A9A9A9A90101010101549A
+:1024D00028A9A9A9A9A9A9A9A9A90101010101548A
+:1024E00028A9A9A9A9A9A9A9A9A90101010101547A
+:1024F00028A9A9A9A9A9A9A9A9A90101010101546A
+:1025000028A9A9A9A9A9A9A9A9A901010101015459
+:1025100001A9A9A9A9A9A9A9A9A901010101015470
+:1025200056A9A9A9A9A9A9A9A9A90101010101015E
+:1025300056A9A9A9A9A9A9A9A9A90101010101014E
+:1025400056A9A9A9A9A9A9A9A9A90101010101013E
+:1025500056A9A9A9A9A9A9A9A9A90101010101012E
+:1025600056A9A9A9A9A9A9A9A9A90101010101011E
+:1025700056A9A9A9A9A9A9A9A9A90101010101010E
+:1025800056A9A9A9A9A9A9A9A9A9010101010101FE
+:1025900056A9A9A9A9A9A9A9A9A9010101010101EE
+:1025A00056A9A9A9A9A9A9A9A9A9010101010101DE
+:1025B00056A9A9A9A9A9A9A9A9A9010101010101CE
+:1025C00056A9A9A9A9A9A9A9A9A9010101010101BE
+:1025D00056A9A9A9A9A9A9A9A9A9010101010101AE
+:1025E00056A9A9A9A9A9A9A9A9A90101010101019E
+:1025F00056A9A9A9A9A9A9A9A9A90101010101018E
+:1026000056A9A9A9A9A9A9A9A9A90101010101017D
+:1026100054A9A9A9A9A9A9A9A9A90101010101016F
+:1026200055A9A9A9A9A9A9A9A9A9A90101010100B7
+:1026300000A9A9A9A9A9A9A9A9A9A9A901010155FF
+:1026400001A9A9A9A9A9A9A9A9A9A9A9A901015447
+:1026500001A9A9A9A9A9A9A9A9A9A9A9A901015437
+:1026600001A9A9A9A9A9A9A9A9A9A9A9A901015427
+:1026700001A9A9A9A9A9A9A9A9A9A9A9A901015417
+:1026800001A9A9A9A9A9A9A9A9A9A9A9A901015407
+:1026900001A9A9A9A9A9A9A9A9A9A9A9A9010154F7
+:1026A00001A9A9A9A9A9A9A9A9A9A9A9A9010154E7
+:1026B00001A9A9A9A9A9A9A9A9A9A9A9A9010154D7
+:1026C00001A9A9A9A9A9A9A9A9A9A9A9A9010154C7
+:1026D00001A9A9A9A9A9A9A9A9A9A9A9A9010154B7
+:1026E00001A9A9A9A9A9A9A9A9A9A9A9A9010154A7
+:1026F00001A9A9A9A9A9A9A9A9A9A9A9A901015497
+:1027000001A9A9A9A9A9A9A9A9A9A9A9A901015486
+:1027100001A9A9A9A9A9A9A9A9A9A9A9A901015476
+:1027200001A9A9A9A9A9A9A9A9A9A9A9A901015466
+:1027300001A9A9A9A9A9A9A9A9A9A9A9A901015654
+:1027400054A9A9A9A9A9A9A9A9A9A9A9A9A901019E
+:1027500054A9A9A9A9A9A9A9A9A9A9A9A9A901018E
+:1027600054A9A9A9A9A9A9A9A9A9A9A9A9A901017E
+:1027700054A9A9A9A9A9A9A9A9A9A9A9A9A901016E
+:1027800054A9A9A9A9A9A9A9A9A9A9A9A9A901015E
+:1027900054A9A9A9A9A9A9A9A9A9A9A9A9A901014E
+:1027A00054A9A9A9A9A9A9A9A9A9A9A9A9A901013E
+:1027B00054A9A9A9A9A9A9A9A9A9A9A9A9A901012E
+:1027C00054A9A9A9A9A9A9A9A9A9A9A9A9A901011E
+:1027D00054A9A9A9A9A9A9A9A9A9A9A9A9A901010E
+:1027E00054A9A9A9A9A9A9A9A9A9A9A9A9A90101FE
+:1027F00054A9A9A9A9A9A9A9A9A9A9A9A9A90101EE
+:1028000054A9A9A9A9A9A9A9A9A9A9A9A9A90101DD
+:1028100054A9A9A9A9A9A9A9A9A9A9A9A9A90101CD
+:1028200054A9A9A9A9A9A9A9A9A9A9A9A9A90101BD
+:1028300054A9A9A9A9A9A9A9A9A9A9A9A9A90102AC
+:102840000155555556565656555555555555555489
+:10285000015555555555555555555555555555547D
+:10286000015555555555555555555555555555546D
+:10287000015555555555555555555555555555545D
+:10288000015555555555555555555555555555544D
+:10289000015555555555555555555555555555543D
+:1028A000015555555555555555555555555555542D
+:1028B000015555555555555555555555555555541D
+:1028C000015555555555555555555555555555540D
+:1028D00001555555555555555555555555555554FD
+:1028E00001555555555555555555555555555554ED
+:1028F00001555555555555555555555555555554DD
+:1029000001555555555555555555555555555554CC
+:1029100001555555555555555555555555555554BC
+:1029200001555555555555555555555555555554AC
+:10293000015555555555555555555555555555569A
+:102940005455555656565656565555555555555631
+:102950005455555555555555555555555555555627
+:102960005455555555555555555555555555555617
+:102970005455555555555555555555555555555607
+:1029800054555555555555555555555555555556F7
+:1029900054555555555555555555555555555556E7
+:1029A00054555555555555555555555555555556D7
+:1029B00054555555555555555555555555555556C7
+:1029C00054555555555555555555555555555556B7
+:1029D00054555555555555555555555555555556A7
+:1029E0005455555555555555555555555555555697
+:1029F0005455555555555555555555555555555687
+:102A00005455555555555555555555555555555676
+:102A10005455555555555555555555555555555666
+:102A20005455555555555555555555555555555656
+:102A30005455555555555555555555555555555448
+:102A4000015555565656565656555656555555AA2D
+:102A5000015555555656565655555555555555AA21
+:102A6000015555555656565655555555555555AA11
+:102A7000015555555656565655555555555555AA01
+:102A8000015555555656565655555555555555AAF1
+:102A9000015555555656565655555555555555AAE1
+:102AA000015555555656565655555555555555AAD1
+:102AB000015555555656565655555555555555AAC1
+:102AC000015555555656565655555555555555AAB1
+:102AD000015555555656565655555555555555AAA1
+:102AE000015555555656565655555555555555AA91
+:102AF000015555555656565655555555555555AA81
+:102B0000015555555656565655555555555555AA70
+:102B1000015555555656565655555555555555AA60
+:102B2000015555555656565655555555555555AA50
+:102B3000015555555555555555555555555555AA44
+:102B4000545555565656565656565656565656A8D7
+:102B5000545656565656565656565656565656A8C5
+:102B6000545656565656565656565656565656A8B5
+:102B7000545656565656565656565656565656A8A5
+:102B8000545656565656565656565656565656A895
+:102B9000545656565656565656565656565656A885
+:102BA000545656565656565656565656565656A875
+:102BB000545656565656565656565656565656A865
+:102BC000545656565656565656565656565656A855
+:102BD000545656565656565656565656565656A845
+:102BE000545656565656565656565656565656A835
+:102BF000545656565656565656565656565656A825
+:102C0000545656565656565656565656565656A814
+:102C1000545656565656565656565656565656A804
+:102C2000545656565656565656565656565656A8F4
+:102C3000545555565656565654545656565656A8EA
+:102C400001565656565656565656565656565602CD
+:102C500001565656565656565656565656565602BD
+:102C600001565656565656565656565656565602AD
+:102C7000015656565656565656565656565656029D
+:102C8000015656565656565656565656565656028D
+:102C9000015656565656565656565656565656027D
+:102CA000015656565656565656565656565656026D
+:102CB000015656565656565656565656565656025D
+:102CC000015656565656565656565656565656024D
+:102CD000015656565656565656565656565656023D
+:102CE000015656565656565656565656565656022D
+:102CF000015656565656565656565656565656021D
+:102D0000015656565656565656565656565656020C
+:102D100001565656565656565656565656565602FC
+:102D200001565656565656565656565656565602EC
+:102D300001555456565656565656565656565602DF
+:102D4000545656565656565656565656565656A8D3
+:102D500001565656565656565656565656565602BC
+:102D6000545656565656565656565656565656A8B3
+:102D700001AAAAAAAAAAAAAAAAAAAAAAAAAAAA0204
+:102D800054AAAAAAAAAAAAAAAAAAAAAAAAAAAAA8FB
+:102D900001AAAAAAAAAAAAAAAAAAAAAAAAAAAA02E4
+:102DA00054AAAAAAAAAAAAAAAAAAAAAAAAAAAAA8DB
+:102DB00001AAAAAAAAAAAAAAAAAAAAAAAAAAAA02C4
+:102DC00001AAAAAAAAAAAAAAAAAAAAAAAAAAAA02B4
+:102DD00001AAAAAAAAAAAAAAAAAAAAAAAAAAAA02A4
+:102DE00001AAAAAAAAAAAAAAAAAAAAAAAAAAAA0294
+:102DF00001AAAAAAAAAAAAAAAAAAAAAAAAAAAA0284
+:102E000001AAAAAAAAAAAAAAAAAAAAAAAAAAAA0273
+:102E100001AAAAAAAAAAAAAAAAAAAAAAAAAAAA0263
+:102E200001AAAAAAAAAAAAAAAAAAAAAAAAAAAA0253
+:102E300001AAAAAAAAAAAAAAAAAAAAAAAAAAAA0243
+:102E400001AAAAAAAAAAAAAAAAAAAAAAAAAAAA0233
+:102E500001AAAAAAAAAAAAAAAAAAAAAAAAAAAA0223
+:102E600001AAAAAAAAAAAAAAAAAAAAAAAAAAAA0213
+:102E700001AAAAAAAAAAAAAAAAAAAAAAAAAAAA0203
+:102E800001AAAAAAAAAAAAAAAAAAAAAAAAAAAA02F3
+:102E900001AAAAAAAAAAAAAAAAAAAAAAAAAAAA02E3
+:102EA00001AAAAAAAAAAAAAAAAAAAAAAAAAAAA01D4
+:102EB00054A9A9A9A9A9A9A9A9A9A9A9A9A9A8A8D9
+:102EC00000A9A9A9A9A9A9A9A9A9A9A9A9A8A800C6
+:102ED00055A9A9A9A9A9A9A9A9A9A9A9A8A8A8AAB8
+:102EE0000155555555555555555555545454000291
+:102EF000545555555555555555555454540000A8DD
+:102F0000545555555555555555545454000000A821
+:102F1000015555555555555554545400000000025F
+:102F2000015555555555555554545400000000024F
+:102F3000015555555555555554545400000000023F
+:102F4000015555555555555554545400000000022F
+:102F5000015555555555555554545400000000021F
+:102F6000015555555555555554545400000000020F
+:102F700001555555555555555454540000000002FF
+:102F800001555555555555555454540000000002EF
+:102F900001555555555555555454540000000002DF
+:102FA00001555555555555555454540000000002CF
+:102FB00001555555555555555454540000000002BF
+:102FC00001555555555555555454540000000002AF
+:102FD000015555555555555554545400000000029F
+:102FE000015555555555555554545400000000028F
+:102FF000015555555555555554545400000000027F
+:103000000155555555555555545454000000000070
+:1030100001555555555555545454000000000002B3
+:1030200001555555555555545454000000000002A3
+:103030000155555555555554545400000000000293
+:103040000155555555555554545400000000000283
+:103050000155555555555554545400000000000273
+:103060000155555555555554545400000000000263
+:103070000155555555555554545400000000000253
+:103080000155555555555554545400000000000243
+:103090000155555555555554545400000000000233
+:1030A0000155555555555554545400000000000223
+:1030B0000155555555555554545400000000000213
+:1030C0000155555555555554545400000000000203
+:1030D00001555555555555545454000000000002F3
+:1030E00001555555555555545454000000000002E3
+:1030F00001555555555555545454000000000002D3
+:1031000001555555555555545454000000000000C4
+:10311000545555555555555454540000000000A8B9
+:10312000545555555555555454000000000000A8FD
+:10313000015555555555545400000000000000023B
+:10314000015555555555545400000000000000022B
+:10315000015555555555545400000000000000021B
+:10316000015555555555545400000000000000020B
+:1031700001555555555554540000000000000002FB
+:1031800001555555555554540000000000000002EB
+:1031900001555555555554540000000000000002DB
+:1031A00001555555555554540000000000000002CB
+:1031B00001555555555554540000000000000002BB
+:1031C00001555555555554540000000000000002AB
+:1031D000015555555555545400000000000000029B
+:1031E000015555555555545400000000000000028B
+:1031F000015555555555545400000000000000027B
+:10320000015555555555545400000000000000026A
+:10321000015555555555545400000000000000025A
+:10322000015555555555545400000000000000004C
+:10323000015555555555540000000000000000028E
+:10324000015555555555540000000000000000027E
+:10325000015555555555540000000000000000026E
+:10326000015555555555540000000000000000025E
+:10327000015555555555540000000000000000024E
+:10328000015555555555540000000000000000023E
+:10329000015555555555540000000000000000022E
+:1032A000015555555555540000000000000000021E
+:1032B000015555555555540000000000000000020E
+:1032C00001555555555554000000000000000002FE
+:1032D00001555555555554000000000000000002EE
+:1032E00001555555555554000000000000000002DE
+:1032F00001555555555554000000000000000002CE
+:1033000001555555555554000000000000000002BD
+:1033100001555555555554000000000000000002AD
+:10332000015555555555540000000000000000009F
+:10333000545555555554000000000000000000A8E9
+:10334000545555555554000000000000000000A8D9
+:10335000545555555554000000000000000000A8C9
+:10336000545555555554000000000000000000A8B9
+:10337000545555555554000000000000000000A8A9
+:10338000545555555554000000000000000000A899
+:10339000545555555554000000000000000000A889
+:1033A000545555555554000000000000000000A879
+:1033B000545555555554000000000000000000A869
+:1033C000545555555554000000000000000000A859
+:1033D000545555555554000000000000000000A849
+:1033E000545555555554000000000000000000A839
+:1033F000545555555554000000000000000000A829
+:10340000545555555554000000000000000000A818
+:10341000545555555554000000000000000000A808
+:1034200054555555555400000000000000000000A0
+:10343000545555555554000000000000000000A8E8
+:10344000545555555554000000000000000000A8D8
+:10345000545555555554000000000000000000A8C8
+:10346000545555555554000000000000000000A8B8
+:10347000545555555554000000000000000000A8A8
+:10348000545555555554000000000000000000A898
+:10349000545555555554000000000000000000A888
+:1034A000545555555554000000000000000000A878
+:1034B000545555555554000000000000000000A868
+:1034C000545555555554000000000000000000A858
+:1034D000545555555554000000000000000000A848
+:1034E000545555555554000000000000000000A838
+:1034F000545555555554000000000000000000A828
+:10350000545555555554000000000000000000A817
+:10351000545555555554000000000000000000A807
+:10352000545555555554000000000000000000009F
+:103530000155555554000000000000000000000136
+:103540000155555554000000000000000000000126
+:103550000155555554000000000000000000000116
+:103560000155555554000000000000000000000106
+:1035700001555555540000000000000000000001F6
+:1035800001555555540000000000000000000001E6
+:1035900001555555540000000000000000000001D6
+:1035A00001555555540000000000000000000001C6
+:1035B00001555555540000000000000000000001B6
+:1035C00001555555540000000000000000000001A6
+:1035D0000155555554000000000000000000000196
+:1035E0000155555554000000000000000000000186
+:1035F0000155555554000000000000000000000176
+:103600000155555554000000000000000000000165
+:103610000155555554000000000000000000000155
+:103620000155555554000000000000000000000046
+:103630000155555554000000000000000000000135
+:103640000155555554000000000000000000000125
+:103650000155555554000000000000000000000115
+:103660000155555554000000000000000000000105
+:1036700001555555540000000000000000000001F5
+:1036800001555555540000000000000000000001E5
+:1036900001555555540000000000000000000001D5
+:1036A00001555555540000000000000000000001C5
+:1036B00001555555540000000000000000000001B5
+:1036C00001555555540000000000000000000001A5
+:1036D0000155555554000000000000000000000195
+:1036E0000155555554000000000000000000000185
+:1036F0000155555554000000000000000000000175
+:103700000155555554000000000000000000000164
+:103710000155555554000000000000000000000154
+:103720000155555554000000000000000000000045
+:10373000545555540000000000000000000000A88F
+:10374000545555540000000000000000000000A87F
+:10375000545555540000000000000000000000A86F
+:10376000545555540000000000000000000000A85F
+:10377000545555540000000000000000000000A84F
+:10378000545555540000000000000000000000A83F
+:10379000545555540000000000000000000000A82F
+:1037A000545555540000000000000000000000A81F
+:1037B000545555540000000000000000000000A80F
+:1037C000545555540000000000000000000000A8FF
+:1037D000545555540000000000000000000000A8EF
+:1037E000545555540000000000000000000000A8DF
+:1037F000545555540000000000000000000000A8CF
+:10380000545555540000000000000000000000A8BE
+:10381000545555540000000000000000000000A8AE
+:103820005455555400000000000000000000000046
+:10383000545555540000000000000000000000A88E
+:10384000545555540000000000000000000000A87E
+:10385000545555540000000000000000000000A86E
+:10386000545555540000000000000000000000A85E
+:10387000545555540000000000000000000000A84E
+:10388000545555540000000000000000000000A83E
+:10389000545555540000000000000000000000A82E
+:1038A000545555540000000000000000000000A81E
+:1038B000545555540000000000000000000000A80E
+:1038C000545555540000000000000000000000A8FE
+:1038D000545555540000000000000000000000A8EE
+:1038E000545555540000000000000000000000A8DE
+:1038F000545555540000000000000000000000A8CE
+:10390000545555540000000000000000000000A8BD
+:10391000545555540000000000000000000000A8AD
+:103920005455555400000000000000000000000045
+:103930000155545400000000000000000000000287
+:103940000155545400000000000000000000000277
+:103950000155545400000000000000000000000267
+:103960000155545400000000000000000000000257
+:103970000155545400000000000000000000000247
+:103980000155545400000000000000000000000237
+:103990000155545400000000000000000000000227
+:1039A0000155545400000000000000000000000217
+:1039B0000155545400000000000000000000000207
+:1039C00001555454000000000000000000000002F7
+:1039D00001555454000000000000000000000002E7
+:1039E00001555454000000000000000000000002D7
+:1039F00001555454000000000000000000000002C7
+:103A000001555454000000000000000000000002B6
+:103A100001555454000000000000000000000002A6
+:103A20000155545400000000000000000000000098
+:103A30000155545400000000000000000000000286
+:103A40000155545400000000000000000000000276
+:103A50000155545400000000000000000000000266
+:103A60000155545400000000000000000000000256
+:103A70000155545400000000000000000000000246
+:103A80000155545400000000000000000000000236
+:103A90000155545400000000000000000000000226
+:103AA0000155545400000000000000000000000216
+:103AB0000155545400000000000000000000000206
+:103AC00001555454000000000000000000000002F6
+:103AD00001555454000000000000000000000002E6
+:103AE00001555454000000000000000000000002D6
+:103AF00001555454000000000000000000000002C6
+:103B000001555454000000000000000000000002B5
+:103B100001555454000000000000000000000002A5
+:103B20000155545400000000000000000000000097
+:103B3000545454000000000000000000000000A8E1
+:103B4000545454000000000000000000000000A8D1
+:103B5000545454000000000000000000000000A8C1
+:103B6000545454000000000000000000000000A8B1
+:103B7000545454000000000000000000000000A8A1
+:103B8000545454000000000000000000000000A891
+:103B9000545454000000000000000000000000A881
+:103BA000545454000000000000000000000000A871
+:103BB000545454000000000000000000000000A861
+:103BC000545454000000000000000000000000A851
+:103BD000545454000000000000000000000000A841
+:103BE000545454000000000000000000000000A831
+:103BF000545454000000000000000000000000A821
+:103C0000545454000000000000000000000000A810
+:103C1000545454000000000000000000000000A800
+:103C20005454540000000000000000000000000098
+:103C3000545400000000000000000000000000A834
+:103C4000545400000000000000000000000000A824
+:103C5000545400000000000000000000000000A814
+:103C6000545400000000000000000000000000A804
+:103C7000545400000000000000000000000000A8F4
+:103C8000545400000000000000000000000000A8E4
+:103C9000545400000000000000000000000000A8D4
+:103CA000545400000000000000000000000000A8C4
+:103CB000545400000000000000000000000000A8B4
+:103CC000545400000000000000000000000000A8A4
+:103CD000545400000000000000000000000000A894
+:103CE000545400000000000000000000000000A884
+:103CF000545400000000000000000000000000A874
+:103D0000545400000000000000000000000000A863
+:103D1000545400000000000000000000000000A853
+:103D200054540000000000000000000000000000EB
+:103D30000000000000000000000000000000000083
+:103D4000FCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCB3
+:103D50000000000000000000000000000000000063
+:103D60000000000000000000000000000000000053
+:103D70000000000000000000000000000000000043
+:103D80000000000000000000000000000000000033
+:103D90000000000000000000000000000000000023
+:103DA0000000000000000000000000000000000013
+:103DB0000000000000000000000000000000000003
+:103DC00000000000000000000000000000000000F3
+:103DD00000000000000000000000000000000000E3
+:103DE00000000000000000000000000000000000D3
+:103DF00000000000000000000000000000000000C3
+:103E00000056545454545454545454545454A8556F
+:103E1000AA0054545454545454545454545454555F
+:103E2000AA5600545454545454545454545454554D
+:103E3000AA5654005454545454545454545454553D
+:103E4000AA5654540054545454545454545454552D
+:103E5000AA5654545400545454545454545454551D
+:103E6000AA5654545454005454545454545454550D
+:103E7000AA565454545454005454545454545455FD
+:103E8000AA565454545454540054545454545455ED
+:103E9000AA565454545454545400545454545455DD
+:103EA000AA565454545454545454005454545455CD
+:103EB000AA565454545454545454540054545455BD
+:103EC000AA565454545454545454545400545455AD
+:103ED000AA5654545454545454545454540054559D
+:103EE000AA5654545454545454545454545400558D
+:103EF000AA56446868A8A8A8A8A8A8A8A8A8A8001E
+:103F00000056545454545454545454545454540116
+:103F1000020054545454545454545454545454015A
+:103F20000256005454545454545454545454540148
+:103F30000256540054545454545454545454540138
+:103F40000256545400545454545454545454540128
+:103F50000256545454005454545454545454540118
+:103F60000256545454540054545454545454540108
+:103F700002565454545454005454545454545401F8
+:103F800002565454545454540054545454545401E8
+:103F900002565454545454545400545454545401D8
+:103FA00002565454545454545454005454545401C8
+:103FB00002565454545454545454540054545401B8
+:103FC00002565454545454545454545400545401A8
+:103FD0000256545454545454545454545400540198
+:103FE0000256545454545454545454545454000188
+:103FF000025654545868A8A8A8A8A8A8A8A8A80019
+:104000000056566464A4A4A4A4A4A4A4A4A4A45480
+:10401000A80056545454545454545454545454545E
+:10402000A85600545454545454545454545454544E
+:10403000A85656005454545454545454545454543C
+:10404000A85656540054545454545454545454542C
+:10405000A85656545400545454545454545454541C
+:10406000A85656545454005454545454545454540C
+:10407000A8565654545454005454545454545454FC
+:10408000A8565654545454540054545454545454EC
+:10409000A8565654545454545400545454545454DC
+:1040A000A8565654545454545454005454545454CC
+:1040B000A8565654545454545454540054545454BC
+:1040C000A8565654545454545454545400545454AC
+:1040D000A85656545454545454545454540054549C
+:1040E000A85656545454545454545454545400548C
+:1040F000A8565654545468A8A8A8A8A8A8A8A800C8
+:10410000005666A8A8A8A8A8A8A8A8A8A8A8A80013
+:104110000000565454545454545454545454540059
+:104120000056005454545454545454545454540049
+:104130000056560054545454545454545454540037
+:104140000056565400545454545454545454540027
+:104150000056565454005454545454545454540017
+:104160000056565454540054545454545454540007
+:1041700000565654545454005454545454545400F7
+:1041800000565654545454540054545454545400E7
+:1041900000565654545454545400545454545400D7
+:1041A00000565654545454545454005454545400C7
+:1041B00000565654545454545454540054545400B7
+:1041C00000565654545454545454545400545400A7
+:1041D0000056565454545454545454545400A80043
+:1041E0000056565454545454545454545454000087
+:1041F000005656545454545454545454A8A854007B
+:104200000056AAAAA8A8A8A8A8A8A8A8A8A8A85577
+:10421000AA00AAAAA8A8A8A8A8A8A8A8A8A8A85513
+:10422000AAAA00AAA8A8A8A8A8A8A8A8A8A8A85503
+:10423000AAAAAA00A8A8A8A8A8A8A8A8A8A8A855F3
+:10424000AAAAAAAA00A8A8A8A8A8A8A8A8A8A855E1
+:10425000AAAAAAAAA800A8A8A8A8A8A8A8A8A855D1
+:10426000AAAAAAAAA8A800A8A8A8A8A8A8A8A855C1
+:10427000AAAAAAAAA8A8A800A8A8A8A8A8A8A855B1
+:10428000AAAAAAAAA8A8A8A800A8A8A8A8A8A855A1
+:10429000AAAAAAAAA8A8A8A8A800A8A8A8A8A85591
+:1042A000AAAAAAAAA8A8A8A8A8A800A8A8A8A85581
+:1042B000AAAA565654545454545454005454545561
+:1042C000AA565656545454545454545400545455A5
+:1042D000AA56565654545454545454545400545595
+:1042E000AA56565654545454545454545454005585
+:1042F000AA56565654545454545454545454540076
+:104300000056AAAAA8A8A8A8A8A8A8A8A8A8A801CA
+:104310000200AAAAA8A8A8A8A8A8A8A8A8A8A8010E
+:1043200002AA00AAA8A8A8A8A8A8A8A8A8A8A801FE
+:1043300002AAAA00A8A8A8A8A8A8A8A8A8A8A801EE
+:1043400002AAAAAA00A8A8A8A8A8A8A8A8A8A801DC
+:1043500002AAAAAAA800A8A8A8A8A8A8A8A8A801CC
+:1043600002AAAAAAA8A800A8A8A8A8A8A8A8A801BC
+:1043700002AAAAAAA8A8A800A8A8A8A8A8A8A801AC
+:1043800002AAAAAAA8A8A8A800A8A8A8A8A8A8019C
+:1043900002AAAAAAA8A8A8A8A800A8A8A8A8A8018C
+:1043A00002AAAAAAA8A8A8A8A8A800A8A8A8A8017C
+:1043B00002AAAAAAA8A8A8A8A8A8A800A8A8A8016C
+:1043C00002AAAAAAA8A8A8A8A8A8A8A800A8A8015C
+:1043D0000256565654545454545454545400540190
+:1043E0000256565654545454545454545454000180
+:1043F000025656565454545454545454545454001D
+:104400000056AAAAAAA8A8A8A8A8A8A8A8A8A85474
+:10441000A800AAAAAAA8A8A8A8A8A8A8A8A8A85412
+:10442000A8AA00AAAAA8A8A8A8A8A8A8A8A8A85402
+:10443000A8AAAA00AAA8A8A8A8A8A8A8A8A8A854F2
+:10444000A8AAAAAA00A8A8A8A8A8A8A8A8A8A854E2
+:10445000A8AAAAAAAA00A8A8A8A8A8A8A8A8A854D0
+:10446000A8AAAAAAAAA800A8A8A8A8A8A8A8A854C0
+:10447000A8AAAAAAAAA8A800A8A8A8A8A8A8A854B0
+:10448000A8AAAAAAAAA8A8A800A8A8A8A8A8A854A0
+:10449000A8AAAAAAAAA8A8A8A800A8A8A8A8A85490
+:1044A000A8AAAAAAAAA8A8A8A8A800A8A8A8A85480
+:1044B000A8AAAAAAAAA8A8A8A8A8A800A8A8A85470
+:1044C000A8AAAAAAAAA8A8A8A8A8A8A800A8A85460
+:1044D000A8AAAAAAAAA8A8A8A8A8A8A8A800A85450
+:1044E000A8AAAAAAAAA8A8A8A8A8A8A8A8A8005440
+:1044F000A856565656545454545454545454540074
+:1045000000AAAAAAAAA8A8A8A8A8A8A8A8A8A80073
+:104510000000AAAAAAA8A8A8A8A8A8A8A8A8A8000D
+:1045200000AA00AAAAA8A8A8A8A8A8A8A8A8A800FD
+:1045300000AAAA00AAA8A8A8A8A8A8A8A8A8A800ED
+:1045400000AAAAAA00A8A8A8A8A8A8A8A8A8A800DD
+:1045500000AAAAAAAA00A8A8A8A8A8A8A8A8A800CB
+:1045600000AAAAAAAAA800A8A8A8A8A8A8A8A800BB
+:1045700000AAAAAAAAA8A800A8A8A8A8A8A8A800AB
+:1045800000AAAAAAAAA8A8A800A8A8A8A8A8A8009B
+:1045900000AAAAAAAAA8A8A8A800A8A8A8A8A8008B
+:1045A00000AAAAAAAAA8A8A8A8A800A8A8A8A8007B
+:1045B00000AAAAAAAAA8A8A8A8A8A800A8A8A8006B
+:1045C00000AAAAAAAAA8A8A8A8A8A8A800A8A8005B
+:1045D00000AAAAAAAAA8A8A8A8A8A8A8A800A8004B
+:1045E00000AAAAAAAAA8A8A8A8A8A8A8A8A800003B
+:1045F000005656565654545454545454545454001B
+:1046000000AA0202020200000000000000000055A3
+:10461000AA00020202020000000000000000005593
+:10462000AAAA0002020200000000000000000055DB
+:10463000AAAA0200020200000000000000000055CB
+:10464000AAAA0202000200000000000000000055BB
+:10465000AAAA0202020000000000000000000055AB
+:10466000AAAA020202020000000000000000005599
+:10467000AAAA020202020000000000000000005589
+:10468000AAAA020202020000000000000000005579
+:10469000AAAA020202020000000000000000005569
+:1046A000AAAA020202020000000000000000005559
+:1046B000AAAA020202020000000000000000005549
+:1046C000AAAA020202020000000000000000005539
+:1046D000AAAA020202020000000000000000005529
+:1046E000AAAA020202020000000000000000005519
+:1046F000AAAA02020202000000000000000000005E
+:1047000000AAAA02020200000000000000000055FA
+:10471000AA00AA02020200000000000000000055EA
+:10472000AAAA0002020200000000000000000055DA
+:10473000AAAAAA0002020000000000000000005522
+:10474000AAAAAA0200020000000000000000005512
+:10475000AAAAAA0202000000000000000000005502
+:10476000AAAAAA02020200000000000000000055F0
+:10477000AAAAAA02020200000000000000000055E0
+:10478000AAAAAA02020200000000000000000055D0
+:10479000AAAAAA02020200000000000000000055C0
+:1047A000AAAAAA02020200000000000000000055B0
+:1047B000AAAAAA02020200000000000000000055A0
+:1047C000AAAAAA0202020000000000000000005590
+:1047D000AAAAAA0202020000000000000000005580
+:1047E000AAAAAA0202020000000000000000005570
+:1047F000AAAAAA02020200000000000000000000B5
+:1048000000AAAAAA020202000000000000000000A4
+:104810004000AAAA020202000000000000000000FE
+:1048200040AA00AA020202000000000000000000EE
+:1048300040AAAA00020202000000000000000000DE
+:1048400040AAAAAA00020200000000000000000026
+:1048500040AAAAAA02000200000000000000000016
+:1048600040AAAAAA02020000000000000000000006
+:1048700040AAAAAA020202000000000000000000F4
+:1048800040AAAAAA020202000000000000000000E4
+:1048900040AAAAAA020202000000000000000000D4
+:1048A00040AAAAAA020202000000000000000000C4
+:1048B00040AAAAAA020202000000000000000000B4
+:1048C00040AAAAAA020202000000000000000000A4
+:1048D00040AAAAAA02020200000000000000000094
+:1048E00040AAAAAA02020200000000000000000084
+:1048F00054AAAAAA02020200000000000000000060
+:1049000000AAAAAA020202000000000000000000A3
+:104910004000AAAA020202000000000000000000FD
+:1049200040AA00AA020202000000000000000000ED
+:1049300040AAAA00020202000000000000000000DD
+:1049400040AAAAAA00020200000000000000000025
+:1049500040AAAAAA02000200000000000000000015
+:1049600040AAAAAA02020000000000000000000005
+:1049700040AAAAAA020202000000000000000000F3
+:1049800040AAAAAA020202000000000000000000E3
+:1049900040AAAAAA020202000000000000000000D3
+:1049A00040AAAAAA020202000000000000000000C3
+:1049B00040AAAAAA020202000000000000000000B3
+:1049C00040AAAAAA020202000000000000000000A3
+:1049D00040AAAAAA02020200000000000000000093
+:1049E00040AAAAAA02020200000000000000000083
+:1049F00054AAAAAA0202020000000000000000005F
+:104A000000AAAAAA0202020000000000000000554D
+:104A10002A00AAAA020202000000000000000055BD
+:104A20002AAA00AA020202000000000000000055AD
+:104A30002AAAAA000202020000000000000000559D
+:104A40002AAAAAAA000202000000000000000055E5
+:104A50002AAAAAAA020002000000000000000055D5
+:104A60002AAAAAAA020200000000000000000055C5
+:104A70002AAAAAAA020202000000000000000055B3
+:104A80002AAAAAAA020202000000000000000055A3
+:104A90002AAAAAAA02020200000000000000005593
+:104AA0002AAAAAAA02020200000000000000005583
+:104AB0002AAAAAAA02020200000000000000005573
+:104AC0002AAAAAAA02020200000000000000005563
+:104AD0002AAAAAAA02020200000000000000005553
+:104AE0002AAAAAAA02020200000000000000005543
+:104AF00002AAAAAA020202000000000000000000B0
+:104B000000AAAAAA0202020200000000000000554A
+:104B10002A00AAAA020202000000000000000055BC
+:104B20002AAA00AA020202000000000000000055AC
+:104B30002AAAAA000202020000000000000000559C
+:104B40002AAAAAAA000202000000000000000055E4
+:104B50002AAAAAAA020002000000000000000055D4
+:104B60002AAAAAAA020200000000000000000055C4
+:104B70002AAAAAAA020202000000000000000055B2
+:104B80002AAAAAAA020202000000000000000055A2
+:104B90002AAAAAAA02020200000000000000005592
+:104BA0002AAAAAAA02020200000000000000005582
+:104BB0002AAAAAAA02020200000000000000005572
+:104BC0002AAAAAAA02020200000000000000005562
+:104BD0002AAAAAAA02020200000000000000005552
+:104BE0002AAAAAAA02020200000000000000005542
+:104BF00002AAAAAA020202000000000000000000AF
+:104C000000AAAAAAAA0202020200000000000000F4
+:104C10004000AAAAAA020202000000000000000050
+:104C200040AA00AAAA020202000000000000000040
+:104C300040AAAA00AA020202000000000000000030
+:104C400040AAAAAA00020202000000000000000020
+:104C500040AAAAAAAA000202000000000000000068
+:104C600040AAAAAAAA020002000000000000000058
+:104C700040AAAAAAAA020200000000000000000048
+:104C800040AAAAAAAA020202000000000000000036
+:104C900040AAAAAAAA020202000000000000000026
+:104CA00040AAAAAAAA020202000000000000000016
+:104CB00040AAAAAAAA020202000000000000000006
+:104CC00040AAAAAAAA0202020000000000000000F6
+:104CD00040AAAAAAAA0202020000000000000000E6
+:104CE00040AAAAAAAA0202020000000000000000D6
+:104CF00055AAAAAAAA0202020000000000000000B1
+:104D000000AAAAAAAA0202020202000000000000F1
+:104D10004000AAAAAA02020202000000000000004D
+:104D200040AA00AAAA02020202000000000000003D
+:104D300040AAAA00AA02020202000000000000002D
+:104D400040AAAAAA0002020202000000000000001D
+:104D500040AAAAAAAA000202020000000000000065
+:104D600040AAAAAAAA020002020000000000000055
+:104D700040AAAAAAAA020200020000000000000045
+:104D800040AAAAAAAA020202000000000000000035
+:104D900040AAAAAAAA020202020000000000000023
+:104DA00040AAAAAAAA020202020000000000000013
+:104DB00040AAAAAAAA020202020000000000000003
+:104DC00040AAAAAAAA0202020200000000000000F3
+:104DD00040AAAAAAAA0202020200000000000000E3
+:104DE00040AAAAAAAA0202020200000000000000D3
+:104DF00055AAAAAAAA0202020200000000000000AE
+:104E000000AAAAAAAAAA02020202020000000055F1
+:104E10002A00AAAAAAAA0202020200000000005563
+:104E20002AAA00AAAAAA0202020200000000005553
+:104E30002AAAAA00AAAA0202020200000000005543
+:104E40002AAAAAAA00AA0202020200000000005533
+:104E50002AAAAAAAAA000202020200000000005523
+:104E60002AAAAAAAAAAA000202020000000000556B
+:104E70002AAAAAAAAAAA020002020000000000555B
+:104E80002AAAAAAAAAAA020200020000000000554B
+:104E90002AAAAAAAAAAA020202000000000000553B
+:104EA0002AAAAAAAAAAA0202020200000000005529
+:104EB0002AAAAAAAAAAA0202020200000000005519
+:104EC0002AAAAAAAAAAA0202020200000000005509
+:104ED0002AAAAAAAAAAA02020202000000000055F9
+:104EE0002AAAAAAAAAAA02020202000000000055E9
+:104EF00000AAAAAAAAAA0202020200000000000058
+:104F000000AAAAAAAAAA02020202020200000055EE
+:104F10002A00AAAAAAAA0202020202000000005560
+:104F20002AAA00AAAAAA0202020202000000005550
+:104F30002AAAAA00AAAA0202020202000000005540
+:104F40002AAAAAAA00AA0202020202000000005530
+:104F50002AAAAAAAAA000202020202000000005520
+:104F60002AAAAAAAAAAA0002020202000000005568
+:104F70002AAAAAAAAAAA0200020202000000005558
+:104F80002AAAAAAAAAAA0202000202000000005548
+:104F90002AAAAAAAAAAA0202020002000000005538
+:104FA0002AAAAAAAAAAA0202020200000000005528
+:104FB0002AAAAAAAAAAA0202020202000000005516
+:104FC0002AAAAAAAAAAA0202020202000000005506
+:104FD0002AAAAAAAAAAA02020202020000000055F6
+:104FE0002AAAAAAAAAAA02020202020000000055E6
+:104FF00000AAAAAAAAAA0202020202000000000055
+:1050000000AAAAAAAAAAAA02020202020200000098
+:105010004000AAAAAAAAAA020202020200000000F4
+:1050200040AA00AAAAAAAA020202020200000000E4
+:1050300040AAAA00AAAAAA020202020200000000D4
+:1050400040AAAAAA00AAAA020202020200000000C4
+:1050500040AAAAAAAA00AA020202020200000000B4
+:1050600040AAAAAAAAAA00020202020200000000A4
+:1050700040AAAAAAAAAAAA000202020200000000EC
+:1050800040AAAAAAAAAAAA020002020200000000DC
+:1050900040AAAAAAAAAAAA020200020200000000CC
+:1050A00040AAAAAAAAAAAA020202000200000000BC
+:1050B00040AAAAAAAAAAAA020202020000000000AC
+:1050C00040AAAAAAAAAAAA0202020202000000009A
+:1050D00040AAAAAAAAAAAA0202020202000000008A
+:1050E00040AAAAAAAAAAAA0202020202000000007A
+:1050F00055AAAAAAAAAAAA02020202020000000055
+:1051000000AAAAAAAAAAAAAA0202020202020000ED
+:105110004000AAAAAAAAAAAA020202020202000047
+:1051200040AA00AAAAAAAAAA020202020202000037
+:1051300040AAAA00AAAAAAAA020202020202000027
+:1051400040AAAAAA00AAAAAA020202020202000017
+:1051500040AAAAAAAA00AAAA020202020202000007
+:1051600040AAAAAAAAAA00AA0202020202020000F7
+:1051700040AAAAAAAAAAAA000202020202020000E7
+:1051800040AAAAAAAAAAAAAA00020202020200002F
+:1051900040AAAAAAAAAAAAAA02000202020200001F
+:1051A00040AAAAAAAAAAAAAA02020002020200000F
+:1051B00040AAAAAAAAAAAAAA0202020002020000FF
+:1051C00040AAAAAAAAAAAAAA0202020200020000EF
+:1051D00040AAAAAAAAAAAAAA0202020202000000DF
+:1051E00040AAAAAAAAAAAAAA0202020202020000CD
+:1051F00055AAAAAAAAAAAAAA0202020202020000A8
+:1052000000A9A9A9A9A9A9A9A901010101010155FB
+:105210002A00A9A9A9A9A9A9A9010101010101556A
+:105220002AA900A9A9A9A9A9A9010101010101555A
+:105230002AA9A900A9A9A9A9A9010101010101554A
+:105240002AA9A9A900A9A9A9A9010101010101553A
+:105250002AA9A9A9A900A9A9A9010101010101552A
+:105260002AA9A9A9A9A900A9A9010101010101551A
+:105270002AA9A9A9A9A9A900A9010101010101550A
+:105280002AA9A9A9A9A9A9A90001010101010155FA
+:105290002AA9A9A9A9A9A9A9A90001010101015542
+:1052A0002AA9A9A9A9A9A9A9A90100010101015532
+:1052B0002AA9A9A9A9A9A9A9A90101000101015522
+:1052C0002AA9A9A9A9A9A9A9A90101010001015512
+:1052D0002AA9A9A9A9A9A9A9A90101010100015502
+:1052E0002AA9A9A9A9A9A9A9A901010101010055F2
+:1052F00000A9A9A9A9A9A9A9A90101010101010060
+:1053000000A9A9A9A9A9A9A9A9A901010101015453
+:105310002800A9A9A9A9A9A9A9A9010101010154C4
+:1053200028A900A9A9A9A9A9A9A9010101010154B4
+:1053300028A9A900A9A9A9A9A9A9010101010154A4
+:1053400028A9A9A900A9A9A9A9A901010101015494
+:1053500028A9A9A9A900A9A9A9A901010101015484
+:1053600028A9A9A9A9A900A9A9A901010101015474
+:1053700028A9A9A9A9A9A900A9A901010101015464
+:1053800028A9A9A9A9A9A9A900A901010101015454
+:1053900028A9A9A9A9A9A9A9A90001010101015444
+:1053A00028A9A9A9A9A9A9A9A9A90001010101548C
+:1053B00028A9A9A9A9A9A9A9A9A90100010101547C
+:1053C00028A9A9A9A9A9A9A9A9A90101000101546C
+:1053D00028A9A9A9A9A9A9A9A9A90101010001545C
+:1053E00028A9A9A9A9A9A9A9A9A90101010100544C
+:1053F00001A9A9A9A9A9A9A9A9A9010101010100B6
+:1054000000A9A9A9A9A9A9A9A9A9010101010101A5
+:105410005600A9A9A9A9A9A9A9A9010101010101E8
+:1054200056A900A9A9A9A9A9A9A9010101010101D8
+:1054300056A9A900A9A9A9A9A9A9010101010101C8
+:1054400056A9A9A900A9A9A9A9A9010101010101B8
+:1054500056A9A9A9A900A9A9A9A9010101010101A8
+:1054600056A9A9A9A9A900A9A9A901010101010198
+:1054700056A9A9A9A9A9A900A9A901010101010188
+:1054800056A9A9A9A9A9A9A900A901010101010178
+:1054900056A9A9A9A9A9A9A9A90001010101010168
+:1054A00056A9A9A9A9A9A9A9A9A9000101010101B0
+:1054B00056A9A9A9A9A9A9A9A9A9010001010101A0
+:1054C00056A9A9A9A9A9A9A9A9A901010001010190
+:1054D00056A9A9A9A9A9A9A9A9A901010100010180
+:1054E00056A9A9A9A9A9A9A9A9A901010101000170
+:1054F00054A9A9A9A9A9A9A9A9A901010101010062
+:1055000000A9A9A9A9A9A9A9A9A9A90101010100FD
+:105510005500A9A9A9A9A9A9A9A9A9010101010041
+:1055200055A900A9A9A9A9A9A9A9A9010101010031
+:1055300055A9A900A9A9A9A9A9A9A9010101010021
+:1055400055A9A9A900A9A9A9A9A9A9010101010011
+:1055500055A9A9A9A900A9A9A9A9A9010101010001
+:1055600055A9A9A9A9A900A9A9A9A90101010100F1
+:1055700055A9A9A9A9A9A900A9A9A90101010100E1
+:1055800055A9A9A9A9A9A9A900A9A90101010100D1
+:1055900055A9A9A9A9A9A9A9A900A90101010100C1
+:1055A00055A9A9A9A9A9A9A9A9A9000101010100B1
+:1055B00055A9A9A9A9A9A9A9A9A9A90001010100F9
+:1055C00055A9A9A9A9A9A9A9A9A9A90100010100E9
+:1055D00055A9A9A9A9A9A9A9A9A9A90101000100D9
+:1055E00055A9A9A9A9A9A9A9A9A9A90101010000C9
+:1055F00055A9A9A9A9A9A9A9A9A9A90101010100B8
+:1056000000A9A9A9A9A9A9A9A9A9A9A901010155FF
+:105610000000A9A9A9A9A9A9A9A9A9A90101015598
+:1056200000A900A9A9A9A9A9A9A9A9A90101015588
+:1056300000A9A900A9A9A9A9A9A9A9A90101015578
+:1056400000A9A9A900A9A9A9A9A9A9A90101015568
+:1056500000A9A9A9A900A9A9A9A9A9A90101015558
+:1056600000A9A9A9A9A900A9A9A9A9A90101015548
+:1056700000A9A9A9A9A9A900A9A9A9A90101015538
+:1056800000A9A9A9A9A9A9A900A9A9A90101015528
+:1056900000A9A9A9A9A9A9A9A900A9A90101015518
+:1056A00000A9A9A9A9A9A9A9A9A900A90101015508
+:1056B00000A9A9A9A9A9A9A9A9A9A90001010155F8
+:1056C00000A9A9A9A9A9A9A9A9A9A9A90001015540
+:1056D00000A9A9A9A9A9A9A9A9A9A9A90100015530
+:1056E00000A9A9A9A9A9A9A9A9A9A9A90101005520
+:1056F00000A9A9A9A9A9A9A9A9A9A9A90101010064
+:1057000000A9A9A9A9A9A9A9A9A9A9A9A901015457
+:105710000100A9A9A9A9A9A9A9A9A9A9A9010154EF
+:1057200001A900A9A9A9A9A9A9A9A9A9A9010154DF
+:1057300001A9A900A9A9A9A9A9A9A9A9A9010154CF
+:1057400001A9A9A900A9A9A9A9A9A9A9A9010154BF
+:1057500001A9A9A9A900A9A9A9A9A9A9A9010154AF
+:1057600001A9A9A9A9A900A9A9A9A9A9A90101549F
+:1057700001A9A9A9A9A9A900A9A9A9A9A90101548F
+:1057800001A9A9A9A9A9A9A900A9A9A9A90101547F
+:1057900001A9A9A9A9A9A9A9A900A9A9A90101546F
+:1057A00001A9A9A9A9A9A9A9A9A900A9A90101545F
+:1057B00001A9A9A9A9A9A9A9A9A9A900A90101544F
+:1057C00001A9A9A9A9A9A9A9A9A9A9A9000101543F
+:1057D00001A9A9A9A9A9A9A9A9A9A9A9A900015487
+:1057E00001A9A9A9A9A9A9A9A9A9A9A9A901005477
+:1057F00001A9A9A9A9A9A9A9A9A9A9A9A9010100BA
+:1058000000A9A9A9A9A9A9A9A9A9A9A9A9A9010101
+:105810005400A9A9A9A9A9A9A9A9A9A9A9A9010146
+:1058200054A900A9A9A9A9A9A9A9A9A9A9A9010136
+:1058300054A9A900A9A9A9A9A9A9A9A9A9A9010126
+:1058400054A9A9A900A9A9A9A9A9A9A9A9A9010116
+:1058500054A9A9A9A900A9A9A9A9A9A9A9A9010106
+:1058600054A9A9A9A9A900A9A9A9A9A9A9A90101F6
+:1058700054A9A9A9A9A9A900A9A9A9A9A9A90101E6
+:1058800054A9A9A9A9A9A9A900A9A9A9A9A90101D6
+:1058900054A9A9A9A9A9A9A9A900A9A9A9A90101C6
+:1058A00054A9A9A9A9A9A9A9A9A900A9A9A90101B6
+:1058B00054A9A9A9A9A9A9A9A9A9A900A9A90101A6
+:1058C00054A9A9A9A9A9A9A9A9A9A9A900A9010196
+:1058D00054A9A9A9A9A9A9A9A9A9A9A9A900010186
+:1058E00054A9A9A9A9A9A9A9A9A9A9A9A9A90001CE
+:1058F00054A9A9A9A9A9A9A9A9A9A9A9A9A90100BE
+:105900000055555556565656555555555555555499
+:1059100001005555555555555555555555555554E1
+:1059200001550055555555555555555555555554D1
+:1059300001555500555555555555555555555554C1
+:1059400001555555005555555555555555555554B1
+:1059500001555555550055555555555555555554A1
+:105960000155555555550055555555555555555491
+:105970000155555555555500555555555555555481
+:105980000155555555555555005555555555555471
+:105990000155555555555555550055555555555461
+:1059A0000155555555555555555500555555555451
+:1059B0000155555555555555555555005555555441
+:1059C0000155555555555555555555550055555431
+:1059D0000155555555555555555555555500555421
+:1059E0000155555555555555555555555555005411
+:1059F0000155555555555555555555555555550000
+:105A00000055555656565656565555555555555694
+:105A1000540055555555555555555555555555568B
+:105A2000545500555555555555555555555555567B
+:105A3000545555005555555555555555555555566B
+:105A4000545555550055555555555555555555565B
+:105A5000545555555500555555555555555555564B
+:105A6000545555555555005555555555555555563B
+:105A7000545555555555550055555555555555562B
+:105A8000545555555555555500555555555555561B
+:105A9000545555555555555555005555555555560B
+:105AA00054555555555555555555005555555556FB
+:105AB00054555555555555555555550055555556EB
+:105AC00054555555555555555555555500555556DB
+:105AD00054555555555555555555555555005556CB
+:105AE00054555555555555555555555555550056BB
+:105AF00054555555555555555555555555555500AC
+:105B0000005555565656565656555656555555AA3D
+:105B1000010055555656565655555555555555AA85
+:105B2000015500555656565655555555555555AA75
+:105B3000015555005656565655555555555555AA65
+:105B4000015555550056565655555555555555AA56
+:105B5000015555555600565655555555555555AA46
+:105B6000015555555656005655555555555555AA36
+:105B7000015555555656560055555555555555AA26
+:105B8000015555555656565600555555555555AA15
+:105B9000015555555656565655005555555555AA05
+:105BA000015555555656565655550055555555AAF5
+:105BB000015555555656565655555500555555AAE5
+:105BC000015555555656565655555555005555AAD5
+:105BD000015555555656565655555555550055AAC5
+:105BE000015555555656565655555555555500AAB5
+:105BF00001555555555555555555555555555500FE
+:105C0000005555565656565656565656565656A83A
+:105C1000540056565656565656565656565656A82A
+:105C2000545600565656565656565656565656A81A
+:105C3000545656005656565656565656565656A80A
+:105C4000545656560056565656565656565656A8FA
+:105C5000545656565600565656565656565656A8EA
+:105C6000545656565656005656565656565656A8DA
+:105C7000545656565656560056565656565656A8CA
+:105C8000545656565656565600565656565656A8BA
+:105C9000545656565656565656005656565656A8AA
+:105CA000545656565656565656560056565656A89A
+:105CB000545656565656565656565600565656A88A
+:105CC000545656565656565656565656005656A87A
+:105CD000545656565656565656565656560056A86A
+:105CE000545656565656565656565656565600A85A
+:105CF00054555556565656565454565656565600A2
+:105D000000565656565656565656565656565602DD
+:105D10000100565656565656565656565656560222
+:105D20000156005656565656565656565656560212
+:105D30000156560056565656565656565656560202
+:105D400001565656005656565656565656565602F2
+:105D500001565656560056565656565656565602E2
+:105D600001565656565600565656565656565602D2
+:105D700001565656565656005656565656565602C2
+:105D800001565656565656560056565656565602B2
+:105D900001565656565656565600565656565602A2
+:105DA0000156565656565656565600565656560292
+:105DB0000156565656565656565656005656560282
+:105DC0000156565656565656565656560056560272
+:105DD0000156565656565656565656565600560262
+:105DE0000156565656565656565656565656000252
+:105DF00001555456565656565656565656565600F1
+:105E0000005656565656565656565656565656A836
+:105E1000540056565656565656565656565656A828
+:105E2000545600565656565656565656565656A818
+:105E3000545656005656565656565656565656A808
+:105E4000545656560056565656565656565656A8F8
+:105E5000545656565600565656565656565656A8E8
+:105E6000545656565656005656565656565656A8D8
+:105E7000545656565656560056565656565656A8C8
+:105E8000545656565656565600565656565656A8B8
+:105E9000545656565656565656005656565656A8A8
+:105EA000545656565656565656560056565656A898
+:105EB000545656565656565656565600565656A888
+:105EC000545656565656565656565656005656A878
+:105ED000545656565656565656565656560056A868
+:105EE000545656565656565656565656565600A858
+:105EF000545656565656565656565656565656009A
+:105F000000565656565656565656565656565602DB
+:105F10000100565656565656565656565656560220
+:105F20000156005656565656565656565656560210
+:105F30000156560056565656565656565656560200
+:105F400001565656005656565656565656565602F0
+:105F500001565656560056565656565656565602E0
+:105F600001565656565600565656565656565602D0
+:105F700001565656565656005656565656565602C0
+:105F800001565656565656560056565656565602B0
+:105F900001565656565656565600565656565602A0
+:105FA0000156565656565656565600565656560290
+:105FB0000156565656565656565656005656560280
+:105FC0000156565656565656565656560056560270
+:105FD0000156565656565656565656565600560260
+:105FE0000156565656565656565656565656000250
+:105FF00001565656565656565656565656565600EC
+:10600000005656565656565656565656565656A834
+:10601000540056565656565656565656565656A826
+:10602000545600565656565656565656565656A816
+:10603000545656005656565656565656565656A806
+:10604000545656560056565656565656565656A8F6
+:10605000545656565600565656565656565656A8E6
+:10606000545656565656005656565656565656A8D6
+:10607000545656565656560056565656565656A8C6
+:10608000545656565656565600565656565656A8B6
+:10609000545656565656565656005656565656A8A6
+:1060A000545656565656565656560056565656A896
+:1060B000545656565656565656565600565656A886
+:1060C000545656565656565656565656005656A876
+:1060D000545656565656565656565656560056A866
+:1060E000545656565656565656565656565600A856
+:1060F0005456565656565656565656565656560098
+:1061000000AAAAAAAAAAAAAAAAAAAAAAAAAAAA0241
+:106110000100AAAAAAAAAAAAAAAAAAAAAAAAAA02DA
+:1061200001AA00AAAAAAAAAAAAAAAAAAAAAAAA02CA
+:1061300001AAAA00AAAAAAAAAAAAAAAAAAAAAA02BA
+:1061400001AAAAAA00AAAAAAAAAAAAAAAAAAAA02AA
+:1061500001AAAAAAAA00AAAAAAAAAAAAAAAAAA029A
+:1061600001AAAAAAAAAA00AAAAAAAAAAAAAAAA028A
+:1061700001AAAAAAAAAAAA00AAAAAAAAAAAAAA027A
+:1061800001AAAAAAAAAAAAAA00AAAAAAAAAAAA026A
+:1061900001AAAAAAAAAAAAAAAA00AAAAAAAAAA025A
+:1061A00001AAAAAAAAAAAAAAAAAA00AAAAAAAA024A
+:1061B00001AAAAAAAAAAAAAAAAAAAA00AAAAAA023A
+:1061C00001AAAAAAAAAAAAAAAAAAAAAA00AAAA022A
+:1061D00001AAAAAAAAAAAAAAAAAAAAAAAA00AA021A
+:1061E00001AAAAAAAAAAAAAAAAAAAAAAAAAA00020A
+:1061F00001AAAAAAAAAAAAAAAAAAAAAAAAAAAA0052
+:1062000000AAAAAAAAAAAAAAAAAAAAAAAAAAAAA89A
+:106210005400AAAAAAAAAAAAAAAAAAAAAAAAAAA8E0
+:1062200054AA00AAAAAAAAAAAAAAAAAAAAAAAAA8D0
+:1062300054AAAA00AAAAAAAAAAAAAAAAAAAAAAA8C0
+:1062400054AAAAAA00AAAAAAAAAAAAAAAAAAAAA8B0
+:1062500054AAAAAAAA00AAAAAAAAAAAAAAAAAAA8A0
+:1062600054AAAAAAAAAA00AAAAAAAAAAAAAAAAA890
+:1062700054AAAAAAAAAAAA00AAAAAAAAAAAAAAA880
+:1062800054AAAAAAAAAAAAAA00AAAAAAAAAAAAA870
+:1062900054AAAAAAAAAAAAAAAA00AAAAAAAAAAA860
+:1062A00054AAAAAAAAAAAAAAAAAA00AAAAAAAAA850
+:1062B00054AAAAAAAAAAAAAAAAAAAA00AAAAAAA840
+:1062C00054AAAAAAAAAAAAAAAAAAAAAA00AAAAA830
+:1062D00054AAAAAAAAAAAAAAAAAAAAAAAA00AAA820
+:1062E00054AAAAAAAAAAAAAAAAAAAAAAAAAA00A810
+:1062F00054AAAAAAAAAAAAAAAAAAAAAAAAAAAA00FE
+:1063000000AAAAAAAAAAAAAAAAAAAAAAAAAAAA023F
+:106310000100AAAAAAAAAAAAAAAAAAAAAAAAAA02D8
+:1063200001AA00AAAAAAAAAAAAAAAAAAAAAAAA02C8
+:1063300001AAAA00AAAAAAAAAAAAAAAAAAAAAA02B8
+:1063400001AAAAAA00AAAAAAAAAAAAAAAAAAAA02A8
+:1063500001AAAAAAAA00AAAAAAAAAAAAAAAAAA0298
+:1063600001AAAAAAAAAA00AAAAAAAAAAAAAAAA0288
+:1063700001AAAAAAAAAAAA00AAAAAAAAAAAAAA0278
+:1063800001AAAAAAAAAAAAAA00AAAAAAAAAAAA0268
+:1063900001AAAAAAAAAAAAAAAA00AAAAAAAAAA0258
+:1063A00001AAAAAAAAAAAAAAAAAA00AAAAAAAA0248
+:1063B00001AAAAAAAAAAAAAAAAAAAA00AAAAAA0238
+:1063C00001AAAAAAAAAAAAAAAAAAAAAA00AAAA0228
+:1063D00001AAAAAAAAAAAAAAAAAAAAAAAA00AA0218
+:1063E00001AAAAAAAAAAAAAAAAAAAAAAAAAA000208
+:1063F00001AAAAAAAAAAAAAAAAAAAAAAAAAAAA0050
+:1064000000AAAAAAAAAAAAAAAAAAAAAAAAAAAAA898
+:106410005400AAAAAAAAAAAAAAAAAAAAAAAAAAA8DE
+:1064200054AA00AAAAAAAAAAAAAAAAAAAAAAAAA8CE
+:1064300054AAAA00AAAAAAAAAAAAAAAAAAAAAAA8BE
+:1064400054AAAAAA00AAAAAAAAAAAAAAAAAAAAA8AE
+:1064500054AAAAAAAA00AAAAAAAAAAAAAAAAAAA89E
+:1064600054AAAAAAAAAA00AAAAAAAAAAAAAAAAA88E
+:1064700054AAAAAAAAAAAA00AAAAAAAAAAAAAAA87E
+:1064800054AAAAAAAAAAAAAA00AAAAAAAAAAAAA86E
+:1064900054AAAAAAAAAAAAAAAA00AAAAAAAAAAA85E
+:1064A00054AAAAAAAAAAAAAAAAAA00AAAAAAAAA84E
+:1064B00054AAAAAAAAAAAAAAAAAAAA00AAAAAAA83E
+:1064C00054AAAAAAAAAAAAAAAAAAAAAA00AAAAA82E
+:1064D00054AAAAAAAAAAAAAAAAAAAAAAAA00AAA81E
+:1064E00054AAAAAAAAAAAAAAAAAAAAAAAAAA00A80E
+:1064F00054AAAAAAAAAAAAAAAAAAAAAAAAAAAA00FC
+:1065000000AAAAAAAAAAAAAAAAAAAAAAAAAAAA023D
+:106510000100AAAAAAAAAAAAAAAAAAAAAAAAAA02D6
+:1065200001AA00AAAAAAAAAAAAAAAAAAAAAAAA02C6
+:1065300001AAAA00AAAAAAAAAAAAAAAAAAAAAA02B6
+:1065400001AAAAAA00AAAAAAAAAAAAAAAAAAAA02A6
+:1065500001AAAAAAAA00AAAAAAAAAAAAAAAAAA0296
+:1065600001AAAAAAAAAA00AAAAAAAAAAAAAAAA0286
+:1065700001AAAAAAAAAAAA00AAAAAAAAAAAAAA0276
+:1065800001AAAAAAAAAAAAAA00AAAAAAAAAAAA0266
+:1065900001AAAAAAAAAAAAAAAA00AAAAAAAAAA0256
+:1065A00001AAAAAAAAAAAAAAAAAA00AAAAAAAA0246
+:1065B00001AAAAAAAAAAAAAAAAAAAA00AAAAAA0236
+:1065C00001AAAAAAAAAAAAAAAAAAAAAA00AAAA0226
+:1065D00001AAAAAAAAAAAAAAAAAAAAAAAA00AA0216
+:1065E00001AAAAAAAAAAAAAAAAAAAAAAAAAA000206
+:1065F00001AAAAAAAAAAAAAAAAAAAAAAAAAAAA004E
+:1066000000A9A9A9A9A9A9A9A9A9A9A9A9A9A8A8A5
+:106610005400A9A9A9A9A9A9A9A9A9A9A9A9A8A8EA
+:1066200054A900A9A9A9A9A9A9A9A9A9A9A9A8A8DA
+:1066300054A9A900A9A9A9A9A9A9A9A9A9A9A8A8CA
+:1066400054A9A9A900A9A9A9A9A9A9A9A9A9A8A8BA
+:1066500054A9A9A9A900A9A9A9A9A9A9A9A9A8A8AA
+:1066600054A9A9A9A9A900A9A9A9A9A9A9A9A8A89A
+:1066700054A9A9A9A9A9A900A9A9A9A9A9A9A8A88A
+:1066800054A9A9A9A9A9A9A900A9A9A9A9A9A8A87A
+:1066900054A9A9A9A9A9A9A9A900A9A9A9A9A8A86A
+:1066A00054A9A9A9A9A9A9A9A9A900A9A9A9A8A85A
+:1066B00054A9A9A9A9A9A9A9A9A9A900A9A9A8A84A
+:1066C00054A9A9A9A9A9A9A9A9A9A9A900A9A8A83A
+:1066D00054A9A9A9A9A9A9A9A9A9A9A9A900A8A82A
+:1066E00054A9A9A9A9A9A9A9A9A9A9A9A9A900A819
+:1066F00054A9A9A9A9A9A9A9A9A9A9A9A9A9A80009
+:1067000000A9A9A9A9A9A9A9A9A9A9A9A9A8A8004D
+:106710000000A9A9A9A9A9A9A9A9A9A9A9A8A800E6
+:1067200000A900A9A9A9A9A9A9A9A9A9A9A8A800D6
+:1067300000A9A900A9A9A9A9A9A9A9A9A9A8A800C6
+:1067400000A9A9A900A9A9A9A9A9A9A9A9A8A800B6
+:1067500000A9A9A9A900A9A9A9A9A9A9A9A8A800A6
+:1067600000A9A9A9A9A900A9A9A9A9A9A9A8A80096
+:1067700000A9A9A9A9A9A900A9A9A9A9A9A8A80086
+:1067800000A9A9A9A9A9A9A900A9A9A9A9A8A80076
+:1067900000A9A9A9A9A9A9A9A900A9A9A9A8A80066
+:1067A00000A9A9A9A9A9A9A9A9A900A9A9A8A80056
+:1067B00000A9A9A9A9A9A9A9A9A9A900A9A8A80046
+:1067C00000A9A9A9A9A9A9A9A9A9A9A900A8A80036
+:1067D00000A9A9A9A9A9A9A9A9A9A9A9A900A80025
+:1067E00000A9A9A9A9A9A9A9A9A9A9A9A9A8000015
+:1067F00000A9A9A9A9A9A9A9A9A9A9A9A9A8A8005D
+:1068000000A9A9A9A9A9A9A9A9A9A9A9A8A8A8AAA3
+:106810005500A9A9A9A9A9A9A9A9A9A9A8A8A8AAE7
+:1068200055A900A9A9A9A9A9A9A9A9A9A8A8A8AAD7
+:1068300055A9A900A9A9A9A9A9A9A9A9A8A8A8AAC7
+:1068400055A9A9A900A9A9A9A9A9A9A9A8A8A8AAB7
+:1068500055A9A9A9A900A9A9A9A9A9A9A8A8A8AAA7
+:1068600055A9A9A9A9A900A9A9A9A9A9A8A8A8AA97
+:1068700055A9A9A9A9A9A900A9A9A9A9A8A8A8AA87
+:1068800055A9A9A9A9A9A9A900A9A9A9A8A8A8AA77
+:1068900055A9A9A9A9A9A9A9A900A9A9A8A8A8AA67
+:1068A00055A9A9A9A9A9A9A9A9A900A9A8A8A8AA57
+:1068B00055A9A9A9A9A9A9A9A9A9A900A8A8A8AA47
+:1068C00055A9A9A9A9A9A9A9A9A9A9A900A8A8AA36
+:1068D00055A9A9A9A9A9A9A9A9A9A9A9A800A8AA26
+:1068E00055A9A9A9A9A9A9A9A9A9A9A9A8A800AA16
+:1068F00055A9A9A9A9A9A9A9A9A9A9A9A8A8A80008
+:106900000055555555555555555555545454000237
+:10691000010055555555555555555554545400027B
+:10692000015500555555555555555554545400026B
+:10693000015555005555555555555554545400025B
+:10694000015555550055555555555554545400024B
+:10695000015555555500555555555554545400023B
+:10696000015555555555005555555554545400022B
+:10697000015555555555550055555554545400021B
+:10698000015555555555555500555554545400020B
+:1069900001555555555555555500555454540002FB
+:1069A00001555555555555555555005454540002EB
+:1069B00001555555555555555555550054540002DA
+:1069C00001555555555555555555555400540002CA
+:1069D00001555555555555555555555454000002BA
+:1069E0000155555555555555555555545454000256
+:1069F0000155555555555555555555545454000048
+:106A0000005555555555555555555454540000A8E5
+:106A1000540055555555555555555454540000A8D6
+:106A2000545500555555555555555454540000A8C6
+:106A3000545555005555555555555454540000A8B6
+:106A4000545555550055555555555454540000A8A6
+:106A5000545555555500555555555454540000A896
+:106A6000545555555555005555555454540000A886
+:106A7000545555555555550055555454540000A876
+:106A8000545555555555555500555454540000A866
+:106A9000545555555555555555005454540000A856
+:106AA000545555555555555555550054540000A845
+:106AB000545555555555555555555400540000A835
+:106AC000545555555555555555555454000000A825
+:106AD000545555555555555555555454540000A8C1
+:106AE000545555555555555555555454540000A8B1
+:106AF0005455555555555555555554545400000049
+:106B0000005555555555555555545454000000A839
+:106B1000540055555555555555545454000000A82A
+:106B2000545500555555555555545454000000A81A
+:106B3000545555005555555555545454000000A80A
+:106B4000545555550055555555545454000000A8FA
+:106B5000545555555500555555545454000000A8EA
+:106B6000545555555555005555545454000000A8DA
+:106B7000545555555555550055545454000000A8CA
+:106B8000545555555555555500545454000000A8BA
+:106B9000545555555555555555005454000000A8A9
+:106BA000545555555555555555540054000000A899
+:106BB000545555555555555555545400000000A889
+:106BC000545555555555555555545454000000A825
+:106BD000545555555555555555545454000000A815
+:106BE000545555555555555555545454000000A805
+:106BF000545555555555555555545454000000009D
+:106C00000055555555555555545454000000000233
+:106C10000100555555555555545454000000000277
+:106C20000155005555555555545454000000000267
+:106C30000155550055555555545454000000000257
+:106C40000155555500555555545454000000000247
+:106C50000155555555005555545454000000000237
+:106C60000155555555550055545454000000000227
+:106C70000155555555555500545454000000000217
+:106C80000155555555555555005454000000000206
+:106C900001555555555555555400540000000002F6
+:106CA00001555555555555555454000000000002E6
+:106CB0000155555555555555545454000000000282
+:106CC0000155555555555555545454000000000272
+:106CD0000155555555555555545454000000000262
+:106CE0000155555555555555545454000000000252
+:106CF0000155555555555555545454000000000044
+:106D00000055555555555554545400000000000287
+:106D100001005555555555545454000000000002CB
+:106D200001550055555555545454000000000002BB
+:106D300001555500555555545454000000000002AB
+:106D4000015555550055555454540000000000029B
+:106D5000015555555500555454540000000000028B
+:106D6000015555555555005454540000000000027B
+:106D7000015555555555550054540000000000026A
+:106D8000015555555555555400540000000000025A
+:106D9000015555555555555454000000000000024A
+:106DA00001555555555555545454000000000002E6
+:106DB00001555555555555545454000000000002D6
+:106DC00001555555555555545454000000000002C6
+:106DD00001555555555555545454000000000002B6
+:106DE00001555555555555545454000000000002A6
+:106DF0000155555555555554545400000000000098
+:106E0000005555555555555454540000000000A8E0
+:106E1000540055555555555454540000000000A8D1
+:106E2000545500555555555454540000000000A8C1
+:106E3000545555005555555454540000000000A8B1
+:106E4000545555550055555454540000000000A8A1
+:106E5000545555555500555454540000000000A891
+:106E6000545555555555005454540000000000A881
+:106E7000545555555555550054540000000000A870
+:106E8000545555555555555400540000000000A860
+:106E9000545555555555555454000000000000A850
+:106EA000545555555555555454540000000000A8EC
+:106EB000545555555555555454540000000000A8DC
+:106EC000545555555555555454540000000000A8CC
+:106ED000545555555555555454540000000000A8BC
+:106EE000545555555555555454540000000000A8AC
+:106EF0005455555555555554545400000000000044
+:106F0000005555555555555454000000000000A833
+:106F1000540055555555555454000000000000A824
+:106F2000545500555555555454000000000000A814
+:106F3000545555005555555454000000000000A804
+:106F4000545555550055555454000000000000A8F4
+:106F5000545555555500555454000000000000A8E4
+:106F6000545555555555005454000000000000A8D4
+:106F7000545555555555550054000000000000A8C3
+:106F8000545555555555555400000000000000A8B3
+:106F9000545555555555555454000000000000A84F
+:106FA000545555555555555454000000000000A83F
+:106FB000545555555555555454000000000000A82F
+:106FC000545555555555555454000000000000A81F
+:106FD000545555555555555454000000000000A80F
+:106FE000545555555555555454000000000000A8FF
+:106FF0005455555555555554540000000000000097
+:10700000005555555555545400000000000000022D
+:107010000100555555555454000000000000000271
+:107020000155005555555454000000000000000261
+:107030000155550055555454000000000000000251
+:107040000155555500555454000000000000000241
+:107050000155555555005454000000000000000231
+:107060000155555555550054000000000000000220
+:107070000155555555555400000000000000000210
+:1070800001555555555554540000000000000002AC
+:10709000015555555555545400000000000000029C
+:1070A000015555555555545400000000000000028C
+:1070B000015555555555545400000000000000027C
+:1070C000015555555555545400000000000000026C
+:1070D000015555555555545400000000000000025C
+:1070E000015555555555545400000000000000024C
+:1070F000015555555555545400000000000000003E
+:107100000055555555555400000000000000000280
+:1071100001005555555554000000000000000002C4
+:1071200001550055555554000000000000000002B4
+:1071300001555500555554000000000000000002A4
+:107140000155555500555400000000000000000294
+:107150000155555555005400000000000000000284
+:107160000155555555550000000000000000000273
+:10717000015555555555540000000000000000020F
+:1071800001555555555554000000000000000002FF
+:1071900001555555555554000000000000000002EF
+:1071A00001555555555554000000000000000002DF
+:1071B00001555555555554000000000000000002CF
+:1071C00001555555555554000000000000000002BF
+:1071D00001555555555554000000000000000002AF
+:1071E000015555555555540000000000000000029F
+:1071F0000155555555555400000000000000000091
+:10720000005555555554000000000000000000A82E
+:10721000540055555554000000000000000000A81F
+:10722000545500555554000000000000000000A80F
+:10723000545555005554000000000000000000A8FF
+:10724000545555550054000000000000000000A8EF
+:10725000545555555500000000000000000000A8DE
+:10726000545555555554000000000000000000A87A
+:10727000545555555554000000000000000000A86A
+:10728000545555555554000000000000000000A85A
+:10729000545555555554000000000000000000A84A
+:1072A000545555555554000000000000000000A83A
+:1072B000545555555554000000000000000000A82A
+:1072C000545555555554000000000000000000A81A
+:1072D000545555555554000000000000000000A80A
+:1072E000545555555554000000000000000000A8FA
+:1072F0005455555555540000000000000000000092
+:10730000005555555554000000000000000000A82D
+:10731000540055555554000000000000000000A81E
+:10732000545500555554000000000000000000A80E
+:10733000545555005554000000000000000000A8FE
+:10734000545555550054000000000000000000A8EE
+:10735000545555555500000000000000000000A8DD
+:10736000545555555554000000000000000000A879
+:10737000545555555554000000000000000000A869
+:10738000545555555554000000000000000000A859
+:10739000545555555554000000000000000000A849
+:1073A000545555555554000000000000000000A839
+:1073B000545555555554000000000000000000A829
+:1073C000545555555554000000000000000000A819
+:1073D000545555555554000000000000000000A809
+:1073E000545555555554000000000000000000A8F9
+:1073F0005455555555540000000000000000000091
+:107400000055555554000000000000000000000128
+:10741000010055555400000000000000000000016C
+:10742000015500555400000000000000000000015C
+:10743000015555005400000000000000000000014C
+:10744000015555550000000000000000000000013B
+:1074500001555555540000000000000000000001D7
+:1074600001555555540000000000000000000001C7
+:1074700001555555540000000000000000000001B7
+:1074800001555555540000000000000000000001A7
+:107490000155555554000000000000000000000197
+:1074A0000155555554000000000000000000000187
+:1074B0000155555554000000000000000000000177
+:1074C0000155555554000000000000000000000167
+:1074D0000155555554000000000000000000000157
+:1074E0000155555554000000000000000000000147
+:1074F0000155555554000000000000000000000038
+:107500000055555554000000000000000000000127
+:10751000010055555400000000000000000000016B
+:10752000015500555400000000000000000000015B
+:10753000015555005400000000000000000000014B
+:10754000015555550000000000000000000000013A
+:1075500001555555540000000000000000000001D6
+:1075600001555555540000000000000000000001C6
+:1075700001555555540000000000000000000001B6
+:1075800001555555540000000000000000000001A6
+:107590000155555554000000000000000000000196
+:1075A0000155555554000000000000000000000186
+:1075B0000155555554000000000000000000000176
+:1075C0000155555554000000000000000000000166
+:1075D0000155555554000000000000000000000156
+:1075E0000155555554000000000000000000000146
+:1075F0000155555554000000000000000000000037
+:10760000005555540000000000000000000000A8D4
+:10761000540055540000000000000000000000A8C5
+:10762000545500540000000000000000000000A8B5
+:10763000545555000000000000000000000000A8A4
+:10764000545555540000000000000000000000A840
+:10765000545555540000000000000000000000A830
+:10766000545555540000000000000000000000A820
+:10767000545555540000000000000000000000A810
+:10768000545555540000000000000000000000A800
+:10769000545555540000000000000000000000A8F0
+:1076A000545555540000000000000000000000A8E0
+:1076B000545555540000000000000000000000A8D0
+:1076C000545555540000000000000000000000A8C0
+:1076D000545555540000000000000000000000A8B0
+:1076E000545555540000000000000000000000A8A0
+:1076F0005455555400000000000000000000000038
+:10770000005555540000000000000000000000A8D3
+:10771000540055540000000000000000000000A8C4
+:10772000545500540000000000000000000000A8B4
+:10773000545555000000000000000000000000A8A3
+:10774000545555540000000000000000000000A83F
+:10775000545555540000000000000000000000A82F
+:10776000545555540000000000000000000000A81F
+:10777000545555540000000000000000000000A80F
+:10778000545555540000000000000000000000A8FF
+:10779000545555540000000000000000000000A8EF
+:1077A000545555540000000000000000000000A8DF
+:1077B000545555540000000000000000000000A8CF
+:1077C000545555540000000000000000000000A8BF
+:1077D000545555540000000000000000000000A8AF
+:1077E000545555540000000000000000000000A89F
+:1077F0005455555400000000000000000000000037
+:107800000055545400000000000000000000000279
+:1078100001005454000000000000000000000002BD
+:1078200001550054000000000000000000000002AC
+:10783000015554000000000000000000000000029C
+:107840000155545400000000000000000000000238
+:107850000155545400000000000000000000000228
+:107860000155545400000000000000000000000218
+:107870000155545400000000000000000000000208
+:1078800001555454000000000000000000000002F8
+:1078900001555454000000000000000000000002E8
+:1078A00001555454000000000000000000000002D8
+:1078B00001555454000000000000000000000002C8
+:1078C00001555454000000000000000000000002B8
+:1078D00001555454000000000000000000000002A8
+:1078E0000155545400000000000000000000000298
+:1078F000015554540000000000000000000000008A
+:107900000055545400000000000000000000000278
+:1079100001005454000000000000000000000002BC
+:1079200001550054000000000000000000000002AB
+:10793000015554000000000000000000000000029B
+:107940000155545400000000000000000000000237
+:107950000155545400000000000000000000000227
+:107960000155545400000000000000000000000217
+:107970000155545400000000000000000000000207
+:1079800001555454000000000000000000000002F7
+:1079900001555454000000000000000000000002E7
+:1079A00001555454000000000000000000000002D7
+:1079B00001555454000000000000000000000002C7
+:1079C00001555454000000000000000000000002B7
+:1079D00001555454000000000000000000000002A7
+:1079E0000155545400000000000000000000000297
+:1079F0000155545400000000000000000000000089
+:107A0000005454000000000000000000000000A826
+:107A1000540054000000000000000000000000A816
+:107A2000545400000000000000000000000000A806
+:107A3000545454000000000000000000000000A8A2
+:107A4000545454000000000000000000000000A892
+:107A5000545454000000000000000000000000A882
+:107A6000545454000000000000000000000000A872
+:107A7000545454000000000000000000000000A862
+:107A8000545454000000000000000000000000A852
+:107A9000545454000000000000000000000000A842
+:107AA000545454000000000000000000000000A832
+:107AB000545454000000000000000000000000A822
+:107AC000545454000000000000000000000000A812
+:107AD000545454000000000000000000000000A802
+:107AE000545454000000000000000000000000A8F2
+:107AF000545454000000000000000000000000008A
+:107B0000005400000000000000000000000000A879
+:107B1000540000000000000000000000000000A869
+:107B2000545400000000000000000000000000A805
+:107B3000545400000000000000000000000000A8F5
+:107B4000545400000000000000000000000000A8E5
+:107B5000545400000000000000000000000000A8D5
+:107B6000545400000000000000000000000000A8C5
+:107B7000545400000000000000000000000000A8B5
+:107B8000545400000000000000000000000000A8A5
+:107B9000545400000000000000000000000000A895
+:107BA000545400000000000000000000000000A885
+:107BB000545400000000000000000000000000A875
+:107BC000545400000000000000000000000000A865
+:107BD000545400000000000000000000000000A855
+:107BE000545400000000000000000000000000A845
+:107BF00054540000000000000000000000000000DD
+:107C00000000000000000000000000000000000074
+:107C1000FCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCA4
+:107C20000000000000000000000000000000000054
+:107C30000000000000000000000000000000000044
+:107C40000000000000000000000000000000000034
+:107C50000000000000000000000000000000000024
+:107C60000000000000000000000000000000000014
+:107C70000000000000000000000000000000000004
+:107C800000000000000000000000000000000000F4
+:107C900000000000000000000000000000000000E4
+:107CA00000000000000000000000000000000000D4
+:107CB00000000000000000000000000000000000C4
+:107CC00000000000000000000000000000000000B4
+:107CD00000000000000000000000000000000000A4
+:107CE0000000000000000000000000000000000094
+:107CF0000000000000000000000000000000000084
+:107D0000AA56545454545454545454545454A85586
+:107D1000AA565454545454545454545454545455CA
+:107D2000AA565454545454545454545454545455BA
+:107D3000AA565454545454545454545454545455AA
+:107D4000AA5654545454545454545454545454559A
+:107D5000AA5654545454545454545454545454558A
+:107D6000AA5654545454545454545454545454557A
+:107D7000AA5654545454545454545454545454556A
+:107D8000AA5654545454545454545454545454555A
+:107D9000AA5654545454545454545454545454554A
+:107DA000AA5654545454545454545454545454553A
+:107DB000AA5654545454545454545454545454552A
+:107DC000AA5654545454545454545454545454551A
+:107DD000AA5654545454545454545454545454550A
+:107DE000AA565454545454545454545454545455FA
+:107DF000AA56446868A8A8A8A8A8A8A8A8A8A800DF
+:107E000002565454545454545454545454545401D5
+:107E100002565454545454545454545454545401C5
+:107E200002565454545454545454545454545401B5
+:107E300002565454545454545454545454545401A5
+:107E40000256545454545454545454545454540195
+:107E50000256545454545454545454545454540185
+:107E60000256545454545454545454545454540175
+:107E70000256545454545454545454545454540165
+:107E80000256545454545454545454545454540155
+:107E90000256545454545454545454545454540145
+:107EA0000256545454545454545454545454540135
+:107EB0000256545454545454545454545454540125
+:107EC0000256545454545454545454545454540115
+:107ED0000256545454545454545454545454540105
+:107EE00002565454545454545454545454545401F5
+:107EF000025654545868A8A8A8A8A8A8A8A8A800DA
+:107F0000A856566464A4A4A4A4A4A4A4A4A4A45499
+:107F1000A8565654545454545454545454545454C9
+:107F2000A8565654545454545454545454545454B9
+:107F3000A8565654545454545454545454545454A9
+:107F4000A856565454545454545454545454545499
+:107F5000A856565454545454545454545454545489
+:107F6000A856565454545454545454545454545479
+:107F7000A856565454545454545454545454545469
+:107F8000A856565454545454545454545454545459
+:107F9000A856565454545454545454545454545449
+:107FA000A856565454545454545454545454545439
+:107FB000A856565454545454545454545454545429
+:107FC000A856565454545454545454545454545419
+:107FD000A856565454545454545454545454545409
+:107FE000A8565654545454545454545454545454F9
+:107FF000A8565654545468A8A8A8A8A8A8A8A80089
+:10800000005666A8A8A8A8A8A8A8A8A8A8A8A800D4
+:1080100000565654545454545454545454545400C4
+:1080200000565654545454545454545454545400B4
+:1080300000565654545454545454545454545400A4
+:108040000056565454545454545454545454540094
+:108050000056565454545454545454545454540084
+:108060000056565454545454545454545454540074
+:108070000056565454545454545454545454540064
+:108080000056565454545454545454545454540054
+:108090000056565454545454545454545454540044
+:1080A0000056565454545454545454545454540034
+:1080B0000056565454545454545454545454540024
+:1080C0000056565454545454545454545454540014
+:1080D0000056565454545454545454545454A800B0
+:1080E00000565654545454545454545454545400F4
+:1080F000005656545454545454545454A8A854003C
+:10810000AA56AAAAA8A8A8A8A8A8A8A8A8A8A8558E
+:10811000AAAAAAAAA8A8A8A8A8A8A8A8A8A8A8552A
+:10812000AAAAAAAAA8A8A8A8A8A8A8A8A8A8A8551A
+:10813000AAAAAAAAA8A8A8A8A8A8A8A8A8A8A8550A
+:10814000AAAAAAAAA8A8A8A8A8A8A8A8A8A8A855FA
+:10815000AAAAAAAAA8A8A8A8A8A8A8A8A8A8A855EA
+:10816000AAAAAAAAA8A8A8A8A8A8A8A8A8A8A855DA
+:10817000AAAAAAAAA8A8A8A8A8A8A8A8A8A8A855CA
+:10818000AAAAAAAAA8A8A8A8A8A8A8A8A8A8A855BA
+:10819000AAAAAAAAA8A8A8A8A8A8A8A8A8A8A855AA
+:1081A000AAAAAAAAA8A8A8A8A8A8A8A8A8A8A8559A
+:1081B000AAAA5656545454545454545454545455CE
+:1081C000AA56565654545454545454545454545512
+:1081D000AA56565654545454545454545454545502
+:1081E000AA565656545454545454545454545455F2
+:1081F000AA565656545454545454545454545454E3
+:108200000256AAAAA8A8A8A8A8A8A8A8A8A8A80189
+:1082100002AAAAAAA8A8A8A8A8A8A8A8A8A8A80125
+:1082200002AAAAAAA8A8A8A8A8A8A8A8A8A8A80115
+:1082300002AAAAAAA8A8A8A8A8A8A8A8A8A8A80105
+:1082400002AAAAAAA8A8A8A8A8A8A8A8A8A8A801F5
+:1082500002AAAAAAA8A8A8A8A8A8A8A8A8A8A801E5
+:1082600002AAAAAAA8A8A8A8A8A8A8A8A8A8A801D5
+:1082700002AAAAAAA8A8A8A8A8A8A8A8A8A8A801C5
+:1082800002AAAAAAA8A8A8A8A8A8A8A8A8A8A801B5
+:1082900002AAAAAAA8A8A8A8A8A8A8A8A8A8A801A5
+:1082A00002AAAAAAA8A8A8A8A8A8A8A8A8A8A80195
+:1082B00002AAAAAAA8A8A8A8A8A8A8A8A8A8A80185
+:1082C00002AAAAAAA8A8A8A8A8A8A8A8A8A8A80175
+:1082D00002565656545454545454545454545401FD
+:1082E00002565656545454545454545454545401ED
+:1082F00002565656545454545454545454545400DE
+:10830000A856AAAAAAA8A8A8A8A8A8A8A8A8A8548D
+:10831000A8AAAAAAAAA8A8A8A8A8A8A8A8A8A85429
+:10832000A8AAAAAAAAA8A8A8A8A8A8A8A8A8A85419
+:10833000A8AAAAAAAAA8A8A8A8A8A8A8A8A8A85409
+:10834000A8AAAAAAAAA8A8A8A8A8A8A8A8A8A854F9
+:10835000A8AAAAAAAAA8A8A8A8A8A8A8A8A8A854E9
+:10836000A8AAAAAAAAA8A8A8A8A8A8A8A8A8A854D9
+:10837000A8AAAAAAAAA8A8A8A8A8A8A8A8A8A854C9
+:10838000A8AAAAAAAAA8A8A8A8A8A8A8A8A8A854B9
+:10839000A8AAAAAAAAA8A8A8A8A8A8A8A8A8A854A9
+:1083A000A8AAAAAAAAA8A8A8A8A8A8A8A8A8A85499
+:1083B000A8AAAAAAAAA8A8A8A8A8A8A8A8A8A85489
+:1083C000A8AAAAAAAAA8A8A8A8A8A8A8A8A8A85479
+:1083D000A8AAAAAAAAA8A8A8A8A8A8A8A8A8A85469
+:1083E000A8AAAAAAAAA8A8A8A8A8A8A8A8A8A85459
+:1083F000A8565656565454545454545454545454E1
+:1084000000AAAAAAAAA8A8A8A8A8A8A8A8A8A80034
+:1084100000AAAAAAAAA8A8A8A8A8A8A8A8A8A80024
+:1084200000AAAAAAAAA8A8A8A8A8A8A8A8A8A80014
+:1084300000AAAAAAAAA8A8A8A8A8A8A8A8A8A80004
+:1084400000AAAAAAAAA8A8A8A8A8A8A8A8A8A800F4
+:1084500000AAAAAAAAA8A8A8A8A8A8A8A8A8A800E4
+:1084600000AAAAAAAAA8A8A8A8A8A8A8A8A8A800D4
+:1084700000AAAAAAAAA8A8A8A8A8A8A8A8A8A800C4
+:1084800000AAAAAAAAA8A8A8A8A8A8A8A8A8A800B4
+:1084900000AAAAAAAAA8A8A8A8A8A8A8A8A8A800A4
+:1084A00000AAAAAAAAA8A8A8A8A8A8A8A8A8A80094
+:1084B00000AAAAAAAAA8A8A8A8A8A8A8A8A8A80084
+:1084C00000AAAAAAAAA8A8A8A8A8A8A8A8A8A80074
+:1084D00000AAAAAAAAA8A8A8A8A8A8A8A8A8A80064
+:1084E00000AAAAAAAAA8A8A8A8A8A8A8A8A8A80054
+:1084F00000565656565454545454545454545400DC
+:10850000AAAA0202020200000000000000000055BA
+:10851000AAAAAA0202020000000000000000005502
+:1085200000AAAAAA02020200000000000000000047
+:1085300040AAAAAA020202000000000000000000F7
+:1085400040AAAAAA020202000000000000000000E7
+:1085500040AAAAAA020202000000000000000000D7
+:1085600040AAAAAA020202000000000000000000C7
+:1085700040AAAAAA020202000000000000000000B7
+:1085800040AAAAAA020202000000000000000000A7
+:1085900040AAAAAA02020200000000000000000097
+:1085A00040AAAAAA02020200000000000000000087
+:1085B00040AAAAAA02020200000000000000000077
+:1085C00040AAAAAA02020200000000000000000067
+:1085D00040AAAAAA02020200000000000000000057
+:1085E00040AAAAAA02020200000000000000000047
+:1085F00040AAAAAA02020200000000000000000037
+:1086000040AAAAAA02020200000000000000000026
+:1086100054AAAAAA02020200000000000000000002
+:1086200000AAAAAA02020200000000000000000046
+:1086300040AAAAAA020202000000000000000000F6
+:1086400040AAAAAA020202000000000000000000E6
+:1086500040AAAAAA020202000000000000000000D6
+:1086600040AAAAAA020202000000000000000000C6
+:1086700040AAAAAA020202000000000000000000B6
+:1086800040AAAAAA020202000000000000000000A6
+:1086900040AAAAAA02020200000000000000000096
+:1086A00040AAAAAA02020200000000000000000086
+:1086B00040AAAAAA02020200000000000000000076
+:1086C00040AAAAAA02020200000000000000000066
+:1086D00040AAAAAA02020200000000000000000056
+:1086E00040AAAAAA02020200000000000000000046
+:1086F00040AAAAAA02020200000000000000000036
+:1087000040AAAAAA02020200000000000000000025
+:1087100054AAAAAA02020200000000000000000001
+:10872000AAAAAAAA02020200000000000000005546
+:108730002AAAAAAA020202000000000000000055B6
+:108740002AAAAAAA020202000000000000000055A6
+:108750002AAAAAAA02020200000000000000005596
+:108760002AAAAAAA02020200000000000000005586
+:108770002AAAAAAA02020200000000000000005576
+:108780002AAAAAAA02020200000000000000005566
+:108790002AAAAAAA02020200000000000000005556
+:1087A0002AAAAAAA02020200000000000000005546
+:1087B0002AAAAAAA02020200000000000000005536
+:1087C0002AAAAAAA02020200000000000000005526
+:1087D0002AAAAAAA02020200000000000000005516
+:1087E0002AAAAAAA02020200000000000000005506
+:1087F0002AAAAAAA020202000000000000000055F6
+:108800002AAAAAAA020202000000000000000055E5
+:1088100002AAAAAA020202000000000000000055FD
+:10882000AAAAAAAA02020202000000000000005543
+:108830002AAAAAAA020202000000000000000055B5
+:108840002AAAAAAA020202000000000000000055A5
+:108850002AAAAAAA02020200000000000000005595
+:108860002AAAAAAA02020200000000000000005585
+:108870002AAAAAAA02020200000000000000005575
+:108880002AAAAAAA02020200000000000000005565
+:108890002AAAAAAA02020200000000000000005555
+:1088A0002AAAAAAA02020200000000000000005545
+:1088B0002AAAAAAA02020200000000000000005535
+:1088C0002AAAAAAA02020200000000000000005525
+:1088D0002AAAAAAA02020200000000000000005515
+:1088E0002AAAAAAA02020200000000000000005505
+:1088F0002AAAAAAA020202000000000000000055F5
+:108900002AAAAAAA020202000000000000000055E4
+:1089100002AAAAAA020202000000000000000055FC
+:1089200000AAAAAAAA020202020000000000000097
+:1089300040AAAAAAAA020202000000000000000049
+:1089400040AAAAAAAA020202000000000000000039
+:1089500040AAAAAAAA020202000000000000000029
+:1089600040AAAAAAAA020202000000000000000019
+:1089700040AAAAAAAA020202000000000000000009
+:1089800040AAAAAAAA0202020000000000000000F9
+:1089900040AAAAAAAA0202020000000000000000E9
+:1089A00040AAAAAAAA0202020000000000000000D9
+:1089B00040AAAAAAAA0202020000000000000000C9
+:1089C00040AAAAAAAA0202020000000000000000B9
+:1089D00040AAAAAAAA0202020000000000000000A9
+:1089E00040AAAAAAAA020202000000000000000099
+:1089F00040AAAAAAAA020202000000000000000089
+:108A000040AAAAAAAA020202000000000000000078
+:108A100055AAAAAAAA020202000000000000000053
+:108A200000AAAAAAAA020202020200000000000094
+:108A300040AAAAAAAA020202020000000000000046
+:108A400040AAAAAAAA020202020000000000000036
+:108A500040AAAAAAAA020202020000000000000026
+:108A600040AAAAAAAA020202020000000000000016
+:108A700040AAAAAAAA020202020000000000000006
+:108A800040AAAAAAAA0202020200000000000000F6
+:108A900040AAAAAAAA0202020200000000000000E6
+:108AA00040AAAAAAAA0202020200000000000000D6
+:108AB00040AAAAAAAA0202020200000000000000C6
+:108AC00040AAAAAAAA0202020200000000000000B6
+:108AD00040AAAAAAAA0202020200000000000000A6
+:108AE00040AAAAAAAA020202020000000000000096
+:108AF00040AAAAAAAA020202020000000000000086
+:108B000040AAAAAAAA020202020000000000000075
+:108B100055AAAAAAAA020202020000000000000050
+:108B2000AAAAAAAAAAAA02020202020000000055EA
+:108B30002AAAAAAAAAAA020202020000000000555C
+:108B40002AAAAAAAAAAA020202020000000000554C
+:108B50002AAAAAAAAAAA020202020000000000553C
+:108B60002AAAAAAAAAAA020202020000000000552C
+:108B70002AAAAAAAAAAA020202020000000000551C
+:108B80002AAAAAAAAAAA020202020000000000550C
+:108B90002AAAAAAAAAAA02020202000000000055FC
+:108BA0002AAAAAAAAAAA02020202000000000055EC
+:108BB0002AAAAAAAAAAA02020202000000000055DC
+:108BC0002AAAAAAAAAAA02020202000000000055CC
+:108BD0002AAAAAAAAAAA02020202000000000055BC
+:108BE0002AAAAAAAAAAA02020202000000000055AC
+:108BF0002AAAAAAAAAAA020202020000000000559C
+:108C00002AAAAAAAAAAA020202020000000000558B
+:108C100000AAAAAAAAAA02020202000000000055A5
+:108C2000AAAAAAAAAAAA02020202020200000055E7
+:108C30002AAAAAAAAAAA0202020202000000005559
+:108C40002AAAAAAAAAAA0202020202000000005549
+:108C50002AAAAAAAAAAA0202020202000000005539
+:108C60002AAAAAAAAAAA0202020202000000005529
+:108C70002AAAAAAAAAAA0202020202000000005519
+:108C80002AAAAAAAAAAA0202020202000000005509
+:108C90002AAAAAAAAAAA02020202020000000055F9
+:108CA0002AAAAAAAAAAA02020202020000000055E9
+:108CB0002AAAAAAAAAAA02020202020000000055D9
+:108CC0002AAAAAAAAAAA02020202020000000055C9
+:108CD0002AAAAAAAAAAA02020202020000000055B9
+:108CE0002AAAAAAAAAAA02020202020000000055A9
+:108CF0002AAAAAAAAAAA0202020202000000005599
+:108D00002AAAAAAAAAAA0202020202000000005588
+:108D100000AAAAAAAAAA02020202020000000055A2
+:108D200000AAAAAAAAAAAA0202020202020000003B
+:108D300040AAAAAAAAAAAA020202020200000000ED
+:108D400040AAAAAAAAAAAA020202020200000000DD
+:108D500040AAAAAAAAAAAA020202020200000000CD
+:108D600040AAAAAAAAAAAA020202020200000000BD
+:108D700040AAAAAAAAAAAA020202020200000000AD
+:108D800040AAAAAAAAAAAA0202020202000000009D
+:108D900040AAAAAAAAAAAA0202020202000000008D
+:108DA00040AAAAAAAAAAAA0202020202000000007D
+:108DB00040AAAAAAAAAAAA0202020202000000006D
+:108DC00040AAAAAAAAAAAA0202020202000000005D
+:108DD00040AAAAAAAAAAAA0202020202000000004D
+:108DE00040AAAAAAAAAAAA0202020202000000003D
+:108DF00040AAAAAAAAAAAA0202020202000000002D
+:108E000040AAAAAAAAAAAA0202020202000000001C
+:108E100055AAAAAAAAAAAA020202020200000000F7
+:108E200000AAAAAAAAAAAAAA020202020202000090
+:108E300040AAAAAAAAAAAAAA020202020202000040
+:108E400040AAAAAAAAAAAAAA020202020202000030
+:108E500040AAAAAAAAAAAAAA020202020202000020
+:108E600040AAAAAAAAAAAAAA020202020202000010
+:108E700040AAAAAAAAAAAAAA020202020202000000
+:108E800040AAAAAAAAAAAAAA0202020202020000F0
+:108E900040AAAAAAAAAAAAAA0202020202020000E0
+:108EA00040AAAAAAAAAAAAAA0202020202020000D0
+:108EB00040AAAAAAAAAAAAAA0202020202020000C0
+:108EC00040AAAAAAAAAAAAAA0202020202020000B0
+:108ED00040AAAAAAAAAAAAAA0202020202020000A0
+:108EE00040AAAAAAAAAAAAAA020202020202000090
+:108EF00040AAAAAAAAAAAAAA020202020202000080
+:108F000040AAAAAAAAAAAAAA02020202020200006F
+:108F100055AAAAAAAAAAAAAA02020202020200004A
+:108F2000AAA9A9A9A9A9A9A9A901010101010155F4
+:108F30002AA9A9A9A9A9A9A9A90101010101015564
+:108F40002AA9A9A9A9A9A9A9A90101010101015554
+:108F50002AA9A9A9A9A9A9A9A90101010101015544
+:108F60002AA9A9A9A9A9A9A9A90101010101015534
+:108F70002AA9A9A9A9A9A9A9A90101010101015524
+:108F80002AA9A9A9A9A9A9A9A90101010101015514
+:108F90002AA9A9A9A9A9A9A9A90101010101015504
+:108FA0002AA9A9A9A9A9A9A9A901010101010155F4
+:108FB0002AA9A9A9A9A9A9A9A901010101010155E4
+:108FC0002AA9A9A9A9A9A9A9A901010101010155D4
+:108FD0002AA9A9A9A9A9A9A9A901010101010155C4
+:108FE0002AA9A9A9A9A9A9A9A901010101010155B4
+:108FF0002AA9A9A9A9A9A9A9A901010101010155A4
+:109000002AA9A9A9A9A9A9A9A90101010101015593
+:1090100000A9A9A9A9A9A9A9A901010101010155AD
+:10902000A8A9A9A9A9A9A9A9A9A90101010101544E
+:1090300028A9A9A9A9A9A9A9A9A9010101010154BE
+:1090400028A9A9A9A9A9A9A9A9A9010101010154AE
+:1090500028A9A9A9A9A9A9A9A9A90101010101549E
+:1090600028A9A9A9A9A9A9A9A9A90101010101548E
+:1090700028A9A9A9A9A9A9A9A9A90101010101547E
+:1090800028A9A9A9A9A9A9A9A9A90101010101546E
+:1090900028A9A9A9A9A9A9A9A9A90101010101545E
+:1090A00028A9A9A9A9A9A9A9A9A90101010101544E
+:1090B00028A9A9A9A9A9A9A9A9A90101010101543E
+:1090C00028A9A9A9A9A9A9A9A9A90101010101542E
+:1090D00028A9A9A9A9A9A9A9A9A90101010101541E
+:1090E00028A9A9A9A9A9A9A9A9A90101010101540E
+:1090F00028A9A9A9A9A9A9A9A9A9010101010154FE
+:1091000028A9A9A9A9A9A9A9A9A9010101010154ED
+:1091100001A9A9A9A9A9A9A9A9A901010101015404
+:1091200056A9A9A9A9A9A9A9A9A9010101010101F2
+:1091300056A9A9A9A9A9A9A9A9A9010101010101E2
+:1091400056A9A9A9A9A9A9A9A9A9010101010101D2
+:1091500056A9A9A9A9A9A9A9A9A9010101010101C2
+:1091600056A9A9A9A9A9A9A9A9A9010101010101B2
+:1091700056A9A9A9A9A9A9A9A9A9010101010101A2
+:1091800056A9A9A9A9A9A9A9A9A901010101010192
+:1091900056A9A9A9A9A9A9A9A9A901010101010182
+:1091A00056A9A9A9A9A9A9A9A9A901010101010172
+:1091B00056A9A9A9A9A9A9A9A9A901010101010162
+:1091C00056A9A9A9A9A9A9A9A9A901010101010152
+:1091D00056A9A9A9A9A9A9A9A9A901010101010142
+:1091E00056A9A9A9A9A9A9A9A9A901010101010132
+:1091F00056A9A9A9A9A9A9A9A9A901010101010122
+:1092000056A9A9A9A9A9A9A9A9A901010101010111
+:1092100054A9A9A9A9A9A9A9A9A901010101010103
+:1092200055A9A9A9A9A9A9A9A9A9A901010101004B
+:1092300000A9A9A9A9A9A9A9A9A9A9A90101015593
+:1092400001A9A9A9A9A9A9A9A9A9A9A9A9010154DB
+:1092500001A9A9A9A9A9A9A9A9A9A9A9A9010154CB
+:1092600001A9A9A9A9A9A9A9A9A9A9A9A9010154BB
+:1092700001A9A9A9A9A9A9A9A9A9A9A9A9010154AB
+:1092800001A9A9A9A9A9A9A9A9A9A9A9A90101549B
+:1092900001A9A9A9A9A9A9A9A9A9A9A9A90101548B
+:1092A00001A9A9A9A9A9A9A9A9A9A9A9A90101547B
+:1092B00001A9A9A9A9A9A9A9A9A9A9A9A90101546B
+:1092C00001A9A9A9A9A9A9A9A9A9A9A9A90101545B
+:1092D00001A9A9A9A9A9A9A9A9A9A9A9A90101544B
+:1092E00001A9A9A9A9A9A9A9A9A9A9A9A90101543B
+:1092F00001A9A9A9A9A9A9A9A9A9A9A9A90101542B
+:1093000001A9A9A9A9A9A9A9A9A9A9A9A90101541A
+:1093100001A9A9A9A9A9A9A9A9A9A9A9A90101540A
+:1093200001A9A9A9A9A9A9A9A9A9A9A9A9010154FA
+:1093300001A9A9A9A9A9A9A9A9A9A9A9A9010156E8
+:1093400054A9A9A9A9A9A9A9A9A9A9A9A9A9010132
+:1093500054A9A9A9A9A9A9A9A9A9A9A9A9A9010122
+:1093600054A9A9A9A9A9A9A9A9A9A9A9A9A9010112
+:1093700054A9A9A9A9A9A9A9A9A9A9A9A9A9010102
+:1093800054A9A9A9A9A9A9A9A9A9A9A9A9A90101F2
+:1093900054A9A9A9A9A9A9A9A9A9A9A9A9A90101E2
+:1093A00054A9A9A9A9A9A9A9A9A9A9A9A9A90101D2
+:1093B00054A9A9A9A9A9A9A9A9A9A9A9A9A90101C2
+:1093C00054A9A9A9A9A9A9A9A9A9A9A9A9A90101B2
+:1093D00054A9A9A9A9A9A9A9A9A9A9A9A9A90101A2
+:1093E00054A9A9A9A9A9A9A9A9A9A9A9A9A9010192
+:1093F00054A9A9A9A9A9A9A9A9A9A9A9A9A9010182
+:1094000054A9A9A9A9A9A9A9A9A9A9A9A9A9010171
+:1094100054A9A9A9A9A9A9A9A9A9A9A9A9A9010161
+:1094200054A9A9A9A9A9A9A9A9A9A9A9A9A9010151
+:1094300054A9A9A9A9A9A9A9A9A9A9A9A9A9010240
+:10944000015555555656565655555555555555541D
+:109450000155555555555555555555555555555411
+:109460000155555555555555555555555555555401
+:1094700001555555555555555555555555555554F1
+:1094800001555555555555555555555555555554E1
+:1094900001555555555555555555555555555554D1
+:1094A00001555555555555555555555555555554C1
+:1094B00001555555555555555555555555555554B1
+:1094C00001555555555555555555555555555554A1
+:1094D0000155555555555555555555555555555491
+:1094E0000155555555555555555555555555555481
+:1094F0000155555555555555555555555555555471
+:109500000155555555555555555555555555555460
+:109510000155555555555555555555555555555450
+:109520000155555555555555555555555555555440
+:10953000015555555555555555555555555555562E
+:1095400054555556565656565655555555555556C5
+:1095500054555555555555555555555555555556BB
+:1095600054555555555555555555555555555556AB
+:10957000545555555555555555555555555555569B
+:10958000545555555555555555555555555555568B
+:10959000545555555555555555555555555555567B
+:1095A000545555555555555555555555555555566B
+:1095B000545555555555555555555555555555565B
+:1095C000545555555555555555555555555555564B
+:1095D000545555555555555555555555555555563B
+:1095E000545555555555555555555555555555562B
+:1095F000545555555555555555555555555555561B
+:10960000545555555555555555555555555555560A
+:1096100054555555555555555555555555555556FA
+:1096200054555555555555555555555555555556EA
+:1096300054555555555555555555555555555554DC
+:10964000015555565656565656555656555555AAC1
+:10965000015555555656565655555555555555AAB5
+:10966000015555555656565655555555555555AAA5
+:10967000015555555656565655555555555555AA95
+:10968000015555555656565655555555555555AA85
+:10969000015555555656565655555555555555AA75
+:1096A000015555555656565655555555555555AA65
+:1096B000015555555656565655555555555555AA55
+:1096C000015555555656565655555555555555AA45
+:1096D000015555555656565655555555555555AA35
+:1096E000015555555656565655555555555555AA25
+:1096F000015555555656565655555555555555AA15
+:10970000015555555656565655555555555555AA04
+:10971000015555555656565655555555555555AAF4
+:10972000015555555656565655555555555555AAE4
+:10973000015555555555555555555555555555AAD8
+:10974000545555565656565656565656565656A86B
+:10975000545656565656565656565656565656A859
+:10976000545656565656565656565656565656A849
+:10977000545656565656565656565656565656A839
+:10978000545656565656565656565656565656A829
+:10979000545656565656565656565656565656A819
+:1097A000545656565656565656565656565656A809
+:1097B000545656565656565656565656565656A8F9
+:1097C000545656565656565656565656565656A8E9
+:1097D000545656565656565656565656565656A8D9
+:1097E000545656565656565656565656565656A8C9
+:1097F000545656565656565656565656565656A8B9
+:10980000545656565656565656565656565656A8A8
+:10981000545656565656565656565656565656A898
+:10982000545656565656565656565656565656A888
+:10983000545555565656565654545656565656A87E
+:109840000156565656565656565656565656560261
+:109850000156565656565656565656565656560251
+:109860000156565656565656565656565656560241
+:109870000156565656565656565656565656560231
+:109880000156565656565656565656565656560221
+:109890000156565656565656565656565656560211
+:1098A0000156565656565656565656565656560201
+:1098B00001565656565656565656565656565602F1
+:1098C00001565656565656565656565656565602E1
+:1098D00001565656565656565656565656565602D1
+:1098E00001565656565656565656565656565602C1
+:1098F00001565656565656565656565656565602B1
+:1099000001565656565656565656565656565602A0
+:109910000156565656565656565656565656560290
+:109920000156565656565656565656565656560280
+:109930000155545656565656565656565656560273
+:10994000545656565656565656565656565656A867
+:109950000156565656565656565656565656560250
+:10996000545656565656565656565656565656A847
+:1099700001AAAAAAAAAAAAAAAAAAAAAAAAAAAA0298
+:1099800054AAAAAAAAAAAAAAAAAAAAAAAAAAAAA88F
+:1099900001AAAAAAAAAAAAAAAAAAAAAAAAAAAA0278
+:1099A00054AAAAAAAAAAAAAAAAAAAAAAAAAAAAA86F
+:1099B00001AAAAAAAAAAAAAAAAAAAAAAAAAAAA0258
+:1099C00001AAAAAAAAAAAAAAAAAAAAAAAAAAAA0248
+:1099D00001AAAAAAAAAAAAAAAAAAAAAAAAAAAA0238
+:1099E00001AAAAAAAAAAAAAAAAAAAAAAAAAAAA0228
+:1099F00001AAAAAAAAAAAAAAAAAAAAAAAAAAAA0218
+:109A000001AAAAAAAAAAAAAAAAAAAAAAAAAAAA0207
+:109A100001AAAAAAAAAAAAAAAAAAAAAAAAAAAA02F7
+:109A200001AAAAAAAAAAAAAAAAAAAAAAAAAAAA02E7
+:109A300001AAAAAAAAAAAAAAAAAAAAAAAAAAAA02D7
+:109A400001AAAAAAAAAAAAAAAAAAAAAAAAAAAA02C7
+:109A500001AAAAAAAAAAAAAAAAAAAAAAAAAAAA02B7
+:109A600001AAAAAAAAAAAAAAAAAAAAAAAAAAAA02A7
+:109A700001AAAAAAAAAAAAAAAAAAAAAAAAAAAA0297
+:109A800001AAAAAAAAAAAAAAAAAAAAAAAAAAAA0287
+:109A900001AAAAAAAAAAAAAAAAAAAAAAAAAAAA0277
+:109AA00001AAAAAAAAAAAAAAAAAAAAAAAAAAAA0168
+:109AB00054A9A9A9A9A9A9A9A9A9A9A9A9A9A8A86D
+:109AC00000A9A9A9A9A9A9A9A9A9A9A9A9A8A8005A
+:109AD00055A9A9A9A9A9A9A9A9A9A9A9A8A8A8AA4C
+:109AE0000155555555555555555555545454000225
+:109AF000545555555555555555555454540000A871
+:109B0000545555555555555555545454000000A8B5
+:109B100001555555555555555454540000000002F3
+:109B200001555555555555555454540000000002E3
+:109B300001555555555555555454540000000002D3
+:109B400001555555555555555454540000000002C3
+:109B500001555555555555555454540000000002B3
+:109B600001555555555555555454540000000002A3
+:109B70000155555555555555545454000000000293
+:109B80000155555555555555545454000000000283
+:109B90000155555555555555545454000000000273
+:109BA0000155555555555555545454000000000263
+:109BB0000155555555555555545454000000000253
+:109BC0000155555555555555545454000000000243
+:109BD0000155555555555555545454000000000233
+:109BE0000155555555555555545454000000000223
+:109BF0000155555555555555545454000000000213
+:109C00000155555555555555545454000000000004
+:109C10000155555555555554545400000000000247
+:109C20000155555555555554545400000000000237
+:109C30000155555555555554545400000000000227
+:109C40000155555555555554545400000000000217
+:109C50000155555555555554545400000000000207
+:109C600001555555555555545454000000000002F7
+:109C700001555555555555545454000000000002E7
+:109C800001555555555555545454000000000002D7
+:109C900001555555555555545454000000000002C7
+:109CA00001555555555555545454000000000002B7
+:109CB00001555555555555545454000000000002A7
+:109CC0000155555555555554545400000000000297
+:109CD0000155555555555554545400000000000287
+:109CE0000155555555555554545400000000000277
+:109CF0000155555555555554545400000000000267
+:109D00000155555555555554545400000000000058
+:109D1000545555555555555454540000000000A84D
+:109D2000545555555555555454000000000000A891
+:109D300001555555555554540000000000000002CF
+:109D400001555555555554540000000000000002BF
+:109D500001555555555554540000000000000002AF
+:109D6000015555555555545400000000000000029F
+:109D7000015555555555545400000000000000028F
+:109D8000015555555555545400000000000000027F
+:109D9000015555555555545400000000000000026F
+:109DA000015555555555545400000000000000025F
+:109DB000015555555555545400000000000000024F
+:109DC000015555555555545400000000000000023F
+:109DD000015555555555545400000000000000022F
+:109DE000015555555555545400000000000000021F
+:109DF000015555555555545400000000000000020F
+:109E000001555555555554540000000000000002FE
+:109E100001555555555554540000000000000002EE
+:109E200001555555555554540000000000000000E0
+:109E30000155555555555400000000000000000222
+:109E40000155555555555400000000000000000212
+:109E50000155555555555400000000000000000202
+:109E600001555555555554000000000000000002F2
+:109E700001555555555554000000000000000002E2
+:109E800001555555555554000000000000000002D2
+:109E900001555555555554000000000000000002C2
+:109EA00001555555555554000000000000000002B2
+:109EB00001555555555554000000000000000002A2
+:109EC0000155555555555400000000000000000292
+:109ED0000155555555555400000000000000000282
+:109EE0000155555555555400000000000000000272
+:109EF0000155555555555400000000000000000262
+:109F00000155555555555400000000000000000251
+:109F10000155555555555400000000000000000241
+:109F20000155555555555400000000000000000033
+:109F3000545555555554000000000000000000A87D
+:109F4000545555555554000000000000000000A86D
+:109F5000545555555554000000000000000000A85D
+:109F6000545555555554000000000000000000A84D
+:109F7000545555555554000000000000000000A83D
+:109F8000545555555554000000000000000000A82D
+:109F9000545555555554000000000000000000A81D
+:109FA000545555555554000000000000000000A80D
+:109FB000545555555554000000000000000000A8FD
+:109FC000545555555554000000000000000000A8ED
+:109FD000545555555554000000000000000000A8DD
+:109FE000545555555554000000000000000000A8CD
+:109FF000545555555554000000000000000000A8BD
+:10A00000545555555554000000000000000000A8AC
+:10A01000545555555554000000000000000000A89C
+:10A020005455555555540000000000000000000034
+:10A03000545555555554000000000000000000A87C
+:10A04000545555555554000000000000000000A86C
+:10A05000545555555554000000000000000000A85C
+:10A06000545555555554000000000000000000A84C
+:10A07000545555555554000000000000000000A83C
+:10A08000545555555554000000000000000000A82C
+:10A09000545555555554000000000000000000A81C
+:10A0A000545555555554000000000000000000A80C
+:10A0B000545555555554000000000000000000A8FC
+:10A0C000545555555554000000000000000000A8EC
+:10A0D000545555555554000000000000000000A8DC
+:10A0E000545555555554000000000000000000A8CC
+:10A0F000545555555554000000000000000000A8BC
+:10A10000545555555554000000000000000000A8AB
+:10A11000545555555554000000000000000000A89B
+:10A120005455555555540000000000000000000033
+:10A1300001555555540000000000000000000001CA
+:10A1400001555555540000000000000000000001BA
+:10A1500001555555540000000000000000000001AA
+:10A16000015555555400000000000000000000019A
+:10A17000015555555400000000000000000000018A
+:10A18000015555555400000000000000000000017A
+:10A19000015555555400000000000000000000016A
+:10A1A000015555555400000000000000000000015A
+:10A1B000015555555400000000000000000000014A
+:10A1C000015555555400000000000000000000013A
+:10A1D000015555555400000000000000000000012A
+:10A1E000015555555400000000000000000000011A
+:10A1F000015555555400000000000000000000010A
+:10A2000001555555540000000000000000000001F9
+:10A2100001555555540000000000000000000001E9
+:10A2200001555555540000000000000000000000DA
+:10A2300001555555540000000000000000000001C9
+:10A2400001555555540000000000000000000001B9
+:10A2500001555555540000000000000000000001A9
+:10A260000155555554000000000000000000000199
+:10A270000155555554000000000000000000000189
+:10A280000155555554000000000000000000000179
+:10A290000155555554000000000000000000000169
+:10A2A0000155555554000000000000000000000159
+:10A2B0000155555554000000000000000000000149
+:10A2C0000155555554000000000000000000000139
+:10A2D0000155555554000000000000000000000129
+:10A2E0000155555554000000000000000000000119
+:10A2F0000155555554000000000000000000000109
+:10A3000001555555540000000000000000000001F8
+:10A3100001555555540000000000000000000001E8
+:10A3200001555555540000000000000000000000D9
+:10A33000545555540000000000000000000000A823
+:10A34000545555540000000000000000000000A813
+:10A35000545555540000000000000000000000A803
+:10A36000545555540000000000000000000000A8F3
+:10A37000545555540000000000000000000000A8E3
+:10A38000545555540000000000000000000000A8D3
+:10A39000545555540000000000000000000000A8C3
+:10A3A000545555540000000000000000000000A8B3
+:10A3B000545555540000000000000000000000A8A3
+:10A3C000545555540000000000000000000000A893
+:10A3D000545555540000000000000000000000A883
+:10A3E000545555540000000000000000000000A873
+:10A3F000545555540000000000000000000000A863
+:10A40000545555540000000000000000000000A852
+:10A41000545555540000000000000000000000A842
+:10A4200054555554000000000000000000000000DA
+:10A43000545555540000000000000000000000A822
+:10A44000545555540000000000000000000000A812
+:10A45000545555540000000000000000000000A802
+:10A46000545555540000000000000000000000A8F2
+:10A47000545555540000000000000000000000A8E2
+:10A48000545555540000000000000000000000A8D2
+:10A49000545555540000000000000000000000A8C2
+:10A4A000545555540000000000000000000000A8B2
+:10A4B000545555540000000000000000000000A8A2
+:10A4C000545555540000000000000000000000A892
+:10A4D000545555540000000000000000000000A882
+:10A4E000545555540000000000000000000000A872
+:10A4F000545555540000000000000000000000A862
+:10A50000545555540000000000000000000000A851
+:10A51000545555540000000000000000000000A841
+:10A5200054555554000000000000000000000000D9
+:10A53000015554540000000000000000000000021B
+:10A54000015554540000000000000000000000020B
+:10A5500001555454000000000000000000000002FB
+:10A5600001555454000000000000000000000002EB
+:10A5700001555454000000000000000000000002DB
+:10A5800001555454000000000000000000000002CB
+:10A5900001555454000000000000000000000002BB
+:10A5A00001555454000000000000000000000002AB
+:10A5B000015554540000000000000000000000029B
+:10A5C000015554540000000000000000000000028B
+:10A5D000015554540000000000000000000000027B
+:10A5E000015554540000000000000000000000026B
+:10A5F000015554540000000000000000000000025B
+:10A60000015554540000000000000000000000024A
+:10A61000015554540000000000000000000000023A
+:10A62000015554540000000000000000000000002C
+:10A63000015554540000000000000000000000021A
+:10A64000015554540000000000000000000000020A
+:10A6500001555454000000000000000000000002FA
+:10A6600001555454000000000000000000000002EA
+:10A6700001555454000000000000000000000002DA
+:10A6800001555454000000000000000000000002CA
+:10A6900001555454000000000000000000000002BA
+:10A6A00001555454000000000000000000000002AA
+:10A6B000015554540000000000000000000000029A
+:10A6C000015554540000000000000000000000028A
+:10A6D000015554540000000000000000000000027A
+:10A6E000015554540000000000000000000000026A
+:10A6F000015554540000000000000000000000025A
+:10A700000155545400000000000000000000000249
+:10A710000155545400000000000000000000000239
+:10A72000015554540000000000000000000000002B
+:10A73000545454000000000000000000000000A875
+:10A74000545454000000000000000000000000A865
+:10A75000545454000000000000000000000000A855
+:10A76000545454000000000000000000000000A845
+:10A77000545454000000000000000000000000A835
+:10A78000545454000000000000000000000000A825
+:10A79000545454000000000000000000000000A815
+:10A7A000545454000000000000000000000000A805
+:10A7B000545454000000000000000000000000A8F5
+:10A7C000545454000000000000000000000000A8E5
+:10A7D000545454000000000000000000000000A8D5
+:10A7E000545454000000000000000000000000A8C5
+:10A7F000545454000000000000000000000000A8B5
+:10A80000545454000000000000000000000000A8A4
+:10A81000545454000000000000000000000000A894
+:10A82000545454000000000000000000000000002C
+:10A83000545400000000000000000000000000A8C8
+:10A84000545400000000000000000000000000A8B8
+:10A85000545400000000000000000000000000A8A8
+:10A86000545400000000000000000000000000A898
+:10A87000545400000000000000000000000000A888
+:10A88000545400000000000000000000000000A878
+:10A89000545400000000000000000000000000A868
+:10A8A000545400000000000000000000000000A858
+:10A8B000545400000000000000000000000000A848
+:10A8C000545400000000000000000000000000A838
+:10A8D000545400000000000000000000000000A828
+:10A8E000545400000000000000000000000000A818
+:10A8F000545400000000000000000000000000A808
+:10A90000545400000000000000000000000000A8F7
+:10A91000545400000000000000000000000000A8E7
+:10A92000545400000000000000000000000000007F
+:10A930000000000000000000000000000000000017
+:10A94000FCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFC47
+:10A9500000000000000000000000000000000000F7
+:10A9600000000000000000000000000000000000E7
+:10A9700000000000000000000000000000000000D7
+:10A9800000000000000000000000000000000000C7
+:10A9900000000000000000000000000000000000B7
+:10A9A00000000000000000000000000000000000A7
+:10A9B0000000000000000000000000000000000097
+:10A9C0000000000000000000000000000000000087
+:10A9D0000000000000000000000000000000000077
+:10A9E0000000000000000000000000000000000067
+:10A9F0000000000000000000000000000000000057
+:10AA0000AA56545454545454545454545454A85559
+:10AA1000AA5654545454545454545454545454559D
+:10AA2000AA5654545454545454545454545454558D
+:10AA3000AA5654545454545454545454545454557D
+:10AA4000AA5654545454545454545454545454556D
+:10AA5000AA5654545454545454545454545454555D
+:10AA6000AA5654545454545454545454545454554D
+:10AA7000AA5654545454545454545454545454553D
+:10AA8000AA5654545454545454545454545454552D
+:10AA9000AA5654545454545454545454545454551D
+:10AAA000AA5654545454545454545454545454550D
+:10AAB000AA565454545454545454545454545455FD
+:10AAC000AA565454545454545454545454545455ED
+:10AAD000AA565454545454545454545454545455DD
+:10AAE000AA565454545454545454545454545455CD
+:10AAF000AA56446868A8A8A8A8A8A8A8A8A8A800B2
+:10AB000002565454545454545454545454545401A8
+:10AB10000256545454545454545454545454540198
+:10AB20000256545454545454545454545454540188
+:10AB30000256545454545454545454545454540178
+:10AB40000256545454545454545454545454540168
+:10AB50000256545454545454545454545454540158
+:10AB60000256545454545454545454545454540148
+:10AB70000256545454545454545454545454540138
+:10AB80000256545454545454545454545454540128
+:10AB90000256545454545454545454545454540118
+:10ABA0000256545454545454545454545454540108
+:10ABB00002565454545454545454545454545401F8
+:10ABC00002565454545454545454545454545401E8
+:10ABD00002565454545454545454545454545401D8
+:10ABE00002565454545454545454545454545401C8
+:10ABF000025654545868A8A8A8A8A8A8A8A8A800AD
+:10AC0000A856566464A4A4A4A4A4A4A4A4A4A4546C
+:10AC1000A85656545454545454545454545454549C
+:10AC2000A85656545454545454545454545454548C
+:10AC3000A85656545454545454545454545454547C
+:10AC4000A85656545454545454545454545454546C
+:10AC5000A85656545454545454545454545454545C
+:10AC6000A85656545454545454545454545454544C
+:10AC7000A85656545454545454545454545454543C
+:10AC8000A85656545454545454545454545454542C
+:10AC9000A85656545454545454545454545454541C
+:10ACA000A85656545454545454545454545454540C
+:10ACB000A8565654545454545454545454545454FC
+:10ACC000A8565654545454545454545454545454EC
+:10ACD000A8565654545454545454545454545454DC
+:10ACE000A8565654545454545454545454545454CC
+:10ACF000A8565654545468A8A8A8A8A8A8A8A8005C
+:10AD0000005666A8A8A8A8A8A8A8A8A8A8A8A800A7
+:10AD10000056565454545454545454545454540097
+:10AD20000056565454545454545454545454540087
+:10AD30000056565454545454545454545454540077
+:10AD40000056565454545454545454545454540067
+:10AD50000056565454545454545454545454540057
+:10AD60000056565454545454545454545454540047
+:10AD70000056565454545454545454545454540037
+:10AD80000056565454545454545454545454540027
+:10AD90000056565454545454545454545454540017
+:10ADA0000056565454545454545454545454540007
+:10ADB00000565654545454545454545454545400F7
+:10ADC00000565654545454545454545454545400E7
+:10ADD0000056565454545454545454545454A80083
+:10ADE00000565654545454545454545454545400C7
+:10ADF000005656545454545454545454A8A854000F
+:10AE0000AA56AAAAA8A8A8A8A8A8A8A8A8A8A85561
+:10AE1000AAAAAAAAA8A8A8A8A8A8A8A8A8A8A855FD
+:10AE2000AAAAAAAAA8A8A8A8A8A8A8A8A8A8A855ED
+:10AE3000AAAAAAAAA8A8A8A8A8A8A8A8A8A8A855DD
+:10AE4000AAAAAAAAA8A8A8A8A8A8A8A8A8A8A855CD
+:10AE5000AAAAAAAAA8A8A8A8A8A8A8A8A8A8A855BD
+:10AE6000AAAAAAAAA8A8A8A8A8A8A8A8A8A8A855AD
+:10AE7000AAAAAAAAA8A8A8A8A8A8A8A8A8A8A8559D
+:10AE8000AAAAAAAAA8A8A8A8A8A8A8A8A8A8A8558D
+:10AE9000AAAAAAAAA8A8A8A8A8A8A8A8A8A8A8557D
+:10AEA000AAAAAAAAA8A8A8A8A8A8A8A8A8A8A8556D
+:10AEB000AAAA5656545454545454545454545455A1
+:10AEC000AA565656545454545454545454545455E5
+:10AED000AA565656545454545454545454545455D5
+:10AEE000AA565656545454545454545454545455C5
+:10AEF000AA565656545454545454545454545454B6
+:10AF00000256AAAAA8A8A8A8A8A8A8A8A8A8A8015C
+:10AF100002AAAAAAA8A8A8A8A8A8A8A8A8A8A801F8
+:10AF200002AAAAAAA8A8A8A8A8A8A8A8A8A8A801E8
+:10AF300002AAAAAAA8A8A8A8A8A8A8A8A8A8A801D8
+:10AF400002AAAAAAA8A8A8A8A8A8A8A8A8A8A801C8
+:10AF500002AAAAAAA8A8A8A8A8A8A8A8A8A8A801B8
+:10AF600002AAAAAAA8A8A8A8A8A8A8A8A8A8A801A8
+:10AF700002AAAAAAA8A8A8A8A8A8A8A8A8A8A80198
+:10AF800002AAAAAAA8A8A8A8A8A8A8A8A8A8A80188
+:10AF900002AAAAAAA8A8A8A8A8A8A8A8A8A8A80178
+:10AFA00002AAAAAAA8A8A8A8A8A8A8A8A8A8A80168
+:10AFB00002AAAAAAA8A8A8A8A8A8A8A8A8A8A80158
+:10AFC00002AAAAAAA8A8A8A8A8A8A8A8A8A8A80148
+:10AFD00002565656545454545454545454545401D0
+:10AFE00002565656545454545454545454545401C0
+:10AFF00002565656545454545454545454545400B1
+:10B00000A856AAAAAAA8A8A8A8A8A8A8A8A8A85460
+:10B01000A8AAAAAAAAA8A8A8A8A8A8A8A8A8A854FC
+:10B02000A8AAAAAAAAA8A8A8A8A8A8A8A8A8A854EC
+:10B03000A8AAAAAAAAA8A8A8A8A8A8A8A8A8A854DC
+:10B04000A8AAAAAAAAA8A8A8A8A8A8A8A8A8A854CC
+:10B05000A8AAAAAAAAA8A8A8A8A8A8A8A8A8A854BC
+:10B06000A8AAAAAAAAA8A8A8A8A8A8A8A8A8A854AC
+:10B07000A8AAAAAAAAA8A8A8A8A8A8A8A8A8A8549C
+:10B08000A8AAAAAAAAA8A8A8A8A8A8A8A8A8A8548C
+:10B09000A8AAAAAAAAA8A8A8A8A8A8A8A8A8A8547C
+:10B0A000A8AAAAAAAAA8A8A8A8A8A8A8A8A8A8546C
+:10B0B000A8AAAAAAAAA8A8A8A8A8A8A8A8A8A8545C
+:10B0C000A8AAAAAAAAA8A8A8A8A8A8A8A8A8A8544C
+:10B0D000A8AAAAAAAAA8A8A8A8A8A8A8A8A8A8543C
+:10B0E000A8AAAAAAAAA8A8A8A8A8A8A8A8A8A8542C
+:10B0F000A8565656565454545454545454545454B4
+:10B1000000AAAAAAAAA8A8A8A8A8A8A8A8A8A80007
+:10B1100000AAAAAAAAA8A8A8A8A8A8A8A8A8A800F7
+:10B1200000AAAAAAAAA8A8A8A8A8A8A8A8A8A800E7
+:10B1300000AAAAAAAAA8A8A8A8A8A8A8A8A8A800D7
+:10B1400000AAAAAAAAA8A8A8A8A8A8A8A8A8A800C7
+:10B1500000AAAAAAAAA8A8A8A8A8A8A8A8A8A800B7
+:10B1600000AAAAAAAAA8A8A8A8A8A8A8A8A8A800A7
+:10B1700000AAAAAAAAA8A8A8A8A8A8A8A8A8A80097
+:10B1800000AAAAAAAAA8A8A8A8A8A8A8A8A8A80087
+:10B1900000AAAAAAAAA8A8A8A8A8A8A8A8A8A80077
+:10B1A00000AAAAAAAAA8A8A8A8A8A8A8A8A8A80067
+:10B1B00000AAAAAAAAA8A8A8A8A8A8A8A8A8A80057
+:10B1C00000AAAAAAAAA8A8A8A8A8A8A8A8A8A80047
+:10B1D00000AAAAAAAAA8A8A8A8A8A8A8A8A8A80037
+:10B1E00000AAAAAAAAA8A8A8A8A8A8A8A8A8A80027
+:10B1F00000565656565454545454545454545400AF
+:10B20000AAAA02020202000000000000000000558D
+:10B21000AAAAAA02020200000000000000000055D5
+:10B2200000AAAAAA0202020000000000000000001A
+:10B2300040AAAAAA020202000000000000000000CA
+:10B2400040AAAAAA020202000000000000000000BA
+:10B2500040AAAAAA020202000000000000000000AA
+:10B2600040AAAAAA0202020000000000000000009A
+:10B2700040AAAAAA0202020000000000000000008A
+:10B2800040AAAAAA0202020000000000000000007A
+:10B2900040AAAAAA0202020000000000000000006A
+:10B2A00040AAAAAA0202020000000000000000005A
+:10B2B00040AAAAAA0202020000000000000000004A
+:10B2C00040AAAAAA0202020000000000000000003A
+:10B2D00040AAAAAA0202020000000000000000002A
+:10B2E00040AAAAAA0202020000000000000000001A
+:10B2F00040AAAAAA0202020000000000000000000A
+:10B3000040AAAAAA020202000000000000000000F9
+:10B3100054AAAAAA020202000000000000000000D5
+:10B3200000AAAAAA02020200000000000000000019
+:10B3300040AAAAAA020202000000000000000000C9
+:10B3400040AAAAAA020202000000000000000000B9
+:10B3500040AAAAAA020202000000000000000000A9
+:10B3600040AAAAAA02020200000000000000000099
+:10B3700040AAAAAA02020200000000000000000089
+:10B3800040AAAAAA02020200000000000000000079
+:10B3900040AAAAAA02020200000000000000000069
+:10B3A00040AAAAAA02020200000000000000000059
+:10B3B00040AAAAAA02020200000000000000000049
+:10B3C00040AAAAAA02020200000000000000000039
+:10B3D00040AAAAAA02020200000000000000000029
+:10B3E00040AAAAAA02020200000000000000000019
+:10B3F00040AAAAAA02020200000000000000000009
+:10B4000040AAAAAA020202000000000000000000F8
+:10B4100054AAAAAA020202000000000000000000D4
+:10B42000AAAAAAAA02020200000000000000005519
+:10B430002AAAAAAA02020200000000000000005589
+:10B440002AAAAAAA02020200000000000000005579
+:10B450002AAAAAAA02020200000000000000005569
+:10B460002AAAAAAA02020200000000000000005559
+:10B470002AAAAAAA02020200000000000000005549
+:10B480002AAAAAAA02020200000000000000005539
+:10B490002AAAAAAA02020200000000000000005529
+:10B4A0002AAAAAAA02020200000000000000005519
+:10B4B0002AAAAAAA02020200000000000000005509
+:10B4C0002AAAAAAA020202000000000000000055F9
+:10B4D0002AAAAAAA020202000000000000000055E9
+:10B4E0002AAAAAAA020202000000000000000055D9
+:10B4F0002AAAAAAA020202000000000000000055C9
+:10B500002AAAAAAA020202000000000000000055B8
+:10B5100002AAAAAA020202000000000000000055D0
+:10B52000AAAAAAAA02020202000000000000005516
+:10B530002AAAAAAA02020200000000000000005588
+:10B540002AAAAAAA02020200000000000000005578
+:10B550002AAAAAAA02020200000000000000005568
+:10B560002AAAAAAA02020200000000000000005558
+:10B570002AAAAAAA02020200000000000000005548
+:10B580002AAAAAAA02020200000000000000005538
+:10B590002AAAAAAA02020200000000000000005528
+:10B5A0002AAAAAAA02020200000000000000005518
+:10B5B0002AAAAAAA02020200000000000000005508
+:10B5C0002AAAAAAA020202000000000000000055F8
+:10B5D0002AAAAAAA020202000000000000000055E8
+:10B5E0002AAAAAAA020202000000000000000055D8
+:10B5F0002AAAAAAA020202000000000000000055C8
+:10B600002AAAAAAA020202000000000000000055B7
+:10B6100002AAAAAA020202000000000000000055CF
+:10B6200000AAAAAAAA02020202000000000000006A
+:10B6300040AAAAAAAA02020200000000000000001C
+:10B6400040AAAAAAAA02020200000000000000000C
+:10B6500040AAAAAAAA0202020000000000000000FC
+:10B6600040AAAAAAAA0202020000000000000000EC
+:10B6700040AAAAAAAA0202020000000000000000DC
+:10B6800040AAAAAAAA0202020000000000000000CC
+:10B6900040AAAAAAAA0202020000000000000000BC
+:10B6A00040AAAAAAAA0202020000000000000000AC
+:10B6B00040AAAAAAAA02020200000000000000009C
+:10B6C00040AAAAAAAA02020200000000000000008C
+:10B6D00040AAAAAAAA02020200000000000000007C
+:10B6E00040AAAAAAAA02020200000000000000006C
+:10B6F00040AAAAAAAA02020200000000000000005C
+:10B7000040AAAAAAAA02020200000000000000004B
+:10B7100055AAAAAAAA020202000000000000000026
+:10B7200000AAAAAAAA020202020200000000000067
+:10B7300040AAAAAAAA020202020000000000000019
+:10B7400040AAAAAAAA020202020000000000000009
+:10B7500040AAAAAAAA0202020200000000000000F9
+:10B7600040AAAAAAAA0202020200000000000000E9
+:10B7700040AAAAAAAA0202020200000000000000D9
+:10B7800040AAAAAAAA0202020200000000000000C9
+:10B7900040AAAAAAAA0202020200000000000000B9
+:10B7A00040AAAAAAAA0202020200000000000000A9
+:10B7B00040AAAAAAAA020202020000000000000099
+:10B7C00040AAAAAAAA020202020000000000000089
+:10B7D00040AAAAAAAA020202020000000000000079
+:10B7E00040AAAAAAAA020202020000000000000069
+:10B7F00040AAAAAAAA020202020000000000000059
+:10B8000040AAAAAAAA020202020000000000000048
+:10B8100055AAAAAAAA020202020000000000000023
+:10B82000AAAAAAAAAAAA02020202020000000055BD
+:10B830002AAAAAAAAAAA020202020000000000552F
+:10B840002AAAAAAAAAAA020202020000000000551F
+:10B850002AAAAAAAAAAA020202020000000000550F
+:10B860002AAAAAAAAAAA02020202000000000055FF
+:10B870002AAAAAAAAAAA02020202000000000055EF
+:10B880002AAAAAAAAAAA02020202000000000055DF
+:10B890002AAAAAAAAAAA02020202000000000055CF
+:10B8A0002AAAAAAAAAAA02020202000000000055BF
+:10B8B0002AAAAAAAAAAA02020202000000000055AF
+:10B8C0002AAAAAAAAAAA020202020000000000559F
+:10B8D0002AAAAAAAAAAA020202020000000000558F
+:10B8E0002AAAAAAAAAAA020202020000000000557F
+:10B8F0002AAAAAAAAAAA020202020000000000556F
+:10B900002AAAAAAAAAAA020202020000000000555E
+:10B9100000AAAAAAAAAA0202020200000000005578
+:10B92000AAAAAAAAAAAA02020202020200000055BA
+:10B930002AAAAAAAAAAA020202020200000000552C
+:10B940002AAAAAAAAAAA020202020200000000551C
+:10B950002AAAAAAAAAAA020202020200000000550C
+:10B960002AAAAAAAAAAA02020202020000000055FC
+:10B970002AAAAAAAAAAA02020202020000000055EC
+:10B980002AAAAAAAAAAA02020202020000000055DC
+:10B990002AAAAAAAAAAA02020202020000000055CC
+:10B9A0002AAAAAAAAAAA02020202020000000055BC
+:10B9B0002AAAAAAAAAAA02020202020000000055AC
+:10B9C0002AAAAAAAAAAA020202020200000000559C
+:10B9D0002AAAAAAAAAAA020202020200000000558C
+:10B9E0002AAAAAAAAAAA020202020200000000557C
+:10B9F0002AAAAAAAAAAA020202020200000000556C
+:10BA00002AAAAAAAAAAA020202020200000000555B
+:10BA100000AAAAAAAAAA0202020202000000005575
+:10BA200000AAAAAAAAAAAA0202020202020000000E
+:10BA300040AAAAAAAAAAAA020202020200000000C0
+:10BA400040AAAAAAAAAAAA020202020200000000B0
+:10BA500040AAAAAAAAAAAA020202020200000000A0
+:10BA600040AAAAAAAAAAAA02020202020000000090
+:10BA700040AAAAAAAAAAAA02020202020000000080
+:10BA800040AAAAAAAAAAAA02020202020000000070
+:10BA900040AAAAAAAAAAAA02020202020000000060
+:10BAA00040AAAAAAAAAAAA02020202020000000050
+:10BAB00040AAAAAAAAAAAA02020202020000000040
+:10BAC00040AAAAAAAAAAAA02020202020000000030
+:10BAD00040AAAAAAAAAAAA02020202020000000020
+:10BAE00040AAAAAAAAAAAA02020202020000000010
+:10BAF00040AAAAAAAAAAAA02020202020000000000
+:10BB000040AAAAAAAAAAAA020202020200000000EF
+:10BB100055AAAAAAAAAAAA020202020200000000CA
+:10BB200000AAAAAAAAAAAAAA020202020202000063
+:10BB300040AAAAAAAAAAAAAA020202020202000013
+:10BB400040AAAAAAAAAAAAAA020202020202000003
+:10BB500040AAAAAAAAAAAAAA0202020202020000F3
+:10BB600040AAAAAAAAAAAAAA0202020202020000E3
+:10BB700040AAAAAAAAAAAAAA0202020202020000D3
+:10BB800040AAAAAAAAAAAAAA0202020202020000C3
+:10BB900040AAAAAAAAAAAAAA0202020202020000B3
+:10BBA00040AAAAAAAAAAAAAA0202020202020000A3
+:10BBB00040AAAAAAAAAAAAAA020202020202000093
+:10BBC00040AAAAAAAAAAAAAA020202020202000083
+:10BBD00040AAAAAAAAAAAAAA020202020202000073
+:10BBE00040AAAAAAAAAAAAAA020202020202000063
+:10BBF00040AAAAAAAAAAAAAA020202020202000053
+:10BC000040AAAAAAAAAAAAAA020202020202000042
+:10BC100055AAAAAAAAAAAAAA02020202020200001D
+:10BC2000AAA9A9A9A9A9A9A9A901010101010155C7
+:10BC30002AA9A9A9A9A9A9A9A90101010101015537
+:10BC40002AA9A9A9A9A9A9A9A90101010101015527
+:10BC50002AA9A9A9A9A9A9A9A90101010101015517
+:10BC60002AA9A9A9A9A9A9A9A90101010101015507
+:10BC70002AA9A9A9A9A9A9A9A901010101010155F7
+:10BC80002AA9A9A9A9A9A9A9A901010101010155E7
+:10BC90002AA9A9A9A9A9A9A9A901010101010155D7
+:10BCA0002AA9A9A9A9A9A9A9A901010101010155C7
+:10BCB0002AA9A9A9A9A9A9A9A901010101010155B7
+:10BCC0002AA9A9A9A9A9A9A9A901010101010155A7
+:10BCD0002AA9A9A9A9A9A9A9A90101010101015597
+:10BCE0002AA9A9A9A9A9A9A9A90101010101015587
+:10BCF0002AA9A9A9A9A9A9A9A90101010101015577
+:10BD00002AA9A9A9A9A9A9A9A90101010101015566
+:10BD100000A9A9A9A9A9A9A9A90101010101015580
+:10BD2000A8A9A9A9A9A9A9A9A9A901010101015421
+:10BD300028A9A9A9A9A9A9A9A9A901010101015491
+:10BD400028A9A9A9A9A9A9A9A9A901010101015481
+:10BD500028A9A9A9A9A9A9A9A9A901010101015471
+:10BD600028A9A9A9A9A9A9A9A9A901010101015461
+:10BD700028A9A9A9A9A9A9A9A9A901010101015451
+:10BD800028A9A9A9A9A9A9A9A9A901010101015441
+:10BD900028A9A9A9A9A9A9A9A9A901010101015431
+:10BDA00028A9A9A9A9A9A9A9A9A901010101015421
+:10BDB00028A9A9A9A9A9A9A9A9A901010101015411
+:10BDC00028A9A9A9A9A9A9A9A9A901010101015401
+:10BDD00028A9A9A9A9A9A9A9A9A9010101010154F1
+:10BDE00028A9A9A9A9A9A9A9A9A9010101010154E1
+:10BDF00028A9A9A9A9A9A9A9A9A9010101010154D1
+:10BE000028A9A9A9A9A9A9A9A9A9010101010154C0
+:10BE100001A9A9A9A9A9A9A9A9A9010101010154D7
+:10BE200056A9A9A9A9A9A9A9A9A9010101010101C5
+:10BE300056A9A9A9A9A9A9A9A9A9010101010101B5
+:10BE400056A9A9A9A9A9A9A9A9A9010101010101A5
+:10BE500056A9A9A9A9A9A9A9A9A901010101010195
+:10BE600056A9A9A9A9A9A9A9A9A901010101010185
+:10BE700056A9A9A9A9A9A9A9A9A901010101010175
+:10BE800056A9A9A9A9A9A9A9A9A901010101010165
+:10BE900056A9A9A9A9A9A9A9A9A901010101010155
+:10BEA00056A9A9A9A9A9A9A9A9A901010101010145
+:10BEB00056A9A9A9A9A9A9A9A9A901010101010135
+:10BEC00056A9A9A9A9A9A9A9A9A901010101010125
+:10BED00056A9A9A9A9A9A9A9A9A901010101010115
+:10BEE00056A9A9A9A9A9A9A9A9A901010101010105
+:10BEF00056A9A9A9A9A9A9A9A9A9010101010101F5
+:10BF000056A9A9A9A9A9A9A9A9A9010101010101E4
+:10BF100054A9A9A9A9A9A9A9A9A9010101010101D6
+:10BF200055A9A9A9A9A9A9A9A9A9A901010101001E
+:10BF300000A9A9A9A9A9A9A9A9A9A9A90101015566
+:10BF400001A9A9A9A9A9A9A9A9A9A9A9A9010154AE
+:10BF500001A9A9A9A9A9A9A9A9A9A9A9A90101549E
+:10BF600001A9A9A9A9A9A9A9A9A9A9A9A90101548E
+:10BF700001A9A9A9A9A9A9A9A9A9A9A9A90101547E
+:10BF800001A9A9A9A9A9A9A9A9A9A9A9A90101546E
+:10BF900001A9A9A9A9A9A9A9A9A9A9A9A90101545E
+:10BFA00001A9A9A9A9A9A9A9A9A9A9A9A90101544E
+:10BFB00001A9A9A9A9A9A9A9A9A9A9A9A90101543E
+:10BFC00001A9A9A9A9A9A9A9A9A9A9A9A90101542E
+:10BFD00001A9A9A9A9A9A9A9A9A9A9A9A90101541E
+:10BFE00001A9A9A9A9A9A9A9A9A9A9A9A90101540E
+:10BFF00001A9A9A9A9A9A9A9A9A9A9A9A9010154FE
+:10C0000001A9A9A9A9A9A9A9A9A9A9A9A9010154ED
+:10C0100001A9A9A9A9A9A9A9A9A9A9A9A9010154DD
+:10C0200001A9A9A9A9A9A9A9A9A9A9A9A9010154CD
+:10C0300001A9A9A9A9A9A9A9A9A9A9A9A9010156BB
+:10C0400054A9A9A9A9A9A9A9A9A9A9A9A9A9010105
+:10C0500054A9A9A9A9A9A9A9A9A9A9A9A9A90101F5
+:10C0600054A9A9A9A9A9A9A9A9A9A9A9A9A90101E5
+:10C0700054A9A9A9A9A9A9A9A9A9A9A9A9A90101D5
+:10C0800054A9A9A9A9A9A9A9A9A9A9A9A9A90101C5
+:10C0900054A9A9A9A9A9A9A9A9A9A9A9A9A90101B5
+:10C0A00054A9A9A9A9A9A9A9A9A9A9A9A9A90101A5
+:10C0B00054A9A9A9A9A9A9A9A9A9A9A9A9A9010195
+:10C0C00054A9A9A9A9A9A9A9A9A9A9A9A9A9010185
+:10C0D00054A9A9A9A9A9A9A9A9A9A9A9A9A9010175
+:10C0E00054A9A9A9A9A9A9A9A9A9A9A9A9A9010165
+:10C0F00054A9A9A9A9A9A9A9A9A9A9A9A9A9010155
+:10C1000054A9A9A9A9A9A9A9A9A9A9A9A9A9010144
+:10C1100054A9A9A9A9A9A9A9A9A9A9A9A9A9010134
+:10C1200054A9A9A9A9A9A9A9A9A9A9A9A9A9010124
+:10C1300054A9A9A9A9A9A9A9A9A9A9A9A9A9010213
+:10C1400001555555565656565555555555555554F0
+:10C1500001555555555555555555555555555554E4
+:10C1600001555555555555555555555555555554D4
+:10C1700001555555555555555555555555555554C4
+:10C1800001555555555555555555555555555554B4
+:10C1900001555555555555555555555555555554A4
+:10C1A0000155555555555555555555555555555494
+:10C1B0000155555555555555555555555555555484
+:10C1C0000155555555555555555555555555555474
+:10C1D0000155555555555555555555555555555464
+:10C1E0000155555555555555555555555555555454
+:10C1F0000155555555555555555555555555555444
+:10C200000155555555555555555555555555555433
+:10C210000155555555555555555555555555555423
+:10C220000155555555555555555555555555555413
+:10C230000155555555555555555555555555555601
+:10C240005455555656565656565555555555555698
+:10C25000545555555555555555555555555555568E
+:10C26000545555555555555555555555555555567E
+:10C27000545555555555555555555555555555566E
+:10C28000545555555555555555555555555555565E
+:10C29000545555555555555555555555555555564E
+:10C2A000545555555555555555555555555555563E
+:10C2B000545555555555555555555555555555562E
+:10C2C000545555555555555555555555555555561E
+:10C2D000545555555555555555555555555555560E
+:10C2E00054555555555555555555555555555556FE
+:10C2F00054555555555555555555555555555556EE
+:10C3000054555555555555555555555555555556DD
+:10C3100054555555555555555555555555555556CD
+:10C3200054555555555555555555555555555556BD
+:10C3300054555555555555555555555555555554AF
+:10C34000015555565656565656555656555555AA94
+:10C35000015555555656565655555555555555AA88
+:10C36000015555555656565655555555555555AA78
+:10C37000015555555656565655555555555555AA68
+:10C38000015555555656565655555555555555AA58
+:10C39000015555555656565655555555555555AA48
+:10C3A000015555555656565655555555555555AA38
+:10C3B000015555555656565655555555555555AA28
+:10C3C000015555555656565655555555555555AA18
+:10C3D000015555555656565655555555555555AA08
+:10C3E000015555555656565655555555555555AAF8
+:10C3F000015555555656565655555555555555AAE8
+:10C40000015555555656565655555555555555AAD7
+:10C41000015555555656565655555555555555AAC7
+:10C42000015555555656565655555555555555AAB7
+:10C43000015555555555555555555555555555AAAB
+:10C44000545555565656565656565656565656A83E
+:10C45000545656565656565656565656565656A82C
+:10C46000545656565656565656565656565656A81C
+:10C47000545656565656565656565656565656A80C
+:10C48000545656565656565656565656565656A8FC
+:10C49000545656565656565656565656565656A8EC
+:10C4A000545656565656565656565656565656A8DC
+:10C4B000545656565656565656565656565656A8CC
+:10C4C000545656565656565656565656565656A8BC
+:10C4D000545656565656565656565656565656A8AC
+:10C4E000545656565656565656565656565656A89C
+:10C4F000545656565656565656565656565656A88C
+:10C50000545656565656565656565656565656A87B
+:10C51000545656565656565656565656565656A86B
+:10C52000545656565656565656565656565656A85B
+:10C53000545555565656565654545656565656A851
+:10C540000156565656565656565656565656560234
+:10C550000156565656565656565656565656560224
+:10C560000156565656565656565656565656560214
+:10C570000156565656565656565656565656560204
+:10C5800001565656565656565656565656565602F4
+:10C5900001565656565656565656565656565602E4
+:10C5A00001565656565656565656565656565602D4
+:10C5B00001565656565656565656565656565602C4
+:10C5C00001565656565656565656565656565602B4
+:10C5D00001565656565656565656565656565602A4
+:10C5E0000156565656565656565656565656560294
+:10C5F0000156565656565656565656565656560284
+:10C600000156565656565656565656565656560273
+:10C610000156565656565656565656565656560263
+:10C620000156565656565656565656565656560253
+:10C630000155545656565656565656565656560246
+:10C64000545656565656565656565656565656A83A
+:10C650000156565656565656565656565656560223
+:10C66000545656565656565656565656565656A81A
+:10C6700001AAAAAAAAAAAAAAAAAAAAAAAAAAAA026B
+:10C6800054AAAAAAAAAAAAAAAAAAAAAAAAAAAAA862
+:10C6900001AAAAAAAAAAAAAAAAAAAAAAAAAAAA024B
+:10C6A00054AAAAAAAAAAAAAAAAAAAAAAAAAAAAA842
+:10C6B00001AAAAAAAAAAAAAAAAAAAAAAAAAAAA022B
+:10C6C00001AAAAAAAAAAAAAAAAAAAAAAAAAAAA021B
+:10C6D00001AAAAAAAAAAAAAAAAAAAAAAAAAAAA020B
+:10C6E00001AAAAAAAAAAAAAAAAAAAAAAAAAAAA02FB
+:10C6F00001AAAAAAAAAAAAAAAAAAAAAAAAAAAA02EB
+:10C7000001AAAAAAAAAAAAAAAAAAAAAAAAAAAA02DA
+:10C7100001AAAAAAAAAAAAAAAAAAAAAAAAAAAA02CA
+:10C7200001AAAAAAAAAAAAAAAAAAAAAAAAAAAA02BA
+:10C7300001AAAAAAAAAAAAAAAAAAAAAAAAAAAA02AA
+:10C7400001AAAAAAAAAAAAAAAAAAAAAAAAAAAA029A
+:10C7500001AAAAAAAAAAAAAAAAAAAAAAAAAAAA028A
+:10C7600001AAAAAAAAAAAAAAAAAAAAAAAAAAAA027A
+:10C7700001AAAAAAAAAAAAAAAAAAAAAAAAAAAA026A
+:10C7800001AAAAAAAAAAAAAAAAAAAAAAAAAAAA025A
+:10C7900001AAAAAAAAAAAAAAAAAAAAAAAAAAAA024A
+:10C7A00001AAAAAAAAAAAAAAAAAAAAAAAAAAAA013B
+:10C7B00054A9A9A9A9A9A9A9A9A9A9A9A9A9A8A840
+:10C7C00000A9A9A9A9A9A9A9A9A9A9A9A9A8A8002D
+:10C7D00055A9A9A9A9A9A9A9A9A9A9A9A8A8A8AA1F
+:10C7E00001555555555555555555555454540002F8
+:10C7F000545555555555555555555454540000A844
+:10C80000545555555555555555545454000000A888
+:10C8100001555555555555555454540000000002C6
+:10C8200001555555555555555454540000000002B6
+:10C8300001555555555555555454540000000002A6
+:10C840000155555555555555545454000000000296
+:10C850000155555555555555545454000000000286
+:10C860000155555555555555545454000000000276
+:10C870000155555555555555545454000000000266
+:10C880000155555555555555545454000000000256
+:10C890000155555555555555545454000000000246
+:10C8A0000155555555555555545454000000000236
+:10C8B0000155555555555555545454000000000226
+:10C8C0000155555555555555545454000000000216
+:10C8D0000155555555555555545454000000000206
+:10C8E00001555555555555555454540000000002F6
+:10C8F00001555555555555555454540000000002E6
+:10C9000001555555555555555454540000000000D7
+:10C91000015555555555555454540000000000021A
+:10C92000015555555555555454540000000000020A
+:10C9300001555555555555545454000000000002FA
+:10C9400001555555555555545454000000000002EA
+:10C9500001555555555555545454000000000002DA
+:10C9600001555555555555545454000000000002CA
+:10C9700001555555555555545454000000000002BA
+:10C9800001555555555555545454000000000002AA
+:10C99000015555555555555454540000000000029A
+:10C9A000015555555555555454540000000000028A
+:10C9B000015555555555555454540000000000027A
+:10C9C000015555555555555454540000000000026A
+:10C9D000015555555555555454540000000000025A
+:10C9E000015555555555555454540000000000024A
+:10C9F000015555555555555454540000000000023A
+:10CA0000015555555555555454540000000000002B
+:10CA1000545555555555555454540000000000A820
+:10CA2000545555555555555454000000000000A864
+:10CA300001555555555554540000000000000002A2
+:10CA40000155555555555454000000000000000292
+:10CA50000155555555555454000000000000000282
+:10CA60000155555555555454000000000000000272
+:10CA70000155555555555454000000000000000262
+:10CA80000155555555555454000000000000000252
+:10CA90000155555555555454000000000000000242
+:10CAA0000155555555555454000000000000000232
+:10CAB0000155555555555454000000000000000222
+:10CAC0000155555555555454000000000000000212
+:10CAD0000155555555555454000000000000000202
+:10CAE00001555555555554540000000000000002F2
+:10CAF00001555555555554540000000000000002E2
+:10CB000001555555555554540000000000000002D1
+:10CB100001555555555554540000000000000002C1
+:10CB200001555555555554540000000000000000B3
+:10CB300001555555555554000000000000000002F5
+:10CB400001555555555554000000000000000002E5
+:10CB500001555555555554000000000000000002D5
+:10CB600001555555555554000000000000000002C5
+:10CB700001555555555554000000000000000002B5
+:10CB800001555555555554000000000000000002A5
+:10CB90000155555555555400000000000000000295
+:10CBA0000155555555555400000000000000000285
+:10CBB0000155555555555400000000000000000275
+:10CBC0000155555555555400000000000000000265
+:10CBD0000155555555555400000000000000000255
+:10CBE0000155555555555400000000000000000245
+:10CBF0000155555555555400000000000000000235
+:10CC00000155555555555400000000000000000224
+:10CC10000155555555555400000000000000000214
+:10CC20000155555555555400000000000000000006
+:10CC3000545555555554000000000000000000A850
+:10CC4000545555555554000000000000000000A840
+:10CC5000545555555554000000000000000000A830
+:10CC6000545555555554000000000000000000A820
+:10CC7000545555555554000000000000000000A810
+:10CC8000545555555554000000000000000000A800
+:10CC9000545555555554000000000000000000A8F0
+:10CCA000545555555554000000000000000000A8E0
+:10CCB000545555555554000000000000000000A8D0
+:10CCC000545555555554000000000000000000A8C0
+:10CCD000545555555554000000000000000000A8B0
+:10CCE000545555555554000000000000000000A8A0
+:10CCF000545555555554000000000000000000A890
+:10CD0000545555555554000000000000000000A87F
+:10CD1000545555555554000000000000000000A86F
+:10CD20005455555555540000000000000000000007
+:10CD3000545555555554000000000000000000A84F
+:10CD4000545555555554000000000000000000A83F
+:10CD5000545555555554000000000000000000A82F
+:10CD6000545555555554000000000000000000A81F
+:10CD7000545555555554000000000000000000A80F
+:10CD8000545555555554000000000000000000A8FF
+:10CD9000545555555554000000000000000000A8EF
+:10CDA000545555555554000000000000000000A8DF
+:10CDB000545555555554000000000000000000A8CF
+:10CDC000545555555554000000000000000000A8BF
+:10CDD000545555555554000000000000000000A8AF
+:10CDE000545555555554000000000000000000A89F
+:10CDF000545555555554000000000000000000A88F
+:10CE0000545555555554000000000000000000A87E
+:10CE1000545555555554000000000000000000A86E
+:10CE20005455555555540000000000000000000006
+:10CE3000015555555400000000000000000000019D
+:10CE4000015555555400000000000000000000018D
+:10CE5000015555555400000000000000000000017D
+:10CE6000015555555400000000000000000000016D
+:10CE7000015555555400000000000000000000015D
+:10CE8000015555555400000000000000000000014D
+:10CE9000015555555400000000000000000000013D
+:10CEA000015555555400000000000000000000012D
+:10CEB000015555555400000000000000000000011D
+:10CEC000015555555400000000000000000000010D
+:10CED00001555555540000000000000000000001FD
+:10CEE00001555555540000000000000000000001ED
+:10CEF00001555555540000000000000000000001DD
+:10CF000001555555540000000000000000000001CC
+:10CF100001555555540000000000000000000001BC
+:10CF200001555555540000000000000000000000AD
+:10CF3000015555555400000000000000000000019C
+:10CF4000015555555400000000000000000000018C
+:10CF5000015555555400000000000000000000017C
+:10CF6000015555555400000000000000000000016C
+:10CF7000015555555400000000000000000000015C
+:10CF8000015555555400000000000000000000014C
+:10CF9000015555555400000000000000000000013C
+:10CFA000015555555400000000000000000000012C
+:10CFB000015555555400000000000000000000011C
+:10CFC000015555555400000000000000000000010C
+:10CFD00001555555540000000000000000000001FC
+:10CFE00001555555540000000000000000000001EC
+:10CFF00001555555540000000000000000000001DC
+:10D0000001555555540000000000000000000001CB
+:10D0100001555555540000000000000000000001BB
+:10D0200001555555540000000000000000000000AC
+:10D03000545555540000000000000000000000A8F6
+:10D04000545555540000000000000000000000A8E6
+:10D05000545555540000000000000000000000A8D6
+:10D06000545555540000000000000000000000A8C6
+:10D07000545555540000000000000000000000A8B6
+:10D08000545555540000000000000000000000A8A6
+:10D09000545555540000000000000000000000A896
+:10D0A000545555540000000000000000000000A886
+:10D0B000545555540000000000000000000000A876
+:10D0C000545555540000000000000000000000A866
+:10D0D000545555540000000000000000000000A856
+:10D0E000545555540000000000000000000000A846
+:10D0F000545555540000000000000000000000A836
+:10D10000545555540000000000000000000000A825
+:10D11000545555540000000000000000000000A815
+:10D1200054555554000000000000000000000000AD
+:10D13000545555540000000000000000000000A8F5
+:10D14000545555540000000000000000000000A8E5
+:10D15000545555540000000000000000000000A8D5
+:10D16000545555540000000000000000000000A8C5
+:10D17000545555540000000000000000000000A8B5
+:10D18000545555540000000000000000000000A8A5
+:10D19000545555540000000000000000000000A895
+:10D1A000545555540000000000000000000000A885
+:10D1B000545555540000000000000000000000A875
+:10D1C000545555540000000000000000000000A865
+:10D1D000545555540000000000000000000000A855
+:10D1E000545555540000000000000000000000A845
+:10D1F000545555540000000000000000000000A835
+:10D20000545555540000000000000000000000A824
+:10D21000545555540000000000000000000000A814
+:10D2200054555554000000000000000000000000AC
+:10D2300001555454000000000000000000000002EE
+:10D2400001555454000000000000000000000002DE
+:10D2500001555454000000000000000000000002CE
+:10D2600001555454000000000000000000000002BE
+:10D2700001555454000000000000000000000002AE
+:10D28000015554540000000000000000000000029E
+:10D29000015554540000000000000000000000028E
+:10D2A000015554540000000000000000000000027E
+:10D2B000015554540000000000000000000000026E
+:10D2C000015554540000000000000000000000025E
+:10D2D000015554540000000000000000000000024E
+:10D2E000015554540000000000000000000000023E
+:10D2F000015554540000000000000000000000022E
+:10D30000015554540000000000000000000000021D
+:10D31000015554540000000000000000000000020D
+:10D3200001555454000000000000000000000000FF
+:10D3300001555454000000000000000000000002ED
+:10D3400001555454000000000000000000000002DD
+:10D3500001555454000000000000000000000002CD
+:10D3600001555454000000000000000000000002BD
+:10D3700001555454000000000000000000000002AD
+:10D38000015554540000000000000000000000029D
+:10D39000015554540000000000000000000000028D
+:10D3A000015554540000000000000000000000027D
+:10D3B000015554540000000000000000000000026D
+:10D3C000015554540000000000000000000000025D
+:10D3D000015554540000000000000000000000024D
+:10D3E000015554540000000000000000000000023D
+:10D3F000015554540000000000000000000000022D
+:10D40000015554540000000000000000000000021C
+:10D41000015554540000000000000000000000020C
+:10D4200001555454000000000000000000000000FE
+:10D43000545454000000000000000000000000A848
+:10D44000545454000000000000000000000000A838
+:10D45000545454000000000000000000000000A828
+:10D46000545454000000000000000000000000A818
+:10D47000545454000000000000000000000000A808
+:10D48000545454000000000000000000000000A8F8
+:10D49000545454000000000000000000000000A8E8
+:10D4A000545454000000000000000000000000A8D8
+:10D4B000545454000000000000000000000000A8C8
+:10D4C000545454000000000000000000000000A8B8
+:10D4D000545454000000000000000000000000A8A8
+:10D4E000545454000000000000000000000000A898
+:10D4F000545454000000000000000000000000A888
+:10D50000545454000000000000000000000000A877
+:10D51000545454000000000000000000000000A867
+:10D5200054545400000000000000000000000000FF
+:10D53000545400000000000000000000000000A89B
+:10D54000545400000000000000000000000000A88B
+:10D55000545400000000000000000000000000A87B
+:10D56000545400000000000000000000000000A86B
+:10D57000545400000000000000000000000000A85B
+:10D58000545400000000000000000000000000A84B
+:10D59000545400000000000000000000000000A83B
+:10D5A000545400000000000000000000000000A82B
+:10D5B000545400000000000000000000000000A81B
+:10D5C000545400000000000000000000000000A80B
+:10D5D000545400000000000000000000000000A8FB
+:10D5E000545400000000000000000000000000A8EB
+:10D5F000545400000000000000000000000000A8DB
+:10D60000545400000000000000000000000000A8CA
+:10D61000545400000000000000000000000000A8BA
+:10D620005454000000000000000000000000000052
+:10D6300000000000000000000000000000000000EA
+:10D64000FCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFC1A
+:10D6500000000000000000000000000000000000CA
+:10D6600000000000000000000000000000000000BA
+:10D6700000000000000000000000000000000000AA
+:10D68000000000000000000000000000000000009A
+:10D69000000000000000000000000000000000008A
+:10D6A000000000000000000000000000000000007A
+:10D6B000000000000000000000000000000000006A
+:10D6C000000000000000000000000000000000005A
+:10D6D000000000000000000000000000000000004A
+:10D6E000000000000000000000000000000000003A
+:10D6F000000000000000000000000000000000002A
+:10D70000AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA79
+:10D71000AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA69
+:10D72000AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA59
+:10D73000AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA49
+:10D74000AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA39
+:10D75000AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA29
+:10D76000AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA19
+:10D77000AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA09
+:10D780005555555555555555AAAAAAAAAAAAAAAAA1
+:10D790005555555555555555AAAAAAAAAAAAAAAA91
+:10D7A0005555555555555555AAAAAAAAAAAAAAAA81
+:10D7B0005555555555555555AAAAAAAAAAAAAAAA71
+:10D7C0005555555555555555AAAAAAAAAAAAAAAA61
+:10D7D0005555555555555555AAAAAAAAAAAAAAAA51
+:10D7E0005555555555555555AAAAAAAAAAAAAAAA41
+:10D7F0005555555555555555AAAAAAAAAAAAAAAA31
+:10D800000000000000000000000000000000000018
+:10D810000000000000000000000000000000000008
+:10D8200000000000000000000000000000000000F8
+:10D8300000000000000000000000000000000000E8
+:10D8400000000000000000000000000000000000D8
+:10D8500000000000000000000000000000000000C8
+:10D8600000000000000000000000000000000000B8
+:10D8700000000000000000000000000000000000A8
+:10D8800055555555555555550000000000000000F0
+:10D8900055555555555555550000000000000000E0
+:10D8A00055555555555555550000000000000000D0
+:10D8B00055555555555555550000000000000000C0
+:10D8C00055555555555555550000000000000000B0
+:10D8D00055555555555555550000000000000000A0
+:10D8E0005555555555555555000000000000000090
+:10D8F0005555555555555555000000000000000080
+:10D900005555555555555555AAAAAAAAAAAAAAAA1F
+:10D910005555555555555555AAAAAAAAAAAAAAAA0F
+:10D920005555555555555555AAAAAAAAAAAAAAAAFF
+:10D930005555555555555555AAAAAAAAAAAAAAAAEF
+:10D940005555555555555555AAAAAAAAAAAAAAAADF
+:10D950005555555555555555AAAAAAAAAAAAAAAACF
+:10D960005555555555555555AAAAAAAAAAAAAAAABF
+:10D970005555555555555555AAAAAAAAAAAAAAAAAF
+:10D98000AAAAAAAAAAAAAAAA55555555555555559F
+:10D99000AAAAAAAAAAAAAAAA55555555555555558F
+:10D9A000AAAAAAAAAAAAAAAA55555555555555557F
+:10D9B000AAAAAAAAAAAAAAAA55555555555555556F
+:10D9C000AAAAAAAAAAAAAAAA55555555555555555F
+:10D9D000AAAAAAAAAAAAAAAA55555555555555554F
+:10D9E000AAAAAAAAAAAAAAAA55555555555555553F
+:10D9F000AAAAAAAAAAAAAAAA55555555555555552F
+:10DA00005555555555555555AAAAAAAAAAAAAAAA1E
+:10DA10005555555555555555AAAAAAAAAAAAAAAA0E
+:10DA20005555555555555555AAAAAAAAAAAAAAAAFE
+:10DA30005555555555555555AAAAAAAAAAAAAAAAEE
+:10DA40005555555555555555AAAAAAAAAAAAAAAADE
+:10DA50005555555555555555AAAAAAAAAAAAAAAACE
+:10DA60005555555555555555AAAAAAAAAAAAAAAABE
+:10DA70005555555555555555AAAAAAAAAAAAAAAAAE
+:10DA8000AAAAAAAAAAAAAAAA55555555555555559E
+:10DA9000AAAAAAAAAAAAAAAA55555555555555558E
+:10DAA000AAAAAAAAAAAAAAAA55555555555555557E
+:10DAB000AAAAAAAAAAAAAAAA55555555555555556E
+:10DAC000AAAAAAAAAAAAAAAA55555555555555555E
+:10DAD000AAAAAAAAAAAAAAAA55555555555555554E
+:10DAE000AAAAAAAAAAAAAAAA55555555555555553E
+:10DAF000AAAAAAAAAAAAAAAA55555555555555552E
+:10DB00005555555555555555AAAAAAAAAAAAAAAA1D
+:10DB10005555555555555555AAAAAAAAAAAAAAAA0D
+:10DB20005555555555555555AAAAAAAAAAAAAAAAFD
+:10DB30005555555555555555AAAAAAAAAAAAAAAAED
+:10DB40005555555555555555AAAAAAAAAAAAAAAADD
+:10DB50005555555555555555AAAAAAAAAAAAAAAACD
+:10DB60005555555555555555AAAAAAAAAAAAAAAABD
+:10DB70005555555555555555AAAAAAAAAAAAAAAAAD
+:10DB8000AAAAAAAAAAAAAAAA55555555555555559D
+:10DB9000AAAAAAAAAAAAAAAA55555555555555558D
+:10DBA000AAAAAAAAAAAAAAAA55555555555555557D
+:10DBB000AAAAAAAAAAAAAAAA55555555555555556D
+:10DBC000AAAAAAAAAAAAAAAA55555555555555555D
+:10DBD000AAAAAAAAAAAAAAAA55555555555555554D
+:10DBE000AAAAAAAAAAAAAAAA55555555555555553D
+:10DBF000AAAAAAAAAAAAAAAA55555555555555552D
+:10DC00005555555555555555AAAAAAAAAAAAAAAA1C
+:10DC10005555555555555555AAAAAAAAAAAAAAAA0C
+:10DC20005555555555555555AAAAAAAAAAAAAAAAFC
+:10DC30005555555555555555AAAAAAAAAAAAAAAAEC
+:10DC40005555555555555555AAAAAAAAAAAAAAAADC
+:10DC50005555555555555555AAAAAAAAAAAAAAAACC
+:10DC60005555555555555555AAAAAAAAAAAAAAAABC
+:10DC70005555555555555555AAAAAAAAAAAAAAAAAC
+:10DC8000AAAAAAAAAAAAAAAA55555555555555559C
+:10DC9000AAAAAAAAAAAAAAAA55555555555555558C
+:10DCA000AAAAAAAAAAAAAAAA55555555555555557C
+:10DCB000AAAAAAAAAAAAAAAA55555555555555556C
+:10DCC000AAAAAAAAAAAAAAAA55555555555555555C
+:10DCD000AAAAAAAAAAAAAAAA55555555555555554C
+:10DCE000AAAAAAAAAAAAAAAA55555555555555553C
+:10DCF000AAAAAAAAAAAAAAAA55555555555555552C
+:10DD00005555555555555555AAAAAAAAAAAAAAAA1B
+:10DD10005555555555555555AAAAAAAAAAAAAAAA0B
+:10DD20005555555555555555AAAAAAAAAAAAAAAAFB
+:10DD30005555555555555555AAAAAAAAAAAAAAAAEB
+:10DD40005555555555555555AAAAAAAAAAAAAAAADB
+:10DD50005555555555555555AAAAAAAAAAAAAAAACB
+:10DD60005555555555555555AAAAAAAAAAAAAAAABB
+:10DD70005555555555555555AAAAAAAAAAAAAAAAAB
+:10DD8000AAAAAAAAAAAAAAAA55555555555555559B
+:10DD9000AAAAAAAAAAAAAAAA55555555555555558B
+:10DDA000AAAAAAAAAAAAAAAA55555555555555557B
+:10DDB000AAAAAAAAAAAAAAAA55555555555555556B
+:10DDC000AAAAAAAAAAAAAAAA55555555555555555B
+:10DDD000AAAAAAAAAAAAAAAA55555555555555554B
+:10DDE000AAAAAAAAAAAAAAAA55555555555555553B
+:10DDF000AAAAAAAAAAAAAAAA55555555555555552B
+:10DE00005555555555555555AAAAAAAAAAAAAAAA1A
+:10DE10005555555555555555AAAAAAAAAAAAAAAA0A
+:10DE20005555555555555555AAAAAAAAAAAAAAAAFA
+:10DE30005555555555555555AAAAAAAAAAAAAAAAEA
+:10DE40005555555555555555AAAAAAAAAAAAAAAADA
+:10DE50005555555555555555AAAAAAAAAAAAAAAACA
+:10DE60005555555555555555AAAAAAAAAAAAAAAABA
+:10DE70005555555555555555AAAAAAAAAAAAAAAAAA
+:10DE8000AAAAAAAAAAAAAAAA55555555555555559A
+:10DE9000AAAAAAAAAAAAAAAA55555555555555558A
+:10DEA000AAAAAAAAAAAAAAAA55555555555555557A
+:10DEB000AAAAAAAAAAAAAAAA55555555555555556A
+:10DEC000AAAAAAAAAAAAAAAA55555555555555555A
+:10DED000AAAAAAAAAAAAAAAA55555555555555554A
+:10DEE000AAAAAAAAAAAAAAAA55555555555555553A
+:10DEF000AAAAAAAAAAAAAAAA55555555555555552A
+:10DF00005454545454545454A8A8A8A8A8A8A8A831
+:10DF10005454545454545454A8A8A8A8A8A8A8A821
+:10DF20005454545454545454A8A8A8A8A8A8A8A811
+:10DF30005454545454545454A8A8A8A8A8A8A8A801
+:10DF40005454545454545454A8A8A8A8A8A8A8A8F1
+:10DF50005454545454545454A8A8A8A8A8A8A8A8E1
+:10DF60005454545454545454A8A8A8A8A8A8A8A8D1
+:10DF70005454545454545454A8A8A8A8A8A8A8A8C1
+:10DF8000A8A8A8A8A8A8A8A85454545454545454B1
+:10DF9000A8A8A8A8A8A8A8A85454545454545454A1
+:10DFA000A8A8A8A8A8A8A8A8545454545454545491
+:10DFB000A8A8A8A8A8A8A8A8545454545454545481
+:10DFC000A8A8A8A8A8A8A8A8545454545454545471
+:10DFD000A8A8A8A8A8A8A8A8545454545454545461
+:10DFE000A8A8A8A8A8A8A8A8545454545454545451
+:10DFF000A8A8A8A8A8A8A8A8545454545454545441
+:10E000005656565656565656A9A9A9A9A9A9A9A918
+:10E010005656565656565656A9A9A9A9A9A9A9A908
+:10E020005656565656565656A9A9A9A9A9A9A9A9F8
+:10E030005656565656565656A9A9A9A9A9A9A9A9E8
+:10E040005656565656565656A9A9A9A9A9A9A9A9D8
+:10E050005656565656565656A9A9A9A9A9A9A9A9C8
+:10E060005656565656565656A9A9A9A9A9A9A9A9B8
+:10E070005656565656565656A9A9A9A9A9A9A9A9A8
+:10E08000AAAAAAAAAAAAAAAA565656565656565690
+:10E09000AAAAAAAAAAAAAAAA565656565656565680
+:10E0A000AAAAAAAAAAAAAAAA565656565656565670
+:10E0B000AAAAAAAAAAAAAAAA565656565656565660
+:10E0C000AAAAAAAAAAAAAAAA565656565656565650
+:10E0D000AAAAAAAAAAAAAAAA565656565656565640
+:10E0E000AAAAAAAAAAAAAAAA565656565656565630
+:10E0F000AAAAAAAAAAAAAAAA565656565656565620
+:10E100005252525252525252A1A1A1A1A1A1A1A177
+:10E110005252525252525252A1A1A1A1A1A1A1A167
+:10E120005252525252525252A1A1A1A1A1A1A1A157
+:10E130005252525252525252A1A1A1A1A1A1A1A147
+:10E140005252525252525252A1A1A1A1A1A1A1A137
+:10E150005252525252525252A1A1A1A1A1A1A1A127
+:10E160005252525252525252A1A1A1A1A1A1A1A117
+:10E170005252525252525252A1A1A1A1A1A1A1A107
+:10E18000A2A2A2A2A2A2A2A25252525252525252EF
+:10E19000A2A2A2A2A2A2A2A25252525252525252DF
+:10E1A000A2A2A2A2A2A2A2A25252525252525252CF
+:10E1B000A2A2A2A2A2A2A2A25252525252525252BF
+:10E1C000A2A2A2A2A2A2A2A25252525252525252AF
+:10E1D000A2A2A2A2A2A2A2A252525252525252529F
+:10E1E000A2A2A2A2A2A2A2A252525252525252528F
+:10E1F000A2A2A2A2A2A2A2A252525252525252527F
+:10E200005A5A5A5A5A5A5A5AA5A5A5A5A5A5A5A516
+:10E210005A5A5A5A5A5A5A5AA5A5A5A5A5A5A5A506
+:10E220005A5A5A5A5A5A5A5AA5A5A5A5A5A5A5A5F6
+:10E230005A5A5A5A5A5A5A5AA5A5A5A5A5A5A5A5E6
+:10E240005A5A5A5A5A5A5A5AA5A5A5A5A5A5A5A5D6
+:10E250005A5A5A5A5A5A5A5AA5A5A5A5A5A5A5A5C6
+:10E260005A5A5A5A5A5A5A5AA5A5A5A5A5A5A5A5B6
+:10E270005A5A5A5A5A5A5A5AA5A5A5A5A5A5A5A5A6
+:10E28000AAAAAAAAAAAAAAAA5A5A5A5A5A5A5A5A6E
+:10E29000AAAAAAAAAAAAAAAA5A5A5A5A5A5A5A5A5E
+:10E2A000AAAAAAAAAAAAAAAA5A5A5A5A5A5A5A5A4E
+:10E2B000AAAAAAAAAAAAAAAA5A5A5A5A5A5A5A5A3E
+:10E2C000AAAAAAAAAAAAAAAA5A5A5A5A5A5A5A5A2E
+:10E2D000AAAAAAAAAAAAAAAA5A5A5A5A5A5A5A5A1E
+:10E2E000AAAAAAAAAAAAAAAA5A5A5A5A5A5A5A5A0E
+:10E2F000AAAAAAAAAAAAAAAA5A5A5A5A5A5A5A5AFE
+:10E300000A0A0A0A0A0A0A0A050505050505050595
+:10E310000A0A0A0A0A0A0A0A050505050505050585
+:10E320000A0A0A0A0A0A0A0A050505050505050575
+:10E330000A0A0A0A0A0A0A0A050505050505050565
+:10E340000A0A0A0A0A0A0A0A050505050505050555
+:10E350000A0A0A0A0A0A0A0A050505050505050545
+:10E360000A0A0A0A0A0A0A0A050505050505050535
+:10E370000A0A0A0A0A0A0A0A050505050505050525
+:10E380000A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0AED
+:10E390000A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0ADD
+:10E3A0000A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0ACD
+:10E3B0000A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0ABD
+:10E3C0000A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0AAD
+:10E3D0000A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A9D
+:10E3E0000A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A8D
+:10E3F0000A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A7D
+:10E40000AAAAAAAAAAAAAAAA555555555555555514
+:10E41000AAAAAAAAAAAAAAAA555555555555555504
+:10E42000AAAAAAAAAAAAAAAA5555555555555555F4
+:10E43000AAAAAAAAAAAAAAAA5555555555555555E4
+:10E44000AAAAAAAAAAAAAAAA5555555555555555D4
+:10E45000AAAAAAAAAAAAAAAA5555555555555555C4
+:10E46000AAAAAAAAAAAAAAAA5555555555555555B4
+:10E47000AAAAAAAAAAAAAAAA5555555555555555A4
+:10E48000AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEC
+:10E49000AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADC
+:10E4A000AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACC
+:10E4B000AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABC
+:10E4C000AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAC
+:10E4D000AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA9C
+:10E4E000AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8C
+:10E4F000AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA7C
+:10E50000AAAAAAAAAAAAAAAA555555555555555513
+:10E51000AAAAAAAAAAAAAAAA555555555555555503
+:10E52000AAAAAAAAAAAAAAAA5555555555555555F3
+:10E53000AAAAAAAAAAAAAAAA5555555555555555E3
+:10E54000AAAAAAAAAAAAAAAA5555555555555555D3
+:10E55000AAAAAAAAAAAAAAAA5555555555555555C3
+:10E56000AAAAAAAAAAAAAAAA5555555555555555B3
+:10E57000AAAAAAAAAAAAAAAA5555555555555555A3
+:10E58000AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEB
+:10E59000AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADB
+:10E5A000AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACB
+:10E5B000AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABB
+:10E5C000AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB
+:10E5D000AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA9B
+:10E5E000AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8B
+:10E5F000AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA7B
+:10E60000A8A8A8A8A8A8A8A854545454545454542A
+:10E61000A8A8A8A8A8A8A8A854545454545454541A
+:10E62000A8A8A8A8A8A8A8A854545454545454540A
+:10E63000A8A8A8A8A8A8A8A85454545454545454FA
+:10E64000A8A8A8A8A8A8A8A85454545454545454EA
+:10E65000A8A8A8A8A8A8A8A85454545454545454DA
+:10E66000A8A8A8A8A8A8A8A85454545454545454CA
+:10E67000A8A8A8A8A8A8A8A85454545454545454BA
+:10E68000A8A8A8A8A8A8A8A8A8A8A8A8A8A8A8A80A
+:10E69000A8A8A8A8A8A8A8A8A8A8A8A8A8A8A8A8FA
+:10E6A000A8A8A8A8A8A8A8A8A8A8A8A8A8A8A8A8EA
+:10E6B000A8A8A8A8A8A8A8A8A8A8A8A8A8A8A8A8DA
+:10E6C000A8A8A8A8A8A8A8A8A8A8A8A8A8A8A8A8CA
+:10E6D000A8A8A8A8A8A8A8A8A8A8A8A8A8A8A8A8BA
+:10E6E000A8A8A8A8A8A8A8A8A8A8A8A8A8A8A8A8AA
+:10E6F000A8A8A8A8A8A8A8A8A8A8A8A8A8A8A8A89A
+:10E70000ABABABABABABABAB5757575757575757F9
+:10E71000ABABABABABABABAB5757575757575757E9
+:10E72000ABABABABABABABAB5757575757575757D9
+:10E73000ABABABABABABABAB5757575757575757C9
+:10E74000ABABABABABABABAB5757575757575757B9
+:10E75000ABABABABABABABAB5757575757575757A9
+:10E76000ABABABABABABABAB575757575757575799
+:10E77000ABABABABABABABAB575757575757575789
+:10E78000ABABABABABABABABABABABABABABABABD9
+:10E79000ABABABABABABABABABABABABABABABABC9
+:10E7A000ABABABABABABABABABABABABABABABABB9
+:10E7B000ABABABABABABABABABABABABABABABABA9
+:10E7C000ABABABABABABABABABABABABABABABAB99
+:10E7D000ABABABABABABABABABABABABABABABAB89
+:10E7E000ABABABABABABABABABABABABABABABAB79
+:10E7F000ABABABABABABABABABABABABABABABAB69
+:10E80000A8A8A8A8A8A8A8A8545454545454545428
+:10E81000A8A8A8A8A8A8A8A8545454545454545418
+:10E82000A8A8A8A8A8A8A8A8545454545454545408
+:10E83000A8A8A8A8A8A8A8A85454545454545454F8
+:10E84000A8A8A8A8A8A8A8A85454545454545454E8
+:10E85000A8A8A8A8A8A8A8A85454545454545454D8
+:10E86000A8A8A8A8A8A8A8A85454545454545454C8
+:10E87000A8A8A8A8A8A8A8A85454545454545454B8
+:10E88000A8A8A8A8A8A8A8A8A8A8A8A8A8A8A8A808
+:10E89000A8A8A8A8A8A8A8A8A8A8A8A8A8A8A8A8F8
+:10E8A000A8A8A8A8A8A8A8A8A8A8A8A8A8A8A8A8E8
+:10E8B000A8A8A8A8A8A8A8A8A8A8A8A8A8A8A8A8D8
+:10E8C000A8A8A8A8A8A8A8A8A8A8A8A8A8A8A8A8C8
+:10E8D000A8A8A8A8A8A8A8A8A8A8A8A8A8A8A8A8B8
+:10E8E000A8A8A8A8A8A8A8A8A8A8A8A8A8A8A8A8A8
+:10E8F000A8A8A8A8A8A8A8A8A8A8A8A8A8A8A8A898
+:10E90000A8A8A8A8A8A8A8A8545454545454545427
+:10E91000A8A8A8A8A8A8A8A8545454545454545417
+:10E92000A8A8A8A8A8A8A8A8545454545454545407
+:10E93000A8A8A8A8A8A8A8A85454545454545454F7
+:10E94000A8A8A8A8A8A8A8A85454545454545454E7
+:10E95000A8A8A8A8A8A8A8A85454545454545454D7
+:10E96000A8A8A8A8A8A8A8A85454545454545454C7
+:10E97000A8A8A8A8A8A8A8A85454545454545454B7
+:10E98000A8A8A8A8A8A8A8A8A8A8A8A8A8A8A8A807
+:10E99000A8A8A8A8A8A8A8A8A8A8A8A8A8A8A8A8F7
+:10E9A000A8A8A8A8A8A8A8A8A8A8A8A8A8A8A8A8E7
+:10E9B000A8A8A8A8A8A8A8A8A8A8A8A8A8A8A8A8D7
+:10E9C000A8A8A8A8A8A8A8A8A8A8A8A8A8A8A8A8C7
+:10E9D000A8A8A8A8A8A8A8A8A8A8A8A8A8A8A8A8B7
+:10E9E000A8A8A8A8A8A8A8A8A8A8A8A8A8A8A8A8A7
+:10E9F000A8A8A8A8A8A8A8A8A8A8A8A8A8A8A8A897
+:10EA0000A0A0A0A0A0A0A0A0505050505050505086
+:10EA1000A0A0A0A0A0A0A0A0505050505050505076
+:10EA2000A0A0A0A0A0A0A0A0505050505050505066
+:10EA3000A0A0A0A0A0A0A0A0505050505050505056
+:10EA4000A0A0A0A0A0A0A0A0505050505050505046
+:10EA5000A0A0A0A0A0A0A0A0505050505050505036
+:10EA6000A0A0A0A0A0A0A0A0505050505050505026
+:10EA7000A0A0A0A0A0A0A0A0505050505050505016
+:10EA8000A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A086
+:10EA9000A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A076
+:10EAA000A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A066
+:10EAB000A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A056
+:10EAC000A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A046
+:10EAD000A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A036
+:10EAE000A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A026
+:10EAF000A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A016
+:10EB0000ACACACACACACACAC5C5C5C5C5C5C5C5CC5
+:10EB1000ACACACACACACACAC5C5C5C5C5C5C5C5CB5
+:10EB2000ACACACACACACACAC5C5C5C5C5C5C5C5CA5
+:10EB3000ACACACACACACACAC5C5C5C5C5C5C5C5C95
+:10EB4000ACACACACACACACAC5C5C5C5C5C5C5C5C85
+:10EB5000ACACACACACACACAC5C5C5C5C5C5C5C5C75
+:10EB6000ACACACACACACACAC5C5C5C5C5C5C5C5C65
+:10EB7000ACACACACACACACAC5C5C5C5C5C5C5C5C55
+:10EB8000ACACACACACACACACACACACACACACACACC5
+:10EB9000ACACACACACACACACACACACACACACACACB5
+:10EBA000ACACACACACACACACACACACACACACACACA5
+:10EBB000ACACACACACACACACACACACACACACACAC95
+:10EBC000ACACACACACACACACACACACACACACACAC85
+:10EBD000ACACACACACACACACACACACACACACACAC75
+:10EBE000ACACACACACACACACACACACACACACACAC65
+:10EBF000ACACACACACACACACACACACACACACACAC55
+:10EC0000A0A0A0A0A0A0A0A0505050505050505084
+:10EC1000A0A0A0A0A0A0A0A0505050505050505074
+:10EC2000A0A0A0A0A0A0A0A0505050505050505064
+:10EC3000A0A0A0A0A0A0A0A0505050505050505054
+:10EC4000A0A0A0A0A0A0A0A0505050505050505044
+:10EC5000A0A0A0A0A0A0A0A0505050505050505034
+:10EC6000A0A0A0A0A0A0A0A0505050505050505024
+:10EC7000A0A0A0A0A0A0A0A0505050505050505014
+:10EC8000A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A084
+:10EC9000A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A074
+:10ECA000A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A064
+:10ECB000A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A054
+:10ECC000A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A044
+:10ECD000A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A034
+:10ECE000A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A024
+:10ECF000A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A014
+:10ED0000A0A0A0A0A0A0A0A0505050505050505083
+:10ED1000A0A0A0A0A0A0A0A0505050505050505073
+:10ED2000A0A0A0A0A0A0A0A0505050505050505063
+:10ED3000A0A0A0A0A0A0A0A0505050505050505053
+:10ED4000A0A0A0A0A0A0A0A0505050505050505043
+:10ED5000A0A0A0A0A0A0A0A0505050505050505033
+:10ED6000A0A0A0A0A0A0A0A0505050505050505023
+:10ED7000A0A0A0A0A0A0A0A0505050505050505013
+:10ED8000A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A083
+:10ED9000A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A073
+:10EDA000A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A063
+:10EDB000A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A053
+:10EDC000A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A043
+:10EDD000A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A033
+:10EDE000A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A023
+:10EDF000A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A013
+:10EE00000000000000000000000000000000000002
+:10EE1000F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F2
+:10EE200000000000000000000000000000000000E2
+:10EE300000000000000000000000000000000000D2
+:10EE400000000000000000000000000000000000C2
+:10EE500000000000000000000000000000000000B2
+:10EE600000000000000000000000000000000000A2
+:10EE70000000000000000000000000000000000092
+:10EE80000000000000000000000000000000000082
+:10EE90000000000000000000000000000000000072
+:10EEA0000000000000000000000000000000000062
+:10EEB0000000000000000000000000000000000052
+:10EEC0000000000000000000000000000000000042
+:10EED0000000000000000000000000000000000032
+:10EEE0000000000000000000000000000000000022
+:10EEF0000000000000000000000000000000000012
+:10EF0000AA56545454545454545454545454A85514
+:10EF1000AA56545454545454545454545454545558
+:10EF2000AA56545454545454545454545454545548
+:10EF3000AA56545454545454545454545454545538
+:10EF4000AA56545454545454545454545454545528
+:10EF5000AA56545454545454545454545454545518
+:10EF6000AA56545454545454545454545454545508
+:10EF7000AA565454545454545454545454545455F8
+:10EF8000AA565454545454545454545454545455E8
+:10EF9000AA565454545454545454545454545455D8
+:10EFA000AA565454545454545454545454545455C8
+:10EFB000AA565454545454545454545454545455B8
+:10EFC000AA565454545454545454545454545455A8
+:10EFD000AA56545454545454545454545454545598
+:10EFE000AA56545454545454545454545454545588
+:10EFF000AA56446868A8A8A8A8A8A8A8A8A8A8006D
+:10F000000256545454545454545454545454540163
+:10F010000256545454545454545454545454540153
+:10F020000256545454545454545454545454540143
+:10F030000256545454545454545454545454540133
+:10F040000256545454545454545454545454540123
+:10F050000256545454545454545454545454540113
+:10F060000256545454545454545454545454540103
+:10F0700002565454545454545454545454545401F3
+:10F0800002565454545454545454545454545401E3
+:10F0900002565454545454545454545454545401D3
+:10F0A00002565454545454545454545454545401C3
+:10F0B00002565454545454545454545454545401B3
+:10F0C00002565454545454545454545454545401A3
+:10F0D0000256545454545454545454545454540193
+:10F0E0000256545454545454545454545454540183
+:10F0F000025654545868A8A8A8A8A8A8A8A8A80068
+:10F10000A856566464A4A4A4A4A4A4A4A4A4A45427
+:10F11000A856565454545454545454545454545457
+:10F12000A856565454545454545454545454545447
+:10F13000A856565454545454545454545454545437
+:10F14000A856565454545454545454545454545427
+:10F15000A856565454545454545454545454545417
+:10F16000A856565454545454545454545454545407
+:10F17000A8565654545454545454545454545454F7
+:10F18000A8565654545454545454545454545454E7
+:10F19000A8565654545454545454545454545454D7
+:10F1A000A8565654545454545454545454545454C7
+:10F1B000A8565654545454545454545454545454B7
+:10F1C000A8565654545454545454545454545454A7
+:10F1D000A856565454545454545454545454545497
+:10F1E000A856565454545454545454545454545487
+:10F1F000A8565654545468A8A8A8A8A8A8A8A80017
+:10F20000005666A8A8A8A8A8A8A8A8A8A8A8A80062
+:10F210000056565454545454545454545454540052
+:10F220000056565454545454545454545454540042
+:10F230000056565454545454545454545454540032
+:10F240000056565454545454545454545454540022
+:10F250000056565454545454545454545454540012
+:10F260000056565454545454545454545454540002
+:10F2700000565654545454545454545454545400F2
+:10F2800000565654545454545454545454545400E2
+:10F2900000565654545454545454545454545400D2
+:10F2A00000565654545454545454545454545400C2
+:10F2B00000565654545454545454545454545400B2
+:10F2C00000565654545454545454545454545400A2
+:10F2D0000056565454545454545454545454A8003E
+:10F2E0000056565454545454545454545454540082
+:10F2F000005656545454545454545454A8A85400CA
+:10F30000AA56AAAAA8A8A8A8A8A8A8A8A8A8A8551C
+:10F31000AAAAAAAAA8A8A8A8A8A8A8A8A8A8A855B8
+:10F32000AAAAAAAAA8A8A8A8A8A8A8A8A8A8A855A8
+:10F33000AAAAAAAAA8A8A8A8A8A8A8A8A8A8A85598
+:10F34000AAAAAAAAA8A8A8A8A8A8A8A8A8A8A85588
+:10F35000AAAAAAAAA8A8A8A8A8A8A8A8A8A8A85578
+:10F36000AAAAAAAAA8A8A8A8A8A8A8A8A8A8A85568
+:10F37000AAAAAAAAA8A8A8A8A8A8A8A8A8A8A85558
+:10F38000AAAAAAAAA8A8A8A8A8A8A8A8A8A8A85548
+:10F39000AAAAAAAAA8A8A8A8A8A8A8A8A8A8A85538
+:10F3A000AAAAAAAAA8A8A8A8A8A8A8A8A8A8A85528
+:10F3B000AAAA56565454545454545454545454555C
+:10F3C000AA565656545454545454545454545455A0
+:10F3D000AA56565654545454545454545454545590
+:10F3E000AA56565654545454545454545454545580
+:10F3F000AA56565654545454545454545454545471
+:10F400000256AAAAA8A8A8A8A8A8A8A8A8A8A80117
+:10F4100002AAAAAAA8A8A8A8A8A8A8A8A8A8A801B3
+:10F4200002AAAAAAA8A8A8A8A8A8A8A8A8A8A801A3
+:10F4300002AAAAAAA8A8A8A8A8A8A8A8A8A8A80193
+:10F4400002AAAAAAA8A8A8A8A8A8A8A8A8A8A80183
+:10F4500002AAAAAAA8A8A8A8A8A8A8A8A8A8A80173
+:10F4600002AAAAAAA8A8A8A8A8A8A8A8A8A8A80163
+:10F4700002AAAAAAA8A8A8A8A8A8A8A8A8A8A80153
+:10F4800002AAAAAAA8A8A8A8A8A8A8A8A8A8A80143
+:10F4900002AAAAAAA8A8A8A8A8A8A8A8A8A8A80133
+:10F4A00002AAAAAAA8A8A8A8A8A8A8A8A8A8A80123
+:10F4B00002AAAAAAA8A8A8A8A8A8A8A8A8A8A80113
+:10F4C00002AAAAAAA8A8A8A8A8A8A8A8A8A8A80103
+:10F4D000025656565454545454545454545454018B
+:10F4E000025656565454545454545454545454017B
+:10F4F000025656565454545454545454545454006C
+:10F50000A856AAAAAAA8A8A8A8A8A8A8A8A8A8541B
+:10F51000A8AAAAAAAAA8A8A8A8A8A8A8A8A8A854B7
+:10F52000A8AAAAAAAAA8A8A8A8A8A8A8A8A8A854A7
+:10F53000A8AAAAAAAAA8A8A8A8A8A8A8A8A8A85497
+:10F54000A8AAAAAAAAA8A8A8A8A8A8A8A8A8A85487
+:10F55000A8AAAAAAAAA8A8A8A8A8A8A8A8A8A85477
+:10F56000A8AAAAAAAAA8A8A8A8A8A8A8A8A8A85467
+:10F57000A8AAAAAAAAA8A8A8A8A8A8A8A8A8A85457
+:10F58000A8AAAAAAAAA8A8A8A8A8A8A8A8A8A85447
+:10F59000A8AAAAAAAAA8A8A8A8A8A8A8A8A8A85437
+:10F5A000A8AAAAAAAAA8A8A8A8A8A8A8A8A8A85427
+:10F5B000A8AAAAAAAAA8A8A8A8A8A8A8A8A8A85417
+:10F5C000A8AAAAAAAAA8A8A8A8A8A8A8A8A8A85407
+:10F5D000A8AAAAAAAAA8A8A8A8A8A8A8A8A8A854F7
+:10F5E000A8AAAAAAAAA8A8A8A8A8A8A8A8A8A854E7
+:10F5F000A85656565654545454545454545454546F
+:10F6000000AAAAAAAAA8A8A8A8A8A8A8A8A8A800C2
+:10F6100000AAAAAAAAA8A8A8A8A8A8A8A8A8A800B2
+:10F6200000AAAAAAAAA8A8A8A8A8A8A8A8A8A800A2
+:10F6300000AAAAAAAAA8A8A8A8A8A8A8A8A8A80092
+:10F6400000AAAAAAAAA8A8A8A8A8A8A8A8A8A80082
+:10F6500000AAAAAAAAA8A8A8A8A8A8A8A8A8A80072
+:10F6600000AAAAAAAAA8A8A8A8A8A8A8A8A8A80062
+:10F6700000AAAAAAAAA8A8A8A8A8A8A8A8A8A80052
+:10F6800000AAAAAAAAA8A8A8A8A8A8A8A8A8A80042
+:10F6900000AAAAAAAAA8A8A8A8A8A8A8A8A8A80032
+:10F6A00000AAAAAAAAA8A8A8A8A8A8A8A8A8A80022
+:10F6B00000AAAAAAAAA8A8A8A8A8A8A8A8A8A80012
+:10F6C00000AAAAAAAAA8A8A8A8A8A8A8A8A8A80002
+:10F6D00000AAAAAAAAA8A8A8A8A8A8A8A8A8A800F2
+:10F6E00000AAAAAAAAA8A8A8A8A8A8A8A8A8A800E2
+:10F6F000005656565654545454545454545454006A
+:10F70000AAAA020202020000000000000000005548
+:10F71000AAAAAA0202020000000000000000005590
+:10F7200000AAAAAA020202000000000000000000D5
+:10F7300040AAAAAA02020200000000000000000085
+:10F7400040AAAAAA02020200000000000000000075
+:10F7500040AAAAAA02020200000000000000000065
+:10F7600040AAAAAA02020200000000000000000055
+:10F7700040AAAAAA02020200000000000000000045
+:10F7800040AAAAAA02020200000000000000000035
+:10F7900040AAAAAA02020200000000000000000025
+:10F7A00040AAAAAA02020200000000000000000015
+:10F7B00040AAAAAA02020200000000000000000005
+:10F7C00040AAAAAA020202000000000000000000F5
+:10F7D00040AAAAAA020202000000000000000000E5
+:10F7E00040AAAAAA020202000000000000000000D5
+:10F7F00040AAAAAA020202000000000000000000C5
+:10F8000040AAAAAA020202000000000000000000B4
+:10F8100054AAAAAA02020200000000000000000090
+:10F8200000AAAAAA020202000000000000000000D4
+:10F8300040AAAAAA02020200000000000000000084
+:10F8400040AAAAAA02020200000000000000000074
+:10F8500040AAAAAA02020200000000000000000064
+:10F8600040AAAAAA02020200000000000000000054
+:10F8700040AAAAAA02020200000000000000000044
+:10F8800040AAAAAA02020200000000000000000034
+:10F8900040AAAAAA02020200000000000000000024
+:10F8A00040AAAAAA02020200000000000000000014
+:10F8B00040AAAAAA02020200000000000000000004
+:10F8C00040AAAAAA020202000000000000000000F4
+:10F8D00040AAAAAA020202000000000000000000E4
+:10F8E00040AAAAAA020202000000000000000000D4
+:10F8F00040AAAAAA020202000000000000000000C4
+:10F9000040AAAAAA020202000000000000000000B3
+:10F9100054AAAAAA0202020000000000000000008F
+:10F92000AAAAAAAA020202000000000000000055D4
+:10F930002AAAAAAA02020200000000000000005544
+:10F940002AAAAAAA02020200000000000000005534
+:10F950002AAAAAAA02020200000000000000005524
+:10F960002AAAAAAA02020200000000000000005514
+:10F970002AAAAAAA02020200000000000000005504
+:10F980002AAAAAAA020202000000000000000055F4
+:10F990002AAAAAAA020202000000000000000055E4
+:10F9A0002AAAAAAA020202000000000000000055D4
+:10F9B0002AAAAAAA020202000000000000000055C4
+:10F9C0002AAAAAAA020202000000000000000055B4
+:10F9D0002AAAAAAA020202000000000000000055A4
+:10F9E0002AAAAAAA02020200000000000000005594
+:10F9F0002AAAAAAA02020200000000000000005584
+:10FA00002AAAAAAA02020200000000000000005573
+:10FA100002AAAAAA0202020000000000000000558B
+:10FA2000AAAAAAAA020202020000000000000055D1
+:10FA30002AAAAAAA02020200000000000000005543
+:10FA40002AAAAAAA02020200000000000000005533
+:10FA50002AAAAAAA02020200000000000000005523
+:10FA60002AAAAAAA02020200000000000000005513
+:10FA70002AAAAAAA02020200000000000000005503
+:10FA80002AAAAAAA020202000000000000000055F3
+:10FA90002AAAAAAA020202000000000000000055E3
+:10FAA0002AAAAAAA020202000000000000000055D3
+:10FAB0002AAAAAAA020202000000000000000055C3
+:10FAC0002AAAAAAA020202000000000000000055B3
+:10FAD0002AAAAAAA020202000000000000000055A3
+:10FAE0002AAAAAAA02020200000000000000005593
+:10FAF0002AAAAAAA02020200000000000000005583
+:10FB00002AAAAAAA02020200000000000000005572
+:10FB100002AAAAAA0202020000000000000000558A
+:10FB200000AAAAAAAA020202020000000000000025
+:10FB300040AAAAAAAA0202020000000000000000D7
+:10FB400040AAAAAAAA0202020000000000000000C7
+:10FB500040AAAAAAAA0202020000000000000000B7
+:10FB600040AAAAAAAA0202020000000000000000A7
+:10FB700040AAAAAAAA020202000000000000000097
+:10FB800040AAAAAAAA020202000000000000000087
+:10FB900040AAAAAAAA020202000000000000000077
+:10FBA00040AAAAAAAA020202000000000000000067
+:10FBB00040AAAAAAAA020202000000000000000057
+:10FBC00040AAAAAAAA020202000000000000000047
+:10FBD00040AAAAAAAA020202000000000000000037
+:10FBE00040AAAAAAAA020202000000000000000027
+:10FBF00040AAAAAAAA020202000000000000000017
+:10FC000040AAAAAAAA020202000000000000000006
+:10FC100055AAAAAAAA0202020000000000000000E1
+:10FC200000AAAAAAAA020202020200000000000022
+:10FC300040AAAAAAAA0202020200000000000000D4
+:10FC400040AAAAAAAA0202020200000000000000C4
+:10FC500040AAAAAAAA0202020200000000000000B4
+:10FC600040AAAAAAAA0202020200000000000000A4
+:10FC700040AAAAAAAA020202020000000000000094
+:10FC800040AAAAAAAA020202020000000000000084
+:10FC900040AAAAAAAA020202020000000000000074
+:10FCA00040AAAAAAAA020202020000000000000064
+:10FCB00040AAAAAAAA020202020000000000000054
+:10FCC00040AAAAAAAA020202020000000000000044
+:10FCD00040AAAAAAAA020202020000000000000034
+:10FCE00040AAAAAAAA020202020000000000000024
+:10FCF00040AAAAAAAA020202020000000000000014
+:10FD000040AAAAAAAA020202020000000000000003
+:10FD100055AAAAAAAA0202020200000000000000DE
+:10FD2000AAAAAAAAAAAA0202020202000000005578
+:10FD30002AAAAAAAAAAA02020202000000000055EA
+:10FD40002AAAAAAAAAAA02020202000000000055DA
+:10FD50002AAAAAAAAAAA02020202000000000055CA
+:10FD60002AAAAAAAAAAA02020202000000000055BA
+:10FD70002AAAAAAAAAAA02020202000000000055AA
+:10FD80002AAAAAAAAAAA020202020000000000559A
+:10FD90002AAAAAAAAAAA020202020000000000558A
+:10FDA0002AAAAAAAAAAA020202020000000000557A
+:10FDB0002AAAAAAAAAAA020202020000000000556A
+:10FDC0002AAAAAAAAAAA020202020000000000555A
+:10FDD0002AAAAAAAAAAA020202020000000000554A
+:10FDE0002AAAAAAAAAAA020202020000000000553A
+:10FDF0002AAAAAAAAAAA020202020000000000552A
+:10FE00002AAAAAAAAAAA0202020200000000005519
+:10FE100000AAAAAAAAAA0202020200000000005533
+:10FE2000AAAAAAAAAAAA0202020202020000005575
+:10FE30002AAAAAAAAAAA02020202020000000055E7
+:10FE40002AAAAAAAAAAA02020202020000000055D7
+:10FE50002AAAAAAAAAAA02020202020000000055C7
+:10FE60002AAAAAAAAAAA02020202020000000055B7
+:10FE70002AAAAAAAAAAA02020202020000000055A7
+:10FE80002AAAAAAAAAAA0202020202000000005597
+:10FE90002AAAAAAAAAAA0202020202000000005587
+:10FEA0002AAAAAAAAAAA0202020202000000005577
+:10FEB0002AAAAAAAAAAA0202020202000000005567
+:10FEC0002AAAAAAAAAAA0202020202000000005557
+:10FED0002AAAAAAAAAAA0202020202000000005547
+:10FEE0002AAAAAAAAAAA0202020202000000005537
+:10FEF0002AAAAAAAAAAA0202020202000000005527
+:10FF00002AAAAAAAAAAA0202020202000000005516
+:10FF100000AAAAAAAAAA0202020202000000005530
+:10FF200000AAAAAAAAAAAA020202020202000000C9
+:10FF300040AAAAAAAAAAAA0202020202000000007B
+:10FF400040AAAAAAAAAAAA0202020202000000006B
+:10FF500040AAAAAAAAAAAA0202020202000000005B
+:10FF600040AAAAAAAAAAAA0202020202000000004B
+:10FF700040AAAAAAAAAAAA0202020202000000003B
+:10FF800040AAAAAAAAAAAA0202020202000000002B
+:10FF900040AAAAAAAAAAAA0202020202000000001B
+:10FFA00040AAAAAAAAAAAA0202020202000000000B
+:10FFB00040AAAAAAAAAAAA020202020200000000FB
+:10FFC00040AAAAAAAAAAAA020202020200000000EB
+:10FFD00040AAAAAAAAAAAA020202020200000000DB
+:10FFE00040AAAAAAAAAAAA020202020200000000CB
+:10FFF00040AAAAAAAAAAAA020202020200000000BB
+:02000004000BEF
+:1000000040AAAAAAAAAAAA020202020200000000AA
+:1000100055AAAAAAAAAAAA02020202020000000085
+:1000200000AAAAAAAAAAAAAA02020202020200001E
+:1000300040AAAAAAAAAAAAAA0202020202020000CE
+:1000400040AAAAAAAAAAAAAA0202020202020000BE
+:1000500040AAAAAAAAAAAAAA0202020202020000AE
+:1000600040AAAAAAAAAAAAAA02020202020200009E
+:1000700040AAAAAAAAAAAAAA02020202020200008E
+:1000800040AAAAAAAAAAAAAA02020202020200007E
+:1000900040AAAAAAAAAAAAAA02020202020200006E
+:1000A00040AAAAAAAAAAAAAA02020202020200005E
+:1000B00040AAAAAAAAAAAAAA02020202020200004E
+:1000C00040AAAAAAAAAAAAAA02020202020200003E
+:1000D00040AAAAAAAAAAAAAA02020202020200002E
+:1000E00040AAAAAAAAAAAAAA02020202020200001E
+:1000F00040AAAAAAAAAAAAAA02020202020200000E
+:1001000040AAAAAAAAAAAAAA0202020202020000FD
+:1001100055AAAAAAAAAAAAAA0202020202020000D8
+:10012000AAA9A9A9A9A9A9A9A90101010101015582
+:100130002AA9A9A9A9A9A9A9A901010101010155F2
+:100140002AA9A9A9A9A9A9A9A901010101010155E2
+:100150002AA9A9A9A9A9A9A9A901010101010155D2
+:100160002AA9A9A9A9A9A9A9A901010101010155C2
+:100170002AA9A9A9A9A9A9A9A901010101010155B2
+:100180002AA9A9A9A9A9A9A9A901010101010155A2
+:100190002AA9A9A9A9A9A9A9A90101010101015592
+:1001A0002AA9A9A9A9A9A9A9A90101010101015582
+:1001B0002AA9A9A9A9A9A9A9A90101010101015572
+:1001C0002AA9A9A9A9A9A9A9A90101010101015562
+:1001D0002AA9A9A9A9A9A9A9A90101010101015552
+:1001E0002AA9A9A9A9A9A9A9A90101010101015542
+:1001F0002AA9A9A9A9A9A9A9A90101010101015532
+:100200002AA9A9A9A9A9A9A9A90101010101015521
+:1002100000A9A9A9A9A9A9A9A9010101010101553B
+:10022000A8A9A9A9A9A9A9A9A9A9010101010154DC
+:1002300028A9A9A9A9A9A9A9A9A90101010101544C
+:1002400028A9A9A9A9A9A9A9A9A90101010101543C
+:1002500028A9A9A9A9A9A9A9A9A90101010101542C
+:1002600028A9A9A9A9A9A9A9A9A90101010101541C
+:1002700028A9A9A9A9A9A9A9A9A90101010101540C
+:1002800028A9A9A9A9A9A9A9A9A9010101010154FC
+:1002900028A9A9A9A9A9A9A9A9A9010101010154EC
+:1002A00028A9A9A9A9A9A9A9A9A9010101010154DC
+:1002B00028A9A9A9A9A9A9A9A9A9010101010154CC
+:1002C00028A9A9A9A9A9A9A9A9A9010101010154BC
+:1002D00028A9A9A9A9A9A9A9A9A9010101010154AC
+:1002E00028A9A9A9A9A9A9A9A9A90101010101549C
+:1002F00028A9A9A9A9A9A9A9A9A90101010101548C
+:1003000028A9A9A9A9A9A9A9A9A90101010101547B
+:1003100001A9A9A9A9A9A9A9A9A901010101015492
+:1003200056A9A9A9A9A9A9A9A9A901010101010180
+:1003300056A9A9A9A9A9A9A9A9A901010101010170
+:1003400056A9A9A9A9A9A9A9A9A901010101010160
+:1003500056A9A9A9A9A9A9A9A9A901010101010150
+:1003600056A9A9A9A9A9A9A9A9A901010101010140
+:1003700056A9A9A9A9A9A9A9A9A901010101010130
+:1003800056A9A9A9A9A9A9A9A9A901010101010120
+:1003900056A9A9A9A9A9A9A9A9A901010101010110
+:1003A00056A9A9A9A9A9A9A9A9A901010101010100
+:1003B00056A9A9A9A9A9A9A9A9A9010101010101F0
+:1003C00056A9A9A9A9A9A9A9A9A9010101010101E0
+:1003D00056A9A9A9A9A9A9A9A9A9010101010101D0
+:1003E00056A9A9A9A9A9A9A9A9A9010101010101C0
+:1003F00056A9A9A9A9A9A9A9A9A9010101010101B0
+:1004000056A9A9A9A9A9A9A9A9A90101010101019F
+:1004100054A9A9A9A9A9A9A9A9A901010101010191
+:1004200055A9A9A9A9A9A9A9A9A9A90101010100D9
+:1004300000A9A9A9A9A9A9A9A9A9A9A90101015521
+:1004400001A9A9A9A9A9A9A9A9A9A9A9A901015469
+:1004500001A9A9A9A9A9A9A9A9A9A9A9A901015459
+:1004600001A9A9A9A9A9A9A9A9A9A9A9A901015449
+:1004700001A9A9A9A9A9A9A9A9A9A9A9A901015439
+:1004800001A9A9A9A9A9A9A9A9A9A9A9A901015429
+:1004900001A9A9A9A9A9A9A9A9A9A9A9A901015419
+:1004A00001A9A9A9A9A9A9A9A9A9A9A9A901015409
+:1004B00001A9A9A9A9A9A9A9A9A9A9A9A9010154F9
+:1004C00001A9A9A9A9A9A9A9A9A9A9A9A9010154E9
+:1004D00001A9A9A9A9A9A9A9A9A9A9A9A9010154D9
+:1004E00001A9A9A9A9A9A9A9A9A9A9A9A9010154C9
+:1004F00001A9A9A9A9A9A9A9A9A9A9A9A9010154B9
+:1005000001A9A9A9A9A9A9A9A9A9A9A9A9010154A8
+:1005100001A9A9A9A9A9A9A9A9A9A9A9A901015498
+:1005200001A9A9A9A9A9A9A9A9A9A9A9A901015488
+:1005300001A9A9A9A9A9A9A9A9A9A9A9A901015676
+:1005400054A9A9A9A9A9A9A9A9A9A9A9A9A90101C0
+:1005500054A9A9A9A9A9A9A9A9A9A9A9A9A90101B0
+:1005600054A9A9A9A9A9A9A9A9A9A9A9A9A90101A0
+:1005700054A9A9A9A9A9A9A9A9A9A9A9A9A9010190
+:1005800054A9A9A9A9A9A9A9A9A9A9A9A9A9010180
+:1005900054A9A9A9A9A9A9A9A9A9A9A9A9A9010170
+:1005A00054A9A9A9A9A9A9A9A9A9A9A9A9A9010160
+:1005B00054A9A9A9A9A9A9A9A9A9A9A9A9A9010150
+:1005C00054A9A9A9A9A9A9A9A9A9A9A9A9A9010140
+:1005D00054A9A9A9A9A9A9A9A9A9A9A9A9A9010130
+:1005E00054A9A9A9A9A9A9A9A9A9A9A9A9A9010120
+:1005F00054A9A9A9A9A9A9A9A9A9A9A9A9A9010110
+:1006000054A9A9A9A9A9A9A9A9A9A9A9A9A90101FF
+:1006100054A9A9A9A9A9A9A9A9A9A9A9A9A90101EF
+:1006200054A9A9A9A9A9A9A9A9A9A9A9A9A90101DF
+:1006300054A9A9A9A9A9A9A9A9A9A9A9A9A90102CE
+:1006400001555555565656565555555555555554AB
+:10065000015555555555555555555555555555549F
+:10066000015555555555555555555555555555548F
+:10067000015555555555555555555555555555547F
+:10068000015555555555555555555555555555546F
+:10069000015555555555555555555555555555545F
+:1006A000015555555555555555555555555555544F
+:1006B000015555555555555555555555555555543F
+:1006C000015555555555555555555555555555542F
+:1006D000015555555555555555555555555555541F
+:1006E000015555555555555555555555555555540F
+:1006F00001555555555555555555555555555554FF
+:1007000001555555555555555555555555555554EE
+:1007100001555555555555555555555555555554DE
+:1007200001555555555555555555555555555554CE
+:1007300001555555555555555555555555555556BC
+:100740005455555656565656565555555555555653
+:100750005455555555555555555555555555555649
+:100760005455555555555555555555555555555639
+:100770005455555555555555555555555555555629
+:100780005455555555555555555555555555555619
+:100790005455555555555555555555555555555609
+:1007A00054555555555555555555555555555556F9
+:1007B00054555555555555555555555555555556E9
+:1007C00054555555555555555555555555555556D9
+:1007D00054555555555555555555555555555556C9
+:1007E00054555555555555555555555555555556B9
+:1007F00054555555555555555555555555555556A9
+:100800005455555555555555555555555555555698
+:100810005455555555555555555555555555555688
+:100820005455555555555555555555555555555678
+:10083000545555555555555555555555555555546A
+:10084000015555565656565656555656555555AA4F
+:10085000015555555656565655555555555555AA43
+:10086000015555555656565655555555555555AA33
+:10087000015555555656565655555555555555AA23
+:10088000015555555656565655555555555555AA13
+:10089000015555555656565655555555555555AA03
+:1008A000015555555656565655555555555555AAF3
+:1008B000015555555656565655555555555555AAE3
+:1008C000015555555656565655555555555555AAD3
+:1008D000015555555656565655555555555555AAC3
+:1008E000015555555656565655555555555555AAB3
+:1008F000015555555656565655555555555555AAA3
+:10090000015555555656565655555555555555AA92
+:10091000015555555656565655555555555555AA82
+:10092000015555555656565655555555555555AA72
+:10093000015555555555555555555555555555AA66
+:10094000545555565656565656565656565656A8F9
+:10095000545656565656565656565656565656A8E7
+:10096000545656565656565656565656565656A8D7
+:10097000545656565656565656565656565656A8C7
+:10098000545656565656565656565656565656A8B7
+:10099000545656565656565656565656565656A8A7
+:1009A000545656565656565656565656565656A897
+:1009B000545656565656565656565656565656A887
+:1009C000545656565656565656565656565656A877
+:1009D000545656565656565656565656565656A867
+:1009E000545656565656565656565656565656A857
+:1009F000545656565656565656565656565656A847
+:100A0000545656565656565656565656565656A836
+:100A1000545656565656565656565656565656A826
+:100A2000545656565656565656565656565656A816
+:100A3000545555565656565654545656565656A80C
+:100A400001565656565656565656565656565602EF
+:100A500001565656565656565656565656565602DF
+:100A600001565656565656565656565656565602CF
+:100A700001565656565656565656565656565602BF
+:100A800001565656565656565656565656565602AF
+:100A9000015656565656565656565656565656029F
+:100AA000015656565656565656565656565656028F
+:100AB000015656565656565656565656565656027F
+:100AC000015656565656565656565656565656026F
+:100AD000015656565656565656565656565656025F
+:100AE000015656565656565656565656565656024F
+:100AF000015656565656565656565656565656023F
+:100B0000015656565656565656565656565656022E
+:100B1000015656565656565656565656565656021E
+:100B2000015656565656565656565656565656020E
+:100B30000155545656565656565656565656560201
+:100B4000545656565656565656565656565656A8F5
+:100B500001565656565656565656565656565602DE
+:100B6000545656565656565656565656565656A8D5
+:100B700001AAAAAAAAAAAAAAAAAAAAAAAAAAAA0226
+:100B800054AAAAAAAAAAAAAAAAAAAAAAAAAAAAA81D
+:100B900001AAAAAAAAAAAAAAAAAAAAAAAAAAAA0206
+:100BA00054AAAAAAAAAAAAAAAAAAAAAAAAAAAAA8FD
+:100BB00001AAAAAAAAAAAAAAAAAAAAAAAAAAAA02E6
+:100BC00001AAAAAAAAAAAAAAAAAAAAAAAAAAAA02D6
+:100BD00001AAAAAAAAAAAAAAAAAAAAAAAAAAAA02C6
+:100BE00001AAAAAAAAAAAAAAAAAAAAAAAAAAAA02B6
+:100BF00001AAAAAAAAAAAAAAAAAAAAAAAAAAAA02A6
+:100C000001AAAAAAAAAAAAAAAAAAAAAAAAAAAA0295
+:100C100001AAAAAAAAAAAAAAAAAAAAAAAAAAAA0285
+:100C200001AAAAAAAAAAAAAAAAAAAAAAAAAAAA0275
+:100C300001AAAAAAAAAAAAAAAAAAAAAAAAAAAA0265
+:100C400001AAAAAAAAAAAAAAAAAAAAAAAAAAAA0255
+:100C500001AAAAAAAAAAAAAAAAAAAAAAAAAAAA0245
+:100C600001AAAAAAAAAAAAAAAAAAAAAAAAAAAA0235
+:100C700001AAAAAAAAAAAAAAAAAAAAAAAAAAAA0225
+:100C800001AAAAAAAAAAAAAAAAAAAAAAAAAAAA0215
+:100C900001AAAAAAAAAAAAAAAAAAAAAAAAAAAA0205
+:100CA00001AAAAAAAAAAAAAAAAAAAAAAAAAAAA01F6
+:100CB00054A9A9A9A9A9A9A9A9A9A9A9A9A9A8A8FB
+:100CC00000A9A9A9A9A9A9A9A9A9A9A9A9A8A800E8
+:100CD00055A9A9A9A9A9A9A9A9A9A9A9A8A8A8AADA
+:100CE00001555555555555555555555454540002B3
+:100CF000545555555555555555555454540000A8FF
+:100D0000545555555555555555545454000000A843
+:100D10000155555555555555545454000000000281
+:100D20000155555555555555545454000000000271
+:100D30000155555555555555545454000000000261
+:100D40000155555555555555545454000000000251
+:100D50000155555555555555545454000000000241
+:100D60000155555555555555545454000000000231
+:100D70000155555555555555545454000000000221
+:100D80000155555555555555545454000000000211
+:100D90000155555555555555545454000000000201
+:100DA00001555555555555555454540000000002F1
+:100DB00001555555555555555454540000000002E1
+:100DC00001555555555555555454540000000002D1
+:100DD00001555555555555555454540000000002C1
+:100DE00001555555555555555454540000000002B1
+:100DF00001555555555555555454540000000002A1
+:100E00000155555555555555545454000000000092
+:100E100001555555555555545454000000000002D5
+:100E200001555555555555545454000000000002C5
+:100E300001555555555555545454000000000002B5
+:100E400001555555555555545454000000000002A5
+:100E50000155555555555554545400000000000295
+:100E60000155555555555554545400000000000285
+:100E70000155555555555554545400000000000275
+:100E80000155555555555554545400000000000265
+:100E90000155555555555554545400000000000255
+:100EA0000155555555555554545400000000000245
+:100EB0000155555555555554545400000000000235
+:100EC0000155555555555554545400000000000225
+:100ED0000155555555555554545400000000000215
+:100EE0000155555555555554545400000000000205
+:100EF00001555555555555545454000000000002F5
+:100F000001555555555555545454000000000000E6
+:100F1000545555555555555454540000000000A8DB
+:100F2000545555555555555454000000000000A81F
+:100F3000015555555555545400000000000000025D
+:100F4000015555555555545400000000000000024D
+:100F5000015555555555545400000000000000023D
+:100F6000015555555555545400000000000000022D
+:100F7000015555555555545400000000000000021D
+:100F8000015555555555545400000000000000020D
+:100F900001555555555554540000000000000002FD
+:100FA00001555555555554540000000000000002ED
+:100FB00001555555555554540000000000000002DD
+:100FC00001555555555554540000000000000002CD
+:100FD00001555555555554540000000000000002BD
+:100FE00001555555555554540000000000000002AD
+:100FF000015555555555545400000000000000029D
+:10100000015555555555545400000000000000028C
+:10101000015555555555545400000000000000027C
+:10102000015555555555545400000000000000006E
+:1010300001555555555554000000000000000002B0
+:1010400001555555555554000000000000000002A0
+:101050000155555555555400000000000000000290
+:101060000155555555555400000000000000000280
+:101070000155555555555400000000000000000270
+:101080000155555555555400000000000000000260
+:101090000155555555555400000000000000000250
+:1010A0000155555555555400000000000000000240
+:1010B0000155555555555400000000000000000230
+:1010C0000155555555555400000000000000000220
+:1010D0000155555555555400000000000000000210
+:1010E0000155555555555400000000000000000200
+:1010F00001555555555554000000000000000002F0
+:1011000001555555555554000000000000000002DF
+:1011100001555555555554000000000000000002CF
+:1011200001555555555554000000000000000000C1
+:10113000545555555554000000000000000000A80B
+:10114000545555555554000000000000000000A8FB
+:10115000545555555554000000000000000000A8EB
+:10116000545555555554000000000000000000A8DB
+:10117000545555555554000000000000000000A8CB
+:10118000545555555554000000000000000000A8BB
+:10119000545555555554000000000000000000A8AB
+:1011A000545555555554000000000000000000A89B
+:1011B000545555555554000000000000000000A88B
+:1011C000545555555554000000000000000000A87B
+:1011D000545555555554000000000000000000A86B
+:1011E000545555555554000000000000000000A85B
+:1011F000545555555554000000000000000000A84B
+:10120000545555555554000000000000000000A83A
+:10121000545555555554000000000000000000A82A
+:1012200054555555555400000000000000000000C2
+:10123000545555555554000000000000000000A80A
+:10124000545555555554000000000000000000A8FA
+:10125000545555555554000000000000000000A8EA
+:10126000545555555554000000000000000000A8DA
+:10127000545555555554000000000000000000A8CA
+:10128000545555555554000000000000000000A8BA
+:10129000545555555554000000000000000000A8AA
+:1012A000545555555554000000000000000000A89A
+:1012B000545555555554000000000000000000A88A
+:1012C000545555555554000000000000000000A87A
+:1012D000545555555554000000000000000000A86A
+:1012E000545555555554000000000000000000A85A
+:1012F000545555555554000000000000000000A84A
+:10130000545555555554000000000000000000A839
+:10131000545555555554000000000000000000A829
+:1013200054555555555400000000000000000000C1
+:101330000155555554000000000000000000000158
+:101340000155555554000000000000000000000148
+:101350000155555554000000000000000000000138
+:101360000155555554000000000000000000000128
+:101370000155555554000000000000000000000118
+:101380000155555554000000000000000000000108
+:1013900001555555540000000000000000000001F8
+:1013A00001555555540000000000000000000001E8
+:1013B00001555555540000000000000000000001D8
+:1013C00001555555540000000000000000000001C8
+:1013D00001555555540000000000000000000001B8
+:1013E00001555555540000000000000000000001A8
+:1013F0000155555554000000000000000000000198
+:101400000155555554000000000000000000000187
+:101410000155555554000000000000000000000177
+:101420000155555554000000000000000000000068
+:101430000155555554000000000000000000000157
+:101440000155555554000000000000000000000147
+:101450000155555554000000000000000000000137
+:101460000155555554000000000000000000000127
+:101470000155555554000000000000000000000117
+:101480000155555554000000000000000000000107
+:1014900001555555540000000000000000000001F7
+:1014A00001555555540000000000000000000001E7
+:1014B00001555555540000000000000000000001D7
+:1014C00001555555540000000000000000000001C7
+:1014D00001555555540000000000000000000001B7
+:1014E00001555555540000000000000000000001A7
+:1014F0000155555554000000000000000000000197
+:101500000155555554000000000000000000000186
+:101510000155555554000000000000000000000176
+:101520000155555554000000000000000000000067
+:10153000545555540000000000000000000000A8B1
+:10154000545555540000000000000000000000A8A1
+:10155000545555540000000000000000000000A891
+:10156000545555540000000000000000000000A881
+:10157000545555540000000000000000000000A871
+:10158000545555540000000000000000000000A861
+:10159000545555540000000000000000000000A851
+:1015A000545555540000000000000000000000A841
+:1015B000545555540000000000000000000000A831
+:1015C000545555540000000000000000000000A821
+:1015D000545555540000000000000000000000A811
+:1015E000545555540000000000000000000000A801
+:1015F000545555540000000000000000000000A8F1
+:10160000545555540000000000000000000000A8E0
+:10161000545555540000000000000000000000A8D0
+:101620005455555400000000000000000000000068
+:10163000545555540000000000000000000000A8B0
+:10164000545555540000000000000000000000A8A0
+:10165000545555540000000000000000000000A890
+:10166000545555540000000000000000000000A880
+:10167000545555540000000000000000000000A870
+:10168000545555540000000000000000000000A860
+:10169000545555540000000000000000000000A850
+:1016A000545555540000000000000000000000A840
+:1016B000545555540000000000000000000000A830
+:1016C000545555540000000000000000000000A820
+:1016D000545555540000000000000000000000A810
+:1016E000545555540000000000000000000000A800
+:1016F000545555540000000000000000000000A8F0
+:10170000545555540000000000000000000000A8DF
+:10171000545555540000000000000000000000A8CF
+:101720005455555400000000000000000000000067
+:1017300001555454000000000000000000000002A9
+:101740000155545400000000000000000000000299
+:101750000155545400000000000000000000000289
+:101760000155545400000000000000000000000279
+:101770000155545400000000000000000000000269
+:101780000155545400000000000000000000000259
+:101790000155545400000000000000000000000249
+:1017A0000155545400000000000000000000000239
+:1017B0000155545400000000000000000000000229
+:1017C0000155545400000000000000000000000219
+:1017D0000155545400000000000000000000000209
+:1017E00001555454000000000000000000000002F9
+:1017F00001555454000000000000000000000002E9
+:1018000001555454000000000000000000000002D8
+:1018100001555454000000000000000000000002C8
+:1018200001555454000000000000000000000000BA
+:1018300001555454000000000000000000000002A8
+:101840000155545400000000000000000000000298
+:101850000155545400000000000000000000000288
+:101860000155545400000000000000000000000278
+:101870000155545400000000000000000000000268
+:101880000155545400000000000000000000000258
+:101890000155545400000000000000000000000248
+:1018A0000155545400000000000000000000000238
+:1018B0000155545400000000000000000000000228
+:1018C0000155545400000000000000000000000218
+:1018D0000155545400000000000000000000000208
+:1018E00001555454000000000000000000000002F8
+:1018F00001555454000000000000000000000002E8
+:1019000001555454000000000000000000000002D7
+:1019100001555454000000000000000000000002C7
+:1019200001555454000000000000000000000000B9
+:10193000545454000000000000000000000000A803
+:10194000545454000000000000000000000000A8F3
+:10195000545454000000000000000000000000A8E3
+:10196000545454000000000000000000000000A8D3
+:10197000545454000000000000000000000000A8C3
+:10198000545454000000000000000000000000A8B3
+:10199000545454000000000000000000000000A8A3
+:1019A000545454000000000000000000000000A893
+:1019B000545454000000000000000000000000A883
+:1019C000545454000000000000000000000000A873
+:1019D000545454000000000000000000000000A863
+:1019E000545454000000000000000000000000A853
+:1019F000545454000000000000000000000000A843
+:101A0000545454000000000000000000000000A832
+:101A1000545454000000000000000000000000A822
+:101A200054545400000000000000000000000000BA
+:101A3000575703030303030303030303030303AB26
+:101A4000575703030303030303030303030303AB16
+:101A5000575703030303030303030303030303AB06
+:101A6000575703030303030303030303030303ABF6
+:101A7000575703030303030303030303030303ABE6
+:101A8000575703030303030303030303030303ABD6
+:101A9000575703030303030303030303030303ABC6
+:101AA000575703030303030303030303030303ABB6
+:101AB000575703030303030303030303030303ABA6
+:101AC000575703030303030303030303030303AB96
+:101AD000575703030303030303030303030303AB86
+:101AE000575703030303030303030303030303AB76
+:101AF000575703030303030303030303030303AB66
+:101B0000575703030303030303030303030303AB55
+:101B1000575703030303030303030303030303AB45
+:101B200057570303030303030303030303030303DD
+:101B300000000000000000000000000000000000A5
+:101B4000FCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCD5
+:101B50000000000000000000000000000000000085
+:101B60000000000000000000000000000000000075
+:101B70000000000000000000000000000000000065
+:101B80000000000000000000000000000000000055
+:101B90000000000000000000000000000000000045
+:101BA0000000000000000000000000000000000035
+:101BB0000000000000000000000000000000000025
+:101BC0000000000000000000000000000000000015
+:101BD0000000000000000000000000000000000005
+:101BE00000000000000000000000000000000000F5
+:101BF00000000000000000000000000000000000E5
+:101C00000056545454545454545454545454A85591
+:101C1000AA00545454545454545454545454545581
+:101C2000AA5600545454545454545454545454556F
+:101C3000AA5654005454545454545454545454555F
+:101C4000AA5654540054545454545454545454554F
+:101C5000AA5654545400545454545454545454553F
+:101C6000AA5654545454005454545454545454552F
+:101C7000AA5654545454540054545454545454551F
+:101C8000AA5654545454545400545454545454550F
+:101C9000AA565454545454545400545454545455FF
+:101CA000AA565454545454545454005454545455EF
+:101CB000AA565454545454545454540054545455DF
+:101CC000AA565454545454545454545400545455CF
+:101CD000AA565454545454545454545454005455BF
+:101CE000AA565454545454545454545454540055AF
+:101CF000AA56446868A8A8A8A8A8A8A8A8A8A80040
+:101D00000056545454545454545454545454540138
+:101D1000020054545454545454545454545454017C
+:101D2000025600545454545454545454545454016A
+:101D3000025654005454545454545454545454015A
+:101D4000025654540054545454545454545454014A
+:101D5000025654545400545454545454545454013A
+:101D6000025654545454005454545454545454012A
+:101D7000025654545454540054545454545454011A
+:101D8000025654545454545400545454545454010A
+:101D900002565454545454545400545454545401FA
+:101DA00002565454545454545454005454545401EA
+:101DB00002565454545454545454540054545401DA
+:101DC00002565454545454545454545400545401CA
+:101DD00002565454545454545454545454005401BA
+:101DE00002565454545454545454545454540001AA
+:101DF000025654545868A8A8A8A8A8A8A8A8A8003B
+:101E00000056566464A4A4A4A4A4A4A4A4A4A454A2
+:101E1000A800565454545454545454545454545480
+:101E2000A856005454545454545454545454545470
+:101E3000A85656005454545454545454545454545E
+:101E4000A85656540054545454545454545454544E
+:101E5000A85656545400545454545454545454543E
+:101E6000A85656545454005454545454545454542E
+:101E7000A85656545454540054545454545454541E
+:101E8000A85656545454545400545454545454540E
+:101E9000A8565654545454545400545454545454FE
+:101EA000A8565654545454545454005454545454EE
+:101EB000A8565654545454545454540054545454DE
+:101EC000A8565654545454545454545400545454CE
+:101ED000A8565654545454545454545454005454BE
+:101EE000A8565654545454545454545454540054AE
+:101EF000A8565654545468A8A8A8A8A8A8A8A800EA
+:101F0000005666A8A8A8A8A8A8A8A8A8A8A8A80035
+:101F1000000056545454545454545454545454007B
+:101F2000005600545454545454545454545454006B
+:101F30000056560054545454545454545454540059
+:101F40000056565400545454545454545454540049
+:101F50000056565454005454545454545454540039
+:101F60000056565454540054545454545454540029
+:101F70000056565454545400545454545454540019
+:101F80000056565454545454005454545454540009
+:101F900000565654545454545400545454545400F9
+:101FA00000565654545454545454005454545400E9
+:101FB00000565654545454545454540054545400D9
+:101FC00000565654545454545454545400545400C9
+:101FD0000056565454545454545454545400A80065
+:101FE00000565654545454545454545454540000A9
+:101FF000005656545454545454545454A8A854009D
+:102000000056AAAAA8A8A8A8A8A8A8A8A8A8A85599
+:10201000AA00AAAAA8A8A8A8A8A8A8A8A8A8A85535
+:10202000AAAA00AAA8A8A8A8A8A8A8A8A8A8A85525
+:10203000AAAAAA00A8A8A8A8A8A8A8A8A8A8A85515
+:10204000AAAAAAAA00A8A8A8A8A8A8A8A8A8A85503
+:10205000AAAAAAAAA800A8A8A8A8A8A8A8A8A855F3
+:10206000AAAAAAAAA8A800A8A8A8A8A8A8A8A855E3
+:10207000AAAAAAAAA8A8A800A8A8A8A8A8A8A855D3
+:10208000AAAAAAAAA8A8A8A800A8A8A8A8A8A855C3
+:10209000AAAAAAAAA8A8A8A8A800A8A8A8A8A855B3
+:1020A000AAAAAAAAA8A8A8A8A8A800A8A8A8A855A3
+:1020B000AAAA565654545454545454005454545583
+:1020C000AA565656545454545454545400545455C7
+:1020D000AA565656545454545454545454005455B7
+:1020E000AA565656545454545454545454540055A7
+:1020F000AA56565654545454545454545454540098
+:102100000056AAAAA8A8A8A8A8A8A8A8A8A8A801EC
+:102110000200AAAAA8A8A8A8A8A8A8A8A8A8A80130
+:1021200002AA00AAA8A8A8A8A8A8A8A8A8A8A80120
+:1021300002AAAA00A8A8A8A8A8A8A8A8A8A8A80110
+:1021400002AAAAAA00A8A8A8A8A8A8A8A8A8A801FE
+:1021500002AAAAAAA800A8A8A8A8A8A8A8A8A801EE
+:1021600002AAAAAAA8A800A8A8A8A8A8A8A8A801DE
+:1021700002AAAAAAA8A8A800A8A8A8A8A8A8A801CE
+:1021800002AAAAAAA8A8A8A800A8A8A8A8A8A801BE
+:1021900002AAAAAAA8A8A8A8A800A8A8A8A8A801AE
+:1021A00002AAAAAAA8A8A8A8A8A800A8A8A8A8019E
+:1021B00002AAAAAAA8A8A8A8A8A8A800A8A8A8018E
+:1021C00002AAAAAAA8A8A8A8A8A8A8A800A8A8017E
+:1021D00002565656545454545454545454005401B2
+:1021E00002565656545454545454545454540001A2
+:1021F000025656565454545454545454545454003F
+:102200000056AAAAAAA8A8A8A8A8A8A8A8A8A85496
+:10221000A800AAAAAAA8A8A8A8A8A8A8A8A8A85434
+:10222000A8AA00AAAAA8A8A8A8A8A8A8A8A8A85424
+:10223000A8AAAA00AAA8A8A8A8A8A8A8A8A8A85414
+:10224000A8AAAAAA00A8A8A8A8A8A8A8A8A8A85404
+:10225000A8AAAAAAAA00A8A8A8A8A8A8A8A8A854F2
+:10226000A8AAAAAAAAA800A8A8A8A8A8A8A8A854E2
+:10227000A8AAAAAAAAA8A800A8A8A8A8A8A8A854D2
+:10228000A8AAAAAAAAA8A8A800A8A8A8A8A8A854C2
+:10229000A8AAAAAAAAA8A8A8A800A8A8A8A8A854B2
+:1022A000A8AAAAAAAAA8A8A8A8A800A8A8A8A854A2
+:1022B000A8AAAAAAAAA8A8A8A8A8A800A8A8A85492
+:1022C000A8AAAAAAAAA8A8A8A8A8A8A800A8A85482
+:1022D000A8AAAAAAAAA8A8A8A8A8A8A8A800A85472
+:1022E000A8AAAAAAAAA8A8A8A8A8A8A8A8A8005462
+:1022F000A856565656545454545454545454540096
+:1023000000AAAAAAAAA8A8A8A8A8A8A8A8A8A80095
+:102310000000AAAAAAA8A8A8A8A8A8A8A8A8A8002F
+:1023200000AA00AAAAA8A8A8A8A8A8A8A8A8A8001F
+:1023300000AAAA00AAA8A8A8A8A8A8A8A8A8A8000F
+:1023400000AAAAAA00A8A8A8A8A8A8A8A8A8A800FF
+:1023500000AAAAAAAA00A8A8A8A8A8A8A8A8A800ED
+:1023600000AAAAAAAAA800A8A8A8A8A8A8A8A800DD
+:1023700000AAAAAAAAA8A800A8A8A8A8A8A8A800CD
+:1023800000AAAAAAAAA8A8A800A8A8A8A8A8A800BD
+:1023900000AAAAAAAAA8A8A8A800A8A8A8A8A800AD
+:1023A00000AAAAAAAAA8A8A8A8A800A8A8A8A8009D
+:1023B00000AAAAAAAAA8A8A8A8A8A800A8A8A8008D
+:1023C00000AAAAAAAAA8A8A8A8A8A8A800A8A8007D
+:1023D00000AAAAAAAAA8A8A8A8A8A8A8A800A8006D
+:1023E00000AAAAAAAAA8A8A8A8A8A8A8A8A800005D
+:1023F000005656565654545454545454545454003D
+:1024000000AA0202020200000000000000000055C5
+:10241000AA000202020200000000000000000055B5
+:10242000AAAA0002020200000000000000000055FD
+:10243000AAAA0200020200000000000000000055ED
+:10244000AAAA0202000200000000000000000055DD
+:10245000AAAA0202020000000000000000000055CD
+:10246000AAAA0202020200000000000000000055BB
+:10247000AAAA0202020200000000000000000055AB
+:10248000AAAA02020202000000000000000000559B
+:10249000AAAA02020202000000000000000000558B
+:1024A000AAAA02020202000000000000000000557B
+:1024B000AAAA02020202000000000000000000556B
+:1024C000AAAA02020202000000000000000000555B
+:1024D000AAAA02020202000000000000000000554B
+:1024E000AAAA02020202000000000000000000553B
+:1024F000AAAA020202020000000000000000000080
+:1025000000AAAA020202000000000000000000551C
+:10251000AA00AA020202000000000000000000550C
+:10252000AAAA0002020200000000000000000055FC
+:10253000AAAAAA0002020000000000000000005544
+:10254000AAAAAA0200020000000000000000005534
+:10255000AAAAAA0202000000000000000000005524
+:10256000AAAAAA0202020000000000000000005512
+:10257000AAAAAA0202020000000000000000005502
+:10258000AAAAAA02020200000000000000000055F2
+:10259000AAAAAA02020200000000000000000055E2
+:1025A000AAAAAA02020200000000000000000055D2
+:1025B000AAAAAA02020200000000000000000055C2
+:1025C000AAAAAA02020200000000000000000055B2
+:1025D000AAAAAA02020200000000000000000055A2
+:1025E000AAAAAA0202020000000000000000005592
+:1025F000AAAAAA02020200000000000000000000D7
+:1026000000AAAAAA020202000000000000000000C6
+:102610004000AAAA02020200000000000000000020
+:1026200040AA00AA02020200000000000000000010
+:1026300040AAAA0002020200000000000000000000
+:1026400040AAAAAA00020200000000000000000048
+:1026500040AAAAAA02000200000000000000000038
+:1026600040AAAAAA02020000000000000000000028
+:1026700040AAAAAA02020200000000000000000016
+:1026800040AAAAAA02020200000000000000000006
+:1026900040AAAAAA020202000000000000000000F6
+:1026A00040AAAAAA020202000000000000000000E6
+:1026B00040AAAAAA020202000000000000000000D6
+:1026C00040AAAAAA020202000000000000000000C6
+:1026D00040AAAAAA020202000000000000000000B6
+:1026E00040AAAAAA020202000000000000000000A6
+:1026F00054AAAAAA02020200000000000000000082
+:1027000000AAAAAA020202000000000000000000C5
+:102710004000AAAA0202020000000000000000001F
+:1027200040AA00AA0202020000000000000000000F
+:1027300040AAAA00020202000000000000000000FF
+:1027400040AAAAAA00020200000000000000000047
+:1027500040AAAAAA02000200000000000000000037
+:1027600040AAAAAA02020000000000000000000027
+:1027700040AAAAAA02020200000000000000000015
+:1027800040AAAAAA02020200000000000000000005
+:1027900040AAAAAA020202000000000000000000F5
+:1027A00040AAAAAA020202000000000000000000E5
+:1027B00040AAAAAA020202000000000000000000D5
+:1027C00040AAAAAA020202000000000000000000C5
+:1027D00040AAAAAA020202000000000000000000B5
+:1027E00040AAAAAA020202000000000000000000A5
+:1027F00054AAAAAA02020200000000000000000081
+:1028000000AAAAAA0202020000000000000000556F
+:102810002A00AAAA020202000000000000000055DF
+:102820002AAA00AA020202000000000000000055CF
+:102830002AAAAA00020202000000000000000055BF
+:102840002AAAAAAA00020200000000000000005507
+:102850002AAAAAAA020002000000000000000055F7
+:102860002AAAAAAA020200000000000000000055E7
+:102870002AAAAAAA020202000000000000000055D5
+:102880002AAAAAAA020202000000000000000055C5
+:102890002AAAAAAA020202000000000000000055B5
+:1028A0002AAAAAAA020202000000000000000055A5
+:1028B0002AAAAAAA02020200000000000000005595
+:1028C0002AAAAAAA02020200000000000000005585
+:1028D0002AAAAAAA02020200000000000000005575
+:1028E0002AAAAAAA02020200000000000000005565
+:1028F00002AAAAAA020202000000000000000000D2
+:1029000000AAAAAA0202020200000000000000556C
+:102910002A00AAAA020202000000000000000055DE
+:102920002AAA00AA020202000000000000000055CE
+:102930002AAAAA00020202000000000000000055BE
+:102940002AAAAAAA00020200000000000000005506
+:102950002AAAAAAA020002000000000000000055F6
+:102960002AAAAAAA020200000000000000000055E6
+:102970002AAAAAAA020202000000000000000055D4
+:102980002AAAAAAA020202000000000000000055C4
+:102990002AAAAAAA020202000000000000000055B4
+:1029A0002AAAAAAA020202000000000000000055A4
+:1029B0002AAAAAAA02020200000000000000005594
+:1029C0002AAAAAAA02020200000000000000005584
+:1029D0002AAAAAAA02020200000000000000005574
+:1029E0002AAAAAAA02020200000000000000005564
+:1029F00002AAAAAA020202000000000000000000D1
+:102A000000AAAAAAAA020202020000000000000016
+:102A10004000AAAAAA020202000000000000000072
+:102A200040AA00AAAA020202000000000000000062
+:102A300040AAAA00AA020202000000000000000052
+:102A400040AAAAAA00020202000000000000000042
+:102A500040AAAAAAAA00020200000000000000008A
+:102A600040AAAAAAAA02000200000000000000007A
+:102A700040AAAAAAAA02020000000000000000006A
+:102A800040AAAAAAAA020202000000000000000058
+:102A900040AAAAAAAA020202000000000000000048
+:102AA00040AAAAAAAA020202000000000000000038
+:102AB00040AAAAAAAA020202000000000000000028
+:102AC00040AAAAAAAA020202000000000000000018
+:102AD00040AAAAAAAA020202000000000000000008
+:102AE00040AAAAAAAA0202020000000000000000F8
+:102AF00055AAAAAAAA0202020000000000000000D3
+:102B000000AAAAAAAA020202020200000000000013
+:102B10004000AAAAAA02020202000000000000006F
+:102B200040AA00AAAA02020202000000000000005F
+:102B300040AAAA00AA02020202000000000000004F
+:102B400040AAAAAA0002020202000000000000003F
+:102B500040AAAAAAAA000202020000000000000087
+:102B600040AAAAAAAA020002020000000000000077
+:102B700040AAAAAAAA020200020000000000000067
+:102B800040AAAAAAAA020202000000000000000057
+:102B900040AAAAAAAA020202020000000000000045
+:102BA00040AAAAAAAA020202020000000000000035
+:102BB00040AAAAAAAA020202020000000000000025
+:102BC00040AAAAAAAA020202020000000000000015
+:102BD00040AAAAAAAA020202020000000000000005
+:102BE00040AAAAAAAA0202020200000000000000F5
+:102BF00055AAAAAAAA0202020200000000000000D0
+:102C000000AAAAAAAAAA0202020202000000005513
+:102C10002A00AAAAAAAA0202020200000000005585
+:102C20002AAA00AAAAAA0202020200000000005575
+:102C30002AAAAA00AAAA0202020200000000005565
+:102C40002AAAAAAA00AA0202020200000000005555
+:102C50002AAAAAAAAA000202020200000000005545
+:102C60002AAAAAAAAAAA000202020000000000558D
+:102C70002AAAAAAAAAAA020002020000000000557D
+:102C80002AAAAAAAAAAA020200020000000000556D
+:102C90002AAAAAAAAAAA020202000000000000555D
+:102CA0002AAAAAAAAAAA020202020000000000554B
+:102CB0002AAAAAAAAAAA020202020000000000553B
+:102CC0002AAAAAAAAAAA020202020000000000552B
+:102CD0002AAAAAAAAAAA020202020000000000551B
+:102CE0002AAAAAAAAAAA020202020000000000550B
+:102CF00000AAAAAAAAAA020202020000000000007A
+:102D000000AAAAAAAAAA0202020202020000005510
+:102D10002A00AAAAAAAA0202020202000000005582
+:102D20002AAA00AAAAAA0202020202000000005572
+:102D30002AAAAA00AAAA0202020202000000005562
+:102D40002AAAAAAA00AA0202020202000000005552
+:102D50002AAAAAAAAA000202020202000000005542
+:102D60002AAAAAAAAAAA000202020200000000558A
+:102D70002AAAAAAAAAAA020002020200000000557A
+:102D80002AAAAAAAAAAA020200020200000000556A
+:102D90002AAAAAAAAAAA020202000200000000555A
+:102DA0002AAAAAAAAAAA020202020000000000554A
+:102DB0002AAAAAAAAAAA0202020202000000005538
+:102DC0002AAAAAAAAAAA0202020202000000005528
+:102DD0002AAAAAAAAAAA0202020202000000005518
+:102DE0002AAAAAAAAAAA0202020202000000005508
+:102DF00000AAAAAAAAAA0202020202000000000077
+:102E000000AAAAAAAAAAAA020202020202000000BA
+:102E10004000AAAAAAAAAA02020202020000000016
+:102E200040AA00AAAAAAAA02020202020000000006
+:102E300040AAAA00AAAAAA020202020200000000F6
+:102E400040AAAAAA00AAAA020202020200000000E6
+:102E500040AAAAAAAA00AA020202020200000000D6
+:102E600040AAAAAAAAAA00020202020200000000C6
+:102E700040AAAAAAAAAAAA0002020202000000000E
+:102E800040AAAAAAAAAAAA020002020200000000FE
+:102E900040AAAAAAAAAAAA020200020200000000EE
+:102EA00040AAAAAAAAAAAA020202000200000000DE
+:102EB00040AAAAAAAAAAAA020202020000000000CE
+:102EC00040AAAAAAAAAAAA020202020200000000BC
+:102ED00040AAAAAAAAAAAA020202020200000000AC
+:102EE00040AAAAAAAAAAAA0202020202000000009C
+:102EF00055AAAAAAAAAAAA02020202020000000077
+:102F000000AAAAAAAAAAAAAA02020202020200000F
+:102F10004000AAAAAAAAAAAA020202020202000069
+:102F200040AA00AAAAAAAAAA020202020202000059
+:102F300040AAAA00AAAAAAAA020202020202000049
+:102F400040AAAAAA00AAAAAA020202020202000039
+:102F500040AAAAAAAA00AAAA020202020202000029
+:102F600040AAAAAAAAAA00AA020202020202000019
+:102F700040AAAAAAAAAAAA00020202020202000009
+:102F800040AAAAAAAAAAAAAA000202020202000051
+:102F900040AAAAAAAAAAAAAA020002020202000041
+:102FA00040AAAAAAAAAAAAAA020200020202000031
+:102FB00040AAAAAAAAAAAAAA020202000202000021
+:102FC00040AAAAAAAAAAAAAA020202020002000011
+:102FD00040AAAAAAAAAAAAAA020202020200000001
+:102FE00040AAAAAAAAAAAAAA0202020202020000EF
+:102FF00055AAAAAAAAAAAAAA0202020202020000CA
+:1030000000A9A9A9A9A9A9A9A9010101010101551D
+:103010002A00A9A9A9A9A9A9A9010101010101558C
+:103020002AA900A9A9A9A9A9A9010101010101557C
+:103030002AA9A900A9A9A9A9A9010101010101556C
+:103040002AA9A9A900A9A9A9A9010101010101555C
+:103050002AA9A9A9A900A9A9A9010101010101554C
+:103060002AA9A9A9A9A900A9A9010101010101553C
+:103070002AA9A9A9A9A9A900A9010101010101552C
+:103080002AA9A9A9A9A9A9A900010101010101551C
+:103090002AA9A9A9A9A9A9A9A90001010101015564
+:1030A0002AA9A9A9A9A9A9A9A90100010101015554
+:1030B0002AA9A9A9A9A9A9A9A90101000101015544
+:1030C0002AA9A9A9A9A9A9A9A90101010001015534
+:1030D0002AA9A9A9A9A9A9A9A90101010100015524
+:1030E0002AA9A9A9A9A9A9A9A90101010101005514
+:1030F00000A9A9A9A9A9A9A9A90101010101010082
+:1031000000A9A9A9A9A9A9A9A9A901010101015475
+:103110002800A9A9A9A9A9A9A9A9010101010154E6
+:1031200028A900A9A9A9A9A9A9A9010101010154D6
+:1031300028A9A900A9A9A9A9A9A9010101010154C6
+:1031400028A9A9A900A9A9A9A9A9010101010154B6
+:1031500028A9A9A9A900A9A9A9A9010101010154A6
+:1031600028A9A9A9A9A900A9A9A901010101015496
+:1031700028A9A9A9A9A9A900A9A901010101015486
+:1031800028A9A9A9A9A9A9A900A901010101015476
+:1031900028A9A9A9A9A9A9A9A90001010101015466
+:1031A00028A9A9A9A9A9A9A9A9A9000101010154AE
+:1031B00028A9A9A9A9A9A9A9A9A90100010101549E
+:1031C00028A9A9A9A9A9A9A9A9A90101000101548E
+:1031D00028A9A9A9A9A9A9A9A9A90101010001547E
+:1031E00028A9A9A9A9A9A9A9A9A90101010100546E
+:1031F00001A9A9A9A9A9A9A9A9A9010101010100D8
+:1032000000A9A9A9A9A9A9A9A9A9010101010101C7
+:103210005600A9A9A9A9A9A9A9A90101010101010A
+:1032200056A900A9A9A9A9A9A9A9010101010101FA
+:1032300056A9A900A9A9A9A9A9A9010101010101EA
+:1032400056A9A9A900A9A9A9A9A9010101010101DA
+:1032500056A9A9A9A900A9A9A9A9010101010101CA
+:1032600056A9A9A9A9A900A9A9A9010101010101BA
+:1032700056A9A9A9A9A9A900A9A9010101010101AA
+:1032800056A9A9A9A9A9A9A900A90101010101019A
+:1032900056A9A9A9A9A9A9A9A9000101010101018A
+:1032A00056A9A9A9A9A9A9A9A9A9000101010101D2
+:1032B00056A9A9A9A9A9A9A9A9A9010001010101C2
+:1032C00056A9A9A9A9A9A9A9A9A9010100010101B2
+:1032D00056A9A9A9A9A9A9A9A9A9010101000101A2
+:1032E00056A9A9A9A9A9A9A9A9A901010101000192
+:1032F00054A9A9A9A9A9A9A9A9A901010101010084
+:1033000000A9A9A9A9A9A9A9A9A9A901010101001F
+:103310005500A9A9A9A9A9A9A9A9A9010101010063
+:1033200055A900A9A9A9A9A9A9A9A9010101010053
+:1033300055A9A900A9A9A9A9A9A9A9010101010043
+:1033400055A9A9A900A9A9A9A9A9A9010101010033
+:1033500055A9A9A9A900A9A9A9A9A9010101010023
+:1033600055A9A9A9A9A900A9A9A9A9010101010013
+:1033700055A9A9A9A9A9A900A9A9A9010101010003
+:1033800055A9A9A9A9A9A9A900A9A90101010100F3
+:1033900055A9A9A9A9A9A9A9A900A90101010100E3
+:1033A00055A9A9A9A9A9A9A9A9A9000101010100D3
+:1033B00055A9A9A9A9A9A9A9A9A9A900010101001B
+:1033C00055A9A9A9A9A9A9A9A9A9A901000101000B
+:1033D00055A9A9A9A9A9A9A9A9A9A90101000100FB
+:1033E00055A9A9A9A9A9A9A9A9A9A90101010000EB
+:1033F00055A9A9A9A9A9A9A9A9A9A90101010100DA
+:1034000000A9A9A9A9A9A9A9A9A9A9A90101015521
+:103410000000A9A9A9A9A9A9A9A9A9A901010155BA
+:1034200000A900A9A9A9A9A9A9A9A9A901010155AA
+:1034300000A9A900A9A9A9A9A9A9A9A9010101559A
+:1034400000A9A9A900A9A9A9A9A9A9A9010101558A
+:1034500000A9A9A9A900A9A9A9A9A9A9010101557A
+:1034600000A9A9A9A9A900A9A9A9A9A9010101556A
+:1034700000A9A9A9A9A9A900A9A9A9A9010101555A
+:1034800000A9A9A9A9A9A9A900A9A9A9010101554A
+:1034900000A9A9A9A9A9A9A9A900A9A9010101553A
+:1034A00000A9A9A9A9A9A9A9A9A900A9010101552A
+:1034B00000A9A9A9A9A9A9A9A9A9A900010101551A
+:1034C00000A9A9A9A9A9A9A9A9A9A9A90001015562
+:1034D00000A9A9A9A9A9A9A9A9A9A9A90100015552
+:1034E00000A9A9A9A9A9A9A9A9A9A9A90101005542
+:1034F00000A9A9A9A9A9A9A9A9A9A9A90101010086
+:1035000000A9A9A9A9A9A9A9A9A9A9A9A901015479
+:103510000100A9A9A9A9A9A9A9A9A9A9A901015411
+:1035200001A900A9A9A9A9A9A9A9A9A9A901015401
+:1035300001A9A900A9A9A9A9A9A9A9A9A9010154F1
+:1035400001A9A9A900A9A9A9A9A9A9A9A9010154E1
+:1035500001A9A9A9A900A9A9A9A9A9A9A9010154D1
+:1035600001A9A9A9A9A900A9A9A9A9A9A9010154C1
+:1035700001A9A9A9A9A9A900A9A9A9A9A9010154B1
+:1035800001A9A9A9A9A9A9A900A9A9A9A9010154A1
+:1035900001A9A9A9A9A9A9A9A900A9A9A901015491
+:1035A00001A9A9A9A9A9A9A9A9A900A9A901015481
+:1035B00001A9A9A9A9A9A9A9A9A9A900A901015471
+:1035C00001A9A9A9A9A9A9A9A9A9A9A90001015461
+:1035D00001A9A9A9A9A9A9A9A9A9A9A9A9000154A9
+:1035E00001A9A9A9A9A9A9A9A9A9A9A9A901005499
+:1035F00001A9A9A9A9A9A9A9A9A9A9A9A9010100DC
+:1036000000A9A9A9A9A9A9A9A9A9A9A9A9A9010123
+:103610005400A9A9A9A9A9A9A9A9A9A9A9A9010168
+:1036200054A900A9A9A9A9A9A9A9A9A9A9A9010158
+:1036300054A9A900A9A9A9A9A9A9A9A9A9A9010148
+:1036400054A9A9A900A9A9A9A9A9A9A9A9A9010138
+:1036500054A9A9A9A900A9A9A9A9A9A9A9A9010128
+:1036600054A9A9A9A9A900A9A9A9A9A9A9A9010118
+:1036700054A9A9A9A9A9A900A9A9A9A9A9A9010108
+:1036800054A9A9A9A9A9A9A900A9A9A9A9A90101F8
+:1036900054A9A9A9A9A9A9A9A900A9A9A9A90101E8
+:1036A00054A9A9A9A9A9A9A9A9A900A9A9A90101D8
+:1036B00054A9A9A9A9A9A9A9A9A9A900A9A90101C8
+:1036C00054A9A9A9A9A9A9A9A9A9A9A900A90101B8
+:1036D00054A9A9A9A9A9A9A9A9A9A9A9A9000101A8
+:1036E00054A9A9A9A9A9A9A9A9A9A9A9A9A90001F0
+:1036F00054A9A9A9A9A9A9A9A9A9A9A9A9A90100E0
+:1037000000555555565656565555555555555554BB
+:103710000100555555555555555555555555555403
+:1037200001550055555555555555555555555554F3
+:1037300001555500555555555555555555555554E3
+:1037400001555555005555555555555555555554D3
+:1037500001555555550055555555555555555554C3
+:1037600001555555555500555555555555555554B3
+:1037700001555555555555005555555555555554A3
+:103780000155555555555555005555555555555493
+:103790000155555555555555550055555555555483
+:1037A0000155555555555555555500555555555473
+:1037B0000155555555555555555555005555555463
+:1037C0000155555555555555555555550055555453
+:1037D0000155555555555555555555555500555443
+:1037E0000155555555555555555555555555005433
+:1037F0000155555555555555555555555555550022
+:1038000000555556565656565655555555555556B6
+:1038100054005555555555555555555555555556AD
+:10382000545500555555555555555555555555569D
+:10383000545555005555555555555555555555568D
+:10384000545555550055555555555555555555567D
+:10385000545555555500555555555555555555566D
+:10386000545555555555005555555555555555565D
+:10387000545555555555550055555555555555564D
+:10388000545555555555555500555555555555563D
+:10389000545555555555555555005555555555562D
+:1038A000545555555555555555550055555555561D
+:1038B000545555555555555555555500555555560D
+:1038C00054555555555555555555555500555556FD
+:1038D00054555555555555555555555555005556ED
+:1038E00054555555555555555555555555550056DD
+:1038F00054555555555555555555555555555500CE
+:10390000005555565656565656555656555555AA5F
+:10391000010055555656565655555555555555AAA7
+:10392000015500555656565655555555555555AA97
+:10393000015555005656565655555555555555AA87
+:10394000015555550056565655555555555555AA78
+:10395000015555555600565655555555555555AA68
+:10396000015555555656005655555555555555AA58
+:10397000015555555656560055555555555555AA48
+:10398000015555555656565600555555555555AA37
+:10399000015555555656565655005555555555AA27
+:1039A000015555555656565655550055555555AA17
+:1039B000015555555656565655555500555555AA07
+:1039C000015555555656565655555555005555AAF7
+:1039D000015555555656565655555555550055AAE7
+:1039E000015555555656565655555555555500AAD7
+:1039F0000155555555555555555555555555550020
+:103A0000005555565656565656565656565656A85C
+:103A1000540056565656565656565656565656A84C
+:103A2000545600565656565656565656565656A83C
+:103A3000545656005656565656565656565656A82C
+:103A4000545656560056565656565656565656A81C
+:103A5000545656565600565656565656565656A80C
+:103A6000545656565656005656565656565656A8FC
+:103A7000545656565656560056565656565656A8EC
+:103A8000545656565656565600565656565656A8DC
+:103A9000545656565656565656005656565656A8CC
+:103AA000545656565656565656560056565656A8BC
+:103AB000545656565656565656565600565656A8AC
+:103AC000545656565656565656565656005656A89C
+:103AD000545656565656565656565656560056A88C
+:103AE000545656565656565656565656565600A87C
+:103AF00054555556565656565454565656565600C4
+:103B000000565656565656565656565656565602FF
+:103B10000100565656565656565656565656560244
+:103B20000156005656565656565656565656560234
+:103B30000156560056565656565656565656560224
+:103B40000156565600565656565656565656560214
+:103B50000156565656005656565656565656560204
+:103B600001565656565600565656565656565602F4
+:103B700001565656565656005656565656565602E4
+:103B800001565656565656560056565656565602D4
+:103B900001565656565656565600565656565602C4
+:103BA00001565656565656565656005656565602B4
+:103BB00001565656565656565656560056565602A4
+:103BC0000156565656565656565656560056560294
+:103BD0000156565656565656565656565600560284
+:103BE0000156565656565656565656565656000274
+:103BF0000155545656565656565656565656560013
+:103C0000005656565656565656565656565656A858
+:103C1000540056565656565656565656565656A84A
+:103C2000545600565656565656565656565656A83A
+:103C3000545656005656565656565656565656A82A
+:103C4000545656560056565656565656565656A81A
+:103C5000545656565600565656565656565656A80A
+:103C6000545656565656005656565656565656A8FA
+:103C7000545656565656560056565656565656A8EA
+:103C8000545656565656565600565656565656A8DA
+:103C9000545656565656565656005656565656A8CA
+:103CA000545656565656565656560056565656A8BA
+:103CB000545656565656565656565600565656A8AA
+:103CC000545656565656565656565656005656A89A
+:103CD000545656565656565656565656560056A88A
+:103CE000545656565656565656565656565600A87A
+:103CF00054565656565656565656565656565600BC
+:103D000000565656565656565656565656565602FD
+:103D10000100565656565656565656565656560242
+:103D20000156005656565656565656565656560232
+:103D30000156560056565656565656565656560222
+:103D40000156565600565656565656565656560212
+:103D50000156565656005656565656565656560202
+:103D600001565656565600565656565656565602F2
+:103D700001565656565656005656565656565602E2
+:103D800001565656565656560056565656565602D2
+:103D900001565656565656565600565656565602C2
+:103DA00001565656565656565656005656565602B2
+:103DB00001565656565656565656560056565602A2
+:103DC0000156565656565656565656560056560292
+:103DD0000156565656565656565656565600560282
+:103DE0000156565656565656565656565656000272
+:103DF000015656565656565656565656565656000E
+:103E0000005656565656565656565656565656A856
+:103E1000540056565656565656565656565656A848
+:103E2000545600565656565656565656565656A838
+:103E3000545656005656565656565656565656A828
+:103E4000545656560056565656565656565656A818
+:103E5000545656565600565656565656565656A808
+:103E6000545656565656005656565656565656A8F8
+:103E7000545656565656560056565656565656A8E8
+:103E8000545656565656565600565656565656A8D8
+:103E9000545656565656565656005656565656A8C8
+:103EA000545656565656565656560056565656A8B8
+:103EB000545656565656565656565600565656A8A8
+:103EC000545656565656565656565656005656A898
+:103ED000545656565656565656565656560056A888
+:103EE000545656565656565656565656565600A878
+:103EF00054565656565656565656565656565600BA
+:103F000000AAAAAAAAAAAAAAAAAAAAAAAAAAAA0263
+:103F10000100AAAAAAAAAAAAAAAAAAAAAAAAAA02FC
+:103F200001AA00AAAAAAAAAAAAAAAAAAAAAAAA02EC
+:103F300001AAAA00AAAAAAAAAAAAAAAAAAAAAA02DC
+:103F400001AAAAAA00AAAAAAAAAAAAAAAAAAAA02CC
+:103F500001AAAAAAAA00AAAAAAAAAAAAAAAAAA02BC
+:103F600001AAAAAAAAAA00AAAAAAAAAAAAAAAA02AC
+:103F700001AAAAAAAAAAAA00AAAAAAAAAAAAAA029C
+:103F800001AAAAAAAAAAAAAA00AAAAAAAAAAAA028C
+:103F900001AAAAAAAAAAAAAAAA00AAAAAAAAAA027C
+:103FA00001AAAAAAAAAAAAAAAAAA00AAAAAAAA026C
+:103FB00001AAAAAAAAAAAAAAAAAAAA00AAAAAA025C
+:103FC00001AAAAAAAAAAAAAAAAAAAAAA00AAAA024C
+:103FD00001AAAAAAAAAAAAAAAAAAAAAAAA00AA023C
+:103FE00001AAAAAAAAAAAAAAAAAAAAAAAAAA00022C
+:103FF00001AAAAAAAAAAAAAAAAAAAAAAAAAAAA0074
+:1040000000AAAAAAAAAAAAAAAAAAAAAAAAAAAAA8BC
+:104010005400AAAAAAAAAAAAAAAAAAAAAAAAAAA802
+:1040200054AA00AAAAAAAAAAAAAAAAAAAAAAAAA8F2
+:1040300054AAAA00AAAAAAAAAAAAAAAAAAAAAAA8E2
+:1040400054AAAAAA00AAAAAAAAAAAAAAAAAAAAA8D2
+:1040500054AAAAAAAA00AAAAAAAAAAAAAAAAAAA8C2
+:1040600054AAAAAAAAAA00AAAAAAAAAAAAAAAAA8B2
+:1040700054AAAAAAAAAAAA00AAAAAAAAAAAAAAA8A2
+:1040800054AAAAAAAAAAAAAA00AAAAAAAAAAAAA892
+:1040900054AAAAAAAAAAAAAAAA00AAAAAAAAAAA882
+:1040A00054AAAAAAAAAAAAAAAAAA00AAAAAAAAA872
+:1040B00054AAAAAAAAAAAAAAAAAAAA00AAAAAAA862
+:1040C00054AAAAAAAAAAAAAAAAAAAAAA00AAAAA852
+:1040D00054AAAAAAAAAAAAAAAAAAAAAAAA00AAA842
+:1040E00054AAAAAAAAAAAAAAAAAAAAAAAAAA00A832
+:1040F00054AAAAAAAAAAAAAAAAAAAAAAAAAAAA0020
+:1041000000AAAAAAAAAAAAAAAAAAAAAAAAAAAA0261
+:104110000100AAAAAAAAAAAAAAAAAAAAAAAAAA02FA
+:1041200001AA00AAAAAAAAAAAAAAAAAAAAAAAA02EA
+:1041300001AAAA00AAAAAAAAAAAAAAAAAAAAAA02DA
+:1041400001AAAAAA00AAAAAAAAAAAAAAAAAAAA02CA
+:1041500001AAAAAAAA00AAAAAAAAAAAAAAAAAA02BA
+:1041600001AAAAAAAAAA00AAAAAAAAAAAAAAAA02AA
+:1041700001AAAAAAAAAAAA00AAAAAAAAAAAAAA029A
+:1041800001AAAAAAAAAAAAAA00AAAAAAAAAAAA028A
+:1041900001AAAAAAAAAAAAAAAA00AAAAAAAAAA027A
+:1041A00001AAAAAAAAAAAAAAAAAA00AAAAAAAA026A
+:1041B00001AAAAAAAAAAAAAAAAAAAA00AAAAAA025A
+:1041C00001AAAAAAAAAAAAAAAAAAAAAA00AAAA024A
+:1041D00001AAAAAAAAAAAAAAAAAAAAAAAA00AA023A
+:1041E00001AAAAAAAAAAAAAAAAAAAAAAAAAA00022A
+:1041F00001AAAAAAAAAAAAAAAAAAAAAAAAAAAA0072
+:1042000000AAAAAAAAAAAAAAAAAAAAAAAAAAAAA8BA
+:104210005400AAAAAAAAAAAAAAAAAAAAAAAAAAA800
+:1042200054AA00AAAAAAAAAAAAAAAAAAAAAAAAA8F0
+:1042300054AAAA00AAAAAAAAAAAAAAAAAAAAAAA8E0
+:1042400054AAAAAA00AAAAAAAAAAAAAAAAAAAAA8D0
+:1042500054AAAAAAAA00AAAAAAAAAAAAAAAAAAA8C0
+:1042600054AAAAAAAAAA00AAAAAAAAAAAAAAAAA8B0
+:1042700054AAAAAAAAAAAA00AAAAAAAAAAAAAAA8A0
+:1042800054AAAAAAAAAAAAAA00AAAAAAAAAAAAA890
+:1042900054AAAAAAAAAAAAAAAA00AAAAAAAAAAA880
+:1042A00054AAAAAAAAAAAAAAAAAA00AAAAAAAAA870
+:1042B00054AAAAAAAAAAAAAAAAAAAA00AAAAAAA860
+:1042C00054AAAAAAAAAAAAAAAAAAAAAA00AAAAA850
+:1042D00054AAAAAAAAAAAAAAAAAAAAAAAA00AAA840
+:1042E00054AAAAAAAAAAAAAAAAAAAAAAAAAA00A830
+:1042F00054AAAAAAAAAAAAAAAAAAAAAAAAAAAA001E
+:1043000000AAAAAAAAAAAAAAAAAAAAAAAAAAAA025F
+:104310000100AAAAAAAAAAAAAAAAAAAAAAAAAA02F8
+:1043200001AA00AAAAAAAAAAAAAAAAAAAAAAAA02E8
+:1043300001AAAA00AAAAAAAAAAAAAAAAAAAAAA02D8
+:1043400001AAAAAA00AAAAAAAAAAAAAAAAAAAA02C8
+:1043500001AAAAAAAA00AAAAAAAAAAAAAAAAAA02B8
+:1043600001AAAAAAAAAA00AAAAAAAAAAAAAAAA02A8
+:1043700001AAAAAAAAAAAA00AAAAAAAAAAAAAA0298
+:1043800001AAAAAAAAAAAAAA00AAAAAAAAAAAA0288
+:1043900001AAAAAAAAAAAAAAAA00AAAAAAAAAA0278
+:1043A00001AAAAAAAAAAAAAAAAAA00AAAAAAAA0268
+:1043B00001AAAAAAAAAAAAAAAAAAAA00AAAAAA0258
+:1043C00001AAAAAAAAAAAAAAAAAAAAAA00AAAA0248
+:1043D00001AAAAAAAAAAAAAAAAAAAAAAAA00AA0238
+:1043E00001AAAAAAAAAAAAAAAAAAAAAAAAAA000228
+:1043F00001AAAAAAAAAAAAAAAAAAAAAAAAAAAA0070
+:1044000000A9A9A9A9A9A9A9A9A9A9A9A9A9A8A8C7
+:104410005400A9A9A9A9A9A9A9A9A9A9A9A9A8A80C
+:1044200054A900A9A9A9A9A9A9A9A9A9A9A9A8A8FC
+:1044300054A9A900A9A9A9A9A9A9A9A9A9A9A8A8EC
+:1044400054A9A9A900A9A9A9A9A9A9A9A9A9A8A8DC
+:1044500054A9A9A9A900A9A9A9A9A9A9A9A9A8A8CC
+:1044600054A9A9A9A9A900A9A9A9A9A9A9A9A8A8BC
+:1044700054A9A9A9A9A9A900A9A9A9A9A9A9A8A8AC
+:1044800054A9A9A9A9A9A9A900A9A9A9A9A9A8A89C
+:1044900054A9A9A9A9A9A9A9A900A9A9A9A9A8A88C
+:1044A00054A9A9A9A9A9A9A9A9A900A9A9A9A8A87C
+:1044B00054A9A9A9A9A9A9A9A9A9A900A9A9A8A86C
+:1044C00054A9A9A9A9A9A9A9A9A9A9A900A9A8A85C
+:1044D00054A9A9A9A9A9A9A9A9A9A9A9A900A8A84C
+:1044E00054A9A9A9A9A9A9A9A9A9A9A9A9A900A83B
+:1044F00054A9A9A9A9A9A9A9A9A9A9A9A9A9A8002B
+:1045000000A9A9A9A9A9A9A9A9A9A9A9A9A8A8006F
+:104510000000A9A9A9A9A9A9A9A9A9A9A9A8A80008
+:1045200000A900A9A9A9A9A9A9A9A9A9A9A8A800F8
+:1045300000A9A900A9A9A9A9A9A9A9A9A9A8A800E8
+:1045400000A9A9A900A9A9A9A9A9A9A9A9A8A800D8
+:1045500000A9A9A9A900A9A9A9A9A9A9A9A8A800C8
+:1045600000A9A9A9A9A900A9A9A9A9A9A9A8A800B8
+:1045700000A9A9A9A9A9A900A9A9A9A9A9A8A800A8
+:1045800000A9A9A9A9A9A9A900A9A9A9A9A8A80098
+:1045900000A9A9A9A9A9A9A9A900A9A9A9A8A80088
+:1045A00000A9A9A9A9A9A9A9A9A900A9A9A8A80078
+:1045B00000A9A9A9A9A9A9A9A9A9A900A9A8A80068
+:1045C00000A9A9A9A9A9A9A9A9A9A9A900A8A80058
+:1045D00000A9A9A9A9A9A9A9A9A9A9A9A900A80047
+:1045E00000A9A9A9A9A9A9A9A9A9A9A9A9A8000037
+:1045F00000A9A9A9A9A9A9A9A9A9A9A9A9A8A8007F
+:1046000000A9A9A9A9A9A9A9A9A9A9A9A8A8A8AAC5
+:104610005500A9A9A9A9A9A9A9A9A9A9A8A8A8AA09
+:1046200055A900A9A9A9A9A9A9A9A9A9A8A8A8AAF9
+:1046300055A9A900A9A9A9A9A9A9A9A9A8A8A8AAE9
+:1046400055A9A9A900A9A9A9A9A9A9A9A8A8A8AAD9
+:1046500055A9A9A9A900A9A9A9A9A9A9A8A8A8AAC9
+:1046600055A9A9A9A9A900A9A9A9A9A9A8A8A8AAB9
+:1046700055A9A9A9A9A9A900A9A9A9A9A8A8A8AAA9
+:1046800055A9A9A9A9A9A9A900A9A9A9A8A8A8AA99
+:1046900055A9A9A9A9A9A9A9A900A9A9A8A8A8AA89
+:1046A00055A9A9A9A9A9A9A9A9A900A9A8A8A8AA79
+:1046B00055A9A9A9A9A9A9A9A9A9A900A8A8A8AA69
+:1046C00055A9A9A9A9A9A9A9A9A9A9A900A8A8AA58
+:1046D00055A9A9A9A9A9A9A9A9A9A9A9A800A8AA48
+:1046E00055A9A9A9A9A9A9A9A9A9A9A9A8A800AA38
+:1046F00055A9A9A9A9A9A9A9A9A9A9A9A8A8A8002A
+:104700000055555555555555555555545454000259
+:10471000010055555555555555555554545400029D
+:10472000015500555555555555555554545400028D
+:10473000015555005555555555555554545400027D
+:10474000015555550055555555555554545400026D
+:10475000015555555500555555555554545400025D
+:10476000015555555555005555555554545400024D
+:10477000015555555555550055555554545400023D
+:10478000015555555555555500555554545400022D
+:10479000015555555555555555005554545400021D
+:1047A000015555555555555555550054545400020D
+:1047B00001555555555555555555550054540002FC
+:1047C00001555555555555555555555400540002EC
+:1047D00001555555555555555555555454000002DC
+:1047E0000155555555555555555555545454000278
+:1047F000015555555555555555555554545400006A
+:10480000005555555555555555555454540000A807
+:10481000540055555555555555555454540000A8F8
+:10482000545500555555555555555454540000A8E8
+:10483000545555005555555555555454540000A8D8
+:10484000545555550055555555555454540000A8C8
+:10485000545555555500555555555454540000A8B8
+:10486000545555555555005555555454540000A8A8
+:10487000545555555555550055555454540000A898
+:10488000545555555555555500555454540000A888
+:10489000545555555555555555005454540000A878
+:1048A000545555555555555555550054540000A867
+:1048B000545555555555555555555400540000A857
+:1048C000545555555555555555555454000000A847
+:1048D000545555555555555555555454540000A8E3
+:1048E000545555555555555555555454540000A8D3
+:1048F000545555555555555555555454540000006B
+:10490000005555555555555555545454000000A85B
+:10491000540055555555555555545454000000A84C
+:10492000545500555555555555545454000000A83C
+:10493000545555005555555555545454000000A82C
+:10494000545555550055555555545454000000A81C
+:10495000545555555500555555545454000000A80C
+:10496000545555555555005555545454000000A8FC
+:10497000545555555555550055545454000000A8EC
+:10498000545555555555555500545454000000A8DC
+:10499000545555555555555555005454000000A8CB
+:1049A000545555555555555555540054000000A8BB
+:1049B000545555555555555555545400000000A8AB
+:1049C000545555555555555555545454000000A847
+:1049D000545555555555555555545454000000A837
+:1049E000545555555555555555545454000000A827
+:1049F00054555555555555555554545400000000BF
+:104A00000055555555555555545454000000000255
+:104A10000100555555555555545454000000000299
+:104A20000155005555555555545454000000000289
+:104A30000155550055555555545454000000000279
+:104A40000155555500555555545454000000000269
+:104A50000155555555005555545454000000000259
+:104A60000155555555550055545454000000000249
+:104A70000155555555555500545454000000000239
+:104A80000155555555555555005454000000000228
+:104A90000155555555555555540054000000000218
+:104AA0000155555555555555545400000000000208
+:104AB00001555555555555555454540000000002A4
+:104AC0000155555555555555545454000000000294
+:104AD0000155555555555555545454000000000284
+:104AE0000155555555555555545454000000000274
+:104AF0000155555555555555545454000000000066
+:104B000000555555555555545454000000000002A9
+:104B100001005555555555545454000000000002ED
+:104B200001550055555555545454000000000002DD
+:104B300001555500555555545454000000000002CD
+:104B400001555555005555545454000000000002BD
+:104B500001555555550055545454000000000002AD
+:104B6000015555555555005454540000000000029D
+:104B7000015555555555550054540000000000028C
+:104B8000015555555555555400540000000000027C
+:104B9000015555555555555454000000000000026C
+:104BA0000155555555555554545400000000000208
+:104BB00001555555555555545454000000000002F8
+:104BC00001555555555555545454000000000002E8
+:104BD00001555555555555545454000000000002D8
+:104BE00001555555555555545454000000000002C8
+:104BF00001555555555555545454000000000000BA
+:104C0000005555555555555454540000000000A802
+:104C1000540055555555555454540000000000A8F3
+:104C2000545500555555555454540000000000A8E3
+:104C3000545555005555555454540000000000A8D3
+:104C4000545555550055555454540000000000A8C3
+:104C5000545555555500555454540000000000A8B3
+:104C6000545555555555005454540000000000A8A3
+:104C7000545555555555550054540000000000A892
+:104C8000545555555555555400540000000000A882
+:104C9000545555555555555454000000000000A872
+:104CA000545555555555555454540000000000A80E
+:104CB000545555555555555454540000000000A8FE
+:104CC000545555555555555454540000000000A8EE
+:104CD000545555555555555454540000000000A8DE
+:104CE000545555555555555454540000000000A8CE
+:104CF0005455555555555554545400000000000066
+:104D0000005555555555555454000000000000A855
+:104D1000540055555555555454000000000000A846
+:104D2000545500555555555454000000000000A836
+:104D3000545555005555555454000000000000A826
+:104D4000545555550055555454000000000000A816
+:104D5000545555555500555454000000000000A806
+:104D6000545555555555005454000000000000A8F6
+:104D7000545555555555550054000000000000A8E5
+:104D8000545555555555555400000000000000A8D5
+:104D9000545555555555555454000000000000A871
+:104DA000545555555555555454000000000000A861
+:104DB000545555555555555454000000000000A851
+:104DC000545555555555555454000000000000A841
+:104DD000545555555555555454000000000000A831
+:104DE000545555555555555454000000000000A821
+:104DF00054555555555555545400000000000000B9
+:104E0000005555555555545400000000000000024F
+:104E10000100555555555454000000000000000293
+:104E20000155005555555454000000000000000283
+:104E30000155550055555454000000000000000273
+:104E40000155555500555454000000000000000263
+:104E50000155555555005454000000000000000253
+:104E60000155555555550054000000000000000242
+:104E70000155555555555400000000000000000232
+:104E800001555555555554540000000000000002CE
+:104E900001555555555554540000000000000002BE
+:104EA00001555555555554540000000000000002AE
+:104EB000015555555555545400000000000000029E
+:104EC000015555555555545400000000000000028E
+:104ED000015555555555545400000000000000027E
+:104EE000015555555555545400000000000000026E
+:104EF0000155555555555454000000000000000060
+:104F000000555555555554000000000000000002A2
+:104F100001005555555554000000000000000002E6
+:104F200001550055555554000000000000000002D6
+:104F300001555500555554000000000000000002C6
+:104F400001555555005554000000000000000002B6
+:104F500001555555550054000000000000000002A6
+:104F60000155555555550000000000000000000295
+:104F70000155555555555400000000000000000231
+:104F80000155555555555400000000000000000221
+:104F90000155555555555400000000000000000211
+:104FA0000155555555555400000000000000000201
+:104FB00001555555555554000000000000000002F1
+:104FC00001555555555554000000000000000002E1
+:104FD00001555555555554000000000000000002D1
+:104FE00001555555555554000000000000000002C1
+:104FF00001555555555554000000000000000000B3
+:10500000005555555554000000000000000000A850
+:10501000540055555554000000000000000000A841
+:10502000545500555554000000000000000000A831
+:10503000545555005554000000000000000000A821
+:10504000545555550054000000000000000000A811
+:10505000545555555500000000000000000000A800
+:10506000545555555554000000000000000000A89C
+:10507000545555555554000000000000000000A88C
+:10508000545555555554000000000000000000A87C
+:10509000545555555554000000000000000000A86C
+:1050A000545555555554000000000000000000A85C
+:1050B000545555555554000000000000000000A84C
+:1050C000545555555554000000000000000000A83C
+:1050D000545555555554000000000000000000A82C
+:1050E000545555555554000000000000000000A81C
+:1050F00054555555555400000000000000000000B4
+:10510000005555555554000000000000000000A84F
+:10511000540055555554000000000000000000A840
+:10512000545500555554000000000000000000A830
+:10513000545555005554000000000000000000A820
+:10514000545555550054000000000000000000A810
+:10515000545555555500000000000000000000A8FF
+:10516000545555555554000000000000000000A89B
+:10517000545555555554000000000000000000A88B
+:10518000545555555554000000000000000000A87B
+:10519000545555555554000000000000000000A86B
+:1051A000545555555554000000000000000000A85B
+:1051B000545555555554000000000000000000A84B
+:1051C000545555555554000000000000000000A83B
+:1051D000545555555554000000000000000000A82B
+:1051E000545555555554000000000000000000A81B
+:1051F00054555555555400000000000000000000B3
+:10520000005555555400000000000000000000014A
+:10521000010055555400000000000000000000018E
+:10522000015500555400000000000000000000017E
+:10523000015555005400000000000000000000016E
+:10524000015555550000000000000000000000015D
+:1052500001555555540000000000000000000001F9
+:1052600001555555540000000000000000000001E9
+:1052700001555555540000000000000000000001D9
+:1052800001555555540000000000000000000001C9
+:1052900001555555540000000000000000000001B9
+:1052A00001555555540000000000000000000001A9
+:1052B0000155555554000000000000000000000199
+:1052C0000155555554000000000000000000000189
+:1052D0000155555554000000000000000000000179
+:1052E0000155555554000000000000000000000169
+:1052F000015555555400000000000000000000005A
+:105300000055555554000000000000000000000149
+:10531000010055555400000000000000000000018D
+:10532000015500555400000000000000000000017D
+:10533000015555005400000000000000000000016D
+:10534000015555550000000000000000000000015C
+:1053500001555555540000000000000000000001F8
+:1053600001555555540000000000000000000001E8
+:1053700001555555540000000000000000000001D8
+:1053800001555555540000000000000000000001C8
+:1053900001555555540000000000000000000001B8
+:1053A00001555555540000000000000000000001A8
+:1053B0000155555554000000000000000000000198
+:1053C0000155555554000000000000000000000188
+:1053D0000155555554000000000000000000000178
+:1053E0000155555554000000000000000000000168
+:1053F0000155555554000000000000000000000059
+:10540000005555540000000000000000000000A8F6
+:10541000540055540000000000000000000000A8E7
+:10542000545500540000000000000000000000A8D7
+:10543000545555000000000000000000000000A8C6
+:10544000545555540000000000000000000000A862
+:10545000545555540000000000000000000000A852
+:10546000545555540000000000000000000000A842
+:10547000545555540000000000000000000000A832
+:10548000545555540000000000000000000000A822
+:10549000545555540000000000000000000000A812
+:1054A000545555540000000000000000000000A802
+:1054B000545555540000000000000000000000A8F2
+:1054C000545555540000000000000000000000A8E2
+:1054D000545555540000000000000000000000A8D2
+:1054E000545555540000000000000000000000A8C2
+:1054F000545555540000000000000000000000005A
+:10550000005555540000000000000000000000A8F5
+:10551000540055540000000000000000000000A8E6
+:10552000545500540000000000000000000000A8D6
+:10553000545555000000000000000000000000A8C5
+:10554000545555540000000000000000000000A861
+:10555000545555540000000000000000000000A851
+:10556000545555540000000000000000000000A841
+:10557000545555540000000000000000000000A831
+:10558000545555540000000000000000000000A821
+:10559000545555540000000000000000000000A811
+:1055A000545555540000000000000000000000A801
+:1055B000545555540000000000000000000000A8F1
+:1055C000545555540000000000000000000000A8E1
+:1055D000545555540000000000000000000000A8D1
+:1055E000545555540000000000000000000000A8C1
+:1055F0005455555400000000000000000000000059
+:10560000005554540000000000000000000000029B
+:1056100001005454000000000000000000000002DF
+:1056200001550054000000000000000000000002CE
+:1056300001555400000000000000000000000002BE
+:10564000015554540000000000000000000000025A
+:10565000015554540000000000000000000000024A
+:10566000015554540000000000000000000000023A
+:10567000015554540000000000000000000000022A
+:10568000015554540000000000000000000000021A
+:10569000015554540000000000000000000000020A
+:1056A00001555454000000000000000000000002FA
+:1056B00001555454000000000000000000000002EA
+:1056C00001555454000000000000000000000002DA
+:1056D00001555454000000000000000000000002CA
+:1056E00001555454000000000000000000000002BA
+:1056F00001555454000000000000000000000000AC
+:10570000005554540000000000000000000000029A
+:1057100001005454000000000000000000000002DE
+:1057200001550054000000000000000000000002CD
+:1057300001555400000000000000000000000002BD
+:105740000155545400000000000000000000000259
+:105750000155545400000000000000000000000249
+:105760000155545400000000000000000000000239
+:105770000155545400000000000000000000000229
+:105780000155545400000000000000000000000219
+:105790000155545400000000000000000000000209
+:1057A00001555454000000000000000000000002F9
+:1057B00001555454000000000000000000000002E9
+:1057C00001555454000000000000000000000002D9
+:1057D00001555454000000000000000000000002C9
+:1057E00001555454000000000000000000000002B9
+:1057F00001555454000000000000000000000000AB
+:10580000005454000000000000000000000000A848
+:10581000540054000000000000000000000000A838
+:10582000545400000000000000000000000000A828
+:10583000545454000000000000000000000000A8C4
+:10584000545454000000000000000000000000A8B4
+:10585000545454000000000000000000000000A8A4
+:10586000545454000000000000000000000000A894
+:10587000545454000000000000000000000000A884
+:10588000545454000000000000000000000000A874
+:10589000545454000000000000000000000000A864
+:1058A000545454000000000000000000000000A854
+:1058B000545454000000000000000000000000A844
+:1058C000545454000000000000000000000000A834
+:1058D000545454000000000000000000000000A824
+:1058E000545454000000000000000000000000A814
+:1058F00054545400000000000000000000000000AC
+:10590000035703030303030303030303030303AB6B
+:10591000570303030303030303030303030303AB5B
+:10592000575703030303030303030303030303ABF7
+:10593000575703030303030303030303030303ABE7
+:10594000575703030303030303030303030303ABD7
+:10595000575703030303030303030303030303ABC7
+:10596000575703030303030303030303030303ABB7
+:10597000575703030303030303030303030303ABA7
+:10598000575703030303030303030303030303AB97
+:10599000575703030303030303030303030303AB87
+:1059A000575703030303030303030303030303AB77
+:1059B000575703030303030303030303030303AB67
+:1059C000575703030303030303030303030303AB57
+:1059D000575703030303030303030303030303AB47
+:1059E000575703030303030303030303030303AB37
+:1059F00057570303030303030303030303030303CF
+:105A00000000000000000000000000000000000096
+:105A1000FCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCC6
+:105A20000000000000000000000000000000000076
+:105A30000000000000000000000000000000000066
+:105A40000000000000000000000000000000000056
+:105A50000000000000000000000000000000000046
+:105A60000000000000000000000000000000000036
+:105A70000000000000000000000000000000000026
+:105A80000000000000000000000000000000000016
+:105A90000000000000000000000000000000000006
+:105AA00000000000000000000000000000000000F6
+:105AB00000000000000000000000000000000000E6
+:105AC00000000000000000000000000000000000D6
+:105AD00000000000000000000000000000000000C6
+:105AE00000000000000000000000000000000000B6
+:105AF00000000000000000000000000000000000A6
+:105B0000AA56545454545454545454545454A855A8
+:105B1000AA565454545454545454545454545455EC
+:105B2000AA565454545454545454545454545455DC
+:105B3000AA565454545454545454545454545455CC
+:105B4000AA565454545454545454545454545455BC
+:105B5000AA565454545454545454545454545455AC
+:105B6000AA5654545454545454545454545454559C
+:105B7000AA5654545454545454545454545454558C
+:105B8000AA5654545454545454545454545454557C
+:105B9000AA5654545454545454545454545454556C
+:105BA000AA5654545454545454545454545454555C
+:105BB000AA5654545454545454545454545454554C
+:105BC000AA5654545454545454545454545454553C
+:105BD000AA5654545454545454545454545454552C
+:105BE000AA5654545454545454545454545454551C
+:105BF000AA56446868A8A8A8A8A8A8A8A8A8A80001
+:105C000002565454545454545454545454545401F7
+:105C100002565454545454545454545454545401E7
+:105C200002565454545454545454545454545401D7
+:105C300002565454545454545454545454545401C7
+:105C400002565454545454545454545454545401B7
+:105C500002565454545454545454545454545401A7
+:105C60000256545454545454545454545454540197
+:105C70000256545454545454545454545454540187
+:105C80000256545454545454545454545454540177
+:105C90000256545454545454545454545454540167
+:105CA0000256545454545454545454545454540157
+:105CB0000256545454545454545454545454540147
+:105CC0000256545454545454545454545454540137
+:105CD0000256545454545454545454545454540127
+:105CE0000256545454545454545454545454540117
+:105CF000025654545868A8A8A8A8A8A8A8A8A800FC
+:105D0000A856566464A4A4A4A4A4A4A4A4A4A454BB
+:105D1000A8565654545454545454545454545454EB
+:105D2000A8565654545454545454545454545454DB
+:105D3000A8565654545454545454545454545454CB
+:105D4000A8565654545454545454545454545454BB
+:105D5000A8565654545454545454545454545454AB
+:105D6000A85656545454545454545454545454549B
+:105D7000A85656545454545454545454545454548B
+:105D8000A85656545454545454545454545454547B
+:105D9000A85656545454545454545454545454546B
+:105DA000A85656545454545454545454545454545B
+:105DB000A85656545454545454545454545454544B
+:105DC000A85656545454545454545454545454543B
+:105DD000A85656545454545454545454545454542B
+:105DE000A85656545454545454545454545454541B
+:105DF000A8565654545468A8A8A8A8A8A8A8A800AB
+:105E0000005666A8A8A8A8A8A8A8A8A8A8A8A800F6
+:105E100000565654545454545454545454545400E6
+:105E200000565654545454545454545454545400D6
+:105E300000565654545454545454545454545400C6
+:105E400000565654545454545454545454545400B6
+:105E500000565654545454545454545454545400A6
+:105E60000056565454545454545454545454540096
+:105E70000056565454545454545454545454540086
+:105E80000056565454545454545454545454540076
+:105E90000056565454545454545454545454540066
+:105EA0000056565454545454545454545454540056
+:105EB0000056565454545454545454545454540046
+:105EC0000056565454545454545454545454540036
+:105ED0000056565454545454545454545454A800D2
+:105EE0000056565454545454545454545454540016
+:105EF000005656545454545454545454A8A854005E
+:105F0000AA56AAAAA8A8A8A8A8A8A8A8A8A8A855B0
+:105F1000AAAAAAAAA8A8A8A8A8A8A8A8A8A8A8554C
+:105F2000AAAAAAAAA8A8A8A8A8A8A8A8A8A8A8553C
+:105F3000AAAAAAAAA8A8A8A8A8A8A8A8A8A8A8552C
+:105F4000AAAAAAAAA8A8A8A8A8A8A8A8A8A8A8551C
+:105F5000AAAAAAAAA8A8A8A8A8A8A8A8A8A8A8550C
+:105F6000AAAAAAAAA8A8A8A8A8A8A8A8A8A8A855FC
+:105F7000AAAAAAAAA8A8A8A8A8A8A8A8A8A8A855EC
+:105F8000AAAAAAAAA8A8A8A8A8A8A8A8A8A8A855DC
+:105F9000AAAAAAAAA8A8A8A8A8A8A8A8A8A8A855CC
+:105FA000AAAAAAAAA8A8A8A8A8A8A8A8A8A8A855BC
+:105FB000AAAA5656545454545454545454545455F0
+:105FC000AA56565654545454545454545454545534
+:105FD000AA56565654545454545454545454545524
+:105FE000AA56565654545454545454545454545514
+:105FF000AA56565654545454545454545454545405
+:106000000256AAAAA8A8A8A8A8A8A8A8A8A8A801AB
+:1060100002AAAAAAA8A8A8A8A8A8A8A8A8A8A80147
+:1060200002AAAAAAA8A8A8A8A8A8A8A8A8A8A80137
+:1060300002AAAAAAA8A8A8A8A8A8A8A8A8A8A80127
+:1060400002AAAAAAA8A8A8A8A8A8A8A8A8A8A80117
+:1060500002AAAAAAA8A8A8A8A8A8A8A8A8A8A80107
+:1060600002AAAAAAA8A8A8A8A8A8A8A8A8A8A801F7
+:1060700002AAAAAAA8A8A8A8A8A8A8A8A8A8A801E7
+:1060800002AAAAAAA8A8A8A8A8A8A8A8A8A8A801D7
+:1060900002AAAAAAA8A8A8A8A8A8A8A8A8A8A801C7
+:1060A00002AAAAAAA8A8A8A8A8A8A8A8A8A8A801B7
+:1060B00002AAAAAAA8A8A8A8A8A8A8A8A8A8A801A7
+:1060C00002AAAAAAA8A8A8A8A8A8A8A8A8A8A80197
+:1060D000025656565454545454545454545454011F
+:1060E000025656565454545454545454545454010F
+:1060F0000256565654545454545454545454540000
+:10610000A856AAAAAAA8A8A8A8A8A8A8A8A8A854AF
+:10611000A8AAAAAAAAA8A8A8A8A8A8A8A8A8A8544B
+:10612000A8AAAAAAAAA8A8A8A8A8A8A8A8A8A8543B
+:10613000A8AAAAAAAAA8A8A8A8A8A8A8A8A8A8542B
+:10614000A8AAAAAAAAA8A8A8A8A8A8A8A8A8A8541B
+:10615000A8AAAAAAAAA8A8A8A8A8A8A8A8A8A8540B
+:10616000A8AAAAAAAAA8A8A8A8A8A8A8A8A8A854FB
+:10617000A8AAAAAAAAA8A8A8A8A8A8A8A8A8A854EB
+:10618000A8AAAAAAAAA8A8A8A8A8A8A8A8A8A854DB
+:10619000A8AAAAAAAAA8A8A8A8A8A8A8A8A8A854CB
+:1061A000A8AAAAAAAAA8A8A8A8A8A8A8A8A8A854BB
+:1061B000A8AAAAAAAAA8A8A8A8A8A8A8A8A8A854AB
+:1061C000A8AAAAAAAAA8A8A8A8A8A8A8A8A8A8549B
+:1061D000A8AAAAAAAAA8A8A8A8A8A8A8A8A8A8548B
+:1061E000A8AAAAAAAAA8A8A8A8A8A8A8A8A8A8547B
+:1061F000A856565656545454545454545454545403
+:1062000000AAAAAAAAA8A8A8A8A8A8A8A8A8A80056
+:1062100000AAAAAAAAA8A8A8A8A8A8A8A8A8A80046
+:1062200000AAAAAAAAA8A8A8A8A8A8A8A8A8A80036
+:1062300000AAAAAAAAA8A8A8A8A8A8A8A8A8A80026
+:1062400000AAAAAAAAA8A8A8A8A8A8A8A8A8A80016
+:1062500000AAAAAAAAA8A8A8A8A8A8A8A8A8A80006
+:1062600000AAAAAAAAA8A8A8A8A8A8A8A8A8A800F6
+:1062700000AAAAAAAAA8A8A8A8A8A8A8A8A8A800E6
+:1062800000AAAAAAAAA8A8A8A8A8A8A8A8A8A800D6
+:1062900000AAAAAAAAA8A8A8A8A8A8A8A8A8A800C6
+:1062A00000AAAAAAAAA8A8A8A8A8A8A8A8A8A800B6
+:1062B00000AAAAAAAAA8A8A8A8A8A8A8A8A8A800A6
+:1062C00000AAAAAAAAA8A8A8A8A8A8A8A8A8A80096
+:1062D00000AAAAAAAAA8A8A8A8A8A8A8A8A8A80086
+:1062E00000AAAAAAAAA8A8A8A8A8A8A8A8A8A80076
+:1062F00000565656565454545454545454545400FE
+:10630000AAAA0202020200000000000000000055DC
+:10631000AAAAAA0202020000000000000000005524
+:1063200000AAAAAA02020200000000000000000069
+:1063300040AAAAAA02020200000000000000000019
+:1063400040AAAAAA02020200000000000000000009
+:1063500040AAAAAA020202000000000000000000F9
+:1063600040AAAAAA020202000000000000000000E9
+:1063700040AAAAAA020202000000000000000000D9
+:1063800040AAAAAA020202000000000000000000C9
+:1063900040AAAAAA020202000000000000000000B9
+:1063A00040AAAAAA020202000000000000000000A9
+:1063B00040AAAAAA02020200000000000000000099
+:1063C00040AAAAAA02020200000000000000000089
+:1063D00040AAAAAA02020200000000000000000079
+:1063E00040AAAAAA02020200000000000000000069
+:1063F00040AAAAAA02020200000000000000000059
+:1064000040AAAAAA02020200000000000000000048
+:1064100054AAAAAA02020200000000000000000024
+:1064200000AAAAAA02020200000000000000000068
+:1064300040AAAAAA02020200000000000000000018
+:1064400040AAAAAA02020200000000000000000008
+:1064500040AAAAAA020202000000000000000000F8
+:1064600040AAAAAA020202000000000000000000E8
+:1064700040AAAAAA020202000000000000000000D8
+:1064800040AAAAAA020202000000000000000000C8
+:1064900040AAAAAA020202000000000000000000B8
+:1064A00040AAAAAA020202000000000000000000A8
+:1064B00040AAAAAA02020200000000000000000098
+:1064C00040AAAAAA02020200000000000000000088
+:1064D00040AAAAAA02020200000000000000000078
+:1064E00040AAAAAA02020200000000000000000068
+:1064F00040AAAAAA02020200000000000000000058
+:1065000040AAAAAA02020200000000000000000047
+:1065100054AAAAAA02020200000000000000000023
+:10652000AAAAAAAA02020200000000000000005568
+:106530002AAAAAAA020202000000000000000055D8
+:106540002AAAAAAA020202000000000000000055C8
+:106550002AAAAAAA020202000000000000000055B8
+:106560002AAAAAAA020202000000000000000055A8
+:106570002AAAAAAA02020200000000000000005598
+:106580002AAAAAAA02020200000000000000005588
+:106590002AAAAAAA02020200000000000000005578
+:1065A0002AAAAAAA02020200000000000000005568
+:1065B0002AAAAAAA02020200000000000000005558
+:1065C0002AAAAAAA02020200000000000000005548
+:1065D0002AAAAAAA02020200000000000000005538
+:1065E0002AAAAAAA02020200000000000000005528
+:1065F0002AAAAAAA02020200000000000000005518
+:106600002AAAAAAA02020200000000000000005507
+:1066100002AAAAAA0202020000000000000000551F
+:10662000AAAAAAAA02020202000000000000005565
+:106630002AAAAAAA020202000000000000000055D7
+:106640002AAAAAAA020202000000000000000055C7
+:106650002AAAAAAA020202000000000000000055B7
+:106660002AAAAAAA020202000000000000000055A7
+:106670002AAAAAAA02020200000000000000005597
+:106680002AAAAAAA02020200000000000000005587
+:106690002AAAAAAA02020200000000000000005577
+:1066A0002AAAAAAA02020200000000000000005567
+:1066B0002AAAAAAA02020200000000000000005557
+:1066C0002AAAAAAA02020200000000000000005547
+:1066D0002AAAAAAA02020200000000000000005537
+:1066E0002AAAAAAA02020200000000000000005527
+:1066F0002AAAAAAA02020200000000000000005517
+:106700002AAAAAAA02020200000000000000005506
+:1067100002AAAAAA0202020000000000000000551E
+:1067200000AAAAAAAA0202020200000000000000B9
+:1067300040AAAAAAAA02020200000000000000006B
+:1067400040AAAAAAAA02020200000000000000005B
+:1067500040AAAAAAAA02020200000000000000004B
+:1067600040AAAAAAAA02020200000000000000003B
+:1067700040AAAAAAAA02020200000000000000002B
+:1067800040AAAAAAAA02020200000000000000001B
+:1067900040AAAAAAAA02020200000000000000000B
+:1067A00040AAAAAAAA0202020000000000000000FB
+:1067B00040AAAAAAAA0202020000000000000000EB
+:1067C00040AAAAAAAA0202020000000000000000DB
+:1067D00040AAAAAAAA0202020000000000000000CB
+:1067E00040AAAAAAAA0202020000000000000000BB
+:1067F00040AAAAAAAA0202020000000000000000AB
+:1068000040AAAAAAAA02020200000000000000009A
+:1068100055AAAAAAAA020202000000000000000075
+:1068200000AAAAAAAA0202020202000000000000B6
+:1068300040AAAAAAAA020202020000000000000068
+:1068400040AAAAAAAA020202020000000000000058
+:1068500040AAAAAAAA020202020000000000000048
+:1068600040AAAAAAAA020202020000000000000038
+:1068700040AAAAAAAA020202020000000000000028
+:1068800040AAAAAAAA020202020000000000000018
+:1068900040AAAAAAAA020202020000000000000008
+:1068A00040AAAAAAAA0202020200000000000000F8
+:1068B00040AAAAAAAA0202020200000000000000E8
+:1068C00040AAAAAAAA0202020200000000000000D8
+:1068D00040AAAAAAAA0202020200000000000000C8
+:1068E00040AAAAAAAA0202020200000000000000B8
+:1068F00040AAAAAAAA0202020200000000000000A8
+:1069000040AAAAAAAA020202020000000000000097
+:1069100055AAAAAAAA020202020000000000000072
+:10692000AAAAAAAAAAAA020202020200000000550C
+:106930002AAAAAAAAAAA020202020000000000557E
+:106940002AAAAAAAAAAA020202020000000000556E
+:106950002AAAAAAAAAAA020202020000000000555E
+:106960002AAAAAAAAAAA020202020000000000554E
+:106970002AAAAAAAAAAA020202020000000000553E
+:106980002AAAAAAAAAAA020202020000000000552E
+:106990002AAAAAAAAAAA020202020000000000551E
+:1069A0002AAAAAAAAAAA020202020000000000550E
+:1069B0002AAAAAAAAAAA02020202000000000055FE
+:1069C0002AAAAAAAAAAA02020202000000000055EE
+:1069D0002AAAAAAAAAAA02020202000000000055DE
+:1069E0002AAAAAAAAAAA02020202000000000055CE
+:1069F0002AAAAAAAAAAA02020202000000000055BE
+:106A00002AAAAAAAAAAA02020202000000000055AD
+:106A100000AAAAAAAAAA02020202000000000055C7
+:106A2000AAAAAAAAAAAA0202020202020000005509
+:106A30002AAAAAAAAAAA020202020200000000557B
+:106A40002AAAAAAAAAAA020202020200000000556B
+:106A50002AAAAAAAAAAA020202020200000000555B
+:106A60002AAAAAAAAAAA020202020200000000554B
+:106A70002AAAAAAAAAAA020202020200000000553B
+:106A80002AAAAAAAAAAA020202020200000000552B
+:106A90002AAAAAAAAAAA020202020200000000551B
+:106AA0002AAAAAAAAAAA020202020200000000550B
+:106AB0002AAAAAAAAAAA02020202020000000055FB
+:106AC0002AAAAAAAAAAA02020202020000000055EB
+:106AD0002AAAAAAAAAAA02020202020000000055DB
+:106AE0002AAAAAAAAAAA02020202020000000055CB
+:106AF0002AAAAAAAAAAA02020202020000000055BB
+:106B00002AAAAAAAAAAA02020202020000000055AA
+:106B100000AAAAAAAAAA02020202020000000055C4
+:106B200000AAAAAAAAAAAA0202020202020000005D
+:106B300040AAAAAAAAAAAA0202020202000000000F
+:106B400040AAAAAAAAAAAA020202020200000000FF
+:106B500040AAAAAAAAAAAA020202020200000000EF
+:106B600040AAAAAAAAAAAA020202020200000000DF
+:106B700040AAAAAAAAAAAA020202020200000000CF
+:106B800040AAAAAAAAAAAA020202020200000000BF
+:106B900040AAAAAAAAAAAA020202020200000000AF
+:106BA00040AAAAAAAAAAAA0202020202000000009F
+:106BB00040AAAAAAAAAAAA0202020202000000008F
+:106BC00040AAAAAAAAAAAA0202020202000000007F
+:106BD00040AAAAAAAAAAAA0202020202000000006F
+:106BE00040AAAAAAAAAAAA0202020202000000005F
+:106BF00040AAAAAAAAAAAA0202020202000000004F
+:106C000040AAAAAAAAAAAA0202020202000000003E
+:106C100055AAAAAAAAAAAA02020202020000000019
+:106C200000AAAAAAAAAAAAAA0202020202020000B2
+:106C300040AAAAAAAAAAAAAA020202020202000062
+:106C400040AAAAAAAAAAAAAA020202020202000052
+:106C500040AAAAAAAAAAAAAA020202020202000042
+:106C600040AAAAAAAAAAAAAA020202020202000032
+:106C700040AAAAAAAAAAAAAA020202020202000022
+:106C800040AAAAAAAAAAAAAA020202020202000012
+:106C900040AAAAAAAAAAAAAA020202020202000002
+:106CA00040AAAAAAAAAAAAAA0202020202020000F2
+:106CB00040AAAAAAAAAAAAAA0202020202020000E2
+:106CC00040AAAAAAAAAAAAAA0202020202020000D2
+:106CD00040AAAAAAAAAAAAAA0202020202020000C2
+:106CE00040AAAAAAAAAAAAAA0202020202020000B2
+:106CF00040AAAAAAAAAAAAAA0202020202020000A2
+:106D000040AAAAAAAAAAAAAA020202020202000091
+:106D100055AAAAAAAAAAAAAA02020202020200006C
+:106D2000AAA9A9A9A9A9A9A9A90101010101015516
+:106D30002AA9A9A9A9A9A9A9A90101010101015586
+:106D40002AA9A9A9A9A9A9A9A90101010101015576
+:106D50002AA9A9A9A9A9A9A9A90101010101015566
+:106D60002AA9A9A9A9A9A9A9A90101010101015556
+:106D70002AA9A9A9A9A9A9A9A90101010101015546
+:106D80002AA9A9A9A9A9A9A9A90101010101015536
+:106D90002AA9A9A9A9A9A9A9A90101010101015526
+:106DA0002AA9A9A9A9A9A9A9A90101010101015516
+:106DB0002AA9A9A9A9A9A9A9A90101010101015506
+:106DC0002AA9A9A9A9A9A9A9A901010101010155F6
+:106DD0002AA9A9A9A9A9A9A9A901010101010155E6
+:106DE0002AA9A9A9A9A9A9A9A901010101010155D6
+:106DF0002AA9A9A9A9A9A9A9A901010101010155C6
+:106E00002AA9A9A9A9A9A9A9A901010101010155B5
+:106E100000A9A9A9A9A9A9A9A901010101010155CF
+:106E2000A8A9A9A9A9A9A9A9A9A901010101015470
+:106E300028A9A9A9A9A9A9A9A9A9010101010154E0
+:106E400028A9A9A9A9A9A9A9A9A9010101010154D0
+:106E500028A9A9A9A9A9A9A9A9A9010101010154C0
+:106E600028A9A9A9A9A9A9A9A9A9010101010154B0
+:106E700028A9A9A9A9A9A9A9A9A9010101010154A0
+:106E800028A9A9A9A9A9A9A9A9A901010101015490
+:106E900028A9A9A9A9A9A9A9A9A901010101015480
+:106EA00028A9A9A9A9A9A9A9A9A901010101015470
+:106EB00028A9A9A9A9A9A9A9A9A901010101015460
+:106EC00028A9A9A9A9A9A9A9A9A901010101015450
+:106ED00028A9A9A9A9A9A9A9A9A901010101015440
+:106EE00028A9A9A9A9A9A9A9A9A901010101015430
+:106EF00028A9A9A9A9A9A9A9A9A901010101015420
+:106F000028A9A9A9A9A9A9A9A9A90101010101540F
+:106F100001A9A9A9A9A9A9A9A9A901010101015426
+:106F200056A9A9A9A9A9A9A9A9A901010101010114
+:106F300056A9A9A9A9A9A9A9A9A901010101010104
+:106F400056A9A9A9A9A9A9A9A9A9010101010101F4
+:106F500056A9A9A9A9A9A9A9A9A9010101010101E4
+:106F600056A9A9A9A9A9A9A9A9A9010101010101D4
+:106F700056A9A9A9A9A9A9A9A9A9010101010101C4
+:106F800056A9A9A9A9A9A9A9A9A9010101010101B4
+:106F900056A9A9A9A9A9A9A9A9A9010101010101A4
+:106FA00056A9A9A9A9A9A9A9A9A901010101010194
+:106FB00056A9A9A9A9A9A9A9A9A901010101010184
+:106FC00056A9A9A9A9A9A9A9A9A901010101010174
+:106FD00056A9A9A9A9A9A9A9A9A901010101010164
+:106FE00056A9A9A9A9A9A9A9A9A901010101010154
+:106FF00056A9A9A9A9A9A9A9A9A901010101010144
+:1070000056A9A9A9A9A9A9A9A9A901010101010133
+:1070100054A9A9A9A9A9A9A9A9A901010101010125
+:1070200055A9A9A9A9A9A9A9A9A9A901010101006D
+:1070300000A9A9A9A9A9A9A9A9A9A9A901010155B5
+:1070400001A9A9A9A9A9A9A9A9A9A9A9A9010154FD
+:1070500001A9A9A9A9A9A9A9A9A9A9A9A9010154ED
+:1070600001A9A9A9A9A9A9A9A9A9A9A9A9010154DD
+:1070700001A9A9A9A9A9A9A9A9A9A9A9A9010154CD
+:1070800001A9A9A9A9A9A9A9A9A9A9A9A9010154BD
+:1070900001A9A9A9A9A9A9A9A9A9A9A9A9010154AD
+:1070A00001A9A9A9A9A9A9A9A9A9A9A9A90101549D
+:1070B00001A9A9A9A9A9A9A9A9A9A9A9A90101548D
+:1070C00001A9A9A9A9A9A9A9A9A9A9A9A90101547D
+:1070D00001A9A9A9A9A9A9A9A9A9A9A9A90101546D
+:1070E00001A9A9A9A9A9A9A9A9A9A9A9A90101545D
+:1070F00001A9A9A9A9A9A9A9A9A9A9A9A90101544D
+:1071000001A9A9A9A9A9A9A9A9A9A9A9A90101543C
+:1071100001A9A9A9A9A9A9A9A9A9A9A9A90101542C
+:1071200001A9A9A9A9A9A9A9A9A9A9A9A90101541C
+:1071300001A9A9A9A9A9A9A9A9A9A9A9A90101560A
+:1071400054A9A9A9A9A9A9A9A9A9A9A9A9A9010154
+:1071500054A9A9A9A9A9A9A9A9A9A9A9A9A9010144
+:1071600054A9A9A9A9A9A9A9A9A9A9A9A9A9010134
+:1071700054A9A9A9A9A9A9A9A9A9A9A9A9A9010124
+:1071800054A9A9A9A9A9A9A9A9A9A9A9A9A9010114
+:1071900054A9A9A9A9A9A9A9A9A9A9A9A9A9010104
+:1071A00054A9A9A9A9A9A9A9A9A9A9A9A9A90101F4
+:1071B00054A9A9A9A9A9A9A9A9A9A9A9A9A90101E4
+:1071C00054A9A9A9A9A9A9A9A9A9A9A9A9A90101D4
+:1071D00054A9A9A9A9A9A9A9A9A9A9A9A9A90101C4
+:1071E00054A9A9A9A9A9A9A9A9A9A9A9A9A90101B4
+:1071F00054A9A9A9A9A9A9A9A9A9A9A9A9A90101A4
+:1072000054A9A9A9A9A9A9A9A9A9A9A9A9A9010193
+:1072100054A9A9A9A9A9A9A9A9A9A9A9A9A9010183
+:1072200054A9A9A9A9A9A9A9A9A9A9A9A9A9010173
+:1072300054A9A9A9A9A9A9A9A9A9A9A9A9A9010262
+:10724000015555555656565655555555555555543F
+:107250000155555555555555555555555555555433
+:107260000155555555555555555555555555555423
+:107270000155555555555555555555555555555413
+:107280000155555555555555555555555555555403
+:1072900001555555555555555555555555555554F3
+:1072A00001555555555555555555555555555554E3
+:1072B00001555555555555555555555555555554D3
+:1072C00001555555555555555555555555555554C3
+:1072D00001555555555555555555555555555554B3
+:1072E00001555555555555555555555555555554A3
+:1072F0000155555555555555555555555555555493
+:107300000155555555555555555555555555555482
+:107310000155555555555555555555555555555472
+:107320000155555555555555555555555555555462
+:107330000155555555555555555555555555555650
+:1073400054555556565656565655555555555556E7
+:1073500054555555555555555555555555555556DD
+:1073600054555555555555555555555555555556CD
+:1073700054555555555555555555555555555556BD
+:1073800054555555555555555555555555555556AD
+:10739000545555555555555555555555555555569D
+:1073A000545555555555555555555555555555568D
+:1073B000545555555555555555555555555555567D
+:1073C000545555555555555555555555555555566D
+:1073D000545555555555555555555555555555565D
+:1073E000545555555555555555555555555555564D
+:1073F000545555555555555555555555555555563D
+:10740000545555555555555555555555555555562C
+:10741000545555555555555555555555555555561C
+:10742000545555555555555555555555555555560C
+:1074300054555555555555555555555555555554FE
+:10744000015555565656565656555656555555AAE3
+:10745000015555555656565655555555555555AAD7
+:10746000015555555656565655555555555555AAC7
+:10747000015555555656565655555555555555AAB7
+:10748000015555555656565655555555555555AAA7
+:10749000015555555656565655555555555555AA97
+:1074A000015555555656565655555555555555AA87
+:1074B000015555555656565655555555555555AA77
+:1074C000015555555656565655555555555555AA67
+:1074D000015555555656565655555555555555AA57
+:1074E000015555555656565655555555555555AA47
+:1074F000015555555656565655555555555555AA37
+:10750000015555555656565655555555555555AA26
+:10751000015555555656565655555555555555AA16
+:10752000015555555656565655555555555555AA06
+:10753000015555555555555555555555555555AAFA
+:10754000545555565656565656565656565656A88D
+:10755000545656565656565656565656565656A87B
+:10756000545656565656565656565656565656A86B
+:10757000545656565656565656565656565656A85B
+:10758000545656565656565656565656565656A84B
+:10759000545656565656565656565656565656A83B
+:1075A000545656565656565656565656565656A82B
+:1075B000545656565656565656565656565656A81B
+:1075C000545656565656565656565656565656A80B
+:1075D000545656565656565656565656565656A8FB
+:1075E000545656565656565656565656565656A8EB
+:1075F000545656565656565656565656565656A8DB
+:10760000545656565656565656565656565656A8CA
+:10761000545656565656565656565656565656A8BA
+:10762000545656565656565656565656565656A8AA
+:10763000545555565656565654545656565656A8A0
+:107640000156565656565656565656565656560283
+:107650000156565656565656565656565656560273
+:107660000156565656565656565656565656560263
+:107670000156565656565656565656565656560253
+:107680000156565656565656565656565656560243
+:107690000156565656565656565656565656560233
+:1076A0000156565656565656565656565656560223
+:1076B0000156565656565656565656565656560213
+:1076C0000156565656565656565656565656560203
+:1076D00001565656565656565656565656565602F3
+:1076E00001565656565656565656565656565602E3
+:1076F00001565656565656565656565656565602D3
+:1077000001565656565656565656565656565602C2
+:1077100001565656565656565656565656565602B2
+:1077200001565656565656565656565656565602A2
+:107730000155545656565656565656565656560295
+:10774000545656565656565656565656565656A889
+:107750000156565656565656565656565656560272
+:10776000545656565656565656565656565656A869
+:1077700001AAAAAAAAAAAAAAAAAAAAAAAAAAAA02BA
+:1077800054AAAAAAAAAAAAAAAAAAAAAAAAAAAAA8B1
+:1077900001AAAAAAAAAAAAAAAAAAAAAAAAAAAA029A
+:1077A00054AAAAAAAAAAAAAAAAAAAAAAAAAAAAA891
+:1077B00001AAAAAAAAAAAAAAAAAAAAAAAAAAAA027A
+:1077C00001AAAAAAAAAAAAAAAAAAAAAAAAAAAA026A
+:1077D00001AAAAAAAAAAAAAAAAAAAAAAAAAAAA025A
+:1077E00001AAAAAAAAAAAAAAAAAAAAAAAAAAAA024A
+:1077F00001AAAAAAAAAAAAAAAAAAAAAAAAAAAA023A
+:1078000001AAAAAAAAAAAAAAAAAAAAAAAAAAAA0229
+:1078100001AAAAAAAAAAAAAAAAAAAAAAAAAAAA0219
+:1078200001AAAAAAAAAAAAAAAAAAAAAAAAAAAA0209
+:1078300001AAAAAAAAAAAAAAAAAAAAAAAAAAAA02F9
+:1078400001AAAAAAAAAAAAAAAAAAAAAAAAAAAA02E9
+:1078500001AAAAAAAAAAAAAAAAAAAAAAAAAAAA02D9
+:1078600001AAAAAAAAAAAAAAAAAAAAAAAAAAAA02C9
+:1078700001AAAAAAAAAAAAAAAAAAAAAAAAAAAA02B9
+:1078800001AAAAAAAAAAAAAAAAAAAAAAAAAAAA02A9
+:1078900001AAAAAAAAAAAAAAAAAAAAAAAAAAAA0299
+:1078A00001AAAAAAAAAAAAAAAAAAAAAAAAAAAA018A
+:1078B00054A9A9A9A9A9A9A9A9A9A9A9A9A9A8A88F
+:1078C00000A9A9A9A9A9A9A9A9A9A9A9A9A8A8007C
+:1078D00055A9A9A9A9A9A9A9A9A9A9A9A8A8A8AA6E
+:1078E0000155555555555555555555545454000247
+:1078F000545555555555555555555454540000A893
+:10790000545555555555555555545454000000A8D7
+:107910000155555555555555545454000000000215
+:107920000155555555555555545454000000000205
+:1079300001555555555555555454540000000002F5
+:1079400001555555555555555454540000000002E5
+:1079500001555555555555555454540000000002D5
+:1079600001555555555555555454540000000002C5
+:1079700001555555555555555454540000000002B5
+:1079800001555555555555555454540000000002A5
+:107990000155555555555555545454000000000295
+:1079A0000155555555555555545454000000000285
+:1079B0000155555555555555545454000000000275
+:1079C0000155555555555555545454000000000265
+:1079D0000155555555555555545454000000000255
+:1079E0000155555555555555545454000000000245
+:1079F0000155555555555555545454000000000235
+:107A00000155555555555555545454000000000026
+:107A10000155555555555554545400000000000269
+:107A20000155555555555554545400000000000259
+:107A30000155555555555554545400000000000249
+:107A40000155555555555554545400000000000239
+:107A50000155555555555554545400000000000229
+:107A60000155555555555554545400000000000219
+:107A70000155555555555554545400000000000209
+:107A800001555555555555545454000000000002F9
+:107A900001555555555555545454000000000002E9
+:107AA00001555555555555545454000000000002D9
+:107AB00001555555555555545454000000000002C9
+:107AC00001555555555555545454000000000002B9
+:107AD00001555555555555545454000000000002A9
+:107AE0000155555555555554545400000000000299
+:107AF0000155555555555554545400000000000289
+:107B0000015555555555555454540000000000007A
+:107B1000545555555555555454540000000000A86F
+:107B2000545555555555555454000000000000A8B3
+:107B300001555555555554540000000000000002F1
+:107B400001555555555554540000000000000002E1
+:107B500001555555555554540000000000000002D1
+:107B600001555555555554540000000000000002C1
+:107B700001555555555554540000000000000002B1
+:107B800001555555555554540000000000000002A1
+:107B90000155555555555454000000000000000291
+:107BA0000155555555555454000000000000000281
+:107BB0000155555555555454000000000000000271
+:107BC0000155555555555454000000000000000261
+:107BD0000155555555555454000000000000000251
+:107BE0000155555555555454000000000000000241
+:107BF0000155555555555454000000000000000231
+:107C00000155555555555454000000000000000220
+:107C10000155555555555454000000000000000210
+:107C20000155555555555454000000000000000002
+:107C30000155555555555400000000000000000244
+:107C40000155555555555400000000000000000234
+:107C50000155555555555400000000000000000224
+:107C60000155555555555400000000000000000214
+:107C70000155555555555400000000000000000204
+:107C800001555555555554000000000000000002F4
+:107C900001555555555554000000000000000002E4
+:107CA00001555555555554000000000000000002D4
+:107CB00001555555555554000000000000000002C4
+:107CC00001555555555554000000000000000002B4
+:107CD00001555555555554000000000000000002A4
+:107CE0000155555555555400000000000000000294
+:107CF0000155555555555400000000000000000284
+:107D00000155555555555400000000000000000273
+:107D10000155555555555400000000000000000263
+:107D20000155555555555400000000000000000055
+:107D3000545555555554000000000000000000A89F
+:107D4000545555555554000000000000000000A88F
+:107D5000545555555554000000000000000000A87F
+:107D6000545555555554000000000000000000A86F
+:107D7000545555555554000000000000000000A85F
+:107D8000545555555554000000000000000000A84F
+:107D9000545555555554000000000000000000A83F
+:107DA000545555555554000000000000000000A82F
+:107DB000545555555554000000000000000000A81F
+:107DC000545555555554000000000000000000A80F
+:107DD000545555555554000000000000000000A8FF
+:107DE000545555555554000000000000000000A8EF
+:107DF000545555555554000000000000000000A8DF
+:107E0000545555555554000000000000000000A8CE
+:107E1000545555555554000000000000000000A8BE
+:107E20005455555555540000000000000000000056
+:107E3000545555555554000000000000000000A89E
+:107E4000545555555554000000000000000000A88E
+:107E5000545555555554000000000000000000A87E
+:107E6000545555555554000000000000000000A86E
+:107E7000545555555554000000000000000000A85E
+:107E8000545555555554000000000000000000A84E
+:107E9000545555555554000000000000000000A83E
+:107EA000545555555554000000000000000000A82E
+:107EB000545555555554000000000000000000A81E
+:107EC000545555555554000000000000000000A80E
+:107ED000545555555554000000000000000000A8FE
+:107EE000545555555554000000000000000000A8EE
+:107EF000545555555554000000000000000000A8DE
+:107F0000545555555554000000000000000000A8CD
+:107F1000545555555554000000000000000000A8BD
+:107F20005455555555540000000000000000000055
+:107F300001555555540000000000000000000001EC
+:107F400001555555540000000000000000000001DC
+:107F500001555555540000000000000000000001CC
+:107F600001555555540000000000000000000001BC
+:107F700001555555540000000000000000000001AC
+:107F8000015555555400000000000000000000019C
+:107F9000015555555400000000000000000000018C
+:107FA000015555555400000000000000000000017C
+:107FB000015555555400000000000000000000016C
+:107FC000015555555400000000000000000000015C
+:107FD000015555555400000000000000000000014C
+:107FE000015555555400000000000000000000013C
+:107FF000015555555400000000000000000000012C
+:10800000015555555400000000000000000000011B
+:10801000015555555400000000000000000000010B
+:1080200001555555540000000000000000000000FC
+:1080300001555555540000000000000000000001EB
+:1080400001555555540000000000000000000001DB
+:1080500001555555540000000000000000000001CB
+:1080600001555555540000000000000000000001BB
+:1080700001555555540000000000000000000001AB
+:10808000015555555400000000000000000000019B
+:10809000015555555400000000000000000000018B
+:1080A000015555555400000000000000000000017B
+:1080B000015555555400000000000000000000016B
+:1080C000015555555400000000000000000000015B
+:1080D000015555555400000000000000000000014B
+:1080E000015555555400000000000000000000013B
+:1080F000015555555400000000000000000000012B
+:10810000015555555400000000000000000000011A
+:10811000015555555400000000000000000000010A
+:1081200001555555540000000000000000000000FB
+:10813000545555540000000000000000000000A845
+:10814000545555540000000000000000000000A835
+:10815000545555540000000000000000000000A825
+:10816000545555540000000000000000000000A815
+:10817000545555540000000000000000000000A805
+:10818000545555540000000000000000000000A8F5
+:10819000545555540000000000000000000000A8E5
+:1081A000545555540000000000000000000000A8D5
+:1081B000545555540000000000000000000000A8C5
+:1081C000545555540000000000000000000000A8B5
+:1081D000545555540000000000000000000000A8A5
+:1081E000545555540000000000000000000000A895
+:1081F000545555540000000000000000000000A885
+:10820000545555540000000000000000000000A874
+:10821000545555540000000000000000000000A864
+:1082200054555554000000000000000000000000FC
+:10823000545555540000000000000000000000A844
+:10824000545555540000000000000000000000A834
+:10825000545555540000000000000000000000A824
+:10826000545555540000000000000000000000A814
+:10827000545555540000000000000000000000A804
+:10828000545555540000000000000000000000A8F4
+:10829000545555540000000000000000000000A8E4
+:1082A000545555540000000000000000000000A8D4
+:1082B000545555540000000000000000000000A8C4
+:1082C000545555540000000000000000000000A8B4
+:1082D000545555540000000000000000000000A8A4
+:1082E000545555540000000000000000000000A894
+:1082F000545555540000000000000000000000A884
+:10830000545555540000000000000000000000A873
+:10831000545555540000000000000000000000A863
+:1083200054555554000000000000000000000000FB
+:10833000015554540000000000000000000000023D
+:10834000015554540000000000000000000000022D
+:10835000015554540000000000000000000000021D
+:10836000015554540000000000000000000000020D
+:1083700001555454000000000000000000000002FD
+:1083800001555454000000000000000000000002ED
+:1083900001555454000000000000000000000002DD
+:1083A00001555454000000000000000000000002CD
+:1083B00001555454000000000000000000000002BD
+:1083C00001555454000000000000000000000002AD
+:1083D000015554540000000000000000000000029D
+:1083E000015554540000000000000000000000028D
+:1083F000015554540000000000000000000000027D
+:10840000015554540000000000000000000000026C
+:10841000015554540000000000000000000000025C
+:10842000015554540000000000000000000000004E
+:10843000015554540000000000000000000000023C
+:10844000015554540000000000000000000000022C
+:10845000015554540000000000000000000000021C
+:10846000015554540000000000000000000000020C
+:1084700001555454000000000000000000000002FC
+:1084800001555454000000000000000000000002EC
+:1084900001555454000000000000000000000002DC
+:1084A00001555454000000000000000000000002CC
+:1084B00001555454000000000000000000000002BC
+:1084C00001555454000000000000000000000002AC
+:1084D000015554540000000000000000000000029C
+:1084E000015554540000000000000000000000028C
+:1084F000015554540000000000000000000000027C
+:10850000015554540000000000000000000000026B
+:10851000015554540000000000000000000000025B
+:10852000015554540000000000000000000000004D
+:10853000545454000000000000000000000000A897
+:10854000545454000000000000000000000000A887
+:10855000545454000000000000000000000000A877
+:10856000545454000000000000000000000000A867
+:10857000545454000000000000000000000000A857
+:10858000545454000000000000000000000000A847
+:10859000545454000000000000000000000000A837
+:1085A000545454000000000000000000000000A827
+:1085B000545454000000000000000000000000A817
+:1085C000545454000000000000000000000000A807
+:1085D000545454000000000000000000000000A8F7
+:1085E000545454000000000000000000000000A8E7
+:1085F000545454000000000000000000000000A8D7
+:10860000545454000000000000000000000000A8C6
+:10861000545454000000000000000000000000A8B6
+:10862000545454000000000000000000000000004E
+:10863000575703030303030303030303030303ABBA
+:10864000575703030303030303030303030303ABAA
+:10865000575703030303030303030303030303AB9A
+:10866000575703030303030303030303030303AB8A
+:10867000575703030303030303030303030303AB7A
+:10868000575703030303030303030303030303AB6A
+:10869000575703030303030303030303030303AB5A
+:1086A000575703030303030303030303030303AB4A
+:1086B000575703030303030303030303030303AB3A
+:1086C000575703030303030303030303030303AB2A
+:1086D000575703030303030303030303030303AB1A
+:1086E000575703030303030303030303030303AB0A
+:1086F000575703030303030303030303030303ABFA
+:10870000575703030303030303030303030303ABE9
+:10871000575703030303030303030303030303ABD9
+:108720005757030303030303030303030303030371
+:108730000000000000000000000000000000000039
+:10874000FCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFC69
+:108750000000000000000000000000000000000019
+:108760000000000000000000000000000000000009
+:1087700000000000000000000000000000000000F9
+:1087800000000000000000000000000000000000E9
+:1087900000000000000000000000000000000000D9
+:1087A00000000000000000000000000000000000C9
+:1087B00000000000000000000000000000000000B9
+:1087C00000000000000000000000000000000000A9
+:1087D0000000000000000000000000000000000099
+:1087E0000000000000000000000000000000000089
+:1087F0000000000000000000000000000000000079
+:10880000AA56545454545454545454545454A8557B
+:10881000AA565454545454545454545454545455BF
+:10882000AA565454545454545454545454545455AF
+:10883000AA5654545454545454545454545454559F
+:10884000AA5654545454545454545454545454558F
+:10885000AA5654545454545454545454545454557F
+:10886000AA5654545454545454545454545454556F
+:10887000AA5654545454545454545454545454555F
+:10888000AA5654545454545454545454545454554F
+:10889000AA5654545454545454545454545454553F
+:1088A000AA5654545454545454545454545454552F
+:1088B000AA5654545454545454545454545454551F
+:1088C000AA5654545454545454545454545454550F
+:1088D000AA565454545454545454545454545455FF
+:1088E000AA565454545454545454545454545455EF
+:1088F000AA56446868A8A8A8A8A8A8A8A8A8A800D4
+:1089000002565454545454545454545454545401CA
+:1089100002565454545454545454545454545401BA
+:1089200002565454545454545454545454545401AA
+:10893000025654545454545454545454545454019A
+:10894000025654545454545454545454545454018A
+:10895000025654545454545454545454545454017A
+:10896000025654545454545454545454545454016A
+:10897000025654545454545454545454545454015A
+:10898000025654545454545454545454545454014A
+:10899000025654545454545454545454545454013A
+:1089A000025654545454545454545454545454012A
+:1089B000025654545454545454545454545454011A
+:1089C000025654545454545454545454545454010A
+:1089D00002565454545454545454545454545401FA
+:1089E00002565454545454545454545454545401EA
+:1089F000025654545868A8A8A8A8A8A8A8A8A800CF
+:108A0000A856566464A4A4A4A4A4A4A4A4A4A4548E
+:108A1000A8565654545454545454545454545454BE
+:108A2000A8565654545454545454545454545454AE
+:108A3000A85656545454545454545454545454549E
+:108A4000A85656545454545454545454545454548E
+:108A5000A85656545454545454545454545454547E
+:108A6000A85656545454545454545454545454546E
+:108A7000A85656545454545454545454545454545E
+:108A8000A85656545454545454545454545454544E
+:108A9000A85656545454545454545454545454543E
+:108AA000A85656545454545454545454545454542E
+:108AB000A85656545454545454545454545454541E
+:108AC000A85656545454545454545454545454540E
+:108AD000A8565654545454545454545454545454FE
+:108AE000A8565654545454545454545454545454EE
+:108AF000A8565654545468A8A8A8A8A8A8A8A8007E
+:108B0000005666A8A8A8A8A8A8A8A8A8A8A8A800C9
+:108B100000565654545454545454545454545400B9
+:108B200000565654545454545454545454545400A9
+:108B30000056565454545454545454545454540099
+:108B40000056565454545454545454545454540089
+:108B50000056565454545454545454545454540079
+:108B60000056565454545454545454545454540069
+:108B70000056565454545454545454545454540059
+:108B80000056565454545454545454545454540049
+:108B90000056565454545454545454545454540039
+:108BA0000056565454545454545454545454540029
+:108BB0000056565454545454545454545454540019
+:108BC0000056565454545454545454545454540009
+:108BD0000056565454545454545454545454A800A5
+:108BE00000565654545454545454545454545400E9
+:108BF000005656545454545454545454A8A8540031
+:108C0000AA56AAAAA8A8A8A8A8A8A8A8A8A8A85583
+:108C1000AAAAAAAAA8A8A8A8A8A8A8A8A8A8A8551F
+:108C2000AAAAAAAAA8A8A8A8A8A8A8A8A8A8A8550F
+:108C3000AAAAAAAAA8A8A8A8A8A8A8A8A8A8A855FF
+:108C4000AAAAAAAAA8A8A8A8A8A8A8A8A8A8A855EF
+:108C5000AAAAAAAAA8A8A8A8A8A8A8A8A8A8A855DF
+:108C6000AAAAAAAAA8A8A8A8A8A8A8A8A8A8A855CF
+:108C7000AAAAAAAAA8A8A8A8A8A8A8A8A8A8A855BF
+:108C8000AAAAAAAAA8A8A8A8A8A8A8A8A8A8A855AF
+:108C9000AAAAAAAAA8A8A8A8A8A8A8A8A8A8A8559F
+:108CA000AAAAAAAAA8A8A8A8A8A8A8A8A8A8A8558F
+:108CB000AAAA5656545454545454545454545455C3
+:108CC000AA56565654545454545454545454545507
+:108CD000AA565656545454545454545454545455F7
+:108CE000AA565656545454545454545454545455E7
+:108CF000AA565656545454545454545454545454D8
+:108D00000256AAAAA8A8A8A8A8A8A8A8A8A8A8017E
+:108D100002AAAAAAA8A8A8A8A8A8A8A8A8A8A8011A
+:108D200002AAAAAAA8A8A8A8A8A8A8A8A8A8A8010A
+:108D300002AAAAAAA8A8A8A8A8A8A8A8A8A8A801FA
+:108D400002AAAAAAA8A8A8A8A8A8A8A8A8A8A801EA
+:108D500002AAAAAAA8A8A8A8A8A8A8A8A8A8A801DA
+:108D600002AAAAAAA8A8A8A8A8A8A8A8A8A8A801CA
+:108D700002AAAAAAA8A8A8A8A8A8A8A8A8A8A801BA
+:108D800002AAAAAAA8A8A8A8A8A8A8A8A8A8A801AA
+:108D900002AAAAAAA8A8A8A8A8A8A8A8A8A8A8019A
+:108DA00002AAAAAAA8A8A8A8A8A8A8A8A8A8A8018A
+:108DB00002AAAAAAA8A8A8A8A8A8A8A8A8A8A8017A
+:108DC00002AAAAAAA8A8A8A8A8A8A8A8A8A8A8016A
+:108DD00002565656545454545454545454545401F2
+:108DE00002565656545454545454545454545401E2
+:108DF00002565656545454545454545454545400D3
+:108E0000A856AAAAAAA8A8A8A8A8A8A8A8A8A85482
+:108E1000A8AAAAAAAAA8A8A8A8A8A8A8A8A8A8541E
+:108E2000A8AAAAAAAAA8A8A8A8A8A8A8A8A8A8540E
+:108E3000A8AAAAAAAAA8A8A8A8A8A8A8A8A8A854FE
+:108E4000A8AAAAAAAAA8A8A8A8A8A8A8A8A8A854EE
+:108E5000A8AAAAAAAAA8A8A8A8A8A8A8A8A8A854DE
+:108E6000A8AAAAAAAAA8A8A8A8A8A8A8A8A8A854CE
+:108E7000A8AAAAAAAAA8A8A8A8A8A8A8A8A8A854BE
+:108E8000A8AAAAAAAAA8A8A8A8A8A8A8A8A8A854AE
+:108E9000A8AAAAAAAAA8A8A8A8A8A8A8A8A8A8549E
+:108EA000A8AAAAAAAAA8A8A8A8A8A8A8A8A8A8548E
+:108EB000A8AAAAAAAAA8A8A8A8A8A8A8A8A8A8547E
+:108EC000A8AAAAAAAAA8A8A8A8A8A8A8A8A8A8546E
+:108ED000A8AAAAAAAAA8A8A8A8A8A8A8A8A8A8545E
+:108EE000A8AAAAAAAAA8A8A8A8A8A8A8A8A8A8544E
+:108EF000A8565656565454545454545454545454D6
+:108F000000AAAAAAAAA8A8A8A8A8A8A8A8A8A80029
+:108F100000AAAAAAAAA8A8A8A8A8A8A8A8A8A80019
+:108F200000AAAAAAAAA8A8A8A8A8A8A8A8A8A80009
+:108F300000AAAAAAAAA8A8A8A8A8A8A8A8A8A800F9
+:108F400000AAAAAAAAA8A8A8A8A8A8A8A8A8A800E9
+:108F500000AAAAAAAAA8A8A8A8A8A8A8A8A8A800D9
+:108F600000AAAAAAAAA8A8A8A8A8A8A8A8A8A800C9
+:108F700000AAAAAAAAA8A8A8A8A8A8A8A8A8A800B9
+:108F800000AAAAAAAAA8A8A8A8A8A8A8A8A8A800A9
+:108F900000AAAAAAAAA8A8A8A8A8A8A8A8A8A80099
+:108FA00000AAAAAAAAA8A8A8A8A8A8A8A8A8A80089
+:108FB00000AAAAAAAAA8A8A8A8A8A8A8A8A8A80079
+:108FC00000AAAAAAAAA8A8A8A8A8A8A8A8A8A80069
+:108FD00000AAAAAAAAA8A8A8A8A8A8A8A8A8A80059
+:108FE00000AAAAAAAAA8A8A8A8A8A8A8A8A8A80049
+:108FF00000565656565454545454545454545400D1
+:10900000AAAA0202020200000000000000000055AF
+:10901000AAAAAA02020200000000000000000055F7
+:1090200000AAAAAA0202020000000000000000003C
+:1090300040AAAAAA020202000000000000000000EC
+:1090400040AAAAAA020202000000000000000000DC
+:1090500040AAAAAA020202000000000000000000CC
+:1090600040AAAAAA020202000000000000000000BC
+:1090700040AAAAAA020202000000000000000000AC
+:1090800040AAAAAA0202020000000000000000009C
+:1090900040AAAAAA0202020000000000000000008C
+:1090A00040AAAAAA0202020000000000000000007C
+:1090B00040AAAAAA0202020000000000000000006C
+:1090C00040AAAAAA0202020000000000000000005C
+:1090D00040AAAAAA0202020000000000000000004C
+:1090E00040AAAAAA0202020000000000000000003C
+:1090F00040AAAAAA0202020000000000000000002C
+:1091000040AAAAAA0202020000000000000000001B
+:1091100054AAAAAA020202000000000000000000F7
+:1091200000AAAAAA0202020000000000000000003B
+:1091300040AAAAAA020202000000000000000000EB
+:1091400040AAAAAA020202000000000000000000DB
+:1091500040AAAAAA020202000000000000000000CB
+:1091600040AAAAAA020202000000000000000000BB
+:1091700040AAAAAA020202000000000000000000AB
+:1091800040AAAAAA0202020000000000000000009B
+:1091900040AAAAAA0202020000000000000000008B
+:1091A00040AAAAAA0202020000000000000000007B
+:1091B00040AAAAAA0202020000000000000000006B
+:1091C00040AAAAAA0202020000000000000000005B
+:1091D00040AAAAAA0202020000000000000000004B
+:1091E00040AAAAAA0202020000000000000000003B
+:1091F00040AAAAAA0202020000000000000000002B
+:1092000040AAAAAA0202020000000000000000001A
+:1092100054AAAAAA020202000000000000000000F6
+:10922000AAAAAAAA0202020000000000000000553B
+:109230002AAAAAAA020202000000000000000055AB
+:109240002AAAAAAA0202020000000000000000559B
+:109250002AAAAAAA0202020000000000000000558B
+:109260002AAAAAAA0202020000000000000000557B
+:109270002AAAAAAA0202020000000000000000556B
+:109280002AAAAAAA0202020000000000000000555B
+:109290002AAAAAAA0202020000000000000000554B
+:1092A0002AAAAAAA0202020000000000000000553B
+:1092B0002AAAAAAA0202020000000000000000552B
+:1092C0002AAAAAAA0202020000000000000000551B
+:1092D0002AAAAAAA0202020000000000000000550B
+:1092E0002AAAAAAA020202000000000000000055FB
+:1092F0002AAAAAAA020202000000000000000055EB
+:109300002AAAAAAA020202000000000000000055DA
+:1093100002AAAAAA020202000000000000000055F2
+:10932000AAAAAAAA02020202000000000000005538
+:109330002AAAAAAA020202000000000000000055AA
+:109340002AAAAAAA0202020000000000000000559A
+:109350002AAAAAAA0202020000000000000000558A
+:109360002AAAAAAA0202020000000000000000557A
+:109370002AAAAAAA0202020000000000000000556A
+:109380002AAAAAAA0202020000000000000000555A
+:109390002AAAAAAA0202020000000000000000554A
+:1093A0002AAAAAAA0202020000000000000000553A
+:1093B0002AAAAAAA0202020000000000000000552A
+:1093C0002AAAAAAA0202020000000000000000551A
+:1093D0002AAAAAAA0202020000000000000000550A
+:1093E0002AAAAAAA020202000000000000000055FA
+:1093F0002AAAAAAA020202000000000000000055EA
+:109400002AAAAAAA020202000000000000000055D9
+:1094100002AAAAAA020202000000000000000055F1
+:1094200000AAAAAAAA02020202000000000000008C
+:1094300040AAAAAAAA02020200000000000000003E
+:1094400040AAAAAAAA02020200000000000000002E
+:1094500040AAAAAAAA02020200000000000000001E
+:1094600040AAAAAAAA02020200000000000000000E
+:1094700040AAAAAAAA0202020000000000000000FE
+:1094800040AAAAAAAA0202020000000000000000EE
+:1094900040AAAAAAAA0202020000000000000000DE
+:1094A00040AAAAAAAA0202020000000000000000CE
+:1094B00040AAAAAAAA0202020000000000000000BE
+:1094C00040AAAAAAAA0202020000000000000000AE
+:1094D00040AAAAAAAA02020200000000000000009E
+:1094E00040AAAAAAAA02020200000000000000008E
+:1094F00040AAAAAAAA02020200000000000000007E
+:1095000040AAAAAAAA02020200000000000000006D
+:1095100055AAAAAAAA020202000000000000000048
+:1095200000AAAAAAAA020202020200000000000089
+:1095300040AAAAAAAA02020202000000000000003B
+:1095400040AAAAAAAA02020202000000000000002B
+:1095500040AAAAAAAA02020202000000000000001B
+:1095600040AAAAAAAA02020202000000000000000B
+:1095700040AAAAAAAA0202020200000000000000FB
+:1095800040AAAAAAAA0202020200000000000000EB
+:1095900040AAAAAAAA0202020200000000000000DB
+:1095A00040AAAAAAAA0202020200000000000000CB
+:1095B00040AAAAAAAA0202020200000000000000BB
+:1095C00040AAAAAAAA0202020200000000000000AB
+:1095D00040AAAAAAAA02020202000000000000009B
+:1095E00040AAAAAAAA02020202000000000000008B
+:1095F00040AAAAAAAA02020202000000000000007B
+:1096000040AAAAAAAA02020202000000000000006A
+:1096100055AAAAAAAA020202020000000000000045
+:10962000AAAAAAAAAAAA02020202020000000055DF
+:109630002AAAAAAAAAAA0202020200000000005551
+:109640002AAAAAAAAAAA0202020200000000005541
+:109650002AAAAAAAAAAA0202020200000000005531
+:109660002AAAAAAAAAAA0202020200000000005521
+:109670002AAAAAAAAAAA0202020200000000005511
+:109680002AAAAAAAAAAA0202020200000000005501
+:109690002AAAAAAAAAAA02020202000000000055F1
+:1096A0002AAAAAAAAAAA02020202000000000055E1
+:1096B0002AAAAAAAAAAA02020202000000000055D1
+:1096C0002AAAAAAAAAAA02020202000000000055C1
+:1096D0002AAAAAAAAAAA02020202000000000055B1
+:1096E0002AAAAAAAAAAA02020202000000000055A1
+:1096F0002AAAAAAAAAAA0202020200000000005591
+:109700002AAAAAAAAAAA0202020200000000005580
+:1097100000AAAAAAAAAA020202020000000000559A
+:10972000AAAAAAAAAAAA02020202020200000055DC
+:109730002AAAAAAAAAAA020202020200000000554E
+:109740002AAAAAAAAAAA020202020200000000553E
+:109750002AAAAAAAAAAA020202020200000000552E
+:109760002AAAAAAAAAAA020202020200000000551E
+:109770002AAAAAAAAAAA020202020200000000550E
+:109780002AAAAAAAAAAA02020202020000000055FE
+:109790002AAAAAAAAAAA02020202020000000055EE
+:1097A0002AAAAAAAAAAA02020202020000000055DE
+:1097B0002AAAAAAAAAAA02020202020000000055CE
+:1097C0002AAAAAAAAAAA02020202020000000055BE
+:1097D0002AAAAAAAAAAA02020202020000000055AE
+:1097E0002AAAAAAAAAAA020202020200000000559E
+:1097F0002AAAAAAAAAAA020202020200000000558E
+:109800002AAAAAAAAAAA020202020200000000557D
+:1098100000AAAAAAAAAA0202020202000000005597
+:1098200000AAAAAAAAAAAA02020202020200000030
+:1098300040AAAAAAAAAAAA020202020200000000E2
+:1098400040AAAAAAAAAAAA020202020200000000D2
+:1098500040AAAAAAAAAAAA020202020200000000C2
+:1098600040AAAAAAAAAAAA020202020200000000B2
+:1098700040AAAAAAAAAAAA020202020200000000A2
+:1098800040AAAAAAAAAAAA02020202020000000092
+:1098900040AAAAAAAAAAAA02020202020000000082
+:1098A00040AAAAAAAAAAAA02020202020000000072
+:1098B00040AAAAAAAAAAAA02020202020000000062
+:1098C00040AAAAAAAAAAAA02020202020000000052
+:1098D00040AAAAAAAAAAAA02020202020000000042
+:1098E00040AAAAAAAAAAAA02020202020000000032
+:1098F00040AAAAAAAAAAAA02020202020000000022
+:1099000040AAAAAAAAAAAA02020202020000000011
+:1099100055AAAAAAAAAAAA020202020200000000EC
+:1099200000AAAAAAAAAAAAAA020202020202000085
+:1099300040AAAAAAAAAAAAAA020202020202000035
+:1099400040AAAAAAAAAAAAAA020202020202000025
+:1099500040AAAAAAAAAAAAAA020202020202000015
+:1099600040AAAAAAAAAAAAAA020202020202000005
+:1099700040AAAAAAAAAAAAAA0202020202020000F5
+:1099800040AAAAAAAAAAAAAA0202020202020000E5
+:1099900040AAAAAAAAAAAAAA0202020202020000D5
+:1099A00040AAAAAAAAAAAAAA0202020202020000C5
+:1099B00040AAAAAAAAAAAAAA0202020202020000B5
+:1099C00040AAAAAAAAAAAAAA0202020202020000A5
+:1099D00040AAAAAAAAAAAAAA020202020202000095
+:1099E00040AAAAAAAAAAAAAA020202020202000085
+:1099F00040AAAAAAAAAAAAAA020202020202000075
+:109A000040AAAAAAAAAAAAAA020202020202000064
+:109A100055AAAAAAAAAAAAAA02020202020200003F
+:109A2000AAA9A9A9A9A9A9A9A901010101010155E9
+:109A30002AA9A9A9A9A9A9A9A90101010101015559
+:109A40002AA9A9A9A9A9A9A9A90101010101015549
+:109A50002AA9A9A9A9A9A9A9A90101010101015539
+:109A60002AA9A9A9A9A9A9A9A90101010101015529
+:109A70002AA9A9A9A9A9A9A9A90101010101015519
+:109A80002AA9A9A9A9A9A9A9A90101010101015509
+:109A90002AA9A9A9A9A9A9A9A901010101010155F9
+:109AA0002AA9A9A9A9A9A9A9A901010101010155E9
+:109AB0002AA9A9A9A9A9A9A9A901010101010155D9
+:109AC0002AA9A9A9A9A9A9A9A901010101010155C9
+:109AD0002AA9A9A9A9A9A9A9A901010101010155B9
+:109AE0002AA9A9A9A9A9A9A9A901010101010155A9
+:109AF0002AA9A9A9A9A9A9A9A90101010101015599
+:109B00002AA9A9A9A9A9A9A9A90101010101015588
+:109B100000A9A9A9A9A9A9A9A901010101010155A2
+:109B2000A8A9A9A9A9A9A9A9A9A901010101015443
+:109B300028A9A9A9A9A9A9A9A9A9010101010154B3
+:109B400028A9A9A9A9A9A9A9A9A9010101010154A3
+:109B500028A9A9A9A9A9A9A9A9A901010101015493
+:109B600028A9A9A9A9A9A9A9A9A901010101015483
+:109B700028A9A9A9A9A9A9A9A9A901010101015473
+:109B800028A9A9A9A9A9A9A9A9A901010101015463
+:109B900028A9A9A9A9A9A9A9A9A901010101015453
+:109BA00028A9A9A9A9A9A9A9A9A901010101015443
+:109BB00028A9A9A9A9A9A9A9A9A901010101015433
+:109BC00028A9A9A9A9A9A9A9A9A901010101015423
+:109BD00028A9A9A9A9A9A9A9A9A901010101015413
+:109BE00028A9A9A9A9A9A9A9A9A901010101015403
+:109BF00028A9A9A9A9A9A9A9A9A9010101010154F3
+:109C000028A9A9A9A9A9A9A9A9A9010101010154E2
+:109C100001A9A9A9A9A9A9A9A9A9010101010154F9
+:109C200056A9A9A9A9A9A9A9A9A9010101010101E7
+:109C300056A9A9A9A9A9A9A9A9A9010101010101D7
+:109C400056A9A9A9A9A9A9A9A9A9010101010101C7
+:109C500056A9A9A9A9A9A9A9A9A9010101010101B7
+:109C600056A9A9A9A9A9A9A9A9A9010101010101A7
+:109C700056A9A9A9A9A9A9A9A9A901010101010197
+:109C800056A9A9A9A9A9A9A9A9A901010101010187
+:109C900056A9A9A9A9A9A9A9A9A901010101010177
+:109CA00056A9A9A9A9A9A9A9A9A901010101010167
+:109CB00056A9A9A9A9A9A9A9A9A901010101010157
+:109CC00056A9A9A9A9A9A9A9A9A901010101010147
+:109CD00056A9A9A9A9A9A9A9A9A901010101010137
+:109CE00056A9A9A9A9A9A9A9A9A901010101010127
+:109CF00056A9A9A9A9A9A9A9A9A901010101010117
+:109D000056A9A9A9A9A9A9A9A9A901010101010106
+:109D100054A9A9A9A9A9A9A9A9A9010101010101F8
+:109D200055A9A9A9A9A9A9A9A9A9A9010101010040
+:109D300000A9A9A9A9A9A9A9A9A9A9A90101015588
+:109D400001A9A9A9A9A9A9A9A9A9A9A9A9010154D0
+:109D500001A9A9A9A9A9A9A9A9A9A9A9A9010154C0
+:109D600001A9A9A9A9A9A9A9A9A9A9A9A9010154B0
+:109D700001A9A9A9A9A9A9A9A9A9A9A9A9010154A0
+:109D800001A9A9A9A9A9A9A9A9A9A9A9A901015490
+:109D900001A9A9A9A9A9A9A9A9A9A9A9A901015480
+:109DA00001A9A9A9A9A9A9A9A9A9A9A9A901015470
+:109DB00001A9A9A9A9A9A9A9A9A9A9A9A901015460
+:109DC00001A9A9A9A9A9A9A9A9A9A9A9A901015450
+:109DD00001A9A9A9A9A9A9A9A9A9A9A9A901015440
+:109DE00001A9A9A9A9A9A9A9A9A9A9A9A901015430
+:109DF00001A9A9A9A9A9A9A9A9A9A9A9A901015420
+:109E000001A9A9A9A9A9A9A9A9A9A9A9A90101540F
+:109E100001A9A9A9A9A9A9A9A9A9A9A9A9010154FF
+:109E200001A9A9A9A9A9A9A9A9A9A9A9A9010154EF
+:109E300001A9A9A9A9A9A9A9A9A9A9A9A9010156DD
+:109E400054A9A9A9A9A9A9A9A9A9A9A9A9A9010127
+:109E500054A9A9A9A9A9A9A9A9A9A9A9A9A9010117
+:109E600054A9A9A9A9A9A9A9A9A9A9A9A9A9010107
+:109E700054A9A9A9A9A9A9A9A9A9A9A9A9A90101F7
+:109E800054A9A9A9A9A9A9A9A9A9A9A9A9A90101E7
+:109E900054A9A9A9A9A9A9A9A9A9A9A9A9A90101D7
+:109EA00054A9A9A9A9A9A9A9A9A9A9A9A9A90101C7
+:109EB00054A9A9A9A9A9A9A9A9A9A9A9A9A90101B7
+:109EC00054A9A9A9A9A9A9A9A9A9A9A9A9A90101A7
+:109ED00054A9A9A9A9A9A9A9A9A9A9A9A9A9010197
+:109EE00054A9A9A9A9A9A9A9A9A9A9A9A9A9010187
+:109EF00054A9A9A9A9A9A9A9A9A9A9A9A9A9010177
+:109F000054A9A9A9A9A9A9A9A9A9A9A9A9A9010166
+:109F100054A9A9A9A9A9A9A9A9A9A9A9A9A9010156
+:109F200054A9A9A9A9A9A9A9A9A9A9A9A9A9010146
+:109F300054A9A9A9A9A9A9A9A9A9A9A9A9A9010235
+:109F40000155555556565656555555555555555412
+:109F50000155555555555555555555555555555406
+:109F600001555555555555555555555555555554F6
+:109F700001555555555555555555555555555554E6
+:109F800001555555555555555555555555555554D6
+:109F900001555555555555555555555555555554C6
+:109FA00001555555555555555555555555555554B6
+:109FB00001555555555555555555555555555554A6
+:109FC0000155555555555555555555555555555496
+:109FD0000155555555555555555555555555555486
+:109FE0000155555555555555555555555555555476
+:109FF0000155555555555555555555555555555466
+:10A000000155555555555555555555555555555455
+:10A010000155555555555555555555555555555445
+:10A020000155555555555555555555555555555435
+:10A030000155555555555555555555555555555623
+:10A0400054555556565656565655555555555556BA
+:10A0500054555555555555555555555555555556B0
+:10A0600054555555555555555555555555555556A0
+:10A070005455555555555555555555555555555690
+:10A080005455555555555555555555555555555680
+:10A090005455555555555555555555555555555670
+:10A0A0005455555555555555555555555555555660
+:10A0B0005455555555555555555555555555555650
+:10A0C0005455555555555555555555555555555640
+:10A0D0005455555555555555555555555555555630
+:10A0E0005455555555555555555555555555555620
+:10A0F0005455555555555555555555555555555610
+:10A1000054555555555555555555555555555556FF
+:10A1100054555555555555555555555555555556EF
+:10A1200054555555555555555555555555555556DF
+:10A1300054555555555555555555555555555554D1
+:10A14000015555565656565656555656555555AAB6
+:10A15000015555555656565655555555555555AAAA
+:10A16000015555555656565655555555555555AA9A
+:10A17000015555555656565655555555555555AA8A
+:10A18000015555555656565655555555555555AA7A
+:10A19000015555555656565655555555555555AA6A
+:10A1A000015555555656565655555555555555AA5A
+:10A1B000015555555656565655555555555555AA4A
+:10A1C000015555555656565655555555555555AA3A
+:10A1D000015555555656565655555555555555AA2A
+:10A1E000015555555656565655555555555555AA1A
+:10A1F000015555555656565655555555555555AA0A
+:10A20000015555555656565655555555555555AAF9
+:10A21000015555555656565655555555555555AAE9
+:10A22000015555555656565655555555555555AAD9
+:10A23000015555555555555555555555555555AACD
+:10A24000545555565656565656565656565656A860
+:10A25000545656565656565656565656565656A84E
+:10A26000545656565656565656565656565656A83E
+:10A27000545656565656565656565656565656A82E
+:10A28000545656565656565656565656565656A81E
+:10A29000545656565656565656565656565656A80E
+:10A2A000545656565656565656565656565656A8FE
+:10A2B000545656565656565656565656565656A8EE
+:10A2C000545656565656565656565656565656A8DE
+:10A2D000545656565656565656565656565656A8CE
+:10A2E000545656565656565656565656565656A8BE
+:10A2F000545656565656565656565656565656A8AE
+:10A30000545656565656565656565656565656A89D
+:10A31000545656565656565656565656565656A88D
+:10A32000545656565656565656565656565656A87D
+:10A33000545555565656565654545656565656A873
+:10A340000156565656565656565656565656560256
+:10A350000156565656565656565656565656560246
+:10A360000156565656565656565656565656560236
+:10A370000156565656565656565656565656560226
+:10A380000156565656565656565656565656560216
+:10A390000156565656565656565656565656560206
+:10A3A00001565656565656565656565656565602F6
+:10A3B00001565656565656565656565656565602E6
+:10A3C00001565656565656565656565656565602D6
+:10A3D00001565656565656565656565656565602C6
+:10A3E00001565656565656565656565656565602B6
+:10A3F00001565656565656565656565656565602A6
+:10A400000156565656565656565656565656560295
+:10A410000156565656565656565656565656560285
+:10A420000156565656565656565656565656560275
+:10A430000155545656565656565656565656560268
+:10A44000545656565656565656565656565656A85C
+:10A450000156565656565656565656565656560245
+:10A46000545656565656565656565656565656A83C
+:10A4700001AAAAAAAAAAAAAAAAAAAAAAAAAAAA028D
+:10A4800054AAAAAAAAAAAAAAAAAAAAAAAAAAAAA884
+:10A4900001AAAAAAAAAAAAAAAAAAAAAAAAAAAA026D
+:10A4A00054AAAAAAAAAAAAAAAAAAAAAAAAAAAAA864
+:10A4B00001AAAAAAAAAAAAAAAAAAAAAAAAAAAA024D
+:10A4C00001AAAAAAAAAAAAAAAAAAAAAAAAAAAA023D
+:10A4D00001AAAAAAAAAAAAAAAAAAAAAAAAAAAA022D
+:10A4E00001AAAAAAAAAAAAAAAAAAAAAAAAAAAA021D
+:10A4F00001AAAAAAAAAAAAAAAAAAAAAAAAAAAA020D
+:10A5000001AAAAAAAAAAAAAAAAAAAAAAAAAAAA02FC
+:10A5100001AAAAAAAAAAAAAAAAAAAAAAAAAAAA02EC
+:10A5200001AAAAAAAAAAAAAAAAAAAAAAAAAAAA02DC
+:10A5300001AAAAAAAAAAAAAAAAAAAAAAAAAAAA02CC
+:10A5400001AAAAAAAAAAAAAAAAAAAAAAAAAAAA02BC
+:10A5500001AAAAAAAAAAAAAAAAAAAAAAAAAAAA02AC
+:10A5600001AAAAAAAAAAAAAAAAAAAAAAAAAAAA029C
+:10A5700001AAAAAAAAAAAAAAAAAAAAAAAAAAAA028C
+:10A5800001AAAAAAAAAAAAAAAAAAAAAAAAAAAA027C
+:10A5900001AAAAAAAAAAAAAAAAAAAAAAAAAAAA026C
+:10A5A00001AAAAAAAAAAAAAAAAAAAAAAAAAAAA015D
+:10A5B00054A9A9A9A9A9A9A9A9A9A9A9A9A9A8A862
+:10A5C00000A9A9A9A9A9A9A9A9A9A9A9A9A8A8004F
+:10A5D00055A9A9A9A9A9A9A9A9A9A9A9A8A8A8AA41
+:10A5E000015555555555555555555554545400021A
+:10A5F000545555555555555555555454540000A866
+:10A60000545555555555555555545454000000A8AA
+:10A6100001555555555555555454540000000002E8
+:10A6200001555555555555555454540000000002D8
+:10A6300001555555555555555454540000000002C8
+:10A6400001555555555555555454540000000002B8
+:10A6500001555555555555555454540000000002A8
+:10A660000155555555555555545454000000000298
+:10A670000155555555555555545454000000000288
+:10A680000155555555555555545454000000000278
+:10A690000155555555555555545454000000000268
+:10A6A0000155555555555555545454000000000258
+:10A6B0000155555555555555545454000000000248
+:10A6C0000155555555555555545454000000000238
+:10A6D0000155555555555555545454000000000228
+:10A6E0000155555555555555545454000000000218
+:10A6F0000155555555555555545454000000000208
+:10A7000001555555555555555454540000000000F9
+:10A71000015555555555555454540000000000023C
+:10A72000015555555555555454540000000000022C
+:10A73000015555555555555454540000000000021C
+:10A74000015555555555555454540000000000020C
+:10A7500001555555555555545454000000000002FC
+:10A7600001555555555555545454000000000002EC
+:10A7700001555555555555545454000000000002DC
+:10A7800001555555555555545454000000000002CC
+:10A7900001555555555555545454000000000002BC
+:10A7A00001555555555555545454000000000002AC
+:10A7B000015555555555555454540000000000029C
+:10A7C000015555555555555454540000000000028C
+:10A7D000015555555555555454540000000000027C
+:10A7E000015555555555555454540000000000026C
+:10A7F000015555555555555454540000000000025C
+:10A80000015555555555555454540000000000004D
+:10A81000545555555555555454540000000000A842
+:10A82000545555555555555454000000000000A886
+:10A8300001555555555554540000000000000002C4
+:10A8400001555555555554540000000000000002B4
+:10A8500001555555555554540000000000000002A4
+:10A860000155555555555454000000000000000294
+:10A870000155555555555454000000000000000284
+:10A880000155555555555454000000000000000274
+:10A890000155555555555454000000000000000264
+:10A8A0000155555555555454000000000000000254
+:10A8B0000155555555555454000000000000000244
+:10A8C0000155555555555454000000000000000234
+:10A8D0000155555555555454000000000000000224
+:10A8E0000155555555555454000000000000000214
+:10A8F0000155555555555454000000000000000204
+:10A9000001555555555554540000000000000002F3
+:10A9100001555555555554540000000000000002E3
+:10A9200001555555555554540000000000000000D5
+:10A930000155555555555400000000000000000217
+:10A940000155555555555400000000000000000207
+:10A9500001555555555554000000000000000002F7
+:10A9600001555555555554000000000000000002E7
+:10A9700001555555555554000000000000000002D7
+:10A9800001555555555554000000000000000002C7
+:10A9900001555555555554000000000000000002B7
+:10A9A00001555555555554000000000000000002A7
+:10A9B0000155555555555400000000000000000297
+:10A9C0000155555555555400000000000000000287
+:10A9D0000155555555555400000000000000000277
+:10A9E0000155555555555400000000000000000267
+:10A9F0000155555555555400000000000000000257
+:10AA00000155555555555400000000000000000246
+:10AA10000155555555555400000000000000000236
+:10AA20000155555555555400000000000000000028
+:10AA3000545555555554000000000000000000A872
+:10AA4000545555555554000000000000000000A862
+:10AA5000545555555554000000000000000000A852
+:10AA6000545555555554000000000000000000A842
+:10AA7000545555555554000000000000000000A832
+:10AA8000545555555554000000000000000000A822
+:10AA9000545555555554000000000000000000A812
+:10AAA000545555555554000000000000000000A802
+:10AAB000545555555554000000000000000000A8F2
+:10AAC000545555555554000000000000000000A8E2
+:10AAD000545555555554000000000000000000A8D2
+:10AAE000545555555554000000000000000000A8C2
+:10AAF000545555555554000000000000000000A8B2
+:10AB0000545555555554000000000000000000A8A1
+:10AB1000545555555554000000000000000000A891
+:10AB20005455555555540000000000000000000029
+:10AB3000545555555554000000000000000000A871
+:10AB4000545555555554000000000000000000A861
+:10AB5000545555555554000000000000000000A851
+:10AB6000545555555554000000000000000000A841
+:10AB7000545555555554000000000000000000A831
+:10AB8000545555555554000000000000000000A821
+:10AB9000545555555554000000000000000000A811
+:10ABA000545555555554000000000000000000A801
+:10ABB000545555555554000000000000000000A8F1
+:10ABC000545555555554000000000000000000A8E1
+:10ABD000545555555554000000000000000000A8D1
+:10ABE000545555555554000000000000000000A8C1
+:10ABF000545555555554000000000000000000A8B1
+:10AC0000545555555554000000000000000000A8A0
+:10AC1000545555555554000000000000000000A890
+:10AC20005455555555540000000000000000000028
+:10AC300001555555540000000000000000000001BF
+:10AC400001555555540000000000000000000001AF
+:10AC5000015555555400000000000000000000019F
+:10AC6000015555555400000000000000000000018F
+:10AC7000015555555400000000000000000000017F
+:10AC8000015555555400000000000000000000016F
+:10AC9000015555555400000000000000000000015F
+:10ACA000015555555400000000000000000000014F
+:10ACB000015555555400000000000000000000013F
+:10ACC000015555555400000000000000000000012F
+:10ACD000015555555400000000000000000000011F
+:10ACE000015555555400000000000000000000010F
+:10ACF00001555555540000000000000000000001FF
+:10AD000001555555540000000000000000000001EE
+:10AD100001555555540000000000000000000001DE
+:10AD200001555555540000000000000000000000CF
+:10AD300001555555540000000000000000000001BE
+:10AD400001555555540000000000000000000001AE
+:10AD5000015555555400000000000000000000019E
+:10AD6000015555555400000000000000000000018E
+:10AD7000015555555400000000000000000000017E
+:10AD8000015555555400000000000000000000016E
+:10AD9000015555555400000000000000000000015E
+:10ADA000015555555400000000000000000000014E
+:10ADB000015555555400000000000000000000013E
+:10ADC000015555555400000000000000000000012E
+:10ADD000015555555400000000000000000000011E
+:10ADE000015555555400000000000000000000010E
+:10ADF00001555555540000000000000000000001FE
+:10AE000001555555540000000000000000000001ED
+:10AE100001555555540000000000000000000001DD
+:10AE200001555555540000000000000000000000CE
+:10AE3000545555540000000000000000000000A818
+:10AE4000545555540000000000000000000000A808
+:10AE5000545555540000000000000000000000A8F8
+:10AE6000545555540000000000000000000000A8E8
+:10AE7000545555540000000000000000000000A8D8
+:10AE8000545555540000000000000000000000A8C8
+:10AE9000545555540000000000000000000000A8B8
+:10AEA000545555540000000000000000000000A8A8
+:10AEB000545555540000000000000000000000A898
+:10AEC000545555540000000000000000000000A888
+:10AED000545555540000000000000000000000A878
+:10AEE000545555540000000000000000000000A868
+:10AEF000545555540000000000000000000000A858
+:10AF0000545555540000000000000000000000A847
+:10AF1000545555540000000000000000000000A837
+:10AF200054555554000000000000000000000000CF
+:10AF3000545555540000000000000000000000A817
+:10AF4000545555540000000000000000000000A807
+:10AF5000545555540000000000000000000000A8F7
+:10AF6000545555540000000000000000000000A8E7
+:10AF7000545555540000000000000000000000A8D7
+:10AF8000545555540000000000000000000000A8C7
+:10AF9000545555540000000000000000000000A8B7
+:10AFA000545555540000000000000000000000A8A7
+:10AFB000545555540000000000000000000000A897
+:10AFC000545555540000000000000000000000A887
+:10AFD000545555540000000000000000000000A877
+:10AFE000545555540000000000000000000000A867
+:10AFF000545555540000000000000000000000A857
+:10B00000545555540000000000000000000000A846
+:10B01000545555540000000000000000000000A836
+:10B0200054555554000000000000000000000000CE
+:10B030000155545400000000000000000000000210
+:10B040000155545400000000000000000000000200
+:10B0500001555454000000000000000000000002F0
+:10B0600001555454000000000000000000000002E0
+:10B0700001555454000000000000000000000002D0
+:10B0800001555454000000000000000000000002C0
+:10B0900001555454000000000000000000000002B0
+:10B0A00001555454000000000000000000000002A0
+:10B0B0000155545400000000000000000000000290
+:10B0C0000155545400000000000000000000000280
+:10B0D0000155545400000000000000000000000270
+:10B0E0000155545400000000000000000000000260
+:10B0F0000155545400000000000000000000000250
+:10B10000015554540000000000000000000000023F
+:10B11000015554540000000000000000000000022F
+:10B120000155545400000000000000000000000021
+:10B13000015554540000000000000000000000020F
+:10B1400001555454000000000000000000000002FF
+:10B1500001555454000000000000000000000002EF
+:10B1600001555454000000000000000000000002DF
+:10B1700001555454000000000000000000000002CF
+:10B1800001555454000000000000000000000002BF
+:10B1900001555454000000000000000000000002AF
+:10B1A000015554540000000000000000000000029F
+:10B1B000015554540000000000000000000000028F
+:10B1C000015554540000000000000000000000027F
+:10B1D000015554540000000000000000000000026F
+:10B1E000015554540000000000000000000000025F
+:10B1F000015554540000000000000000000000024F
+:10B20000015554540000000000000000000000023E
+:10B21000015554540000000000000000000000022E
+:10B220000155545400000000000000000000000020
+:10B23000545454000000000000000000000000A86A
+:10B24000545454000000000000000000000000A85A
+:10B25000545454000000000000000000000000A84A
+:10B26000545454000000000000000000000000A83A
+:10B27000545454000000000000000000000000A82A
+:10B28000545454000000000000000000000000A81A
+:10B29000545454000000000000000000000000A80A
+:10B2A000545454000000000000000000000000A8FA
+:10B2B000545454000000000000000000000000A8EA
+:10B2C000545454000000000000000000000000A8DA
+:10B2D000545454000000000000000000000000A8CA
+:10B2E000545454000000000000000000000000A8BA
+:10B2F000545454000000000000000000000000A8AA
+:10B30000545454000000000000000000000000A899
+:10B31000545454000000000000000000000000A889
+:10B320005454540000000000000000000000000021
+:10B33000575703030303030303030303030303AB8D
+:10B34000575703030303030303030303030303AB7D
+:10B35000575703030303030303030303030303AB6D
+:10B36000575703030303030303030303030303AB5D
+:10B37000575703030303030303030303030303AB4D
+:10B38000575703030303030303030303030303AB3D
+:10B39000575703030303030303030303030303AB2D
+:10B3A000575703030303030303030303030303AB1D
+:10B3B000575703030303030303030303030303AB0D
+:10B3C000575703030303030303030303030303ABFD
+:10B3D000575703030303030303030303030303ABED
+:10B3E000575703030303030303030303030303ABDD
+:10B3F000575703030303030303030303030303ABCD
+:10B40000575703030303030303030303030303ABBC
+:10B41000575703030303030303030303030303ABAC
+:10B420005757030303030303030303030303030344
+:10B43000000000000000000000000000000000000C
+:10B44000FCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFC3C
+:10B4500000000000000000000000000000000000EC
+:10B4600000000000000000000000000000000000DC
+:10B4700000000000000000000000000000000000CC
+:10B4800000000000000000000000000000000000BC
+:10B4900000000000000000000000000000000000AC
+:10B4A000000000000000000000000000000000009C
+:10B4B000000000000000000000000000000000008C
+:10B4C000000000000000000000000000000000007C
+:10B4D000000000000000000000000000000000006C
+:10B4E000000000000000000000000000000000005C
+:10B4F000000000000000000000000000000000004C
+:10B50000AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA9B
+:10B51000AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8B
+:10B52000AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA7B
+:10B53000AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA6B
+:10B54000AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA5B
+:10B55000AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA4B
+:10B56000AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA3B
+:10B57000AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA2B
+:10B580005555555555555555AAAAAAAAAAAAAAAAC3
+:10B590005555555555555555AAAAAAAAAAAAAAAAB3
+:10B5A0005555555555555555AAAAAAAAAAAAAAAAA3
+:10B5B0005555555555555555AAAAAAAAAAAAAAAA93
+:10B5C0005555555555555555AAAAAAAAAAAAAAAA83
+:10B5D0005555555555555555AAAAAAAAAAAAAAAA73
+:10B5E0005555555555555555AAAAAAAAAAAAAAAA63
+:10B5F0005555555555555555AAAAAAAAAAAAAAAA53
+:10B60000000000000000000000000000000000003A
+:10B61000000000000000000000000000000000002A
+:10B62000000000000000000000000000000000001A
+:10B63000000000000000000000000000000000000A
+:10B6400000000000000000000000000000000000FA
+:10B6500000000000000000000000000000000000EA
+:10B6600000000000000000000000000000000000DA
+:10B6700000000000000000000000000000000000CA
+:10B680005555555555555555000000000000000012
+:10B690005555555555555555000000000000000002
+:10B6A00055555555555555550000000000000000F2
+:10B6B00055555555555555550000000000000000E2
+:10B6C00055555555555555550000000000000000D2
+:10B6D00055555555555555550000000000000000C2
+:10B6E00055555555555555550000000000000000B2
+:10B6F00055555555555555550000000000000000A2
+:10B700005555555555555555AAAAAAAAAAAAAAAA41
+:10B710005555555555555555AAAAAAAAAAAAAAAA31
+:10B720005555555555555555AAAAAAAAAAAAAAAA21
+:10B730005555555555555555AAAAAAAAAAAAAAAA11
+:10B740005555555555555555AAAAAAAAAAAAAAAA01
+:10B750005555555555555555AAAAAAAAAAAAAAAAF1
+:10B760005555555555555555AAAAAAAAAAAAAAAAE1
+:10B770005555555555555555AAAAAAAAAAAAAAAAD1
+:10B78000AAAAAAAAAAAAAAAA5555555555555555C1
+:10B79000AAAAAAAAAAAAAAAA5555555555555555B1
+:10B7A000AAAAAAAAAAAAAAAA5555555555555555A1
+:10B7B000AAAAAAAAAAAAAAAA555555555555555591
+:10B7C000AAAAAAAAAAAAAAAA555555555555555581
+:10B7D000AAAAAAAAAAAAAAAA555555555555555571
+:10B7E000AAAAAAAAAAAAAAAA555555555555555561
+:10B7F000AAAAAAAAAAAAAAAA555555555555555551
+:10B800005555555555555555AAAAAAAAAAAAAAAA40
+:10B810005555555555555555AAAAAAAAAAAAAAAA30
+:10B820005555555555555555AAAAAAAAAAAAAAAA20
+:10B830005555555555555555AAAAAAAAAAAAAAAA10
+:10B840005555555555555555AAAAAAAAAAAAAAAA00
+:10B850005555555555555555AAAAAAAAAAAAAAAAF0
+:10B860005555555555555555AAAAAAAAAAAAAAAAE0
+:10B870005555555555555555AAAAAAAAAAAAAAAAD0
+:10B88000AAAAAAAAAAAAAAAA5555555555555555C0
+:10B89000AAAAAAAAAAAAAAAA5555555555555555B0
+:10B8A000AAAAAAAAAAAAAAAA5555555555555555A0
+:10B8B000AAAAAAAAAAAAAAAA555555555555555590
+:10B8C000AAAAAAAAAAAAAAAA555555555555555580
+:10B8D000AAAAAAAAAAAAAAAA555555555555555570
+:10B8E000AAAAAAAAAAAAAAAA555555555555555560
+:10B8F000AAAAAAAAAAAAAAAA555555555555555550
+:10B900005555555555555555AAAAAAAAAAAAAAAA3F
+:10B910005555555555555555AAAAAAAAAAAAAAAA2F
+:10B920005555555555555555AAAAAAAAAAAAAAAA1F
+:10B930005555555555555555AAAAAAAAAAAAAAAA0F
+:10B940005555555555555555AAAAAAAAAAAAAAAAFF
+:10B950005555555555555555AAAAAAAAAAAAAAAAEF
+:10B960005555555555555555AAAAAAAAAAAAAAAADF
+:10B970005555555555555555AAAAAAAAAAAAAAAACF
+:10B98000AAAAAAAAAAAAAAAA5555555555555555BF
+:10B99000AAAAAAAAAAAAAAAA5555555555555555AF
+:10B9A000AAAAAAAAAAAAAAAA55555555555555559F
+:10B9B000AAAAAAAAAAAAAAAA55555555555555558F
+:10B9C000AAAAAAAAAAAAAAAA55555555555555557F
+:10B9D000AAAAAAAAAAAAAAAA55555555555555556F
+:10B9E000AAAAAAAAAAAAAAAA55555555555555555F
+:10B9F000AAAAAAAAAAAAAAAA55555555555555554F
+:10BA00005555555555555555AAAAAAAAAAAAAAAA3E
+:10BA10005555555555555555AAAAAAAAAAAAAAAA2E
+:10BA20005555555555555555AAAAAAAAAAAAAAAA1E
+:10BA30005555555555555555AAAAAAAAAAAAAAAA0E
+:10BA40005555555555555555AAAAAAAAAAAAAAAAFE
+:10BA50005555555555555555AAAAAAAAAAAAAAAAEE
+:10BA60005555555555555555AAAAAAAAAAAAAAAADE
+:10BA70005555555555555555AAAAAAAAAAAAAAAACE
+:10BA8000AAAAAAAAAAAAAAAA5555555555555555BE
+:10BA9000AAAAAAAAAAAAAAAA5555555555555555AE
+:10BAA000AAAAAAAAAAAAAAAA55555555555555559E
+:10BAB000AAAAAAAAAAAAAAAA55555555555555558E
+:10BAC000AAAAAAAAAAAAAAAA55555555555555557E
+:10BAD000AAAAAAAAAAAAAAAA55555555555555556E
+:10BAE000AAAAAAAAAAAAAAAA55555555555555555E
+:10BAF000AAAAAAAAAAAAAAAA55555555555555554E
+:10BB00005555555555555555AAAAAAAAAAAAAAAA3D
+:10BB10005555555555555555AAAAAAAAAAAAAAAA2D
+:10BB20005555555555555555AAAAAAAAAAAAAAAA1D
+:10BB30005555555555555555AAAAAAAAAAAAAAAA0D
+:10BB40005555555555555555AAAAAAAAAAAAAAAAFD
+:10BB50005555555555555555AAAAAAAAAAAAAAAAED
+:10BB60005555555555555555AAAAAAAAAAAAAAAADD
+:10BB70005555555555555555AAAAAAAAAAAAAAAACD
+:10BB8000AAAAAAAAAAAAAAAA5555555555555555BD
+:10BB9000AAAAAAAAAAAAAAAA5555555555555555AD
+:10BBA000AAAAAAAAAAAAAAAA55555555555555559D
+:10BBB000AAAAAAAAAAAAAAAA55555555555555558D
+:10BBC000AAAAAAAAAAAAAAAA55555555555555557D
+:10BBD000AAAAAAAAAAAAAAAA55555555555555556D
+:10BBE000AAAAAAAAAAAAAAAA55555555555555555D
+:10BBF000AAAAAAAAAAAAAAAA55555555555555554D
+:10BC00005555555555555555AAAAAAAAAAAAAAAA3C
+:10BC10005555555555555555AAAAAAAAAAAAAAAA2C
+:10BC20005555555555555555AAAAAAAAAAAAAAAA1C
+:10BC30005555555555555555AAAAAAAAAAAAAAAA0C
+:10BC40005555555555555555AAAAAAAAAAAAAAAAFC
+:10BC50005555555555555555AAAAAAAAAAAAAAAAEC
+:10BC60005555555555555555AAAAAAAAAAAAAAAADC
+:10BC70005555555555555555AAAAAAAAAAAAAAAACC
+:10BC8000AAAAAAAAAAAAAAAA5555555555555555BC
+:10BC9000AAAAAAAAAAAAAAAA5555555555555555AC
+:10BCA000AAAAAAAAAAAAAAAA55555555555555559C
+:10BCB000AAAAAAAAAAAAAAAA55555555555555558C
+:10BCC000AAAAAAAAAAAAAAAA55555555555555557C
+:10BCD000AAAAAAAAAAAAAAAA55555555555555556C
+:10BCE000AAAAAAAAAAAAAAAA55555555555555555C
+:10BCF000AAAAAAAAAAAAAAAA55555555555555554C
+:10BD00005454545454545454A8A8A8A8A8A8A8A853
+:10BD10005454545454545454A8A8A8A8A8A8A8A843
+:10BD20005454545454545454A8A8A8A8A8A8A8A833
+:10BD30005454545454545454A8A8A8A8A8A8A8A823
+:10BD40005454545454545454A8A8A8A8A8A8A8A813
+:10BD50005454545454545454A8A8A8A8A8A8A8A803
+:10BD60005454545454545454A8A8A8A8A8A8A8A8F3
+:10BD70005454545454545454A8A8A8A8A8A8A8A8E3
+:10BD8000A8A8A8A8A8A8A8A85454545454545454D3
+:10BD9000A8A8A8A8A8A8A8A85454545454545454C3
+:10BDA000A8A8A8A8A8A8A8A85454545454545454B3
+:10BDB000A8A8A8A8A8A8A8A85454545454545454A3
+:10BDC000A8A8A8A8A8A8A8A8545454545454545493
+:10BDD000A8A8A8A8A8A8A8A8545454545454545483
+:10BDE000A8A8A8A8A8A8A8A8545454545454545473
+:10BDF000A8A8A8A8A8A8A8A8545454545454545463
+:10BE00005656565656565656A9A9A9A9A9A9A9A93A
+:10BE10005656565656565656A9A9A9A9A9A9A9A92A
+:10BE20005656565656565656A9A9A9A9A9A9A9A91A
+:10BE30005656565656565656A9A9A9A9A9A9A9A90A
+:10BE40005656565656565656A9A9A9A9A9A9A9A9FA
+:10BE50005656565656565656A9A9A9A9A9A9A9A9EA
+:10BE60005656565656565656A9A9A9A9A9A9A9A9DA
+:10BE70005656565656565656A9A9A9A9A9A9A9A9CA
+:10BE8000AAAAAAAAAAAAAAAA5656565656565656B2
+:10BE9000AAAAAAAAAAAAAAAA5656565656565656A2
+:10BEA000AAAAAAAAAAAAAAAA565656565656565692
+:10BEB000AAAAAAAAAAAAAAAA565656565656565682
+:10BEC000AAAAAAAAAAAAAAAA565656565656565672
+:10BED000AAAAAAAAAAAAAAAA565656565656565662
+:10BEE000AAAAAAAAAAAAAAAA565656565656565652
+:10BEF000AAAAAAAAAAAAAAAA565656565656565642
+:10BF00005252525252525252A1A1A1A1A1A1A1A199
+:10BF10005252525252525252A1A1A1A1A1A1A1A189
+:10BF20005252525252525252A1A1A1A1A1A1A1A179
+:10BF30005252525252525252A1A1A1A1A1A1A1A169
+:10BF40005252525252525252A1A1A1A1A1A1A1A159
+:10BF50005252525252525252A1A1A1A1A1A1A1A149
+:10BF60005252525252525252A1A1A1A1A1A1A1A139
+:10BF70005252525252525252A1A1A1A1A1A1A1A129
+:10BF8000A2A2A2A2A2A2A2A2525252525252525211
+:10BF9000A2A2A2A2A2A2A2A2525252525252525201
+:10BFA000A2A2A2A2A2A2A2A25252525252525252F1
+:10BFB000A2A2A2A2A2A2A2A25252525252525252E1
+:10BFC000A2A2A2A2A2A2A2A25252525252525252D1
+:10BFD000A2A2A2A2A2A2A2A25252525252525252C1
+:10BFE000A2A2A2A2A2A2A2A25252525252525252B1
+:10BFF000A2A2A2A2A2A2A2A25252525252525252A1
+:10C000005A5A5A5A5A5A5A5AA5A5A5A5A5A5A5A538
+:10C010005A5A5A5A5A5A5A5AA5A5A5A5A5A5A5A528
+:10C020005A5A5A5A5A5A5A5AA5A5A5A5A5A5A5A518
+:10C030005A5A5A5A5A5A5A5AA5A5A5A5A5A5A5A508
+:10C040005A5A5A5A5A5A5A5AA5A5A5A5A5A5A5A5F8
+:10C050005A5A5A5A5A5A5A5AA5A5A5A5A5A5A5A5E8
+:10C060005A5A5A5A5A5A5A5AA5A5A5A5A5A5A5A5D8
+:10C070005A5A5A5A5A5A5A5AA5A5A5A5A5A5A5A5C8
+:10C08000AAAAAAAAAAAAAAAA5A5A5A5A5A5A5A5A90
+:10C09000AAAAAAAAAAAAAAAA5A5A5A5A5A5A5A5A80
+:10C0A000AAAAAAAAAAAAAAAA5A5A5A5A5A5A5A5A70
+:10C0B000AAAAAAAAAAAAAAAA5A5A5A5A5A5A5A5A60
+:10C0C000AAAAAAAAAAAAAAAA5A5A5A5A5A5A5A5A50
+:10C0D000AAAAAAAAAAAAAAAA5A5A5A5A5A5A5A5A40
+:10C0E000AAAAAAAAAAAAAAAA5A5A5A5A5A5A5A5A30
+:10C0F000AAAAAAAAAAAAAAAA5A5A5A5A5A5A5A5A20
+:10C100000A0A0A0A0A0A0A0A0505050505050505B7
+:10C110000A0A0A0A0A0A0A0A0505050505050505A7
+:10C120000A0A0A0A0A0A0A0A050505050505050597
+:10C130000A0A0A0A0A0A0A0A050505050505050587
+:10C140000A0A0A0A0A0A0A0A050505050505050577
+:10C150000A0A0A0A0A0A0A0A050505050505050567
+:10C160000A0A0A0A0A0A0A0A050505050505050557
+:10C170000A0A0A0A0A0A0A0A050505050505050547
+:10C180000A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0F
+:10C190000A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0AFF
+:10C1A0000A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0AEF
+:10C1B0000A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0ADF
+:10C1C0000A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0ACF
+:10C1D0000A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0ABF
+:10C1E0000A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0AAF
+:10C1F0000A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A9F
+:10C20000AAAAAAAAAAAAAAAA555555555555555536
+:10C21000AAAAAAAAAAAAAAAA555555555555555526
+:10C22000AAAAAAAAAAAAAAAA555555555555555516
+:10C23000AAAAAAAAAAAAAAAA555555555555555506
+:10C24000AAAAAAAAAAAAAAAA5555555555555555F6
+:10C25000AAAAAAAAAAAAAAAA5555555555555555E6
+:10C26000AAAAAAAAAAAAAAAA5555555555555555D6
+:10C27000AAAAAAAAAAAAAAAA5555555555555555C6
+:10C28000AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA0E
+:10C29000AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFE
+:10C2A000AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEE
+:10C2B000AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADE
+:10C2C000AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACE
+:10C2D000AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABE
+:10C2E000AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAE
+:10C2F000AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA9E
+:10C30000AAAAAAAAAAAAAAAA555555555555555535
+:10C31000AAAAAAAAAAAAAAAA555555555555555525
+:10C32000AAAAAAAAAAAAAAAA555555555555555515
+:10C33000AAAAAAAAAAAAAAAA555555555555555505
+:10C34000AAAAAAAAAAAAAAAA5555555555555555F5
+:10C35000AAAAAAAAAAAAAAAA5555555555555555E5
+:10C36000AAAAAAAAAAAAAAAA5555555555555555D5
+:10C37000AAAAAAAAAAAAAAAA5555555555555555C5
+:10C38000AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA0D
+:10C39000AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFD
+:10C3A000AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAED
+:10C3B000AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADD
+:10C3C000AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACD
+:10C3D000AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABD
+:10C3E000AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD
+:10C3F000AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA9D
+:10C40000A8A8A8A8A8A8A8A854545454545454544C
+:10C41000A8A8A8A8A8A8A8A854545454545454543C
+:10C42000A8A8A8A8A8A8A8A854545454545454542C
+:10C43000A8A8A8A8A8A8A8A854545454545454541C
+:10C44000A8A8A8A8A8A8A8A854545454545454540C
+:10C45000A8A8A8A8A8A8A8A85454545454545454FC
+:10C46000A8A8A8A8A8A8A8A85454545454545454EC
+:10C47000A8A8A8A8A8A8A8A85454545454545454DC
+:10C48000A8A8A8A8A8A8A8A8A8A8A8A8A8A8A8A82C
+:10C49000A8A8A8A8A8A8A8A8A8A8A8A8A8A8A8A81C
+:10C4A000A8A8A8A8A8A8A8A8A8A8A8A8A8A8A8A80C
+:10C4B000A8A8A8A8A8A8A8A8A8A8A8A8A8A8A8A8FC
+:10C4C000A8A8A8A8A8A8A8A8A8A8A8A8A8A8A8A8EC
+:10C4D000A8A8A8A8A8A8A8A8A8A8A8A8A8A8A8A8DC
+:10C4E000A8A8A8A8A8A8A8A8A8A8A8A8A8A8A8A8CC
+:10C4F000A8A8A8A8A8A8A8A8A8A8A8A8A8A8A8A8BC
+:10C50000ABABABABABABABAB57575757575757571B
+:10C51000ABABABABABABABAB57575757575757570B
+:10C52000ABABABABABABABAB5757575757575757FB
+:10C53000ABABABABABABABAB5757575757575757EB
+:10C54000ABABABABABABABAB5757575757575757DB
+:10C55000ABABABABABABABAB5757575757575757CB
+:10C56000ABABABABABABABAB5757575757575757BB
+:10C57000ABABABABABABABAB5757575757575757AB
+:10C58000ABABABABABABABABABABABABABABABABFB
+:10C59000ABABABABABABABABABABABABABABABABEB
+:10C5A000ABABABABABABABABABABABABABABABABDB
+:10C5B000ABABABABABABABABABABABABABABABABCB
+:10C5C000ABABABABABABABABABABABABABABABABBB
+:10C5D000ABABABABABABABABABABABABABABABABAB
+:10C5E000ABABABABABABABABABABABABABABABAB9B
+:10C5F000ABABABABABABABABABABABABABABABAB8B
+:10C60000A8A8A8A8A8A8A8A854545454545454544A
+:10C61000A8A8A8A8A8A8A8A854545454545454543A
+:10C62000A8A8A8A8A8A8A8A854545454545454542A
+:10C63000A8A8A8A8A8A8A8A854545454545454541A
+:10C64000A8A8A8A8A8A8A8A854545454545454540A
+:10C65000A8A8A8A8A8A8A8A85454545454545454FA
+:10C66000A8A8A8A8A8A8A8A85454545454545454EA
+:10C67000A8A8A8A8A8A8A8A85454545454545454DA
+:10C68000A8A8A8A8A8A8A8A8A8A8A8A8A8A8A8A82A
+:10C69000A8A8A8A8A8A8A8A8A8A8A8A8A8A8A8A81A
+:10C6A000A8A8A8A8A8A8A8A8A8A8A8A8A8A8A8A80A
+:10C6B000A8A8A8A8A8A8A8A8A8A8A8A8A8A8A8A8FA
+:10C6C000A8A8A8A8A8A8A8A8A8A8A8A8A8A8A8A8EA
+:10C6D000A8A8A8A8A8A8A8A8A8A8A8A8A8A8A8A8DA
+:10C6E000A8A8A8A8A8A8A8A8A8A8A8A8A8A8A8A8CA
+:10C6F000A8A8A8A8A8A8A8A8A8A8A8A8A8A8A8A8BA
+:10C70000A8A8A8A8A8A8A8A8545454545454545449
+:10C71000A8A8A8A8A8A8A8A8545454545454545439
+:10C72000A8A8A8A8A8A8A8A8545454545454545429
+:10C73000A8A8A8A8A8A8A8A8545454545454545419
+:10C74000A8A8A8A8A8A8A8A8545454545454545409
+:10C75000A8A8A8A8A8A8A8A85454545454545454F9
+:10C76000A8A8A8A8A8A8A8A85454545454545454E9
+:10C77000A8A8A8A8A8A8A8A85454545454545454D9
+:10C78000A8A8A8A8A8A8A8A8A8A8A8A8A8A8A8A829
+:10C79000A8A8A8A8A8A8A8A8A8A8A8A8A8A8A8A819
+:10C7A000A8A8A8A8A8A8A8A8A8A8A8A8A8A8A8A809
+:10C7B000A8A8A8A8A8A8A8A8A8A8A8A8A8A8A8A8F9
+:10C7C000A8A8A8A8A8A8A8A8A8A8A8A8A8A8A8A8E9
+:10C7D000A8A8A8A8A8A8A8A8A8A8A8A8A8A8A8A8D9
+:10C7E000A8A8A8A8A8A8A8A8A8A8A8A8A8A8A8A8C9
+:10C7F000A8A8A8A8A8A8A8A8A8A8A8A8A8A8A8A8B9
+:10C80000A0A0A0A0A0A0A0A05050505050505050A8
+:10C81000A0A0A0A0A0A0A0A0505050505050505098
+:10C82000A0A0A0A0A0A0A0A0505050505050505088
+:10C83000A0A0A0A0A0A0A0A0505050505050505078
+:10C84000A0A0A0A0A0A0A0A0505050505050505068
+:10C85000A0A0A0A0A0A0A0A0505050505050505058
+:10C86000A0A0A0A0A0A0A0A0505050505050505048
+:10C87000A0A0A0A0A0A0A0A0505050505050505038
+:10C88000A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A8
+:10C89000A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A098
+:10C8A000A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A088
+:10C8B000A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A078
+:10C8C000A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A068
+:10C8D000A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A058
+:10C8E000A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A048
+:10C8F000A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A038
+:10C90000ACACACACACACACAC5C5C5C5C5C5C5C5CE7
+:10C91000ACACACACACACACAC5C5C5C5C5C5C5C5CD7
+:10C92000ACACACACACACACAC5C5C5C5C5C5C5C5CC7
+:10C93000ACACACACACACACAC5C5C5C5C5C5C5C5CB7
+:10C94000ACACACACACACACAC5C5C5C5C5C5C5C5CA7
+:10C95000ACACACACACACACAC5C5C5C5C5C5C5C5C97
+:10C96000ACACACACACACACAC5C5C5C5C5C5C5C5C87
+:10C97000ACACACACACACACAC5C5C5C5C5C5C5C5C77
+:10C98000ACACACACACACACACACACACACACACACACE7
+:10C99000ACACACACACACACACACACACACACACACACD7
+:10C9A000ACACACACACACACACACACACACACACACACC7
+:10C9B000ACACACACACACACACACACACACACACACACB7
+:10C9C000ACACACACACACACACACACACACACACACACA7
+:10C9D000ACACACACACACACACACACACACACACACAC97
+:10C9E000ACACACACACACACACACACACACACACACAC87
+:10C9F000ACACACACACACACACACACACACACACACAC77
+:10CA0000A0A0A0A0A0A0A0A05050505050505050A6
+:10CA1000A0A0A0A0A0A0A0A0505050505050505096
+:10CA2000A0A0A0A0A0A0A0A0505050505050505086
+:10CA3000A0A0A0A0A0A0A0A0505050505050505076
+:10CA4000A0A0A0A0A0A0A0A0505050505050505066
+:10CA5000A0A0A0A0A0A0A0A0505050505050505056
+:10CA6000A0A0A0A0A0A0A0A0505050505050505046
+:10CA7000A0A0A0A0A0A0A0A0505050505050505036
+:10CA8000A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A6
+:10CA9000A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A096
+:10CAA000A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A086
+:10CAB000A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A076
+:10CAC000A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A066
+:10CAD000A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A056
+:10CAE000A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A046
+:10CAF000A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A036
+:10CB0000A0A0A0A0A0A0A0A05050505050505050A5
+:10CB1000A0A0A0A0A0A0A0A0505050505050505095
+:10CB2000A0A0A0A0A0A0A0A0505050505050505085
+:10CB3000A0A0A0A0A0A0A0A0505050505050505075
+:10CB4000A0A0A0A0A0A0A0A0505050505050505065
+:10CB5000A0A0A0A0A0A0A0A0505050505050505055
+:10CB6000A0A0A0A0A0A0A0A0505050505050505045
+:10CB7000A0A0A0A0A0A0A0A0505050505050505035
+:10CB8000A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A5
+:10CB9000A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A095
+:10CBA000A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A085
+:10CBB000A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A075
+:10CBC000A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A065
+:10CBD000A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A055
+:10CBE000A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A045
+:10CBF000A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A035
+:10CC00000000000000000000000000000000000024
+:10CC1000F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F014
+:10CC20000000000000000000000000000000000004
+:10CC300000000000000000000000000000000000F4
+:10CC400000000000000000000000000000000000E4
+:10CC500000000000000000000000000000000000D4
+:10CC600000000000000000000000000000000000C4
+:10CC700000000000000000000000000000000000B4
+:10CC800000000000000000000000000000000000A4
+:10CC90000000000000000000000000000000000094
+:10CCA0000000000000000000000000000000000084
+:10CCB0000000000000000000000000000000000074
+:10CCC0000000000000000000000000000000000064
+:10CCD0000000000000000000000000000000000054
+:10CCE0000000000000000000000000000000000044
+:10CCF0000000000000000000000000000000000034
+:10CD000080808080AAAAAAAAAAAAAAAAAAAAAA9540
+:10CD100080808080AAAAAAAAAAAAAAAAAAAAAA9530
+:10CD200080808080AAAAAAAAAAAAAAAAAAAAAA9520
+:10CD300080808080AAAAAAAAAAAAAAAAAAAAAAAAFB
+:10CD400080808080AAAAAAAAAAAAAAAAAAAAAAAAEB
+:10CD5000808080AAAAAAAAAAAAAAAAAAAAAAAAAAB1
+:10CD6000808080AAAAAAAAAAAAAAAAAAAAAAAAAAA1
+:10CD7000808080AAAAAAAAAAAAAAAAAAAAAAAAAA91
+:10CD8000808080AAAAAAAAAAAAAAAAAAAAAAAAAA81
+:10CD9000808080AAAAAAAAAAAAAAAAAAAAAAAAAA71
+:10CDA000808080AAAAAAAAAAAAAAAAAAAAAAAAAA61
+:10CDB0008080AAAAAAAAAAAAAAAAAAAAAAAAAAAA27
+:10CDC0008080AAAAAAAAAAAAAAAAAAAAAAAAAAAA17
+:10CDD0008080AAAAAAAAAAAAAAAAAAAAAAAAAAAA07
+:10CDE0008080AAAAAAAAAAAAAAAAAAAAAAAAAAAAF7
+:10CDF0008080AAAAAAAAAAAAAAAAAAAAAAAAAAAAE7
+:10CE00008080AAAAAAAAAAAAAAAAAAAAAAAAAAAAD6
+:10CE10008080AAAAAAAAAAAAAAAAAAAAAAAAAAAAC6
+:10CE2000AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA62
+:10CE3000AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA52
+:10CE4000AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA42
+:10CE500095AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA47
+:10CE600095AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA37
+:10CE700095AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA27
+:10CE800095AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA17
+:10CE900095AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA07
+:10CEA00095AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAF7
+:10CEB00095AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAE7
+:10CEC00095AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD7
+:10CED00095AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAC7
+:10CEE00095AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB7
+:10CEF00095AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA7
+:10CF000095AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA96
+:10CF100095AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA86
+:10CF200095AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA76
+:10CF300095AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA66
+:10CF400095AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA56
+:10CF500095AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA46
+:10CF600095AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA36
+:10CF700095AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA26
+:10CF800095AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA16
+:10CF900095AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA06
+:10CFA00095AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAF6
+:10CFB00095AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAE6
+:10CFC000958080808080808080808080808080AA22
+:10CFD0009595959595959595959595959580AAAAEC
+:10CFE0009595959595959595959595959580AAAADC
+:10CFF0009595959595959595959595958080AAAAE1
+:10D000009595959595959595959595808080AAAAE5
+:10D010009595959595959595959580808080AAAAEA
+:10D020005595959595959595959580808080AAAA1A
+:10D030005595959595959595958080808080AAAA1F
+:10D040005595959595959595958080808080AAAA0F
+:10D050005595959595959595808080808080AAAA14
+:10D060005595959595959595808080808080AAAA04
+:10D070005595959595959580808080808080AAAA09
+:10D080005595959595959580808080808080AAAAF9
+:10D090005595959595958080808080808080AAAAFE
+:10D0A000559595959595808080808080808080AA18
+:10D0B000559595959595808080808080808080AA08
+:10D0C000559595959580808080808080808080AA0D
+:10D0D000559595959580808080808080808080AAFD
+:10D0E000559595959580808080808080808080AAED
+:10D0F000559595959580808080808080808080AADD
+:10D10000559595959580808080808080808080AACC
+:10D11000559595959580808080808080808080AABC
+:10D12000559595958080808080808080808080AAC1
+:10D13000559595958080808080808080808080AAB1
+:10D14000408080808080808080808080808080801F
+:10D15000408080808080808080808080808080800F
+:10D1600040808080808080808080808080808080FF
+:10D1700040808080808080808080808080808080EF
+:10D1800040808080808080808080808080808080DF
+:10D190007FBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFDF
+:10D1A00040808080808080808080808080808080BF
+:10D1B00040404040404040404040404040404000AF
+:10D1C000404040404040404040404040404040009F
+:10D1D000404040404040404040404040404040008F
+:10D1E000404040404040404040404040404040007F
+:10D1F000404040404040404040404040404040006F
+:10D20000404040404040404040404040404040005E
+:10D21000404040404040404040404040404040004E
+:10D22000404040404040404040404040404040003E
+:10D23000404040404040404040404040404040002E
+:10D24000404040404040404040404040404040001E
+:10D25000404040404040404040404040404040000E
+:10D2600040404040404040404040404040404000FE
+:10D2700040404040404040404040404040404000EE
+:10D2800040404040404040404040404040404000DE
+:10D2900040404040404040404040404040404000CE
+:10D2A00040404040404040404040404040404000BE
+:10D2B00040404040404040404040404040404000AE
+:10D2C000404040404040404040404040404040009E
+:10D2D000404040404040404040404040404040008E
+:10D2E000404040404040404040404040404040007E
+:10D2F000404040404040404040404040404040006E
+:10D30000404040404040404040404040404040005D
+:10D31000404040404040404040404040404040004D
+:10D3200000000000000000000000000000000000FD
+:10D3300000000000000000000000000000000000ED
+:10D3400000000000000000000000000000000000DD
+:10D3500000000000000000000000000000000000CD
+:10D3600000000000000000000000000000000000BD
+:10D3700000000000000000000000000000000000AD
+:10D38000000000000000000000000000000000009D
+:10D39000000000000000000000000000000000008D
+:10D3A000000000000000000000000000000000007D
+:10D3B000000000000000000000000000000000006D
+:10D3C000000000000000000000000000000000005D
+:10D3D000000000000000000000000000000000004D
+:10D3E000000000000000000000000000000000003D
+:10D3F000000000000000000000000000000000002D
+:10D4000080808080AAAAAAAAAAAAAAAAAAAAAA9539
+:10D4100080808080AAAAAAAAAAAAAAAAAAAAAA9529
+:10D4200080808080AAAAAAAAAAAAAAAAAAAAAA9519
+:10D4300080808080AAAAAAAAAAAAAAAAAAAAAAAAF4
+:10D4400080808080AAAAAAAAAAAAAAAAAAAAAAAAE4
+:10D45000808080AAAAAAAAAAAAAAAAAAAAAAAAAAAA
+:10D46000808080AAAAAAAAAAAAAAAAAAAAAAAAAA9A
+:10D47000808080AAAAAAAAAAAAAAAAAAAAAAAAAA8A
+:10D48000808080AAAAAAAAAAAAAAAAAAAAAAAAAA7A
+:10D49000808080AAAAAAAAAAAAAAAAAAAAAAAAAA6A
+:10D4A000808080AAAAAAAAAAAAAAAAAAAAAAAAAA5A
+:10D4B0008080AAAAAAAAAAAAAAAAAAAAAAAAAAAA20
+:10D4C0008080AAAAAAAAAAAAAAAAAAAAAAAAAAAA10
+:10D4D0008080AAAAAAAAAAAAAAAAAAAAAAAAAAAA00
+:10D4E0008080AAAAAAAAAAAAAAAAAAAAAAAAAAAAF0
+:10D4F0008080AAAAAAAAAAAAAAAAAAAAAAAAAAAAE0
+:10D500008080AAAAAAAAAAAAAAAAAAAAAAAAAAAACF
+:10D510008080AAAAAAAAAAAAAAAAAAAAAAAAAAAABF
+:10D52000AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA5B
+:10D53000AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA4B
+:10D54000AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA3B
+:10D5500095AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA40
+:10D5600095AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA30
+:10D5700095AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA20
+:10D5800095AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA10
+:10D5900095AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA00
+:10D5A00095AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAF0
+:10D5B00095AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAE0
+:10D5C00095AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD0
+:10D5D00095AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAC0
+:10D5E00095AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB0
+:10D5F00095AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA0
+:10D6000095AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8F
+:10D6100095AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA7F
+:10D6200095AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA6F
+:10D6300095AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA5F
+:10D6400095AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA4F
+:10D6500095AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA3F
+:10D6600095AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA2F
+:10D6700095AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA1F
+:10D6800095AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA0F
+:10D6900095AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFF
+:10D6A00095AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEF
+:10D6B00095AAAAAAAAAAAAAAAAAAAAAAAAAAAAAADF
+:10D6C000958080808080808080808080808080AA1B
+:10D6D0009595959595959595959595959580AAAAE5
+:10D6E0009595959595959595959595959580AAAAD5
+:10D6F0009595959595959595959595958080AAAADA
+:10D700009595959595959595959595808080AAAADE
+:10D710009595959595959595959580808080AAAAE3
+:10D720005595959595959595959580808080AAAA13
+:10D730005595959595959595958080808080AAAA18
+:10D740005595959595959595958080808080AAAA08
+:10D750005595959595959595808080808080AAAA0D
+:10D760005595959595959595808080808080AAAAFD
+:10D770005595959595959580808080808080AAAA02
+:10D780005595959595959580808080808080AAAAF2
+:10D790005595959595958080808080808080AAAAF7
+:10D7A000559595959595808080808080808080AA11
+:10D7B000559595959595808080808080808080AA01
+:10D7C000559595959580808080808080808080AA06
+:10D7D000559595959580808080808080808080AAF6
+:10D7E000559595959580808080808080808080AAE6
+:10D7F000559595959580808080808080808080AAD6
+:10D80000559595959580808080808080808080AAC5
+:10D81000559595959580808080808080808080AAB5
+:10D82000559595958080808080808080808080AABA
+:10D83000559595958080808080808080808080AAAA
+:10D840004080808080808080808080808080808018
+:10D850004080808080808080808080808080808008
+:10D8600040808080808080808080808080808080F8
+:10D8700040808080808080808080808080808080E8
+:10D8800040808080808080808080808080808080D8
+:10D890007FBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFD8
+:10D8A00040808080808080808080808080808080B8
+:10D8B00040404040404040404040404040404000A8
+:10D8C0004040404040404040404040404040400098
+:10D8D0004040404040404040404040404040400088
+:10D8E0004040404040404040404040404040400078
+:10D8F0004040404040404040404040404040400068
+:10D900004040404040404040404040404040400057
+:10D910004040404040404040404040404040400047
+:10D920004040404040404040404040404040400037
+:10D930004040404040404040404040404040400027
+:10D940004040404040404040404040404040400017
+:10D950004040404040404040404040404040400007
+:10D9600040404040404040404040404040404000F7
+:10D9700040404040404040404040404040404000E7
+:10D9800040404040404040404040404040404000D7
+:10D9900040404040404040404040404040404000C7
+:10D9A00040404040404040404040404040404000B7
+:10D9B00040404040404040404040404040404000A7
+:10D9C0004040404040404040404040404040400097
+:10D9D0004040404040404040404040404040400087
+:10D9E0004040404040404040404040404040400077
+:10D9F0004040404040404040404040404040400067
+:10DA00004040404040404040404040404040400056
+:10DA10004040404040404040404040404040400046
+:10DA200000000000000000000000000000000000F6
+:10DA300000000000000000000000000000000000E6
+:10DA400000000000000000000000000000000000D6
+:10DA500000000000000000000000000000000000C6
+:10DA600000000000000000000000000000000000B6
+:10DA700000000000000000000000000000000000A6
+:10DA80000000000000000000000000000000000096
+:10DA90000000000000000000000000000000000086
+:10DAA0000000000000000000000000000000000076
+:10DAB0000000000000000000000000000000000066
+:10DAC0000000000000000000000000000000000056
+:10DAD0000000000000000000000000000000000046
+:10DAE0000000000000000000000000000000000036
+:10DAF0000000000000000000000000000000000026
+:10DB000080808080AAAAAAAAAAAAAAAAAAAAAA9532
+:10DB100080808080AAAAAAAAAAAAAAAAAAAAAA9522
+:10DB200080808080AAAAAAAAAAAAAAAAAAAAAA9512
+:10DB300080808080AAAAAAAAAAAAAAAAAAAAAAAAED
+:10DB400080808080AAAAAAAAAAAAAAAAAAAAAAAADD
+:10DB5000808080AAAAAAAAAAAAAAAAAAAAAAAAAAA3
+:10DB6000808080AAAAAAAAAAAAAAAAAAAAAAAAAA93
+:10DB7000808080AAAAAAAAAAAAAAAAAAAAAAAAAA83
+:10DB8000808080AAAAAAAAAAAAAAAAAAAAAAAAAA73
+:10DB9000808080AAAAAAAAAAAAAAAAAAAAAAAAAA63
+:10DBA000808080AAAAAAAAAAAAAAAAAAAAAAAAAA53
+:10DBB0008080AAAAAAAAAAAAAAAAAAAAAAAAAAAA19
+:10DBC0008080AAAAAAAAAAAAAAAAAAAAAAAAAAAA09
+:10DBD0008080AAAAAAAAAAAAAAAAAAAAAAAAAAAAF9
+:10DBE0008080AAAAAAAAAAAAAAAAAAAAAAAAAAAAE9
+:10DBF0008080AAAAAAAAAAAAAAAAAAAAAAAAAAAAD9
+:10DC00008080AAAAAAAAAAAAAAAAAAAAAAAAAAAAC8
+:10DC10008080AAAAAAAAAAAAAAAAAAAAAAAAAAAAB8
+:10DC2000AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA54
+:10DC3000AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA44
+:10DC4000AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA34
+:10DC500095AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA39
+:10DC600095AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA29
+:10DC700095AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA19
+:10DC800095AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA09
+:10DC900095AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAF9
+:10DCA00095AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAE9
+:10DCB0000000000000000000000000000000000064
+:10DCC0000000000000000000000000000000000054
+:10DCD0000000000000000000000000000000000044
+:10DCE0000000000000000000000000000000000034
+:10DCF0000000000000000000000000000000000024
+:10DD000080808080AAAAAAAAAAAAAAAAAAAAAA9530
+:10DD100080808080AAAAAAAAAAAAAAAAAAAAAA9520
+:10DD200080808080AAAAAAAAAAAAAAAAAAAAAA9510
+:10DD300080808080AAAAAAAAAAAAAAAAAAAAAAAAEB
+:10DD400080808080AAAAAAAAAAAAAAAAAAAAAAAADB
+:10DD5000808080AAAAAAAAAAAAAAAAAAAAAAAAAAA1
+:10DD6000808080AAAAAAAAAAAAAAAAAAAAAAAAAA91
+:10DD7000808080AAAAAAAAAAAAAAAAAAAAAAAAAA81
+:10DD8000808080AAAAAAAAAAAAAAAAAAAAAAAAAA71
+:10DD9000808080AAAAAAAAAAAAAAAAAAAAAAAAAA61
+:10DDA000808080AAAAAAAAAAAAAAAAAAAAAAAAAA51
+:10DDB0008080AAAAAAAAAAAAAAAAAAAAAAAAAAAA17
+:10DDC0008080AAAAAAAAAAAAAAAAAAAAAAAAAAAA07
+:10DDD0008080AAAAAAAAAAAAAAAAAAAAAAAAAAAAF7
+:10DDE0008080AAAAAAAAAAAAAAAAAAAAAAAAAAAAE7
+:10DDF0008080AAAAAAAAAAAAAAAAAAAAAAAAAAAAD7
+:10DE00008080AAAAAAAAAAAAAAAAAAAAAAAAAAAAC6
+:10DE10008080AAAAAAAAAAAAAAAAAAAAAAAAAAAAB6
+:10DE2000AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA52
+:10DE3000AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA42
+:10DE4000AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA32
+:10DE500095AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA37
+:10DE600095AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA27
+:10DE700095AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA17
+:10DE800095AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA07
+:10DE900095AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAF7
+:10DEA00095AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAE7
+:10DEB00095AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD7
+:10DEC00095AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAC7
+:10DED00095AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB7
+:10DEE00095AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA7
+:10DEF00095AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA97
+:10DF000095AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA86
+:10DF100095AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA76
+:10DF200095AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA66
+:10DF300095AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA56
+:10DF400095AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA46
+:10DF500095AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA36
+:10DF600095AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA26
+:10DF700095AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA16
+:10DF800095AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA06
+:10DF900095AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAF6
+:10DFA00095AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAE6
+:10DFB00095AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD6
+:10DFC000958080808080808080808080808080AA12
+:10DFD0009595959595959595959595959580AAAADC
+:10DFE0009595959595959595959595959580AAAACC
+:10DFF0009595959595959595959595958080AAAAD1
+:10E000009595959595959595959595808080AAAAD5
+:10E010009595959595959595959580808080AAAADA
+:10E020005595959595959595959580808080AAAA0A
+:10E030005595959595959595958080808080AAAA0F
+:10E040005595959595959595958080808080AAAAFF
+:10E050005595959595959595808080808080AAAA04
+:10E060005595959595959595808080808080AAAAF4
+:10E070005595959595959580808080808080AAAAF9
+:10E080005595959595959580808080808080AAAAE9
+:10E090005595959595958080808080808080AAAAEE
+:10E0A000559595959595808080808080808080AA08
+:10E0B000559595959595808080808080808080AAF8
+:10E0C000559595959580808080808080808080AAFD
+:10E0D000559595959580808080808080808080AAED
+:10E0E000559595959580808080808080808080AADD
+:10E0F000555555555540404040404040404040AA4D
+:10E10000555555555540404040404040404040AA3C
+:10E11000555555555540404040404040404040AA2C
+:10E12000555555554040404040404040404040AA31
+:10E13000555555554040404040404040404040AA21
+:10E14000404040404040404040404040404040808F
+:10E15000404040404040404040404040404040807F
+:10E16000404040404040404040404040404040806F
+:10E17000404040404040404040404040404040805F
+:10E18000404040404040404040404040404040804F
+:10E190007F7F7F7F7F7F7F7F7F7F7F7F7F7F7FBF4F
+:10E1A000404040404040404040404040404040802F
+:10E1B000404040404040404040404040404040009F
+:10E1C000404040404040404040404040404040008F
+:10E1D000404040404040404040404040404040007F
+:10E1E000404040404040404040404040404040006F
+:10E1F000404040404040404040404040404040005F
+:10E20000404040404040404040404040404040004E
+:10E21000404040404040404040404040404040003E
+:10E22000404040404040404040404040404040002E
+:10E23000404040404040404040404040404040001E
+:10E24000404040404040404040404040404040000E
+:10E2500040404040404040404040404040404000FE
+:10E2600040404040404040404040404040404000EE
+:10E2700040404040404040404040404040404000DE
+:10E2800040404040404040404040404040404000CE
+:10E2900040404040404040404040404040404000BE
+:10E2A00040404040404040404040404040404000AE
+:10E2B000404040404040404040404040404040009E
+:10E2C000404040404040404040404040404040008E
+:10E2D000404040404040404040404040404040007E
+:10E2E000404040404040404040404040404040006E
+:10E2F000404040404040404040404040404040005E
+:10E30000404040404040404040404040404040004D
+:10E31000404040404040404040404040404040003D
+:10E3200000000000000000000000000000000000ED
+:10E3300000000000000000000000000000000000DD
+:10E3400000000000000000000000000000000000CD
+:10E3500000000000000000000000000000000000BD
+:10E3600000000000000000000000000000000000AD
+:10E37000000000000000000000000000000000009D
+:10E38000000000000000000000000000000000008D
+:10E39000000000000000000000000000000000007D
+:10E3A000000000000000000000000000000000006D
+:10E3B000000000000000000000000000000000005D
+:10E3C000000000000000000000000000000000004D
+:10E3D000000000000000000000000000000000003D
+:10E3E000000000000000000000000000000000002D
+:10E3F000000000000000000000000000000000001D
+:10E4000080808080AAAAAAAAAAAAAAAAAAAAAA9529
+:10E4100080808080AAAAAAAAAAAAAAAAAAAAAA9519
+:10E4200080808080AAAAAAAAAAAAAAAAAAAAAA9509
+:10E4300080808080AAAAAAAAAAAAAAAAAAAAAAAAE4
+:10E4400080808080AAAAAAAAAAAAAAAAAAAAAAAAD4
+:10E45000808080AAAAAAAAAAAAAAAAAAAAAAAAAA9A
+:10E46000808080AAAAAAAAAAAAAAAAAAAAAAAAAA8A
+:10E47000808080AAAAAAAAAAAAAAAAAAAAAAAAAA7A
+:10E48000808080AAAAAAAAAAAAAAAAAAAAAAAAAA6A
+:10E49000808080AAAAAAAAAAAAAAAAAAAAAAAAAA5A
+:10E4A000808080AAAAAAAAAAAAAAAAAAAAAAAAAA4A
+:10E4B0008080AAAAAAAAAAAAAAAAAAAAAAAAAAAA10
+:10E4C0008080AAAAAAAAAAAAAAAAAAAAAAAAAAAA00
+:10E4D0008080AAAAAAAAAAAAAAAAAAAAAAAAAAAAF0
+:10E4E0008080AAAAAAAAAAAAAAAAAAAAAAAAAAAAE0
+:10E4F0008080AAAAAAAAAAAAAAAAAAAAAAAAAAAAD0
+:10E500008080AAAAAAAAAAAAAAAAAAAAAAAAAAAABF
+:10E510008080AAAAAAAAAAAAAAAAAAAAAAAAAAAAAF
+:10E52000AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA4B
+:10E53000AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA3B
+:10E54000AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA2B
+:10E5500095AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA30
+:10E5600095AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA20
+:10E5700095AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA10
+:10E5800095AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA00
+:10E5900095AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAF0
+:10E5A00095AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAE0
+:10E5B00095AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD0
+:10E5C00095AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAC0
+:10E5D00095AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB0
+:10E5E00095AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA0
+:10E5F00095AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA90
+:10E6000095AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA7F
+:10E6100095AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA6F
+:10E6200095AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA5F
+:10E6300095AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA4F
+:10E6400095AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA3F
+:10E6500095AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA2F
+:10E6600095AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA1F
+:10E6700095AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA0F
+:10E6800095AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFF
+:10E6900095AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEF
+:10E6A00095AAAAAAAAAAAAAAAAAAAAAAAAAAAAAADF
+:10E6B00095AAAAAAAAAAAAAAAAAAAAAAAAAAAAAACF
+:10E6C000958080808080808080808080808080AA0B
+:10E6D0009595959595959595959595959580AAAAD5
+:10E6E0009595959595959595959595959580AAAAC5
+:10E6F0009595959595959595959595958080AAAACA
+:10E700009595959595959595959595808080AAAACE
+:10E710009595959595959595959580808080AAAAD3
+:10E7200055555555555555555555404040406AAA83
+:10E7300055555555555555555540404040406AAA88
+:10E7400055555555555555555540404040406AAA78
+:10E7500055555555555555554040404040406AAA7D
+:10E7600055555555555555554040404040406AAA6D
+:10E7700055555555555555404040404040406AAA72
+:10E7800055555555555555404040404040406AAA62
+:10E7900055555555555540404040404040406AAA67
+:10E7A000555555555555404040404040404040AA81
+:10E7B000555555555555404040404040404040AA71
+:10E7C000555555555540404040404040404040AA76
+:10E7D000555555555540404040404040404040AA66
+:10E7E000555555555540404040404040404040AA56
+:10E7F000555555555540404040404040404040AA46
+:10E80000555555555540404040404040404040AA35
+:10E81000555555555540404040404040404040AA25
+:10E82000555555554040404040404040404040AA2A
+:10E83000555555554040404040404040404040AA1A
+:10E840004040404040404040404040404040408088
+:10E850004040404040404040404040404040408078
+:10E860004040404040404040404040404040408068
+:10E870004040404040404040404040404040408058
+:10E880004040404040404040404040404040408048
+:10E890007F7F7F7F7F7F7F7F7F7F7F7F7F7F7FBF48
+:10E8A0004040404040404040404040404040408028
+:10E8B0004040404040404040404040404040400098
+:10E8C0004040404040404040404040404040400088
+:10E8D0004040404040404040404040404040400078
+:10E8E0004040404040404040404040404040400068
+:10E8F0004040404040404040404040404040400058
+:10E900004040404040404040404040404040400047
+:10E910004040404040404040404040404040400037
+:10E920004040404040404040404040404040400027
+:10E930004040404040404040404040404040400017
+:10E940004040404040404040404040404040400007
+:10E9500040404040404040404040404040404000F7
+:10E9600040404040404040404040404040404000E7
+:10E9700040404040404040404040404040404000D7
+:10E9800040404040404040404040404040404000C7
+:10E9900040404040404040404040404040404000B7
+:10E9A00040404040404040404040404040404000A7
+:10E9B0004040404040404040404040404040400097
+:10E9C0004040404040404040404040404040400087
+:10E9D0004040404040404040404040404040400077
+:10E9E0004040404040404040404040404040400067
+:10E9F0004040404040404040404040404040400057
+:10EA00004040404040404040404040404040400046
+:10EA10004040404040404040404040404040400036
+:10EA200000000000000000000000000000000000E6
+:10EA300000000000000000000000000000000000D6
+:10EA400000000000000000000000000000000000C6
+:10EA500000000000000000000000000000000000B6
+:10EA600000000000000000000000000000000000A6
+:10EA70000000000000000000000000000000000096
+:10EA80000000000000000000000000000000000086
+:10EA90000000000000000000000000000000000076
+:10EAA0000000000000000000000000000000000066
+:10EAB0000000000000000000000000000000000056
+:10EAC0000000000000000000000000000000000046
+:10EAD0000000000000000000000000000000000036
+:10EAE0000000000000000000000000000000000026
+:10EAF0000000000000000000000000000000000016
+:10EB0000595959595959595959595959595959517D
+:10EB1000080888088808080808080808080808403D
+:10EB20006A2AAA6AAA6A6A6A6A6A6A6A6A6A6A620D
+:10EB3000A6AAAAAAAAAAAAAAAAAAAAAAAAAAAA6281
+:10EB4000A6AAAAAAAAAAAAAAAAAAAAAAAAAAAA6271
+:10EB50008488888888888888888888888888884879
+:10EB60009599999999999999999999999999995959
+:10EB70009599999999999999999999999999995949
+:10EB80009599999999999999999999999999995939
+:10EB90008488888888888888888888888888884839
+:10EBA0009599999999999999999999999999995919
+:10EBB0009599999999999999999999999999995909
+:10EBC00095999999999999999999999999999959F9
+:10EBD00095999999999999999999999999999959E9
+:10EBE00095999999999999999999999999999959D9
+:10EBF00095999999999999999999999999999959C9
+:10EC000095999999999999999999999999999959B8
+:10EC100095999999999999999999999999999959A8
+:10EC20009599999999999999999999999999995998
+:10EC30009599999999999999999999999999995988
+:10EC40009591919191919191919191919191911928
+:10EC50005555555555555555555555555555555960
+:10EC60001515151515151515151515151515111954
+:10EC70005555555555555555555555555551515948
+:10EC8000151515151515151515151515111111193C
+:10EC90005595959595959595959595919191919871
+:10ECA0005595959595959595959591919191919964
+:10ECB000515555555555555555515151515151581D
+:10ECC0005195959595959595919191919191919950
+:10ECD0005195959595959595919191919191919049
+:10ECE00051555555555555515151515151515151FC
+:10ECF000505494949494949090909090909090907C
+:10ED0000525696969696929292929292929292825F
+:10ED100052565656565252525252525252525242D3
+:10ED20005256569696929292929292929292929273
+:10ED30005256569692929292929292929292929267
+:10ED400052565656525252525252525252525242A7
+:10ED50005A56569252929292929292929292928293
+:10ED600056565652529292929292929292929292B7
+:10ED70005656565252525252525252525252525267
+:10ED80004646464242428282828282828282828ACF
+:10ED9000666666626262A2A2A2A2A2A2A2A2A2AABF
+:10EDA0006666626262626262626262626262626A33
+:10EDB00066666262626262A2A2A2A2A2A2A2A2AAE3
+:10EDC0006666626262626262A2A2A2A2A2A2A2AA13
+:10EDD0006666626262626262626262626262626A03
+:10EDE000626662626262626262A2A2A2A2A2A2AA37
+:10EDF000666262626262626262A2A2A2A2A2A2AA27
+:10EE00006060606060606060606060606060606002
+:10EE10006D6D6D6D6D6D6D6D6D6DADADADADADADA2
+:10EE200061616161616161616161A1A1A1A1A1A152
+:10EE300061616161616161616161616161616161C2
+:10EE40006161616161616161616161A1A1A1A1A172
+:10EE50002161616161616161616161A1A1A1A1A1A2
+:10EE60006161616161616161616161616161616192
+:10EE7000616161616161616161616161A1A1A1A182
+:10EE8000616161616161616161616161A1A1A1A172
+:10EE9000216161616161616161616161616161A162
+:10EEA000216161616161616161616161A1A1A1A192
+:10EEB00021616161616161616161616161A1A1A1C2
+:10EEC0002161616161616161616161616161A1A1F2
+:10EED0002121212121212121212121212121212122
+:10EEE000E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E112
+:10EEF0002121212121212121212121212121212102
+:10EF000021212121212121212121212121212121F1
+:10EF100000000000000000000000000000000000F1
+:10EF200012121212121212121212121212121212C1
+:10EF300012121212121212121212121212121212B1
+:10EF400012121212121212121212121212121212A1
+:10EF50001212121212121212121212121212121291
+:10EF60001212121212121212121212121212121281
+:10EF70001212121212121212121212121212121271
+:10EF80001212121212121212121212121212121063
+:10EF90001212121212121212121212121212121053
+:10EFA0001212121212121212121212121212121043
+:10EFB0001010101010101010101010101010101051
+:10EFC0001313131313131313131313131313131311
+:10EFD0001010101010101010101010101010101031
+:10EFE0001010101010101010101010101010101021
+:10EFF0001010101010101010101010101010101011
+:10F000001010101010101010101010101010101000
+:10F0100010101010101010101010101010101010F0
+:10F0200010101010101010101010101010101010E0
+:10F0300010101010101010101010101010101010D0
+:10F0400010101010101010101010101010101010C0
+:10F0500010101010101010101010101010101010B0
+:10F0600010101010101010101010101010101010A0
+:10F070001010101010101010101010101010101090
+:10F080001010101010101010101010101010101080
+:10F090001010101010101010101010101010101070
+:10F0A0000000000000000000000000000000000060
+:10F0B0002020202020202020202020202020202050
+:10F0C0002020202020202020202020202020202040
+:10F0D0002020202020202020202020202020202030
+:10F0E0002020202020202020202020202020202020
+:10F0F0002020202020202020202020202020202010
+:10F1000020202020202020202020202020202020FF
+:10F1100020202020202020202020202020202020EF
+:10F1200020202020202020202020202020202000FF
+:10F1300020202020202020202020202020202000EF
+:10F1400020202020202020202020202020202000DF
+:10F1500020202020202020202020202020202000CF
+:10F16000000000000000000000000000000000009F
+:10F17000303030303030303030303030303030308F
+:10F18000000000000000000000000000000000007F
+:10F19000000000000000000000000000000000006F
+:10F1A000000000000000000000000000000000005F
+:10F1B000000000000000000000000000000000004F
+:10F1C000000000000000000000000000000000003F
+:10F1D000000000000000000000000000000000002F
+:10F1E000000000000000000000000000000000001F
+:10F1F000000000000000000000000000000000000F
+:10F2000000000000000000000000000000000000FE
+:10F2100000000000000000000000000000000000EE
+:10F2200000000000000000000000000000000000DE
+:10F2300000000000000000000000000000000000CE
+:10F2400000000000000000000000000000000000BE
+:10F2500000000000000000000000000000000000AE
+:10F26000000000000000000000000000000000009E
+:10F27000000000000000000000000000000000008E
+:10F28000000000000000000000000000000000007E
+:10F29000000000000000000000000000000000006E
+:10F2A000000000000000000000000000000000005E
+:10F2B000000000000000000000000000000000004E
+:10F2C000000000000000000000000000000000003E
+:10F2D000000000000000000000000000000000002E
+:10F2E000000000000000000000000000000000001E
+:10F2F000000000000000000000000000000000000E
+:10F300005959595959595959595959595959595175
+:10F310004848484848484848484848484848484075
+:10F320006A6A6A6A6A6A6A6A6A6A6A6A6A6A6A6245
+:10F33000666A6A6A6A6A6A6A6A6A6A6A6A6A6A6239
+:10F34000666A6A6A6A6A6A6A6A6A6A6A6A6A6A6229
+:10F350004448484848484848484848484848484831
+:10F360005559595959595959595959595959595911
+:10F370005559595959595959595959595959595901
+:10F3800055595959595959595959595959595959F1
+:10F3900044484848484848484848484848484848F1
+:10F3A00055595959595959595959595959595959D1
+:10F3B00055595959595959595959595959595959C1
+:10F3C00055595959595959595959595959595959B1
+:10F3D00055595959595959595959595959595959A1
+:10F3E0005559595959595959595959595959595991
+:10F3F0005559595959595959595959595959595981
+:10F400005559595959595959595959595959595970
+:10F410005559595959595959595959595959595960
+:10F420005559595959595959595959595959595950
+:10F430005559595959595959595959595959595940
+:10F4400015111111111111111111111111111119A0
+:10F450005555555555555555555555555555555958
+:10F46000151515151515151515151515151511194C
+:10F470005555555555555555555555555551515940
+:10F480001515151515151515151515151111111934
+:10F490005595959595959595959595919191919869
+:10F4A000559595959595959595959191919191995C
+:10F4B0005155555555555555555151515151515815
+:10F4C0005195959595959595919191919191919948
+:10F4D0005195959595959595919191919191919041
+:10F4E00051555555555555515151515151515151F4
+:10F4F0005054949494949490909090909090909074
+:10F500005256969696969292929292929292928257
+:10F5100052565656565252525252525252525242CB
+:10F52000525656969692929292929292929292926B
+:10F53000525656969292929292929292929292925F
+:10F54000525656565252525252525252525252429F
+:10F550005A5656529292929292929292929292828B
+:10F5600056565652529292929292929292929292AF
+:10F57000565656525252525252525252525252525F
+:10F580004646464242428282828282828282828AC7
+:10F59000666666626262A2A2A2A2A2A2A2A2A2AAB7
+:10F5A0006666626262626262626262626262626A2B
+:10F5B00066666262626262A2A2A2A2A2A2A2A2AADB
+:10F5C0006666626262626262A2A2A2A2A2A2A2AA0B
+:10F5D0006666626262626262626262626262626AFB
+:10F5E000626662626262626262A2A2A2A2A2A2AA2F
+:10F5F000666262626262626262A2A2A2A2A2A2AA1F
+:10F6000060606060606060606060606060606060FA
+:10F610006D6D6D6D6D6D6D6D6D6DADADADADADAD9A
+:10F6200061616161616161616161A1A1A1A1A1A14A
+:10F6300061616161616161616161616161616161BA
+:10F640006161616161616161616161A1A1A1A1A16A
+:10F650002161616161616161616161A1A1A1A1A19A
+:10F66000616161616161616161616161616161618A
+:10F67000616161616161616161616161A1A1A1A17A
+:10F68000616161616161616161616161A1A1A1A16A
+:10F69000216161616161616161616161616161A15A
+:10F6A000216161616161616161616161A1A1A1A18A
+:10F6B00021616161616161616161616161A1A1A1BA
+:10F6C0002161616161616161616161616161A1A1EA
+:10F6D000212121212121212121212121212121211A
+:10F6E000E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E10A
+:10F6F00021212121212121212121212121212121FA
+:10F7000021212121212121212121212121212121E9
+:10F7100000000000000000000000000000000000E9
+:10F7200012121212121212121212121212121212B9
+:10F7300012121212121212121212121212121212A9
+:10F740001212121212121212121212121212121299
+:10F750001212121212121212121212121212121289
+:10F760001212121212121212121212121212121279
+:10F770001212121212121212121212121212121269
+:10F78000121212121212121212121212121212105B
+:10F79000121212121212121212121212121212104B
+:10F7A000121212121212121212121212121212103B
+:10F7B0001010101010101010101010101010101049
+:10F7C0001313131313131313131313131313131309
+:10F7D0001010101010101010101010101010101029
+:10F7E0001010101010101010101010101010101019
+:10F7F0001010101010101010101010101010101009
+:10F8000010101010101010101010101010101010F8
+:10F8100010101010101010101010101010101010E8
+:10F8200010101010101010101010101010101010D8
+:10F8300010101010101010101010101010101010C8
+:10F8400010101010101010101010101010101010B8
+:10F8500010101010101010101010101010101010A8
+:10F860001010101010101010101010101010101098
+:10F870001010101010101010101010101010101088
+:10F880001010101010101010101010101010101078
+:10F890001010101010101010101010101010101068
+:10F8A0000000000000000000000000000000000058
+:10F8B0002020202020202020202020202020202048
+:10F8C0002020202020202020202020202020202038
+:10F8D0002020202020202020202020202020202028
+:10F8E0002020202020202020202020202020202018
+:10F8F0002020202020202020202020202020202008
+:10F9000020202020202020202020202020202020F7
+:10F9100020202020202020202020202020202020E7
+:10F9200020202020202020202020202020202000F7
+:10F9300020202020202020202020202020202000E7
+:10F9400020202020202020202020202020202000D7
+:10F9500020202020202020202020202020202000C7
+:10F960000000000000000000000000000000000097
+:10F970003030303030303030303030303030303087
+:10F980000000000000000000000000000000000077
+:10F990000000000000000000000000000000000067
+:10F9A0000000000000000000000000000000000057
+:10F9B0000000000000000000000000000000000047
+:10F9C0000000000000000000000000000000000037
+:10F9D0000000000000000000000000000000000027
+:10F9E0000000000000000000000000000000000017
+:10F9F0000000000000000000000000000000000007
+:10FA000000000000000000000000000000000000F6
+:10FA100000000000000000000000000000000000E6
+:10FA200000000000000000000000000000000000D6
+:10FA300000000000000000000000000000000000C6
+:10FA400000000000000000000000000000000000B6
+:10FA500000000000000000000000000000000000A6
+:10FA60000000000000000000000000000000000096
+:10FA70000000000000000000000000000000000086
+:10FA80000000000000000000000000000000000076
+:10FA90000000000000000000000000000000000066
+:10FAA0000000000000000000000000000000000056
+:10FAB0000000000000000000000000000000000046
+:10FAC0000000000000000000000000000000000036
+:10FAD0000000000000000000000000000000000026
+:10FAE0000000000000000000000000000000000016
+:10FAF0000000000000000000000000000000000006
+:10FB0000595959595959595959595959595959516D
+:10FB1000484848484848484848484848484848406D
+:10FB20006A6A6A6A6A6A6A6A6A6A6A6A6A6A6A623D
+:10FB3000666A6A6A6A6A6A6A6A6A6A6A6A6A6A6231
+:10FB4000666A6A6A6A6A6A6A6A6A6A6A6A6A6A6221
+:10FB50004448484848484848484848484848484829
+:10FB60005559595959595959595959595959595909
+:10FB700055595959595959595959595959595959F9
+:10FB800055595959595959595959595959595959E9
+:10FB900044484848484848484848484848484848E9
+:10FBA00055595959595959595959595959595959C9
+:10FBB00055595959595959595959595959595959B9
+:10FBC00055595959595959595959595959595959A9
+:10FBD0005559595959595959595959595959595999
+:10FBE0005559595959595959595959595959595989
+:10FBF0005559595959595959595959595959595979
+:10FC00005559595959595959595959595959595968
+:10FC10005559595959595959595959595959595958
+:10FC20005559595959595959595959595959595948
+:10FC30005559595959595959595959595959595938
+:10FC40001511111111111111111111111111111998
+:10FC50005555555555555555555555555555555950
+:10FC60001515151515151515151515151515111944
+:10FC70005555555555555555555555555551515938
+:10FC8000151515151515151515151515111111192C
+:10FC90005595959595959595959595919191919861
+:10FCA0005595959595959595959591919191919954
+:10FCB000515555555555555555515151515151580D
+:10FCC0005195959595959595919191919191919940
+:10FCD0005195959595959595919191919191919039
+:10FCE00051555555555555515151515151515151EC
+:10FCF000505494949494949090909090909090906C
+:10FD0000525696969696929292929292929292923F
+:10FD100052565656565252525252525252525252B3
+:10FD20005256569696929292929292929292929263
+:10FD30005256569692929292929292929292929257
+:10FD40005256565652525252525252525252526277
+:10FD50005A56565292929292929292929292929273
+:10FD6000565656525292929292929292929292A297
+:10FD70005656565252525252525252525252525257
+:10FD80004646464242428282828282828282828ABF
+:10FD9000666666626262A2A2A2A2A2A2A2A2A2AAAF
+:10FDA0006666626262626262626262626262626A23
+:10FDB00066666262626262A2A2A2A2A2A2A2A2AAD3
+:10FDC0006666626262626262A2A2A2A2A2A2A2AA03
+:10FDD0006666626262626262626262626262626AF3
+:10FDE000606460606060606060A0A0A0A0A0A0A847
+:10FDF000656161616161616161A1A1A1A1A1A1A927
+:10FE000061616161616161616161616161616161E2
+:10FE10006D6D6D6D6D6D6D6D6D6DADADADADADAD92
+:10FE200061616161616161616161A1A1A1A1A1A142
+:10FE300061616161616161616161616161616161B2
+:10FE40006161616161616161616161A1A1A1A1A162
+:10FE50002161616161616161616161A1A1A1A1A192
+:10FE60006161616161616161616161616161616182
+:10FE7000616161616161616161616161A1A1A1A172
+:10FE8000616161616161616161616161A1A1A1A162
+:10FE9000216161616161616161616161616161A152
+:10FEA000216161616161616161616161A1A1A1A182
+:10FEB00021616161616161616161616161A1A1A1B2
+:10FEC0002161616161616161616161616161A1A1E2
+:10FED0002121212121212121212121212121212112
+:10FEE000C1C1C1C1C1C1C1C1C1C1C1C1C1C1C1C102
+:10FEF0001010101010101010101010101010101002
+:10FF000012121212121212121212121212121212D1
+:10FF100012121212121212121212121212121210C3
+:10FF200012121212121212121212121212121212B1
+:10FF300012121212121212121212121212121210A3
+:10FF40001212121212121212121212121212121291
+:10FF50001212121212121212121212121212121083
+:10FF60001212121212121212121212121212121271
+:10FF70001212121212121212121212121212121261
+:10FF80001212121212121212121212121212121251
+:10FF90001010101010101010101010101010101061
+:10FFA0001313131313131313131313131313131321
+:10FFB0001010101010101010101010101010101041
+:10FFC0001010101010101010101010101010101031
+:10FFD0001010101010101010101010101010101021
+:10FFE0001010101010101010101010101010101011
+:10FFF0001010101010101010101010101010101001
+:02000004000CEE
+:1000000010101010101010101010101010101010F0
+:1000100010101010101010101010101010101010E0
+:1000200010101010101010101010101010101010D0
+:1000300010101010101010101010101010101010C0
+:1000400010101010101010101010101010101010B0
+:1000500010101010101010101010101010101010A0
+:100060001010101010101010101010101010101090
+:100070000000000000000000000000000000000080
+:100080002020202020202020202020202020202070
+:100090002020202020202020202020202020201070
+:1000A0002020202020202020202020202020202050
+:1000B0002020202020202020202020202020201050
+:1000C0002020202020202020202020202020202030
+:1000D0002020202020202020202020202020202020
+:1000E0002020202020202020202020202020202010
+:1000F0002020202020202020202020202020202000
+:1001000020202020202020202020202020202020EF
+:1001100020202020202020202020202020202020DF
+:1001200020202020202020202020202020202020CF
+:1001300000000000000000000000000000000000BF
+:1001400030303030303030303030303030303030AF
+:10015000000000000000000000000000000000009F
+:10016000000000000000000000000000000000008F
+:10017000000000000000000000000000000000007F
+:10018000000000000000000000000000000000006F
+:10019000000000000000000000000000000000005F
+:1001A000000000000000000000000000000000004F
+:1001B000000000000000000000000000000000003F
+:1001C000000000000000000000000000000000002F
+:1001D000000000000000000000000000000000001F
+:1001E000000000000000000000000000000000000F
+:1001F00000000000000000000000000000000000FF
+:1002000000000000000000000000000000000000EE
+:1002100000000000000000000000000000000000DE
+:1002200000000000000000000000000000000000CE
+:1002300000000000000000000000000000000000BE
+:1002400000000000000000000000000000000000AE
+:10025000000000000000000000000000000000009E
+:10026000000000000000000000000000000000008E
+:10027000000000000000000000000000000000007E
+:10028000000000000000000000000000000000006E
+:10029000000000000000000000000000000000005E
+:1002A000000000000000000000000000000000004E
+:1002B000000000000000000000000000000000003E
+:1002C000000000000000000000000000000000002E
+:1002D000000000000000000000000000000000001E
+:1002E000000000000000000000000000000000000E
+:1002F00000000000000000000000000000000000FE
+:100300005959595959595959595959595959595165
+:100310005959595959595959595959595959595155
+:100320005959595959595959595959595959595145
+:100330005559595959595959595959595959595139
+:100340005559595959595959595959595959595129
+:100350005559595959595959595959595959595911
+:100360005559595959595959595959595959595901
+:1003700055595959595959595959595959595959F1
+:1003800055595959595959595959595959595959E1
+:1003900055595959595959595959595959595959D1
+:1003A00055595959595959595959595959595959C1
+:1003B00055595959595959595959595959595959B1
+:1003C00055595959595959595959595959595959A1
+:1003D0005559595959595959595959595959595991
+:1003E0005559595959595959595959595959595981
+:1003F0005559595959595959595959595959595971
+:100400005559595959595959595959595959595960
+:100410005559595959595959595959595959595950
+:100420005559595959595959595959595959595940
+:100430005559595959595959595959595959595930
+:100440001511111111111111111111111111111990
+:100450005454545454545454545454545454545858
+:100460001616161616161616161616161616121A2C
+:100470005656565656565656565656565652525A20
+:100480001616161616161616161616161212121A14
+:100490004686868686868686868686828282828A48
+:1004A00066A6A6A6A6A6A6A6A6A6A2A2A2A2A2AA3C
+:1004B0006266666666666666666262626262626AF4
+:1004C00062A6A6A6A6A6A6A6A2A2A2A2A2A2A2AA28
+:1004D00062A6A6A6A6A6A6A6A2A2A2A2A2A2A2A220
+:1004E00062666666666666626262626262626262D4
+:1004F0006266A6A6A6A6A6A2A2A2A2A2A2A2A2A244
+:100500006266A6A6A6A6A2A2A2A2A2A2A2A2A2A237
+:1005100062666666666262626262626262626262AB
+:10052000626666A6A6A2A2A2A2A2A2A2A2A2A2A25B
+:10053000626666A6A2A2A2A2A2A2A2A2A2A2A2A24F
+:10054000626666666262626262626262626262627F
+:100550006A666662A2A2A2A2A2A2A2A2A2A2A2A26B
+:100560006666666262A2A2A2A2A2A2A2A2A2A2A29F
+:10057000666666626262626262626262626262624F
+:10058000666666626262A2A2A2A2A2A2A2A2A2AAB7
+:10059000666666626262A2A2A2A2A2A2A2A2A2AAA7
+:1005A0006666626262626262626262626262626A1B
+:1005B00066666262626262A2A2A2A2A2A2A2A2AACB
+:1005C0006464606060606060A0A0A0A0A0A0A0A81B
+:1005D00065656161616161616161616161616169FB
+:1005E000616561616161616161A1A1A1A1A1A1A92F
+:1005F000656161616161616161A1A1A1A1A1A1A91F
+:1006000061616161616161616161616161616161DA
+:100610006D6D6D6D6D6D6D6D6D6DADADADADADAD8A
+:1006200061616161616161616161A1A1A1A1A1A13A
+:1006300061616161616161616161616161616161AA
+:100640006161616161616161616161A1A1A1A1A15A
+:100650002161616161616161616161A1A1A1A1A18A
+:10066000616161616161616161616161616161617A
+:10067000616161616161616161616161A1A1A1A16A
+:10068000414141414141414141414141818181815A
+:10069000115151515151515151515151515151914A
+:1006A000115151515151515151515151919191917A
+:1006B00011515151515151515151515151919191AA
+:1006C00011515151515151515151515151519191DA
+:1006D000111111111111111111111111111111110A
+:1006E000D1D1D1D1D1D1D1D1D1D1D1D1D1D1D1D1FA
+:1006F00011111111111111111111111111111111EA
+:1007000011111111111111111111111111111111D9
+:1007100011111111111111111111111111111111C9
+:1007200011111111111111111111111111111111B9
+:1007300010101010101010101010101010101010B9
+:100740001212121212121212121212121212121289
+:100750001212121212121212121212121212121279
+:100760001212121212121212121212121212121269
+:100770001212121212121212121212121212121259
+:100780001212121212121212121212121212121249
+:100790001212121212121212121212121212121239
+:1007A0001212121212121212121212121212121229
+:1007B0001212121212121212121212121212121219
+:1007C0001212121212121212121212121212121209
+:1007D00012121212121212121212121212121212F9
+:1007E00012121212121212121212121212121212E9
+:1007F00012121212121212121212121212121212D9
+:1008000012121212121212121212121212121212C8
+:1008100012121212121212121212121212121212B8
+:1008200012121212121212121212121212121212A8
+:100830001212121212121212121212121212121298
+:100840001212121212121212121212121212121288
+:100850001212121212121212121212121212121278
+:100860001212121212121212121212121212121268
+:100870000202020202020202020202020202020258
+:100880002222222222222222222222222222222248
+:100890002020202020202020202020202020202058
+:1008A0002323232323232323232323232323232318
+:1008B0002020202020202020202020202020202038
+:1008C0002020202020202020202020202020202028
+:1008D0002020202020202020202020202020202018
+:1008E0002020202020202020202020202020202008
+:1008F00020202020202020202020202020202020F8
+:1009000020202020202020202020202020202020E7
+:1009100020202020202020202020202020202020D7
+:1009200020202020202020202020202020202020C7
+:1009300020202020202020202020202020202020B7
+:1009400020202020202020202020202020202020A7
+:100950002020202020202020202020202020202097
+:100960002020202020202020202020202020202087
+:100970002020202020202020202020202020202077
+:100980002020202020202020202020202020202067
+:100990002020202020202020202020202020202057
+:1009A0002020202020202020202020202020202047
+:1009B0002020202020202020202020202020202037
+:1009C0002020202020202020202020202020202027
+:1009D0002020202020202020202020202020202017
+:1009E0002020202020202020202020202020202007
+:1009F00020202020202020202020202020202020F7
+:100A000020202020202020202020202020202020E6
+:100A100000000000000000000000000000000000D6
+:100A200030303030303030303030303030303030C6
+:100A300000000000000000000000000000000000B6
+:100A400000000000000000000000000000000000A6
+:100A50000000000000000000000000000000000096
+:100A60000000000000000000000000000000000086
+:100A70000000000000000000000000000000000076
+:100A80000000000000000000000000000000000066
+:100A90000000000000000000000000000000000056
+:100AA0000000000000000000000000000000000046
+:100AB0000000000000000000000000000000000036
+:100AC0000000000000000000000000000000000026
+:100AD0000000000000000000000000000000000016
+:100AE0000000000000000000000000000000000006
+:100AF00000000000000000000000000000000000F6
+:100B00006A6A6A6A6A6A6A6A6A6A6A6A6A6A6A624D
+:100B1000484848484848484848484848484848405D
+:100B2000595959595959595959595959595959513D
+:100B30005559595959595959595959595959595131
+:100B40005559595959595959595959595959595121
+:100B50005559595959595959595959595959595909
+:100B600055595959595959595959595959595959F9
+:100B700055595959595959595959595959595959E9
+:100B800055595959595959595959595959595959D9
+:100B900055595959595959595959595959595959C9
+:100BA00055595959595959595959595959595959B9
+:100BB00055595959595959595959595959595959A9
+:100BC0005559595959595959595959595959595999
+:100BD0005559595959595959595959595959595989
+:100BE0005559595959595959595959595959595979
+:100BF0005559595959595959595959595959595969
+:100C00005559595959595959595959595959595958
+:100C10005559595959595959595959595959595948
+:100C20005559595959595959595959595959595938
+:100C30005559595959595959595959595959595928
+:100C40001511111111111111111111111111111988
+:100C50005555555555555555555555555555555940
+:100C60001515151515151515151515151515111934
+:100C70005555555555555555555555555551515928
+:100C8000151515151515151515151515111111191C
+:100C90005595959595959595959595919191919950
+:100CA0005595959595959595959591919191919944
+:100CB00051555555555555555551515151515159FC
+:100CC0005094949494949494909090909090909840
+:100CD0005296969696969696929292929292929218
+:100CE00052565656565656525252525252525252CC
+:100CF000525696969696969292929292929292923C
+:100D0000525696969696929292929292929292922F
+:100D100052565656565252525252525252525252A3
+:100D20005256569696929292929292929292929253
+:100D30005256569692929292929292929292929247
+:100D40004246464642424242424242424242424277
+:100D50006A666662A2A2A2A2A2A2A2A2A2A2A2A263
+:100D60006666666262A2A2A2A2A2A2A2A2A2A2A297
+:100D70006666666262626262626262626262626247
+:100D8000666666626262A2A2A2A2A2A2A2A2A2AAAF
+:100D9000666666626262A2A2A2A2A2A2A2A2A2AA9F
+:100DA0006666626262626262626262626262626A13
+:100DB00066666262626262A2A2A2A2A2A2A2A2AAC3
+:100DC0006666626262626262A2A2A2A2A2A2A2AAF3
+:100DD0006666626262626262626262626262626AE3
+:100DE000626662626262626262A2A2A2A2A2A2AA17
+:100DF000666262626262626262A2A2A2A2A2A2AA07
+:100E000062626262626262626262626262626262C2
+:100E10006E6E6E6E6E6E6E6E6E6EAEAEAEAEAEAE72
+:100E200062626262626262626262A2A2A2A2A2A222
+:100E30006262626262626262626262626262626292
+:100E40006262626262626262626262A2A2A2A2A242
+:100E50002262626262626262626262A2A2A2A2A272
+:100E60006262626262626262626262626262626262
+:100E7000606060606060606060606060A0A0A0A072
+:100E8000636363636363636363636363A3A3A3A332
+:100E9000206060606060606060606060606060A052
+:100EA000206060606060606060606060A0A0A0A082
+:100EB00020606060606060606060606060A0A0A0B2
+:100EC0002060606060606060606060606060A0A0E2
+:100ED0002020202020202020202020202020202012
+:100EE000E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E002
+:100EF00020202020202020202020202020202020F2
+:100F000020202020202020202020202020202020E1
+:100F100020202020202020202020202020202020D1
+:100F200020202020202020202020202020202020C1
+:100F300020202020202020202020202020202020B1
+:100F400020202020202020202020202020202020A1
+:100F50002020202020202020202020202020202091
+:100F60002020202020202020202020202020202081
+:100F70000000000000000000000000000000000071
+:100F80003030303030303030303030303030303061
+:100F90000000000000000000000000000000000051
+:100FA0000000000000000000000000000000000041
+:100FB0000000000000000000000000000000000031
+:100FC0000000000000000000000000000000000021
+:100FD0000000000000000000000000000000000011
+:100FE0000000000000000000000000000000000001
+:100FF00000000000000000000000000000000000F1
+:1010000000000000000000000000000000000000E0
+:1010100000000000000000000000000000000000D0
+:1010200000000000000000000000000000000000C0
+:1010300000000000000000000000000000000000B0
+:1010400000000000000000000000000000000000A0
+:101050000000000000000000000000000000000090
+:101060000000000000000000000000000000000080
+:101070000000000000000000000000000000000070
+:101080000000000000000000000000000000000060
+:101090000000000000000000000000000000000050
+:1010A0000000000000000000000000000000000040
+:1010B0000000000000000000000000000000000030
+:1010C0000000000000000000000000000000000020
+:1010D0000000000000000000000000000000000010
+:1010E0000000000000000000000000000000000000
+:1010F00000000000000000000000000000000000F0
+:1011000040404040404040404040404040404040DF
+:10111000808080800000404040404040404040404F
+:10112000808080808080800040404040404040403F
+:1011300080808080808080808080808080808080AF
+:10114000808080808080808080808080808080809F
+:10115000808080808080808080808080808080808F
+:10116000808080808080808080808080808080807F
+:10117000808080808080808080808080808080806F
+:10118000808080808080808080808080808080805F
+:10119000808080808080808080808080808080804F
+:1011A000808080808080808080808080808080803F
+:1011B000808080808080808080808080808080802F
+:1011C000808080808080808080808080808080801F
+:1011D00080808080808080808080808085858585FB
+:1011E00080808080808080808080808080808080FF
+:1011F00080808080808080808585858585858585C7
+:10120000858585858585858585858585858585858E
+:1012100080808080808080808080808080808080CE
+:10122000858585858585858585858585858585856E
+:10123000858585858585858585858585858585855E
+:10124000808080808080808080808080808080809E
+:10125000454545454545454545454545454545453E
+:10126000050505050505050505050505050505052E
+:10127000404040404040404040404040404040406E
+:10128000050505050505050505050505050505050E
+:10129000559595959595959595959595959595953E
+:1012A000408080808080808080808080808080807E
+:1012B000404A6A6A6A6A6A6A6A6A6A6A6A6A6A6AD8
+:1012C00040808AAAAAAAAAAAAAAAAAAAAAAAAAAA32
+:1012D00040808085AAAAAAAAAAAAAAAAAAAAAAAA51
+:1012E0004040404540656A6A6A6A6A6A6A6A6A6A30
+:1012F0004040808A8085A0A5AAAAAAAAAAAAAAAACA
+:101300004040808A808A80A5A5AAAAAAAAAAAAAAD9
+:1013100040404040404A404A6560656A6A6A6A6A7D
+:10132000404040808080808A8AA0A5A0AAAAAAAA5C
+:1013300040404040808080A08A80AAA0A0AAAAAA9B
+:10134000404040404040404060404A60606A6A6AB5
+:10135000404040404080808080A0A0A0A0A0AAAAD9
+:10136000404040404040808080808080A0A0AAAA69
+:1013700040404040404040404040404060606A6AD9
+:10138000404040404040408080808080A0A0A0AA93
+:1013900045404040404040408080808080A0A0AADE
+:1013A0004540404040404040404040404060606ACE
+:1013B0004540404040404040408080808080A0AA1E
+:1013C0004540404040404040404080808080A0AA4E
+:1013D0004540404040404040404040404040606ABE
+:1013E0004540404040404040404040808080A0AA6E
+:1013F0004040404040404040404040408080A0A0AD
+:101400004F4F4F4F4F4F4F4F4F4F4F4F4F4F4F6FCC
+:10141000404040404040404040404040408080A0EC
+:10142000404040404040404040404040408080A0DC
+:10143000404040404040404040404040404040608C
+:10144000404040404040404040404040408080A0BC
+:10145000004040404040404040404040408080A0EC
+:10146000504040404040404040404040404040604C
+:10147000504040404040404040404040404080A0BC
+:10148000504040404040404040404040404080A0AC
+:10149000104040404040404040404040404040A01C
+:1014A000104040404040404040404040404080A0CC
+:1014B000104040404040404040404040404080A0BC
+:1014C000004040404040404040404040404040801C
+:1014D000303030303030303030303030303030300C
+:1014E000C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0FC
+:1014F00000000000000000000000000000000000EC
+:1015000040404040404040404040404040404040DB
+:10151000808080800000404040404040404040404B
+:10152000808080808080800040404040404040403B
+:1015300080808080808080808080808080808080AB
+:10154000808080808080808080808080808080809B
+:10155000808080808080808080808080808080808B
+:10156000808080808080808080808080808080807B
+:10157000808080808080808080808080808080806B
+:10158000808080808080808080808080808080805B
+:10159000808080808080808080808080808080804B
+:1015A000808080808080808080808080808080803B
+:1015B0008080808080808080808080808585858517
+:1015C00090808080808080808080808090909090CB
+:1015D0009080808080808080858585859595959593
+:1015E00080808080808080808080808080808080FB
+:1015F000958585858585858585858585959595954B
+:10160000958585858585858585858585959595953A
+:1016100080808080808080808080808080808080CA
+:10162000958585858585858585858585959595951A
+:1016300095858585858585959595959595959595BA
+:10164000808080808080808080808080808080809A
+:10165000958585858585859595959595959595959A
+:10166000958585958585959595959595959595956A
+:10167000000000000000000000000000000000006A
+:10168000151515150515151515151515151515151A
+:10169000559595959595959595959595959595953A
+:1016A000408080808080808080808080808080807A
+:1016B000404A6A6A6A6A6A6A6A6A6A6A6A6A6A6AD4
+:1016C00040808AAAAAAAAAAAAAAAAAAAAAAAAAAA2E
+:1016D00040808085AAAAAAAAAAAAAAAAAAAAAAAA4D
+:1016E0004040404540656A6A6A6A6A6A6A6A6A6A2C
+:1016F0004040808A8085A0A5AAAAAAAAAAAAAAAAC6
+:101700004040808A808A80A5A5AAAAAAAAAAAAAAD5
+:1017100040404040404A404A6560656A6A6A6A6A79
+:10172000404040808080808A8AA0A5A0AAAAAAAA58
+:1017300040404040808080A08A80AAA0A0AAAAAA97
+:10174000404040404040404060404A60606A6A6AB1
+:10175000404040404080808080A0A0A0A0A0AAAAD5
+:10176000404040404040808080808080A0A0AAAA65
+:1017700040404040404040404040404060606A6AD5
+:10178000404040404040408080808080A0A0A0AA8F
+:1017900045404040404040408080808080A0A0AADA
+:1017A0004540404040404040404040404060606ACA
+:1017B0004540404040404040408080808080A0AA1A
+:1017C0004540404040404040404080808080A0AA4A
+:1017D0004540404040404040404040404040606ABA
+:1017E0004540404040404040404040808080A0AA6A
+:1017F0004040404040404040404040408080A0A0A9
+:101800004F4F4F4F4F4F4F4F4F4F4F4F4F4F4F6FC8
+:10181000404040404040404040404040408080A0E8
+:10182000404040404040404040404040408080A0D8
+:101830004040404040404040404040404040406088
+:10184000404040404040404040404040408080A0B8
+:10185000004040404040404040404040408080A0E8
+:101860005040404040404040404040404040406048
+:10187000504040404040404040404040404080A0B8
+:10188000504040404040404040404040404080A0A8
+:10189000104040404040404040404040404040A018
+:1018A000104040404040404040404040404080A0C8
+:1018B000104040404040404040404040404080A0B8
+:1018C0000040404040404040404040404040408018
+:1018D0003030303030303030303030303030303008
+:1018E000C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0F8
+:1018F00000000000000000000000000000000000E8
+:1019000040404040404040404040404040404040D7
+:101910008080808000004040404040404040404047
+:101920008080808080808000404040404040404037
+:1019300080808080808080808080808080808080A7
+:101940008080808080808080808080808080808097
+:101950008080808080808080808080808080808087
+:101960008080808080808080808080808080808077
+:101970008080808080808080808080808080808067
+:101980008080808080808080808080808080808057
+:101990008080808080808080808080808080808047
+:1019A0008080808080808080808080808080808037
+:1019B0008080808080808080808080808585858513
+:1019C00090808080808080808080808090909090C7
+:1019D000908080808080808085858585959595958F
+:1019E00080808080808080808080808080808080F7
+:1019F0009585858585858585858585859595959547
+:101A00009585858585858585858585859595959536
+:101A100080808080808080808080808080808080C6
+:101A20009585858585858585858585859595959516
+:101A300095858585858585959595959595959595B6
+:101A40008080808080808080808080808080808096
+:101A50005545455545455555555555555555555576
+:101A60001515151505151515151515151515151536
+:101A70004040404040404040404040404040404066
+:101A80001515151515151515151515151515151506
+:101A90005595959595959595959595959595959536
+:101AA0004080808080808080808080808080808076
+:101AB000404A6A6A6A6A6A6A6A6A6A6A6A6A6A6AD0
+:101AC00040808AAAAAAAAAAAAAAAAAAAAAAAAAAA2A
+:101AD00040808085AAAAAAAAAAAAAAAAAAAAAAAA49
+:101AE0004040404540656A6A6A6A6A6A6A6A6A6A28
+:101AF0004040808A8085A0A5AAAAAAAAAAAAAAAAC2
+:101B00004040808A808A80A5A5AAAAAAAAAAAAAAD1
+:101B100040404040404A404A6560656A6A6A6A6A75
+:101B2000404040808080808A8AA0A5A0AAAAAAAA54
+:101B300040404040808080A08A80AAA0A0AAAAAA93
+:101B4000404040404040404060404A60606A6A6AAD
+:101B5000404040404080808080A0A0A0A0A0AAAAD1
+:101B6000404040404040808080808080A0A0AAAA61
+:101B700040404040404040404040404060606A6AD1
+:101B8000404040404040408080808080A0A0A0AA8B
+:101B900045404040404040408080808080A0A0AAD6
+:101BA0004540404040404040404040404060606AC6
+:101BB0004540404040404040408080808080A0AA16
+:101BC0004540404040404040404080808080A0AA46
+:101BD0004540404040404040404040404040606AB6
+:101BE0004540404040404040404040808080A0AA66
+:101BF0004040404040404040404040408080A0A0A5
+:101C00004F4F4F4F4F4F4F4F4F4F4F4F4F4F4F6FC4
+:101C1000404040404040404040404040408080A0E4
+:101C2000404040404040404040404040408080A0D4
+:101C30004040404040404040404040404040406084
+:101C4000404040404040404040404040408080A0B4
+:101C5000004040404040404040404040408080A0E4
+:101C60005040404040404040404040404040406044
+:101C7000504040404040404040404040404080A0B4
+:101C8000504040404040404040404040404080A0A4
+:101C9000104040404040404040404040404040A014
+:101CA000104040404040404040404040404080A0C4
+:101CB000104040404040404040404040404080A0B4
+:101CC0000040404040404040404040404040408014
+:101CD0003030303030303030303030303030303004
+:101CE000C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0F4
+:101CF00000000000000000000000000000000000E4
+:101D000040404040404040404040404040404040D3
+:101D10008080808000004040404040404040404043
+:101D20008080808080808000404040404040404033
+:101D300080808080808080808080808080808080A3
+:101D40008080808080808080808080808080808093
+:101D50008080808080808080808080808080808083
+:101D60008080808080808080808080808080808073
+:101D70008080808080808080808080808080808063
+:101D80008080808080808080808080808080808053
+:101D90008080808080808080808080808080808043
+:101DA0008080808080808080808080808080808033
+:101DB000808080808080808080808080858585850F
+:101DC00090808080808080808080808090909090C3
+:101DD000908080808080808085858585959595958B
+:101DE00080808080808080808080808080808080F3
+:101DF0009585858585858585858585859595959543
+:101E00009585858585858595959585859595959502
+:101E100080808080808080808080808080808080C2
+:101E200095858595858595959595959595959595A2
+:101E30009585859595959595959595959595959572
+:101E40004040404040404040404040404040404092
+:101E50005555555555555555555555555555555532
+:101E60001515151515151515151515151515151522
+:101E70004040404040404040404040404040404062
+:101E80001515151515151515151515151515151502
+:101E90005595959595959595959595959595959532
+:101EA0004080808080808080808080808080808072
+:101EB000404A6A6A6A6A6A6A6A6A6A6A6A6A6A6ACC
+:101EC00040808AAAAAAAAAAAAAAAAAAAAAAAAAAA26
+:101ED00040808085AAAAAAAAAAAAAAAAAAAAAAAA45
+:101EE0004040404540656A6A6A6A6A6A6A6A6A6A24
+:101EF0004040808A8085A0A5AAAAAAAAAAAAAAAABE
+:101F00004040808A808A80A5A5AAAAAAAAAAAAAACD
+:101F100040404040404A404A6560656A6A6A6A6A71
+:101F2000404040808080808A8AA0A5A0AAAAAAAA50
+:101F300040404040808080A08A80AAA0A0AAAAAA8F
+:101F4000404040404040404060404A60606A6A6AA9
+:101F5000404040404080808080A0A0A0A0A0AAAACD
+:101F6000404040404040808080808080A0A0AAAA5D
+:101F700040404040404040404040404060606A6ACD
+:101F8000404040404040408080808080A0A0A0AA87
+:101F900045404040404040408080808080A0A0AAD2
+:101FA0004540404040404040404040404060606AC2
+:101FB0004540404040404040408080808080A0AA12
+:101FC0004540404040404040404080808080A0AA42
+:101FD0004540404040404040404040404040606AB2
+:101FE0004540404040404040404040808080A0AA62
+:101FF0004040404040404040404040408080A0A0A1
+:102000004F4F4F4F4F4F4F4F4F4F4F4F4F4F4F6FC0
+:10201000404040404040404040404040408080A0E0
+:10202000404040404040404040404040408080A0D0
+:102030004040404040404040404040404040406080
+:10204000404040404040404040404040408080A0B0
+:10205000004040404040404040404040408080A0E0
+:102060005040404040404040404040404040406040
+:10207000504040404040404040404040404080A0B0
+:10208000504040404040404040404040404080A0A0
+:10209000104040404040404040404040404040A010
+:1020A000104040404040404040404040404080A0C0
+:1020B000104040404040404040404040404080A0B0
+:1020C0000040404040404040404040404040408010
+:1020D0003030303030303030303030303030303000
+:1020E000C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0F0
+:1020F00000000000000000000000000000000000E0
+:1021000040404040404040404040404040404040CF
+:10211000808080800000404040404040404040403F
+:10212000808080808080800040404040404040402F
+:10213000808080808080808080808080808080809F
+:10214000808080808080808080808080808080808F
+:10215000808080808080808080808080808080807F
+:10216000808080808080808080808080808080806F
+:10217000808080808080808080808080808080805F
+:10218000808080808080808080808080808080804F
+:1021900090808080808080808080808090909090EF
+:1021A00090808080808080808080808090909090DF
+:1021B000808080808080808080808080858585850B
+:1021C00090808080808080808080808090909090BF
+:1021D0009080808080808080858585859595959587
+:1021E00080808080808080808080808080808080EF
+:1021F00095858585859595959595959595959595CF
+:10220000958585959595959595959595959595959E
+:1022100080808080808080808080808080808080BE
+:10222000959595959595959595959595959595955E
+:10223000555555555555555555555555555555554E
+:10224000404040404040404040404040404040408E
+:10225000555555555555555555555555555555552E
+:10226000151515151515151515151515151515151E
+:10227000404040404040404040404040404040405E
+:1022800015151515151515151515151515151515FE
+:10229000559595959595959595959595959595952E
+:1022A000408080808080808080808080808080806E
+:1022B000404A6A6A6A6A6A6A6A6A6A6A6A6A6A6AC8
+:1022C00040808AAAAAAAAAAAAAAAAAAAAAAAAAAA22
+:1022D00040808085AAAAAAAAAAAAAAAAAAAAAAAA41
+:1022E0004040404540656A6A6A6A6A6A6A6A6A6A20
+:1022F0004040808A8085A0A5AAAAAAAAAAAAAAAABA
+:102300004040808A808A80A5A5AAAAAAAAAAAAAAC9
+:1023100040404040404A404A6560656A6A6A6A6A6D
+:10232000404040808080808A8AA0A5A0AAAAAAAA4C
+:1023300040404040808080A08A80AAA0A0AAAAAA8B
+:10234000404040404040404060404A60606A6A6AA5
+:10235000404040404080808080A0A0A0A0A0AAAAC9
+:10236000000000000000000000000000000000006D
+:10237000000000000000000000000000000000005D
+:10238000000000000000000000000000000000004D
+:10239000000000000000000000000000000000003D
+:1023A000000000000000000000000000000000002D
+:1023B000000000000000000000000000000000001D
+:1023C000000000000000000000000000000000000D
+:1023D00000000000000000000000000000000000FD
+:1023E00000000000000000000000000000000000ED
+:1023F00000000000000000000000000000000000DD
+:1024000040404040404040404040404040404040CC
+:10241000808080800000404040404040404040403C
+:10242000808080808080800040404040404040402C
+:10243000808080808080808080808080808080809C
+:10244000808080808080808080808080808080808C
+:10245000808080808080808080808080808080807C
+:10246000808080808080808080808080808080806C
+:10247000808080808080808080808080808080805C
+:10248000808080808080808080808080808080804C
+:10249000808080808080808080808080808080803C
+:1024A000808080808080808080808080808080802C
+:1024B000808080808080808080808080808080801C
+:1024C000808080808080808080808080808080800C
+:1024D00080808080808080808080808085858585E8
+:1024E00080808080808080808080808080808080EC
+:1024F00080808080808080808585858585858585B4
+:10250000858585858585858585858585858585857B
+:1025100080808080808080808080808080808080BB
+:10252000858585858585858585858585858585855B
+:10253000858585858585858585858585858585854B
+:10254000808080808080808080808080808080808B
+:10255000454545454545454545454545454545452B
+:10256000050505050505050505050505050505051B
+:10257000404040404040404040404040404040405B
+:1025800005050505050505050505050505050505FB
+:10259000559595959595959595959595959595952B
+:1025A000408080808080808080808080808080806B
+:1025B000404A6A6A6A6A6A6A6A6A6A6A6A6A6A6AC5
+:1025C00040808AAAAAAAAAAAAAAAAAAAAAAAAAAA1F
+:1025D00040808085AAAAAAAAAAAAAAAAAAAAAAAA3E
+:1025E0004040404540656A6A6A6A6A6A6A6A6A6A1D
+:1025F0004040808A8085A0A5AAAAAAAAAAAAAAAAB7
+:102600004040808A808A80A5A5AAAAAAAAAAAAAAC6
+:1026100040404040404A404A6560656A6A6A6A6A6A
+:10262000404040808080808A8AA0A5A0AAAAAAAA49
+:1026300040404040808080A08A80AAA0A0AAAAAA88
+:10264000404040404040404060404A60606A6A6AA2
+:10265000404040404080808080A0A0A0A0A0AAAAC6
+:10266000404040404040808080808080A0A0AAAA56
+:1026700040404040404040404040404060606A6AC6
+:10268000404040404040408080808080A0A0A0AA80
+:1026900045404040404040408080808080A0A0AACB
+:1026A0004540404040404040404040404060606ABB
+:1026B0004540404040404040408080808080A0AA0B
+:1026C0004540404040404040404080808080A0AA3B
+:1026D0004540404040404040404040404040606AAB
+:1026E0004540404040404040404040808080A0AA5B
+:1026F0004040404040404040404040408080A0A09A
+:102700004F4F4F4F4F4F4F4F4F4F4F4F4F4F4F6FB9
+:10271000404040404040404040404040408080A0D9
+:10272000404040404040404040404040408080A0C9
+:102730004040404040404040404040404040406079
+:10274000404040404040404040404040408080A0A9
+:10275000004040404040404040404040408080A0D9
+:102760005040404040404040404040404040406039
+:10277000504040404040404040404040404080A0A9
+:10278000504040404040404040404040404080A099
+:10279000104040404040404040404040404040A009
+:1027A000104040404040404040404040404080A0B9
+:1027B000104040404040404040404040404080A0A9
+:1027C0000040404040404040404040404040408009
+:1027D00030303030303030303030303030303030F9
+:1027E000C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0E9
+:1027F00000000000000000000000000000000000D9
+:1028000040404040404040404040404040404040C8
+:102810008080808000004040404040404040404038
+:102820008080808080808000404040404040404028
+:102830008080808080808080808080808080808098
+:102840008080808080808080808080808080808088
+:102850008080808080808080808080808080808078
+:102860008080808080808080808080808080808068
+:102870008080808080808080808080808080808058
+:102880008080808080808080808080808080808048
+:102890008080808080808080808080808080808038
+:1028A0008080808080808080808080808080808028
+:1028B0008080808080808080808080808585858504
+:1028C00090808080808080808080808090909090B8
+:1028D0009080808080808080858585859595959580
+:1028E00080808080808080808080808080808080E8
+:1028F0009585858585858585858585859595959538
+:102900009585858585858585858585859595959527
+:1029100080808080808080808080808080808080B7
+:102920009585858585858585858585859595959507
+:1029300095858585858585959595959595959595A7
+:102940008080808080808080808080808080808087
+:102950009585858585858595959595959595959587
+:102960009585859585859595959595959595959557
+:102970000000000000000000000000000000000057
+:102980001515151505151515151515151515151507
+:102990005595959595959595959595959595959527
+:1029A0004080808080808080808080808080808067
+:1029B000404A6A6A6A6A6A6A6A6A6A6A6A6A6A6AC1
+:1029C00040808AAAAAAAAAAAAAAAAAAAAAAAAAAA1B
+:1029D00040808085AAAAAAAAAAAAAAAAAAAAAAAA3A
+:1029E0004040404540656A6A6A6A6A6A6A6A6A6A19
+:1029F0004040808A8085A0A5AAAAAAAAAAAAAAAAB3
+:102A00004040808A808A80A5A5AAAAAAAAAAAAAAC2
+:102A100040404040404A404A6560656A6A6A6A6A66
+:102A2000404040808080808A8AA0A5A0AAAAAAAA45
+:102A300040404040808080A08A80AAA0A0AAAAAA84
+:102A4000404040404040404060404A60606A6A6A9E
+:102A5000404040404080808080A0A0A0A0A0AAAAC2
+:102A6000404040404040808080808080A0A0AAAA52
+:102A700040404040404040404040404060606A6AC2
+:102A8000404040404040408080808080A0A0A0AA7C
+:102A900045404040404040408080808080A0A0AAC7
+:102AA0004540404040404040404040404060606AB7
+:102AB0004540404040404040408080808080A0AA07
+:102AC0004540404040404040404080808080A0AA37
+:102AD0004540404040404040404040404040606AA7
+:102AE0004540404040404040404040808080A0AA57
+:102AF0004040404040404040404040408080A0A096
+:102B00004F4F4F4F4F4F4F4F4F4F4F4F4F4F4F6FB5
+:102B1000404040404040404040404040408080A0D5
+:102B2000404040404040404040404040408080A0C5
+:102B30004040404040404040404040404040406075
+:102B4000404040404040404040404040408080A0A5
+:102B5000004040404040404040404040408080A0D5
+:102B60005040404040404040404040404040406035
+:102B7000504040404040404040404040404080A0A5
+:102B8000504040404040404040404040404080A095
+:102B9000104040404040404040404040404040A005
+:102BA000104040404040404040404040404080A0B5
+:102BB000104040404040404040404040404080A0A5
+:102BC0000040404040404040404040404040408005
+:102BD00030303030303030303030303030303030F5
+:102BE000C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0E5
+:102BF00000000000000000000000000000000000D5
+:102C000040404040404040404040404040404040C4
+:102C10008080808000004040404040404040404034
+:102C20008080808080808000404040404040404024
+:102C30008080808080808080808080808080808094
+:102C40008080808080808080808080808080808084
+:102C50008080808080808080808080808080808074
+:102C60008080808080808080808080808080808064
+:102C70008080808080808080808080808080808054
+:102C80008080808080808080808080808080808044
+:102C90008080808080808080808080808080808034
+:102CA0008080808080808080808080808080808024
+:102CB0008080808080808080808080808585858500
+:102CC00090808080808080808080808090909090B4
+:102CD000908080808080808085858585959595957C
+:102CE00080808080808080808080808080808080E4
+:102CF0009585858585858585858585859595959534
+:102D00009585858585858585858585859595959523
+:102D100080808080808080808080808080808080B3
+:102D20009585858585858585858585859595959503
+:102D300095858585858585959595959595959595A3
+:102D40008080808080808080808080808080808083
+:102D50005545455545455555555555555555555563
+:102D60001515151505151515151515151515151523
+:102D70004040404040404040404040404040404053
+:102D800015151515151515151515151515151515F3
+:102D90005595959595959595959595959595959523
+:102DA0004080808080808080808080808080808063
+:102DB000404A6A6A6A6A6A6A6A6A6A6A6A6A6A6ABD
+:102DC00040808AAAAAAAAAAAAAAAAAAAAAAAAAAA17
+:102DD00040808085AAAAAAAAAAAAAAAAAAAAAAAA36
+:102DE0004040404540656A6A6A6A6A6A6A6A6A6A15
+:102DF0004040808A8085A0A5AAAAAAAAAAAAAAAAAF
+:102E00004040808A808A80A5A5AAAAAAAAAAAAAABE
+:102E100040404040404A404A6560656A6A6A6A6A62
+:102E2000404040808080808A8AA0A5A0AAAAAAAA41
+:102E300040404040808080A08A80AAA0A0AAAAAA80
+:102E4000404040404040404060404A60606A6A6A9A
+:102E5000404040404080808080A0A0A0A0A0AAAABE
+:102E6000404040404040808080808080A0A0AAAA4E
+:102E700040404040404040404040404060606A6ABE
+:102E8000404040404040408080808080A0A0A0AA78
+:102E900045404040404040408080808080A0A0AAC3
+:102EA0004540404040404040404040404060606AB3
+:102EB0004540404040404040408080808080A0AA03
+:102EC0004540404040404040404080808080A0AA33
+:102ED0004540404040404040404040404040606AA3
+:102EE0004540404040404040404040808080A0AA53
+:102EF0004040404040404040404040408080A0A092
+:102F00004F4F4F4F4F4F4F4F4F4F4F4F4F4F4F6FB1
+:102F1000404040404040404040404040408080A0D1
+:102F2000404040404040404040404040408080A0C1
+:102F30004040404040404040404040404040406071
+:102F4000404040404040404040404040408080A0A1
+:102F5000004040404040404040404040408080A0D1
+:102F60005040404040404040404040404040406031
+:102F7000504040404040404040404040404080A0A1
+:102F8000504040404040404040404040404080A091
+:102F9000104040404040404040404040404040A001
+:102FA000104040404040404040404040404080A0B1
+:102FB000104040404040404040404040404080A0A1
+:102FC0000040404040404040404040404040408001
+:102FD00030303030303030303030303030303030F1
+:102FE000C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0E1
+:102FF00000000000000000000000000000000000D1
+:1030000040404040404040404040404040404040C0
+:103010008080808000004040404040404040404030
+:103020008080808080808000404040404040404020
+:103030008080808080808080808080808080808090
+:103040008080808080808080808080808080808080
+:103050008080808080808080808080808080808070
+:103060008080808080808080808080808080808060
+:103070008080808080808080808080808080808050
+:103080008080808080808080808080808080808040
+:103090008080808080808080808080808080808030
+:1030A0008080808080808080808080808080808020
+:1030B00080808080808080808080808085858585FC
+:1030C00090808080808080808080808090909090B0
+:1030D0009080808080808080858585859595959578
+:1030E00080808080808080808080808080808080E0
+:1030F0009585858585858585858585859595959530
+:1031000095858585858585959595858595959595EF
+:1031100080808080808080808080808080808080AF
+:10312000958585958585959595959595959595958F
+:10313000958585959595959595959595959595955F
+:10314000404040404040404040404040404040407F
+:10315000555555555555555555555555555555551F
+:10316000151515151515151515151515151515150F
+:10317000404040404040404040404040404040404F
+:1031800015151515151515151515151515151515EF
+:10319000559595959595959595959595959595951F
+:1031A000408080808080808080808080808080805F
+:1031B000404A6A6A6A6A6A6A6A6A6A6A6A6A6A6AB9
+:1031C00040808AAAAAAAAAAAAAAAAAAAAAAAAAAA13
+:1031D00040808085AAAAAAAAAAAAAAAAAAAAAAAA32
+:1031E0004040404540656A6A6A6A6A6A6A6A6A6A11
+:1031F0004040808A8085A0A5AAAAAAAAAAAAAAAAAB
+:103200004040808A808A80A5A5AAAAAAAAAAAAAABA
+:1032100040404040404A404A6560656A6A6A6A6A5E
+:10322000404040808080808A8AA0A5A0AAAAAAAA3D
+:1032300040404040808080A08A80AAA0A0AAAAAA7C
+:10324000404040404040404060404A60606A6A6A96
+:10325000404040404080808080A0A0A0A0A0AAAABA
+:10326000404040404040808080808080A0A0AAAA4A
+:1032700040404040404040404040404060606A6ABA
+:10328000404040404040408080808080A0A0A0AA74
+:1032900045404040404040408080808080A0A0AABF
+:1032A0004540404040404040404040404060606AAF
+:1032B0004540404040404040408080808080A0AAFF
+:1032C0004540404040404040404080808080A0AA2F
+:1032D0004540404040404040404040404040606A9F
+:1032E0004540404040404040404040808080A0AA4F
+:1032F0004040404040404040404040408080A0A08E
+:103300004F4F4F4F4F4F4F4F4F4F4F4F4F4F4F6FAD
+:10331000404040404040404040404040408080A0CD
+:10332000404040404040404040404040408080A0BD
+:10333000404040404040404040404040404040606D
+:10334000404040404040404040404040408080A09D
+:10335000004040404040404040404040408080A0CD
+:10336000504040404040404040404040404040602D
+:10337000504040404040404040404040404080A09D
+:10338000504040404040404040404040404080A08D
+:10339000104040404040404040404040404040A0FD
+:1033A000104040404040404040404040404080A0AD
+:1033B000104040404040404040404040404080A09D
+:1033C00000404040404040404040404040404080FD
+:1033D00030303030303030303030303030303030ED
+:1033E000C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0DD
+:1033F00000000000000000000000000000000000CD
+:1034000040404040404040404040404040404040BC
+:10341000808080800000404040404040404040402C
+:10342000808080808080800040404040404040401C
+:10343000808080808080808080808080808080808C
+:10344000808080808080808080808080808080807C
+:10345000808080808080808080808080808080806C
+:10346000808080808080808080808080808080805C
+:10347000808080808080808080808080808080804C
+:10348000808080808080808080808080808080803C
+:1034900090808080808080808080808090909090DC
+:1034A00090808080808080808080808090909090CC
+:1034B00080808080808080808080808085858585F8
+:1034C00090808080808080808080808090909090AC
+:1034D0009080808080808080858585859595959574
+:1034E00080808080808080808080808080808080DC
+:1034F00095858585859595959595959595959595BC
+:10350000958585959595959595959595959595958B
+:1035100080808080808080808080808080808080AB
+:10352000959595959595959595959595959595954B
+:10353000555555555555555555555555555555553B
+:10354000404040404040404040404040404040407B
+:10355000555555555555555555555555555555551B
+:10356000151515151515151515151515151515150B
+:10357000404040404040404040404040404040404B
+:1035800015151515151515151515151515151515EB
+:10359000559595959595959595959595959595951B
+:1035A000408080808080808080808080808080805B
+:1035B000404A6A6A6A6A6A6A6A6A6A6A6A6A6A6AB5
+:1035C00040808AAAAAAAAAAAAAAAAAAAAAAAAAAA0F
+:1035D00040808085AAAAAAAAAAAAAAAAAAAAAAAA2E
+:1035E0004040404540656A6A6A6A6A6A6A6A6A6A0D
+:1035F0004040808A8085A0A5AAAAAAAAAAAAAAAAA7
+:103600004040808A808A80A5A5AAAAAAAAAAAAAAB6
+:1036100040404040404A404A6560656A6A6A6A6A5A
+:10362000404040808080808A8AA0A5A0AAAAAAAA39
+:1036300040404040808080A08A80AAA0A0AAAAAA78
+:10364000404040404040404060404A60606A6A6A92
+:10365000404040404080808080A0A0A0A0A0AAAAB6
+:10366000000000000000000000000000000000005A
+:10367000000000000000000000000000000000004A
+:10368000000000000000000000000000000000003A
+:10369000000000000000000000000000000000002A
+:1036A000000000000000000000000000000000001A
+:1036B000000000000000000000000000000000000A
+:1036C00000000000000000000000000000000000FA
+:1036D00000000000000000000000000000000000EA
+:1036E00000000000000000000000000000000000DA
+:1036F00000000000000000000000000000000000CA
+:00000001FF
diff --git a/include/linux/fsl_devices.h b/include/linux/fsl_devices.h
index bec8fe9cd838..5437d3a4719e 100644
--- a/include/linux/fsl_devices.h
+++ b/include/linux/fsl_devices.h
@@ -238,6 +238,13 @@ struct fsl_mxc_ldb_platform_data {
int sec_disp_id;
};
+struct mxc_fb_platform_data {
+ struct fb_videomode *mode;
+ int num_modes;
+ char *mode_str;
+ u32 interface_pix_fmt;
+};
+
struct fsl_mxc_lcd_platform_data {
char *io_reg;
char *core_reg;
@@ -280,12 +287,21 @@ struct fsl_mxc_hdmi_core_platform_data {
int disp_id;
};
+struct fsl_mxc_capture_platform_data {
+ int csi;
+ int ipu;
+ u8 mclk_source;
+ u8 is_mipi;
+};
+
+
struct fsl_mxc_camera_platform_data {
char *core_regulator;
char *io_regulator;
char *analog_regulator;
char *gpo_regulator;
u32 mclk;
+ u8 mclk_source;
u32 csi;
void (*pwdn)(int pwdn);
void (*io_init)(void);
diff --git a/include/linux/mxcfb.h b/include/linux/mxcfb.h
index 5fb07b44063d..60e0aa09d0b8 100644
--- a/include/linux/mxcfb.h
+++ b/include/linux/mxcfb.h
@@ -69,6 +69,8 @@ struct mxcfb_rect {
#define GRAYSCALE_8BIT 0x1
#define GRAYSCALE_8BIT_INVERTED 0x2
+#define GRAYSCALE_4BIT 0x3
+#define GRAYSCALE_4BIT_INVERTED 0x4
#define AUTO_UPDATE_MODE_REGION_MODE 0
#define AUTO_UPDATE_MODE_AUTOMATIC_MODE 1
diff --git a/include/linux/mxcfb_epdc_kernel.h b/include/linux/mxcfb_epdc_kernel.h
index 017202f8a861..06fea6fbb459 100644
--- a/include/linux/mxcfb_epdc_kernel.h
+++ b/include/linux/mxcfb_epdc_kernel.h
@@ -33,4 +33,17 @@ int mxc_epdc_fb_set_pwrdown_delay(u32 pwrdown_delay,
int mxc_epdc_get_pwrdown_delay(struct fb_info *info);
int mxc_epdc_fb_set_upd_scheme(u32 upd_scheme, struct fb_info *info);
+void mxc_spdc_fb_set_waveform_modes(struct mxcfb_waveform_modes *modes,
+ struct fb_info *info);
+int mxc_spdc_fb_set_temperature(int temperature, struct fb_info *info);
+int mxc_spdc_fb_set_auto_update(u32 auto_mode, struct fb_info *info);
+int mxc_spdc_fb_send_update(struct mxcfb_update_data *upd_data,
+ struct fb_info *info);
+int mxc_spdc_fb_wait_update_complete(
+ struct mxcfb_update_marker_data *marker_data,
+ struct fb_info *info);
+int mxc_spdc_fb_set_pwrdown_delay(u32 pwrdown_delay,
+ struct fb_info *info);
+int mxc_spdc_get_pwrdown_delay(struct fb_info *info);
+int mxc_spdc_fb_set_upd_scheme(u32 upd_scheme, struct fb_info *info);
#endif
diff --git a/include/linux/power/max8903_battery.h b/include/linux/power/max8903_battery.h
new file mode 100755
index 000000000000..b28287053986
--- /dev/null
+++ b/include/linux/power/max8903_battery.h
@@ -0,0 +1,62 @@
+/*
+ * max8903_battery.h - Maxim 8903 USB/Adapter Charger Driver
+ *
+ * Copyright (C) 2011 Samsung Electronics
+ * Copyright (C) 2011-2012 Freescale Semiconductor, Inc.
+ * Based on max8903_charger.h
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+ *
+ */
+
+#ifndef __MAX8903_BATTERY_H__
+#define __MAX8903_BATTERY_H__
+
+struct max8903_pdata {
+ /*
+ * GPIOs
+ * cen, chg, flt, and usus are optional.
+ * dok, dcm, and uok are not optional depending on the status of
+ * dc_valid and usb_valid.
+ */
+ int cen; /* Charger Enable input */
+ int dok; /* DC(Adapter) Power OK output */
+ int uok; /* USB Power OK output */
+ int chg; /* Charger status output */
+ int flt; /* Fault output */
+ int dcm; /* Current-Limit Mode input (1: DC, 2: USB) */
+ int usus; /* USB Suspend Input (1: suspended) */
+
+ /* DCM wired to Logic High
+ Set this true when DCM pin connect to Logic high.*/
+ bool dcm_always_high;
+
+ /*
+ * DC(Adapter/TA) is wired
+ * When dc_valid is true,
+ * dok and dcm should be valid.
+ *
+ * At least one of dc_valid or usb_valid should be true.
+ */
+ bool dc_valid;
+ /*
+ * USB is wired
+ * When usb_valid is true,
+ * uok should be valid.
+ */
+ bool usb_valid;
+};
+
+#endif /* __MAX8903_BATTERY_H__ */
diff --git a/include/linux/power/sabresd_battery.h b/include/linux/power/sabresd_battery.h
new file mode 100644
index 000000000000..c251a748a0db
--- /dev/null
+++ b/include/linux/power/sabresd_battery.h
@@ -0,0 +1,62 @@
+/*
+ * sabresd_battery.h - Maxim 8903 USB/Adapter Charger Driver
+ *
+ * Copyright (C) 2011 Samsung Electronics
+ * Copyright (C) 2011-2012 Freescale Semiconductor, Inc.
+ * Based on max8903_charger.h
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+ *
+ */
+
+#ifndef __MAX8903_SABRESD_H__
+#define __MAX8903_SABRESD_H__
+
+struct max8903_pdata {
+ /*
+ * GPIOs
+ * cen, chg, flt, and usus are optional.
+ * dok, dcm, and uok are not optional depending on the status of
+ * dc_valid and usb_valid.
+ */
+ int cen; /* Charger Enable input */
+ int dok; /* DC(Adapter) Power OK output */
+ int uok; /* USB Power OK output */
+ int chg; /* Charger status output */
+ int flt; /* Fault output */
+ int dcm; /* Current-Limit Mode input (1: DC, 2: USB) */
+ int usus; /* USB Suspend Input (1: suspended) */
+
+ /* DCM wired to Logic High
+ Set this true when DCM pin connect to Logic high.*/
+ bool dcm_always_high;
+
+ /*
+ * DC(Adapter/TA) is wired
+ * When dc_valid is true,
+ * dok and dcm should be valid.
+ *
+ * At least one of dc_valid or usb_valid should be true.
+ */
+ bool dc_valid;
+ /*
+ * USB is wired
+ * When usb_valid is true,
+ * uok should be valid.
+ */
+ bool usb_valid;
+};
+
+#endif /* __SABRESD_BATTERY_H__ */
diff --git a/include/linux/pxp_dma.h b/include/linux/pxp_dma.h
index bf63bf3570e5..1be6e395ec55 100644
--- a/include/linux/pxp_dma.h
+++ b/include/linux/pxp_dma.h
@@ -66,6 +66,7 @@ typedef unsigned char bool;
/*! @name YUV Planar Formats */
/*! @{ */
#define PXP_PIX_FMT_GREY fourcc('G', 'R', 'E', 'Y') /*!< 8 Greyscale */
+#define PXP_PIX_FMT_GY04 fourcc('G', 'Y', '0', '4') /*!< 4 Greyscale */
#define PXP_PIX_FMT_YVU410P fourcc('Y', 'V', 'U', '9') /*!< 9 YVU 4:1:0 */
#define PXP_PIX_FMT_YUV410P fourcc('Y', 'U', 'V', '9') /*!< 9 YUV 4:1:0 */
#define PXP_PIX_FMT_YVU420P fourcc('Y', 'V', '1', '2') /*!< 12 YVU 4:2:0 */
diff --git a/sound/soc/codecs/Kconfig b/sound/soc/codecs/Kconfig
index 99d3806e7535..af1c3a9444ca 100644
--- a/sound/soc/codecs/Kconfig
+++ b/sound/soc/codecs/Kconfig
@@ -221,6 +221,9 @@ config SND_SOC_SN95031
config SND_SOC_CS42888
tristate
+config SND_SOC_SI4763
+ tristate
+
config SND_SOC_SPDIF
tristate
diff --git a/sound/soc/codecs/Makefile b/sound/soc/codecs/Makefile
index 8efb5130dc1f..e08ff304aa9d 100644
--- a/sound/soc/codecs/Makefile
+++ b/sound/soc/codecs/Makefile
@@ -27,6 +27,7 @@ snd-soc-max9850-objs := max9850.o
snd-soc-pcm3008-objs := pcm3008.o
snd-soc-sgtl5000-objs := sgtl5000.o
snd-soc-cs42888-objs := cs42888.o
+snd-soc-si4763-objs := si4763.o
snd-soc-alc5623-objs := alc5623.o
snd-soc-sn95031-objs := sn95031.o
snd-soc-spdif-objs := spdif_transciever.o
@@ -123,6 +124,7 @@ obj-$(CONFIG_SND_SOC_MAX98095) += snd-soc-max98095.o
obj-$(CONFIG_SND_SOC_MAX9850) += snd-soc-max9850.o
obj-$(CONFIG_SND_SOC_PCM3008) += snd-soc-pcm3008.o
obj-$(CONFIG_SND_SOC_SGTL5000) += snd-soc-sgtl5000.o
+obj-$(CONFIG_SND_SOC_SI4763) += snd-soc-si4763.o
obj-$(CONFIG_SND_SOC_SN95031) +=snd-soc-sn95031.o
obj-$(CONFIG_SND_SOC_SPDIF) += snd-soc-spdif.o
obj-$(CONFIG_SND_SOC_SSM2602) += snd-soc-ssm2602.o
diff --git a/sound/soc/codecs/cs42888.c b/sound/soc/codecs/cs42888.c
index 63d244a8d00a..97a8fc85db11 100644
--- a/sound/soc/codecs/cs42888.c
+++ b/sound/soc/codecs/cs42888.c
@@ -743,12 +743,13 @@ static void cs42888_shutdown(struct snd_pcm_substream *substream,
u8 val;
/* Mute all the channels */
- val = snd_soc_read(codec, CS42888_MUTE);
-
- val |= CS42888_MUTE_ALL;
- ret = snd_soc_write(codec, CS42888_MUTE, val);
- if (ret < 0)
- pr_err("i2c write failed\n");
+ if (substream->stream == SNDRV_PCM_STREAM_PLAYBACK) {
+ val = snd_soc_read(codec, CS42888_MUTE);
+ val |= CS42888_MUTE_ALL;
+ ret = snd_soc_write(codec, CS42888_MUTE, val);
+ if (ret < 0)
+ pr_err("i2c write failed\n");
+ }
}
diff --git a/sound/soc/codecs/mxc_hdmi.c b/sound/soc/codecs/mxc_hdmi.c
index 62decb89d876..834d785b2c27 100644
--- a/sound/soc/codecs/mxc_hdmi.c
+++ b/sound/soc/codecs/mxc_hdmi.c
@@ -2,6 +2,12 @@
* MXC HDMI ALSA Soc Codec Driver
*
* Copyright (C) 2011-2012 Freescale Semiconductor, Inc.
+ *
+ * Some code from patch_hdmi.c
+ * Copyright (c) 2008-2010 Intel Corporation. All rights reserved.
+ * Copyright (c) 2006 ATI Technologies Inc.
+ * Copyright (c) 2008 NVIDIA Corp. All rights reserved.
+ * Copyright (c) 2008 Wei Ni <wni@nvidia.com>
*/
/*
@@ -88,6 +94,185 @@ static void dumpregs(void)
static void dumpregs(void) {}
#endif
+enum cea_speaker_placement {
+ FL = (1 << 0), /* Front Left */
+ FC = (1 << 1), /* Front Center */
+ FR = (1 << 2), /* Front Right */
+ FLC = (1 << 3), /* Front Left Center */
+ FRC = (1 << 4), /* Front Right Center */
+ RL = (1 << 5), /* Rear Left */
+ RC = (1 << 6), /* Rear Center */
+ RR = (1 << 7), /* Rear Right */
+ RLC = (1 << 8), /* Rear Left Center */
+ RRC = (1 << 9), /* Rear Right Center */
+ LFE = (1 << 10), /* Low Frequency Effect */
+ FLW = (1 << 11), /* Front Left Wide */
+ FRW = (1 << 12), /* Front Right Wide */
+ FLH = (1 << 13), /* Front Left High */
+ FCH = (1 << 14), /* Front Center High */
+ FRH = (1 << 15), /* Front Right High */
+ TC = (1 << 16), /* Top Center */
+};
+
+/*
+ * EDID SA bits in the CEA Speaker Allocation data block
+ */
+static int edid_speaker_allocation_bits[] = {
+ [0] = FL | FR,
+ [1] = LFE,
+ [2] = FC,
+ [3] = RL | RR,
+ [4] = RC,
+ [5] = FLC | FRC,
+ [6] = RLC | RRC,
+ [7] = FLW | FRW,
+ [8] = FLH | FRH,
+ [9] = TC,
+ [10] = FCH,
+};
+
+struct cea_channel_speaker_allocation {
+ int ca_index;
+ int speakers[8];
+
+ /* derived values, just for convenience */
+ int channels;
+ int spk_mask;
+};
+
+/*
+ * This is an ordered list!
+ *
+ * The preceding ones have better chances to be selected by
+ * hdmi_channel_allocation().
+ */
+static struct cea_channel_speaker_allocation channel_allocations[] = {
+/* channel: 7 6 5 4 3 2 1 0 */
+{ .ca_index = 0x00, .speakers = { 0, 0, 0, 0, 0, 0, FR, FL } },
+ /* 2.1 */
+{ .ca_index = 0x01, .speakers = { 0, 0, 0, 0, 0, LFE, FR, FL } },
+ /* Dolby Surround */
+{ .ca_index = 0x02, .speakers = { 0, 0, 0, 0, FC, 0, FR, FL } },
+ /* surround40 */
+{ .ca_index = 0x08, .speakers = { 0, 0, RR, RL, 0, 0, FR, FL } },
+ /* surround41 */
+{ .ca_index = 0x09, .speakers = { 0, 0, RR, RL, 0, LFE, FR, FL } },
+ /* surround50 */
+{ .ca_index = 0x0a, .speakers = { 0, 0, RR, RL, FC, 0, FR, FL } },
+ /* surround51 */
+{ .ca_index = 0x0b, .speakers = { 0, 0, RR, RL, FC, LFE, FR, FL } },
+ /* 6.1 */
+{ .ca_index = 0x0f, .speakers = { 0, RC, RR, RL, FC, LFE, FR, FL } },
+ /* surround71 */
+{ .ca_index = 0x13, .speakers = { RRC, RLC, RR, RL, FC, LFE, FR, FL } },
+
+{ .ca_index = 0x03, .speakers = { 0, 0, 0, 0, FC, LFE, FR, FL } },
+{ .ca_index = 0x04, .speakers = { 0, 0, 0, RC, 0, 0, FR, FL } },
+{ .ca_index = 0x05, .speakers = { 0, 0, 0, RC, 0, LFE, FR, FL } },
+{ .ca_index = 0x06, .speakers = { 0, 0, 0, RC, FC, 0, FR, FL } },
+{ .ca_index = 0x07, .speakers = { 0, 0, 0, RC, FC, LFE, FR, FL } },
+{ .ca_index = 0x0c, .speakers = { 0, RC, RR, RL, 0, 0, FR, FL } },
+{ .ca_index = 0x0d, .speakers = { 0, RC, RR, RL, 0, LFE, FR, FL } },
+{ .ca_index = 0x0e, .speakers = { 0, RC, RR, RL, FC, 0, FR, FL } },
+{ .ca_index = 0x10, .speakers = { RRC, RLC, RR, RL, 0, 0, FR, FL } },
+{ .ca_index = 0x11, .speakers = { RRC, RLC, RR, RL, 0, LFE, FR, FL } },
+{ .ca_index = 0x12, .speakers = { RRC, RLC, RR, RL, FC, 0, FR, FL } },
+{ .ca_index = 0x14, .speakers = { FRC, FLC, 0, 0, 0, 0, FR, FL } },
+{ .ca_index = 0x15, .speakers = { FRC, FLC, 0, 0, 0, LFE, FR, FL } },
+{ .ca_index = 0x16, .speakers = { FRC, FLC, 0, 0, FC, 0, FR, FL } },
+{ .ca_index = 0x17, .speakers = { FRC, FLC, 0, 0, FC, LFE, FR, FL } },
+{ .ca_index = 0x18, .speakers = { FRC, FLC, 0, RC, 0, 0, FR, FL } },
+{ .ca_index = 0x19, .speakers = { FRC, FLC, 0, RC, 0, LFE, FR, FL } },
+{ .ca_index = 0x1a, .speakers = { FRC, FLC, 0, RC, FC, 0, FR, FL } },
+{ .ca_index = 0x1b, .speakers = { FRC, FLC, 0, RC, FC, LFE, FR, FL } },
+{ .ca_index = 0x1c, .speakers = { FRC, FLC, RR, RL, 0, 0, FR, FL } },
+{ .ca_index = 0x1d, .speakers = { FRC, FLC, RR, RL, 0, LFE, FR, FL } },
+{ .ca_index = 0x1e, .speakers = { FRC, FLC, RR, RL, FC, 0, FR, FL } },
+{ .ca_index = 0x1f, .speakers = { FRC, FLC, RR, RL, FC, LFE, FR, FL } },
+{ .ca_index = 0x20, .speakers = { 0, FCH, RR, RL, FC, 0, FR, FL } },
+{ .ca_index = 0x21, .speakers = { 0, FCH, RR, RL, FC, LFE, FR, FL } },
+{ .ca_index = 0x22, .speakers = { TC, 0, RR, RL, FC, 0, FR, FL } },
+{ .ca_index = 0x23, .speakers = { TC, 0, RR, RL, FC, LFE, FR, FL } },
+{ .ca_index = 0x24, .speakers = { FRH, FLH, RR, RL, 0, 0, FR, FL } },
+{ .ca_index = 0x25, .speakers = { FRH, FLH, RR, RL, 0, LFE, FR, FL } },
+{ .ca_index = 0x26, .speakers = { FRW, FLW, RR, RL, 0, 0, FR, FL } },
+{ .ca_index = 0x27, .speakers = { FRW, FLW, RR, RL, 0, LFE, FR, FL } },
+{ .ca_index = 0x28, .speakers = { TC, RC, RR, RL, FC, 0, FR, FL } },
+{ .ca_index = 0x29, .speakers = { TC, RC, RR, RL, FC, LFE, FR, FL } },
+{ .ca_index = 0x2a, .speakers = { FCH, RC, RR, RL, FC, 0, FR, FL } },
+{ .ca_index = 0x2b, .speakers = { FCH, RC, RR, RL, FC, LFE, FR, FL } },
+{ .ca_index = 0x2c, .speakers = { TC, FCH, RR, RL, FC, 0, FR, FL } },
+{ .ca_index = 0x2d, .speakers = { TC, FCH, RR, RL, FC, LFE, FR, FL } },
+{ .ca_index = 0x2e, .speakers = { FRH, FLH, RR, RL, FC, 0, FR, FL } },
+{ .ca_index = 0x2f, .speakers = { FRH, FLH, RR, RL, FC, LFE, FR, FL } },
+{ .ca_index = 0x30, .speakers = { FRW, FLW, RR, RL, FC, 0, FR, FL } },
+{ .ca_index = 0x31, .speakers = { FRW, FLW, RR, RL, FC, LFE, FR, FL } },
+};
+
+/*
+ * Compute derived values in channel_allocations[].
+ */
+static void init_channel_allocations(void)
+{
+ int i, j;
+ struct cea_channel_speaker_allocation *p;
+
+ for (i = 0; i < ARRAY_SIZE(channel_allocations); i++) {
+ p = channel_allocations + i;
+ p->channels = 0;
+ p->spk_mask = 0;
+ for (j = 0; j < ARRAY_SIZE(p->speakers); j++)
+ if (p->speakers[j]) {
+ p->channels++;
+ p->spk_mask |= p->speakers[j];
+ }
+ }
+}
+
+/*
+ * The transformation takes two steps:
+ *
+ * speaker_alloc => (edid_speaker_allocation_bits[]) => spk_mask
+ * spk_mask => (channel_allocations[]) => CA
+ *
+ * TODO: it could select the wrong CA from multiple candidates.
+*/
+static int hdmi_channel_allocation(int channels)
+{
+ int i;
+ int ca = 0;
+ int spk_mask = 0;
+
+ /*
+ * CA defaults to 0 for basic stereo audio
+ */
+ if (channels <= 2)
+ return 0;
+
+ /*
+ * expand EDID's speaker allocation mask
+ *
+ * EDID tells the speaker mask in a compact(paired) form,
+ * expand EDID's notions to match the ones used by Audio InfoFrame.
+ */
+ for (i = 0; i < ARRAY_SIZE(edid_speaker_allocation_bits); i++) {
+ if (edid_cfg.speaker_alloc & (1 << i))
+ spk_mask |= edid_speaker_allocation_bits[i];
+ }
+
+ /* search for the first working match in the CA table */
+ for (i = 0; i < ARRAY_SIZE(channel_allocations); i++) {
+ if (channels == channel_allocations[i].channels &&
+ (spk_mask & channel_allocations[i].spk_mask) ==
+ channel_allocations[i].spk_mask) {
+ ca = channel_allocations[i].ca_index;
+ break;
+ }
+ }
+
+ return ca;
+}
+
static void hdmi_set_audio_flat(u8 value)
{
/* Indicates the subpacket represents a flatline sample */
@@ -103,12 +288,25 @@ static void hdmi_set_layout(unsigned int channels)
HDMI_FC_AUDSCONF_AUD_PACKET_LAYOUT_MASK);
}
-static void hdmi_set_audio_infoframe(void)
+static void hdmi_set_audio_infoframe(unsigned int channels)
{
- /* set to 0: means "refer to stream header" */
- hdmi_writeb(0x00, HDMI_FC_AUDICONF0);
- hdmi_writeb(0x00, HDMI_FC_AUDICONF1);
- hdmi_writeb(0x00, HDMI_FC_AUDICONF2);
+ unsigned char audiconf0, audiconf2;
+
+ /* From CEA-861-D spec:
+ * NOTE: HDMI requires the CT, SS and SF fields to be set to 0 ("Refer
+ * to Stream Header") as these items are carried in the audio stream.
+ *
+ * So we only set the CC and CA fields.
+ */
+ audiconf0 = ((channels - 1) << HDMI_FC_AUDICONF0_CC_OFFSET) &
+ HDMI_FC_AUDICONF0_CC_MASK;
+
+ audiconf2 = hdmi_channel_allocation(channels);
+
+ hdmi_writeb(audiconf0, HDMI_FC_AUDICONF0);
+ hdmi_writeb(0, HDMI_FC_AUDICONF1);
+ hdmi_writeb(audiconf2, HDMI_FC_AUDICONF2);
+ hdmi_writeb(0, HDMI_FC_AUDICONF3);
}
static int cea_audio_rates[HDMI_MAX_RATES] = {
@@ -242,7 +440,6 @@ static int mxc_hdmi_codec_startup(struct snd_pcm_substream *substream,
return ret;
hdmi_set_audio_flat(0);
- hdmi_set_audio_infoframe();
return 0;
}
@@ -252,6 +449,7 @@ static int mxc_hdmi_codec_prepare(struct snd_pcm_substream *substream,
{
struct snd_pcm_runtime *runtime = substream->runtime;
+ hdmi_set_audio_infoframe(runtime->channels);
hdmi_set_layout(runtime->channels);
hdmi_set_sample_rate(runtime->rate);
dumpregs();
@@ -371,6 +569,8 @@ static int mxc_hdmi_codec_soc_probe(struct snd_soc_codec *codec)
if (ret)
goto e_add_ctrls;
+ init_channel_allocations();
+
snd_soc_codec_set_drvdata(codec, hdmi_priv);
return 0;
diff --git a/sound/soc/codecs/mxc_spdif.c b/sound/soc/codecs/mxc_spdif.c
index 2bcb4d68274b..0c93621201d6 100644
--- a/sound/soc/codecs/mxc_spdif.c
+++ b/sound/soc/codecs/mxc_spdif.c
@@ -81,10 +81,13 @@ struct spdif_mixer_control mxc_spdif_control;
static unsigned long spdif_base_addr;
#if MXC_SPDIF_DEBUG
-static void dumpregs(void)
+static void dumpregs(struct mxc_spdif_priv *priv)
{
unsigned int value, i;
+ if (!priv->tx_active || !priv->rx_active)
+ clk_enable(priv->plat_data->spdif_core_clk);
+
for (i = 0 ; i <= 0x38 ; i += 4) {
value = readl(spdif_base_addr + i) & 0xffffff;
pr_debug("reg 0x%02x = 0x%06x\n", i, value);
@@ -97,9 +100,12 @@ static void dumpregs(void)
i = 0x50;
value = readl(spdif_base_addr + i) & 0xffffff;
pr_debug("reg 0x%02x = 0x%06x\n", i, value);
+
+ if (!priv->tx_active || !priv->rx_active)
+ clk_disable(priv->plat_data->spdif_core_clk);
}
#else
-static void dumpregs(void) {}
+static void dumpregs(struct mxc_spdif_priv *priv) {}
#endif
/* define each spdif interrupt handlers */
@@ -299,7 +305,13 @@ static void spdif_irq_bit_error(unsigned int bit, void *devid)
*/
static void spdif_irq_sym_error(unsigned int bit, void *devid)
{
+ struct mxc_spdif_priv *spdif_priv = (struct mxc_spdif_priv *)devid;
+
pr_debug("SPDIF interrupt symbol error\n");
+ if (!atomic_read(&spdif_priv->dpll_locked)) {
+ /* dpll unlocked seems no audio stream */
+ spdif_intr_enable(INT_SYM_ERR, 0);
+ }
}
/*
@@ -517,14 +529,15 @@ static int mxc_spdif_playback_startup(struct snd_pcm_substream *substream,
struct snd_pcm_runtime *runtime = substream->runtime;
struct mxc_spdif_priv *spdif_priv = snd_soc_codec_get_drvdata(codec);
struct mxc_spdif_platform_data *plat_data = spdif_priv->plat_data;
- int err;
+ int err = 0;
if (!plat_data->spdif_tx)
return -EINVAL;
spdif_priv->tx_active = true;
- clk_enable(plat_data->spdif_clk);
- clk_enable(plat_data->spdif_audio_clk);
+ err = clk_enable(plat_data->spdif_clk);
+ if (err < 0)
+ goto failed_clk;
err = snd_pcm_hw_constraint_list(runtime, 0,
SNDRV_PCM_HW_PARAM_RATE,
@@ -537,14 +550,15 @@ static int mxc_spdif_playback_startup(struct snd_pcm_substream *substream,
goto failed;
return 0;
+
failed:
- clk_disable(plat_data->spdif_audio_clk);
clk_disable(plat_data->spdif_clk);
+failed_clk:
spdif_priv->tx_active = false;
return err;
}
-static int mxc_spdif_playback_prepare(struct snd_pcm_substream *substream,
+static int mxc_spdif_playback_start(struct snd_pcm_substream *substream,
struct snd_soc_dai *dai)
{
struct snd_soc_codec *codec = dai->codec;
@@ -586,11 +600,11 @@ static int mxc_spdif_playback_prepare(struct snd_pcm_substream *substream,
regval |= SCR_DMA_TX_EN;
__raw_writel(regval, SPDIF_REG_SCR + spdif_base_addr);
- dumpregs();
+ dumpregs(spdif_priv);
return 0;
}
-static int mxc_spdif_playback_shutdown(struct snd_pcm_substream *substream,
+static int mxc_spdif_playback_stop(struct snd_pcm_substream *substream,
struct snd_soc_dai *dai)
{
struct snd_soc_codec *codec = dai->codec;
@@ -601,7 +615,7 @@ static int mxc_spdif_playback_shutdown(struct snd_pcm_substream *substream,
if (!plat_data->spdif_tx)
return -EINVAL;
- dumpregs();
+ dumpregs(spdif_priv);
pr_debug("SIS: 0x%08x\n", __raw_readl(spdif_base_addr + SPDIF_REG_SIS));
spdif_intr_status();
@@ -619,13 +633,41 @@ static int mxc_spdif_playback_shutdown(struct snd_pcm_substream *substream,
regval |= SCR_LOW_POWER;
__raw_writel(regval, SPDIF_REG_SCR + spdif_base_addr);
- clk_disable(plat_data->spdif_audio_clk);
clk_disable(plat_data->spdif_clk);
spdif_priv->tx_active = false;
return 0;
}
+static int mxc_spdif_playback_trigger(struct snd_pcm_substream *substream,
+ int cmd, struct snd_soc_dai *dai)
+{
+ struct snd_soc_codec *codec = dai->codec;
+ struct mxc_spdif_priv *spdif_priv = snd_soc_codec_get_drvdata(codec);
+ struct mxc_spdif_platform_data *plat_data = spdif_priv->plat_data;
+ int ret = 0;
+
+ if (!plat_data->spdif_tx)
+ return -EINVAL;
+
+ switch (cmd) {
+ case SNDRV_PCM_TRIGGER_START:
+ case SNDRV_PCM_TRIGGER_RESUME:
+ case SNDRV_PCM_TRIGGER_PAUSE_RELEASE:
+ ret = mxc_spdif_playback_start(substream, dai);
+ break;
+ case SNDRV_PCM_TRIGGER_STOP:
+ case SNDRV_PCM_TRIGGER_SUSPEND:
+ case SNDRV_PCM_TRIGGER_PAUSE_PUSH:
+ ret = mxc_spdif_playback_stop(substream, dai);
+ break;
+ default:
+ return -EINVAL;
+ }
+
+ return ret;
+}
+
static int mxc_spdif_capture_startup(struct snd_pcm_substream *substream,
struct snd_soc_dai *dai)
{
@@ -641,7 +683,9 @@ static int mxc_spdif_capture_startup(struct snd_pcm_substream *substream,
spdif_priv->rx_active = true;
/* enable rx bus clock */
- clk_enable(plat_data->spdif_clk);
+ err = clk_enable(plat_data->spdif_clk);
+ if (err < 0)
+ goto failed_clk;
/* set hw param constraints */
err = snd_pcm_hw_constraint_list(runtime, 0,
@@ -655,18 +699,16 @@ static int mxc_spdif_capture_startup(struct snd_pcm_substream *substream,
if (err < 0)
goto failed;
- /* enable spdif dpll lock interrupt */
- spdif_intr_enable(INT_DPLL_LOCKED, 1);
-
return 0;
failed:
clk_disable(plat_data->spdif_clk);
+failed_clk:
spdif_priv->rx_active = false;
return err;
}
-static int mxc_spdif_capture_prepare(struct snd_pcm_substream *substream,
+static int mxc_spdif_capture_start(struct snd_pcm_substream *substream,
struct snd_soc_dai *dai)
{
struct snd_soc_codec *codec = dai->codec;
@@ -674,7 +716,7 @@ static int mxc_spdif_capture_prepare(struct snd_pcm_substream *substream,
struct mxc_spdif_platform_data *plat_data = spdif_priv->plat_data;
unsigned long regval;
- if (!plat_data->spdif_rx)
+ if (!plat_data->spdif_rx || !spdif_priv->rx_active)
return -EINVAL;
regval = __raw_readl(spdif_base_addr + SPDIF_REG_SCR);
@@ -693,7 +735,7 @@ static int mxc_spdif_capture_prepare(struct snd_pcm_substream *substream,
spdif_intr_enable(INT_SYM_ERR | INT_BIT_ERR | INT_URX_FUL |
INT_URX_OV | INT_QRX_FUL | INT_QRX_OV |
INT_UQ_SYNC | INT_UQ_ERR | INT_RX_RESYNC |
- INT_LOSS_LOCK, 1);
+ INT_LOSS_LOCK | INT_DPLL_LOCKED, 1);
/* setup rx clock source */
spdif_set_rx_clksrc(plat_data->spdif_rx_clk, SPDIF_DEFAULT_GAINSEL, 1);
@@ -711,7 +753,7 @@ static int mxc_spdif_capture_prepare(struct snd_pcm_substream *substream,
return 0;
}
-static int mxc_spdif_capture_shutdown(struct snd_pcm_substream *substream,
+static int mxc_spdif_capture_stop(struct snd_pcm_substream *substream,
struct snd_soc_dai *dai)
{
struct snd_soc_codec *codec = dai->codec;
@@ -719,7 +761,7 @@ static int mxc_spdif_capture_shutdown(struct snd_pcm_substream *substream,
struct mxc_spdif_platform_data *plat_data = spdif_priv->plat_data;
unsigned long regval;
- if (!plat_data->spdif_rx)
+ if (!plat_data->spdif_rx || !spdif_priv->rx_active)
return -EINVAL;
pr_debug("SIS: 0x%08x\n", __raw_readl(spdif_base_addr + SPDIF_REG_SIS));
@@ -747,6 +789,35 @@ static int mxc_spdif_capture_shutdown(struct snd_pcm_substream *substream,
return 0;
}
+static int mxc_spdif_capture_trigger(struct snd_pcm_substream *substream,
+ int cmd, struct snd_soc_dai *dai)
+{
+ struct snd_soc_codec *codec = dai->codec;
+ struct mxc_spdif_priv *spdif_priv = snd_soc_codec_get_drvdata(codec);
+ struct mxc_spdif_platform_data *plat_data = spdif_priv->plat_data;
+ int ret = 0;
+
+ if (!plat_data->spdif_rx)
+ return -EINVAL;
+
+ switch (cmd) {
+ case SNDRV_PCM_TRIGGER_START:
+ case SNDRV_PCM_TRIGGER_RESUME:
+ case SNDRV_PCM_TRIGGER_PAUSE_RELEASE:
+ ret = mxc_spdif_capture_start(substream, dai);
+ break;
+ case SNDRV_PCM_TRIGGER_STOP:
+ case SNDRV_PCM_TRIGGER_SUSPEND:
+ case SNDRV_PCM_TRIGGER_PAUSE_PUSH:
+ ret = mxc_spdif_capture_stop(substream, dai);
+ break;
+ default:
+ return -EINVAL;
+ }
+
+ return ret;
+}
+
/*
* MXC SPDIF IEC958 controller(mixer) functions
*
@@ -1058,7 +1129,16 @@ static int mxc_spdif_startup(struct snd_pcm_substream *substream,
struct snd_soc_codec *codec = dai->codec;
struct mxc_spdif_priv *spdif_priv = snd_soc_codec_get_drvdata(codec);
struct mxc_spdif_platform_data *plat_data = spdif_priv->plat_data;
- int ret;
+ int ret = 0;
+
+ /* enable spdif_xtal_clk */
+ ret = clk_enable(plat_data->spdif_core_clk);
+ if (ret < 0)
+ goto failed_clk;
+
+ spdif_softreset();
+ /* disable all the interrupts */
+ spdif_intr_enable(0xffffff, 0);
/* enable spdif_xtal_clk */
clk_enable(plat_data->spdif_core_clk);
@@ -1071,6 +1151,7 @@ static int mxc_spdif_startup(struct snd_pcm_substream *substream,
else
ret = mxc_spdif_capture_startup(substream, dai);
+failed_clk:
return ret;
}
@@ -1080,33 +1161,27 @@ static void mxc_spdif_shutdown(struct snd_pcm_substream *substream,
struct snd_soc_codec *codec = dai->codec;
struct mxc_spdif_priv *spdif_priv = snd_soc_codec_get_drvdata(codec);
struct mxc_spdif_platform_data *plat_data = spdif_priv->plat_data;
- int ret;
- if (substream->stream == SNDRV_PCM_STREAM_PLAYBACK)
- ret = mxc_spdif_playback_shutdown(substream, dai);
- else
- ret = mxc_spdif_capture_shutdown(substream, dai);
/* disable spdif_core clock */
- clk_put(plat_data->spdif_clk);
clk_disable(plat_data->spdif_core_clk);
}
-static int mxc_spdif_prepare(struct snd_pcm_substream *substream,
- struct snd_soc_dai *dai)
+static int mxc_spdif_trigger(struct snd_pcm_substream *substream,
+ int cmd, struct snd_soc_dai *dai)
{
- int ret;
+ int ret = 0;
if (substream->stream == SNDRV_PCM_STREAM_PLAYBACK)
- ret = mxc_spdif_playback_prepare(substream, dai);
+ ret = mxc_spdif_playback_trigger(substream, cmd, dai);
else
- ret = mxc_spdif_capture_prepare(substream, dai);
+ ret = mxc_spdif_capture_trigger(substream, cmd, dai);
return ret;
}
struct snd_soc_dai_ops mxc_spdif_codec_dai_ops = {
.startup = mxc_spdif_startup,
- .prepare = mxc_spdif_prepare,
+ .trigger = mxc_spdif_trigger,
.shutdown = mxc_spdif_shutdown,
};
@@ -1128,65 +1203,9 @@ static int mxc_spdif_soc_remove(struct snd_soc_codec *codec)
return 0;
}
-#ifdef CONFIG_PM
-static int mxc_spdif_soc_suspend(struct snd_soc_codec *codec,
- pm_message_t state)
-{
- struct mxc_spdif_priv *spdif_priv = snd_soc_codec_get_drvdata(codec);
- struct mxc_spdif_platform_data *plat_data;
-
- if (codec == NULL)
- return -EINVAL;
-
- plat_data = spdif_priv->plat_data;
-
- if (spdif_priv->tx_active) {
- clk_disable(plat_data->spdif_audio_clk);
- clk_disable(plat_data->spdif_clk);
- }
-
- if (spdif_priv->rx_active)
- clk_disable(plat_data->spdif_clk);
-
- clk_disable(plat_data->spdif_core_clk);
-
- return 0;
-}
-
-static int mxc_spdif_soc_resume(struct snd_soc_codec *codec)
-{
- struct mxc_spdif_priv *spdif_priv = snd_soc_codec_get_drvdata(codec);
- struct mxc_spdif_platform_data *plat_data;
-
- if (codec == NULL)
- return -EINVAL;
-
- plat_data = spdif_priv->plat_data;
-
- clk_enable(plat_data->spdif_core_clk);
-
- if (spdif_priv->tx_active) {
- clk_enable(plat_data->spdif_clk);
- clk_enable(plat_data->spdif_audio_clk);
- }
-
- if (spdif_priv->rx_active)
- clk_enable(plat_data->spdif_clk);
-
- spdif_softreset();
-
- return 0;
-}
-#else
-#define mxc_spdif_soc_suspend NULL
-#define mxc_spdif_soc_resume NULL
-#endif /* CONFIG_PM */
-
struct snd_soc_codec_driver soc_codec_dev_spdif = {
.probe = mxc_spdif_soc_probe,
.remove = mxc_spdif_soc_remove,
- .suspend = mxc_spdif_soc_suspend,
- .resume = mxc_spdif_soc_resume,
};
static int __devinit mxc_spdif_probe(struct platform_device *pdev)
@@ -1283,13 +1302,12 @@ static int __devinit mxc_spdif_probe(struct platform_device *pdev)
goto card_err;
}
- dumpregs();
+ dumpregs(spdif_priv);
return 0;
card_err:
clk_put(plat_data->spdif_clk);
- clk_disable(plat_data->spdif_core_clk);
failed_clk:
platform_set_drvdata(pdev, NULL);
kfree(spdif_priv);
diff --git a/sound/soc/codecs/si4763.c b/sound/soc/codecs/si4763.c
new file mode 100644
index 000000000000..b2c5dc9924ad
--- /dev/null
+++ b/sound/soc/codecs/si4763.c
@@ -0,0 +1,109 @@
+/*
+ * Copyright 2008-2012 Freescale Semiconductor, Inc. All Rights Reserved.
+ */
+
+/*
+ * The code contained herein is licensed under the GNU General Public
+ * License. You may obtain a copy of the GNU General Public License
+ * Version 2 or later at the following locations:
+ *
+ * http://www.opensource.org/licenses/gpl-license.html
+ * http://www.gnu.org/copyleft/gpl.html
+ */
+
+#include <linux/slab.h>
+#include <linux/module.h>
+#include <linux/moduleparam.h>
+#include <linux/init.h>
+#include <linux/delay.h>
+#include <linux/pm.h>
+#include <linux/platform_device.h>
+#include <sound/core.h>
+#include <sound/pcm.h>
+#include <sound/pcm_params.h>
+#include <sound/soc.h>
+#include <sound/soc-dapm.h>
+#include <sound/initval.h>
+#include <sound/tlv.h>
+
+#define SI4763_RATES SNDRV_PCM_RATE_48000
+
+#define SI4763_FORMATS SNDRV_PCM_FMTBIT_S16_LE
+
+static struct snd_soc_dai_driver si4763_codec_dai = {
+ .name = "si4763",
+ .capture = {
+ .stream_name = "Capture",
+ .channels_min = 1,
+ .channels_max = 2,
+ .rates = SI4763_RATES,
+ .formats = SI4763_FORMATS,
+ },
+};
+
+static int mxc_si4763_codec_soc_probe(struct snd_soc_codec *codec)
+{
+ return 0;
+}
+static struct snd_soc_codec_driver soc_codec_dev_si4763 = {
+ .probe = mxc_si4763_codec_soc_probe,
+};
+
+static int si4763_probe(struct platform_device *pdev)
+{
+ int ret = 0;
+ dev_info(&pdev->dev, "SI4763 Audio codec\n");
+
+ ret = snd_soc_register_codec(&pdev->dev, &soc_codec_dev_si4763,
+ &si4763_codec_dai, 1);
+ if (ret) {
+ dev_err(&pdev->dev, "failed to register codec\n");
+ return ret;
+ }
+
+ return 0;
+
+}
+
+/* power down chip */
+static int si4763_remove(struct platform_device *pdev)
+{
+ return 0;
+}
+
+static int si4763_suspend(struct platform_device *pdev, pm_message_t state)
+{
+ return 0;
+}
+
+static int si4763_resume(struct platform_device *pdev)
+{
+ return 0;
+}
+struct platform_driver si4763_driver = {
+ .driver = {
+ .name = "si4763",
+ .owner = THIS_MODULE,
+ },
+ .probe = si4763_probe,
+ .remove = si4763_remove,
+ .suspend = si4763_suspend,
+ .resume = si4763_resume,
+};
+
+static int __init si4763_codec_init(void)
+{
+ return platform_driver_register(&si4763_driver);
+}
+
+static void __exit si4763_codec_exit(void)
+{
+ return platform_driver_unregister(&si4763_driver);
+}
+
+module_init(si4763_codec_init);
+module_exit(si4763_codec_exit);
+
+MODULE_DESCRIPTION("ASoC si4763 codec driver");
+MODULE_AUTHOR("Freescale Semiconductor, Inc.");
+MODULE_LICENSE("GPL");
diff --git a/sound/soc/codecs/wm8962.c b/sound/soc/codecs/wm8962.c
index ccf8883a7866..32481c6dc720 100644
--- a/sound/soc/codecs/wm8962.c
+++ b/sound/soc/codecs/wm8962.c
@@ -4097,6 +4097,16 @@ static int wm8962_probe(struct snd_soc_codec *codec)
pdata->mic_cfg);
}
+ /* set the default volume for headphpone and speaker */
+ snd_soc_update_bits(codec, WM8962_HPOUTL_VOLUME,
+ WM8962_HPOUTL_VOL_MASK, 0x65);
+ snd_soc_update_bits(codec, WM8962_HPOUTR_VOLUME,
+ WM8962_HPOUTR_VOL_MASK, 0x65);
+ snd_soc_update_bits(codec, WM8962_SPKOUTL_VOLUME,
+ WM8962_SPKOUTL_VOL_MASK, 0x72);
+ snd_soc_update_bits(codec, WM8962_SPKOUTR_VOLUME,
+ WM8962_SPKOUTR_VOL_MASK, 0x72);
+
/* Latch volume update bits */
snd_soc_update_bits(codec, WM8962_LEFT_INPUT_VOLUME,
WM8962_IN_VU, WM8962_IN_VU);
diff --git a/sound/soc/imx/Kconfig b/sound/soc/imx/Kconfig
index b9f08b52bd1d..72d85503d495 100644
--- a/sound/soc/imx/Kconfig
+++ b/sound/soc/imx/Kconfig
@@ -86,6 +86,14 @@ config SND_SOC_IMX_CS42888
Say Y if you want to add support for SoC audio on an i.MX board with
a cs42888 codec
+config SND_SOC_IMX_SI4763
+ tristate "SoC Audio support for IMX SI4763"
+ select SND_MXC_SOC_SSI
+ select SND_SOC_SI4763
+ help
+ Say Y if you want to add support for Soc audio for the AMFM Tuner chip
+ SI4763 module.
+
config SND_SOC_EUKREA_TLV320
tristate "Eukrea TLV320"
depends on MACH_EUKREA_MBIMX27_BASEBOARD \
diff --git a/sound/soc/imx/Makefile b/sound/soc/imx/Makefile
index 2a67c3250355..3c851809e26d 100644
--- a/sound/soc/imx/Makefile
+++ b/sound/soc/imx/Makefile
@@ -31,5 +31,6 @@ obj-$(CONFIG_SND_SOC_IMX_SGTL5000) += snd-soc-imx-sgtl5000.o
obj-$(CONFIG_SND_SOC_IMX_CS42888) += snd-soc-imx-cs42888.o
obj-$(CONFIG_SND_SOC_IMX_SPDIF) += snd-soc-imx-spdif.o
obj-$(CONFIG_SND_SOC_IMX_HDMI) += snd-soc-imx-hdmi.o
+obj-$(CONFIG_SND_SOC_IMX_SI4763) += snd-soc-imx-si4763.o
AFLAGS_hdmi_pcm.o := -march=armv7-a -mtune=cortex-a8 -mfpu=neon -mfloat-abi=softfp
diff --git a/sound/soc/imx/imx-si4763.c b/sound/soc/imx/imx-si4763.c
new file mode 100644
index 000000000000..3bf7f0340ea9
--- /dev/null
+++ b/sound/soc/imx/imx-si4763.c
@@ -0,0 +1,198 @@
+/*
+ * Copyright (C) 2008-2012 Freescale Semiconductor, Inc. All Rights Reserved.
+ */
+
+/*
+ * The code contained herein is licensed under the GNU General Public
+ * License. You may obtain a copy of the GNU General Public License
+ * Version 2 or later at the following locations:
+ *
+ * http://www.opensource.org/licenses/gpl-license.html
+ * http://www.gnu.org/copyleft/gpl.html
+ */
+
+#include <linux/module.h>
+#include <linux/moduleparam.h>
+#include <linux/device.h>
+#include <linux/clk.h>
+#include <linux/delay.h>
+#include <linux/io.h>
+#include <linux/fsl_devices.h>
+#include <sound/core.h>
+#include <sound/pcm.h>
+#include <sound/soc.h>
+#include <sound/soc-dai.h>
+#include <sound/soc-dapm.h>
+#include <sound/initval.h>
+#include <mach/audmux.h>
+#include <mach/ssi.h>
+
+#include "imx-ssi.h"
+
+static struct imx_si4763_priv {
+ int sysclk;
+ int hw;
+ int active;
+ struct platform_device *pdev;
+} card_priv;
+
+static int imx_audmux_config(int slave, int master)
+{
+ unsigned int ptcr, pdcr;
+ slave = slave - 1;
+ master = master - 1;
+
+ ptcr = MXC_AUDMUX_V2_PTCR_SYN |
+ MXC_AUDMUX_V2_PTCR_TFSDIR |
+ MXC_AUDMUX_V2_PTCR_TFSEL(slave) |
+ MXC_AUDMUX_V2_PTCR_TCLKDIR |
+ MXC_AUDMUX_V2_PTCR_TCSEL(slave);
+ pdcr = MXC_AUDMUX_V2_PDCR_RXDSEL(slave);
+ mxc_audmux_v2_configure_port(master, ptcr, pdcr);
+
+ ptcr = MXC_AUDMUX_V2_PTCR_SYN;
+ pdcr = MXC_AUDMUX_V2_PDCR_RXDSEL(master);
+ mxc_audmux_v2_configure_port(slave, ptcr, pdcr);
+
+ return 0;
+}
+
+
+static int imx_3stack_si4763_startup(struct snd_pcm_substream *substream)
+{
+ struct imx_si4763_priv *priv = &card_priv;
+
+ priv->active++;
+ return 0;
+}
+
+static int imx_3stack_si4763_hw_params(struct snd_pcm_substream *substream,
+ struct snd_pcm_hw_params *params)
+{
+ struct snd_soc_pcm_runtime *rtd = substream->private_data;
+ struct snd_soc_dai *cpu_dai = rtd->cpu_dai;
+ unsigned int channels = params_channels(params);
+ struct imx_ssi *ssi_mode = snd_soc_dai_get_drvdata(cpu_dai);
+ int ret = 0;
+ u32 dai_format;
+ dai_format = SND_SOC_DAIFMT_I2S | SND_SOC_DAIFMT_NB_NF |
+ SND_SOC_DAIFMT_CBS_CFS;
+
+ ssi_mode->flags |= IMX_SSI_SYN;
+
+ /* set i.MX active slot mask */
+ snd_soc_dai_set_tdm_slot(cpu_dai,
+ channels == 1 ? 0xfffffffe : 0xfffffffc,
+ channels == 1 ? 0xfffffffe : 0xfffffffc,
+ 2, 32);
+
+ /* set cpu DAI configuration */
+ ret = snd_soc_dai_set_fmt(cpu_dai, dai_format);
+ if (ret < 0)
+ return ret;
+
+ /* set the SSI system clock as input (unused) */
+ snd_soc_dai_set_sysclk(cpu_dai, IMX_SSP_SYS_CLK, 0, SND_SOC_CLOCK_IN);
+
+ snd_soc_dai_set_clkdiv(cpu_dai, IMX_SSI_TX_DIV_PM, 9);
+ snd_soc_dai_set_clkdiv(cpu_dai, IMX_SSI_TX_DIV_2, 1);
+ snd_soc_dai_set_clkdiv(cpu_dai, IMX_SSI_TX_DIV_PSR, 0);
+ return 0;
+}
+
+static void imx_3stack_si4763_shutdown(struct snd_pcm_substream *substream)
+{
+ struct imx_si4763_priv *priv = &card_priv;
+ priv->active--;
+}
+
+/*
+ * imx_3stack bt DAI opserations.
+ */
+static struct snd_soc_ops imx_3stack_si4763_ops = {
+ .startup = imx_3stack_si4763_startup,
+ .hw_params = imx_3stack_si4763_hw_params,
+ .shutdown = imx_3stack_si4763_shutdown,
+};
+
+static struct snd_soc_dai_link imx_3stack_dai = {
+ .name = "imx-si4763",
+ .stream_name = "imx-si4763",
+ .codec_dai_name = "si4763",
+ .codec_name = "si4763.0",
+ .cpu_dai_name = "imx-ssi.1",
+ .platform_name = "imx-pcm-audio.1",
+ .ops = &imx_3stack_si4763_ops,
+};
+
+static struct snd_soc_card snd_soc_card_imx_3stack = {
+ .name = "imx-audio-si4763",
+ .dai_link = &imx_3stack_dai,
+ .num_links = 1,
+};
+
+static int __init imx_3stack_si4763_probe(struct platform_device *pdev)
+{
+ struct mxc_audio_platform_data *plat = pdev->dev.platform_data;
+
+ card_priv.pdev = pdev;
+ card_priv.sysclk = plat->sysclk;
+ imx_audmux_config(plat->src_port, plat->ext_port);
+
+ return 0;
+
+}
+
+static int __devexit imx_3stack_si4763_remove(struct platform_device *pdev)
+{
+ return 0;
+}
+
+static struct platform_driver imx_3stack_si4763_driver = {
+ .probe = imx_3stack_si4763_probe,
+ .remove = __devexit_p(imx_3stack_si4763_remove),
+ .driver = {
+ .name = "imx-tuner-si4763",
+ .owner = THIS_MODULE,
+ },
+};
+
+static struct platform_device *imx_3stack_snd_device;
+
+static int __init imx_3stack_asoc_init(void)
+{
+ int ret;
+ ret = platform_driver_register(&imx_3stack_si4763_driver);
+ if (ret < 0)
+ goto exit;
+
+ imx_3stack_snd_device = platform_device_alloc("soc-audio", 6);
+ if (!imx_3stack_snd_device)
+ goto err_device_alloc;
+
+ platform_set_drvdata(imx_3stack_snd_device, &snd_soc_card_imx_3stack);
+ ret = platform_device_add(imx_3stack_snd_device);
+ if (0 == ret)
+ goto exit;
+
+
+ platform_device_put(imx_3stack_snd_device);
+err_device_alloc:
+ platform_driver_unregister(&imx_3stack_si4763_driver);
+exit:
+ return ret;
+}
+
+static void __exit imx_3stack_asoc_exit(void)
+{
+ platform_driver_unregister(&imx_3stack_si4763_driver);
+ platform_device_unregister(imx_3stack_snd_device);
+}
+
+module_init(imx_3stack_asoc_init);
+module_exit(imx_3stack_asoc_exit);
+
+/* Module information */
+MODULE_AUTHOR("Freescale Semiconductor, Inc.");
+MODULE_DESCRIPTION("ALSA SoC si4763 imx");
+MODULE_LICENSE("GPL");
diff --git a/sound/soc/imx/imx-si4763.h b/sound/soc/imx/imx-si4763.h
new file mode 100644
index 000000000000..8a641a6adcaa
--- /dev/null
+++ b/sound/soc/imx/imx-si4763.h
@@ -0,0 +1,19 @@
+/*
+ * Copyright 2008-2012 Freescale Semiconductor, Inc. All Rights Reserved.
+ */
+
+/*
+ * The code contained herein is licensed under the GNU General Public
+ * License. You may obtain a copy of the GNU General Public License
+ * Version 2 or later at the following locations:
+ *
+ * http://www.opensource.org/licenses/gpl-license.html
+ * http://www.gnu.org/copyleft/gpl.html
+ */
+
+#ifndef _MXC_SI4763PCM_H
+#define _MXC_SI4763PCM_H
+
+extern struct snd_soc_dai si4763_dai;
+extern struct snd_soc_codec_device soc_codec_dev_si4763;
+#endif
diff --git a/sound/soc/imx/imx-wm8962.c b/sound/soc/imx/imx-wm8962.c
index 9eff86a229c5..aa3122f6d765 100644
--- a/sound/soc/imx/imx-wm8962.c
+++ b/sound/soc/imx/imx-wm8962.c
@@ -38,6 +38,7 @@
#include <mach/clock.h>
#include <mach/audmux.h>
#include <mach/gpio.h>
+#include <asm/mach-types.h>
#include "imx-ssi.h"
#include "../codecs/wm8962.h"
@@ -55,16 +56,17 @@ struct imx_priv {
unsigned int sample_format = SNDRV_PCM_FMTBIT_S16_LE;
static struct imx_priv card_priv;
static struct snd_soc_card snd_soc_card_imx;
-struct clk *wm8962_mclk;
static struct snd_soc_codec *gcodec;
static int imx_hifi_startup(struct snd_pcm_substream *substream)
{
struct snd_soc_pcm_runtime *rtd = substream->private_data;
struct snd_soc_dai *codec_dai = rtd->codec_dai;
+ struct imx_priv *priv = &card_priv;
+ struct mxc_audio_platform_data *plat = priv->pdev->dev.platform_data;
if (!codec_dai->active)
- clk_enable(wm8962_mclk);
+ plat->clock_enable(1);
return 0;
}
@@ -73,9 +75,11 @@ static void imx_hifi_shutdown(struct snd_pcm_substream *substream)
{
struct snd_soc_pcm_runtime *rtd = substream->private_data;
struct snd_soc_dai *codec_dai = rtd->codec_dai;
+ struct imx_priv *priv = &card_priv;
+ struct mxc_audio_platform_data *plat = priv->pdev->dev.platform_data;
if (!codec_dai->active)
- clk_disable(wm8962_mclk);
+ plat->clock_enable(0);
return;
}
@@ -165,7 +169,6 @@ static const struct snd_soc_dapm_route audio_map[] = {
{ "MICBIAS", NULL, "AMIC" },
{ "IN3R", NULL, "MICBIAS" },
-
{ "DMIC", NULL, "MICBIAS" },
{ "DMICDAT", NULL, "DMIC" },
@@ -259,7 +262,7 @@ static void amic_detect_handler(struct work_struct *work)
if (priv->amic_status == 0)
snprintf(buf, 32, "STATE=%d", 2);
- else
+ else
snprintf(buf, 32, "STATE=%d", 0);
envp[0] = "NAME=amic";
@@ -366,7 +369,8 @@ static int imx_wm8962_init(struct snd_soc_pcm_runtime *rtd)
snd_soc_dapm_nc_pin(&codec->dapm, "DMIC");
else
snd_soc_dapm_enable_pin(&codec->dapm, "DMIC");
- }
+ } else if (!snd_soc_dapm_get_pin_status(&codec->dapm, "DMICDAT"))
+ snd_soc_dapm_nc_pin(&codec->dapm, "DMIC");
return 0;
}
@@ -427,12 +431,6 @@ static int __devinit imx_wm8962_probe(struct platform_device *pdev)
struct imx_priv *priv = &card_priv;
int ret = 0;
- wm8962_mclk = clk_get(NULL, "clko_clk");
- if (IS_ERR(wm8962_mclk)) {
- printk(KERN_ERR "can't get CLKO clock.\n");
- return PTR_ERR(wm8962_mclk);
- }
-
priv->pdev = pdev;
imx_audmux_config(plat->src_port, plat->ext_port);
@@ -451,12 +449,11 @@ static int __devexit imx_wm8962_remove(struct platform_device *pdev)
{
struct mxc_audio_platform_data *plat = pdev->dev.platform_data;
+ plat->clock_enable(0);
+
if (plat->finit)
plat->finit();
- clk_disable(wm8962_mclk);
- clk_put(wm8962_mclk);
-
return 0;
}
@@ -479,6 +476,11 @@ static int __init imx_asoc_init(void)
if (ret < 0)
goto exit;
+ if (machine_is_mx6q_sabresd())
+ imx_dai[0].codec_name = "wm8962.0-001a";
+ else if (machine_is_mx6sl_arm2())
+ imx_dai[0].codec_name = "wm8962.1-001a";
+
imx_snd_device = platform_device_alloc("soc-audio", 5);
if (!imx_snd_device)
goto err_device_alloc;